From c4068d1ad859337d454f6c1edabfb4b487b7a423 Mon Sep 17 00:00:00 2001 From: Pascalco Date: Fri, 11 Sep 2020 21:38:51 +0200 Subject: [PATCH 01/99] assign Figure object to a variable --- doc/python/tick-formatting.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/python/tick-formatting.md b/doc/python/tick-formatting.md index ed5324c3c4..4b2c1523a5 100644 --- a/doc/python/tick-formatting.md +++ b/doc/python/tick-formatting.md @@ -64,7 +64,7 @@ If `"array"`, the placement of the ticks is set via `tickvals` and the tick text ```python import plotly.graph_objects as go -go.Figure(go.Scatter( +fig = go.Figure(go.Scatter( x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], y = [28.8, 28.5, 37, 56.8, 69.7, 79.7, 78.5, 77.8, 74.1, 62.6, 45.3, 39.9] )) @@ -88,7 +88,7 @@ For more formatting types, see: https://github.com/d3/d3-format/blob/master/READ ```python import plotly.graph_objects as go -go.Figure(go.Scatter( +fig = go.Figure(go.Scatter( x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], y = [28.8, 28.5, 37, 56.8, 69.7, 79.7, 78.5, 77.8, 74.1, 62.6, 45.3, 39.9] )) From 40b9af19edc60e2d5b1eb5630f321938bbb21dee Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Sat, 5 Dec 2020 12:02:33 -0500 Subject: [PATCH 02/99] WIP accelerated encoding with orjson --- packages/python/plotly/_plotly_utils/utils.py | 2 + .../python/plotly/plotly/basedatatypes.py | 29 ++- packages/python/plotly/plotly/io/_json.py | 180 +++++++++++++++++- 3 files changed, 193 insertions(+), 18 deletions(-) diff --git a/packages/python/plotly/_plotly_utils/utils.py b/packages/python/plotly/_plotly_utils/utils.py index 00351e1c7c..40052d73e1 100644 --- a/packages/python/plotly/_plotly_utils/utils.py +++ b/packages/python/plotly/_plotly_utils/utils.py @@ -61,8 +61,10 @@ def encode(self, o): # We catch false positive cases (e.g. strings such as titles, labels etc.) # but this is ok since the intention is to skip the decoding / reencoding # step when it's completely safe + if not ("NaN" in encoded_o or "Infinity" in encoded_o): return encoded_o + # now: # 1. `loads` to switch Infinity, -Infinity, NaN to None # 2. `dumps` again so you get 'null' instead of extended JSON diff --git a/packages/python/plotly/plotly/basedatatypes.py b/packages/python/plotly/plotly/basedatatypes.py index 7954dea37f..ab48c96d41 100644 --- a/packages/python/plotly/plotly/basedatatypes.py +++ b/packages/python/plotly/plotly/basedatatypes.py @@ -3273,7 +3273,7 @@ def _perform_batch_animate(self, animation_opts): # Exports # ------- - def to_dict(self): + def to_dict(self, clone=True): """ Convert figure to a dictionary @@ -3286,23 +3286,33 @@ def to_dict(self): """ # Handle data # ----------- - data = deepcopy(self._data) + if clone: + data = deepcopy(self._data) + else: + data = self._data # Handle layout # ------------- - layout = deepcopy(self._layout) + if clone: + layout = deepcopy(self._layout) + else: + layout = self._layout # Handle frames # ------------- # Frame key is only added if there are any frames res = {"data": data, "layout": layout} - frames = deepcopy([frame._props for frame in self._frame_objs]) + if clone: + frames = deepcopy([frame._props for frame in self._frame_objs]) + else: + frames = [frame._props for frame in self._frame_objs] + if frames: res["frames"] = frames return res - def to_plotly_json(self): + def to_plotly_json(self, clone=True): """ Convert figure to a JSON representation as a Python dict @@ -3310,7 +3320,7 @@ def to_plotly_json(self): ------- dict """ - return self.to_dict() + return self.to_dict(clone=clone) @staticmethod def _to_ordered_dict(d, skip_uid=False): @@ -5524,7 +5534,7 @@ def on_change(self, callback, *args, **kwargs): # ----------------- self._change_callbacks[arg_tuples].append(callback) - def to_plotly_json(self): + def to_plotly_json(self, clone=False): """ Return plotly JSON representation of object as a Python dict @@ -5532,7 +5542,10 @@ def to_plotly_json(self): ------- dict """ - return deepcopy(self._props if self._props is not None else {}) + if clone: + return deepcopy(self._props if self._props is not None else {}) + else: + return self._props if self._props is not None else {} @staticmethod def _vals_equal(v1, v2): diff --git a/packages/python/plotly/plotly/io/_json.py b/packages/python/plotly/plotly/io/_json.py index f67dbab3eb..84688a6c04 100644 --- a/packages/python/plotly/plotly/io/_json.py +++ b/packages/python/plotly/plotly/io/_json.py @@ -2,12 +2,28 @@ from six import string_types import json +import decimal from plotly.io._utils import validate_coerce_fig_to_dict, validate_coerce_output_type +from _plotly_utils.utils import iso_to_plotly_time_string +from _plotly_utils.optional_imports import get_module +from _plotly_utils.basevalidators import ImageUriValidator -def to_json(fig, validate=True, pretty=False, remove_uids=True): +def coerce_to_strict(const): + """ + This is used to ultimately *encode* into strict JSON, see `encode` + + """ + # before python 2.7, 'true', 'false', 'null', were include here. + if const in ("Infinity", "-Infinity", "NaN"): + return None + else: + return const + + +def to_json(fig, validate=True, pretty=False, remove_uids=True, engine="auto"): """ Convert a figure to a JSON string representation @@ -32,7 +48,7 @@ def to_json(fig, validate=True, pretty=False, remove_uids=True): str Representation of figure as a JSON string """ - from _plotly_utils.utils import PlotlyJSONEncoder + orjson = get_module("orjson", should_load=True) # Validate figure # --------------- @@ -44,16 +60,77 @@ def to_json(fig, validate=True, pretty=False, remove_uids=True): for trace in fig_dict.get("data", []): trace.pop("uid", None) + # Determine json engine + if engine == "auto": + if orjson is not None: + engine = "orjson" + else: + engine = "json" + elif engine not in ["orjson", "json", "legacy"]: + raise ValueError("Invalid json engine: %s" % engine) + + modules = {"sage_all": get_module("sage.all", should_load=False), + "np": get_module("numpy", should_load=False), + "pd": get_module("pandas", should_load=False), + "image": get_module("PIL.Image", should_load=False)} + + orjson = get_module("orjson", should_load=True) + # Dump to a JSON string and return # -------------------------------- - opts = {"sort_keys": True} - if pretty: - opts["indent"] = 2 - else: - # Remove all whitespace - opts["separators"] = (",", ":") - - return json.dumps(fig_dict, cls=PlotlyJSONEncoder, **opts) + if engine in ("json", "legacy"): + opts = {"sort_keys": True} + if pretty: + opts["indent"] = 2 + else: + # Remove all whitespace + opts["separators"] = (",", ":") + + if engine == "json": + cleaned = clean_to_json_compatible( + fig, numpy_allowed=False, + non_finite_allowed=False, + datetime_allowed=False, + modules=modules, + ) + encoded_o = json.dumps(cleaned, **opts) + + if not ("NaN" in encoded_o or "Infinity" in encoded_o): + return encoded_o + + # now: + # 1. `loads` to switch Infinity, -Infinity, NaN to None + # 2. `dumps` again so you get 'null' instead of extended JSON + try: + new_o = json.loads(encoded_o, parse_constant=coerce_to_strict) + except ValueError: + + # invalid separators will fail here. raise a helpful exception + raise ValueError( + "Encoding into strict JSON failed. Did you set the separators " + "valid JSON separators?" + ) + else: + return json.dumps(new_o, **opts) + else: + from _plotly_utils.utils import PlotlyJSONEncoder + return json.dumps(fig_dict, cls=PlotlyJSONEncoder, **opts) + elif engine == "orjson": + opts = (orjson.OPT_SORT_KEYS + | orjson.OPT_SERIALIZE_NUMPY + | orjson.OPT_OMIT_MICROSECONDS + ) + + if pretty: + opts |= orjson.OPT_INDENT_2 + + cleaned = clean_to_json_compatible( + fig, numpy_allowed=True, + non_finite_allowed=True, + datetime_allowed=True, + modules=modules, + ) + return orjson.dumps(cleaned, option=opts).decode("utf8") def write_json(fig, file, validate=True, pretty=False, remove_uids=True): @@ -194,3 +271,86 @@ def read_json(file, output_type="Figure", skip_invalid=False): # Construct and return figure # --------------------------- return from_json(json_str, skip_invalid=skip_invalid, output_type=output_type) + + +def clean_to_json_compatible(obj, **kwargs): + # Try handling value as a scalar value that we have a conversion for. + # Return immediately if we know we've hit a primitive value + + # unpack kwargs + numpy_allowed = kwargs.get("numpy_allowed", False) + non_finite_allowed = kwargs.get("non_finite_allowed", False) + datetime_allowed = kwargs.get("datetime_allowed", False) + + modules = kwargs.get("modules", {}) + sage_all = modules["sage_all"] + np = modules["np"] + pd = modules["pd"] + image = modules["image"] + + # Plotly + try: + obj = obj.to_plotly_json(clone=False) + except (TypeError, NameError, ValueError): + # Try without clone for backward compatibility + obj = obj.to_plotly_json() + except AttributeError: + pass + + # Sage + if sage_all is not None: + if obj in sage_all.RR: + return float(obj) + elif obj in sage_all.ZZ: + return int(obj) + + # numpy + if np is not None: + if obj is np.ma.core.masked: + return float("nan") + elif numpy_allowed and isinstance(obj, np.ndarray) and obj.dtype.kind in ("b", "i", "u", "f"): + return obj + + # pandas + if pd is not None: + if obj is pd.NaT: + return None + elif isinstance(obj, pd.Series): + if numpy_allowed and obj.dtype.kind in ("b", "i", "u", "f"): + return obj.values + elif datetime_allowed and obj.dtype.kind == "M": + return obj.dt.to_pydatetime().tolist() + + + # datetime and date + if not datetime_allowed: + try: + # Is this cleanup still needed? + return iso_to_plotly_time_string(obj.isoformat()) + except AttributeError: + pass + + # Try .tolist() convertible + try: + # obj = obj.tolist() + return obj.tolist() + except AttributeError: + pass + + # Do best we can with decimal + if isinstance(obj, decimal.Decimal): + return float(obj) + + # PIL + if image is not None and isinstance(obj, image.Image): + return ImageUriValidator.pil_image_to_uri(obj) + + # Recurse into lists and dictionaries + if isinstance(obj, dict): + return {k: clean_to_json_compatible(v, **kwargs) for k, v in obj.items()} + elif isinstance(obj, (list, tuple)): + if obj: + # Must process list recursively even though it may be slow + return [clean_to_json_compatible(v, **kwargs) for v in obj] + + return obj From f79e318a5618962ec13bd7cd6680ed0d0523d2b5 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Sat, 5 Dec 2020 13:25:51 -0500 Subject: [PATCH 03/99] support fig to dict in io without cloning --- packages/python/plotly/plotly/io/_json.py | 6 +++--- packages/python/plotly/plotly/io/_utils.py | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/python/plotly/plotly/io/_json.py b/packages/python/plotly/plotly/io/_json.py index 84688a6c04..141244a01a 100644 --- a/packages/python/plotly/plotly/io/_json.py +++ b/packages/python/plotly/plotly/io/_json.py @@ -52,7 +52,7 @@ def to_json(fig, validate=True, pretty=False, remove_uids=True, engine="auto"): # Validate figure # --------------- - fig_dict = validate_coerce_fig_to_dict(fig, validate) + fig_dict = validate_coerce_fig_to_dict(fig, validate, clone=False) # Remove trace uid # ---------------- @@ -88,7 +88,7 @@ def to_json(fig, validate=True, pretty=False, remove_uids=True, engine="auto"): if engine == "json": cleaned = clean_to_json_compatible( - fig, numpy_allowed=False, + fig_dict, numpy_allowed=False, non_finite_allowed=False, datetime_allowed=False, modules=modules, @@ -125,7 +125,7 @@ def to_json(fig, validate=True, pretty=False, remove_uids=True, engine="auto"): opts |= orjson.OPT_INDENT_2 cleaned = clean_to_json_compatible( - fig, numpy_allowed=True, + fig_dict, numpy_allowed=True, non_finite_allowed=True, datetime_allowed=True, modules=modules, diff --git a/packages/python/plotly/plotly/io/_utils.py b/packages/python/plotly/plotly/io/_utils.py index b3b376e9d8..000cb56b01 100644 --- a/packages/python/plotly/plotly/io/_utils.py +++ b/packages/python/plotly/plotly/io/_utils.py @@ -4,11 +4,11 @@ import plotly.graph_objs as go -def validate_coerce_fig_to_dict(fig, validate): +def validate_coerce_fig_to_dict(fig, validate, clone=True): from plotly.basedatatypes import BaseFigure if isinstance(fig, BaseFigure): - fig_dict = fig.to_dict() + fig_dict = fig.to_dict(clone=clone) elif isinstance(fig, dict): if validate: # This will raise an exception if fig is not a valid plotly figure From 7b3593a5f2fd658760649982524e5af1cd7cfa05 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Sat, 5 Dec 2020 13:55:24 -0500 Subject: [PATCH 04/99] fix clone default --- packages/python/plotly/plotly/basedatatypes.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/python/plotly/plotly/basedatatypes.py b/packages/python/plotly/plotly/basedatatypes.py index ab48c96d41..8315ad92e8 100644 --- a/packages/python/plotly/plotly/basedatatypes.py +++ b/packages/python/plotly/plotly/basedatatypes.py @@ -5534,7 +5534,7 @@ def on_change(self, callback, *args, **kwargs): # ----------------- self._change_callbacks[arg_tuples].append(callback) - def to_plotly_json(self, clone=False): + def to_plotly_json(self, clone=True): """ Return plotly JSON representation of object as a Python dict From da915d6848fd5d0c9b6b59560894ef1406d0b0a5 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Sat, 5 Dec 2020 14:59:20 -0500 Subject: [PATCH 05/99] Add pio.json.config object to configure default encoder Later we can use this to configure base64 encoding --- .../python/plotly/plotly/basedatatypes.py | 16 ++++++ packages/python/plotly/plotly/io/__init__.py | 4 +- packages/python/plotly/plotly/io/_json.py | 57 ++++++++++++++++++- packages/python/plotly/plotly/io/json.py | 1 + 4 files changed, 74 insertions(+), 4 deletions(-) create mode 100644 packages/python/plotly/plotly/io/json.py diff --git a/packages/python/plotly/plotly/basedatatypes.py b/packages/python/plotly/plotly/basedatatypes.py index 8315ad92e8..8bfba5e948 100644 --- a/packages/python/plotly/plotly/basedatatypes.py +++ b/packages/python/plotly/plotly/basedatatypes.py @@ -3423,6 +3423,14 @@ def to_json(self, *args, **kwargs): remove_uids: bool (default True) True if trace UIDs should be omitted from the JSON representation + engine: str (default None) + The JSON encoding engine to use. One of: + - "json" for a rewritten encoder based on the built-in Python json module + - "orjson" for a fast encoder the requires the orjson package + - "legacy" for the legacy JSON encoder. + If not specified, the default encoder is set to the current value of + plotly.io.json.config.default_encoder. + Returns ------- str @@ -3479,6 +3487,14 @@ def write_json(self, *args, **kwargs): remove_uids: bool (default True) True if trace UIDs should be omitted from the JSON representation + engine: str (default None) + The JSON encoding engine to use. One of: + - "json" for a rewritten encoder based on the built-in Python json module + - "orjson" for a fast encoder the requires the orjson package + - "legacy" for the legacy JSON encoder. + If not specified, the default encoder is set to the current value of + plotly.io.json.config.default_encoder. + Returns ------- None diff --git a/packages/python/plotly/plotly/io/__init__.py b/packages/python/plotly/plotly/io/__init__.py index e1d1e5be8d..8c53557251 100644 --- a/packages/python/plotly/plotly/io/__init__.py +++ b/packages/python/plotly/plotly/io/__init__.py @@ -4,6 +4,7 @@ if sys.version_info < (3, 7): from ._kaleido import to_image, write_image, full_figure_for_development from . import orca, kaleido + from . import json from ._json import to_json, from_json, read_json, write_json from ._templates import templates, to_templated from ._html import to_html, write_html @@ -14,6 +15,7 @@ "to_image", "write_image", "orca", + "json", "to_json", "from_json", "read_json", @@ -30,7 +32,7 @@ else: __all__, __getattr__, __dir__ = relative_import( __name__, - [".orca", ".kaleido", ".base_renderers"], + [".orca", ".kaleido", ".json", ".base_renderers"], [ "._kaleido.to_image", "._kaleido.write_image", diff --git a/packages/python/plotly/plotly/io/_json.py b/packages/python/plotly/plotly/io/_json.py index 141244a01a..8b89f6ecf6 100644 --- a/packages/python/plotly/plotly/io/_json.py +++ b/packages/python/plotly/plotly/io/_json.py @@ -11,6 +11,39 @@ from _plotly_utils.basevalidators import ImageUriValidator +# Orca configuration class +# ------------------------ +class JsonConfig(object): + _valid_encoders = ("legacy", "json", "orjson", "auto") + + def __init__(self): + self._default_encoder = "auto" + + @property + def default_encoder(self): + return self._default_encoder + + @default_encoder.setter + def default_encoder(self, val): + if val not in JsonConfig._valid_encoders: + raise ValueError( + "Supported JSON encoders include {valid}\n" + " Received {val}".format(valid=JsonConfig._valid_encoders, val=val) + ) + + if val == "orjson": + orjson = get_module("orjson") + if orjson is None: + raise ValueError( + "The orjson encoder requires the orjson package" + ) + + self._default_encoder = val + + +config = JsonConfig() + + def coerce_to_strict(const): """ This is used to ultimately *encode* into strict JSON, see `encode` @@ -23,7 +56,7 @@ def coerce_to_strict(const): return const -def to_json(fig, validate=True, pretty=False, remove_uids=True, engine="auto"): +def to_json(fig, validate=True, pretty=False, remove_uids=True, engine=None): """ Convert a figure to a JSON string representation @@ -43,6 +76,14 @@ def to_json(fig, validate=True, pretty=False, remove_uids=True, engine="auto"): remove_uids: bool (default True) True if trace UIDs should be omitted from the JSON representation + engine: str (default None) + The JSON encoding engine to use. One of: + - "json" for a rewritten encoder based on the built-in Python json module + - "orjson" for a fast encoder the requires the orjson package + - "legacy" for the legacy JSON encoder. + If not specified, the default encoder is set to the current value of + plotly.io.json.config.default_encoder. + Returns ------- str @@ -61,6 +102,9 @@ def to_json(fig, validate=True, pretty=False, remove_uids=True, engine="auto"): trace.pop("uid", None) # Determine json engine + if engine is None: + engine = config.default_encoder + if engine == "auto": if orjson is not None: engine = "orjson" @@ -133,7 +177,7 @@ def to_json(fig, validate=True, pretty=False, remove_uids=True, engine="auto"): return orjson.dumps(cleaned, option=opts).decode("utf8") -def write_json(fig, file, validate=True, pretty=False, remove_uids=True): +def write_json(fig, file, validate=True, pretty=False, remove_uids=True, engine=None): """ Convert a figure to JSON and write it to a file or writeable object @@ -154,6 +198,13 @@ def write_json(fig, file, validate=True, pretty=False, remove_uids=True): remove_uids: bool (default True) True if trace UIDs should be omitted from the JSON representation + engine: str (default None) + The JSON encoding engine to use. One of: + - "json" for a rewritten encoder based on the built-in Python json module + - "orjson" for a fast encoder the requires the orjson package + - "legacy" for the legacy JSON encoder. + If not specified, the default encoder is set to the current value of + plotly.io.json.config.default_encoder. Returns ------- None @@ -162,7 +213,7 @@ def write_json(fig, file, validate=True, pretty=False, remove_uids=True): # Get JSON string # --------------- # Pass through validate argument and let to_json handle validation logic - json_str = to_json(fig, validate=validate, pretty=pretty, remove_uids=remove_uids) + json_str = to_json(fig, validate=validate, pretty=pretty, remove_uids=remove_uids, engine=engine) # Check if file is a string # ------------------------- diff --git a/packages/python/plotly/plotly/io/json.py b/packages/python/plotly/plotly/io/json.py new file mode 100644 index 0000000000..009fae4f4e --- /dev/null +++ b/packages/python/plotly/plotly/io/json.py @@ -0,0 +1 @@ +from ._json import to_json, write_json, from_json, read_json, config From 7b235ef43eaf17069bfac4765604f4066e977784 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Sat, 5 Dec 2020 15:07:11 -0500 Subject: [PATCH 06/99] default_encoder to default_engine --- packages/python/plotly/plotly/io/_json.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/python/plotly/plotly/io/_json.py b/packages/python/plotly/plotly/io/_json.py index 8b89f6ecf6..c93498e810 100644 --- a/packages/python/plotly/plotly/io/_json.py +++ b/packages/python/plotly/plotly/io/_json.py @@ -17,14 +17,14 @@ class JsonConfig(object): _valid_encoders = ("legacy", "json", "orjson", "auto") def __init__(self): - self._default_encoder = "auto" + self._default_engine = "auto" @property - def default_encoder(self): - return self._default_encoder + def default_engine(self): + return self._default_engine - @default_encoder.setter - def default_encoder(self, val): + @default_engine.setter + def default_engine(self, val): if val not in JsonConfig._valid_encoders: raise ValueError( "Supported JSON encoders include {valid}\n" @@ -38,7 +38,7 @@ def default_encoder(self, val): "The orjson encoder requires the orjson package" ) - self._default_encoder = val + self._default_engine = val config = JsonConfig() @@ -103,7 +103,7 @@ def to_json(fig, validate=True, pretty=False, remove_uids=True, engine=None): # Determine json engine if engine is None: - engine = config.default_encoder + engine = config.default_engine if engine == "auto": if orjson is not None: From 7895b6a0f72b9ebfe864ffaa960daec4be9ead0d Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Sat, 5 Dec 2020 15:25:20 -0500 Subject: [PATCH 07/99] blacken --- packages/python/plotly/plotly/io/_json.py | 41 ++++++++++++++--------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/packages/python/plotly/plotly/io/_json.py b/packages/python/plotly/plotly/io/_json.py index c93498e810..bf4720a3d1 100644 --- a/packages/python/plotly/plotly/io/_json.py +++ b/packages/python/plotly/plotly/io/_json.py @@ -34,9 +34,7 @@ def default_engine(self, val): if val == "orjson": orjson = get_module("orjson") if orjson is None: - raise ValueError( - "The orjson encoder requires the orjson package" - ) + raise ValueError("The orjson encoder requires the orjson package") self._default_engine = val @@ -113,10 +111,12 @@ def to_json(fig, validate=True, pretty=False, remove_uids=True, engine=None): elif engine not in ["orjson", "json", "legacy"]: raise ValueError("Invalid json engine: %s" % engine) - modules = {"sage_all": get_module("sage.all", should_load=False), - "np": get_module("numpy", should_load=False), - "pd": get_module("pandas", should_load=False), - "image": get_module("PIL.Image", should_load=False)} + modules = { + "sage_all": get_module("sage.all", should_load=False), + "np": get_module("numpy", should_load=False), + "pd": get_module("pandas", should_load=False), + "image": get_module("PIL.Image", should_load=False), + } orjson = get_module("orjson", should_load=True) @@ -132,7 +132,8 @@ def to_json(fig, validate=True, pretty=False, remove_uids=True, engine=None): if engine == "json": cleaned = clean_to_json_compatible( - fig_dict, numpy_allowed=False, + fig_dict, + numpy_allowed=False, non_finite_allowed=False, datetime_allowed=False, modules=modules, @@ -158,18 +159,21 @@ def to_json(fig, validate=True, pretty=False, remove_uids=True, engine=None): return json.dumps(new_o, **opts) else: from _plotly_utils.utils import PlotlyJSONEncoder + return json.dumps(fig_dict, cls=PlotlyJSONEncoder, **opts) elif engine == "orjson": - opts = (orjson.OPT_SORT_KEYS - | orjson.OPT_SERIALIZE_NUMPY - | orjson.OPT_OMIT_MICROSECONDS - ) + opts = ( + orjson.OPT_SORT_KEYS + | orjson.OPT_SERIALIZE_NUMPY + | orjson.OPT_OMIT_MICROSECONDS + ) if pretty: opts |= orjson.OPT_INDENT_2 cleaned = clean_to_json_compatible( - fig_dict, numpy_allowed=True, + fig_dict, + numpy_allowed=True, non_finite_allowed=True, datetime_allowed=True, modules=modules, @@ -213,7 +217,9 @@ def write_json(fig, file, validate=True, pretty=False, remove_uids=True, engine= # Get JSON string # --------------- # Pass through validate argument and let to_json handle validation logic - json_str = to_json(fig, validate=validate, pretty=pretty, remove_uids=remove_uids, engine=engine) + json_str = to_json( + fig, validate=validate, pretty=pretty, remove_uids=remove_uids, engine=engine + ) # Check if file is a string # ------------------------- @@ -359,7 +365,11 @@ def clean_to_json_compatible(obj, **kwargs): if np is not None: if obj is np.ma.core.masked: return float("nan") - elif numpy_allowed and isinstance(obj, np.ndarray) and obj.dtype.kind in ("b", "i", "u", "f"): + elif ( + numpy_allowed + and isinstance(obj, np.ndarray) + and obj.dtype.kind in ("b", "i", "u", "f") + ): return obj # pandas @@ -372,7 +382,6 @@ def clean_to_json_compatible(obj, **kwargs): elif datetime_allowed and obj.dtype.kind == "M": return obj.dt.to_pydatetime().tolist() - # datetime and date if not datetime_allowed: try: From ce05a68965a252a1756d6eac64bf319ef17ed158 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Sun, 6 Dec 2020 13:25:51 -0500 Subject: [PATCH 08/99] Handle Dash objects in to_json --- packages/python/plotly/plotly/io/_utils.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/python/plotly/plotly/io/_utils.py b/packages/python/plotly/plotly/io/_utils.py index 000cb56b01..6b5f8b40f8 100644 --- a/packages/python/plotly/plotly/io/_utils.py +++ b/packages/python/plotly/plotly/io/_utils.py @@ -15,6 +15,8 @@ def validate_coerce_fig_to_dict(fig, validate, clone=True): fig_dict = plotly.graph_objs.Figure(fig).to_plotly_json() else: fig_dict = fig + elif hasattr(fig, "to_plotly_json"): + fig_dict = fig.to_plotly_json() else: raise ValueError( """ From 3ed505804570be0eacb7d7a4f2511042b2701597 Mon Sep 17 00:00:00 2001 From: adehad <26027314+adehad@users.noreply.github.com> Date: Tue, 8 Dec 2020 12:41:39 +0000 Subject: [PATCH 09/99] feature/include_plotlyjs uses bundles js version, new cdn-latest option --- packages/python/plotly/plotly/io/_html.py | 39 +++++++++----- .../python/plotly/plotly/tests/test_html.py | 52 +++++++++++++++++++ packages/python/plotly/plotly/tests/utils.py | 8 +++ 3 files changed, 87 insertions(+), 12 deletions(-) create mode 100644 packages/python/plotly/plotly/tests/test_html.py diff --git a/packages/python/plotly/plotly/io/_html.py b/packages/python/plotly/plotly/io/_html.py index cb90de32f9..d0ba380de3 100644 --- a/packages/python/plotly/plotly/io/_html.py +++ b/packages/python/plotly/plotly/io/_html.py @@ -6,7 +6,7 @@ import six from plotly.io._utils import validate_coerce_fig_to_dict -from plotly.offline.offline import _get_jconfig, get_plotlyjs +from plotly.offline.offline import _get_jconfig, get_plotlyjs, get_plotlyjs_version from plotly import utils @@ -58,10 +58,16 @@ def to_html( fully self-contained and can be used offline. If 'cdn', a script tag that references the plotly.js CDN is included - in the output. HTML files generated with this option are about 3MB - smaller than those generated with include_plotlyjs=True, but they - require an active internet connection in order to load the plotly.js - library. + in the output. The url used is versioned to match the bundled plotly.js. + HTML files generated with this option are about 3MB smaller than those + generated with include_plotlyjs=True, but they require an active + internet connection in order to load the plotly.js library. + + If 'cdn-latest', a script tag that always references the latest plotly.js + CDN is included in the output. + HTML files generated with this option are about 3MB smaller than those + generated with include_plotlyjs=True, but they require an active + internet connection in order to load the plotly.js library. If 'directory', a script tag is included that references an external plotly.min.js bundle that is assumed to reside in the same @@ -266,12 +272,15 @@ def to_html( require_start = 'require(["plotly"], function(Plotly) {' require_end = "});" - elif include_plotlyjs == "cdn": + elif include_plotlyjs == "cdn" or include_plotlyjs == "cdn-latest": + cdn_ver = get_plotlyjs_version() + if include_plotlyjs == "cdn-latest": + cdn_ver = "latest" load_plotlyjs = """\ {win_config} - \ + \ """.format( - win_config=_window_plotly_config + win_config=_window_plotly_config, cdn_ver=cdn_ver ) elif include_plotlyjs == "directory": @@ -417,10 +426,16 @@ def write_html( fully self-contained and can be used offline. If 'cdn', a script tag that references the plotly.js CDN is included - in the output. HTML files generated with this option are about 3MB - smaller than those generated with include_plotlyjs=True, but they - require an active internet connection in order to load the plotly.js - library. + in the output. The url used is versioned to match the bundled plotly.js. + HTML files generated with this option are about 3MB smaller than those + generated with include_plotlyjs=True, but they require an active + internet connection in order to load the plotly.js library. + + If 'cdn-latest', a script tag that always references the latest plotly.js + CDN is included in the output. + HTML files generated with this option are about 3MB smaller than those + generated with include_plotlyjs=True, but they require an active + internet connection in order to load the plotly.js library. If 'directory', a script tag is included that references an external plotly.min.js bundle that is assumed to reside in the same diff --git a/packages/python/plotly/plotly/tests/test_html.py b/packages/python/plotly/plotly/tests/test_html.py new file mode 100644 index 0000000000..3c0efa4f54 --- /dev/null +++ b/packages/python/plotly/plotly/tests/test_html.py @@ -0,0 +1,52 @@ +import sys + +import pytest +import numpy as np + + +import plotly.graph_objs as go +import plotly.io as pio +from plotly.tests.utils import plotly_cdn_url + + +if sys.version_info >= (3, 3): + import unittest.mock as mock + from unittest.mock import MagicMock +else: + import mock + from mock import MagicMock + +# fixtures +# -------- +@pytest.fixture +def fig1(request): + return go.Figure( + data=[ + { + "type": "scatter", + "y": np.array([2, 1, 3, 2, 4, 2]), + "marker": {"color": "green"}, + } + ], + layout={"title": {"text": "Figure title"}}, + ) + + +# HTML +# ---- +def assert_latest_cdn_connected(html): + assert plotly_cdn_url(cdn_ver="latest") in html + + +def assert_locked_version_cdn_connected(html): + assert plotly_cdn_url() in html + + +def test_latest_cdn_included(fig1): + html_str = pio.to_html(fig1, include_plotlyjs="cdn-latest") + assert_latest_cdn_connected(html_str) + + +def test_versioned_cdn_included(fig1): + html_str = pio.to_html(fig1, include_plotlyjs="cdn") + assert_locked_version_cdn_connected(html_str) diff --git a/packages/python/plotly/plotly/tests/utils.py b/packages/python/plotly/plotly/tests/utils.py index fc0ad0e8c7..eb4471efef 100644 --- a/packages/python/plotly/plotly/tests/utils.py +++ b/packages/python/plotly/plotly/tests/utils.py @@ -2,6 +2,7 @@ from numbers import Number as Num from unittest import TestCase import plotly.io as pio +from plotly.offline import get_plotlyjs_version class TestCaseNoTemplate(TestCase): @@ -95,3 +96,10 @@ def is_num_list(item): except TypeError: return False return True + + +def plotly_cdn_url(cdn_ver=get_plotlyjs_version()): + """Return plotly CDN url for use in assertions.""" + return "https://cdn.plot.ly/plotly-{cdn_ver}.min.js".format( + cdn_ver=cdn_ver + ) From 49a777dad658218b126e993cf3d65440585df57e Mon Sep 17 00:00:00 2001 From: adehad <26027314+adehad@users.noreply.github.com> Date: Tue, 8 Dec 2020 16:07:39 +0000 Subject: [PATCH 10/99] fix other tests that are broken by new 'cdn' option behaviour --- .../plotly/tests/test_core/test_offline/test_offline.py | 4 +++- .../python/plotly/plotly/tests/test_io/test_renderers.py | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/python/plotly/plotly/tests/test_core/test_offline/test_offline.py b/packages/python/plotly/plotly/tests/test_core/test_offline/test_offline.py index 315a81b941..e407864a0e 100644 --- a/packages/python/plotly/plotly/tests/test_core/test_offline/test_offline.py +++ b/packages/python/plotly/plotly/tests/test_core/test_offline/test_offline.py @@ -12,6 +12,8 @@ import plotly import plotly.io as pio +from plotly.tests.utils import plotly_cdn_url + import json packages_root = os.path.dirname( @@ -39,7 +41,7 @@ """ -cdn_script = '" +cdn_script = ''.format(cdn_url=plotly_cdn_url()) directory_script = '' diff --git a/packages/python/plotly/plotly/tests/test_io/test_renderers.py b/packages/python/plotly/plotly/tests/test_io/test_renderers.py index 3511201c7d..ed9870fc94 100644 --- a/packages/python/plotly/plotly/tests/test_io/test_renderers.py +++ b/packages/python/plotly/plotly/tests/test_io/test_renderers.py @@ -11,6 +11,7 @@ import plotly.graph_objs as go import plotly.io as pio from plotly.offline import get_plotlyjs +from plotly.tests.utils import plotly_cdn_url if sys.version_info >= (3, 3): import unittest.mock as mock @@ -135,7 +136,7 @@ def assert_not_full_html(html): def assert_connected(html): - assert "https://cdn.plot.ly/plotly-latest.min" in html + assert plotly_cdn_url() in html def assert_offline(html): @@ -306,7 +307,7 @@ def test_repr_html(renderer): template = ( '
\n " - ' ' + ' ' '
""".format( - win_config=_window_plotly_config, mathjax_config=_mathjax_config + win_config=_window_plotly_config, + mathjax_config=_mathjax_config, + plotly_cdn=plotly_cdn_url().rstrip(".js"), ) else: diff --git a/packages/python/plotly/plotly/io/_html.py b/packages/python/plotly/plotly/io/_html.py index d0ba380de3..52f1cee7f7 100644 --- a/packages/python/plotly/plotly/io/_html.py +++ b/packages/python/plotly/plotly/io/_html.py @@ -5,8 +5,8 @@ import six -from plotly.io._utils import validate_coerce_fig_to_dict -from plotly.offline.offline import _get_jconfig, get_plotlyjs, get_plotlyjs_version +from plotly.io._utils import validate_coerce_fig_to_dict, plotly_cdn_url +from plotly.offline.offline import _get_jconfig, get_plotlyjs from plotly import utils @@ -273,14 +273,14 @@ def to_html( require_end = "});" elif include_plotlyjs == "cdn" or include_plotlyjs == "cdn-latest": - cdn_ver = get_plotlyjs_version() + cdn_url = plotly_cdn_url() if include_plotlyjs == "cdn-latest": - cdn_ver = "latest" + cdn_url = plotly_cdn_url(cdn_ver="latest") load_plotlyjs = """\ {win_config} - \ + \ """.format( - win_config=_window_plotly_config, cdn_ver=cdn_ver + win_config=_window_plotly_config, cdn_url=cdn_url ) elif include_plotlyjs == "directory": diff --git a/packages/python/plotly/plotly/io/_utils.py b/packages/python/plotly/plotly/io/_utils.py index b3b376e9d8..93648bc6c3 100644 --- a/packages/python/plotly/plotly/io/_utils.py +++ b/packages/python/plotly/plotly/io/_utils.py @@ -2,6 +2,7 @@ import plotly import plotly.graph_objs as go +from plotly.offline import get_plotlyjs_version def validate_coerce_fig_to_dict(fig, validate): @@ -40,3 +41,10 @@ def validate_coerce_output_type(output_type): Must be one of: 'Figure', 'FigureWidget'""" ) return cls + + +def plotly_cdn_url(cdn_ver=get_plotlyjs_version()): + """Return a valid plotly CDN url.""" + return "https://cdn.plot.ly/plotly-{cdn_ver}.min.js".format( + cdn_ver=cdn_ver, + ) diff --git a/packages/python/plotly/plotly/tests/test_html.py b/packages/python/plotly/plotly/tests/test_io/test_html.py similarity index 95% rename from packages/python/plotly/plotly/tests/test_html.py rename to packages/python/plotly/plotly/tests/test_io/test_html.py index 3c0efa4f54..026677c0d5 100644 --- a/packages/python/plotly/plotly/tests/test_html.py +++ b/packages/python/plotly/plotly/tests/test_io/test_html.py @@ -6,7 +6,7 @@ import plotly.graph_objs as go import plotly.io as pio -from plotly.tests.utils import plotly_cdn_url +from plotly.io._utils import plotly_cdn_url if sys.version_info >= (3, 3): diff --git a/packages/python/plotly/plotly/tests/test_io/test_renderers.py b/packages/python/plotly/plotly/tests/test_io/test_renderers.py index ed9870fc94..8a58a2373b 100644 --- a/packages/python/plotly/plotly/tests/test_io/test_renderers.py +++ b/packages/python/plotly/plotly/tests/test_io/test_renderers.py @@ -11,7 +11,7 @@ import plotly.graph_objs as go import plotly.io as pio from plotly.offline import get_plotlyjs -from plotly.tests.utils import plotly_cdn_url +from plotly.io._utils import plotly_cdn_url if sys.version_info >= (3, 3): import unittest.mock as mock @@ -135,8 +135,8 @@ def assert_not_full_html(html): assert not html.startswith(" Date: Tue, 8 Dec 2020 17:39:07 +0000 Subject: [PATCH 12/99] add new `include_plotlyjs='cdn'`behaviour to changelog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ac2a557fa..00e5114123 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ This project adheres to [Semantic Versioning](http://semver.org/). ### Added ### Fixed +- Plotly.js cdn url will now be versioned by default for: +`include_plotlyjs='cdn'` a new `include_plotlyjs='cdn-latest'` option +has the original behaviour. Prevents likelihood of htmls generated with older `plotly.js` versions breaking with version bumps. [2961](https://github.com/plotly/plotly.py/pull/2961) ### Updated From 023ee573acef95a9a62636082149d82e416caca2 Mon Sep 17 00:00:00 2001 From: adehad <26027314+adehad@users.noreply.github.com> Date: Tue, 8 Dec 2020 17:45:54 +0000 Subject: [PATCH 13/99] fix tests after poor refactor --- .../plotly/plotly/tests/test_core/test_offline/test_offline.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/python/plotly/plotly/tests/test_core/test_offline/test_offline.py b/packages/python/plotly/plotly/tests/test_core/test_offline/test_offline.py index e407864a0e..c3f428117e 100644 --- a/packages/python/plotly/plotly/tests/test_core/test_offline/test_offline.py +++ b/packages/python/plotly/plotly/tests/test_core/test_offline/test_offline.py @@ -12,7 +12,7 @@ import plotly import plotly.io as pio -from plotly.tests.utils import plotly_cdn_url +from plotly.io._utils import plotly_cdn_url import json From 12db5cb1f3fa22cec33873e95b89d90adaa2ccb6 Mon Sep 17 00:00:00 2001 From: adehad <26027314+adehad@users.noreply.github.com> Date: Tue, 8 Dec 2020 17:53:08 +0000 Subject: [PATCH 14/99] format after using right black version --- packages/python/plotly/plotly/io/_utils.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/python/plotly/plotly/io/_utils.py b/packages/python/plotly/plotly/io/_utils.py index 93648bc6c3..c8d47712d1 100644 --- a/packages/python/plotly/plotly/io/_utils.py +++ b/packages/python/plotly/plotly/io/_utils.py @@ -45,6 +45,4 @@ def validate_coerce_output_type(output_type): def plotly_cdn_url(cdn_ver=get_plotlyjs_version()): """Return a valid plotly CDN url.""" - return "https://cdn.plot.ly/plotly-{cdn_ver}.min.js".format( - cdn_ver=cdn_ver, - ) + return "https://cdn.plot.ly/plotly-{cdn_ver}.min.js".format(cdn_ver=cdn_ver,) From 7e4b256150391f8186f80bcd881fa35f8d793d33 Mon Sep 17 00:00:00 2001 From: adehad <26027314+adehad@users.noreply.github.com> Date: Tue, 8 Dec 2020 17:58:28 +0000 Subject: [PATCH 15/99] format changelog entry better --- CHANGELOG.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 00e5114123..a89170626b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,9 +7,11 @@ This project adheres to [Semantic Versioning](http://semver.org/). ### Added ### Fixed -- Plotly.js cdn url will now be versioned by default for: -`include_plotlyjs='cdn'` a new `include_plotlyjs='cdn-latest'` option -has the original behaviour. Prevents likelihood of htmls generated with older `plotly.js` versions breaking with version bumps. [2961](https://github.com/plotly/plotly.py/pull/2961) +- Plotly.js cdn url will now be versioned by default for: + `include_plotlyjs='cdn'` a new `include_plotlyjs='cdn-latest'` option + has the original behaviour. Prevents likelihood of htmls generated with older + `plotly.js` versions breaking with version bumps. + [2961](https://github.com/plotly/plotly.py/pull/2961) ### Updated From 4ef651054c5ff43a2d89b1ae975ce0f46dc20ab5 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Thu, 31 Dec 2020 11:13:02 -0500 Subject: [PATCH 16/99] add JSON encoding tests --- packages/python/plotly/plotly/io/_json.py | 277 +++++++++++++----- packages/python/plotly/plotly/io/json.py | 10 +- .../tests/test_io/test_to_from_plotly_json.py | 149 ++++++++++ 3 files changed, 359 insertions(+), 77 deletions(-) create mode 100644 packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py diff --git a/packages/python/plotly/plotly/io/_json.py b/packages/python/plotly/plotly/io/_json.py index bf4720a3d1..d809e702cc 100644 --- a/packages/python/plotly/plotly/io/_json.py +++ b/packages/python/plotly/plotly/io/_json.py @@ -3,10 +3,10 @@ from six import string_types import json import decimal +import os from plotly.io._utils import validate_coerce_fig_to_dict, validate_coerce_output_type -from _plotly_utils.utils import iso_to_plotly_time_string from _plotly_utils.optional_imports import get_module from _plotly_utils.basevalidators import ImageUriValidator @@ -14,10 +14,10 @@ # Orca configuration class # ------------------------ class JsonConfig(object): - _valid_encoders = ("legacy", "json", "orjson", "auto") + _valid_engines = ("legacy", "json", "orjson", "auto") def __init__(self): - self._default_engine = "auto" + self._default_engine = "legacy" @property def default_engine(self): @@ -25,16 +25,16 @@ def default_engine(self): @default_engine.setter def default_engine(self, val): - if val not in JsonConfig._valid_encoders: + if val not in JsonConfig._valid_engines: raise ValueError( - "Supported JSON encoders include {valid}\n" - " Received {val}".format(valid=JsonConfig._valid_encoders, val=val) + "Supported JSON engines include {valid}\n" + " Received {val}".format(valid=JsonConfig._valid_engines, val=val) ) if val == "orjson": orjson = get_module("orjson") if orjson is None: - raise ValueError("The orjson encoder requires the orjson package") + raise ValueError("The orjson engine requires the orjson package") self._default_engine = val @@ -54,51 +54,39 @@ def coerce_to_strict(const): return const -def to_json(fig, validate=True, pretty=False, remove_uids=True, engine=None): +def to_plotly_json(plotly_object, pretty=False, engine=None): """ - Convert a figure to a JSON string representation + Convert a plotly/Dash object to a JSON string representation Parameters ---------- - fig: - Figure object or dict representing a figure - - validate: bool (default True) - True if the figure should be validated before being converted to - JSON, False otherwise. + plotly_object: + A plotly/Dash object represented as a dict, graph_object, or Dash component pretty: bool (default False) True if JSON representation should be pretty-printed, False if representation should be as compact as possible. - remove_uids: bool (default True) - True if trace UIDs should be omitted from the JSON representation - engine: str (default None) The JSON encoding engine to use. One of: - - "json" for a rewritten encoder based on the built-in Python json module - - "orjson" for a fast encoder the requires the orjson package - - "legacy" for the legacy JSON encoder. - If not specified, the default encoder is set to the current value of - plotly.io.json.config.default_encoder. + - "json" for an engine based on the built-in Python json module + - "orjson" for a faster engine that requires the orjson package + - "legacy" for the legacy JSON engine. + - "auto" for the "orjson" engine if available, otherwise "json" + If not specified, the default engine is set to the current value of + plotly.io.json.config.default_engine. Returns ------- str - Representation of figure as a JSON string + Representation of input object as a JSON string + + See Also + -------- + to_json : Convert a plotly Figure to JSON with validation """ orjson = get_module("orjson", should_load=True) - # Validate figure - # --------------- - fig_dict = validate_coerce_fig_to_dict(fig, validate, clone=False) - - # Remove trace uid - # ---------------- - if remove_uids: - for trace in fig_dict.get("data", []): - trace.pop("uid", None) - # Determine json engine if engine is None: engine = config.default_engine @@ -132,9 +120,8 @@ def to_json(fig, validate=True, pretty=False, remove_uids=True, engine=None): if engine == "json": cleaned = clean_to_json_compatible( - fig_dict, + plotly_object, numpy_allowed=False, - non_finite_allowed=False, datetime_allowed=False, modules=modules, ) @@ -149,7 +136,6 @@ def to_json(fig, validate=True, pretty=False, remove_uids=True, engine=None): try: new_o = json.loads(encoded_o, parse_constant=coerce_to_strict) except ValueError: - # invalid separators will fail here. raise a helpful exception raise ValueError( "Encoding into strict JSON failed. Did you set the separators " @@ -160,27 +146,70 @@ def to_json(fig, validate=True, pretty=False, remove_uids=True, engine=None): else: from _plotly_utils.utils import PlotlyJSONEncoder - return json.dumps(fig_dict, cls=PlotlyJSONEncoder, **opts) + return json.dumps(plotly_object, cls=PlotlyJSONEncoder, **opts) elif engine == "orjson": - opts = ( - orjson.OPT_SORT_KEYS - | orjson.OPT_SERIALIZE_NUMPY - | orjson.OPT_OMIT_MICROSECONDS - ) + opts = orjson.OPT_SORT_KEYS | orjson.OPT_SERIALIZE_NUMPY if pretty: opts |= orjson.OPT_INDENT_2 cleaned = clean_to_json_compatible( - fig_dict, - numpy_allowed=True, - non_finite_allowed=True, - datetime_allowed=True, - modules=modules, + plotly_object, numpy_allowed=True, datetime_allowed=True, modules=modules, ) return orjson.dumps(cleaned, option=opts).decode("utf8") +def to_json(fig, validate=True, pretty=False, remove_uids=True, engine=None): + """ + Convert a figure to a JSON string representation + + Parameters + ---------- + fig: + Figure object or dict representing a figure + + validate: bool (default True) + True if the figure should be validated before being converted to + JSON, False otherwise. + + pretty: bool (default False) + True if JSON representation should be pretty-printed, False if + representation should be as compact as possible. + + remove_uids: bool (default True) + True if trace UIDs should be omitted from the JSON representation + + engine: str (default None) + The JSON encoding engine to use. One of: + - "json" for an engine based on the built-in Python json module + - "orjson" for a faster engine that requires the orjson package + - "legacy" for the legacy JSON engine. + - "auto" for the "orjson" engine if available, otherwise "json" + If not specified, the default engine is set to the current value of + plotly.io.json.config.default_engine. + + Returns + ------- + str + Representation of figure as a JSON string + + See Also + -------- + to_plotly_json : Convert an arbitrary plotly graph_object or Dash component to JSON + """ + # Validate figure + # --------------- + fig_dict = validate_coerce_fig_to_dict(fig, validate, clone=False) + + # Remove trace uid + # ---------------- + if remove_uids: + for trace in fig_dict.get("data", []): + trace.pop("uid", None) + + return to_plotly_json(fig_dict, pretty=pretty, engine=engine) + + def write_json(fig, file, validate=True, pretty=False, remove_uids=True, engine=None): """ Convert a figure to JSON and write it to a file or writeable @@ -204,11 +233,12 @@ def write_json(fig, file, validate=True, pretty=False, remove_uids=True, engine= engine: str (default None) The JSON encoding engine to use. One of: - - "json" for a rewritten encoder based on the built-in Python json module - - "orjson" for a fast encoder the requires the orjson package - - "legacy" for the legacy JSON encoder. - If not specified, the default encoder is set to the current value of - plotly.io.json.config.default_encoder. + - "json" for an engine based on the built-in Python json module + - "orjson" for a faster engine that requires the orjson package + - "legacy" for the legacy JSON engine. + - "auto" for the "orjson" engine if available, otherwise "json" + If not specified, the default engine is set to the current value of + plotly.io.json.config.default_engine. Returns ------- None @@ -234,7 +264,67 @@ def write_json(fig, file, validate=True, pretty=False, remove_uids=True, engine= file.write(json_str) -def from_json(value, output_type="Figure", skip_invalid=False): +def from_plotly_json(value, engine=None): + """ + Parse JSON string using the specified JSON engine + + Parameters + ---------- + value: str + A JSON string + + engine: str (default None) + The JSON decoding engine to use. One of: + - if "json" or "legacy", parse JSON using built in json module + - if "orjson", parse using the faster orjson module, requires the orjson + package + - if "auto" use orjson module if available, otherwise use the json module + + If not specified, the default engine is set to the current value of + plotly.io.json.config.default_engine. + + Returns + ------- + dict + """ + # Validate value + # -------------- + if not isinstance(value, (string_types, bytes)): + raise ValueError( + """ +from_plotly_json requires a string or bytes argument but received value of type {typ} + Received value: {value}""".format( + typ=type(value), value=value + ) + ) + + orjson = get_module("orjson", should_load=True) + + # Determine json engine + if engine is None: + engine = config.default_engine + + if engine == "auto": + if orjson is not None: + engine = "orjson" + else: + engine = "json" + elif engine not in ["orjson", "json", "legacy"]: + raise ValueError("Invalid json engine: %s" % engine) + + if engine == "orjson": + # orjson handles bytes input natively + value_dict = orjson.loads(value) + else: + # decode bytes to str for built-in json module + if isinstance(value, bytes): + value = value.decode("utf-8") + value_dict = json.loads(value) + + return value_dict + + +def from_json(value, output_type="Figure", skip_invalid=False, engine=None): """ Construct a figure from a JSON string @@ -251,6 +341,16 @@ def from_json(value, output_type="Figure", skip_invalid=False): False if invalid figure properties should result in an exception. True if invalid figure properties should be silently ignored. + engine: str (default None) + The JSON decoding engine to use. One of: + - if "json" or "legacy", parse JSON using built in json module + - if "orjson", parse using the faster orjson module, requires the orjson + package + - if "auto" use orjson module if available, otherwise use the json module + + If not specified, the default engine is set to the current value of + plotly.io.json.config.default_engine. + Raises ------ ValueError @@ -262,20 +362,9 @@ def from_json(value, output_type="Figure", skip_invalid=False): Figure or FigureWidget """ - # Validate value - # -------------- - if not isinstance(value, string_types): - raise ValueError( - """ -from_json requires a string argument but received value of type {typ} - Received value: {value}""".format( - typ=type(value), value=value - ) - ) - # Decode JSON # ----------- - fig_dict = json.loads(value) + fig_dict = from_plotly_json(value, engine=engine) # Validate coerce output type # --------------------------- @@ -287,7 +376,7 @@ def from_json(value, output_type="Figure", skip_invalid=False): return fig -def read_json(file, output_type="Figure", skip_invalid=False): +def read_json(file, output_type="Figure", skip_invalid=False, engine=None): """ Construct a figure from the JSON contents of a local file or readable Python object @@ -306,6 +395,16 @@ def read_json(file, output_type="Figure", skip_invalid=False): False if invalid figure properties should result in an exception. True if invalid figure properties should be silently ignored. + engine: str (default None) + The JSON decoding engine to use. One of: + - if "json" or "legacy", parse JSON using built in json module + - if "orjson", parse using the faster orjson module, requires the orjson + package + - if "auto" use orjson module if available, otherwise use the json module + + If not specified, the default engine is set to the current value of + plotly.io.json.config.default_engine. + Returns ------- Figure or FigureWidget @@ -327,16 +426,21 @@ def read_json(file, output_type="Figure", skip_invalid=False): # Construct and return figure # --------------------------- - return from_json(json_str, skip_invalid=skip_invalid, output_type=output_type) + return from_json( + json_str, skip_invalid=skip_invalid, output_type=output_type, engine=engine + ) def clean_to_json_compatible(obj, **kwargs): # Try handling value as a scalar value that we have a conversion for. # Return immediately if we know we've hit a primitive value + # Bail out fast for simple scalar types + if isinstance(obj, (int, float, string_types)): + return obj + # unpack kwargs numpy_allowed = kwargs.get("numpy_allowed", False) - non_finite_allowed = kwargs.get("non_finite_allowed", False) datetime_allowed = kwargs.get("datetime_allowed", False) modules = kwargs.get("modules", {}) @@ -376,23 +480,44 @@ def clean_to_json_compatible(obj, **kwargs): if pd is not None: if obj is pd.NaT: return None - elif isinstance(obj, pd.Series): + elif isinstance(obj, (pd.Series, pd.DatetimeIndex)): if numpy_allowed and obj.dtype.kind in ("b", "i", "u", "f"): return obj.values - elif datetime_allowed and obj.dtype.kind == "M": - return obj.dt.to_pydatetime().tolist() + elif obj.dtype.kind == "M": + if isinstance(obj, pd.Series): + dt_values = obj.dt.to_pydatetime().tolist() + else: # DatetimeIndex + dt_values = obj.to_pydatetime().tolist() + + if not datetime_allowed: + # Note: We don't need to handle dropping timezones here because + # numpy's datetime64 doesn't support them and pandas's tolist() + # doesn't preserve them. + for i in range(len(dt_values)): + dt_values[i] = dt_values[i].isoformat() + + return dt_values # datetime and date if not datetime_allowed: try: - # Is this cleanup still needed? - return iso_to_plotly_time_string(obj.isoformat()) + # Need to drop timezone for scalar datetimes + return obj.replace(tzinfo=None).isoformat() + except (TypeError, AttributeError): + pass + + if np and isinstance(obj, np.datetime64): + return str(obj) + else: + try: + # Need to drop timezone for scalar datetimes. Don't need to convert + # to string since engine can do that + return obj.replace(tzinfo=None) except AttributeError: pass - # Try .tolist() convertible + # Try .tolist() convertible, do not recurse inside try: - # obj = obj.tolist() return obj.tolist() except AttributeError: pass diff --git a/packages/python/plotly/plotly/io/json.py b/packages/python/plotly/plotly/io/json.py index 009fae4f4e..8f895dc81a 100644 --- a/packages/python/plotly/plotly/io/json.py +++ b/packages/python/plotly/plotly/io/json.py @@ -1 +1,9 @@ -from ._json import to_json, write_json, from_json, read_json, config +from ._json import ( + to_json, + write_json, + from_json, + read_json, + config, + to_plotly_json, + from_plotly_json, +) diff --git a/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py b/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py new file mode 100644 index 0000000000..2cc571488f --- /dev/null +++ b/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py @@ -0,0 +1,149 @@ +import plotly.io.json as pio +import plotly.graph_objects as go +import numpy as np +import pandas as pd +import pytest +import json +import datetime +from pytz import timezone + +eastern = timezone("US/Eastern") + + +# Testing helper +def build_json_opts(pretty=False): + opts = {"sort_keys": True} + if pretty: + opts["indent"] = 2 + else: + opts["separators"] = (",", ":") + return opts + + +def to_json_test(value, pretty=False): + return json.dumps(value, **build_json_opts(pretty=pretty)) + + +def isoformat_test(dt_value): + if isinstance(dt_value, np.datetime64): + return str(dt_value) + elif isinstance(dt_value, datetime.datetime): + return dt_value.replace(tzinfo=None).isoformat() + else: + raise ValueError("Unsupported date type: {}".format(type(dt_value))) + + +def build_test_dict(value): + return dict(a=value, b=[3, value], c=dict(Z=value)) + + +def build_test_dict_string(value_string, pretty=False): + if pretty: + non_pretty_str = build_test_dict_string(value_string, pretty=False) + return to_json_test(json.loads(non_pretty_str), pretty=True) + else: + value_string = str(value_string).replace(" ", "") + return """{"a":%s,"b":[3,%s],"c":{"Z":%s}}""" % tuple([value_string] * 3) + + +# Fixtures +@pytest.fixture(scope="module", params=["json", "orjson", "legacy", "auto"]) +def engine(request): + return request.param + + +@pytest.fixture(scope="module", params=[False]) +def pretty(request): + return request.param + + +@pytest.fixture(scope="module", params=["float64", "int32", "uint32"]) +def graph_object(request): + return request.param + + +@pytest.fixture(scope="module", params=["float64", "int32", "uint32"]) +def numeric_numpy_array(request): + dtype = request.param + return np.linspace(-5, 5, 4, dtype=dtype) + + +@pytest.fixture(scope="module") +def object_numpy_array(request): + return np.array(["a", 1, [2, 3]]) + + +@pytest.fixture( + scope="module", + params=[ + datetime.datetime(2003, 7, 12, 8, 34, 22), + datetime.datetime.now(), + np.datetime64(datetime.datetime.utcnow()), + eastern.localize(datetime.datetime(2003, 7, 12, 8, 34, 22)), + eastern.localize(datetime.datetime.now()), + ], +) +def datetime_value(request): + return request.param + + +@pytest.fixture( + params=[ + lambda a: pd.DatetimeIndex(a), # Pandas DatetimeIndex + lambda a: pd.Series(pd.DatetimeIndex(a)), # Pandas Datetime Series + lambda a: pd.DatetimeIndex(a).values, # Numpy datetime64 array + ] +) +def datetime_array(request, datetime_value): + return request.param([datetime_value] * 3) + + +# Encoding tests +def test_graph_object_input(engine): + scatter = go.Scatter(x=[1, 2, 3], y=np.array([4, 5, 6])) + result = pio.to_plotly_json(scatter, engine=engine) + assert result == """{"type":"scatter","x":[1,2,3],"y":[4,5,6]}""" + + +def test_numeric_numpy_encoding(numeric_numpy_array, engine, pretty): + value = build_test_dict(numeric_numpy_array) + result = pio.to_plotly_json(value, engine=engine, pretty=pretty) + + array_str = to_json_test(numeric_numpy_array.tolist()) + expected = build_test_dict_string(array_str, pretty=pretty) + assert result == expected + + +def test_object_numpy_encoding(object_numpy_array, engine, pretty): + value = build_test_dict(object_numpy_array) + result = pio.to_plotly_json(value, engine=engine, pretty=pretty) + + array_str = to_json_test(object_numpy_array.tolist()) + expected = build_test_dict_string(array_str) + assert result == expected + + +def test_datetime(datetime_value, engine, pretty): + if engine == "legacy": + pytest.skip("legacy encoder doesn't strip timezone from scalar datetimes") + + value = build_test_dict(datetime_value) + result = pio.to_plotly_json(value, engine=engine, pretty=pretty) + expected = build_test_dict_string('"{}"'.format(isoformat_test(datetime_value))) + assert result == expected + + +def test_datetime_arrays(datetime_array, engine, pretty): + value = build_test_dict(datetime_array) + result = pio.to_plotly_json(value, engine=engine) + + if isinstance(datetime_array, pd.Series): + dt_values = [d.isoformat() for d in datetime_array.dt.to_pydatetime().tolist()] + elif isinstance(datetime_array, pd.DatetimeIndex): + dt_values = [d.isoformat() for d in datetime_array.to_pydatetime().tolist()] + else: # numpy datetime64 array + dt_values = datetime_array.tolist() + + array_str = to_json_test(dt_values) + expected = build_test_dict_string(array_str) + assert result == expected From 101ba8512a9c7577a2bec19cb38813255ba7e3d2 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Thu, 31 Dec 2020 11:22:23 -0500 Subject: [PATCH 17/99] add testing of from_plotly_json --- packages/python/plotly/plotly/io/_json.py | 8 +++---- .../tests/test_io/test_to_from_plotly_json.py | 24 +++++++++++++++++-- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/packages/python/plotly/plotly/io/_json.py b/packages/python/plotly/plotly/io/_json.py index d809e702cc..2160469843 100644 --- a/packages/python/plotly/plotly/io/_json.py +++ b/packages/python/plotly/plotly/io/_json.py @@ -270,8 +270,8 @@ def from_plotly_json(value, engine=None): Parameters ---------- - value: str - A JSON string + value: str or bytes + A JSON string or bytes object engine: str (default None) The JSON decoding engine to use. One of: @@ -330,8 +330,8 @@ def from_json(value, output_type="Figure", skip_invalid=False, engine=None): Parameters ---------- - value: str - String containing the JSON representation of a figure + value: str or bytes + String or bytes object containing the JSON representation of a figure output_type: type or str (default 'Figure') The output figure type or type name. diff --git a/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py b/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py index 2cc571488f..21df038419 100644 --- a/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py +++ b/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py @@ -5,6 +5,7 @@ import pytest import json import datetime +import sys from pytz import timezone eastern = timezone("US/Eastern") @@ -46,6 +47,19 @@ def build_test_dict_string(value_string, pretty=False): return """{"a":%s,"b":[3,%s],"c":{"Z":%s}}""" % tuple([value_string] * 3) +def check_roundtrip(value, engine, pretty): + encoded = pio.to_plotly_json(value, engine=engine, pretty=pretty) + decoded = pio.from_plotly_json(encoded, engine=engine) + reencoded = pio.to_plotly_json(decoded, engine=engine, pretty=pretty) + assert encoded == reencoded + + # Check from_plotly_json with bytes on Python 3 + if sys.version_info.major == 3: + encoded_bytes = encoded.encode("utf8") + decoded_from_bytes = pio.from_plotly_json(encoded_bytes, engine=engine) + assert decoded == decoded_from_bytes + + # Fixtures @pytest.fixture(scope="module", params=["json", "orjson", "legacy", "auto"]) def engine(request): @@ -99,10 +113,12 @@ def datetime_array(request, datetime_value): # Encoding tests -def test_graph_object_input(engine): +def test_graph_object_input(engine, pretty): scatter = go.Scatter(x=[1, 2, 3], y=np.array([4, 5, 6])) result = pio.to_plotly_json(scatter, engine=engine) - assert result == """{"type":"scatter","x":[1,2,3],"y":[4,5,6]}""" + expected = """{"type":"scatter","x":[1,2,3],"y":[4,5,6]}""" + assert result == expected + check_roundtrip(result, engine=engine, pretty=pretty) def test_numeric_numpy_encoding(numeric_numpy_array, engine, pretty): @@ -112,6 +128,7 @@ def test_numeric_numpy_encoding(numeric_numpy_array, engine, pretty): array_str = to_json_test(numeric_numpy_array.tolist()) expected = build_test_dict_string(array_str, pretty=pretty) assert result == expected + check_roundtrip(result, engine=engine, pretty=pretty) def test_object_numpy_encoding(object_numpy_array, engine, pretty): @@ -121,6 +138,7 @@ def test_object_numpy_encoding(object_numpy_array, engine, pretty): array_str = to_json_test(object_numpy_array.tolist()) expected = build_test_dict_string(array_str) assert result == expected + check_roundtrip(result, engine=engine, pretty=pretty) def test_datetime(datetime_value, engine, pretty): @@ -131,6 +149,7 @@ def test_datetime(datetime_value, engine, pretty): result = pio.to_plotly_json(value, engine=engine, pretty=pretty) expected = build_test_dict_string('"{}"'.format(isoformat_test(datetime_value))) assert result == expected + check_roundtrip(result, engine=engine, pretty=pretty) def test_datetime_arrays(datetime_array, engine, pretty): @@ -147,3 +166,4 @@ def test_datetime_arrays(datetime_array, engine, pretty): array_str = to_json_test(dt_values) expected = build_test_dict_string(array_str) assert result == expected + check_roundtrip(result, engine=engine, pretty=pretty) From 67d3670e8392415d8a6ef5200e08bdef9b95ec9f Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Thu, 31 Dec 2020 11:27:41 -0500 Subject: [PATCH 18/99] Better error message when orjson not installed and orjson engine requested --- packages/python/plotly/plotly/io/_json.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/packages/python/plotly/plotly/io/_json.py b/packages/python/plotly/plotly/io/_json.py index 2160469843..52c0363e99 100644 --- a/packages/python/plotly/plotly/io/_json.py +++ b/packages/python/plotly/plotly/io/_json.py @@ -32,12 +32,16 @@ def default_engine(self, val): ) if val == "orjson": - orjson = get_module("orjson") - if orjson is None: - raise ValueError("The orjson engine requires the orjson package") + self.validate_orjson() self._default_engine = val + @classmethod + def validate_orjson(cls): + orjson = get_module("orjson") + if orjson is None: + raise ValueError("The orjson engine requires the orjson package") + config = JsonConfig() @@ -106,8 +110,6 @@ def to_plotly_json(plotly_object, pretty=False, engine=None): "image": get_module("PIL.Image", should_load=False), } - orjson = get_module("orjson", should_load=True) - # Dump to a JSON string and return # -------------------------------- if engine in ("json", "legacy"): @@ -148,6 +150,7 @@ def to_plotly_json(plotly_object, pretty=False, engine=None): return json.dumps(plotly_object, cls=PlotlyJSONEncoder, **opts) elif engine == "orjson": + JsonConfig.validate_orjson() opts = orjson.OPT_SORT_KEYS | orjson.OPT_SERIALIZE_NUMPY if pretty: @@ -287,6 +290,8 @@ def from_plotly_json(value, engine=None): ------- dict """ + orjson = get_module("orjson", should_load=True) + # Validate value # -------------- if not isinstance(value, (string_types, bytes)): @@ -298,8 +303,6 @@ def from_plotly_json(value, engine=None): ) ) - orjson = get_module("orjson", should_load=True) - # Determine json engine if engine is None: engine = config.default_engine @@ -313,6 +316,7 @@ def from_plotly_json(value, engine=None): raise ValueError("Invalid json engine: %s" % engine) if engine == "orjson": + JsonConfig.validate_orjson() # orjson handles bytes input natively value_dict = orjson.loads(value) else: From 02c00daf2865a8c27d38a9680739ba150f5d2ade Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Thu, 31 Dec 2020 11:28:41 -0500 Subject: [PATCH 19/99] Add orjson as optional testing dependency --- packages/python/plotly/tox.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/python/plotly/tox.ini b/packages/python/plotly/tox.ini index 72169192a0..4e050e0a44 100644 --- a/packages/python/plotly/tox.ini +++ b/packages/python/plotly/tox.ini @@ -75,6 +75,7 @@ deps= optional: matplotlib==2.2.3 optional: scikit-image==0.14.4 optional: kaleido + optional: orjson==3.4.6 ; CORE ENVIRONMENTS [testenv:py27-core] From 99ea6a16e68cb7be7bbf871309f89cba608623b5 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Thu, 31 Dec 2020 11:45:40 -0500 Subject: [PATCH 20/99] Replace Python 3.5 CI tests with 3.8 --- .circleci/config.yml | 60 +++++++++++++++++----------------- packages/python/plotly/tox.ini | 26 +++++++-------- 2 files changed, 43 insertions(+), 43 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index fae56c4cea..e02d94f9c4 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -31,11 +31,11 @@ jobs: command: "cd packages/python/plotly; tox -e py27-core" no_output_timeout: 20m - python-3.5-core: + python-3.6-core: docker: - - image: circleci/python:3.5-stretch-node-browsers + - image: circleci/python:3.6-stretch-node-browsers environment: - PLOTLY_TOX_PYTHON_35: python3.5 + PLOTLY_TOX_PYTHON_36: python3.6 steps: - checkout @@ -44,14 +44,14 @@ jobs: command: "sudo pip install tox" - run: name: Test with tox - command: "cd packages/python/plotly; tox -e py35-core" + command: "cd packages/python/plotly; tox -e py36-core" no_output_timeout: 20m - python-3.6-core: + python-3.7-core: docker: - - image: circleci/python:3.6-stretch-node-browsers + - image: circleci/python:3.7-stretch-node-browsers environment: - PLOTLY_TOX_PYTHON_36: python3.6 + PLOTLY_TOX_PYTHON_37: python3.7 steps: - checkout @@ -60,14 +60,14 @@ jobs: command: "sudo pip install tox" - run: name: Test with tox - command: "cd packages/python/plotly; tox -e py36-core" + command: "cd packages/python/plotly; tox -e py37-core" no_output_timeout: 20m - python-3.7-core: + python-3.8-core: docker: - - image: circleci/python:3.7-stretch-node-browsers + - image: circleci/python:3.8-stretch-node-browsers environment: - PLOTLY_TOX_PYTHON_37: python3.7 + PLOTLY_TOX_PYTHON_38: python3.8 steps: - checkout @@ -76,7 +76,7 @@ jobs: command: "sudo pip install tox" - run: name: Test with tox - command: "cd packages/python/plotly; tox -e py37-core" + command: "cd packages/python/plotly; tox -e py38-core" no_output_timeout: 20m python-3.7-percy: @@ -128,11 +128,11 @@ jobs: command: "cd packages/python/plotly; tox -e py27-optional" no_output_timeout: 20m - python-3.5-optional: + python-3.6-optional: docker: - - image: circleci/python:3.5-stretch-node-browsers + - image: circleci/python:3.6-stretch-node-browsers environment: - PLOTLY_TOX_PYTHON_35: python3.5 + PLOTLY_TOX_PYTHON_36: python3.6 steps: - checkout @@ -141,14 +141,14 @@ jobs: command: "sudo pip install tox" - run: name: Test with tox - command: "cd packages/python/plotly; tox -e py35-optional" + command: "cd packages/python/plotly; tox -e py36-optional" no_output_timeout: 20m - python-3.6-optional: + python-3.7-optional: docker: - - image: circleci/python:3.6-stretch-node-browsers + - image: circleci/python:3.7-stretch-node-browsers environment: - PLOTLY_TOX_PYTHON_36: python3.6 + PLOTLY_TOX_PYTHON_37: python3.7 steps: - checkout @@ -157,14 +157,14 @@ jobs: command: "sudo pip install tox" - run: name: Test with tox - command: "cd packages/python/plotly; tox -e py36-optional" + command: "cd packages/python/plotly; tox -e py37-optional" no_output_timeout: 20m - python-3.7-optional: + python-3.8-optional: docker: - - image: circleci/python:3.7-stretch-node-browsers + - image: circleci/python:3.8-stretch-node-browsers environment: - PLOTLY_TOX_PYTHON_37: python3.7 + PLOTLY_TOX_PYTHON_38: python3.8 steps: - checkout @@ -173,7 +173,7 @@ jobs: command: "sudo pip install tox" - run: name: Test with tox - command: "cd packages/python/plotly; tox -e py37-optional" + command: "cd packages/python/plotly; tox -e py38-optional" no_output_timeout: 20m # Plot.ly @@ -255,23 +255,23 @@ jobs: - store_artifacts: path: plotly/tests/test_orca/images/linux/failed - python-3-5-orca: + python-3-6-orca: docker: - image: circleci/node:10.9-stretch-browsers environment: - PYTHON_VERSION: 3.5 + PYTHON_VERSION: 3.6 steps: - checkout - restore_cache: keys: - - conda-35-v1-{{ checksum ".circleci/create_conda_optional_env.sh" }} + - conda-36-v1-{{ checksum ".circleci/create_conda_optional_env.sh" }} - run: name: Create conda environment command: .circleci/create_conda_optional_env.sh - save_cache: - key: conda-35-v1-{{ checksum ".circleci/create_conda_optional_env.sh" }} + key: conda-36-v1-{{ checksum ".circleci/create_conda_optional_env.sh" }} paths: - /home/circleci/miniconda/ - run: @@ -518,14 +518,14 @@ workflows: build: jobs: - python-2.7-core - - python-3.5-core - python-3.6-core - python-3.7-core + - python-3.8-core - python-3.7-percy - python-2.7-optional - - python-3.5-optional - python-3.6-optional - python-3.7-optional + - python-3.8-optional - python-3.7-plot_ly - python-2-7-orca - python-3-7-orca diff --git a/packages/python/plotly/tox.ini b/packages/python/plotly/tox.ini index 4e050e0a44..ecca2b44df 100644 --- a/packages/python/plotly/tox.ini +++ b/packages/python/plotly/tox.ini @@ -36,7 +36,7 @@ [tox] ; The py{A,B,C}-{X,Y} generates a matrix of envs: ; pyA-X,pyA-Y,pyB-X,pyB-Y,pyC-X,pyC-Y -envlist = py{27,34,35,36,37}-{core,optional},py{27,34,37} +envlist = py{27,36,37,38}-{core,optional},py{27,37} ; Note that envs can be targeted by deps using the : dep syntax. ; Only one dep is allowed per line as of the time of writing. The @@ -84,12 +84,6 @@ commands= python --version pytest {posargs} plotly/tests/test_core -[testenv:py35-core] -basepython={env:PLOTLY_TOX_PYTHON_35:} -commands= - python --version - pytest {posargs} plotly/tests/test_core - [testenv:py36-core] basepython={env:PLOTLY_TOX_PYTHON_36:} commands= @@ -104,6 +98,12 @@ commands= pytest {posargs} -x test_init/test_dependencies_not_imported.py pytest {posargs} -x test_init/test_lazy_imports.py +[testenv:py38-core] +basepython={env:PLOTLY_TOX_PYTHON_38:} +commands= + python --version + pytest {posargs} plotly/tests/test_core + ; OPTIONAL ENVIRONMENTS ;[testenv:py27-optional] ;basepython={env:PLOTLY_TOX_PYTHON_27:} @@ -124,8 +124,8 @@ commands= pytest _plotly_utils/tests/ pytest plotly/tests/test_io -[testenv:py35-optional] -basepython={env:PLOTLY_TOX_PYTHON_35:} +[testenv:py36-optional] +basepython={env:PLOTLY_TOX_PYTHON_36:} commands= python --version pytest {posargs} plotly/tests/test_core @@ -133,8 +133,8 @@ commands= pytest _plotly_utils/tests/ pytest plotly/tests/test_io -[testenv:py36-optional] -basepython={env:PLOTLY_TOX_PYTHON_36:} +[testenv:py37-optional] +basepython={env:PLOTLY_TOX_PYTHON_37:} commands= python --version pytest {posargs} plotly/tests/test_core @@ -142,8 +142,8 @@ commands= pytest _plotly_utils/tests/ pytest plotly/tests/test_io -[testenv:py37-optional] -basepython={env:PLOTLY_TOX_PYTHON_37:} +[testenv:py38-optional] +basepython={env:PLOTLY_TOX_PYTHON_38:} commands= python --version pytest {posargs} plotly/tests/test_core From d44ec2645d1921e4dcd924e26db16e38cc2bdf6a Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Thu, 31 Dec 2020 11:49:04 -0500 Subject: [PATCH 21/99] Try only install orjson with Python 3.6+ --- packages/python/plotly/tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/python/plotly/tox.ini b/packages/python/plotly/tox.ini index ecca2b44df..b1bf76bd38 100644 --- a/packages/python/plotly/tox.ini +++ b/packages/python/plotly/tox.ini @@ -75,7 +75,7 @@ deps= optional: matplotlib==2.2.3 optional: scikit-image==0.14.4 optional: kaleido - optional: orjson==3.4.6 + optional: orjson==3.4.6;python_version<"3.5" ; CORE ENVIRONMENTS [testenv:py27-core] From b7d842270b7351a8030f05bab8d7672182666f78 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Thu, 31 Dec 2020 11:50:30 -0500 Subject: [PATCH 22/99] Don't test orjson engine when orjson not installed --- .../plotly/tests/test_io/test_to_from_plotly_json.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py b/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py index 21df038419..436dc924d2 100644 --- a/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py +++ b/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py @@ -1,12 +1,15 @@ +import pytest import plotly.io.json as pio import plotly.graph_objects as go import numpy as np import pandas as pd -import pytest import json import datetime import sys from pytz import timezone +from _plotly_utils.optional_imports import get_module + +orjson = get_module("orjson") eastern = timezone("US/Eastern") @@ -61,6 +64,12 @@ def check_roundtrip(value, engine, pretty): # Fixtures +if orjson is not None: + engines = ["json", "orjson", "legacy", "auto"] +else: + engines = ["json", "legacy", "auto"] + + @pytest.fixture(scope="module", params=["json", "orjson", "legacy", "auto"]) def engine(request): return request.param From ddcd6f5c9f8fa43b53c3304e6b49a3a467191d02 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Thu, 31 Dec 2020 11:53:17 -0500 Subject: [PATCH 23/99] Try new 3.8.7 docker image since prior guess doesn't exist --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e02d94f9c4..9de385ee11 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -65,7 +65,7 @@ jobs: python-3.8-core: docker: - - image: circleci/python:3.8-stretch-node-browsers + - image: circleci/python:3.8.7 environment: PLOTLY_TOX_PYTHON_38: python3.8 @@ -162,7 +162,7 @@ jobs: python-3.8-optional: docker: - - image: circleci/python:3.8-stretch-node-browsers + - image: circleci/python:3.8.7 environment: PLOTLY_TOX_PYTHON_38: python3.8 From 33359f3bdd68de8ea7d2bf689f233ae3670d9402 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Thu, 31 Dec 2020 11:55:19 -0500 Subject: [PATCH 24/99] greater than! --- packages/python/plotly/tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/python/plotly/tox.ini b/packages/python/plotly/tox.ini index b1bf76bd38..72db48519f 100644 --- a/packages/python/plotly/tox.ini +++ b/packages/python/plotly/tox.ini @@ -75,7 +75,7 @@ deps= optional: matplotlib==2.2.3 optional: scikit-image==0.14.4 optional: kaleido - optional: orjson==3.4.6;python_version<"3.5" + optional: orjson==3.4.6;python_version>"3.5" ; CORE ENVIRONMENTS [testenv:py27-core] From c7c18197f2f38b091c78e6481808ac69fc28a899 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Thu, 31 Dec 2020 11:59:17 -0500 Subject: [PATCH 25/99] Bump scikit image version for Python 3.8 compatibility --- packages/python/plotly/tox.ini | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/python/plotly/tox.ini b/packages/python/plotly/tox.ini index 72db48519f..d97afcfb93 100644 --- a/packages/python/plotly/tox.ini +++ b/packages/python/plotly/tox.ini @@ -73,7 +73,8 @@ deps= optional: geopandas==0.3.0 optional: pyshp==1.2.10 optional: matplotlib==2.2.3 - optional: scikit-image==0.14.4 + optional: scikit-image==0.14.4;python_version<"3.0" + optional: scikit-image==0.18.1;python_version>"3.5" optional: kaleido optional: orjson==3.4.6;python_version>"3.5" From a8d52abb3fccfdfadd34a11538550d53bcebbaa2 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Thu, 31 Dec 2020 12:04:05 -0500 Subject: [PATCH 26/99] Try to help Python 2 from getting confused about which json module to import --- packages/python/plotly/plotly/io/_html.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/python/plotly/plotly/io/_html.py b/packages/python/plotly/plotly/io/_html.py index cb90de32f9..2d8511ab1c 100644 --- a/packages/python/plotly/plotly/io/_html.py +++ b/packages/python/plotly/plotly/io/_html.py @@ -1,14 +1,16 @@ import uuid -import json import os import webbrowser import six +from _plotly_utils.optional_imports import get_module from plotly.io._utils import validate_coerce_fig_to_dict from plotly.offline.offline import _get_jconfig, get_plotlyjs from plotly import utils +_json = get_module("json") + # Build script to set global PlotlyConfig object. This must execute before # plotly.js is loaded. @@ -134,15 +136,15 @@ def to_html( plotdivid = str(uuid.uuid4()) # ## Serialize figure ## - jdata = json.dumps( + jdata = _json.dumps( fig_dict.get("data", []), cls=utils.PlotlyJSONEncoder, sort_keys=True ) - jlayout = json.dumps( + jlayout = _json.dumps( fig_dict.get("layout", {}), cls=utils.PlotlyJSONEncoder, sort_keys=True ) if fig_dict.get("frames", None): - jframes = json.dumps(fig_dict.get("frames", []), cls=utils.PlotlyJSONEncoder) + jframes = _json.dumps(fig_dict.get("frames", []), cls=utils.PlotlyJSONEncoder) else: jframes = None @@ -218,7 +220,7 @@ def to_html( if auto_play: if animation_opts: - animation_opts_arg = ", " + json.dumps(animation_opts) + animation_opts_arg = ", " + _json.dumps(animation_opts) else: animation_opts_arg = "" then_animate = """.then(function(){{ @@ -228,7 +230,7 @@ def to_html( ) # Serialize config dict to JSON - jconfig = json.dumps(config) + jconfig = _json.dumps(config) script = """\ if (document.getElementById("{id}")) {{\ From 619838f7d9f13d358b903200cf6777945d8def2b Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Thu, 31 Dec 2020 12:06:30 -0500 Subject: [PATCH 27/99] Update pandas for Python 3 --- packages/python/plotly/tox.ini | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/python/plotly/tox.ini b/packages/python/plotly/tox.ini index d97afcfb93..4fecfc7dfe 100644 --- a/packages/python/plotly/tox.ini +++ b/packages/python/plotly/tox.ini @@ -57,7 +57,8 @@ deps= pytz==2016.10 retrying==1.3.3 pytest==3.5.1 - pandas==0.24.2 + pandas==0.24.2;python_version<"3.0" + pandas==1.2.0;python_version>"3.5" xarray==0.10.9 statsmodels==0.10.2 pillow==5.2.0 From 7c7a272fd4c94c42f3db79706f9a301fe1e2047c Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Thu, 31 Dec 2020 12:09:22 -0500 Subject: [PATCH 28/99] Revert 3.8 CI updates. Too much for this PR --- .circleci/config.yml | 60 +++++++++++++++++----------------- packages/python/plotly/tox.ini | 32 +++++++++--------- 2 files changed, 45 insertions(+), 47 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9de385ee11..fae56c4cea 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -31,11 +31,11 @@ jobs: command: "cd packages/python/plotly; tox -e py27-core" no_output_timeout: 20m - python-3.6-core: + python-3.5-core: docker: - - image: circleci/python:3.6-stretch-node-browsers + - image: circleci/python:3.5-stretch-node-browsers environment: - PLOTLY_TOX_PYTHON_36: python3.6 + PLOTLY_TOX_PYTHON_35: python3.5 steps: - checkout @@ -44,14 +44,14 @@ jobs: command: "sudo pip install tox" - run: name: Test with tox - command: "cd packages/python/plotly; tox -e py36-core" + command: "cd packages/python/plotly; tox -e py35-core" no_output_timeout: 20m - python-3.7-core: + python-3.6-core: docker: - - image: circleci/python:3.7-stretch-node-browsers + - image: circleci/python:3.6-stretch-node-browsers environment: - PLOTLY_TOX_PYTHON_37: python3.7 + PLOTLY_TOX_PYTHON_36: python3.6 steps: - checkout @@ -60,14 +60,14 @@ jobs: command: "sudo pip install tox" - run: name: Test with tox - command: "cd packages/python/plotly; tox -e py37-core" + command: "cd packages/python/plotly; tox -e py36-core" no_output_timeout: 20m - python-3.8-core: + python-3.7-core: docker: - - image: circleci/python:3.8.7 + - image: circleci/python:3.7-stretch-node-browsers environment: - PLOTLY_TOX_PYTHON_38: python3.8 + PLOTLY_TOX_PYTHON_37: python3.7 steps: - checkout @@ -76,7 +76,7 @@ jobs: command: "sudo pip install tox" - run: name: Test with tox - command: "cd packages/python/plotly; tox -e py38-core" + command: "cd packages/python/plotly; tox -e py37-core" no_output_timeout: 20m python-3.7-percy: @@ -128,11 +128,11 @@ jobs: command: "cd packages/python/plotly; tox -e py27-optional" no_output_timeout: 20m - python-3.6-optional: + python-3.5-optional: docker: - - image: circleci/python:3.6-stretch-node-browsers + - image: circleci/python:3.5-stretch-node-browsers environment: - PLOTLY_TOX_PYTHON_36: python3.6 + PLOTLY_TOX_PYTHON_35: python3.5 steps: - checkout @@ -141,14 +141,14 @@ jobs: command: "sudo pip install tox" - run: name: Test with tox - command: "cd packages/python/plotly; tox -e py36-optional" + command: "cd packages/python/plotly; tox -e py35-optional" no_output_timeout: 20m - python-3.7-optional: + python-3.6-optional: docker: - - image: circleci/python:3.7-stretch-node-browsers + - image: circleci/python:3.6-stretch-node-browsers environment: - PLOTLY_TOX_PYTHON_37: python3.7 + PLOTLY_TOX_PYTHON_36: python3.6 steps: - checkout @@ -157,14 +157,14 @@ jobs: command: "sudo pip install tox" - run: name: Test with tox - command: "cd packages/python/plotly; tox -e py37-optional" + command: "cd packages/python/plotly; tox -e py36-optional" no_output_timeout: 20m - python-3.8-optional: + python-3.7-optional: docker: - - image: circleci/python:3.8.7 + - image: circleci/python:3.7-stretch-node-browsers environment: - PLOTLY_TOX_PYTHON_38: python3.8 + PLOTLY_TOX_PYTHON_37: python3.7 steps: - checkout @@ -173,7 +173,7 @@ jobs: command: "sudo pip install tox" - run: name: Test with tox - command: "cd packages/python/plotly; tox -e py38-optional" + command: "cd packages/python/plotly; tox -e py37-optional" no_output_timeout: 20m # Plot.ly @@ -255,23 +255,23 @@ jobs: - store_artifacts: path: plotly/tests/test_orca/images/linux/failed - python-3-6-orca: + python-3-5-orca: docker: - image: circleci/node:10.9-stretch-browsers environment: - PYTHON_VERSION: 3.6 + PYTHON_VERSION: 3.5 steps: - checkout - restore_cache: keys: - - conda-36-v1-{{ checksum ".circleci/create_conda_optional_env.sh" }} + - conda-35-v1-{{ checksum ".circleci/create_conda_optional_env.sh" }} - run: name: Create conda environment command: .circleci/create_conda_optional_env.sh - save_cache: - key: conda-36-v1-{{ checksum ".circleci/create_conda_optional_env.sh" }} + key: conda-35-v1-{{ checksum ".circleci/create_conda_optional_env.sh" }} paths: - /home/circleci/miniconda/ - run: @@ -518,14 +518,14 @@ workflows: build: jobs: - python-2.7-core + - python-3.5-core - python-3.6-core - python-3.7-core - - python-3.8-core - python-3.7-percy - python-2.7-optional + - python-3.5-optional - python-3.6-optional - python-3.7-optional - - python-3.8-optional - python-3.7-plot_ly - python-2-7-orca - python-3-7-orca diff --git a/packages/python/plotly/tox.ini b/packages/python/plotly/tox.ini index 4fecfc7dfe..5b4a834554 100644 --- a/packages/python/plotly/tox.ini +++ b/packages/python/plotly/tox.ini @@ -36,7 +36,7 @@ [tox] ; The py{A,B,C}-{X,Y} generates a matrix of envs: ; pyA-X,pyA-Y,pyB-X,pyB-Y,pyC-X,pyC-Y -envlist = py{27,36,37,38}-{core,optional},py{27,37} +envlist = py{27,34,35,36,37}-{core,optional},py{27,34,37} ; Note that envs can be targeted by deps using the : dep syntax. ; Only one dep is allowed per line as of the time of writing. The @@ -57,8 +57,7 @@ deps= pytz==2016.10 retrying==1.3.3 pytest==3.5.1 - pandas==0.24.2;python_version<"3.0" - pandas==1.2.0;python_version>"3.5" + pandas==0.24.2 xarray==0.10.9 statsmodels==0.10.2 pillow==5.2.0 @@ -74,8 +73,7 @@ deps= optional: geopandas==0.3.0 optional: pyshp==1.2.10 optional: matplotlib==2.2.3 - optional: scikit-image==0.14.4;python_version<"3.0" - optional: scikit-image==0.18.1;python_version>"3.5" + optional: scikit-image==0.14.4 optional: kaleido optional: orjson==3.4.6;python_version>"3.5" @@ -86,6 +84,12 @@ commands= python --version pytest {posargs} plotly/tests/test_core +[testenv:py35-core] +basepython={env:PLOTLY_TOX_PYTHON_35:} +commands= + python --version + pytest {posargs} plotly/tests/test_core + [testenv:py36-core] basepython={env:PLOTLY_TOX_PYTHON_36:} commands= @@ -100,12 +104,6 @@ commands= pytest {posargs} -x test_init/test_dependencies_not_imported.py pytest {posargs} -x test_init/test_lazy_imports.py -[testenv:py38-core] -basepython={env:PLOTLY_TOX_PYTHON_38:} -commands= - python --version - pytest {posargs} plotly/tests/test_core - ; OPTIONAL ENVIRONMENTS ;[testenv:py27-optional] ;basepython={env:PLOTLY_TOX_PYTHON_27:} @@ -126,8 +124,8 @@ commands= pytest _plotly_utils/tests/ pytest plotly/tests/test_io -[testenv:py36-optional] -basepython={env:PLOTLY_TOX_PYTHON_36:} +[testenv:py35-optional] +basepython={env:PLOTLY_TOX_PYTHON_35:} commands= python --version pytest {posargs} plotly/tests/test_core @@ -135,8 +133,8 @@ commands= pytest _plotly_utils/tests/ pytest plotly/tests/test_io -[testenv:py37-optional] -basepython={env:PLOTLY_TOX_PYTHON_37:} +[testenv:py36-optional] +basepython={env:PLOTLY_TOX_PYTHON_36:} commands= python --version pytest {posargs} plotly/tests/test_core @@ -144,8 +142,8 @@ commands= pytest _plotly_utils/tests/ pytest plotly/tests/test_io -[testenv:py38-optional] -basepython={env:PLOTLY_TOX_PYTHON_38:} +[testenv:py37-optional] +basepython={env:PLOTLY_TOX_PYTHON_37:} commands= python --version pytest {posargs} plotly/tests/test_core From 17087037a952040d23844444d58173d318c35e67 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Thu, 31 Dec 2020 12:20:22 -0500 Subject: [PATCH 29/99] Doh --- .../plotly/plotly/tests/test_io/test_to_from_plotly_json.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py b/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py index 436dc924d2..023fa92907 100644 --- a/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py +++ b/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py @@ -70,7 +70,7 @@ def check_roundtrip(value, engine, pretty): engines = ["json", "legacy", "auto"] -@pytest.fixture(scope="module", params=["json", "orjson", "legacy", "auto"]) +@pytest.fixture(scope="module", params=engines) def engine(request): return request.param From 66cab10b87ff11d923c1b62559d091c7e10f128b Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Thu, 31 Dec 2020 15:35:03 -0500 Subject: [PATCH 30/99] Don't skip copying during serialization --- packages/python/plotly/plotly/io/_json.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/python/plotly/plotly/io/_json.py b/packages/python/plotly/plotly/io/_json.py index 52c0363e99..8a0fc1dc3f 100644 --- a/packages/python/plotly/plotly/io/_json.py +++ b/packages/python/plotly/plotly/io/_json.py @@ -202,7 +202,7 @@ def to_json(fig, validate=True, pretty=False, remove_uids=True, engine=None): """ # Validate figure # --------------- - fig_dict = validate_coerce_fig_to_dict(fig, validate, clone=False) + fig_dict = validate_coerce_fig_to_dict(fig, validate) # Remove trace uid # ---------------- @@ -455,9 +455,6 @@ def clean_to_json_compatible(obj, **kwargs): # Plotly try: - obj = obj.to_plotly_json(clone=False) - except (TypeError, NameError, ValueError): - # Try without clone for backward compatibility obj = obj.to_plotly_json() except AttributeError: pass From 56a8945a1c3b57dfd286c784dab01471f7fc4e73 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Sat, 2 Jan 2021 09:02:38 -0500 Subject: [PATCH 31/99] Rename new JSON functions: - pio.json.to_plotly_json -> pio.json.to_json_plotly - pio.json.from_plotly_json -> pio.json.from_json_plotly --- packages/python/plotly/plotly/io/_json.py | 16 ++++++++++------ packages/python/plotly/plotly/io/json.py | 4 ++-- .../tests/test_io/test_to_from_plotly_json.py | 18 +++++++++--------- 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/packages/python/plotly/plotly/io/_json.py b/packages/python/plotly/plotly/io/_json.py index 8a0fc1dc3f..45e01faf3c 100644 --- a/packages/python/plotly/plotly/io/_json.py +++ b/packages/python/plotly/plotly/io/_json.py @@ -58,7 +58,7 @@ def coerce_to_strict(const): return const -def to_plotly_json(plotly_object, pretty=False, engine=None): +def to_json_plotly(plotly_object, pretty=False, engine=None): """ Convert a plotly/Dash object to a JSON string representation @@ -198,7 +198,7 @@ def to_json(fig, validate=True, pretty=False, remove_uids=True, engine=None): See Also -------- - to_plotly_json : Convert an arbitrary plotly graph_object or Dash component to JSON + to_json_plotly : Convert an arbitrary plotly graph_object or Dash component to JSON """ # Validate figure # --------------- @@ -210,7 +210,7 @@ def to_json(fig, validate=True, pretty=False, remove_uids=True, engine=None): for trace in fig_dict.get("data", []): trace.pop("uid", None) - return to_plotly_json(fig_dict, pretty=pretty, engine=engine) + return to_json_plotly(fig_dict, pretty=pretty, engine=engine) def write_json(fig, file, validate=True, pretty=False, remove_uids=True, engine=None): @@ -267,7 +267,7 @@ def write_json(fig, file, validate=True, pretty=False, remove_uids=True, engine= file.write(json_str) -def from_plotly_json(value, engine=None): +def from_json_plotly(value, engine=None): """ Parse JSON string using the specified JSON engine @@ -289,6 +289,10 @@ def from_plotly_json(value, engine=None): Returns ------- dict + + See Also + -------- + from_json_plotly : Parse JSON with plotly conventions into a dict """ orjson = get_module("orjson", should_load=True) @@ -297,7 +301,7 @@ def from_plotly_json(value, engine=None): if not isinstance(value, (string_types, bytes)): raise ValueError( """ -from_plotly_json requires a string or bytes argument but received value of type {typ} +from_json_plotly requires a string or bytes argument but received value of type {typ} Received value: {value}""".format( typ=type(value), value=value ) @@ -368,7 +372,7 @@ def from_json(value, output_type="Figure", skip_invalid=False, engine=None): # Decode JSON # ----------- - fig_dict = from_plotly_json(value, engine=engine) + fig_dict = from_json_plotly(value, engine=engine) # Validate coerce output type # --------------------------- diff --git a/packages/python/plotly/plotly/io/json.py b/packages/python/plotly/plotly/io/json.py index 8f895dc81a..ff83e96076 100644 --- a/packages/python/plotly/plotly/io/json.py +++ b/packages/python/plotly/plotly/io/json.py @@ -4,6 +4,6 @@ from_json, read_json, config, - to_plotly_json, - from_plotly_json, + to_json_plotly, + from_json_plotly, ) diff --git a/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py b/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py index 023fa92907..ac638ccb63 100644 --- a/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py +++ b/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py @@ -51,15 +51,15 @@ def build_test_dict_string(value_string, pretty=False): def check_roundtrip(value, engine, pretty): - encoded = pio.to_plotly_json(value, engine=engine, pretty=pretty) - decoded = pio.from_plotly_json(encoded, engine=engine) - reencoded = pio.to_plotly_json(decoded, engine=engine, pretty=pretty) + encoded = pio.to_json_plotly(value, engine=engine, pretty=pretty) + decoded = pio.from_json_plotly(encoded, engine=engine) + reencoded = pio.to_json_plotly(decoded, engine=engine, pretty=pretty) assert encoded == reencoded # Check from_plotly_json with bytes on Python 3 if sys.version_info.major == 3: encoded_bytes = encoded.encode("utf8") - decoded_from_bytes = pio.from_plotly_json(encoded_bytes, engine=engine) + decoded_from_bytes = pio.from_json_plotly(encoded_bytes, engine=engine) assert decoded == decoded_from_bytes @@ -124,7 +124,7 @@ def datetime_array(request, datetime_value): # Encoding tests def test_graph_object_input(engine, pretty): scatter = go.Scatter(x=[1, 2, 3], y=np.array([4, 5, 6])) - result = pio.to_plotly_json(scatter, engine=engine) + result = pio.to_json_plotly(scatter, engine=engine) expected = """{"type":"scatter","x":[1,2,3],"y":[4,5,6]}""" assert result == expected check_roundtrip(result, engine=engine, pretty=pretty) @@ -132,7 +132,7 @@ def test_graph_object_input(engine, pretty): def test_numeric_numpy_encoding(numeric_numpy_array, engine, pretty): value = build_test_dict(numeric_numpy_array) - result = pio.to_plotly_json(value, engine=engine, pretty=pretty) + result = pio.to_json_plotly(value, engine=engine, pretty=pretty) array_str = to_json_test(numeric_numpy_array.tolist()) expected = build_test_dict_string(array_str, pretty=pretty) @@ -142,7 +142,7 @@ def test_numeric_numpy_encoding(numeric_numpy_array, engine, pretty): def test_object_numpy_encoding(object_numpy_array, engine, pretty): value = build_test_dict(object_numpy_array) - result = pio.to_plotly_json(value, engine=engine, pretty=pretty) + result = pio.to_json_plotly(value, engine=engine, pretty=pretty) array_str = to_json_test(object_numpy_array.tolist()) expected = build_test_dict_string(array_str) @@ -155,7 +155,7 @@ def test_datetime(datetime_value, engine, pretty): pytest.skip("legacy encoder doesn't strip timezone from scalar datetimes") value = build_test_dict(datetime_value) - result = pio.to_plotly_json(value, engine=engine, pretty=pretty) + result = pio.to_json_plotly(value, engine=engine, pretty=pretty) expected = build_test_dict_string('"{}"'.format(isoformat_test(datetime_value))) assert result == expected check_roundtrip(result, engine=engine, pretty=pretty) @@ -163,7 +163,7 @@ def test_datetime(datetime_value, engine, pretty): def test_datetime_arrays(datetime_array, engine, pretty): value = build_test_dict(datetime_array) - result = pio.to_plotly_json(value, engine=engine) + result = pio.to_json_plotly(value, engine=engine) if isinstance(datetime_array, pd.Series): dt_values = [d.isoformat() for d in datetime_array.dt.to_pydatetime().tolist()] From 0a51020d4f7f636194c88cdc716cb81b48c93f1b Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Sat, 2 Jan 2021 12:36:39 -0500 Subject: [PATCH 32/99] Ensure cleaned numpy arrays are contiguous --- packages/python/plotly/plotly/io/_json.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/python/plotly/plotly/io/_json.py b/packages/python/plotly/plotly/io/_json.py index 45e01faf3c..f38147b543 100644 --- a/packages/python/plotly/plotly/io/_json.py +++ b/packages/python/plotly/plotly/io/_json.py @@ -479,7 +479,7 @@ def clean_to_json_compatible(obj, **kwargs): and isinstance(obj, np.ndarray) and obj.dtype.kind in ("b", "i", "u", "f") ): - return obj + return np.ascontiguousarray(obj) # pandas if pd is not None: @@ -487,7 +487,7 @@ def clean_to_json_compatible(obj, **kwargs): return None elif isinstance(obj, (pd.Series, pd.DatetimeIndex)): if numpy_allowed and obj.dtype.kind in ("b", "i", "u", "f"): - return obj.values + return np.ascontiguousarray(obj.values) elif obj.dtype.kind == "M": if isinstance(obj, pd.Series): dt_values = obj.dt.to_pydatetime().tolist() From 4e9d64ecdc4bf65aaaa84a58ee3dc91ff5e158a5 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Fri, 8 Jan 2021 12:00:16 -0500 Subject: [PATCH 33/99] Use to_json_plotly in html and orca logic --- packages/python/plotly/plotly/io/_html.py | 11 ++++------- packages/python/plotly/plotly/io/_orca.py | 3 ++- packages/python/plotly/templategen/__init__.py | 5 ++--- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/packages/python/plotly/plotly/io/_html.py b/packages/python/plotly/plotly/io/_html.py index 2d8511ab1c..6d281503c7 100644 --- a/packages/python/plotly/plotly/io/_html.py +++ b/packages/python/plotly/plotly/io/_html.py @@ -128,6 +128,7 @@ def to_html( str Representation of figure as an HTML div string """ + from plotly.io.json import to_json_plotly # ## Validate figure ## fig_dict = validate_coerce_fig_to_dict(fig, validate) @@ -136,15 +137,11 @@ def to_html( plotdivid = str(uuid.uuid4()) # ## Serialize figure ## - jdata = _json.dumps( - fig_dict.get("data", []), cls=utils.PlotlyJSONEncoder, sort_keys=True - ) - jlayout = _json.dumps( - fig_dict.get("layout", {}), cls=utils.PlotlyJSONEncoder, sort_keys=True - ) + jdata = to_json_plotly(fig_dict.get("data", [])) + jlayout = to_json_plotly(fig_dict.get("layout", {})) if fig_dict.get("frames", None): - jframes = _json.dumps(fig_dict.get("frames", []), cls=utils.PlotlyJSONEncoder) + jframes = to_json_plotly(fig_dict.get("frames", [])) else: jframes = None diff --git a/packages/python/plotly/plotly/io/_orca.py b/packages/python/plotly/plotly/io/_orca.py index 500674b628..e77f9b6f6f 100644 --- a/packages/python/plotly/plotly/io/_orca.py +++ b/packages/python/plotly/plotly/io/_orca.py @@ -1458,6 +1458,7 @@ def request_image_with_retrying(**kwargs): with retrying logic. """ from requests import post + from plotly.io.json import to_json_plotly if config.server_url: server_url = config.server_url @@ -1467,7 +1468,7 @@ def request_image_with_retrying(**kwargs): ) request_params = {k: v for k, v, in kwargs.items() if v is not None} - json_str = json.dumps(request_params, cls=_plotly_utils.utils.PlotlyJSONEncoder) + json_str = to_json_plotly(request_params) response = post(server_url + "/", data=json_str) if response.status_code == 522: diff --git a/packages/python/plotly/templategen/__init__.py b/packages/python/plotly/templategen/__init__.py index 9dcc21a765..bdcf8e1044 100644 --- a/packages/python/plotly/templategen/__init__.py +++ b/packages/python/plotly/templategen/__init__.py @@ -1,5 +1,4 @@ -from plotly.utils import PlotlyJSONEncoder -import json +from plotly.io.json import to_json_plotly import os from templategen.definitions import builders @@ -20,4 +19,4 @@ ), "w", ) as f: - plotly_schema = json.dump(template, f, cls=PlotlyJSONEncoder) + f.write(to_json_plotly(template)) From d4068dee52035fce702ee85036d516048d6ba90e Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Fri, 8 Jan 2021 12:26:39 -0500 Subject: [PATCH 34/99] Add orjson documentation dependency --- doc/requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/requirements.txt b/doc/requirements.txt index 86e81a4467..7e73edf8e8 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -30,3 +30,4 @@ kaleido umap-learn pooch wget +orjson From 58b7192c8f0d01d1e910bec7c0563b2af8b61cc4 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Fri, 8 Jan 2021 13:08:16 -0500 Subject: [PATCH 35/99] Handle pandas Timestamp scalars in orjson engine Add test for Timestamp and lists of time values --- packages/python/plotly/plotly/io/_json.py | 13 ++++++--- .../tests/test_io/test_to_from_plotly_json.py | 27 ++++++++++++++++--- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/packages/python/plotly/plotly/io/_json.py b/packages/python/plotly/plotly/io/_json.py index f38147b543..d642b50401 100644 --- a/packages/python/plotly/plotly/io/_json.py +++ b/packages/python/plotly/plotly/io/_json.py @@ -490,9 +490,9 @@ def clean_to_json_compatible(obj, **kwargs): return np.ascontiguousarray(obj.values) elif obj.dtype.kind == "M": if isinstance(obj, pd.Series): - dt_values = obj.dt.to_pydatetime().tolist() + dt_values = obj.dt.tz_localize(None).dt.to_pydatetime().tolist() else: # DatetimeIndex - dt_values = obj.to_pydatetime().tolist() + dt_values = obj.tz_localize(None).to_pydatetime().tolist() if not datetime_allowed: # Note: We don't need to handle dropping timezones here because @@ -514,13 +514,18 @@ def clean_to_json_compatible(obj, **kwargs): if np and isinstance(obj, np.datetime64): return str(obj) else: + res = None try: # Need to drop timezone for scalar datetimes. Don't need to convert # to string since engine can do that - return obj.replace(tzinfo=None) - except AttributeError: + res = obj.replace(tzinfo=None) + res = res.to_pydatetime() + except(TypeError, AttributeError): pass + if res is not None: + return res + # Try .tolist() convertible, do not recurse inside try: return obj.tolist() diff --git a/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py b/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py index ac638ccb63..8a5f631520 100644 --- a/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py +++ b/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py @@ -102,8 +102,10 @@ def object_numpy_array(request): datetime.datetime(2003, 7, 12, 8, 34, 22), datetime.datetime.now(), np.datetime64(datetime.datetime.utcnow()), + pd.Timestamp(datetime.datetime.now()), eastern.localize(datetime.datetime(2003, 7, 12, 8, 34, 22)), eastern.localize(datetime.datetime.now()), + pd.Timestamp(datetime.datetime.now(), tzinfo=eastern), ], ) def datetime_value(request): @@ -112,6 +114,7 @@ def datetime_value(request): @pytest.fixture( params=[ + list, # plain list of datetime values lambda a: pd.DatetimeIndex(a), # Pandas DatetimeIndex lambda a: pd.Series(pd.DatetimeIndex(a)), # Pandas Datetime Series lambda a: pd.DatetimeIndex(a).values, # Numpy datetime64 array @@ -162,13 +165,31 @@ def test_datetime(datetime_value, engine, pretty): def test_datetime_arrays(datetime_array, engine, pretty): + if engine == "legacy": + pytest.skip("legacy encoder doesn't strip timezone from datetimes arrays") + value = build_test_dict(datetime_array) result = pio.to_json_plotly(value, engine=engine) - if isinstance(datetime_array, pd.Series): - dt_values = [d.isoformat() for d in datetime_array.dt.to_pydatetime().tolist()] + def to_str(v): + try: + v = v.replace(tzinfo=None) + except (TypeError, AttributeError): + pass + + try: + v = v.isoformat(sep="T") + except (TypeError, AttributeError): + pass + + return str(v) + + if isinstance(datetime_array, list): + dt_values = [to_str(d) for d in datetime_array] + elif isinstance(datetime_array, pd.Series): + dt_values = [to_str(d) for d in datetime_array.dt.to_pydatetime().tolist()] elif isinstance(datetime_array, pd.DatetimeIndex): - dt_values = [d.isoformat() for d in datetime_array.to_pydatetime().tolist()] + dt_values = [to_str(d) for d in datetime_array.to_pydatetime().tolist()] else: # numpy datetime64 array dt_values = datetime_array.tolist() From 974fcba97b7038669848543e38b36efa39b7f292 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Fri, 8 Jan 2021 14:52:14 -0500 Subject: [PATCH 36/99] Rework date and string encoding, add and fix tests --- packages/python/plotly/plotly/io/_json.py | 54 +++++++++---------- .../tests/test_io/test_to_from_plotly_json.py | 18 ++++++- 2 files changed, 44 insertions(+), 28 deletions(-) diff --git a/packages/python/plotly/plotly/io/_json.py b/packages/python/plotly/plotly/io/_json.py index d642b50401..39a674b700 100644 --- a/packages/python/plotly/plotly/io/_json.py +++ b/packages/python/plotly/plotly/io/_json.py @@ -3,8 +3,7 @@ from six import string_types import json import decimal -import os - +import datetime from plotly.io._utils import validate_coerce_fig_to_dict, validate_coerce_output_type from _plotly_utils.optional_imports import get_module @@ -474,12 +473,19 @@ def clean_to_json_compatible(obj, **kwargs): if np is not None: if obj is np.ma.core.masked: return float("nan") - elif ( - numpy_allowed - and isinstance(obj, np.ndarray) - and obj.dtype.kind in ("b", "i", "u", "f") - ): - return np.ascontiguousarray(obj) + elif isinstance(obj, np.ndarray): + if numpy_allowed and obj.dtype.kind in ("b", "i", "u", "f"): + return np.ascontiguousarray(obj) + elif obj.dtype.kind == "M": + # datetime64 array + return np.datetime_as_string(obj).tolist() + elif obj.dtype.kind == "U": + return obj.tolist() + elif obj.dtype.kind == "O": + # Treat object array as a lists, continue processing + obj = obj.tolist() + elif isinstance(obj, np.datetime64): + return str(obj) # pandas if pd is not None: @@ -496,35 +502,29 @@ def clean_to_json_compatible(obj, **kwargs): if not datetime_allowed: # Note: We don't need to handle dropping timezones here because - # numpy's datetime64 doesn't support them and pandas's tolist() - # doesn't preserve them. + # numpy's datetime64 doesn't support them and pandas's tz_localize + # above drops them. for i in range(len(dt_values)): dt_values[i] = dt_values[i].isoformat() return dt_values # datetime and date - if not datetime_allowed: - try: - # Need to drop timezone for scalar datetimes - return obj.replace(tzinfo=None).isoformat() - except (TypeError, AttributeError): - pass + try: + # Need to drop timezone for scalar datetimes. Don't need to convert + # to string since engine can do that + obj = obj.replace(tzinfo=None) + obj = obj.to_pydatetime() + except(TypeError, AttributeError): + pass - if np and isinstance(obj, np.datetime64): - return str(obj) - else: - res = None + if not datetime_allowed: try: - # Need to drop timezone for scalar datetimes. Don't need to convert - # to string since engine can do that - res = obj.replace(tzinfo=None) - res = res.to_pydatetime() + return obj.isoformat() except(TypeError, AttributeError): pass - - if res is not None: - return res + elif isinstance(obj, datetime.datetime): + return obj # Try .tolist() convertible, do not recurse inside try: diff --git a/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py b/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py index 8a5f631520..a72e64f66e 100644 --- a/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py +++ b/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py @@ -96,6 +96,11 @@ def object_numpy_array(request): return np.array(["a", 1, [2, 3]]) +@pytest.fixture(scope="module") +def numpy_unicode_array(request): + return np.array(["A", "BB", "CCC"], dtype="U") + + @pytest.fixture( scope="module", params=[ @@ -118,6 +123,7 @@ def datetime_value(request): lambda a: pd.DatetimeIndex(a), # Pandas DatetimeIndex lambda a: pd.Series(pd.DatetimeIndex(a)), # Pandas Datetime Series lambda a: pd.DatetimeIndex(a).values, # Numpy datetime64 array + lambda a: np.array(a, dtype="object"), # Numpy object array of datetime ] ) def datetime_array(request, datetime_value): @@ -143,6 +149,16 @@ def test_numeric_numpy_encoding(numeric_numpy_array, engine, pretty): check_roundtrip(result, engine=engine, pretty=pretty) +def test_numpy_unicode_encoding(numpy_unicode_array, engine, pretty): + value = build_test_dict(numpy_unicode_array) + result = pio.to_json_plotly(value, engine=engine, pretty=pretty) + + array_str = to_json_test(numpy_unicode_array.tolist()) + expected = build_test_dict_string(array_str) + assert result == expected + check_roundtrip(result, engine=engine, pretty=pretty) + + def test_object_numpy_encoding(object_numpy_array, engine, pretty): value = build_test_dict(object_numpy_array) result = pio.to_json_plotly(value, engine=engine, pretty=pretty) @@ -191,7 +207,7 @@ def to_str(v): elif isinstance(datetime_array, pd.DatetimeIndex): dt_values = [to_str(d) for d in datetime_array.to_pydatetime().tolist()] else: # numpy datetime64 array - dt_values = datetime_array.tolist() + dt_values = [to_str(d) for d in datetime_array] array_str = to_json_test(dt_values) expected = build_test_dict_string(array_str) From a651a631d6bca33ef0becfc55e7d326841d7435b Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Fri, 8 Jan 2021 15:03:26 -0500 Subject: [PATCH 37/99] default JSON engine to "auto" --- packages/python/plotly/plotly/io/_json.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/python/plotly/plotly/io/_json.py b/packages/python/plotly/plotly/io/_json.py index 39a674b700..4252aa40a9 100644 --- a/packages/python/plotly/plotly/io/_json.py +++ b/packages/python/plotly/plotly/io/_json.py @@ -16,7 +16,7 @@ class JsonConfig(object): _valid_engines = ("legacy", "json", "orjson", "auto") def __init__(self): - self._default_engine = "legacy" + self._default_engine = "auto" @property def default_engine(self): From af1d88d48eeaa4757701a95bba1f8043fcfba773 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Fri, 8 Jan 2021 15:12:17 -0500 Subject: [PATCH 38/99] Fix expected JSON in html export (no spaces) --- .../plotly/tests/test_core/test_offline/test_offline.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/python/plotly/plotly/tests/test_core/test_offline/test_offline.py b/packages/python/plotly/plotly/tests/test_core/test_offline/test_offline.py index 315a81b941..88096e0a7e 100644 --- a/packages/python/plotly/plotly/tests/test_core/test_offline/test_offline.py +++ b/packages/python/plotly/plotly/tests/test_core/test_offline/test_offline.py @@ -88,7 +88,7 @@ def _read_html(self, file_url): return f.read() def test_default_plot_generates_expected_html(self): - layout_json = _json.dumps(fig["layout"], cls=plotly.utils.PlotlyJSONEncoder) + layout_json = pio.json.to_json_plotly(fig["layout"]) html = self._read_html( plotly.offline.plot(fig, auto_open=False, filename=html_filename) @@ -98,8 +98,8 @@ def test_default_plot_generates_expected_html(self): # instead just make sure a few of the parts are in here? self.assertIn("Plotly.newPlot", html) # plot command is in there - x_data = '"x": [1, 2, 3]' - y_data = '"y": [10, 20, 30]' + x_data = '"x":[1,2,3]' + y_data = '"y":[10,20,30]' self.assertTrue(x_data in html and y_data in html) # data in there self.assertIn(layout_json, html) # so is layout From d51fd94fcf5908c614298a9fbd491158c24ecb0a Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Fri, 8 Jan 2021 15:16:56 -0500 Subject: [PATCH 39/99] blacken --- packages/python/plotly/plotly/io/_json.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/python/plotly/plotly/io/_json.py b/packages/python/plotly/plotly/io/_json.py index 4252aa40a9..42e80e425f 100644 --- a/packages/python/plotly/plotly/io/_json.py +++ b/packages/python/plotly/plotly/io/_json.py @@ -515,13 +515,13 @@ def clean_to_json_compatible(obj, **kwargs): # to string since engine can do that obj = obj.replace(tzinfo=None) obj = obj.to_pydatetime() - except(TypeError, AttributeError): + except (TypeError, AttributeError): pass if not datetime_allowed: try: return obj.isoformat() - except(TypeError, AttributeError): + except (TypeError, AttributeError): pass elif isinstance(obj, datetime.datetime): return obj From 042c54c1b1c09ea6e17ec68788b20503546d52cc Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Fri, 8 Jan 2021 15:21:51 -0500 Subject: [PATCH 40/99] Fix expected JSON in matplotlylib test --- .../tests/test_optional/test_offline/test_offline.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/packages/python/plotly/plotly/tests/test_optional/test_offline/test_offline.py b/packages/python/plotly/plotly/tests/test_optional/test_offline/test_offline.py index d36934d1ea..3503feb6fc 100644 --- a/packages/python/plotly/plotly/tests/test_optional/test_offline/test_offline.py +++ b/packages/python/plotly/plotly/tests/test_optional/test_offline/test_offline.py @@ -10,6 +10,7 @@ import pytest import plotly +import plotly.io as pio from plotly import optional_imports matplotlylib = optional_imports.get_module("plotly.matplotlylib") @@ -76,12 +77,8 @@ def test_default_mpl_plot_generates_expected_html(self): data = figure["data"] layout = figure["layout"] - data_json = _json.dumps( - data, cls=plotly.utils.PlotlyJSONEncoder, sort_keys=True - ) - layout_json = _json.dumps( - layout, cls=plotly.utils.PlotlyJSONEncoder, sort_keys=True - ) + data_json = pio.json.to_json_plotly(data) + layout_json = pio.json.to_json_plotly(layout) html = self._read_html(plotly.offline.plot_mpl(fig)) # blank out uid before comparisons From ddc1b8fd238cd6ada576ba1bb32508caeca50873 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Fri, 8 Jan 2021 15:45:59 -0500 Subject: [PATCH 41/99] Fix expected JSON in html repr test --- packages/python/plotly/plotly/tests/test_io/test_renderers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/python/plotly/plotly/tests/test_io/test_renderers.py b/packages/python/plotly/plotly/tests/test_io/test_renderers.py index 3511201c7d..27e1e6ea6d 100644 --- a/packages/python/plotly/plotly/tests/test_io/test_renderers.py +++ b/packages/python/plotly/plotly/tests/test_io/test_renderers.py @@ -312,7 +312,7 @@ def test_repr_html(renderer): " window.PLOTLYENV=window.PLOTLYENV || {};" ' if (document.getElementById("cd462b94-79ce-42a2-887f-2650a761a144"))' ' { Plotly.newPlot( "cd462b94-79ce-42a2-887f-2650a761a144",' - ' [], {"template": {}},' + ' [], {"template":{}},' ' {"responsive": true} ) };' "
" ) From 6e6bd448cce5d4a28116d2907c41caab0435384d Mon Sep 17 00:00:00 2001 From: Nicolas Kruchten Date: Tue, 12 Jan 2021 13:42:58 -0500 Subject: [PATCH 42/99] Update figure-introspection.md --- doc/python/figure-introspection.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/python/figure-introspection.md b/doc/python/figure-introspection.md index bbeefe9f78..156a268e25 100644 --- a/doc/python/figure-introspection.md +++ b/doc/python/figure-introspection.md @@ -35,7 +35,7 @@ jupyter: ### The Figure Lifecycle -As explained in the [Figure Data Structure documentation](/python/figure-structure/), when building a figure object with Plotly.py, it is not necessary to populate every possible attribute. At render-time, figure objects (whether generated via [Plotly Express](/python/plotly-express/) or [Graph Objects](/python/graph-objects/) are passed from Plotly.py to [Plotly.js](/javascript/), which is the Javascript library responsible for turning JSON descriptions of figures into graphical representations. +As explained in the [Figure Data Structure documentation](/python/figure-structure/), when building a figure object with Plotly.py, it is not necessary to populate every possible attribute. At render-time, figure objects (whether generated via [Plotly Express](/python/plotly-express/) or [Graph Objects](/python/graph-objects/)) are passed from Plotly.py to [Plotly.js](/javascript/), which is the Javascript library responsible for turning JSON descriptions of figures into graphical representations. As part of this rendering process, Plotly.js will determine, based on the attributes that have been set, which other attributes require values in order to draw the figure. Plotly.js will then apply either static or dynamic defaults to all of the remaining required attributes and render the figure. A good example of a static default would be the text font size: if unspecified, the default value is always the same. A good example of a dynamic default would be the range of an axis: if unspecified, the default will be computed based on the range of the data in traces associated with that axis. From 76cc62553395215c4d8d967465aa50162a6aad49 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Wed, 13 Jan 2021 10:55:28 -0500 Subject: [PATCH 43/99] Don't drop timezones during serialization, just let Plotly.js ignore them --- packages/python/plotly/plotly/io/_json.py | 5 ++--- .../plotly/tests/test_io/test_to_from_plotly_json.py | 10 +--------- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/packages/python/plotly/plotly/io/_json.py b/packages/python/plotly/plotly/io/_json.py index 42e80e425f..08647e6fc4 100644 --- a/packages/python/plotly/plotly/io/_json.py +++ b/packages/python/plotly/plotly/io/_json.py @@ -496,9 +496,9 @@ def clean_to_json_compatible(obj, **kwargs): return np.ascontiguousarray(obj.values) elif obj.dtype.kind == "M": if isinstance(obj, pd.Series): - dt_values = obj.dt.tz_localize(None).dt.to_pydatetime().tolist() + dt_values = obj.dt.to_pydatetime().tolist() else: # DatetimeIndex - dt_values = obj.tz_localize(None).to_pydatetime().tolist() + dt_values = obj.to_pydatetime().tolist() if not datetime_allowed: # Note: We don't need to handle dropping timezones here because @@ -513,7 +513,6 @@ def clean_to_json_compatible(obj, **kwargs): try: # Need to drop timezone for scalar datetimes. Don't need to convert # to string since engine can do that - obj = obj.replace(tzinfo=None) obj = obj.to_pydatetime() except (TypeError, AttributeError): pass diff --git a/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py b/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py index a72e64f66e..1b149d7ba4 100644 --- a/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py +++ b/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py @@ -32,7 +32,7 @@ def isoformat_test(dt_value): if isinstance(dt_value, np.datetime64): return str(dt_value) elif isinstance(dt_value, datetime.datetime): - return dt_value.replace(tzinfo=None).isoformat() + return dt_value.isoformat() else: raise ValueError("Unsupported date type: {}".format(type(dt_value))) @@ -181,18 +181,10 @@ def test_datetime(datetime_value, engine, pretty): def test_datetime_arrays(datetime_array, engine, pretty): - if engine == "legacy": - pytest.skip("legacy encoder doesn't strip timezone from datetimes arrays") - value = build_test_dict(datetime_array) result = pio.to_json_plotly(value, engine=engine) def to_str(v): - try: - v = v.replace(tzinfo=None) - except (TypeError, AttributeError): - pass - try: v = v.isoformat(sep="T") except (TypeError, AttributeError): From 84ba4b556de148ab0eedc225b05792c652ef5d9d Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Wed, 13 Jan 2021 13:53:56 -0500 Subject: [PATCH 44/99] no need to skip legacy tests now --- .../plotly/plotly/tests/test_io/test_to_from_plotly_json.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py b/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py index 1b149d7ba4..c07a43d23a 100644 --- a/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py +++ b/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py @@ -170,9 +170,6 @@ def test_object_numpy_encoding(object_numpy_array, engine, pretty): def test_datetime(datetime_value, engine, pretty): - if engine == "legacy": - pytest.skip("legacy encoder doesn't strip timezone from scalar datetimes") - value = build_test_dict(datetime_value) result = pio.to_json_plotly(value, engine=engine, pretty=pretty) expected = build_test_dict_string('"{}"'.format(isoformat_test(datetime_value))) From 340aed33bf116530a574badde64e867175c067ad Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Wed, 13 Jan 2021 17:43:24 -0500 Subject: [PATCH 45/99] Only try `datetime_as_string` on datetime kinded numpy arrays --- packages/python/plotly/_plotly_utils/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/python/plotly/_plotly_utils/utils.py b/packages/python/plotly/_plotly_utils/utils.py index 572f612793..9254b7f23d 100644 --- a/packages/python/plotly/_plotly_utils/utils.py +++ b/packages/python/plotly/_plotly_utils/utils.py @@ -186,7 +186,7 @@ def encode_as_numpy(obj): if obj is numpy.ma.core.masked: return float("nan") - elif isinstance(obj, numpy.ndarray): + elif isinstance(obj, numpy.ndarray) and obj.dtype.kind == "M": try: return numpy.datetime_as_string(obj).tolist() except TypeError: From ef60cf5d68b993abfac44c81ea3010c717c8f89a Mon Sep 17 00:00:00 2001 From: Nicolas Kruchten Date: Mon, 18 Jan 2021 09:52:18 -0500 Subject: [PATCH 46/99] Update configuration-options.md --- doc/python/configuration-options.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/python/configuration-options.md b/doc/python/configuration-options.md index 8d2709c6fd..22c968ce42 100644 --- a/doc/python/configuration-options.md +++ b/doc/python/configuration-options.md @@ -229,11 +229,11 @@ fig.show(config=config) To delete buttons from the modebar, pass an array of strings containing the names of the buttons you want to remove to the `modeBarButtonsToRemove` attribute in the figure's configuration dictionary. Note that different chart types have different default modebars. The following is a list of all the modebar buttons and the chart types they are associated with: --'2D': `zoom2d`, `pan2d`, `select2d`, `lasso2d`, `zoomIn2d`, `zoomOut2d`, `autoScale2d`, `resetScale2d` --'3D': `zoom3d`, `pan3d`, `rbitRotation`, `tableRotation`, `handleDrag3d`, `resetCameraDefault3d`, `resetCameraLastSave3d`, `hoverClosest3d` --'Cartesian': `hoverClosestCartesian`, `hoverCompareCartesian` --'Geo': `zoomInGeo`, `zoomOutGeo`, `resetGeo`, `hoverClosestGeo` --'Other': `hoverClosestGl2d`, `hoverClosestPie`, `toggleHover`, `resetViews`, `toImage: sendDataToCloud`, `toggleSpikelines`, `resetViewMapbox` + - **2D**: `zoom2d`, `pan2d`, `select2d`, `lasso2d`, `zoomIn2d`, `zoomOut2d`, `autoScale2d`, `resetScale2d` + - **3D**: `zoom3d`, `pan3d`, `rbitRotation`, `tableRotation`, `handleDrag3d`, `resetCameraDefault3d`, `resetCameraLastSave3d`, `hoverClosest3d` + - **Cartesian**: `hoverClosestCartesian`, `hoverCompareCartesian` + - **Geo**: `zoomInGeo`, `zoomOutGeo`, `resetGeo`, `hoverClosestGeo` + - **Other**: `hoverClosestGl2d`, `hoverClosestPie`, `toggleHover`, `resetViews`, `toImage: sendDataToCloud`, `toggleSpikelines`, `resetViewMapbox` ```python import plotly.graph_objects as go @@ -299,4 +299,4 @@ The same configuration dictionary that you pass to the `config` parameter of the #### Reference -See config options at https://github.com/plotly/plotly.js/blob/master/src/plot_api/plot_config.js#L6 \ No newline at end of file +See config options at https://github.com/plotly/plotly.js/blob/master/src/plot_api/plot_config.js#L6 From 6cea61db9280b33d4870ff527be9dcafeed45bd3 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Thu, 21 Jan 2021 11:36:22 -0500 Subject: [PATCH 47/99] Don't store object or unicode numpy arrays in figure. Coerce to lists --- .../plotly/_plotly_utils/basevalidators.py | 69 +++++++----------- .../validators/test_dataarray_validator.py | 13 +++- .../validators/test_enumerated_validator.py | 4 +- .../validators/test_pandas_series_input.py | 28 ++----- .../tests/validators/test_string_validator.py | 7 +- .../tests/validators/test_xarray_input.py | 7 +- .../plotly/tests/test_core/test_px/test_px.py | 8 +- .../test_core/test_px/test_px_functions.py | 6 +- .../tests/test_core/test_px/test_px_input.py | 2 +- scratch/benchmarks.py | 73 +++++++++++++++++++ 10 files changed, 132 insertions(+), 85 deletions(-) create mode 100644 scratch/benchmarks.py diff --git a/packages/python/plotly/_plotly_utils/basevalidators.py b/packages/python/plotly/_plotly_utils/basevalidators.py index 748f2ff70e..5f3534899b 100644 --- a/packages/python/plotly/_plotly_utils/basevalidators.py +++ b/packages/python/plotly/_plotly_utils/basevalidators.py @@ -53,7 +53,7 @@ def to_scalar_or_list(v): return v -def copy_to_readonly_numpy_array(v, kind=None, force_numeric=False): +def copy_to_readonly_numpy_array_or_list(v, kind=None, force_numeric=False): """ Convert an array-like value into a read-only numpy array @@ -89,7 +89,7 @@ def copy_to_readonly_numpy_array(v, kind=None, force_numeric=False): # u: unsigned int, i: signed int, f: float numeric_kinds = {"u", "i", "f"} - kind_default_dtypes = {"u": "uint32", "i": "int32", "f": "float64", "O": "object"} + kind_default_dtypes = {"u": "uint32", "i": "int32", "f": "float64", "O": "object", "U": "U"} # Handle pandas Series and Index objects if pd and isinstance(v, (pd.Series, pd.Index)): @@ -113,18 +113,12 @@ def copy_to_readonly_numpy_array(v, kind=None, force_numeric=False): if not isinstance(v, np.ndarray): # v has its own logic on how to convert itself into a numpy array if is_numpy_convertable(v): - return copy_to_readonly_numpy_array( + return copy_to_readonly_numpy_array_or_list( np.array(v), kind=kind, force_numeric=force_numeric ) else: # v is not homogenous array - v_list = [to_scalar_or_list(e) for e in v] - - # Lookup dtype for requested kind, if any - dtype = kind_default_dtypes.get(first_kind, None) - - # construct new array from list - new_v = np.array(v_list, order="C", dtype=dtype) + return [to_scalar_or_list(e) for e in v] elif v.dtype.kind in numeric_kinds: # v is a homogenous numeric array if kind and v.dtype.kind not in kind: @@ -135,6 +129,12 @@ def copy_to_readonly_numpy_array(v, kind=None, force_numeric=False): else: # Either no kind was requested or requested kind is satisfied new_v = np.ascontiguousarray(v.copy()) + elif v.dtype.kind == "O": + if kind: + dtype = kind_default_dtypes.get(first_kind, None) + return np.array(v, dtype=dtype) + else: + return v.tolist() else: # v is a non-numeric homogenous array new_v = v.copy() @@ -149,12 +149,12 @@ def copy_to_readonly_numpy_array(v, kind=None, force_numeric=False): if "U" not in kind: # Force non-numeric arrays to have object type # -------------------------------------------- - # Here we make sure that non-numeric arrays have the object - # datatype. This works around cases like np.array([1, 2, '3']) where + # Here we make sure that non-numeric arrays become lists + # This works around cases like np.array([1, 2, '3']) where # numpy converts the integers to strings and returns array of dtype # 'sepal_length=%{y}
petal_length=%{customdata[2]}
petal_width=%{customdata[3]}
species_id=%{customdata[0]}" diff --git a/packages/python/plotly/plotly/tests/test_core/test_px/test_px_functions.py b/packages/python/plotly/plotly/tests/test_core/test_px/test_px_functions.py index a75a45f43d..fad79b5ded 100644 --- a/packages/python/plotly/plotly/tests/test_core/test_px/test_px_functions.py +++ b/packages/python/plotly/plotly/tests/test_core/test_px/test_px_functions.py @@ -229,9 +229,9 @@ def test_sunburst_treemap_with_path_color(): df["hover"] = [el.lower() for el in vendors] fig = px.sunburst(df, path=path, color="calls", hover_data=["hover"]) custom = fig.data[0].customdata - assert np.all(custom[:8, 0] == df["hover"]) - assert np.all(custom[8:, 0] == "(?)") - assert np.all(custom[:8, 1] == df["calls"]) + assert [el[0] for el in custom[:8]] == df["hover"].tolist() + assert [el[0] for el in custom[8:]] == ["(?)"] * 7 + assert [el[1] for el in custom[:8]] == df["calls"].tolist() # Discrete color fig = px.sunburst(df, path=path, color="vendors") diff --git a/packages/python/plotly/plotly/tests/test_core/test_px/test_px_input.py b/packages/python/plotly/plotly/tests/test_core/test_px/test_px_input.py index 477e7dbcb0..0dce0ae663 100644 --- a/packages/python/plotly/plotly/tests/test_core/test_px/test_px_input.py +++ b/packages/python/plotly/plotly/tests/test_core/test_px/test_px_input.py @@ -126,7 +126,7 @@ def test_repeated_name(): hover_data=["petal_length", "petal_width", "species_id"], custom_data=["species_id", "species"], ) - assert fig.data[0].customdata.shape[1] == 4 + assert len(fig.data[0].customdata[0]) == 4 def test_arrayattrable_numpy(): diff --git a/scratch/benchmarks.py b/scratch/benchmarks.py new file mode 100644 index 0000000000..9de88c4afb --- /dev/null +++ b/scratch/benchmarks.py @@ -0,0 +1,73 @@ +import pickle + +from _plotly_utils.optional_imports import get_module +from plotly.io._json import clean_to_json_compatible +from plotly.io.json import to_json_plotly +import time +import copy + +modules = { + "sage_all": get_module("sage.all", should_load=False), + "np": get_module("numpy", should_load=False), + "pd": get_module("pandas", should_load=False), + "image": get_module("PIL.Image", should_load=False), +} + +# path = '/home/jmmease/PyDev/repos/plotly.py/doc/timing/json_object/ed9498c3-25ca-4634-82d2-ee8c1837f24a.pkl' +path = '/doc/timing/json_object0/df55a585-3c9b-4097-8232-6778ecd620a2.pkl' +with open(path, "rb") as f: + json_object = pickle.load(f) + + +def json_clean_json(plotly_object): + return clean_to_json_compatible( + plotly_object, + numpy_allowed=False, + datetime_allowed=False, + modules=modules, + ) + + +def json_clean_orjson(plotly_object): + return clean_to_json_compatible( + plotly_object, + numpy_allowed=True, + datetime_allowed=True, + modules=modules, + ) + +if __name__ == "__main__": + trials = 10 + for engine in ["legacy", "json", "orjson"]: + t0 = time.time_ns() + for _ in range(trials): + to_json_plotly(json_object, engine=engine) + + t = (time.time_ns() - t0) / trials / 1000000 + print(f"Time for {trials} trials with engine {engine}: {t}") + + clean_json = json_clean_orjson(plotly_object=json_object) + + t0 = time.time_ns() + for _ in range(trials): + to_json_plotly(clean_json, engine="orjson") + + t = (time.time_ns() - t0) / trials / 1000000 + print(f"Time for {trials} trials with orjson after cleaning: {t}") + + # # cloning times + # t0 = time.time_ns() + # for _ in range(trials): + # copy.deepcopy(json_object) + # + # t = (time.time_ns() - t0) / trials / 1000000 + # print(f"Time to deep copy for {trials} trials: {t}") + # + # # Cleaning times + # for clean in [json_clean_json, json_clean_orjson]: + # t0 = time.time_ns() + # for _ in range(trials): + # clean(json_object) + # + # t = (time.time_ns() - t0) / trials / 1000000 + # print(f"Time to clean for {trials} trials with {json_clean_json.__name__}: {t}") From 93815c147a98e7826a6acd49d90a74ce339cc782 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Thu, 21 Jan 2021 12:16:42 -0500 Subject: [PATCH 48/99] Try orjson encoding without cleaning first --- packages/python/plotly/plotly/io/_json.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/python/plotly/plotly/io/_json.py b/packages/python/plotly/plotly/io/_json.py index 08647e6fc4..60c330091d 100644 --- a/packages/python/plotly/plotly/io/_json.py +++ b/packages/python/plotly/plotly/io/_json.py @@ -155,6 +155,18 @@ def to_json_plotly(plotly_object, pretty=False, engine=None): if pretty: opts |= orjson.OPT_INDENT_2 + # Plotly + try: + plotly_object = plotly_object.to_plotly_json() + except AttributeError: + pass + + # Try without cleaning + try: + return orjson.dumps(plotly_object, option=opts).decode("utf8") + except TypeError: + pass + cleaned = clean_to_json_compatible( plotly_object, numpy_allowed=True, datetime_allowed=True, modules=modules, ) From 8a3a4b3180e09546f2689b45af704341ea1589ed Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Thu, 21 Jan 2021 15:05:18 -0500 Subject: [PATCH 49/99] blacken --- .../plotly/_plotly_utils/basevalidators.py | 16 +++++++++++++--- .../tests/validators/test_dataarray_validator.py | 9 ++++++--- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/packages/python/plotly/_plotly_utils/basevalidators.py b/packages/python/plotly/_plotly_utils/basevalidators.py index 5f3534899b..1dc3ea4867 100644 --- a/packages/python/plotly/_plotly_utils/basevalidators.py +++ b/packages/python/plotly/_plotly_utils/basevalidators.py @@ -89,7 +89,13 @@ def copy_to_readonly_numpy_array_or_list(v, kind=None, force_numeric=False): # u: unsigned int, i: signed int, f: float numeric_kinds = {"u", "i", "f"} - kind_default_dtypes = {"u": "uint32", "i": "int32", "f": "float64", "O": "object", "U": "U"} + kind_default_dtypes = { + "u": "uint32", + "i": "int32", + "f": "float64", + "O": "object", + "U": "U", + } # Handle pandas Series and Index objects if pd and isinstance(v, (pd.Series, pd.Index)): @@ -191,7 +197,7 @@ def is_homogeneous_array(v): if v_numpy.shape == (): return False else: - return True # v_numpy.dtype.kind in ["u", "i", "f", "M", "U"] + return True # v_numpy.dtype.kind in ["u", "i", "f", "M", "U"] return False @@ -1320,7 +1326,11 @@ def validate_coerce(self, v, should_raise=True): pass elif self.array_ok and is_homogeneous_array(v): v = copy_to_readonly_numpy_array_or_list(v) - if not isinstance(v, list) and self.numbers_allowed() and v.dtype.kind in ["u", "i", "f"]: + if ( + not isinstance(v, list) + and self.numbers_allowed() + and v.dtype.kind in ["u", "i", "f"] + ): # Numbers are allowed and we have an array of numbers. # All good pass diff --git a/packages/python/plotly/_plotly_utils/tests/validators/test_dataarray_validator.py b/packages/python/plotly/_plotly_utils/tests/validators/test_dataarray_validator.py index 02beff7f5e..c5b34a3569 100644 --- a/packages/python/plotly/_plotly_utils/tests/validators/test_dataarray_validator.py +++ b/packages/python/plotly/_plotly_utils/tests/validators/test_dataarray_validator.py @@ -32,8 +32,7 @@ def test_validator_acceptance_simple(val, validator): @pytest.mark.parametrize( - "val", - [np.array([2, 3, 4]), np.array([[1, 2, 3], [4, 5, 6]])], + "val", [np.array([2, 3, 4]), np.array([[1, 2, 3], [4, 5, 6]])], ) def test_validator_acceptance_homogeneous(val, validator): coerce_val = validator.validate_coerce(val) @@ -44,7 +43,11 @@ def test_validator_acceptance_homogeneous(val, validator): # Accept object array as list @pytest.mark.parametrize( "val", - [["A", "B", "C"], np.array(["A", "B", "C"], dtype="object"), pd.Series(["a", "b", "c"])] + [ + ["A", "B", "C"], + np.array(["A", "B", "C"], dtype="object"), + pd.Series(["a", "b", "c"]), + ], ) def test_validator_accept_object_array_as_list(val, validator): coerce_val = validator.validate_coerce(val) From 1de750af6fbe86e1aff5b24a6c34ed886eb8ddb6 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Thu, 21 Jan 2021 15:16:29 -0500 Subject: [PATCH 50/99] remove scratch file --- scratch/benchmarks.py | 73 ------------------------------------------- 1 file changed, 73 deletions(-) delete mode 100644 scratch/benchmarks.py diff --git a/scratch/benchmarks.py b/scratch/benchmarks.py deleted file mode 100644 index 9de88c4afb..0000000000 --- a/scratch/benchmarks.py +++ /dev/null @@ -1,73 +0,0 @@ -import pickle - -from _plotly_utils.optional_imports import get_module -from plotly.io._json import clean_to_json_compatible -from plotly.io.json import to_json_plotly -import time -import copy - -modules = { - "sage_all": get_module("sage.all", should_load=False), - "np": get_module("numpy", should_load=False), - "pd": get_module("pandas", should_load=False), - "image": get_module("PIL.Image", should_load=False), -} - -# path = '/home/jmmease/PyDev/repos/plotly.py/doc/timing/json_object/ed9498c3-25ca-4634-82d2-ee8c1837f24a.pkl' -path = '/doc/timing/json_object0/df55a585-3c9b-4097-8232-6778ecd620a2.pkl' -with open(path, "rb") as f: - json_object = pickle.load(f) - - -def json_clean_json(plotly_object): - return clean_to_json_compatible( - plotly_object, - numpy_allowed=False, - datetime_allowed=False, - modules=modules, - ) - - -def json_clean_orjson(plotly_object): - return clean_to_json_compatible( - plotly_object, - numpy_allowed=True, - datetime_allowed=True, - modules=modules, - ) - -if __name__ == "__main__": - trials = 10 - for engine in ["legacy", "json", "orjson"]: - t0 = time.time_ns() - for _ in range(trials): - to_json_plotly(json_object, engine=engine) - - t = (time.time_ns() - t0) / trials / 1000000 - print(f"Time for {trials} trials with engine {engine}: {t}") - - clean_json = json_clean_orjson(plotly_object=json_object) - - t0 = time.time_ns() - for _ in range(trials): - to_json_plotly(clean_json, engine="orjson") - - t = (time.time_ns() - t0) / trials / 1000000 - print(f"Time for {trials} trials with orjson after cleaning: {t}") - - # # cloning times - # t0 = time.time_ns() - # for _ in range(trials): - # copy.deepcopy(json_object) - # - # t = (time.time_ns() - t0) / trials / 1000000 - # print(f"Time to deep copy for {trials} trials: {t}") - # - # # Cleaning times - # for clean in [json_clean_json, json_clean_orjson]: - # t0 = time.time_ns() - # for _ in range(trials): - # clean(json_object) - # - # t = (time.time_ns() - t0) / trials / 1000000 - # print(f"Time to clean for {trials} trials with {json_clean_json.__name__}: {t}") From 81f73d50352b4009513db84b93e9a57b05b5bcd0 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Thu, 21 Jan 2021 15:50:25 -0500 Subject: [PATCH 51/99] Remove unused clone --- .../python/plotly/plotly/basedatatypes.py | 28 ++++++------------- packages/python/plotly/plotly/io/_utils.py | 4 +-- 2 files changed, 10 insertions(+), 22 deletions(-) diff --git a/packages/python/plotly/plotly/basedatatypes.py b/packages/python/plotly/plotly/basedatatypes.py index 8bfba5e948..2e50ca8ba2 100644 --- a/packages/python/plotly/plotly/basedatatypes.py +++ b/packages/python/plotly/plotly/basedatatypes.py @@ -3273,7 +3273,7 @@ def _perform_batch_animate(self, animation_opts): # Exports # ------- - def to_dict(self, clone=True): + def to_dict(self): """ Convert figure to a dictionary @@ -3286,33 +3286,24 @@ def to_dict(self, clone=True): """ # Handle data # ----------- - if clone: - data = deepcopy(self._data) - else: - data = self._data + data = deepcopy(self._data) # Handle layout # ------------- - if clone: - layout = deepcopy(self._layout) - else: - layout = self._layout + layout = deepcopy(self._layout) # Handle frames # ------------- # Frame key is only added if there are any frames res = {"data": data, "layout": layout} - if clone: - frames = deepcopy([frame._props for frame in self._frame_objs]) - else: - frames = [frame._props for frame in self._frame_objs] + frames = deepcopy([frame._props for frame in self._frame_objs]) if frames: res["frames"] = frames return res - def to_plotly_json(self, clone=True): + def to_plotly_json(self): """ Convert figure to a JSON representation as a Python dict @@ -3320,7 +3311,7 @@ def to_plotly_json(self, clone=True): ------- dict """ - return self.to_dict(clone=clone) + return self.to_dict() @staticmethod def _to_ordered_dict(d, skip_uid=False): @@ -5550,7 +5541,7 @@ def on_change(self, callback, *args, **kwargs): # ----------------- self._change_callbacks[arg_tuples].append(callback) - def to_plotly_json(self, clone=True): + def to_plotly_json(self): """ Return plotly JSON representation of object as a Python dict @@ -5558,10 +5549,7 @@ def to_plotly_json(self, clone=True): ------- dict """ - if clone: - return deepcopy(self._props if self._props is not None else {}) - else: - return self._props if self._props is not None else {} + return deepcopy(self._props if self._props is not None else {}) @staticmethod def _vals_equal(v1, v2): diff --git a/packages/python/plotly/plotly/io/_utils.py b/packages/python/plotly/plotly/io/_utils.py index 6b5f8b40f8..289ffa2c1a 100644 --- a/packages/python/plotly/plotly/io/_utils.py +++ b/packages/python/plotly/plotly/io/_utils.py @@ -4,11 +4,11 @@ import plotly.graph_objs as go -def validate_coerce_fig_to_dict(fig, validate, clone=True): +def validate_coerce_fig_to_dict(fig, validate): from plotly.basedatatypes import BaseFigure if isinstance(fig, BaseFigure): - fig_dict = fig.to_dict(clone=clone) + fig_dict = fig.to_dict() elif isinstance(fig, dict): if validate: # This will raise an exception if fig is not a valid plotly figure From 80be8bd272d030fdeede5ba57c77f876557cfe66 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Fri, 22 Jan 2021 12:38:37 -0500 Subject: [PATCH 52/99] Remove the new "json" encoder since it's sometimes slower, and never faster, than current encoder. Rename "legacy" to "json". --- .../python/plotly/plotly/basedatatypes.py | 6 +-- packages/python/plotly/plotly/io/_json.py | 47 ++++--------------- .../tests/test_io/test_to_from_plotly_json.py | 4 +- 3 files changed, 13 insertions(+), 44 deletions(-) diff --git a/packages/python/plotly/plotly/basedatatypes.py b/packages/python/plotly/plotly/basedatatypes.py index 2e50ca8ba2..038b5ded5c 100644 --- a/packages/python/plotly/plotly/basedatatypes.py +++ b/packages/python/plotly/plotly/basedatatypes.py @@ -3416,9 +3416,8 @@ def to_json(self, *args, **kwargs): engine: str (default None) The JSON encoding engine to use. One of: - - "json" for a rewritten encoder based on the built-in Python json module + - "json" for an encoder based on the built-in Python json module - "orjson" for a fast encoder the requires the orjson package - - "legacy" for the legacy JSON encoder. If not specified, the default encoder is set to the current value of plotly.io.json.config.default_encoder. @@ -3480,9 +3479,8 @@ def write_json(self, *args, **kwargs): engine: str (default None) The JSON encoding engine to use. One of: - - "json" for a rewritten encoder based on the built-in Python json module + - "json" for an encoder based on the built-in Python json module - "orjson" for a fast encoder the requires the orjson package - - "legacy" for the legacy JSON encoder. If not specified, the default encoder is set to the current value of plotly.io.json.config.default_encoder. diff --git a/packages/python/plotly/plotly/io/_json.py b/packages/python/plotly/plotly/io/_json.py index 60c330091d..8fbf795768 100644 --- a/packages/python/plotly/plotly/io/_json.py +++ b/packages/python/plotly/plotly/io/_json.py @@ -13,7 +13,7 @@ # Orca configuration class # ------------------------ class JsonConfig(object): - _valid_engines = ("legacy", "json", "orjson", "auto") + _valid_engines = ("json", "orjson", "auto") def __init__(self): self._default_engine = "auto" @@ -74,7 +74,6 @@ def to_json_plotly(plotly_object, pretty=False, engine=None): The JSON encoding engine to use. One of: - "json" for an engine based on the built-in Python json module - "orjson" for a faster engine that requires the orjson package - - "legacy" for the legacy JSON engine. - "auto" for the "orjson" engine if available, otherwise "json" If not specified, the default engine is set to the current value of plotly.io.json.config.default_engine. @@ -99,7 +98,7 @@ def to_json_plotly(plotly_object, pretty=False, engine=None): engine = "orjson" else: engine = "json" - elif engine not in ["orjson", "json", "legacy"]: + elif engine not in ["orjson", "json"]: raise ValueError("Invalid json engine: %s" % engine) modules = { @@ -111,7 +110,7 @@ def to_json_plotly(plotly_object, pretty=False, engine=None): # Dump to a JSON string and return # -------------------------------- - if engine in ("json", "legacy"): + if engine == "json": opts = {"sort_keys": True} if pretty: opts["indent"] = 2 @@ -119,35 +118,9 @@ def to_json_plotly(plotly_object, pretty=False, engine=None): # Remove all whitespace opts["separators"] = (",", ":") - if engine == "json": - cleaned = clean_to_json_compatible( - plotly_object, - numpy_allowed=False, - datetime_allowed=False, - modules=modules, - ) - encoded_o = json.dumps(cleaned, **opts) - - if not ("NaN" in encoded_o or "Infinity" in encoded_o): - return encoded_o - - # now: - # 1. `loads` to switch Infinity, -Infinity, NaN to None - # 2. `dumps` again so you get 'null' instead of extended JSON - try: - new_o = json.loads(encoded_o, parse_constant=coerce_to_strict) - except ValueError: - # invalid separators will fail here. raise a helpful exception - raise ValueError( - "Encoding into strict JSON failed. Did you set the separators " - "valid JSON separators?" - ) - else: - return json.dumps(new_o, **opts) - else: - from _plotly_utils.utils import PlotlyJSONEncoder + from _plotly_utils.utils import PlotlyJSONEncoder - return json.dumps(plotly_object, cls=PlotlyJSONEncoder, **opts) + return json.dumps(plotly_object, cls=PlotlyJSONEncoder, **opts) elif engine == "orjson": JsonConfig.validate_orjson() opts = orjson.OPT_SORT_KEYS | orjson.OPT_SERIALIZE_NUMPY @@ -197,7 +170,6 @@ def to_json(fig, validate=True, pretty=False, remove_uids=True, engine=None): The JSON encoding engine to use. One of: - "json" for an engine based on the built-in Python json module - "orjson" for a faster engine that requires the orjson package - - "legacy" for the legacy JSON engine. - "auto" for the "orjson" engine if available, otherwise "json" If not specified, the default engine is set to the current value of plotly.io.json.config.default_engine. @@ -249,7 +221,6 @@ def write_json(fig, file, validate=True, pretty=False, remove_uids=True, engine= The JSON encoding engine to use. One of: - "json" for an engine based on the built-in Python json module - "orjson" for a faster engine that requires the orjson package - - "legacy" for the legacy JSON engine. - "auto" for the "orjson" engine if available, otherwise "json" If not specified, the default engine is set to the current value of plotly.io.json.config.default_engine. @@ -289,7 +260,7 @@ def from_json_plotly(value, engine=None): engine: str (default None) The JSON decoding engine to use. One of: - - if "json" or "legacy", parse JSON using built in json module + - if "json", parse JSON using built in json module - if "orjson", parse using the faster orjson module, requires the orjson package - if "auto" use orjson module if available, otherwise use the json module @@ -327,7 +298,7 @@ def from_json_plotly(value, engine=None): engine = "orjson" else: engine = "json" - elif engine not in ["orjson", "json", "legacy"]: + elif engine not in ["orjson", "json"]: raise ValueError("Invalid json engine: %s" % engine) if engine == "orjson": @@ -362,7 +333,7 @@ def from_json(value, output_type="Figure", skip_invalid=False, engine=None): engine: str (default None) The JSON decoding engine to use. One of: - - if "json" or "legacy", parse JSON using built in json module + - if "json", parse JSON using built in json module - if "orjson", parse using the faster orjson module, requires the orjson package - if "auto" use orjson module if available, otherwise use the json module @@ -416,7 +387,7 @@ def read_json(file, output_type="Figure", skip_invalid=False, engine=None): engine: str (default None) The JSON decoding engine to use. One of: - - if "json" or "legacy", parse JSON using built in json module + - if "json", parse JSON using built in json module - if "orjson", parse using the faster orjson module, requires the orjson package - if "auto" use orjson module if available, otherwise use the json module diff --git a/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py b/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py index c07a43d23a..70d6803f1a 100644 --- a/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py +++ b/packages/python/plotly/plotly/tests/test_io/test_to_from_plotly_json.py @@ -65,9 +65,9 @@ def check_roundtrip(value, engine, pretty): # Fixtures if orjson is not None: - engines = ["json", "orjson", "legacy", "auto"] + engines = ["json", "orjson", "auto"] else: - engines = ["json", "legacy", "auto"] + engines = ["json", "auto"] @pytest.fixture(scope="module", params=engines) From cb54f8892bce0832f373a255de3d3c52b0822928 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Fri, 22 Jan 2021 12:53:28 -0500 Subject: [PATCH 53/99] Reorder dict cleaning for performance --- packages/python/plotly/plotly/io/_json.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/packages/python/plotly/plotly/io/_json.py b/packages/python/plotly/plotly/io/_json.py index 8fbf795768..3bda778c76 100644 --- a/packages/python/plotly/plotly/io/_json.py +++ b/packages/python/plotly/plotly/io/_json.py @@ -429,6 +429,13 @@ def clean_to_json_compatible(obj, **kwargs): if isinstance(obj, (int, float, string_types)): return obj + if isinstance(obj, dict): + return {k: clean_to_json_compatible(v, **kwargs) for k, v in obj.items()} + elif isinstance(obj, (list, tuple)): + if obj: + # Must process list recursively even though it may be slow + return [clean_to_json_compatible(v, **kwargs) for v in obj] + # unpack kwargs numpy_allowed = kwargs.get("numpy_allowed", False) datetime_allowed = kwargs.get("datetime_allowed", False) @@ -439,12 +446,6 @@ def clean_to_json_compatible(obj, **kwargs): pd = modules["pd"] image = modules["image"] - # Plotly - try: - obj = obj.to_plotly_json() - except AttributeError: - pass - # Sage if sage_all is not None: if obj in sage_all.RR: @@ -522,6 +523,12 @@ def clean_to_json_compatible(obj, **kwargs): if image is not None and isinstance(obj, image.Image): return ImageUriValidator.pil_image_to_uri(obj) + # Plotly + try: + obj = obj.to_plotly_json() + except AttributeError: + pass + # Recurse into lists and dictionaries if isinstance(obj, dict): return {k: clean_to_json_compatible(v, **kwargs) for k, v in obj.items()} From 62a0ad16073f0ef29c88585b66e0334a11bfe219 Mon Sep 17 00:00:00 2001 From: Nicolas Kruchten Date: Thu, 4 Feb 2021 08:12:14 -0500 Subject: [PATCH 54/99] Update troubleshooting.md --- doc/python/troubleshooting.md | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/doc/python/troubleshooting.md b/doc/python/troubleshooting.md index 2800b609dc..680fb5de4e 100644 --- a/doc/python/troubleshooting.md +++ b/doc/python/troubleshooting.md @@ -37,7 +37,7 @@ jupyter: ### Version Problems -In order to follow the examples in this documentation, you should have the latest version of `plotly` installed (4.x), as detailed in the [Getting Started](/python/getting-started) guide. This documentation (under https://plotly.com/python) is incompatible with `plotly` version 3.x, for which the documentation is available under https://plotly.com/python/v3. +In order to follow the examples in this documentation site, you should have the latest version of `plotly` installed (4.x), as detailed in the [Getting Started](/python/getting-started) guide. This documentation (under https://plotly.com/python) is incompatible with `plotly` version 3.x, for which the documentation is available under https://plotly.com/python/v3. In general you must also have the correct version of the underlying Plotly.js rendering engine installed, and the way to do that depends on the environment in which you are rendering figures: Dash, Jupyter Lab or Classic Notebook, VSCode etc. Read on for details about troubleshooting `plotly` in these environments. ### Import Problems @@ -62,24 +62,10 @@ IFrame(snippet_url + 'renderers', width='100%', height=630) ``` -### Jupyter Notebook Classic Problems - -The classic Jupyter Notebook (i.e. launched with `jupyter notebook`) sometimes suffers from a problem whereby if you close the window and reopen it, your plots render as blank spaces. - -The easiest solution is to force the `notebook` renderer to reload by calling `fig.show("notebook")` instead of just `fig.show()`. - -If this problem is recurrent, you may safely run the following code in a Notebook (not in JupyterLab!) at any time and it should restore your figures (for example, you may put it at the top of your notebook for easy access): - -```python -import plotly.io as pio -pio.renderers.default='notebook' -``` - -As a last resort, you can "Restart & Clear Output" from the Kernel menu and rerun your notebook. ### JupyterLab Problems -In order to use `plotly` in JupyterLab, you *must have the extensions installed* as detailed in the [Getting Started guide](/python/getting-started). There are two extensions: `jupyterlab-plotly` for rendering figures with `fig.show()` and `plotlywidget` for the `FigureWidget`. Please note that the *extension version matters*: the extension versions in the [Getting Started](/python/getting-started) guide match the version of `plotly` at the top of the guide and so they should be installed together. Note also that these extensions are meant to work with JupyterLab 1.x and 2.x but not 0.x. +In order to use `plotly` in JupyterLab, you *must have the extensions installed* as detailed in the [Getting Started guide](/python/getting-started). There are two extensions: `jupyterlab-plotly` for rendering figures with `fig.show()` and `plotlywidget` for the `FigureWidget`. Please note that the *extension version matters*: the extension versions in the [Getting Started](/python/getting-started) guide match the version of `plotly` at the top of the guide and so they should be installed together. To list your current extensions, run the following command in a terminal shell **from the same environment as JupyterLab was launched**: @@ -121,6 +107,22 @@ unset NODE_OPTIONS # (Windows) set NODE_OPTIONS= ``` + +### Jupyter Classic Notebook Problems + +The classic Jupyter Notebook (i.e. launched with `jupyter notebook`) sometimes suffers from a problem whereby if you close the window and reopen it, your plots render as blank spaces. + +The easiest solution is to force the `notebook` renderer to reload by calling `fig.show("notebook")` instead of just `fig.show()`. + +If this problem is recurrent, you may safely run the following code in a Notebook (not in JupyterLab!) at any time and it should restore your figures (for example, you may put it at the top of your notebook for easy access): + +```python +import plotly.io as pio +pio.renderers.default='notebook' +``` + +As a last resort, you can "Restart & Clear Output" from the Kernel menu and rerun your notebook. + ### VSCode Notebook, Nteract and Streamlit Problems From 1b81b0b49e88a029234017e7fe8cde01a9bcf102 Mon Sep 17 00:00:00 2001 From: SageCodeCoplAL08 Date: Sun, 14 Feb 2021 10:17:59 +0530 Subject: [PATCH 55/99] fixing documents --- doc/python/2D-Histogram.md | 2 +- doc/python/3d-isosurface-plots.md | 4 ++-- doc/python/annotated-heatmap.md | 4 ++-- doc/python/axes.md | 4 ++-- doc/python/builtin-colorscales.md | 2 +- doc/python/carpet-contour.md | 4 ++-- doc/python/carpet-plot.md | 4 ++-- doc/python/categorical-axes.md | 4 ++-- doc/python/colorscales.md | 10 +++++----- doc/python/compare-webgl-svg.md | 2 +- doc/python/configuration-options.md | 2 +- doc/python/county-choropleth.md | 6 +++--- doc/python/creating-and-updating-figures.md | 2 +- doc/python/custom-buttons.md | 2 +- doc/python/dendrogram.md | 4 ++-- doc/python/discrete-color.md | 6 +++--- doc/python/dropdowns.md | 2 +- doc/python/figure-factories.md | 2 +- doc/python/figure-introspection.md | 2 +- doc/python/funnel-charts.md | 2 +- doc/python/gauge-charts.md | 4 ++-- doc/python/indicator.md | 6 +++--- doc/python/interactive-html-export.md | 2 +- doc/python/jupyter-lab-tools.md | 2 +- doc/python/legend.md | 2 +- doc/python/line-and-scatter.md | 2 +- doc/python/lines-on-maps.md | 2 +- doc/python/mapbox-layers.md | 4 ++-- doc/python/marker-style.md | 4 ++-- doc/python/ml-pca.md | 2 +- doc/python/ml-roc-pr.md | 2 +- doc/python/ml-tsne-umap-projections.md | 4 ++-- doc/python/multiple-axes.md | 2 +- doc/python/pandas-backend.md | 4 ++-- doc/python/parallel-categories-diagram.md | 6 +++--- doc/python/parallel-coordinates-plot.md | 2 +- doc/python/plotly-express.md | 2 +- doc/python/random-walk.md | 2 +- doc/python/shapes.md | 4 ++-- doc/python/sliders.md | 2 +- doc/python/smoothing.md | 4 ++-- doc/python/subplots.md | 2 +- doc/python/text-and-annotations.md | 2 +- doc/python/time-series.md | 2 +- 44 files changed, 70 insertions(+), 70 deletions(-) diff --git a/doc/python/2D-Histogram.md b/doc/python/2D-Histogram.md index 140bfa08a0..d8218ea406 100644 --- a/doc/python/2D-Histogram.md +++ b/doc/python/2D-Histogram.md @@ -137,7 +137,7 @@ fig = go.Figure(go.Histogram2d(x=x, y=y, histnorm='probability', fig.show() ``` ### Sharing bin settings between 2D Histograms -This example shows how to use [bingroup](https://plotly.com/python/reference/histogram/#histogram-bingroup) attribute to have a compatible bin settings for both histograms. To define `start`, `end` and `size` value of x-axis and y-axis seperatly, set [ybins](https://plotly.com/python/reference/histogram2dcontour/#histogram2dcontour-ybins) and `xbins`. +This example shows how to use [bingroup](https://plotly.com/python/reference/histogram/#histogram-bingroup) attribute to have a compatible bin settings for both histograms. To define `start`, `end` and `size` value of x-axis and y-axis separately, set [ybins](https://plotly.com/python/reference/histogram2dcontour/#histogram2dcontour-ybins) and `xbins`. ```python import plotly.graph_objects as go diff --git a/doc/python/3d-isosurface-plots.md b/doc/python/3d-isosurface-plots.md index b94a27c509..02124999d6 100644 --- a/doc/python/3d-isosurface-plots.md +++ b/doc/python/3d-isosurface-plots.md @@ -130,7 +130,7 @@ fig = go.Figure(data=go.Isosurface( fig.show() ``` -#### Isosurface with Addtional Slices +#### Isosurface with Additional Slices Here we visualize slices parallel to the axes on top of isosurfaces. For a clearer visualization, the `fill` ratio of isosurfaces is decreased below 1 (completely filled). @@ -235,4 +235,4 @@ fig.show() ``` #### Reference -See https://plotly.com/python/reference/isosurface/ for more information and chart attribute options! \ No newline at end of file +See https://plotly.com/python/reference/isosurface/ for more information and chart attribute options! diff --git a/doc/python/annotated-heatmap.md b/doc/python/annotated-heatmap.md index ddd62e66cb..1e27c221bb 100644 --- a/doc/python/annotated-heatmap.md +++ b/doc/python/annotated-heatmap.md @@ -82,7 +82,7 @@ fig.show() ``` #### Custom Text and X & Y Labels -set `annotation_text` to a matrix with the same dimmensions as `z` +set `annotation_text` to a matrix with the same dimensions as `z` ```python import plotly.figure_factory as ff @@ -203,4 +203,4 @@ fig.show() #### Reference -For more info on Plotly heatmaps, see: https://plotly.com/python/reference/heatmap/.
For more info on using colorscales with Plotly see: https://plotly.com/python/heatmap-and-contour-colorscales/
For more info on `ff.create_annotated_heatmap()`, see the [full function reference](https://plotly.com/python-api-reference/generated/plotly.figure_factory.create_annotated_heatmap.html#plotly.figure_factory.create_annotated_heatmap) \ No newline at end of file +For more info on Plotly heatmaps, see: https://plotly.com/python/reference/heatmap/.
For more info on using colorscales with Plotly see: https://plotly.com/python/heatmap-and-contour-colorscales/
For more info on `ff.create_annotated_heatmap()`, see the [full function reference](https://plotly.com/python-api-reference/generated/plotly.figure_factory.create_annotated_heatmap.html#plotly.figure_factory.create_annotated_heatmap) diff --git a/doc/python/axes.md b/doc/python/axes.md index 03dbb2cef5..25186e0d62 100644 --- a/doc/python/axes.md +++ b/doc/python/axes.md @@ -66,7 +66,7 @@ The axis type is auto-detected by looking at data from the first [trace](/python ### Forcing an axis to be categorical -It is possible to force the axis type by setting explicitely `xaxis_type`. In the example below the automatic X axis type would be `linear` (because there are not more than twice as many unique strings as unique numbers) but we force it to be `category`. +It is possible to force the axis type by setting explicitly `xaxis_type`. In the example below the automatic X axis type would be `linear` (because there are not more than twice as many unique strings as unique numbers) but we force it to be `category`. ```python import plotly.express as px @@ -139,7 +139,7 @@ IFrame(snippet_url + 'axes', width='100%', height=630) #### Moving Tick Labels Inside the Plot -The `ticklabelposition` attribute moves tick labels inside the plotting area, and modifies the auto-range behaviour to accomodate the labels. +The `ticklabelposition` attribute moves tick labels inside the plotting area, and modifies the auto-range behaviour to accommodate the labels. ```python import plotly.express as px diff --git a/doc/python/builtin-colorscales.md b/doc/python/builtin-colorscales.md index 5015146bbe..dbc7bec822 100644 --- a/doc/python/builtin-colorscales.md +++ b/doc/python/builtin-colorscales.md @@ -23,7 +23,7 @@ jupyter: version: 3.7.6 plotly: description: A reference for the built-in named continuous (sequential, diverging - and cylclical) color scales in Plotly. + and cyclical) color scales in Plotly. display_as: file_settings has_thumbnail: true ipynb: ~notebook_demo/187 diff --git a/doc/python/carpet-contour.md b/doc/python/carpet-contour.md index 8dad7c177c..0d11800ea1 100644 --- a/doc/python/carpet-contour.md +++ b/doc/python/carpet-contour.md @@ -37,7 +37,7 @@ jupyter: ### Basic Carpet Plot -Set the `x` and `y` coorindates, using `x` and `y` attributes. If `x` coorindate values are ommitted a cheater plot will be created. To save parameter values use `a` and `b` attributes. To make changes to the axes, use `aaxis` or `baxis` attributes. For a more detailed list of axes attributes refer to [python reference](https://plotly.com/python/reference/carpet/#carpet-aaxis). +Set the `x` and `y` coordinates, using `x` and `y` attributes. If `x` coordinate values are omitted a cheater plot will be created. To save parameter values use `a` and `b` attributes. To make changes to the axes, use `aaxis` or `baxis` attributes. For a more detailed list of axes attributes refer to [python reference](https://plotly.com/python/reference/carpet/#carpet-aaxis). ```python import plotly.graph_objects as go @@ -286,4 +286,4 @@ fig.show() ### Reference -See https://plotly.com/python/reference/contourcarpet/ for more information and chart attribute options! \ No newline at end of file +See https://plotly.com/python/reference/contourcarpet/ for more information and chart attribute options! diff --git a/doc/python/carpet-plot.md b/doc/python/carpet-plot.md index 5fcb7c75fb..40d2b020f7 100644 --- a/doc/python/carpet-plot.md +++ b/doc/python/carpet-plot.md @@ -39,7 +39,7 @@ jupyter: ### Set X and Y Coordinates -To set the `x` and `y` coordinates use `x` and `y` attributes. If `x` coordindate values are ommitted a cheater plot will be created. The plot below has a `y` array specified but requires `a` and `b` parameter values before an axis may be plotted. +To set the `x` and `y` coordinates use `x` and `y` attributes. If `x` coordinate values are omitted a cheater plot will be created. The plot below has a `y` array specified but requires `a` and `b` parameter values before an axis may be plotted. ```python @@ -189,4 +189,4 @@ To add points and lines see [Carpet Scatter Plots](https://plotly.com/python/car ### Reference -See https://plotly.com/python/reference/carpet/ for more information and chart attribute options! \ No newline at end of file +See https://plotly.com/python/reference/carpet/ for more information and chart attribute options! diff --git a/doc/python/categorical-axes.md b/doc/python/categorical-axes.md index 09a9c1d4b2..0f1bdc7a86 100644 --- a/doc/python/categorical-axes.md +++ b/doc/python/categorical-axes.md @@ -40,7 +40,7 @@ This page shows examples of how to configure [2-dimensional Cartesian axes](/pyt The different types of Cartesian axes are configured via the `xaxis.type` or `yaxis.type` attribute, which can take on the following values: -- `'linear'` (see the [linear axes tutoria](/python/axes/)) +- `'linear'` (see the [linear axes tutorial](/python/axes/)) - `'log'` (see the [log plot tutorial](/python/log-plots/)) - `'date'` (see the [tutorial on timeseries](/python/time-series/)) - `'category'` see below @@ -55,7 +55,7 @@ The axis type is auto-detected by looking at data from the first [trace](/python ### Forcing an axis to be categorical -It is possible to force the axis type by setting explicitely `xaxis_type`. In the example below the automatic X axis type would be `linear` (because there are not more than twice as many unique strings as unique numbers) but we force it to be `category`. +It is possible to force the axis type by setting explicitly `xaxis_type`. In the example below the automatic X axis type would be `linear` (because there are not more than twice as many unique strings as unique numbers) but we force it to be `category`. ```python import plotly.express as px diff --git a/doc/python/colorscales.md b/doc/python/colorscales.md index 76f9b4dfbb..0520fa04d9 100644 --- a/doc/python/colorscales.md +++ b/doc/python/colorscales.md @@ -22,7 +22,7 @@ jupyter: pygments_lexer: ipython3 version: 3.7.6 plotly: - description: How to set, create and control continous color scales and color bars + description: How to set, create and control continuous color scales and color bars in scatter, bar, map and heatmap figures. display_as: file_settings has_thumbnail: true @@ -46,7 +46,7 @@ In the same way as the X or Y position of a mark in cartesian coordinates can be This document explains the following four continuous-color-related concepts: - **color scales** represent a mapping between the range 0 to 1 and some color domain within which colors are to be interpolated (unlike [discrete color sequences](/python/discrete-color/) which are never interpolated). Color scale defaults depend on the `layout.colorscales` attributes of the active [template](/python/templates/), and can be explicitly specified using the `color_continuous_scale` argument for many [Plotly Express](/python/plotly-express/) functions or the `colorscale` argument in various `graph_objects` such as `layout.coloraxis` or `marker.colorscale` in `go.Scatter` traces or `colorscale` in `go.Heatmap` traces. For example `[(0,"blue"), (1,"red")]` is a simple color scale that interpolated between blue and red via purple, which can also be implicitly represented as `["blue", "red"]` and happens to be one of the [built-in color scales](/python/builtin-colorscales) and therefore referred to as `"bluered"` or `plotly.colors.sequential.Bluered`. -- **color ranges** represent the minimum to maximum range of data to be mapped onto the 0 to 1 input range of the color scale. Color ranges default to the range of the input data and can be explicitly specified using either the `range_color` or `color_continous_midpoint` arguments for many Plotly Express functions, or `cmin`/`cmid`/`cmax` or `zmin`/`zmid`/`zmax` for various `graph_objects` such as `layout.coloraxis.cmin` or `marker.cmin` in `go.Scatter` traces or `cmin` in `go.Heatmap` traces. For example, if a color range of `[100, 200]` is used with the color scale above, then any mark with a color value of 100 or less will be blue, and 200 or more will be red. Marks with values in between will be various shades of purple. +- **color ranges** represent the minimum to maximum range of data to be mapped onto the 0 to 1 input range of the color scale. Color ranges default to the range of the input data and can be explicitly specified using either the `range_color` or `color_continuous_midpoint` arguments for many Plotly Express functions, or `cmin`/`cmid`/`cmax` or `zmin`/`zmid`/`zmax` for various `graph_objects` such as `layout.coloraxis.cmin` or `marker.cmin` in `go.Scatter` traces or `cmin` in `go.Heatmap` traces. For example, if a color range of `[100, 200]` is used with the color scale above, then any mark with a color value of 100 or less will be blue, and 200 or more will be red. Marks with values in between will be various shades of purple. - **color bars** are legend-like visible representations of the color range and color scale with optional tick labels and tick marks. Color bars can be configured with attributes inside `layout.coloraxis.colorbar` or in places like `marker.colorbar` in `go.Scatter` traces or `colorbar` in `go.Heatmap` traces. - **color axes** connect color scales, color ranges and color bars to a trace's data. By default, any colorable attribute in a trace is attached to its own local color axis, but color axes may also be shared across attributes and traces by setting e.g. `marker.coloraxis` in `go.Scatter` traces or `coloraxis` in `go.Heatmap` traces. Local color axis attributes are configured within traces e.g. `marker.showscale` whereas shared color axis attributes are configured within the Layout e.g. `layout.coloraxis.showscale`. @@ -60,7 +60,7 @@ For example, in the `tips` dataset, the `size` column contains numbers: import plotly.express as px df = px.data.tips() fig = px.scatter(df, x="total_bill", y="tip", color="size", - title="Numeric 'size' values mean continous color") + title="Numeric 'size' values mean continuous color") fig.show() ``` @@ -85,7 +85,7 @@ df = px.data.tips() df["size"] = df["size"].astype(str) df["size"] = df["size"].astype(float) fig = px.scatter(df, x="total_bill", y="tip", color="size", - title="Numeric 'size' values mean continous color") + title="Numeric 'size' values mean continuous color") fig.show() ``` @@ -151,7 +151,7 @@ fig = px.imshow(data, color_continuous_scale=px.colors.sequential.Cividis_r) fig.show() ``` -### Explicity Constructing a Color scale +### Explicitly Constructing a Color scale The Plotly Express `color_continuous_scale` argument accepts explicitly-constructed color scales as well: diff --git a/doc/python/compare-webgl-svg.md b/doc/python/compare-webgl-svg.md index cf806b5832..934dfa7a7d 100644 --- a/doc/python/compare-webgl-svg.md +++ b/doc/python/compare-webgl-svg.md @@ -36,7 +36,7 @@ jupyter: ### Comparing Scatter Plots with 75,000 Random Points -Now in Ploty you can implement WebGL with `Scattergl()` in place of `Scatter()`
+Now in Plotly you can implement WebGL with `Scattergl()` in place of `Scatter()`
for increased speed, improved interactivity, and the ability to plot even more data! diff --git a/doc/python/configuration-options.md b/doc/python/configuration-options.md index 22c968ce42..7ca1df051a 100644 --- a/doc/python/configuration-options.md +++ b/doc/python/configuration-options.md @@ -252,7 +252,7 @@ fig.show(config={ ### Add optional shape-drawing buttons to modebar -Some modebar buttons of Cartesian plots are optional and have to be added explictly, using the `modeBarButtonsToAdd` config attribute. These buttons are used for drawing or erasing shapes. See [the tutorial on shapes and shape drawing](python/shapes#drawing-shapes-on-cartesian-plots) for more details. +Some modebar buttons of Cartesian plots are optional and have to be added explicitly, using the `modeBarButtonsToAdd` config attribute. These buttons are used for drawing or erasing shapes. See [the tutorial on shapes and shape drawing](python/shapes#drawing-shapes-on-cartesian-plots) for more details. ```python import plotly.graph_objects as go diff --git a/doc/python/county-choropleth.md b/doc/python/county-choropleth.md index d6336e6c65..2fd9366f5a 100644 --- a/doc/python/county-choropleth.md +++ b/doc/python/county-choropleth.md @@ -59,7 +59,7 @@ conda install geopandas #### FIPS and Values -Every US state and county has an assined ID regulated by the US Federal Government under the term FIPS (Federal Information Processing Standards) codes. There are state codes and county codes: the 2016 state and county FIPS codes can be found at the [US Census Website](https://www.census.gov/geographies/reference-files/2016/demo/popest/2016-fips.html). +Every US state and county has an assigned ID regulated by the US Federal Government under the term FIPS (Federal Information Processing Standards) codes. There are state codes and county codes: the 2016 state and county FIPS codes can be found at the [US Census Website](https://www.census.gov/geographies/reference-files/2016/demo/popest/2016-fips.html). Combine a state FIPS code (eg. `06` for California) with a county FIPS code of the state (eg. `059` for Orange county) and this new state-county FIPS code (`06059`) uniquely refers to the specified state and county. @@ -197,7 +197,7 @@ Below is a choropleth that uses several other parameters. For a full list of all - `simplify_county` determines the simplification factor for the counties. The larger the number, the fewer vertices and edges each polygon has. See http://toblerity.org/shapely/manual.html#object.simplify for more information. - `simplify_state` simplifies the state outline polygon. See the [documentation](http://toblerity.org/shapely/manual.html#object.simplify) for more information. -Default for both `simplify_county` and `simplif_state` is 0.02 +Default for both `simplify_county` and `simplify_state` is 0.02 Note: This choropleth uses a divergent categorical colorscale. See http://react-colorscales.getforge.io/ for other cool colorscales. @@ -277,4 +277,4 @@ Also see Mapbox county choropleths made in Python: [https://plotly.com/python/ma ### Reference -For more info on `ff.create_choropleth()`, see the [full function reference](https://plotly.com/python-api-reference/generated/plotly.figure_factory.create_choropleth.html) \ No newline at end of file +For more info on `ff.create_choropleth()`, see the [full function reference](https://plotly.com/python-api-reference/generated/plotly.figure_factory.create_choropleth.html) diff --git a/doc/python/creating-and-updating-figures.md b/doc/python/creating-and-updating-figures.md index e63f559184..43d5c4a9ce 100644 --- a/doc/python/creating-and-updating-figures.md +++ b/doc/python/creating-and-updating-figures.md @@ -43,7 +43,7 @@ The `plotly` Python package exists to create, manipulate and [render](/python/re ### Figures As Dictionaries -At a low level, figures can be represented as dictionaries and displayed using functions from the `plotly.io` module. The `fig` dictonary in the example below describes a figure. It contains a single `bar` trace and a title. +At a low level, figures can be represented as dictionaries and displayed using functions from the `plotly.io` module. The `fig` dictionary in the example below describes a figure. It contains a single `bar` trace and a title. ```python fig = dict({ diff --git a/doc/python/custom-buttons.md b/doc/python/custom-buttons.md index 1c673126ee..014dc8ad2e 100644 --- a/doc/python/custom-buttons.md +++ b/doc/python/custom-buttons.md @@ -348,7 +348,7 @@ fig.show() #### Update Button The `"update"` method should be used when modifying the data and layout sections of the graph.
-This example demonstrates how to update which traces are displayed while simulaneously updating layout attributes such as the chart title and annotations. +This example demonstrates how to update which traces are displayed while simultaneously updating layout attributes such as the chart title and annotations. ```python import plotly.graph_objects as go diff --git a/doc/python/dendrogram.md b/doc/python/dendrogram.md index ec3a20c166..c34bb4e45e 100644 --- a/doc/python/dendrogram.md +++ b/doc/python/dendrogram.md @@ -35,7 +35,7 @@ jupyter: #### Basic Dendrogram -A [dendrogram](https://en.wikipedia.org/wiki/Dendrogram) is a diagram representing a tree. The [figure factory](/python/figure-factories/) called `create_dendrogram` performs [hierachical clustering](https://en.wikipedia.org/wiki/Hierarchical_clustering) on data and represents the resulting tree. Values on the tree depth axis correspond to distances between clusters. +A [dendrogram](https://en.wikipedia.org/wiki/Dendrogram) is a diagram representing a tree. The [figure factory](/python/figure-factories/) called `create_dendrogram` performs [hierarchical clustering](https://en.wikipedia.org/wiki/Hierarchical_clustering) on data and represents the resulting tree. Values on the tree depth axis correspond to distances between clusters. Dendrogram plots are commonly used in computational biology to show the clustering of genes or samples, sometimes in the margin of heatmaps. @@ -178,4 +178,4 @@ fig.show() ### Reference -For more info on `ff.create_dendrogram()`, see the [full function reference](https://plotly.com/python-api-reference/generated/plotly.figure_factory.create_dendrogram.html) \ No newline at end of file +For more info on `ff.create_dendrogram()`, see the [full function reference](https://plotly.com/python-api-reference/generated/plotly.figure_factory.create_dendrogram.html) diff --git a/doc/python/discrete-color.md b/doc/python/discrete-color.md index e90f435621..2660c4603f 100644 --- a/doc/python/discrete-color.md +++ b/doc/python/discrete-color.md @@ -45,7 +45,7 @@ In the same way as the X or Y position of a mark in cartesian coordinates can be This document explains the following discrete-color-related concepts: - **color sequences** are lists of colors to be mapped onto discrete data values. No interpolation occurs when using color sequences, unlike with [continuous color scales](/python/colorscales/), and each color is used as-is. Color sequence defaults depend on the `layout.colorway` attribute of the active [template](/python/templates/), and can be explicitly specified using the `color_discrete_sequence` argument for many [Plotly Express](/python/plotly-express/) functions. -- **legends** are visible representations of the mapping between colors and data values. Legend markers also change shape when used with various kinds of traces, such as symbols or lines for scatter-like traces. [Legends are configurable](/python/legend/) under the `layout.legend` attribute. Legends are the discrete equivalent of [continous color bars](/python/colorscales/) +- **legends** are visible representations of the mapping between colors and data values. Legend markers also change shape when used with various kinds of traces, such as symbols or lines for scatter-like traces. [Legends are configurable](/python/legend/) under the `layout.legend` attribute. Legends are the discrete equivalent of [continuous color bars](/python/colorscales/) ### Discrete Color with Plotly Express @@ -68,7 +68,7 @@ The `size` column, however, contains numbers: import plotly.express as px df = px.data.tips() fig = px.scatter(df, x="total_bill", y="tip", color="size", - title="Numeric 'size' values mean continous color") + title="Numeric 'size' values mean continuous color") fig.show() ``` @@ -94,7 +94,7 @@ df["size"] = df["size"].astype(str) #convert to string df["size"] = df["size"].astype(float) #convert back to numeric fig = px.scatter(df, x="total_bill", y="tip", color="size", - title="Numeric 'size' values mean continous color") + title="Numeric 'size' values mean continuous color") fig.show() ``` diff --git a/doc/python/dropdowns.md b/doc/python/dropdowns.md index 9aae4fd1ce..341639a183 100644 --- a/doc/python/dropdowns.md +++ b/doc/python/dropdowns.md @@ -344,7 +344,7 @@ fig.show() ### Update Dropdown The `"update"` method should be used when modifying the data and layout sections of the graph.
-This example demonstrates how to update which traces are displayed while simulaneously updating layout attributes such as the chart title and annotations. +This example demonstrates how to update which traces are displayed while simultaneously updating layout attributes such as the chart title and annotations. ```python import plotly.graph_objects as go diff --git a/doc/python/figure-factories.md b/doc/python/figure-factories.md index 2ad3c5187b..2870a963ff 100644 --- a/doc/python/figure-factories.md +++ b/doc/python/figure-factories.md @@ -35,7 +35,7 @@ jupyter: #### `plotly.figure_factory` -The `plotly.figure_factory` module contains dedicated functions for creating very specific types of plots that were at the time of their creation difficult to create with [graph objects](/python/graph-objects/) and prior to the existence of [Plotly Express](/python/plotly-express/). As new functionality gets added to [Plotly.js](https://plotly.com/javascript/) and to Plotly Express, certain Figure Factories become unecessary and are therefore deprecated as "legacy", but remain in the module for backwards-compatibility reasons. +The `plotly.figure_factory` module contains dedicated functions for creating very specific types of plots that were at the time of their creation difficult to create with [graph objects](/python/graph-objects/) and prior to the existence of [Plotly Express](/python/plotly-express/). As new functionality gets added to [Plotly.js](https://plotly.com/javascript/) and to Plotly Express, certain Figure Factories become unnecessary and are therefore deprecated as "legacy", but remain in the module for backwards-compatibility reasons. The following types of plots are still difficult to create with Graph Objects or Plotly Express and therefore the corresponding Figure Factories are *not* deprecated: diff --git a/doc/python/figure-introspection.md b/doc/python/figure-introspection.md index 156a268e25..3e85bc85f2 100644 --- a/doc/python/figure-introspection.md +++ b/doc/python/figure-introspection.md @@ -91,7 +91,7 @@ Now let's look at the "full" figure after Plotly.js has computed the default val > Heads-up: the full figure is quite long and intimidating, and this page is meant to help demystify things so **please read on**! -Please also note that the `.full_figure_for_development()` function is really meant for interactive learning and debugging, rather than production use, hence its name and the warning it produces by default, which you can see below, and which can be supressed with `warn=False`. +Please also note that the `.full_figure_for_development()` function is really meant for interactive learning and debugging, rather than production use, hence its name and the warning it produces by default, which you can see below, and which can be suppressed with `warn=False`. ```python full_fig = fig.full_figure_for_development() diff --git a/doc/python/funnel-charts.md b/doc/python/funnel-charts.md index 47c5323751..bb769ed965 100644 --- a/doc/python/funnel-charts.md +++ b/doc/python/funnel-charts.md @@ -74,7 +74,7 @@ fig.show() ### Setting Marker Size and Color -This example uses [textposition](https://plotly.com/python/reference/scatter/#scatter-textposition) and [textinfo](https://plotly.com/python/reference/funnel/#funnel-textinfo) to determine information apears on the graph, and shows how to customize the bars. +This example uses [textposition](https://plotly.com/python/reference/scatter/#scatter-textposition) and [textinfo](https://plotly.com/python/reference/funnel/#funnel-textinfo) to determine information appears on the graph, and shows how to customize the bars. ```python from plotly import graph_objects as go diff --git a/doc/python/gauge-charts.md b/doc/python/gauge-charts.md index 5800acc963..33c2d2068a 100644 --- a/doc/python/gauge-charts.md +++ b/doc/python/gauge-charts.md @@ -22,7 +22,7 @@ jupyter: pygments_lexer: ipython3 version: 3.7.3 plotly: - description: How to make guage meter charts in Python with Plotly. + description: How to make gauge meter charts in Python with Plotly. display_as: financial language: python layout: base @@ -110,4 +110,4 @@ fig.show() #### Reference -See https://plotly.com/python/reference/indicator/ for more information and chart attribute options! \ No newline at end of file +See https://plotly.com/python/reference/indicator/ for more information and chart attribute options! diff --git a/doc/python/indicator.md b/doc/python/indicator.md index 276bceaf74..24dce1932e 100644 --- a/doc/python/indicator.md +++ b/doc/python/indicator.md @@ -22,7 +22,7 @@ jupyter: pygments_lexer: ipython3 version: 3.7.3 plotly: - description: How to make guage charts in Python with Plotly. + description: How to make gauge charts in Python with Plotly. display_as: financial language: python layout: base @@ -63,7 +63,7 @@ In this tutorial we introduce a new trace named "Indicator". The purpose of "ind
  • position: position relative to `number` (either top, left, bottom, right)
  • Finally, we can have a simple title for the indicator via `title` with 'text' attribute which is a string, and 'align' which can be set to left, center, and right. - There are two gauge types: [angular](https://plotly.com/python/gauge-charts/) and [bullet](https://plotly.com/python/bullet-charts/). Here is a combination of both shapes (angular, bullet), and different modes (guage, delta, and value): + There are two gauge types: [angular](https://plotly.com/python/gauge-charts/) and [bullet](https://plotly.com/python/bullet-charts/). Here is a combination of both shapes (angular, bullet), and different modes (gauge, delta, and value): ```python import plotly.graph_objects as go @@ -206,4 +206,4 @@ See https://plotly.com/python/reference/indicator/ for more information and char ```python -``` \ No newline at end of file +``` diff --git a/doc/python/interactive-html-export.md b/doc/python/interactive-html-export.md index 901b6b10f5..7581dd2128 100644 --- a/doc/python/interactive-html-export.md +++ b/doc/python/interactive-html-export.md @@ -36,7 +36,7 @@ jupyter: ### Interactive vs Static Export -Plotly figures are interactive when viewed in a web browser: you can hover over data points, pan and zoom axes, and show and hide traces by clicking or double-clicking on the legend. You can export figures either to [static image file formats like PNG, JEPG, SVG or PDF](/python/static-image-export/) or you can export them to HTML files which can be opened in a browser. This page explains how to do the latter. +Plotly figures are interactive when viewed in a web browser: you can hover over data points, pan and zoom axes, and show and hide traces by clicking or double-clicking on the legend. You can export figures either to [static image file formats like PNG, JPEG, SVG or PDF](/python/static-image-export/) or you can export them to HTML files which can be opened in a browser. This page explains how to do the latter. ### Saving to an HTML file diff --git a/doc/python/jupyter-lab-tools.md b/doc/python/jupyter-lab-tools.md index 12cbb0f50b..57f845492d 100644 --- a/doc/python/jupyter-lab-tools.md +++ b/doc/python/jupyter-lab-tools.md @@ -42,7 +42,7 @@ Display a FigureWidget and then create a new window to display it in so that you #### View Live Updates -With the output view it is easy to take full advantage of FigureWidgets new impertive-style graph updates since you can see your code and your graph at the same time. +With the output view it is easy to take full advantage of FigureWidgets new imperative-style graph updates since you can see your code and your graph at the same time. diff --git a/doc/python/legend.md b/doc/python/legend.md index 3cda7b2a71..f576ab73da 100644 --- a/doc/python/legend.md +++ b/doc/python/legend.md @@ -114,7 +114,7 @@ fig.show() ### Legend Positioning -Legends have an anchor point, which can be set to a point within the legend using `layout.legend.xanchor` and `layout.legend.yanchor`. The coordinate of the anchor can be positioned with `layout.legend.x` and `layout.legend.y` in [paper coordinates](/python/figure-structure/). Note that the plot margins will grow so as to accomodate the legend. The legend may also be placed within the plotting area. +Legends have an anchor point, which can be set to a point within the legend using `layout.legend.xanchor` and `layout.legend.yanchor`. The coordinate of the anchor can be positioned with `layout.legend.x` and `layout.legend.y` in [paper coordinates](/python/figure-structure/). Note that the plot margins will grow so as to accommodate the legend. The legend may also be placed within the plotting area. ```python import plotly.express as px diff --git a/doc/python/line-and-scatter.md b/doc/python/line-and-scatter.md index 2f94832793..b2dea35439 100644 --- a/doc/python/line-and-scatter.md +++ b/doc/python/line-and-scatter.md @@ -243,7 +243,7 @@ fig.show() #### Large Data Sets -Now in Ploty you can implement WebGL with `Scattergl()` in place of `Scatter()`
    +Now in Plotly you can implement WebGL with `Scattergl()` in place of `Scatter()`
    for increased speed, improved interactivity, and the ability to plot even more data! ```python diff --git a/doc/python/lines-on-maps.md b/doc/python/lines-on-maps.md index 3db5d9ebfb..0d8c3bb1bb 100644 --- a/doc/python/lines-on-maps.md +++ b/doc/python/lines-on-maps.md @@ -153,7 +153,7 @@ fig.update_layout( fig.show() ``` ### Performance improvement: put many lines in the same trace -For very large amounts (>1000) of lines, performance may become critcal. If you can relinquish setting individual line styles (e.g. opacity), you can put multiple paths into one trace. This makes the map render faster and reduces the script execution time and memory consumption. +For very large amounts (>1000) of lines, performance may become critical. If you can relinquish setting individual line styles (e.g. opacity), you can put multiple paths into one trace. This makes the map render faster and reduces the script execution time and memory consumption. Use ```None``` between path coordinates to create a break in the otherwise connected paths. diff --git a/doc/python/mapbox-layers.md b/doc/python/mapbox-layers.md index 307c043bdb..70cbaad4d7 100644 --- a/doc/python/mapbox-layers.md +++ b/doc/python/mapbox-layers.md @@ -64,8 +64,8 @@ The word "mapbox" in the trace names and `layout.mapbox` refers to the Mapbox GL The accepted values for `layout.mapbox.style` are one of: - `"white-bg"` yields an empty white canvas which results in no external HTTP requests -- `"open-street-map"`, `"carto-positron"`, `"carto-darkmatter"`, `"stamen-terrain"`, `"stamen-toner"` or `"stamen-watercolor"` yeild maps composed of _raster_ tiles from various public tile servers which do not require signups or access tokens -- `"basic"`, `"streets"`, `"outdoors"`, `"light"`, `"dark"`, `"satellite"`, or `"satellite-streets"` yeild maps composed of _vector_ tiles from the Mapbox service, and _do_ require a Mapbox Access Token or an on-premise Mapbox installation. +- `"open-street-map"`, `"carto-positron"`, `"carto-darkmatter"`, `"stamen-terrain"`, `"stamen-toner"` or `"stamen-watercolor"` yield maps composed of _raster_ tiles from various public tile servers which do not require signups or access tokens +- `"basic"`, `"streets"`, `"outdoors"`, `"light"`, `"dark"`, `"satellite"`, or `"satellite-streets"` yield maps composed of _vector_ tiles from the Mapbox service, and _do_ require a Mapbox Access Token or an on-premise Mapbox installation. - A Mapbox service style URL, which requires a Mapbox Access Token or an on-premise Mapbox installation. - A Mapbox Style object as defined at https://docs.mapbox.com/mapbox-gl-js/style-spec/ diff --git a/doc/python/marker-style.md b/doc/python/marker-style.md index 46452a5206..abb4a33249 100644 --- a/doc/python/marker-style.md +++ b/doc/python/marker-style.md @@ -122,7 +122,7 @@ IFrame(snippet_url + 'marker-style', width='100%', height=630) ### Opacity -Setting opacity outside the marker will set the opacity of the trace. Thus, it will allow greater visbility of additional traces but like fully opaque it is hard to distinguish density. +Setting opacity outside the marker will set the opacity of the trace. Thus, it will allow greater visibility of additional traces but like fully opaque it is hard to distinguish density. ```python import plotly.graph_objects as go @@ -201,7 +201,7 @@ fig.show() ### Marker Opacity -To maximise visibility of density, it is recommended to set the opacity inside the marker `marker:{opacity:0.5}`. If mulitple traces exist with high density, consider using marker opacity in conjunction with trace opacity. +To maximise visibility of density, it is recommended to set the opacity inside the marker `marker:{opacity:0.5}`. If multiple traces exist with high density, consider using marker opacity in conjunction with trace opacity. ```python import plotly.graph_objects as go diff --git a/doc/python/ml-pca.md b/doc/python/ml-pca.md index a691532a4a..cd551609a6 100644 --- a/doc/python/ml-pca.md +++ b/doc/python/ml-pca.md @@ -41,7 +41,7 @@ We will use [Scikit-learn](https://scikit-learn.org/) to load one of the dataset ## High-dimensional PCA Analysis with `px.scatter_matrix` -The dimensionality reduction technique we will be using is called the [Principal Component Analysis (PCA)](https://scikit-learn.org/stable/modules/decomposition.html#pca). It is a powerful technique that arises from linear algebra and probability theory. In essense, it computes a matrix that represents the variation of your data ([covariance matrix/eigenvectors][covmatrix]), and rank them by their relevance (explained variance/eigenvalues). For a video tutorial, see [this segment on PCA](https://youtu.be/rng04VJxUt4?t=98) from the Coursera ML course. +The dimensionality reduction technique we will be using is called the [Principal Component Analysis (PCA)](https://scikit-learn.org/stable/modules/decomposition.html#pca). It is a powerful technique that arises from linear algebra and probability theory. In essence, it computes a matrix that represents the variation of your data ([covariance matrix/eigenvectors][covmatrix]), and rank them by their relevance (explained variance/eigenvalues). For a video tutorial, see [this segment on PCA](https://youtu.be/rng04VJxUt4?t=98) from the Coursera ML course. [covmatrix]: https://stats.stackexchange.com/questions/2691/making-sense-of-principal-component-analysis-eigenvectors-eigenvalues#:~:text=As%20it%20is%20a%20square%20symmetric%20matrix%2C%20it%20can%20be%20diagonalized%20by%20choosing%20a%20new%20orthogonal%20coordinate%20system%2C%20given%20by%20its%20eigenvectors%20(incidentally%2C%20this%20is%20called%20spectral%20theorem)%3B%20corresponding%20eigenvalues%20will%20then%20be%20located%20on%20the%20diagonal.%20In%20this%20new%20coordinate%20system%2C%20the%20covariance%20matrix%20is%20diagonal%20and%20looks%20like%20that%3A diff --git a/doc/python/ml-roc-pr.md b/doc/python/ml-roc-pr.md index 06431a68a9..a2a8efa8d8 100644 --- a/doc/python/ml-roc-pr.md +++ b/doc/python/ml-roc-pr.md @@ -87,7 +87,7 @@ fig_thresh.show() Notice how this ROC curve looks similar to the True Positive Rate curve from the previous plot. This is because they are the same curve, except the x-axis consists of increasing values of FPR instead of threshold, which is why the line is flipped and distorted. -We also display the area under the ROC curve (ROC AUC), which is fairly high, thus consistent with our intepretation of the previous plots. +We also display the area under the ROC curve (ROC AUC), which is fairly high, thus consistent with our interpretation of the previous plots. ```python import plotly.express as px diff --git a/doc/python/ml-tsne-umap-projections.md b/doc/python/ml-tsne-umap-projections.md index 5ab216ee02..683897eb8c 100644 --- a/doc/python/ml-tsne-umap-projections.md +++ b/doc/python/ml-tsne-umap-projections.md @@ -42,7 +42,7 @@ We first show how to visualize data with more than three features using the [sca t-SNE is a popular dimensionality reduction algorithm that arises from probability theory. Simply put, it projects the high-dimensional data points (sometimes with hundreds of features) into 2D/3D by inducing the projected data to have a similar distribution as the original data points by minimizing something called the [KL divergence](https://towardsdatascience.com/light-on-math-machine-learning-intuitive-guide-to-understanding-kl-divergence-2b382ca2b2a8). -Compared to a method like Principal Component Analysis (PCA), it takes signficantly more time to converge, but present signficiantly better insights when visualized. For example, by projecting features of a flowers, it will be able to distinctly group +Compared to a method like Principal Component Analysis (PCA), it takes significantly more time to converge, but present significantly better insights when visualized. For example, by projecting features of a flowers, it will be able to distinctly group ### Visualizing high-dimensional data with `px.scatter_matrix` @@ -176,4 +176,4 @@ Details about algorithms: * t-SNE User guide: https://scikit-learn.org/stable/modules/manifold.html#t-sne * t-SNE paper: https://www.jmlr.org/papers/volume9/vandermaaten08a/vandermaaten08a.pdf * MNIST: http://yann.lecun.com/exdb/mnist/ - \ No newline at end of file + diff --git a/doc/python/multiple-axes.md b/doc/python/multiple-axes.md index df50f8efb8..58ed713859 100644 --- a/doc/python/multiple-axes.md +++ b/doc/python/multiple-axes.md @@ -88,7 +88,7 @@ snippet_url = 'https://dash-gallery.plotly.host/python-docs-dash-snippets/' IFrame(snippet_url + 'multiple-axes', width='100%', height=630) ``` -#### Muliple Y-Axes Subplots +#### Multiple Y-Axes Subplots ```python import plotly.graph_objects as go diff --git a/doc/python/pandas-backend.md b/doc/python/pandas-backend.md index 86975836d2..ff84a5da6e 100644 --- a/doc/python/pandas-backend.md +++ b/doc/python/pandas-backend.md @@ -66,7 +66,7 @@ fig.show() > The Plotly plotting backend for Pandas is *not intended* to be a drop-in replacement for the default; it does not implement all or even most of the same keyword arguments, such as `subplots=True` etc. -The Plotly plotting backend for Pandas is a more convenient way to invoke certain [Plotly Express](/python/plotly-express/) functions by chaining a `.plot()` call without having to import Plotly Express directly. Plotly Express, as of version 4.8 with [wide-form data support](/python/wide-form/) in addition to its robust long-form data support, implements behaviour for the `x` and `y` keywords that are very simlar to the `matplotlib` backend. +The Plotly plotting backend for Pandas is a more convenient way to invoke certain [Plotly Express](/python/plotly-express/) functions by chaining a `.plot()` call without having to import Plotly Express directly. Plotly Express, as of version 4.8 with [wide-form data support](/python/wide-form/) in addition to its robust long-form data support, implements behaviour for the `x` and `y` keywords that are very similar to the `matplotlib` backend. In practice, this means that the following two ways of making a chart are identical and support the same additional arguments, because they call the same underlying code: @@ -198,4 +198,4 @@ fig.show() ### What about Cufflinks? -There also exists an independent third-party wrapper library around Plotly called [Cufflinks](https://github.com/santosjorge/cufflinks), which provides similar functionality (with an API closer to that of Pandas' default `matplotlib` backend) by adding a `.iplot()` method to Pandas dataframes, as it was developed before Pandas supported configurable backends. Issues and questions regarding Cufflinks should be [raised in the Cufflinks repository](https://github.com/santosjorge/cufflinks/issues/new). \ No newline at end of file +There also exists an independent third-party wrapper library around Plotly called [Cufflinks](https://github.com/santosjorge/cufflinks), which provides similar functionality (with an API closer to that of Pandas' default `matplotlib` backend) by adding a `.iplot()` method to Pandas dataframes, as it was developed before Pandas supported configurable backends. Issues and questions regarding Cufflinks should be [raised in the Cufflinks repository](https://github.com/santosjorge/cufflinks/issues/new). diff --git a/doc/python/parallel-categories-diagram.md b/doc/python/parallel-categories-diagram.md index 7ddb8be2a5..11ac1f3e41 100644 --- a/doc/python/parallel-categories-diagram.md +++ b/doc/python/parallel-categories-diagram.md @@ -43,7 +43,7 @@ For other representations of multivariate data, also see [parallel coordinates]( #### Basic Parallel Category Diagram with plotly.express -This example visualizes the resturant bills of a sample of 244 people. Hovering over a category rectangle (sex, smoker, etc) displays a tooltip with the number of people with that single trait. Hovering over a ribbon in the diagram displays a tooltip with the number of people with a particular combination of the five traits connected by the ribbon. +This example visualizes the restaurant bills of a sample of 244 people. Hovering over a category rectangle (sex, smoker, etc) displays a tooltip with the number of people with that single trait. Hovering over a ribbon in the diagram displays a tooltip with the number of people with a particular combination of the five traits connected by the ribbon. By default, `px.parallel_categories` will display any column in the `data_frame` that has a cardinality (or number of unique values) of less than 50. This can be overridden either by passing in a specific list of columns to `dimensions` or by setting `dimensions_max_cardinality` to something other than 50. @@ -72,7 +72,7 @@ fig.show() ### Basic Parallel Categories Diagram with `graph_objects` -This example illustartes the hair color, eye color, and sex of a sample of 8 people. The dimension labels can be dragged horizontally to reorder the dimensions and the category rectangles can be dragged vertically to reorder the categories within a dimension. +This example illustrates the hair color, eye color, and sex of a sample of 8 people. The dimension labels can be dragged horizontally to reorder the dimensions and the category rectangles can be dragged vertically to reorder the categories within a dimension. ```python import plotly.graph_objects as go @@ -112,7 +112,7 @@ fig = go.Figure(go.Parcats( fig.show() ``` -#### Mutli-Color Parallel Categories Diagram +#### Multi-Color Parallel Categories Diagram The color of the ribbons can be specified with the `line.color` property. Similar to other trace types, this property may be set to an array of numbers, which are then mapped to colors according to the the colorscale specified in the `line.colorscale` property. diff --git a/doc/python/parallel-coordinates-plot.md b/doc/python/parallel-coordinates-plot.md index c3b8628d78..9a6e38a382 100644 --- a/doc/python/parallel-coordinates-plot.md +++ b/doc/python/parallel-coordinates-plot.md @@ -24,7 +24,7 @@ jupyter: pygments_lexer: ipython3 version: 3.7.3 plotly: - description: How to make parallel coorindates plots in Python with Plotly. + description: How to make parallel coordinates plots in Python with Plotly. display_as: scientific language: python layout: base diff --git a/doc/python/plotly-express.md b/doc/python/plotly-express.md index c26c79ab8b..60a88e9859 100644 --- a/doc/python/plotly-express.md +++ b/doc/python/plotly-express.md @@ -59,7 +59,7 @@ Plotly Express currently includes the following functions: The Plotly Express API in general offers the following features: * **A single entry point into `plotly`**: just `import plotly.express as px` and get access to [all the plotting functions](https://plotly.com/python-api-reference/plotly.express.html), plus [built-in demo datasets under `px.data`](https://plotly.com/python-api-reference/generated/plotly.data.html#module-plotly.data) and [built-in color scales and sequences under `px.color`](https://plotly.com/python-api-reference/generated/plotly.colors.html#module-plotly.colors). Every PX function returns a `plotly.graph_objects.Figure` object, so you can edit it using all the same methods like [`update_layout` and `add_trace`](https://plotly.com/python/creating-and-updating-figures/#updating-figures). -* **Sensible, Overrideable Defaults**: PX functions will infer sensible defaults wherever possible, and will always let you override them. +* **Sensible, Overridable Defaults**: PX functions will infer sensible defaults wherever possible, and will always let you override them. * **Flexible Input Formats**: PX functions [accept input in a variety of formats](/python/px-arguments/), from `list`s and `dict`s to [long-form or wide-form Pandas `DataFrame`s](/python/wide-form/) to [`numpy` arrays and `xarrays`](/python/imshow/) to [GeoPandas `GeoDataFrames`](/python/maps/). * **Automatic Trace and Layout configuration**: PX functions will create one [trace](/python/figure-structure) per animation frame for each unique combination of data values mapped to discrete color, symbol, line-dash, facet-row and/or facet-column. Traces' `legendgroup` and `showlegend` attributed are set such that only one legend item appears per unique combination of discrete color, symbol and/or line-dash. Traces are automatically linked to a correctly-configured [subplot of the appropriate type](/python/figure-structure). * **Automatic Figure Labelling**: PX functions label axes, legends and colorbars based in the input `DataFrame` or `xarray`, and provide [extra control with the `labels` argument](/python/styling-plotly-express/). diff --git a/doc/python/random-walk.md b/doc/python/random-walk.md index 839062fe2a..9ec0deefbb 100644 --- a/doc/python/random-walk.md +++ b/doc/python/random-walk.md @@ -38,7 +38,7 @@ A [random walk](https://en.wikipedia.org/wiki/Random_walk) can be thought of as #### Random Walk in 1D -The jitter in the data points along the x and y axes are meant to illuminate where the points are being drawn and what the tendancy of the random walk is. +The jitter in the data points along the x and y axes are meant to illuminate where the points are being drawn and what the tendency of the random walk is. ```python import plotly.graph_objects as go diff --git a/doc/python/shapes.md b/doc/python/shapes.md index c325021188..965f39b45e 100644 --- a/doc/python/shapes.md +++ b/doc/python/shapes.md @@ -485,7 +485,7 @@ fig.show() ``` #### Adding the Same Shapes to Multiple Subplots -The same shape can be added to mulitple facets by using the `'all'` +The same shape can be added to multiple facets by using the `'all'` keyword in the `row` and `col` arguments. For example ```python import plotly.express as px @@ -579,7 +579,7 @@ fig.show() _introduced in plotly 4.7_ -You can create layout shapes programatically, but you can also draw shapes manually by setting the `dragmode` to one of the shape-drawing modes: `'drawline'`,`'drawopenpath'`, `'drawclosedpath'`, `'drawcircle'`, or `'drawrect'`. If you need to switch between different shape-drawing or other dragmodes (panning, selecting, etc.), [modebar buttons can be added](/python/configuration-options#add-optional-shapedrawing-buttons-to-modebar) in the `config` to select the dragmode. If you switch to a different dragmode such as pan or zoom, you will need to select the drawing tool in the modebar to go back to shape drawing. +You can create layout shapes programmatically, but you can also draw shapes manually by setting the `dragmode` to one of the shape-drawing modes: `'drawline'`,`'drawopenpath'`, `'drawclosedpath'`, `'drawcircle'`, or `'drawrect'`. If you need to switch between different shape-drawing or other dragmodes (panning, selecting, etc.), [modebar buttons can be added](/python/configuration-options#add-optional-shapedrawing-buttons-to-modebar) in the `config` to select the dragmode. If you switch to a different dragmode such as pan or zoom, you will need to select the drawing tool in the modebar to go back to shape drawing. This shape-drawing feature is particularly interesting for annotating graphs, in particular [image traces](/python/imshow) or [layout images](/python/images). diff --git a/doc/python/sliders.md b/doc/python/sliders.md index a46cfd94d3..7dd85b65ad 100644 --- a/doc/python/sliders.md +++ b/doc/python/sliders.md @@ -90,7 +90,7 @@ The method determines which [plotly.js function](https://plot.ly/javascript/plot ### Sliders in Plotly Express -Plotly Express provide sliders, but with implicit animation using the `"animate"` method described above. The animation play button can be ommited by removing `updatemenus` in the `layout`: +Plotly Express provide sliders, but with implicit animation using the `"animate"` method described above. The animation play button can be omited by removing `updatemenus` in the `layout`: ```python import plotly.express as px diff --git a/doc/python/smoothing.md b/doc/python/smoothing.md index 1dc2f5dd6f..7c97747862 100644 --- a/doc/python/smoothing.md +++ b/doc/python/smoothing.md @@ -52,9 +52,9 @@ from scipy import signal `Smoothing` is a technique that is used to eliminate noise from a dataset. There are many algorithms and methods to accomplish this but all have the same general purpose of 'roughing out the edges' or 'smoothing' some data. -There is reason to smooth data if there is little to no small-scale structure in the data. The danger to this thinking is that one may skew the representation of the data enough to change its percieved meaning, so for the sake of scientific honesty it is an imperative to at the very minimum explain one's reason's for using a smoothing algorithm to their dataset. +There is reason to smooth data if there is little to no small-scale structure in the data. The danger to this thinking is that one may skew the representation of the data enough to change its perceived meaning, so for the sake of scientific honesty it is an imperative to at the very minimum explain one's reason's for using a smoothing algorithm to their dataset. -In this example we use the [Savitzky-Golay Filter](https://en.wikipedia.org/wiki/Savitzky%E2%80%93Golay_filter), which fits subsequents windows of adjacent data with a low-order polynomial. +In this example we use the [Savitzky-Golay Filter](https://en.wikipedia.org/wiki/Savitzky%E2%80%93Golay_filter), which fits subsequent windows of adjacent data with a low-order polynomial. ```python import plotly.graph_objects as go diff --git a/doc/python/subplots.md b/doc/python/subplots.md index 57ed40724c..26b87474df 100644 --- a/doc/python/subplots.md +++ b/doc/python/subplots.md @@ -397,7 +397,7 @@ fig.show() ``` #### Subplots Types -By default, the `make_subplots` function assumes that the traces that will be added to all subplots are 2-dimensional cartesian traces (e.g. `scatter`, `bar`, `histogram`, `violin`, etc.). Traces with other subplot types (e.g. `scatterpolar`, `scattergeo`, `parcoords`, etc.) are supporteed by specifying the `type` subplot option in the `specs` argument to `make_subplots`. +By default, the `make_subplots` function assumes that the traces that will be added to all subplots are 2-dimensional cartesian traces (e.g. `scatter`, `bar`, `histogram`, `violin`, etc.). Traces with other subplot types (e.g. `scatterpolar`, `scattergeo`, `parcoords`, etc.) are supported by specifying the `type` subplot option in the `specs` argument to `make_subplots`. Here are the possible values for the `type` option: diff --git a/doc/python/text-and-annotations.md b/doc/python/text-and-annotations.md index 76533e7809..d9d7a09829 100644 --- a/doc/python/text-and-annotations.md +++ b/doc/python/text-and-annotations.md @@ -393,7 +393,7 @@ fig.show() ### Positioning Text Annotations Absolutely -By default, text annotations have `xref` and `yref` set to `"x"` and `"y"`, respectively, meaning that their x/y coordinates are with respect to the axes of the plot. This means that panning the plot will cause the annotations to move. Setting `xref` and/or `yref` to `"paper"` will cause the `x` and `y` attributes to be intepreted in [paper coordinates](/python/figure-structure/#positioning-with-paper-container-coordinates-or-axis-domain-coordinates). +By default, text annotations have `xref` and `yref` set to `"x"` and `"y"`, respectively, meaning that their x/y coordinates are with respect to the axes of the plot. This means that panning the plot will cause the annotations to move. Setting `xref` and/or `yref` to `"paper"` will cause the `x` and `y` attributes to be interpreted in [paper coordinates](/python/figure-structure/#positioning-with-paper-container-coordinates-or-axis-domain-coordinates). Try panning or zooming in the following figure: diff --git a/doc/python/time-series.md b/doc/python/time-series.md index 32fe417d4e..7e5883e893 100644 --- a/doc/python/time-series.md +++ b/doc/python/time-series.md @@ -102,7 +102,7 @@ By default, the tick labels (and optional ticks) are associated with a specific Date axis tick labels have the special property that any portion after the first instance of `'\n'` in `tickformat` will appear on a second line only once per unique value, as with the year numbers in the example below. To have the year number appear on every tick label, `'
    '` should be used instead of `'\n'`. -Note that by default, the formatting of values of X and Y values in the hover label matches that of the tick labels of the corresponding axes, so when customizing the tick labels to something broad like "month", it's usually necessary to [customize the hover label](/python/hover-text-and-formatting/) to something narrower like the acutal date, as below. +Note that by default, the formatting of values of X and Y values in the hover label matches that of the tick labels of the corresponding axes, so when customizing the tick labels to something broad like "month", it's usually necessary to [customize the hover label](/python/hover-text-and-formatting/) to something narrower like the actual date, as below. ```python import plotly.express as px From f5fbc16122d4dc90ef2e0a3f91edff9284f5b90a Mon Sep 17 00:00:00 2001 From: SageCodeCoplAL08 Date: Wed, 17 Feb 2021 13:03:38 +0530 Subject: [PATCH 56/99] document corrections --- CHANGELOG.md | 18 +++++++++--------- build_for_conda.md | 2 +- doc/python/3d-mesh.md | 2 +- doc/python/imshow.md | 2 +- doc/python/linear-fits.md | 4 ++-- doc/python/sliders.md | 2 +- doc/python/ternary-plots.md | 2 +- doc/unconverted/python/amazon-redshift.md | 2 +- doc/unconverted/python/filled-chord-diagram.md | 2 +- doc/unconverted/python/gapminder-example.md | 4 ++-- .../interpolation-and-extrapolation-in-1d.md | 2 +- doc/unconverted/python/linear-gauge-chart.md | 2 +- doc/unconverted/python/normality-test.md | 2 +- doc/unconverted/python/peak-integration.md | 2 +- doc/unconverted/python/streaming-tutorial.md | 4 ++-- doc/unconverted/python/t-test.md | 4 ++-- .../python/tesla-supercharging-stations.md | 2 +- packages/python/chart-studio/specs/gridspec.md | 2 +- .../plotly/plotly/figure_factory/README.md | 10 +++++----- release.md | 8 ++++---- 20 files changed, 39 insertions(+), 39 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 923896f403..10c58b1e4b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -135,7 +135,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). faster image rendering and smaller figure size. Additional optional arguments `binary_backend`, `binary_format` and `binary_compression_level` control how to generate the b64 string ([#2691](https://github.com/plotly/plotly.py/pull/2691) -- `px.imshow` has a new `constrast_rescaling` argument in order to choose how +- `px.imshow` has a new `contrast_rescaling` argument in order to choose how to set data values corresponding to the bounds of the color range ([#2691](https://github.com/plotly/plotly.py/pull/2691) @@ -239,7 +239,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). ### Added -- The `hover_data` parameter of `px` functions can now be a dictionary. This makes it possible to skip hover information for some arguments or to change the formatting of hover informatiom [#2377](https://github.com/plotly/plotly.py/pull/2377). +- The `hover_data` parameter of `px` functions can now be a dictionary. This makes it possible to skip hover information for some arguments or to change the formatting of hover information [#2377](https://github.com/plotly/plotly.py/pull/2377). - It's now possible to build a development version of Plotly.py against the build artifacts from a non-`master` branch of Plotly.js, which makes for faster QA and development cycles [#2349](https://github.com/plotly/plotly.py/pull/2349). Thanks [@zouhairm](https://github.com/zouhairm) for this Pull Request! ### Fixed @@ -252,7 +252,7 @@ This version includes several performance improvements ([#2368](https://github.c - Child graph objects (e.g. `figure.layout.xaxis`) are no longer created eagerly during graph object construction. Instead, they are created lazily the first time the property is accessed. - Property validation is now disabled for select internal operations. - - When used with Python 3.7 and above, ploty.py now takes advantage of [PEP-562](https://www.python.org/dev/peps/pep-0562/) to perform submodule imports lazily. This dramatically improves import times. + - When used with Python 3.7 and above, plotly.py now takes advantage of [PEP-562](https://www.python.org/dev/peps/pep-0562/) to perform submodule imports lazily. This dramatically improves import times. ## [4.6.0] - 2020-03-31 @@ -290,7 +290,7 @@ This version includes several performance improvements ([#2368](https://github.c - Jupyterlab extension now compatible with both Jupyterlab 1.2 and 2.0 [#2261](https://github.com/plotly/plotly.py/pull/2261) with thanks to [@consideRatio](https://github.com/consideRatio) for the contribution! - Fixed a bug when using boolean values for the color argument of px functions [#2127](https://github.com/plotly/plotly.py/pull/2127) -- Corrected import bug which was occuring with old versions of ipywidgets [#2265](https://github.com/plotly/plotly.py/pull/2265) +- Corrected import bug which was occurring with old versions of ipywidgets [#2265](https://github.com/plotly/plotly.py/pull/2265) - Fixed python 3.8 syntax warning [#2262](https://github.com/plotly/plotly.py/pull/2262), with thanks to [@sgn](https://github.com/sgn) for the contribution! ## [4.5.3] - 2020-03-05 @@ -365,7 +365,7 @@ This version includes several performance improvements ([#2368](https://github.c for more information - The tutorials of the [plotly.py documentation](https://plot.ly/python/) are now in the main [plotly.py Github repository](https://github.com/plotly/plotly.py). Contributions in order to improve or extend the documentation are very welcome! - - `plotly.express` generated plots no longer have a default height of 600 pixels, instead they inherit the default height of regular figures [#1990](https://github.com/plotly/plotly.py/pull/1990). To restore the old behavior, set `px.defaults.height=600` once per session, or set the `height` keyword arguement to any `px.function()` to 600. + - `plotly.express` generated plots no longer have a default height of 600 pixels, instead they inherit the default height of regular figures [#1990](https://github.com/plotly/plotly.py/pull/1990). To restore the old behavior, set `px.defaults.height=600` once per session, or set the `height` keyword argument to any `px.function()` to 600. ### Fixed @@ -439,7 +439,7 @@ section [#1969](https://github.com/plotly/plotly.py/pull/1969). - The width of a figure produced by the `create_gantt` figure factory now resizes responsively ([#1724](https://github.com/plotly/plotly.py/pull/1724)) ### Fixed - - The name of the steps property of `graph_objects.indicator.Guage` has been renamed from `stepss` to `steps` + - The name of the steps property of `graph_objects.indicator.Gauge` has been renamed from `stepss` to `steps` - Avoid crash in iframe renderers when running outside iPython ([#1723](https://github.com/plotly/plotly.py/pull/1723)) ## [4.1.0] - 2019-08-06 @@ -491,7 +491,7 @@ This is a major release that includes many new features, and a few breaking chan - Added support for all trace types in `make_subplots` ([#1528](https://github.com/plotly/plotly.py/pull/1528)) - Added support for secondary y-axes in `make_subplots` ([#1564](https://github.com/plotly/plotly.py/pull/1564)) - Support passing a scalar trace object (rather than a list or tuple of trace objects) as the `data` property to the `Figure` constructor ([#1614](https://github.com/plotly/plotly.py/pull/1614)) - - Added dictionary-stule `.pop` method to graph object classes ([#1614](https://github.com/plotly/plotly.py/pull/1614)) + - Added dictionary-style `.pop` method to graph object classes ([#1614](https://github.com/plotly/plotly.py/pull/1614)) - New `jupyterlab-plotly` JupyterLab extension for rendering figures in JupyterLab. Replaces the `@jupyterlab/plotly-extension` extension, and includes JupyterLab 1.0 support. - Added new suite of built-in colorscales to the `plotly.colors` module, and support for specifying this wide range of colorscales by name. Also added support for specifying colorscales as a list of colors, in which case the color spacing is assumed to be uniform ([#1647](https://github.com/plotly/plotly.py/pull/1647)). - Added `sphinx-gallery` renderer for embedding plotly figures in [Sphinx-Gallery](https://sphinx-gallery.github.io/) ([#1577](https://github.com/plotly/plotly.py/pull/1577), [plotly/plotly-sphinx-gallery](https://github.com/plotly/plotly-sphinx-gallery)). @@ -1096,7 +1096,7 @@ must be installed: properties are ignored rather than causing an exception. - A `to_ordered_dict` method has been added to the `Figure` and `FigureWidget` classes. This method returns a representation of the figure as a nested - structure of `OrdererdDict` and `list` instances where the keys in each + structure of `OrderedDict` and `list` instances where the keys in each `OrderedDict` are sorted alphabetically. This method replaces the `get_ordered` method that was available in version 2, and makes it possible to traverse the nested structure of a figure in a deterministic order. @@ -1517,7 +1517,7 @@ gone. ## [1.12.10] - 2016-11-28 ### Updated - `FF.create_violin` and `FF.create_scatterplotmatrix` now by default do not print subplot grid information in output -- Removed alert that occured when downloading plot images offline. Please note: for higher resolution images and more export options, consider making requests to our image servers. See: `help(py.image)` for more details. +- Removed alert that occurred when downloading plot images offline. Please note: for higher resolution images and more export options, consider making requests to our image servers. See: `help(py.image)` for more details. ### Added - Plot configuration options for offline plots. See the list of [configuration options](https://github.com/Rikorose/plotly.py/blob/master/plotly/offline/offline.py#L189) and [examples](https://plot.ly/javascript/configuration-options/) for more information. diff --git a/build_for_conda.md b/build_for_conda.md index 57a2480e60..8fb74e0d7c 100644 --- a/build_for_conda.md +++ b/build_for_conda.md @@ -16,4 +16,4 @@ Finally, build and test the created version: `conda build plotly` -Currently, the updated (version 1.12.4) conda package sits at https://anaconda.org/chohner/plotly. There seems to be an old offial package at https://anaconda.org/plotly/plotly. +Currently, the updated (version 1.12.4) conda package sits at https://anaconda.org/chohner/plotly. There seems to be an old official package at https://anaconda.org/plotly/plotly. diff --git a/doc/python/3d-mesh.md b/doc/python/3d-mesh.md index 33199a230b..cf6587a848 100644 --- a/doc/python/3d-mesh.md +++ b/doc/python/3d-mesh.md @@ -83,7 +83,7 @@ IFrame(snippet_url + '3d-mesh', width='100%', height=630) ### Mesh Tetrahedron -In this example we use the `ì`, `j` and `k` parameters to specify manually the geometry of the triangles of the mesh. +In this example we use the `i`, `j` and `k` parameters to specify manually the geometry of the triangles of the mesh. ```python import plotly.graph_objects as go diff --git a/doc/python/imshow.md b/doc/python/imshow.md index cf8639a65d..55e195dcf1 100644 --- a/doc/python/imshow.md +++ b/doc/python/imshow.md @@ -231,7 +231,7 @@ fig.show() ### Automatic contrast rescaling in `px.imshow` -When `zmin` and `zmax` are not specified, the `contrast_rescaling` arguments determines how `zmin` and `zmax` are computed. For `contrast_rescaling='minmax'`, the extrema of the data range are used. For `contrast_rescaling='infer'`, a heuristic based on the data type is used: +When `zmin` and `zmax` are not specified, the `contrast_rescaling` arguments determines how `zmin` and `zmax` are computed. For `contrast_rescaling='minmax'`, the extreme of the data range are used. For `contrast_rescaling='infer'`, a heuristic based on the data type is used: - for integer data types, `zmin` and `zmax` correspond to the extreme values of the data type, for example 0 and 255 for `uint8`, 0 and 65535 for `uint16`, etc. - for float numbers, the maximum value of the data is computed, and zmax is 1 if the max is smaller than 1, 255 if the max is smaller than 255, etc. (with higher thresholds 2**16 - 1 and 2**32 -1). diff --git a/doc/python/linear-fits.md b/doc/python/linear-fits.md index ca80970cbf..7f1f1a2971 100644 --- a/doc/python/linear-fits.md +++ b/doc/python/linear-fits.md @@ -23,7 +23,7 @@ jupyter: version: 3.6.8 plotly: description: Add linear Ordinary Least Squares (OLS) regression trendlines or - non-linear Locally Weighted Scatterplot Smoothing (LOEWSS) trendlines to scatterplots + non-linear Locally Weighted Scatterplot Smoothing (LOWESS) trendlines to scatterplots in Python. display_as: statistical language: python @@ -76,4 +76,4 @@ import plotly.express as px df = px.data.gapminder().query("year == 2007") fig = px.scatter(df, x="gdpPercap", y="lifeExp", color="continent", trendline="lowess") fig.show() -``` \ No newline at end of file +``` diff --git a/doc/python/sliders.md b/doc/python/sliders.md index 7dd85b65ad..2ebe84f040 100644 --- a/doc/python/sliders.md +++ b/doc/python/sliders.md @@ -90,7 +90,7 @@ The method determines which [plotly.js function](https://plot.ly/javascript/plot ### Sliders in Plotly Express -Plotly Express provide sliders, but with implicit animation using the `"animate"` method described above. The animation play button can be omited by removing `updatemenus` in the `layout`: +Plotly Express provide sliders, but with implicit animation using the `"animate"` method described above. The animation play button can be omitted by removing `updatemenus` in the `layout`: ```python import plotly.express as px diff --git a/doc/python/ternary-plots.md b/doc/python/ternary-plots.md index 7e07f55869..a389faba41 100644 --- a/doc/python/ternary-plots.md +++ b/doc/python/ternary-plots.md @@ -41,7 +41,7 @@ A ternary plot depicts the ratios of three variables as positions in an equilate [Plotly Express](/python/plotly-express/) is the easy-to-use, high-level interface to Plotly, which [operates on a variety of types of data](/python/px-arguments/) and produces [easy-to-style figures](/python/styling-plotly-express/). -Here we use `px.scatter_ternary` to visualize thre three-way split between the three major candidates in a municipal election. +Here we use `px.scatter_ternary` to visualize the three-way split between the three major candidates in a municipal election. ```python import plotly.express as px diff --git a/doc/unconverted/python/amazon-redshift.md b/doc/unconverted/python/amazon-redshift.md index 70afe5d318..2ced7b45bb 100644 --- a/doc/unconverted/python/amazon-redshift.md +++ b/doc/unconverted/python/amazon-redshift.md @@ -68,7 +68,7 @@ port = 5439 dbname = 'dev' ``` -As I mentioned there are numerous ways to connect to a Redshift databause and I've included two below. We can use either the SQLAlchemy package or we can use the psycopg2 package for a more direct access. +As I mentioned there are numerous ways to connect to a Redshift database and I've included two below. We can use either the SQLAlchemy package or we can use the psycopg2 package for a more direct access. Both will allow us to execute SQL queries and get results however the SQLAlchemy engine makes it a bit easier to directly return our data as a dataframe using pandas. Plotly has a tight integration with pandas as well, making it extremely easy to make interactive graphs to share with your company. diff --git a/doc/unconverted/python/filled-chord-diagram.md b/doc/unconverted/python/filled-chord-diagram.md index a9989f093c..16586bd1b5 100644 --- a/doc/unconverted/python/filled-chord-diagram.md +++ b/doc/unconverted/python/filled-chord-diagram.md @@ -28,7 +28,7 @@ jupyter: Circular layout or [Chord diagram](https://en.wikipedia.org/wiki/Chord_diagram) is a method of visualizing data that describe relationships. It was intensively promoted through [Circos](http://circos.ca/), a software package in Perl that was initially designed for displaying genomic data. -M Bostock developed reusable charts for [chord diagrams](http://bl.ocks.org/mbostock/4062006) in d3.js. Two years ago on [stackoverflow](http://stackoverflow.com/questions/19105801/chord-diagram-in-python), the exsistence of a Python package for plotting chord diagrams was adressed, but the question was closed due to being *off topic*.
    Here we show that a chord diagram can be generated in Python with Plotly. We illustrate the method of generating a chord diagram from data recorded in a square matrix. The rows and columns represent the same entities. +M Bostock developed reusable charts for [chord diagrams](http://bl.ocks.org/mbostock/4062006) in d3.js. Two years ago on [stackoverflow](http://stackoverflow.com/questions/19105801/chord-diagram-in-python), the existence of a Python package for plotting chord diagrams was addressed, but the question was closed due to being *off topic*.
    Here we show that a chord diagram can be generated in Python with Plotly. We illustrate the method of generating a chord diagram from data recorded in a square matrix. The rows and columns represent the same entities. This example considers a community of 5 friends on Facebook. We record the number of comments posted by each member on the other friends' walls. The data table is given in the next cell: diff --git a/doc/unconverted/python/gapminder-example.md b/doc/unconverted/python/gapminder-example.md index a0d063fb1e..ef59e82ae4 100644 --- a/doc/unconverted/python/gapminder-example.md +++ b/doc/unconverted/python/gapminder-example.md @@ -62,7 +62,7 @@ py.iplot(table, filename='animations-gapminder-data-preview') #### Make the Grid Since we are using the v2 api for animations in Plotly, we need to first make a `grid`. You can learn more in the [introduction to animation doc](https://plot.ly/python/animations/). -We will first define a list of _string_ years which will represent the values that our `slider` will take on. Going through the dataset, we will take out all the unique continents from the column `continent` and store them as well. Finally, we make a grid with each column representing a slice of the dataframe by _year_, _continent_ and _column name_, making sure to name each column uniquly by these variables: +We will first define a list of _string_ years which will represent the values that our `slider` will take on. Going through the dataset, we will take out all the unique continents from the column `continent` and store them as well. Finally, we make a grid with each column representing a slice of the dataframe by _year_, _continent_ and _column name_, making sure to name each column uniquely by these variables: ```python years_from_col = set(dataset['year']) @@ -259,7 +259,7 @@ Finally we make our `frames`. Here we are running again through the years and co ``` frame = {'data': [], 'name': value-name} ``` -We add a dictionary of data to this list and at the end of each loop, we ensure to add the `steps` dictionary to the steps list. At the end, we attatch the `sliders` dictionary to the figure via: +We add a dictionary of data to this list and at the end of each loop, we ensure to add the `steps` dictionary to the steps list. At the end, we attach the `sliders` dictionary to the figure via: ``` figure['layout']['sliders'] = [sliders_dict] diff --git a/doc/unconverted/python/interpolation-and-extrapolation-in-1d.md b/doc/unconverted/python/interpolation-and-extrapolation-in-1d.md index f8d43e26b2..1ce4345af3 100644 --- a/doc/unconverted/python/interpolation-and-extrapolation-in-1d.md +++ b/doc/unconverted/python/interpolation-and-extrapolation-in-1d.md @@ -99,7 +99,7 @@ py.iplot(fig, filename='interpolation-and-extrapolation') ``` #### Interpolation and Extrapolation of Y From X -Interpolation and Extrapolation of (x, y) points with pre-existant points and an array of specific x values. +Interpolation and Extrapolation of (x, y) points with pre-existent points and an array of specific x values. ```python points = np.array([(1, 1), (2, 4), (3, 1), (9, 3)]) diff --git a/doc/unconverted/python/linear-gauge-chart.md b/doc/unconverted/python/linear-gauge-chart.md index 982912eb33..3ee778febe 100644 --- a/doc/unconverted/python/linear-gauge-chart.md +++ b/doc/unconverted/python/linear-gauge-chart.md @@ -12,7 +12,7 @@ jupyter: language: python name: python2 plotly: - description: How to make interactive linear-guage charts in Python with Plotly. + description: How to make interactive linear-gauge charts in Python with Plotly. display_as: basic language: python layout: base diff --git a/doc/unconverted/python/normality-test.md b/doc/unconverted/python/normality-test.md index 93adb29bbe..0d56987a7b 100644 --- a/doc/unconverted/python/normality-test.md +++ b/doc/unconverted/python/normality-test.md @@ -361,7 +361,7 @@ We have covered a few normality tests, but this is not all of the tests that exi - Start looking into the use of nonparametric statistical methods instead of the parametric methods. - If some of the methods suggest that the sample is Gaussian and some not, then perhaps take this as an indication that your data is Gaussian-like. -_This tuorial is inspired from ["A Gentle Introduction to Normality Tests"](https://machinelearningmastery.com/a-gentle-introduction-to-normality-tests-in-python/)_ +_This tutorial is inspired from ["A Gentle Introduction to Normality Tests"](https://machinelearningmastery.com/a-gentle-introduction-to-normality-tests-in-python/)_ ```python diff --git a/doc/unconverted/python/peak-integration.md b/doc/unconverted/python/peak-integration.md index 040fbdcd2a..4d6e66d77a 100644 --- a/doc/unconverted/python/peak-integration.md +++ b/doc/unconverted/python/peak-integration.md @@ -12,7 +12,7 @@ jupyter: language: python name: python2 plotly: - description: Learn how to integrate the area between peaks and bassline in Python. + description: Learn how to integrate the area between peaks and baseline in Python. display_as: peak-analysis has_thumbnail: false language: python diff --git a/doc/unconverted/python/streaming-tutorial.md b/doc/unconverted/python/streaming-tutorial.md index 60e6559505..fd1f971d9b 100644 --- a/doc/unconverted/python/streaming-tutorial.md +++ b/doc/unconverted/python/streaming-tutorial.md @@ -74,7 +74,7 @@ The `Stream Id Object` comes bundled in the `graph_objs` package. We can then ca help(go.Stream) ``` -As we can see, the `Stream Id Object` is a dictionary-like object that takes two parameters, and has all the methods that are assoicated with dictionaries. +As we can see, the `Stream Id Object` is a dictionary-like object that takes two parameters, and has all the methods that are associated with dictionaries. We will need one of these objects for each of trace that we wish to stream data to. We'll now create a single stream token for our streaming example, which will include one scatter trace. @@ -89,7 +89,7 @@ stream_1 = go.Stream( ) ``` -The `'maxpoints'` key sets the maxiumum number of points to keep on the plotting surface at any given time. +The `'maxpoints'` key sets the maximum number of points to keep on the plotting surface at any given time. More over, if you want to avoid the use of these `Stream Id Objects`, you can just create a dictionary with at least the token parameter defined, for example: ```python diff --git a/doc/unconverted/python/t-test.md b/doc/unconverted/python/t-test.md index c7984104ab..96ef2b88c6 100644 --- a/doc/unconverted/python/t-test.md +++ b/doc/unconverted/python/t-test.md @@ -46,7 +46,7 @@ import scipy #### Generate Data -Let us generate some random data from the `Normal Distriubtion`. We will sample 50 points from a normal distribution with mean $\mu = 0$ and variance $\sigma^2 = 1$ and from another with mean $\mu = 2$ and variance $\sigma^2 = 1$. +Let us generate some random data from the `Normal Distribution`. We will sample 50 points from a normal distribution with mean $\mu = 0$ and variance $\sigma^2 = 1$ and from another with mean $\mu = 2$ and variance $\sigma^2 = 1$. ```python data1 = np.random.normal(0, 1, size=50) @@ -82,7 +82,7 @@ py.iplot(data, filename='normal-dists-plot') #### One Sample T Test -A `One Sample T-Test` is a statistical test used to evaluate the null hypothesis that the mean $m$ of a 1D sample dataset of independant observations is equal to the true mean $\mu$ of the population from which the data is sampled. In other words, our null hypothesis is that +A `One Sample T-Test` is a statistical test used to evaluate the null hypothesis that the mean $m$ of a 1D sample dataset of independent observations is equal to the true mean $\mu$ of the population from which the data is sampled. In other words, our null hypothesis is that $$ \begin{align*} diff --git a/doc/unconverted/python/tesla-supercharging-stations.md b/doc/unconverted/python/tesla-supercharging-stations.md index d9e0d9d3ef..33564b6878 100644 --- a/doc/unconverted/python/tesla-supercharging-stations.md +++ b/doc/unconverted/python/tesla-supercharging-stations.md @@ -12,7 +12,7 @@ jupyter: language: python name: python2 plotly: - description: How to plot car-travel routes between USA and Canada Telsa Supercharging + description: How to plot car-travel routes between USA and Canada Tesla Supercharging Stations in Python. display_as: maps language: python diff --git a/packages/python/chart-studio/specs/gridspec.md b/packages/python/chart-studio/specs/gridspec.md index 43179d705a..3386a0714c 100644 --- a/packages/python/chart-studio/specs/gridspec.md +++ b/packages/python/chart-studio/specs/gridspec.md @@ -192,7 +192,7 @@ Type checking boiler plate A `PlotlyRequestError` that prints a useful error message from the server: 1. Print `response.detail` if provided (Plotly error message) 2. Otherwise, print `response.body` if the response is plain-text -3. Otherwise, print the original `requests.expceptions.HTTPError` error message. +3. Otherwise, print the original `requests.exceptions.HTTPError` error message. Also, store the status code. diff --git a/packages/python/plotly/plotly/figure_factory/README.md b/packages/python/plotly/plotly/figure_factory/README.md index 53e01b5c79..45b264ddcc 100644 --- a/packages/python/plotly/plotly/figure_factory/README.md +++ b/packages/python/plotly/plotly/figure_factory/README.md @@ -4,7 +4,7 @@ In the Python Plotly Library: We have basic plot types that are created using the `plotly.graph_objs` module. -These plot types include Scatter, Box and Bar types. For a complete list see the [graph_objs file](https://github.com/plotly/plotly.py/blob/master/plotly/graph_objs/graph_objs.py). They are the basis of the plots and charts instatiated by Plotly. +These plot types include Scatter, Box and Bar types. For a complete list see the [graph_objs file](https://github.com/plotly/plotly.py/blob/master/plotly/graph_objs/graph_objs.py). They are the basis of the plots and charts instantiated by Plotly. To create a basic chart like this, first we create the `data` using the tools in `plotly.graph_objs` and then we plot it. For example: @@ -25,7 +25,7 @@ py.iplot(data, filename='new-scatter-plot') There is another type of chart which uses these basic plot types to make other types of graphs, and these are the figure factories. These are wrappers that utilize the code from `plotly.graph_objs` to build charts that can use their structures. A good example of a figure factory is the [Scatterplot Matrix](https://plot.ly/python/scatterplot-matrix/) as it utilizes `go.Scatter`, `go.Box` and `go.Histogram`. -So if you have ever wanted to contribute to the Plotly Python Library by adding a new chart type we don't have, now you can! This README will help you get started by cloning the plotly.py repo, forking a new branch, creating a new figure factory, and creatng a new Pull Request to get feedback for merging. Just follow all these steps and you'll be ready to go. +So if you have ever wanted to contribute to the Plotly Python Library by adding a new chart type we don't have, now you can! This README will help you get started by cloning the plotly.py repo, forking a new branch, creating a new figure factory, and creating a new Pull Request to get feedback for merging. Just follow all these steps and you'll be ready to go. ## Getting Started: 1. In the Terminal, clone the `plotly.py` repo locally and then check out the master branch. @@ -45,7 +45,7 @@ $ git checkout -b "add-ff-type" ## Create a figure_factory File 1. Creating python file -Move to the `plotly/figure_factory` directory in the `plotly.py` repo. To do this, open up the Terminal and excute the command: +Move to the `plotly/figure_factory` directory in the `plotly.py` repo. To do this, open up the Terminal and execute the command: ``` cd plotly/figure_factory @@ -138,7 +138,7 @@ The figure `fig` must be a Plotly Figure, meaning it must have the form `fig = g 5. Useful Tips -It is often not a good idea to put all your code into your `create_foo()` function. It is best practice to not repeat yourself and this requires taking repeated blocks of code and puting them into a seperate function. +It is often not a good idea to put all your code into your `create_foo()` function. It is best practice to not repeat yourself and this requires taking repeated blocks of code and putting them into a separate function. It is best to make all other functions besides `create_foo()` secret so a user cannot access them. This is done by placing a `_` before the name of the function, so `_aux_func()` for example. @@ -161,7 +161,7 @@ and commit these changes and write a commit message. $ git commit -m "this is the work that I did" ``` -After you have added and commited all of your changes to the local branch, it is time to create your PR for the Plotly team to review. +After you have added and committed all of your changes to the local branch, it is time to create your PR for the Plotly team to review. ``` $ git push origin add-ff-type diff --git a/release.md b/release.md index 1de7a2e23f..1f5a79bc00 100644 --- a/release.md +++ b/release.md @@ -24,7 +24,7 @@ with the expected publication date. Use the `Added`, `Changed`, `Deprecated`, `Removed`, `Fixed`, and `Security` labels for all changes to plotly.py. If the version of plotly.js has been updated, include this as the first `Updated` entry. Call out any -noteable changes as sub-bullets (new trace types in particular), and provide +notable changes as sub-bullets (new trace types in particular), and provide a link to the plotly.js CHANGELOG. ### Finalize versions @@ -213,7 +213,7 @@ npm run build && npm publish --access public --tag next ``` The `--tag next` part ensures that users won't install this version unless -they explicitly ask for the version or for the version wtih the `next` tag. +they explicitly ask for the version or for the version with the `next` tag. Do the same in the `jupyterlab-plotly` directory. @@ -302,7 +302,7 @@ Publish the final version to PyPI ### Publish to plotly anaconda channel -From `packages/python/plotly-geo`, build the conda packge +From `packages/python/plotly-geo`, build the conda package ```bash (plotly_dev) $ conda build recipe/ ``` @@ -351,7 +351,7 @@ Publish the final version to PyPI ### Publish to plotly anaconda channel -From `packages/python/plotly-geo`, build the conda packge +From `packages/python/plotly-geo`, build the conda package ```bash (plotly_dev) $ conda build recipe/ ``` From c9445975c3ee582a46204e66878cf64d76695fbb Mon Sep 17 00:00:00 2001 From: SageCodeCoplAL08 Date: Thu, 18 Feb 2021 10:00:36 +0530 Subject: [PATCH 57/99] document corrections --- doc/python/ml-regression.md | 2 +- doc/unconverted/python/3d-parametric-plots.md | 4 ++-- doc/unconverted/python/anova.md | 2 +- doc/unconverted/python/average_multiple_curves.md | 2 +- doc/unconverted/python/baseline-subtraction.md | 2 +- doc/unconverted/python/basic-statistics.md | 2 +- doc/unconverted/python/chord-diagram.md | 4 ++-- doc/unconverted/python/density-plots.md | 2 +- doc/unconverted/python/discrete-frequency.md | 4 ++-- doc/unconverted/python/filled-chord-diagram.md | 4 ++-- doc/unconverted/python/frequency-counts.md | 4 ++-- .../python/interpolation-and-extrapolation-in-1d.md | 2 +- .../python/interpolation-and-extrapolation-in-2d.md | 2 +- doc/unconverted/python/linear-gauge-chart.md | 2 +- doc/unconverted/python/normality-test.md | 2 +- doc/unconverted/python/normalization.md | 2 +- doc/unconverted/python/numerical-differentiation.md | 2 +- doc/unconverted/python/numerical-integration.md | 2 +- doc/unconverted/python/outlier-test.md | 4 ++-- doc/unconverted/python/polygon-area.md | 2 +- doc/unconverted/python/salesforce.md | 2 +- doc/unconverted/python/statistics-charts.md | 2 +- doc/unconverted/python/t-test.md | 2 +- doc/unconverted/python/tesla-supercharging-stations.md | 2 +- 24 files changed, 30 insertions(+), 30 deletions(-) diff --git a/doc/python/ml-regression.md b/doc/python/ml-regression.md index faee293eef..4ac41288c3 100644 --- a/doc/python/ml-regression.md +++ b/doc/python/ml-regression.md @@ -174,7 +174,7 @@ fig.show() Notice how linear regression fits a straight line, but kNN can take non-linear shapes. Moreover, it is possible to extend linear regression to polynomial regression by using scikit-learn's `PolynomialFeatures`, which lets you fit a slope for your features raised to the power of `n`, where `n=1,2,3,4` in our example. -With Plotly, it's easy to diplay latex equations in legend and titles by simply adding `$` before and after your equation. This way, you can see the coefficients that our polynomial regression fitted. +With Plotly, it's easy to display latex equations in legend and titles by simply adding `$` before and after your equation. This way, you can see the coefficients that our polynomial regression fitted. ```python diff --git a/doc/unconverted/python/3d-parametric-plots.md b/doc/unconverted/python/3d-parametric-plots.md index 2f7445391b..bf09abb36d 100644 --- a/doc/unconverted/python/3d-parametric-plots.md +++ b/doc/unconverted/python/3d-parametric-plots.md @@ -12,7 +12,7 @@ jupyter: language: python name: python2 plotly: - description: How to 3D Parameteric Plots in Python + description: How to 3D Parametric Plots in Python display_as: 3d_charts language: python layout: base @@ -80,7 +80,7 @@ py.iplot(fig, filename='Parametric_plot') ``` -#### Parameteric Plot with Colorscale +#### Parametric Plot with Colorscale ```python deletable=true editable=true diff --git a/doc/unconverted/python/anova.md b/doc/unconverted/python/anova.md index de13a5cdbf..9405a66f8e 100644 --- a/doc/unconverted/python/anova.md +++ b/doc/unconverted/python/anova.md @@ -25,7 +25,7 @@ jupyter: --- #### New to Plotly? -Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by dowloading the client and [reading the primer](https://plot.ly/python/getting-started/). +Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by downloading the client and [reading the primer](https://plot.ly/python/getting-started/).
    You can set up Plotly to work in [online](https://plot.ly/python/getting-started/#initialization-for-online-plotting) or [offline](https://plot.ly/python/getting-started/#initialization-for-offline-plotting) mode, or in [jupyter notebooks](https://plot.ly/python/getting-started/#start-plotting-online).
    We also have a quick-reference [cheatsheet](https://images.plot.ly/plotly-documentation/images/python_cheat_sheet.pdf) (new!) to help you get started! diff --git a/doc/unconverted/python/average_multiple_curves.md b/doc/unconverted/python/average_multiple_curves.md index 307052e997..8f0c002380 100644 --- a/doc/unconverted/python/average_multiple_curves.md +++ b/doc/unconverted/python/average_multiple_curves.md @@ -25,7 +25,7 @@ jupyter: --- #### New to Plotly? -Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by dowloading the client and [reading the primer](https://plot.ly/python/getting-started/). +Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by downloading the client and [reading the primer](https://plot.ly/python/getting-started/).
    You can set up Plotly to work in [online](https://plot.ly/python/getting-started/#initialization-for-online-plotting) or [offline](https://plot.ly/python/getting-started/#initialization-for-offline-plotting) mode, or in [jupyter notebooks](https://plot.ly/python/getting-started/#start-plotting-online).
    We also have a quick-reference [cheatsheet](https://images.plot.ly/plotly-documentation/images/python_cheat_sheet.pdf) (new!) to help you get started! diff --git a/doc/unconverted/python/baseline-subtraction.md b/doc/unconverted/python/baseline-subtraction.md index a0f2306a69..531c6f5b31 100644 --- a/doc/unconverted/python/baseline-subtraction.md +++ b/doc/unconverted/python/baseline-subtraction.md @@ -60,7 +60,7 @@ py.iplot(table, filename='milk-production-dataframe') ``` #### Plot with Baseline -To subtact a baseline estimate from our data, it is a good idea to first we must first calculate the baseline values then plot the data with the baseline drawn in. +To subtract a baseline estimate from our data, it is a good idea to first we must first calculate the baseline values then plot the data with the baseline drawn in. ```python baseline_values = peakutils.baseline(time_series) diff --git a/doc/unconverted/python/basic-statistics.md b/doc/unconverted/python/basic-statistics.md index 2e7efe1be3..fc422efd72 100644 --- a/doc/unconverted/python/basic-statistics.md +++ b/doc/unconverted/python/basic-statistics.md @@ -25,7 +25,7 @@ jupyter: --- #### New to Plotly? -Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by dowloading the client and [reading the primer](https://plot.ly/python/getting-started/). +Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by downloading the client and [reading the primer](https://plot.ly/python/getting-started/).
    You can set up Plotly to work in [online](https://plot.ly/python/getting-started/#initialization-for-online-plotting) or [offline](https://plot.ly/python/getting-started/#initialization-for-offline-plotting) mode, or in [jupyter notebooks](https://plot.ly/python/getting-started/#start-plotting-online).
    We also have a quick-reference [cheatsheet](https://images.plot.ly/plotly-documentation/images/python_cheat_sheet.pdf) (new!) to help you get started! diff --git a/doc/unconverted/python/chord-diagram.md b/doc/unconverted/python/chord-diagram.md index 5b7a511776..57697a9fd9 100644 --- a/doc/unconverted/python/chord-diagram.md +++ b/doc/unconverted/python/chord-diagram.md @@ -45,10 +45,10 @@ To avoid cluttered edges we adopted the following procedure in choosing the inte - define a list, `Dist`, having as elements the distances between the following pairs of points: $$(P_1, P_1), \:(P_1, P_2), \: (P_1, P_3),\: (P_1, P_4),\: (P_1, P_5)$$ -- In order to assign the control poligon to the Bézier curve that will be the edge between two connected +- In order to assign the control polygon to the Bézier curve that will be the edge between two connected nodes, `V[i], V[j]`, we compute the distance between these nodes, and deduce the interval $k$, of two consecutive values in `Dist`, this distance belongs to. -- Since there are four such intervals indexed $k=0,1,2,3$, we define the control poligon as follows: $${\bf b}_0=V[i],\:\: {\bf b}_1=V[i]/param,\:\: {\bf b}_2=V[j]/param, \:\:{\bf b}_3=V[j],$$ where `param` is chosen from the list: `params=[1.2, 1.5, 1.8, 2.1]`. +- Since there are four such intervals indexed $k=0,1,2,3$, we define the control polygon as follows: $${\bf b}_0=V[i],\:\: {\bf b}_1=V[i]/param,\:\: {\bf b}_2=V[j]/param, \:\:{\bf b}_3=V[j],$$ where `param` is chosen from the list: `params=[1.2, 1.5, 1.8, 2.1]`. Namely, if the distance(`V[i], V[j]`), belongs to the $K^{th}$ interval associated to `Dist`, then we choose `param= params[K]`. diff --git a/doc/unconverted/python/density-plots.md b/doc/unconverted/python/density-plots.md index 4657d1fcdc..5ad4494e0d 100644 --- a/doc/unconverted/python/density-plots.md +++ b/doc/unconverted/python/density-plots.md @@ -26,7 +26,7 @@ jupyter: #### New to Plotly? -Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by dowloading the client and [reading the primer](https://plot.ly/python/getting-started/). +Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by downloading the client and [reading the primer](https://plot.ly/python/getting-started/).
    You can set up Plotly to work in [online](https://plot.ly/python/getting-started/#initialization-for-online-plotting) or [offline](https://plot.ly/python/getting-started/#initialization-for-offline-plotting) mode, or in [jupyter notebooks](https://plot.ly/python/getting-started/#start-plotting-online).
    We also have a quick-reference [cheatsheet](https://images.plot.ly/plotly-documentation/images/python_cheat_sheet.pdf) (new!) to help you get started! diff --git a/doc/unconverted/python/discrete-frequency.md b/doc/unconverted/python/discrete-frequency.md index ca106eccd7..a561b6504e 100644 --- a/doc/unconverted/python/discrete-frequency.md +++ b/doc/unconverted/python/discrete-frequency.md @@ -25,7 +25,7 @@ jupyter: --- #### New to Plotly? -Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by dowloading the client and [reading the primer](https://plot.ly/python/getting-started/). +Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by downloading the client and [reading the primer](https://plot.ly/python/getting-started/).
    You can set up Plotly to work in [online](https://plot.ly/python/getting-started/#initialization-for-online-plotting) or [offline](https://plot.ly/python/getting-started/#initialization-for-offline-plotting) mode, or in [jupyter notebooks](https://plot.ly/python/getting-started/#start-plotting-online).
    We also have a quick-reference [cheatsheet](https://images.plot.ly/plotly-documentation/images/python_cheat_sheet.pdf) (new!) to help you get started! @@ -115,7 +115,7 @@ py.iplot(fig, filename='histogram-percentage') #### Cumulative Density Function -We can also take the cumulatve sum of our dataset and then plot the cumulative density function, or `CDF`, as a scatter plot +We can also take the cumulative sum of our dataset and then plot the cumulative density function, or `CDF`, as a scatter plot ```python cumsum = np.cumsum(x) diff --git a/doc/unconverted/python/filled-chord-diagram.md b/doc/unconverted/python/filled-chord-diagram.md index 16586bd1b5..4ba1e79dbc 100644 --- a/doc/unconverted/python/filled-chord-diagram.md +++ b/doc/unconverted/python/filled-chord-diagram.md @@ -82,7 +82,7 @@ Let us denote by `total_comments` the total number of posts recorded in this com Theoretically the interval `[0, total_comments)` is mapped linearly onto the unit circle, identified with the interval $[0,2\pi)$. -For a better looking plot one proceeds as follows: starting from the angular position $0$, in counter-clockwise direction, one draws succesively, around the unit circle, two parallel arcs of length equal to a mapped row sum value, minus a fixed gap. Click the image below: +For a better looking plot one proceeds as follows: starting from the angular position $0$, in counter-clockwise direction, one draws successively, around the unit circle, two parallel arcs of length equal to a mapped row sum value, minus a fixed gap. Click the image below: @@ -291,7 +291,7 @@ def control_pts(angle, radius): ```python def ctrl_rib_chords(l, r, radius): - # this function returns a 2-list containing control poligons of the two quadratic Bezier + # this function returns a 2-list containing control polygons of the two quadratic Bezier #curves that are opposite sides in a ribbon #l (r) the list of angular variables of the ribbon arc ends defining #the ribbon starting (ending) arc diff --git a/doc/unconverted/python/frequency-counts.md b/doc/unconverted/python/frequency-counts.md index 9682577c93..7ca53fed10 100644 --- a/doc/unconverted/python/frequency-counts.md +++ b/doc/unconverted/python/frequency-counts.md @@ -25,7 +25,7 @@ jupyter: --- #### New to Plotly? -Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by dowloading the client and [reading the primer](https://plot.ly/python/getting-started/). +Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by downloading the client and [reading the primer](https://plot.ly/python/getting-started/).
    You can set up Plotly to work in [online](https://plot.ly/python/getting-started/#initialization-for-online-plotting) or [offline](https://plot.ly/python/getting-started/#initialization-for-offline-plotting) mode, or in [jupyter notebooks](https://plot.ly/python/getting-started/#start-plotting-online).
    We also have a quick-reference [cheatsheet](https://images.plot.ly/plotly-documentation/images/python_cheat_sheet.pdf) (new!) to help you get started! @@ -46,7 +46,7 @@ import scipy #### Make the Data -We are generating a 1D dataset from a `Weibull Distribution` which has the distrubution +We are generating a 1D dataset from a `Weibull Distribution` which has the distribution $$ \begin{align*} diff --git a/doc/unconverted/python/interpolation-and-extrapolation-in-1d.md b/doc/unconverted/python/interpolation-and-extrapolation-in-1d.md index 1ce4345af3..2ff9041c73 100644 --- a/doc/unconverted/python/interpolation-and-extrapolation-in-1d.md +++ b/doc/unconverted/python/interpolation-and-extrapolation-in-1d.md @@ -25,7 +25,7 @@ jupyter: --- #### New to Plotly? -Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by dowloading the client and [reading the primer](https://plot.ly/python/getting-started/). +Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by downloading the client and [reading the primer](https://plot.ly/python/getting-started/).
    You can set up Plotly to work in [online](https://plot.ly/python/getting-started/#initialization-for-online-plotting) or [offline](https://plot.ly/python/getting-started/#initialization-for-offline-plotting) mode, or in [jupyter notebooks](https://plot.ly/python/getting-started/#start-plotting-online).
    We also have a quick-reference [cheatsheet](https://images.plot.ly/plotly-documentation/images/python_cheat_sheet.pdf) (new!) to help you get started! diff --git a/doc/unconverted/python/interpolation-and-extrapolation-in-2d.md b/doc/unconverted/python/interpolation-and-extrapolation-in-2d.md index d5b4126e75..02d5229640 100644 --- a/doc/unconverted/python/interpolation-and-extrapolation-in-2d.md +++ b/doc/unconverted/python/interpolation-and-extrapolation-in-2d.md @@ -25,7 +25,7 @@ jupyter: --- #### New to Plotly? -Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by dowloading the client and [reading the primer](https://plot.ly/python/getting-started/). +Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by downloading the client and [reading the primer](https://plot.ly/python/getting-started/).
    You can set up Plotly to work in [online](https://plot.ly/python/getting-started/#initialization-for-online-plotting) or [offline](https://plot.ly/python/getting-started/#initialization-for-offline-plotting) mode, or in [jupyter notebooks](https://plot.ly/python/getting-started/#start-plotting-online).
    We also have a quick-reference [cheatsheet](https://images.plot.ly/plotly-documentation/images/python_cheat_sheet.pdf) (new!) to help you get started! diff --git a/doc/unconverted/python/linear-gauge-chart.md b/doc/unconverted/python/linear-gauge-chart.md index 3ee778febe..70185c7e1a 100644 --- a/doc/unconverted/python/linear-gauge-chart.md +++ b/doc/unconverted/python/linear-gauge-chart.md @@ -30,7 +30,7 @@ Plotly's Python library is free and open source! [Get started](https://plot.ly/p #### Linear Gauge Chart Shell -Note the following tutorial shows how to create a linear-gauge chart with 4 gauges. It's recommended to use a `width` between 600-1000px and `ticklen` should be `width/20`. These variables are definied in the code below. +Note the following tutorial shows how to create a linear-gauge chart with 4 gauges. It's recommended to use a `width` between 600-1000px and `ticklen` should be `width/20`. These variables are defined in the code below. ```python from plotly import tools diff --git a/doc/unconverted/python/normality-test.md b/doc/unconverted/python/normality-test.md index 0d56987a7b..040fd3bad2 100644 --- a/doc/unconverted/python/normality-test.md +++ b/doc/unconverted/python/normality-test.md @@ -25,7 +25,7 @@ jupyter: --- #### New to Plotly? -Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by dowloading the client and [reading the primer](https://plot.ly/python/getting-started/). +Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by downloading the client and [reading the primer](https://plot.ly/python/getting-started/).
    You can set up Plotly to work in [online](https://plot.ly/python/getting-started/#initialization-for-online-plotting) or [offline](https://plot.ly/python/getting-started/#initialization-for-offline-plotting) mode, or in [jupyter notebooks](https://plot.ly/python/getting-started/#start-plotting-online).
    We also have a quick-reference [cheatsheet](https://images.plot.ly/plotly-documentation/images/python_cheat_sheet.pdf) (new!) to help you get started! diff --git a/doc/unconverted/python/normalization.md b/doc/unconverted/python/normalization.md index 51845b1ac6..c81f9fe9f9 100644 --- a/doc/unconverted/python/normalization.md +++ b/doc/unconverted/python/normalization.md @@ -26,7 +26,7 @@ jupyter: --- #### New to Plotly? -Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by dowloading the client and [reading the primer](https://plot.ly/python/getting-started/). +Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by downloading the client and [reading the primer](https://plot.ly/python/getting-started/).
    You can set up Plotly to work in [online](https://plot.ly/python/getting-started/#initialization-for-online-plotting) or [offline](https://plot.ly/python/getting-started/#initialization-for-offline-plotting) mode, or in [jupyter notebooks](https://plot.ly/python/getting-started/#start-plotting-online).
    We also have a quick-reference [cheatsheet](https://images.plot.ly/plotly-documentation/images/python_cheat_sheet.pdf) (new!) to help you get started! diff --git a/doc/unconverted/python/numerical-differentiation.md b/doc/unconverted/python/numerical-differentiation.md index 146aaae7b1..82f12e39e8 100644 --- a/doc/unconverted/python/numerical-differentiation.md +++ b/doc/unconverted/python/numerical-differentiation.md @@ -25,7 +25,7 @@ jupyter: --- #### New to Plotly? -Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by dowloading the client and [reading the primer](https://plot.ly/python/getting-started/). +Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by downloading the client and [reading the primer](https://plot.ly/python/getting-started/).
    You can set up Plotly to work in [online](https://plot.ly/python/getting-started/#initialization-for-online-plotting) or [offline](https://plot.ly/python/getting-started/#initialization-for-offline-plotting) mode, or in [jupyter notebooks](https://plot.ly/python/getting-started/#start-plotting-online).
    We also have a quick-reference [cheatsheet](https://images.plot.ly/plotly-documentation/images/python_cheat_sheet.pdf) (new!) to help you get started! diff --git a/doc/unconverted/python/numerical-integration.md b/doc/unconverted/python/numerical-integration.md index 365a0a195e..50179d0ebb 100644 --- a/doc/unconverted/python/numerical-integration.md +++ b/doc/unconverted/python/numerical-integration.md @@ -25,7 +25,7 @@ jupyter: --- #### New to Plotly? -Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by dowloading the client and [reading the primer](https://plot.ly/python/getting-started/). +Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by downloading the client and [reading the primer](https://plot.ly/python/getting-started/).
    You can set up Plotly to work in [online](https://plot.ly/python/getting-started/#initialization-for-online-plotting) or [offline](https://plot.ly/python/getting-started/#initialization-for-offline-plotting) mode, or in [jupyter notebooks](https://plot.ly/python/getting-started/#start-plotting-online).
    We also have a quick-reference [cheatsheet](https://images.plot.ly/plotly-documentation/images/python_cheat_sheet.pdf) (new!) to help you get started! diff --git a/doc/unconverted/python/outlier-test.md b/doc/unconverted/python/outlier-test.md index 82f2c4e881..41fc2aec76 100644 --- a/doc/unconverted/python/outlier-test.md +++ b/doc/unconverted/python/outlier-test.md @@ -25,7 +25,7 @@ jupyter: --- #### New to Plotly? -Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by dowloading the client and [reading the primer](https://plot.ly/python/getting-started/). +Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by downloading the client and [reading the primer](https://plot.ly/python/getting-started/).
    You can set up Plotly to work in [online](https://plot.ly/python/getting-started/#initialization-for-online-plotting) or [offline](https://plot.ly/python/getting-started/#initialization-for-offline-plotting) mode, or in [jupyter notebooks](https://plot.ly/python/getting-started/#start-plotting-online).
    We also have a quick-reference [cheatsheet](https://images.plot.ly/plotly-documentation/images/python_cheat_sheet.pdf) (new!) to help you get started! @@ -146,7 +146,7 @@ data = [trace1, trace2] py.iplot(data, filename='q-test-scatter') ``` -Since our smallest value (the holoed out circle) is higher than the critical line, this validates the result of the test that the point is `NOT` an outlier. +Since our smallest value (the hollowed out circle) is higher than the critical line, this validates the result of the test that the point is `NOT` an outlier. ```python from IPython.display import display, HTML diff --git a/doc/unconverted/python/polygon-area.md b/doc/unconverted/python/polygon-area.md index 7aef8ce09d..9180bf59ba 100644 --- a/doc/unconverted/python/polygon-area.md +++ b/doc/unconverted/python/polygon-area.md @@ -25,7 +25,7 @@ jupyter: --- #### New to Plotly? -Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by dowloading the client and [reading the primer](https://plot.ly/python/getting-started/). +Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by downloading the client and [reading the primer](https://plot.ly/python/getting-started/).
    You can set up Plotly to work in [online](https://plot.ly/python/getting-started/#initialization-for-online-plotting) or [offline](https://plot.ly/python/getting-started/#initialization-for-offline-plotting) mode, or in [jupyter notebooks](https://plot.ly/python/getting-started/#start-plotting-online).
    We also have a quick-reference [cheatsheet](https://images.plot.ly/plotly-documentation/images/python_cheat_sheet.pdf) (new!) to help you get started! diff --git a/doc/unconverted/python/salesforce.md b/doc/unconverted/python/salesforce.md index 3a84a7b788..974bf944f7 100644 --- a/doc/unconverted/python/salesforce.md +++ b/doc/unconverted/python/salesforce.md @@ -190,7 +190,7 @@ for name, temp_df in large_opps_df.groupby('Owner'): name=name, text=hover_text, marker=dict( - size=(temp_df.Probability / 2) # helps keep the bubbles of managable size + size=(temp_df.Probability / 2) # helps keep the bubbles of manageable size ) ) ) diff --git a/doc/unconverted/python/statistics-charts.md b/doc/unconverted/python/statistics-charts.md index 5ad1e8650d..f4fffcede6 100644 --- a/doc/unconverted/python/statistics-charts.md +++ b/doc/unconverted/python/statistics-charts.md @@ -25,7 +25,7 @@ jupyter: --- #### New to Plotly? -Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by dowloading the client and [reading the primer](https://plot.ly/python/getting-started/). +Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by downloading the client and [reading the primer](https://plot.ly/python/getting-started/).
    You can set up Plotly to work in [online](https://plot.ly/python/getting-started/#initialization-for-online-plotting) or [offline](https://plot.ly/python/getting-started/#initialization-for-offline-plotting) mode, or in [jupyter notebooks](https://plot.ly/python/getting-started/#start-plotting-online).
    We also have a quick-reference [cheatsheet](https://images.plot.ly/plotly-documentation/images/python_cheat_sheet.pdf) (new!) to help you get started! diff --git a/doc/unconverted/python/t-test.md b/doc/unconverted/python/t-test.md index 96ef2b88c6..6c74b55ab9 100644 --- a/doc/unconverted/python/t-test.md +++ b/doc/unconverted/python/t-test.md @@ -25,7 +25,7 @@ jupyter: --- #### New to Plotly? -Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by dowloading the client and [reading the primer](https://plot.ly/python/getting-started/). +Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by downloading the client and [reading the primer](https://plot.ly/python/getting-started/).
    You can set up Plotly to work in [online](https://plot.ly/python/getting-started/#initialization-for-online-plotting) or [offline](https://plot.ly/python/getting-started/#initialization-for-offline-plotting) mode, or in [jupyter notebooks](https://plot.ly/python/getting-started/#start-plotting-online).
    We also have a quick-reference [cheatsheet](https://images.plot.ly/plotly-documentation/images/python_cheat_sheet.pdf) (new!) to help you get started! diff --git a/doc/unconverted/python/tesla-supercharging-stations.md b/doc/unconverted/python/tesla-supercharging-stations.md index 33564b6878..28db02a40f 100644 --- a/doc/unconverted/python/tesla-supercharging-stations.md +++ b/doc/unconverted/python/tesla-supercharging-stations.md @@ -125,7 +125,7 @@ py.iplot(table, filename='supercharger-locations-sample') #### Plot the Route The server_key should be replaced with your own Google Maps Directions API key. -Be careful! Make sure you are picking a start and end point that can be driven between, eg. both in the United States of America. Otherwise, the Google Maps API cannot comupute directions and will return an empty list. +Be careful! Make sure you are picking a start and end point that can be driven between, eg. both in the United States of America. Otherwise, the Google Maps API cannot compute directions and will return an empty list. ```python def plot_route_between_tesla_stations(address_start, address_end, zoom=3, endpt_size=6): From 249fef0fd7ca1e75ea4ff9912491777565dd917e Mon Sep 17 00:00:00 2001 From: C Chaitanya Date: Thu, 18 Feb 2021 22:27:08 +0530 Subject: [PATCH 58/99] Update imshow.md changing extreme back to extrema --- doc/python/imshow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/python/imshow.md b/doc/python/imshow.md index 55e195dcf1..cf8639a65d 100644 --- a/doc/python/imshow.md +++ b/doc/python/imshow.md @@ -231,7 +231,7 @@ fig.show() ### Automatic contrast rescaling in `px.imshow` -When `zmin` and `zmax` are not specified, the `contrast_rescaling` arguments determines how `zmin` and `zmax` are computed. For `contrast_rescaling='minmax'`, the extreme of the data range are used. For `contrast_rescaling='infer'`, a heuristic based on the data type is used: +When `zmin` and `zmax` are not specified, the `contrast_rescaling` arguments determines how `zmin` and `zmax` are computed. For `contrast_rescaling='minmax'`, the extrema of the data range are used. For `contrast_rescaling='infer'`, a heuristic based on the data type is used: - for integer data types, `zmin` and `zmax` correspond to the extreme values of the data type, for example 0 and 255 for `uint8`, 0 and 65535 for `uint16`, etc. - for float numbers, the maximum value of the data is computed, and zmax is 1 if the max is smaller than 1, 255 if the max is smaller than 255, etc. (with higher thresholds 2**16 - 1 and 2**32 -1). From 7b6a594a3c64204ad6d4498cb69ac7fa00096e92 Mon Sep 17 00:00:00 2001 From: Carl Andersson Date: Wed, 7 Apr 2021 11:17:45 +0200 Subject: [PATCH 59/99] Adds function to sample colorscales --- .../plotly/_plotly_utils/colors/__init__.py | 51 +++++++++++++++++++ .../python/plotly/plotly/colors/__init__.py | 1 + 2 files changed, 52 insertions(+) diff --git a/packages/python/plotly/_plotly_utils/colors/__init__.py b/packages/python/plotly/_plotly_utils/colors/__init__.py index b7669ce4d2..be4c75bddf 100644 --- a/packages/python/plotly/_plotly_utils/colors/__init__.py +++ b/packages/python/plotly/_plotly_utils/colors/__init__.py @@ -806,3 +806,54 @@ def named_colorscales(): from _plotly_utils.basevalidators import ColorscaleValidator return [c for c in ColorscaleValidator("", "").named_colorscales] + + +def sample_colorscale(colorscale, samplepoints, low=0.0, high=1.0, colortype="rgb"): + """ + Samples a colorscale at specific points. + + Interpolates between colors in a colorscale to find the specific colors + corresponding to the specified sample values. The colorscale can be specified + as a list of `[scale, color]` pairs, as a list of colors, or as a named + plotly colorscale. The samplepoints can be specefies an iterable of specific + points in the range [0.0, 1.0], or as an integer number of points which will + be spaced equally between the low value (default 0.0) and the high value + (default 1.0). The output is a list of colors, formatted according to the + specified colortype. + """ + from bisect import bisect_left + + try: + validate_colorscale(colorscale) + except exceptions.PlotlyError: + if isinstance(colorscale, str): + if colorscale in PLOTLY_SCALES: + colorscale = PLOTLY_SCALES[colorscale] + else: + raise exceptions.PlotlyError( + "If your colors variable is a string, it must be a " + "Plotly scale, an rgb color or a hex color." + ) + else: + colorscale = make_colorscale(colorscale) + + scale = colorscale_to_scale(colorscale) + validate_scale_values(scale) + colors = colorscale_to_colors(colorscale) + colors = validate_colors(colors, colortype="tuple") + + if isinstance(samplepoints, int): + samplepoints = [ + low + idx / (samplepoints - 1) * (high - low) for idx in range(samplepoints) + ] + elif isinstance(samplepoints, float): + samplepoints = [samplepoints] + + sampled_colors = [] + for point in samplepoints: + high = bisect_left(scale, point) + low = high - 1 + interpolant = (point - scale[low]) / (scale[high] - scale[low]) + sampled_color = find_intermediate_color(colors[low], colors[high], interpolant) + sampled_colors.append(sampled_color) + return validate_colors(sampled_colors, colortype=colortype) diff --git a/packages/python/plotly/plotly/colors/__init__.py b/packages/python/plotly/plotly/colors/__init__.py index 2e3dc753e6..3fb25825b3 100644 --- a/packages/python/plotly/plotly/colors/__init__.py +++ b/packages/python/plotly/plotly/colors/__init__.py @@ -36,6 +36,7 @@ "label_rgb", "make_colorscale", "n_colors", + "sample_colorscale", "unconvert_from_RGB_255", "unlabel_rgb", "validate_colors", From 0a0fc05709f606b6f8224052b23106845fd3b5e1 Mon Sep 17 00:00:00 2001 From: Francois Dion Date: Fri, 9 Apr 2021 16:15:04 -0400 Subject: [PATCH 60/99] fixed test and mpl 3.4.1 compatibility --- .../matplotlylib/mplexporter/tests/test_basic.py | 16 ++++++++++------ .../matplotlylib/mplexporter/tests/test_utils.py | 8 +++++--- .../plotly/matplotlylib/mplexporter/utils.py | 4 +++- .../plotly/plotly/matplotlylib/mpltools.py | 12 +++++++++++- 4 files changed, 29 insertions(+), 11 deletions(-) diff --git a/packages/python/plotly/plotly/matplotlylib/mplexporter/tests/test_basic.py b/packages/python/plotly/plotly/matplotlylib/mplexporter/tests/test_basic.py index b86759fa18..287d58274c 100644 --- a/packages/python/plotly/plotly/matplotlylib/mplexporter/tests/test_basic.py +++ b/packages/python/plotly/plotly/matplotlylib/mplexporter/tests/test_basic.py @@ -167,17 +167,19 @@ def test_multiaxes(): def test_image(): # Test fails for matplotlib 1.5+ because the size of the image # generated by matplotlib has changed. - if LooseVersion(matplotlib.__version__) >= LooseVersion('1.5.0'): - pytest.skip("Test fails for matplotlib version > 1.5.0") + if LooseVersion(matplotlib.__version__) == LooseVersion('3.4.1'): + image_size = 432 + else: + pytest.skip("Test fails for older matplotlib") np.random.seed(0) # image size depends on the seed fig, ax = plt.subplots(figsize=(2, 2)) ax.imshow(np.random.random((10, 10)), cmap=plt.cm.jet, interpolation='nearest') _assert_output_equal(fake_renderer_output(fig, FakeRenderer), - """ + f""" opening figure opening axes - draw image of size 1240 + draw image of size {image_size} closing axes closing figure """) @@ -204,6 +206,8 @@ def test_legend_dots(): ax.plot([1, 2, 3], label='label') ax.plot([2, 2, 2], 'o', label='dots') ax.legend().set_visible(True) + # legend draws 1 line and 1 marker + # path around legend now has 13 vertices?? _assert_output_equal(fake_renderer_output(fig, FullFakeRenderer), """ opening figure @@ -213,9 +217,9 @@ def test_legend_dots(): opening legend draw line with 2 points draw text 'label' None - draw 2 markers + draw 1 markers draw text 'dots' None - draw path with 4 vertices + draw path with 13 vertices closing legend closing axes closing figure diff --git a/packages/python/plotly/plotly/matplotlylib/mplexporter/tests/test_utils.py b/packages/python/plotly/plotly/matplotlylib/mplexporter/tests/test_utils.py index eb85fbbf07..fdc5f70f2e 100644 --- a/packages/python/plotly/plotly/matplotlylib/mplexporter/tests/test_utils.py +++ b/packages/python/plotly/plotly/matplotlylib/mplexporter/tests/test_utils.py @@ -13,9 +13,11 @@ def test_path_data(): def test_linestyle(): linestyles = {'solid': 'none', '-': 'none', - 'dashed': '6,6', '--': '6,6', - 'dotted': '2,2', ':': '2,2', - 'dashdot': '4,4,2,4', '-.': '4,4,2,4', + 'dashed': '5.550000000000001,2.4000000000000004', + '--': '5.550000000000001,2.4000000000000004', + 'dotted': '1.5,2.4749999999999996', ':': '1.5,2.4749999999999996', + 'dashdot': '9.600000000000001,2.4000000000000004,1.5,2.4000000000000004', + '-.': '9.600000000000001,2.4000000000000004,1.5,2.4000000000000004', '': None, 'None': None} for ls, result in linestyles.items(): diff --git a/packages/python/plotly/plotly/matplotlylib/mplexporter/utils.py b/packages/python/plotly/plotly/matplotlylib/mplexporter/utils.py index 4059a6b6f5..ee2adfc51d 100644 --- a/packages/python/plotly/plotly/matplotlylib/mplexporter/utils.py +++ b/packages/python/plotly/plotly/matplotlylib/mplexporter/utils.py @@ -217,6 +217,8 @@ def get_axis_properties(axis): props['tickformat'] = "" elif isinstance(formatter, ticker.FixedFormatter): props['tickformat'] = list(formatter.seq) + elif isinstance(formatter, ticker.FuncFormatter): + props['tickformat'] = list(formatter.func.args[0].values()) elif not any(label.get_visible() for label in axis.get_ticklabels()): props['tickformat'] = "" else: @@ -243,7 +245,7 @@ def get_axis_properties(axis): def get_grid_style(axis): gridlines = axis.get_gridlines() - if axis._gridOnMajor and len(gridlines) > 0: + if axis._major_tick_kw['gridOn'] and len(gridlines) > 0: color = export_color(gridlines[0].get_color()) alpha = gridlines[0].get_alpha() dasharray = get_dasharray(gridlines[0]) diff --git a/packages/python/plotly/plotly/matplotlylib/mpltools.py b/packages/python/plotly/plotly/matplotlylib/mpltools.py index af2e7d3861..219f93374e 100644 --- a/packages/python/plotly/plotly/matplotlylib/mpltools.py +++ b/packages/python/plotly/plotly/matplotlylib/mpltools.py @@ -365,7 +365,17 @@ def get_spine_visible(ax, spine_key): """Return some spine parameters for the spine, `spine_key`.""" spine = ax.spines[spine_key] ax_frame_on = ax.get_frame_on() - spine_frame_like = spine.is_frame_like() + position = spine._position or ("outward", 0.0) + if isinstance(position, str): + if position == "center": + position = ("axes", 0.5) + elif position == "zero": + position = ("data", 0) + position_type, amount = position + if position_type == "outward" and amount == 0: + spine_frame_like = True + else: + spine_frame_like = False if not spine.get_visible(): return False elif not spine._edgecolor[-1]: # user's may have set edgecolor alpha==0 From 4a250fa400d22a848103ff32a00f246103881b11 Mon Sep 17 00:00:00 2001 From: Francois Dion Date: Fri, 9 Apr 2021 16:15:34 -0400 Subject: [PATCH 61/99] added drawing of legend shapes (lines, markers) --- .../plotly/plotly/matplotlylib/renderer.py | 133 +++++++++++++++--- 1 file changed, 115 insertions(+), 18 deletions(-) diff --git a/packages/python/plotly/plotly/matplotlylib/renderer.py b/packages/python/plotly/plotly/matplotlylib/renderer.py index a2f749c719..dbd464e702 100644 --- a/packages/python/plotly/plotly/matplotlylib/renderer.py +++ b/packages/python/plotly/plotly/matplotlylib/renderer.py @@ -312,10 +312,84 @@ def draw_bar(self, coll): "assuming data redundancy, not plotting." ) + def draw_legend_shapes(self, mode, shape, **props): + """Create a shape that matches lines or markers in legends. + + Main issue is that path for circles do not render, so we have to use 'circle' + instead of 'path'. + """ + for single_mode in mode.split("+"): + x = props["data"][0][0] + y = props["data"][0][1] + if single_mode == "markers" and props.get("markerstyle"): + size = shape.pop("size", 6) + symbol = shape.pop("symbol") + # aligning to "center" + x0 = 0 + y0 = 0 + x1 = size + y1 = size + markerpath = props["markerstyle"].get("markerpath") + if markerpath is None and symbol != "circle": + self.msg += "not sure how to handle this marker without a valid path\n" + return + # marker path to SVG path conversion + path = ' '.join([f"{a} {t[0]},{t[1]}" for a, t in zip(markerpath[1], markerpath[0])]) + + if symbol == "circle": + # symbols like . and o in matplotlib, use circle + # plotly also maps many other markers to circle, such as 1,8 and p + path = None + shape_type = "circle" + x0 = -size / 2 + y0 = size / 2 + x1 = size / 2 + y1 = size + size / 2 + else: + # triangles, star etc + shape_type = "path" + legend_shape = go.layout.Shape( + type=shape_type, + xref="paper", + yref="paper", + x0=x0, + y0=y0, + x1=x1, + y1=y1, + xsizemode="pixel", + ysizemode="pixel", + xanchor=x, + yanchor=y, + path=path, + **shape + ) + + elif single_mode == "lines": + mode = "line" + x1 = props["data"][1][0] + y1 = props["data"][1][1] + + legend_shape = go.layout.Shape( + type=mode, + xref="paper", + yref="paper", + x0=x, + y0=y+0.02, + x1=x1, + y1=y1+0.02, + **shape + ) + else: + self.msg += "not sure how to handle this element\n" + return + self.plotly_fig.add_shape(legend_shape) + self.msg += " Heck yeah, I drew that shape\n" + def draw_marked_line(self, **props): """Create a data dict for a line obj. - This will draw 'lines', 'markers', or 'lines+markers'. + This will draw 'lines', 'markers', or 'lines+markers'. For legend elements, + this will use layout.shapes, so they can be positioned with paper refs. props.keys() -- [ 'coordinates', ('data', 'axes', 'figure', or 'display') @@ -346,7 +420,7 @@ def draw_marked_line(self, **props): """ self.msg += " Attempting to draw a line " - line, marker = {}, {} + line, marker, shape = {}, {}, {} if props["linestyle"] and props["markerstyle"]: self.msg += "... with both lines+markers\n" mode = "lines+markers" @@ -361,23 +435,43 @@ def draw_marked_line(self, **props): props["linestyle"]["color"], props["linestyle"]["alpha"] ) - # print(mpltools.convert_dash(props['linestyle']['dasharray'])) - line = go.scatter.Line( - color=color, - width=props["linestyle"]["linewidth"], - dash=mpltools.convert_dash(props["linestyle"]["dasharray"]), - ) + if props["coordinates"] == "data": + line = go.scatter.Line( + color=color, + width=props["linestyle"]["linewidth"], + dash=mpltools.convert_dash(props["linestyle"]["dasharray"]), + ) + else: + shape=dict( + line = dict( + color=color, + width=props["linestyle"]["linewidth"], + dash=mpltools.convert_dash(props["linestyle"]["dasharray"]) + ) + ) if props["markerstyle"]: - marker = go.scatter.Marker( - opacity=props["markerstyle"]["alpha"], - color=props["markerstyle"]["facecolor"], - symbol=mpltools.convert_symbol(props["markerstyle"]["marker"]), - size=props["markerstyle"]["markersize"], - line=dict( - color=props["markerstyle"]["edgecolor"], - width=props["markerstyle"]["edgewidth"], - ), - ) + if props["coordinates"] == "data": + marker = go.scatter.Marker( + opacity=props["markerstyle"]["alpha"], + color=props["markerstyle"]["facecolor"], + symbol=mpltools.convert_symbol(props["markerstyle"]["marker"]), + size=props["markerstyle"]["markersize"], + line=dict( + color=props["markerstyle"]["edgecolor"], + width=props["markerstyle"]["edgewidth"], + ), + ) + else: + shape = dict( + opacity=props["markerstyle"]["alpha"], + fillcolor=props["markerstyle"]["facecolor"], + symbol=mpltools.convert_symbol(props["markerstyle"]["marker"]), + size=props["markerstyle"]["markersize"], + line=dict( + color=props["markerstyle"]["edgecolor"], + width=props["markerstyle"]["edgewidth"], + ), + ) if props["coordinates"] == "data": marked_line = go.Scatter( mode=mode, @@ -404,6 +498,9 @@ def draw_marked_line(self, **props): ) self.plotly_fig.add_trace(marked_line), self.msg += " Heck yeah, I drew that line\n" + elif props["coordinates"] == "axes": + # dealing with legend graphical elements + self.draw_legend_shapes(mode=mode,shape=shape, **props) else: self.msg += " Line didn't have 'data' coordinates, " "not drawing\n" warnings.warn( From 77b07c55d637667f78a82797c78c505ca9da7040 Mon Sep 17 00:00:00 2001 From: Nicolas Kruchten Date: Tue, 20 Apr 2021 20:55:08 -0400 Subject: [PATCH 62/99] latex docs (#3157) * latex docs * pin down some deps * pin down some deps * pin down some deps * revert dep changes * pin down some deps * pin down some deps * imshow * jiggling dependencies --- doc/python/LaTeX.md | 68 +++++++++++++++++++ doc/python/imshow.md | 12 +--- doc/python/ml-tsne-umap-projections.md | 4 +- doc/requirements.txt | 6 +- .../test_graph_objs/test_graph_objs.py | 1 - packages/python/plotly/setup.py | 2 +- packages/python/plotly/tox.ini | 2 +- 7 files changed, 78 insertions(+), 17 deletions(-) create mode 100644 doc/python/LaTeX.md diff --git a/doc/python/LaTeX.md b/doc/python/LaTeX.md new file mode 100644 index 0000000000..7070cbf2d9 --- /dev/null +++ b/doc/python/LaTeX.md @@ -0,0 +1,68 @@ +--- +jupyter: + jupytext: + notebook_metadata_filter: all + text_representation: + extension: .md + format_name: markdown + format_version: '1.2' + jupytext_version: 1.4.2 + kernelspec: + display_name: Python 3 + language: python + name: python3 + language_info: + codemirror_mode: + name: ipython + version: 3 + file_extension: .py + mimetype: text/x-python + name: python + nbconvert_exporter: python + pygments_lexer: ipython3 + version: 3.7.7 + plotly: + description: How to add LaTeX to python graphs. + display_as: advanced_opt + language: python + layout: base + name: LaTeX + order: 5 + page_type: example_index + permalink: python/LaTeX/ + thumbnail: thumbnail/latex.jpg +--- + +#### LaTeX Typesetting + +```python +import plotly.express as px + +fig = px.line(x=[1, 2, 3, 4], y=[1, 4, 9, 16], title=r'$\alpha_{1c} = 352 \pm 11 \text{ km s}^{-1}$') +fig.update_layout( + xaxis_title=r'$\sqrt{(n_\text{c}(t|{T_\text{early}}))}$', + yaxis_title=r'$d, r \text{ (solar radius)}$' +) +fig.show() +``` + +```python +import plotly.graph_objs as go + +fig = go.Figure() +fig.add_trace(go.Scatter( + x=[1, 2, 3, 4], + y=[1, 4, 9, 16], + name=r'$\alpha_{1c} = 352 \pm 11 \text{ km s}^{-1}$' +)) +fig.add_trace(go.Scatter( + x=[1, 2, 3, 4], + y=[0.5, 2, 4.5, 8], + name=r'$\beta_{1c} = 25 \pm 11 \text{ km s}^{-1}$' +)) +fig.update_layout( + xaxis_title=r'$\sqrt{(n_\text{c}(t|{T_\text{early}}))}$', + yaxis_title=r'$d, r \text{ (solar radius)}$' +) +fig.show() +``` diff --git a/doc/python/imshow.md b/doc/python/imshow.md index cf8639a65d..1ca97b4b5f 100644 --- a/doc/python/imshow.md +++ b/doc/python/imshow.md @@ -412,9 +412,7 @@ See the [tutorial on facet plots](/python/facet-plots/) for more information on ```python import plotly.express as px from skimage import io -from skimage.data import image_fetcher -path = image_fetcher.fetch('data/cells.tif') -data = io.imread(path) +data = io.imread("https://github.com/scikit-image/skimage-tutorials/raw/main/images/cells.tif") img = data[20:45:2] fig = px.imshow(img, facet_col=0, binary_string=True, facet_col_wrap=5) fig.show() @@ -446,9 +444,7 @@ For three-dimensional image datasets, obtained for example by MRI or CT in medic ```python import plotly.express as px from skimage import io -from skimage.data import image_fetcher -path = image_fetcher.fetch('data/cells.tif') -data = io.imread(path) +data = io.imread("https://github.com/scikit-image/skimage-tutorials/raw/main/images/cells.tif") img = data[25:40] fig = px.imshow(img, animation_frame=0, binary_string=True, labels=dict(animation_frame="slice")) fig.show() @@ -476,9 +472,7 @@ It is possible to view 4-dimensional datasets (for example, 3-D images evolving ```python import plotly.express as px from skimage import io -from skimage.data import image_fetcher -path = image_fetcher.fetch('data/cells.tif') -data = io.imread(path) +data = io.imread("https://github.com/scikit-image/skimage-tutorials/raw/main/images/cells.tif") data = data.reshape((15, 4, 256, 256))[5:] fig = px.imshow(data, animation_frame=0, facet_col=1, binary_string=True) fig.show() diff --git a/doc/python/ml-tsne-umap-projections.md b/doc/python/ml-tsne-umap-projections.md index 683897eb8c..dfd7d78d86 100644 --- a/doc/python/ml-tsne-umap-projections.md +++ b/doc/python/ml-tsne-umap-projections.md @@ -5,8 +5,8 @@ jupyter: text_representation: extension: .md format_name: markdown - format_version: '1.1' - jupytext_version: 1.1.1 + format_version: '1.2' + jupytext_version: 1.4.2 kernelspec: display_name: Python 3 language: python diff --git a/doc/requirements.txt b/doc/requirements.txt index 14257257cd..6e2f295857 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -6,7 +6,7 @@ pandas==1.0.3 statsmodels==0.11.1 scipy==1.3.1 patsy==0.5.1 -numpy==1.16.0 +numpy==1.19.5 plotly-geo python-igraph geopandas==0.8.1 @@ -16,7 +16,7 @@ psutil requests networkx squarify -scikit-image +scikit-image==0.18.1 scikit-learn sphinx sphinx_bootstrap_theme @@ -27,7 +27,7 @@ datashader pyarrow cufflinks==0.17.3 kaleido -umap-learn +umap-learn==0.5.1 pooch wget nbconvert==5.6.1 diff --git a/packages/python/plotly/plotly/tests/test_core/test_graph_objs/test_graph_objs.py b/packages/python/plotly/plotly/tests/test_core/test_graph_objs/test_graph_objs.py index 3b79dd6282..bec7d01fee 100644 --- a/packages/python/plotly/plotly/tests/test_core/test_graph_objs/test_graph_objs.py +++ b/packages/python/plotly/plotly/tests/test_core/test_graph_objs/test_graph_objs.py @@ -7,7 +7,6 @@ "AngularAxis", "Annotation", "Annotations", - "Area", "Bar", "Box", "ColorBar", diff --git a/packages/python/plotly/setup.py b/packages/python/plotly/setup.py index 395111c03e..b7df3e2ba6 100644 --- a/packages/python/plotly/setup.py +++ b/packages/python/plotly/setup.py @@ -245,7 +245,7 @@ def get_latest_publish_build_info(repo, branch): builds = [ j for j in branch_jobs - if j.get("workflows", {}).get("job_name", None) == "publish" + if j.get("workflows", {}).get("job_name", None) == "publish-dist" and j.get("status", None) == "success" ] build = builds[0] diff --git a/packages/python/plotly/tox.ini b/packages/python/plotly/tox.ini index 72169192a0..635cd9478c 100644 --- a/packages/python/plotly/tox.ini +++ b/packages/python/plotly/tox.ini @@ -58,12 +58,12 @@ deps= retrying==1.3.3 pytest==3.5.1 pandas==0.24.2 + numpy==1.19.5 xarray==0.10.9 statsmodels==0.10.2 pillow==5.2.0 backports.tempfile==1.0 optional: --editable=file:///{toxinidir}/../plotly-geo - optional: numpy==1.16.5 optional: ipython[all]==5.1.0 optional: ipywidgets==7.2.0 optional: ipykernel==4.8.2 From 6387cb3bbea7dcd891ca8a72ee630fca5d53e132 Mon Sep 17 00:00:00 2001 From: Nicolas Kruchten Date: Tue, 20 Apr 2021 21:15:09 -0400 Subject: [PATCH 63/99] remove latex redirections --- doc/unconverted/python/LaTeX.md | 88 --------------------------------- 1 file changed, 88 deletions(-) delete mode 100644 doc/unconverted/python/LaTeX.md diff --git a/doc/unconverted/python/LaTeX.md b/doc/unconverted/python/LaTeX.md deleted file mode 100644 index bd3f2b9747..0000000000 --- a/doc/unconverted/python/LaTeX.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -jupyter: - jupytext: - notebook_metadata_filter: all - text_representation: - extension: .md - format_name: markdown - format_version: '1.1' - jupytext_version: 1.1.1 - kernelspec: - display_name: Python 3 - language: python - name: python3 - plotly: - description: How to add LaTeX to python graphs. - display_as: advanced_opt - language: python - layout: base - name: LaTeX - order: 3 - page_type: u-guide - permalink: python/LaTeX/ - thumbnail: thumbnail/latex.jpg ---- - -#### New to Plotly? -Plotly's Python library is free and open source! [Get started](https://plot.ly/python/getting-started/) by downloading the client and [reading the primer](https://plot.ly/python/getting-started/). -
    You can set up Plotly to work in [online](https://plot.ly/python/getting-started/#initialization-for-online-plotting) or [offline](https://plot.ly/python/getting-started/#initialization-for-offline-plotting) mode, or in [jupyter notebooks](https://plot.ly/python/getting-started/#start-plotting-online). -
    We also have a quick-reference [cheatsheet](https://images.plot.ly/plotly-documentation/images/python_cheat_sheet.pdf) (new!) to help you get started! - - -#### Version Check -Plotly's python package is updated frequently. Run `pip install plotly --upgrade` to use the latest version. - -```python -import plotly -plotly.__version__ -``` - -#### LaTeX Typesetting - -```python -import plotly.plotly as py -import plotly.graph_objs as go - -trace1 = go.Scatter( - x=[1, 2, 3, 4], - y=[1, 4, 9, 16], - name=r'$\alpha_{1c} = 352 \pm 11 \text{ km s}^{-1}$' -) -trace2 = go.Scatter( - x=[1, 2, 3, 4], - y=[0.5, 2, 4.5, 8], - name=r'$\beta_{1c} = 25 \pm 11 \text{ km s}^{-1}$' -) -data = [trace1, trace2] -layout = go.Layout( - xaxis=dict( - title=r'$\sqrt{(n_\text{c}(t|{T_\text{early}}))}$' - ), - yaxis=dict( - title=r'$d, r \text{ (solar radius)}$' - ) -) -fig = go.Figure(data=data, layout=layout) -py.iplot(fig, filename='latex') -``` - -```python -from IPython.display import display, HTML - -display(HTML('')) -display(HTML('')) - -! pip install git+https://github.com/plotly/publisher.git --upgrade -import publisher -publisher.publish( - 'latex-typesetting.ipynb', 'python/LaTeX/', 'LaTeX', - 'How to add LaTeX to python graphs.', - title = 'Python LaTeX | Examples | Plotly', - has_thumbnail='true', thumbnail='thumbnail/latex.jpg', - language='python', - display_as='style_opt', order=3, ipynb='~notebook_demo/268') -``` - -```python - -``` From 93776274e5e48ca04ee68d20f9ebb09458dfa79f Mon Sep 17 00:00:00 2001 From: Julien Monticolo <20857031+jmonticolo@users.noreply.github.com> Date: Wed, 21 Apr 2021 15:00:28 +0200 Subject: [PATCH 64/99] correct misspells, fix #3074 (#3105) Co-authored-by: Julien Monticolo --- .../plotly/_plotly_utils/colors/__init__.py | 16 ++++++++-------- .../plotly/plotly/figure_factory/_gantt.py | 2 +- .../plotly/plotly/figure_factory/_violin.py | 2 +- .../plotly/tests/test_optional/optional_utils.py | 2 +- .../test_tools/test_figure_factory.py | 2 +- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/python/plotly/_plotly_utils/colors/__init__.py b/packages/python/plotly/_plotly_utils/colors/__init__.py index b7669ce4d2..a44171ef9a 100644 --- a/packages/python/plotly/_plotly_utils/colors/__init__.py +++ b/packages/python/plotly/_plotly_utils/colors/__init__.py @@ -377,7 +377,7 @@ def validate_colors(colors, colortype="tuple"): def validate_colors_dict(colors, colortype="tuple"): """ - Validates dictioanry of color(s) + Validates dictionary of color(s) """ # validate each color element in the dictionary for key in colors: @@ -491,15 +491,15 @@ def convert_colors_to_same_type( return (colors_list, scale) else: raise exceptions.PlotlyError( - "You must select either rgb or tuple " "for your colortype variable." + "You must select either rgb or tuple for your colortype variable." ) def convert_dict_colors_to_same_type(colors_dict, colortype="rgb"): """ - Converts a colors in a dictioanry of colors to the specified color type + Converts a colors in a dictionary of colors to the specified color type - :param (dict) colors_dict: a dictioanry whose values are single colors + :param (dict) colors_dict: a dictionary whose values are single colors """ for key in colors_dict: if "#" in colors_dict[key]: @@ -519,7 +519,7 @@ def convert_dict_colors_to_same_type(colors_dict, colortype="rgb"): return colors_dict else: raise exceptions.PlotlyError( - "You must select either rgb or tuple " "for your colortype variable." + "You must select either rgb or tuple for your colortype variable." ) @@ -536,7 +536,7 @@ def validate_scale_values(scale): """ if len(scale) < 2: raise exceptions.PlotlyError( - "You must input a list of scale values " "that has at least two values." + "You must input a list of scale values that has at least two values." ) if (scale[0] != 0) or (scale[-1] != 1): @@ -584,7 +584,7 @@ def make_colorscale(colors, scale=None): # validate minimum colors length of 2 if len(colors) < 2: raise exceptions.PlotlyError( - "You must input a list of colors that " "has at least two colors." + "You must input a list of colors that has at least two colors." ) if scale is None: @@ -594,7 +594,7 @@ def make_colorscale(colors, scale=None): else: if len(colors) != len(scale): raise exceptions.PlotlyError( - "The length of colors and scale " "must be the same." + "The length of colors and scale must be the same." ) validate_scale_values(scale) diff --git a/packages/python/plotly/plotly/figure_factory/_gantt.py b/packages/python/plotly/plotly/figure_factory/_gantt.py index dfc5e4a2a3..8eaa6b0b10 100644 --- a/packages/python/plotly/plotly/figure_factory/_gantt.py +++ b/packages/python/plotly/plotly/figure_factory/_gantt.py @@ -973,7 +973,7 @@ def create_gantt( raise exceptions.PlotlyError( "Error. You have set colors to a dictionary but have not " "picked an index. An index is required if you are " - "assigning colors to particular values in a dictioanry." + "assigning colors to particular values in a dictionary." ) fig = gantt( chart, diff --git a/packages/python/plotly/plotly/figure_factory/_violin.py b/packages/python/plotly/plotly/figure_factory/_violin.py index feaef6a768..a2398304b2 100644 --- a/packages/python/plotly/plotly/figure_factory/_violin.py +++ b/packages/python/plotly/plotly/figure_factory/_violin.py @@ -475,7 +475,7 @@ def create_violin( of param colors. This means colors must be a list with at least 2 colors in it (Plotly colorscales are accepted since they map to a list of two rgb colors). Default = False - :param (dict) group_stats: a dictioanry where each key is a unique + :param (dict) group_stats: a dictionary where each key is a unique value from the group_header column in data. Each value must be a number and will be used to color the violin plots if a colorscale is being used. diff --git a/packages/python/plotly/plotly/tests/test_optional/optional_utils.py b/packages/python/plotly/plotly/tests/test_optional/optional_utils.py index b3b872b64d..1c7ba3ad68 100644 --- a/packages/python/plotly/plotly/tests/test_optional/optional_utils.py +++ b/packages/python/plotly/plotly/tests/test_optional/optional_utils.py @@ -37,7 +37,7 @@ def assert_fig_equal(self, d1, d2, msg=None, ignore=["uid"]): """ Helper function for assert_dict_equal - By defualt removes uid from d1 and/or d2 if present + By default removes uid from d1 and/or d2 if present then calls assert_dict_equal. :param (list|tuple) ignore: sequence of key names as diff --git a/packages/python/plotly/plotly/tests/test_optional/test_tools/test_figure_factory.py b/packages/python/plotly/plotly/tests/test_optional/test_tools/test_figure_factory.py index 35b9fed4c1..c10ecab8bf 100644 --- a/packages/python/plotly/plotly/tests/test_optional/test_tools/test_figure_factory.py +++ b/packages/python/plotly/plotly/tests/test_optional/test_tools/test_figure_factory.py @@ -1718,7 +1718,7 @@ def test_gantt_validate_colors(self): pattern4 = ( "Error. You have set colors to a dictionary but have not " "picked an index. An index is required if you are " - "assigning colors to particular values in a dictioanry." + "assigning colors to particular values in a dictionary." ) self.assertRaisesRegexp( From 8caa7a9c7f352c849717901687cee1d57f8c382b Mon Sep 17 00:00:00 2001 From: Anthony Miyaguchi Date: Wed, 21 Apr 2021 17:19:38 -0700 Subject: [PATCH 65/99] Update dot-plots with mislabeled data (#3063) The dot plot documentation swapped the labels for men's and women's salaries in the dataset. This reflects the earning disparity in the second plot --- doc/python/dot-plots.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/python/dot-plots.md b/doc/python/dot-plots.md index 5f07980902..576f82dd39 100644 --- a/doc/python/dot-plots.md +++ b/doc/python/dot-plots.md @@ -50,8 +50,8 @@ schools = ["Brown", "NYU", "Notre Dame", "Cornell", "Tufts", "Yale", "Princeton", "U.Penn", "Stanford", "MIT", "Harvard"] n_schools = len(schools) -men_salary = [72, 67, 73, 80, 76, 79, 84, 78, 86, 93, 94, 90, 92, 96, 94, 112] -women_salary = [92, 94, 100, 107, 112, 114, 114, 118, 119, 124, 131, 137, 141, 151, 152, 165] +women_salary = [72, 67, 73, 80, 76, 79, 84, 78, 86, 93, 94, 90, 92, 96, 94, 112] +men_salary = [92, 94, 100, 107, 112, 114, 114, 118, 119, 124, 131, 137, 141, 151, 152, 165] df = pd.DataFrame(dict(school=schools*2, salary=men_salary + women_salary, gender=["Men"]*n_schools + ["Women"]*n_schools)) @@ -158,4 +158,4 @@ fig.show() ### Reference -See https://plotly.com/python/reference/scatter/ for more information and chart attribute options! \ No newline at end of file +See https://plotly.com/python/reference/scatter/ for more information and chart attribute options! From 211e1f6e950d7c3ed6e052320eed1b98129adce8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Apr 2021 20:23:25 -0400 Subject: [PATCH 66/99] Bump y18n from 3.2.1 to 3.2.2 in /packages/javascript/plotlywidget (#3128) Bumps [y18n](https://github.com/yargs/y18n) from 3.2.1 to 3.2.2. - [Release notes](https://github.com/yargs/y18n/releases) - [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md) - [Commits](https://github.com/yargs/y18n/commits) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- packages/javascript/plotlywidget/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/javascript/plotlywidget/package-lock.json b/packages/javascript/plotlywidget/package-lock.json index 5eace29b5c..ac632cb722 100644 --- a/packages/javascript/plotlywidget/package-lock.json +++ b/packages/javascript/plotlywidget/package-lock.json @@ -7225,9 +7225,9 @@ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", "dev": true }, "yallist": { From 014229038b1984f09381c377b107513a666e34e7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Apr 2021 20:23:33 -0400 Subject: [PATCH 67/99] Bump elliptic from 6.5.3 to 6.5.4 in /packages/javascript/plotlywidget (#3106) Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.3 to 6.5.4. - [Release notes](https://github.com/indutny/elliptic/releases) - [Commits](https://github.com/indutny/elliptic/compare/v6.5.3...v6.5.4) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../javascript/plotlywidget/package-lock.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/javascript/plotlywidget/package-lock.json b/packages/javascript/plotlywidget/package-lock.json index ac632cb722..5af7d4beeb 100644 --- a/packages/javascript/plotlywidget/package-lock.json +++ b/packages/javascript/plotlywidget/package-lock.json @@ -1936,18 +1936,18 @@ } }, "elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", "dev": true, "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", + "bn.js": "^4.11.9", + "brorand": "^1.1.0", "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" } }, "emojis-list": { From cb82e2906721adaf9b098210bdc7ac18b3fba9da Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Apr 2021 20:23:43 -0400 Subject: [PATCH 68/99] Bump node-fetch from 2.6.0 to 2.6.1 in /packages/javascript/plotlywidget (#2767) Bumps [node-fetch](https://github.com/bitinn/node-fetch) from 2.6.0 to 2.6.1. - [Release notes](https://github.com/bitinn/node-fetch/releases) - [Changelog](https://github.com/node-fetch/node-fetch/blob/master/docs/CHANGELOG.md) - [Commits](https://github.com/bitinn/node-fetch/compare/v2.6.0...v2.6.1) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- packages/javascript/plotlywidget/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/javascript/plotlywidget/package-lock.json b/packages/javascript/plotlywidget/package-lock.json index 5af7d4beeb..51b4a441e2 100644 --- a/packages/javascript/plotlywidget/package-lock.json +++ b/packages/javascript/plotlywidget/package-lock.json @@ -4425,9 +4425,9 @@ } }, "node-fetch": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", - "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, "node-libs-browser": { "version": "2.2.1", From 6bf58497380e3a53cfbc902fef8f3ce4ace4a8ac Mon Sep 17 00:00:00 2001 From: jmsmdy <47697814+jmsmdy@users.noreply.github.com> Date: Thu, 22 Apr 2021 04:45:38 -0700 Subject: [PATCH 69/99] Replaced 'retrying' dependency with 'tenacity' in plotly package (#2911) * replaced retrying dependency with tenacity in plotly package Co-authored-by: jmsmdy --- .circleci/config.yml | 2 +- .circleci/create_conda_optional_env.sh | 2 +- packages/python/plotly/plotly/io/_orca.py | 12 +++++++----- packages/python/plotly/recipe/meta.yaml | 2 +- packages/python/plotly/requirements.txt | 4 ++-- packages/python/plotly/setup.py | 2 +- packages/python/plotly/tox.ini | 2 +- 7 files changed, 14 insertions(+), 12 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index fae56c4cea..c80a69b512 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -327,7 +327,7 @@ jobs: - checkout - run: name: Install tox - command: "sudo pip install retrying tox black inflect" + command: "sudo pip install tenacity tox black inflect" - run: name: Update jupyterlab-plotly version command: "cd packages/python/plotly; python setup.py updateplotlywidgetversion" diff --git a/.circleci/create_conda_optional_env.sh b/.circleci/create_conda_optional_env.sh index 17f3c999af..4929c8ee52 100755 --- a/.circleci/create_conda_optional_env.sh +++ b/.circleci/create_conda_optional_env.sh @@ -16,7 +16,7 @@ if [ ! -d $HOME/miniconda/envs/circle_optional ]; then # Create environment # PYTHON_VERSION=2.7 or 3.5 $HOME/miniconda/bin/conda create -n circle_optional --yes python=$PYTHON_VERSION \ -requests nbformat six retrying psutil pandas decorator pytest mock nose poppler xarray scikit-image ipython jupyter ipykernel ipywidgets statsmodels +requests nbformat six retrying tenacity psutil pandas decorator pytest mock nose poppler xarray scikit-image ipython jupyter ipykernel ipywidgets statsmodels # Install orca into environment $HOME/miniconda/bin/conda install --yes -n circle_optional -c plotly plotly-orca==1.3.1 diff --git a/packages/python/plotly/plotly/io/_orca.py b/packages/python/plotly/plotly/io/_orca.py index 500674b628..63152739f1 100644 --- a/packages/python/plotly/plotly/io/_orca.py +++ b/packages/python/plotly/plotly/io/_orca.py @@ -11,7 +11,7 @@ from copy import copy from contextlib import contextmanager -import retrying +import tenacity from six import string_types import _plotly_utils.utils @@ -1173,11 +1173,11 @@ def validate_executable(): >>> import plotly.io as pio >>> pio.orca.config.use_xvfb = True - + You can save this configuration for use in future sessions as follows: - >>> pio.orca.config.save() - + >>> pio.orca.config.save() + See https://www.x.org/releases/X11R7.6/doc/man/man1/Xvfb.1.xhtml for more info on Xvfb """ @@ -1451,7 +1451,9 @@ def ensure_server(): orca_state["shutdown_timer"] = t -@retrying.retry(wait_random_min=5, wait_random_max=10, stop_max_delay=60000) +@tenacity.retry( + wait=tenacity.wait_random(min=5, max=10), stop=tenacity.stop_after_delay(60000), +) def request_image_with_retrying(**kwargs): """ Helper method to perform an image request to a running orca server process diff --git a/packages/python/plotly/recipe/meta.yaml b/packages/python/plotly/recipe/meta.yaml index 2110405d33..cbb2683d1e 100644 --- a/packages/python/plotly/recipe/meta.yaml +++ b/packages/python/plotly/recipe/meta.yaml @@ -24,7 +24,7 @@ requirements: - setuptools run: - python - - retrying >=1.3.3 + - tenacity >=6.2.0 - six test: diff --git a/packages/python/plotly/requirements.txt b/packages/python/plotly/requirements.txt index 496204893c..6800b7f43a 100644 --- a/packages/python/plotly/requirements.txt +++ b/packages/python/plotly/requirements.txt @@ -6,7 +6,7 @@ ################################################### ## python 2 to 3 compatibility ## -six==1.8.0 +six==1.15.0 ## retrying requests ## -retrying==1.3.3 +tenacity>=6.2.0 diff --git a/packages/python/plotly/setup.py b/packages/python/plotly/setup.py index b7df3e2ba6..172eb25d8d 100644 --- a/packages/python/plotly/setup.py +++ b/packages/python/plotly/setup.py @@ -505,7 +505,7 @@ def run(self): ), ("etc/jupyter/nbconfig/notebook.d", ["plotlywidget.json"]), ], - install_requires=["retrying>=1.3.3", "six"], + install_requires=["tenacity>=6.2.0", "six"], zip_safe=False, cmdclass=dict( build_py=js_prerelease(versioneer_cmds["build_py"]), diff --git a/packages/python/plotly/tox.ini b/packages/python/plotly/tox.ini index 635cd9478c..d4e6254866 100644 --- a/packages/python/plotly/tox.ini +++ b/packages/python/plotly/tox.ini @@ -55,7 +55,7 @@ deps= requests==2.12.4 six==1.10.0 pytz==2016.10 - retrying==1.3.3 + tenacity==6.2.0 pytest==3.5.1 pandas==0.24.2 numpy==1.19.5 From 70877b49939e30f4d437059470732a2c913a7e87 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Thu, 22 Apr 2021 09:41:23 -0400 Subject: [PATCH 70/99] Require python 3.6 and CI maintenance (#3160) * Update setup.py to require Python>=3.6 * Add an f-string (compatible with python>=3.6) for good measure * Remove tox * Rename plot_ly in chart_studio in ci tests * Move tests with pandas/numpy dependencies to test_optional, remove these from core requirements * Move dependency check tests to optional * Don't open browser window in matplotlylib test * Add Python 3.8 and 3.9 tests --- .circleci/config.yml | 280 +++++++----------- .../test_requirements/requirements_37.txt | 12 + packages/python/chart-studio/tox.ini | 86 ------ .../plotly/_plotly_utils/optional_imports.py | 2 +- .../test_figure_messages/test_add_traces.py | 30 -- .../tests/test_core/test_utils/test_utils.py | 81 +---- .../test_autoshapes}/__init__.py | 0 .../test_autoshapes/common.py | 0 .../test_autoshapes/test_annotated_shapes.py | 2 +- .../test_annotated_shapes_annotations.json | 0 .../test_autoshapes/test_axis_span_shapes.py | 2 +- .../test_offline/test_offline.py | 1 + .../tests/test_optional/test_px/__init__.py | 0 .../test_px/test_colors.py | 0 .../test_px/test_facets.py | 0 .../test_px/test_imshow.py | 0 .../test_px/test_marginals.py | 0 .../test_px/test_pandas_backend.py | 0 .../test_px/test_px.py | 0 .../test_px/test_px_functions.py | 0 .../test_px/test_px_hover.py | 0 .../test_px/test_px_input.py | 0 .../test_px/test_px_wide.py | 0 .../test_px/test_trendline.py | 0 .../test_subplots/test_make_subplots.py | 30 ++ .../test_optional/test_utils/test_utils.py | 93 ++++++ packages/python/plotly/setup.py | 9 +- .../requirements_36_core.txt | 4 + .../requirements_36_optional.txt | 24 ++ .../requirements_37_core.txt | 4 + .../requirements_37_optional.txt | 24 ++ .../requirements_38_core.txt | 4 + .../requirements_38_optional.txt | 24 ++ .../requirements_39_core.txt | 4 + .../requirements_39_optional.txt | 24 ++ packages/python/plotly/tox.ini | 151 ---------- 36 files changed, 363 insertions(+), 528 deletions(-) create mode 100644 packages/python/chart-studio/test_requirements/requirements_37.txt delete mode 100644 packages/python/chart-studio/tox.ini rename packages/python/plotly/plotly/tests/{test_core/test_px => test_optional/test_autoshapes}/__init__.py (100%) rename packages/python/plotly/plotly/tests/{test_core => test_optional}/test_autoshapes/common.py (100%) rename packages/python/plotly/plotly/tests/{test_core => test_optional}/test_autoshapes/test_annotated_shapes.py (99%) rename packages/python/plotly/plotly/tests/{test_core => test_optional}/test_autoshapes/test_annotated_shapes_annotations.json (100%) rename packages/python/plotly/plotly/tests/{test_core => test_optional}/test_autoshapes/test_axis_span_shapes.py (99%) create mode 100644 packages/python/plotly/plotly/tests/test_optional/test_px/__init__.py rename packages/python/plotly/plotly/tests/{test_core => test_optional}/test_px/test_colors.py (100%) rename packages/python/plotly/plotly/tests/{test_core => test_optional}/test_px/test_facets.py (100%) rename packages/python/plotly/plotly/tests/{test_core => test_optional}/test_px/test_imshow.py (100%) rename packages/python/plotly/plotly/tests/{test_core => test_optional}/test_px/test_marginals.py (100%) rename packages/python/plotly/plotly/tests/{test_core => test_optional}/test_px/test_pandas_backend.py (100%) rename packages/python/plotly/plotly/tests/{test_core => test_optional}/test_px/test_px.py (100%) rename packages/python/plotly/plotly/tests/{test_core => test_optional}/test_px/test_px_functions.py (100%) rename packages/python/plotly/plotly/tests/{test_core => test_optional}/test_px/test_px_hover.py (100%) rename packages/python/plotly/plotly/tests/{test_core => test_optional}/test_px/test_px_input.py (100%) rename packages/python/plotly/plotly/tests/{test_core => test_optional}/test_px/test_px_wide.py (100%) rename packages/python/plotly/plotly/tests/{test_core => test_optional}/test_px/test_trendline.py (100%) create mode 100644 packages/python/plotly/test_requirements/requirements_36_core.txt create mode 100644 packages/python/plotly/test_requirements/requirements_36_optional.txt create mode 100644 packages/python/plotly/test_requirements/requirements_37_core.txt create mode 100644 packages/python/plotly/test_requirements/requirements_37_optional.txt create mode 100644 packages/python/plotly/test_requirements/requirements_38_core.txt create mode 100644 packages/python/plotly/test_requirements/requirements_38_optional.txt create mode 100644 packages/python/plotly/test_requirements/requirements_39_core.txt create mode 100644 packages/python/plotly/test_requirements/requirements_39_optional.txt delete mode 100644 packages/python/plotly/tox.ini diff --git a/.circleci/config.yml b/.circleci/config.yml index c80a69b512..34ffbca9d6 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -15,68 +15,57 @@ jobs: command: "black --check ." # Core - python-2.7-core: + python-3.6-core: docker: - - image: circleci/python:2.7-stretch-node-browsers - environment: - PLOTLY_TOX_PYTHON_27: python2.7 + - image: circleci/python:3.6-stretch-node-browsers steps: - checkout - run: - name: Install tox - command: "sudo pip install tox" + name: Install dependencies + command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_36_core.txt" - run: - name: Test with tox - command: "cd packages/python/plotly; tox -e py27-core" + name: Test core + command: "cd packages/python/plotly; pytest plotly/tests/test_core" no_output_timeout: 20m - python-3.5-core: + python-3.7-core: docker: - - image: circleci/python:3.5-stretch-node-browsers - environment: - PLOTLY_TOX_PYTHON_35: python3.5 - + - image: circleci/python:3.7-stretch-node-browsers steps: - checkout - run: - name: Install tox - command: "sudo pip install tox" + name: Install dependencies + command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_37_core.txt" - run: - name: Test with tox - command: "cd packages/python/plotly; tox -e py35-core" + name: Test core + command: "cd packages/python/plotly; pytest plotly/tests/test_core" no_output_timeout: 20m - python-3.6-core: + python-3.8-core: docker: - - image: circleci/python:3.6-stretch-node-browsers - environment: - PLOTLY_TOX_PYTHON_36: python3.6 - + - image: circleci/python:3.8-buster-node-browsers steps: - checkout - run: - name: Install tox - command: "sudo pip install tox" + name: Install dependencies + command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_38_core.txt" - run: - name: Test with tox - command: "cd packages/python/plotly; tox -e py36-core" + name: Test core + command: "cd packages/python/plotly; pytest plotly/tests/test_core" no_output_timeout: 20m - python-3.7-core: + python-3.9-core: docker: - - image: circleci/python:3.7-stretch-node-browsers - environment: - PLOTLY_TOX_PYTHON_37: python3.7 - + - image: circleci/python:3.9-buster-node-browsers steps: - checkout - run: - name: Install tox - command: "sudo pip install tox" + name: Install dependencies + command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_39_core.txt" - run: - name: Test with tox - command: "cd packages/python/plotly; tox -e py37-core" + name: Test core + command: "cd packages/python/plotly; pytest plotly/tests/test_core" no_output_timeout: 20m python-3.7-percy: @@ -112,178 +101,130 @@ jobs: rm test/percy/*.html # Optional - python-2.7-optional: + python-3.6-optional: docker: - - image: circleci/python:2.7-stretch-node-browsers - environment: - PLOTLY_TOX_PYTHON_27: python2.7 + - image: circleci/python:3.6-stretch-node-browsers steps: - checkout - run: - name: Install tox - command: "sudo pip install tox" + name: Install dependencies + command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_36_optional.txt" - run: - name: Test with tox - command: "cd packages/python/plotly; tox -e py27-optional" + name: Test core + command: "cd packages/python/plotly; pytest plotly/tests/test_core" no_output_timeout: 20m - - python-3.5-optional: - docker: - - image: circleci/python:3.5-stretch-node-browsers - environment: - PLOTLY_TOX_PYTHON_35: python3.5 - - steps: - - checkout - run: - name: Install tox - command: "sudo pip install tox" + name: Test optional + command: "cd packages/python/plotly; pytest plotly/tests/test_optional" + no_output_timeout: 40m - run: - name: Test with tox - command: "cd packages/python/plotly; tox -e py35-optional" + name: Test utils + command: "cd packages/python/plotly; pytest _plotly_utils/tests/" no_output_timeout: 20m - - python-3.6-optional: - docker: - - image: circleci/python:3.6-stretch-node-browsers - environment: - PLOTLY_TOX_PYTHON_36: python3.6 - - steps: - - checkout - run: - name: Install tox - command: "sudo pip install tox" - - run: - name: Test with tox - command: "cd packages/python/plotly; tox -e py36-optional" + name: Test io + command: "cd packages/python/plotly; pytest plotly/tests/test_io" no_output_timeout: 20m python-3.7-optional: docker: - image: circleci/python:3.7-stretch-node-browsers - environment: - PLOTLY_TOX_PYTHON_37: python3.7 steps: - checkout - run: - name: Install tox - command: "sudo pip install tox" + name: Install dependencies + command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_37_optional.txt" - run: - name: Test with tox - command: "cd packages/python/plotly; tox -e py37-optional" + name: Test core + command: "cd packages/python/plotly; pytest plotly/tests/test_core" no_output_timeout: 20m - - # Plot.ly - python-2.7-plot_ly: - docker: - - image: circleci/python:2.7-stretch-node-browsers - environment: - PLOTLY_TOX_PYTHON_27: python2.7 - - steps: - - checkout - run: - name: Install tox - command: "sudo pip install tox" + name: Test optional + command: "cd packages/python/plotly; pytest plotly/tests/test_optional" + no_output_timeout: 40m + - run: + name: Test utils + command: "cd packages/python/plotly; pytest _plotly_utils/tests/" + no_output_timeout: 20m - run: - name: Test with tox - command: "cd packages/python/chart-studio; tox -e py27-plot_ly" + name: Test io + command: "cd packages/python/plotly; pytest plotly/tests/test_io" no_output_timeout: 20m + - run: + name: Test dependencdies not imported + command: "cd packages/python/plotly; pytest -x test_init/test_dependencies_not_imported.py" + - run: + name: Test lazy imports + command: "cd packages/python/plotly; pytest -x test_init/test_lazy_imports.py" - python-3.5-plot_ly: + python-3.8-optional: docker: - - image: circleci/python:3.5-stretch-node-browsers - environment: - PLOTLY_TOX_PYTHON_35: python3.5 + - image: circleci/python:3.8-buster-node-browsers steps: - checkout - run: - name: Install tox - command: "sudo pip install tox" + name: Install dependencies + command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_38_optional.txt" - run: - name: Test with tox - command: "cd packages/python/chart-studio; tox -e py35-plot_ly" + name: Test core + command: "cd packages/python/plotly; pytest plotly/tests/test_core" no_output_timeout: 20m - - python-3.7-plot_ly: - docker: - - image: circleci/python:3.7-stretch-node-browsers - environment: - PLOTLY_TOX_PYTHON_37: python3.7 - - steps: - - checkout - run: - name: Install tox - command: "sudo pip install tox" + name: Test optional + command: "cd packages/python/plotly; pytest plotly/tests/test_optional" + no_output_timeout: 40m + - run: + name: Test utils + command: "cd packages/python/plotly; pytest _plotly_utils/tests/" + no_output_timeout: 20m - run: - name: Test with tox - command: "cd packages/python/chart-studio; tox -e py37-plot_ly" + name: Test io + command: "cd packages/python/plotly; pytest plotly/tests/test_io" no_output_timeout: 20m - python-2-7-orca: + python-3.9-optional: docker: - - image: circleci/node:10.9-stretch-browsers - environment: - PYTHON_VERSION: 2.7 + - image: circleci/python:3.9-buster-node-browsers steps: - checkout - - restore_cache: - keys: - - conda-27-v1-{{ checksum ".circleci/create_conda_optional_env.sh" }} - run: - name: Create conda environment - command: .circleci/create_conda_optional_env.sh - - - save_cache: - key: conda-27-v1-{{ checksum ".circleci/create_conda_optional_env.sh" }} - paths: - - /home/circleci/miniconda/ + name: Install dependencies + command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_39_optional.txt" - run: - name: Run Tests - command: | - . /home/circleci/miniconda/etc/profile.d/conda.sh - conda activate circle_optional - pytest --disable-warnings packages/python/plotly/plotly/tests/test_core - pytest packages/python/plotly/plotly/tests/test_orca - - - store_artifacts: - path: plotly/tests/test_orca/images/linux/failed + name: Test core + command: "cd packages/python/plotly; pytest plotly/tests/test_core" + no_output_timeout: 20m + - run: + name: Test optional + command: "cd packages/python/plotly; pytest plotly/tests/test_optional" + no_output_timeout: 40m + - run: + name: Test utils + command: "cd packages/python/plotly; pytest _plotly_utils/tests/" + no_output_timeout: 20m + - run: + name: Test io + command: "cd packages/python/plotly; pytest plotly/tests/test_io" + no_output_timeout: 20m - python-3-5-orca: + # Chart studio + python-3.7-chart_studio: docker: - - image: circleci/node:10.9-stretch-browsers - environment: - PYTHON_VERSION: 3.5 + - image: circleci/python:3.7-stretch-node-browsers steps: - checkout - - restore_cache: - keys: - - conda-35-v1-{{ checksum ".circleci/create_conda_optional_env.sh" }} - run: - name: Create conda environment - command: .circleci/create_conda_optional_env.sh - - - save_cache: - key: conda-35-v1-{{ checksum ".circleci/create_conda_optional_env.sh" }} - paths: - - /home/circleci/miniconda/ + name: Install dependencies + command: "cd packages/python; sudo pip install -r ./chart-studio/test_requirements/requirements_37.txt" - run: - name: Run Tests - command: | - . /home/circleci/miniconda/etc/profile.d/conda.sh - conda activate circle_optional - pytest --disable-warnings packages/python/plotly/plotly/tests/test_core - pytest packages/python/plotly/plotly/tests/test_orca - - - store_artifacts: - path: plotly/tests/test_orca/images/linux/failed + name: Tests + command: "cd packages/python/chart-studio; pytest -x chart_studio/tests/" + no_output_timeout: 20m python-3-7-orca: docker: @@ -295,7 +236,7 @@ jobs: - checkout - restore_cache: keys: - - conda-37-v1-{{ checksum ".circleci/create_conda_optional_env.sh" }} + - conda-37-v1-{{ checksum ".circleci/create_conda_optional_env.sh" }}-{{ checksum "packages/python/plotly/test_requirements/requirements_37_optional.txt" }} - run: name: Create conda environment command: .circleci/create_conda_optional_env.sh @@ -320,14 +261,13 @@ jobs: docker: - image: circleci/python:3.7-stretch-node-browsers environment: - PLOTLY_TOX_PYTHON_37: python3.7 LANG: en_US.UTF-8 steps: - checkout - run: - name: Install tox - command: "sudo pip install tenacity tox black inflect" + name: Install dependencies + command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_37_core.txt black inflect" - run: name: Update jupyterlab-plotly version command: "cd packages/python/plotly; python setup.py updateplotlywidgetversion" @@ -335,11 +275,8 @@ jobs: name: Update plotly.js to dev command: "cd packages/python/plotly; python setup.py updateplotlyjsdev" - run: - name: Test with tox - command: | - cd packages/python/plotly - locale - tox -e py37-core -- -k 'not nodev' + name: Test core + command: "cd packages/python/plotly; locale; pytest -k 'not nodev' plotly/tests/test_core" no_output_timeout: 20m - run: name: Commit @@ -517,16 +454,15 @@ workflows: build: jobs: - - python-2.7-core - - python-3.5-core - python-3.6-core - python-3.7-core + - python-3.8-core + - python-3.9-core - python-3.7-percy - - python-2.7-optional - - python-3.5-optional - python-3.6-optional - python-3.7-optional - - python-3.7-plot_ly - - python-2-7-orca + - python-3.8-optional + - python-3.9-optional + - python-3.7-chart_studio - python-3-7-orca - build-doc diff --git a/packages/python/chart-studio/test_requirements/requirements_37.txt b/packages/python/chart-studio/test_requirements/requirements_37.txt new file mode 100644 index 0000000000..b30b19ecb9 --- /dev/null +++ b/packages/python/chart-studio/test_requirements/requirements_37.txt @@ -0,0 +1,12 @@ +decorator==4.0.9 +nose==1.3.7 +requests==2.12.4 +six==1.10.0 +pytz==2016.10 +retrying==1.3.3 +pytest==3.5.1 +pandas==0.23.2 +numpy==1.14.3 +ipywidgets==7.2.0 +matplotlib==2.2.3 +--editable=./plotly diff --git a/packages/python/chart-studio/tox.ini b/packages/python/chart-studio/tox.ini deleted file mode 100644 index faddb36305..0000000000 --- a/packages/python/chart-studio/tox.ini +++ /dev/null @@ -1,86 +0,0 @@ -; Tox is a testing tool that manages virtualenvs for testing multiple Python -; environments in a consistent/controlled way. - -; SETTING ENVIRONMENT VARIABLES AND TOX TESTING VARIABLES -; -; You can limit tox testing to certain environments via the `-e` (envlist) -; command line option: -; tox -e py27-core,py34-core -; OR, you can just set the `TOXENV` environment variable, which is handy: -; TOXENV=py27-core,py34-core -; -; Integrating with the virtualenvs in Circle CI is a bit of a pain. For -; whatever reason the "executable" `python35` (at the time of writing) cannot -; be activated directly. Instead the circle.yml file specifies the actual -; binary directly. Because of this, you too have to set the following env -; variables: -; PLOTLY_TOX_PYTHON_27=python2.7 -; PLOTLY_TOX_PYTHON_34=python3.4 -; ... -; These will be specific to your machine and may not look like the ones above. -; If you're not testing with all the python versions (see TOXENV above), -; there's no need to install and map other versions. - -; PASSING ADDITONAL ARGUMENTS TO TEST COMMANDS -; The {posargs} is tox-specific and passes in any command line args after `--`. -; For example, given the testing command in *this* file: -; pytest {posargs} -x plotly/tests/test_core -; -; The following command: -; tox -- -k 'not nodev' -; -; Tells tox to call: -; pytest -k 'not nodev' -x plotly/tests/test_core -; - -[tox] -; The py{A,B,C}-{X,Y} generates a matrix of envs: -; pyA-X,pyA-Y,pyB-X,pyB-Y,pyC-X,pyC-Y -envlist = py{27,34,37}-plot_ly - -; Note that envs can be targeted by deps using the : dep syntax. -; Only one dep is allowed per line as of the time of writing. The -; can be a `-` (hyphen) concatenated string of the environments to target -; with the given dep. - -; These commands are general and will be run for *all* environments. -[testenv] -passenv=PLOTLY_TOX_* -whitelist_externals= - mkdir -deps= - coverage==4.3.1 - decorator==4.0.9 - mock==2.0.0 - nose==1.3.7 - requests==2.12.4 - six==1.10.0 - pytz==2016.10 - retrying==1.3.3 - pytest==3.5.1 - backports.tempfile==1.0 - pandas==0.23.2 - numpy==1.14.3 - ipywidgets==7.2.0 - matplotlib==2.2.3 - --editable=file:///{toxinidir}/../plotly - - -; Plot.ly environments -[testenv:py27-plot_ly] -basepython={env:PLOTLY_TOX_PYTHON_27:} -commands= - python --version - pytest {posargs} -x chart_studio/tests/ - -[testenv:py35-plot_ly] -basepython={env:PLOTLY_TOX_PYTHON_35:} -commands= - python --version - pytest {posargs} -x chart_studio/tests/ - -[testenv:py37-plot_ly] -basepython={env:PLOTLY_TOX_PYTHON_37:} -commands= - python --version - pytest {posargs} -x chart_studio/tests/ diff --git a/packages/python/plotly/_plotly_utils/optional_imports.py b/packages/python/plotly/_plotly_utils/optional_imports.py index e76eab95f1..33bd2d05f5 100644 --- a/packages/python/plotly/_plotly_utils/optional_imports.py +++ b/packages/python/plotly/_plotly_utils/optional_imports.py @@ -32,5 +32,5 @@ def get_module(name, should_load=True): _not_importable.add(name) except Exception as e: _not_importable.add(name) - msg = "Error importing optional module {}".format(name) + msg = f"Error importing optional module {name}" logger.exception(msg) diff --git a/packages/python/plotly/plotly/tests/test_core/test_figure_messages/test_add_traces.py b/packages/python/plotly/plotly/tests/test_core/test_figure_messages/test_add_traces.py index 63f379bbcd..77054fcc9d 100644 --- a/packages/python/plotly/plotly/tests/test_core/test_figure_messages/test_add_traces.py +++ b/packages/python/plotly/plotly/tests/test_core/test_figure_messages/test_add_traces.py @@ -66,36 +66,6 @@ def test_add_traces(self): ) -class TestAddTracesRowsColsDataTypes(TestCase): - def test_add_traces_with_iterable(self): - import plotly.express as px - - df = px.data.tips() - fig = px.scatter(df, x="total_bill", y="tip", color="day") - from plotly.subplots import make_subplots - - fig2 = make_subplots(1, 2) - fig2.add_traces(fig.data, rows=[1,] * len(fig.data), cols=[1,] * len(fig.data)) - - expected_data_length = 4 - - self.assertEqual(expected_data_length, len(fig2.data)) - - def test_add_traces_with_integers(self): - import plotly.express as px - - df = px.data.tips() - fig = px.scatter(df, x="total_bill", y="tip", color="day") - from plotly.subplots import make_subplots - - fig2 = make_subplots(1, 2) - fig2.add_traces(fig.data, rows=1, cols=2) - - expected_data_length = 4 - - self.assertEqual(expected_data_length, len(fig2.data)) - - def test_add_trace_exclude_empty_subplots(): # Add traces fig = make_subplots(2, 2) diff --git a/packages/python/plotly/plotly/tests/test_core/test_utils/test_utils.py b/packages/python/plotly/plotly/tests/test_core/test_utils/test_utils.py index 6122f27e7e..0aff7eb281 100644 --- a/packages/python/plotly/plotly/tests/test_core/test_utils/test_utils.py +++ b/packages/python/plotly/plotly/tests/test_core/test_utils/test_utils.py @@ -2,12 +2,8 @@ from unittest import TestCase -import json as _json - from plotly.utils import PlotlyJSONEncoder, get_by_path, node_generator -from time import time -import numpy as np -import plotly.graph_objects as go +import json as _json class TestJSONEncoder(TestCase): @@ -21,38 +17,6 @@ def test_invalid_encode_exception(self): with self.assertRaises(TypeError): _json.dumps({"a": {1}}, cls=PlotlyJSONEncoder) - def test_fast_track_finite_arrays(self): - # if NaN or Infinity is found in the json dump - # of a figure, it is decoded and re-encoded to replace these values - # with null. This test checks that NaN and Infinity values are - # indeed converted to null, and that the encoding of figures - # without inf or nan is faster (because we can avoid decoding - # and reencoding). - z = np.random.randn(100, 100) - x = np.arange(100.0) - fig_1 = go.Figure(go.Heatmap(z=z, x=x)) - t1 = time() - json_str_1 = _json.dumps(fig_1, cls=PlotlyJSONEncoder) - t2 = time() - x[0] = np.nan - x[1] = np.inf - fig_2 = go.Figure(go.Heatmap(z=z, x=x)) - t3 = time() - json_str_2 = _json.dumps(fig_2, cls=PlotlyJSONEncoder) - t4 = time() - assert t2 - t1 < t4 - t3 - assert "null" in json_str_2 - assert "NaN" not in json_str_2 - assert "Infinity" not in json_str_2 - x = np.arange(100.0) - fig_3 = go.Figure(go.Heatmap(z=z, x=x)) - fig_3.update_layout(title_text="Infinity") - t5 = time() - json_str_3 = _json.dumps(fig_3, cls=PlotlyJSONEncoder) - t6 = time() - assert t2 - t1 < t6 - t5 - assert "Infinity" in json_str_3 - class TestGetByPath(TestCase): def test_get_by_path(self): @@ -86,46 +50,3 @@ def test_node_generator(self): ] for i, item in enumerate(node_generator(node0)): self.assertEqual(item, expected_node_path_tuples[i]) - - -class TestNumpyIntegerBaseType(TestCase): - def test_numpy_integer_import(self): - # should generate a figure with subplots of array and not throw a ValueError - import numpy as np - import plotly.graph_objects as go - from plotly.subplots import make_subplots - - indices_rows = np.array([1], dtype=np.int) - indices_cols = np.array([1], dtype=np.int) - fig = make_subplots(rows=1, cols=1) - fig.add_trace(go.Scatter(y=[1]), row=indices_rows[0], col=indices_cols[0]) - - data_path = ("data", 0, "y") - value = get_by_path(fig, data_path) - expected_value = (1,) - self.assertEqual(value, expected_value) - - def test_get_numpy_int_type(self): - import numpy as np - from _plotly_utils.utils import _get_int_type - - int_type_tuple = _get_int_type() - expected_tuple = (int, np.integer) - - self.assertEqual(int_type_tuple, expected_tuple) - - -class TestNoNumpyIntegerBaseType(TestCase): - def test_no_numpy_int_type(self): - import sys - from _plotly_utils.utils import _get_int_type - from _plotly_utils.optional_imports import get_module - - np = get_module("numpy", should_load=False) - if np: - sys.modules.pop("numpy") - - int_type_tuple = _get_int_type() - expected_tuple = (int,) - - self.assertEqual(int_type_tuple, expected_tuple) diff --git a/packages/python/plotly/plotly/tests/test_core/test_px/__init__.py b/packages/python/plotly/plotly/tests/test_optional/test_autoshapes/__init__.py similarity index 100% rename from packages/python/plotly/plotly/tests/test_core/test_px/__init__.py rename to packages/python/plotly/plotly/tests/test_optional/test_autoshapes/__init__.py diff --git a/packages/python/plotly/plotly/tests/test_core/test_autoshapes/common.py b/packages/python/plotly/plotly/tests/test_optional/test_autoshapes/common.py similarity index 100% rename from packages/python/plotly/plotly/tests/test_core/test_autoshapes/common.py rename to packages/python/plotly/plotly/tests/test_optional/test_autoshapes/common.py diff --git a/packages/python/plotly/plotly/tests/test_core/test_autoshapes/test_annotated_shapes.py b/packages/python/plotly/plotly/tests/test_optional/test_autoshapes/test_annotated_shapes.py similarity index 99% rename from packages/python/plotly/plotly/tests/test_core/test_autoshapes/test_annotated_shapes.py rename to packages/python/plotly/plotly/tests/test_optional/test_autoshapes/test_annotated_shapes.py index 9c29282c94..8d7c380699 100644 --- a/packages/python/plotly/plotly/tests/test_core/test_autoshapes/test_annotated_shapes.py +++ b/packages/python/plotly/plotly/tests/test_optional/test_autoshapes/test_annotated_shapes.py @@ -28,7 +28,7 @@ import sys import pytest import json -from common import _cmp_partial_dict, _check_figure_layout_objects +from .common import _cmp_partial_dict, _check_figure_layout_objects @pytest.fixture diff --git a/packages/python/plotly/plotly/tests/test_core/test_autoshapes/test_annotated_shapes_annotations.json b/packages/python/plotly/plotly/tests/test_optional/test_autoshapes/test_annotated_shapes_annotations.json similarity index 100% rename from packages/python/plotly/plotly/tests/test_core/test_autoshapes/test_annotated_shapes_annotations.json rename to packages/python/plotly/plotly/tests/test_optional/test_autoshapes/test_annotated_shapes_annotations.json diff --git a/packages/python/plotly/plotly/tests/test_core/test_autoshapes/test_axis_span_shapes.py b/packages/python/plotly/plotly/tests/test_optional/test_autoshapes/test_axis_span_shapes.py similarity index 99% rename from packages/python/plotly/plotly/tests/test_core/test_autoshapes/test_axis_span_shapes.py rename to packages/python/plotly/plotly/tests/test_optional/test_autoshapes/test_axis_span_shapes.py index 4fef85fe33..12d36cf3c0 100644 --- a/packages/python/plotly/plotly/tests/test_core/test_autoshapes/test_axis_span_shapes.py +++ b/packages/python/plotly/plotly/tests/test_optional/test_autoshapes/test_axis_span_shapes.py @@ -3,7 +3,7 @@ from plotly.basedatatypes import _indexing_combinations import plotly.express as px import pytest -from common import _cmp_partial_dict, _check_figure_layout_objects +from .common import _cmp_partial_dict, _check_figure_layout_objects @pytest.fixture diff --git a/packages/python/plotly/plotly/tests/test_optional/test_offline/test_offline.py b/packages/python/plotly/plotly/tests/test_optional/test_offline/test_offline.py index d36934d1ea..a50fa4e767 100644 --- a/packages/python/plotly/plotly/tests/test_optional/test_offline/test_offline.py +++ b/packages/python/plotly/plotly/tests/test_optional/test_offline/test_offline.py @@ -40,6 +40,7 @@ def test_iplot_works_after_you_call_init_notebook_mode(self): @pytest.mark.matplotlib def test_iplot_mpl_works(self): + plotly.offline.init_notebook_mode() # Generate matplotlib plot for tests fig = plt.figure() diff --git a/packages/python/plotly/plotly/tests/test_optional/test_px/__init__.py b/packages/python/plotly/plotly/tests/test_optional/test_px/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/python/plotly/plotly/tests/test_core/test_px/test_colors.py b/packages/python/plotly/plotly/tests/test_optional/test_px/test_colors.py similarity index 100% rename from packages/python/plotly/plotly/tests/test_core/test_px/test_colors.py rename to packages/python/plotly/plotly/tests/test_optional/test_px/test_colors.py diff --git a/packages/python/plotly/plotly/tests/test_core/test_px/test_facets.py b/packages/python/plotly/plotly/tests/test_optional/test_px/test_facets.py similarity index 100% rename from packages/python/plotly/plotly/tests/test_core/test_px/test_facets.py rename to packages/python/plotly/plotly/tests/test_optional/test_px/test_facets.py diff --git a/packages/python/plotly/plotly/tests/test_core/test_px/test_imshow.py b/packages/python/plotly/plotly/tests/test_optional/test_px/test_imshow.py similarity index 100% rename from packages/python/plotly/plotly/tests/test_core/test_px/test_imshow.py rename to packages/python/plotly/plotly/tests/test_optional/test_px/test_imshow.py diff --git a/packages/python/plotly/plotly/tests/test_core/test_px/test_marginals.py b/packages/python/plotly/plotly/tests/test_optional/test_px/test_marginals.py similarity index 100% rename from packages/python/plotly/plotly/tests/test_core/test_px/test_marginals.py rename to packages/python/plotly/plotly/tests/test_optional/test_px/test_marginals.py diff --git a/packages/python/plotly/plotly/tests/test_core/test_px/test_pandas_backend.py b/packages/python/plotly/plotly/tests/test_optional/test_px/test_pandas_backend.py similarity index 100% rename from packages/python/plotly/plotly/tests/test_core/test_px/test_pandas_backend.py rename to packages/python/plotly/plotly/tests/test_optional/test_px/test_pandas_backend.py diff --git a/packages/python/plotly/plotly/tests/test_core/test_px/test_px.py b/packages/python/plotly/plotly/tests/test_optional/test_px/test_px.py similarity index 100% rename from packages/python/plotly/plotly/tests/test_core/test_px/test_px.py rename to packages/python/plotly/plotly/tests/test_optional/test_px/test_px.py diff --git a/packages/python/plotly/plotly/tests/test_core/test_px/test_px_functions.py b/packages/python/plotly/plotly/tests/test_optional/test_px/test_px_functions.py similarity index 100% rename from packages/python/plotly/plotly/tests/test_core/test_px/test_px_functions.py rename to packages/python/plotly/plotly/tests/test_optional/test_px/test_px_functions.py diff --git a/packages/python/plotly/plotly/tests/test_core/test_px/test_px_hover.py b/packages/python/plotly/plotly/tests/test_optional/test_px/test_px_hover.py similarity index 100% rename from packages/python/plotly/plotly/tests/test_core/test_px/test_px_hover.py rename to packages/python/plotly/plotly/tests/test_optional/test_px/test_px_hover.py diff --git a/packages/python/plotly/plotly/tests/test_core/test_px/test_px_input.py b/packages/python/plotly/plotly/tests/test_optional/test_px/test_px_input.py similarity index 100% rename from packages/python/plotly/plotly/tests/test_core/test_px/test_px_input.py rename to packages/python/plotly/plotly/tests/test_optional/test_px/test_px_input.py diff --git a/packages/python/plotly/plotly/tests/test_core/test_px/test_px_wide.py b/packages/python/plotly/plotly/tests/test_optional/test_px/test_px_wide.py similarity index 100% rename from packages/python/plotly/plotly/tests/test_core/test_px/test_px_wide.py rename to packages/python/plotly/plotly/tests/test_optional/test_px/test_px_wide.py diff --git a/packages/python/plotly/plotly/tests/test_core/test_px/test_trendline.py b/packages/python/plotly/plotly/tests/test_optional/test_px/test_trendline.py similarity index 100% rename from packages/python/plotly/plotly/tests/test_core/test_px/test_trendline.py rename to packages/python/plotly/plotly/tests/test_optional/test_px/test_trendline.py diff --git a/packages/python/plotly/plotly/tests/test_optional/test_subplots/test_make_subplots.py b/packages/python/plotly/plotly/tests/test_optional/test_subplots/test_make_subplots.py index 0edcacebd1..09555497ac 100644 --- a/packages/python/plotly/plotly/tests/test_optional/test_subplots/test_make_subplots.py +++ b/packages/python/plotly/plotly/tests/test_optional/test_subplots/test_make_subplots.py @@ -16,3 +16,33 @@ def test_subplot_titles_numpy_array(self): subplot_titles=np.array(["", "Inset"]), ) self.assertEqual(fig, expected) + + +class TestAddTracesRowsColsDataTypes(TestCase): + def test_add_traces_with_iterable(self): + import plotly.express as px + + df = px.data.tips() + fig = px.scatter(df, x="total_bill", y="tip", color="day") + from plotly.subplots import make_subplots + + fig2 = make_subplots(1, 2) + fig2.add_traces(fig.data, rows=[1,] * len(fig.data), cols=[1,] * len(fig.data)) + + expected_data_length = 4 + + self.assertEqual(expected_data_length, len(fig2.data)) + + def test_add_traces_with_integers(self): + import plotly.express as px + + df = px.data.tips() + fig = px.scatter(df, x="total_bill", y="tip", color="day") + from plotly.subplots import make_subplots + + fig2 = make_subplots(1, 2) + fig2.add_traces(fig.data, rows=1, cols=2) + + expected_data_length = 4 + + self.assertEqual(expected_data_length, len(fig2.data)) diff --git a/packages/python/plotly/plotly/tests/test_optional/test_utils/test_utils.py b/packages/python/plotly/plotly/tests/test_optional/test_utils/test_utils.py index 79ce6a7f32..3145c0cb13 100644 --- a/packages/python/plotly/plotly/tests/test_optional/test_utils/test_utils.py +++ b/packages/python/plotly/plotly/tests/test_optional/test_utils/test_utils.py @@ -9,6 +9,7 @@ import decimal from datetime import datetime as dt from unittest import TestCase +from time import time import pytest import numpy as np @@ -20,7 +21,9 @@ import base64 from plotly import optional_imports, utils +import plotly.graph_objects as go from plotly.graph_objs import Scatter, Scatter3d, Figure, Data +from plotly.utils import get_by_path from PIL import Image @@ -358,11 +361,101 @@ def test_pil_image_encoding(self): j1 = _json.dumps({"source": img}, cls=utils.PlotlyJSONEncoder) assert j1 == '{"source": "%s"}' % expected_uri + def test_nan_to_null(self): + array = [1, float("NaN"), float("Inf"), float("-Inf"), "platypus"] + result = _json.dumps(array, cls=utils.PlotlyJSONEncoder) + expected_result = '[1, null, null, null, "platypus"]' + self.assertEqual(result, expected_result) + + def test_invalid_encode_exception(self): + with self.assertRaises(TypeError): + _json.dumps({"a": {1}}, cls=utils.PlotlyJSONEncoder) + + def test_fast_track_finite_arrays(self): + # if NaN or Infinity is found in the json dump + # of a figure, it is decoded and re-encoded to replace these values + # with null. This test checks that NaN and Infinity values are + # indeed converted to null, and that the encoding of figures + # without inf or nan is faster (because we can avoid decoding + # and reencoding). + z = np.random.randn(100, 100) + x = np.arange(100.0) + fig_1 = go.Figure(go.Heatmap(z=z, x=x)) + t1 = time() + json_str_1 = _json.dumps(fig_1, cls=utils.PlotlyJSONEncoder) + t2 = time() + x[0] = np.nan + x[1] = np.inf + fig_2 = go.Figure(go.Heatmap(z=z, x=x)) + t3 = time() + json_str_2 = _json.dumps(fig_2, cls=utils.PlotlyJSONEncoder) + t4 = time() + assert t2 - t1 < t4 - t3 + assert "null" in json_str_2 + assert "NaN" not in json_str_2 + assert "Infinity" not in json_str_2 + x = np.arange(100.0) + fig_3 = go.Figure(go.Heatmap(z=z, x=x)) + fig_3.update_layout(title_text="Infinity") + t5 = time() + json_str_3 = _json.dumps(fig_3, cls=utils.PlotlyJSONEncoder) + t6 = time() + assert t2 - t1 < t6 - t5 + assert "Infinity" in json_str_3 + + +class TestNumpyIntegerBaseType(TestCase): + def test_numpy_integer_import(self): + # should generate a figure with subplots of array and not throw a ValueError + import numpy as np + import plotly.graph_objects as go + from plotly.subplots import make_subplots + + indices_rows = np.array([1], dtype=np.int) + indices_cols = np.array([1], dtype=np.int) + fig = make_subplots(rows=1, cols=1) + fig.add_trace(go.Scatter(y=[1]), row=indices_rows[0], col=indices_cols[0]) + + data_path = ("data", 0, "y") + value = get_by_path(fig, data_path) + expected_value = (1,) + self.assertEqual(value, expected_value) + + def test_get_numpy_int_type(self): + import numpy as np + from _plotly_utils.utils import _get_int_type + + int_type_tuple = _get_int_type() + expected_tuple = (int, np.integer) + + self.assertEqual(int_type_tuple, expected_tuple) + + +class TestNoNumpyIntegerBaseType(TestCase): + def test_no_numpy_int_type(self): + import sys + from _plotly_utils.utils import _get_int_type + from _plotly_utils.optional_imports import get_module + + np = get_module("numpy", should_load=False) + if np: + sys.modules.pop("numpy") + + int_type_tuple = _get_int_type() + expected_tuple = (int,) + + self.assertEqual(int_type_tuple, expected_tuple) + if matplotlylib: @pytest.mark.matplotlib def test_masked_constants_example(): + try: + pd.options.plotting.backend = "matplotlib" + except Exception: + pass + # example from: https://gist.github.com/tschaume/d123d56bf586276adb98 data = { "esN": [0, 1, 2, 3], diff --git a/packages/python/plotly/setup.py b/packages/python/plotly/setup.py index 172eb25d8d..093010f5df 100644 --- a/packages/python/plotly/setup.py +++ b/packages/python/plotly/setup.py @@ -457,16 +457,13 @@ def run(self): long_description_content_type="text/markdown", classifiers=[ "Development Status :: 5 - Production/Stable", - "Programming Language :: Python :: 2", - "Programming Language :: Python :: 2.7", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.3", - "Programming Language :: Python :: 3.4", - "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", "Topic :: Scientific/Engineering :: Visualization", ], + python_requires=">=3.6", license="MIT", packages=[ "plotly", diff --git a/packages/python/plotly/test_requirements/requirements_36_core.txt b/packages/python/plotly/test_requirements/requirements_36_core.txt new file mode 100644 index 0000000000..6265e5b540 --- /dev/null +++ b/packages/python/plotly/test_requirements/requirements_36_core.txt @@ -0,0 +1,4 @@ +requests==2.12.4 +six==1.10.0 +tenacity==6.2.0 +pytest==3.5.1 diff --git a/packages/python/plotly/test_requirements/requirements_36_optional.txt b/packages/python/plotly/test_requirements/requirements_36_optional.txt new file mode 100644 index 0000000000..f86591ca21 --- /dev/null +++ b/packages/python/plotly/test_requirements/requirements_36_optional.txt @@ -0,0 +1,24 @@ +requests==2.12.4 +six==1.10.0 +tenacity==6.2.0 +pandas==0.24.2 +numpy==1.19.5 +xarray==0.10.9 +statsmodels==0.10.2 +pillow==5.2.0 +pytest==3.5.1 +pytz==2016.10 + +--editable=./plotly-geo +ipython[all]==5.1.0 +ipywidgets==7.2.0 +ipykernel==4.8.2 +jupyter==1.0.0 +scipy==1.2.3 +shapely==1.7.0 +geopandas==0.3.0 +pyshp==1.2.10 +matplotlib==2.2.3 +scikit-image==0.14.4 +psutil==5.7.0 +kaleido diff --git a/packages/python/plotly/test_requirements/requirements_37_core.txt b/packages/python/plotly/test_requirements/requirements_37_core.txt new file mode 100644 index 0000000000..6265e5b540 --- /dev/null +++ b/packages/python/plotly/test_requirements/requirements_37_core.txt @@ -0,0 +1,4 @@ +requests==2.12.4 +six==1.10.0 +tenacity==6.2.0 +pytest==3.5.1 diff --git a/packages/python/plotly/test_requirements/requirements_37_optional.txt b/packages/python/plotly/test_requirements/requirements_37_optional.txt new file mode 100644 index 0000000000..f86591ca21 --- /dev/null +++ b/packages/python/plotly/test_requirements/requirements_37_optional.txt @@ -0,0 +1,24 @@ +requests==2.12.4 +six==1.10.0 +tenacity==6.2.0 +pandas==0.24.2 +numpy==1.19.5 +xarray==0.10.9 +statsmodels==0.10.2 +pillow==5.2.0 +pytest==3.5.1 +pytz==2016.10 + +--editable=./plotly-geo +ipython[all]==5.1.0 +ipywidgets==7.2.0 +ipykernel==4.8.2 +jupyter==1.0.0 +scipy==1.2.3 +shapely==1.7.0 +geopandas==0.3.0 +pyshp==1.2.10 +matplotlib==2.2.3 +scikit-image==0.14.4 +psutil==5.7.0 +kaleido diff --git a/packages/python/plotly/test_requirements/requirements_38_core.txt b/packages/python/plotly/test_requirements/requirements_38_core.txt new file mode 100644 index 0000000000..7f8c791a85 --- /dev/null +++ b/packages/python/plotly/test_requirements/requirements_38_core.txt @@ -0,0 +1,4 @@ +requests==2.25.1 +six==1.15.0 +tenacity==6.2.0 +pytest==6.2.3 diff --git a/packages/python/plotly/test_requirements/requirements_38_optional.txt b/packages/python/plotly/test_requirements/requirements_38_optional.txt new file mode 100644 index 0000000000..091c415b25 --- /dev/null +++ b/packages/python/plotly/test_requirements/requirements_38_optional.txt @@ -0,0 +1,24 @@ +requests==2.25.1 +six==1.15.0 +tenacity==6.2.0 +pandas==1.2.4 +numpy==1.20.2 +xarray==0.17.0 +statsmodels +Pillow==8.2.0 +pytest==6.2.3 +pytz==2021.1 + +--editable=./plotly-geo +ipython[all]==7.22.0 +ipywidgets==7.6.3 +ipykernel==5.5.3 +jupyter==1.0.0 +scipy==1.6.2 +Shapely==1.7.1 +geopandas==0.9.0 +pyshp==2.1.3 +matplotlib==2.2.3 +scikit-image==0.18.1 +psutil==5.7.0 +kaleido diff --git a/packages/python/plotly/test_requirements/requirements_39_core.txt b/packages/python/plotly/test_requirements/requirements_39_core.txt new file mode 100644 index 0000000000..7f8c791a85 --- /dev/null +++ b/packages/python/plotly/test_requirements/requirements_39_core.txt @@ -0,0 +1,4 @@ +requests==2.25.1 +six==1.15.0 +tenacity==6.2.0 +pytest==6.2.3 diff --git a/packages/python/plotly/test_requirements/requirements_39_optional.txt b/packages/python/plotly/test_requirements/requirements_39_optional.txt new file mode 100644 index 0000000000..091c415b25 --- /dev/null +++ b/packages/python/plotly/test_requirements/requirements_39_optional.txt @@ -0,0 +1,24 @@ +requests==2.25.1 +six==1.15.0 +tenacity==6.2.0 +pandas==1.2.4 +numpy==1.20.2 +xarray==0.17.0 +statsmodels +Pillow==8.2.0 +pytest==6.2.3 +pytz==2021.1 + +--editable=./plotly-geo +ipython[all]==7.22.0 +ipywidgets==7.6.3 +ipykernel==5.5.3 +jupyter==1.0.0 +scipy==1.6.2 +Shapely==1.7.1 +geopandas==0.9.0 +pyshp==2.1.3 +matplotlib==2.2.3 +scikit-image==0.18.1 +psutil==5.7.0 +kaleido diff --git a/packages/python/plotly/tox.ini b/packages/python/plotly/tox.ini deleted file mode 100644 index d4e6254866..0000000000 --- a/packages/python/plotly/tox.ini +++ /dev/null @@ -1,151 +0,0 @@ -; Tox is a testing tool that manages virtualenvs for testing multiple Python -; environments in a consistent/controlled way. - -; SETTING ENVIRONMENT VARIABLES AND TOX TESTING VARIABLES -; -; You can limit tox testing to certain environments via the `-e` (envlist) -; command line option: -; tox -e py27-core,py34-core -; OR, you can just set the `TOXENV` environment variable, which is handy: -; TOXENV=py27-core,py34-core -; -; Integrating with the virtualenvs in Circle CI is a bit of a pain. For -; whatever reason the "executable" `python35` (at the time of writing) cannot -; be activated directly. Instead the circle.yml file specifies the actual -; binary directly. Because of this, you too have to set the following env -; variables: -; PLOTLY_TOX_PYTHON_27=python2.7 -; PLOTLY_TOX_PYTHON_34=python3.4 -; ... -; These will be specific to your machine and may not look like the ones above. -; If you're not testing with all the python versions (see TOXENV above), -; there's no need to install and map other versions. - -; PASSING ADDITONAL ARGUMENTS TO TEST COMMANDS -; The {posargs} is tox-specific and passes in any command line args after `--`. -; For example, given the testing command in *this* file: -; pytest {posargs} plotly/tests/test_core -; -; The following command: -; tox -- -k 'not nodev' -; -; Tells tox to call: -; pytest -k 'not nodev' plotly/tests/test_core -; - -[tox] -; The py{A,B,C}-{X,Y} generates a matrix of envs: -; pyA-X,pyA-Y,pyB-X,pyB-Y,pyC-X,pyC-Y -envlist = py{27,34,35,36,37}-{core,optional},py{27,34,37} - -; Note that envs can be targeted by deps using the : dep syntax. -; Only one dep is allowed per line as of the time of writing. The -; can be a `-` (hyphen) concatenated string of the environments to target -; with the given dep. - -; These commands are general and will be run for *all* environments. -[testenv] -passenv=PLOTLY_TOX_* -whitelist_externals= - mkdir -deps= - coverage==4.3.1 - decorator==4.0.9 - mock==2.0.0 - requests==2.12.4 - six==1.10.0 - pytz==2016.10 - tenacity==6.2.0 - pytest==3.5.1 - pandas==0.24.2 - numpy==1.19.5 - xarray==0.10.9 - statsmodels==0.10.2 - pillow==5.2.0 - backports.tempfile==1.0 - optional: --editable=file:///{toxinidir}/../plotly-geo - optional: ipython[all]==5.1.0 - optional: ipywidgets==7.2.0 - optional: ipykernel==4.8.2 - optional: jupyter==1.0.0 - optional: scipy==1.2.3 - optional: shapely==1.7.0 - optional: geopandas==0.3.0 - optional: pyshp==1.2.10 - optional: matplotlib==2.2.3 - optional: scikit-image==0.14.4 - optional: kaleido - -; CORE ENVIRONMENTS -[testenv:py27-core] -basepython={env:PLOTLY_TOX_PYTHON_27:} -commands= - python --version - pytest {posargs} plotly/tests/test_core - -[testenv:py35-core] -basepython={env:PLOTLY_TOX_PYTHON_35:} -commands= - python --version - pytest {posargs} plotly/tests/test_core - -[testenv:py36-core] -basepython={env:PLOTLY_TOX_PYTHON_36:} -commands= - python --version - pytest {posargs} plotly/tests/test_core - -[testenv:py37-core] -basepython={env:PLOTLY_TOX_PYTHON_37:} -commands= - python --version - pytest {posargs} plotly/tests/test_core - pytest {posargs} -x test_init/test_dependencies_not_imported.py - pytest {posargs} -x test_init/test_lazy_imports.py - -; OPTIONAL ENVIRONMENTS -;[testenv:py27-optional] -;basepython={env:PLOTLY_TOX_PYTHON_27:} -;commands= -; python --version -;; Do some coverage reporting. No need to do this for all environments. -; mkdir -p {envbindir}/../../coverage-reports/{envname} -; coverage erase -; coverage run --include="*/plotly/*" --omit="*/tests*" {envbindir}/nosetests {posargs} plotly/tests -; coverage html -d "{envbindir}/../../coverage-reports/{envname}" --title={envname} - -[testenv:py27-optional] -basepython={env:PLOTLY_TOX_PYTHON_27:} -commands= - python --version - pytest {posargs} plotly/tests/test_core - pytest {posargs} plotly/tests/test_optional - pytest _plotly_utils/tests/ - pytest plotly/tests/test_io - -[testenv:py35-optional] -basepython={env:PLOTLY_TOX_PYTHON_35:} -commands= - python --version - pytest {posargs} plotly/tests/test_core - pytest {posargs} plotly/tests/test_optional - pytest _plotly_utils/tests/ - pytest plotly/tests/test_io - -[testenv:py36-optional] -basepython={env:PLOTLY_TOX_PYTHON_36:} -commands= - python --version - pytest {posargs} plotly/tests/test_core - pytest {posargs} plotly/tests/test_optional - pytest _plotly_utils/tests/ - pytest plotly/tests/test_io - -[testenv:py37-optional] -basepython={env:PLOTLY_TOX_PYTHON_37:} -commands= - python --version - pytest {posargs} plotly/tests/test_core - pytest {posargs} plotly/tests/test_optional - pytest _plotly_utils/tests/ - pytest plotly/tests/test_io From 5673b34451086856c92605d417edfb027afb4353 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Fri, 23 Apr 2021 09:02:29 -0400 Subject: [PATCH 71/99] Kaleido v5 updates (#3094) * Display kaleido installation instructions when neither kaleido nor orca are installed * Don't override kaleido's mathjax path if one was autodetected --- packages/python/plotly/plotly/io/_kaleido.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/packages/python/plotly/plotly/io/_kaleido.py b/packages/python/plotly/plotly/io/_kaleido.py index 2e43239a70..e56d095d97 100644 --- a/packages/python/plotly/plotly/io/_kaleido.py +++ b/packages/python/plotly/plotly/io/_kaleido.py @@ -14,7 +14,10 @@ root_dir = os.path.dirname(os.path.abspath(plotly.__file__)) package_dir = os.path.join(root_dir, "package_data") scope.plotlyjs = os.path.join(package_dir, "plotly.min.js") - scope.mathjax = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" + if scope.mathjax is None: + scope.mathjax = ( + "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" + ) except ImportError: PlotlyScope = None scope = None @@ -92,9 +95,19 @@ def to_image( # ------------- if engine == "auto": if scope is not None: + # Default to kaleido if available engine = "kaleido" else: - engine = "orca" + # See if orca is available + from ._orca import validate_executable + + try: + validate_executable() + engine = "orca" + except: + # If orca not configured properly, make sure we display the error + # message advising the installation of kaleido + engine = "kaleido" if engine == "orca": # Fall back to legacy orca image export path From f18576be962283011814756cb41c55f4912bca76 Mon Sep 17 00:00:00 2001 From: Jon Mease Date: Fri, 23 Apr 2021 09:37:17 -0400 Subject: [PATCH 72/99] CircleCI updates: Unify requirements, drop conda, refactor to reduce duplication (#3164) * Install requirements for orca test from same requirements.txt file * Use same circleci image for orca job as optional jobs * remove editable plotly-geo from optional requirements.txt * reduce duplication with circleci commands * use underscores for command names * Update circle to 2.1 * Use optional requirements.txt from percy CI job --- .circleci/config.yml | 340 +- .circleci/create_conda_optional_env.sh | 23 - .circleci/install_miniconda_and_build_.sh | 15 - .../test_orca/images/linux/failed/fig1.eps | 1766 --- .../tests/test_orca/images/linux/fig1.eps | 2348 ++-- .../tests/test_orca/images/linux/latexfig.eps | 4698 ++------ .../tests/test_orca/images/linux/topofig.eps | 9665 +++-------------- .../plotly/tests/test_orca/test_to_image.py | 39 +- .../requirements_36_optional.txt | 2 - .../requirements_37_optional.txt | 2 - .../requirements_38_optional.txt | 2 - .../requirements_39_optional.txt | 2 - 12 files changed, 3879 insertions(+), 15023 deletions(-) delete mode 100755 .circleci/create_conda_optional_env.sh delete mode 100755 .circleci/install_miniconda_and_build_.sh delete mode 100644 packages/python/plotly/plotly/tests/test_orca/images/linux/failed/fig1.eps diff --git a/.circleci/config.yml b/.circleci/config.yml index 34ffbca9d6..82641a2e50 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,4 +1,82 @@ -version: 2 +version: 2.1 + +commands: + test_core: + parameters: + py: + default: "36" + type: string + steps: + - checkout + - run: + name: Install dependencies + command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_<>_core.txt" + - run: + name: Test core + command: "cd packages/python/plotly; pytest plotly/tests/test_core" + no_output_timeout: 20m + + test_optional: + parameters: + py: + default: "36" + type: string + steps: + - checkout + - run: + name: Install dependencies + command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_<>_optional.txt" + - run: + name: Install plotly-geo + command: "cd packages/python/plotly-geo; sudo pip install -e ." + - run: + name: Test core + command: "cd packages/python/plotly; pytest plotly/tests/test_core" + no_output_timeout: 20m + - run: + name: Test optional + command: "cd packages/python/plotly; pytest plotly/tests/test_optional" + no_output_timeout: 40m + - run: + name: Test utils + command: "cd packages/python/plotly; pytest _plotly_utils/tests/" + no_output_timeout: 20m + - run: + name: Test io + command: "cd packages/python/plotly; pytest plotly/tests/test_io" + no_output_timeout: 20m + - run: + name: Test dependencdies not imported + command: "cd packages/python/plotly; pytest -x test_init/test_dependencies_not_imported.py" + - run: + name: Test lazy imports + command: "cd packages/python/plotly; pytest -x test_init/test_lazy_imports.py" + + test_orca: + parameters: + py: + default: "36" + type: string + steps: + - checkout + - run: + name: Install dependencies + command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_<>_optional.txt" + - run: + name: Install plotly-geo + command: "cd packages/python/plotly-geo; sudo pip install -e ." + - run: + name: Install orca + command: | + sudo npm install electron@1.8.4 sudo npm install orca + sudo apt-get install -y poppler-utils libxtst6 xvfb libgtk2.0-0 libgconf-2-4 libnss3 libasound2 rename + echo 'export PATH="/home/circleci/project/node_modules/.bin:$PATH"' >> $BASH_ENV + - run: + name: Test orca + command: "cd packages/python/plotly; pytest plotly/tests/test_orca" + no_output_timeout: 20m + - store_artifacts: + path: packages/python/plotly/plotly/tests/test_orca/images/linux/failed jobs: check-code-formatting: @@ -15,60 +93,73 @@ jobs: command: "black --check ." # Core - python-3.6-core: + python_36_core: docker: - image: circleci/python:3.6-stretch-node-browsers + steps: + - test_core: + py: "36" + python_37_core: + docker: + - image: circleci/python:3.7-stretch-node-browsers steps: - - checkout - - run: - name: Install dependencies - command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_36_core.txt" - - run: - name: Test core - command: "cd packages/python/plotly; pytest plotly/tests/test_core" - no_output_timeout: 20m + - test_core: + py: "37" + + python_38_core: + docker: + - image: circleci/python:3.8-buster-node-browsers + steps: + - test_core: + py: "38" + + python_39_core: + docker: + - image: circleci/python:3.9-buster-node-browsers + steps: + - test_core: + py: "39" + + # Optional + python_36_optional: + docker: + - image: circleci/python:3.6-stretch-node-browsers + steps: + - test_optional: + py: "36" - python-3.7-core: + python_37_optional: docker: - image: circleci/python:3.7-stretch-node-browsers steps: - - checkout - - run: - name: Install dependencies - command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_37_core.txt" - - run: - name: Test core - command: "cd packages/python/plotly; pytest plotly/tests/test_core" - no_output_timeout: 20m + - test_optional: + py: "37" - python-3.8-core: + python_38_optional: docker: - image: circleci/python:3.8-buster-node-browsers steps: - - checkout - - run: - name: Install dependencies - command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_38_core.txt" - - run: - name: Test core - command: "cd packages/python/plotly; pytest plotly/tests/test_core" - no_output_timeout: 20m + - test_optional: + py: "38" - python-3.9-core: + python_39_optional: docker: - image: circleci/python:3.9-buster-node-browsers steps: - - checkout - - run: - name: Install dependencies - command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_39_core.txt" - - run: - name: Test core - command: "cd packages/python/plotly; pytest plotly/tests/test_core" - no_output_timeout: 20m + - test_optional: + py: "39" + + # Orca + python_38_orca: + docker: + - image: circleci/python:3.8-buster-node-browsers + steps: + - test_orca: + py: "38" - python-3.7-percy: + # Percy + python_37_percy: docker: - image: circleci/python:3.7-stretch-node-browsers environment: @@ -88,11 +179,12 @@ jobs: python -m venv venv || virtualenv venv . venv/bin/activate pip install -e ./packages/python/plotly + pip install -e ./packages/python/plotly-geo + pip install -r ./packages/python/plotly/test_requirements/requirements_37_optional.txt - run: name: Build html figures command: | . venv/bin/activate - pip install pandas statsmodels --quiet python test/percy/plotly-express.py - run: name: Run percy snapshots @@ -100,119 +192,8 @@ jobs: npx percy snapshot test/percy/ rm test/percy/*.html - # Optional - python-3.6-optional: - docker: - - image: circleci/python:3.6-stretch-node-browsers - - steps: - - checkout - - run: - name: Install dependencies - command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_36_optional.txt" - - run: - name: Test core - command: "cd packages/python/plotly; pytest plotly/tests/test_core" - no_output_timeout: 20m - - run: - name: Test optional - command: "cd packages/python/plotly; pytest plotly/tests/test_optional" - no_output_timeout: 40m - - run: - name: Test utils - command: "cd packages/python/plotly; pytest _plotly_utils/tests/" - no_output_timeout: 20m - - run: - name: Test io - command: "cd packages/python/plotly; pytest plotly/tests/test_io" - no_output_timeout: 20m - - python-3.7-optional: - docker: - - image: circleci/python:3.7-stretch-node-browsers - - steps: - - checkout - - run: - name: Install dependencies - command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_37_optional.txt" - - run: - name: Test core - command: "cd packages/python/plotly; pytest plotly/tests/test_core" - no_output_timeout: 20m - - run: - name: Test optional - command: "cd packages/python/plotly; pytest plotly/tests/test_optional" - no_output_timeout: 40m - - run: - name: Test utils - command: "cd packages/python/plotly; pytest _plotly_utils/tests/" - no_output_timeout: 20m - - run: - name: Test io - command: "cd packages/python/plotly; pytest plotly/tests/test_io" - no_output_timeout: 20m - - run: - name: Test dependencdies not imported - command: "cd packages/python/plotly; pytest -x test_init/test_dependencies_not_imported.py" - - run: - name: Test lazy imports - command: "cd packages/python/plotly; pytest -x test_init/test_lazy_imports.py" - - python-3.8-optional: - docker: - - image: circleci/python:3.8-buster-node-browsers - - steps: - - checkout - - run: - name: Install dependencies - command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_38_optional.txt" - - run: - name: Test core - command: "cd packages/python/plotly; pytest plotly/tests/test_core" - no_output_timeout: 20m - - run: - name: Test optional - command: "cd packages/python/plotly; pytest plotly/tests/test_optional" - no_output_timeout: 40m - - run: - name: Test utils - command: "cd packages/python/plotly; pytest _plotly_utils/tests/" - no_output_timeout: 20m - - run: - name: Test io - command: "cd packages/python/plotly; pytest plotly/tests/test_io" - no_output_timeout: 20m - - python-3.9-optional: - docker: - - image: circleci/python:3.9-buster-node-browsers - - steps: - - checkout - - run: - name: Install dependencies - command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_39_optional.txt" - - run: - name: Test core - command: "cd packages/python/plotly; pytest plotly/tests/test_core" - no_output_timeout: 20m - - run: - name: Test optional - command: "cd packages/python/plotly; pytest plotly/tests/test_optional" - no_output_timeout: 40m - - run: - name: Test utils - command: "cd packages/python/plotly; pytest _plotly_utils/tests/" - no_output_timeout: 20m - - run: - name: Test io - command: "cd packages/python/plotly; pytest plotly/tests/test_io" - no_output_timeout: 20m - # Chart studio - python-3.7-chart_studio: + python_37_chart_studio: docker: - image: circleci/python:3.7-stretch-node-browsers @@ -226,37 +207,6 @@ jobs: command: "cd packages/python/chart-studio; pytest -x chart_studio/tests/" no_output_timeout: 20m - python-3-7-orca: - docker: - - image: circleci/node:10.9-stretch-browsers - environment: - PYTHON_VERSION: 3.7 - - steps: - - checkout - - restore_cache: - keys: - - conda-37-v1-{{ checksum ".circleci/create_conda_optional_env.sh" }}-{{ checksum "packages/python/plotly/test_requirements/requirements_37_optional.txt" }} - - run: - name: Create conda environment - command: .circleci/create_conda_optional_env.sh - - - save_cache: - key: conda-37-v1-{{ checksum ".circleci/create_conda_optional_env.sh" }} - paths: - - /home/circleci/miniconda/ - - run: - name: Run Tests - command: | - . /home/circleci/miniconda/etc/profile.d/conda.sh - conda activate circle_optional - pytest --doctest-modules --ignore packages/python/plotly/plotly/tests --ignore packages/python/plotly/plotly/matplotlylib/mplexporter/tests packages/python/plotly/plotly - pytest --disable-warnings packages/python/plotly/plotly/tests/test_core - pytest packages/python/plotly/plotly/tests/test_orca - - - store_artifacts: - path: packages/python/plotly/plotly/tests/test_orca/images/linux/failed - plotlyjs_dev_build: docker: - image: circleci/python:3.7-stretch-node-browsers @@ -313,8 +263,6 @@ jobs: # use `-browsers` prefix for selenium tests, e.g. `3.6.1-browsers` - image: circleci/python:3.7-stretch-node-browsers - working_directory: ~/project - steps: - add_ssh_keys: fingerprints: @@ -444,7 +392,7 @@ jobs: destination: doc/apidoc/_build/ workflows: - version: 2 + code_formatting: jobs: - check-code-formatting @@ -454,15 +402,15 @@ workflows: build: jobs: - - python-3.6-core - - python-3.7-core - - python-3.8-core - - python-3.9-core - - python-3.7-percy - - python-3.6-optional - - python-3.7-optional - - python-3.8-optional - - python-3.9-optional - - python-3.7-chart_studio - - python-3-7-orca + - python_36_core + - python_37_core + - python_38_core + - python_39_core + - python_36_optional + - python_37_optional + - python_38_optional + - python_39_optional + - python_38_orca + - python_37_percy + - python_37_chart_studio - build-doc diff --git a/.circleci/create_conda_optional_env.sh b/.circleci/create_conda_optional_env.sh deleted file mode 100755 index 4929c8ee52..0000000000 --- a/.circleci/create_conda_optional_env.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -if [ ! -d $HOME/miniconda/envs/circle_optional ]; then - # Download miniconda - if [ "$PYTHON_VERSION" = "2.7" ]; then - wget http://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh -O miniconda.sh - else - wget http://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh - fi - - chmod +x miniconda.sh - - # Install miniconda - ./miniconda.sh -b -p $HOME/miniconda - - # Create environment - # PYTHON_VERSION=2.7 or 3.5 - $HOME/miniconda/bin/conda create -n circle_optional --yes python=$PYTHON_VERSION \ -requests nbformat six retrying tenacity psutil pandas decorator pytest mock nose poppler xarray scikit-image ipython jupyter ipykernel ipywidgets statsmodels - - # Install orca into environment - $HOME/miniconda/bin/conda install --yes -n circle_optional -c plotly plotly-orca==1.3.1 -fi diff --git a/.circleci/install_miniconda_and_build_.sh b/.circleci/install_miniconda_and_build_.sh deleted file mode 100755 index 2357297aad..0000000000 --- a/.circleci/install_miniconda_and_build_.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env bash - -if [ ! -d $HOME/miniconda/ ]; then - # Download miniconda - wget http://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh - - chmod +x miniconda.sh - - # Install miniconda - ./miniconda.sh -b -p $HOME/miniconda - - # Create environment - # PYTHON_VERSION=3.6 - $HOME/miniconda/bin/conda install conda-build conda-verify -fi diff --git a/packages/python/plotly/plotly/tests/test_orca/images/linux/failed/fig1.eps b/packages/python/plotly/plotly/tests/test_orca/images/linux/failed/fig1.eps deleted file mode 100644 index 67677c072b..0000000000 --- a/packages/python/plotly/plotly/tests/test_orca/images/linux/failed/fig1.eps +++ /dev/null @@ -1,1766 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%Produced by poppler pdftops version: 0.81.0 (http://poppler.freedesktop.org) -%%Creator: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) orca/1.3.0 Chrome/76.0.3809.146 Electron/6.1.7 Safari/537.36 -%%LanguageLevel: 2 -%%DocumentSuppliedResources: (atend) -%%BoundingBox: 0 0 529 379 -%%HiResBoundingBox: 0 0 528.95996 378.95999 -%%DocumentSuppliedResources: (atend) -%%EndComments -%%BeginProlog -%%BeginResource: procset xpdf 3.00 0 -%%Copyright: Copyright 1996-2011 Glyph & Cog, LLC -/xpdf 75 dict def xpdf begin -% PDF special state -/pdfDictSize 15 def -/pdfSetup { - /setpagedevice where { - pop 2 dict begin - /Policies 1 dict dup begin /PageSize 6 def end def - { /Duplex true def } if - currentdict end setpagedevice - } { - pop - } ifelse -} def -/pdfSetupPaper { - % Change paper size, but only if different from previous paper size otherwise - % duplex fails. PLRM specifies a tolerance of 5 pts when matching paper size - % so we use the same when checking if the size changes. - /setpagedevice where { - pop currentpagedevice - /PageSize known { - 2 copy - currentpagedevice /PageSize get aload pop - exch 4 1 roll - sub abs 5 gt - 3 1 roll - sub abs 5 gt - or - } { - true - } ifelse - { - 2 array astore - 2 dict begin - /PageSize exch def - /ImagingBBox null def - currentdict end - setpagedevice - } { - pop pop - } ifelse - } { - pop - } ifelse -} def -/pdfStartPage { - pdfDictSize dict begin - /pdfFillCS [] def - /pdfFillXform {} def - /pdfStrokeCS [] def - /pdfStrokeXform {} def - /pdfFill [0] def - /pdfStroke [0] def - /pdfFillOP false def - /pdfStrokeOP false def - /pdfLastFill false def - /pdfLastStroke false def - /pdfTextMat [1 0 0 1 0 0] def - /pdfFontSize 0 def - /pdfCharSpacing 0 def - /pdfTextRender 0 def - /pdfPatternCS false def - /pdfTextRise 0 def - /pdfWordSpacing 0 def - /pdfHorizScaling 1 def - /pdfTextClipPath [] def -} def -/pdfEndPage { end } def -% PDF color state -/cs { /pdfFillXform exch def dup /pdfFillCS exch def - setcolorspace } def -/CS { /pdfStrokeXform exch def dup /pdfStrokeCS exch def - setcolorspace } def -/sc { pdfLastFill not { pdfFillCS setcolorspace } if - dup /pdfFill exch def aload pop pdfFillXform setcolor - /pdfLastFill true def /pdfLastStroke false def } def -/SC { pdfLastStroke not { pdfStrokeCS setcolorspace } if - dup /pdfStroke exch def aload pop pdfStrokeXform setcolor - /pdfLastStroke true def /pdfLastFill false def } def -/op { /pdfFillOP exch def - pdfLastFill { pdfFillOP setoverprint } if } def -/OP { /pdfStrokeOP exch def - pdfLastStroke { pdfStrokeOP setoverprint } if } def -/fCol { - pdfLastFill not { - pdfFillCS setcolorspace - pdfFill aload pop pdfFillXform setcolor - pdfFillOP setoverprint - /pdfLastFill true def /pdfLastStroke false def - } if -} def -/sCol { - pdfLastStroke not { - pdfStrokeCS setcolorspace - pdfStroke aload pop pdfStrokeXform setcolor - pdfStrokeOP setoverprint - /pdfLastStroke true def /pdfLastFill false def - } if -} def -% build a font -/pdfMakeFont { - 4 3 roll findfont - 4 2 roll matrix scale makefont - dup length dict begin - { 1 index /FID ne { def } { pop pop } ifelse } forall - /Encoding exch def - currentdict - end - definefont pop -} def -/pdfMakeFont16 { - exch findfont - dup length dict begin - { 1 index /FID ne { def } { pop pop } ifelse } forall - /WMode exch def - currentdict - end - definefont pop -} def -% graphics state operators -/q { gsave pdfDictSize dict begin } def -/Q { - end grestore - /pdfLastFill where { - pop - pdfLastFill { - pdfFillOP setoverprint - } { - pdfStrokeOP setoverprint - } ifelse - } if -} def -/cm { concat } def -/d { setdash } def -/i { setflat } def -/j { setlinejoin } def -/J { setlinecap } def -/M { setmiterlimit } def -/w { setlinewidth } def -% path segment operators -/m { moveto } def -/l { lineto } def -/c { curveto } def -/re { 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto - neg 0 rlineto closepath } def -/h { closepath } def -% path painting operators -/S { sCol stroke } def -/Sf { fCol stroke } def -/f { fCol fill } def -/f* { fCol eofill } def -% clipping operators -/W { clip newpath } def -/W* { eoclip newpath } def -/Ws { strokepath clip newpath } def -% text state operators -/Tc { /pdfCharSpacing exch def } def -/Tf { dup /pdfFontSize exch def - dup pdfHorizScaling mul exch matrix scale - pdfTextMat matrix concatmatrix dup 4 0 put dup 5 0 put - exch findfont exch makefont setfont } def -/Tr { /pdfTextRender exch def } def -/Tp { /pdfPatternCS exch def } def -/Ts { /pdfTextRise exch def } def -/Tw { /pdfWordSpacing exch def } def -/Tz { /pdfHorizScaling exch def } def -% text positioning operators -/Td { pdfTextMat transform moveto } def -/Tm { /pdfTextMat exch def } def -% text string operators -/xyshow where { - pop - /xyshow2 { - dup length array - 0 2 2 index length 1 sub { - 2 index 1 index 2 copy get 3 1 roll 1 add get - pdfTextMat dtransform - 4 2 roll 2 copy 6 5 roll put 1 add 3 1 roll dup 4 2 roll put - } for - exch pop - xyshow - } def -}{ - /xyshow2 { - currentfont /FontType get 0 eq { - 0 2 3 index length 1 sub { - currentpoint 4 index 3 index 2 getinterval show moveto - 2 copy get 2 index 3 2 roll 1 add get - pdfTextMat dtransform rmoveto - } for - } { - 0 1 3 index length 1 sub { - currentpoint 4 index 3 index 1 getinterval show moveto - 2 copy 2 mul get 2 index 3 2 roll 2 mul 1 add get - pdfTextMat dtransform rmoveto - } for - } ifelse - pop pop - } def -} ifelse -/cshow where { - pop - /xycp { - 0 3 2 roll - { - pop pop currentpoint 3 2 roll - 1 string dup 0 4 3 roll put false charpath moveto - 2 copy get 2 index 2 index 1 add get - pdfTextMat dtransform rmoveto - 2 add - } exch cshow - pop pop - } def -}{ - /xycp { - currentfont /FontType get 0 eq { - 0 2 3 index length 1 sub { - currentpoint 4 index 3 index 2 getinterval false charpath moveto - 2 copy get 2 index 3 2 roll 1 add get - pdfTextMat dtransform rmoveto - } for - } { - 0 1 3 index length 1 sub { - currentpoint 4 index 3 index 1 getinterval false charpath moveto - 2 copy 2 mul get 2 index 3 2 roll 2 mul 1 add get - pdfTextMat dtransform rmoveto - } for - } ifelse - pop pop - } def -} ifelse -/Tj { - fCol - 0 pdfTextRise pdfTextMat dtransform rmoveto - currentpoint 4 2 roll - pdfTextRender 1 and 0 eq { - 2 copy xyshow2 - } if - pdfTextRender 3 and dup 1 eq exch 2 eq or { - 3 index 3 index moveto - 2 copy - currentfont /FontType get 3 eq { fCol } { sCol } ifelse - xycp currentpoint stroke moveto - } if - pdfTextRender 4 and 0 ne { - 4 2 roll moveto xycp - /pdfTextClipPath [ pdfTextClipPath aload pop - {/moveto cvx} - {/lineto cvx} - {/curveto cvx} - {/closepath cvx} - pathforall ] def - currentpoint newpath moveto - } { - pop pop pop pop - } ifelse - 0 pdfTextRise neg pdfTextMat dtransform rmoveto -} def -/TJm { 0.001 mul pdfFontSize mul pdfHorizScaling mul neg 0 - pdfTextMat dtransform rmoveto } def -/TJmV { 0.001 mul pdfFontSize mul neg 0 exch - pdfTextMat dtransform rmoveto } def -/Tclip { pdfTextClipPath cvx exec clip newpath - /pdfTextClipPath [] def } def -/Tclip* { pdfTextClipPath cvx exec eoclip newpath - /pdfTextClipPath [] def } def -% Level 2/3 image operators -/pdfImBuf 100 string def -/pdfImStr { - 2 copy exch length lt { - 2 copy get exch 1 add exch - } { - () - } ifelse -} def -/skipEOD { - { currentfile pdfImBuf readline - not { pop exit } if - (%-EOD-) eq { exit } if } loop -} def -/pdfIm { image skipEOD } def -/pdfImM { fCol imagemask skipEOD } def -/pr { 2 index 2 index 3 2 roll putinterval 4 add } def -/pdfImClip { - gsave - 0 2 4 index length 1 sub { - dup 4 index exch 2 copy - get 5 index div put - 1 add 3 index exch 2 copy - get 3 index div put - } for - pop pop rectclip -} def -/pdfImClipEnd { grestore } def -% shading operators -/colordelta { - false 0 1 3 index length 1 sub { - dup 4 index exch get 3 index 3 2 roll get sub abs 0.004 gt { - pop true - } if - } for - exch pop exch pop -} def -/funcCol { func n array astore } def -/funcSH { - dup 0 eq { - true - } { - dup 6 eq { - false - } { - 4 index 4 index funcCol dup - 6 index 4 index funcCol dup - 3 1 roll colordelta 3 1 roll - 5 index 5 index funcCol dup - 3 1 roll colordelta 3 1 roll - 6 index 8 index funcCol dup - 3 1 roll colordelta 3 1 roll - colordelta or or or - } ifelse - } ifelse - { - 1 add - 4 index 3 index add 0.5 mul exch 4 index 3 index add 0.5 mul exch - 6 index 6 index 4 index 4 index 4 index funcSH - 2 index 6 index 6 index 4 index 4 index funcSH - 6 index 2 index 4 index 6 index 4 index funcSH - 5 3 roll 3 2 roll funcSH pop pop - } { - pop 3 index 2 index add 0.5 mul 3 index 2 index add 0.5 mul - funcCol sc - dup 4 index exch mat transform m - 3 index 3 index mat transform l - 1 index 3 index mat transform l - mat transform l pop pop h f* - } ifelse -} def -/axialCol { - dup 0 lt { - pop t0 - } { - dup 1 gt { - pop t1 - } { - dt mul t0 add - } ifelse - } ifelse - func n array astore -} def -/axialSH { - dup 0 eq { - true - } { - dup 8 eq { - false - } { - 2 index axialCol 2 index axialCol colordelta - } ifelse - } ifelse - { - 1 add 3 1 roll 2 copy add 0.5 mul - dup 4 3 roll exch 4 index axialSH - exch 3 2 roll axialSH - } { - pop 2 copy add 0.5 mul - axialCol sc - exch dup dx mul x0 add exch dy mul y0 add - 3 2 roll dup dx mul x0 add exch dy mul y0 add - dx abs dy abs ge { - 2 copy yMin sub dy mul dx div add yMin m - yMax sub dy mul dx div add yMax l - 2 copy yMax sub dy mul dx div add yMax l - yMin sub dy mul dx div add yMin l - h f* - } { - exch 2 copy xMin sub dx mul dy div add xMin exch m - xMax sub dx mul dy div add xMax exch l - exch 2 copy xMax sub dx mul dy div add xMax exch l - xMin sub dx mul dy div add xMin exch l - h f* - } ifelse - } ifelse -} def -/radialCol { - dup t0 lt { - pop t0 - } { - dup t1 gt { - pop t1 - } if - } ifelse - func n array astore -} def -/radialSH { - dup 0 eq { - true - } { - dup 8 eq { - false - } { - 2 index dt mul t0 add radialCol - 2 index dt mul t0 add radialCol colordelta - } ifelse - } ifelse - { - 1 add 3 1 roll 2 copy add 0.5 mul - dup 4 3 roll exch 4 index radialSH - exch 3 2 roll radialSH - } { - pop 2 copy add 0.5 mul dt mul t0 add - radialCol sc - encl { - exch dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add - 0 360 arc h - dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add - 360 0 arcn h f - } { - 2 copy - dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add - a1 a2 arcn - dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add - a2 a1 arcn h - dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add - a1 a2 arc - dup dx mul x0 add exch dup dy mul y0 add exch dr mul r0 add - a2 a1 arc h f - } ifelse - } ifelse -} def -end -%%EndResource -%%EndProlog -%%BeginSetup -xpdf begin -%%EndSetup -pdfStartPage -%%EndPageSetup -gsave -[528.72 0 0 378.72 0 0] concat -/DeviceRGB setcolorspace -<< - /ImageType 1 - /Width 2203 - /Height 1578 - /ImageMatrix [2203 0 0 -1578 0 1578] - /BitsPerComponent 8 - /Decode [0 1 0 1 0 1] - /DataSource currentfile - /ASCII85Decode filter - /LZWDecode filter ->> -image -J3Vsg3$]7K#D>EP:q1$o*=mro@So+\<\5,H7Uo<*jE<[.O@Wn[3@'nb-^757;Rp>H ->q_R=AlC^cenm@9:1mM9jS"!dTMT<$3[GQ$8#0$s<4ZX!SPQ1`C/mioWjnAY&^gM+`4=1jRLW!YA -=M/6)*KS9PE`kN%="Tc_Aoh+fk'&t\ctIN)4XQLiVpoI(>.nOW?*DmsG$@,,f58"P -DKfeXi0S^6MAH=;fBr>1IXb_>kP+oS^^pnX!PjdJ%0OEX9GI`IODGpB_@VYP -$,Ve*/ITH-bV]jIOR,+@`"`Y"/@)9.f?D&^M-b]OrH -OmIKN1*g(o[EC"elTX_ZZ,c*_ECQL2A(g_UF= -ESQm4c#_\W:"=CBQYkQ&hA;15H/=mim3UV:)/KA -Qu3q"iY[\%M;jo*/W8X+c8CUAR-m+uj;AFrOlVo_9p=ZV:0!S@R;Q;sjr'1jRHBp? -D4B]+c?5]@RI5KqkSaqbU$.ptNMG_V:6h[?RVn[ol5G\ZWToqTXfLb+cF'e?RdRkm -ll-GRZ0[r4c*QdV:=Zc>Rr7&kmMh2J\aGrimCVg+cLnm>S*p6in/MrB_=3sJ%E%]U -:DLk=S8TFgnf3]:amtt*/^*`*cS`u=SF8VeoGnH2dI`t_:"/bU:K>sj*caE0; -T'sA]r#ZHgnbf"4c1ClU:Y#.:T5WQ[rZ@3_q>R"imJHo*ch78:TC;^Xhuj(2:_!Ol -=:G;h6j\E@/d=Sn*moVE0nrNM)FIVD%H55cLJ[C[6eHetiWMQ';%=d<=H*pP6qN54/ga!=SJ1"9 -;2S4G.RdIA(#m/7Mc"@E7G,9iirieL;3!D$=Nq`D6tqWXXu8c%h&GC-EK3oA3_*<> -*TP(`O&>=/8(db^j91$q;@Z#a=UcP87#@%(/k/Cb*@'WuOciU;8kE/;-03"4P>Z9n -8_H6SjTM9A;N=XI=\U@,7&cGLY#\0J>q>#iZ'J;5>"`"8/`jp]QW!6X9A+_HjoiMf -;\!81=cG/u7*1iq/nRf1SMTD]d@+!/C/%j52>"qTQ74G'4Y*Mu>>taF90r@pq -RT!C,:$KVWVc<)U;qcXql30JP<=Ya&>)cDE77jIY/uDV%SQ"g-;6!VkW`<6)0U497;8l(Y-qBbh-93!ENWt#)=5*U[ -lihsE7G$-7>\9M0#h#J*FnGiOg8"_b#qq#AaIC(ZW:th=kc)Pm002j>8i!7B*[qY1?e2?#/h]Z*m]Yg07cuD=,MFREmKLG:E*Xj7EN)A -0'6EnSTF4QdCNCSlKqH^7HqKeY4c2Vh0\UE -n\/)MqHmIoIIG/N^K9k&?ebO/n-/p/=:YI@>Rc8R7L?n50*Yh>*JYU(F7Oc;YY81U&?&S6-0ud>A)Im#hNUb"Ka&qdO -A))KnnchD$=Uu]e>`Fm:7S1^)0.(5bSWiW!;9E$;.V2keQ1Dptb?8a9A_atco*/XI -=cY=M>g8].7VU+MY;U"Jh4+"jER%_53bM^bSb'jHcWT^#BAEHXoEKln=qn*M" -7Z#Mr01KX2*M`7]Oj[E/8nhQ_V=_cqdopZbC#(qMo`h,>>)uQr>tq&.D\XnB]Ef37WLCYaEBp'/@c>7Y1Z?&c,_7`j=f04o%VS[8$EdFqf# -C2I7Y[J%VngKST6D;Dn7pBKU3>Eh7NE9n_RKrH>d*V^%]PB -hcoPuDr(B,p]giX>RuF*?4FaG7g\-Z08=H&*Q.Z-&`R%kMK)rS`V@Ikj'6M_ES`k! -q$/)(>`Y%g?;8Q;7k*P)YEj4c?-E&!1$2`eRWDePc2#C?k?RJIF5D>kq?K=M>n>6Gjo!/eo3Q@\H/CdJrSb)i9dJ@3Gl@!$Ap&<"bqd4:0 -IG_a4rs.N\?]Xc,?d8EH8*TtZYP*G&h>@5-nbunAqL;l>rVsq6s'P6oJ)C2(n,WMC -"TWKJ!3cn4n.>[T'`i7k!O*RFn0%ie,m&$7!jF6Xn1b#!2$7eX"0aojn3I1270IR$ -"L(T'n50?C<<[>E"gD89n6lMTAHm*f#-_qKn8S[eFU)l2#I&U]n::j!Ka;XS#dB9o -n<"#2PmMDt$*]s,n=^1CV$_1@$F$W>n?E?T[0pra$a@;PnA,Me`=-_-%'[tbnBh\! -eI?KN%C"XtnDOj2jUQ7o%^>=1nF7#Coac$;&$Z!CnGs1U"V>Y[&?uZUnIZ?f'bPF' -&[<>gnKAN",nb2H'!X#$nM(\32%ssi'BLV'sV$Z -nR31fAJT9"(9q]lnSo@"FVf%C(U8B)nUVN3Kc"fd(pT&;nW=\DPo4S0)6o_MnY$jU -V&F?Q)R6C_nZa#f[2X+r)mR'qn\H2"`>im>*3ma.n^/@3eK&Y_*O4E@n_kNDjW8F+ -*jP)RnaR\UocJ2L+0kbdnc9jg"X%gl+L2G!ne!$#'d7T8+gN+3nf]24,pI@Y,-idE -nhD@E2'[-%,I0HWnj+NV73lnF,dL,inkg\g<@)Zg-*gf&nmNk#AL;G3-F.J8no6$4 -FXM3T-aJ.Jnpr2EKd^tu.'eg\nrY@VPppaA.C,Knnt@NgV(-Mb.^H0+o!']#[4?:. -/$ci=o"ck4`@Q&O/@*MOo$K$EeLbgp/[F1ao&22VjXtT<0!ajso'n@goe1@]0=(O0 -o)UO$"YaU&+2RjsiV"?:rZ;1'+5uK*U&H*afeO`%+5u?&;_9d=0/GCD*g8*062hqA -g`PMG*eF;4Jb1&U%5(@K$hr3Zm;t"Mt'N5_L6u$N^5C+TXP' -9HW6)(d\-A_8AR&]1DSi/MrYJiV"AP]GQ5!(]bTuiCXK"D?s\M&bOWce7K8"/OZ6X -9;!A#1g*75!E.kY;RIf?1scj8AObU:+5p'\!JV5X1mo["=\cSne"+&jL-Plk'PAQj,^201l%iRAei -rYts!+5qY\@K$quSOL=E=LHCUQ-i^ae0!WW7"If7_>Y9;,?8f**FZE3dihn[od\G$ -?GZU[1k$;#1*>I]%>"Kl!.RDD@9kb:?$7)oJHu?$rY&[s+5p`?1Q=Af[MQdZ*OM5A -G!RTV;)[Br+5r@r@K%#bg)o9?$1u\@@0&di+(<`7@C3f]B0MOG(6dGiPbK.k -T4Bj:.J+i[JUq%A&0Kk$5/AoXZtKU794h4?Ap/$"P[5Hj*!JY-'/gI;eD(m,+'Wm" -BXZ/7&tj5[5Z^Sm]1_k"DRQTOFN7)J)?mR\#Qao@5lMka\OlM@E3bHh -1NXAJrY;*N9[qE#TJ]0R.8na#DYGYT'fT4%bAnAn@_gl.p=F91:`\.ZFLOtdpJH&l -ipRumlV0[?bHFL#&pT]'([,nWKXaa0pec7\'88DKKt(EBpgJn:AVPGD -L:D)Tpi2'KFbb3eLU_bfpjmd9efKC$'>a97U&@p!liK-CIhs\dGb+rfliI4c&7@+4 -[3-QB)?iFp'qj,!6(/OUK8b&sN4@,kpsFd=63uO;NHj3;R,*c^iJr0?Nk"22f]eFk -ooD*.Nu7hVGlNi8!K_R1OLYITq$E0$%?WXgOa.t0=Wrp<,E_dJP.<$)q'V@d/X'5MKf1)+o2cn6m$t&"sNCLi8>YBSe_(-T"46[q=1(:-^\%hT=KNFq>$[$rLc1X -TR%'?=qRF=';51:Tt2,8qA5ke*MQ^\U3\Dc\hTqJ259q+UH1E1q(\LC@rtNZD'A"- -_:0D)rZ%-(V4(J^\m_H.[M[O&Bjj13H-)sDTlUp^&@Nhr+@%%-,>DT]%\`k@<.:7O -9F7CeWHt&5R[pH>TrNF2Wk,%,g8V+K[Au@!WuA[PHG?Ml_5qt%XLc2cTpj/r1>Y.El#qWG%CmB9^`YBp/N])f+)"g@e.YWE/qq[Kel$aG$jZ'uK5 -]-4HV-*c2RZ9'SBHS)Qc0sc3[Zb&*$gGuV:jeS#G1L[sl_3888GRu%u[MkCs2T60"l'(hoWu&3JT@7cag>&HiCdJXNY;8-*Wa>(iU.a$p6])b`;Ie/.Mjj"lHe\,,9rE%Q5?.N:iepVDd]lDVoFk6M8f/kA*d4u]XTHE-M&ldKj -Q4=/UPM(>?7^TQrRWhDQO4]"1+81@0iM%&+=qF\-$^N/1+Wj>SQc\&@F#NY'!+4Df -F%Ub@5o"=g4al0MHes0rhS&%-h::d+5on@r4FcNNAe>``k-R?@+W(A&J]Ls&7\5<:(!1(=RNLLI'"+uK;`?Fq -oTq`FlFmAcrWh`FZg/[?lb9pqrjV5X^$K(AeU@l:2Fkd'YSQ)`l/%os^>\JYjlsTr -%\?o3(?MHA&ec:M'gTPVr^ZH!8ammIE$:qj4\O;a#KkUhe9q("@=/W[rYBZ35N,-? -^@!*%3!c-6o:IsH+I,eCDA@]DAN!W\SI9MTrY-*e&_>uW_(5g7s7CmA(j%ddW_5;e&A@;@jiX+m9j;e:$`a,_!HVP[AXqm`1)1b$q -&,$&Nrj=c$ecrWP.MDbc*M;[4A,VpmJ$kT'pr()n!Ka^qe]m1u0kY)oM-WNFb[IE(Mm]3MNU>Ku$tID0(WGT6>a!JA9uE>VAM -*uBdRA+A4lDGMF?a^oN2I+DL^REjsdg)UBY5GcbA[$lDDVcftMCA%GZL -r>qS4YM&=;Hi>*/Qd=phqgJJdT@`Q-rVn:$l2#n%8$[T:SqgbS"@5jUhJf+L8MYd[ -Jsp#46Kr;AQ]OJ#r^)5bq%+(6!=VO5&MYh6',(E:ra-57q8R!HkLoEUT'(t0H(?>Y -c=s25&X6"^js_N!8CAsdAeXCUG(6&0ZkRX)kJ?5/T81hnHC^u0TMqKE:qmYT^tJ]Q -!g'cGQP9L3Le46%;6q45&0)&X^[oD84\p.[q`dmE.u?POF?=htKk"7dFerkXuu11HXBkJ"bU5cFsW&Mb,>'^C*2TKC4DX^oq,pO#PjHSTB1=GJ!/dGdr.S[Go.2A -ah_(7+6AUAFBqsBf6:Msi<"LtKmEZ@S#Z;ZIEo+1Ed/R:q93Lok2C]L,Y8IUJ"+OT -c=nB`M9@A@a3j=)T;UZII%H,h^g`qu4g'OaL\W&/>O^#g)^"0Yc=5&_m?;+R#G$jD -B)0GfSNYLT7A"5("\58!qAt9`B_jWNU?QtnRAFW/L7bGZg8:XFl?'IYX_W7F]uW2BDJQ0V^'=_;2ST/q7WE^#b6C-Tu$^s"F3KM -QP.-Vr`P7:ktll!Ed&tSo"#Ba8%b@ECj>CJ)s3"86h3h\RcdRH^Cf!HN(h(XF#9. -];p;XkJ?V75:=MCHs]Ceo_e_jg\-'q?fKCY5H!iEIfII[rI9=[qu8nU!OO7B(t#Q!RMaFHR-;?$l/ff+MW4ZFf;?NT'-#`+TY,:k4tr1AX6M30D<7&Zdm -@Z4*?;-#/8Gc)6If9! -Znd^44qa86-P.Cl`/-0\+5$X[,=:X*NE#'\AX'NeLE\=nGe5S;jL^`knm+oAJM6." -^6k)g@a$ikCaH1+R?KOA9_kA=AsCc5P?)HnH*K8>d^gHOE]prVC)mQSW!d[,Em?uN -$4$He6n"%6:@p@c!.d$6KD\r/LgV`>N;FO>8WPq)#c^h7s$eE^IZO#B+6Wl-8SLmHMH">W;YjfqBpCKO -Ph)=&H>u\oeN9[a0QITE&ON9%K2#>]%RK&O(Phe6'k@/iO+qI.aN1LmaES.n6=(u> -kn+M(:7g#4^t1#8A#5HVQ.C9'=t;IEXd-&u(pCfQ.EQKHLYi#'c( -Rj07F[H(neZaO+gfgn`W6$tJNXG21+VkiF:oTl^>p>6q&j`#!`_QGg-j'5fNE@t83 -\T]C_2-YQPDO&\^QWEEXHa.a3e_@^&FKrHI:bkGefNV6?o18c+,[:&/#35Y;30=m\ -OI?nQo7$R,X776@aJi[NI!6&)/qB6F(R%\4)./m"017%57*(4%XjK`UUlFQ/_;32C -k9.8W[@=6QbqY*6Mt&i^A#C+iHW`N!LSk@$X`C3EE%&Ah_MNbGV!n;^dXQIRAah -LQOC71EkP5OKFJ?,\3-YN-o]:DY>HsGc*T8I-mMHY'\J4o0$aAqjb#/K@$&'6YLl[ -U3'Fod?28ocp>`/>go!Z_eN6\_$)4g?>$;A\3khqB-;lk8&:2`^Z3h.-kh-`J-eLf -,f*_'kG>J=\&.qJE3t`1P7&VqV@"HZ)mF&%JC"*/5AYb)Z8OV_fpaX-Co>%P[[,Cr -RoaBBIBg5(f%\r73?1&g3\f`*mG*W(2`Lf0C[A39Sf'%*:4`\W\!#7?KD]]tVc*R# -OQbQUi+WOlr\$YX'+1$kEUM3^!HJ.;adG"&%HfEccES3H#9E,XJ$*qn^"@Z"A*b4uT66aQg3Zn: -m@C_qG5gIU:?'@0mePdE7QY=2a*[8UQ"H5CFs]NT3[OP^Tu!(RWAPcS>oT;Iho[Sk --KtIIU4e$H6;?D/>ukqh(_.)S,A9t5"`sD/\U>ftCHuopq#lqS->&I>>/h^8'G0 -IrXn)f=UdKpYTHC@Rp[L4QjJm2]HJ!n=>:)SM[*0]8/#"E/:pDS<[]43`,]^c3]Vt7Do'87M(g&%$sP5Qq<7)8Xu5@WE'\EDlao+ -ak>$(-tS(sEJ!3E'.d:Je"!".c*LrW,tl43!(8d2ks9i5*0O)V:k+.#'"+f"*"!%G -\Uc06hT/iYagA>\9U/1;Q:j?J92)ce7(5fk^rn:>9:WRdXLh-<]M$>E.X@EuRj#%LXs3=8Bc2b10L -L\P501[l4fJ]Rc&8YijjCpqT1\'9"IWOmqi -G>7^kc%PdbSG(4/pJ6bC:R_sB<;TJ(r(kQ8:YbqE_(<%m(ap[2(^0r=Z%+_%2`F&4 -Z82^gBG<[Z#X`//^P)st&1B`j58/qp9Z5DfN=!u-'d4eIK^^6\$9D!@'IY-92Yl+R -ln-P3(f-D6c_VLVXVt'J/^\\];;E9jm2o4(+LcHoDp# -"WVk9d[VK/W/*bW@A39c#P`QL3ufB,Haf7j;P8h/%!rQDJ$WQ;`RQ6^1Ol>Rdo$S[ -d@EGUS*#,/`JdcRX^nHjdBB9 -$!S[cb4i,_E"O#o+f.-C]A5Y0o1a1YS6D$^A"/576SQ^Ci*,+pgtKXkZCg"h0]jac%WTNUPg -g!-6p/YcK4UfpH5_\s8`UsIb?$D')T07Ab?qK1)sd_[:^g=fU5/2F:I(;!9-(/]Ye -lg07?&uo+akB[Vg's\.'tW/5\m*Fk3=WN'mCum(^g%>b2S1N5=r5sS -Md/RQ>[8q8QoI^NXOt-1U""Lr29RCe7=cV+;VVP`HSI^CIA,28W\W35-$chM^)ak@ ->T7)*e\#,BfNipY?$4k)*S+N0gg/1\?/=?fl35Ztc,YM^hAZB",\c*tM9rT-cPj^F2i)5QS4-3'hR#`*h4<3U?2%]C -pg7I)hbErSXnuJ=r*RT*TTc3GS7jJPs/cJ*?lIBh,ca3_94%h'KfCWt,g$=kMVs)D -9W_.-KF#lQYD16ZeSXhC!Q;hO2ElD17RN!hdi@7nq-c`-?]Gl[:)44d'4Hn=@@eBG -XrA"j,TS3W_T!n.Hb^pGX>3KV"hP.4IN,P` -(?3UUiH?h_eh5t7]je]1@idC8/i-usq77fmeCplQ2E+McPtjc+M0-_QgBM%nJ)eO3 -?uA-aeQbI9\Al//_uY%7qb=D.W[]ab"Y9=9jXnKO\mn(m@eNE(#"rG)9Ot8UjH`PO -mS@Bm:h9p:S"OSRi*Y0,b[jDHa7EH\Fs5G[bI*IJ5>GApp0*XY>@/p;=i=6'/4CsK -GiQeF2eit3m>VAG=p'u2"V_^5'&R6NBOnhjjN_IOXHVdiChCt0B&7E6\^s%E6TjEO -k8G9_`9#oK`9.IkSU$YEVKZZjGT!Lf*Bhrl.6F(]#r!r)a0VY=2)Jt5KmQXU7.4ncB*';#)KYpq*nV0k8+]b`1d3''I.+pH4URUcXRXJa24LNBD6o#`o -27*W>0nsRX>4a$(;O?Ya]P7qiC*(%Rifi]:^haLsC`^G[_sqM1>@@0)C8'`Tr&@fk -ID;V6fNIJ*XR/at=(ANWDHNEH@<+3P(JQ]^=1pjI -\ij0pk99!+Xb-jW7ZrQ=Jg^QU0Ip3jJd(PY2/SB)mp=XbB(^(WO7,R6Dk?fDY59gB -/B4hs>qhgYIfAg2SaYuI:.)!>Bb_L2+dm`]n5ff-Ig%bEi>h?(l`EFgWl!1;#1-"f -KhsHn\fGB=d*<^5@X2]^dF<*GNUM'+Dhe#VD\_e]dd]gFEM".hY8\h!e!Z0cXbA0C -l'(Z2-nL:UCjMjSL=9_`LfMr\nkUTQ?R;o\?WAC%@j -6mR_$R$I;Ldi>\qGF9klRC[/KoTQp+^'nbp8\aFKDd'HfZXQHn"3C3S\+\]qG[H/L -Df/jIKQrQ7Gb9kh5H=(Tl)l7El$i5_g -qNS.]6hXWT81gHsXbK;)I8'M6Kkg1.p81V@b2(Nr>=oQ_a5*(-9[D]TA2#YlqI,n? -0;3a-]6hl!B"tp(n%X5L^hpsEn:URR:W!K/_tb.6FBs%M9>W9)A;9S^;hELN7"R^X -^1@?#URB^b-t9UAY1g48._Q-uZ:I*Z7JmI]qq&K-hq!4*f/A-/I@o5AYM3P2(Y52# -/0E^cQ-SfRGN2MLj4LQs7E,Z)QGMe7iNlr->.9uh9BrIHcV[gbmm#Ql -^Y!sQn:(E-I>_V7n+2#noRBTNh>r4oI%U[/9GXi,s+BBQgE59iOie0DJ)-B>lS41s -eE['b5M:o!qiR9GID-fmpk2*_'8f4fdM8S$7p7&Es7Q:kf; -2a^UEd8W?^-cc(R[/Wc/?g'bmr;I2";(-AT@%I:m.DOJJ#Q$e^s)>7cml*qS[9Ke8 -CXr:cL;dZ.=_uZ97AeTQ;\N-]gO6ZlF1GRo2g_C\mcd"+A#.>56m%7jjSFk&Yh'reF"?e*;(%h1!CW[G1+nHen],LW/A@'Y[pW:5+lU(K[' -r_s8\q2S)ik4+-7_m&2b&B#.^@]QOWl1k-E;-[6>\u2O]J"9'Nrbr^Pq2.bA,0BgP -"7UCVIup>Fr^V[?q(s4dj_2eh'Ch3i(J7SqW@H'=\i/P-Enc:#b>RuC0?d?'aY6E; -*7$Cb'3s'Gbqjb#3).k\krI&U/N%u*(#Y5\u!XQV=@13Vf -j>];.f]!4.kZo -I".aNJc:'=a8,LYflql'Ghu"crB9#hXmnS^=2"?Uhj=h%M -iOE.MH/_qt.>m-;^+kT,=Pc&uj4O>sOQ9Oc8Wr/f3_Y:#k?56CRq:RXAs?GYB:3@f -+R"<=JgIU<82ZMB&0KuKI1!jQJC]57)HN#jTB;89Q0#PGWN*Z[<2,g'jhUG:PbPI. -T3Aeqr^?s.l2G!#>'X.uS46BTGoZ[hl+6<.4s@Stqq`@-mp#M]^[PJ=$,CN8*tQ6Y -*+'H#nN;.[]CK4!.E_5:^G3t(>i.QeoA'@3d.CTa2LHQKG$nYgb#kXoFi>_39S`*s -:k.'.-"Nd6+bZ1/R7-$5CmRVi#7=ZV&'#,e6irReRsaDp*ul1t>9QgsqP5JQmjs,[-W^_cqLTE2QN -n/_]tQk]\\A.=+:4pXFk,m[(Q_?`?(>Ee5u,)ds4Jr$k+ -YS&&;#RWon@gjNF2274>9nXb`IhA1eLX/5*N3\sQ(6g_3E6JX#AS`IhGt9ANcoE^5 -HO/W*m=Re"+2sVSG$l:qJ?aP)7MrfUUBG(cd?ZUY8C\U<>\T1P^+IABjW*a>XY"/e6i=ZleeuIu9?#5K-`6 -PEL5ean\@R8pL@S_T74f&^)9X@iQMAE1)TGr[ic0UQcC9;MA7",oR+R8)f=QO7@N> -,\2ZKK"8?!Oo@HJ)#o4D[V/AJ.i[MjeW$nAC/'Pe2J2%)S'u+k:"dEChpg)Ee"1YV -RFO@]AF5r:^3EEkjMo5Zh]LlP<].=s.Y@HqT9K,#ch[f0763PS:MoO3P_,'$_,2Pc -*.Q?C,r-m;j'8]pEt9/O7atA^*90_BaBBfW.3SX.!aR+,62i-\M*D(%rS=+XPs?do -rtU*E$mD=`15G3uUQk``c74N..O=&QeIJA(>*2_Jt]N9FP?)DY7X7cDc -;qh%RCZ+Lt;!puoU5rO;AScPL&snKu<&Fi-I'=Alajh=f;lneOZ^-'d=rTP:m00;m -(=r3:gYr,dKWR'C^oC#--tjiV -?&9Z_Qn-thUNA,Nq@SO;Q!7J"MP2HK(*qP&$6Z$FKLd8&Jd*"ti/g1Bd!_.qb^[PK -QSW*YgV1gNdpJSAC%(0[^UNY2?lT2tn,*$'5sqMCEU -\;p32M*Ph/+^gB8fVS/fP,Nh2<]S:D>6/,J$']J-;p*cd/7i(mQ1EL0an^E?AfSdW -o-S%mfq1)]@Cl-`$fG7Sj_?5e#+(=..GH7\:UKRH)jO*c.F&%E?HbY8T1>5\P!kG]N4We(JY9C#).SobOCRR\*Hdh)DA,B!'V; -^K>7lAZYQ2K9[[KIu[s3osNptf<8OgCZ1!mRe40&pldf&GJ93&6:qq83.L;nUU11i ->I\-=KTNl][`]'()WK:[igbZdmjs_;@1N!;mD#f>&F^[$HZ!a7`Mp7?o\S;sHgb81 -^A$4Wh_psLE#o1upa67'g`M2gQT(YE=T96_BRbq*kJVV;'&oEgMfE@DO?p1]`2GL] -JjKDD0497fgd?kfEW.bJ)Bg-]MhQ3b3'Kj84Tf/sJjbrqu#mqknQXU"&pg,Qa[RShRh_;*ECZ&G!9DD\YID=/@+6i>K%mV)VE^2Dimic -S1+f[J+-`ZXEgD@k5)!Go3QXfH2g=J4MR`bhOi;DT2k1TA[9F`W^4)Ui7n3q+csS, -P=^d^fbO\K'-REMmZ#Q^IOE&.EeX-@]+=4U0+8dDip^4@m4W7(GPCufC^Y].4E\Wr -q3oLSqB%lqrtjep5G.LqO3KPrs6]dB^\E:#jo#.RSaXlFjG\C]e%aj$(8c,>"H#b= -G0]%n#%t:Zk>iFN+s6:j!O*FBcm&RO=@T!C7*k/aLdXY1:*8kXV($SiVT?<-VW'"u -)'LaWiP$.I%0I%rrD6i!0Ok!"B*Jo]##K(?"%NO!G6a4V#LIr+&;(6UhAr<$j\"O0 -0TpX>QpPX;!069jiVjZ;'HnWg`c-nCYceF2ZO84M"cp>&D?d==FrjEPYf&5l#@N7` -]VY#<&`?cT+M&]4&EWDubV4)Bd.7bZpBL-a%oE38O38$\#8!"*&CD"#&JG(\(kei6 -[o"3B!Nm2s0ZYf#$03#,jadm#Gf39C'9PJ9%/(G?s,+d*mREXO'h-R+^(,18+h -#e(g.)A3)N!&7t/!dkVGAF^;%mZ!I-mP`,Kf(Lk%-%Xhk&6OR*1?iAq+7SP`To]oj -G$9U$fg:;XE"*:#rua%5-AoJ\&fW8tP:;Y8.FOP3nsV9gO"-uV2`$XZ1XeQF'1+4O -CjBgR,Ekk>OukNW;)M64(1?,DiAq89!m^%VB4o;5d8`+uh)B3!QpCqJl15r07-nYB -U'F[WdsC1l(g%:!nR6>OF&tD#3Z14AU=*rA'8V^500>@R44>oH'>$@_^4O_V> -'@T*Cf,8RIp5/?eJ7+>"$'N7G"pmXnLlKiLE&VK;*?Ua\e:K+lN]T+rDm -'ct(g'ZY>eoka^;.X#DI6T5G0/LY*NEqm5P-pLse[&I[ -[p,-0>K%))F54fVD-VeB>c#YM&m,to(AO/,6*2E<%4Lc>k/7/-n9[!r4;4BH -85)iGCCE!R\pTe_DSC2[U^5%+KHaT[tgr\%[8C<7lBY6hL32DtDuMWDYD -RMp*X<-*GLh+C"APa$jgV`VeVNuC=]S'ESq^fSe_=UCW=0MG/J,3`rqZ8 -cSaL[iAc4*kg+%Yq_\7h'ni0TdhapHoo+(a%ZtO=Q#"g$cKuo3$5b-h:)jfr^:*BW -(7T%sT5dpOEL.beD?4_n-ZYP(En;rpBJQe_X`K3OMUc_iZN4W.'rgYJpT5Eq8Pq6oGD5k)9e;-4Kf(`/!1'o860Lnap)fTV.oQ\h)u[\tt-Nco5ZeV]0GdSX@W -c'^U*"b"X4Mo[uQ9QF(O/8e8&&[G-0qG/QW.qdVXr>"c1gsLj823\.460rfPpWfKHFqQm5+\#Yt/,4u/rET[sd$`npbXJVB(3,[%,hjTe$ -a7=>JdW_i4kH7^+U(TDSHG'RnCko>-Y+"CT!G2fPM-`''$8eBViX.niBjVeN/GcKS -)QU/IYHg5n7#B4;na@C;Ksp#f&T2Nsf)&g^gLAbP -gSrm/Z]FC(/=Lk=A[W%e.S3%uk\0M^5I?[Ag.l[68"$gF_m6nDZ?r.JgS;=p41T^= -]%aF#(+NS4d,&q:l-_;$-L*$[m#H[:gqpC9j6)oe'W -cb.Iq`=I\=+P?jj+2iP"2/sm26ts*b,p9Q/UegWFi8/iU.5n6OD,t$]Hq8M4#K;9\ -_0gaK>_Bk_J]M=Ga1RJT*0\KB1.2F@T^M3i$,>`$a2L!G((cI\3(*:qK]pWnl:MT;8B6qbln -A^G=27'9I-CuJ[S;$j73=BK:bj98>eS'SCL6OOIZ8&F&np/Z57_lh8'4'pm9p!16D -cCIbVrDBTN/(L1pe_OQ_)P,=T5SsM6*aNX6]l2M.F4VR=V*k\54?>d8GmY^+``@68 -$HiJ!%maK0.ao*-=`qYFB>]F8cTH."H$";^kL?&&gYGf`*DP#'V'2$&(_)OP"Y=+VBQ!ifR?M?83=W7cTW`oR9(LO\"Pr=Yu^I.@!NeP1ar^ -jQD$$QV[;f1&e:15LY9UqCG8=5D,n68fR^5(4W4&:\C-prl\'OgPa\\Z+0g_^Ld)l -omX_cYup@Y>;Tnb9iG54G,o2gh/TmYmMAN]f(!st?*BTamI'q(^gQX+>S\7bLW*_B -R#H2A+-"?Pnl]4X?R_AcAojBQp1lsbd-(%)>pc16WRGUi)SL='@BA-tp3RgWhefpX -me7[Ff(U>#iGeR^?8isgalRR=SDJHSU!`+HqOLs%?a8;OG5IiepOC$fsIa8%>._2ra]J"+Fd3.44.FIssR.0G+Xb,t<>.SCD]ZS"mkoX-AGZOFT'9X?"j -1!ML2eML!AFPAcLPEarbc829ab=Y^_pHDBZo`%0Q1_g6^:p`(j6r>d@(Ih9/FWX.P -1m22UTBFVgJ"Ht21JQ=tjZcO>`lW3=NQM$L"2KQi+FfJZTp! -:k+d`P%L02FqodA=LL)J8=eoOi(Ln/1UZCj?C-rCHsZQtm=&D$mIu*<3!KV;i4'O3Jk\19(PZA. -FruNL30kqL@^rj"N+4iu2i_CXC&'*HVWn(tQj+6Yt -(:YE8Pnu2pQKWpHR#H4VpVL79Ls3XWQXYZ.3uf?X)0*rHU@H -^VOrPV-;"b*YpqL&cQ:nVR^GkpjOlQj* -#Cqm[!ujbr"(63]Je1BX5r^:s@'g`&&7uA3`R%YCiELr]KlAlGegWqdiIqW75W2'9 -$WUZg'&`9bLk5Od#,E2n&EY!#Za)^6;,J"K(k9EdLC<'fA9U`*:P>WrZU]9"KJ7Qj -75XrE@^HN$&1T8#GdeGtjBmhmL+^J*_&4I3AMnI*2+G+/)e3u.NY08k7l]`RA$P9? -_lR^NPa401GlNiQ!^F!0Hp>Qb5(tETu6YLTQ -U(g(R%e7Os8!qL8A(Xt?_=B%,m2_toG^PB&Y!0e659HUK<(O#kNlU(@#(ti5L,%sI -"GlXdidRCrWcC4VE31/`BOd(mc8XsP8#[4MV,Y$o;egGNWYJ"&NK+5D0:UHmA8OJg'h66.kuI+]=:)\h5J2T\-:\ -#/OD'$"7X,nJ!,d:tV6R@]X.%Z.;CaffL?g/F^&KlLuVa1-=?j'8XI -Epe(p\ed-d>l1F@DPbsrf4O=(]S(Zt[']APdUps:(Vn3i>21_E7IJc`G("Q54R>C_h7>7i4h!9*Ps_Dq3) -_DHKI!MVZ2;!5aKK+F"$eiF%TllBTGG)k>QMfEnn`Yc`6@m"IbEO>GY(m&k!*-mA* -eN4isPV(gk_EW\J&&Hm<$4igc&BC`]&J]7t@sk8@Ejf&^(On#Bm(&F&mT[lfLG3=& -^R9-YB$?[82.iB3RPT,&c2"h.B0>:HF,kIiRH$AASG@$-]aXr[#5)Xm$))GtF3j\1 -7;0@PUNC[?dMbVIBg!n.#C,>LUVL`*MS:Ykn?(19L7d`S>!3'$Q_m'1IL-!a,#R2d -!VE0#&$[Mm8'mh6_rsmLrH5;$f_-)3jEZ^3=?FP\7aemrASf&JZZ^NX<(@.Ah2"B\Z(o -Q;\c]V0'G=TLWtZ8L"OZ$:4YCKQ+'7h-J$d&+ -Dr:I7L[fgXan^EFkPVQ.duX%I295`RrSnF`s"THY(&J%uHn -U1=kSN#SMP'Z&9>_;lZRoH1pQ+Mn_F#ODVL0PEM7 -ItbBp3if.Ki!QeFT>Q#gOS-94f"i*6pCbM@g0G\IYL.G",^oT\H+i@8: -]HLi4bFcAE3f!K+!_JiK\g4qNZNp8+!uQNApd9i3CB^+A&TfoTS/O]3)am(_`)K4E -9Lm$3847Pj`/I&OZqJ?U9Z5FT`8j\3n:s03j-r;`^t=-iBGAEB<(/cr]')JHM[6:s -,fM6"L;7"T0QKUp>_du;7GM0;_@`+c:W=)WVPnnJ\:;3>%$91.V6M-U&gW,,>i1C2T)@%Bs`ZbaXUe/T08OjJ5`uK'=,]h!_FN5iF`p@lhFEbcYGfQ%oa.`?t -!.U^5>p\QKL\uTki,FE:XFsg\\_J_Ji;l10.Di#W])7:DoI,=LJ&aJ$8F\.OYacr79UmoJqmE&n0 -alK&8oUj8/TZRi7a]NNe9FnrF?%`3-b#G61=Bu$pqn.!k+^<9S+@cH7It]!o]N`Ci -8=MeBYDSPIOOTuI1p`j%Z]LhjK[F+YS,jgA7"G[Z4u>D+CZ#C*JVLeB_aLjMS=I^. -^e)J[bTt$K1r2jR_TYSqbOifuFN;UYaNTmja,GD.RA0nP)8((99ZV^:O;UV%>KAOh -5PT_rM38&?I8*UF`$<_L]OOX2fZfP>(G'sM+Ff-E=?5X#+[aVj%'2WT56NZia9:1` -`5U"i`D0CMcd.LF?dRCa;R%:t5_HV:%NIbYZe0<7Oh7T#@pi;kqf>6G.[(4S60\70QY< -d[rA!R`!_,=VF`a44Y-Seg3FZ2.>'!@aP?den&IEF_B9ZBZ:X)R^,[4KJurJAVR-c -\PP31I*mg5SX$]R`j+Ah+l:g-cbkU@+U)R]Fa&ll1_5P+=#G;pl;rc>#K[tZ)^S0E -r74BZHmSH/f7<VC0m0;3Kd@EY>Zhi>I -FheC,"aSi+\=W'Hc!h:=ot/toNu'@T&B21$g$XU1>Lhdt5Lk0`:nG=% -4bs!O_))j1aQ2'_WSEc[gnh#U[E74;b)@pmguZi:p!;Ftd#OP+(FXV8Hdb,Fp"`Wt -h.>(JOAjMaXkRZ*]%b=fmG#1fn5:Ok8.EsPp"tT8C7/S"f?Cdj]h:T::]bKqUXWg[ -3HEaui!Eu>?DYm&[EMsrlJBeOd4OThp$^cAnD=uN*AsW]W2PTDZ/8RRhduFK(ep(Y -[E>_Kf@5R^-(\J_0*Tum^#S!VD=QNg!/MLg#685MpfIW#It[kL73i@-eKE&JNQCMY -g-O1q&<^AN%,U+UhVJb#edl0L6t!_@i?f2r2A=R$C&8E@sDASCX(_R`))[q>; -MO)U\UJc&\RslCtL*"*^P"&1\@O9==$sqHM;,Q$#20E,!Q3Gh"5tuMHLuo6-[LhH< -&7X3@inc6&c73<.0]Np'j!7kn:T`_8E0>7ipKG"Q:kb^G@Z.sjQ94u -p.r8)A;<-Y>[1K,^/L/j/\V(]j+OJ0L*d(,hr'Mt^'7bP>pGpu/7f#kg>uZH%4K+( -#fEIpA2.'6R%7%sX9VFVa^/:a^1ZNPB]R0Ik([V_Oic_ID!';ck2pQV;&4r^Ba%LZ -QI0N7hK%6?.Tak#>A0eLe0jDoUM#lAB;@iQOX3_!:M0)U8bt)$UPi+dgi4S2=]_&5YCWT%`'pgQ7PehCZ%Y&?HkgO^)71""n ->\;UMn7?3@9JDq$Sl[cRU.jK\'T):uqP3-Z -gU7+N57d3XoPkZYE?>aOmfr;P'_,6>gVn_Jrj7BA;fRXlnY[8pYu>HkOmo*2c2^eX -`';'9-fNr+neWLWWG.i$KILoU)ECR6:Bgi>-SP!K -0_$eNo*7#Yh^.ka2"Od+e/AqC^BiB!36RpS?8"@cFU%7hQJ4ZScU`Q.2C[4\5aoGR -4\lka^G^1%s$sg?+W^1-j:"o_c,7"Oo;'\&Nt([S0lo!Bo[ck02c&gR7.h?nod?rA_p-_%c..[FU(]cVec"8CuFbhp?->epM[ngI*n1=6<#9u?ZM$H063VU -Fc%HgmG]-\6rZ<;pQLe,'@ca]I*lP35Cp4dT7?U#rU8mHWGDKGmJD0V"0pXb;t[u:%!_*^VITe]\Abhu5! -ldbW*Uj=k;H&nj!GGk:h3,s%H -g-B\5I85+'X%gOg"f/WXS[Q\AaUe58,Y%5!1.2;E3^aI/lY!0nFZqj3DAMqVH.>LR -&sgm^_Y/J]9tCqtFg$*u_"q-KqG5!+'>43l`;E]Ur*ehWETTNN$=2Q2dO?,5pn227 -h]DtbDqr#'m"+4,:Re&iHuIH[!YN^2IqW4f:d9+@`8>pA1leUB]2YNj;3[Vgl[roD3j -$5*/lP0.A8=4\IlK?rNs5&6\p]$T:s/%IKn,*.*r;Y.9+RGBTd""0H -0DH4o#6fcHi,'2rrENubUBL&Wpc9i>MSIM(8,=Jrs$quSkqSuo9-f]nAI3A:rH*I; -[hmBdUt0BAS5*]q\`EI45G1hd<&u<@NCTdBBiMZT2P!XB<,,DoV,j^"XB'+:]&e+K -?a*XK<]_Unc"FCeD,9niSc6r65LlW$qFG)q7>YC8:s<8E)2tLcn+IqkroRn/h@;LA -g"uaX^Fa^nVH5@9bY](meM_>-SBkkj)Ee"c7AeLIoidnuUKsqPlZO41QIfWUg28h' -S`]Bh]&7LO48p$4M9"TGGhfGl0:gAOF#mS*T1>m4lZRTf^;k<&h=,Xd?10.rbN&2? -I3--f\(0p?Hh^a9Vq:>1r-j-&^ZY@hs1f0S"TcE#/.D]t&53fB_2rIR#Jq%2,mhGM -X=XgcVr@8tSL1W@C6f,#KLS@,,Y&Kd&Nifk%EJ9(,+mpU4MRWsYn@Ved=G[_TB5#6 -*lmgCJK`*'q$_bAKlf:i_\-dV-d!'\V('QMXK="r'$MDDSd5).A09rB5(AmY_>[=> -BDEYd`fk*b)^"0<^445Eq5.1Hlq-hr92k3U#/3lm"SbfX%1>JKe4gNDd.D/i7o>M! -,tQIKKe5mEoW9iBdo>]j:XbR44]'Xg7/p39'hq\.eWjuW=4S+GAQdTLX_h:o(!Ul, -f9LXRH_9HJFFTW%iVlN+p-"UM=]TC-AeJO?r^?s'dQ#$3ZVXnVa(P5cJ"3BY_/W^= -*R/Vp`e",5*"6U)?JZKXja#^LXmLJm($YF>TBDWlJ":3!rbe(mklhk/PARQA`b>bY -9F%KkC-&!LZ"/@-Qd.Hme?p&TNoUor7??MT%S;lFfhP2*jV_Z1QKB'6AX@"sNbb'2 -f\UbAkF(adTBI1'Kq[_!/rcXj)GZQnZ7#J;H!e&X(<&"sScXD/jK\\]MHElbKqfn1 -.u#5rR2cq`q``K9'I%T(8>#'2X/56RY3iji)p\,iZ=gGuD\X[>b^YbK8ii#pJA/\2 -'B2mg@?JV+c=q#SG+kf%SBL;iF.'d+RrfY=6dPC101jXbI8@"l_K>Eoa%fN'g[A"N"Hhg -"aYH7cb]l#-XQ/qN":M:7LDEe/Hk"E'n['8%7/W&#N4YcK?'Db_H9M=iC#,K:p(R# -fNemDKJ>]DaE/\\PV$7pSd>p>*Q+TM-UKO4>"!Z:33b"EL\S;eK2Mi4!K',$FARh[ -Q$,"Ck7"*'=c6-p/k+5956okXL98OaMp_MW6mLB3DcFIWJ3I73\=?tY:'<5tdheWU -+cfH[5!g[r*om0HO:i$h86H$2Tu2P1'u`(e -!$4AhV3<"h-L&%@WHIX:ecQ$PX^Q=HWkV -\_f0Jkk"3"ur`^m_J+)e*^Xrbm?p"mKYXF#V=>'kdg`;%:L(V:(M5fBCmbfe7 -d;U<%6.UA>6l]?W,pJ-n?,GeU0g7&)fWF?GEA!TA"i8'#cPg:uCos]0/>^5#MdhWH -O0KiW`)3a.!b)'WK#F[l_U3<2pFD6Mpo"Rga#W<2eP)V6e@CMiC(L,]1sl$&coMSMkUd191_hKT -L-ijkN?+edL646D`,cIeE]*E"LXTE4@*6.],(ULQQ>8t2=WqAs#PcRYKFhs6,Pd\3 -m]js(cWFsWAZ^*p\(=g:ct_rrYP&1:fNSkqCf6CaZlVCBQYuS7gRk)-!t/PSi&nsZ -N'I#*g!+kZCi-i:Z*sqrgfo\SD8F&rdjZCCPWXHQ!?\oI9MsSW:L*51lb2uJptjcg -IW)pu^9*.]i*6eEE*a!ipdB?KA)VR5g[$eORhapF6&Mpf?Onf-cnEJ]J#<'MgP%Uj -+8gnVnf_N_ohMP1]I0"chHcPiplLkNh+VpHQMCA:TAPDXk!9g=]NApG`VC-0OAm6(![>pQQXJBfPlBC40X[# -"h'r5#ga:Gs1*>Kk/EZ@oGr?q^3AH4J2R?a'0Phq_^eje&n)LZ[B:bPhIMq2E3dn3j,ppFDWWVkiA3 -rl?c%`39aPX@eM3/fk8ErU:s30I1n$5V;:a(*M=dk^oME$j28$"/O4:/q@>aibiXg -qes^_0?XN;cNUOQ"jgBUn74R6-O-el#4QU;0Q_`aWoASW8F9.on:M!`;$_an+p`R8 -V\ZuN+MAq['+2hg+dT46V[?&=d-7Q?0R!nD\I59VW%BP-<27Bk$o=+Qq+GC2Se?-3"WK.WY)*G6r&W%4#Bb -Yg2dTrYm##%WM4[0_ZB&q\QM[(X[LEljjemM&o.1&i@o!?cCk4d",81)1sQ)'Q3;+KtR!kgC7IoH3WQ,17sQ -U&G]jJsM5Lp;/BDA7#U::`,lQ+7`,P&l':[.NdWR(?PU)7kl18BdU-%1=8539Jn"j -b"Y:VNJjMW%0"t@;I%Vjno>6`P*IIOR38f+.<;%0UMhLMW@G3U.e9gl+hSXfS0`bP -,Xrb^b_m5eh&=D"/jec+kc6:Hg5<'8PHBrt1?C-/kU?fr@j9X!iVjY0$R9[Qq?rn5 -9gL<#8E-ZO:QIjm;\^c<)(H:?0lnEkYK\]+.5J4]1@m2_WAb4dg)Ht)R^5761I?Xh -T&d0s48+_?DM)LT3WkQ;upL-)gk_eP9Y2cb>78uko -Y0JX#rmI#O6M.NLe?qWM\P"ck94g[b1rW.1a\9(c/BUeRCAqTTG=PWc6'-P('$MRO -6kNftcNKq+l,+'VMHJiK2%H=%r8r;"4aZ.%*"j1JcNn;P1Wo28*6o-!:u->kQKM1@$`is$:IL,Ei"31;-l?IbH[H)lk$Td)04!aUD2H -?]`3bM0fp/eR5folNWge']!-i).1b/UQr".9L'/gAo1)")N`uCXp&'R3F!=]>a@Zc -p-eip%qN+CAG/juXqsC0o)ZnXAad#NnCK57i:0?p$!)"ad$,^7lq\2#AN#*Q0@h(N -G?:%&kH%&_&Lrd)8m&JTNlEd=XCTsA7q=M@CA+cF2QLV5LM0`%C\GS\/dl&q^)2"H -'NG:To`o=kRoaM?4\9-qD#XIck[KVNIgZ',p;Lrnq!0RY>P=UQQ(ksJfh%l/%E*r@ -EqKS/WG<9[CKDNs2^*3c*oJsREq_;02`/BCWl;gR'd1+OLE*Frg(Q4!@EaL5jqbm- -dR+O(If!F":8jl.,TGSK3H*)%UoBN -Q`Y^\khpKj,7\bWBqK*3Ck(j$?UcgHGAP[YQ[lQ9JCgKFp_A?+$%BB)JbUC?-doLY -.fRp6K'uip(#+?o=_Z&(/;l!;n@u7^dM>3`Vn!2;iJ>,"G16';mYC4+(FN4@8ops/lTc5LMkME'RT/&r&(aTRnQKS&_hkh*gG -*@,fRD[=I@R#d>RPE;/uOLYsbj)^5`)3MHMOlS4L#+E%[=-B^'n1"g'ol)+ui4:@H -RJB*aAXPN'"-ONrPjB\2+`slh8K/@P;J\W*=5Ou`rhTo[+,k-#=Ug^C':5,0Qa`TP -)24H'M3t%iHU8)=e3Y8QQ^M9OD%M=t\MlZ_R;c*LRdB!uA3NC)hAf[XS,'k.[+nmE -C_"V67();SWG8Ojps=0`=KK?*q;msrl'N@OT$UW13VB"iq4FCAT?GV_QTbf2#GAO0 -FM]6Cfr'T5d\*uaU$*-gfOeUr]:[e/U?Y(0GhT?e+`mqpE6-\CMB&al?4AT_Pq9hE -qGj,u=.^C:V734p)J,dlBp@0$GJnO5%bF/gGjT_NRUS'41J;+fS#E)-\+8RV\s97/ -K9AkA*3>\N/j-\(RhE%3UC-al3a&M0?`TW(X4kBMqO+F2afMpFNf(gq@;80G)hqSAo9ViBkGFHgTC>+Y724X -dUou"^T4suZF_im4#0b3"gbg(Zh/e10'FIhargKC[-]BI?0Ou -M)pnIl<0%5)[iXXS&meGQ[;r1]%dn/]G8$U)8R[h^AK.k4=(4!OZ)]$?tqn/S2=WK -$LlZ"4\MbXe`"&$88[-T!/f5;(LOIq-cN`'JX-P/CQl^6P-)0)Ll7X\:Ri@)D%9SO -;i;1&]GJE>M9(((a@881r0>BOR.'1+>e=[[0kndK*Ycq+ToTpO;[1;q/f?r5V4>DIY+n6la=m4MRd!TgYrKU.Ze[F%V<;N4.N(aLqPor;k8n -"?`4-d/=R(/],"ZJtj$L2-h=X8S[d!Is"2d\@H4TC&QLoCX\*YC'HK)r>!h1881P_ -'^8!6ao#o4N"V3X\VZmhnRTtGEBE[+ceSoS4a#@>H-j*Oe@gFc4bUI?:nQGh'g7Y- -_7gbMKFnYdVc(cp?R*\9LN'-09pnBipYM"32/F?5B(Igb1<= --$3k. -D,F_mg!VbJM4\ab%*1+"V7oKe!\/BD`sXeVj$rl#)PU?;!@OT74sj"UsnRn$?\h;;l`lu'jAjg[9]q: -lZO3>MSWf/=`"pIM -a(+ZX*0sALQ-3b1)4]8r3M"K/oGS_cO%H1sC%WC8L=XkeXi<+6ClGJ!/dLr^I%YMl&ak/o-^4&qR+! -4.kZWEdsYC$3#7AVtp%65S55#]Ir_@m1i%Z>Z2D,nT87V`c6ZG)+LmLD]MJ!e0R -raCr\<7s.$je1[aPJToj6j)q;o&[Dm-o?F;!V-.hN)1Yq6I=iQ!e6Y-;>tYUL\^jt -9Q[*]92bE$1JLeijZ?7:o`[][+brq!J!u(2ra-57q,B%DiT^>.K/:u<7Kgd-6ms/= -_")uCK`V0kR"tLuFB!;AQR#^W*W)>ZV&R -A6ejtdrer?A_VE7pP%XQ??`73HX>p8^g`qu!>'aF!b)(&LfbE!J\/)`DL[aUX_W\( -5o!QVTB9!/J"1+W09"orq8d/,OT"^3A9fLpP@XJY;jCp>A^GcEmB^bP)5m:l9HW@] -\N^E9BWp4o=Z`Iqg^:UL_g?-/T -Cc`u[ZRS"Ze$X%>B%se3qhF.ADL88H\@h#%@h1s4M9LJ<]DhcEE-rH!B,#YTB8:-& -A"J13^tJaD5u;).arf]cIXd][)?+Un41@T)FF>N0drbOY;q3W^dJlVMiS"2uKJf$/ -#NT9Tk#i/6q(s4u[Mn0K'0^SXp&Bob -`]qG@FFd7D"hD*'2$J9_gAjr>#D55Y,`%_9t=:U!qePO)?%,\:5#u"@IuB(*LP?M%V!h8M"i?-Uda''Om;* -MNLpi7YP4i6Uq1/_Tkko[X -r-T"ur]S;TadI2uJ#ZK%5K)bUEGYHj39`!SiCVH`ZZ^4\o;=G,#`tJ7Amio0d5ko> -l^a6IF>;r:+X&]!3cf;^0X*,Id"H8*K![:")498NW;drll7>S#&M9q\[@rg3L=!LP -6th8fU%DBB/_SrLB[n&sP]i*bqE[YG4!>T]62/,2k=SuE`=c\[":t#L%-FT#&^k2c -"G-P&6R_sM!NM_il?c=l'gWYQ(k7NrD"&kg9<"17Vcl:O]$0sMq7_R>U[""Y*I;E="<`GCX%(,98]\"qZ1)@ -'n``V(;hd=DEl-sW-;bL;MAm,A1W!*'HoGcM,8*VJH[ihU22!E"2tDC34H8B!j,qBL -oN(8S?S7Uj\sGnOh)h`^DT1AApN@cc>JYQ&(#urnQLe<\,^H70r#^"nK2>e-a&r,L -&54:n9k08-!/11jpD3b`C]/a_f[-m_lLWq]&V=t&$c.Z^h2G2W1kIQ"3Y'q1!;hQU -'l'oj6EGZtU$[0,A5BhhEp[=@;2OgD-H2@M(?2u4Mm.(T`gG?s@si9V>&a'R,Q)S@ -iVk^RV#WI(!+C]GE6a,P6]J@X6"-[3SE[tTb)3o)@0M=h&JdFNR[. ---f*?Y+O2LM?I`U`sKP>BG=X0*!7+df"9T?EK2a!R(kju]`4UG#(t9+(I5B%`M.HT -Mp[tP7qhKJqa^G+'I3STiOprkKb.+qd%^E-`;:oNfRV%ts!$N$_^!Oi"MMB6=).\B -XEBb0[Bl*INPU!."RWsa2IVAJX,]E_i'_8LMR2:>6O,FpLY7#56Yu.XZhB^4g7(FB -lTMM]G1PF&Rs)^8L`5CE%KO#a4()URn8f8V6FAbiG@(+T0_$4@hOE,DDgh,rS&T^o -j+r2DE@a>mpe.K/?N+^Y$!'Qc=[$h9XG&<>f_Ze3/qMAq(IRDC7?ELk -E9j^2/p7^t2XZA0Kr>"2),T$r^7I."pt&^8SS,-K^;&9H#@f'.(UJ:6dFrqKCGi6Y -@A\.q:RQO(nD"4)Ua*@V,?uZ@[ -4D0rW<"UbLH@a#';c8*;)+P`[G?F4&LXUQV;:rQ`VtGM:eig2]m!Y5,p7BmC>CI>Q -Vl..s'6V9)nc-G#BU/m/.T/t/OY_Gd!?U:AA89G-oR<.UqO?(.O0S949p[/?4L^[M -$*bfKoUjQXM=hP$l?+r+GXLcW^A)OT.2MAnKKs3WR -3XN(dItrPo^3T34PP;nP(dXYe_3>kSU`2O/$c1U>60o[Zq@#SJD?]=f+FGCV@,SO. -Jii<$[n-o@&29;H,TjrS+.FIhqV/ji/OJ5F6L(D]_co/hJ%,iY_'@mAg,?6>3KpJ9 -WF?bLpj]$cnA3%(6+f9FbW42hsY5ScR`dP?P<:6:BU(7-m\l_XtL/OL82%"QMSa`H\])cs8?@\>]Nn(8 -N6&qs$8d0%r/aJYOZER9S&9LVK7=+-Zj(bQ'0&ShpgF;.f+_,`'KhhTHb^:UQA0HQ -UWdR0&\LTCM54[8aBOs%XJ?OeUm*tePG!EDA1!=Grt%MeWS'5Q\Mk11V6$/73 -r3/g&YnfX<#?#UI\6=[b/-U8T.cPgmEQ^W59?LM.L*CXK+UtpQM9+Jd8F2@0r4^AX -^J#%.b8eDn4N'od#0A@fW%`:IMb/TsItaBtKd\Fkqd0iobmqfeNr*7?peh0di$n/, -R':Uuqfa]0Ta6iCTS'2ef^2ClfK8GB+9Zc/GZ-CkmZ$#Y%FBcu"6Qj&`D.E4:+YE9 -j'&c76S7l2[0eh(d`i$l7tG4(%bU-LWocq?^!%Ja9GHqh,jrt]n';A+:-A,D4S2EA -G"rEFLH:V'OAhilnHB#`a(2*eA4JCr%31c'"R?AJZ3CMX;).U0#;[JpksptX849.A -7&X\)gYFenW/b+Q:ZTel1kMgB$rGah3f%'or&;r%&Q'P];(2'kqQpFkGte/Fd;4FF -iW?gr^()WcXBSmK!s9K9n^6.^;=*jNjWDnC+;ZUC;Cs+k4X;*foS6\XaB2jR91p`' -;(SqCXrLH=e5RZ,a!\M2"Gtq<$\AP41S!2t"nMMDqKW8@UJk!=dpQO94K>4)T:-2q -N^S<@Tjh;scau1n;Wcb#1r#<%UI:353N\!JV.Te(mMmcr^BS@5ElL2bS;> -nDFCbQTV<1Rp@2c'i7d;;,mKkeI>Ch4[`:E6PJrXZY2m\Bqd0"93,#E)CdPoI:i\5(E(s+;lG2sOPgT^%a*c) -1mMu[m;Pm$]Vl9?f.D&F4V:Et(/Sjc=)1A],2^RZc;2j0(l7T'A=->2GT0X]eMVhV -/V$piJCjaN$dEcq4bQp3KbA/Qc3S_*XS=6g."jkMf!UDp9oGB\kY8+lZAjnce%/o=Y5h8897IW,GaZ`2dI:[9FrZ&#ZU#6#?lZr7=s/_WQ7"X?bF0j7](WE@->.@`7\C^6Y[(EnL72Di'9V5%6(Z!/2q\L]I< ->ddV#Y8D=V1P8=cH_/%#R+]HO>HOOP]q8NR]3Eb7>:%$grP2YDMhbb2L<@pK4I:bZ -T*3TFVTl*b]uQmaW^i3H*:_AqrQ>HEPfSLE>SYRirQmg!>.%UH#))cg8FA6Rj$[;D -(!0a9%%/?r\m*.eh6#C:]tRdsgGB)\h%R`ei -3Y^-rqqdkoKfCY!r5i.Hi*P7-?L-mRKJt+W!iNX03JnN)>U\3Vo;6JT#J#1ee_FHd -q-T-X?\SA'7IOU.rEn@!01ja:N6k95WZ8G;hHg:hKQK15kYJE[+_Y"Xcrrpd#a9p^ -"uM[AbUhZ6%:J$&3-"#IV2g%GAB1Q2BI@q;I>P@@eEH -P)Nf:*F[eG6jiR@fNoclU.@#^2"PeH4lm@!gV*YS-d"+HlMAC0DSq2Xd0pak>:nh% -/RmQh1eV#oq2S`:9-<4Bda71p;p<0JSC'a`(QKEm`])q<)rm5DA!j"MmQ>")4[#h; -^`&l!;;,Jorf2]pi'p'D?:';Vk[YE:i=^ZJDE['@8S";DanTA!]#lS1:sO`Fi_\hV -auN%-OM%%W(M5^>5!*8WRBkErOB!,o]^2.E,@Y\W?LR;ZW:j`FK1Pb0_ -!?ck,R"$l9Ipu-1k?%t%8.&uh%#='2#Ja:@!-s;i;29+5#<$F3rd\YlJS6*VBJ+pN -5(mTEKkOeIBPrT=IY_ZtM.iK"]*n+oMW,5jEjd+Lq0%Om"fkm>7 -D6DW1^>*;FD?lP@KjLF):jrOT'Skrf#P!O_g_"!bjX.-SDD2Fc+:\Y?7"H2&"\:A' -Qt6FRIV8B0mdBO]rpXh9nS]K>D_CX"54ibgol"11Df5;fIe[iAq.ThNLG#D-G^0L\ ->_et]"OMN"?o3Yk8Z^4."8E,a+;0I^8qGWBK`EOcGX.%GBEacI#=rlRSnRLde8X9n -nF$g*pC;0B&TJL]98@J0LM'?eD`Vn4*VCLOFY=eY -5>lVo;ftl:F^J3m='0T`=S7/HFg"tk^KL6U>BSP&EIU2bB-R$[@2$.<.ZW_$&P;BQehjep(1# -)-)[[<`a*3GR'.O^PjEB8.F98L2?sFQoHm"R@LSDWnB\&&OLb-Loj>ApSWC_hjA\= -RIAf#l -Q2+h4$\GS8a$'VrHKg0`]X92'`;+VGHS:c`2k'V>ZsT`0qerrjH7>u/6RRGBjE3*c -L^tC"9B&0j2?`4ji("\&<>_*5P=^cDfQs:K(]0!-HuI%EHi>n7>gn-%r3*2J^eCcp -2&pWp\XK1uTRX(GKVga^q`iPV=4@%ReGWPlr.!=HJ(Pc8;'Oh=L9`Fca??sF@PWnr -p3"EGF*3.aA/r[?a-._!>WI1jebtQkIW+Bc;YU^V+ho\qI0\+hPtW(t'fqDle9&&` -=E8gCe:/RjIj`fs0D%=:kPno_Iqb(i@efXR[3ZYh?GF^m%-V.ni-(nP9XL/m!\s]3 -@R&b2Vu-/^s*m8*nG%Z+,nl/)@aTG=Ai1Nf7q9sB"GT>iP"B34GsnN0/!`h>deSR9 -AM]cLB%)%Dk&ibW:M8/Q"U9ZJU/>URH:90G9;YX%eG=kgV,N1;?gkJIrUBE.]q*^- -rHc9ZBr`?@dj+f$*Ij]tf%YV`rdb?id"-ODYrY@(YgLek93S;Y;\N-_>Ws)=MoB1G -3;dAU*KeKTo%>S6=#62fB60L=hM47gctN(*>t1#XVq('TRf.EM>I2t!2HsJ,hfZBa -DKi_+pBQ8ehskqrDC6Nkal[V(gqJ7sU!r7KH9H_TA$+G8@/Jd[#D^:Ynp,W>In-Ee -lh5[RhZ&AOjn&=sIc#Xqk#Ueb5MDrjra1cmq.)FVjZ'VsPG1):9*[u_+rMK`BN0JD -@4Wu=6Ke.]'Z'm-r^qqnq)BRjjY3uiQ6Ti;?BAqG>/2'Fe7fi@dCaH=a&1W;*ll\+ -JKW$3*/Pl\dQEVh*(Eg)@M/qA8h2"E\9A75#PeK0/eZn!8-R'0?8NbdBgR<>Am,+V -S&b?mGfQuI[lCuuSDcM(;loLNcVq4H4O:@hrBS^D*+%FZm -Rq3kne@dS1do>-`:=I_k5u?'2*D'/YeN,a:SO`M$BclKbFFT__62kAWkP9KlTB2a, -J!EA%r_JBKq)0BuQ8OPLPJUK%U^?k'9XMRjGoMEuG;ZjE+B<*Q`?W -f0.N'h,dn8G2:buiHWfVEPR'nV>:+%PK3K63nZhdo.DXGGnLZ1jNrL.Q%KtR?pJ>7 -BRem&I3jd!35$c"@bAsdNT8[B6&t"cr^E"2R6F-*jOmR2Q0$\9$$g,cSnXYUftMHr -k?6YeT'+f'I"SIliTbTYkBY!qSHbeeE#>j3qFA>RJc8Z.3j,Ze771eg@$,*tU/[e! -.F)Ye=/kJ.BPP,bTP`G4iOJ;[T'hSRoT5!$Q -h7msbpKc[%hY5,@p3[tY/rufuL2$X&(3Q`s?kGA:TB@LCs8>"udW.0t]Y7f6&ZO7Dd($Q/>_ -6^duaiI\,\MQhhnfO-;]^;SkR.j2bS'1<[k&E4s(Ls[7h7$s32)F4m4>a6h1.>LU(_;"8mI'U#nC+r0*;L:jNV^*=@S'MNK2g -6V84b.-2_NPgZ.&8s4ZK,c[n>:'ncF+P]3"GV"bE?jVna&-p8NN^B\0!/Pj'P9;E& -R*k&,8%F[9VG,1$dl(l5ae^fUSC)rZWbbCt[5R1.h4)lBE)%:i39MRKSC='O:6dH[ -hOE%0JP?CP#9F/+pk&XrhCOPg`;`@&l5LuH^_NR(I&="LRZnk/:mqh[W'q)fe2E+Z -asBF.9^8A%?AqaM2+Hfk*M_,5OAZuc8EhEHUrIAsXNVq:eL -?u.->Ygs<%fN@ZGXC[Breiq/X)^T%]V3S@;?HcQA1jUVGrtu1"p`VIW0'B;0XpK!8 -/Cg=J"TrDFbYaq"!mUaYR -f08D()l7Z0b2K1,r*kL;r[\.Tb)514'2*Q::'H/_],,5KhL!cCRS_Namg,pu)i8sG -V8L$VcMLtP"KD]s(2ubEFi,h@0i`ha> -*op[tP/G9-%h"Ko[[,kHTQeES?gINFEFp`?fW,iuggc90ed]XOh]--rFcQ"S4ic4T -+ClIFNaZo,)+&0g"^F!Lgk>9=N]AZ6Eo\W8Hd`V&r,rOd\i\tXN?>UYV;j\WN3aif -bh8%5k$6<&o2:RhH+u=O*9E^^VKL2;h`PPAoh"5':)D6aBJiChTPiTA'EKsm!o0SU -`3'plTpBk_qK[EuiCqLaVbCfQ24J^5SC;e.:h)W^W:_L6eCpNoC7SA)ok(>VaWabr -;91OG]MH-*5_%c=8.d[aF+-C,J*;<%M"S[(bW:)]C)rM9p1DM$gFHrRg(UO\VUaDT -?YjSM[C5ekh:pW>fsV[#5K"rf[&)$dg3ZU1Y/$4D)/<2/.6p^QQM&r.gM$&(otGY4 -pts+*Dt"eO_"]8\i7oE-E1Rf]i_/)I!uY:ED'*u/8H05$6m.GX'OaO^ -oCnD!VuqT!>cXfDI\Y&3QW<=A?`D8pDq=dJ?0gU<(_AlAJcW9JIA%QrVn_X/XI:D$!^j$q)i;=sVnD58*Ga[%6hT3^ZoB?l3@3;4s -'Y3$g]L^?rpbDulIR[4OSG2IIhRs`%oU_]&qO^GpHrmHChS7]i+(ag;VmZ6AXK,bA -r]!A-A1ZHu:TVga4r>u?#Dem#O7@B8qa=0N5,6[,+//?*=4I(R=-S&][J'U_h>?)Z -n9uIuprRW7BMWgF$MP!D4MMX4qkJ4hOFG)D)eCC(?i5=jp%CVrr;U^3R]jg5:^6u^ -$NSNa!>#nF9tY`6Qrh);V[7+nn(Rn5(5a7lY=a1,U$TsS@/pi<":tG6:d5)%6Ni3& -!H:s@:fdg^>6WA\"qY7EcZEm?A/+EO%rHo#BXjAo8.tuL+5p$(Jc6I:!j*lp-883u -d$Fm>RgDo^$':`V&7l31Ws[4W$P9WP:q$gf_IuJfG_jF+M.XC/1+o`\/ReVl!.7iO -FOkDp$8CKI&EaBsjUSNZ%`=bDYkJZiq[_'R&.o!U;$KPS@'dgi=jY\)$%+ABnGT.@ -CJ9b&VOn'sC)eCZ"%S)Z_EAD!3tF%8'G3JB0g>$q#o(c_'bO@Z;-+Kp>8>"3*[/]/ -,fh(dE"=,k'Hipfce8rG3=Sg;=5j,oi9qL[M&:,n&&uD$6.!@UJ'QKl^;5Ykk5lS'DMj#E&cc8Ibat\GH3JJSJkA+ -*tdr`;6:q&o"OY1+;+c!;?n>-$R!k-c@OD5BVbtgLAjL=+n?]:%^)-5'f88u*Loc6)#X(e+!/U&Glq -"XgU#+AHsKn_jAIU=#g+$cH4;iM72W=DZ9',#V>bnk1H1X"':9.V^I\EjmQ^].;=E -//#iO8'ZI\1F&mqTBZ;+"mfRsFVul^QL6AFOaMXQIi,7XD1X,bd^(TIq^W;al:2A9RY6D4LBG5%\t'CgbtNfP1`^G>97&tj.Dl%8ZMrY5F' -'JiNF;c>]?;*!*l)Dc"e;l;[?X#e_53tkdJ$!S&d\Bj,W&-[jqD0lMK-P8ZD(;T9^ -+_DHSSeJH(4qjDL1S6j0lL/f#583WQ;tiM?q`iJ)G_)SiN[GEpZL)Sa/kq!9@3-3" -X:[a'$6_,eTfa%IRkuqg5'/SJ'K84?3n*^#6ki!V<(B?@917*0[W*rJ7jp!YU$a^fa5unaKj9CjW$/p[JT]?jG -U_:(VntgoN1qqUr"%+fS/^e8D8 -U0p:T%mW#m@,;-R!#OS%%od[F+Ye!R-[40hGS_dI[lJ]"Mg3j7Go)YeC'%*$D@U*6 -$fKog(SuF8q?qLZ#D).N,1uJ\>?X9fCB/;m+Og_+a:3]8$DA8\2h-'RfmVK(6hcjp -=6G%!l[IIS"_eT"('Y*(4r$$RJ)NV3JH^$9Vfc[\?GIU(T_nilp(*fDE54hF!I>+r -rI,R;K(n/T(cJjInUoIYKG[(0=@VdI7M\7f&bjKgJCY#`q?A,)<;)oTmk,\)p&a3o -%KLWJ!I>,=rI"\_GBbp"=?21^22K:EKU@s[=I4l3Ru,Cg1j3gS!3Qm`ZjoBu?e8lp -U$*"9Gk1VL!dDD7!-MK^bstloN>RM3=HAGS>D`.4NYpf:=Qb^'$8co:J0A#%!B5O; -W!qUc*Pgr-cS'i/_1nU9JiC[U[r)^9duBb;OkCt=UudWI/!AR=P8Q0?8ustf?j^5)+Tc2;i?/jL0,$oiQ_oUCJY%P$K27+5c,/RoFk4>T_]%d -H<6qH=uY.WVA`sA>%a_$C-NrLSb\P83;a-9[>#$&OHo9<5Y[/&WXRgdPTaoOi=B5,4P*`2M8'6pXDF\Dq)Zidd@d:(H5?tE]<\YK64QCB+9 -)*AOWOZ;;gY$1.t4#a=%0<_uPZl;B>>=Y%A%tHX:&D,0W\$:JU&-:MlCLDRYTW_@G -]sbOgI)0h2!=>RV3O;pO\/Tq#gI\oEMn%N&\JLE*p((dOc4TgVHGRl:8*RG7CF/RK=ngL\%@j;>M$QXgV)/`A6'$S5e%;t[LHW0UAOP? -\hA4,20HDErU2D6\r6uIGRGYoSho(6\\#N0)nd43]_^+5YHcOT; -AALi]@;$"A(`-Sc&0-bQ4H[`d<"&fK%H)Glkd>QC,G)``F?DYp>FieSDoTH%bR(Jn -r5[$ObKSbf+:'j?_#>81cjDi@L02:-#dnf#YK_CN?p#=Mh"T#Tq9/1"boHo5>mJ`I -$O[4tI/t43!8YnmUW'lCYn&H._"7_ra.@j<$c(l"!=M41H-cEee/\A8;H;*"9@Vcn -eK%Q]a>KdGItrRQak'88B,u?-TnWP;L"rmrWOadJsT"a8hs -ei((5kd2F>p]?n6FZ?4QX1$fSr3^k%(c[G!\K -UO[3q^m3r1dA]DBli.(R?Nk<'e*u6*nK/G78'\&a8[A$lRsqQQ3]$m25QWp]ep0_% -!4WO]$1m$ZoG`MSIn0.'9D%+:D9EJ+!2L6n=q2DbYs;lCI\lJ`6g=TRLOf9r5B[E" -qjV`>'"mo/rk\B%LK;/eq&bgr?^LSB8?j)jRrl:QPl^;]\M^XrFVg\p$dN=0l+=S%T!\$<VjMT4ZgaOGB!+-B'hOr5g29duX(B>jdq_[GLG!]jC/og\(RIJ\ba`Qs;Nk&W+J9nX/*T -59Z02AFc-n[U1bWc"?R8h"H4`U![QGRU%hD;5r)\opX][^L=D#D"a?([bl)8h/;tV -h=gl"_;TA.S6e,rOiau_/:>SI\>#@!QVMCm;)QjE)"r<)VchAQnN2RL#I)DHr!n4K -rEdfP42*=^RECHYg#ZsK7J%5XJoO-?/5Q_D!C3k7%fsL#1_g-ZE-*$)6'.^PTOOQ?'6g39i&k&u]:D?5P<*'i(Z#j=i7PU-?)Fh!=D]D8%e9;s(Z1NMg -82:m7,"T!rO!I:P<0nphE:f`sPsTaY>Dg?bLbB6-E5jTTEpU;KN.UT62Md--l4goB -CtA?PA&(EP%O&Hc-CI4,b[$,0$!&GfEeHkGcnPt55YuP[$UdgU<=_OG1h@b!;D`5< -85b\;+XYYpeMg6%[.QX[<&GC\;H1%]:K1=O#r&=D]@-SBhg"> -P*%g)(*].m@9Ag5BI].A@)OdiUO[>A4nb)lI?1%hmQCYNE'eLQ_?l5V%>B&&9%R%E -cV*(Q2:ZeSGBMYb?'gi6H/:KVmsAD#Wbl!J\+TcO?oSo,Jmc)H%tn@N4&;(#*XT0Rf(uIA\s`@9u2Jj2ICa8!U6;3K3,[ -eocsbH1lTXB:9TcU$+NaO/$DM.WLC2\os^EC-%ZYWbT,RYH2M#f!het](WnCCc`EP -h._(mGYu4$>GaEL,:L#V#]ht)ILi*;=SJD>a?MY>#/JY8)']F6?&Ks*niV+BaDu[;/'N$q50;)k]_=Y;F?LF1dWE/]:XjMM='*sq]m!i9/c<:7;O(^: -3`l_WVU]7:LEPFog7Y&-C(Gih$Ln8-k^m?("&4G>p3r>al185bYNgHu\$bRLIeUI# -G!?e`npJ22ch)WM=4d.o^N\T1IQs1^qDB>ucsDVtmU7@:V$,4m(6d=sAF36<%J1hVd[VDUiQfc+FCDiP9e/YXNc-Jj9_$K<(; -L/Gl.Jb(7>d1cpHTK\d[9L;LjSXG;tk9FI&Nf3Hl8P'dK,UBa\OqG].8\$i/AFuLY -&r'7U3CtZ21oHTLW_9:HTR=VWF'AWXI0[P]K]YC="N.Y]Vta+]\VVX[ -1mOI"(1^+LPr!#E&!\q?Bh^Ue2.j5IRhKCN9t@enB(Xt3dl@iX\9K!JTP"VLKJs#< ->WtO5(4a=<3.lB^0uE^&:Efs^M.spnAphgpoD3u63X%f_$l5?I-A>:-)+/([&#'b- -M,?;_7;/sGTZA08ZS[jqS+QM.Sfod.8!m#nCi_IDF3oapiV5CVc -T%.#/s']beYI54dfipOPD/H\i[he)T>/HsR<^;W\JRh!WdLZth3$=;5=`'2'jpT3P -E!LSNkhQO@&!GRQUV[FqMHb@@m7#pEf7r_M42H1S*P/p#VY+9-fm@X[n%KUXq-PpX -H&C];&L0h%Kr4"g5`PcY!V?Z56d\r`@anT5(36\&fWT5$jh_gl#iPV,KlEiU^6iOB -@D"UUE:tBl(l&]43DkLQK#O7]_W'R\'4\l=/mA@^Wm=W:2O$UO3$jg]W-K0\6%@3,OQGRX[+ -3S\moH72'QLRW=]DTJ6d3+kA1d;kOscPbn/B>"&4F7t+1)?doi;P#4[5o:mXit-Vc@KF=fZ[gYLXW3 -L?^#p"KN)YSDdU`",>r'Z'AU+LO9oV[b4U_-)$]0dq*8gQ`7E*ce6c#=`$=$[3I)/#Q,4cg97:>d^6_,1IE!g(SPA(5q^::HGF)<5(RJgd@[E00;M -YiJO,X'!WY5S,P6Gk6Lr4Zg`0+%bDh+/\\=VoO+u=mLK[YP'$Xfm>SXl,oO5b5q3> -S]?pFI*Y.\c-="VnUq\\X(kmK=)e%T;tGE-chX2##l@DsomXC%q]BJE_t613"@0m;o#&PAQ2@Hia@74a1nIq[5b[6@ -\.Y:$8VQGgJ7A<*d48$;fK#7RtK((`8.E"DT:rRNc7Pmt3.lkRZA]A7m`cPk5KP8Aei'p86 -5hk:NWODr^Qq$%r^GmGJa;?4\"$GN0.g(Y2.kCeU@`GKZa)#9VFEjoeBud#5#BY=5 -`-fVTIE1Dta7Ol&"G"Q-J]K*ga>AOj7"iW\KudeZaE33YKS[^6M9)KMaL$lH`/Mde -NQC1@aRkP8"H^_>Oi\l3aY]4'7$PemQ-!R&a`NlkKUBlGRE;7nag@PZ`14s!S]Tra -an24J"JEmOTunXTau#m97$rZ6,D?Q&b&!qIFK!?8WQKUgb*8r!UoVYfXNKV*9(]7. -r3"3GZ-*ieb7(`#,d^3$[*&GJ!`2PoBIhI;CfhI.Qc*Z3L`7dr8gWeO/c/dd,o\e!\iQ_Sc9/NHe -9R=u^f?QeHc?/6pK]p^Gl-?*icEuo_`9be!mEXe\cLgSO"Rs_On]rKOcSY7>7.ef) -p!71BcEuTWK],^cj%lKHbtqLDJ4'TD0EU`bK7Fhq&.K`hX0<5ZTG'!\#[me]2?cVu -/J'32\5@iC:/A7m:pg)G]aE-*%FEW8d*3*JjUb8]&CDd9d5;M572"!B'@Beqd:F-A ->ftB7P5kb)c_<*RWsidIeU0"X)5.+jqY\dPW8t73p;]-.6?OdWHqcKdbB6 -mSSZS;2m)(`81Yo-3T-2!k::GE%qFC0EMnY!HbV"M4-jYW,<;_#A]QdH, ->`,(Ieb*;#"^omr@Fc[*u"`W'.ERuLWf/"`(aU4m6qZFsL!o`7L&s>E[!]C`M/Bb\YoEGGXCf]Y>fBn(= -ome+NF4_djfJS<67>0;kU=\oD\;Um%b'O5#pOZUl=.,l6o`_W*1dYg-)dr -Q*W&ZW*3[@k&s61Xgnk7dgblKE7C530 -\_Lc9gi^ZmKui&2j]jeVZp7Kbo?\7l*Eqc$eRGU[KEo8o`8%KCh'LOfe]HWIe_Off -h0%?*JAb_J&NRba_e%)\Ffj?Q248GF7IW7fA`/W\I+uQ/?(L$37H@]Nc/"BAhKA#< -L$7BY\6`#:-5F0VbKs@fXM+QiU-rsiMn+F6nQutg"op7X_rT[VjPOP1hc_[>SbV*- -q;8%FhmH0cGm-0P-Nt0>RBT@hfPq"<+'+5a372M(ilU+T4b1Fo!KucBebn4,%rja)k38t#dMd[QaG.4't+s#cb4<@!,TbW'k,R/S!p+ -go`DC#!h5b60'@ZY=:_mN(kqAG/g\ -##OCs;5f4;(R!.YbB">l8-,5N4opkU'JNOQ.\;AnA[Yh7b(Au*aE`&LbM=tu%- -Wp:LkMTip[.0R(Pk5KSeY'@bmDWdmCkI,a#`dF/6G\&nk4j168VH.2ji$tu+[mKE< -3':EbIV<>=BPF,PeqiOUMI@_k>[V/b'3_FX?+n5`."oehBtgA,DPUrpRd+L^ -l?9)jL8^'>PaC&%4j5lm(04Vo$7Sdf?PR-66B54ZV/%ERlSbaL2Q:Im[HhG5lZTaq -0!lFQE4U)f-S.,8rfK)1*3#/T[B+`(c=m5EG\7b$Ai`u4us4j3F]7L(,,OZG)a -2`!+(_83Ol7+i($D>)?<2Uu[\iU/&PmPW"$q0hS'#U@,P@s0."Fh^*B!f/035na@gqml'dh-L[Btbark>5aM/@V.Z+#!Y7m*4,c-ah.sAl -Tl1G6Dta0f54ie1!UqH_ZDugoL.kd!,Wef -E(Y+h57m?$&b.4]^b64bd>etlm(r];_V:l=TpQ>P!p;R[eTkf/C`fC<%rpbBnb$/W -2^%Z-+n@!)^c*=?&[WKc\>mFJ[&3]6"(=U;Kn=(-E^qYMs"$-J,BDs"o(Og/")[Qp -%5^%LK"s]?K&VgLD="=]Ba.-f1&Q[hhqTk:F13^l_s$\&4nIi#oCkJTG;5V,;S$oh -j)LGJMEt&m%%2/Q-$,l7X3l"'6$/_kOO$16a%Z-W:%[H"oV)n%\W0.tDnP+%R8O)9 -`N7_U/fRkfolj%na%l;o=nS[ros165H7pMY6Io%s%uTE3nMZSV1'/XfS1$WJ>-`:s -AbCbqotP/5LM6CJBr*b#+WI=,b0HCT.76'5oe'=,0p.#r5(WT9nUu(/D`mbiCKk.\ -GB\9*LNrQV(O'b0`W'(.8U7q?5 -1!c-]a.p9HUAF&UqY.2j!@)p5A].8a/up_$7uVWl%%^Wj`7MJnc[h[BmddQdqmW\= -fsg@r,Qm/RiA>W7;NLIHk4Dus1eK` -c2?bMr:&/4_Clbg@mFpbV:jqo'$6pmjS`U[\b[W(AU\q!d/B`(I/ht"a5$XFh2Dlu -VHph[9'Ya*iLir-#V7`5\-OtF0797eGlH%fT?D\Mkb0*TI^eYBa6`c^h]D&i2lh!L -TC@Ie/%R\gC9/6L?gkg?+QN"LrYU'@Y*5C789XQHSDh -)5P,d1RlX%'=lWdF$H6m-e'%\%ZNfN;/%k5=m]7*AZ"3t[p3ea=8g_;GJ%7#=1dSfrI;UjE*,4L(Cc/<@W>M_AiC`k -aCKJ91n -ID=]ZG[*E[(QHJrEd:p(B/cC-k]D,V5,VJafBd[!2_0B%\_jsl]KQiBQc\F\pf4.) -b8@s3Djs:Y6ca]FHORX7TfAtD,`3T%Lh^Q2@f^E3(>n -_N;\f%)\1^4UjdjlpD<%;(P9P`,SIE[l[H'>o1KmN+EmHOfWC=`t?O<*QOkI; -'W!*JdhKJK.oV]"4\sQB%7O.DPq>^/eJ1eY"'(@msKF_[fc79o&Qt&/%Dn%QINo;/43JHV487;n$WE:P^><)L#JD:*J`Ve -2=$+UR'#P0iei[5@LL)9]J^%n\F^4P6f9ME&"o(=3_jjS@V:XOoorI6"Q<6+'G,X: -Mdnd8H(X+8#(<0.RN@H^BbKPQVd#U"VqW"Fc1@Io4jWa@%n4nefkM[jTl&?)hn8 -(#k?,JsYKLoP+fO\^3>@R6W"3!S4O63s=CWBl==lpugFqh2e\lHMt=XmJC5YZg[dJ -Ip_aDT.eI\r?"hcp&1M$h=pmjO6-3:T;uu$Hf#A,r8)!.KGO`hh$noTqgjJu"In$T -AT&]7#=)HL6RZ2B9rq0m@TY'd`#4&DC&UE>4U0jJ*J?*"&jf\p$/n9$Ki"of6J,QO -iIiq?:sKt?\3C7m`&EH>cr,dPXs$_'AfIGF,J<1.#iIecM!;1;*Y)(?lj]Q036DGEdV4X]=o -Tp/H8;G((d.HNq_P1$L*b1@RH"3B7,@3gg5LQK[?_&/9O82CF:V^j%2Y*]k4@8'gV -1">!XR8Y_M9\Gsmk(M-N;bh(%=fjRD_0)-/,%F?S_C`X7LPRL/,7]gr%$Q2c5=b5C -cHmPZ!;PI]_$"A)0Z="/XSACtoK>0deg>#$h4R\eJl!?n5ir4&Ti3T>X[!`h4=:X#7?5K;K5:iS\-7i_O -Z*p[`>+8eJXA,t.A\6E`OWHYmbU!??YaLa6!4MU6&\XQ)obEW%6#Wqgo5N6 -7i6.LPJQnmX_@On(t5a]U8DADE`>nq+Kp)%S2nC\le=/]J7[:#Oh=H\.hV`k(n4*XuN( -'X$*mB3A"gA5(gEF+$-m3R9a!>j\*R`d,m5mlkC5.@YC5JWe1nu%;>SrM:UU(-:<*&%T@bS8)?D[1.^RlBj)#tGPE#MF&I>[ZM$ -KK9S-h9Vkj?Epa2Vg7`:n%O#&rSRMXJUSWg]D,E]Z)@R^&`W..#T+["Sp+`j+m]Tp -U-K(\P`)pJ'@(f?45lghK(NB1dX#7pl2=,Ooh)jBqVOD[C>.SUNQ`\E"g(td>j`eo -C_umGH-_/A_"\9\`H4=1nbm[Qp%klBr84(:reJnt?Vfs8;ePZMa3,uuAj)*'^`(en -:SiU+^d+9O[X1P/n`);X##EqL^M^6N)#*EI?^:Thc)gd!n,@gor;Z6e!&+QEDts3=iXb5q$Y]Tt06AC1:5ImL"n$@4@,qN*":4J/%:NcSJKY$>nGr&U -"R1sIE*3@K>m9_+"u'TmCdeKRD$;,@'W@Z8!O`G&QJpr-#UAiY5V/ICDKuHelgPsQ -Wj_]LDZrt0$8+1?OJrSkXU=R&$S\srBsA"ATa(`J'VYs3^soF#ReDiiDMp]?c>*KS -*9$3Im>2V%&/>T"m0jQ@%jInZOSKEkr=AE!&2=>"B?q(Woa_0_!Cm\E!;N1K*-]=, -$k0dZ5W!`m"Gl2FLi>Tf!7_+-FV,3O&Fi1#`((B$9bd+p'er]'EEO$QE>4O&('8@X67*)'H^(/%Zk-k8^c=ePY?MEZ$%+*?jts+tra7ngO_J0F=\($K2Cr -^oZmagm9-((Er,U5WK8#)'Z@"+OX6n;C*Wp>p]&M-8K-ZD5ANkD#V\*&hRFe@%9J) -C>;EVUsCHpTqi*i[$Cb$*-,+-nl%!;od5iq.PdhMEiCOoXM&YB.k^2'U'bk_6L>nE -bRiR#B)lhqBXr^&.oMoeEnL2NY:]>(/i)N@Ep53UXY!H?k^c:*.^naTfVK]i^rjkc -E^g.lBa8\M/TVX]-8R:'*AR./1,C43F!u^*)(i'dp^Z*g_9rg$A8hii`dfCt&rI&i -7LuGq.8b^Qo+s1r>a"\/2D\o&F(mP=D)UOG23W.=%Y>h,AEQ4f*$F#B%D`Lp&o\4/ -%+57f./+%s?T3%13[\Dr'<+%!XZH'Y4#=69PG((?1hTJP^MVL&+rhd>5&ZAknrjFB -l0s:g]fK)a4t!s(F6Plpm6:.35;Vpk;r9gAL04P5$_ZS/8/_ZRdkil+!U$"1YTC<= -*")cO=[eG#e)`gCiBlWH5BJbMF?)^q4[\j,0N9VlCu0.u$B]6K3'`$>``OG%0]k%. -H48")<+e[6K(4BnMR5rB'Iu\P_aH>482Q#kFGWPok=9WU_I\[G7?H>"FI^-WiJQ46 -lkHSOXA1,GVSLi1P`nV%]e*3C9Jj^^FNI4`bn[Ut9e:t]04bR<02:Fmo'@'@Z#Y*k -5R!1^_9Wh&oA)pdeP#Q4.MU3*FU:mP%8c^/qDA4LCVm,]$LQ1b;BX*iE$@IgLG/sl -Gld+>!'j8OE-_nT%2i/OS<[t1`:4eV%-Dr_@!Mu%Z -JB"q[f,pY70W+o-ON?A1AQ8=)=TWG?opJsjSQYWZ=tGk>or-.*)!gbniTa2EnD',T -Am(C8^U3l@rC/6!%:JlA@5\gfQ3C]t;=A@$66Dj<.C -Yfr`!ZO*:n'R'_$G47lN!HRohF#PstG<%mS.rplf"CW@6G$rMB!Fk\)GpDfrbQdIc -YR3ZHF;JM0j25rID0GYnG;jYg@j?/@#>HXfAC>lNL,]Z& -.tZ]l%P9+AMujfgZ4G<*H<;nRfJ<.lp_R]++@-L"Td4VOI=Kl]24+i-G\MoBD2.\@ -L,`TnY(BeFQl2R8%!=,'bedp?dn0r-#T/b^F,&[P3/Pr5_3HU/R$BXEL'Z#I$3^,3 -C2=>ia:JIgHEo8Zp_/Ebat7jXNB#IJGhJ(_AW5:"Q(^`]7?iB(\PDQ1(G0QdB).L< -+&cQ2=s.035^mrcAm57)XT0`0c#.&W0VomgZD"E1!1p^9h#q.+-&-Ufps5/6i[\-e -PW;0sGtF7++d;^uP%aE4=XFJ,ad)1fZEjPYmj*Fo&GLkE"O]aAG&)4I8ckC\o'<"T -9[!h/Oplnh$XiN@V$:1>!Jbq`RKrAIfr:FNXd]'j&33[X1bRN/Pm;*6S18Co@)NJY -1r-?N,+0-U5VnK77V%D)Dg,)'LQ&%sAkp-6SA8P"/BXi@M@8@pa$CZ6H3hSpZ_7., -TfNp^Dl98=\EPdCI>dZ9=t%bC%/k_!O:NUJGk_=LDO2IaXFM7]9l@&Jp]>.4*U_2k -T[4#_^S0@h]K-q-H>07fD5Q`fVE,f%/q\bS":3O9";*'V!\j1KNL_n3,U+pRC;L(/ -":/e%%BNG?$Vk8: -AT9-b+EC8.[!/IE+E'3>3ltN._lrq=6 -h6K*dO@PT>ltn,7Zp#n -JF4L5%`/Hj,3PG`]I18#>KOOic+Nr#P?Z#:XoRZHs+G$?,c_M`]RhPHtgU5D8uKna#nLbI!NcFIE28: -a?50tI#5qWNQD$[aZPj1I$r*hS]Uf'aulNCI&Y9$XigQl'HiDM4LNA&\')G#bP]?& -gr[c&bKP@YbrjCuI*^'Me]ln&c2?\K4R(-2mEU+JcFi\nI.bguo?[@1clE#24UKJ` -%FAAmd(L+>r>!_n):AC!dQJW!>p'j>PS1fg$XhI(!81i-.@94W^:Wj`G>k<7;\J$V -"q+@2g-):dIAtr6XkN`YgHDt!IC\+G^"`M%gc`X3IEC9Xc.r9Fh*',qkqqli#i'%2"I>?7e//Vd'%:Qs[J:F,H"G$G> -]&"_'9lH.d:3g5:)M#s:rE[tps5X(^j;nWg5"Xga:#oVXjM"RRr`/'o8)>5#!$5_) -[R]I"C#tq+jaM@6hKS-HH0>0TkWX@WIY$^SL$675kl-k2hO3UlS*>Bml9:p,IYm4D -Xm5njlTV`BI_"dY^$G[6lorDTIDtKCVdjs#CppX%fgG]'8/ZSg3_H!-lJaXj]<8;bFhi8bV9-oNu]ST5jM< -Hh[P$MnaK2C*iWsI/_&'!Ts`FNYJ',>OVM]X_.Wq%quH8$i'b,?secfAf(7"^%agu -r!u$hT?*^5^\faFX(N#0+QWYQR#p3tid[Wl?nQ$:Big66@R&3=C5;`%r#cOF'FkEQ -K0eH-QrG[U%>R=1&K$a(9MJGS@e"-MDD`Gna5`mc7WNlp.7u@kTdr`S!DXu+ARM0*(.+]9>mgcQS2#s-&DeKj -i7[ZaK'ja,jT4e]WpEL0_n(8WJ>)HqK*QYf':WK6P[fX3A(F&VUmY10PHq9p8Q%C@ -Y=d5b[51K'11`OC;tU;];,hZa92eg_78m2dBDjJb;cS6)=OqVKCKX]gV/KX@2K1iYS0'NWd0 -DIReG.u@`fU-iX)Gih)KA,-).lg5j`u#ZQtCVmCRJefU1][& -H00IGBDMgbTkJa!Mj*) -p^"LD6]g`GJ;22PT4?M#H]K;kj?!KW@-/5p")*9tN$Bcf.Zmna$`@t??P11b\i1SK -EVtS:a`;d,/'B)`?SfZBHquiKF55qCd<%N!6.9<@^Ji[*I:ld9Fo@)*fe8m<:X\sM -a)Bc['%'0PMPOC0/rjP"at:*>J\3jrV]ah:*CGotGE/@_kWFLlJ33,p-]mg0*M]9. -F6b1bg`IJf:m,RPih;_o%!Y&5Eg!!>D>Sdsa*5MrJ*6_/5PP6Z?k`]VDrpl2W"B'g -0pV -O;Gf4AddX,1^*Qq%u48/"iIi2JuF)/+o(725gXER^kffnW6>YnLgpVHgb6OkH5?Te -6AlDP,Znk/KMcn*7Hh8c+S90&Od7dmGgRF;jC+%1Ji?-ni>Z9cDiR]G3_+0a)Pbf/ -O-0-#8,30.9[%[?EY^u4Gjn08kaE8q:e(ndXrrHY?4E#H*0+Fd%HPHrP9Y0,KOLHt -L(l9W!E_]XJKu^3Gb:*2)FVaD>qAVOJsMSN>>'6]/nNH6Q*U*c9Bg"@jqPY!P6,5f -1,1ED<6L\n2J5_ZTZEum`L.B?C.AFI-\ZeB'%/U,$c'%i`[G.'&CKKk\^*:jpgo[u -egcJQA/)t4XU5,?fa8Up5%_1uRcrI=ch[Z-BGCWBNm<)MH1sX>d^KbQ.5-%]7]2s=K?>:d-X;1H>=6fTglkP)U -Km(.3HP'_'%Q@dRh3=0?# -P+1u/[`.!QO`%\/!4gN]th1F2Wn?B -TcWVra158PlL@^L+2[068*IW@UU8=5do\Cul2Be#N), -Wn*W2>3driX>SS@f:)@UCQ3nIp(k*hRfoU(m?+\t>fB@pR^$GQ.[cHf',;Seo7gGAH,a=,ZU'=2F\3%HKW@[ILt4 -bB\PBjS[Vmo:AIu+s"H0P9oWqLnE_#"X^mX9;e -pR]jkHYr*:^)+]^M\FtF&!?D]B2S1.,:; -6VKI,MUo[e2T)US6b>-APW_CgQ:%H16aT'@X?K#l67^8F_urIqr'_^/6H!\12r$d= ->XZMg]>T(i7(T&0Ue/M[8OVg4`5GJ@$Y73*:IO8A3S[J#9Ne#4a#n918?9cVG"6r-ZQOIE3?A8.:/B8WZJ"K#hb[7neV-N/9+0L.H]LaLX#qS;g(m -@n=Or89BnG,`YG9Ot*i#aTRi!r&`"OQ:YdcaZPh[KUEfJQV"9J-nLe.N0MH,\4O?* -8bjCKjIOF5SNs9L8j&mq`1]dSV93Q`8kc0UM$1tCVFi,6-fh7!bcN*HX3.fQ8up3/ -gp'Khai`tS9/O"AXKkK([NGFSb<2uOH4e>:\kB!;bETN[bd]pF]1_M**2L5?gq_,R -,g6,'9KE^-eA=ln`AX7)9ROoEN5j(Pb"Q"Jb`'b>aFVRBairhgSE.ph%+,ihMi>UWn299n_9)4PENbYt`0k:&Nm;Pho.TiY"rCc-5*@ -6FooCk"5L2c:mFsHUpnJl;"VLc:cQEj,lUV?!Kk>( -:jcbLAI21

    U!N=f#6(/SQVdo?Kj]hsJ&;7t0$V&%J/)4>%U;>`7Jm3,?fPgT^[;$A,jh'GgE,LUBT;GAQ;,bi_0 -.Sr8VdTn:q%4]f])cF@&;TrOsjY9PR0@Ifq9O0C%9FTB%2H'`o;cPePV)Hdc2bI@8 -e%>_1SNToQ1/l.V9r1#%V*R_M5L_4We."fEjH\4P7SM&pe/^tKX[^g1+k2KE`Y;UoV`2-j54MpYOI;cToMeWjB3Q!.2D -=1VC:ebd>9j]baP@>RE\<]m!T'kLDkH<*II5)!TLNFLBHB@a/IDE?Ti -BfDKJe -ja,Q!*EWJt31YV&9n'HdK@k!I=B0rT>W:;XMDs(A=M9PG/W/39<7o0Gf_bj(jcMJB -O'+&nZ_`f;9c2PHP?A$D=]LhI?'a07Q9JlIft9;tV3b?>kh3qI2:\7$%@XFWT@thK -g(g2_*(npBVDS7I>(*4soqpH5+PMOFg:PI1V6)R3X'4nh\;dWF$k_4dXBPO$>8=M$ -?*[[?ZT5.pgO'4[A[:'[X'::i1>TKFc*k"P]A)ZGgXWl>gg/\-_D2#)>Won_mD@X_ -m+b%Fgj>#cA][F'`8$'haj%r_bMlcLch.1fD9lIpdSqO>h)j3CmF'f0>[9eM -0Ep!4NRf"BfA3LN?'Wsrbu!6(hCf>n?2`I(p"nOE^Kq*"?40#)-06b5j'HT`(&d7N -N&=pij5-k^?Bsk/mH7f`l;hcghYX&(h=4h9);bVh/VWb%jn2)CoA=>Qh];CI9S;5F -qCGqI?bQ7I%Jnu:O5IqOhtn\VjoI!Os'RGVQ6$(b97pV1!+7kai)U+T2@!W]#1?NX -i4F3kAdr.DFl:7M7*Z9N%LU"3&)f$Si8,()';j_H(+>ag@=Apu()Gku?X\['iOk:] -VB%"D)e&.OPia"G$\`$g+(<%P@MU49<[-O0+pbV&id=s>DBiV[qVm5[-)N"uVC>8H -/)okVim'5cVCuEtl!iL*@aupf-8dSC0]PV\j'F\i-8snU"65D'13P]gFu-!"46,T7 -A'R>GVE\T1*b5aDA3EXt-:LRN4lgKK7=I\dM\'DW8mJMjA@^?'Y".R,C#m900Qp0% -%Bnjl;DJ_WA9LgGp/:!VSRk8lANW`LAm$+&<9:6Ujdo^0r``rfmH)Vk#BjKe%Uirj -@V.6&Aj0a;:1\$DAnGpnAq"?G#U>$5BkF5Vk,rN4^27JjDJ%13k2(#h%WH&%Ds&`m -B/XdC5':L5G%X9gB3ofFDKofcH"X:)kIu7T`d;@DIV7MeB@_TGmXXL"JS6ZfBKh"2 -:4m4\KP4\IBPrW>Ar12MM(6'BmuF`NgXUQRVApoBtg*OcCJ\+Sn[VbC&Xc?%\[VYU1u1MfCDO9m0!sq.[;0ZgCOW\W -Njiei\8.\JCTbD@BBia,. -8-!Pa_U:X7m7up6^?Y.sno#T@D\ht`0(eTrol"aADgqBJNq[IXph;YTn%S^[e]E!qXAD!E.8(2LBhdZ$?2UFE0guPY70p8%;;XB -l>H%N`a/*TL%,Ze?Ii3J-=.fj'CfdunQ-Q.QPXY4oPn4WEJd*QV]?P6*-(@FEShli -B-2-.'\r^2ni:4N+!jlf,][c(E\AVWMhlCt.MZ#2ns:aF7k4)`Wq*nX;:dFA#uPaC -/93-mrCq'VD*mur$"B6d:8os^63DjPa> -'`!fZ(/LBEIu&BbK6be85Q@=$$SQaSTCj"oGLrSc9AfS1VA2%dH.<^WDg-MWW]^<\ -HFZjuYGcJsXEQn2HMb2Jn$-qpXnsbuHQR2'#I@uk[!QL2HWR^;T=9!9\GKVgqk(M5 -pU^7VLAT;/Hfr"8pV2(n%/^@J-r>MopEs=aZRUADbOWbk-:t -b=d?0F^NGj-8BoJdL\@ar8mSL02d3_elVUrI0eID9h$YMF@4g&8ni -rSL.opYdj9i-m)qINRG-\)VQPjF1kJIUD;8:XOVel6UB4oB5:cXhF_KmWRLPrlgaY -ml5e%n,?DYIlZ540C=6m0`OX"Ijar$^\<5HNW3)T<1!H%hu!G^;?+uB#Qt&0"+igH -cm:D(9aQNjTof%k7N3"s73YT2`*P;:N^dN`\FbMA,EKrW;J@DJ<@O5+-.9>O[UCt[ -9kH2,UuH5OSkeItWW`$J5G:qfP^4>sNCp!El."F@18RdGe7t7p[:ZIDXB-oPfn:Ec -A$T6RepBi_eSDTtD:\T<`oV9Q?#J8@`THi?^0bg1r!!B0K>M&9fR-.9'oU(AES12D -7jXAAATHIN/V:a,Y@hoZm,iddU!dU2g-%Wd;6/5_FZTJ5_d0P$D"cU8`n,:@h/?s% -NX#fC_r>Z\gjVa@Q-8<2H//CS8#=]"FaDkma(Kh4mWSK^cNe[3hsku>Spqi[c0FqI -rSHFeZfUZOr,qt1a63-mrdTFDquHf5:`KcC^sG1U"L&ED)#D(pU`frZ0RP/R_N;DX -%)UB@0b)%Ilp2+L8e`!Q`6g\E'ZEpS=Vf!(Hsml3;4M=[_sn^6)okh"GoT?%gj^Bd -&fcTLa>,l7,Y6(RCF70OI%_t2;Oj^9b0mr-/@#m^\L#GI<5C321Ao*Hb`b001sFEJ -d5B%/eDWC4;k3)5cI9Gr4O6s]pj^Q;D#lOk;uHqdd$-[&7*r;H&OoVq"T(a<<1PI1 -daYrb9[ct+)c"fQr>e_`eJ1AIeC?-J;H6^Z+\gM;I:67/%XRN@<[kh84_V!2%mR@n9Im[pBA)P3e*jVh1)XQs'H\ZY8AI]]Vb4!)AH -loRDQZu"5m^UEOaIc7g)>FZ#-DVIqV[I7>6pUosaqgZ1r>TX9hnD$.l^i-km'uo^t -Ii6=IgXd%[o%^u7bk#%g-dM9fs!,n^h%rB)d%&ujeFd*S=k9i@2bVfqSY'?EG$V:j -ol]*JH/A;Os+*3)4h$:,pt`]IiqYc!9AoX&J"c*&>#1ROq0p)Dm/#SjZ+bO5s2"4& -?Q[A/qgUiBo_Y7fdIquiLWfJl?_?TZc[Tm'p]"TEq>C8rm;bF)"T[I+"b=m0s$2qP -!oNnbJP\B3*OlU_i1q*>cs5bLpb`1^j:HsjD@aS58Hp=`-%sX:'J2jA$K2[NKJ:+U -6O3>m@AGc8d,#`RBO_P2F?G:SrZ=NDfa_I:7>T>4,U01@&0^C7M30tJ`>-9'@\d"] -d9Y8@.%q=3Q.!BK+IQ4\j\3(IEme1$R:@l2jLpo))I,rRD(qg1`L)J< -?d+q'1?N#.R.Cf$9PL7Xk*)$tZX.HBRC'+DUtqJ\IVR-l_N/.j8HieXa%$Em.]+7;1r1T+9)kZdqLE3oTU]/nNSDf37=mP$<%rjk[Po^?f/FYB]Kcj?`NhoNn$;?uHeA^"9^f>'nkKn"o\/ -2nnljS+1sg?1u%brr?2kj*r`5"2NP'S)>8$K'r%0_:Th7i.i\40W#T%aKl02S0q*Q]Dr3_c#elKuIIWFP?\X;t(AO@>f -1hN9-Y-QnrbaGq"7NC$Mo;&M5g#"dPN8B!SY'nXKdlh@ao:Y^1o$@.S6s!Y#TX6>0 -dEcGnkoD("oOaB9qHHFObpTC\j@.N9InT&I15*%&V:=*A:hi-^WcN?]e_7_EC<]h] -oiAJ/]#.cgRk:_L[^=YRj'?IAK_T]h^=_06A1R&&ZM%lhf_ZIqm/72a-ZDSI,Xn97HV9/f(:#Ue1_t7k<3IYEF,QqHPk5rIO;bEd'*8^hDQk,^O:;937flLBmr0cZO=::S!ti!taPt&3E]Wokp*)%k&&[NJ)^*-@o*D_G1Z-aT^X:dWOj9\@jW>"3 -*jOTDd1IHTrd\G5+ArFeOp`D\%j;Q!+]9+"OrGRm+!M=B+lP`niBnfP/L%JR,>p_-8JpT;JRVBD^KLG-IR#a&pG_O -HRKMP-rPOCEe>d'O!rG?.'f0g&t(1HRjo&C.T2feP+sM4V^g-$.h]<@o"-DM]do8\ -/5jA:P//]ta"6f)/J4[YCI6$,U??i`[EO[TCU7$LaqoKPdo6UhbU -7T<_aFCRe)Dar5t7^RA0'R<2JHULh985t@8J_`j2In:?&8Q:aBFH]:\T1RP-8[PBf -'WF](/P*7T92l^"[(As&^Im"n9@UpS'ZWnsb=r\m9iTG$'XpJP;bddY+0kW:OnKrS -lV>sm:FkLdo_2/2oWNAs:ePk*o]oFc&;HDcmG]=;@0)L](;^R98".gi\YdFW[DQ8"]i^Q->tX-^FjXL=$!\5&>kQgQMR-_L+(29GN><[G<[t=Rm:+Wk@Zg+f[Q:@Q2e,lT[akUm -<^C4R7pu$bAQDE\G!0EZEFj;hAgU/]Q=XWnD,-BOAp/**Dn0HQI\i?WBNBBVXVGIa -LM6"UB3'k'2O`Q)JSGNhBbmU\N2:!,X(rK@q"C%i5)8So73DcYfXf"#\Lq/?V+DKc;XG5lO4pK7.\E&SAK -NeME')fYNeL%bmoM=#=B06./#B"'L8=#`&R+*4nIF>k4\[n<2-4`jb&(=s:D='Ket -[r&TEFk:/\f1gG4_fb]fG>$,#GB7qOB64r>GLqTXGAh`JYBX,mG_`tTQ^1S\(,oYdZ`;%IQL[4hm\;?&eSk1nQM:e^E30/sL?&BJaMMF:,(=PJdWab#o9NB#cR(se5`YE!l!Lq('WR.ZNF -6&\qEOAN9Dq$Ms=#ESZn[i"q')&i\QV2e\'O\AW6fd_fG*Kk\'JlrtS=YUaR+d6%j -PX_R6fh."p4d:'_NLNNi/BBe!rAsS@Rd4H/"o.d?f.=T3:SLH/G4Hro8:gTL\7>)>T+lo:XeN -Kj"AHH4'[U#GMIHU"UH2q@THJ'm*UsUDc(_=sKf__4pcn`=KOEITbc?"A/ -HQc`8'=,4l=M"O01!I_8m![p*WM)f`BWO/%&K\OO->)i%u$Kt4gjD44D6)l6WjQb*I, -]%a[#gS)3j^Rk=^\_FY/]N*9Ms-]AB^d_hKS-r7WftcA9rk&-F>T8r5#Jp[._)s':qt7gr*=uEo_]1VKr$0,! -28]8XS/a,r*(9Ii)8t<.G$I8NMlFUa9;]?n`Va?dr)(HRBn]CTcA]MH9 -P+/GkgkEMUGKC$gaP<*N>S5!RR.<@VaLn-oI$;^lgWCMAL"q7%S>VC;V9<,W(VHrq -L!e+,c@MLrbZqaj*5TmihhU"1c:,q$*7n:TS^-$U\,>(.4Q-SdkKjC-cWpFd33ghX -qY;-,d/=bo]`Z[$QdM?9>Q"$>4Y(*VM:13*iE[PSNbd*L5F5Y)d%*J%r&)qd:<1%0 -eO=-$*D#VRe^_?B9DoUTI:V;b=4[tRf"H:"*C\N7CuV![f:@H=STEH&2;"IL>((hP -4dnptC"ZddqE9nnKe;!6Uu!,[fR:5Z*MM3c^Q9J:gdM%p*O+=i@G@?qR[q.J4kjiP -a5.'ih;-T1?.%H`khEe)hYlW>S`AVGmGArd<#tAa?1uA\p#*Os=^D'dK]V0!%3&T\ -iZ7i6*SKG$0'p:kj%cr?SfcrT%HG/ic9;j$?9Pp72rt1CjPDT.SdFJl?Xg`$jaLee -Sl=djhrYtoH9NY,R>IMnl9o.I*g^SI -H0P=7?Tt%GhR_\fVsFOnlFt[la?`X#pX88I' -qo;)#s2WSQ\budir*S(AIoZF(fPEdqrZC=As3ptbQ2U`h=.e=JTCQY>!<7U8i/h%t -*YA^46K+$YF?Ui[M+$?c=L;Bh)2BYtWbCI>4!0SUA&BR`FfsV=\5;3e>IE>XH+dPQQeV35!J/'pndduoRE]@7pH+[ij.Xe4Zl2(cQVjR/C%ZeCB"qWVf'N)L9pXCN\(to1S"9!9 -IDMmq31O;5F+qBjEd=/bG;#T5k]HZ,?B8Hmf^!^-S\Fi6_;4VTp3_?KT@&_jHMi6L -(VeYmpO%F^5I\i+p&+dg?f0oCrP0mmdfMe=1_0^T0N8hm6*PGQ#XU50-ON2EZnDh3 -ch%A@6ZDZZ&4;Qo57tgg,Yo(B0e?B?7?LL,%)t#c%i30iHuBfk0sl'C7re0J+@hS/ -Ij)lg,/"l91/e9"aO50g-qU_'T.*Cp1s\!Q1K;sa -9s\jV/^?-B]\IE*Kd\^Jr-c(d8Uf>Z_IW]4#rM -'oHG0Xs]-;36!lgiY_AROCU?e8!7Dn2GY4NR+^i2CP#JtGm2\(X^]B:!Dn[qpD -`c:[\&Ti%uO"\Rq4L[2lF)c+IF`Z@,8'Z4i(JW>"mIrotFhN!+fQKEEB9`'P[o(q' -?,(O;pN`rV=8/:&IGXb5+-#8o?3Op#q7]XsjEa"6V2G(t\$,.F51d:3HbQ,ek^4GL -a74Pen%23ih^?>8I=HIkpdZDp;>C+iDsR=Ms4?X'rdXP>J.Mnc5WB&=?ebC+Og0`W'^r$">>F) -`YU_XF7Y3-7O(>MNtikD -]8>`X/&bVg(LlH4MeXFeWHc)n@k;8O&Y_'-R)^.UFDm0O`]5[Xf,\@#GE"?>4!%Md -K4E\dNtMLW8/V\2UZrDP;C4`OWfu;R04:?17WAS:p9UV).D,$G/1_rd:1:).@c0<8/B+k$1$Qa@a8^BIG -FR*e-VKkrtkri[cLn1lhI*]@\57;T-0sg_-:YH+=W%(3.&@-pb\d(SN4V([p-AbS\ -.7IpVQ(esNNDZ-)6_E`^0Q_2n;CY7.AQ9jBPa[k83`eme@NqW_`gKadBaKQ;2l@AP -SQ!+F:MKJdW"fN1<'#k5C,JBn+WO>.R[6pPAP];U7]+]sTiES-_[ -CaFk@Fsb+/WtAh-FcE[B1!#;iD)J6!(8fVc -]3/od4eT.T`m7jN@;RT][C6q.h-4Z?DJedQ\(:iB>W[FTDAC1$QQG6nS!e:LFj%>i -2X"F-m;&l4f=Mi2m9R?7GAVcV]GF'->t`4_D^FSZf;A,q]?tsYq$EAf2`(oH`\*']8LAhV-U`tm\t@?!"-29-Qk*Fio2NcFJKZC%[9 -A3>^2E]#r!fd@nQ]RQ,c<_gc)5:L.`WK]0H;p+o;/6KQGQZ4\ZbSV9RAj"2'83UA) -(aCWoXP&n\G&,@u[lA"_jdgIQGKuW:4(IX+T6'^UckQXFkWJU5F4Q,nRNk15SJe0o -G)F]d2Yq)-.A_-p?IE"i8*R-#VY'SQe/EC*C&LQ#FX?Y-qPM_RD-4/]3/%f -BhRX7YTg[)>AIMeY@V=U,5V1Blog'-A1k[N)^f35\cK(E-G8%O5A;>OQpZ%?f@i;r -C!(k(6h]*ggH11-at:69G;eX?&^PE64kI;i'4foE+*VVIhn=610A[s%H1/H6^GigH -h`M-pE'=RB2t%"/r$-\YILF$f#E*R1:nifLa -6rDU+I^=h7KO(I]! -_msr52:jp^EUKC\]K3dIhRgOPn(n;"G4,arHoHhAh?1IdY8Q8j56LG)43;ahH.%(Y -Pk+fdafk^VkC!#roF#0RH&joKI3WdjStFF,^J4#%5F1uVa45Mi>m($9\+^s,h&!h= -msVCHmlfF`HgcaYq%p:1T-rZH]uTR?GL-+-76#\@Q19=4(AM6r_R)/;<&LNU1IDR0 -6\-Aslo;n11W-39_]1bUUclW#5XT'H_ur?$N'9VY5/]1g6_$N^,XoXK!(4t"6nCmI -JM"eS9#S)0VSksBPYFQ6QGcHk`<8rT$r93+;+3<:77"5t`)Xcei"!J^;-5 -=iF'=7?Hk(Hs=SN>fH6*7XgPV`.Uq+4C?)rAs$>(`aic&>\T+4@Rd_? -`kfR4UhN;?D7t=#`p@ZajDh(c;TBJi7m(mQjD;kIG/nU&7mqAf<-X8LAOi8;a-:t8 -]P'g2Hq3O*a*`EY'S2YLJ&jHr78/%ue:^@tL<&(j89BSW4G\t*Jk38,aMDr=S;kUS -4%N>28>M>.e:'sTONB&9(*nj\<0bR6<67Ol8VC>>r0,6uR)uCD32Dn_e=44kQHAck -aof,p[%YUsU,s%08`ZX=<2.J[V92K+^C6dXPc;g!$qc2Nb/B%VS>T!?X2c3Wb4Mp\ -b*P`%ZHG)2O@6?Gm'4QPXij\Qb@?u6"LuX.[DTYa9>nKdd*0\7^<<:WbB1MB[(emX -\]c&09I%^'gr7KJ`f*=(bXBOhN53Y"b05M_bV[MeeB&sMa%Z-OblGE#griCP(X/]& -bs^!t'SoIWdS4eZ9ao\!PhEM;eP0l7WEdos[,&uS0MK^I9uPo$PhJkXim'+5c:$S= -/DX&8jN_POc2?bMPijq=j%cuIbk10q<9_'Fk"aFo:BH#@N:5(k((a(5_,]b)>$$;hfR;*34QbnO#$(*c6Z;2#k+ -FV`A!)BkpX;0bk9J.8n"p;LL4HoeE,a.oS;]^nib`m5;YT/lPb/dikDVbrF1K2F#_K -;oLl64ZHBJ5.G/M;rp9nWH-DR5?&Xj^ND\=/@9;Uie_e@e^Z4]S4>:K;O=]3S?8FSo#J.?)eOA_)!6%38kXQ"efkeTm0LG#tMh=99aK -rI8K"d.HV --WhCMfe&H+oo<0dQDgXE=bW"M*Gnr=Q!'7F=Zr8-[@N_VQWa!RVkoj9'qIKVO]ge? ->!\KVNMG3=Tr@p_>(romD5>m.Vc^'ug81mGAXqJnY1fsI>*Z>H&m3ldY?KDJfql%0 -fC2We]?P-a@0)hh"AnI$`DdfdbQYk>ntl=c->&bf%cP2 -h,W'0e^N?Ng7So-h8MG2A_c+,Y2+fWh;m/C[Gfscm9U7[?9j][h;mEUGMW5ShJD@] -/a;,cfj9[#>j^Y0L$W-ueR![ihX09.Xmt9oD-l>n;FTt[7J#8nY$YK(h4=,oQ2-o? -pYW@T?WHf,L&Hn2n))[meID@_('0kq!+7Y??d8RWrWV)JpL%S8fHpZ-Q3is3#[k$] -?qq*f+>hVjbBiW3NIc5]t6)r_n`^LeMG-7.3.+Q@PlQ"D:NAeWoo.H7b(i`7L;eg070 -0&lC[inc3;<[2&@0Z/&bj"<1D7PEe62Tcdk@oTjG-8B#,)Il5tj,NioG!4mE,iaVA -=M?fUr^"1$46._R6`*'.<^i+Y6f`>`A/7;g7=!rP8S!4FA7eNre&:==:>&*-jRu5J -#"mte;U589j[N42-;3H2O(,7mjYcsDG$*k&2.]fmjhTqg(0]\b:h>Ag\;!mn#$sit ->imqSN1OJ?<7>E-?05D]Aeo#kQ02aKC?Db=k'h-^:1%V)D+Fk6k4Wc?IV\*nEf9p: -AgD6Uk&fbQ11lPiB8!kZ2L4JY]Os]\^1MNN`d#?IGN[h4c&#*e?D -RctTSka%NKPO`='QKbgAB*ON5eXbrZT'-rXl+WKuY+TMS>3P+Cl3m[Wp8-q1UhY'\ -l5lM]Ht_e/WG8gTl=R-[[]/QPHYG[ElKo=#cD9b6aQh?_ju0O2"EA2UZ>3c[CEBm! -FM$j.]&c\tCW,#nNk+K$\nPK[lg*PG[__%U_!D2Wle]Npj::IX`U%\WlmBg6m_s": -GO'.hm!bmKrlj`ibNtP@j*&X`&nc$p_sHfbCu3S,4>?.,f&HDRD1c3^:=F'=$Z'_7 -mD5@\G2;/$h!JF(D4]YPV&\m:iU.DlDi>1_H -VT*M&mI#uTCQ@k$f!0,4o&(SZmm7h-0(87=q!Kd.mhBn_2Yl7-o^@OhDXRDj[0(=W -rGRYsDl3Tm-N3E2r7kW\n4"5^T)WbAF`8-%hCeqLCY!E2$#m.1Dgr/aRU^;l%c+T' -E<5'3DpD)LC'(KtiE?>Y[H8"eQ)0&=&nRiisV]#$d%e%^bnZuqL -Y97j3Y]88>gQs,T$B]=h-$"-6E*k!`?E\B>.bbI_El:jp5:Q0a6?4.eo)rE@[kZTl -/Fr5R3#=Al;1!?`1\5eUF!is#D`.-9.WXE-F2O41ml^3F%Wdt$f[i6[J9_>+dEW8K"ofr#.;0=e,FQZW6 -a4o@/ouC>1f3S'j2LqGYp%Mj:s'YOJ@J2WgG"6$8:Lj*" -B(fkMp0VM,GA25UC%f#Np;^okf5(*;D"d%1p@iP"mrA(,Ed&=?pIBUI!>=5p]#^;#D)XdK(ok/pa:`>2h^s=L%okGG__%K -O,*LsGBN),prA?gf8]RgNqi@0q$3#W(QNaDMKq.;q+$VD:QtTUQMG0[q-TNbGF<`3 -RJF=\q8\qLf:2TnSGD??q=gQXn"KR_U3[WMqF>](+/SgHVYYM7qM2$GQ]cYZWqnZT -qG42=\#fGhXnqdoHO$_N&$PjHZMQ#Uq]E3B2mn!&[JP0Vq9Q&;Qb!!kr!1%8(W$"s_Yc@1r("^'=2k)M`r(&$r.iAkQc]0'b5A`lr5[%Zf?O6V -cM[F_rB9=4R7^f)9gErJ0&(QeD>8gASM8rQ!^lf3GW^!.2cD -RCD#O(ZG?@ir1msr^Z&K=69Eok5KSfreK_:Qg+LIlMe9Yrl=C)fBrS#mf)tLrs/&n -(\.MQo)CZ?qIe`9=7uT+pA]@2s+gCLQhgZZqZ"&%s2Y';fDYa4rr;J<5N#?t,Sggo -KL0*D\7@K<%us>/fXk2o_HX4AKGJ2o'G^Ng^-^W*@oQkpl^Lt%3 -n+_9Z?U(I?mJ$O-Ip]tRp\b',&.A^C^lU)V"2POB'a;F8C`Nbt&<%nA_N:iN$cEK8Cg@js&WC9=`f[?>)oiQ7FWJMbm!Tts&e'I; -aHA*6,KUQlPpOP8Cn2rr&r`Y9b*&j./'ARL[4TRbm(G'r'+Di7b`aU&1X-S,eMYU8 -Cu%%q'9)$5cBG?s43nSaof^Wbm/9/q'Fb43d$-*k6dZTB'h-N7D&l-p'TFD1dZgjc -9@FU"2,2Pam6+7p'b*T/eLsV7F^XeoDKb,eb/m5Dr(0e+-5OZrh$C]qu7bap&4o_n,34D"9F$L%K\mt%0>BT$%Yo* -#!gf]"5nhEJl#2L6!,]Bi5?Lc:i6b/fKBJu":U$(.-YZ$fQan -L/?/66We17iP[a3;!oAlfR4:i"@7i@%O+;CN=k/<8Vp:s-:HLW'B4[BMG[+u79HZ, -il"uX;/S!TfY&*]"C[6dN\X(+bo,P0BoPum2Fc?T)rlTkN`"(_7p,.!j2?5(;=6V< -f_loQ"G)Y4%RN]h%3ae#M31[g7S)2Q,NON?P#>%I8QdVkjM[IM;Jo6$ff^_E"JM&X -N`&JP9e#0lWKgAa<_D%N/*2GhQ;Z"393H*`ji"]r;XRjafmPO9"MpI(%Ur+7NA9Q` -adH'[Ak^mK1ZjArB;f6JIftB?-"Q>kLNcIltbrOrTl((bUG#$`H -46M:eSlZ\ -<:6>Vg3lc^"[T(e%\cp+ND\t08Z>]BVGu9?;sK'6W`;fog:^SR -"_"K4Nj;\hbus@$BrtC<[T;,<>O-u_Y#WcY='Fuslc".QC!?br]mDZWF+;=76&pg\lWk"p)MA%g$-D%>""<$,K^s#%64,KCFU-_H9S@@9bC_YO"tZ(%=mnOeh#3l;#(b-)%mjr8%AED`M:#K[7VLTu -U\';'dTTF=BjE&R/Mh*%\/#,0OMO&B^u9r[eTWRY1U45d5h0lL##/Sqr%q9?\NNr1Hak9lOAo-:oZhB.$g07?fD-a9Op;Ye? ->AnCrh7^;l#3"?AO)f,Dc+3ROR#Zh>P+` -#6Eaf%t\b,%Dhg0$/o,BL2bui_t]!!i`o9:EF(69pr=94>]5XBhEApT#9i/5O-4Ni -:!*3$.HOgjn8*hL3`H#=7QZ&#+/PNR@Sm8a0M6 -VKC[ce,"hsln,7h`^0$#GLcrO4&>]:$MUHWV'T$ep?4ZlhuUDp0Q)!HXCXWrPuJC?LQ`t -hgOtm#Jp1B&)qtDNUd!Sf -O7Ia,c2%B0l2=tmp3toTqu;HAra4"JIp_UAs2Xs8?gmuDhu*ND!<=eW!,r5EYRLU% -&HOR#!H8nWYT3c6+Ta>D!cTRiYUoqG0`s*e")p7&YWW*X5m/l1"E6p8YY>8i;$AXR -"`RTJY[%G%@0SDs#&n8\Y\aU6E -grestore -showpage -%%PageTrailer -pdfEndPage -%%Trailer -end -%%DocumentSuppliedResources: -%%EOF diff --git a/packages/python/plotly/plotly/tests/test_orca/images/linux/fig1.eps b/packages/python/plotly/plotly/tests/test_orca/images/linux/fig1.eps index c42564ed1f..4b00dca797 100644 --- a/packages/python/plotly/plotly/tests/test_orca/images/linux/fig1.eps +++ b/packages/python/plotly/plotly/tests/test_orca/images/linux/fig1.eps @@ -1,10 +1,10 @@ %!PS-Adobe-3.0 EPSF-3.0 -%Produced by poppler pdftops version: 0.81.0 (http://poppler.freedesktop.org) -%%Creator: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) orca/1.3.1 Chrome/76.0.3809.146 Electron/6.1.7 Safari/537.36 +%Produced by poppler pdftops version: 0.71.0 (http://poppler.freedesktop.org) +%%Creator: Chromium %%LanguageLevel: 2 %%DocumentSuppliedResources: (atend) %%BoundingBox: 0 0 529 379 -%%HiResBoundingBox: 0 0 528.95996 378.95999 +%%HiResBoundingBox: 0 0 529 379 %%DocumentSuppliedResources: (atend) %%EndComments %%BeginProlog @@ -447,13 +447,13 @@ xpdf begin pdfStartPage %%EndPageSetup gsave -[528.72 0 0 378.72 0 0] concat +[528.96 0 0 378.96 0 0] concat /DeviceRGB setcolorspace << /ImageType 1 - /Width 2203 - /Height 1578 - /ImageMatrix [2203 0 0 -1578 0 1578] + /Width 2204 + /Height 1579 + /ImageMatrix [2204 0 0 -1579 0 1579] /BitsPerComponent 8 /Decode [0 1 0 1 0 1] /DataSource currentfile @@ -517,1174 +517,1174 @@ V&F?Q)R6C_nZa#f[2X+r)mR'qn\H2"`>im>*3ma.n^/@3eK&Y_*O4E@n_kNDjW8F+ nhD@E2'[-%,I0HWnj+NV73lnF,dL,inkg\g<@)Zg-*gf&nmNk#AL;G3-F.J8no6$4 FXM3T-aJ.Jnpr2EKd^tu.'eg\nrY@VPppaA.C,Knnt@NgV(-Mb.^H0+o!']#[4?:. /$ci=o"ck4`@Q&O/@*MOo$K$EeLbgp/[F1ao&22VjXtT<0!ajso'n@goe1@]0=(O0 -o)UO$"Yb!(0XD3Bo+<]5'esbHQJqZ^Jc6a"n/pW[*eF;4!Tu601G]\%1UB(to/AHK -nfG+]+!LY=o,BPC#Tpn]1u\9QiSY],rZ"4e+5s(3U&Gr2:H((Q)<":KPCYYYs#8DZ -2dr^%+oWHiQlk;J*:mDWo3!qLV(VA72$*Io;e?nUrYY_n+5pH6!WEek\ND"C+5om$ -1W)?V:H_Y(4S-ZW1WC1Qg`PL@'B/p1_5&1EY;Gho3]!Zuo%kIp?6=5^+!KtmiMmYZ -rY=AB+5mtc**.aV%iN*fgrYL+i+5oNn!WEYg4[OZF6bjj4ZoL]71ILeo8+gF]5'eFpE(UX;TFSS_K)?h;` -&AUA![-(@ElV<[*&2]7Ui'&7A*!KdM'0q9oiHc&drYsgS;0?.q'X'p_j&A9G+5mf2 -+UA/B0iN3P;j?H@'\uM!DBIga#.5KoiOg!b?WhEZ)YA+e+P7dp&d21i=&_[borYlM=(4b`ni?SVYrXhC`+5mh8!WEZ2513;,8o%>q;rZ+;02;s?5iIVZXrY0mc+5m_q!d5@?r&oQ*]J_b?=3;5"*oP]R&%rXrUR ++5oNn!WEp%)B[qV)-$?/o#!>YC(>go&cc9(i3Cp/,BZVA[YlUp0hPkAS-+"B!uPgp2O_'F_>lCB=<5$p46m8 -KkPXdBXWn.@G2`QhAh*R*W`\e+ljPMDB?W5&0^ZZTU$\9"9Q!?CUN>@eES-L&-N%' -'k#<.6(ShbO)9'nD788;p>KmIj_f8+DRSqMp@3&Zol#$LDmoU_pAo4l"`SYlE469e -XqPdK'leF8EOQs.pE=Q9-$"2YEjmW@pG$_J203t%F14;F+k@Y7iYpd+*eB%YiU.H= -hB*n+$3Bo7!+I_tpKC\9Q$'#iS-q[uYdcOa2/9 -H+/u_pR-=DSU*5oH?ZK;=0[(\Z[2ARHagP4pU>N/]mNntI![#Kt(EBpgJn:AVItM -*5UbT5tu0gc6&_s"TeL"!W3L:/g%n/?8^u'pM5TZEJIV>L3T8Gpn$@34pcItP.,:b'KJ]MrY6*h -)$)E5iQ<%srZ/hh+5uQ,l(/U)RM=FTQ'k^=\RCd!AX1q_Q8r`HH#8m.EL1rhQaq7* -fm/q[KpXlWQl1mNH&n?'OdUK[RCSNLq3dZhSXMRa -JR)+2YE_-LV7HW&q?*SJA#:/UVRgK=qIc]eD5UQWVgE.UT[jnYIaP5qY.3TrNKK,Y^6h`]+M9:'sRQOYr`i. -q]2t()mXd@Wc9gOFLE25rZ-R"+8H/JeJ#:JYSQ3s(;T<3FcEMf3D"c4Xq`Bf[>A#? -@C?1]UB)JA'gr54*N['d87;W&e0@;%7mqTU82W^G?r*kS;7P+#CR'2WH[lg'X<6D] -')OsQ'4`0CiAqWUQs1lB)_&Dr`On:S]Go,.HdB@:dCjnW]t;b,qq8\&h7bu8^3Q9T -d4cUBa'1IPY$#6Ff=+MC9eHUjSP_P(oZHF)<'**P)iCUUh:HY=)#PFp#21%`"/dGha'nF??H;546rZ)$? -5?"i!g[2^[Ktb3Ta?5=#r/Jf\Mog@/adeX<]V3IFV9.MlTA/lKiQN2@rYV=T`;lhY -i@kMl_9?0%[2]c^]%*RL8^$(M&pZd-=[UI3j;Ze`>p91bTgqU]"[2`j&Y#!1g<$lK -/]N?AUj>WTiIhfU*XhU3[hX6]Q%fnO?d)sX(H!LacoT^Z -_$gEfSfco5fZb`t@FLs>n@$a#`i4W:Oh-Jt<(#_=o -i>s#uINRO_+l[qsaaIY/oCoUXC`iWOj.6)-^-UfY780B<+5oJQ'U:H6Jb4f%EM4'4r+c:Sf4l&t'h6Tn2GBX1GZX5s`UQ@EhGD -NZ[59&iK:k!WEcQ%M@6,CZ-fL4DG:UrYT&cl+D0XSM`\3$0%O$mCq9@r[[Bmj6duM -m_7rRro``6mB=5W%`.g'iO0PK)ABg-n:CW/h\#@m'Hd=hfYIg'g,DBM('L?2jn]QN -\JcRi1\3D9+5tci@K%=Ag**0b++DW[iU.aCQlR,)ZbE2sGnH.Sc5M,<)r:VHU"S1( -Xihme)`4c82$O^:K6DeY"9JP(@5nP#"2b/Ej*=Cd?MF:[nbQSbqL>XD^TmX-[JKp4 -q`hWq?Mb.Q@IO"dPl^.D5L9'EIA&c#_nK2>PXZ4lh,n(u"?!%Ths::Ap&@.s(Z"-p -%Q7Pj#mGrIi=MAU/f>+Q4^G8bJt`1D0L*r/(]"t,s$6f1kOKu$tID0(WGT6>a!JA9uE>VAM -*uBdRA+A4lDGMF?a^oN2I+DL^REjsdg)UBY5GcbA[$lDDVcftMCA%GZL(:W!gMQ[( -S_!7T^#*c'*$,n,M8eLpq&Gu-0:C)JF8?muQVXU2lZN(FT%@nkh=#Rc*Zl2ZalW,> -r>qS4YAX,\5MZc=qd!t:AZ*9"O1Y@PQ[b:\8cDA(AC18Lfu8lEU./B[P5].QbIgqtd=;Zt,s -9X@./2,*UHdl'qe9U.V5F/8+`:@lEq4\p.[q`dmK"Tq%eFZZ'Q^1&2I=gW[Ma*X\4+%Q.bEZaHnSK:;?d/8BWU,?!TOWac*)b&rcE]p&WZ"/?U -B2p0t>k^\9FZXYtgNQr4K\^oZpRU>j?MCl!HJ`qcq0cV["oj-\fHp]Pi,]@ZKjf4< -)i%ksL*MOaGc!!L@edr!NFR4q4-*nI#"(JM#Q9[O*p<@iHK@.n<.CGc\c-$"a8%V: -g=a>:5_:ET5XGPXrdUU))A,@cTB9!/J"A#=k^@"HR99e^6msg?OC5'fS`_FA*LRN( -Eabm,[R'h@A6VOP[;BeV&[u0FL(1\1qjuiZDYpm6]'k!cq7U^Z#62MXg`m]FE;W3> -`Gp9<)olsrLEjo]I&AL<18!Y&P^g\6cm>1p@@pM/P/mC*>s8Im -@[Zh;#K-(/]FPCdr4bbJomGY0e+W`iGN8IIIt-e[Ic$nrnc++%qu8nU!=>'i5qaM[m\:988<+IuPUP5KDFO>f0fM&+NmBL\QQ*:l,=3J9pZP;_M`; -hG6`;r>B)jUPs5Z;+bOo.HOO.Q'.kC9"A:Z?Z_s,P1Ei1H#YHJe@V'1p0UJgJM:[J -6tq;Q4J+VU$mnq,R?5?r#m`4Lcs&JC6:;Y$nN7FrN#J1IAoA4M;AVju`"FJh'XD9p -%hVtVG8#.5c&r#`RN'QVou!,.KM".aOqSq -$Ch\=nOOA7pq@Z;!L?m^?"dAXUQIq) -RubP:5A`[_[*[OS=n0'Vm)Xl1(6DJdj\2\t^bHa.a3e_@^&G4/`6_0A`bXB@7@EX^K>H<%l:+6)cU4M[;$ -,dA^.i-%;d0TT46!hceCr+69;>W*Rhko/1K:WWU_$)aS_C=La%;fPPJM-,o_j*4tR -_>ZS&A`CUmo&s@PV2+RV+iKb#'4O("M/c!5_mm/l@f0YnEL&E#R+E9eGSiTaM#UPt -WU(deJ;(m]TaC>1CYO/N9l.Ji(]ku\jR`*i#Pd9r98uP(+lk[>SlH[qW.0`Q#>P>r -dQs,K8h*8'.>#-u;aa?Hi*:8lAc=4!=k=ANI-I4Y[X$2emltH^jd`[nK@$&'6YLl[ -U3'Fod>%%/&+Q/=-NrER2-W^f;E34\c:O*cRS7;hW=L]6)8gc[cD"?352;P'eQSZl -iG@.2mI`?FiXcKYqs*I_QEdkZ2d]%eqk,hW_pA2n@;K53Z1_5\CD@n*1la:SNp -prsL.6:l'Gs,ut:2%[QBJ(;*M3GNTNTA*k23K9H4G`Ku,>ZZf&IOE-[[i/Q-5EBg` -6-+h>Ec6ng"jD7/1j,YA/9r[Pen]m&KR -8rrt2dQ0Qi]^$#9^k(]1nsINC6Cp>r%Ls4ZO=FlY8Q(WI,!X&nIAbQ`J'q(hg0!5P -m@8+(EK8r2H\Z\1?.WW\Y4:@qf6ctWpV1qP!Hm2p11lS+J:c)Xi^A9PnU;`QJt!Qo -\`kIf1QH-l@GWt6s-`J-CFkYhGH2i\jB.BmF(&<+Zs`)YB,9A\Wf:Q^Ct%'aIA=UT -FWoSQVfDI&n)&JqJa\$u^Qb>Mj*Z?=npXZ`q4BV/0oU8;q,leu9/(#WDm2%:1&nLF -40E;:<$5M5Q//0B*tSCrqEI4/rL^:bq`W'0V"^D-.,j:\ruWNIXYjl/Hik!SiP8+F5[355C^!(G#!dPB%$Uk0X:%;+$p`#G5hli7kc;4&(^:=AZNDke -$ka*R"Y.FZ'k9%Qcle,==9DGq6(ANQU.rJ*)OcJ3^7gadq9H!ZB*B42ZP.kj_OA4O -;CRcJYA3g@Z-OElnj)gr(M!fgX9_/*$,XV26Hh&Kgb0$l.DlQK6Q@jK/2KXU1c.I9 -L)^hoW$)r*TK2p067@d.aH+!'8qgA%1k["W;ZT8W!5o:26lQ.MbGQg^:TkqeLN%1F -6M?N)9S*AtSVr)Tqu"?n>-4Q?)0@^Rki0JG/O^(E73!u",Z-u]<$cW^79ik^Cfa&Q -=@J0O+>K$CMIO)+>S\!-#$=WnW%KNgahR*bZbaYBHgtSX]/HCkbc`B802*-4UaF:Bd>7pL4-Cj/BsGXm^<'=pVp -q%"&>QoTM\a38q,MfZ@"a['&4Y^:YLLc.YKKFm11KPAf,U:c>HWNYmn3MN%`KCD6k -6AP>CKJGoj8978E:.Lh:#ZPlc/9JubPY"!&8Ml`)8@Q\\Qq<7)8Xu5@XIDekT!^h" -"hRmTMfZh$T1SU!1o[Uu&n:18?5BPj(.q3hX+[$", -KS*)?mA`;L5(*0'XSU>OqpE(t;9^-qAJrno+ArXl;B6rZ.6Y?VQV/!HSE\=S!ZA[K -D9=Pr/?AcWb,eLP&?m"Wg]UM?+RnN4Xl^ejWck;*)hh; -e!2!'SNBcP4:S,Ge(m2dm6=PJ5ZA$CLPsW]F=/a>M,[#Q8E2Qq[)CCSOi+\#2;/ND -Lc1%e92rl'eAu0Rb,1ak)`\$B5HIPX_OX&Z'Ig-'"Y_JucpNoa=!f[c2'"tC,s#&> -44V;4e]hE#gtC5[?rd_FXa),hG?<%;=5A=, -m=.AXDAb16fGToU,T`Enp'$gC7Z;'4MTVCC404^(+rEb"+UkPak/t2Fi?0Xh.fN]I<<:21T++A0p",EEiT;g`4\\KRhF+ -+:]_giuIB#;EE`?i,1GVS)o:6H:+L?L/Z)+tbIC@r`e6P5f ->qp]^*S4SFfNjKi?((r_<[X*9``eO3.C7kf$f4=92_!pP -PbTe2`W`rX=pMp!G/W^$5H,%oqY72cBI"37Ke'8kWqJOpe))pt -hW>/Op$UbP$K/o3$UtG1mLN_)&7H%\%g:@9aB[8:Ipl$#6dl347GnIiD9TiW3j'A* -K<&Fh)S3.g>:",D,ZVF8ZCuuW?bR=*WM*ML%@T7["-\.e'HO+>&Zb=.igpV=XpnjS -.TQ0jinc:smOr&K0FDe33`>`VlSIQ]X$>sFgd7If1s&:.+NfNa@u`T[R3Ei1/C3AmM_cOlhX]Z*kVi+!,"im(#&[RT8r7q@R!A6)<5Y"N<>9O#/c2q@$A -'l_bG:Htrti^JVCNJbDR,$N8lC#5FA3g)?>L+7A?*^6:IrhDpAHN[^i -]':HtFnuY`#Fb@cC6#<(/OdU#2c:![*A'tMSu;nnLF87dA0g;A'dm`SU?=>YVad8N -At&%7RHoTsCS&'GL:6E^]PGg+CYKcIj2']nP$VO$2`AM=(;`!g(.n+&WN/Y(X4`Wl -a9cb*M--(8]9YHrFb\YWRlqoX.V$>=acYDa#dcU\hBY'H9^FY!&(kk_V(ZWD!UHnu -m@Ln+VV,gd;XK4pD;O,dmb]NEnmupHVig1\.2d"\k-H:;0=H``&a3q8*NCqc`+J7O -Y3Ko9UgaK<;BsR[L5bQ7l,7ARcDb[f0rjGa-14(_7X!J*aK,E.GCB` -gk?m#3EZ^bf]c3mUh#8\,P!mZXQ%Q>c.AF(_6TB-aNBmOU(XH)kX_l+e4&KIACJD;'QUB;.?SJ^bY$cKOmo6`Q,[ldlN4QFe("oZ -)'dSPK>G=u:h*X.E+&r&n_Ls\Huj#0o+s3(-VAKq93Z=+FPfi8mn\'#jVo.9d?B!$ -.L:/T!$I$&Wh-F\Ilp2t;l>h&opOCiA^L(0/t"U2.f;B6Ip#p^_t$*-CrTKQp:HG[F3- -2Tn/lLNnaopm5%NPqf89"Vjp[C:J0d'_S0Z*^g+Va0%(p+jT*d@tlK@G=M2ZjMbkZ -h7)>S^`S:J=+^2`S9_l?GW&.hYFg+?TR%*"RiNegb$t3-VXBD=bZ8Quk4>s_(OD%Y -qNXQsX;K`9mHNJ'D+`\BY4M>f<^W#qb.Q3;Nja6HJbeK"q9QHqDmjr3[!RkEH_7lW -r;d,\?OsMML-SECkJ$iRR_5a.0:Oc_GZ7-1;Z'/@Hr,=jAOIk0P%j$Y*A5.>$4e$f -Rdb-NpC8/mG$fTq5l4p9H[!m7J's]Sd!\^?I:(Q.e`H9_MW8p608iW@c,6`TJp]X% -0X$O^n(rKmhgQ)s>-ucDcCLKlb%j!XhnR"D@B2.iLIQN#0K_UKBg2J[dXKNkIb3pL -pZm;.n:(u=:"ka`-9/[loG/t*SL^C'Vl%+k9%Q#t9&m+Mihpna*hlCT;^&7>!M8S$7p7&Es7Q:kf; -q1Qb!1R_$Mds5DiR\lWO-ZduEre3P1:h[3s2("GYUXNpVl=E/U;6!SFeN1BEZ!4>3 -CGktMK"YTu=R=Th7@)D8[9IL6qd%4tEk#BBf3?5Boln++DjU@p#5a%g@5(eg7NWA" -`aWqt]QJsKPKIHWfmLeP24Mm(F4pKrLIIudBlr'W7]07een]E^rJ&@(ZeB8>gO7*) -Fh?LKGME*%#DL(TEHp8f7j_@8Hp?G(\,1#es(84@SSkW:rj=dOdtC6f$nD9AK=mdo -0;$eZ7#2rLJb/h:>^rgaIp]tDrjb3Wg-nr1kW)HZ#m.oh3bidV#Pk)n+6C/W@5opS?4?DnYE]JbL6=)0[*H8aYM)h -4OH"1;dA!6c-q(!36kHmkrR,=]^X[J#EtnHQc(^G.Sqr>8O4"5q>Nj;#PeE,_fU7R -oTCAKr`4uUq34Vrk/h[=e$S*5DO:\)dVGK`-V/"0h]r>gOf$1aBgXaokDVR/K -`H'b#4i_["f2^3Eg)#1rGhuMml$D4<^%$L-=5E\$hq.i.JDaNN#i_Jsnc"!0Lk52J -T4cFiLgg(=.>c$023:[mMf1in([jC_!kSN$,Z2e$1)k= -2HdCm7,3'a'Cn8=:1b1Fq.)E+jLBDo4Z$%9Q653Z]RQ2V(JWD$rD-SHk@aUl=Wcg` -bJX&0]1R5cOC;%:QG^19eTD$DX3L7>C&UL&kP7LoTB5;Db&QR;>ne/(q;?7bpcicd -qppMZ\aDZmamo;d(X_gP5.!WOPAH.p>k8Ik/`kmO5%`e@c''`FO&+LnR8,.`=j8DQ1nNISYUeQGMYVD4/ -N[::'$#7i4/4GbGr8Qc0MpKg*7G,KoitQ'`Oe+;IR*?PE6u+H;,R1UXmFGOGErM)[Krru!gcP3V"KWqm"-=l2, -PKYWH8,5QtR]N'D;OlnZVHh=c&a>H65"8)1N'G9l5oP?h:.dNh0$+fFNO&OA9Gr74 -V?Ff(dhZIf8X2$m>fhClnn:`8V)7>1eXFrnCe^>*2Wj%I*eUPD_dfDna8":&e!>(# -@K&!7XA';BW_"WQbfReB.s*>L;[%1@5%i[IT7[D=&+R:dQuUB?ZlQ3PEN1Qcg&2UN -6:2:R&dVUtJRfsL,S0Ee+'jE'+7.tQ4ea/f.3o"`Pb)McR@?h574b97[[9thAP9#! -0jM)OS5Yl!:?gk'Vpt^=<#UHehrs8BZ;aaCYj+HlG\F(A3i:6Q.Lq7/LBFm%%M/(: -#,5'j(BNenaa#I?CEVIN,Q)_Ek,2',@]W@@-DRRIfVMQWPQn407u74O=&p6YMIZR' -N,fh(lYV>no\.5^3tk>)Ff5" -IuZg_I'DTdMo;1V>Z4n`,">NcF2@ -a4Ti&j4o3I0s3sdfcMJMS<]9.AkgCm!ohi?">WBo9+H5O/.5.TQEne;6=]pc"(T1O -YW:q[@$#lCW\bfQr`%.Q=#UQH7mO!qmi5Ip4<&kB4_oTJ`QHcC&+M+Z,aJf[id`A: -nRZSQ2]_@4>4G -Qbp"nH\HuG>X -Dk3Y]70ok,n+^k^L":(*](^k+nI>f+6lQCALDAgO+iO/B&p7t2<:?tHAo`^\(DJcS -`$gH4,`]UtfSX^-I/A>j0,s#kF*@-qg!'2?2!/&pS9'.%c'HC'kM6*1F<6._qBn_q -`e/4[.&@I#k90#eETTCN%EZ2Tjq;(H>EA<'TEZO$+8pDep$TZKqY"qOj+(WVn^Gn_ -@3]6();%#%"V;_3OCS3WHJp3:dmclr+6.`Wm2k#r\_fF1Sf>Um?PVPt?]"TL%![5p=T]Y0FAE&Aa$pk8qj&?"gYH`h)ta&`eFDF'l[>D+pAVtm -qEKK!INQQ(s!Qq+c0m'cG%EXA]],GK>Zt+._-Qo;O-2UYjOHKe-*!m@mqZeV!WF.V -hYcjM,:Z/%Bum&ZhEEM"[]OdOj=DF(n5I1&G>?X2U$i!*R/9[k"40+4&%Mfs56OeU -"GCguE)Qp:E,Ni"5RE1,"OBnT7Y^rdUBaV:#fQd0 -U&H%*T!30Cr/"#d-"7ds!Z1qNegE?\N5f@_5SP?4GKQ4M0)k>`k3[,X^/.%aaYT&G#bGQL!KPl7+"[:a?Z=A:pu1Q>c&sBkGQRk#kFW -&[<5p_8,P32\/\@+`Estmber`0_=?Z6V^=k-p6e`Q;[rE!q@bR&D[gNHY@ADFBc(@ZWIWG&`]+N!L:3co"XoI1O$ss! -VMQuP(G&#pL7]9D>cbqe&*)LOZ)JWf.2g:.iK9F=Y-8\aQK-AKp2M8uiTM;DRi?*j -((p!NEUaf!pE*90+#3aKEU+`F#9]0;+OUcD#B%8086!F,UVVctdNK.,-R)G=&&Dif -+oW.JNuZ/!GltdaXB?fF(F4ku!F^9cBGQ0'UEM;9L$29-njatJ3)[s=KMV)ic)_]M -.3d1e)*p07Yq[Q)&KfEr+;0S]&s"J>N@C$R.C+^Y&u-pSV^dk1.`BIO:c*qNG8os" -i\J7-P/,9nDIj;Od(s',$HD!Zf&.1pi(Q!$B+lc`FT?1'X[1&$o%;kfZR2s"_(j+7 -;S;"%Lq+%%/nq@8dh=0O'e-I*1".'s&$7PW-Sgl91=Im4'/Ci42Td=P@e2cPY@NF4 -dUR8.i?h=-`'"t])$fb8YEC1DZS`I(!qgJ9,S-!;Di3W)<@nK!!td0[1LuNp)*!g% -33shhduud*QFjJW3RaT]';ITeVZmLb*9!^]00IM'g_e6h=H;](`?&_K2'\=!bEL5o -mo\[$6TU=n#&O5:0QM;P*-i#f[EhhnDjk_7Po^UmM\D.:'9tg=R6X^Z5a2b-F8\C( -(I=9)6.?t+ON<+^E-L[Zd4GqsbXfrR9*bXJs3/!(KgJaVPj(e*XWd\GoH=BRGkOGA -HJt;,1.#(Q9P!T -&O+B=QEjK!U)tP#dW!]g:Xk4soSlZ^#>eD-10"'H'baGE(K$G9DcA!X#Ys-Js&*th -gXRkA-VV*GJP4.k&attW6!OiGO&V<,Yb==4IUYoaP"1KZX%eVAg -CK%2TB]1pQ;6I@m(`Nrb>dN$NeT-4?UKOg%XmN"5n!dK(@9RY?jNF#4X;hr4[3BM8 -X``?4on-XPM-tIa@($SRLs]TG(L`UK@FcN0""&AO8u-V[,"b>h6#*B=b?LrNA*Fb> -/":'M6Y(pK#_sce2BrjA:HPo(po,=qXqJ:C8@iZ2PA*Bq7Isq'%:M/?B@_9?(4*9P -F(gktB\&5Y'op9d"U\oY't0ZJ&9?#olJX?h&?B4NF>=Rr^k,UtCNd=+(;C-@>-KN, -Be\d<hp^?fU($O"= -#is)OS`@@F#U^fg"s<6+FG3e81C,q/ -*=J><'tVc?G?5CnHH$nMl[L'l4Grlo"]d#q:N&(30`J$qOV,uJC<7+_]M<[!IFigp -(P.#ohgSH*I@'DP(\<,XpQ0c#(27mQGAk,0SB!Z-sqId -G:o^XD/@^COU@7F*C?HtC$l'E("n1L_g[tGIX"Y;\4qZ::a`bCL"Kae(h8:mfXI2\ -(ni<\=EAUdmdds@p.$TH-`#@op1qOFf(4f1O?3D2M\OtSsf&=d5ZgKq29O9(:"_SESI*'l_&f@ -%LshOB0c,gH_"2krDeWnOMS)Q;H&V5p&sX4k=a1@&iQoV:PhU^BBReO1MTh2]Zk -*>;G(9HC9,73hnY&13rd)Sn2<5kT60$a8`G7S`$cP!;d,3qM%&](@bH[As*AX#h9+ -)]l9]'sa;ZZJ.$dn(29XEo=%NZeEoN;7V7 -:5:KUErb'!.p4+>.9mTY(jf4]'Ap5bBEQH8LUinD\_E`f=(la?37o1M -LmMGV\E^luO\Y2^!rK]UE%^n7;49C_\e83#%DbI%PH@Qg7YXIBY4G""I`;30-+fGP -qt%?[otMI>D*..#*!%* -lYEuA:0*a$<#4rG!\;9\f>`3m`Z3g>gsaPRkK]U_no[+>U?HLErQD9kn4/1HC46-c"Rc2BlUh*]I+YL20! -eD3pN%%e\`lJK&=e]8H#*/1l13`h#`6^9i:lM$*?GLp,I1l.rbO4Vo=(7\8K6P7MR --:m4DOi\dGee-l#[r'*T7FW>Jg:a]DR]4qf\(dIcgWP/o("*ubP0b5lNhZ:kh_>MAgXYTgHo58m<<7.ZH$1K -,>M,tgO?#6m;RT*t]_^'Ce'r>q:?l1mhb9F,6BV,R?Nn -hPt[)'&sS1!loM,H^X;O8+'_WmJfm9?R,5N=7r1h?Fi_"OGU1@B+*!1=;,a[X:ffk -K*p.+pVISD)G&tI8+kA2au8[`%:RRK.L,/f;:Ag'5BiX&]2*dCoUeqV+0YQK:t-SF -qqo0d+2U:C7^pOtr5AF/oVML`g2f$kVC#-U2jsY52?%SX;'culNX,J^R6C.2g;3iD -%):.t=8E%Ds$).0:rll>!"aXZb>7hPNW/To^Y]PMjE`leI6F4ka4("brdW)PP1ark -@540Dk*&rThJkQH:?Rhoo_sD-Thss;=u@@`8Yo23`76_'T2)=al;_#I?E%&-:#l]BsV!F(;"^tiG?&/mWTVHhX,U"hX;9(eb9)o_-aF6*%ha2M8Wlm -ptSn3)3;mMEg[?E:G8!WB(K0\c@7jIcY.3\]f)K[WRYbVRb`/%@BnL%p7#?rhf63_ -DYKXVpA]][iGeR^?8isgalRR=SDJHSU!`+HqOLs%?a8;OG3JL0qmF$8DQk5Lof&5` -k4Euu?DZ'Frh1](d,F2,hB%I`^XD/Oq+N<2j`&NH5`crn"@2(9id[Am$3"ua0'"Ae -6EmgM$pu_u2\&3Sq<2uDk0\:#Qm>Q.<=B-.2Ba1'?qgJAaC,&RTB+@NJ&-)<7.rbs -3OW69k>AO7T-p^',Y9ajQJo31*1kPM13B?@8oh;>/4u)TY:[pQjM*?A1@3%89Tp16 -1edL?br/9PCtCU@/(BtJ::%=r4ARc_pHDBZo`%0Q1_g6^:p`(j6r>d@(Ih9/F&[OY -Nt]VK5N9X69GH!i2,)HZi/3#I!HJGR7PD:n(*DX?`.+08\c-B1[=r0oeoeB8CmQi/ -,^Gq;I=GX,2AM!V=KUA;n%:"KN:k4em7`;/jBt`4P9Kc$;Mruk0OBiRq6F6M.,Bl' ->dlIm3DK6JdrnJ&Fk:in[tX!j?FPp_H=%Jro6t%jp%8gB+LN).a>kBS[j'Na%k`iSjcD&I8-Y -C1CDtGFiHXp3r9uB2SY>PK3Je.-;CrQ^:1MN`2jJjS5!@e`V4sOlMl7\#qVk-GP,u -3#9Q=Cmu3`Zu#V?c*hINDV)@84,2q-m]5cf]Pfm_pV(RXpA_pI4;S7>E4e+?`$i!L -rcO]Cq7L+-k+Q/(Eh&WM=q4'u0HXk0NhSrFI+We0+6?&,drcZkr`ft=O^*D$r(gtZ -G.kA&QlbFArb`O_TbGrN4]tZ8`F9_a7g3%N5)']$Z2Ri7=sf3unV5IOH1rB227[VZ -Vn;GFrtiB>Hp9:)o6ihnfCSsU=5ER+*oH/WI_WA\r-p="h>Vo=oDa=P"p$tK#m"Ej -#D!F5"[KR8"(63]Je1BX5r^:s@'g`&&7uA;\2ae%oH/_tL(Qa38I8f^-\W,/'gfE5 -$Xn-1L(M?B6S[FW`lR`hJuj;,;#!4C0O9I]![!Jc7MWtrQNuRC706OQe.If?&jXfk -$BW7j7KAPl@iS:`R(!idONnT9^hjL"hDrUR1Q,(qF5YkJV2 -<&GU,k#"`28L\4-Vh.6g,Dm@=.j\H&Q4go79'L%@AZW5(dcOe-\Sj-4e@q94raAJ< -M(g85_jL$2A5'P!1M0>,R?KsM9c9oek-WR+'38qoH*oSCjPQGJL2Tg9_)UU7jdd'J -F\[563bN!lS^YT%cT0rI-^=:r'Ae.5C&'r*m/*F(7T<2CqYmEN#GDhYKi#*e5q$jd -U(g(R;*$-pBXJYO'P<>%\iE8oORO4L5^J@)&jCuq73BAP$IYAE8uZ?^!^ldM]Z?O* -K\/d9UA.3=!PgN^E9\G8rh.aAgcEJ@mN$q]G7N$T8#g]-WYJ"&C.` -,QWiu7Q$\@`1TXb`1T+46?jjgTfs.XjkdVEfNJNBjtfG6mi9`HgYTQqHZ+&q^)+fb -5l-j17\I>q!Zk$h61uUUi;F6qSk$m=Qp1^u0HU@h0jK8\4GK65*WpLrNoA8CDk7c_ -(h1fo]K(`9opir;G7`a27>Z"2-cC8-'4S%?MXbjA`Yc$"@f0ktCjm7RQDYa5]QoQX -p-6V9#9dV?M32$%6Qb>V<4^+T/43hFak9$/jW(7``DBo2aP]Jg/"kB_7Tghma>^dh -)M?C[AOK(NFU`pj8MW2Bc5FY_)I_D\*-f=E_N98*@-g+rkXQ`U$'f)0WXp3W^(@<[ -=qC/]3:i`&3Ua^S5920M1q&UrqH$@)]eu^0cC`RSK264q+/CbPVpu]`@LoZ9gCi -#mgDM"JD#q/\/?6oDj^C'6e%)-\=q^51J%fUN-8`!uV%S -iZ*H-@:haEE8Ud`7N6:"NQE#"0';?E=l28aaLUO,E`AVBA2^dJ>o<*.%k -]!Q2."nX9td!pbB3OtMFJI.T",;;&]+gb1o4TnlYgd"7)AAe%N`^FE.<+a.'B?$0K -)]W?WZtm\"CrXtA`oM$0U`BYi<"M;dJX]ob/92!j8HG&2L\O4:gW,b=9H>8MNt>[7 -fQEduHp.)Z&HIqY/8n&^J@.K=6-sedct\8e0XDWo),k.VCeqjO:^-V]63JH&&]."r -C.QR.`gi&[e;hWRO3&)s5(&:11m?$LPfZmia^g]t"G.B[ca`;%\Fc32[$o+;SHnpr -":Hn4Tp@s%o*>1Jar0B6FJ?oGUWPPs6XXP\/,Mn[W61;ILHoU>BM1c".L5`>JV3U# -j>33#7"G@Q&Q:L-`0s=dqa64B8stH+,`p2sOirEgbETT]N4[9/]GFPUbN-C\oY8TQ -^s!K1^X-jeX=G!d`0!1$&LeC3\^JQ.RPOY1J[s5N-sd#fJ!THG(A,kqoZiclAd&#S -#!;uH1r7F)e=EO_LFcV$\K$6SR=n`j.AK0lTN?b6`m*#O_Bae$\<;X&eJC'U:*dKt -1qQLFim'sRc;`rJ%,js7kg#FWcD9aNZI=RgBnuIn"K?2Qe9O'%n4sYE:B4"<`1]Ls -L4GqHKbu7"-qFUX1uuc`eXI455a`mo`(;XA3`^01M#B-K3^`eJ&UKN -b3\Z/H##hncF1[l'QiM5AE;+V$ddE3:ur,4m1$Pt$;hNMd3TFQ2&"A'3kt<9SWhO? -I2@X:=L*H8aqRUVn:\i($,EN>#Q5]@jE395ee&d^d7kh50oF)7A-B`sdIC2`j-NCN -;Ai>t:M\+ne/\e1m$SS5PJn'\oaat)&5s;sdiC-k,r:K#/lPb-dq(GdFZ7d"RZ@Gu -L=feKX3N^^mC>AB]j$o4m2Hp:oU1j"]U@>5V*`CRE/4AX]aZsNF[qZV?HmUTe1F;* -TNTNtS'g;hOf1nRdre#c@>'!`^$Mc>ogfY]1fGu+eQ#Z!2-8=>=B0JQh.>*Q<`5L&1B@+5Vr@H]N%b=>GfGkL,:((dSPGDm:V_q+MlfIe_OukYmeD>=i5Aq -rTg!u[\I@8dmT\:-S -g*NJ\@E$bQq&1MY`DrbgFf*lGQ9a+00.$6kJ<5dEmn6L\DF14jA=uEV? -0]IopE!@i8Kn)%9peV$'*kI;*bbK;>A2$6+q:.4=gGn%mopskA^YBQq>U@2@/]!?> -^>)`-gh"L\FiTMiIYPI'[CN'$8YfV!bhU1^RS?)`FX'a -5X!1oFk;LLn%[BJ'su#jST2X8UYCJ.^#aj.%G2,L`*O1rhBg'G2C5Ol_LYt7a?UK/[t;8$KC,KDVUn;&+T=G.&I`DKGXkhfD5MEtbWOB%QC -<\tPl>lg3k(h-9orBMKgM*/4R@%gmr!8^`WhG+.1('@qi3a_jii+<2OFpH="",AjM ->KD0UXb@:g:1r<\5fd_*5#]l?l6 -*Vu4a"9iU"@+3DV9Is7O(CA@hi[+ff2?[JY,2u?B_/:E*Fsl:(.,pIC4nsM]OB#0a -M28*f@at*IF=0tH%hH;+4>n_?-8XKG1qi;5S:ho>%OpFlf=UBP]"i(bOFP(?;f!4Dh.GJ7/Rh+VH+uA7em'G$!aB=QO^/AV%JT%U8&7>ijOBT:?ohEGu0^ -5ire!"t3%a$hRpE4hhYU_OJJ1VInt-oEP2Thqh[O[HBTj*oRcX^D8ug'X#SdItg6j -bVYelL,`b9FQKZJjed4amQ1DEG.ujkYuO^%P!7pi9.h2gGE'aOD0D\4@I2A1^k\DOStJjCu`>+*4n8lNd'_W -G%j]rBkEXpFV*c6R-Bp)l)'o5W,BY[>.nI&2hmp47J\oA:0e8$[HZnp)ujYJ5a!Ogq'h;G' -mfrB&p@N8f&Ff]3E<+=(?PDs"'_,1O/\F1Z^q:aGg?hTL:E)emOqb"c:>G:/UEqt5U2mFmF6-\9>EFSR*cn5F -cL%i.bo4?4GX?R+8#D!.`TD408FkA(Eq`2uV<.=;9_?q2o]26.PUcndPK8MV`<5`i -mbZ[3)T=Q1;/**POEh'uXh*qVo^>u4N=!Ba(%l:nR_e:5IXt)cM,-^i`7)MS^BZ?Ip8;Z>f%3.:;[4^`c];sehI+Du>kTd)).R!+J/=a/cKa;0 -SEO./UYXtEF8!(gfC"i8epcfroQ#$Hb6EK;QZ'r"P$dmWG(5,;GD#UEK6U*EpSWc@ -GDGsGM:$Up:H`"rKjJUnW0g13Yja -;O0%1!c -bgjd[#<;D>m_D)V-8ZE3Ka9'PH!TiC"'?qT=U2S9YLi_sf_a"J'5,R<\(gl%gm!'P -@K1:*VGuYIhu4GMr[(V3Z[(uMRS[46gM[%?FImr/T)OD"SUU&+fB^mgh,s'mo1jg^ -S5.3iP('9eI7+$<#MOYtg&G.+Ip_i7TBq&_q#?]VOQHGh*Ql`ar0G+r(9d\&\:>jE -DtHkcrdkJAcf""d1)Bm\$_Q_e>Q(:pJ%8_0R+uF:+-/FN&,1-rrq:QNj\iX"[TtPR -9P.3`Ut0BAS5*]q\`EI45G1hd<&u<@NCTdBBiMZT2P!XB<,,DoV,j^"XB'+:]&e+K -?a)cPDjU@GeGj["TC(2+rHNpDV[/C=UcoiT%mSJ$fD8m$s&tt#m:DL[mdRI?EEKkc -2]XqX'3*X)SkCN!b@Ye*]Z,"MS^;$A=m[Pk9;BsNFW.qW[oKT^C\CsQVSd8Wg[02( -^"2q!^YWogg`@gRNPaarGs$OW2jr"RoQf7FLJP&&lubBqIc"eKhsYf:^-;jd`T>lb -rEd6O\)$NJI"#EeVq:>1r-j-&^ZY@hs1f0S"TcE#/.D]t&53fB_2rE-I\2Dkn9HRc -3T+nLn@UOc/LU@S9-<74Uq38I/4d>`@&a.<+66g)J!%QH@2VN^q*HGNjrkpuSHc/9 -+35''Kd"O#/<(mr&knQ:abd"`G9Y!tr`9NKq&0s>j@DOcOFXu=]-2k&P^f'2EW1$J -:okrM65"+j2nn`JcT/YeXQ;N=PJ$QNc]c(3/H\AePXQ$Ld?IoW78ah: -,=g0]X*ls+'[8L0e!05_:Xg*g78_R"/PT0o'hq\.eWjqM$(pGorb<1poKa#=dE*M\ -Q(oN%9*[6M9e\2QBMa2B_Fc/4QK,OUB%cm"b(#m,bVF3=f$1U>gQq6?Dql-<`1.ns -U&K$L-i''(0E\+<&X";kKXqe)U&J%##Pis?en'8=B[(`B"\hnESdg;1'W)UtiHS*8 -LZ-mG)iNqi.uNK)hlA3TZ>^5$6,DUZ/j7,AS4=%, -nXNr,`Gur:,KK@[Y:7ZcI*7/Xo:584ch&4g7FCau029pg*DZdD+876\-m#:#s4I$n -QYG4Js52T4J'\N&5WB2R -?pk-K:`]eUPIUT7KFrf4:'s9h/Ht(N)1tb'%M`U(\d/#Y'gqn2$2@'uTe%RF:o%M* -ea=6oqXJtAbe9)-5SFEjC*2HV2ab*%%hZrG)l!H/_:X_Zi^?@p;(V^41&a/P=T97* -EZZN6T+"e_JHAKi))$ZaRA!;_KZ_YkN^9*ua.VdUNKOK8fGtphCiPH^auDmNm2]]T -FH9;U4i`rbFQ6VWOAZQT86HBFj@"ie;D'1(JZ-/5l;LoF"K(I@hGNH&\t`mD;^&unpLpnBjj#lbu6hF:.@D(Xkf\TEJrI^XgQX@XD6D=H1) -^1:3uhEplWnnLii=F`3H./to]2GrTPK97Z!:g()VD;CLa``A7g)38n -_#G.#N.6gA>dkL6gp\-*6YICV+KmN_0'k[Rq$MU#_\p/UC'h5K3/^B -2&?;TWXN>9KCK,N`&N5Y>:^_MnO=tH95>.!0u8X!\9KYlZ5Jc#:a>M-0l#@C!+5X/ -J8t9Ka;GL1jBRD$Z6i)_q"#hCgmsZ"L/H)r9i2G+n4r`u_<&nL@*C%1V6'XS -iH".?"J@YBaP^!NU&UU'IVooe^@tt8e2D?EH-]X^4sUNtH\EG$c@UEihM9,H>F:7p -:Gqi<[Jse/l&<_e-V@p//Yr$QQ.$Xi9kiE=iUi/(e67o2C0aQ5obdEE,Q)Hg'm1e0 -JlGg&QJY&,!X*MC-6b.Y=,d5U5P=`cfB*X*O$VBt2FbgA>:cT:@R%+%!/[s]0c)K* --!:B_;'4fE3G8P@,PGPJe!bc+mThud[jL:o>GlX^Mab."L@O,)c['M8m0@fRbnN&a -/%eKp@CQJNI.SX>/3ts#L\SUqqEuA/A'-5l17Og_ -&3rt]!G#RFbQ3;7K):Ijc/#u,IdQ8;c^Ai\A'OhI3+1ONSo`b:ch[l4kXZ@e9e!'^ -#Q4Vd9t-tkQJ4isBnG:4cJbi5f3)lPK^2oVY&]u4[JCtRls5Y'bq]5T#PbP5XT>+_ -+UeSlT5Ph2O=BDAf\3]fA0u]i^2onEc+F"(n/`+VG[8qX]LRhK?8'(LYi&#f>#XTEGn!jFB\O>R+/2G^OV"7SSZ0LZ+`89;!( -m)u-f&6.\`QkU!A7W!/uN^b,L('L?1&tj.0OE?^6I]JKljbTH1Y_<@%Lian!)?MT. -+P7dp1'dq(,#73:B83XK`5V'%cOHE(DTN!B\H=Ot"0fTLnAPd^aOBX:%.MXR0\$VO -fLX6SpIY:f.NdWR -(?3[m:\P='.2&m:>>Ob".^]a>H6N>q?>:%>9c1cal6GeN$ZO8tE5NDF=VYp^'iABS -X"tCYBbmsj(@cA\,*3b[K]CDf#D2S$Lh_[F&HRb!MfA[o.c)B9Yo0FECFu'!bT@Wu -W>`%C8*(g*Dtc9Z/T3^Y9't9 -*qAbB/mY9;(mWMA,4[H5 -,Rb`+re+%q$#Zh6YbK#@CkiIp)j14EAcV2BSJ:JW*cb[1;Ipm>B-oBJ-Ltt1nhhe8 -GpfnG-gRiU#.D)qd$Sj4DA&!DM2&Ie,6;eI\8;N+D7_(aW7k)cdD=TWnpr<3\LXDc -kc:H1+a+D/3c>:9BRrqQ_0-@[Pplpqhb)sY:+7PGCG)o40%/u:o(=Xi-S*XD0Co2u -1B`gFBGs0<,OfUV0QAg'))61Q#9b)K"Ba7E@NjrG(1?.4U!ajqs"e^X1P+*rEOL#= -#;ib]1u`1kLM1HQWqV'*#j>n4-&`r7LG?+M#9d:%JY!Rlrju(k0,&miF+Z-0LH)Vo -3:@#.'9tS!R5qUDAB:9aM-qnK75Qg"/h\Jg;^t2Y$kZl<\*?q1l;p)(aZO<='VMHJ -iK12rh`:;a4nIMV#5[^c`BLWN7AO8X8l0DCV_)afe^LC=P$HZrM)c6/5dV+goG'X@ -(r2?o61cQ\<$F+Ar))EgM:?Yk)s$,"-/X0%!ZIi4gED3(IpGC2icZ2O^H?r=09!mPP0\B+' -D`ZCs:@up-,]uWb(p#*D7])LUoIqPR[7IZm8Q;6WobC=]),V+g;Y9'K2'l.C.7+HF -/j\QbiS[oT2XD,^%b#22.T"j^Q:gU1<:rrVNkZN5.oiu_,6>4hF@eSH'c^W^rPn"T -@<)mBrbo[_eS==LF8nPSmKoR9?qg=n1j)+oWG>LJ%Y:4\F`tFg4Ec -7bY,1G]RWIL7J&3a'<3-,14eA("HT/erdg#,8GD9Zuiea5;lq@pq_1d/V#&O5lOJL -=S7qe('Ri!#@KFqnFbIC2AKYD)#KA#)!^)q+M*tO`fitO$*hXWd?:`U.3b%T>.(>> -p-i9,dWLipAG/jsDf6*SX;IWVhiR]Ia,Gb[[an8Z&hQaa[WQ!O%;3+nB@_=Jel-7* -M.j>Vaikf_dY)c:R/[ql8f""_WD>^@(iFCD!H-tD(:7u1[q7IG(4bNhoj_\/a_\0\ -(Qe(3d/n^gDMs50a&L/":*F/lWFtqlBK#Bo(A2S=p7,1.Dta9O2[$:`AF.G(s%]\$::([\.pZm?s3J4IcKF(,pct>+tpKjZ#C_2'T.I:m?[)I7fIop-/\7:6fAVR-* -K@k1!3-C!f=_Vj3TCWJE1Co9bRp,81l?FBJE1)=kdNA%JM?) -/OqkLQkmL(P-Yru"c.F1.3$I"9f4]J\7pqIB8sEd[P8W/P?q]HKgq_R\ItP/8G3nhOng-9VeLMf*D^i)<9E>:Lh)]8?4AP_ -q(-fO3CSrG8WEO?P]`=U3E;>i=d>`u9(lO%8e0Gd.@.)UD7G`Pk\iU[9j0s>QfK?^ -Z)DJB<*WX!J"pdY;QdrP92\W.:/7R?\YlPe!u^q6?E-UR9`JS,'mfQd1`P -[MP7+SE`D2.8HZLmFeBUWN*P3AG/A#d`i=a\9tm!rC[RWD/ieJ8@PbKG(jA,,UmVFnX+X+ -XnptB/i"u5>ZO.>np0AjE+Yf4^T6pnLc1R1R\R*5Ts2,)YaZ,_)WS)L)6pME_=BSS -'Zf_>-nV-K=*-R*n7&)UInP*CZfH,5%^(tQ`FM"MZ.i-`.FhU(JnH^>Zq3,5VjljhmgS%4+C=Jrd#]t7EVXn*=$BPVW%koe!G&?AQB&#"U#&UY# -[AdC=_u)cOjP'Z)A]#kC6_TGONio$fc4KI`\7iPB%r]3Eq8U&F`nUU7r,b"_6cZif -a6kF6`m^'K6-,nN)rZX++V:$/B1si%8+/sV]VI/n]mA-hFM*1J4LC5>@1hJt(EiHt -k3d.LB-`_N?6QWV1tdjG/ui0#`uO'_r8ks]kr5-AcM[4Y/Fr#)WqCMpch2PtN>Q>r -9*R5&4VUO?PkWR9G:jkt7GRRa4X>Y;03uhY>&+4:4UP;UIM=36!TB1T25ePQLoNT# -c91FBrDhB-A(#d2ebrmeq]aZC!YQ)0f$QVepm#>o,*VIc/9XE%TtDKGL"MrN6W=32 -rF=N/QuskCf4K0@?ir.!Z4icT+q;C*mj8M;qj>EfGEB??XnpXB-mjAg+.#,13f+mE_ -87=S5H027Gk0=UuHZTXEoJ]Vm&iYSGEg'q;#Vpoq/UV8JCSi,ds -WTnKXkT7"p5.#D*57pjalJBTm)kOW^8:@L(%K#?*T$DY5:,l3>]nBSfWNKj -.B)MJ0LiWQMgSd&.t34DAXTWAQ+P0/T2kPr]hFp#+q:UF1FR-^C0DF]5UU-fWTE[- -)=d`Pp]#Wihc]`(M>3m4m+8WpiJ%s*an_Qq.SG2r9[(0;V^\!#qWURY-piT0h6#Ro -qu=HB9`C!'':IAZ!eQG(0bQ+&3!Wbf[j1Rl^'F;`==In-3\C%U,M0!A-ReSB=HrKb'0Z.eRL=Xn,rgo5]@tV"$l?D'*U[@A/bb>lDaW/TBF>[ -QR2rob^[MagbfR/nFSPM'PqL_6A$g';Mua;#UFn]^tJ^H+^mKI)\XCjra(\!q8?g\ -&d3h189,u6,=qAnP9ie@A=FrI.8K,shY0faD#6@ke)^Np:c'I!6Vqkf$Udj6gIr2]q,-JqkN^>6cn+P4aufQ%KtR>)noVZ"qBWiM]hSBl.L&>^%L; -F'SH.drer?A_VE"B3DTkRUp<;//9AqZ5uHmje!ET,'j/mO-Uf;?Q"Ourbe).q;-)H -n0L4licpb>:1F!q0oKO$ju8?2=U$sLj7sH`P%=A0;j1cq73@=sq1`CIApL7hRqDK9 -F.Hrhk'I7QLLkL/+6CNl7eX#fPB02CMr9$AlF?M!Adr\kc9@WV4='O6urEj$pF$6F: -gNNP9F5;%gkBl*1rW71jT9H);HlbfRmWa"@?^-&27`#(4OluO$,O4uGYniu0:&'4" -i:"GMr#Z`unp9)j+m5=Y&)6i,s+fY1IXe9]RO']9$%73Y+2\p,i%3DW'8IcMOB.*) -k.P)?q&Z=/ILi@C;B9haFq@CV6!,iF+Oh3[E+TSGpcSmjlm%/pOqA`p,77jY.ts(n -(IIn*$t5AV8>NnJNa\T`#\!]j"gW!"O`iBHpq[eW'P!)\cutE$&jO@^IYtC&-ng>q&/KlD0X"LBMfA)K -`d"@&j*Y9rn_?)/q#2A_Q4h8`:Ej4(MieW-77c)T,NP)LP*/:,aZ1nqUF_muP'0Vm -q*?E?'VgnK0Y3>8U+-g;Bb[7CJ'-GO.tn7(+6$6=V8,A/?m,RWA,KPdJc<-QaL@OX -'PpH7O"jP-C**Q';U"s11hN!$RZgcI2lE8>>;XHkP7V;^k.'#rO>9tu#RS#F<3d99 -W!dO?^Q8"5+f*'JP4R6ucUmRgVo8J);tbUbq>!9'oHKaR(5#G0&OL/2$_`eB;ohPg -nH\"LJ^?^gd8Ee5L#@P+"=d^)ng5IZKE<7eRZbsB9hD+1d$75SLJmtW9PKbJVNfV2 -P/7,P7$H.,buGQ;@/pDm-kmnd&8;KVr]Z+F&Wh#K02O-l5\cPdWg-&ReN0g5C;jDW -oldGm>&@AW'k=>1QEsV21op>YY$1,(C[ICl[[+eb>G&1;rP< -QEo@QdOEO-`8F$OY$+$0qNYhJh7CCfk6#*S%tS[h$c,q("Q9)'HE`\K_O+C4@=0dd -YBnkke>AI*GIN#RUq8;m;In1&;+7.1_l:.Y(Lm;NN,b.>5'+`oNq(%P`]08+id<&j ->(]Bq2!g9#n`/OY*J6]dAR-Y0X4VA -M2?b/5K0jMQn*Wp&+SR;pp9MR?2'rbmX="U(OtqG#K#a9a5VJJMt*At`tZg.2[/R9 ->CKRg$P;!PEVr>FICOq4;>r&_$du3D&VEQ8aBg46O7f*Rf6[I)/Ad.loJ76]\b -.3,t'6?jcp8:JF0q#>"Jo>CKU%J"lgb5!,4kBu0\4aiC?qO^jTI=2,6oB(rCLtD'i -Au>ApIo:%`Il]_Ir]17`DF?]$T\dsKp-4o8rh%f:d0p*dY6`8aQP%RJkk60o[NC=TQBNN(icV\p?XfrHFO -8qFfo"/p^(W*$kU'8JP]42\`b@EcNG/O6*`^oT0*r%:>F0/m\h_^mT24>]DsS/^fB -_M^7G;Dob)3('2r6^,_<6f5WdcA9&q"M&rT@Hei.oL'S^#,#$4Zmr9g2+1\=6u5@E ->'Pg"p'/$1WQLccGVgY&!#BqM]1V3QX>lt_@NSNb(i(,.bV;Hf0u[Bt7;PrBHr`[f -X$h>=7BB]^]Nc#"e!B$mRa?Q'oO&Tm@%:B>_1?16Ce_"A?4;FU7VJ*e_%$^^MQp\s -`iNrF]PJf"p+2Ep-Mr9/b3Kgi?DYGeKQn8$r*`)dJ#/TX6D<+%FBHSBGXn9,8$$u+ -[!ESMCrb=[8*k^jj.n5fFbsdR#.*s:>P1NLKh+ml848(t@1F$PGa"M=1!"EjTj((+ -L9HL1\+m^s$pBEQnWB>K6<[R0Ac/%;R]=>@Q`AhDm6h/24<9>u?bQ\+5#5PW]\n;58?%nKR"JEb110TWE -8rR.K!HaC%,f>E8p4rQ-W]=8u_W/tdr(l)>aMT_k/E'D7!Djd<&hI``["V<*qod\n -7)Jl;$DL*8XdB*_FS.QcM]\ -"XAhl]c(9]3miMG&V=!Ys$\GM;oM[84]GEPZ830Jda\RS!]dT4Ias-IZfAA"TY",s -37ZhE?qRNQ7o+(k!;'e-[-L#o>nQ&B,MIAU2%Vbm>_g9%DZ]rVRnDOVJJ"5C4Q1P8Q4F4S0?*o%ts -=BYfh1YYp:gKh9mD750Uf:+SHg#6+fj10&6Se@#q90%s5H\Bd<5[$'fS24mPLr62ah2@)FiiK7aBhlh?>\h2 -H?rl!l!BqGo+jknnm?g[dKrTN,s!FQdg#Bg2W4p57g"^kX@?u?3WIL'>A$"0>3 -@'0lF^'nDp%:J$&@."P5rX`KJ&Rc^n@4i4%4qqF#'k(D\#EWR%E-qgc1C*,2*t?TR -g5lR/5le-:"Y_TbQt6FZ(1J=/@P/m74sXT4-":1-@W!Q&IOJZc.:Sku@]h4j^+Qb=[Kchq%fLpejIY:Z% -THJ^e!!nA49*+O/KkN?!TOEM`Gm9(.#Cp^sE-DOhFQ6[["UH?,%SL?P9B=AnADU*m -ekfoF:uqUQAM-kl5#LE:;e9!/AR8GLDHLI^=_3%bjc3MU^0>0o>34UGA`d90mU0W* -@:f.AAe&;4*b/eWA7f.Xk&+aBG%P?8BkEB?Aqk)5SnmJkChDO@B'sKtrbc?QDeBQ# -B-),,(3F1AFQYi1AaW0'IKSLTH!@_%BEG5G,B#'WG7HnC5/d(Su_.ZXD6UoC@81griU#@YA4WRCEBft(:7j0[-Ko`CMmSG -7OEWi\S%MF=k:)u^:\7,]kcJOiG_kR^f?"HIbr.q"7QP3-jK$,mM9]YCi7,qn3MT? -Hj)J`@K9?mk0.Yec"u7^D!oVcrm5Kld;9rQD(a:S51F8=GD@#O#G>H-OF78q-0+b+ -j7imoY(CBO-jQDR"LrZ2-uOfZFpD@4DC4=tE-@"Kj9KSKlZT](IckU/[Vh]#DPlZ9 -Y3^&?m;BB#DU.\@mn8BB:mk4-K2Y(V^eDU&3mr%l,#0[3%Y(cZM^Vp;N>< -r*ITfdGR]a;(J#2L2VhKE%_;S.63.8?3gBeKfCX%e_mU)c!,."Ke'b(\mZFY^))s! -'eTJnp&8q1&TJ;rL..W&4e=pKaM,SC9'6;\WEA&s8h_,H% -+S-[1F"<3G4ArSW`Q]mskUPjBY5asM-nk-CE8NHm^H?S\#r/^k;_=FT85]Ma+=S2q -^_?813/AbNS>$'`o$9#]#=rn88T]GRoSD%=f1^;49et1bfB53LPH;[>?(rY'UT(;: -3ADTB^qqs2,+MN2K"4$:/p,uSFg#""/#4lO?cu51L]:]Rs$6e13@iSZ4S(QWS!U!U -S2*)RFK]>!VeC1]Bm+peotP9c^MGLmp/NVY7Qb1"SXDR&4Pr^f -1dH0(2*EpsD"jQJGH,;S\stmGj=XAtpZgj+`75pe_^3tRQB7-O!k:Y%GkQ&hp8<[j -DhrS/Ls=7mGd!$M\qDfDMDW:tDj:,m(Nc_UE;:F<[duQL$C35(5X>KG.)!Upa-_.5 -R3/bs3>2$4a.++&C^-ED[gDUOfrH1Yo;V+/GBl:FIu/JIUj?C)qJ6N7T;['sW?WkT -.DTpB94^J;E.oT(qWD3b*MS8\8kL0#(Pt-khl6KK[-P#e\eSU_sj^BP@=A83-g9Z -1]0bgI.,B#N7hK1D[!3iFB>*IoOAZ#4i;WE9p`SA+2IdJfmSq8I=eVLs4i%Kh&4O& -.SUX53-tsaR"pe5INX.>0R8k>)_sRQH#X/hhroNMknbYB-G^0[1AXAgp^qcgdg(EI -Qu^"ZfDV>rIjai9YOhcEG^c:YIrG(2J,"MSq(S#EYP2AZm?bgShKt`2nhkXt"9%*8 -J%a\lpd?GD$\h#Wd.i8`,nl*6M5k6r@P8UZ7cVmq"Em-SO\')HGoW\U.[3Qedb0;Z -AM9IqAs7MIk%d&K:FB)p"TF*=U/5O13]/7H9;BsM<9e$YV,=6l.b-Snl2=)0\i -jat0SZ<6JE.n,cQB=1NEQMZBUj`A"=DV'6Sk4O)8?Z4Qo"pYXBdV3gWI7C,7X4D'/gAQcHA[C*-G2%GbkB4Dn -Dg0t8#7#t#ic0"ApCmM8]mm=d0D2$\rgkCMd38hkr#OJXp7LPfoDLL3J#eOSp'NDN -f35rFXkkqDg%2WMIU@#kht?gEIQu05rr0\E*!HDZ0K]XE5gW1B"i8Pb+U5e;HmK,u -DDX'V_bf,K%`?Zk5nLt3*(^d]d6(8?`DKlC(<+[K@2R!]S7rn]dCaH=a&1W;*ll\+ -5^a]oq;uf_`ps%C(!$,\2]q+*=RJdVnH9/jj?PnYOhjoo:'dcnIRBaj&X<(-P<:3L -_UDK329jTdiAOG0I-3K7PJ$9FcEl-`:=I_k5u?')OjIhbjtS96P_,>&8;7BF'G2GJ(bI2KY1p+/Q"(F* -As>g]e81c?M9LIA#EsL"cdlBeB$aRiT4_=CSY^)T2SH)+>1Us/D;3Xl^nOeP*Q`?W -f0.N'h,dn8G2:buiHX3\S`tIWf=g^%hcJY/`uYI1Pi`hDZ2Rmd#PgP0+66Nq>=q:3 -2"<\^Gg_)/KRs,=(?@#_ -3W<@sa8*GXj8#S*RI/[niO8/9Ic\0/S%e'umb?=_]rV!B!Pn20*sogRgclChnQ]E= -`pqi6+is4ZSaVT2k!:Y#$A\Eq'[$!g"q'[6hB7<5,3f)='F4HhE-7^q>M$rO9oO@i -kNVimDnY$'hXB:`J)>Jl+,/_L5!OnbGhETVk5!k`U$2>ZT;h,PhS6>^qd/0jmebl; -l?OBe$3"CsBDGpm\o+Ja'6JAh7.L3X=3L45hllNb(2*HiC7jPQHon6m!8^ZYGq^9@ -5_ojN?t9Xrcmf;deGAq_U_SL.?49,e2$W""*J;^f&4.4&#iQutBuBjn%PdrCL5JPo -@amFLnL>"jG_#oG^_)Xt-k/]ASI!U9+2d;m5K1]k+6-m:/7joWi/A1u;*H?r(n26! -KN*h+<\-[a['ZMX?&R*Z0Lcnu(ullQN7"4R7[V^Ej'q$kA,KmEZ2Q1=X>l6W.NGK$ -rZQgErt%FmpRU80'@f(-+60SC&+T!Ja8/,Gmc;\_BdFO*S6M/>?;!kX.jj>qSgdp%H)QqdjS\V6IDZcJ.(m*H(9+]slSli*74TE:,$k\BP34=^b]&`F*0t -iXcLD]0aGkpqm]fE,AORG\!qY\@^@9n6;C$GOHR2]T)dJhOE&Amq(n"f=q#e)s)J9 -ToHT3P!Z4GGaG92Spfn8@YRB*-7,L,)WVTW(u*;emk,'^pbN05llh&OO_;D^q[9s)No-aYB/] -#iltVORTD>aLMs/?0k"Cnn(VIE?f5QqB,'$cbAoL"6k/= -F:lsb/1NQjJXBs]dlf61\-K[1Qd4mEIIW:^q&e2j-+BT6#lok(>Vg:pa* -*G)>6KINsS'Ru)C:D!]ars>TNnEE'P-3Sukl2:rq6GfRs#`.3 -f%W:dIrHF5^pjUO]_e%KE1Rf]ph(&pgcpU7'57go]:!dOMQ%Hj_\18O:g7Tq! -_sAfO%&'>n$cDmKLb\lcKiW*:(.6pU5NVCLVo8Rag\U^FTDnlRrVt4D!"]54:^/\4 -Zle8j*H,n!-%K)o()rrrl]*[C9$Z],3!BWblR7dM+nd!2ir:\rrt%Nrn4*Tm8AYoE -"V=T9:fdg^>6WA[oEC$miLUaaR(u!5"st,Gmp=X?`ZO/-$7Tf9_5,#K(*^Rd"Ah_t -:m23I9aT14RLim7:o=Y^Ws[4W$P9Vcm5i2K;A8K"nS:lAi?/VjMJke -34l'aiIN -7<77%KKIRDW/'-TIPi0t#b586tU(t"N]EL.OH`>,YM)A/__;5Y=p -WuAt,UomJhc`e18k-W<.^_(BEC=;BuTF?@^(gsobEHVpKK,LrO),]?1OlILF5oT:^ -*te)d;>2/pq]Ea1bAX-A!O`f*d/?GRT4G0A!+HsVjos_J%3V5Z5e7GV>8Qhk,8'5d -1$9dE2U -Z4*AiIf+%0*ru!:!T4I'9H=,o#*L)8iJ7l7j;$UK'!g[Q'/_C@2`&oDRo9&=;b&[. -9/P*n2%6RXVrl2V`eM>-&(5!q+kdF!=;i=)$W5S)_*L#$G7FX@(h#o?o/Sdo5<,u8 -3:i:_ZVrlJRlSri3YS8L9!I3/j#)\ocj:;5Z/0KN^^r?c`M@75W4O_\? -o$.`]D@42l,/H&q;is&glTUO$5&10[F8%n_q`iR05SO9Yn79p="Ybc;+$fUC;\:`M -h@@=t*5LP=I%K -7MKcjE'\$NUE![$O2qR7/s'%Wl8S -<2W?QX%LmF9*NKm%RM,MfEf=3%H)Y.'ZEa%*X7e?"LJh.FE/G\oE/OA%H)LYiI2/B -oc92H',7-3[.d/aq+jpT9/QfJ<=pab:!TEkc^`X_,q>tbl">_;>TX#*Y1Kr`%8g1! -]3Eh#>SY.]?.k7b-X!)i;ml#u -;^GD*fjM5n@+J+b<`9>`*G*f/Aenlgq;/+UNC)0p08V@n"k%CO[l+kR9T>=_"I -+!CAc<-)R.apnDk-M<'\!?F?[LMBkbC%h"64)]=+DjN^>(C>2M96Ac]FVdrnU7XD# -ee><9'(pruJ?`pPb@k;]!VFo:TJp$g1^TB!2toa^pP3iLM0MIUF]XcP=-n3!RsE/X -/QZ@D2T9>0;e'3"?8[d%+jLQ?CF8"\$K27+5c,/PEYD?'Gk][3f@P8Vg-IZiIM_$n -=6G%!lBNRDFk7:C(4$>=1L9,^G2OAqJ5'MsWXRgdC]SD\i=@kkeU?'&J_22lQgKBl -.tZD,K,?@j@b!Fs%Mg1a&ljWpi3ck"ZiS_;;ZJt2@CJUH)(/iQJlj+L=C[)OpOcRd -LDY)f=EfOTIR,`4'6YmB;S3-t0E\]3QpK.1?tD7S\U4DaDKqpE2S'NF%h8V/L:ClJ -(q5E*\gdE$N#9Hk=N?Afb#7:6=;E.neO`l./QgE>Lm0:mf,+kca:$YfNn$Z:+KuED -c&4R]MjXU(cf^8?$]s$POVngp6q0HuK0D+W&bUiUJ^+`rGoTl5!nEu&J6-Q;>EcTZ -9;%8DQp)-c"dI[BPo0fZ3>[sK>F!lKQ5O-g,j@8HKF<=q)dq5'=0IsV3I:>O"'!fR -9ZYY+X+8!a(P&e%pL+^Y4*-fgPke=J3Msm.AX_;URi/Q%=gfpckr:RH&E/]Z!7rCp -Tq&[=%3V?S1`QZ75'2"P?Jp$WPp;>u$"+XET,FJt3N89h\Y%RTTGdp*=F*aD8P]A# -$DA:Q@'U=^(SSDXU!q!i!QY`.GA,#e9i[m1TtH:OT&%A8#CV&E:/ ->$#ZtB:0nA)W8sL3/Ls"5F?(R9c#CXpg5t*T;9%eVtru`&5T-kMl>?jW>^t*L>u7L -),\3*VBDY*3SB5u-6Btp"-uB!@>G<,ja7(:(Y&&T>0!R&bG]=#WERcQ>1]mFgHVQJ -I+A1&@/Zg!a/\A#;fia[i(%(a3!eK+$inbU]$IJ3afq6EPT&A_>8OQ6)mRgbGSPq" -pk_'t-$!"JS`&u?&g.M2V@V.*RIZ':)[j$B8$p7?Z27J->?A5%>7bFuDKR0ZF2miRec,tI+!(2JG$(P.sgAJ -+(4jFQiBb0e-Q/=$m=#0gPr^ibIj=i>'lgR>M$QXgV(mSJH8CLq8%QG4+u.H=W6`r -5aE5%Zk%N.\GQBC>L@P>hn\"X_&O-)9bZ\n7>/KKmE:MU4i9r4I^)S9N#Sj"SHRjo=\-CW, -$!Y1S(_dPZ:WVh@5jg7:et('(-CPKXLPPDMP99cPh,F19#V3F?1kci!nQ5l5V$ -/eYaDbl#Z+4VMoWh9k%#dN'R\8Bd:M?ZT*l%[(bMi.6CP,?]8J[ZiTT]g^G96lBCN -%(1d0h&"V4("M+W_VHTj?"_`ZCY$P/PL>(r(3O\#Rj"s9J2W:Z9<3E,asaBB>j2XBP_lg%mG -T:Wsh?MEo[qsVE:_LY@&gu8s3rT.G/U4@HYeigWNM+o%)#Wi"q4<<`P/+2:H@/g2t -?T7SK47g<'e6N#UT%/NQNH.NZ6,69r4/[t&c0F1@p)bs]9h4gTC\HY(pDuNJ=qD:3 -.rg*G4?5@4.0.e@;cEOfUYb+N?Ld`=A,2DopHPGL?`3ak,1K_G_:cZd@*=R:S%BWI -HM=I&4rt.+kP=#]q7kA9s/Z*jg\p$e_!VTu=:>PNeX.5.=_C7.HTAZ`_f`frW$a!X -`76[[%gI\RiDA0#4rFoe6t29X(B>jdq_[GLG!]jC/og\(RIJ\ba`Qs;Nk&W+J9nX/*T -59Z02AFc-n[U1bWc"?R8h"H4`U![QGRU%hD;5r)\opX][^L=D#D"a?([bl)8h/;P$ -8riq"^0-^5bX1R9W+RV?9uI9Ne5lB/"eXuIG?;!!HQIg"@u/sBBIU40k1/-n!j=%! -\2@Rt]A)fMI"%[u\'OO9r-nZQhol#u5S*Jh!^L]]"U%)p9Fh:cmGo>p684WO$::u( -0+:3%e2Ik)Yk1-k6noBG&k&u]:D?5P<*'i(Z#j=i7PU-?)Fh!=DU-(\e/"U?@Y$Gr -Olaro5oG:db2rs>fJr4hY-I[a!f*H<&06Cr=E"_D$'m9(`NZF47rW:`1.RNJbqdN7 -<7mlF5TN,_$WZh48_:c&ml6;Y$H%n'8O<>S,%ZumH];DaXd -8lE%(02,;$e3uGp2"D2_MW?4`1CE;al4kC9RJ8st8*KjUaj.sIHB03=Zo&/%!4G#1 -`8uDT$0:>K-PQ_DRShPB<:sj%p2-./=uM)4BA0eZX_M&5e['-t#mE8,>W3D -$(bYB6?S;sH,qrMHY2*BS3q7CB+/8QL-_K//u+kR]B9-mDqkj(_/R%7&&Icu2G^7@ -]QYI=E]f[9b&Y/(0?eK"f/Lur]_=Y;F=Rk6`MR\O&nqcKeeM3e4`=XjJi.cqIo[L" -*.@1Bp&op\2Ed3MPas1W`H[q,NT>>u=-)J=5%gMN-(PjMl?^1RYO$U"f=10p^A#D3 -Hp8FfnpIOjUZS<4Lo*aO:C*l%INrN[K85J3p*2*nV/c39)D@L4QoS_Dpuo^n'5l2Sf?DLu8`Y"hKF(4s4.t/qWU[%)j'_ -']QJtM\/u@`H2b$,4o6$&V`#036<%J1hVd[VDUiQfc++:>A>@EA&fmWn(mmJ)52j@ -Nf`<1h7L&qcI<*22eJ4Tk\h1Z4AX!'[3K/AO-,Sl7nFRI,il=5NRDE58\$i/AFuLY -&r'7U3CtZ21oG\@NTI,rVGW?pLEeaX6_N*CJ3mQN'LHo2H6AWMeU!6Di7RSNC -&Hn9fWb"klR3\YObF.r[BMAe12.j5IRhKCN9t@enB(XuN'8CL%19i[o]#59l=@S5< -[NXODLUa7455cQ]]\5t_8?#,^KY)aL!f=LcbC\<1]('_TW -3sf>322J#.BD0pjKZ_CJ,\.]@)4)\-a`a%<'*30(' -$j,ZGQjf(n)J``F\+aLch7Hg6DUmUUPj7,^43;bd2ZZH"&4F7t+1)@&PE>j0DpqP4JcU_gII -7@B^9[iPS&'+L&Q'6-!T^tNB<@T1c&W?-c=g4q`S4[H&)'b&H8Vc@KF=fZ[gYLXW4 -=]%=Sb-RNPD*ti)8g]C&)nR!M/b=m_3pd;<.SXeK(7nB_&j]Xr-HNe -p*'\qL!2Ub04#&`]Gr%g1D;_uKQB -DseXd\T^7%h0ZVTmiCT)GJF)<6*gO7F>^aa$*" -ja=P(o,_PhH+uB&I.s9**f&-h5=t*f2lHqtm[fomW7YqO_-^I@n(D553h/ -s**s\ED.!u^o[p[1g,MU"t`0/JGnBCpP^f7)MZUQ#i'M65K-g.5i?j=W"TCY2hA2F -K*X&_ZhM3RnN^UR^iTaqHj7B>$,Dc4^l/Z:U^TMq%)Cp5_"8(%":i6V&&Aqm_'B]1 -*#-4G'gY5&_/pI/KGHk<(VuUY_5&$dZlHo`*PoZ853q,j"1CN1+cRHa68Tq(6mTWK --,O1>_K70BKIF^%.Dhl1_R(i1`%8dT/]-R$_XoM!">I_-0uG7l__`aWlnlQ.2*pjm -_dj>_J1(OcAV0t9#<4[DR-fFOL&eL0S[jQ,\fQG/@04e6"\9sX+=.0#;1_&.6[Uc0 -KJu;X8&UWa`2$&ES4pl.9gloo`:QgD"AVB":W4;M`?\C$1fVFF#/`OJJ-8rj,Zr$I -bJe:$`O&jg`*C:2?,bl2`UmNW"CT4`@E'R%`\_2F6tF;:A]A7m_Q6a+6rh6cBu-HB -!anQQi%'GYB*/\s+m:'oi"lX&4JfksNkn]qU-9me1P/_=!pDCncmo4AoE8[_"U&L/ -`+_`cC.Hd&a5h`jgjmH;JOfopa>ALi7"Rs/K?.:n7WZC7S;>7NM9)KMaL$lH`/Ke9 -ZQ:m$TLht5.?9$oD1bq:1l)eh(dA"Q)&Q7SJ]h;Ml6_<9iB'Gr]0)S(jI8``eB$.2 -an24J"JEmOTunXTPf0,c@J,;24G+JlK8:GP&sbA$PRb"^,V\eXU3%M_SP%t59'i?G -r336'UIula0bkNOCR$/I4QrfLX0? -Y=p4NbVZRu4MnYa[`i:%b]LnLKZMB%aiX1nShcG7@KVZ62DM-VVjs!%HPn=B!J/m: -""5cpqjC,We]bD=9m"r\H\BV=g!->Hc*Z6M`8&Vd-V\>g2!Q(`1oCA[65>*p8tfD4 -+cRD9R@D^_c?.^aK\0%`SB]jScEuo_`9be!mEX^L:3oF!UTZ^d/Lc6$!GP_flBHg> -YdQBN,&G&qI-Jq8n'@g*ca91em/52ZrQjR(ch.7a!Urmb.jmW4KR/-&5VN:>cC_cB -0p@T[9UIK+QS],"+7Z-_-RX35gV9cdR>2(bqRTM0s;<:;`-A[75WIn2:H+pMbPjr11SZdqGCeK -cSGLF3uL)PDhD^HXOnfIrBI_U?io7K0L[s"'gttH7+>X^;ftU[Kh0^Y8^sS/c)!iM -,*7U!Of=^A:e3GK&3#14WR?S-.9Wr/JVF0D0;nL"Kjl=JK)%Pu%i7]iRdU ->Cs(I=FGbR7=a&c0A(--fl`Y7Kp^PYR@tXbX/g`'3u(V5+9=JKeo=hQ)L[2dN?(&h -f!UcH7@RI\Q-F`G>'6asKrE^jWS4&>>$?ZX.f(N@.O3jh\!5p`.ugstQri@F>.q8r -AYe'Q]@sBqgNC![Kt,m&\WdQ1-mEanKV]M#5Ihep\LWf:1St6/OB]-0gKh_O;]jbj -`S>%Egi^ZmKuf^:`%Zbk[Ub^b!j:5QjsobGR+"e@?)-14`8)H^gnA?8Q.4Vie_Off -h0%>-A^ai"[]cFH9^T"8jQ"nh?%I$@YuO*m`<0D2iS?ZF?7F<.L#h)jjkaS2hK>5m --+fHn:8^ut".[Z?^_0;grOE)W[RDe)NUYdfn_Q";hL5"Q7J,J;p"s=)?P9rT.`bJ. -Oh!'gQ(@8!i&1\q7KgqQ!%;V6YG5].rN=I6H%;;5 -!HgWL@`K)ik$Sr/@.k)h!0H,>&`G&LiAMA.6_@cbklh.SSN26Z19JaJ>I92"XNQRG -qDmM@*T7JL:6lUR"sDn@+lXgmZBcRVg>\:_(GFU*_t;u[C?`3K"B=e=Z/K%MPaYr3 -,[p*nin;=\2DF/,1#jT9j"eO3ieG!qqCtpJ(W5q?eT:@^l,"=N,LdFU$,P5n[@Hc4Poo_!dYmi%?'=j7Z:. -r_V#16ffXmjYg'!7T?'6:FiO^[rJm`(0H4I$He42*La1W3m>$B2G2A-:2Wm>Amja' -;.Wd;ju-`37V(XYaQ=+id%F.=^csd90=BqWZ#-1ZE;6k+1H4Bt`[fOm#Q'?B0kV7[3.< -Q0DnHNF%JrE]Jip/-I20)Y,+/7OQ_nijqV)je',PbG=O]KdbdfSP3CPK03#*RsE[qmD.lo)cJ7RLtg+1M#3b$cROiNQ[n -ln_'o![?YApcpP_?Yj&olje[7:=/ADdHr:/he(1gEpM0/OUh^H2Ad@u[BODukCI'P -!W#p]gTYMnhk.+_=X@#oljL1LKLLiU,`.-tn/'ehJSWh20C5@o'UJC*J'pc!j#7tgY7bP-pH.[gJ" -X()Y/*!_Qf5MY:Z`L\"?QsR&HhsZ/ADii;[L&!*Zq)=N56%+"lC*!1&YVWI9Z2`-K -1LA6nEo+%&-^FMZJYo?0q=gNX#GCo*8GV#/Wh#)P(+,;L7SLY2Qlg&7SPr6!WF0#l0p5T"`XbMon!m`_'BCZ#D3WE1[s6tP'i(uBY +KkPXdBXWn6p5s&IQ"bE0BssRHp7Z4ZV.t1QC:5B.@F?1tZl%ca)'MHj_/Kqdne@b* ++(6K#iVcV3%:&VYD7!aoZihHOmM6r++(6Q&!Vd8"f3*AXQ$ISA +H+0>ciBdh/6[C\hH<7(lpT8d$X*]&qH^D-e\&!Fc`I$4YHoK5rGKkOpd=$5bICIaT +f@bTHjaK/QIM_C#GOL!inUGcUJ%,$!p\B=UrI?j6J9VNR=:p(n'7fimJ[cSKp_SNA +*J.B:Jp8l!\1rT&21kT^K/blDpcX9i4+qiEKU>2]\++b;C]G;SiAahkpgJn:AVPGD +L:D)Tpi2'KFbb3eLU_bS[]ge2c5ZlA*'p_K!PfU5Obm2(M0PSJTsbg^l5--0+$hpo +Q\12TJW!nU+/'/Hf#A)KkSU!PM#jCmiQ<*jg`7Q]L\T\bpu.5mj_rdKK_Xqff^Y!3 +o8`V=O1>"Hq"Kk0rK(._OEh:s\Ijpk'p/5-OZ=;Aq&PVY)j5IiP*mVZ\M8Tdk@<'b +!5[q@U&H$?QTQEg8-(*&fh`Nr:R,'[;cMN\Jc6:TEJmnPQFU^!Q"C\;LHD4/)$)BI +!Hh00nsRZPHe:3_8%/OSeTYR%70t, +TT,cD;l(C4V7Kfr;t'uj%uZioVNhld+Vk3GC^/E@$,QTX!>AP!5F@luW4FjbqDkM. +PGoIcWOeLsqNn3CSZ5keWd:eI]!89([As)4X#delqRrsk]<$=pXI@,0]$[*q4VL-V ++$olJ!TuAO5TYL-+8Y6)g?V:\rYJuC+5naU3bqmL"p3:J"1.qjTbF[M'gOWk&G-/< +eC5&;`"6,Y&/8,=)_jh_-X^=8>W$$oRlNo[@o_IoZ_:8)duG-2n/q>l4qm"E]$7ZE +e$`H+[_$7^qe*B"D7<_h[sNP4]7IG\Kt$r7\3#PWqi/-JMn+/=X`6*;6-^S2_AO4^ ++5rM!];tC+5om$!WE\HM9hMdN@FI$p2*0 +3_rRP.Bqe1&Cnb7g\Y5A'rP,N+5o;d-og(ls2]-7.m@ +.%"5(\JpsS]KsI57DmnP`&p]2HqhRB;8moY`Oo3igf_VoA]?aZ\^<)O!NI7#PS8WI +'tI]d5b]@uJ]M)J'7c!;?t$i4a:N\('KUUXgUk?C0>foKb!E$C!WEt16m(BI?f>ic +iC4/s#JD$s7p:&ZTdQah9tp^J%smp\2??4>*X1+*9`Z,%JM%1TM,#3)>8ph7HtUG> +"jfC=`gm@]h$_U.("#/^d2a7TI36kM+jtcbU)\"\PM\]8nfEA^dsX=,SNYIc6.;@" +(4bNhi>Mk]a\9PN_A`_\<4u=TAeA#Q(,M[(!H''fQ,?T`b99=siG&k6:'hh_fV'al +JO-3hg)o:IPe=1[;j\4`Kj\:C;&(2b)b4b]9gk\D'K]>;61;^*GLF/Lgq>/lh9"IN +e_NCAh&Y>-IG`koiSK"EhRX$AnF8[#g)JRf=5BA!R7lH:"lMQN8mqnLF;(O:AeL@Z +]j,nZ!F+OtiRZbb'>aYfTq3F@4:jHLZFRXsB2L)@HgP^5jX +e>s&:rY&FX&R\Cm+Yj;qgV(;41UB;A*<)9fmG=Doke;o;reK`%NTjc3l$f2f^7je_ +V9n&g%fO4$o3rPY6knRe8%uV$T"XJS_<_1cfRY9h4%m5Mq7G-K(dT$7PjM\_]@S)V +)8Z?a!ZS8Qhl\t'+8S8_JYVNNVso)0*$/3%iMI^lMBCg:*23E&*<#!XAe%eH96JG' +o[i83\#80s?5;NBiSp21Vs6I=[IHn'(Xr9a)JPX$! +D3ie(&`?kZ_"G9)N[^Rr)1b)p>M&Usp)/<2Y5X.K?X`WBV>U@%IAe?n8'#8Y'44Y,H\0(bDs.B!- +$A.=;"U'CXc4BVpQ2^&b^Z#hBPYNYBMacYr()n!Ka\>\I<7ZCjU=F+h>O?VRFirZa]3T=k9@_nnH+mYSfGj5h!JJ9tE>X(( +)]=LPipk\AL//nVa^qcGI+DpjR*TC9q:u797A\AqoU:atVcg(PC:5&:Nk]/5g26P1 +S[Rj(]>n'!*$,n,M8eLpq&Gu-0:C)JF8?muQVXU2lZN(FT%@nkh=#Rc*Zl2ZalW,> +r>qS4YM&=;Hi>*/Qd=phqf,r&\,0l^+[dF6BZU6>:^R,$$jZSf+s5lZ;OOCYJn#*6 +A=.%[Q,>?UA.n)$U/XLar&kTZE=o?W+6P)EJ%mW+p3\7Q$+sZD,oQ\c%S-=O+MmQ9 +A4?^Lb]ZsDWZXqMG@+FLdI)LVLXH*MTk^V14AN@sf6:!AL"gk.pQb&j?MC#^HXBjnpO?P["o3^Vp`9Moh)Ik;Kjf4< +)i%ksL*MOaGc!!L@edr!NFR4q4-*nD&ajnpk5gHiRq:GPPiW0K(g. +H2_IkkP<&,TBBq$TcTU+gUD%sK;jK@GV8<6DYp=$]5KdnpV1WO#5c4)r"faXE;Udj +bO.K*)olsrLEjo]I&ALsZ +2P+`Q&-."T9F&W6@Q#=j8MkpbK`?hepkS[L>G((MXgQK@]6O7A/T +#PdU(E)nJXGd)-/r*+\+FoXu+\JQO_@>p>/1I`e?).Q?QNCKcr`q\L4A!D%pOk)Ta +Gjuhbe9d7=p-0hdE>6F>ru<7'J$N2eaeV=_O\D2(+B091f$Xs1"OJ0MnN7F0`0ulF +DGNjO4qaDBW#MK0Ai0093!M1uB;%djaiQBbjJ1BMi^aqKd+[-A,`Ij1r,N4cd+Xm% +J!cE7bJr2f11OS4R1h>e9\H*qk*4/[P=B<32si>seD$IVG&L+N_)Q'Aj.)=!F&%#- +;oeD,+6/l*2C(K6a8!+S'@(pM8aS]S_r)g$UdK^q[N\!;rtF?BIu@_%'EkNFTn=8; +d-;H&`3B7\,2tm>AX92`B\d5q!)1bn+%!rNFeFnT-A\<;N:fC6__tPuaqcHE@^4 +aLRu9O@]NdrZcu"@B=U/Z;u:qpBUJJ"-B(ULu;7u*?bA&j,1ELC?o0keTn>R"JMu@ +HF)3;pD3_H9QIaepHZ@OHg?,6[J@S(mf-Xq!>oa@"2L9?"(6KgJoF`u_3d.d*qA_^m)>D@:7+?+ +CbRLF#mOumc)j=2<$PqPU6X3dWQNF[n43DQL2b\dNrdG0H-;HCQCH#XG>2f=3N)NcU"#N^]BP;PWc_@CeXEsK +CAhSBFcfX*.'3A*RP$Y^*kKramQo!hs.qQ'i>b>=%,+P#?H0g +k]6/'nK83ppkf2IASo;b*OB(J<.(mA#jXY$"a(l`h0ZV/md8]>pQk@+S&3_DSajF< +f)+?opO@,\!Pi)NnJoe=@7(&V5K47niES0mnD5>+nC0#t"91f+7W$,`+B6Y>j,*=( +2DTs=4=A<9#X3'85Nn;9pIHTWQf:2B'GL(R760N_3ZIZ'?)D2cF@-e`^k=FBXM""X%h7D/KTPJE3 +g>Q.LO1G"Vn)&1MC,EnCs+aMh>[jh!sGhY`W\m/DL^qL;T4rL^RnIeGNYLAr\?Hm`\"UcJDF]%dV=K@pQWkF'_h +"[fDj6A)41"$fN_5[!A'bVZ +;m?@m,&!.Bo9)FbT#-#M6B!=J5\coA\h3J^Q0Q2@0PC^dC'ApdUp7%q@iZGO,),=j +L=fftHlg1Mnj/L#6&[ijF?7=04%%4S3Xdu8lp!l85XZ#H6l\NK]>YroNg>&]&lE:r +OAuP\R`KR+ZU4c#PoR/C[8ni +=:R/N_n9/?e69h]>=Hb@7G=?PN*f$O?q(Q57N>l,.L,`a` +Pr))JJgS>oJq](e`mVeZa?>XK<5B4"#I&D,>Jp^g8?q\f6:=EPX"qK^)DfHi+lm-' +W2rGK>t)DS8'HEP`.(;4J![6`80!4P/;$JUKLedj'GA0PR`bs2;?EAE8hHL-]c0*36KKW?.""b&gb./>12a +U.b^)9FSd3*#-TW`(WkD9O,S2Cr\T8HO"eFb;o,]E.?*=bX?j&L\PJ8$Uc#_X2Lbl +*k6]R82!A^n>G?t9ha+Cpg"!kJ%O^VY\8ER?uJ"dS'=@W9j1=Nb-s1&GIU&abgbW. +bH+:Ra2@hm9GHV_/EY5_k>%!"1-FXCXQrWolqYdl:>4L(aD(m"3s4!\Os)!p*:lrW +nqAlW\Wc,CTM3GE)^X"dX@']tXSP`&O%*5naY`'4>S79\E$QVp:UKrE/D$jPZ:U!" +[_26.+X/:ufeJHR6.G/EI1&f8$dc!a:u)R7'a`7c&5`lK;&p9H.LCkqC(Kg&$*k=D +BkpRd("%FGS]m(KqeLq";$[$+U%KHB737aP*u78XZEqMIr?&#,$\LJQ4gEb4bns<0 +l7kF"d52K_m0qFV%T:7r;U$glflb`>0N/E8;]RVl/Me)]5g_oYRT26X48YRif1L6n)a]QN,H!(26I$S&"6q6K"A-I6&]]"d9m##T#_0US;7`Su<4-I?c"bh#CKA[h +a=P]!'bUkp! +m[fu3#mHI%8a4LEAYO$d'f/B8l#)gGDcq<`K$da:Zj/g9iXjff3o[J8TpmiW+MZsXfGX;F;=-a`DbAlkoZ,:k*QME5aBX_H>aj=m(hj.V!*>t`gtA4QiS!#_-C$H4S["YTlb>6sH&#(p +>ufCs_a#OdB"rGe+pf#N#[)e;Z_B`dU0MK&]UFT]A6bl^gg/oE7H3*6jBb"2%.3"[ +DG"X*kYQt)l\MV:5 +jAeu*n\/$S)7(AeRZC.5'X)Ntj:\EOc<"Mq=C]obAUN_'Am8i\>\22d?CJ^egQf2_ +?o5"7gWMNWJZW-&S[K5fk$#r_JIfAGg<=EbiE0XojHj"u@[XMn_E*,pN<7P!+m%HP +jc3MW/okSg=m&18B,5Z'DKf`BGZ>5@^maBI7XJ>l2(M]';63]b/p]/:ZfhfJiaHKO +jMeO-67ra)-cT\&e4j(\l;0Y2U%W`/(3=+`N+fqbB3($M2N$_tOD,2eBcLJB;fgna +i9&g2lSOp1mV(nf +.r)euCnAabY,purV3PEsFjo8uY3kDd.l"=# +jW\I2>p<&K&4Y_I)eP,/DXl'@^B8A_"E(CHE',$--O4U?#]Ph2,E?Hd@qY6EtW3=%iMTC[S[.:K>&u'p[FTpn7Ne] +:EK"4+*%Xsn^et*0-bL%,TNgLdR3te!%&n6-h;!SlS[U1O81/?Gn +:3K00o]q:#@R/u\keM@VfG"6ue5N&>Mt*sW)HK5LO'A!d8bhJ-qH&[Q?`..)UjA*$ +HCq3PqpW?):!%=U4s"VG-n;pE%2C[0EgI^A.0OuU)>d17_M_UaJ9$Be[Q,E>5eDsC +fiML#)M?$L6A +U:(j7r7`uSk"U6h1,]=`BK)tO02*h)cB<-g)6ukE[4R(+JJ?7`]j&kpYbc.oI*< +O-cP.:@8VHIK;h7\(q!Jo7'Ql12l`5Dtea2pe`:L/0"n)8,F^DKWr$8qm@?Iju!DG +I$FY/Q!f\e/,`dgJ$TgWpHqs\'8f4fdM8S$7p7&Es7Q:kf; +q1Qb!1R:&T:\I\+riS%AdtCg!5[OIW"s<$tFWQ`;J"m/8ogs<*`C[i!X7uLfXT*UY +AsN5sL;dZ.=_uZ97AeUN[TdV""Yhl/EOjl-Q[?.&l[-9O03?p4rrmkg?uWV<2CB)p +_rG`=lt/I.Oih2iffZuM0q6F#F#j0\K0>pVB_:"17[I&OeSB;rrEdNMZIj!egKhhJ +Fgp2pGFSR*#CFAHEB%3.`P7\]k&Yh'reF"?e*;(%h1!CW[G1+nHen],LW/R>*;AZBDG:S+6EkDJ!n7q71r"$q5.2bk8BS8Sju0@(rfFCBc=t23W="9-i'Q< +TB5#7J!=E)r^?rdX>#-c^u>8c#:L^rJ!U8brb.QEq:'6#dbMAcbL6=$j>c`MNAA^V +1s%Pu;bYk$:"*A)2U2u+jZ:[C]]hORe'.VNcdUDF50u+a"[]QE"VF/M<*^A2dFtDO(*D_EhdP0G+oZh[-i*C]+6VVW;Hd+lW3t=pAY!BSk2CW9QG]^$7tnA) +P!B'Rq$%2WJC4?g#,h9=5/5)pX*WXS^$q?7e/e@5hp`tRIc*0a"bP["4pQc!fN&T< +iRi#kL1486-]$(Bc7t:<=Pc&uj4O>sOQ9Oc8Wr/f5#IR+=^G6sTBF&QJ"=UWFHbUT*P4WFRs<"[W-3S2kc/ +YgQ$5Y()jMnbuRJR_Gc#'4MXr#YA\.Pn$1$0e&[^=jarlX#hcoFe@jerNU=s57j5l +gg2MNigbK9aDp!r.EV/9QSHYS4MNc!o:5h>d'Po28^d7e5>fr'?!gacp"b++f_/UC +C"gsIJ]N>1-,_u9TB32ki-5/2M;b)gLtesBiF\1K=390BWZU@h1$SPKVlf=_#+8SC +S;(m9;tf)jaL"D!q8-ZB'j%[6qPE]hJ!@gh_f=85CnD44hA:iLNp)9s&+Rk##Pe6> +YEf;VPre*!';0o<4pO@j)[,)P'S9.^$pf+q"eaooK`9Lp0LQf1X@;.1C]bE@sJr@,)ja`,e?A +UD+o:9/(_8BpAsp_coBWXu6C4_Xe_8]IB$);$@2NN`"Hp)e8el%`nT(k9T/PdT1H] +8_#ia>j7fC^3H>W!0MkG$L9TNq;p\K[\MF:O7^XW[0s0[18s2RZUM54\_nL3hKCjV,Z`VoJAeN5Ta%lk%c6-H!e%G=bd=t6J7'IZd"B*g)?AmWcb)D +es=fh93#]n?)b5j:=%Z6ASgb1[C4ZCgfp7jDWJV3O6W.9[IU^s/g\EF`GXYCHKl=4 +AT"Y&+sNgu/gWfns14P#lApTJnID&g'LdLh02Q +\6#!0iP*Ykf@oQ`CN&>1^UNY2?lT2tn,aYp630J&f08B,>I0h +'Z"+^bB\?gOnaKqc[D.d*-%.hQ3P-l$R]L*Tp5+saLR5TunqZm7K5EG%(@ +PJ"u@Wp^YdAZYR%[FX'h>\flD@MV@2Ao,SXC\_0moWBUF8L-V'G3IB??@CMTgLl`gD)P"R +Os1$%?#>e9NeX41`K/OnJiMdBao7HgnPW=T]sYGpL9B'q^N],eh7WK:o\Ng(Ht;Wt +^A$dghqS0]E#o1uh*G>3j$g+6/eh<)po.8]%q@GPmO1DLG`PEj.4%_D`q[t](kP(` +b^#\o3?_uV;^?Al`(E85\9K.VruoDjT1h[=>9EQ'5X";H\p5ql,@><@oeIJ('&c\U*4"Qk[MBE>tNPf8I3V0;8&&T$c9h +=)*8&FE%i_q:3*N+h,AeH&e])QA51Q_d\-CkE_2Q_!+-5G`tjVjJnL)Vfgo\/#7:% +,NScXQ1A6cb'AIn?Mo#r?Y^R(3`7BT(1[N5m^E_?'k)u4E,SD=a^Wk8)JuT_Ll(N;!"WcU\!t,IKu(Blp%Xu.b^H*Bp:S`- +qk&B*rZAfV^;&e-hk0OiT@Nf<@k"W&XCsK.E_ZqmoB-Y0[3<:uKdFg'#"4,8JS#BB +0`Z.r!/IlQcK>)0(*\PCVb6Fm-[lPVrY0m[jp??8#*@06C8$M))M)/pmtCe$])3)Z +"OKdF&&e]+:BaR!"bb&%E+9)KB*OH5#1.8n"/Hq@kDQd%'L^iZ+edV!rF&WsFZ9+UoQ&$nIe9D[K(]?Go^P-aC=1%DKA=b,96C#!pJ[@@I8H;BSJ#(n3QAnWUf_Sg@:&(:o(hA\)n-#\h(iVs"< +/8elC#)96)P(Ot>&g>*j*9!eB.L@6'#9`T(.FO\8&t(4IShQ=k.akLN'!j)d[k!*l +Y`c_>WsH&7[!to4p7dri;UYBg<4_%7&;UI>P.MRmKVBsF'i4P/_._)E\/30j/11fX +8P:Os#:_M9.WYtP'+Zfn\M,fY1".4"'-f82-6iQ^*is2riMmXos"dS61MeaLl%:P, +P%eR$*TEeC!i7aZr'uEg%e"_f;@m`U%>N+V[l"T^\b%f[ +eAhRTPfXF(f+-X;$R-PT`L2A_QD9,NQgo#T+snT*\/cW$(r3QB+!2A +A[RA&'ou`[O^N>??q_)M$nHSA]?N6ed5aX +KkQd)B\%pG[XW!lQYDbTC"/HQJo)D,EY"14J+Hf#NZ?>a/Mq5+LF'SCaH@1e`GC*d +Cj+'>W0\j)rZ,FT(7(Qt(#Y@q;T!QQ=#K2HlI-d:KGf>+Q15)s"fl>1MeNt8E0h)S +G8"C$"*'YHERu:Q&f.^;ep'g8X`lBbDgp:r6Ze@Jd-Vc-f-:Kr +Y/aAJ?6hcXnBR?b2d6_F6!!2R=&`-8'lb$!GF*f'f7S:E$[5[1Gh8"%(R"'#(iW(Z +?8nIRClkF5OTRC/UMlC.iA(Z)7sfHeIS><0(8Z:S'&_1.O"BFRo5Q>@P/V1Q)q:c` +8?f?8`_lJ]G^&P)(PR>tmsd[cI[C(b(^#:j#0X13=A3t!C0cBaN<>EVn5Dh&F`\E" +nsaXaRphHn6ED[I7t?_VmVR[s9`hCP;*6HTVBQZ5$M,"2`Ik!!Is>=M\+tb\@>9#9 +0=Y5A(itI7GDD'Qi605L/n$.!_haJ)q*sO"pXWDC[t8_$@T]3p9cit=Z%oR]mcBPW +m#W&M)J[PB'#>Cfb/jVA?DXGS/E/DDLTH8e\:p&J'0DNV\2`q#Y3,NOiK6,6JhY?-$%YPY-]e&t +fBjM$=WfhoiKT_aPdoV8fi'"r7?s9FQ.]N1"fVC^F;\LKJu=$KflNJbI.dn^VD[T5 +e&$T,,Cr78R(*c"0BV`(kE[ib,#7#RH&n?a\RY7cc_3s'.O19O[uo5nN;8o(Gu'r5 +3SCu&`ftj4^f:A>aS\sg(B<_Q*]q1S&T%CMH9%P+Bn3LS'(dT$nGG,'6"^X)4 +I/-.#nG`O7%>n*@)?a5CnVa[3gnBcRRM.&7`ePJ=Z%(tCQE7i'm48I!7EZQY6)VB>8+%V'ru[#Z%It= +q]iCN-aK*<^'[(+J>m(F9k6rZJhf]M9'37roPYKu@bXXC'VLs$"])`\.dd_="E]JK +QTg]l\`u)TDkWpMEE)7Z[DHFYq\QbH*OpHK\;AbFqieQpQar>#Y`T,o1&-Ln`$kPOY]*)jfr=2-k$:HV@k*+QunB*PDf4ZRj_ciM0lEetUF +q,P2:,a+2ZZ\&sm9*pVk>4i#'Becb"[9)7%P"NCQe$eY.No;n%6!+P(rYZk7d%$II +Hr\/@=j1-obaLuE*7N/;f?K7K\<(a'JIr,t96cI4]0dfHNX%E$Cji> +*A,`'PM)Ln8:>L3*M_=oVRDgYfWHqd*O7/#HHpiiadB\fF;&L_CJr)enhM'!,Bl^=ja!ahHRsKt[;_R:?S(c4SjflOi9&7fjY#:,GX3t3XjaLRu^;'#@_WZH8m,$(U*n##^<0fgeCb``D(&isK91Yq2Yh1VGTYDLM.!rJME\&8"'JMk"'( +73=Re\,RoP+"d7p/,5;Gp)f@k+-ZLffNRL<4qOIr+/9/BV[:dm>[HVqOY"fV=U73b +qqnu76&OCN0DTaTI.KGale85.YXp8%AGLRhJ"c^]im@N6V-elM^PDh2p]";2r1X2k +JO&.T=>V'2$&(_)OP"Y=+VBQ!ifR?M?83=W7cTW`oR9(LO\"Pr=Yu^I.@!NeP1ark +@540Dk*&rThJkQH:?Rhoo_sD-Thss;=u@@`8W#^'chA)!rlRsMen5nt>,t`,J$U5/T0WrHCul7'oYh3E/rh:\eUqg!kpGIV?h>W*Z9M8`ro +R+ujL+d%f!*`)Ml8cI:D^Y"AJqQS!>8W>;_>?V"Js%!OTl4S1:A8\O#.a2G*rrVn< +jL:W7pA][h;\N-c4tdS/alIL;r8(L:REt,>HCYPT:Tr=8G5GS%c[WL`ms'5O5<"MJ +jn/BI?JfD1fCAT_^)oSKfCAM3IK+ehj8T'D0C/oD5`cZf"@2HU%0f*PC_m=C0SCeY +_Q]7V$:=2[K+:8QoKNmT0bd+j7'SRE'La`Uq&ARAM>2/Qu.ZUOJ +D-g:$m<;o>082Dq=LL)JA6CfjQY'C/Fe<>N2O11T>.1iBCe%"CmXLfU.K4E-L\\et +>^%d@J"($.ra$-`q)BSFb?a9]1o*)leMW$$JTos0L&-:a_`@^/'PI6qDVI-O(PZA. +Frm2MXNNM+Nq`eXN*[csAq,pd%&DD0N@?P&TB3TQM6b-l]5QGKL0p;r[M=:\ApLe8 +S7]=WDk1OOk'rrc3VJ0"BR2RpUhH2tO/;(uSn"^63gQ\DC:^jWXD9lJ\#sMXp:mhH +VlAE'R0:)">Rt%.e[1t1W9A_q@[6P1?F^^"8;7h4,[V,'q2.c4r!rdWRH62oW#g_+ +_o?]/G9=mQo@?ljR\bcCb]&:c-%Lrpr^_O#+I;<$"Xj+2-8ksOraY`WO# +l.re;ghE>2Dr(.NkC;B64n"0aGb,_0jEUZ*NTNEQVk<1!5*r24HF&1Ym!CqJ\*eUW +pV63F58VB2I(qVdoR/r*fCjX-GMi1E5F:R0I_WA\r-pr_p\oZWoDa=P"p$tK#m"Ej +#D!F5"[KR8"(63]*Wpq,%mbdn#KWYI_sg-I\2=L6f_c>3W.'PQ5X0o=(3GPl.hAm= +&4`t6&-Kjd$dmlk`f)d0nCVrF+fmcG38YaoXE6`&M%O2R7u7g),t,82'4Q&ZM@i<, +76%7@a'e3R_k:uZn]!I1`*\8:^i'YOl7^)+q%OuGIg@/Fh.'P%+/0_cO3ndO#KWVH +UX3BT-ufu3oRDr8#!kd=gaGKKTod\H6cbZ5,33j'OqKZDaS@,.A>GQTEb7s9WA,a\ +oUV3ZE`#F(7jqpoVj,W,;TcOI.j\/sQ4go79'L%@AZW5(dcOe-\Sj-4e@q94raAJ< +M(g85_jL$2A5'P!1M0>,R?KsM9c9oek-WR+'38qoH*o/5,i&d:taZ3ujk="on +F\]L#4(i[(SeK+h:H@Z&B=.E*'BUR#J];*;W:1a9+F&m.LHt&T"JF6kJe'T'.YkO; +%Kl&hK4n0=J8kJui&lIe\3LD"O>n=k:`Rn%7nAENWso0TA-sL:3C`*+VA.%<;`\Ve +Bsfmt']pYNdFp^;J?g65codAo/.[NoNWkQ`%hIV!"C%i&&jXfjMW!;X"\A,%UFn/. +J_W;A2*.fRL9XZ[]/M5sgT;3V[+9QR>AIegX`_Xm="<06la:l=("0csHM:`]jaXJb +#/8_O!F[MoKs;99Z,!"5@qS5kZ5,pO=Z\$+XBh1!(1tfo]/aM?oq/T,L=&4&C,?0_ +bnYl\?&3Le/OSX%[J%2a>mKdtb;io]jrD$?D.04iQNH/Ar&:0f^3J1`=PIkj`.*^H&805n +R0W"*%D"rj-j")^(;\LMN3PENh1FMH]ju`a%KG%(pL!6WKak6JL@dP2&[.\nU +f"6-EmN'?YGa7t-3j"t[so6to0qB&5lI6X_(I^(Ti,NO/gKt9:Y +n)#/BPc5GfXQXDB[+:AE74?C7lofj'rPEY$&+P;t#PdF"+(+tr^\D;/&7l+A?N_d, +Qe[T;d>-A%5O1GG>RS86$pIW!^uPs?oF4(h%`&Pa_%ENZ +X:rE<'Z!``_.4=tF;LH_m2VeD#P_g4`#?J))[H/m#P_AQ8:Q<&*YOSb5=>[.=;$Dd +q)LuL\s+N\F/_2FEJ:@-$mZZVZn'#/M`"qd5R[[I:bTU/Ulo`G3AK#$0pE(1/r+ss +_TNV/*&k\b&jqmC6_$-RUcZK$4N"6`\"kq"oKU7s5f=@&`$@[f0U&&hCB]j-"3K#_ +9J]$l*&]!u"B5J_6cFsf*X]u%KhJI7n^kF9K8/nQOmGHS1fM,Mh)/lDMn<(V@F?;] +=+n@2'SA3Xi,XQo<$sLb6f^C!jBomu@)_J@`WTa?'Oo'5>t.e)`ai]$FD&UHBWS7i +R;k)Q<,7KKC_Pa_LJs#=cq]0Rh`O`@2V`>j*-79jF9hSie9RLqA4A\8`\`Fk;VS&r;= +QUu=jP`SK?TX;m`L9%!aBt^&7=p.A-*?dkV\0[VLPKK,SKd9G!Cf.]iTbpacaL&*B +oSUfhY0-sQb7q8*$k^Y3[*)FVb@J')FLT?G4-Z,I"b8IgGdrZb]?A^:bK/9im%q+j +>Eg7[L"JWqphU,fP!@a-T2pPK>u2KZhTVF?L1bLKJC+lg^,LJ%#7H +UM*-u>Ed7c]F0P!5G1K$phtm)23Vk#Q?9IV,hksKgWe7'c/dYSo\IdfRSBU:c6VDp +1ulkLjKt+I2Hse74Qj?3K=7:+L\OAjCePYE.@gdm]N"=,]R5kK+j)71A\PfqosJ&9VF@AM&=T6"4/>?dT%XB9deA# +-rP,i;EZMX[4B\E/CN'#M0O%FCH7'qJ=%;+#Q6DV,H!>:)*%s2cGNmEdCDLK^BU'+ +d*4UMRED&3s+gJ*L]&#ejZh5q:(pV"47,)Y2*6P#:cR3iKWlIKn4&s&9to.Ff//eK%K:,u]lL:/t:oeR_e3F]Zb.`(@k11/1rC*;IAr +"jm=YRrPqBk[2Zd@'[aZ\:$SAKk&\"'fjHmefAA.aEYGjnV%5rXn59.M^4!,o#",G +<_2+J78h_@Dq>_&=!_h;/TK3UDV%m2f4B-WFa(>EQTkep9K68.Xa>fAHWSI>=0T6R +F!FN_O\0VQZ+D",bOSb'RKd.qQN1dPKnn<3(F'2M,fj0iqA$FW4R+[amfqk.jZ*,"+D?]WhKQJ9Or0gdmT@t$P +*BU1-quo2fdn2tGQmA\dFf.j641pAp2)UlW[B#6PQV?b;\so_0jJ::M[hnhd=l[5! +fninJT%SOY>@j,TFg]tP[bHMHRE`+n[Cb24]\CuMO[H32V2GDM1`+%dga0el28KY; +ZFj1f^g0EfOLdQ5c.nN1N1bZgFKF6YbhUR2:1YY9O\<9Q:KU$s1/$4kE)KpH]t22- +M3YYVNS!!/f\;\Eh1aQgORM":gtgN:hdR=R@?6RrtdC4o0a'<%?)"V2L +be_5N8)BM\__>46=D3CV.UE#?hVaV9Fe)HjItXlUZY]"dV8kM(%>Xm8?I?mOk`9#_ +pt`@Rh6$P2Q2=pb.:7N%hrXjpp&EJ%5"pC%?:G!cJ6.@gIt[;:5CGGJ?,m+gcQ"/j +7s56tV@0`445XUe?j7,!n:T:4Xk9Ei>5SHW>Qqm$E8X#J46+'\Quq9]MVl,chp*.t +`Z*m6*+?3\@?)Dfp)i8u+NKBf\>2\\FsF\Y2Tg+6?okb#*'De)#\G(:FrfUt*FkBoj.86JmP\Rp4QG!U +j5Z`Th0H[r:qWn,:W/aJ[5Pc +]A-?>0jf)^A#e+G]]EsV@AgWF( +E]bnB\CP-!bDXcC-ceJTAnCs!AB0EY8k9)s4=kM1V2`\9=G(&+(K9e_``;1+aFhP1o +=ZFtIjCG/GUjpT*=bDI@l_>e#H%]PmZthS)m3^6J2UQA04`#Stm:Or:G1VNqcu^sFdUsd4u.K*KkjfC +hM@Cf,dVsUmcN7,r2nR\1FZcIlTm':7ASE@Ft\Bu/Urek)MKb,Xk +"*"Lc4d+D?EXC;"[7f'O1%B0.g:_cd]IAR@7IhNLngp9q,;us,^:5?aX6Y1(N +h=2:9nLlY;5;Mh#1R/ItF([E&G;mt*GT8Q1Aa_[m'>j%I1%EVt4=cbQaB[>m<^gUs +3lXa4LI9[52)d_soFRriA"&ri*(b_/ZY:so0"OfKhK(VMo1r,&=&3rBPk7ICodV'X]JX=TEU-ag<;3f4 +erl"b8sY3#0L!UW+(lF-K^Dl^Y&:]Bf/4G$e +Z:d.*L>$j+_Cj*"9G/&b+ +GD>]jI!D!7pns"]VO*4tlA]Xqbe4i. +0mqTsr8E4\rgLMW>l6P.f39b;mjQRZ/`:IW=RUigVk1;,$/)f%rMRGZYJ5M+gR[NU +IHTJcpYV9TfhI/n;:jg6QfBlWj0P'WNFUQtV[;n-Mmjr:rh&Jb0Bp]05hu\'IcWiS +r5s/3EG_Dr;$VVU"MF'/DXMA1IFm5'GMN4JpA]eSrpT^`\,63A%o-Zt<`qOFaFHGq +:\KC2rhh>4cf""d1)CCU6fLq\!'U=3#Y!c.Lsu;P3.J,.O7tFrs!O%'AQ$'L[TtPR +9P.3`Ut0BAS5*]q\`EI45G1hd<&u<@NCTdBBiMZT2P!XB<,,DoV,j^"XB'+:]&e+" +ole+'M>-k.V]CZ5@Fhr?N26JbVdJmO;uQXn]3[#>]B/bbJ&"_l`76aV$\ZE,E>Z>P +2\h@mA+EbBVF)r!bN3d_][h9_T?_++g)VN$9qp-OFZOqO[ooobluh&7L1r-j-&^ZY@hs/JT2l@5@ZiVma48,9/e5u;)-J!qZLr`]l1 +q(s4r:s(,@&KqJ[98@:2W.1'Vlq%jYVtk3m+6J\dJ"=UW!?&n>XDJos&^5A7^XQ_glF3O#7:D;O^50su)"[C@U%1,D1',;6Nd?JJg8(&*2 +,tZOLXY!2p'[8L0e!05_:VMUXfRKAZdJdL7kP847eQ$0]J!E@rr_<`Sq&0si(!7Rh +L55S01EYaF0,BgR-&cZ,-i)&%TBEK8:g+WoV.nYLXfZBn(j%^-&:K)N:VGW(sY!uj-]6tO5q/g7?QZ!/kqPk'[bcW=>h$^-D0?9/XY[GQ=:2n +j:EYuh+M@+J!6TeraM$gl2H)PqEC+=+6V>JJ"MMMo9AO/Y-"bj)U>amWX%eaW#o&W +T5gO`c#egf,R>]cTB-?L@$:ip=0?G"%P>_JY:[rh*7$Leo:57pYTN%*Z#JR5/PFPlh*/n_%EJ8m)f52h((s") +#t-2CX#eM\TB4GrJ"#Jmrd#T4pPn5/*`&'_q20%"dMO6/7":C$oU@4i+H:D6L@V6G +B9^)"8oPWFq:9DTkIKX8q-6uA`dQa*iVEHPYN>Y1T>1'ss.@@0rnmVO3R=u45ZeHr +i'[m&:bDr;fGt(PJQ@0Yr+V&/HLJh/D'/7Z%Deu'#N3t0$mY[EKH^?]h2=LDY]PAR +Tf-#,">GQtA6]Z8dPZgTq&YVe*^eS.&)m^X4q2dU/ciO:a8!mn/!N%\5_dQLUU#&p +DC:=G`=!gi+XCQ"=go_\&=VASN)0j:5T%`_j#gn4&[!u\f[Cf"A8mOU`8\cBm2b6* +H&khj5"F9(+63Ph*$ZSUMnoHZ`3;6DiZJcQ\Jlb=FHM^f*"NSM#R1P2C5"56L'gbY +>QjQr*[?o!\d;&4?W0Q=j7IfA)-ncSKX$hk=K=uh +.1bqU#,gDjOog"WeZ%t$lTJraFfMf"23@Wge>mBX6Fp6%m9T%o.pM'3D2Z701.9Z0 +YZ72tT?RBmZHbLtW-B<:3e@WkAl>$F^8 +m7""^GAgX_kZu]a"cka +L-rIiE,JClq*tGDCC#F3mE<''dkk,^&6+AK=QjCBnJp!0Jb"tR^N\9phjk"HF?Y]2 +\jo3R/+]BThOW-lLJd>B9`4LX%PV=)SC=Z3Xh??tf/%S"`LE9#QC]p"1MD7`+qM*T +dHQR77T,X..Bb'_,B!$E9h&%4ZPPMC: +jaRNmr*OgAINQc.k)\e(!9HW7Z(L.S6X6hOJW_hMg +f)L=#n1X;+O5U+Y)$-].*Nc9g/mQ=D,/]+U!l7WJ_W&Z'(l'M_\o.6>n3m3$8Gs)o +"E7->YYbR6ErjWn"n5q)0P(H$.--&;8C$A<&9Pn0<(2j[jt2fbBnR,7FC""f7-of-d(96K&JCL&(**F0f3&cY0k)0aM],dLMHN5G+WY9BIO9"9),U0R158D(%CH' +0^TWq@2=u:(9@UKUb214&(bCggk3Ro4-@cBDI1`FsKk91h +dPQ*/ZQ!>I'e^LKdR>F%83Z.*U(=\GKm`DF%_#/sX.`o1:J2ktL`6A2+5tQbM/8Lg +%3P-9-h;[61&EA>JLH\71\+0f16j;/R452q,k0+(XPT`#W%IS?_c!QfkZ7hJd*BX[ +&`?bk8lj@`[MN]S/CM[_OqPBiSLq/'/`O'MJ_nKW.NdWJ'uX&]lqV^SGkIrf$1b>T +.Qn)VT(l1K.+8bVZP=n[))3od0lc_9'.#DT.5J4\LPhnDB:diK34j-G(u["fiBR^1 +r#t&Z&4iQ.Be9p\r?\O2$l$b9pFY2L(V`M +H0c=[mB\P=R5*0]1)$?AZ_KPIRl;"_3qKU<1ULZNllGY:-VE5^,ToEP`6of8%0AY= +Z(OH0SDB2ne!&^dF5n.@dbHS34*0pV1\/bc&0Kke&i8c9D)e2m%*jgu&jU"Z9$oIC +:)sA8VCgaf<$aSi.6;Q&6?FkIX8tOb3CC/:6hEW6-Kd#Joa-d;7-3GL;%X'H]g]0D +>f$ahbJcZpB1ArB7V%Dd1#kYYGt50)QEY1eFD45:Lj,Nj$a+#Qi=Z8+r1hE96*%Ua +1c7mI1J5#/9(])U'Wb\!I7pr\9D$%o,.U"YjBd^44`o&re5RSVW8L05NXQp]:J;PHA/>TB7!6&:+P]JEt]%47on2W`*&#P3&Z-#`B9`d"N'o%b[PK6<102Q*ek1&s91^a%.j9ddT^`D-'_a?M3\m218hSnH@C_ +?hOM.2?a,AlU7qX&@Ch5'^I^?FsE7#?$#3JJR8N1.9';8Boo)tFu-8ojsEaA[Z#Ym&=K\BkFejB'd=LDQOTB=(eQ1B?L0cp3mj0 ++RE+&6SJKQ!+,Ngn95<4C%e*4023`che*_,C@E/9Y#lE1H:a:92o^<=kX>'O$JI71 +d2$#)2IgT)ASmahD/oYm(?KFWl#*NfBn=2?/I):6iGY%[(3]Ro(B8<\i-UV;Caqsi +TW3o:i%@hbEVCJo,d'crq_!'ZEq_9VBh"[!ar0/4,I7:joTnWI3dR%]'b'*g+f6!O +NGTHiD7BpUbU_87&Js*o7iJ!PQ.@65[!*[0JQFLIE>fEWUF)"@lq9rdr:fHl,e +;^X'o'-p-2b.>&RKP0lPk.!%f`f4g$Q[Tb,I@*`_3)PBS:,:HNL%o)23+Q2?5sMMT +0UQhdO.sr['7ceom$CPRVM5_.LPVpRI.$HXGa4,&@d;MOM,k$!5bPeZErZpDN +mg4WJm*e_V)$],d),X^q5otr`P8Pm>3MDme24BHhQasAj3OP=f+3\dLXBW/q7U`)NC:_HFsT;#MKU,nF2HBkGr +;5UpqWVW;fKSK;^5_=<`I1Vn`MH<6'q$\k)V%aN;<"l>oafKRtE6s\gqIQZffr_9@ +#0_pW)U#3XXG%E(fhZ4t&>#+X8OmHM[(;U'3gm4!"gGT?^A?Zj3u,#AYo\o@nX73Q +X=lQf,Si)E;f?)QkocB.l&l_GZeIb4>Nl]mK +53,Ajf4%@-,R:Om$*a;R\,-WE)gm.iHsP5?c/ppX5d +bnB?S/1nJ-,J.b7Y@g-]>EQRFaG^=jq3'@AP3Sboj+2'3R#h^i+F_a,.n4/;\!r#b +4,:RtKtk7lI[eNr49`N=fcHDH?M?Cp.7mj-,a7PF@Io&#kYI>f.Di)V'cK$?4:/oQ +322X])42F-W?J(6EtI^BB9!VK])J]+q7li5`OoWog*aeNBu[f%kLE!ubDKlDGib$4 +4SMN^RS4n#)hG1+'O6_d\`!QJ/]R^Zalr`XnH"WV@&)#gfduLBN^]^d-*M#\WZ5Nf +r+4*"`QZ!39g#,o4Oq\n(gcMO#n8K3.a"EhYi\'PT96Bt=qGe>q`h.=S"thaSH[AR +*5Q(E*>?.XS!f1-%s]EUOr4p5=j;kCREQYmbl'3D4O)>\0m!:"e,;S^.[Z$OY*Cb< +eE*=Q'\t?d_%dEE$oSfeM':GaN0q&BoXp[C?$4b4HBtpN%$sCSQ5)@gPY%;%B7u"R +Rnfi/45%;-g&3k`3)/"qWS5%eQ;,+HZq3uZ+5=K>g[s5H>-uqZINt3n1i7Lb9mYEN +IGK>-h5u(O;U^tAI6SK"l\qE!.N^^6H+_R06fq"hih50'o)<$#a +1EGrD4sf3%*;D\-h/lZW,Y-lbVY53CFDK*qm_`QbhrLVtjOq1K1khF$YMu-ZjlYeK +O.!I,hht9C`.U%3%R/=h,oN7pi>s*"^(oj\L$6%ijrTZL5*TUjkqbf#QG0#+q>/dK +%?A:bP>d%u.&-DLksg)fl$gJ8-T`e>/TaBCP?f/@oq>q9F-#OA]LgB3SqHH[jmKjA +qqf<\55"AUV/pG/61&mc-nUJr'`^-62-CUK(<>rY7p3BbKO3X+T-a&?W#VM$lTN\c +:TVVGm;),Y5Q4R#)t'8'mI$S7o`%YY21+nd=nTO79FN2p3#q!dBNA-`X?,gk@Mk78 +4_5=!p[[f>le^%H,PD(rpuSgHdd"+T[*Li[BBb7lbjr!6+X@mLoUf"Q^U;-J#[HmpY]6qC3]*J)k?8M&r:Ir."8:,qc2pk_POR+:Bu` +r>$Z.T>Am!9Hk2N5Qi1m&<$K821Me@0D?\GruI.jj:W=EN_(O\8`^SQ<3B@UQV6HS +)&em2VOC5VZ[('_GrVEkkO[C2%Y[?EdHHgP2("_aVc'N/g5S:m#c[G,Qm)kGRK +H+i*Rp`(:>l0eRq2rF$M9Du*'k&\)Grg--L]Knd3"P(c_OeN8Nmj +>Q%5sp3XKVom*D5bYQ"0%:0k>q>L=Xn,rgo5]@tV"$l?D'*U[@A/bb>n:W"5SE>t5 +AWs%f>Vi#5k`1.U+bR3343nKU';+AO\:9mAPG[P(`mJmX_M@sLF[AsC3lS@$itEM) +EVt/+89,E&+NX+!OX!FQA="Z8;M:Mfamt[s.SB9%ZR\[H`4%BN1!INi9QMK&1JIC. +dksj@AD9%;o7Z-a:335s4$a+VgjbfInbusZmuuu2cnm$R6U$OS57io!PY"A-#Pf>S ++6>JhJ!_Karauq0eN$?rk+Q%0S7Yq'Go[R3;cQh?AQr59on?mY?:+$jE%jY +;>t9pL\Z6^TB-ocJ!!#3*e_1]q'm@+jX@/rcqg?K3R^D:Anfj.PeShTp@Z?E-s#@SY$.TrcXd] +*D14:#QGmeneM//XV0UL54MMR84&1FILUYDLWbaj"%\. +qldd)Hp9!po6c$PbOg44=53BGs(CbfKTV7"=&Re9NI:LRQo9F!JQWD +(IIn*$t5AVL4mKjNfj<#7RO8"d#&o2nU)LETNPtoZ&]/E.RaWKd3%B#4"Z$_3JN/@ ++0a7_^GrIqU=8XjO_-5b\@i_h"CmA[Q8(jBaVi:_=Q8O;Q%).SLFKC1fm +q*?E?'VgnUQ;\\Vpcb*U/foYJ91_!b%[II>'*.^&JFg3n6pMiMU\oZ__/@J"S8jN% +(,\RLOYN_,a-fjaAk`#e1hLjXRLajGc$?QPB%5S)PBLk=pM)k3J]9\PP\2Mgco@@_dJbbNnGbs/]R*B\&OL/2$_`eCLH#PD +5K8Va(*To3M1C!%RUXL'$uM#^&>#`JaPdurr,n!ms!q[q1n&NpC=;pW9PJW)VA.=F +;d+08.Fg@`1d7O1qLMIX'gnpb(8DLf+@!lMZ6/*,6r4Hl<%=%L+7C>%Llanc%hOC^ +@V?n0i7B#[gj6&%P\UXcXS*r78$/&b[oW@a>\fIkKl!%*b;b7IW9Fqe#I#`inT#\k +ps0YLrc8V?p-'p:3N&0$``W(]A1VkcZBe8/=Xu4<>9.dkQ?LSWqa"n4'r+MkJ7B,[ +Hm)#Y??o(mjTs425NUWqX$ed3J`6SXK)#?`U5?hugOF04D89-AXFIpq8TJ]KbINrt +k<$9+4bn:^U,'k6cjDi*??l^":8iZ%;.Cs>?(/El?Lld=c$F:slb)u#oj6t;)D6I0 +^6dFJ?[M*Sr'/,] +0nP1P]Sj#plNKC!]MJ\VjR"UtEc.>p)K/Dch*Iqr&l6k8QW%XI;6"b>X!H/On(nlt +"gG'Eelp[/CO+r&m@H +_jX4sL\RGI0MuFl+Y!rW88_MUSkS2S5H+5bl.qi4GAaPA]6B;(aI>tPDgh/iGLlYN +pI=D.&^,-r"iIRnS`t"7C8;@$=*)V=etO*g.BE@jcWg"!EIKX^GglV)UJt?)i7g@[ +IM'hD;QC2q%luZP-Cf>ZqsQ^W]Xa@#k+'J\o0.$:H,<\DI.s7SrdiFB'!oWdg"-Wu +,9D/,8AkA$qq:1]Qa:jadFqTI0H?1M +B.]6b*`dell6J?F;;5?PD/(#hDIbP>L(jS]%GoHO=AqO^jTI=JMd8(dWK4d+h' +ohkK!18qRu>`?4S6:5^AT=5]JJnG&=qh8-]o(_tGs*sS3 +KE>C,kY/]/e>G\(/h;"3.^bcck<=h35b&3GPRKgY%)BLb$o@lJr").&&O@=5#CpfL +phtm*-jELBL\qoRF;D]?)*r'B\<3gV8p`Bu7>7Bp+B0Duj<#N.9YJTtS4!uV4=!6e +,rV0b1>:S:n628O;?E<$UbRoo#ZLl[VSRp<6$R(KnoYPE*'f_t_^l;5j>94\1rDF5 +6Ykf#>W>*03CB;t)p>[_cq9)jVhb%DJoj1DoKL1j5su'\/T='3UT'Ju,T\HiPN/o9 +G](,1Es@GM\QfEXX@u%+9gm^]/j^M<_#577?noK,\LNVm3"DNV:')t4_ur:STOn?- +Itpj:*$dD\]Ji9t2FZD,7I49uqD#qL@7D5G7P&$Y!MM&8Itu*k0+jquH'_!Pj$n=4 +`aZk;;5"9d[CpBj7Zt*B,-4"#Va@Yf0q<;Q4EId'F=uSiNf7JgI!A/?Gpmuj_?1ZG +7!p_`Xt?FO6G&A6\3$4LnJR!rS'55.jBtM@Kh+ml8485(=`;?NM+F.o8?=)>6r+uA +E[NsKW/t"&ik_O+B.PTrPg[FM,`i4hO/c>[LuF)nnl5p(i#IkTaf/&MikV>MF@8\k +77.HpR/%kV#KdIL8fXOYPB$k1i2f&!8o1CtI&J.j8]#d\#TTU3&dT>2B"&JFUejK* +,Up@Y:_aS*Xsq%TKX=9d[)dX&95M%0I'ni*W6:^B9<>`b^j`#Z]TJT[#&;#lLk!10 +4Tb-H+s9dar54hP^P+Ee6eoK]OF`-c=U-3E#KV4[gTcJ/"GJ8u9]9YYkk?J"8"qgj +8`9+nOAsFJ%>XkAc"mASFOi\Y""Z5\,c&&s]\H6*h&3:ib*mq,KT<)Y/AHIk7k3+E +ksA!@!R!U798r#YI(2q)k>%!$5igbH]^/D;m4Xph1&L@:+ijhe_$$HEan(5"njOI< +ouZ\o0VDO:ct`g-PcsRe&%GH%Pg^qj]*O4LX5^iP$G8]ImEcjT:b;bd6'A/[751F5 +8*iX>'Hfe`ThF(1cCG>,ERf`B>>NAd*:repeC;\_,mCe@#Q#8V;8uHZ +.8l]d;Q2E$9"W:LX0I>M.-fL).dMi!=u<&0)9iXi4Uok7%oZIb;dD=(74V;r3E)J0 +*Ric.n5lOr^'-JM#P^ru:d_8)N_eSg5Wn\8_S/td66:AAZsZTdkY[SK90O1],Q/es +'42m!7Kg[X0l8;dG\k]i@\I'geLa^"4]Dl3*m0jd-4)oSe#3tCO#UAb"Tp`hI,uQ7 +S^VF^;e9<7I:(Ol?re-o@*C:Rr4o]`O57.Zc5K+Xen@Unr4$/V@49K%_5u +=s]kG/F$ATV-70%>%lF(Lk!JHj[V^-d@H5"\W9(_J"TnUKaQ[?ord$IZ!.[Ac'dn; +>\;]4[9HqF9u7Xqeufok3PPfAj^)6T?>\k3 +IHY!sl!BqG?ENO"^$K(Mm9\W:?L@2frU=/'nR!=-?S1kV4nN)Uoj;"u?Z#OEIId]* +B*E7%"]-u[kX.d5b?Df_L[[S0Y^?U.08Gp+"Z?'_4p57g"^kX@?u?3WIL'>A$"0>3 +@'0lF^'nDp%:J$&@."P5rX`KJ&Rc^n@4i4%4qqF#'k(Da@;Zlfd!(6VCPS9f"UKI/ +BJkRt9EG3C"F(a?_"+9dIobc]"P=rSYZh4nGm8e%LOa4G3-U,pC^4p&#@85*!)S8, +:u]bPimo_kr\%ak0&n!,@jWp?/i7'%2.JO&@nnrB?8lAS3+JO=j/tCP[Q7p44_)c$ +A&^`ChEU&g5\(p%A1g..5!idL6Y&q]A6qc:<_-b=8E>4kA?JO8^.ID294ZUIADU*m +mSIHV;.TZ'jUP1"5#Z#f;WV4aAS+qRDEq[F=^GCpAZf5Cp0$M&?"Ml!AaWo:ra9'_ +q-Tuq?cDtNk%#I^s'Q$3?mYtf%VTI7BkErOB!,o]^2.E,D._XBB'sSLrbuK[EG$>5 +B.dGEG]SW?G_X"B#FK%U(jcG%5_mEY!lc:D%Nu+,*eAQa"RmcD\5rc?H3OpQLPT^L +k][8.F([B%jb?k#ITL3CLM3!0BV(,qY)I%kNG-%ckg#3%rf:b'Np.UHBdSsV/sL'6 +Q"`.BBhjuY?C,Ad6YL';J-MKS^78J(RVCWMC$qU-ra"Y,qVT!a^J4Zh-=u*F!T5T' +C2TqaI]."AWG8$)C9FUP^8u(pX_Q^qC@5bEW-8J3E#el@M"1t +o*:'9gP=u]JM;HT829(r;$V&]LCULoDOG3f_/'UuBnjNA*lI=s`,&c!Ci72XI`?2Y +a)$dYCnAgdQHX0Jbj<'+li$>;cHpD*SKrNY[L1QkqLbKo<2O&m#!L@ATXUcZK,>!F!BQ!NBeIGsURi,4kEDON.o +f'I;"m6osOL,qgVdac#R7nk0Ql8j6YlPTiCiQPkQLCtWqhY;#Lq)SXo6?OZY]KOcg +7'1R54,o'bqaa"l:-h-S1#i3JU(qE*!85@;g(V$#lLD5,sgSI@X%;0\Goo +Spp8A&4)?B=[Ui#;K6)K576pV'ldGC)A;9m>CqY/\MJgE7k=o7mqGp75CbWW^q,pk\1e9Art+DPYX6?S1A^'W(HSN=dX\m?nu]D]C0d(.6r3T +f1#@.``6:mR_0CP=I'e(nD!S">)okL;$)`UdV/Ms,I2Cb6?XG%-I-Y(VL +*cp!"KBamZ"BO,:;pUDSR6.NfrhP?Q$?r)GqY@,ro5Jl=YAcW:I.K-Ff?c> +Q(_Q,P:qRa^OpgXK)+;o5c9hAs.FZF36&:ipj'pbJp)k[7Plnh1d@i[67>6B4=H," +qA62Y^T8Nkjd`:8;H*3X.ZU;@D+Vp[^!#6\0:R7=T)2m&HZ,L&Eln1(\U0s[/qQkg +ZQ?'$FhPZ0od@KthW6o='6#_s7)->25K%q@StT>`_[8kq5o"6/NlTdB)SY,%WY+be +1OEcDr9qpYs1!Iab'[:=I4s&t5Lb*WeN+W]E!m%:"S:4876#;kW%/q+2o?2Vd!YT8 +IG`q1n),Y`ec$ZMIP9`15NI8ck6G++Q186Y;nYC^N[.ZTdbP'W]+IV[DZ11(rTEWu +n*kebH[]&eIkUDC5P0G$ocoqIe%LQ][dYE3ac>\B4WM8PTObnZWW(fDrtkZj!gu_V +JO(Dt=@=2F#)5HQYdedE+VTXM@Spg7?8WU\7O-XBdV3gWI7C+WjCZ0YW(6\dFT4X\TBIDer;[@X +T>B:fCAb:It'-Kpkq"+*!l\^co_mC_,+AS#/SZ6+UGq]S1+f^ +d(D(A_bf,K%`?Zk5nLt3*(^d]d6(8?`DKgIG+5E*VH0>NaS(+JU9e=^OT>90*k4Tt +3e*AS>@^X1;'S;9%(qo/^)Sl_(Nqer5CG8PeIpefBf\fbRkYB%](i!D$BpSZ-AXf"J>)gK*.@DVNb@_/S12*Q`?W +f0.N'h,deZF;h(QIRBag\9Cg,c4bju",H\Y1nWpHD-P^0Fd[g=fIdbf@9>]0K]/;I +*Ji[aSfru#=KAQI@p%SJNoSdk6'1/1*_DOUffi8tj]PnmQK?eK@&KS$)?+@ca8'[; ++6='.J!-MAruKt`q$7A#jT(\maQBa+>>lgUJFJ`-<0+,T"PhER.`q-IErk5!k`U$/I'nboNS-dhBT;T9:eJ!4=X +.,b^[MeQ+OJAM9WrBEg%<""KWSl6`oZ/;[-T>,UJpV5VUrdR`;!'g5]s.CV5=ar;+%+aI&+SjEj]&=HA,LN[ojY#A(fH(-g^4S^$3l:\M$*qY;h^qE1IVTL +K95LlaQ\m6- +)C7f8V%o`S?AqaM2+Hfk*AC2r8e$$b/R93WO&O\\L_(in"DB6*+Y;XnKf208keNIj +#):L9*DWTq3N(BpT@;MF;!JVtUX^E]<19(Ml=E\heNTp3)PpEb6e",Kd[Q9E]KaD4 +RigXW/&#(5D-@9/V6^.Qe\O6s-')F`-U.]slSli%_753eknO(h,ISMVu]C`5k/k +/K-Vod232D3)(LScoF`[BhbHfVm^eufj5V-Gjbgs]N:Ek5F[:Omq(n"f=q#e)s)J9 +V=hRAXtL=Ui]1iZU)?t4,Lol +Zsdd)L2n=SaI++pA=SR3YsqI0ffplr*2SnjVH(dl>rn"N[+#?U^_&',=:((>5K#5p +Eeb7%[$s-\Y2/rhR0P!J]]5OQVg:pa* +*G)>FVR;XULh.+eHm,b:1"(?6)S&ONEJ&\38^mQI?a9Sn7r5&L-!O>c*EB+_VUF21 +:MXg1LTS#Ih:p\6E,H]8\G%?3>iW&+6/c=VKJ&CtQT.@m9Q"e&'1djM`\rd8o,DWE +QW#m@BPib5[J2*&i4KSQE1H1'\7Z90gcpU7*[Sc"V\LsJ-ZgW9E\d9=YJqF&H(.0< +=m8;BF"VBp$:(IQhVeDR,93cRXq/bPQSm_AhjSVD&&l*B4m1W#TQD6/d/#)pdCF?e +CYHt[g(jh>[&M2@^"bG56h=2ci-CjaU/Q?H3U>LFY]HtdfD?Moke3UqG+R7+NAS>R1g`c.aB6+9O?="._aBIM^#fIHI. +)!RS[+S$Rdi-CB;jaJ;fpn&OsH;Bgsrb'LOh`p=Q+/GSKY+66u^d1VbTHF5ePb*K" +/\_PPU1jb+q&^FFIXfo<^Lug%s%iE>+6EG#VtL&Hhu"Y&l9J\0Yn.D[h-pp&J5<]7)KI2)\LI> +&eQ?$;(!!3Pb8'.)f>M4.UrrRI0G[Jn=dQ*TS=?Ba:#h1$UFP'OKT79'+j\<((jmh +;-\=m.i-NN(D1^);0Nh=H>m +HRI6k-k_.\:l)-o!.Khr"QB@alH%gjp^a#D).5!:i:I+kS-L4)$p_rN5c,/LD_'7Y +/+R[2;Sn5fLFgm"/J?Ma;V*L\dMp#U?4D/Ul/&!_%NhAAqlT!%!:0jIZjf9g+$em' ++KuE@#;EIi(>u8+!FQ7C-O+O*//'6ZF!WB$.5K&$/[I5h;`?Lr4#>>Lb"a_b6&ZGM +rY>Lbf:hmKM/qH]ljl?@*?aDI6+@A3OrD-_$?L,E1N464a:"\l$XiKI'.YhZM`?o] +1@pSlF$VgMRlSri3YS8L8t6tQYT@6&XcF1E+n?.Vd4)Am*ru!:+m9FZ4ruuW"EVmP +1XS*'B/cKp(>u>,o9DM'P=I%K +7L&MF+g;a@S.&f@)F2FQ<-(QOF;nW=#uhEbBmAKU\,tX?%U`X%J<<=:_)MGb.rr6i +Zr'G[Vb5H79&_!`1q-,B]1^Yg9GG?@bOWDi3"^^V$DA81'\,o4oF<^,#sm\a!((@> +S,tO%*^K2t6-p*,BGr#9$^2#l['ipV(3IMm<>SMt)c>--;?S$d<7Vq[`XG/W +%No^3JFE[T_?2V=BQZHP5_h]Lfam$d-6Y&X+J'8>%oBYG>)$p_fKi3j.>A.!l0SY.]t?+@M7BB[B'uRYRHdN#8A4$+SZ#g5i,rC&"k6h ++P[5'O:2-?'u6OVn>m:D"X'*?Ael%l2@jDWj'jobB,5Q$i>Ni`=93&K:. +uFVb@,-5gfi +>BSP)Fr+Y39KYHM98(qnKc!^4`2,3^pH@KR%D[I-Q[aSE*C2WB +AAHb5@(HhmGDE\RGug^QfB\(aMhG2lKG]k"fN!cqRu,diMAW'tjJf(dPYBJ[u;@O&O&R?T0ED?nGN3?5aOZ +?,72F)9nM:)kiKjSf/iJ=sp&5.uEE;D)EdO6,X5jI=:ooQ,Q6l?pQ(]M1S"@(Efjl +Q7*JUT9hSZTmC4G)J7)P/Z.6?V]'WS'i+JE/k_`QOYW7Q\+\BGjV +bR5SI$\7PBqIQAsWN+ZcOd^Kp>.:Q$];sJ"D(u3U<`0S+nd`%cL7)CU18@/3$V-?U +&A#'F]!8E,k?IetY8[#9>5,4aU3F0^=ocU)U#$9p;/$gpBQ]A8GE*+g&eP`WV7L$: +g?#W/la!B8YIcTs>;rmX4!FoV6i!#Yd@q'GKF,K?%R=eqk(fUUQ)(ed$_!^u\!aQ! +CU2]5Z=n`ogNU,rHahaZ%&\G`dUEkF!Lsq[4^%k>'=\,^=eN=:$NYDY!<]dbF1U,, +]*3u")n3GK]=Zh3q<3N"JK$*>bE0(M62M6bZb'aUJY`1`6hlMM40Q+4kJ#3M]GpIW +>PGn%qVnH-XHrPtEjIF7S$`63Ba0>M5Uj+h<@+'LOur!H>Ns"omYH5g_]1JM>W9Q[ +#`)MeXI+^M6*^qBSZn$ODBL*$e('SsWLMX2_VAY^!h1R8imP +F's9YPs(okj`6as)BdEM*1%3L!GE;8K3W37>\V?NAgJFBb8dk3>dqn6pmICGDgMR] +(&b6\7o%[_"e#,kqDHN_/YcLo?,77egoJSFXj4TI_jn?b>kcR7qp3BuR?h,Gq@fsa +KF/D,\Nh5d?oMGYM?Z3adM@h25bjj#k82qHeBf,3i'?$FnkHe7)'Kkc*KRX_)1r!@e2f[Yap +^hZ\17FfZG`:65$P\^ag_+f:M +-(Dqs3%oBErSlZ1iu%1A^,P)D46,0]:2DM(;[pCH043P)Emt-AR$G%L\NGl@.4I?J"*6\*`&0mN1EV6IslEiOlk# +dG:;5V+K@J7q1(i9`Z-[rn6[FWUSC0mXGo??Pi7))CZ,t6h:^'J@Z4rg^9U=TR![B +'G;C9h?S+EnmLQ=IgPb>&+m=7n_[:2ZsGI)NCMrjf^sVY+d#=VP$'W5;(7c&jc\;=^0raa +9]hOA[,,d_SPJ@3g%>8p6(q-=PZfpcO\)BIl'0nE5+tiQ:t3G62--n]XB+Xeg+Fg$"fK:buqL/]6c_3;> +lnIigMOK9/]&^)K[p&Bk]_0$$T[2hDRQWQe;5Me,oig0`^K7\lCpk9G[b#N+h/2n5 +S`]s#_;=\V*)7:dOiQR'\X]700:gMSFSYe`T3nkVm<8AthY2N9iUM0jSmOFKdHU=M +rLVnj^Z"_YI/]aF\)6`OrI4d=ht-jJ5VNlW!^NtF-L*WeX;(pi"fSFiR:?NHE"/NJ +g,aq#T^iVcA)JcQ6nBMJ4Tf=&g`RJe&B\::":SKN`Pp3.6'buR*4qD29QpZ\ODK7d +8+I@B,"OI?LEfAG7$f.?Z;dAA8b/+@.S:>\V^o7G4LZq9ZLkmc9J[C'1/,#2cSS?P +<7a$&ZZP(a:,A-t3_m#gmlXB%eFu-Qo$%+b3/)UQ9,D'Z!b7/k@B;9mB/&>YZC[j$9A8<##/.1Q$o@^,M@pYnX4&ZimEpeeOHW>#mM_B3SFp`HPP< +[FK\3=8!A]@TX+nqd`hfW3D;L=k&t +DH$q]$!+]8A?thiRfc3OG`L`/.)Rb^KeM.3ul08\^K[Pa"Qf-W_DA2tDqP%;*]:R#EN<`bSu\TV>IAiZ/iRV'+9I?%qq +<,>&B6O;"56NLeQTcN0t;%80M\1;q\LZ&"8*2A%)B+/8NE%@%3Lo*_GjP$V3B3=TB +Z#$r,ca%C,2Uf*OHZmrLD7bdgS*mnsn%#-T#sd]'"AKihK+MW(6+Ao[@.YOo&;Cc`3(XEb1adtgV!u3&->qU` +QrN%WD[+"9]g3j*Bl90Q%WLD:L3R5:inQ$iJRB1FU?iPI`N[0lR1!JG/;b#t.)bnW +'k3t?MJ!tF7C]lE@e=#d&V`#036<%J1hVd[VDUiK6Pa.9UFq.?bQpLr(^![0F5Z8- +#B30CN$J9(l>UGA:p_qYn8X7N+p,Q)h]lUKNfDIN8P'dK,UBa\P3Um^8\$i/AFuLY +&r'7U3CtZ21oHTOVH"5-.jbESE>3>E9JaM2(.7T?%)H=o#;BX0J8pVP%Yt[qTsD>N +&7#dJH.!WDu!Y_&D(`YY/#OQ9Y#UqT;6.)nY8,X$f6[)t._U>9('_TW +3sf>322AFP-H0)neR)k!hjEBPDMGBU4jbcQC#DU2\l%&V`f$4H1U'Wq\d`!u21)_H +3n2l1J#/!/Tk5L9k'=k&C<>Q:eO[DhA\<@,3`Ui +,Gq.=+,/n]*N]TD':/Xb>5MBFDVa0]Q[XWmgW=_Z2e$"5qFKlFI:_\d"q +@Cm,'ijcc3@Gl!WYa&dMe]_B$DRErX*+XV#A!&Eo)(qi%//nd7`u%#]@-i0!EUGoP +=E>Wr4Gf2@2Fkk,-RE<9R,5+>],'dFap*F,)T#&.%RAU3hn3'"V@oD6Tnq&RSTD5`cPbn/B>"&4F7Il-;)YR7JIcm=)NP+:!ra&A +N!\oESC.\;irlb&)]pbmcoK!7b7/tgl:+(Z@]=gN9pce9=.Bl-#4[RGh)$62o%\T:r +JGY^hJ=E88j'4BnZ#g_5a.r96-d_e+On1bD^pFKb`!jH2%D_$7_"8/R";&B`&\qoT5r8DS +48lup'Ya?CJoF0`(bLA:CkFtu-f>gHLcYVSa+1KbJ?X%rE#]'q0S7YVJuCg9LaWBc +<.\4E6"CZrKGD@_-c2)t_PA^!S1MOa/OIB-_XoIu">3%U0>eb`_^%%U1c3*#jZt,o +J-7gH$ol.dq*SsZ_mDMC`&tre4i?>E_t613"@0m>6,Y$8`&'j"6q"sm7Dr_+^m$]D +6oDoA8\^'\!a&)!TIC!T?inD.L3PES^i4p>*[B;KSLVjs^_2D>2Z_!8"#)'V+>*ae +=b;Gr4:k=WKNuH[>stJo`UmKV"C=P3?cF'n`[#'61h=TWA]@,M6M*c/'KO0tBuZr` +`jBO$`,*H@juGb$V1;NsGYaIE3MjMAPgeHd\mQFI^4Ka#!oQ0q]95[JPK022a/"(& +Yhqq*IE1Dta7Ol&"G"Q-JYcV!VQiF?WYhuX,p/3a*=rf)bT=(SVZZ,gY"?kMQpDVK +n:\s4a2E;G"HUY=K1R&EU==cd7$PemQ-!R&a`NlkJXK(R#9lI8">^(T^ao^%2hCP_ +SLJt?o5F`h7KSZ]K(q5[3Ub([P=fAKb&jK&HFq:XWQM$:b-\4l`2q,2XcLE!+@90^ +&U,Ig6%[I+K:!I_a\*>a&cg^BaBHZ`,d0gV\OqglbG;^AjLi[c^!#KNbOiQn"MfhP +];Drq-[^W=6):tXM3P%@30>)3)=eB_)bZ^DbI#Gd,g4E[.EiLObk06+"OPC-dENnM +bfU/=,b$c5pO]_kTsA#B)f_,c._'Si98q(h`6HQNe'6\)TM3eZ"Q7Q>iQ`_.c8=R_ +>i$`h=;p_3KTsP/parE%)("g%)G'H+Qj\Fmo:@-e4!j'[8n]rKOcSY7>7.ef' +1J[c^,Dou`UkPst*#-:*-d]^VfGMdU3JEPE"GHd#r;SH"Y8sG4cLh:c%0TK`P>>Hg +cufT?Ka?%j$.,B4crpZ">=(q:7?hV^(`JdEEI0VaEhW7]d4H!XgrN7H"]8h6d<,iE +CKF?7):>9!dBsq@`>m:Q"4;e`[>^+`jG^U3r0Pk2+4=R9'$c&V,uRVYJh)n9OfhRK +.FF,)d=!Mqoc;K2/^i`5de,9B"Ybdu.OS+r/ur1p98\8m2,dFr36JTK.n5b2.A`t- +-lR9QV(:$F1/m9c;t8gF'gU7`6.@2Ie29V?NBX1Z,pZ,UQ]NSo>tC>]i\8d;H@@?8L)!Ru.fH\JMkG1^AN=D`K=H/huNM:eY^fX6Xi`JgVkLb$:]Wq0AGj"R$# ++#V!V)HuhPJ^I4I__ +'VgP9l]/"G5,EkZ[=t&PQ(QcqW5kI#g9n!8`N7eDXkM`J>+3r:kXX.a8$kS3%!W/h +8B;^2*%MrmagHiVKt,k8\_4&rV`OssU^"_Y_O/9EikU6S]feEIhZO'ACqhtqu +Q`pQAJjUu_9u(#!]%ije)"kXK`Q[,fc.qF+h!g]dW]()2,pe.2aiW%*94%[Nb5g=O +Q\EfAV:aS2g"ELRh6l"n`SB;"h:qVT/O\bU)?;P.)PdI(=YWT&9!PjO7+beCh=]se +Q0;MKAmON`hR2\+`U)I3ZK0)2.ESrX?L?t6L$@KX +]jBOkhmN@=`VeWCo&"bfKd#o`,"0_5q#P9eXN@[QL'l0B;1Y +j7Y^u#!f2C4=5V!X,\K,(.=d_q#PN&[oEu5Acbo!GVm"78le%7`][kX65#kUAG/g\ +##OCs;5FIl/OXO\qF%,5370c0;(a!rpbm^K(K)g(-5,C==e>dRDGa_7AbK&7"bu+c +@HJnGju-`360`%h]HU=ZJriUZ%VUHe8"W?f"!Tk1A]4Y?ejt,NUSp%(/nO2]:$3eH +AkmF17WdfoFm!1uB,`b*K3/91/uo1kL=Df&f$WDNO&lOg%1a^DQn*C%7049+VWnr"kQTZ)?Ei`2Z0NaBlS+'.j#3N#@KPaR7k3_e +esoh_Ub5?8B)QUOL:$9tYA6n>lh8*[#/KR@F_fj#Mo>ZK(7LKJ'0*f=RRp4+Na5Y^ +_X+/6CpCEb*mF!%c0XT[XL?S&kl0bBpDJ$ch +fq)7,R]_W-B$t*g&IO+%#m2p8DSG`1D;T66p$ZMdmrnHRmdr?b6:o?:36cE7\^H_, +Ks:V?-mntPX`Tn1f5>d(n2CF<5d9^4"n6./n95,_*r.9/nnmpBaqiD6K11=%r9cNt +K5jiZrsp94DGG:un4s/UQP:^[#]XJmnTPf>KU6[O2W"=(g0SQ.U1$JNW(;=6[iZ^$ +$.T(R0Z_QAEM"KG0pK.??!O^FV7s>tOh1/rKbk^#sE3 +.95aPg`Dp>:`%s,-TD +NqoTAq6ujh_/&k(hjpJ5a)F.bTJ8@pTk^8n)GS5WY\&M!1"3:3q;7QcLI-:4WVWNm +qR +I>?:!AodioiVk4ar\rkn+5aDMa[[p/(]H;i!D9>bsQqV*j -3Mb5C2k3WU;n:u_I6XB$BN.#=(6(hL.>b'>Tm>Fjp: -ICnD*GT8m`(PBcfE]DjGB.oguYL5I;5,VJafBd[-?,#KG^#/=(HsT#bQd+^cH@9,7 -B=H^cpj@Nt5H!-#p\]Ji?bbdur;XPD$j?[IO=GkG3NtlC"Mp1)*gnKW&"eD0]F%D"5#$h)EUmN9*(FPH=.5cP+Oq4j0"aY:5=`Xr;G:@t -7G!CU=KWm,ig@_;N8p;^4QTgN%RlN@R4_3tjV^fnQ0"EO?'j[kNb+X@RBCCrk8BjK -S`@9C5G%'K.9n9ajj:4tR%j*,A;ha.RAXbrON]8G@sE7@"8E6G;B=f%:P,&NI!.ET -`(k`ekW;7`[I%19e$n_6L>:eO40It_mi0RF^$hHYrP.hA%gBf=S1b>hnJk==T'guD -ji?dONGh4LAOrCgQ%FQGb`c;p3MR-TW6QmYTglFbe+Fte$e9e<_C%0Mh]9gZ*M73& -pDp/Sg\6-A6,iU?%u'!;ShH)`q&W=sjnYKdS`fhjO/;*qYoBYr;WDHr;N>krI?6:l9JG\!T6?P -JP[s'5hI(Zi.M\o:eh?`==gc9'H)DiC&tj]3/0gO8Ia]S&2d:1lWlQF!\JL-[8;** -K0W=N@b`I>Kb>gWj>hj3mLI.5HOh:l6%G&',",Om&`Q2MM,>lP7+e%Die10d;,/S^ -k_0Q,`)hjf29H91SgR\\710/'%u#5K$QV:"!UKLfO)X^qh`@#/K*3e3FVlO$gf]FF -mQF(mo,m#Qq22Hf6:b5g+ll%JO]!f$8D,".jFiYY8!6,-klW6mZKFQk=CVO(hY9E( -/d3h8IkUsGVT7to*9"gT%04Hc@0!S?@R\R0Gq1K-`42!dl<[,NGpMMT_3e.2@SBpa -1$1mGR8Y_M9\Gr&Vn42IL/M1k8a!c6V)4l1:jQD?l%Ljh<6gq2>&@!u -`Ashqes01f=\ml&S/?g%3Be";4BLO0"0o,[R1fo9`dhV.K&A/8;.()kTW<-/;P-ju -]iStQ5cc\LS^puh=mJLjX];O4/+A0[@+?:D;A8D4_O-cTsRj\dTTjLC$e?g -V:KD)g=o_o*2E1U69JP-JH@Yq-s@Vla;S02*9u?nm1,elO45lE_sMlB\Mh%\>hbYH -/QL30=&/$d>HN&9`S%k)DXK)LQZqk?XI[jo3Xr=E&t6Z`""L-C.E+2+_jE*d!G]>K -E@H=>Zsg-^G-5-jrH%E3!5J:3i8*/tJac,8_,r>p@,)cTn:hMtp_*\e>Qg>P]i5Q\ -+>=#._@t=Q3j@&.#Wd,%#qT1B^1/iO##&0XZ##s?k[["E>UbBs^,a'_l&+FNI?3q' -6-*1>,%Or`5&`MlGPpAJ@@#EZCq=pS^l!Tef=d>:Wu,G)3*"q -&b+^o(-tbfAB]%WF+/,Rdmk\H>j\*R`d,m5mlkC>rL_F0F3Y[32i:I_(;mrB%7)V+ -hQ7b=^rtsDb*#_SpJ55!%TKJqEd(mGje28NT@@$X3bSssWV&`[eQT.WC>E0rng:0^ -3m,X'=D/m4i+c/`2Y.'RH`pO%V5]WM@K>[O_/+86KGd-\Cu&a1ocDINqSR&b?*1O. -`nB*NDf0FF$+%(#iPt[ZZDeuABZ&Ebh#fVkL'UKmJCCEUPC7f\&\8nP5[Y%(8K_k% -rOB?9i8@HCDfB"l_>$M,iES$jE8DSAp`BLq=qT+`*)Dm*,\hGh[BQ\8A>9;;rJ)?t -P&WZY`-%sgj]o!TEo(*Fq1g]e>g/^YN_dppPO]=7WRn=U=eqTND?F[q*DoEq*H9M: -k1lH'FM=;/\Yiu.JC?EMcSa'$^$5Gn%0]&t"bk[;'7L?$j/*g:c(La*I,Zn%O#&rSRMUb3j]4_8"UkrUA1`%,kC-;2a0ILTl(,RdY*mnbu&#q-P]Tr#^:WkI[88n^'?]q\B_$7`@,4P/AIdDm*>n -\,"n`k^Gb?<;pOprElc%Ic&uYs+g+h+.r+R=qm^\D!nT03>Var_Gg\,<0&4*NI&t0 -nG\L\r3-n7_he:g*&sR$sp&ZmD./f9g&aNXTgJ`ma-:gE4H@\]aO>G$o#V]d'!^/Z@=9?ElTkT8_D20 -^'2j^F[T@4C5atZ5n(!f%.NoE0ZO^.r=AE!&2=>"E-5qgkmh$-t&Fi/\&IT;X9bd+p'er]'EEGns6P2%Z6>Q;G -l\rPsOpDR;"K,&scI0W`3edX2(_M9Oi68X'!n2.!'QK(#ke0d4=ATS,gCfTU<])3O#%-oi3nm2kff -+#3F1EVU=P1_Fmh(A3V/i)Lp'%JC.l7C3(YV5jJB3*HY:3rD4^2D\o&B9>&mD(&58H_DXh9O=7)I.hQ%NJ=[%;:Z"NGir"D -2,dF2F(mY@SN6;83]!TnA[aZUXYEMJF?ldh:#M"i8CHVp_rkKf.BaEVQTXl)4XhmB -PM&+*h*(Ag4u;7b'>s_L` -7P]Y:PPCA69%&DX-DN'BD:"a=3XMKM7T<)QFAYL!NC`](8Ml](EfimlSJ5nk&aPE< -850&iJA&iA]hc;1M]k@(01kem7.\etPfZV+btRcW9eaO['\NjJL>Rrh/!@th#M(Vb -cD&`p#[s#Q&&h4A_b]pY9,,oQFU:mP%8c^/oJH_JE;%lH8..1b<),5>0m)7ZN;"ah -;^E?BmR:!nru<@tYPPDIKSb$^)S$`BM_O8RLER -!XqX9lQDbKj]qKBV,cJ_Fr=_s*F\XaOqnR;DkKG5.RSaK)W8sL-s^>[XBr+,kY$;t -ehd^l0Gjf"%i/#R<`kS4A-r$p_tli/Vo[I3u`q*('i7XNUtD]5-cZC]KL.^liLVRhu5a -$j@me,V0RoGA[#*BX[#?G3NnQm;D''DAJFSA0V$W*-1B>E%&Gp/6E=^Yd_hI<=)?S//h@V#%^ekC\HV\%hb!?b\=#iQ)nT4FjF>lX1G=Yj14)^FI(.c.r@.QUC -eo\'J]rQR)@ig=oBDa(qmUG# -/VlIH(#5fK4[`l[r;JL,`b!G\M6o>DDQc -KBAGP+T6h7[tja+!R+)oNeDe1>&$=,`gCb"fH<2aCPhh[ME%GiF]"!?XP`ep%JY4) -3(\oSeARggu3O#ZfnGkmE1 +3Mb5C2k3WU;n:u_I6XB$BN.#=(6(h[;JB+AAN$)TW)RM33i,lZ=0,G<;88fB]&Ad$rPU*I&TXm_b^( +H+r.GN[':(OM84TTlW?/[kfb`k]?T*m\`RUe*D1(*PT:4[GL=qr*CHmK?`HJq0a=! +=1?Y-Zi#8Z5H!-#p\]Ji?bbdur;XPD$j?[IO=UhC_%99T"i6::*='FmN$SeIOK:#A +_[stVpUu[Kh%%@7r'_,aOUOkp`62"u/!,LIbUf;pTNldR!lh)EUmN9*(FPH=.5cP+Oq4jT>YrBJXC%0]&EPV!>3d1f:i7DSL_f1/^Pp4d>d.dth6^V>"%74cn0T>,_ +Zp#6^eL+eReg2tZ=V`TSA(c$"R:k4(NLLL,QE@9)gD8&AD;1BD]l2[B%E3>BQS$I' +h%rf9FkrC$h$2S6Kr93&Q]:BX]e%hu9Th,5$=/Pm%KV,g-8<.lRtFh+Gn/dZ@+\!- +N-'7RTh3Bd#6o_"/seo@"af+8`^Q!MR0HBJjS:E*Q/u.ads'plNb+X@RBCCrk8DQf +S`cF/I@o^A%Y^V?RP'Q$ANERhV.J@eSP,8XTc@\R@gULB#)C"f$m0!;."75mL*"rI +5c[X'@)IAb9bg!?4B)X+(7D_tqkfjpmb?%Q^$cp&oZQIr%gBf=S1b>hnJk=>`UTI: +*QR^jO!Vp=S>m[Go,IE]^@Ri!>UYct!4G"Y,:L+/`Z]\.%W#NpIL0&KJ[8UL!s$hW +MaR14[$7*,43dNV%tW^6r\&ucG`9s#jnYKdS`fhjO/;+;T!,9^q]=(kmJEL?OlQ?\ +:W;CBOS7C(?^U'^@uKAU[P`n3HZdp+!/#(u*M]Q8EXi-$1`&U5=V(Y)-Ajb!q-P*H +JP[Zt5_pE^i-E^scqXp6==j^7`#42(D@Stb4U9pK+bW[Ob/"?X"(=;(J];q+N53@L +#<6`.VT]@O(;L%0TRHq%Lc5Fu$l`9sE"l+\hSP).$DC-bM")r?7(AbSTd3Km;,/T0 +=KN=t`*&!qDD"B1]bf]2Jr,VM-cS]GV8[+F'-dD&\kodF!VsA3cE5ZYk]DbLE7k[D +3Zj9qZ6.]Z6B'>&1<&@!u +`Ashqm[dA/*D3=8/Z:2JP;NpnmK;[p$j!5+d>BhtT=_@Ek7fR"i;#J*@>je@\j9t.Lt`g%XtRo +ZE\@k30Is@Y'#K:jFQ`L4&5DU)D>4QJ&ITs=i! +F`?0fb4T]e;G_>4f$.Q[OK]lEjLqpdMTFQ,H#N*'g9^M`i`o]IEUH9;\Q:EG>hbd' +mL?nA2Z\5+MN(#(fOpJSaniU&U90\I\-\LZnN'LTk_$`H'":d4>s$kaYD(K:pWiVB +>O?k-`VI8Mmf$SHQ$[G/n%]-(;UT.L3$hfl#L:$6YnkKE5gcS6GY8>QOQ6h1-sma` +<(5_-"c)RW+iDrg\R4\tM=F%a`E9;Z@bb7InUfB2Gg?q$YtHQ[Ro]fOe/75iGl3+Z +3l-]g+opTa*WZi.%:L:N#/P0l`&b^I\TJ.Y$&p_M\tR2]pJ#.b)>qMoF`gP:ZDLlKg)5Jm\Ul?R2.;D\V,dNNM$c0k0"F;qf=Fre. +J78?6?tTH0G_ac%mndfU5HiN_SCh$V@Vf>0Z1^Z/fip&%lck!aZG*kaJUr`3J`7]d +/eZ6;a)4+a;#:?4)\JF;.W"LsZo:J#h*rJuDVa-\pP/4p>L.V6?0k_g53q#`:fmlE +.93^;\-[C^).RnQmlgGi'P%r.gF*8diR^ +DW@".fUoiHKLKoi[Mja(f*&>=#[oATNi8HK&3a1HH%0&[NgGt'?I.>P?Z#3/a1:q5 +&(g^9>itX"/e"4LeW5u.e1rO[!eZ.b":8.=;M%e=T)7/g:T_P5hq@m6Dsi&2^%_O3 +C&7j2hqnaV7!=sR%=oH]K.UH>22Dm*;RC"i&Bu-reOG@eO8aT8qSY&)!&+QVE!ZNK +%05l/`:*^,Dum9Kg"L)G?73(3Y.(^fY#;;#;aCr2goUR*G*+7V.LM@8i^n(Qe#nW2G +l:`cQ9*T?0$8A-S&7GpMXU=R&$S\srE4C3jVZr6uPU=t]b,FT5L<#);Q675-kuooo +d-AF"%M7Ru!GDh6)"TGr$;eVN.=DT.r=AE!&2=>"E=!2Q)%Vi'&L\W`N25T/@Wl.J +Iiqd^a&`mH%%XXW%KLYjT[!nnuA6'[[X2 +6eZBrMOgUh(F4Nc`kmJpculPGcK4i)#C.)IN>?MqF-0lKEL@]LSJgsk)DS%.nWOg[ +8qEncG6%Pjk0G!A:c.*^a,ZVocep[uEWj_<#fUrqb,l/I)VhTu*\ji>DMoEQm2kff ++#3F1EVTF9XWR)o0^;?-O&QsH\dhUI+VG:G_5n(GV#@KYgPd9g9)]`Zc3hr_%a,M. +&a:Dn4KL:7,Vhe6E_.O^9dK,^,Ec%Oips81RM:YL-7B5)!JUuTk7#FG%7kAcVc(DZ +U(PgT,I3"O.UaV9N@=@[.5I/;EgXBmM'\=XF,jeVn!F@dn4)sm2?k!$KT@-=_@6fM +-ft"MnqS\Ma>q\a?@/30=<=%D]AO)7'C(>-F(mQsX +[5.Fj79B/5=>be7Fbn#%H!'Q(jC^b+nhWj&S2VQcoSinn9TYP4X:Cn&Q1>h#9]6;c +G?a`e"LX.mFidmrc!9qgXd,#R28Dn>pq&@]>(B%JM3'_H.oa%@Yr)6Vp +&iKY$86H/DN\cba?'Z42B['g@*F\Xb@Q#NABq&OrgLB3ON?L"Ym,]C`Vdn:@&dcYD +Wrg?Rb^\cR$oV$qAufKn_AT#b$usl)ZTuXk$q^OV@b)?*#CU'II:r8)BJtQXBJjF' +N;TYGo3eX3:1\.?DZ:;.$E$e+25Xf[;Kat&%U`^\2RdHqFFSg`.^Bs"%9*euJeAi[ +B6MdV(5Zn:h/2lEDDpQp2UcQKP56Gg%IhTY9`0&'Ig>9@&LQ+N[s9G^20\eGGW1>$GDJPOHZR[>Y7&lM@1_odU;rTt +F]VHuaDPH8BLbL+"n&5n,sD\M%M"1KD&53[GEBBpMgY9HI5f])GM,5?aa!CmPa:mV +=/0^Nmrb^^[@g]t8q%!53m(Z0b=fmU@BJN+BqGSu(,6%GDW':M)^cWFs2S7SFZGfL:AcF^`/%G0o%<;7Y!ZA +!72&7!"^!>LpR>BR)iM5h2M-VNB#IJGhJ(dh2V3gN]?-\Gj16um>gu3O#ZfnGkmE1 rK$aTO?!K+GmTSC%?UAtOZ=/=Go;aT*Kg.@OuXhOGq"oe/X#oaP;tLaGr_)!4d5\- -PW;0sGtF729pGHNPrVj0H!-EC?'Y4oQ8rNBH"iSTD3k!;QT92TH$PaeI?`\W#iS.< -3JWu)M4"*uR5p1nH'+M_Q'o1VRJE\Ifr:E#X."=9RlRaCH*<^J[@>j[S,($n3Q[d/ -c('(*S@R%a!8%O149;t( -TeUXhJ34acbR't\$@r#G=t-)4/Y@>DU:N.TqDG%Z3MZF0UcLZ7>!\s19r,?tUmb;Z -qGimXIuSb^+^/0KH>07fD5R/LV`JsuH?lF"IAcpmW&fX2HAST3NMu]9WB-61sT%C!GVWgPgH)]>M7*$BSCPC!VA -HOmEO&[L.GZF`!"q_tiC3OATGZo^@VHU5$.7C9[([/3k1gKCpG>H9h1[QA'/HYKq# -D79=][l\`AH[3*4IAkn%[G-DF4,LBBNOX=r\@[m6H-r`t"/'rJT_dc]HKYkX)km*Q -U3i*9H^VL8Q+Qq,]K)m]ICQ7/]%?;G'kURDHF]f -0uN">j:_^5/)UU!dZ)$tPre*IDmrqCP]Wiu>(FQZ4>Y!i5`_Eqa!m.ggj-opHcGa' -a'=<"r-cZ!J7lsl_-mR`2Pr0Gf+M#s^e9('=")!F9!Sh;a8Em!&(02EjLlAXD.1j5/;IY*@a$]@!:DX._U1W6Flp@;I-o6QgX";d -+NCDdEIeHn=";?7detD/I4%>^ml*%KA5R1fDWXErP@,lc.p"Zl5dq$D"ZUI -cS[0s"`eif^nCSB-j.Lkh]u9DG&iN?,NS!>iVlf.ISo*2?0/e.>i&QE -Ck:_4?Opl+I]=T#Va0&L%Hm*j"`!it2D#2WbN@ZC:u5pNBG]nsDs@7ll7a1ASuBJs -VR=1&K$a-.2@b0it7[.DE/_u8)t:#'TPa2P=ajKR8g=l/XK,m$=[b= -AMfh"B+oR?g3G]McKE[q"V-#NTi%bQH;u;[8>fAMo\,!oV,aJElBR77B";-L*@4NQ5Q" -)'"r<.@&(fo,4(LD`OB7BCm)_(6;%`dqRamS49[mXjq3pRf/PmBs??.pA8.8mrc>! -n+W=]pBQPmj)DOK?;DZ.c*V4H*?LPCWR^i8J+@q6r+Ocd:1]77Ic%@)+JVACE#b5`,cqhETDG-`A)11 -+@pMeM]g+3,`sYSXp0Eko5P=uMBj,\VX(to4`NkJ+[cO,o>P@I#Dd54Ia)bKe -7-ADmG@fNQ?2''5H!Y=kbB2P6[I\cQGJ3m%?e=E>J)6P>$\Mj^7MCJaBdO"6iV3U% -LLOA?-];HD`[MMYR-$JkA,-0L'SHiBNFo@)*fccnn8%L57$+TW^M%t\ago>&F%#%5q"K8LEO_>#Gb@'h/3&<[V@QobX`<%EZa[6VTR -@0rWl-&.N$)ScVa%UmjKLQC^>6hk:*+hU0u;&-UYfT?eU<(i('C*Q,;K+qdJ;i1$E -F2Z_9(1PctCiNW.74>hd@g$;"l9[*mGgRF><,3]jMDE38i>El!DiR9O2Fi#^*b3XK -NcFbRa%6:RU^V`,dI'@mGnD6.b^tt?&k>JQ+X:NS4-6nO:p4HV\qW5$W4!T9IQLcUn.%NC`+[g"/ -'/O_gL!]*>7Hi8;OL.oH;>NQW.-2>BFDd7>H;%Ei%4e9>[[.Ru92'%g18QhTZVpX> -:2/1HVUWn`;d+ZHB#Qj1Pnp,k8qg/X%83W72@ck%B5UBVc?p*GOIXqgVpf6[O+C_E5@ -7k;n]nL>oY*UCD*[_c?tiH_Vll+Uc8 -pKr:;IRkLO^R)t>hcW0mYSI>VM":T(Hi8P8"HpR12[R -I(tZI*c'#g2`#'9d@9`j)9o_D4%W]?S28`Ac\k.PkPYF9F7+D#3Yt+J*eU883JoVK@fUd^jWu6Cfj.obO7NKf;fmI8Ogg/u-m!Y=NE!@B=/Y -Xk&rI>AE:VXL6Wk`4FQ*COLW8<^saSRhapurK4=m:&rr$2eQ*,QaCp:e(>A8BC1,O -j*$a=gO"+eD4SMQBU7N0Ro=?6?,aC!;e"PZRs/aUi/)YaoA5[TG4-I/^$P1[hja;- -n#c2sGK0f;qtl"bGtl(6-N`7,PD!oS+MkR+%-!d1Mc&=U`d$!Lid>*jn_-XUq%k9: -S:?`BmSV%Xs!6]r[N>"B;p"igjQ51KRjnn\bdl=[kFCG%F8-WuH07NXO*@7=IZU/t -014oN0*ZNiU"!Dh:?fGnVJC(Gep>b-lCD:bp%Hkcq\NabrI_:rDTrX&-Yr+*8$quM -iS!f%D=3tF]QX;9hE00BmbRWP*Zk(4H]N`**WO$%G+%;O+,fVjYJb\c+K53NMXeDY -D0[3Xk#h),A.'+9%bSe7N5s`.*3HQ-*$lq?]+2TQR$u@(Qj<;BC -I_n2p3.rQoN$^Kr-c2r8-BofCbUGm+LdJa-2k2J;$n9(2;aUC<6TBt@'J;aX2$rn3 -6[NI`CbeAB/Am-&6b(X`S395M4e:(b6i1!'Ud7B6m_f5q6UX5Xj@)C/6ckulq54N5K(317*E*YjAA4M:W11M5Vu?W9//jd<^d,$79!ASjAs5^ -=$=2u`OdHcS6\RaJORLa5SRMCUgZHO?cFT4`XHBHj+53,Aj6u?`Z/PO`+I#Y5t6fK -7YGRq1hoM7k=0i;7_6[\jDcjnDoU"?7l[6`*-FE?ElW!<3-9;`MY5#3F%<:;8!JB` -e9XX?GHZsQa85)AjEjD`J\s$h83=T-'ST(%Mb$6k0SG0ON.T#"LWHP-8.dWj$9V/34UWRA*8lVNW>;&TjW[]Qu9"_,N4K?QZ0M9Qfb5=_$ -jKU.EX@i]"1,Q8Z95I6P[S&Y]b>bu"S@6Tt\k8L&bI_''S@qR91<[VN-e,iQXM-BI -^W\3,bRDE`)^%g2`[:W%bS8,Q1rdb/78/*P9Mu0jUs166bKPph5&AKg$T:]FdS0P5 -9bc)'UsdKZehhMh+geEIV,p_0gCt_AfgWf%(c-5*?g0[SHiZpqMc.(f+ -AE(m=&l(RP:(aSQAEb>OkKZcb.^\Hcb6LeDmS:B!cID>-eF(VhngfsocT:u"*;*)! --I5*S,"2+M/G;VNpWol/:Q53IR:FRMrZQ+Uc]nJZV#J^ZjNmc,:XN-<,m>FA"4.J[ -.")9GMV(aB$;c"-:mDG34UTPY%O[5Ed/(u5h%9bgN2(/\ob;109Y -N>YTa)H!UU;8!rHYY]p2:sn)?dH)HJ%3SOh+4;_a;DfXr4XF!#-;m8[;I(ZuD(&;Q -.8m8rd_.,.`@Fj2/lLLY;UmI!m4cue0iKYZ;`uka9f#^J1fI[=;f+KmAN<\;3R`sK -;nY7kbrX>04B(?);schKrBXBT6<"C\e/^nU9ghrd6e#sA<-:Z0I5TEs8lVoc<4tt) -btV0n:/pUV<;fWn%8g+G;H5;I#h\/f8YSgNJUc.MHI!==M9Yqc&Gi]N`b\0=T+=a%?Xd6 -P$'B#=+uE49nq>,L08AY=`p$5I@45tRTY?6=e2&8XdiPMSQY?Mg&4Lq4c'.BU/uHH -=qulsje,cLV-7`5>(*7$NMfsFW*5am>-4l0V6*q7XkM#ig-r5M%C'+XZt -9sn22[TdUX>CF"cNDJ9i\m"d=>4&t,XhQ)7j%DQ-_^g%mDgQbuH28qY" -&lBYZ]p6RlMR6W2b$8Wm>a<[c6[VWh"mu)h9fK3rETTU*HfcbmF!3Oe(nc/ -h+cO-=QA4[g)SYqh,W5TS_DoROBoQW?'*fHjl%0'hqcQ8+[+f@8qYtPk$C)1?<-25 -mH7e5l80OFhR\&?DV8Hqqpf<,c1It$<,jTr*Uu7?krk^Acc@Gpu"mP,eaIj2?07C#N2S5 -@#bY%"q+hm4lFTl@/7k$jq/DI%q.%&@3-+-:(q%?$(=$liHpaHAf5#]h;O)-,$l0r -DB0UD)r^$f@EobLgGNF5+sD+P@Q_kD/gV5J,[q62)>5B9Mbmju.Um`S@[8PZegBD3 -^1,A@+C6[0[P9@_0B4KFismn(A0*qpGuNc^7P*[jA55Zj`^]$Wf]5Lp7(!ACaQs -k"]J-4lm/P>\6am:/Vac;rq`4AR8J0hH+9V"D*TnAFiQ-VHk.,>@m.4jkaAsVHd]H -@OOuZjuKYWp1!/&h<%1>,'IR1Nb,=nBBH1ik#Q:_^2%?5l/p9*b^OGB$\.<)DbH[A -B/q^0-?WqsVIrAB)#eR=>dEOAH48q\k@T)o5'lDG@VbAAP_!P_SeUmhC!N@Xk+:iW/SYcfl(Fbc-D_CtUZuW= -l<^Cp3eqmA.Ga- -ApeBCW,%^21cDp\bH>W@^2#gRldhZn^;"=c^hbOtC[T#+VSd-1`9]s%ls@aTk/V9Z -aurM@l$gY=Y%_^dc=KJhm/2?LmZHl@c"8uA5=E2YiFh>A1Xrhf,=i!m>EM$Q\$!;?L*qgCVZd3*#B4H*g -,PFkKp1In!5A+sHBQgKcp7;ul[qNK_CiJQSG5bb?mLAmqD9GFhE0#$`8JUt`&U.;s -]!lj%B6SQh3d6SlGGfZ(IsZ,FI!=i4pYH/LpO(14J8a=rGWjaT/d1r>J]7)3Dl8>7 -Lt_WQ"F-8f\@7?6IuAR(_>):UpudR[#ENd&OEi7aq&TEZ2j!?DP]$5\H$HOgD>F!_ -Q+G#(DPrqKb>W]"o6JrVc0([9:S2qS!.#+CH7,?E^S>[:Uj>P-qEI5kO/.q'VsYY( -qNTTXXm#VrWQ0drD4dtVpTNG/YklA;q]=F;0sDa-M)ObPVmYYF!+3Vo*lU`9`Q(r"DqTD:\W7_p>7&CcBL]\'*Sd -bl!6hI,;Pan&i`gcs4W=I+QgF&'oZ2dG>D`gm?LgAFk4u\p]Xjd"g=[=5.t4h!9IG -rK@D5n(iEtg\rEhIMT-d2s#K<'RiIarVu"+kN?V&k]b)3d5U@i>lfDgX8^H/mmleB -a7"JdnE[:FImnGB`oK-inrN^b8@\GUM9,EYQ.13k.>9duB#jjL,][UUtY -9kKT7SE=ZLS5/7rg'$u#5G?G;P^526MbBjE.9,#T5,D#S<,/g%[)r>PY#fDhqZV_n -A$T6RepBi_eSDTtD:\T<`oV9Q?#J8@`THi?^0bg1r!!B0K>M&9fR-.9'oU(AES12D -7jXAAATHIO`JV!(c;jJh]`*+@UXZ\gjVa@Q-8<2H//CS8#=]"FaDkm0)p4Om<!A1]7JDd$-Zu7*sF`&L:.oI3D/0<1PI1 -daYrb9[Ar?3CZrs>sV682#Tj@efCqP[rCs4dP3_IUSW+=e9)6Sgjkh84_V!1WlK:cl3DP,KEB -m(4=`[-\f;H*D/?Ic7g)>FjHUD-K3o]C/t4q7Q1.gH2uc>TX9hnD$5>^Mj$VrPn=H -Ii6=Igl>CQo%^u7bk#)on&fZus!?%`h%rB)o[N=ieFd*S=k<8sQVZ%Q?&r^Jp>)?Z -g:Mc_H/A;Os+/aF?6=7JpDuPUjETNR6/_RqJ"c*&?CU]OH%*Mnm/#SjZ0gp"Vnqm# -?Q[C1Hf"5=mX8G,fC]$.Vp"l7?_?TZrlX-UpO?Ogq>C8rmJeTtmf;8k"b=r?"MbiT -!oNnbJP\B35kDAb+J]a(cs@,9pa$&Nj:HsjD@aS95Y>G.-%sX:'LIu[#iQILKJ:+U -6O6rsTi2ST>4,U24''&mFrM:"L872Vj8ihTS3 -d9\@mR'd\5#Y,R`Ft^hu_&22HAW/@81.I)E)Im;nNR=ac7bH`?j-4\HOkr+=R-bri -`-[Qmp-;-i"WueFJWQ$96V*UQ,32.NO]").8GOPVUnj-9Z;+%aR5$&L]Ub6aH;7'- -74;^mTTmlb;p&6?.cjX3Pqp'S9*nlTA8GJ9db\5%R<:.DjLpo.ra8D;KeVX7`L,*q -A5&DV1?N,lRF=?59c9cak+pOrdp?ibRC+s8jP?FSmXJ%O!C5iH"e\g5Jl$b.,,["%R*d7:;&U_= -k]IW-<%`i$RP@:q9c^!.HB(l!77_,=+JdMIPL-V)5oP;[QerBXK^peD=rh -3d",qjY<[_m[qt^JPbVH7Ar'bU/[#0;JKc9WRWJs93Q=7lD7LJoerbuqQX)deQo45 -I]c]Y]i]%rA$"4oT8Tdf%!4[o2Hr$aFmCe_Rhc6L.qs`H^hql+<:2oA5tMHETd',I^kM?Q7gJDl*$= -\'0H\47.Lc`VmOFrr,7]bCK(/"i/9q!8s@FK!5Fe_9_]I@/LmqnkOXDji5Nts$16<"E:]mIF!3U6tgf=S+JUu -d5j?XBaa0roT#!\g/gs^-V'j%k+0uTI)0NF25YL3V::Gk7VZd1WqBDpeESDRC<^+d -[?e5OM[N?sSTV+.iG$m>cX:O*K@;MKkZL4jSfpaL&D#L3;9fB]=gL"c3 -%B$Qkk1eYF:n_]B]=9cuj4rCRVX#8M\Mn-`h7Kbbm@E@OpSLF:)rGl.S__$--,ACW -o6kQV"e7MQ!T;`8KQ'*fE&Xs0iS6Y1E./P?pm2`K4,\u8^,/p5Hbk)\Uds.FHN:!L6+7-D6!mrKP2 -deYmskmkmto^8-rqNk2a]aLoaT!\HB[o;VKGH`Q7Q.UE_<:&G-#]l$JgA=*Nm0N`o -pE&GOhLBG2h7(%?p.2:ir!;UnK&XjGlK$gqra+2 -ra3ioQbV7ea-6+$GL/"X)sI5JV/BUde9W38kK,rRomX[+HQQD%I-7j0?GkNEPU5S- -kIpW7,M[YgDt*_WPe!D"iI#!tnjpNJq0sXQI/g%u4oa(/hd)6>c_L3JTA(N<]C11* -`V2E[cMX;ioDUr"p-33WrQFs-ru]Ydr6O="?f1[/O"pIFVtpA=qW6&\!)Nn#Kpr&1 -o`5U6c>W(N:]USN*8Ian!UqH;YUJMX$Ngqr"%>'KYWDmt52d%j";!]tcq=CXCBT_t -"E7Di:cAR)?NpZm"OL9T:hJd-70_+S#>f*Kcm8p9EsIeX"gDJBOGaC_UBg:P#V_Kk -:iQf'T*]J2L_+tA:n\.kXMdqr$W+;?KN/BkWsfQBfas\_0Y\#mcA5;r%1p\lOOi46 -]+,D4%R^C-d-D.Fls_Zj%FFVUOR?aXeISnY&((Nq;!/D;%hSo?&2=t4E>VX$ob#Rr -&[<\8YYc$q,nQ1mIM!5,OZO6$#nlbq'/;o9Xo/rr:D@eH_3"a5&N(<.??,L"(/\][ -K,GEO<>H0af+3oY&UP:rf,bO\.8du(Om=(*\K3KY -+&VSe;:-JJjWALC5-`od1(,2p$p5-j+]9*o1(PPV"X4%3+4;AWne!(`5p2=@,>os1 -dMX:X5802=,4[`>A2>EM9-dD6&s>$rP#We@>0J`f-;nIaP$KE_@3X,q-LtLkOI7DX -HRBGM%+8i).;]d`u8MIJ&1K,deddJuU0/O5W135rBN__J& -2`*2Z1G_faP>^::4Z1\c2Gbn\ZYMJDjYaAW2D:7OF*BRlFVqGn3"p?mNIs.\O#[Yj -34"B!ml`V9R5u"IfTV"M;k#holT$c-4&#Z8Z_KSQ#oAf;4B&urnLZiOcTH,K4*0": -N/KhTh`Quf4>Z"]'@?Y5WBQO;50uqcZhlu2%6h-$5>8+3:1X/@1?UX6F -7!*'2Ll4_:=[roi6M,1dP[\n0'h>WP8'C9h[#7Jr;+NO-88KkJFI,NtT1;jd8^s"t -'9,QTY=f-58sHeWCZe9rX%X5;\Fb>F[)5SEUJ!Gm9h4A?<81+1InTFi9[r5BoVG"6tC[B!KN^KNLa>%bP5=-L+?I#cWq'4>]nY'%"hclgKg)e<;"4:($f0p"^O"W?UeU5p#BE+RoK(\ -?a]7j2!n[o%q%cd?Zm5oO0`7Q$"=:g?1nk>2BG?@s1@;q*g?2LB&6"(jHDBLSV-eobZF -F(D_?BD.QoQ;qXbMcJ>`C0%34p7Z2DX=BO"CDOBT(7f6,T5*hSC6lnVO?%,8_/0o) -:j0TjQHq9d[;FLTD'r1s[d.hM-#L*RDafe#p@E4RQYY16Dt`n*4Z#DWDE*"A_(D1]>/k\,>E`Y.XG8kU)5<&<]F;HrRpG$dA:.c*R(Q3OV9m?>q>PEJi=+sV?K6ar$ -.9DRVQ`<<;V0UU:H'a;5Qa7X>H$d$*=dQ79mRW5I9$T# -fB[n'WIj[7t*DsIs;1Q2t):L%QRV^JQ0g>GQiZJja]<,JbU+6(b:3U -K7[2]8(\c5==6=X,Cl.C.JPQLQqB,97>*Wu+db9D=A_H\6%dfq+#luLQte?8AVIW# -KpZA*2ee!`EJKaOL=h9;K)pcFO*!>XM&:k*G^kLYQ\KaCMHH`.fV+/r]8(X5M3C;` -fXHdg22[d=N'c?Y=N`DnZ\nOmG'LWXf[VUAa,V"r/@aGpP.Q\jh2\ddNL81U0en\j -s,[i_O-p66(V[BRqiI#jO*M+qR%'0t+-%3NOgWl&q'D3M$^#]fP&^qn)*Qs#D$H%DB/K,#8\RMi#VH'=]L&"37"-$Y]CRCeTLV41Ve'NqW0QgL;' -cOIFUS(Z1(3Ph83hfp$^Sl`%bRHk2_eXTe6,.ZO%=lGg[kF`WLT%X!'q=1,(%aTFr -Tc+4'RKK88DkVJ%!SS!Tg+/G6D5(2O0012MQVF595A]/)#EN3h#:o -KrNdk2-Q'@QA)>"Y5NZTW1(2Ng7bR9Z'1WWXB&]0)Tq5hRB-25KDN9]>1Ja=a0$0s -XP2DV3jl,Zk;Sj_Y8Z48RcCU%pTJo3,!+,U>71]4Bs?=e1"uZ4Q-lft+#Wo^Z5XG_ ->7n/f/pQ+iZW4'4)^tYH$+%62@(3tYgD)oa2mjB5Zs-1o]-Xi=?^U]_[Mr:.gJbQ2 -5IR%o+<*VU>?S3-A[gE@.sl3EPoI1oK+6R\\JpRKq^o<^T;=W-\l@4jS"[1c?+GYH40cGFcV*#D]c5'T)oKA=Bt\lR;#AML>M19+\\;;8Tf_/H -PXW>Ks$g5W^K_#B4%[4-$)BZ[_,LBLr#3EKQ,25e`#J6\]Hau"(W-p@_V?ZS\OXMA -2ncjI_jir]Ho&^a`j]_][``a2S6*\QEQ.i[`Z/X2>\h>ADoRZo`B8@bM8.'cF3#>N -aBW`+I"TM1O3$+?aLmhBgj@/uSsqj1a]stN>cZ#;YKD7!b1sDJ*4O+=TVf@tbXH$c -$8'HV]?M>+c!8T>I+-?1hp's:c)QiK]^*kcYKgD3c@#<2SFb(^pWrd7clEA6>jp%q -%[]B_d9Qk%SI*]W(X_%`dN'^_l93N$`3(3`b^DBJ*A3jF.FMKPe3-=O*D=mf:"5_0 -eO\ZJh-8FNX485#eU;#Z4_rW>Dq9>Xf#k\VrHm/;T@Y*-fNj-^STWSuLY1FHfa63\ -l*]!2T!"SLg.S-X>Y3Yu42"lhg2A.g*P3u\\(hHV^g4k3o?4r*[G;R?gYLI5?-1pD -);;d]gp!^24m1ZqdG:Ab.,F@J4gDo\q;0Dh_O^kfN^_i3%jl`+iEJ+nIJ`!U?f&L5 -i3]WF*\/C_-0#4rhEE%A/&1"k46.0.ind0H^-gn!DrJE+jNOmg4uq`Y$fmmh*$/2C -mG[)S`tS%n)lIj)OIkHjjDrb:S9A*8<#ks`YV*h*q:Qg"D>p0C""mlr,e%rl=?Slg(.k&H:#Bh?E70^[7;?ks!ki)+Eq!mg^E! -mmVNc^?P*(U$dBqn5I0l*t&I*s7$lhhuT!^EN0ds6m]Io2H%d -ru:OqAb)H\#!Y?ESun+S4nTm;lMjNKHis"J?NWMqp.TQ"s',3NoC[T3p2'Qu++""& -GPD:qo07m$jUpjoMtmrXpYV;8T8EBp(%)$nq'XYds/"WqRJRN"qVQDD5DT-.V`nI/ -r#`BZ^U*jaHi0Mb>i-@qJ%r"5`Vj/tJ\TP1O%oUo8nF0rFK/b$R*4Vj -=esne3L`dA'=mc/JNTW!?h@MZ*g'$j;X'G"FZuKrWDr/J>.%\A=fk`jQ.kn[_-sTN -m$:j5T$_8[>4%X1FhZgS\QnQh>IE>XH+dPQQeV34m6dPmn5rpB*s[Y?@^-c_FuLS' -a^ame*2['pREF[`)9gZU6(cP;[$i!fO%lV'C@qAT2?RBmfkfsmX`h$f\_M)rqq]j# -H,&GdBTAT8?!'i4P#6I/p1_0^T0N+qH6*GYUq8+h=-O7MmPV!5/ -nC06(6P/lK&&YLp(D9-:bXE460iUFS758U[(Ig-4B,ARmP\h=.n^8]s8$VXJ*QJd, -K-Ef@1l!Z^V6K47pu22>\o[R;oXfsUL*=SZ?R1p=674g",i2E*P=:a)YFo2:$AM -.V6/,h3QmOG[:'/h0NBdX>P--.jaY5?J"l5J)@a?#D$9m%.AUQ.h3#?@/+U]L13,c --&?#P-5DJL37^$KA%;4sOCU3A.?\/mY"t5B))bEZASiJWQmgX*ItY,[dBQMf=Gi]Y33E0H[b_'DnG`C^i2CP#-%&Q`t,fP4?""nEH\et -EUhh&-cU2>QS$@#oN*2VF'R$Ub]GuA7F6-p#b&:P?[aB&V?A1r,1 -Te""4Bac/d/r("o8OFc0%\^6oLG8iP6l,"t+uDfH&LJel\).bVF@(is>XE0bY-E -;i;5W/B(/j(Du!QTH\ -*FnG\O:_sc+B\XeA+YP<1*T'sW1^ -5C#5<,nuu:&tW)q3+FCKFK^uC``Yqi\LQ]7XHq;s>W4ZVFf!TsQkKC,9=@VL:=R4L -Es?/K\Wn9a1s_U(7VPRVPqlsYbaS,]Cn@&n?`)W2S.fXVc2!8V9DmkA'9731.G1pR -2"."L`d(?=#s)^8l^lSfHld"c?t\9hTG-U@ch8eP@8-lu'Fogn.N%sE2%QDq7Ysu" -`C":A#n3*f,G -X>Pd<(++9.9*JY'FcE9l.&^7k.:__HOAC$jWEFR.AZYQlQ^2C6>!#;i@o]),(8fSb -\p%kG7BEmtIb7j\heS*T['hmTgfq+CD67gWO_UXu41M2[88H]8q"c6bBj0 -3pBo(WH6Oj_RgUrm9R1!FRHQo]@Vai>O07Q0!46If4OY]HeE\JEt#[I`q`t'kf7UI -n%H3egg$oOIrE=+^Ir23?gIlF0I@$,f@L16]GZ?*[Ks[Y7gNNZ'7V\o(W'9a$9>_n -L@FmT`#*&%@-gIAEAf1;pko[BX@%ld()FlV`tr4>h15$m1<0+7o\tgTO)akXO*Kt6 -A"8C9%K8'&GoJ$i]S^/Q[S"ZP7jpp@JX(8a=3CdM.HJ^^Pc@JLbLqY'juM%Wo&aT/ -=ed_ZCpTUPG&PY0T/GdoeX^>b@*Y1<4_L,oRBtanc^Fq=B,q;PF>en'g'9k+]bLP= -`e)U,6UojYrM9(GQdX0?6ts=pVfL(NdTVE"BhO#U2'/[Fc7_fT/Q8]-F[FR2a'!1? -)ln*NYL^t!8*bSKY'%]8],LQQlhuT(25\FI)^ePM9nfos@qXD?4(@S/W,FP"e(OV. -D,;gL[s%K&YhN5rm@D2-[Z9G))io,8SZfSJ:@?qX=)`(@l+LfnnD>2"I:/V4]Qa)F -hsW@En%Jh=GU#l7Ep+e2j)nAQLhh$c8eZ_k?RbT-luaB3]BFimgkq1 -^7!GZ:I47d-`L+:qp]p^=6d`)U@jPEep?cjl.q-"FuTHQ]'!_m`+,G5Nka=1Fn"$H -\$Yl^kaX^^GOHR6l1[C!h0\=#n"'d!Ek]$@]C1O/?0fIS^DPo,2imHV$c%$0+lYVZ -0CD#.c$TA+gtIh/8i^ -merK_p_9&)qu;NAZX:3;+"-/I?\@m_DpKgQpZR"nMr];1eb^Fdo)-85pO;\/qd3.h -I@OZpIimYISfd:tO4j?sYM]=$a8'2:h>2V>lMTPoqYtp2qZ#=M^XN7?j8$J9!l-N' -^Z5A[9)lVi!C0Th^i5;uoE`6;$E-W#^r-Ysd/Lhf$:'4+5\pqH'G%,>$,ISl5sh6[ -g_IY9(6+7d_1WFP$kU7>(r8il5r9Lre/Q+I(I@[8_>q,4Zm!9>42I^666mg5)pH/m --Gh9@64>9ZPUWXQ-c/h5['V'pF=]baE^@o%6Nf!;r$k&Z1;bll_X'+s$iiWD2+&': -5C=eFKJgZB%)Y1h_o+Z)Hof06O2Gct6j,Zi1c[r45/]7X_otNe<%,[!6c<`5^W]3d -PXckW0>sAI`53tA>YW/t%E,nT`1daZr(of*:o"dl73kjO1#PIdt(i$`[#(AA6hZ(B#[F27LWtMPKu^G@`G`V -7QbG*FDIQIAk(9g`o1CHS8lRoZ:>%7a$agbb](TrFt#gt7s'!rC>?i\HH3@]a#nai -Ob#q@IE1u*V*&un"FnJ>i5`K_a?tYP/;;.h_T,o4aFo9k"B7p.LrcW?85+u`dq)(7 -Nl\kQ8:6Ih[#r?aiQ2dtaSA0Dgm,uk:J!s;8P;cL%%,/4Qq##X8Z\9#e$)D[T#pR_ -8_fe-$].HFTh3J'W)S=?*2H22W_*,db(CeYCoPQc(!#[99#R_Fe>5d=XNKf!8rU!t -',&I;ZHE$tat0kkoX13:MG%KdbBd,\*4a7eq9)aLbCJg!]Y$mr^,o<'9D#m@'WoQ[ -_TXjDbT+FAl!-m:`6<>BSntQ'KZ-UF_p#L2XW5JWI*E(a`lsstblQ28Pg2uKUeJ_U -bsK0>/C2RL:!E7[c%M>+*72rheu.TYc,AD;K\F]3g+OB!:$gV0&Mm.OiQ_#T)=60S -<9:*[?:proi2c`Hq6I.pFtrhbAHcihfk7/]oh!iIT>:aH7k#iR(_G>Wc1dK1Xj]cPSW$rO,N;FM6r9dJ.=-D/O*dY0*C'd;#$ -?;W:%;QSGI>qFFadSc>`dfKHrm3YaW^X:Red`"&b<;]Zp0uDa#dtKcQ[5V$$3jWBB -e"nlr74lur4M7dVOXF[&gl-W7W@<$[r3j[<'"7L\*=.uO ->te4=ZW*2ceH*A5j\`p,4B0R#eNE-D78d,S4k1!CeUaVuAQcbg9@Za@eSD9cAR*d( -e^]XdecCl_V-Zq<>?3%Y\Ksu#m:Fj1o%"7_eq&M*7:nej@of.4`!'^Q`G;r:B\)ip -QSiY]V!unlD:]eL#q^!q'm)Q4E*%01![W*CQ$LuXHIoQOf>W-heU?'2Ib47BfEHa, -BF4iYJ_2Q+=>bca7>9AWL=fL]=Cm9?Q&+(hLfh'AfY*0p`JrO#NnDU;f]A2sooRiQ -OkDUS=[eM,9p=71QJ#i9fj0uuFdZBdRG#!:fu9C_eXP7JSD!"rg%D#km@i5;U08;+ -g-qdj,A:QSUfGUY1iQPgBFh9'sZL>ZJ.7CgC:8g -c*c9E[bFfk>@k:uQ+5SF\6HAOgV(2Q`P($V^>$oIgZ?4Tot]?/_;$oa>XcNb9uGad -`n?'Q>_U8SQ-%gXb1sDJgJ,[me]$>*a'A#Vh"B%M"ju-(dbPYe>p[tUOIXh?Dio(#e!qincQQhF6M^6\p>:#ehhCj_Q20=6 -qVS^Xho5NNec"CernmDKfC/cJ(#Ijn6=:!"i'mk-t3OtW)]pi0@S%6G+q8Jl7 +adi1ISN4rc=j`dch4;+8SXJT1q<+>0TG2p>'4HP%5hI%VfE[6"MR]pKq?U+&jpp<3 +)SjQ'Tl(3fqjs6"T%YK^\ga@7/#%>AUH1-)H7u&)25AkcU\[ET3_?+c9r*)0QT9,G +\l^.;07fD5R/LV`JsuH?lF"IAcpmW&fX2HAST3NMu]9WB-[B$mTX89f9g/4I[oq.ZNTGXYcg=\J)&YWAG +U"[Vi3p3Sjl)smMY<)!QHL\2-orkt.YPSL')(Yb,%AgZJ+^589])AnG"0pSaZ5Y*p +q^Jg4/$aLRZTBnJHS;_;27)$tZhm1u4%Zdu9sf7CWk0(THWdbg?+'Q<[QA'/HYKq# +D79=]W*;p&)gSo>IC2.f\%@:%qh;Pj`N7beT=Oup3np=:n"BLjTm@ZOqhMbpNOml$ +]0!:0H`t&n[A>s+OIHorE=[km_n>lk]fZfV5/&gbF`On"H>\V(j`Prm:h7ROCG_iO4ElkZ3 +YN'X+]DoFL)?TQ-8q>%lE\aG\GKK1.a#p/]S>!unXie;]>TBZbD2l_$YB!0j3QdHi +[QOm]H,sK3"-@^Ca^gqKcsesr34,MB9?dN_Jt*gocRQQMSG88;oum:7ci""g>l2mM +1XLOP>N&+iEdkI;emS9%*"SK]/<0i;,+X-9LJ7Xdn2(?H&d\t&0];6J/>XC.'@cq+ +d+qZ[4V?5WD:SS^_];h0Csgeh@rp*Y8qloh0IFH]PW/L6di]^&A9dLrRN5&0"g8mTpVJ6K/< +93!+W]am+!4i?#S2;?sVMEU:_IC%h%m%/Xsi%/*ih?\@`Yb[8!rt=hHJAS=X*"7A1 +rh.FX1WJZ0eHJSic#6qrAeg:=D2gMQj:'CsCCXjsHm2 +Mq$6foTYo?jZZN_^.mdh.Hc.KkT4m10?`P8N5"/&krssfI[J'&O6Pi6l!BkDI\l>) +g$0W_\UL[GI_"cn]XV:SlmJLmrk%Hec0W0TlsA2OI`^ukcgBT)!V$*gnLsq3T,=]f%Imd;nbm=p^F4'9-1X8TnfK^X +T.BN5c1:lno05O`^HM4dM=c9dofkh:DC>)6>c0e`oq,7X45ol4ChKASp4%5Y?[0@. +DtiO.pHO$!It`.IJb\AApqM[]Iu!j(WVIX/e%_=H?_.%CXX#!`q^'kjT=Ogu](!JB +r%d=0hoY`0c26^mr*RrYT@*SOg\h'@rI[BQrdXQETC)V"r#c>UC75;/ +J\bb+GZ5S!$&6=Ud27O3*u0W$U60]MAiU]h7cX$l"HGnsONHRHM);)4/!il*'%r5X +AMooNk&FK#mWgsf:ZrK2'b6'hUJ^7iRT1u.9rCqT'cN?4WE$!!lP5l=DRj&V=6p\A +'opCIZWZZ2RoQWED7Xg@]NPslI +R1+7/.?hqcZPd#n?T"D"BCgEhp5;53dqNqC9iP$^Xk.@^)]b6jBsl]4pD][Sms2V( +Dtk:n(Ct5\eEQb`SjtGpc/j#WSGnjFWR0sQqYaa@DmeEfp\UNlpP6l@id(JDT3&5L +mItu,+!6iql1Oq%ru[fHQc8q&5OTQns$0B`#6R5q6jX#^n6?V261At@#/Y>3:AmNK +`%qiiE9'(k6h(:H&O^Ua9!6$-XA]g%E26VO7BqMQ)+DrK@iE@,Zu[3WEP,-^8+He8 ++\6W!M^(d`7$AogEan>Ua&7;1-q\NEX!l-]Up2FC1?>nt92bu)j%6R&b;2i`7+4"f +F(F#a:"'Nc0hueSlT!2]V"$NB1Z\9p:K.Jo+&2AR$U[b_72&*eFCcC]9iMQ$5uMfi +.nJ+\V(kVA2!$Yl;cNo;8(;Z-92eg_78m2dF_"9Ce27,2=]RDV@9ZcT]k^kSFk(f[ +BNfS-X(bbgV66=kPA<=EEmZUZ#a,M +c-pai=%1_b?+5O@Grlfgl[)t4`UeLbGNJ\*h=mK#J7*U;$\711-4tl=1QD?g@JGR% +M.1_,.\bmh?8I:FGfDb'A%;e.O^lW7/X'`@7T5R`H"L7>jEV5,R-&[KCRJefVJi#6 +\TW=lBDMgbTkJ<"F/*@d7X(ZlqGs)_C&2$=U2#"OX/g"3`j8(u)KqmYlh]b]YA@DI +a*?oS7anb^HY2#Zm$iaSZL3("l+(]D`pW;4gZJCJDu9hB_(49cmDEnU7eO[h>Yc0V ++l".aa`;d,/'C(\D_oCSI"+0$F1hfCCi]J%9@J"]7oNsj>k_ILp"a7fflfNSFk([6 +a)g'\I914;p)XHgiHO-+KAs2mkEG"QIV5/54aoVjj*H.rWTe`Ca(+<0Icn?3HhRKC +nTs(?Zh"$D2q+;p+(s@&IK,)^Sc'Y.chi,t^[(fIFP#XS5PP6Z?kO?,:_ioDGPM:_ +1^S_j%KXB?+Tu2;'4fHB$UCXF"(9=hK2?\t_+6it@2'r>KmjLuGW,t;oI>P+Xqs)( +9+56n1PV"A1W%da$R+"QLN)As4"+qW@MD1cO1HE$G^C'3r()Za.?;>KTbLt#;i6=p +-:N0M(1M)aM\0r3`E9qn@h`Efd<7<7W6Z9T<,%>O8hrm2i>c?lF"!0Z29(IB*TPXm +O,-t#8,30.A.le@Z0j`q=V2h<cHVj:63+A1m*!-SMXDAb*nMpCJAiO1a[%nRo=KE:#l+/-PYU2PEduM$.1]p<8=$c +V%h3hiB1b;\t.=$G0bHe5%h.OSoaUT:\k'=VqhHI'G>gj=qFGB%1Ako2C[!f+[Tk% +#GRAnLJ`@P7VL1gU3(R8;>Me6-NtHbPa7LsqE7A`<@Oc/MGhlK@8(C#1FR@RQ."r9 +:2.(hVNgeH;thM3l,>ue<=Yct3e:1DcEuhX&X=K<,0r[X-HG_ +]R$hbCDC?B'lL3UHHfW.qZa-e[^T<1_-3m.CT_g2\Md(=?>J)Z4*Q5LT2Wkm' +PB:\2e%&K\kM:KiG#n"Y]!kT*?2>4XY8-*1KjO7SgX1<8<9q3+[eF,$%sm\=hS,?% +q],LlIW*d4^/t%)hs9_HYMKAsQk^b%$k\!Y1W8Q?(ABb.2^GAc/XhZJK*8P92Gi +*7:2G;DHD+[l7i6f:$abER'?/2s5SY=`^0]c<9m&j,ET&F;>D5qA2>/D#G<[*fJF. +=%$a#&#=;>Q-m0E93nYCV"Ds%dTDQ'l2AF+VWUIj6f:)EBl[SQ\s%M?Qh#6Ni='8BI]'uY?[ro*c:Mf@N,B)%u;j,qB>nX_DSkVjOC +S<[u4/jmd,#:h-+S!S0jK??2e.csZFQud^qWVN_SkFBkjC$p&hH5$GDI/ff1=tS+t +=%c9$,GXo1NPTpR;sKEbVfa&aelqfJl^`/CFfr"!3s8jTh3YH/I`L*Q=(0FgT=9"9 +3SJgmEpepZ\9EDl/,N[rmX=O8GFnoo:Nq3USbp.mHqmSs:[L01"`K9mH_$:&tH5e6)DPRTmR%OdhU5l8%+S.S$@X2+oP5s*6* +*"Ke1()rbX6$oTI<#Iu;O26Jg6+FQnS/&lq*?b8"62R!7ll&21*Z@]p69HM$9Hc_R +-:1q&_Fu@;N$gq;.DfbY_Mg$4aK7e1/jc?X6I[\JX=hAs1.*"R6OYe=8>JU001.9K +^RR/KMeBq<2aaYm_j!8NaIYbp5!s\[_pgq/S3Fit5=?YZ6juIN$phg:6FJ.-`-Y-F +A4&bL7mr#'63KnKCe[hlHMK$ON +>!RI:`Oo>4<*I8q3(;%u7>,&&]O"&HqSgB\`V[A=,\8]h@n(9F29]XOMsa&VA&bR[ +7[.^Ce7qJ.B=+1F`r#L"lu#;"EC.(K?+1N2`-60MVuQlMF^'raHVWF/;hMr +MaT+TaSOE-glY.m]#b)=3b4AojHVSBPK@R\a\8'n,G`G'RQ5b_a]t6!gmZ@=]ZIgY +8]lo^jInQoT?5$H1Q8$M9!HGhVFgrr8lV`Jr2.V!V`gQKb.=CkS?5D`7S:V&2dEK- +Up2Z@YKJD_b7(aMiW[L^[PifGb8doNKXT'mN6?U\98g_]UqK/1]M#oI3V:#/$@keA +_Fs/&bS7uPr5-YT`LbStb^+;)K!64V^gg(/[L:;-b!c +D&?-@),[LQdCgGq`>_\!*`:`8;:Qddm3'gT+]9m9;EZ2O9d6h3-GcPM)Lr=fn2sV4Cc&S_;8Z=oFsr%A)8oTNWY8 +;oP-X9r2$!VHRi7>(*>QNN$*PW`lO*>.q"@c)jr6U>#"0gARdN%BitNYZi-S>:m3d +-+-r?[G+Ea;`1],rKkaA\CC2\gNC/5D7s/e^"^fG>Q)@9uU@C +`a!B$>^a[uNQGFrb$;'l>eO1n4j@4hci!`]mEf,Zd9S?Nh*'1fFj*mo\_UsC +:hA9U=[(Yag+5\Fcu%Pu[G'Hip>*F>?'-Vmjl%_DhqcQ8,c0JV8aY@dk$C/FhGrbh +[H?='l:IQ1hRVFuSaBa(i*OCk.K/YjXmSf0n)#SC?OcX7)`qCap*hlkh\Go2:%mJ4 +b$TSo?Vo6ZV>Vg]qqmD2+Q`R[$J+,6!akR'?krl#NWS,+"r?%ui-TZU?3t!rZ=&Cp +-RK&UV?rj.$fL9Li6DmAfTT_:&gjIei78Saee6qETA_sM@1\u<]BGGja%m-?;aQg=CnP6AX6S4CE$in?4pRIjim+'mU7/3 +?ffjK:^1@j9*=;\AnF+.k#Q.9:1E@UJS'pX&Jf+nG&9U$CZam'B$P?aQ>^CR%He4< +k%Q7,-?U:4F(])(c78(mRd#*\l.2LC?CkmQT-Le;l8`m!m\N$(UhXSN +C0mY"+N3PgW]<8BC;-XC2QH&pZ"f#s4'o(*$:8LIYNj2nlP?iohQgp'ZRL@1l[D7f +B!TE7\8/%BCS&(Pbie<#^1=[cCWVYVp`9ilC +kRQ<`b0]OienscoD:Z=9[bkgHi,1/`Dj!`jR,KBmU#*=Not:$l=0bVlUL%) +Y*X%?mQa8+m`ZD`m]c-an)MFXD`IT3-LGJAoP1Q%DgNf!DY[rEp$[WPDkeD$`=n_IOoKQL2kN]4g,oI +#e+gR*FLfLBJ1QM8s"'X-:1cGnl5DTDLV/3.OW7cEkC,tIk>[nA9,\4Ej%)kLG*]d +=*"m.AA9m?s"3gFAFiSU-I4R@O#*$h2s0imF-LJ3Y<<5J47f!*F5C\Rmm/8/5]eEN +oH-;=cU2:d7!*04oNt-+^H?V17).nUjl]-UXOm*Z:'pqoo_KkUmTXf=9gLF0FVdqu +8elJ4=ER\CjTeh.k>uep"Ef`(oqtm;QWnQm>]o=+p"iO5FE;YK +pG=f&DF&JrH9OQ=F!l;.KJIbc4nm9P(tX4X++O%65PP^LGTVT#[tA^fK_QmSG[<<' +Di#6rLj3QOpih[2=,Q#KM>59eGi'immu_[hOCJNXq"+9+0-PU*QI%L.]YK[>[ +b^?=Hr7cLEmdto4d!ZZ4r?oq"?dip0e9nWHrE]L&DpnT=li!1"[6NAPhqNR#LjdS4 +IG`$Bp%j+BgZ4m!b^lrn[$l +n%er-g4'q*jkoW8^[lpK#CfLus'N57Fm/j\o$]Dr50j*4c +5:)?4A9,4C[AJMEc=_4OrhOM)2@,&H5V:l +fTmt+GhnB_oHFXQb&N\#jG7rb8BK>9:nl +m+X\^YAIJ2fs#>*?JW-Z)k$(>oeXEF+$81eF_Qu;:Y?hY=[C??(YiboUUJ7 +h"MiH>Mf*[pNZW0hB.U6pte5sms%$'J`c_+J!oMGhMSMtqVJulm/'i(WTj<:Qbi+f +56&U:qgUiXo_i-(fR\Fb-fOUp?[q86rg.!Hr;U-]q>S4Vh>9GRlN#iG"Fs;`2o"Pk +!oRSuJ]ruS5^4RUTVN0OYYGQH808&oj;im"I$;C60aQ^M-%o*`&jgX##U*_1L![ON +-4!TY@AG<+d*OY0AW/@73lUmE)WP@FNQajI7Yo;/A#+1+dE,,&q"5]g +jF(*li]>-dmiZ-dK94.55=h1W,3381OA\8/aU&J'A>GD>dPacjR5H>=e<6$D<_phO +6R^qnSq]5lD7L\eR#=WR^H2]j^"q; +I]uik`E;FPAZXFRZrWXG>3fa:XjoJ);qg>//#@6g[EcBcRdj_M]m[(aqS$&."^l-m +J?[T7_q80*@dI*SYr4ec=UQ6\Co%iJp0O[l4#LX:iA._TI\p7P-"uZ\V6Y99dTVQ' +C2IO_[FVA1>2*P&m?P)fQJU]Ynpeih'@ruL/? +I;NthpqRah,\31@1U:Q7ag3oRAJM$\14E6G=^*:cS?W9nG$E,bIk>7@]pMc:9$Gt\ +1hGI]Re%k9c.TE^S.)Be1T#$7\]6gFF+5/#c?@OepHWAmr_W2]L!\Np+D;c#U@_KG +cr#QYkfk3FoTkcig/tiIbpfL]k*siR@S:Bo7B#l))q2BN;sKo\sF2\h4)0%miBfgQ'U7_gY[Bh!P`k,"5qr0C1aUZ_0AHYiS6$DDk88npnMBY]L.VISfaJI(E2iV[>H?iB<3Gon<*r-+%h +hD`WgT*=@>kEYYQAYJmk5Nr%>V=YXlanhW0lI-9@oU_],HP?A?rKj_]hUgOsT&K)8 +LV"@G0OcoD0s9%_K> +"RoIqcs$%f2$K(="u'ZXcpn;eD[->T##JS0OET#J<OAN%g0\[$J +hUR^I%8bjjE8^!Mb7>0U%mg4*YknolrpJ+U%abLld0TpE\I]>\&Q'0oOS9@7*sn&G +&CDj<7tV85.1q[s'1kP$;)8ii4VS?P&eRVJO;S`%2\[uAE=ji=;,\4W:ju8'((jad +EF/669,A1\qf-dNL)0)D(.+K5u +V]-5DFYSpr0s;Nn]L^GB*)X`Dn\H0LcPu+A)UZqPdF0,U[On^\oK-%;r+AqtndGl?i"!Ea<9sO:5OrE3j%jDW"+smg3;C<[:,pNr]NNt2\ +;E5iI*@)7afCD'L1.`^oaW5Ct,uRG`KA;gFCXr/Q0arP.Nc6= +:Gie!1\46sEtL3l=Yu=H)cK0`;dhT0K/GH+2b9Q!o4'`+G;WF;KYK/Ng!EW2cMLl;`.?NPuCI8X];c+<^p@o[;/g^kuMq4=%QOk +olF3b@Z<6R=*9'rD@KY>O')t3=I"A=F*HeYQKk +X',,1>4ooM<+T<7cWdRT>BSP'KhG]/a^+#Q>W(PJQ/H0FKjM17?I?5f[JO=M3F=ZH +?Y(BS@?r9LAD(A!)e-60JsI-]<[hO]hdSK2A5?E> +2EbTl[8hB7AQDSD(%GhC?Y*ndA9MTtKSO-)De9+S@eOeR2L9p4?"_`0BMi8O[Ynh; +F(^f&BPb4Lp6TLEK4B(UBi^pBAGKp4YA47kC:9aME\r^J]5/7m0K(q-2Q:Lf,AT3d +D+#7X[bGW^=(O;GCt@`I()\T([qE40t0[j?$'iGfYcF&],YpH*H6?#t3CFVYC$#mEn?Y*f@=PYa*niaKK$5c +[GuZOl[G+UI@'PRfD>S-ja\0L,Id2mfD.1FRt/!^J=$jrp^Mf,'J$ZsJlj?D\/0_h +F+LhEK2u-)GW16L59cIDKNL\e==o0X:N0DJK\0?ppcF1s;,t+tL0/%1G[H3TKnD@' +L)"ibfKk9jc%_UGLLq$E1,T9+=5Ojjo()(Td]-'Jt:Oh!92EMJ[W+-X5Y +P1`?D\N,o&T8<;/Pk?Vlq*UFsT9PaRD0]3KR.6G%?^4`_Q+:[s',Qs;IqopIQr27p +H#o=_)327eQulc()4PJMjjJ-TCZK`)@KbppRkLo +T=P]0&,2_X)k_GdT\:bqqB;Ps7A5#ZUJ6$-qBMa2!MZ#M<4Y#`nilQaN_PMl7.&VqRJ3\s'*, +5G\..WR+kJqPC1`_5Wm08U@;8O&)c:];j3gWk-$JQ)CZdcURcSX>,L2qQI"rF0']D +Y#E`M)XBf&hl^r,Xh*,f1UjMJq61c3Y1j1H>4JgP_lnCrYu'mogD@*d&[7`L48U&( +OGg!J+0r.[YPU,^OMeA.5<6>;ZP#(!3r?:*6*ko4ZrG#O)d>6_=1)1fZMS(;n#NiX +CUQ#D[G,m_)ele+S[?"K\5K`>]5tIO27K'=17O?8NFfU]S%*es\@\NIPI%f(Y:^cf +]39KgH]>Yf6alm$]!YnW)p9[7`Out6C\tl[0]0N)ftJ)!]\DTu)r&*N_7BI'^?qo5 +qo?Iulb8kk,[:#YPo%'Es1_Z?SpV3f)R7(_+!I-^_7EX^r$B5+&]&iB_4(VF*'5-f +0>ga8_RqhGPWQXm6,a"+_q\<2r):NpQ,J&W`3Kolr+F%(OiCKZatOVa`*Tg*30TTV99f@W-kMaZm3Y>Zce26b1t!f +Cl65KJB3,eboGhRA,gWgercZlM*S>t`X0:Xkq4 +eD4'RSQF@t<4Y4]em2n#4^ZaQ@FkBuf%kQ%*I67BHe9>\et%TKMO2rnO4W3OfKGMQ +*LGI8S(\mM[2k.,MtR,k6/)Mug5=M94eLG6^"aX?gg.\MIDaj2cC\COh-JU$rQF$Q +dG=cGhHf0uS`/G]k.Meghd,rF4mUuGs52Z8hYm]:*XCW[$EfrpXIZ]VLkEm`_^HLo +iV^Mpgb[r]-bQ#ij%pKMrZLsl-0*iL1OPtX*^r3j2rtS;j1\Q>hEg7p9T%W?jM"u, +?;p"6GNO?qR@IdLSomsQ8`h(?k[&2kO,N4.Nu_HVkWXEuhC[u`Qa.Zjl;(@C*hc.H +H0P=/$GN(rhQrO)VsFp=lX%9gI^/4QcO)jIm2jA8^;K?`oB^qX52OQP53l<7JaVCV +kPjB-NkOmFra`.L[J=1Q/\f(!N=YsEhF0ZNrZBY4J'n7fk17<%s%Li?+4C[.!<7U8i/h%t +*YA^46K+$YF?Ui[M+$?c=L;Bh)20MrWbCI>4!0SUA&BR`FfsV=\5;3e>IE>XH+dPQQeUWIjajr"n/+h7(D2GA@Bl2iDD*#m +aCOi:>aASCQd',`R>giX5Fp/7kr7ufT2DT7kB)$@5.=1iea2u+?/Fao\)He#]G^--T@)oTq0ei1 +GE:_Mq"t%t?`2fEq>5WU+2@FE!'cPXR.W_K1_.46n/MN66*OlA"i;s8,mZhVZmuPO +OOPom_^dh]&4A5e7hS4p1f"fS0iV3i7BprA(e-6EAr"9dZooBrZ.*\4a"cY)+%S-Q +LEK-N'T3LAP#Ra\8J4.X,>'_5V'nrV[&Y`MP16Zeb:oHS0MF!u\M?h,1qPS7T'qC,59HK +Zr]gt1o2Qp;cN-C:K01T7o.X>jY'S%<>A5+INY.D;7&B`E?C=1N.;> +2]^Lh?'eRGG[:'/gur#;[I8KM2q@YO?ao_.J5o[Ij+6'3-4b`;3%c##@>WP;La)Up +)iA*L[N1<9\BZae8iVhpMdr.j2j.[]*_hgYq,UCmA/TPtQtA@EB:-Q3ZaE[kuq\k%-Y7!Tr.+dVQZn53juGt3I7"+Y\ZB:a0KNn +2U=JN]2lJNCO:6V\*^e^+1,CeT&mV&44`l6mlTYl]&4P,rPEKc2[@7i]L>!!n[s&f +aDsD0-d$9G?PUe)4P)72o/u,1b1bYN4jnDb2b2?h]gG*4h#1S[fQB?D?eP-9U?U8' +4kFo7GJ3a#i'`".D;o`Q2i$Gg]]XoRq&XaFk]o@YTBYB"AUiul5**,:qnD7.#^ZLe +a7=Vm2p_,?T*N'srP*"&p&6_%dmBVF:Ws1$3NRR&HUgs'S>gRR)'L."sEOVKFh`-62.2\'AOje&;Cn93)p>je0]n] +`Yh-'BanLUWJ,3luk__[IGmbhWFH)88,ne;p)'rghQ]_pR8P-HQ-Y2kAPR&=( +8SKt/jYWf[15,;BGtBMtA?V7.RT1J5@4S15[?hN^T?B6?04jdjQkKWAbGf>5A^&/] +OHO#l.??8s9[B+?7A`bbM)2#nd$iEqCadE)2eM^>S.gVpc)Im,B-cZ0BqfSdWR3`( +9^SDb]`??aGs#_]pR]jrGsCQX5A0WgTG.R9:T_Nc%^@nWf'0W*@\ +V,KF#:MKJdW!Juae2h_L.E"fV-mk\<\rT^gFXa:9rh`ZkRoJ[\egdoUCAAaKQ):h;]#u@73?##"[^fHXkq;:MGHVbD]iE5@>jGsLYRD#TOXgN@ +X>P^:$RW]P9+tb"rK"553lTc6.:m>&h6FD#aB>PfQRoZTZ^-?jg,h@DXSE=4 +Roql@4g2:0`nAEOO[C6BufoSjJD6]+Kp"-md`pqpOk]Uil +otGXmr)h_&IrG#[^^L/?hlI-5E&,_Q(`rh;4;EKX"l@(?7gEHR)/$/`(W.)&%4eM1 +KeW36`!K3BiS6eUnKeXYpmW"->ZlpNFrSF<`u/ADQ]&+d/&p&m&`\gqNUc^&1Us>) +j4o3InhH0ER3s:k]U4:+/l0QV7`/`KO-Hr)oBBq +%XlbD7nIDVH)%`9NRIQZ6>:9kVf^to5F/Ze$,I?!^6*YBBQR]fP=[Cd!J/o5;1m]-Cm"/@Vp.-Hk)d)dmMGWO6T'dFoOP +B?K%?[Pm"!g]e-jmB+:8pEksTgS]13]&1&BG3@Z(95a2-hn409(:h'7H>gL`qmU2; +i#DrmDlroQGTq4cHlINRIMUda*t%!I1PiPI"iY_q(SA?5NH!`$Njqk(j1L"BE;i;H +3A2O^]OR4I^0**L5;2*Q`dV.+@ELU>23Aj@R<+C4cWEC`kT'o%8'ZD)q=d<3]RQ^K +^5^TJV^1Mt,H18qe^40%=6gFLWH@R-f(.A/leQciFi<=i4""J'rJrZ*T%VkFF6W'4 +a0g%bQ.gSoEpiQ_d3$GY'b5bnTLbDnh]%7%90[<$fCh +e\W:N6@uqf>U[HW-`A:7_R(f0ddb1j0#I66X+W(AbUPCG.Dm,]_\7M]gbM5b2DcC- +6\IG:OG(Mf3l=QD__aHmZo9Op/47oO_rBOjS3b(=3()Ig_u\pdbWs*?7^t!66tAj, +6FfK89#S(V`10N>ETOm(9uQZq3L!'&e5/RX2FP2V`C'u#**'rQ\3sS&74_K:,Z.!p +=N.SO78-t*e+:P3?H&sT63LN3r*d%h>"039`Udt9gh"K8ej`>G`Z^PbHt^NqA2'6X +7YGPHdJHCLDT;:b7a,hkX(augD9!W;ZG^QL6ub^Orl4k[a+LH`A9l3uG"/!Fa/")* +XE@%_I`KZ-7uVu>'9#HZHH5Tc7LXmi4GBD4IRmFna>%GN*/Vb3G"@:@8;\3R]Sjkl +N/u2<8G%q`_7)t:P0#Lf8JIE2#qX0QQ,t#2)Q]#lI$[EXE_/B_ahpZkXI;`>fh$"J +aon90<&Mf4U<2We8^+!Q;_q$&TZT:=ao&$YPc'D/R7a!I9#Cd(>cl0/)G7ZGb+Rig +N3LJNXJ1BK9.[;?0ht@-[``_#92rFE9&W<7\]\6g(o4N3]XphS&PIMdbQ@B/m(Q.: +Dp'-6bXB:M[%^5F`Ct:TbRDS:PRL5Z`lt_\bWNqiXNcnZ]hHr%`iR;,'[a"hcqNND +S7HZb1tBdVcV6gZbrN[9,h^G:]M2qhc+'!3bh,Y6h@-439uPpa%,"@Vim'2mcN1aT"RSu1*_sZFcU*?3/F^s^ +^eXOq:PAD%/Fh&&qTk&<:JC]4dW!NsqaqRb:[Iu*'%Ykg6.6`!$?AeIA>Y$rEJsc@idUr=REIR8C:&;+2*f[16&F(8L70d7er7 +N>PMlpeR_)dA-/-FWJlh/Q'b0dK59OI36kU+Kk%Y;C*U72'11W-G%_P;M?==2'LD- +,uU!Id^:X:od>9fReb*(r$/AEI@Fd;E%u"uDUuDr +W-:*H,#d`)hYAfE4iI +4apKZGo:II=@In.7=a#IXB5@PfOHsDV2/6M1tYfdfYKf)NJb='LY-I'^MSh[rJj`L +N7g&[![X)a*[Ufqo;g3ojPKrNdkWnNH5g81lS[B/*DXkNHM>6V1a%BnM$ZJ-\3gE!ZU +276XW[G,i4gP*(?Q+,M=\D*jlgU4]KXhEK.^0B.%g]bIJ'u+!"^t^NXgbm%*7E+%F +`nXS7>\1t1?(B]Hb1sDJgr7Lme]ln2cJ8*=gs*rGNR?O8dbPYe>p[tU.bCh5/n4[G9U"h;.b[?3T3B%H$"WinHoK?:Er37(1C4\@*TVJQ5SYY)VK!DiPl\m +ee_cW*9$<+iV"DR"sMt),2s@_@O<>SmMfVI$@i=.hl\B3hBq6Z.cRleil3P/eh,nD 0&lRXis%3t(,=hr1?18Kj$klc<]/oL2WJs>j+]PRQ9"!&3odY1j2O4Aeii'U53)?$ -j9@m1(.%".6KC$lj@2Pu<^l(]7c\__jG$4dQ:^/79'!ERjMjmSekP5f:?;+EjT\QC -(/a0?;WTf8j[N52<`S6n331sji1Qeem7D"?KLlfjp#5U(1H>P +j9@m1(.%".6KC$lj@2Pu<^C2\7^1H4jG$4dQ:^/79'!ERjMjmSekP5f:?;+EjT\QC +(/a0?;WTf8j[N52<`S6nP @cfRYk!inD,KYC?Ds?k/M6"ensR3DW^Y2k6>ng(3/LaEp#?% k=0RVrB;f6JIftB?-"Q>kLNcIltbrOrTl((bUG#$`H ;-GP?kf"F7<,R^ng-%sj"X0[@Nfm:D9hFS<.A^"HQ;ZFB9Bh-bVGtj0;d+$4l,>Z\ <:6>Vg3lc^"[T(e%\cp+ND\t08Z>]BVGu9?;sK'6W`;fog:^SR "_"K4Nj;\hbus@$BrtC<[T;,<>O-u_Y#WcY='Fuslc".QC! +%:STlM6U)6``Ut9A*eo3Z;s`C=^*Ihm)>C!?br]mDZWF+;=76&pg\lWk"p)MA%g$-D%>""<$,K^s#%64,KCFU-_H9S@@9bC grestore showpage %%PageTrailer diff --git a/packages/python/plotly/plotly/tests/test_orca/images/linux/latexfig.eps b/packages/python/plotly/plotly/tests/test_orca/images/linux/latexfig.eps index 62c87f1027..7ae095f141 100644 --- a/packages/python/plotly/plotly/tests/test_orca/images/linux/latexfig.eps +++ b/packages/python/plotly/plotly/tests/test_orca/images/linux/latexfig.eps @@ -1,10 +1,10 @@ %!PS-Adobe-3.0 EPSF-3.0 -%Produced by poppler pdftops version: 0.81.0 (http://poppler.freedesktop.org) -%%Creator: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) orca/1.3.1 Chrome/76.0.3809.146 Electron/6.1.7 Safari/537.36 +%Produced by poppler pdftops version: 0.71.0 (http://poppler.freedesktop.org) +%%Creator: Chromium %%LanguageLevel: 2 %%DocumentSuppliedResources: (atend) %%BoundingBox: 0 0 529 379 -%%HiResBoundingBox: 0 0 528.95996 378.95999 +%%HiResBoundingBox: 0 0 529 379 %%DocumentSuppliedResources: (atend) %%EndComments %%BeginProlog @@ -446,3878 +446,826 @@ xpdf begin %%EndSetup pdfStartPage %%EndPageSetup -[] 0 d -1 i -0 j -0 J -10 M -1 w -/DeviceGray {} cs -[0] sc -/DeviceGray {} CS -[0] SC -false op -false OP -{} settransfer -0 0 528.95996 378.95999 re -W -q -[0.24 0 0 -0.24 0 378.95999] cm -q -0 0 2204.1665 1578.87097 re -W* -q -[3.126477 0 0 3.126477 0 0] cm -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -0 0 705 505 re -f -Q -Q -q -0 0 2188.5342 1563.23865 re -W* -q -[3.126477 0 0 3.126477 0 0] cm -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -80 100 540 320 re -f -Q -q -[3.126477 0 0 3.126477 346.25735 0] cm -0 100 m -0 420 l -f -/DeviceRGB {} CS -[0.9333 0.9333 0.9333] SC -/DeviceRGB {} cs -[0.9333 0.9333 0.9333] sc -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -0 100 m -0 420 l -S -Q -q -[3.126477 0 0 3.126477 595.59393 0] cm -0 100 m -0 420 l -f -/DeviceRGB {} CS -[0.9333 0.9333 0.9333] SC -/DeviceRGB {} cs -[0.9333 0.9333 0.9333] sc -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -0 100 m -0 420 l -S -Q -q -[3.126477 0 0 3.126477 844.93048 0] cm -0 100 m -0 420 l -f -/DeviceRGB {} CS -[0.9333 0.9333 0.9333] SC -/DeviceRGB {} cs -[0.9333 0.9333 0.9333] sc -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -0 100 m -0 420 l -S -Q -q -[3.126477 0 0 3.126477 1094.26709 0] cm -0 100 m -0 420 l -f -/DeviceRGB {} CS -[0.9333 0.9333 0.9333] SC -/DeviceRGB {} cs -[0.9333 0.9333 0.9333] sc -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -0 100 m -0 420 l -S -Q -q -[3.126477 0 0 3.126477 1343.60364 0] cm -0 100 m -0 420 l -f -/DeviceRGB {} CS -[0.9333 0.9333 0.9333] SC -/DeviceRGB {} cs -[0.9333 0.9333 0.9333] sc -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -0 100 m -0 420 l -S -Q -q -[3.126477 0 0 3.126477 1592.94019 0] cm -0 100 m -0 420 l -f -/DeviceRGB {} CS -[0.9333 0.9333 0.9333] SC -/DeviceRGB {} cs -[0.9333 0.9333 0.9333] sc -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -0 100 m -0 420 l -S -Q -q -[3.126477 0 0 3.126477 1842.2767 0] cm -0 100 m -0 420 l -f -/DeviceRGB {} CS -[0.9333 0.9333 0.9333] SC -/DeviceRGB {} cs -[0.9333 0.9333 0.9333] sc -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -0 100 m -0 420 l -S -Q -q -[3.126477 0 0 3.126477 0 1166.48865] cm -80 0 m -620 0 l -f -/DeviceRGB {} CS -[0.9333 0.9333 0.9333] SC -/DeviceRGB {} cs -[0.9333 0.9333 0.9333] sc -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -80 0 m -620 0 l -S -Q -q -[3.126477 0 0 3.126477 0 1053.34143] cm -80 0 m -620 0 l -f -/DeviceRGB {} CS -[0.9333 0.9333 0.9333] SC -/DeviceRGB {} cs -[0.9333 0.9333 0.9333] sc -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -80 0 m -620 0 l -S -Q -q -[3.126477 0 0 3.126477 0 940.19421] cm -80 0 m -620 0 l -f -/DeviceRGB {} CS -[0.9333 0.9333 0.9333] SC -/DeviceRGB {} cs -[0.9333 0.9333 0.9333] sc -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -80 0 m -620 0 l -S -Q -q -[3.126477 0 0 3.126477 0 827.01575] cm -80 0 m -620 0 l -f -/DeviceRGB {} CS -[0.9333 0.9333 0.9333] SC -/DeviceRGB {} cs -[0.9333 0.9333 0.9333] sc -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -80 0 m -620 0 l -S -Q -q -[3.126477 0 0 3.126477 0 713.86853] cm -80 0 m -620 0 l -f -/DeviceRGB {} CS -[0.9333 0.9333 0.9333] SC -/DeviceRGB {} cs -[0.9333 0.9333 0.9333] sc -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -80 0 m -620 0 l -S -Q -q -[3.126477 0 0 3.126477 0 600.72131] cm -80 0 m -620 0 l -f -/DeviceRGB {} CS -[0.9333 0.9333 0.9333] SC -/DeviceRGB {} cs -[0.9333 0.9333 0.9333] sc -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -80 0 m -620 0 l -S -Q -q -[3.126477 0 0 3.126477 0 487.54288] cm -80 0 m -620 0 l -f -/DeviceRGB {} CS -[0.9333 0.9333 0.9333] SC -/DeviceRGB {} cs -[0.9333 0.9333 0.9333] sc -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -80 0 m -620 0 l -S -Q -q -[3.126477 0 0 3.126477 0 374.39566] cm -80 0 m -620 0 l -f -/DeviceRGB {} CS -[0.9333 0.9333 0.9333] SC -/DeviceRGB {} cs -[0.9333 0.9333 0.9333] sc -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -80 0 m -620 0 l -S -Q -q -[3.126477 0 0 3.126477 0 1279.66711] cm -80 0 m -620 0 l -f -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -80 0 m -620 0 l -S -Q -Q -q -250.11818 312.64774 1688.2977 1000.47278 re -W* -q -[3.126477 0 0 3.126477 250.11818 312.64774] cm -/DeviceRGB {} CS -[0.1216 0.4667 0.7059] SC -/DeviceRGB {} cs -[0.1216 0.4667 0.7059] sc -2 w -0 J -0 j -2 M -2 w -0 J -0 j -2 M -30.75 291.20001 m -190.25 236.91 l -349.75 146.429993 l -509.25 19.75 l -S -Q -q -[3.126477 0 0 3.126477 346.25735 1223.078] cm -/DeviceRGB {} CS -[0.1216 0.4667 0.7059] SC -/DeviceRGB {} cs -[0.1216 0.4667 0.7059] sc -3 0 m -3 0.397825 2.923879 0.780508 2.771638 1.14805 c -2.619397 1.515592 2.402625 1.840016 2.12132 2.12132 c -1.840016 2.402625 1.515592 2.619397 1.14805 2.771638 c -0.780508 2.923879 0.397825 3 0 3 c --0.397825 3 -0.780508 2.923879 -1.14805 2.771638 c --1.515592 2.619397 -1.840016 2.402625 -2.12132 2.12132 c --2.402625 1.840016 -2.619397 1.515592 -2.771638 1.14805 c --2.923879 0.780508 -3 0.397825 -3 0 c --3 -0.397825 -2.923879 -0.780508 -2.771638 -1.14805 c --2.619397 -1.515592 -2.402625 -1.840016 -2.12132 -2.12132 c --1.840016 -2.402625 -1.515592 -2.619397 -1.14805 -2.771638 c --0.780508 -2.923879 -0.397825 -3 0 -3 c -0.397825 -3 0.780508 -2.923879 1.14805 -2.771638 c -1.515592 -2.619397 1.840016 -2.402625 2.12132 -2.12132 c -2.402625 -1.840016 2.619397 -1.515592 2.771638 -1.14805 c -2.923879 -0.780508 3 -0.397825 3 0 c -h -f -Q -q -[3.126477 0 0 3.126477 844.93048 1053.34143] cm -/DeviceRGB {} CS -[0.1216 0.4667 0.7059] SC -/DeviceRGB {} cs -[0.1216 0.4667 0.7059] sc -3 0 m -3 0.397825 2.923879 0.780508 2.771638 1.14805 c -2.619397 1.515592 2.402625 1.840016 2.12132 2.12132 c -1.840016 2.402625 1.515592 2.619397 1.14805 2.771638 c -0.780508 2.923879 0.397825 3 0 3 c --0.397825 3 -0.780508 2.923879 -1.14805 2.771638 c --1.515592 2.619397 -1.840016 2.402625 -2.12132 2.12132 c --2.402625 1.840016 -2.619397 1.515592 -2.771638 1.14805 c --2.923879 0.780508 -3 0.397825 -3 0 c --3 -0.397825 -2.923879 -0.780508 -2.771638 -1.14805 c --2.619397 -1.515592 -2.402625 -1.840016 -2.12132 -2.12132 c --1.840016 -2.402625 -1.515592 -2.619397 -1.14805 -2.771638 c --0.780508 -2.923879 -0.397825 -3 0 -3 c -0.397825 -3 0.780508 -2.923879 1.14805 -2.771638 c -1.515592 -2.619397 1.840016 -2.402625 2.12132 -2.12132 c -2.402625 -1.840016 2.619397 -1.515592 2.771638 -1.14805 c -2.923879 -0.780508 3 -0.397825 3 0 c -h -f -Q -q -[3.126477 0 0 3.126477 1343.60364 770.45776] cm -/DeviceRGB {} CS -[0.1216 0.4667 0.7059] SC -/DeviceRGB {} cs -[0.1216 0.4667 0.7059] sc -3 0 m -3 0.397825 2.923879 0.780508 2.771638 1.14805 c -2.619397 1.515592 2.402625 1.840016 2.12132 2.12132 c -1.840016 2.402625 1.515592 2.619397 1.14805 2.771638 c -0.780508 2.923879 0.397825 3 0 3 c --0.397825 3 -0.780508 2.923879 -1.14805 2.771638 c --1.515592 2.619397 -1.840016 2.402625 -2.12132 2.12132 c --2.402625 1.840016 -2.619397 1.515592 -2.771638 1.14805 c --2.923879 0.780508 -3 0.397825 -3 0 c --3 -0.397825 -2.923879 -0.780508 -2.771638 -1.14805 c --2.619397 -1.515592 -2.402625 -1.840016 -2.12132 -2.12132 c --1.840016 -2.402625 -1.515592 -2.619397 -1.14805 -2.771638 c --0.780508 -2.923879 -0.397825 -3 0 -3 c -0.397825 -3 0.780508 -2.923879 1.14805 -2.771638 c -1.515592 -2.619397 1.840016 -2.402625 2.12132 -2.12132 c -2.402625 -1.840016 2.619397 -1.515592 2.771638 -1.14805 c -2.923879 -0.780508 3 -0.397825 3 0 c -h -f -Q -q -[3.126477 0 0 3.126477 1842.2767 374.39566] cm -/DeviceRGB {} CS -[0.1216 0.4667 0.7059] SC -/DeviceRGB {} cs -[0.1216 0.4667 0.7059] sc -3 0 m -3 0.397825 2.923879 0.780508 2.771638 1.14805 c -2.619397 1.515592 2.402625 1.840016 2.12132 2.12132 c -1.840016 2.402625 1.515592 2.619397 1.14805 2.771638 c -0.780508 2.923879 0.397825 3 0 3 c --0.397825 3 -0.780508 2.923879 -1.14805 2.771638 c --1.515592 2.619397 -1.840016 2.402625 -2.12132 2.12132 c --2.402625 1.840016 -2.619397 1.515592 -2.771638 1.14805 c --2.923879 0.780508 -3 0.397825 -3 0 c --3 -0.397825 -2.923879 -0.780508 -2.771638 -1.14805 c --2.619397 -1.515592 -2.402625 -1.840016 -2.12132 -2.12132 c --1.840016 -2.402625 -1.515592 -2.619397 -1.14805 -2.771638 c --0.780508 -2.923879 -0.397825 -3 0 -3 c -0.397825 -3 0.780508 -2.923879 1.14805 -2.771638 c -1.515592 -2.619397 1.840016 -2.402625 2.12132 -2.12132 c -2.402625 -1.840016 2.619397 -1.515592 2.771638 -1.14805 c -2.923879 -0.780508 3 -0.397825 3 0 c -h -f -Q -q -[3.126477 0 0 3.126477 250.11818 312.64774] cm -/DeviceRGB {} CS -[1 0.498 0.0549] SC -/DeviceRGB {} cs -[1 0.498 0.0549] sc -2 w -0 J -0 j -2 M -2 w -0 J -0 j -2 M -30.75 300.25 m -190.25 273.10001 l -349.75 227.86 l -509.25 164.520004 l -S -Q -q -[3.126477 0 0 3.126477 346.25735 1251.37256] cm -/DeviceRGB {} CS -[1 0.498 0.0549] SC -/DeviceRGB {} cs -[1 0.498 0.0549] sc -3 0 m -3 0.397825 2.923879 0.780508 2.771638 1.14805 c -2.619397 1.515592 2.402625 1.840016 2.12132 2.12132 c -1.840016 2.402625 1.515592 2.619397 1.14805 2.771638 c -0.780508 2.923879 0.397825 3 0 3 c --0.397825 3 -0.780508 2.923879 -1.14805 2.771638 c --1.515592 2.619397 -1.840016 2.402625 -2.12132 2.12132 c --2.402625 1.840016 -2.619397 1.515592 -2.771638 1.14805 c --2.923879 0.780508 -3 0.397825 -3 0 c --3 -0.397825 -2.923879 -0.780508 -2.771638 -1.14805 c --2.619397 -1.515592 -2.402625 -1.840016 -2.12132 -2.12132 c --1.840016 -2.402625 -1.515592 -2.619397 -1.14805 -2.771638 c --0.780508 -2.923879 -0.397825 -3 0 -3 c -0.397825 -3 0.780508 -2.923879 1.14805 -2.771638 c -1.515592 -2.619397 1.840016 -2.402625 2.12132 -2.12132 c -2.402625 -1.840016 2.619397 -1.515592 2.771638 -1.14805 c -2.923879 -0.780508 3 -0.397825 3 0 c -h -f -Q -q -[3.126477 0 0 3.126477 844.93048 1166.48865] cm -/DeviceRGB {} CS -[1 0.498 0.0549] SC -/DeviceRGB {} cs -[1 0.498 0.0549] sc -3 0 m -3 0.397825 2.923879 0.780508 2.771638 1.14805 c -2.619397 1.515592 2.402625 1.840016 2.12132 2.12132 c -1.840016 2.402625 1.515592 2.619397 1.14805 2.771638 c -0.780508 2.923879 0.397825 3 0 3 c --0.397825 3 -0.780508 2.923879 -1.14805 2.771638 c --1.515592 2.619397 -1.840016 2.402625 -2.12132 2.12132 c --2.402625 1.840016 -2.619397 1.515592 -2.771638 1.14805 c --2.923879 0.780508 -3 0.397825 -3 0 c --3 -0.397825 -2.923879 -0.780508 -2.771638 -1.14805 c --2.619397 -1.515592 -2.402625 -1.840016 -2.12132 -2.12132 c --1.840016 -2.402625 -1.515592 -2.619397 -1.14805 -2.771638 c --0.780508 -2.923879 -0.397825 -3 0 -3 c -0.397825 -3 0.780508 -2.923879 1.14805 -2.771638 c -1.515592 -2.619397 1.840016 -2.402625 2.12132 -2.12132 c -2.402625 -1.840016 2.619397 -1.515592 2.771638 -1.14805 c -2.923879 -0.780508 3 -0.397825 3 0 c -h -f -Q -q -[3.126477 0 0 3.126477 1343.60364 1025.04688] cm -/DeviceRGB {} CS -[1 0.498 0.0549] SC -/DeviceRGB {} cs -[1 0.498 0.0549] sc -3 0 m -3 0.397825 2.923879 0.780508 2.771638 1.14805 c -2.619397 1.515592 2.402625 1.840016 2.12132 2.12132 c -1.840016 2.402625 1.515592 2.619397 1.14805 2.771638 c -0.780508 2.923879 0.397825 3 0 3 c --0.397825 3 -0.780508 2.923879 -1.14805 2.771638 c --1.515592 2.619397 -1.840016 2.402625 -2.12132 2.12132 c --2.402625 1.840016 -2.619397 1.515592 -2.771638 1.14805 c --2.923879 0.780508 -3 0.397825 -3 0 c --3 -0.397825 -2.923879 -0.780508 -2.771638 -1.14805 c --2.619397 -1.515592 -2.402625 -1.840016 -2.12132 -2.12132 c --1.840016 -2.402625 -1.515592 -2.619397 -1.14805 -2.771638 c --0.780508 -2.923879 -0.397825 -3 0 -3 c -0.397825 -3 0.780508 -2.923879 1.14805 -2.771638 c -1.515592 -2.619397 1.840016 -2.402625 2.12132 -2.12132 c -2.402625 -1.840016 2.619397 -1.515592 2.771638 -1.14805 c -2.923879 -0.780508 3 -0.397825 3 0 c -h -f -Q -q -[3.126477 0 0 3.126477 1842.2767 827.01575] cm -/DeviceRGB {} CS -[1 0.498 0.0549] SC -/DeviceRGB {} cs -[1 0.498 0.0549] sc -3 0 m -3 0.397825 2.923879 0.780508 2.771638 1.14805 c -2.619397 1.515592 2.402625 1.840016 2.12132 2.12132 c -1.840016 2.402625 1.515592 2.619397 1.14805 2.771638 c -0.780508 2.923879 0.397825 3 0 3 c --0.397825 3 -0.780508 2.923879 -1.14805 2.771638 c --1.515592 2.619397 -1.840016 2.402625 -2.12132 2.12132 c --2.402625 1.840016 -2.619397 1.515592 -2.771638 1.14805 c --2.923879 0.780508 -3 0.397825 -3 0 c --3 -0.397825 -2.923879 -0.780508 -2.771638 -1.14805 c --2.619397 -1.515592 -2.402625 -1.840016 -2.12132 -2.12132 c --1.840016 -2.402625 -1.515592 -2.619397 -1.14805 -2.771638 c --0.780508 -2.923879 -0.397825 -3 0 -3 c -0.397825 -3 0.780508 -2.923879 1.14805 -2.771638 c -1.515592 -2.619397 1.840016 -2.402625 2.12132 -2.12132 c -2.402625 -1.840016 2.619397 -1.515592 2.771638 -1.14805 c -2.923879 -0.780508 3 -0.397825 3 0 c -h -f -Q -Q -q -0 0 2188.5342 1563.23865 re -W* -q -[0.0466542 0 0 -0.0466542 947.25928 1440.12085] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -263 249 m -263.66666 249 281 209.33334 315 130 c -349 50.666664 383 -28.666664 417 -108 c -451 -187.33334 468.66666 -227.33333 470 -228 c -725 302 l -895.66669 658.66669 981.33331 837.66669 982 839 c -986.66669 846.33331 993 850 1001 850 c -1005.66669 850 1009.66669 848 1013 844 c -1016.33331 840 1018.66669 836 1020 832 c -1020 826 l -741 243 l -677 109.666656 610 -30 540 -176 c -499.33334 -260.66669 475.66666 -310 469 -324 c -462.33334 -338 457 -346 453 -348 c -450.33334 -349.33334 444.66666 -350 436 -350 c -424 -349 l -315 -96 l -242.33333 72 205.66667 156 205 156 c -171 130 l -149 112.666664 137.666672 104 137 104 c -111 130 l -263 249 l -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -263 249 m -263.66666 249 281 209.33334 315 130 c -349 50.666664 383 -28.666664 417 -108 c -451 -187.33334 468.66666 -227.33333 470 -228 c -725 302 l -895.66669 658.66669 981.33331 837.66669 982 839 c -986.66669 846.33331 993 850 1001 850 c -1005.66669 850 1009.66669 848 1013 844 c -1016.33331 840 1018.66669 836 1020 832 c -1020 826 l -741 243 l -677 109.666656 610 -30 540 -176 c -499.33334 -260.66669 475.66666 -310 469 -324 c -462.33334 -338 457 -346 453 -348 c -450.33334 -349.33334 444.66666 -350 436 -350 c -424 -349 l -315 -96 l -242.33333 72 205.66667 156 205 156 c -171 130 l -149 112.666664 137.666672 104 137 104 c -111 130 l -263 249 l -h -S -Q -q -[0.0466542 0 0 -0.0466542 947.25928 1442.92004] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -1000 851 5413 60 re -f -Q -q -[0.0466542 0 0 -0.0466542 993.91339 1442.92004] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -94 250 m -94 296 97.333336 339.66666 104 381 c -110.666664 422.33334 118.333336 458 127 488 c -135.666672 518 148 547.33331 164 576 c -180 604.66669 192.66667 627 202 643 c -211.33333 659 225.33333 676.33331 244 695 c -262.66666 713.66669 273.66666 725 277 729 c -280.33334 733 288.66666 740 302 750 c -315 750 l -319 750 l -328.33334 750 333 747 333 741 c -333 739 327.33334 732 316 720 c -304.66666 708 291 690.33331 275 667 c -259 643.66669 242.66667 615 226 581 c -209.33333 547 195.33333 501 184 443 c -172.66667 385 167 320.66669 167 250 c -167 179.33333 172.66667 115.333336 184 58 c -195.33333 0.666664 209 -45.666664 225 -81 c -241 -116.333336 257.33334 -145 274 -167 c -290.66666 -189 304.66666 -206.66667 316 -220 c -327.33334 -233.33333 333 -240.33333 333 -241 c -333 -247 328 -250 318 -250 c -315 -250 l -302 -250 l -274 -226 l -211.33333 -169.33333 165.666672 -98.666672 137 -14 c -108.333328 70.666672 94 158.666656 94 250 c -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -94 250 m -94 296 97.333336 339.66666 104 381 c -110.666664 422.33334 118.333336 458 127 488 c -135.666672 518 148 547.33331 164 576 c -180 604.66669 192.66667 627 202 643 c -211.33333 659 225.33333 676.33331 244 695 c -262.66666 713.66669 273.66666 725 277 729 c -280.33334 733 288.66666 740 302 750 c -315 750 l -319 750 l -328.33334 750 333 747 333 741 c -333 739 327.33334 732 316 720 c -304.66666 708 291 690.33331 275 667 c -259 643.66669 242.66667 615 226 581 c -209.33333 547 195.33333 501 184 443 c -172.66667 385 167 320.66669 167 250 c -167 179.33333 172.66667 115.333336 184 58 c -195.33333 0.666664 209 -45.666664 225 -81 c -241 -116.333336 257.33334 -145 274 -167 c -290.66666 -189 304.66666 -206.66667 316 -220 c -327.33334 -233.33333 333 -240.33333 333 -241 c -333 -247 328 -250 318 -250 c -315 -250 l -302 -250 l -274 -226 l -211.33333 -169.33333 165.666672 -98.666672 137 -14 c -108.333328 70.666672 94 158.666656 94 250 c -h -S -Q -q -[0.0466542 0 0 -0.0466542 1012.06189 1442.92004] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -21 287 m -21.666666 291 22.666666 296.33334 24 303 c -25.333334 309.66666 29.333332 322.33334 36 341 c -42.666668 359.66666 49.333332 375.33334 56 388 c -62.666668 400.66666 73.666664 413 89 425 c -104.333336 437 119.666664 442.66666 135 442 c -159 442 179 436 195 424 c -211 412 221 400.66666 225 390 c -229 379.33334 231 372.33334 231 369 c -231 367.66666 231.33333 367 232 367 c -243 378 l -283.66666 420.66666 330 442 382 442 c -418 442 447 433 469 415 c -491 397 502.33334 370.66666 503 336 c -503.66666 301.33334 491 249 465 179 c -439 109 426.33334 66.666664 427 52 c -427 34.666664 432.66666 26 444 26 c -448 26 451 26.333334 453 27 c -472.33334 30.333334 489.66666 43 505 65 c -520.33331 87 532 113.666664 540 145 c -541.33331 150.333328 548 153 560 153 c -573.33331 153 580 150.333328 580 145 c -580 144.333328 578.66669 139.333328 576 130 c -570.66669 110.666664 563.33331 91.666672 554 73 c -544.66669 54.333332 529.33331 35.666668 508 17 c -486.66666 -1.666668 463.66666 -10.666667 439 -10 c -407.66666 -10 385 -1 371 17 c -357 35 350 53.666664 350 73 c -350 85.666664 362 125.666664 386 193 c -410 260.33334 422.33334 311 423 345 c -423 384.33334 408.33334 404 379 404 c -374 404 l -316.66666 404 268.33334 370.33334 229 303 c -222 291 l -189 157 l -167 69.666664 154.333328 22.666668 151 16 c -142.333328 -2 128 -11 108 -11 c -99.333336 -11 92.333336 -9 87 -5 c -81.666664 -1 78 3 76 7 c -74 11 73.333336 14.333333 74 17 c -74 25.666668 86.666664 80 112 180 c -137.333328 280 150.666672 334.33334 152 343 c -152.666672 346.33334 153 354 153 366 c -153 392 145 405 129 405 c -103.666664 405 82.666672 371.66669 66 305 c -62 291.66666 60 284.66666 60 284 c -58.666668 280 52.333336 278 41 278 c -27 278 l -23 282 21 285 21 287 c -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -21 287 m -21.666666 291 22.666666 296.33334 24 303 c -25.333334 309.66666 29.333332 322.33334 36 341 c -42.666668 359.66666 49.333332 375.33334 56 388 c -62.666668 400.66666 73.666664 413 89 425 c -104.333336 437 119.666664 442.66666 135 442 c -159 442 179 436 195 424 c -211 412 221 400.66666 225 390 c -229 379.33334 231 372.33334 231 369 c -231 367.66666 231.33333 367 232 367 c -243 378 l -283.66666 420.66666 330 442 382 442 c -418 442 447 433 469 415 c -491 397 502.33334 370.66666 503 336 c -503.66666 301.33334 491 249 465 179 c -439 109 426.33334 66.666664 427 52 c -427 34.666664 432.66666 26 444 26 c -448 26 451 26.333334 453 27 c -472.33334 30.333334 489.66666 43 505 65 c -520.33331 87 532 113.666664 540 145 c -541.33331 150.333328 548 153 560 153 c -573.33331 153 580 150.333328 580 145 c -580 144.333328 578.66669 139.333328 576 130 c -570.66669 110.666664 563.33331 91.666672 554 73 c -544.66669 54.333332 529.33331 35.666668 508 17 c -486.66666 -1.666668 463.66666 -10.666667 439 -10 c -407.66666 -10 385 -1 371 17 c -357 35 350 53.666664 350 73 c -350 85.666664 362 125.666664 386 193 c -410 260.33334 422.33334 311 423 345 c -423 384.33334 408.33334 404 379 404 c -374 404 l -316.66666 404 268.33334 370.33334 229 303 c -222 291 l -189 157 l -167 69.666664 154.333328 22.666668 151 16 c -142.333328 -2 128 -11 108 -11 c -99.333336 -11 92.333336 -9 87 -5 c -81.666664 -1 78 3 76 7 c -74 11 73.333336 14.333333 74 17 c -74 25.666668 86.666664 80 112 180 c -137.333328 280 150.666672 334.33334 152 343 c -152.666672 346.33334 153 354 153 366 c -153 392 145 405 129 405 c -103.666664 405 82.666672 371.66669 66 305 c -62 291.66666 60 284.66666 60 284 c -58.666668 280 52.333336 278 41 278 c -27 278 l -23 282 21 285 21 287 c -h -S -Q -q -[0.0329845 0 0 -0.0329845 1040.06567 1449.94568] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -370 305 m -370 305 363 305 349 305 c -335 305 323 310 313 320 c -303 330 297.66666 342.66666 297 358 c -297 373.33334 302 386 312 396 c -315.33334 399.33334 317 401.33334 317 402 c -317 402.66666 313.66666 403.33334 307 404 c -289.66666 406.66666 273.33334 408 258 408 c -225.33333 408 198.66667 397.33334 178 376 c -146.666672 344.66666 131 292.33334 131 219 c -131 164.333328 141.333328 121.333336 162 90 c -189.33333 49.333332 226 29 272 29 c -299.33334 29 321.33334 37.666664 338 55 c -354.66666 72.333336 366.66666 93 374 117 c -375.33334 122.333336 377 125.666664 379 127 c -381 128.333328 386.33334 129 395 129 c -409 129 l -413 125 415 122 415 120 c -415 117.333336 413.66666 112 411 104 c -408.33334 96 403 85 395 71 c -387 57 377.33334 44.333336 366 33 c -354.66666 21.666666 338.66666 11.333334 318 2 c -297.33334 -7.333334 274.33334 -11.666667 249 -11 c -191.66666 -11 141.666672 10.333332 99 53 c -56.333332 95.666672 34.666668 149.333328 34 214 c -34 283.33334 55.666664 339.66666 99 383 c -142.333344 426.33334 192.66666 448 250 448 c -307.33334 448 347.33334 439 370 421 c -392.66666 403 404 381.66666 404 357 c -404 341.66666 398.33334 329.33334 387 320 c -370 305 l -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -370 305 m -370 305 363 305 349 305 c -335 305 323 310 313 320 c -303 330 297.66666 342.66666 297 358 c -297 373.33334 302 386 312 396 c -315.33334 399.33334 317 401.33334 317 402 c -317 402.66666 313.66666 403.33334 307 404 c -289.66666 406.66666 273.33334 408 258 408 c -225.33333 408 198.66667 397.33334 178 376 c -146.666672 344.66666 131 292.33334 131 219 c -131 164.333328 141.333328 121.333336 162 90 c -189.33333 49.333332 226 29 272 29 c -299.33334 29 321.33334 37.666664 338 55 c -354.66666 72.333336 366.66666 93 374 117 c -375.33334 122.333336 377 125.666664 379 127 c -381 128.333328 386.33334 129 395 129 c -409 129 l -413 125 415 122 415 120 c -415 117.333336 413.66666 112 411 104 c -408.33334 96 403 85 395 71 c -387 57 377.33334 44.333336 366 33 c -354.66666 21.666666 338.66666 11.333334 318 2 c -297.33334 -7.333334 274.33334 -11.666667 249 -11 c -191.66666 -11 141.666672 10.333332 99 53 c -56.333332 95.666672 34.666668 149.333328 34 214 c -34 283.33334 55.666664 339.66666 99 383 c -142.333344 426.33334 192.66666 448 250 448 c -307.33334 448 347.33334 439 370 421 c -392.66666 403 404 381.66666 404 357 c -404 341.66666 398.33334 329.33334 387 320 c -370 305 l -h -S -Q -q -[0.0466542 0 0 -0.0466542 1059.41589 1442.92004] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -94 250 m -94 296 97.333336 339.66666 104 381 c -110.666664 422.33334 118.333336 458 127 488 c -135.666672 518 148 547.33331 164 576 c -180 604.66669 192.66667 627 202 643 c -211.33333 659 225.33333 676.33331 244 695 c -262.66666 713.66669 273.66666 725 277 729 c -280.33334 733 288.66666 740 302 750 c -315 750 l -319 750 l -328.33334 750 333 747 333 741 c -333 739 327.33334 732 316 720 c -304.66666 708 291 690.33331 275 667 c -259 643.66669 242.66667 615 226 581 c -209.33333 547 195.33333 501 184 443 c -172.66667 385 167 320.66669 167 250 c -167 179.33333 172.66667 115.333336 184 58 c -195.33333 0.666664 209 -45.666664 225 -81 c -241 -116.333336 257.33334 -145 274 -167 c -290.66666 -189 304.66666 -206.66667 316 -220 c -327.33334 -233.33333 333 -240.33333 333 -241 c -333 -247 328 -250 318 -250 c -315 -250 l -302 -250 l -274 -226 l -211.33333 -169.33333 165.666672 -98.666672 137 -14 c -108.333328 70.666672 94 158.666656 94 250 c -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -94 250 m -94 296 97.333336 339.66666 104 381 c -110.666664 422.33334 118.333336 458 127 488 c -135.666672 518 148 547.33331 164 576 c -180 604.66669 192.66667 627 202 643 c -211.33333 659 225.33333 676.33331 244 695 c -262.66666 713.66669 273.66666 725 277 729 c -280.33334 733 288.66666 740 302 750 c -315 750 l -319 750 l -328.33334 750 333 747 333 741 c -333 739 327.33334 732 316 720 c -304.66666 708 291 690.33331 275 667 c -259 643.66669 242.66667 615 226 581 c -209.33333 547 195.33333 501 184 443 c -172.66667 385 167 320.66669 167 250 c -167 179.33333 172.66667 115.333336 184 58 c -195.33333 0.666664 209 -45.666664 225 -81 c -241 -116.333336 257.33334 -145 274 -167 c -290.66666 -189 304.66666 -206.66667 316 -220 c -327.33334 -233.33333 333 -240.33333 333 -241 c -333 -247 328 -250 318 -250 c -315 -250 l -302 -250 l -274 -226 l -211.33333 -169.33333 165.666672 -98.666672 137 -14 c -108.333328 70.666672 94 158.666656 94 250 c -h -S -Q -q -[0.0466542 0 0 -0.0466542 1077.56433 1442.92004] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -26 385 m -21.333332 389.66666 19 393 19 395 c -19 397.66666 20 403 22 411 c -24 419 25.666666 423.66666 27 425 c -28.333334 428.33334 31.333332 430 36 430 c -40.666668 430 57.666664 430.33334 87 431 c -140 431 l -159 511 l -161 518.33331 163.333328 528 166 540 c -168.66667 552 171 560.66669 173 566 c -175 571.33331 177 578 179 586 c -181 594 183.66667 599.66669 187 603 c -190.33333 606.33331 193.66667 610.33331 197 615 c -200.33333 619.66669 205 622.66669 211 624 c -217 625.33331 223 626 229 626 c -241 625.33331 249.33333 621.66669 254 615 c -258.66666 608.33331 261 602 261 596 c -261 591.33331 258 575.66669 252 549 c -246 522.33331 239.33333 496 232 470 c -222 433 l -222 431.66666 238.66666 431 272 431 c -323 431 l -327.66666 426.33334 330 422.66666 330 420 c -330 405.33334 325.66666 393.66666 317 385 c -210 385 l -174 240 l -148 133.333328 135 76 135 68 c -135 40 144 26 162 26 c -185.33333 26 208 37.333332 230 60 c -252 82.666672 269.66666 110.666664 283 144 c -284.33334 148 286 150.333328 288 151 c -290 151.666672 295 152.333328 303 153 c -307 153 l -317 153 322 150.333328 322 145 c -322 143 321 139 319 133 c -315.66666 122.333336 309.66666 109.666664 301 95 c -292.33334 80.333336 281 64.666672 267 48 c -253 31.333332 236 17.333334 216 6 c -196 -5.333334 175.66667 -11 155 -11 c -135 -11 116 -6 98 4 c -80 14 67 31.333332 59 56 c -57.666668 61.333332 57 70.333336 57 83 c -57 101 l -92 241 l -115.333336 335 127.333336 382.33334 128 383 c -128 384.33334 111 385 77 385 c -26 385 l -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -26 385 m -21.333332 389.66666 19 393 19 395 c -19 397.66666 20 403 22 411 c -24 419 25.666666 423.66666 27 425 c -28.333334 428.33334 31.333332 430 36 430 c -40.666668 430 57.666664 430.33334 87 431 c -140 431 l -159 511 l -161 518.33331 163.333328 528 166 540 c -168.66667 552 171 560.66669 173 566 c -175 571.33331 177 578 179 586 c -181 594 183.66667 599.66669 187 603 c -190.33333 606.33331 193.66667 610.33331 197 615 c -200.33333 619.66669 205 622.66669 211 624 c -217 625.33331 223 626 229 626 c -241 625.33331 249.33333 621.66669 254 615 c -258.66666 608.33331 261 602 261 596 c -261 591.33331 258 575.66669 252 549 c -246 522.33331 239.33333 496 232 470 c -222 433 l -222 431.66666 238.66666 431 272 431 c -323 431 l -327.66666 426.33334 330 422.66666 330 420 c -330 405.33334 325.66666 393.66666 317 385 c -210 385 l -174 240 l -148 133.333328 135 76 135 68 c -135 40 144 26 162 26 c -185.33333 26 208 37.333332 230 60 c -252 82.666672 269.66666 110.666664 283 144 c -284.33334 148 286 150.333328 288 151 c -290 151.666672 295 152.333328 303 153 c -307 153 l -317 153 322 150.333328 322 145 c -322 143 321 139 319 133 c -315.66666 122.333336 309.66666 109.666664 301 95 c -292.33334 80.333336 281 64.666672 267 48 c -253 31.333332 236 17.333334 216 6 c -196 -5.333334 175.66667 -11 155 -11 c -135 -11 116 -6 98 4 c -80 14 67 31.333332 59 56 c -57.666668 61.333332 57 70.333336 57 83 c -57 101 l -92 241 l -115.333336 335 127.333336 382.33334 128 383 c -128 384.33334 111 385 77 385 c -26 385 l -h -S -Q -q -[0.0466542 0 0 -0.0466542 1094.45313 1442.92004] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -139 -249 m -137 -249 l -129 -249 123 -244.33333 119 -235 c -119 251 l -120 737 l -126.666664 745.66669 133 750 139 750 c -147.666672 750 154.333328 745 159 735 c -159 -235 l -153.666672 -244.33333 147.666672 -249 141 -249 c -139 -249 l -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -139 -249 m -137 -249 l -129 -249 123 -244.33333 119 -235 c -119 251 l -120 737 l -126.666664 745.66669 133 750 139 750 c -147.666672 750 154.333328 745 159 735 c -159 -235 l -153.666672 -244.33333 147.666672 -249 141 -249 c -139 -249 l -h -S -Q -q -[0.0466542 0 0 -0.0466542 1107.42297 1442.92004] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -40 437 m -27.333332 437 21 439.66666 21 445 c -21 448.33334 26.333332 467 37 501 c -47.666668 535 59 568.66669 71 602 c -88 651 l -91.333336 663 95.666664 671.66669 101 677 c -569 677 l -659 677 l -680.33331 677 693 676.66669 697 676 c -701 675.33331 703.33331 672.33331 704 667 c -704 663 698.33331 625 687 553 c -675.66669 481 669.33331 444.66666 668 444 c -668 439.33334 661.66669 437 649 437 c -643 437 639 437 637 437 c -635 437 633 438.66666 631 442 c -629 445 l -629 449 631 464 635 490 c -639 516 641 536.33331 641 551 c -641 574.33331 636.66669 592 628 604 c -619.33331 616 601 624.33331 573 629 c -569.66669 629.66669 550.33331 630.33331 515 631 c -484.33334 631 465 630.66669 457 630 c -449 629.33331 443 626.66669 439 622 c -438.33334 621.33331 414.66666 528.33337 368 343 c -321.33334 157.666656 298 63.333332 298 60 c -298 52 327.33334 47.333332 386 46 c -407.33334 46 421 45.666668 427 45 c -433 44.333332 436 41.333332 436 36 c -436 32.666668 435 28 433 22 c -430.33334 10 427.33334 3 424 1 c -422 0 l -420 0 417.66666 0 415 0 c -411.66666 0 394.33334 0.333333 363 1 c -331.66666 1.666667 286.66666 2 228 2 c -142 2 87.333336 1.333333 64 0 c -49 0 l -45 4 43 7 43 9 c -43 11 43.666668 17 45 27 c -47.666668 35.666668 51 42 55 46 c -83 46 l -94 46 l -147.333344 46 179 49 189 55 c -189.66667 55.666668 190.33333 56 191 56 c -194.33333 58 197.66667 64.666664 201 76 c -204.33333 87.333336 217.66667 139.666656 241 233 c -252.33333 278.33334 261.66666 315.33334 269 344 c -315.66666 527.33337 339 621 339 625 c -339 628.33331 329.33334 630 310 630 c -279 630 l -234.33333 630 205 628 191 624 c -161 617.33331 137.666672 603.66669 121 583 c -104.333328 562.33331 86.333336 523.66669 67 467 c -62.333332 452.33334 59 443.66666 57 441 c -55 438.33334 50.333332 437 43 437 c -40 437 l -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -40 437 m -27.333332 437 21 439.66666 21 445 c -21 448.33334 26.333332 467 37 501 c -47.666668 535 59 568.66669 71 602 c -88 651 l -91.333336 663 95.666664 671.66669 101 677 c -569 677 l -659 677 l -680.33331 677 693 676.66669 697 676 c -701 675.33331 703.33331 672.33331 704 667 c -704 663 698.33331 625 687 553 c -675.66669 481 669.33331 444.66666 668 444 c -668 439.33334 661.66669 437 649 437 c -643 437 639 437 637 437 c -635 437 633 438.66666 631 442 c -629 445 l -629 449 631 464 635 490 c -639 516 641 536.33331 641 551 c -641 574.33331 636.66669 592 628 604 c -619.33331 616 601 624.33331 573 629 c -569.66669 629.66669 550.33331 630.33331 515 631 c -484.33334 631 465 630.66669 457 630 c -449 629.33331 443 626.66669 439 622 c -438.33334 621.33331 414.66666 528.33337 368 343 c -321.33334 157.666656 298 63.333332 298 60 c -298 52 327.33334 47.333332 386 46 c -407.33334 46 421 45.666668 427 45 c -433 44.333332 436 41.333332 436 36 c -436 32.666668 435 28 433 22 c -430.33334 10 427.33334 3 424 1 c -422 0 l -420 0 417.66666 0 415 0 c -411.66666 0 394.33334 0.333333 363 1 c -331.66666 1.666667 286.66666 2 228 2 c -142 2 87.333336 1.333333 64 0 c -49 0 l -45 4 43 7 43 9 c -43 11 43.666668 17 45 27 c -47.666668 35.666668 51 42 55 46 c -83 46 l -94 46 l -147.333344 46 179 49 189 55 c -189.66667 55.666668 190.33333 56 191 56 c -194.33333 58 197.66667 64.666664 201 76 c -204.33333 87.333336 217.66667 139.666656 241 233 c -252.33333 278.33334 261.66666 315.33334 269 344 c -315.66666 527.33337 339 621 339 625 c -339 628.33331 329.33334 630 310 630 c -279 630 l -234.33333 630 205 628 191 624 c -161 617.33331 137.666672 603.66669 121 583 c -104.333328 562.33331 86.333336 523.66669 67 467 c -62.333332 452.33334 59 443.66666 57 441 c -55 438.33334 50.333332 437 43 437 c -40 437 l -h -S -Q -q -[0.0329845 0 0 -0.0329845 1134.66895 1449.91809] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -28 218 m -28 254.66667 34.666664 288 48 318 c -61.333336 348 78 372.33334 98 391 c -118 409.66666 139.666672 423.66666 163 433 c -186.33333 442.33334 208.33333 447.33334 229 448 c -264.33334 448 294.66666 442 320 430 c -345.33334 418 364.66666 401.33334 378 380 c -391.33334 358.66666 400.66666 337.33334 406 316 c -411.33334 294.66666 414.33334 271 415 245 c -415 240.33333 412.66666 235.66667 408 231 c -126 231 l -126 216 l -126 117.333328 159.333328 57.333336 226 36 c -239.33333 32 254 30 270 30 c -298 30 322 40.666664 342 62 c -353.33334 73.333336 362.33334 87.333328 369 104 c -379 128 l -381 130 386.33334 131 395 131 c -398 131 l -409.33334 131 415 127.666664 415 121 c -415 118.333336 414 114 412 108 c -399.33334 71.333328 378.33334 42.333336 349 21 c -319.66666 -0.333334 286.66666 -11 250 -11 c -186.66666 -11 134 12 92 58 c -50 104 28.666666 157.333328 28 218 c -h -333 275 m -325.66666 360.33334 294 405.66666 238 411 c -236 411 l -230.66667 411 225.33333 410.66666 220 410 c -214.66667 409.33334 206.33333 406.66666 195 402 c -183.66667 397.33334 174 390.33334 166 381 c -158 371.66666 150.333328 358 143 340 c -135.666672 322 130.333328 300 127 274 c -127 267 l -333 267 l -333 275 l -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -28 218 m -28 254.66667 34.666664 288 48 318 c -61.333336 348 78 372.33334 98 391 c -118 409.66666 139.666672 423.66666 163 433 c -186.33333 442.33334 208.33333 447.33334 229 448 c -264.33334 448 294.66666 442 320 430 c -345.33334 418 364.66666 401.33334 378 380 c -391.33334 358.66666 400.66666 337.33334 406 316 c -411.33334 294.66666 414.33334 271 415 245 c -415 240.33333 412.66666 235.66667 408 231 c -126 231 l -126 216 l -126 117.333328 159.333328 57.333336 226 36 c -239.33333 32 254 30 270 30 c -298 30 322 40.666664 342 62 c -353.33334 73.333336 362.33334 87.333328 369 104 c -379 128 l -381 130 386.33334 131 395 131 c -398 131 l -409.33334 131 415 127.666664 415 121 c -415 118.333336 414 114 412 108 c -399.33334 71.333328 378.33334 42.333336 349 21 c -319.66666 -0.333334 286.66666 -11 250 -11 c -186.66666 -11 134 12 92 58 c -50 104 28.666666 157.333328 28 218 c -h -333 275 m -325.66666 360.33334 294 405.66666 238 411 c -236 411 l -230.66667 411 225.33333 410.66666 220 410 c -214.66667 409.33334 206.33333 406.66666 195 402 c -183.66667 397.33334 174 390.33334 166 381 c -158 371.66666 150.333328 358 143 340 c -135.666672 322 130.333328 300 127 274 c -127 267 l -333 267 l -333 275 l -h -S -Q -q -[0.0329845 0 0 -0.0329845 1149.31409 1449.91809] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -137 305 m -137 305 129.666672 305 115 305 c -100.333336 305 88 310 78 320 c -68 330 63 343 63 359 c -63 382.33334 74.333328 403 97 421 c -119.666672 439 160 448 218 448 c -266.66666 448 306 437.33334 336 416 c -366 394.66666 386 369.33334 396 340 c -399.33334 330.66666 401 320.33334 401 309 c -401 297.66666 401.33334 259.33334 402 194 c -402 124 l -402 92 403.66666 70 407 58 c -410.33334 46 417.33334 40 428 40 c -438 40 444.66666 45.333332 448 56 c -451.33334 66.666664 453 84.333328 453 109 c -453 145 l -493 145 l -493 106 l -492.33334 79.333328 491.33334 63.666668 490 59 c -484 39 472.33334 23.333334 455 12 c -437.66666 0.666666 419.33334 -5.333334 400 -6 c -380.66666 -6.666667 365 -0.666667 353 12 c -341 24.666668 333 38.666664 329 54 c -329 58 l -327 55 l -325.66666 53 324 51 322 49 c -320 47 317.33334 44 314 40 c -310.66666 36 306.66666 32.333332 302 29 c -297.33334 25.666666 292.33334 21.666668 287 17 c -281.66666 12.333333 275.66666 8.666667 269 6 c -262.33334 3.333333 255 0.666667 247 -2 c -239 -4.666667 230.33333 -6.666667 221 -8 c -211.66667 -9.333333 201.33333 -10.333333 190 -11 c -150 -11 114 -0.666668 82 20 c -50 40.666668 34 69.666664 34 107 c -34 121 36.333332 134.333328 41 147 c -45.666668 159.666672 54.666664 173.33333 68 188 c -81.333336 202.66667 97.333328 215 116 225 c -134.666672 235 160.666656 244.33333 194 253 c -227.33334 261.66666 264 266.66666 304 268 c -318 268 l -318 290 l -318 312.66666 316 329.33334 312 340 c -297.33334 387.33334 265 411 215 411 c -203 411 191.66667 410.66666 181 410 c -170.33333 409.33334 162 408 156 406 c -150 404 147.333328 403 148 403 c -162.666672 393 170 378.33334 170 359 c -170 342.33334 164.666672 329.33334 154 320 c -137 305 l -h -126 106 m -126 85.333328 134 67 150 51 c -166 35 185.66667 26.666666 209 26 c -234.33333 26 256.66666 33.666664 276 49 c -295.33334 64.333336 308.33334 84.333328 315 109 c -316.33334 113.666664 317.33334 135.666656 318 175 c -318 213.66667 317.66666 233 317 233 c -311.66666 233 304.66666 232.66667 296 232 c -287.33334 231.33333 272.33334 228.33333 251 223 c -229.66667 217.66667 210.33333 211 193 203 c -175.66667 195 160.333328 182.66667 147 166 c -133.666672 149.333328 126.666664 129.333328 126 106 c -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -137 305 m -137 305 129.666672 305 115 305 c -100.333336 305 88 310 78 320 c -68 330 63 343 63 359 c -63 382.33334 74.333328 403 97 421 c -119.666672 439 160 448 218 448 c -266.66666 448 306 437.33334 336 416 c -366 394.66666 386 369.33334 396 340 c -399.33334 330.66666 401 320.33334 401 309 c -401 297.66666 401.33334 259.33334 402 194 c -402 124 l -402 92 403.66666 70 407 58 c -410.33334 46 417.33334 40 428 40 c -438 40 444.66666 45.333332 448 56 c -451.33334 66.666664 453 84.333328 453 109 c -453 145 l -493 145 l -493 106 l -492.33334 79.333328 491.33334 63.666668 490 59 c -484 39 472.33334 23.333334 455 12 c -437.66666 0.666666 419.33334 -5.333334 400 -6 c -380.66666 -6.666667 365 -0.666667 353 12 c -341 24.666668 333 38.666664 329 54 c -329 58 l -327 55 l -325.66666 53 324 51 322 49 c -320 47 317.33334 44 314 40 c -310.66666 36 306.66666 32.333332 302 29 c -297.33334 25.666666 292.33334 21.666668 287 17 c -281.66666 12.333333 275.66666 8.666667 269 6 c -262.33334 3.333333 255 0.666667 247 -2 c -239 -4.666667 230.33333 -6.666667 221 -8 c -211.66667 -9.333333 201.33333 -10.333333 190 -11 c -150 -11 114 -0.666668 82 20 c -50 40.666668 34 69.666664 34 107 c -34 121 36.333332 134.333328 41 147 c -45.666668 159.666672 54.666664 173.33333 68 188 c -81.333336 202.66667 97.333328 215 116 225 c -134.666672 235 160.666656 244.33333 194 253 c -227.33334 261.66666 264 266.66666 304 268 c -318 268 l -318 290 l -318 312.66666 316 329.33334 312 340 c -297.33334 387.33334 265 411 215 411 c -203 411 191.66667 410.66666 181 410 c -170.33333 409.33334 162 408 156 406 c -150 404 147.333328 403 148 403 c -162.666672 393 170 378.33334 170 359 c -170 342.33334 164.666672 329.33334 154 320 c -137 305 l -h -126 106 m -126 85.333328 134 67 150 51 c -166 35 185.66667 26.666666 209 26 c -234.33333 26 256.66666 33.666664 276 49 c -295.33334 64.333336 308.33334 84.333328 315 109 c -316.33334 113.666664 317.33334 135.666656 318 175 c -318 213.66667 317.66666 233 317 233 c -311.66666 233 304.66666 232.66667 296 232 c -287.33334 231.33333 272.33334 228.33333 251 223 c -229.66667 217.66667 210.33333 211 193 203 c -175.66667 195 160.333328 182.66667 147 166 c -133.666672 149.333328 126.666664 129.333328 126 106 c -h -S -Q -q -[0.0329845 0 0 -0.0329845 1165.83936 1449.91809] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -36 46 m -50 46 l -76 46 91.666664 50.666664 97 60 c -97 68 l -97 74 97 81.666664 97 91 c -97 100.333336 97.333336 110.666664 98 122 c -98.666664 133.333328 98.666664 146.333328 98 161 c -97.333336 175.66667 97.333336 189.66667 98 203 c -98 223.66667 98 245.66667 98 269 c -98 292.33334 98 312 98 328 c -97 351 l -95 363.66666 90.333336 372 83 376 c -75.666664 380 60.666668 383 38 385 c -20 385 l -20 408 l -20 423.33334 20.666666 431 22 431 c -32 432 l -38.666668 432.66666 48 433.33334 60 434 c -72 434.66666 84 435.33334 96 436 c -106.666664 436.66666 118.333336 437.33334 131 438 c -143.666672 438.66666 153.333328 439.66666 160 441 c -166.666672 442.33334 170.33333 442.66666 171 442 c -174 442 l -174 373 l -200 418.33334 232.33333 441 271 441 c -277 441 l -307 441 329 433.66666 343 419 c -357 404.33334 364 389 364 373 c -364 359 359.66666 347 351 337 c -342.33334 327 329.66666 322 313 322 c -296.33334 322 284 327.33334 276 338 c -268 348.66666 263.66666 360 263 372 c -263 378 263.66666 383.33334 265 388 c -266.33334 392.66666 268 396.66666 270 400 c -272 403.33334 273 405 273 405 c -271.66666 406.33334 264 405 250 401 c -239.33333 395.66666 231.33333 390.66666 226 386 c -194.66667 356 179 296.33334 179 207 c -179 154 l -179 145.333328 179 136.333328 179 127 c -179 117.666664 179 109 179 101 c -179 93 179.33333 86.333336 180 81 c -180.66667 75.666664 180.66667 70.666664 180 66 c -180 61 l -180.66667 59.666668 181.66667 58.333332 183 57 c -184.33333 55.666668 186 54.666668 188 54 c -190 53.333332 191.66667 52.333332 193 51 c -194.33333 49.666668 196.66667 49 200 49 c -203.33333 49 205.66667 48.666668 207 48 c -208.33333 47.333332 211.33333 47 216 47 c -220.66667 47 223.66667 47 225 47 c -226.33333 47 229.66667 46.666668 235 46 c -240.33333 45.333332 243.66667 45.333332 245 46 c -276 46 l -276 0 l -267 0 l -255 2 212.66667 3 140 3 c -71.333328 3 34 2 28 0 c -20 0 l -20 46 l -36 46 l -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -36 46 m -50 46 l -76 46 91.666664 50.666664 97 60 c -97 68 l -97 74 97 81.666664 97 91 c -97 100.333336 97.333336 110.666664 98 122 c -98.666664 133.333328 98.666664 146.333328 98 161 c -97.333336 175.66667 97.333336 189.66667 98 203 c -98 223.66667 98 245.66667 98 269 c -98 292.33334 98 312 98 328 c -97 351 l -95 363.66666 90.333336 372 83 376 c -75.666664 380 60.666668 383 38 385 c -20 385 l -20 408 l -20 423.33334 20.666666 431 22 431 c -32 432 l -38.666668 432.66666 48 433.33334 60 434 c -72 434.66666 84 435.33334 96 436 c -106.666664 436.66666 118.333336 437.33334 131 438 c -143.666672 438.66666 153.333328 439.66666 160 441 c -166.666672 442.33334 170.33333 442.66666 171 442 c -174 442 l -174 373 l -200 418.33334 232.33333 441 271 441 c -277 441 l -307 441 329 433.66666 343 419 c -357 404.33334 364 389 364 373 c -364 359 359.66666 347 351 337 c -342.33334 327 329.66666 322 313 322 c -296.33334 322 284 327.33334 276 338 c -268 348.66666 263.66666 360 263 372 c -263 378 263.66666 383.33334 265 388 c -266.33334 392.66666 268 396.66666 270 400 c -272 403.33334 273 405 273 405 c -271.66666 406.33334 264 405 250 401 c -239.33333 395.66666 231.33333 390.66666 226 386 c -194.66667 356 179 296.33334 179 207 c -179 154 l -179 145.333328 179 136.333328 179 127 c -179 117.666664 179 109 179 101 c -179 93 179.33333 86.333336 180 81 c -180.66667 75.666664 180.66667 70.666664 180 66 c -180 61 l -180.66667 59.666668 181.66667 58.333332 183 57 c -184.33333 55.666668 186 54.666668 188 54 c -190 53.333332 191.66667 52.333332 193 51 c -194.33333 49.666668 196.66667 49 200 49 c -203.33333 49 205.66667 48.666668 207 48 c -208.33333 47.333332 211.33333 47 216 47 c -220.66667 47 223.66667 47 225 47 c -226.33333 47 229.66667 46.666668 235 46 c -240.33333 45.333332 243.66667 45.333332 245 46 c -276 46 l -276 0 l -267 0 l -255 2 212.66667 3 140 3 c -71.333328 3 34 2 28 0 c -20 0 l -20 46 l -36 46 l -h -S -Q -q -[0.0329845 0 0 -0.0329845 1178.76929 1449.91809] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -42 46 m -56 46 l -82 46 97.666664 50.666664 103 60 c -103 68 l -103 74 103 81.666664 103 91 c -103 100.333336 103 111.333336 103 124 c -103 136.666672 103.333336 151 104 167 c -104.666664 183 104.666664 199.66667 104 217 c -103.333336 234.33333 103.333336 252.66667 104 272 c -104.666664 291.33334 104.666664 310.33334 104 329 c -104 353.66666 104 379.66666 104 407 c -104 434.33334 104 459.33334 104 482 c -104 504.66666 104 524.66669 104 542 c -104 559.33331 103.666664 574 103 586 c -102.333336 598 102.333336 603.66669 103 603 c -101 615.66669 96.333336 624 89 628 c -81.666664 632 66.666672 635 44 637 c -26 637 l -26 660 l -26 675.33331 26.666666 683 28 683 c -38 684 l -44.666668 684.66669 54.333332 685.33331 67 686 c -79.666664 686.66669 92 687.33331 104 688 c -115.333336 688.66669 127.666664 689.33331 141 690 c -154.333328 690.66669 164.333328 691.66669 171 693 c -177.66667 694.33331 181.33333 694.66669 182 694 c -185 694 l -185 379 l -185 167.666656 185.33333 61.333332 186 60 c -188.66667 54.666668 192.66667 51 198 49 c -212 47 228.33333 46 247 46 c -263 46 l -263 0 l -255 0 l -232 1 l -216.66667 1.666667 200.33333 2 183 2 c -165.666672 2 153 2.333333 145 3 c -137 3.666667 124.333336 3.666667 107 3 c -89.666664 2.333333 73 1.666667 57 1 c -34 0 l -26 0 l -26 46 l -42 46 l -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -42 46 m -56 46 l -82 46 97.666664 50.666664 103 60 c -103 68 l -103 74 103 81.666664 103 91 c -103 100.333336 103 111.333336 103 124 c -103 136.666672 103.333336 151 104 167 c -104.666664 183 104.666664 199.66667 104 217 c -103.333336 234.33333 103.333336 252.66667 104 272 c -104.666664 291.33334 104.666664 310.33334 104 329 c -104 353.66666 104 379.66666 104 407 c -104 434.33334 104 459.33334 104 482 c -104 504.66666 104 524.66669 104 542 c -104 559.33331 103.666664 574 103 586 c -102.333336 598 102.333336 603.66669 103 603 c -101 615.66669 96.333336 624 89 628 c -81.666664 632 66.666672 635 44 637 c -26 637 l -26 660 l -26 675.33331 26.666666 683 28 683 c -38 684 l -44.666668 684.66669 54.333332 685.33331 67 686 c -79.666664 686.66669 92 687.33331 104 688 c -115.333336 688.66669 127.666664 689.33331 141 690 c -154.333328 690.66669 164.333328 691.66669 171 693 c -177.66667 694.33331 181.33333 694.66669 182 694 c -185 694 l -185 379 l -185 167.666656 185.33333 61.333332 186 60 c -188.66667 54.666668 192.66667 51 198 49 c -212 47 228.33333 46 247 46 c -263 46 l -263 0 l -255 0 l -232 1 l -216.66667 1.666667 200.33333 2 183 2 c -165.666672 2 153 2.333333 145 3 c -137 3.666667 124.333336 3.666667 107 3 c -89.666664 2.333333 73 1.666667 57 1 c -34 0 l -26 0 l -26 46 l -42 46 l -h -S -Q -q -[0.0329845 0 0 -0.0329845 1187.97192 1449.91809] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -69 -66 m -83.666664 -66 95.333336 -70.666664 104 -80 c -112.666664 -89.333336 117.333336 -101.333336 118 -116 c -118 -128 115 -137.666672 109 -145 c -103 -152.333328 97 -157.333328 91 -160 c -86.333336 -162 88.333336 -164 97 -166 c -101.666664 -167.333328 106.333336 -168 111 -168 c -124.333336 -168 136.666672 -165 148 -159 c -159.333328 -153 168.33333 -146 175 -138 c -181.66667 -130 189 -119.333336 197 -106 c -205 -92.666664 210.33333 -82.333336 213 -75 c -215.66667 -67.666664 219.66667 -57 225 -43 c -242 0 l -170 183 l -156.666672 216.33334 141.666672 254.33333 125 297 c -109 337.66666 99.333336 361.33334 96 368 c -92.666664 374.66666 87.333336 379 80 381 c -79.333336 381.66666 78.666664 382 78 382 c -70 384 55.333336 385 34 385 c -19 385 l -19 431 l -26 431 l -46 430 l -58.666668 430 72.666664 429.66666 88 429 c -103.333336 428.33334 114.666664 428 122 428 c -126.666664 428 133.333328 428 142 428 c -150.666672 428 160.333328 428.33334 171 429 c -181.66667 429.66666 191.33333 430 200 430 c -208.66667 430 216.66667 430 224 430 c -233 431 l -241 431 l -241 385 l -232 385 l -199.33333 385 183.66667 378.66666 185 366 c -286 112 l -286 112.666664 301.33334 151 332 227 c -376 341 l -376 350 l -376 360 372.66666 367.66666 366 373 c -359.33334 378.33334 353.33334 381.66666 348 383 c -342.66666 384.33334 338 385 334 385 c -331 385 l -331 431 l -337 431 l -344 431 l -348.66666 431 354.33334 431 361 431 c -367.66666 431 374.66666 430.66666 382 430 c -389.33334 429.33334 397 429 405 429 c -413 429 418.66666 429 422 429 c -458.66666 429 485.66666 429.66666 503 431 c -508 431 l -508 385 l -497 385 l -459.66666 381.66666 434.66666 368.33334 422 345 c -420.66666 343.66666 406 307 378 235 c -350 163 320.33334 87.666672 289 9 c -257.66666 -69.666672 237 -116.333336 227 -131 c -195.66667 -179.66667 157.666672 -204 113 -204 c -83.666664 -204 60.666668 -195 44 -177 c -27.333332 -159 19 -138.666672 19 -116 c -19 -98 24.333332 -85.333336 35 -78 c -45.666668 -70.666664 57 -66.666664 69 -66 c -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -69 -66 m -83.666664 -66 95.333336 -70.666664 104 -80 c -112.666664 -89.333336 117.333336 -101.333336 118 -116 c -118 -128 115 -137.666672 109 -145 c -103 -152.333328 97 -157.333328 91 -160 c -86.333336 -162 88.333336 -164 97 -166 c -101.666664 -167.333328 106.333336 -168 111 -168 c -124.333336 -168 136.666672 -165 148 -159 c -159.333328 -153 168.33333 -146 175 -138 c -181.66667 -130 189 -119.333336 197 -106 c -205 -92.666664 210.33333 -82.333336 213 -75 c -215.66667 -67.666664 219.66667 -57 225 -43 c -242 0 l -170 183 l -156.666672 216.33334 141.666672 254.33333 125 297 c -109 337.66666 99.333336 361.33334 96 368 c -92.666664 374.66666 87.333336 379 80 381 c -79.333336 381.66666 78.666664 382 78 382 c -70 384 55.333336 385 34 385 c -19 385 l -19 431 l -26 431 l -46 430 l -58.666668 430 72.666664 429.66666 88 429 c -103.333336 428.33334 114.666664 428 122 428 c -126.666664 428 133.333328 428 142 428 c -150.666672 428 160.333328 428.33334 171 429 c -181.66667 429.66666 191.33333 430 200 430 c -208.66667 430 216.66667 430 224 430 c -233 431 l -241 431 l -241 385 l -232 385 l -199.33333 385 183.66667 378.66666 185 366 c -286 112 l -286 112.666664 301.33334 151 332 227 c -376 341 l -376 350 l -376 360 372.66666 367.66666 366 373 c -359.33334 378.33334 353.33334 381.66666 348 383 c -342.66666 384.33334 338 385 334 385 c -331 385 l -331 431 l -337 431 l -344 431 l -348.66666 431 354.33334 431 361 431 c -367.66666 431 374.66666 430.66666 382 430 c -389.33334 429.33334 397 429 405 429 c -413 429 418.66666 429 422 429 c -458.66666 429 485.66666 429.66666 503 431 c -508 431 l -508 385 l -497 385 l -459.66666 381.66666 434.66666 368.33334 422 345 c -420.66666 343.66666 406 307 378 235 c -350 163 320.33334 87.666672 289 9 c -257.66666 -69.666672 237 -116.333336 227 -131 c -195.66667 -179.66667 157.666672 -204 113 -204 c -83.666664 -204 60.666668 -195 44 -177 c -27.333332 -159 19 -138.666672 19 -116 c -19 -98 24.333332 -85.333336 35 -78 c -45.666668 -70.666664 57 -66.666664 69 -66 c -h -S -Q -q -[0.0466542 0 0 -0.0466542 1210.10876 1442.92004] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -60 749 m -64 750 l -67.333336 750 70.666664 750 74 750 c -86 750 l -114 726 l -176.66667 669.33331 222.33333 598.66669 251 514 c -279.66666 429.33331 294 341.33334 294 250 c -294 204.66666 290.66666 161 284 119 c -277.33334 77 269.66666 41.333336 261 12 c -252.33333 -17.333334 240 -46.666664 224 -76 c -208 -105.333336 195.33333 -127.666664 186 -143 c -176.66667 -158.333328 163 -175.33333 145 -194 c -127 -212.66667 116.333336 -223.66667 113 -227 c -109.666664 -230.33333 102 -236.66667 90 -246 c -88 -248 86.666664 -249.33333 86 -250 c -74 -250 l -68.666664 -250 65 -250 63 -250 c -61 -250 59.333332 -249 58 -247 c -56.666668 -245 55.666668 -242 55 -238 c -55.666668 -237.33333 59.333332 -233 66 -225 c -169.33334 -117.666664 221 40.666656 221 250 c -221 459.33334 169.33334 617.66669 66 725 c -59.333332 733 55.666668 737.33331 55 738 c -55 743.33331 56.666668 747 60 749 c -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -60 749 m -64 750 l -67.333336 750 70.666664 750 74 750 c -86 750 l -114 726 l -176.66667 669.33331 222.33333 598.66669 251 514 c -279.66666 429.33331 294 341.33334 294 250 c -294 204.66666 290.66666 161 284 119 c -277.33334 77 269.66666 41.333336 261 12 c -252.33333 -17.333334 240 -46.666664 224 -76 c -208 -105.333336 195.33333 -127.666664 186 -143 c -176.66667 -158.333328 163 -175.33333 145 -194 c -127 -212.66667 116.333336 -223.66667 113 -227 c -109.666664 -230.33333 102 -236.66667 90 -246 c -88 -248 86.666664 -249.33333 86 -250 c -74 -250 l -68.666664 -250 65 -250 63 -250 c -61 -250 59.333332 -249 58 -247 c -56.666668 -245 55.666668 -242 55 -238 c -55.666668 -237.33333 59.333332 -233 66 -225 c -169.33334 -117.666664 221 40.666656 221 250 c -221 459.33334 169.33334 617.66669 66 725 c -59.333332 733 55.666668 737.33331 55 738 c -55 743.33331 56.666668 747 60 749 c -h -S -Q -q -[0.0466542 0 0 -0.0466542 1228.30383 1442.92004] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -60 749 m -64 750 l -67.333336 750 70.666664 750 74 750 c -86 750 l -114 726 l -176.66667 669.33331 222.33333 598.66669 251 514 c -279.66666 429.33331 294 341.33334 294 250 c -294 204.66666 290.66666 161 284 119 c -277.33334 77 269.66666 41.333336 261 12 c -252.33333 -17.333334 240 -46.666664 224 -76 c -208 -105.333336 195.33333 -127.666664 186 -143 c -176.66667 -158.333328 163 -175.33333 145 -194 c -127 -212.66667 116.333336 -223.66667 113 -227 c -109.666664 -230.33333 102 -236.66667 90 -246 c -88 -248 86.666664 -249.33333 86 -250 c -74 -250 l -68.666664 -250 65 -250 63 -250 c -61 -250 59.333332 -249 58 -247 c -56.666668 -245 55.666668 -242 55 -238 c -55.666668 -237.33333 59.333332 -233 66 -225 c -169.33334 -117.666664 221 40.666656 221 250 c -221 459.33334 169.33334 617.66669 66 725 c -59.333332 733 55.666668 737.33331 55 738 c -55 743.33331 56.666668 747 60 749 c -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -60 749 m -64 750 l -67.333336 750 70.666664 750 74 750 c -86 750 l -114 726 l -176.66667 669.33331 222.33333 598.66669 251 514 c -279.66666 429.33331 294 341.33334 294 250 c -294 204.66666 290.66666 161 284 119 c -277.33334 77 269.66666 41.333336 261 12 c -252.33333 -17.333334 240 -46.666664 224 -76 c -208 -105.333336 195.33333 -127.666664 186 -143 c -176.66667 -158.333328 163 -175.33333 145 -194 c -127 -212.66667 116.333336 -223.66667 113 -227 c -109.666664 -230.33333 102 -236.66667 90 -246 c -88 -248 86.666664 -249.33333 86 -250 c -74 -250 l -68.666664 -250 65 -250 63 -250 c -61 -250 59.333332 -249 58 -247 c -56.666668 -245 55.666668 -242 55 -238 c -55.666668 -237.33333 59.333332 -233 66 -225 c -169.33334 -117.666664 221 40.666656 221 250 c -221 459.33334 169.33334 617.66669 66 725 c -59.333332 733 55.666668 737.33331 55 738 c -55 743.33331 56.666668 747 60 749 c -h -S -Q -q -[0 -0.0466404 -0.0466404 -0 159.60495 983.49463] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -366 683 m -366.66666 683 390.66666 684.66669 438 688 c -485.33334 691.33331 509.66666 693.33331 511 694 c -519 694 523 691.33331 523 686 c -523 681.33331 498.66666 580.66669 450 384 c -401.33334 187.33333 376.33334 87 375 83 c -373.66666 79 373.33334 74 374 68 c -374 40 383.33334 26 402 26 c -408 26.666666 414.66666 29.666666 422 35 c -436 48.333336 449.66666 80.333328 463 131 c -467 144.333328 470.33334 151.333328 473 152 c -474.33334 152.666672 477.66666 153 483 153 c -487 153 l -491 153 l -501 153 506 150.333328 506 145 c -506 141.666672 505 136.333328 503 129 c -494.33334 95.666664 484.33334 68.666672 473 48 c -461.66666 27.333332 452.33334 14 445 8 c -437.66666 2 428.33334 -3.333333 417 -8 c -411.66666 -9.333333 403.66666 -10 393 -10 c -370.33334 -10 351.33334 -5 336 5 c -320.66666 15 310.66666 25.333332 306 36 c -300 51 l -299.33334 51.666668 298 51.333332 296 50 c -294.66666 48.666668 293.33334 47.333332 292 46 c -252.66666 8.666664 212.66667 -10 172 -10 c -135.333328 -10 103 3.333332 75 30 c -47 56.666668 33 99 33 157 c -33 189 39.666664 221.66666 53 255 c -66.333336 288.33334 82.333328 317 101 341 c -132.333328 379 163.666672 405.33334 195 420 c -226.33333 434.66666 254.66667 442 280 442 c -317.33334 442 345.33334 428 364 400 c -367.33334 396 369 394.66666 369 396 c -369.66666 398.66666 378.66666 435 396 505 c -413.33334 575 422.66666 612 424 616 c -424 624.66669 421.66666 630 417 632 c -412.33334 634 399.33334 635.66669 378 637 c -357 637 l -353 641 351 643.66669 351 645 c -351 646.33331 351.66666 652.66669 353 664 c -356.33334 676.66669 360.66666 683 366 683 c -h -352 326 m -336.66666 378.66666 311.66666 405 277 405 c -253.66667 405 231.33333 394.66666 210 374 c -188.66667 353.33334 172 326.33334 160 293 c -140.666672 240.33333 127 185.66667 119 129 c -119 127 119 123.333336 119 118 c -119 112.666664 118.666664 108.666664 118 106 c -118 76 124 55.333336 136 44 c -148 32.666664 162.333328 26.666666 179 26 c -215 26 252 50 290 98 c -298 109 l -352 326 l -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -366 683 m -366.66666 683 390.66666 684.66669 438 688 c -485.33334 691.33331 509.66666 693.33331 511 694 c -519 694 523 691.33331 523 686 c -523 681.33331 498.66666 580.66669 450 384 c -401.33334 187.33333 376.33334 87 375 83 c -373.66666 79 373.33334 74 374 68 c -374 40 383.33334 26 402 26 c -408 26.666666 414.66666 29.666666 422 35 c -436 48.333336 449.66666 80.333328 463 131 c -467 144.333328 470.33334 151.333328 473 152 c -474.33334 152.666672 477.66666 153 483 153 c -487 153 l -491 153 l -501 153 506 150.333328 506 145 c -506 141.666672 505 136.333328 503 129 c -494.33334 95.666664 484.33334 68.666672 473 48 c -461.66666 27.333332 452.33334 14 445 8 c -437.66666 2 428.33334 -3.333333 417 -8 c -411.66666 -9.333333 403.66666 -10 393 -10 c -370.33334 -10 351.33334 -5 336 5 c -320.66666 15 310.66666 25.333332 306 36 c -300 51 l -299.33334 51.666668 298 51.333332 296 50 c -294.66666 48.666668 293.33334 47.333332 292 46 c -252.66666 8.666664 212.66667 -10 172 -10 c -135.333328 -10 103 3.333332 75 30 c -47 56.666668 33 99 33 157 c -33 189 39.666664 221.66666 53 255 c -66.333336 288.33334 82.333328 317 101 341 c -132.333328 379 163.666672 405.33334 195 420 c -226.33333 434.66666 254.66667 442 280 442 c -317.33334 442 345.33334 428 364 400 c -367.33334 396 369 394.66666 369 396 c -369.66666 398.66666 378.66666 435 396 505 c -413.33334 575 422.66666 612 424 616 c -424 624.66669 421.66666 630 417 632 c -412.33334 634 399.33334 635.66669 378 637 c -357 637 l -353 641 351 643.66669 351 645 c -351 646.33331 351.66666 652.66669 353 664 c -356.33334 676.66669 360.66666 683 366 683 c -h -352 326 m -336.66666 378.66666 311.66666 405 277 405 c -253.66667 405 231.33333 394.66666 210 374 c -188.66667 353.33334 172 326.33334 160 293 c -140.666672 240.33333 127 185.66667 119 129 c -119 127 119 123.333336 119 118 c -119 112.666664 118.666664 108.666664 118 106 c -118 76 124 55.333336 136 44 c -148 32.666664 162.333328 26.666666 179 26 c -215 26 252 50 290 98 c -298 109 l -352 326 l -h -S -Q -q -[0 -0.0466404 -0.0466404 -0 159.60495 959.10168] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -78 35 m -78 35 78 43.333332 78 60 c -78 76.666672 83.333336 91 94 103 c -104.666664 115 119 121 137 121 c -155.666672 121 172.33333 112.666672 187 96 c -201.66667 79.333328 209.33333 50 210 8 c -210 -15.333334 207 -38 201 -60 c -195 -82 188 -101 180 -117 c -172 -133 163.333328 -146.666672 154 -158 c -144.666672 -169.33333 136.666672 -178.33333 130 -185 c -123.333336 -191.66667 119 -194.66667 117 -194 c -114.333336 -194 110 -191 104 -185 c -98 -179 95 -174.66667 95 -172 c -95 -169.33333 98.666664 -164 106 -156 c -113.333336 -148 121.666664 -138 131 -126 c -140.333328 -114 149 -97.333336 157 -76 c -165 -54.666664 170.33333 -30.333334 173 -3 c -173 9 l -172 8 l -170.66667 7.333334 169 6.666667 167 6 c -165 5.333334 163 4.333334 161 3 c -159 1.666667 156 1 152 1 c -148 1 144 0.666667 140 0 c -122 0 107.333336 5.666666 96 17 c -78 35 l -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -78 35 m -78 35 78 43.333332 78 60 c -78 76.666672 83.333336 91 94 103 c -104.666664 115 119 121 137 121 c -155.666672 121 172.33333 112.666672 187 96 c -201.66667 79.333328 209.33333 50 210 8 c -210 -15.333334 207 -38 201 -60 c -195 -82 188 -101 180 -117 c -172 -133 163.333328 -146.666672 154 -158 c -144.666672 -169.33333 136.666672 -178.33333 130 -185 c -123.333336 -191.66667 119 -194.66667 117 -194 c -114.333336 -194 110 -191 104 -185 c -98 -179 95 -174.66667 95 -172 c -95 -169.33333 98.666664 -164 106 -156 c -113.333336 -148 121.666664 -138 131 -126 c -140.333328 -114 149 -97.333336 157 -76 c -165 -54.666664 170.33333 -30.333334 173 -3 c -173 9 l -172 8 l -170.66667 7.333334 169 6.666667 167 6 c -165 5.333334 163 4.333334 161 3 c -159 1.666667 156 1 152 1 c -148 1 144 0.666667 140 0 c -122 0 107.333336 5.666666 96 17 c -78 35 l -h -S -Q -q -[0 -0.0466404 -0.0466404 -0 159.60495 938.34668] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -21 287 m -21.666666 289 22.333334 291.66666 23 295 c -23.666666 298.33334 25.333334 305.66666 28 317 c -30.666666 328.33334 34 338.66666 38 348 c -42 357.33334 47 368.33334 53 381 c -59 393.66666 65.666664 403.66666 73 411 c -80.333336 418.33334 89 425.66666 99 433 c -109 440.33334 120 443.33334 132 442 c -151.333328 442 168.33333 438 183 430 c -197.66667 422 208 414.66666 214 408 c -220 401.33334 223.66667 394.66666 225 388 c -226.33333 384 227.33333 382 228 382 c -228.66667 382 231.33333 384.33334 236 389 c -268 423.66666 305 441 347 441 c -350 441 l -382 441 406 427.33334 422 400 c -427.33334 387.33334 430 375 430 363 c -430 343 425.66666 327 417 315 c -408.33334 303 399.66666 295.33334 391 292 c -382.33334 288.66666 374 287.33334 366 288 c -352.66666 288 342 291.66666 334 299 c -326 306.33334 322 316 322 328 c -322 360 340.66666 381.33334 378 392 c -363.33334 400.66666 351.33334 405 342 405 c -304.66666 405 270.33334 380.33334 239 331 c -232.33333 320.33334 227.33333 309.33334 224 298 c -220.66667 286.66666 209.33333 242.33334 190 165 c -167.333328 71.666664 154.333328 22 151 16 c -142.333328 -2 128 -11 108 -11 c -99.333336 -11 92.333336 -9 87 -5 c -81.666664 -1 78 3 76 7 c -74 11 73.333336 14.333333 74 17 c -74 25.666668 87.333328 83 114 189 c -140.666672 295 154 354 154 366 c -154 392 145.333328 405 128 405 c -114 405 102 395.66666 92 377 c -82 358.33334 74 338 68 316 c -62 294 58.333332 282 57 280 c -55.666668 278.66666 50.333336 278 41 278 c -27 278 l -23 282 21 285 21 287 c -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -21 287 m -21.666666 289 22.333334 291.66666 23 295 c -23.666666 298.33334 25.333334 305.66666 28 317 c -30.666666 328.33334 34 338.66666 38 348 c -42 357.33334 47 368.33334 53 381 c -59 393.66666 65.666664 403.66666 73 411 c -80.333336 418.33334 89 425.66666 99 433 c -109 440.33334 120 443.33334 132 442 c -151.333328 442 168.33333 438 183 430 c -197.66667 422 208 414.66666 214 408 c -220 401.33334 223.66667 394.66666 225 388 c -226.33333 384 227.33333 382 228 382 c -228.66667 382 231.33333 384.33334 236 389 c -268 423.66666 305 441 347 441 c -350 441 l -382 441 406 427.33334 422 400 c -427.33334 387.33334 430 375 430 363 c -430 343 425.66666 327 417 315 c -408.33334 303 399.66666 295.33334 391 292 c -382.33334 288.66666 374 287.33334 366 288 c -352.66666 288 342 291.66666 334 299 c -326 306.33334 322 316 322 328 c -322 360 340.66666 381.33334 378 392 c -363.33334 400.66666 351.33334 405 342 405 c -304.66666 405 270.33334 380.33334 239 331 c -232.33333 320.33334 227.33333 309.33334 224 298 c -220.66667 286.66666 209.33333 242.33334 190 165 c -167.333328 71.666664 154.333328 22 151 16 c -142.333328 -2 128 -11 108 -11 c -99.333336 -11 92.333336 -9 87 -5 c -81.666664 -1 78 3 76 7 c -74 11 73.333336 14.333333 74 17 c -74 25.666668 87.333328 83 114 189 c -140.666672 295 154 354 154 366 c -154 392 145.333328 405 128 405 c -114 405 102 395.66666 92 377 c -82 358.33334 74 338 68 316 c -62 294 58.333332 282 57 280 c -55.666668 278.66666 50.333336 278 41 278 c -27 278 l -23 282 21 285 21 287 c -h -S -Q -q -[0 -0.0466404 -0.0466404 -0 159.60495 905.6051] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -94 250 m -94 296 97.333336 339.66666 104 381 c -110.666664 422.33334 118.333336 458 127 488 c -135.666672 518 148 547.33331 164 576 c -180 604.66669 192.66667 627 202 643 c -211.33333 659 225.33333 676.33331 244 695 c -262.66666 713.66669 273.66666 725 277 729 c -280.33334 733 288.66666 740 302 750 c -315 750 l -319 750 l -328.33334 750 333 747 333 741 c -333 739 327.33334 732 316 720 c -304.66666 708 291 690.33331 275 667 c -259 643.66669 242.66667 615 226 581 c -209.33333 547 195.33333 501 184 443 c -172.66667 385 167 320.66669 167 250 c -167 179.33333 172.66667 115.333336 184 58 c -195.33333 0.666664 209 -45.666664 225 -81 c -241 -116.333336 257.33334 -145 274 -167 c -290.66666 -189 304.66666 -206.66667 316 -220 c -327.33334 -233.33333 333 -240.33333 333 -241 c -333 -247 328 -250 318 -250 c -315 -250 l -302 -250 l -274 -226 l -211.33333 -169.33333 165.666672 -98.666672 137 -14 c -108.333328 70.666672 94 158.666656 94 250 c -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -94 250 m -94 296 97.333336 339.66666 104 381 c -110.666664 422.33334 118.333336 458 127 488 c -135.666672 518 148 547.33331 164 576 c -180 604.66669 192.66667 627 202 643 c -211.33333 659 225.33333 676.33331 244 695 c -262.66666 713.66669 273.66666 725 277 729 c -280.33334 733 288.66666 740 302 750 c -315 750 l -319 750 l -328.33334 750 333 747 333 741 c -333 739 327.33334 732 316 720 c -304.66666 708 291 690.33331 275 667 c -259 643.66669 242.66667 615 226 581 c -209.33333 547 195.33333 501 184 443 c -172.66667 385 167 320.66669 167 250 c -167 179.33333 172.66667 115.333336 184 58 c -195.33333 0.666664 209 -45.666664 225 -81 c -241 -116.333336 257.33334 -145 274 -167 c -290.66666 -189 304.66666 -206.66667 316 -220 c -327.33334 -233.33333 333 -240.33333 333 -241 c -333 -247 328 -250 318 -250 c -315 -250 l -302 -250 l -274 -226 l -211.33333 -169.33333 165.666672 -98.666672 137 -14 c -108.333328 70.666672 94 158.666656 94 250 c -h -S -Q -q -[0 -0.0466404 -0.0466404 -0 159.60495 887.46191] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -295 316 m -295 342.66666 286 365.66666 268 385 c -250 404.33334 224 414 190 414 c -166 414 145.333328 409.66666 128 401 c -108 388.33334 98 371 98 349 c -97.333336 345.66666 97.333336 341.33334 98 336 c -98.666664 330.66666 104 322.66666 114 312 c -124 301.33334 138.333328 293 157 287 c -169 283.66666 183.66667 280.66666 201 278 c -218.33333 275.33334 233 272.33334 245 269 c -257 265.66666 267.66666 261.33334 277 256 c -288.33334 250.66667 299.33334 244 310 236 c -320.66666 228 331.33334 214.33333 342 195 c -352.66666 175.66667 358.33334 155 359 133 c -359 91.666664 346.33334 57.666668 321 31 c -295.66666 4.333332 254.66667 -9.333333 198 -10 c -190 -10 l -155.333328 -10 123.333336 2 94 26 c -86 19 l -77 10 l -73 6 69 2.333334 65 -1 c -54 -11 l -46 -11 l -42 -11 l -40 -11 37 -9 33 -5 c -33 74 l -33 132 l -33 146 33.666668 154.333328 35 157 c -36.333332 159.666672 39.666668 161.333328 45 162 c -54 162 l -62 162 67.333336 160.666672 70 158 c -72.666664 155.333328 74.333336 151.333328 75 146 c -75.666664 140.666672 78 131.666672 82 119 c -86 106.333336 92.333336 92.333336 101 77 c -124.333336 43 156.666656 26 198 26 c -262.66669 26 295 52 295 104 c -295 123.333336 289 139 277 151 c -263.66666 167 236 179 194 187 c -152 195 124.333336 202.66667 111 210 c -87 221.33333 68 236.66667 54 256 c -40 275.33334 33 296 33 318 c -33 344 38.666664 366 50 384 c -61.333336 402 75.666664 415.33334 93 424 c -110.333336 432.66666 127 438.66666 143 442 c -159 445.33334 173.66667 447 187 447 c -198 447 l -224.66667 447 248 442 268 432 c -283 424 l -292 431 l -298.66666 437 306 442.66666 314 448 c -322 448 l -326 448 l -328 448 331 446 335 442 c -335 310 l -329 304 l -301 304 l -297 308 295 312 295 316 c -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -295 316 m -295 342.66666 286 365.66666 268 385 c -250 404.33334 224 414 190 414 c -166 414 145.333328 409.66666 128 401 c -108 388.33334 98 371 98 349 c -97.333336 345.66666 97.333336 341.33334 98 336 c -98.666664 330.66666 104 322.66666 114 312 c -124 301.33334 138.333328 293 157 287 c -169 283.66666 183.66667 280.66666 201 278 c -218.33333 275.33334 233 272.33334 245 269 c -257 265.66666 267.66666 261.33334 277 256 c -288.33334 250.66667 299.33334 244 310 236 c -320.66666 228 331.33334 214.33333 342 195 c -352.66666 175.66667 358.33334 155 359 133 c -359 91.666664 346.33334 57.666668 321 31 c -295.66666 4.333332 254.66667 -9.333333 198 -10 c -190 -10 l -155.333328 -10 123.333336 2 94 26 c -86 19 l -77 10 l -73 6 69 2.333334 65 -1 c -54 -11 l -46 -11 l -42 -11 l -40 -11 37 -9 33 -5 c -33 74 l -33 132 l -33 146 33.666668 154.333328 35 157 c -36.333332 159.666672 39.666668 161.333328 45 162 c -54 162 l -62 162 67.333336 160.666672 70 158 c -72.666664 155.333328 74.333336 151.333328 75 146 c -75.666664 140.666672 78 131.666672 82 119 c -86 106.333336 92.333336 92.333336 101 77 c -124.333336 43 156.666656 26 198 26 c -262.66669 26 295 52 295 104 c -295 123.333336 289 139 277 151 c -263.66666 167 236 179 194 187 c -152 195 124.333336 202.66667 111 210 c -87 221.33333 68 236.66667 54 256 c -40 275.33334 33 296 33 318 c -33 344 38.666664 366 50 384 c -61.333336 402 75.666664 415.33334 93 424 c -110.333336 432.66666 127 438.66666 143 442 c -159 445.33334 173.66667 447 187 447 c -198 447 l -224.66667 447 248 442 268 432 c -283 424 l -292 431 l -298.66666 437 306 442.66666 314 448 c -322 448 l -326 448 l -328 448 331 446 335 442 c -335 310 l -329 304 l -301 304 l -297 308 295 312 295 316 c -h -S -Q -q -[0 -0.0466404 -0.0466404 -0 159.60495 869.039] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -28 214 m -28 277.33334 49.666664 332 93 378 c -136.333344 424 188.66666 447.33334 250 448 c -310 448 361.66666 425.33334 405 380 c -448.33334 334.66666 470.33334 279.66669 471 215 c -471 151.666656 449.66666 98.333336 407 55 c -364.33334 11.666664 312 -10 250 -10 c -185.33333 -10 132.333344 12.333332 91 57 c -49.666664 101.666672 28.666666 154 28 214 c -h -250 30 m -331.33334 30 372 84.333328 372 193 c -372 225 l -372 250 l -372 264.66666 371.66666 277.33334 371 288 c -370.33334 298.66666 368 311.33334 364 326 c -360 340.66666 354.66666 352.66666 348 362 c -341.33334 371.33334 331 380.66666 317 390 c -303 399.33334 286.66666 406 268 410 c -264.66666 410.66666 259.33334 411 252 411 c -232 411 213 407 195 399 c -166.333328 384.33334 147.666672 364 139 338 c -130.333328 312 126 281.33334 126 246 c -126 226 l -126 162 132.333328 117 145 91 c -166.333328 50.333332 201.33333 30 250 30 c -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -28 214 m -28 277.33334 49.666664 332 93 378 c -136.333344 424 188.66666 447.33334 250 448 c -310 448 361.66666 425.33334 405 380 c -448.33334 334.66666 470.33334 279.66669 471 215 c -471 151.666656 449.66666 98.333336 407 55 c -364.33334 11.666664 312 -10 250 -10 c -185.33333 -10 132.333344 12.333332 91 57 c -49.666664 101.666672 28.666666 154 28 214 c -h -250 30 m -331.33334 30 372 84.333328 372 193 c -372 225 l -372 250 l -372 264.66666 371.66666 277.33334 371 288 c -370.33334 298.66666 368 311.33334 364 326 c -360 340.66666 354.66666 352.66666 348 362 c -341.33334 371.33334 331 380.66666 317 390 c -303 399.33334 286.66666 406 268 410 c -264.66666 410.66666 259.33334 411 252 411 c -232 411 213 407 195 399 c -166.333328 384.33334 147.666672 364 139 338 c -130.333328 312 126 281.33334 126 246 c -126 226 l -126 162 132.333328 117 145 91 c -166.333328 50.333332 201.33333 30 250 30 c -h -S -Q -q -[0 -0.0466404 -0.0466404 -0 159.60495 845.71875] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -42 46 m -56 46 l -82 46 97.666664 50.666664 103 60 c -103 68 l -103 74 103 81.666664 103 91 c -103 100.333336 103 111.333336 103 124 c -103 136.666672 103.333336 151 104 167 c -104.666664 183 104.666664 199.66667 104 217 c -103.333336 234.33333 103.333336 252.66667 104 272 c -104.666664 291.33334 104.666664 310.33334 104 329 c -104 353.66666 104 379.66666 104 407 c -104 434.33334 104 459.33334 104 482 c -104 504.66666 104 524.66669 104 542 c -104 559.33331 103.666664 574 103 586 c -102.333336 598 102.333336 603.66669 103 603 c -101 615.66669 96.333336 624 89 628 c -81.666664 632 66.666672 635 44 637 c -26 637 l -26 660 l -26 675.33331 26.666666 683 28 683 c -38 684 l -44.666668 684.66669 54.333332 685.33331 67 686 c -79.666664 686.66669 92 687.33331 104 688 c -115.333336 688.66669 127.666664 689.33331 141 690 c -154.333328 690.66669 164.333328 691.66669 171 693 c -177.66667 694.33331 181.33333 694.66669 182 694 c -185 694 l -185 379 l -185 167.666656 185.33333 61.333332 186 60 c -188.66667 54.666668 192.66667 51 198 49 c -212 47 228.33333 46 247 46 c -263 46 l -263 0 l -255 0 l -232 1 l -216.66667 1.666667 200.33333 2 183 2 c -165.666672 2 153 2.333333 145 3 c -137 3.666667 124.333336 3.666667 107 3 c -89.666664 2.333333 73 1.666667 57 1 c -34 0 l -26 0 l -26 46 l -42 46 l -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -42 46 m -56 46 l -82 46 97.666664 50.666664 103 60 c -103 68 l -103 74 103 81.666664 103 91 c -103 100.333336 103 111.333336 103 124 c -103 136.666672 103.333336 151 104 167 c -104.666664 183 104.666664 199.66667 104 217 c -103.333336 234.33333 103.333336 252.66667 104 272 c -104.666664 291.33334 104.666664 310.33334 104 329 c -104 353.66666 104 379.66666 104 407 c -104 434.33334 104 459.33334 104 482 c -104 504.66666 104 524.66669 104 542 c -104 559.33331 103.666664 574 103 586 c -102.333336 598 102.333336 603.66669 103 603 c -101 615.66669 96.333336 624 89 628 c -81.666664 632 66.666672 635 44 637 c -26 637 l -26 660 l -26 675.33331 26.666666 683 28 683 c -38 684 l -44.666668 684.66669 54.333332 685.33331 67 686 c -79.666664 686.66669 92 687.33331 104 688 c -115.333336 688.66669 127.666664 689.33331 141 690 c -154.333328 690.66669 164.333328 691.66669 171 693 c -177.66667 694.33331 181.33333 694.66669 182 694 c -185 694 l -185 379 l -185 167.666656 185.33333 61.333332 186 60 c -188.66667 54.666668 192.66667 51 198 49 c -212 47 228.33333 46 247 46 c -263 46 l -263 0 l -255 0 l -232 1 l -216.66667 1.666667 200.33333 2 183 2 c -165.666672 2 153 2.333333 145 3 c -137 3.666667 124.333336 3.666667 107 3 c -89.666664 2.333333 73 1.666667 57 1 c -34 0 l -26 0 l -26 46 l -42 46 l -h -S -Q -q -[0 -0.0466404 -0.0466404 -0 159.60495 832.70612] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -137 305 m -137 305 129.666672 305 115 305 c -100.333336 305 88 310 78 320 c -68 330 63 343 63 359 c -63 382.33334 74.333328 403 97 421 c -119.666672 439 160 448 218 448 c -266.66666 448 306 437.33334 336 416 c -366 394.66666 386 369.33334 396 340 c -399.33334 330.66666 401 320.33334 401 309 c -401 297.66666 401.33334 259.33334 402 194 c -402 124 l -402 92 403.66666 70 407 58 c -410.33334 46 417.33334 40 428 40 c -438 40 444.66666 45.333332 448 56 c -451.33334 66.666664 453 84.333328 453 109 c -453 145 l -493 145 l -493 106 l -492.33334 79.333328 491.33334 63.666668 490 59 c -484 39 472.33334 23.333334 455 12 c -437.66666 0.666666 419.33334 -5.333334 400 -6 c -380.66666 -6.666667 365 -0.666667 353 12 c -341 24.666668 333 38.666664 329 54 c -329 58 l -327 55 l -325.66666 53 324 51 322 49 c -320 47 317.33334 44 314 40 c -310.66666 36 306.66666 32.333332 302 29 c -297.33334 25.666666 292.33334 21.666668 287 17 c -281.66666 12.333333 275.66666 8.666667 269 6 c -262.33334 3.333333 255 0.666667 247 -2 c -239 -4.666667 230.33333 -6.666667 221 -8 c -211.66667 -9.333333 201.33333 -10.333333 190 -11 c -150 -11 114 -0.666668 82 20 c -50 40.666668 34 69.666664 34 107 c -34 121 36.333332 134.333328 41 147 c -45.666668 159.666672 54.666664 173.33333 68 188 c -81.333336 202.66667 97.333328 215 116 225 c -134.666672 235 160.666656 244.33333 194 253 c -227.33334 261.66666 264 266.66666 304 268 c -318 268 l -318 290 l -318 312.66666 316 329.33334 312 340 c -297.33334 387.33334 265 411 215 411 c -203 411 191.66667 410.66666 181 410 c -170.33333 409.33334 162 408 156 406 c -150 404 147.333328 403 148 403 c -162.666672 393 170 378.33334 170 359 c -170 342.33334 164.666672 329.33334 154 320 c -137 305 l -h -126 106 m -126 85.333328 134 67 150 51 c -166 35 185.66667 26.666666 209 26 c -234.33333 26 256.66666 33.666664 276 49 c -295.33334 64.333336 308.33334 84.333328 315 109 c -316.33334 113.666664 317.33334 135.666656 318 175 c -318 213.66667 317.66666 233 317 233 c -311.66666 233 304.66666 232.66667 296 232 c -287.33334 231.33333 272.33334 228.33333 251 223 c -229.66667 217.66667 210.33333 211 193 203 c -175.66667 195 160.333328 182.66667 147 166 c -133.666672 149.333328 126.666664 129.333328 126 106 c -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -137 305 m -137 305 129.666672 305 115 305 c -100.333336 305 88 310 78 320 c -68 330 63 343 63 359 c -63 382.33334 74.333328 403 97 421 c -119.666672 439 160 448 218 448 c -266.66666 448 306 437.33334 336 416 c -366 394.66666 386 369.33334 396 340 c -399.33334 330.66666 401 320.33334 401 309 c -401 297.66666 401.33334 259.33334 402 194 c -402 124 l -402 92 403.66666 70 407 58 c -410.33334 46 417.33334 40 428 40 c -438 40 444.66666 45.333332 448 56 c -451.33334 66.666664 453 84.333328 453 109 c -453 145 l -493 145 l -493 106 l -492.33334 79.333328 491.33334 63.666668 490 59 c -484 39 472.33334 23.333334 455 12 c -437.66666 0.666666 419.33334 -5.333334 400 -6 c -380.66666 -6.666667 365 -0.666667 353 12 c -341 24.666668 333 38.666664 329 54 c -329 58 l -327 55 l -325.66666 53 324 51 322 49 c -320 47 317.33334 44 314 40 c -310.66666 36 306.66666 32.333332 302 29 c -297.33334 25.666666 292.33334 21.666668 287 17 c -281.66666 12.333333 275.66666 8.666667 269 6 c -262.33334 3.333333 255 0.666667 247 -2 c -239 -4.666667 230.33333 -6.666667 221 -8 c -211.66667 -9.333333 201.33333 -10.333333 190 -11 c -150 -11 114 -0.666668 82 20 c -50 40.666668 34 69.666664 34 107 c -34 121 36.333332 134.333328 41 147 c -45.666668 159.666672 54.666664 173.33333 68 188 c -81.333336 202.66667 97.333328 215 116 225 c -134.666672 235 160.666656 244.33333 194 253 c -227.33334 261.66666 264 266.66666 304 268 c -318 268 l -318 290 l -318 312.66666 316 329.33334 312 340 c -297.33334 387.33334 265 411 215 411 c -203 411 191.66667 410.66666 181 410 c -170.33333 409.33334 162 408 156 406 c -150 404 147.333328 403 148 403 c -162.666672 393 170 378.33334 170 359 c -170 342.33334 164.666672 329.33334 154 320 c -137 305 l -h -126 106 m -126 85.333328 134 67 150 51 c -166 35 185.66667 26.666666 209 26 c -234.33333 26 256.66666 33.666664 276 49 c -295.33334 64.333336 308.33334 84.333328 315 109 c -316.33334 113.666664 317.33334 135.666656 318 175 c -318 213.66667 317.66666 233 317 233 c -311.66666 233 304.66666 232.66667 296 232 c -287.33334 231.33333 272.33334 228.33333 251 223 c -229.66667 217.66667 210.33333 211 193 203 c -175.66667 195 160.333328 182.66667 147 166 c -133.666672 149.333328 126.666664 129.333328 126 106 c -h -S -Q -q -[0 -0.0466404 -0.0466404 -0 159.60495 809.38586] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -36 46 m -50 46 l -76 46 91.666664 50.666664 97 60 c -97 68 l -97 74 97 81.666664 97 91 c -97 100.333336 97.333336 110.666664 98 122 c -98.666664 133.333328 98.666664 146.333328 98 161 c -97.333336 175.66667 97.333336 189.66667 98 203 c -98 223.66667 98 245.66667 98 269 c -98 292.33334 98 312 98 328 c -97 351 l -95 363.66666 90.333336 372 83 376 c -75.666664 380 60.666668 383 38 385 c -20 385 l -20 408 l -20 423.33334 20.666666 431 22 431 c -32 432 l -38.666668 432.66666 48 433.33334 60 434 c -72 434.66666 84 435.33334 96 436 c -106.666664 436.66666 118.333336 437.33334 131 438 c -143.666672 438.66666 153.333328 439.66666 160 441 c -166.666672 442.33334 170.33333 442.66666 171 442 c -174 442 l -174 373 l -200 418.33334 232.33333 441 271 441 c -277 441 l -307 441 329 433.66666 343 419 c -357 404.33334 364 389 364 373 c -364 359 359.66666 347 351 337 c -342.33334 327 329.66666 322 313 322 c -296.33334 322 284 327.33334 276 338 c -268 348.66666 263.66666 360 263 372 c -263 378 263.66666 383.33334 265 388 c -266.33334 392.66666 268 396.66666 270 400 c -272 403.33334 273 405 273 405 c -271.66666 406.33334 264 405 250 401 c -239.33333 395.66666 231.33333 390.66666 226 386 c -194.66667 356 179 296.33334 179 207 c -179 154 l -179 145.333328 179 136.333328 179 127 c -179 117.666664 179 109 179 101 c -179 93 179.33333 86.333336 180 81 c -180.66667 75.666664 180.66667 70.666664 180 66 c -180 61 l -180.66667 59.666668 181.66667 58.333332 183 57 c -184.33333 55.666668 186 54.666668 188 54 c -190 53.333332 191.66667 52.333332 193 51 c -194.33333 49.666668 196.66667 49 200 49 c -203.33333 49 205.66667 48.666668 207 48 c -208.33333 47.333332 211.33333 47 216 47 c -220.66667 47 223.66667 47 225 47 c -226.33333 47 229.66667 46.666668 235 46 c -240.33333 45.333332 243.66667 45.333332 245 46 c -276 46 l -276 0 l -267 0 l -255 2 212.66667 3 140 3 c -71.333328 3 34 2 28 0 c -20 0 l -20 46 l -36 46 l -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -36 46 m -50 46 l -76 46 91.666664 50.666664 97 60 c -97 68 l -97 74 97 81.666664 97 91 c -97 100.333336 97.333336 110.666664 98 122 c -98.666664 133.333328 98.666664 146.333328 98 161 c -97.333336 175.66667 97.333336 189.66667 98 203 c -98 223.66667 98 245.66667 98 269 c -98 292.33334 98 312 98 328 c -97 351 l -95 363.66666 90.333336 372 83 376 c -75.666664 380 60.666668 383 38 385 c -20 385 l -20 408 l -20 423.33334 20.666666 431 22 431 c -32 432 l -38.666668 432.66666 48 433.33334 60 434 c -72 434.66666 84 435.33334 96 436 c -106.666664 436.66666 118.333336 437.33334 131 438 c -143.666672 438.66666 153.333328 439.66666 160 441 c -166.666672 442.33334 170.33333 442.66666 171 442 c -174 442 l -174 373 l -200 418.33334 232.33333 441 271 441 c -277 441 l -307 441 329 433.66666 343 419 c -357 404.33334 364 389 364 373 c -364 359 359.66666 347 351 337 c -342.33334 327 329.66666 322 313 322 c -296.33334 322 284 327.33334 276 338 c -268 348.66666 263.66666 360 263 372 c -263 378 263.66666 383.33334 265 388 c -266.33334 392.66666 268 396.66666 270 400 c -272 403.33334 273 405 273 405 c -271.66666 406.33334 264 405 250 401 c -239.33333 395.66666 231.33333 390.66666 226 386 c -194.66667 356 179 296.33334 179 207 c -179 154 l -179 145.333328 179 136.333328 179 127 c -179 117.666664 179 109 179 101 c -179 93 179.33333 86.333336 180 81 c -180.66667 75.666664 180.66667 70.666664 180 66 c -180 61 l -180.66667 59.666668 181.66667 58.333332 183 57 c -184.33333 55.666668 186 54.666668 188 54 c -190 53.333332 191.66667 52.333332 193 51 c -194.33333 49.666668 196.66667 49 200 49 c -203.33333 49 205.66667 48.666668 207 48 c -208.33333 47.333332 211.33333 47 216 47 c -220.66667 47 223.66667 47 225 47 c -226.33333 47 229.66667 46.666668 235 46 c -240.33333 45.333332 243.66667 45.333332 245 46 c -276 46 l -276 0 l -267 0 l -255 2 212.66667 3 140 3 c -71.333328 3 34 2 28 0 c -20 0 l -20 46 l -36 46 l -h -S -Q -q -[0 -0.0466404 -0.0466404 -0 159.60495 779.39612] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -36 46 m -50 46 l -76 46 91.666664 50.666664 97 60 c -97 68 l -97 74 97 81.666664 97 91 c -97 100.333336 97.333336 110.666664 98 122 c -98.666664 133.333328 98.666664 146.333328 98 161 c -97.333336 175.66667 97.333336 189.66667 98 203 c -98 223.66667 98 245.66667 98 269 c -98 292.33334 98 312 98 328 c -97 351 l -95 363.66666 90.333336 372 83 376 c -75.666664 380 60.666668 383 38 385 c -20 385 l -20 408 l -20 423.33334 20.666666 431 22 431 c -32 432 l -38.666668 432.66666 48 433.33334 60 434 c -72 434.66666 84 435.33334 96 436 c -106.666664 436.66666 118.333336 437.33334 131 438 c -143.666672 438.66666 153.333328 439.66666 160 441 c -166.666672 442.33334 170.33333 442.66666 171 442 c -174 442 l -174 373 l -200 418.33334 232.33333 441 271 441 c -277 441 l -307 441 329 433.66666 343 419 c -357 404.33334 364 389 364 373 c -364 359 359.66666 347 351 337 c -342.33334 327 329.66666 322 313 322 c -296.33334 322 284 327.33334 276 338 c -268 348.66666 263.66666 360 263 372 c -263 378 263.66666 383.33334 265 388 c -266.33334 392.66666 268 396.66666 270 400 c -272 403.33334 273 405 273 405 c -271.66666 406.33334 264 405 250 401 c -239.33333 395.66666 231.33333 390.66666 226 386 c -194.66667 356 179 296.33334 179 207 c -179 154 l -179 145.333328 179 136.333328 179 127 c -179 117.666664 179 109 179 101 c -179 93 179.33333 86.333336 180 81 c -180.66667 75.666664 180.66667 70.666664 180 66 c -180 61 l -180.66667 59.666668 181.66667 58.333332 183 57 c -184.33333 55.666668 186 54.666668 188 54 c -190 53.333332 191.66667 52.333332 193 51 c -194.33333 49.666668 196.66667 49 200 49 c -203.33333 49 205.66667 48.666668 207 48 c -208.33333 47.333332 211.33333 47 216 47 c -220.66667 47 223.66667 47 225 47 c -226.33333 47 229.66667 46.666668 235 46 c -240.33333 45.333332 243.66667 45.333332 245 46 c -276 46 l -276 0 l -267 0 l -255 2 212.66667 3 140 3 c -71.333328 3 34 2 28 0 c -20 0 l -20 46 l -36 46 l -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -36 46 m -50 46 l -76 46 91.666664 50.666664 97 60 c -97 68 l -97 74 97 81.666664 97 91 c -97 100.333336 97.333336 110.666664 98 122 c -98.666664 133.333328 98.666664 146.333328 98 161 c -97.333336 175.66667 97.333336 189.66667 98 203 c -98 223.66667 98 245.66667 98 269 c -98 292.33334 98 312 98 328 c -97 351 l -95 363.66666 90.333336 372 83 376 c -75.666664 380 60.666668 383 38 385 c -20 385 l -20 408 l -20 423.33334 20.666666 431 22 431 c -32 432 l -38.666668 432.66666 48 433.33334 60 434 c -72 434.66666 84 435.33334 96 436 c -106.666664 436.66666 118.333336 437.33334 131 438 c -143.666672 438.66666 153.333328 439.66666 160 441 c -166.666672 442.33334 170.33333 442.66666 171 442 c -174 442 l -174 373 l -200 418.33334 232.33333 441 271 441 c -277 441 l -307 441 329 433.66666 343 419 c -357 404.33334 364 389 364 373 c -364 359 359.66666 347 351 337 c -342.33334 327 329.66666 322 313 322 c -296.33334 322 284 327.33334 276 338 c -268 348.66666 263.66666 360 263 372 c -263 378 263.66666 383.33334 265 388 c -266.33334 392.66666 268 396.66666 270 400 c -272 403.33334 273 405 273 405 c -271.66666 406.33334 264 405 250 401 c -239.33333 395.66666 231.33333 390.66666 226 386 c -194.66667 356 179 296.33334 179 207 c -179 154 l -179 145.333328 179 136.333328 179 127 c -179 117.666664 179 109 179 101 c -179 93 179.33333 86.333336 180 81 c -180.66667 75.666664 180.66667 70.666664 180 66 c -180 61 l -180.66667 59.666668 181.66667 58.333332 183 57 c -184.33333 55.666668 186 54.666668 188 54 c -190 53.333332 191.66667 52.333332 193 51 c -194.33333 49.666668 196.66667 49 200 49 c -203.33333 49 205.66667 48.666668 207 48 c -208.33333 47.333332 211.33333 47 216 47 c -220.66667 47 223.66667 47 225 47 c -226.33333 47 229.66667 46.666668 235 46 c -240.33333 45.333332 243.66667 45.333332 245 46 c -276 46 l -276 0 l -267 0 l -255 2 212.66667 3 140 3 c -71.333328 3 34 2 28 0 c -20 0 l -20 46 l -36 46 l -h -S -Q -q -[0 -0.0466404 -0.0466404 -0 159.60495 761.11304] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -137 305 m -137 305 129.666672 305 115 305 c -100.333336 305 88 310 78 320 c -68 330 63 343 63 359 c -63 382.33334 74.333328 403 97 421 c -119.666672 439 160 448 218 448 c -266.66666 448 306 437.33334 336 416 c -366 394.66666 386 369.33334 396 340 c -399.33334 330.66666 401 320.33334 401 309 c -401 297.66666 401.33334 259.33334 402 194 c -402 124 l -402 92 403.66666 70 407 58 c -410.33334 46 417.33334 40 428 40 c -438 40 444.66666 45.333332 448 56 c -451.33334 66.666664 453 84.333328 453 109 c -453 145 l -493 145 l -493 106 l -492.33334 79.333328 491.33334 63.666668 490 59 c -484 39 472.33334 23.333334 455 12 c -437.66666 0.666666 419.33334 -5.333334 400 -6 c -380.66666 -6.666667 365 -0.666667 353 12 c -341 24.666668 333 38.666664 329 54 c -329 58 l -327 55 l -325.66666 53 324 51 322 49 c -320 47 317.33334 44 314 40 c -310.66666 36 306.66666 32.333332 302 29 c -297.33334 25.666666 292.33334 21.666668 287 17 c -281.66666 12.333333 275.66666 8.666667 269 6 c -262.33334 3.333333 255 0.666667 247 -2 c -239 -4.666667 230.33333 -6.666667 221 -8 c -211.66667 -9.333333 201.33333 -10.333333 190 -11 c -150 -11 114 -0.666668 82 20 c -50 40.666668 34 69.666664 34 107 c -34 121 36.333332 134.333328 41 147 c -45.666668 159.666672 54.666664 173.33333 68 188 c -81.333336 202.66667 97.333328 215 116 225 c -134.666672 235 160.666656 244.33333 194 253 c -227.33334 261.66666 264 266.66666 304 268 c -318 268 l -318 290 l -318 312.66666 316 329.33334 312 340 c -297.33334 387.33334 265 411 215 411 c -203 411 191.66667 410.66666 181 410 c -170.33333 409.33334 162 408 156 406 c -150 404 147.333328 403 148 403 c -162.666672 393 170 378.33334 170 359 c -170 342.33334 164.666672 329.33334 154 320 c -137 305 l -h -126 106 m -126 85.333328 134 67 150 51 c -166 35 185.66667 26.666666 209 26 c -234.33333 26 256.66666 33.666664 276 49 c -295.33334 64.333336 308.33334 84.333328 315 109 c -316.33334 113.666664 317.33334 135.666656 318 175 c -318 213.66667 317.66666 233 317 233 c -311.66666 233 304.66666 232.66667 296 232 c -287.33334 231.33333 272.33334 228.33333 251 223 c -229.66667 217.66667 210.33333 211 193 203 c -175.66667 195 160.333328 182.66667 147 166 c -133.666672 149.333328 126.666664 129.333328 126 106 c -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -137 305 m -137 305 129.666672 305 115 305 c -100.333336 305 88 310 78 320 c -68 330 63 343 63 359 c -63 382.33334 74.333328 403 97 421 c -119.666672 439 160 448 218 448 c -266.66666 448 306 437.33334 336 416 c -366 394.66666 386 369.33334 396 340 c -399.33334 330.66666 401 320.33334 401 309 c -401 297.66666 401.33334 259.33334 402 194 c -402 124 l -402 92 403.66666 70 407 58 c -410.33334 46 417.33334 40 428 40 c -438 40 444.66666 45.333332 448 56 c -451.33334 66.666664 453 84.333328 453 109 c -453 145 l -493 145 l -493 106 l -492.33334 79.333328 491.33334 63.666668 490 59 c -484 39 472.33334 23.333334 455 12 c -437.66666 0.666666 419.33334 -5.333334 400 -6 c -380.66666 -6.666667 365 -0.666667 353 12 c -341 24.666668 333 38.666664 329 54 c -329 58 l -327 55 l -325.66666 53 324 51 322 49 c -320 47 317.33334 44 314 40 c -310.66666 36 306.66666 32.333332 302 29 c -297.33334 25.666666 292.33334 21.666668 287 17 c -281.66666 12.333333 275.66666 8.666667 269 6 c -262.33334 3.333333 255 0.666667 247 -2 c -239 -4.666667 230.33333 -6.666667 221 -8 c -211.66667 -9.333333 201.33333 -10.333333 190 -11 c -150 -11 114 -0.666668 82 20 c -50 40.666668 34 69.666664 34 107 c -34 121 36.333332 134.333328 41 147 c -45.666668 159.666672 54.666664 173.33333 68 188 c -81.333336 202.66667 97.333328 215 116 225 c -134.666672 235 160.666656 244.33333 194 253 c -227.33334 261.66666 264 266.66666 304 268 c -318 268 l -318 290 l -318 312.66666 316 329.33334 312 340 c -297.33334 387.33334 265 411 215 411 c -203 411 191.66667 410.66666 181 410 c -170.33333 409.33334 162 408 156 406 c -150 404 147.333328 403 148 403 c -162.666672 393 170 378.33334 170 359 c -170 342.33334 164.666672 329.33334 154 320 c -137 305 l -h -126 106 m -126 85.333328 134 67 150 51 c -166 35 185.66667 26.666666 209 26 c -234.33333 26 256.66666 33.666664 276 49 c -295.33334 64.333336 308.33334 84.333328 315 109 c -316.33334 113.666664 317.33334 135.666656 318 175 c -318 213.66667 317.66666 233 317 233 c -311.66666 233 304.66666 232.66667 296 232 c -287.33334 231.33333 272.33334 228.33333 251 223 c -229.66667 217.66667 210.33333 211 193 203 c -175.66667 195 160.333328 182.66667 147 166 c -133.666672 149.333328 126.666664 129.333328 126 106 c -h -S -Q -q -[0 -0.0466404 -0.0466404 -0 159.60495 737.74615] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -376 495 m -376 505.66666 376 519 376 535 c -376 551 376.33334 562 377 568 c -377 598 373.66666 616.66669 367 624 c -360.33334 631.33331 343.33334 635.66669 316 637 c -298 637 l -298 660 l -298 675.33331 298.66666 683 300 683 c -310 684 l -316.66666 684.66669 326.33334 685.33331 339 686 c -351.66666 686.66669 364 687.33331 376 688 c -387.33334 688.66669 399.66666 689.33331 413 690 c -426.33334 690.66669 436.33334 691.66669 443 693 c -449.66666 694.33331 453.33334 694.66669 454 694 c -457 694 l -457 390 l -457 186 457.33334 83 458 81 c -460 67.666664 464.66666 59 472 55 c -479.33334 51 494.33334 48 517 46 c -535 46 l -535 0 l -533.66669 0 508.33334 -1.666667 459 -5 c -409.66666 -8.333334 383.33334 -10.333333 380 -11 c -373 -11 l -373 44 l -365 37 l -326.33334 5 283 -11 235 -11 c -183.66666 -11 137.333344 9.333332 96 50 c -54.666664 90.666672 34 145.666656 34 215 c -34 281.66669 55 336 97 378 c -139 420 188 441.33334 244 442 c -294 442 338 425.66666 376 393 c -376 495 l -h -373 342 m -343 384 305.33334 405 260 405 c -227.33333 405 198.33333 393 173 369 c -155 350.33334 143.666672 329 139 305 c -134.333328 281 131.666672 249.66667 131 211 c -131 173.66666 133.333328 143.333328 138 120 c -142.666672 96.666664 154.333328 76.333336 173 59 c -193 37 219 26 251 26 c -298.33334 26 339 51.666664 373 103 c -373 342 l -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -376 495 m -376 505.66666 376 519 376 535 c -376 551 376.33334 562 377 568 c -377 598 373.66666 616.66669 367 624 c -360.33334 631.33331 343.33334 635.66669 316 637 c -298 637 l -298 660 l -298 675.33331 298.66666 683 300 683 c -310 684 l -316.66666 684.66669 326.33334 685.33331 339 686 c -351.66666 686.66669 364 687.33331 376 688 c -387.33334 688.66669 399.66666 689.33331 413 690 c -426.33334 690.66669 436.33334 691.66669 443 693 c -449.66666 694.33331 453.33334 694.66669 454 694 c -457 694 l -457 390 l -457 186 457.33334 83 458 81 c -460 67.666664 464.66666 59 472 55 c -479.33334 51 494.33334 48 517 46 c -535 46 l -535 0 l -533.66669 0 508.33334 -1.666667 459 -5 c -409.66666 -8.333334 383.33334 -10.333333 380 -11 c -373 -11 l -373 44 l -365 37 l -326.33334 5 283 -11 235 -11 c -183.66666 -11 137.333344 9.333332 96 50 c -54.666664 90.666672 34 145.666656 34 215 c -34 281.66669 55 336 97 378 c -139 420 188 441.33334 244 442 c -294 442 338 425.66666 376 393 c -376 495 l -h -373 342 m -343 384 305.33334 405 260 405 c -227.33333 405 198.33333 393 173 369 c -155 350.33334 143.666672 329 139 305 c -134.333328 281 131.666672 249.66667 131 211 c -131 173.66666 133.333328 143.333328 138 120 c -142.666672 96.666664 154.333328 76.333336 173 59 c -193 37 219 26 251 26 c -298.33334 26 339 51.666664 373 103 c -373 342 l -h -S -Q -q -[0 -0.0466404 -0.0466404 -0 159.60495 711.81409] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -69 609 m -69 627.66669 75 642.33331 87 653 c -99 663.66669 113.666664 669 131 669 c -146.333328 667.66669 159.666672 662 171 652 c -182.33333 642 188 627.66669 188 609 c -188 589 182.33333 574 171 564 c -159.666672 554 145.666672 549 129 549 c -112.333328 549 98.333336 554 87 564 c -75.666664 574 69.666664 589 69 609 c -h -247 0 m -237 2 202.33334 3 143 3 c -135.666672 3 123.333336 3 106 3 c -88.666664 3 72 2.333334 56 1 c -34 0 l -26 0 l -26 46 l -42 46 l -60.666668 46 77 47 91 49 c -97 51.666668 100.666664 55.333332 102 60 c -103.333336 64.666664 104 78.666664 104 102 c -104 205 l -104 293 l -104 327.66666 103.333336 349.66666 102 359 c -100.666664 368.33334 96 374.66666 88 378 c -78.666664 382.66666 63 385 41 385 c -30 385 l -30 408 l -30 423.33334 30.666666 431 32 431 c -42 432 l -48.666668 432.66666 58 433.33334 70 434 c -82 434.66666 94 435.33334 106 436 c -117.333336 436.66666 129.333328 437.33334 142 438 c -154.666672 438.66666 164.333328 439.66666 171 441 c -177.66667 442.33334 181.33333 442.66666 182 442 c -185 442 l -185 62 l -188.33333 55.333332 192.33333 51.333332 197 50 c -201.66667 48.666668 213.33333 47.333332 232 46 c -255 46 l -255 0 l -247 0 l -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -69 609 m -69 627.66669 75 642.33331 87 653 c -99 663.66669 113.666664 669 131 669 c -146.333328 667.66669 159.666672 662 171 652 c -182.33333 642 188 627.66669 188 609 c -188 589 182.33333 574 171 564 c -159.666672 554 145.666672 549 129 549 c -112.333328 549 98.333336 554 87 564 c -75.666664 574 69.666664 589 69 609 c -h -247 0 m -237 2 202.33334 3 143 3 c -135.666672 3 123.333336 3 106 3 c -88.666664 3 72 2.333334 56 1 c -34 0 l -26 0 l -26 46 l -42 46 l -60.666668 46 77 47 91 49 c -97 51.666668 100.666664 55.333332 102 60 c -103.333336 64.666664 104 78.666664 104 102 c -104 205 l -104 293 l -104 327.66666 103.333336 349.66666 102 359 c -100.666664 368.33334 96 374.66666 88 378 c -78.666664 382.66666 63 385 41 385 c -30 385 l -30 408 l -30 423.33334 30.666666 431 32 431 c -42 432 l -48.666668 432.66666 58 433.33334 70 434 c -82 434.66666 94 435.33334 106 436 c -117.333336 436.66666 129.333328 437.33334 142 438 c -154.666672 438.66666 164.333328 439.66666 171 441 c -177.66667 442.33334 181.33333 442.66666 182 442 c -185 442 l -185 62 l -188.33333 55.333332 192.33333 51.333332 197 50 c -201.66667 48.666668 213.33333 47.333332 232 46 c -255 46 l -255 0 l -247 0 l -h -S -Q -q -[0 -0.0466404 -0.0466404 -0 159.60495 698.80139] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -383 58 m -345.66666 12.666664 303.33334 -10 256 -10 c -249 -10 l -165.666656 -10 117.666664 23 105 89 c -104.333336 93.666664 103.666664 139.333328 103 226 c -102.333336 298.66669 102 339.33334 102 348 c -102 356.66666 100 363.66666 96 369 c -89.333336 379.66666 69.333336 385 36 385 c -25 385 l -25 408 l -25 423.33334 25.666666 431 27 431 c -38 432 l -44.666668 432.66666 54.333332 433.33334 67 434 c -79.666664 434.66666 92.333336 435.33334 105 436 c -116.333336 436.66666 128.666672 437.33334 142 438 c -155.333328 438.66666 165.333328 439.66666 172 441 c -178.66667 442.33334 182.66667 442.66666 184 442 c -187 442 l -187 261 l -187.66667 138.333328 188.66667 72.666664 190 64 c -192 54 196.66667 46 204 40 c -217.33333 30.666666 237.33333 26 264 26 c -281.33334 26 297 29 311 35 c -325 41 335.66666 48.666664 343 58 c -350.33334 67.333336 357 78 363 90 c -369 102 373 112 375 120 c -377 128 378.33334 136 379 144 c -379 144.666672 379 150.333328 379 161 c -379 171.66667 379.33334 185 380 201 c -380.66666 217 380.66666 232.66667 380 248 c -380 315 l -380 345.66666 376.66666 364.66666 370 372 c -363.33334 379.33334 346.66666 383.66666 320 385 c -302 385 l -302 431 l -303.33334 431 328.66666 432.66666 378 436 c -427.33334 439.33334 453.66666 441.33334 457 442 c -464 442 l -464 264 l -464 144 464.33334 83 465 81 c -467 67.666664 471.66666 59 479 55 c -486.33334 51 501.33334 48 524 46 c -542 46 l -542 0 l -540.66669 0 515.66669 -1.666667 467 -5 c -418.33334 -8.333334 392.66666 -10.333333 390 -11 c -383 -11 l -383 58 l -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -383 58 m -345.66666 12.666664 303.33334 -10 256 -10 c -249 -10 l -165.666656 -10 117.666664 23 105 89 c -104.333336 93.666664 103.666664 139.333328 103 226 c -102.333336 298.66669 102 339.33334 102 348 c -102 356.66666 100 363.66666 96 369 c -89.333336 379.66666 69.333336 385 36 385 c -25 385 l -25 408 l -25 423.33334 25.666666 431 27 431 c -38 432 l -44.666668 432.66666 54.333332 433.33334 67 434 c -79.666664 434.66666 92.333336 435.33334 105 436 c -116.333336 436.66666 128.666672 437.33334 142 438 c -155.333328 438.66666 165.333328 439.66666 172 441 c -178.66667 442.33334 182.66667 442.66666 184 442 c -187 442 l -187 261 l -187.66667 138.333328 188.66667 72.666664 190 64 c -192 54 196.66667 46 204 40 c -217.33333 30.666666 237.33333 26 264 26 c -281.33334 26 297 29 311 35 c -325 41 335.66666 48.666664 343 58 c -350.33334 67.333336 357 78 363 90 c -369 102 373 112 375 120 c -377 128 378.33334 136 379 144 c -379 144.666672 379 150.333328 379 161 c -379 171.66667 379.33334 185 380 201 c -380.66666 217 380.66666 232.66667 380 248 c -380 315 l -380 345.66666 376.66666 364.66666 370 372 c -363.33334 379.33334 346.66666 383.66666 320 385 c -302 385 l -302 431 l -303.33334 431 328.66666 432.66666 378 436 c -427.33334 439.33334 453.66666 441.33334 457 442 c -464 442 l -464 264 l -464 144 464.33334 83 465 81 c -467 67.666664 471.66666 59 479 55 c -486.33334 51 501.33334 48 524 46 c -542 46 l -542 0 l -540.66669 0 515.66669 -1.666667 467 -5 c -418.33334 -8.333334 392.66666 -10.333333 390 -11 c -383 -11 l -383 58 l -h -S -Q -q -[0 -0.0466404 -0.0466404 -0 159.60495 672.86932] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -295 316 m -295 342.66666 286 365.66666 268 385 c -250 404.33334 224 414 190 414 c -166 414 145.333328 409.66666 128 401 c -108 388.33334 98 371 98 349 c -97.333336 345.66666 97.333336 341.33334 98 336 c -98.666664 330.66666 104 322.66666 114 312 c -124 301.33334 138.333328 293 157 287 c -169 283.66666 183.66667 280.66666 201 278 c -218.33333 275.33334 233 272.33334 245 269 c -257 265.66666 267.66666 261.33334 277 256 c -288.33334 250.66667 299.33334 244 310 236 c -320.66666 228 331.33334 214.33333 342 195 c -352.66666 175.66667 358.33334 155 359 133 c -359 91.666664 346.33334 57.666668 321 31 c -295.66666 4.333332 254.66667 -9.333333 198 -10 c -190 -10 l -155.333328 -10 123.333336 2 94 26 c -86 19 l -77 10 l -73 6 69 2.333334 65 -1 c -54 -11 l -46 -11 l -42 -11 l -40 -11 37 -9 33 -5 c -33 74 l -33 132 l -33 146 33.666668 154.333328 35 157 c -36.333332 159.666672 39.666668 161.333328 45 162 c -54 162 l -62 162 67.333336 160.666672 70 158 c -72.666664 155.333328 74.333336 151.333328 75 146 c -75.666664 140.666672 78 131.666672 82 119 c -86 106.333336 92.333336 92.333336 101 77 c -124.333336 43 156.666656 26 198 26 c -262.66669 26 295 52 295 104 c -295 123.333336 289 139 277 151 c -263.66666 167 236 179 194 187 c -152 195 124.333336 202.66667 111 210 c -87 221.33333 68 236.66667 54 256 c -40 275.33334 33 296 33 318 c -33 344 38.666664 366 50 384 c -61.333336 402 75.666664 415.33334 93 424 c -110.333336 432.66666 127 438.66666 143 442 c -159 445.33334 173.66667 447 187 447 c -198 447 l -224.66667 447 248 442 268 432 c -283 424 l -292 431 l -298.66666 437 306 442.66666 314 448 c -322 448 l -326 448 l -328 448 331 446 335 442 c -335 310 l -329 304 l -301 304 l -297 308 295 312 295 316 c -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -295 316 m -295 342.66666 286 365.66666 268 385 c -250 404.33334 224 414 190 414 c -166 414 145.333328 409.66666 128 401 c -108 388.33334 98 371 98 349 c -97.333336 345.66666 97.333336 341.33334 98 336 c -98.666664 330.66666 104 322.66666 114 312 c -124 301.33334 138.333328 293 157 287 c -169 283.66666 183.66667 280.66666 201 278 c -218.33333 275.33334 233 272.33334 245 269 c -257 265.66666 267.66666 261.33334 277 256 c -288.33334 250.66667 299.33334 244 310 236 c -320.66666 228 331.33334 214.33333 342 195 c -352.66666 175.66667 358.33334 155 359 133 c -359 91.666664 346.33334 57.666668 321 31 c -295.66666 4.333332 254.66667 -9.333333 198 -10 c -190 -10 l -155.333328 -10 123.333336 2 94 26 c -86 19 l -77 10 l -73 6 69 2.333334 65 -1 c -54 -11 l -46 -11 l -42 -11 l -40 -11 37 -9 33 -5 c -33 74 l -33 132 l -33 146 33.666668 154.333328 35 157 c -36.333332 159.666672 39.666668 161.333328 45 162 c -54 162 l -62 162 67.333336 160.666672 70 158 c -72.666664 155.333328 74.333336 151.333328 75 146 c -75.666664 140.666672 78 131.666672 82 119 c -86 106.333336 92.333336 92.333336 101 77 c -124.333336 43 156.666656 26 198 26 c -262.66669 26 295 52 295 104 c -295 123.333336 289 139 277 151 c -263.66666 167 236 179 194 187 c -152 195 124.333336 202.66667 111 210 c -87 221.33333 68 236.66667 54 256 c -40 275.33334 33 296 33 318 c -33 344 38.666664 366 50 384 c -61.333336 402 75.666664 415.33334 93 424 c -110.333336 432.66666 127 438.66666 143 442 c -159 445.33334 173.66667 447 187 447 c -198 447 l -224.66667 447 248 442 268 432 c -283 424 l -292 431 l -298.66666 437 306 442.66666 314 448 c -322 448 l -326 448 l -328 448 331 446 335 442 c -335 310 l -329 304 l -301 304 l -297 308 295 312 295 316 c -h -S -Q -q -[0 -0.0466404 -0.0466404 -0 159.60495 654.44635] cm -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -60 749 m -64 750 l -67.333336 750 70.666664 750 74 750 c -86 750 l -114 726 l -176.66667 669.33331 222.33333 598.66669 251 514 c -279.66666 429.33331 294 341.33334 294 250 c -294 204.66666 290.66666 161 284 119 c -277.33334 77 269.66666 41.333336 261 12 c -252.33333 -17.333334 240 -46.666664 224 -76 c -208 -105.333336 195.33333 -127.666664 186 -143 c -176.66667 -158.333328 163 -175.33333 145 -194 c -127 -212.66667 116.333336 -223.66667 113 -227 c -109.666664 -230.33333 102 -236.66667 90 -246 c -88 -248 86.666664 -249.33333 86 -250 c -74 -250 l -68.666664 -250 65 -250 63 -250 c -61 -250 59.333332 -249 58 -247 c -56.666668 -245 55.666668 -242 55 -238 c -55.666668 -237.33333 59.333332 -233 66 -225 c -169.33334 -117.666664 221 40.666656 221 250 c -221 459.33334 169.33334 617.66669 66 725 c -59.333332 733 55.666668 737.33331 55 738 c -55 743.33331 56.666668 747 60 749 c -h -f -1 w -0 J -0 j -4 M -1 w -0 J -0 j -4 M -60 749 m -64 750 l -67.333336 750 70.666664 750 74 750 c -86 750 l -114 726 l -176.66667 669.33331 222.33333 598.66669 251 514 c -279.66666 429.33331 294 341.33334 294 250 c -294 204.66666 290.66666 161 284 119 c -277.33334 77 269.66666 41.333336 261 12 c -252.33333 -17.333334 240 -46.666664 224 -76 c -208 -105.333336 195.33333 -127.666664 186 -143 c -176.66667 -158.333328 163 -175.33333 145 -194 c -127 -212.66667 116.333336 -223.66667 113 -227 c -109.666664 -230.33333 102 -236.66667 90 -246 c -88 -248 86.666664 -249.33333 86 -250 c -74 -250 l -68.666664 -250 65 -250 63 -250 c -61 -250 59.333332 -249 58 -247 c -56.666668 -245 55.666668 -242 55 -238 c -55.666668 -237.33333 59.333332 -233 66 -225 c -169.33334 -117.666664 221 40.666656 221 250 c -221 459.33334 169.33334 617.66669 66 725 c -59.333332 733 55.666668 737.33331 55 738 c -55 743.33331 56.666668 747 60 749 c -h -S -Q -Q -Q +gsave +[528.96 0 0 378.96 0 0] concat +/DeviceRGB setcolorspace +<< + /ImageType 1 + /Width 2204 + /Height 1579 + /ImageMatrix [2204 0 0 -1579 0 1579] + /BitsPerComponent 8 + /Decode [0 1 0 1 0 1] + /DataSource currentfile + /ASCII85Decode filter + /LZWDecode filter +>> +image +J3Vsg3$]7K#D>EP:q1$o*=mro@So+\<\5,H7Uo<*jE<[.O@Wn[3@'nb-^757;Rp>H +>q_R=AlC^cenm@9:1mM9jS"!dTMT<$3[GQ$8#0$s<4ZX!SPQ1`C/mioWjnAY&^gM+`4=1jRLW!YA +=M/6)*KS9PE`kN%="Tc_Aoh+fk'&t\ctIN)4XQLiVpoI(>.nOW?*DmsG$@,,f58"P +DKfeXi0S^6MAH=;fBr>1IXb_>kP+oS^^pnX!PjdJ%0OEX9GI`IODGpB_@VYP +$,Ve*/ITH-bV]jIOR,+@`"`Y"/@)9.f?D&^M-b]OrH +OmIKN1*g(o[EC"elTX_ZZ,c*_ECQL2A(g_UF= +ESQm4c#_\W:"=CBQYkQ&hA;15H/=mim3UV:)/KA +Qu3q"iY[\%M;jo*/W8X+c8CUAR-m+uj;AFrOlVo_9p=ZV:0!S@R;Q;sjr'1jRHBp? +D4B]+c?5]@RI5KqkSaqbU$.ptNMG_V:6h[?RVn[ol5G\ZWToqTXfLb+cF'e?RdRkm +ll-GRZ0[r4c*QdV:=Zc>Rr7&kmMh2J\aGrimCVg+cLnm>S*p6in/MrB_=3sJ%E%]U +:DLk=S8TFgnf3]:amtt*/^*`*cS`u=SF8VeoGnH2dI`t_:"/bU:K>sj*caE0; +T'sA]r#ZHgnbf"4c1ClU:Y#.:T5WQ[rZ@3_q>R"imJHo*ch78:TC;^Xhuj(2:_!Ol +=:G;h6j\E@/d=Sn*moVE0nrNM)FIVD%H55cLJ[C[6eHetiWMQ';%=d<=H*pP6qN54/ga!=SJ1"9 +;2S4G.RdIA(#m/7Mc"@E7G,9iirieL;3!D$=Nq`D6tqWXXu8c%h&GC-EK3oA3_*<> +*TP(`O&>=/8(db^j91$q;@Z#a=UcP87#@%(/k/Cb*@'WuOciU;8kE/;-03"4P>Z9n +8_H6SjTM9A;N=XI=\U@,7&cGLY#\0J>q>#iZ'J;5>"`"8/`jp]QW!6X9A+_HjoiMf +;\!81=cG/u7*1iq/nRf1SMTD]d@+!/C/%j52>"qTQ74G'4Y*Mu>>taF90r@pq +RT!C,:$KVWVc<)U;qcXql30JP<=Ya&>)cDE77jIY/uDV%SQ"g-;6!VkW`<6)0U497;8l(Y-qBbh-93!ENWt#)=5*U[ +lihsE7G$-7>\9M0#h#J*FnGiOg8"_b#qq#AaIC(ZW:th=kc)Pm002j>8i!7B*[qY1?e2?#/h]Z*m]Yg07cuD=,MFREmKLG:E*Xj7EN)A +0'6EnSTF4QdCNCSlKqH^7HqKeY4c2Vh0\UE +n\/)MqHmIoIIG/N^K9k&?ebO/n-/p/=:YI@>Rc8R7L?n50*Yh>*JYU(F7Oc;YY81U&?&S6-0ud>A)Im#hNUb"Ka&qdO +A))KnnchD$=Uu]e>`Fm:7S1^)0.(5bSWiW!;9E$;.V2keQ1Dptb?8a9A_atco*/XI +=cY=M>g8].7VU+MY;U"Jh4+"jER%_53bM^bSb'jHcWT^#BAEHXoEKln=qn*M" +7Z#Mr01KX2*M`7]Oj[E/8nhQ_V=_cqdopZbC#(qMo`h,>>)uQr>tq&.D\XnB]Ef37WLCYaEBp'/@c>7Y1Z?&c,_7`j=f04o%VS[8$EdFqf# +C2I7Y[J%VngKST6D;Dn7pBKU3>Eh7NE9n_RKrH>d*V^%]PB +hcoPuDr(B,p]giX>RuF*?4FaG7g\-Z08=H&*Q.Z-&`R%kMK)rS`V@Ikj'6M_ES`k! +q$/)(>`Y%g?;8Q;7k*P)YEj4c?-E&!1$2`eRWDePc2#C?k?RJIF5D>kq?K=M>n>6Gjo!/eo3Q@\H/CdJrSb)i9dJ@3Gl@!$Ap&<"bqd4:0 +IG_a4rs.N\?]Xc,?d8EH8*TtZYP*G&h>@5-nbunAqL;l>rVsq6s'P6oJ)C2(n,WMC +"TWKJ!3cn4n.>[T'`i7k!O*RFn0%ie,m&$7!jF6Xn1b#!2$7eX"0aojn3I1270IR$ +"L(T'n50?C<<[>E"gD89n6lMTAHm*f#-_qKn8S[eFU)l2#I&U]n::j!Ka;XS#dB9o +n<"#2PmMDt$*]s,n=^1CV$_1@$F$W>n?E?T[0pra$a@;PnA,Me`=-_-%'[tbnBh\! +eI?KN%C"XtnDOj2jUQ7o%^>=1nF7#Coac$;&$Z!CnGs1U"V>Y[&?uZUnIZ?f'bPF' +&[<>gnKAN",nb2H'!X#$nM(\32%ssi'BLV'sV$Z +nR31fAJT9"(9q]lnSo@"FVf%C(U8B)nUVN3Kc"fd(pT&;nW=\DPo4S0)6o_MnY$jU +V&F?Q)R6C_nZa#f[2X+r)mR'qn\H2"`>im>*3ma.n^/@3eK&Y_*O4E@ji/=gjW8F( +Hr9,Lna.Cfl?n`e+(rD3Z/m&_!?`c-+E?Vn")Y[j=PV-&8fQa0?h/#p[kk,f6#t#HoK[ +XX@"V+u3jVdXNM48LP3f.?\q%P)aj/P'XF"H8:q8&nN8MLEnX5-LuR0;Qh=.ZR@R, +.h[OdP)1\e^FGtC.Hd:pPd/$g?HZOhAf +6?n\`Ggf90;bhQms"gtB1ZF6K-\4/\Il:5*1=D:CdZlVO_([ZN2=kd5;eUB]K/Re# +.FX2,Eud-%GrMIO3+mFqa)sEJGreH83eqW2F*BX.5reG]4-J&SducFagFRD%4;.$D +e$LF-XEN(DG-fpao?_b]hKEtF/(;I#,'c@bANr[p5Ek=q1D;m72`W\#56?I%a'V+; +>sUth6&/T/a&bI2b:8_b-hJO(<%`;M1IFB"ra!j^f-VLcR96@roFOY>1 +ic6m=9m#2L[(f8`l>cIj*VB2J[/P'1!cc`pEE*?c1taU*o1e4U;!/Ef`t)&_&Phq- +;Nlr&PXRp(),)n=GL[sX[6IPH4#g513coj@1e1Je)cX/9[.[=I!khQ+oK4:Kb*%>2iglVY=@#oj(&_?&%lT`p[$;X'1e4,k^)5ea@=_o3O;k +G*Vc=FlbBdX^7_r?fpHX`oCJC!FN25?uhZ?FS/ef#UMACD>#Greh1hU12W=8D0?"i +p)RUO7:W4FA;8QDeidH*pLR;#@MIR-2FJf+:i,i;CtWC_j$dQEG"HHT*j4C%U@u<#9?U>AGRt +Ckf94`j'<#JS\>-D$I1\`iX+odqt=0CU:orPVI(k)/_pCDhb0.`iF%_UMr\rD,ZF3 +f"<4D#\j#KC"F;C[e3(5,=M6n=`pEX2PG/5;fbH%EVC>lPZr5DF]0$I3Hm3!2\A.G +;_M3@F15@D(LK`m.pdCiFS:?11lHPlO*=Z:F`YlQdd_L("^[O3,?I!AGE-B=P%g8K +Bc!4OpC2$5bBTaGH01*4`f#0[Tm)`fH^(dWQ)AZsWHS#e5$,EiQd:#fbDC1:LU`n1R%];fH\__DM+1X* +``J'8Q\LaRMj3UV#EO`:V2@7ON**'035&'hdnZ:^MtbtAR,;b*^j(+IN0s!kGk$AF +c650SAN9Nt)#e)L!bBsgA@S"MGjCDMmu]S.O(&EWVFcpT8!7!aNO8MEeHpe^H'+L2 +PIVE`q&CN&-tG>-A/S!M=\`J[;Id6IG$-hhq-T"u)_*j^QFUjuq/M`]FdIB!QaqO2 +q14nnKp[.BR(83Dq2q(*Q'locRCSlVq4X6;V4)\/R^oPhq6?DL[@;HPS%65%q8&R] +`LM4qS@Qn7q9b`neX_!=S[mRIq;Io*jdpb^T"46[q=1(;oq-O*T=Oomq>m6M"e^/J +TXkT*q@T6#A!>U_LYIXUUiU`qE^o<7AP6$Uq09r +qGF(M9n5GTa3NYb0 +XdN=U'`kHP"d<&,XLcH73CB$7jDfM$@ljLh](]%U"&aC+GP^d2g<6ZD"g@&AZ%aj8 +`\Fb'.C)DjQ)@]fqT6'()m;=O@Ttm&4$U$_#>t@g<*K]Q].p]Qn$-";[&4A?-6KZ8 +6+,6/[ZuEHRkM#c27H]4[@7u@eTnY>ICNL"J+Q%:e9SFa?+!m\\[_=AgKV3&IC`Cc +\snnD2\3M:V7T5d\XU9i4.m_nA7<*i@@PDJgWj53dU>3gEkB)A_?[Cd_cL'!=Bk)q +gTA&6\TM-NFdnV;45[Akl+]2X]k.kl`Xfm)ftR-e_3MR?#;O"R-6erp%,<=?S1\2s +117aQ?p$JX)qo:Z,Sl^]_9om4jo<:'rP`#-`7<>Ue^qYC*Q3;r,b57aL2X__K"PM2>bYOEZho0]*<'36 +"!0R8Dg\Tjr6ZG=#$bFL>Wj%QS-`*,,?"I];&p,n*@hBn10_FM>FdfZh*,%K65_[TSJ#h2?P'D'd0WS3&ggP(^Ch5f:2&):2!d&,"@!e&i8 +:#/6ph1^X?`J`RVKAK%Jg;]i;ifW)Z6/P+Zhh?F7`IHeLGMko4hStu>!fc-"2;puD +iIu4/`H1#BCZ7csi5Uo<*V8'KUZ-u?j+V()hCIVe/`]qegr?DT'-kqLa5dD4jb7(' +`FJ$6>NS@Wil6E(!j1UH)+B%I$;Ql%MXl`CoJ" +6g@*+kf.K(!ibIH!UE0;l\.Fd`BW\m2s`sjlGd2o!lOAcp$G1&m=d4\`A?oc/+,hT +m)E,o!ls_il0h%emtE"T`@(-Y+7M]>m`&&g!l+5ch=3oOnV%eL`>e@O'CnR(nA[ug +*n024SaqIFo7[YFh^e;!3V6?Nb[u.h!o+R6fJ[pPYNYBMacY-:rmef*q9^pL/jWR*.YY1[[$>OE:HQ-SW:]3XkAS(6s&ID9.Y(`@Imh1EOQnJIcs +/t6RpA+CKWQ;6h#b%:/^SCVS)QHj.8)BBTR-(`P!obsB%1C468lh288kJmQK$0.npA+nT@`Q-rVo+O"9S;2n.Z645O]p/"[R';'*^blK>@dZ +0Vg2\_Jlk<%6-">$Ot#AZf:gL9.QPA6kMgc'h*+Q>8K`uJsR.j0r/Qt`c8A,*A0(b +G99?@4F82AE[$Vh8?tXHS\qa4R_qOSS=o_hniWHn9(Kp,/PC-F]#L_toYWC/;QRnp +9[bQ=2,$qBf/H>9Cu76E;InrP-ZYIBgq'hNmlsV?"Tq%eF<]C%d'Q2*6d[`$.n.jm +KHj"81o(LNd^6pj3n#qF'0Sa(N:uVdo^,:M<:r[Y +>rYj/G@*;9h1%Xfo_Zg*cS%elK60]&26XotnGq +2\`B'<%k#oE*Tk`gNQrtKY)B`2kmL$hRC@uHf$dATmbh.!fMQd3$UKW@'Qi[:gGaq +\V+DdL*MOaDfuAC@d-'.N+6oU*KFY([QT^_C1]>dAE^/;PX)`YMYuPg?=TC8H)>>8 +jr(UAS7ajJGFiDlp4&:i3Yk5NBWjU(F=WFWM54k^L81_P3d.EXC:^hsXD9eU\#s,- +p:l,kq\,["@."V,>k^n?FT"QcdWIEk=4UAWG@+AD +4dAaqG-p^"gbE(=(C^$9hh0m4INjL(GdM+EjA?t"QULY`FTpuT1^A0g0-0@s7<&7@ +]C1+H!itS`1O$n19j]j*2>oa?j"PnmedqO.50_IhrL]_RrI9.&nbshYr;Y2e!J!aF +!^K_I!T6:4HI+4;5?E5ii)C2,^++/'.0u>sm +(qgsM$nOp=g,m@N!?bG@D3.@"5=ecL+XBI1O]!bq89l2?+rl`+DM^DFfcqhSe=25U +c;$LD0dkF4OH`6Z;G'lC.HNl9P&_=1V)4YkV-L?mP1>+U)/PV8Pdr[bmTphMI4ri= +_3d]`4N0*4F.BPHQo[umd@W!bX>8ef7mO@aVF&%#- +@]&e^1%VPk*SIJTi=,7J:m--#=ALncr8UKbhL&,q!C05@m\!#JJl#If5H$s(Rrg5( +:jO*fAir&FO.q>*)DO]pd0ZN]Cq7sI4HCo(+[L4%Or!=W8^oTnLm'/Y-MgY5WKf8` +'ZQRV8o7;SeK^thC513k)*)F6pSF*Od'e_rokEMTWKfA3;js4Rl@i*$o_tj=lBbMs +'iV/+5,,q%.\LP6e`\rL'u[G0X7=4_O-a2mJ[- +h,--&?;uoY[+;\;-sKhibq5d#7]P+q>A%M!`HJ^km-%W.eS:eK[("X&j"m0CEQCSj +\O7@u>ga.(mT%]FpAsbg,r9ZrL"j5'g>:Z=;fOGkPe1!lnQn!tH#<6*H.GG7?2N#s +Dj)H[3"G]4 +/.mVUdg3fkNt0kP5D8MY)_]iuc!a+RKp@rN`0e"M83?d.k)L\+7H5.dgi$bDc&K[P +QM4dWBoR-K6`F2.+rQ>`@^8`ia>k<(A8IcHn`uIZ;#_m(*3kf@elU$d#;0T9Xci5: +?d'5E11j^5CN"&[@7tf!ArP]=93uP?g![UtCBL.YY'R6R9tk-3!L`PFK@#_76"j/U +T.>AJc[$[$'MTHKF7X@t%JNA+r@t0`p))7[pJ,GO';T_VQdc0$;-$sLgG5pLe=)_* +C@ej4lR&p<]$jVnh-`qL[9(m1F&f@`GHQ*)_]a@2W9e8iZ7;`oWLGZ:ldh])=3f+D +Ro`[.8pduqf%R&AEggk1B=&QUdU0V=CMnP,\Z&WpV#.HcDX'U%./)Y4])@"p/^_:Q +cM4/=nr3&&2o$i&!hnArR."^ZXuFr?iJssmE7.+i-smVFHpXL6MZ\q0;D$'>Y<(cmhjb9RGrthC''9X1 +T6(!odU*e\ksYEGFOPH_qLK+>1UF+,Sqb*C0-BIb:Tnp>:"O^s=.L@qX*-,1fr$c3 +?T`V,G)jDoH]]iH*Da(;rpMlEbh;H+>IH1+[s^?AF7>b;N,pW\9mc6UnU:#Fo\UTD +qtf^L/>L;]T/"*.InK;'2pV4P2q!*O_X_Jtb1;&0k'^=3URnBUqDj&l-82Zk513Y] +W5h_3-34+\KR*[_\aS6/!2BdO%9N^VL$O_@qjE![U.; +6pM@168T`MC(A*i+Mr^P6BWNZU)ZM*)T"d+6,C=Q`$[nK(_H$g6Q@jK/2KXU1daqo +6X2N:Cc=_/3(&Wb6_$2)X?/e^4@@=U6ejjmlp!l85XZ#H6l\N]/42ff6ps^;6sN2L +Ce$m@848D.7%?k;X@kso9LR*!7,1O*lq^%I:dkdi73#2o/5nu"<(0J\79ik^Cfa&Q +=@J0O6\8CYS6JFp>XckB7GKW8"CDn>?:G?37N>l,/7V.3A4B7(7U0OpChH4bBL[qp +7\"3_XD:;_bjtLdP-caI3?#nefHR +(eDRd_BXk-dM0RG0gajJ8G%d2.HSYq&]m?N8Q$3n@LYnL$crE%8J0HDKTf!I=n`4&D8 +WCudM9G-^:+n*W0l:aM-b*cZJkVlYFhA@8F/J:_CfG+iR84`6Z7" +:Xl)b"TM;F;:"=3cp>THV$#(c=AZ@WcCl=TZk^s,#Z1t5d00KrPcdj5$IL(rd6n#^ +i>YU(-dbp+;4D1FP>9M6]2?DY;:2sPZV=7nUpFVU$QJ]bobp^iE7-O9;;o"4@Cag. +*7@bUdK&daJeujh,Z;`Rd_lgIP=/=1.+'lRdf^$*E=bt="k*&q;d4k&;fpK06.7,4 +dhJWWOf[!(l-cpedtK\Yl^lS$UslUJe)`O<"IrF)h:"(c;q*&A,sP@UXAj6t<(+OO +P;q'cW78Y^;o%HnA09=/86$&4<"N"r>+ +*Nn,0Zq.=*bal/F"g?X6Yg6miYiUk7*JI_/aXOp6gJ,C6jg`WB]pf26Y=66o%DnST +\rDu\]_0+qmDhjO`ie.8[k5\(mE)k4V8m_`Mljt3"jGbMco5gaY&2@jS^H5Xe#oh& +Xu4IrV7[G([TtK3h4'm=r*N`lHJQQh?*l:kdL9AOcrpfqh-J`@/DT)+rE\J;h=]R[ +6Mk)0r*BBJ>jJ`Q2]#ei5'2;-4AaA&7IpG@*lXGif%;(&7LJ9@8diu +U@DU#n@(bH>c!_A*@N4RjdjAN<$fU&Y@St8,1GRfVo%e^;Y(e94-7^mD +-Se^RX?J,([OnR-/s]5_U+RlE7D.WW0B0]'=:R0oXu>d9Yil9'%;fAO0P]i/V>Z&`m%jAXs@nPNZRd>@kWVA^_CT_cu2! +lsn26f8a'HVINc+@_MJA,/.D@Q=f6gD^.D3dDOmA7 +[H8P;k"f5/ETYPh@U=/b5'FA0GICh&dB7#nmV.J`C?#MDk?`UJ:2S7aE3L[8^4(U- +Y'mbHEf$rHimr\DmY=VVL:pW>Pt$Vo(4XT3MOh2/M0Dp]')*e(@"T"%:0t]nm^p]/ +_pT',Po +qRhRYfnQ+)[dI`SoP]ck9@!IJk5Do!"7N,fd%:H/(&=$;=M$m +E7V6#Zgs8E2O=LNt4F8'AW1YD;?nahI@%$Rpg8?i$T0;e@]14P/aa-RQXULILfA5h$<1^8R?>2&l1[7.eXkoBa]njLb')6?J3FFRsnd ++%oI<:it;h?*@+,s&?b:;KVA.fIp=%?TRBu>4l6./[nubIpUe%=S2W$[m*BGa&DGN +@J/Mh@W,fN7p4PY?d^T>cQ?hq?XrdWCA)"O%*rCLQYaH%Dko%(P36hIs'*<@Eq\<@ +G=a@[@V,8&CNjsRpObGL4p^lnFa(rEpS2!fOoopKE-LCPp];K0^E!"rI<\&d[QjLj3!\&\j:UYDH+0BD$J0ogb.LCke!XN-R(9q-Lp`6B0<`bf[,nKl7K9iC +T +IFBcr.-3`RfPu]'IAc'JDqm\*j2g-:eM$")^ZM%#Oa[fYrKlOCWF^MK,^s$*rdX$Y +VpPG%\]a1#GX(SE\+;'[YhDV:8T4:M^\6C%nu;))#QO>b?hjXcr",dmIQ./0+8put +rWNCU6"&&a6m`WVL-oCrpk2*_'8f$1dM8S$7p7&Es7Q:kf; +q1K)21RQF!ds8moFZZ0jB@H\[-pDiY;!>8Y2("GYUXNpM8USgZm\&*FeU#2H[9Ke8 +CX`]]?GC!U=_uZ97AeUN[TdV"qh<&OF1PXpf6bL!om;\NC7!-K#6fas@;<:<2CB5t +`aa#8X@>E#PKIHWf"@#M24Mm(F4./8Imp-\BkB4#75Ik;VG2!VXZ"42ZeAl14'fkh +Fh?LKGME*%#DL(TEGQC32^am6k!8Yq ++UQ$4\p3hSOPD[f-Z`R0"B'1NS(BY?l4XDo5_&\N6- +a3./%+37=uZQR>P49Z5.1/ae*[IQ_Z.''X1V(0X9]Wj$2;V\dBb*),-0VK-W`A5Y9 +,gA0i'1CA/b0snW34;^qkglc]"Q_bk1PGEbcdVgn5gWIKeNQfo4@MV7'O2qQ;3ZGK +7oC%k$KP*L]-TMUP$3[D:DCc6("-(k8Q+'g4],1p'cg:T\ohRi=Lj]NAQlWEV/9JI +'ub<%Uf>lq:<"quI:Bn_jc*g(sOQ9Oc8Wr/f5#IR+=^G6sjk5)kR-%PCBq"2; +^2]\+=l+FqkLoicT]fQ#M5'4f5*;Z*>$dVol.UT[W9RQXWN,7;^9Od*>2Hfmle;?S +TO@EQ2mDZ'51-b)>@-!kmG!*%M=+T>kq6im^@Al)>Mf1in([jC_!kSN$,Z2e57tj( +>[JAgn_AU;aRWT..E_58T#YlNr4b8;oA'@3d.CHp!RgDL5>fqN>p!5#p"b++f_/UC +C"i::^N&''?/KqapYGk#i:pV#0sYja-^!Kc?=0,u5\T*s`59TK1q=:kf.j#Z1rf +A1`MUeeLOET+#.kc%_>1B1$o_Z=26E3H0r-RqPS.T56ZHOWGc9R$>A;j@akt)CI#e +TbLLK;i6I(.n+Mn&._CcLiI.n7@:n.j!82pcZ/HoG>B'N;N-Tt[7A73i1VB[F"u'^ +EgZV8*M;,$O-0E,8/VP2j/dl.;AMVHkn,+.S9UZ^0%r>V>8V/mV_BQ]#$QbP?Ju +AeNsf1DHG'o@.ELPfSV8qI`M?V)7'La-qg]CJAnH2J1AcS!.t':&2RrAlP$PF#J$= +RDh4"AF5r/rcQNZ=#;:fWh)#tH-AkLX_57b;GK-IfOt=#1ZdsSL=kc3O/=iP) +beQ-DXn4J=-iJbQm$bD;-1Gt[):`. +i-oTmo-a:`/RBo.F"ag*^DHVE?l,Mdn.O*^=;:;`9G)iYmL)83.O&(82M:J\%R6=J +$XoP_#&laF3r!1q&q!!$8OarCKT?d5g[qc?XsZCmV\`h_ANqm:1UB&")duE[N_agP +a+R516+g9WnSURff[h?YS*J!SM\VVe%.b?C)gBO2%d@IpubT?m.%&beuPT, +bmE6$=dlaAZe!jd?L"%nY-F;*`nL;+C^(cY&AGI%#)co+I?h+i?FAIF2eQt'IC+0_ +WjUS^NbqC$!MLca[/"o^)9nATG:)E+H]J\TN&S>Q%d_(p\Thi!_mhW[Q/3J3HuG24 +^$oA+_&N7VE!uocQF=_#],Q09IC6q:B+;&W08D6P8]4Zm&E93QC[lJR`MT6t\_8Ej +7*[U0GpanUgiJZM:/T/30.Z.AH^AdMj2CV>gg$@6OE2`Rb^%f'kJrL4?k.g=H6*+N +\'LhMXuqY&7mFK(c6Jj2Tj2 +,N3oDJb%Z)b^#g-%`1L&,p>[nCJ2T$L1IiEA%t;3ttOb$.28M$S(TLm[l:Dg;R1SIW&M\>*O`)*LQMaU7Uf!YX0qb=^ +UnZ883)PR)d:jJM5oS.Za`%=0Od,mN\tQCMU2eDN1!hjVA5j/%)pf0:;;WE]Y60_Z +*D-h`l3SO^&Kb`]+/;ONMD#oGk8?!++Hd3dEU"Zc#551R*\Z[ul0BNJr?:X_,%EPN +"cFDL&:5$!,Eb5AOq]$:)&s+;,-T$2lU)rg+XM'A,pOi`.!ZqU5U"Q_-Ar*8@L4<@ +"N+,RSMGS_Ee'^DKU]9'0ergMOG>1Bq^&P7.<+u(;KoHDe($^d,6[hpN"EF1>nUAjI$YE/okE*;E$&Qm4?D2/Wuk\ +66.NdD'RL*+S,;oo+7:q'ULTm/TSX0EqLl&*AGW?0CmQb+sf#4Ke:Vj15Tj(l#AO/ +>;Tg01'h_J;_&+%$T1jd-8RP&nAHMl@/;Z?p!ZNto5QUND"Vjk.oT2tF&Os&I5T.^ +2NgQa+sAr6M)UJE3/_u@ZYqlWo/YfY0*U_u;K"V&MP-.;+L7ddF1gD:VXG2,P7u0( +PL,H`e0`Xp>P#0JPM&$SnL&>r0Fp#ddoeQWjH.jcOd#^);ue4cgm4.X2,j`CC"Y\V +0g$,i5?!>"NpAtF"%"Wb6>=ONjYVoQ%5P:D5q17\'H$Y0o&OmV+ga@lFAS$_qTJHe\6A&_]EsT>_nSKcj*hk'hME^ +jd#4=Q2L"B"@`"EHZeQou/>74kr$=*?@Z<^))c<.GW2@)q59Z+X_75_[`F,aN93ekkB"Aq*j,A[Z^?P8.Zl +j^p6VB@^aM(2tO"PeAu9=gik?2Oo6iUm(MG%B[3_.*H;/R;/%LPtq?],@Ob6\qmes +BK")nP-neB5?Cb'CmM_u2OOQR9l8J.iATS*(@9pVM.gQECN5\Z(>t?V8NE+$06[!F +2ZeDo'RTD!Dl=n!nW@gX"H_3q]XK7rpCQ3u0laZZhQeACFO+g5%rg,L348>X(;`5C +a)fMMF,.GOo`]K5X`+pZGU:c$T3\:05g`FH(&DAMb4:GSg=-P0GmZEIUIDJ[J4&%AeX= +nU_uuH\e#;0hm7E&p78,dC;,)1ojOl6%YI9<>[2B\1^Xf%=IqFK9C/*bnYnd,DKeR +L913)(`A)a0n<4\.l^[*3-U)DQ\I'cL?9A0jqik&",KZa%2`''fJ=5OQ\]md5kqmP7K@l'm\B:!p][U'69Xra)0V=:PiJ_b0NS)I,=O?I1 +i7&V3?F]o?3<4]!pb-jK0"?I^pg&pt3KHrNOGt9B9KA5;:Qfl7OlGbgBa9['.?Z\, +?4\Q>!6;1WWXPZ2X0GtUo#AO*dV>Zk!] +fmkZb>s3HF:mm$'C_:*dD3jcLPa&"eR=/[MOdJ/*B\B>LfR$0ZI@/\:QW]LiH#]7? +Redno=B3J0KuKT25FW)6osomCR:-\1f:3!lR<)l.R;5+A^J&q:>C$01q:a(H7@jfc +Sl"mK)_U):>*Nc(R/tU27j?H4#sa%h@;DTg^,=R2\&+m?]i,H?q3j +>#D#_<6uOc-M\)h\[u#@?)-b3UfKsbO9tIZ.]m-HhJdJB][m,mCDp2V]o!ZZT5hrmDr#Nah2c9GXnT8/JWY7RXCICDF;N&F%O5SbB@sM +).Ueca`Vh!b]Ns`'bf?n\_74'\6XReIB@Nq +_qR9?S@3@lr:>5?:XPSSh4(+p[)f]Sd'2>Y$XLs3V#?fe8"&/[h`:Sjr5%0:Hf6T^ +GWki5IFY@RV;O!7`Y(qpSKm*9(ZM!Tj04?C*N;PW#JZiLii>5^*21orQfE5cj8K#= +gjeFr$e7e[TRJ2g^0fshlbRFjju4sVmb?qhA`3E3BHA>Grc,UmFm!ZlFU_@8OT"Bk +X6MBUi!!Yi?BNT@Y#[`sl(nnjXGuPeVG#.CtH^IrU*K2gO4;0]"@Hoa7!?ZnSe&krrBVNr0.C +IHBKr'>Ar;s5,CFe19pg-1G$Yn\6]eZutm[=4+cG,2Z1Yhd%NAVt=g4oXt(iT2@e% +&*P*H)8BSLT7HGRKa+/s+Wi#h?\n?(Q1mqPpR[*6c^",.Z2(#MpG`!Gid^b=2rp2f +qL=r-?;olF-2KC#qS/BpZF_C^CV'2$&(_)OP"Y=+VBQ!ifR?M?83=W7cTW`oR9(LO\"Pr=Yu^I-@s=tP*pF+ +@540Dk*&rThJkQH:?Rhoo_sD-Thss;=u@@`5U'+jPhL7DTi%dgl-u00?EmY8;`!d?@gf^QJ6PriGlD(D,T,ZhXPm)?LO4"X1J1Z_-lc">Vr>X@1Sp[ +R(R;m*KeERnbHFQdgqkkB(MADrNA;Vd:i0@>.u@YWRYbVRb`/%@BnL%k;>uBhf2TK +DYKXRStg_MiGeRWXp5c*alRR12dU,]U!`*pGl9h8?a8#De[#//VgC"[m.gLM=PeMo +k4O'!RSMbLiUQ_krh!Q,hFY9VIeMZ[oDZ<]ciaRT5cN5i"$nV?(6CfnA02(D.$P_Y +6Emg?$7G9F2XePe$S`%-0bV:o0G,:#'L35R;\hg,FC,kS/_g,W.HmgR)+Q>r?<[% +qd!:2om^@7']L?GU3+A,A0MbBP@d(G?(5Ll(4Drm;,u_YCdM0k0j2Y@/ST%V/%oqB +>d.5;F'U_)f6/M7/Ma>#.ZN1j>o0@*hd4pRp=\>)jo3oifEMQ0i(/:.DW$m[NH/HP +F-VAdpm*:b-G.p>,244A9PV(QP;jJt[=q?9jnGZX\,^=3B +S1sbfF.R$ToHaEG#[TKFBUSeOS`ooJGGOJLEc%]tS1UH\#k.uC`3KkK0jh*6>e6-$P;q?*)EaQlNI#E.! +`>nVfU\=Z+IGK*ms*NX9(8"$toUZOAe+il3J`V0kG-)`dSXtPugKe0e`d+/q61'#E +&%h:>Fbbf&HoP2ko5O^7e+S4"Q`57D5BI_7rceD.qd4ino6u1=ipBQ'3g*IZ3.rZV$>m(-\W,/'bVoh +$J!WXL!&*d6PXYNiM*>7"A03BQuUeSmu;J8MO*n7lLSk+fmng +c[IZ?R/%h#WVhh#=fTOZ`?+(c,*:4o!(`LlY@EfX>S8no7Ca\TUO8>j&nJIB#rHq' +]U`&C1/L9i74?`GT9RDt84Q4S,\9T6P*3OW83(65A[04-)D<%>gWVH8kLZRV8lc,;\Q!$ +l(QS'eD/SP$-a57dT2o1'clCj!2PS0Tg +G:?*5jWgP.I^)W$P?D#<@np#^Zm2$A>0Uo$Xi@r^f\:J%hnOp3Fo"Nfrfk.?1 +kHrg2qHB@fEGUnDAlc?Y)>duHD&p$n&JEFClZ1eJ]tHgW-K#^+=`D^#_RRP,f?B_J +5OLtb/JgV7>rD^NaT^8+[n>p@l\fr4Xu=%O?:niSmO)9lXbs2u"m?.stoeaqc#1oS4A+He4;> +hDN@,#9c$2?]`B15fh%_n`6-MOtpH%^e>gifh@uXna9DW\N;?R]XZ+)/mT]iIkVJ9 +`L+t8>0Op3.,#lYRW$0Pc.DD1k8``W=jCU(cDrtgP@^=Ak'G:_ru:&^#*i#&B[Bfo +3,"M2T?(S::HVpu1,:hl0(VDNb) +de^.0k-A?q1esgrL(dd,SU%D5m^pgB"$UNQ"gKP#Ztc$7?R2^?ZHX0)g"T#2)BGNB +2Qh&Rq:BH2SN>U"2Ua?@j)>et\%)/jkM2NLFCBUJ]$LrEh8skaj;kkE2hpkM>F.)5 +Xms/MnQ+P8GC\f##FIJ%pt5fYKB6CX^WRu4iS6q[2neCmac@"TS7@:n>Vj5h58qVu +2iAF-3QV"T-eJ9_PZV6lb1X6Ujk>32lTGQ7[;Rb],_(qtQ5Rt.k;2Eu9$0X]%6PAaK`Jlt1.S +MgK=gmJW*L>:r(hqk%RGSWg]D%e&9OnV*fdCVKQ6%GYq>L@-)maELPDi\8])n=3k) +GonG?r!qrD`YRqJk'Qit_&gJuHRMtZ9HUXV +^6dAjcVa-/n\"GRLD=&)EIPVRp\=aNf2YT`@D5J)pKme`r4f*$9#ni\oLB2c:=Jh6 +hnAm?fBuReRV+hWl2!W"0`F;eqaqB7q_YeGIa5(kmjIi+q^W3S@nZeRoCTe=U;*K( +^`_@E@$87@gqWFI^fp"gC]D0gK0S=Y5`;SV"9P^srBS:1NKW+u.el8TkWoRP^B>$' +4;,9$R]ecO5c^VE]FtQu&]')t5k<7;";\QW)(m`d5pQmm$hB;4*^1f\_3gQU'I'o[ +)QP\6_*fOSZm3@c*'gk[-<(;WbU12K%)Sd26A-ns9I2t$q81''#`LC<2%0rnP0 +%SS]2C_su6_SY(f_kE%,!SP>#+%*)s6e"8mA3%3u2]FRr%X^Po4?,^(6UUH!5Ceb^ +Ca$\q7>O?#/IY6>4?t0n68E@J`0<8=>Y`37:.5:_M<"eqoM\+>9K??N/DO8oXApM3 +9b/LN/?D6,N*8Xp+N6`=51B-mK9O9k`l8Ej`VM>W@fm$J>eZ_(``)QL'P>@8R)R^; +`gYFI)T0S+_FD\e7bNVeOSHi\]u@?67gs(C]YHbkYc8(YK2)BaUF*6jD)WGB>g$tWk=Wh'TA]$O-$H0.ZBM,FIGcVpd;UG +5Ko$WaG3@(V9048aasT8;ThZ_J'#&C8fXJ+Cn75H?V+3cb%dVBWhW1s8kM)Wb0$3r +>U%>WV_($0)bc.0Cp?(GUpp!#WRS?ir0\.U[jb"S_48&/6H[Ipq+",N9>!j>;guoq +QV7]EbCLa/)NROe(ed'+X2MZnMrRJ-Hq[_&9Us$pM:]o(gIJWX9M>)3p]h'%cclmF +9bc%#,h'tJe;4%CLcYl0ZDC)#WPeANW0H"0Us#;+bbYa$6eou#o[?MSi6DJabs^Ja +<9'R5Z\WE#`-U:bZA),#K[,I0cC#`t.4riFInfO`:*edn/FUmVnBNlO:F(G7K\))q +ps!mWc,4\Lb'hT^JBs&dcFGZ*RWqT^_G9IrcNO5C'\#o0jA'5lLnp7e,l=Kf"=JX_G[/SFjs3M2U:a%XAl=n"rnBbWd;&XH%.Ws-!"&OP.;+b\% +UU8C]%8i*&blnR"m/b>fNR']k:m5rtC2;5nDUJgec`'-,)JDupZr*Y;:sC<6[(D^9 +[0Ta_)D)uFFWS"4,Go<0-B0Vg2'S8r0.%\b].G>X2($WQ-d+o8)d19'PoR2/'%<++ +e"o+S[6)jV4O_hDe)`dBofpq05h$N7e0RH22+,k^7+>4*e7D,!F[sr88CWnre>5de +[7f#g9[qTeeE'HTohX*A:t6:XeKn,D2,i$o<7OuKeR_e3F][+I=Oi[%YSCh.A1e`C,foj?8R@+H'$eg4eV2.P1m-<=,&dUcriF]).9G=Vl.5k/GeI;@EQCt@-R +f&^f#ol&FcE7YhEf-PIh207A1\IRf;3fF[W\VN7c[?f]A.GooIc0 +OP$+L=V[+Q23Z]^PhB'%fk$K$-%]56Al-1-=NQ)b\tmc:'H7"eR,!TFL!: ++dFT;"Yr(qR9>NGfnGnj4@[3sfZ`-U=qY&nWa=DhfMPfgg,!Hs6[W';VV;Osg3'^K +e@dO>XJM2i-%33JXg\`cXd0F+,os1u*O4=0]NT0Y>N7YHU/5(j:>?;ig?EY4P$-M/ +Vd$K4gXX+p)>UsLC)GJr"_-EsQ=s7qAb"CGn9\acq>_US\S^YTT&(0Ip +6`n\1Q.I;#fF)iIUd`j&9RODLdG<@$hMQ5i9YX?(m&2g,iY/+(&%49b< +/0a4.#lY2LmOf\Y,q_)&,Eb:/K+< +Id^TjD=SAlE:&Xt#Pl'B\=a +k8Qm"7T5fMC8!h,WD79^)^SjoDT`[K]M;j-Y&_3nHY!t@("RJ;L3tf&FspsH;KHG_ +k'95QS\4ZH1U_EL-AQ3AL/K?g-Scq1PKZL*k\)8n64Sq;6S;i;f]`"CBcAnmL3;`/ +o&c@kkrK7:&oD=jQCM;Dd!VG^rq$Vd^BAI6]CFpV!^l'cbA/,DVuSUh4]#Klu\S6f$H&/jS%BDG3b`Kn8=9JN#'a5%e1TXkogQ%:]b!B-LoH/halTC#C1#Hr!XDdmDDK]<)S#kuuY%B9[ +&oS'F3P=`cq=%'pE4`7B.iIjN#]Vi/n?+nD>ISRs\o?OEn05ScD\'_YZKik*CGo9h +:DB@L+PFcSc[&f#M3!nug'F[!o?0+B.1[G"Pa-\\@]EQ?CM9VKZkMT6'_HA%hVT +S(Dh-:Ml1hDVDR@@4r]EGA#a8G]uQ(7n'D$[(c9S]6Fj0pS!sfVAH63JX`!FQmZm@ ++,+plLJqb5W_[,Ke9gtF?hh9_^->cJ2hKm&O:a^)?h]\-MQcfGC+L%[G>m>maj0]@ +OQq=?pc1\l?^I;7,b.)S))%M*3IggqKm0\=iW#4W=.abnUC>b":iE0n2hi*/Or:0n +H2jO9GD]Tp*H(>*a'YiX8#LYt(\mXfH&^A?s.1-1YBm0q0iri"="/*$J'5U7)S`k0 +s/li%Z-9\]4K#+mDlFokZMRh#HZ$*NY2QWm_/;3G4HI)mp>u-`^&,`]qsd;V#Ft^) +_<1L1HZ_:4DoMXEBRFh5r)^4OQXkBA.`@+h`c'"aB?RS.deqO_r%-rFkI>O#RIU=1 +Cq&8Ihp\]Oe?;7\rV+8(BpsI*@XQMT[HH9$T+S.(d@,RL)L(Ip-fp4]]h*_?45\X' +(US4lir3DMYG]\Ba3X]Ch+VJIHVa0\-gh<]*E=e=PiI]O#MX]B/aOFf/TN=?--S*<3oc0_h/M +0-,qk@raR,Q<,/]b[tomHj4LPT?q7n>!44!9rHKUF]>:d[p?2i5iR,2QEP/7ghjC0 +S`]Zp^YhcZHlaXONQ:*EpjAZG2kA:@o(]YrV4Xf(lui.F^?9Z@ddMF.?9]^u!F,-k +@C^3H\(U5mI!r`4VMi:`r-j-&^ZY@hs1en=B`Z#2'F=fU0ME1s54Det#JpoA)[O +*lns&Kd"O#/<#\+nk'iH_"'UY)9;;qV('5YN2\>N&'V.,bED25/[TL39/4X`%)"I; +ZNSZ5c&Mp:),7-LEuRlia.`0B?'9N2Mp2,Mef.tnhiac,U-::4Wq<6(7E@9M0HX_h:o(!T$I +=&nX/?<>\eBjb%D/R`*@'_R_dXd1i7kem+BV.36nRO(ta[`u'm6Zto/Dql-<`Gs\" +.Z\LQf1`/c>utj'G$W^YMg-^P>fgSVpQbBHhO!'s'\^#"Z%:HX/cPt2\3:X]iL"L' +LWUBm+c49b:+;+E=I(\$i[WD9HXm^H3K^+^[Rl[pQjoU<>?E`NPWlW9@@?8GXkQ0' +%BaPIk#pPghIjCuK[o9I*fSV4WRaF`l'af+KkWSsUs3IN^0.MubeBtBl8me8YNumk +@cZm&%02`QLA.+j$XLf."nH*1&D)V4>ss]BPLq3K`ph+&%]0[$LmFi8$JIde2FWA_F&' +@oM-*Osa\npR6jhhY7E_GMr7f)CNmR*[VuhH!R%@5kUWgZf\aRB;t4o*mBrs1gS/0 +(4+j;1%>*GVoeN#s#LnU?Ok]8KDf/,&a.E1O6l[k:"Omms.AcX7T;'00MhrQXk3:J +?phY%:r`Yg_6%aptc3J*#q)QlVF%p>\I8?d7],Ii8;iVZ3&;(Z`RV$9WQF5Db/ +mNfb02\ff.(Q/l:N&`:5dc09EMfFH+6mR$i@.ETBOWkaa\D8+WZr)i\c8lmMi-qF@ +G@/b[4YNc0+'73=Mt#se8-Ph3j>-"ZaDs+'fb1Y7>`Y%G9nu5A/LB.&PW^cG9eI;D +-W^/;PS&d2P">lgjVlX5ZDIB+oM6]UB2I03`P+QjW+e +9Jq.8V)n=;b5Pbl[_j<8r32/6ib'*"M`#+bffl_09MM;&2:YPMmR>7"elLlg +bDgRYV9c^Z`n]2SVRl2\f=.!W_-AK(G)E]@]GHV!,]A\D5.%T\YCE//"@ZV@;f#deMdrq4I_R??7X2n^B21j@p/C%@*puI2f7c.OVj[4RX)A,kY"]uDk;$s +nXi,3&[SI6EVZ`7rf+hcl1)/4T9GGLCh&Cn!I= +"7tC,7JNL#4oMQNojmOCktd4pI,D^2hXBQRe,M?409H"%3>d,cW)Z#E=nlP=m-(Xb +JN](G`.(SQIT+G^4Vi>?qA]+k?e\>'WDEKgoD.6LZ)%CWOo1j7rZ0>3Ni^n4XR-!] +k5^Atr\(MUDu(\t%(MAderUZfDlj'p-pd>$QYaVAYQFo&.cX>PgMaP%0L#ZC"TscU +q'.m$&4m"#I0FRp6Y@H:YV(WGWrl&I#0bI"$/l"2\HbgC#KmDW!Zp&,?77LY#d;2O ++u#?WYmBi7"ON5RYah,#&EBq($7koTDW^j@0aNlF4OBc0nAI,"Zm611afqYb0[e)T +es2>si\7bKDgMi[WE&hIl5#i?320b[5l'?TtY_I3re,ZO9n'X:IrcGJq1/IkWC`A(\U +E8KiA(DSL]'^`dMYeZi-D%TV/(U8LkjPLeoM&`%D)Y('O0sqs?\Jqfe)tC`a0uY,PaW.S1*:_Ds1"@:afc@?R*V&)01$'HrkoR+s +*qAbB1%cW.OQ-rK+7]FT1'Je@#p?M_+S$*f1)1sQ)'Q:++n>i78gbeq.3c&L,4[H5 +1,U:s3?tg=(c"?_E]k[g8L1T9,k=eY10#W@=XC@Z-1YIk11_eQBdU-&+AF./noZ=# +GpfnG-h;g:15.,s=X$Jj@$6?q16j;/R45G4.IjGa18IGrTdm@M.e9hp1:8WQ\LXu! +/+UM-1;teaM'k(#/Fq1?1=[ssfe'Mc*E%kL,N16Fkq9:/0(SNZJ,q3Qr!p#A#jV;`KlD3_0')mF+-*!BZL546r@tbPaOrpH43S3f1U4 +d%`_DPrQtS"]N2^1YFrJkd@b[3O@6B'CK`o;R95M5-o5g//:6>dm%Wk5h#g#.j71d +a$GX"6,ofeU]EdiY3i;Mq5P.FU<)RQi#WWJg +6g_EPZscF5IZhp%7;J#U$]deI8OVVU7uMdd#),DPDb*N<8CV>,O=nM:OL>jm51F,: +PU(e/"[Q+ZA<^8ad?Uf]`YXi@<@>je>kkl +hb4JF&&JtgZ_L7!.o*-$:W:@E`)0>=-W#NI9/J"`<9u&uq,)8S,P:UOn#aLaobC?f'fM=K<9"9_+sQI!#ug-ra;Y=]qFcNT3Q;Z7#;j=amo7p(`V-:&;=fTSJ&VX>$ +,u\?N>=uG2"T_\&WDn#:>ZIn3.+_`5EEeM"?&PYPBQg4%&RE`S?3IrEotOb^IpWr? +Vt!g`E]*Ym()pWGB2qoGNmGCHn&o0TF(9lY@3kk_ +b&:fY=^gCG7J(;)Q7/MiQmT'e#PL"P<`Gp(Ajt7`A2[onp1co/oVY]aATVEcQ@Usd +`;1ZJ:CO^FC.2i/5A>d(B&snEau='&q..GbAJAclQA2#4Me1ls@aNe@0<&_Z/Sp(B +C'>u$ar,%`]k=07CD:2oQF<=A-J$1:RuFAO(uXHDA5pgZf.V,XLKG`^(6]f9^]C?$H[$Af"N42k$/d[P[^Y>F2pgf>9-VDI#2r:7%l)O@aQ2(J/hU<7THF +Bn:_&5@-oV@CPHe(\0$lSphG"<;6-88b7/C3GB:0IMJu8.;+2uqfsV^HS`KhJqn`_ +nUL4'Jli/F=4g><%gP&AoXHT>(d_@am=_N^FI58a(e2jC0f&+tL);L>pfE(sZ%.F/ +K5h!I00b2*-\mXTKZGKPG^PYKL*V!lV:L-3G`.<5JVM$IM9M$;B`X)^qhfu^Hg3nP +:H=GNP2bB'D_iTIYJ]9.#aKph-]U1\M;0`n;M'mhj2iP!tMbb.P.&W7q6]2.a +PDGQ]\F+8p_*5CqP"?`bf'e\:hi0OFPj"0o%.B2nhh:eGNcUV?=W2]K+&:L#PmJ+M +fV+'\EB/;nL:N+C)mZ)1YkW78AXHBkOB-*(3:WK**o3du.=]RMeaW0nI&'U,W0\ZMmT +X:C#fLYmT-`caE)U"\IB\YH?=l$1q4ANKFbgBCeC!p@C#IS`dUTSqljg9`I#udX&NO/L6[-DqC8$fTnZ#[HPh-)>C[p2mI#m +\jq[iK(6:8qm'8_]3Ci=2YXio'tX^'Bq&F_S'6*jOgtf*[aT0.Hc<^8qjnbe]T*M5 +S'm*3jftN%KpqnAR0<*Sb*S,V8f3P*ne_/C@2(alMCd8M!tEBGP_r%sdg +$?hq#H/(/;4<0-h5H7sT-Cb.;S-Lsb9>c-^5J10BggYBu_7s[B`b/!J>MQ8A=#O<' +`Vb7n>YaC.'?-Jr31OfHgjcDqN[)28aresWQADBm+ebsF`G?Eful#$bJg[% +SA[/jaiC_TaaC/6,Ibo&a35,GaJAjZR&A3SpWe@"am2aHdm;6Ke^(',cHU@TLX"0J +29@:ccpoGLr-(aPQ'M:SceT^u>nD#s-?4.2d+?7am82YEnO6]XG?m)S4[l%"6I]9k +W#\J_I,pUL:2qk8d<$nfpSH.U8(O^9eYud(SG1PX\^c'ff8j4DrAq[*oe5-@f%lH( +R9aBPNc29Rf?(;N\m;HZ@6;/6I3!I`4geLBZS0"gTfp!'H\IcT$/@;3[_7F5SVu7Y +J_PV/[=-d(h;Zir`R>U#hJF19SZRGgSc7"7^2?lSg)J)fdR'hEdu$#hTlE*kC_XJ +38T5/*q'gk2=573k+0id^>n]pSa7]>nA`3C?LkA9&;*]Hn'M+%\^g.u$1bcZnrZT8 +VRHI&b-#).BZ]Pj]Z-)cRIXMXo,fRW3#D'e>O2"Fq#>*L%WChX(\W?*q<5Hdd%C*\?-_>`\=\4[&&PR_?hp9F +qHoro.*MN"ebk`NqL\>41sPsB*W(=Up/?,.3_0,j`W!CUrLP&/OM9X[eO]`0+:n5] +%LE;k6/`BB<%]$tLI:&5(mIcE'oPN@&X_'c3?=/Nj%&T[r^A)pa^l*1<16r=QHJ=< +)2-:B246u_':IAd4n,rgo.dd*B!Pn1m'"^>H<#Z'.n:W"m6?&_N +$UX.V)%8lOj>r+7;"R*e6u`<`ou-;u;YIIP**X4&&M.9,7W,j9rPn,"V8mP9ie@A=Fr#t3BCr'"L +jWbLA(':gJ=>hD3:".Z^NrE.hA6i'c[Y8d%=uN4XCKgGNZT2-2e[l(@QM&,u>RRZ\ +0NZbp`Hoel=eVfei*RHTY>WmsRL2D>/Nep]^hO?u$e[Jme"!%>8/,mM*+b +fS+g0@$l*bM^Q!*1O3JSU03E7m9T=FA8Y^(P%=AX;jCp:/kqXCn6MrZAp',E^Z%19 +F.-FgG'B3]=RLa6?Ffce\)^^NP/6=m1KaV +Cc;!BT];M"J[0-=]F2/blRp5fDL88H]5Hmljh,MRDRmK"l2L=Mlh^>_>&Y5^"iOBp +:=7*/W&GZ+EI=K.UiO,b5K.\+k<%"2q'S,JDS6iV\b)m$$(S]b2-\RQZVMn#7gPGn +gia\C0ALbb2dbEcrWe)7;P!Q;Vg,p6Q/j1'E +0$r;k1D9Es)JhQp9WBP\fYJD7'>TOrNT`d/bf-04:4_PN1o?Y`)p8@bEUW"c`e`]m +,34#XOiBRTq#MUAI"%/L)F?ts,p!?QCk`QG/P(.,`ZqRKL@87q7@>@=j4p&0E^EMm +q*?E1<1]=IDFI/t]]S9bL6W'G;G,@\*@.Y$3te,e/VuDr:O2Io:Sd]V:QepXeOqpDUumr,!cLm2$ppk&ZVBcFKM[pg +4QqBjT9N*/;0jq;BRLb[e8C9o.L>"S/KoQ7I2UF7BgU[n!i6U!EOP.;l_sJ2VNfZ$ +:ASTte$Ud*7p;'DptF@Ll8#9!&sZ5?BS:+P6Tt'6VC/sA;sKWHWeBN5ePiqWlG=mH +'`OcA$FYbje)71s1(5>ka&l*-:9@*Z[+\_5rY"(7Y=&V[lX40tL#^3hkg<3+Q +4ZT^P=*8]0lsV:0#[aW(N/\IqPeW+!HYnTN2p4L06rY5j^a]U8k^1jHDu2) +^.A\*?X*&L92\$iQhLGdquM=e('D@>(B\&m&V=t&$c/2h#@RHQKQ*4j_O+C4@=0ea +E7PuGR!0'Lr'?-Y(*gbbQP3hU;2T?o,/"St(#o."N,b.>`gG?s@si9VERm4lR.h6J +X$)NL(.602(F*IeRm%aS9(!;cC*9GB7*.0/Gen_)>?@.r;iR5(5'u&(IMka&YaAJ +7K=>c/a3"'U@ab8d[F61Bmh_5FOlr1Ke#)bFM4Sp(8KBJQW%XH+.fl@I+9.E=).\B +XEBi8esb2pCODnQ2:fCN2of5G9CK(*AtQMUVdUZaK!$bKZWp]^A!Mt[ZdLJ?g07Wo +662W)e"5(D7DE;@h7@tlb+[L4cc7:M05m +[rp!a=!&?iT)>$X++bUumD8R!$]-tBL2B*p_om5ufXt7YE?h6q;hkA+N2MYTJiUF< +"a8gOO-=U-UW<0r(?JSpMK8C;b0GJg8c3R<_u:n)Wm:n4>P,(>hLX$Xa#*!J1SRuX +@2h`q`9=*_u?"`c4&f)sSts +]CrtLeb_usls7rLGBO/F3o>7\4dL]DSb:hV:L@7q\!t.I$/hu44Rl^X`;&45jA`=1 +lFp/LpZ[uB]XM#7B9U4i7pG/&%s%5GqZjl0eAqETR>dTmUNT`qAc9fI!a!*^;o"*PDAOR +fJE9jYKL2tZg.-8c=q`oTR^CIOo9dG%Y#;brh%^KIdTN$,>[Co7E>?kHhk4Q4hr#m ++Y3T&Hh]h3j?O+W5\pZb6j>o%[_<,^^Z4GaoE2VA%#]c2S=1WegP%md#n%FY5o^P( +306EVJjE9H5dU$n$e@U/_nf`c5jF*!*#^bp&ODQn5boGer#cPM*4LSETBm@GU=VYh ++GpjWML6?gZ9lEDFMZ`YMOZ+^X=QZu/%4drSpVc`!8PHWE5N6X6@%=mN$Ug3SO0,0 +4Oc4*CcFe>hnsh%3=Iqsj=e!sK#.(?^2,lkgbU=HbB5($JOl`3JN?c?32-er-""CT2&nO8s(WH;FQKNpu3N(/2/ +7]Z_^4DMm0T11(L7`9'IqtrokQReSE7RUq0q9)8ZF@TSZ3](tJltmV.D@iUg[!U'< +'O!#OHEYP6a(U5ugj_j&A&n`JaS4F%B-4a26Z6e:TDRI`N(S8;rEs])>1* +n]9+#84(/4aS"aS4X3a6gUEtA>>E;RjL67asb;&(lq8BZa/)VXu)eCKW<1:XXoF4XsC07 +`2/Y;YHB@Lb*-[8)VW?HQche!bA+W3@b/_R5/nj>0!qQG3bcboSi;&-/PNQDAA66/ +_+,c49GnAa\^4!F8hlH,&OM'8[ +>ZXZ,brYdN4[e;QHcAfZQ;%eP:9>GY3cYB]1/:gU(oZu5n:Xm6RC%+oDFjK^WS+QPCPl`TIkg/>E +c)h1HHoY"qWR-ah:_A3(V$.4n"2fg$.V/HJ%1^a=&L6BKWU1=XbmP@o'/O-Wk.-3(io6iP!&(764;>d0:qM\:1G1/l3dqT4gA6RG*:f;;7 +dt0k`Pi,KGLf78r;q3g*q>aIbK2`D];k_[hPHN@l-.G=?;ri)N,sYFfl;V:Fe:=4A +0u)5D(t6GSeC&_DFECLT8Q?YkeJ(a-Te0$uh:47_b*;s*rDk:7:e(CceKnE?j]\Pc +>_mf.*_fq3j\AD_/C(A)VVPCp[:7\"AK:ARVS-T8FYMC)MP$GPSV9KEKiCC@Cf5b6IolD83HQ.BK_mNpu +Q$oLrGZ"]j=/CO@7=rlTKTHXjTj<2;D060hLS_\@cg>Vu7>f_\N>e(@V*u-K`J7Q! +[b'hf=VMNOlngAl;;"BtfkI88@b'-cle)COfohh,Lojg3:g)4BfGoUsrKg[qr7SF^ +c@)-Y[A#(WP!eo8:(1uJMkuq7m]N]tU>GN\"]d):>[+j8k>?gSgos\'u=0EXT6%n=KQ+\FP +ZH:A+>NNmS28l9nK3Sk4ghJWKpsr]-5MXd%>K%dkji?0d!Sk$K`SJ[;2:<[#_POB3 +e'6Cg(!faZcs7C?-/I1e,ViXdHek):>f2uc]A_T*1u)>@hA+c$4RV$AgHj*?;r-@S +%FpK@j$CZI^&?qfFm@gPm3^BJUD*[aD9-&*l!V8pe7/edtFtb.q._E!kigTIJpq,N/39*=>@q5[IN>c;M0]SU'@iX<*c8.643=A#$ +W9tg&^-//*0$aGXA#;V&ej?teB4K/:j@Nh@;rZj8_dj-k@tbNUVF0FgS)fgMUaAPu +*_-rO5*^Rj=4U3[N_<4b;WQD0-RMd(ggfFC($0^1A:[us=pX6,"_8VKAYrMirH%)l +VOp=\=rpEWc;C9I@6-#H+?j+,c=Q,BBcf6FTHVfs/)KEF/S24bk1!aM4L\pM6ftOc +k:9m%"Lac=Ch8?C)*Vp\?>jH$G08BU8iCqW2LHPeE^+c]KeK#/;V>2co?uR2J=0_sTC.T/eq;DRK'6O$-]X,9Trqi-/SDTsAkB#dq=nYi +o]XLYkuNi/Gk($@8W2Gf<,Rj0Neu5fS%c>%\NZp'T>PQFl5lu9QE$M\UYa"dP[9lm7]snRT[HT:T$FY,^9eb1Z*r5cejd', +DNc+WZdg\;\ +a,@sIkU)&4f#?u&)q5)9lu(,tf"T!*aOBS!Mfur"k0V@RdcI(FeV;W@rn&*[cGn[S +/XFUtGd$J6+)RH%D8[H29aC(Jf^9U6D=YF.*3IGne)F-_9BPBGB"QQqkO'\^3#:#W +<+9_[>],q"mFA@Wj=Y?RZgIu$DV"+A4:H-@QV\Ih*Q3tU?-_lNo5@QCDN$,bDY.kg +]'mIOfr"`h1hZ7LMJo:Wn0;Xc[;Bk@rGZ(\mus/H#61566>qH]E/EB><^uIn2fQ51 +E9mbtF,"=7%T[2nn.jdK_dRO&cL=4JnQ-6@HrB=CddBAOnT!r3?OBd4'L_C1[HA<, +-Q_f5+VlFE'DAl9Iiu/KHg5&jc%dRaLF:-Nnk\EmnfKAK[j\!&,M8>6b,.MqbntKf +N:Ra4Eh*+!Y:K3<2fSoho%u=pQ&K)M0MhYbiQ!],`uioO47cN;.$$NaO#IET1hn>[ +EAGu7)8pV_^iR^AoN+6KHr+lne8u3,@/G(+ZZ^o2,EG31Y@K9[C/dD,@1R2JGAp1kDk#p($[6H\5c2R=XEGrn +pDfh"Ft.\'LNeMmpT166ZK$-Y/9WlL)`I-WG:)MQH=;#%eYctZ-\;$$Kjl]gRTFni +=+\AoJ=WloC1Z^UC>ehH\+F9pplC.(q9jN(Q2#i:GnRjL=G$7Y[.r%WH"",Ujb7sR +OEmIaq([a%+Op4,QqhC!5sLnZ&"fg%Jc9] +qF6\FQ_SlK%!o.fH,1U!_Q`l^qrR:HCmVH^2gK8TZhi:^3QHRra0.JKYUZQU5+V_# +?/kaR9m]TQHcNSlq3lWfX`U<1qpM28XJtko\)WOe9](KT#KHZFA[TS$I':^Jgs:A_ +c$\EoI-Ukl?](mCc[?n`I4s&t5Lb*WeU:fUI;d_cJ(T11feE`RHro#"^YC\"bl,lE +IIH&KLX:JW$iU+bIP9`15NI8hjaLS!IW+CuJ*;?>-a[OeIBL&.QgB1E,Q6NeIdc`S +O5YKnlMghSIkUDC5P0G$om^?BIrG(2J+t]Nl[P;:r"+g7,1(].GPju#l>>,Y"1eX< +GiP"B34GsnN*"I;ZVdeSR9 +AM]cLB%)%Dk&ibW6`$"A/G=cbU/>URH:90G9;Y2B&1VNdV,OBoC=RXLB!kjG=)6@` +"bt!+Z<;"pHUXg::S?FDf)(.05'L18m^Gisk4*f1heuT^jo5L8^0GX+4(]QLMoK7H +d<#(Cs,kFaZC-*KB.KIqB/<]H#(K(5dV*a64Z938X3K\tgAQcHAR!+>p=k#8kB0AM +me>K8#7#r'[QsV8IRbcN^Y\PWh#<(!V:4^PHJO%jB=6L6o6[&-V@N^fnTf)F:He`o +h5C,JhZ&75]5fCAb:It',@irHkk)fkC4O?=*X[nnmr#/SZ5%cXK"KII8F +b:FM=_bf,K%`?Zk5nLt3*(\pLYq/_G][&uK'ueKl$P]Wqb[h^4aZKM$7kaLW*ljE@ +G9FrN1iFSZd'RL3a\lA(,fu3sTa&A,CniK&cqKu\b>R-+0$D]@_(a)-Pd<*dEI:t- +9f$"m1FTR\h)N%;'S.FQe#`(#5#],XcH]Ae!40rb%1,A&F<(fYd8?D[7FBV2^I1s6 +SLI1Ze@dS1dn@J5rDUrANZ@.<@q%Ica2_94OpiC;cm'89kde*8Gp%=]P1o?#[P.-+s63 +QTY:b>o-bRF^:>]TjZ^nS^U?jQbDp:hcJY0>2@fq^M6K/[KV1*fDZ4J>e"(UL0Q5- +*JEEL/eNs"d`(U3j&$iYNT8Cr/!&ao*_DOUff]k)jU0!2QJds-=(:8oN5(-[fPY[N +g%h4RT"Xq0IA"-=k(TP@\F,?P]%R@RVWlf`Tr?goAu(DtfH.:SC8_'1Xh.`L`LQ92 +)j.;hgH73bD&Z\$ZYc1[(ujs&RpEL@S%eF*mp"Q^]5@DZ!LL"%VZ"4`],nr0lo-`2 +_XQ?,GK4_DRh<&KS@YVoEu`o7a`F!P6.#70*)*#ILd)!Cn5F6IcZJGZ&]OH,RjBM( +h1'C5FktAhR<79RJ=?(9%u?KpIP6iEq-ICjj5g/7TttfAGF4NdSX1)D`1Em-e,,a* +61=^mSK%+saN)9krEipbp=k'l%I!IlS(6-i+'5ZDq_Pmequ+e0s$-5G!+6JbI'=@f +^do%=i+*:Jac6NWLZJZlK?/WsM>]Sn2"m.:(P1sk%mfo]#[nB@G]8r5_FRN2iFFNo +a;u'I3%4_G=`f&\`O3OLFT1')R>2?eT#:>Ral4"%A?_XM44oH(@Ur2id6,H;[5ABP +U+q0q8X%'%2\-XlaGUWrMoGJ,_4q]S?a1e24r8,U@q9G9dCe7(<=K[OUKE3^aa;"* +obS%bpQ#p&H:Rc2]&XQX>k+OU3,&aEA7U[^dQE.Q[)3n-S4Sl9r]S622&BBeQ]__/ +:J(59-tO%.OV3qgb"5G[j^bKE&ud\)=R,0]9X%B7Am@jGP:`VOrf(skW6<;5VWBqX +QnnYN9UV/$jD;\$E`-$a\J$c^m(&=#kl6igRF']Db]m>0kV.dS26IQ:79VX +V`G?W'$TsiM;!dJ[.S&dWSc"0TfhMdAtP:[0ht=@af#(>T[Y$989p;pVgJ!&1_g'f +Bs0qebK6Im,q`&@0U6>%)dY3>O"uSS880@rUrl#dSLPR8B8l&N-U*Ac'jCbhI4%Rm +esdkPEDBW4+K(09S^[Fh;!K5`W$_A+cNa\@l8c#E<)RNo=IE*&.NYUT<=@?'Y_?a* +>@&%ZY>uR\=O18\0sr?3;JOFo.ZI9,aR3Ze]#_H5?#r8Rf"3%C]3\NtGd!D3^fV7[ +?]-dTV3N[-=@.pEls`/HFt1MN5C]9d6&h!smg2cBBJMfjDc +V=hRHVY6_,]i)"]8%a'F52@a8IF*uF^lWaB@!(LX0N*J;GW,n:)FK.umJCYm`c0iD +aTeu8'Z*;.%q5%HLiF&i[eQ+Ui_34,nRTGS6pD&]Hm'U$ef)N'58W@'i_T*oj2!_K +NadBdS$C7+aOqUgA"7$LEGQH2[]5bVLXD1RP"`s-<2=)QYYhW:>=j*U04l3Bs6umY +<-_'WAGeA61E+rhRC:K)r8>UOQ?-RS$TfX3_4G`1I=Bl!a6%$2RoY8Y`nC-OkIhF$ +1ffM\qDUo,D"4;uY)q)#?VEAi$)"'%Ma-,VWFfhAqeZ7BB +94dL2I@rLGg=n]2KPZXaDt`>RgtSGVDGln0P?qbQ\qRG-K!i)^QLrsZgMh$^jgV^" +qqp0,ilc2l1pT%.f50c'(6.jp\6dnJ]3fu*PGuIpQPJN%?:+-@.uAL.:ZCcNIe!#b +`AVW[fpkQp*55.iH"S]s;+llu9Fo0fKurGt09GdSEO7aVR-1"6MKP*fJ/9cV]Q_=0!1`;:\IN;sU!(YZj;q7(Q_E[s^;a*,`W8HM5AG +]$n.S5.B8#Y@I!khn1K+/kPpn1:+ZhR[Qoih7LrTn=C@\G^g9,]8j2bIOrB]h]_(Y +Ti@&*B>4#\oADZTUEi#r3E'm57$"h?:t8c[hoVT>1+b+K#*C*UpeZ?2IuQ +n9tu`o0&'Pq>PKeQ4La)5@<1As+mHLh#$h1JQMhXfDKspan!*ol29d$lVHC;,)#s^ +r;`qd!:8kIO9XGN"Ta],!X"PaC\Xg:V?o#AgS'Wb]%OF:_s>_#mRV\#S;S=0Na4S*sLl8Y4-oH +6:V8W7g;eUF0Lo:%93_9]aD!A$OrR,Ba4q26E8D/$R.S*%aaWOnFI/W,7Nq$#E\f00_l8W$P:07h2"K0BJQ4-#nZ3D +&^_XCE;mrK.*0d<&jf#"d5)GpV%G)k&Sg$hYp0pE2\NAe'/<2$YqZod4V^gu((=C\ +k=64;2HTET`pn$`ED[?GFN'AF(+k.TOb4L4h\Khm(9n^_E1[uAAJ`a8(i^'(lqnT3 +Rh$+!)UYl19Ig($A8?1JQUVW,CeGaa$997[>0;Z9ALq8:Eo<$-EGN?&htah +=XVB;-Sf(G#Mgc.ZRE,%-LgIPl`2CR.k,Lg.LP>WEeM*(>q,+:.5:WKl^98=I4;H0 +/$bp$8ui1pW?s'0.kod11:\tjgF[2b/+Nuuo#EA?Eqg9k@OYA2CMPSDi@V:a0<8G4 +1'93clS-I>if`f&l.%Jg5;BJJ0CZk6lT6e?j"bZd1CdAXOCK\$[F\;@lH1i +3:NV$Wq//hh`5b-3XIu@K+Bq3(F!pa$$2^udqq,p,:bL]:>t+?J6IZ$+0NCU-:IVOj8$lbs7r_";@.+e]UpQ7Se9;'QPeqN"4HuC- +FJa-OM`)*.8lH+%jjB"VetaZr9RR[fj(fT[^jr[,F]c +l>@99.9,+*eEK\GMbLMR1K:&2[.R2E$H7"#(c;;c<>;)@))7B_!]9!UPoW]O.VZ$p +-$:W4eKI_23ff/S+S!?DX2.9J7C1VNb1GrjN +ogo3"FI?-VU%JRX*;J2$k`#a+g#Ok'[M[M`K(.^p+q6$=BR2AKHi3E7scq\CIm +2F1g'9/r5.q"?P,Q;qBP;#&UDOOci:[U!FpCGFCRpJt[`G''0rE:rpLNYZ1cNM(1IZI95M^fC==B$YO\ikkG.4p^r!8)!H2YI+STV(`e.Z +.r0AXkI;X^GVt%rr@/XDHak@^(d3K'9"S1jKfCdL=AXA^=F#-rH!!KlQrSglC,%u1 +LDY)f=EfOfH\^7'L_tc#=GM^"Mhp#HM&;G5=I4l3Ru,diMAW+G=Jq%DX,>Q5M\rdY +=LX3U]8P=VN#9Hk=N?AfbDb*"N>U-(=P&P"gPskCNYpf:=Qb^3l]0WdNu7JL=SIlD +qiBD0O;S.^=U1%V$]s$POVngp=Vm3g)j/eqOr5L-=XTB#/!AR=P8Q0?=G_d_m?;f[ +PSliQ=\"^E99e+*Po3Mc=]^lV>F!lKQ5O1u=_F%gCR3XlQPjk2=a-4#H^EE8Ql1OD +=biB4MjW0_!#^ua[B5hlS!hs%RMhlh=f7^VX.%_FRi/Q%=gslg]:7KgS/K57=i[&# +bFI83SJfnI=kAM`Q^u*>L'fMeP\m":=.ZQtSgZ1*<]a+1hk/<G,Vc +T]^r^;g"bDs.RKbTe^2QXtQM1&Ya.pU8N:1E2THl+/@,*TF'#ZZ+1'2%ZRq`SV[9^l0sEFL['$C-H:>5'5IJUW[BA>o/Vg]F +n[>F)[V^T#FEOtf?anR0\$HCM/UOr'8[pQ.\8L93G!EM6J%=+=\MgY%Z^nZhM7U&= +]'i"sG,)WqT=`36\>Irl/N(-n8%Z+n]WY2EFd'L#^V._7]ra*'B$n>>`P+"-]^ufL +G4WHFhnR88^TXWP/L/!AahKZ<^i/&:HH!]^s1u[b^p4cloRXik$,WnU_XH[&G8%kV ++2c'__Bu>%-DeY.-*/qY`2WLKG9=`85K1g>`NTro1]>1;ou=B%`c+;aG;I9%?cU@C +`:Sc&-qD=jBui,@aC_!PE-o\hJ&g?5Bj@@?*,i]aWDn8Ig^gNhp7/(cI";l0`fX; +J^X4=]@/*:e)j`]4Z1X\-e,Rp +_0f,/I65u7qpf]2ea]Wi0n7bj7FZ"-cWC.t]j'*TYLddEeFmP-4\a#i@Fj]Mf/Q"H +rHm4TFkLdWfQPrZk?5MRl)r]Wq +iZ9?(?74a(/)oD=iuU#:?8po946,0^j;p\L?:X(J9B=r*jW7@^?NO^KjrS$p +?>&DlCZaJlk8n^-??bS(Hfs78kT5B??AIa9Ms0#YkoQ&Q?C0oJS*Ae%l5l_c?Dm([ +X6SQFlQ3Cu?FT6l]Be=gllO(2?H;E(bO"*3m2jaD?J"S9g[3kTmN1EV?K^aJlgEWu +miM)h?MEo[qsWDAn/hc%?O-(m$h3$anK/G7?Pi7))tDf-nfK+I?RPE:/+VRNo,fd[ +?T7SK47h>ooH-Hm?Usa\9D%+;ocI-*?WZom>P6l\p)df7Kg\p$erZC2"?g%E\li,f1ru^k4?haSmqu=M5s+*Gn +OB==\&IF.XiK2]64s:Mp7,j>2ZsGI)NCMrjf^sVY+d#=VP$'W5;(7c&jc\;=^0raa +9]hOA[,,d_SPJ@3g%>8p6(q-=PZfpcO\)BIl'0nE5+tiQ<9f`P[9g+@X]FbQg@]p2 +@Bir$QX(B>jdq_[GLG!]jC/og\(RIJ\ba`Qs;Nk&W+J9nX/*T +59Z02AFc-n[U1bWc"?R8h"H4`U![QGRU%hD;5r)\opX][^L=D#D"a?([bl)8h/;tV +h=gl"_;TA.S6e,rOic^*q4-;c5G?KhFS_P7[pQDnm<8AthY2N9iUM0jSmOFKdHU=M +rLVnj^Z"_YI/]aF\)6`OrI4d=ht-jJ5VNlW!^NtH%g50P<#5a)Y]Lrm684WO$::u( +0+:3%e2Ik)Yk1-k6noBG&k&u]:D?5P<*'i(Z#j=i7PU-?)Fh!=D]D8%e9;s(Z1NMg +82:m7,"T!rO!I:P<0nq'Z?2]e8huX/.S@"RY:N=%e@.&'ZLkmc9J[C'1/,#2cSS?P +<7a$&ZZP(a:,A-t3_m#gmlXB%eFu.&Zh48_:c&ml6;Y$H%n'8O<>S,%ZumH];DaXd +8lE%(02,;$eMg6%[.QX[<&GC\;H1%]:K1=O#r&=Dd6@$eTY>$ +[Io#W=>gnL@T^&rO(;BOW3DIAiZ/iRV'+=Dk(H# +ep!]u\b:NGBK?oaU1h+rO/-JN@-2ca7ON%:QV&LCiQ06R[3j@Iud?&I'CH3/J5V1e3B7-7(t1FVA5+:Po`R.3qHN +'k4OOM\0PQ7C]lE@e=#^;,/i836<%J1hT-o?8P-]fc+FCDiPFJej2jg*FlI#NtLM; +8$^edUZ?od&dCWm3=-j#>]c(U-:LJ9)'`[6G)sS96lWW[;WOiLP%:RdaS@hDAFuLY +&qlH?Z:cH;]VHs]>pN$V7g5_'YEfg@=\Cas.gZou2Nm!m8u._)V7`ssP6PGh3JfJ" +N2S!5C/`=XR4fi()3[uS@net_2.j5II<,+BbbK#5MEK0.d=MrN\[a/$K\2h/VKGYE +f^Yh)+.L['F-QL97;!;X44D-/:0H=9BCu4s'Eu`WU+\e[PSKWD+HFcG,W/V1[Ugf&j#an%fjS#0e6BmWnq*o(@0;]H'R5DK=7-U\I +V6cU!;90hMWEgdFoG3O[$?&b>:f1ILJ:k@0.Y)rLh:SEcc8k(`^ +\@3/S]N'.E2=%lA9,cm(R?MZ7:Gj!l&E^A7[CE$"B-T.'$MJ#V)6Z>>4UIg(2JreRk:'o# +".f!0N6^'33_\=WSo\c>Y2mbj)/V951^9;nqM.p_4\:Sh?G4ePBjL]3gSW>&'Y,p;:Ih6Gp0pf&Gk;3!qH>L9/\p")Ih](a,81]%l +2l=UNg]M9X%I?YFA_Psf%$U'aj2-]Qg"os%M/b^.`FHh;eQ2a>lb-rK-/S.0HYZi) +*Mp,;:D(marl/u]/^&E`0BNk(8Fc*5_k]LJY$9A-m1(qn[!+Lg*,D&7@V;J#A.=^W +fWO`SL!4je:[/ri.?t?WlWahpZtfRIblKh=Vf3g@RQBmJUp'p)dr5>X)NJ^=I/q +?XL&7^B*[#0>[!rch)Zjn_l\CB)B.dr$d?3s#!c@S^O,E6Ms`g!r'9'8d"gOj!)=o_SK1q6SpU:6o:BSRR%oF +_(4K]4=7;>2T$dp]3EWC6hqp"007Dr_+Rknft +.s44;^URMn_k]:\S.e94W^5rH6<"<1lnCTH9Z4k'`#Jii/1kpQ`H52#JWDVZ +<^>/4$FEu*/3pa>6cH]6_t422A.(i4o0q//_INSa<&d9>=N4l``cPj]b:Z2@j@2gK +^k>P$S8:[%D$o'6[;(=SS5?gJGsBc^6S(r#jCh%_FiS$9R+g%Y_qrDkYX=ph^hdc' +'R?m7F/5=F7LX9,ZlI(j2b2A47nda?*-XqQKudeZQs-W4Mjh[J'!]YpaGZ\01GQK, +369g$6B$!%Hlp:kM9$s$aE3Wf7$PejHpL#taLf7#XFj!3T#N:W_u*=Te7Cs'Ou,Qc +_pj=\>bK4RTunNoa_Zi+&?s'al:;>2a@NSY>[524YK+;:7BEE/*/d8XU<;Q"b4Mm& +bc&MIUl.'taXF&[1O7-]X,E4Lb*9cfXagKD^kK]mgcEuo_`9be!mEXe\cLgSO"Rs_On]rKOcSY7>7.ef) +p!71BcZJp-K_WlXq9Pl5ca9!dBsq@`>m:U*RWsidIeU0"X)5.+jqY\dPW8t73p;]-.6?OdWHqcKdbB7 +.FP%Bd^:UR`@THf/^i`5de,9B"YeC?1".F(dkrr175WIn2:H+pdrdUuKfIPH3Rafc +e$V9d`B;W"4k&LVe+GrT"[LQP6.@2Ie29VC77>X*7FYm5?J_29#fJS<67>0;nL"KskfQDu%Ko"BHM:eY^fX6Xi`JiI"NS*?Qf_(g@_Z("gH_rZ.gS1gGQ=l +7C:fL[G,9$gNC![Kt,m&\_EslgU4ZJ`OssU^"_Y_g\&>:"i/n._;$?Rgbm")7E!t] +`S>%Egi^ZmKui&7akW`8gpP>\`Q[,fc.qF+h"B"L"jl'?dG6+sh)3[;7F^-ne_Off +h0%?*L"P4Hg"iLYh6l"n`SB;"h;.2Lh=][^"lS5PiSGm?hDO?M7HE<*jkaS2hKA#< +L$7BYl/&9%hR2\+`U)I3mG?smhY$?p"n:Can_YY`h_k#_7J,J;p"s?Shf\\NL%sPj +q;8%FhmN@=`VeWDrSQ`9ht@$-"p!Qs!T5:+i&1\q7KhXM"lNtsi-#@`L'Z_'$/hZf +i3j$O`Oq!4~> +grestore showpage %%PageTrailer pdfEndPage diff --git a/packages/python/plotly/plotly/tests/test_orca/images/linux/topofig.eps b/packages/python/plotly/plotly/tests/test_orca/images/linux/topofig.eps index 21e858440e..18fb1f034d 100644 --- a/packages/python/plotly/plotly/tests/test_orca/images/linux/topofig.eps +++ b/packages/python/plotly/plotly/tests/test_orca/images/linux/topofig.eps @@ -1,10 +1,10 @@ %!PS-Adobe-3.0 EPSF-3.0 -%Produced by poppler pdftops version: 0.81.0 (http://poppler.freedesktop.org) -%%Creator: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) orca/1.3.1 Chrome/76.0.3809.146 Electron/6.1.7 Safari/537.36 +%Produced by poppler pdftops version: 0.71.0 (http://poppler.freedesktop.org) +%%Creator: Chromium %%LanguageLevel: 2 %%DocumentSuppliedResources: (atend) %%BoundingBox: 0 0 529 379 -%%HiResBoundingBox: 0 0 528.95996 378.95999 +%%HiResBoundingBox: 0 0 529 379 %%DocumentSuppliedResources: (atend) %%EndComments %%BeginProlog @@ -446,7958 +446,1713 @@ xpdf begin %%EndSetup pdfStartPage %%EndPageSetup -[] 0 d -1 i -0 j -0 J -10 M -1 w -/DeviceGray {} cs -[0] sc -/DeviceGray {} CS -[0] SC -false op -false OP -{} settransfer -0 0 528.95996 378.95999 re -W -q -[0.24 0 0 -0.24 0 378.95999] cm -q -0 0 2204.1665 1578.87097 re -W* -q -[3.126477 0 0 3.126477 0 0] cm -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -0 0 705 505 re -f -Q -Q -q -250.11818 371.32932 1688.2977 883.1095 re -W* -q -[3.126477 0 0 3.126477 0 0] cm -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -80 118.769234 540 282.46155 re -f -/DeviceRGB {} CS -[0.2667 0.2667 0.2667] SC -/DeviceRGB {} cs -[0.2667 0.2667 0.2667] sc -1 w -0 J -0 j -2 M -1 w -0 J -0 j -2 M -383.25278 176.01569 m -381.33243 176.70825 l -381.65268 182.49603 l -381.46231 182.41553 l -379.72809 183.62451 l -378.17236 184.7352 l -377.20096 186.61595 l -378.86703 188.49713 l -378.3913 191.15715 l -378.48737 193.97565 l -378.27942 196.27679 l -380.54391 198.13919 l -381.40771 198.19516 l -383.8602 199.59929 l -384.65671 200.27274 l -385.28189 201.39487 l -387.18805 203.07803 l -389.76563 204.45871 l -390.09918 205.32703 l -390.22275 207.79948 l -390.47876 209.02641 l -380.66223 209.27477 l -369.7807 209.5876 l -359.57721 209.90634 l -351.41064 209.91429 l -351.55292 200.19424 l -350.74835 190.22595 l -349.43115 189.42442 l -348.78409 187.83446 l -349.17242 186.42978 l -350.77728 185.2975 l -350.8797 183.80324 l -350.89078 181.86972 l -350.52716 180.28635 l -349.88705 178.61382 l -349.53171 176.50514 l -349.54944 174.22537 l -349.27747 173.60966 l -349.02631 170.62935 l -348.94672 169.2282 l -348.86594 168.00264 l -348.51974 165.901001 l -347.72128 163.796127 l -346.9259 161.86647 l -346.8573 160.033585 l -346.79129 158.027771 l -346.98706 156.723389 l -347.09131 155.50563 l -346.48166 154.018814 l -346.31494 153.059937 l -353.64969 153.114014 l -360.62677 153.089096 l -360.60278 150.395294 l -360.59195 149.17981 l -361.74689 149.08168 l -362.90256 149.068314 l -363.28073 150.800262 l -364.13867 154.701218 l -366.32114 156.407654 l -369.20551 156.699188 l -371.19064 156.914078 l -378.35635 158.352951 l -382.95316 160.267212 l -385.1713 161.217117 l -387.31882 160.590927 l -390.80408 159.6241 l -399.46906 161.718643 l -392.59058 165.559326 l -387.77805 169.93166 l -383.19016 174.52611 l -383.25278 176.01569 l -h -299.15201 150.742661 m -297.7384 169.45529 l -297.04736 181.99158 l -295.86716 191.43413 l -283.67966 190.11104 l -270.6398 188.73288 l -259.34497 187.17119 l -245.14189 185.13985 l -244.32036 190.27859 l -244.1561 190.69925 l -243.40321 189.95256 l -242.96796 188.45198 l -242.17642 187.96552 l -240.79526 189.88472 l -239.14566 189.87889 l -235.09636 188.56154 l -234.72627 189.57227 l -232.44315 188.72302 l -230.85782 189.9646 l -230.02357 187.0336 l -229.44638 185.40404 l -227.99292 184.86783 l -227.74646 184.1046 l -227.77837 181.33073 l -226.71672 179.78728 l -226.4855 176.42764 l -225.9157 174.88593 l -225.13371 174.4675 l -224.12776 175.7077 l -222.50369 176.64778 l -221.41103 175.3567 l -221.82982 172.74866 l -222.77765 172.30769 l -222.75198 169.52524 l -223.90079 167.065308 l -225.17609 164.899719 l -223.00833 164.384491 l -221.57355 162.577667 l -220.20839 159.081863 l -219.35295 157.297333 l -218.01926 156.037781 l -217.01408 154.128754 l -217.39218 152.331635 l -216.18895 149.218689 l -217.89958 138.623428 l -238.43387 142.677338 l -258.46799 145.980057 l -278.95041 148.700775 l -299.15201 150.742661 l -h -346.31494 153.059937 m -346.48166 154.018814 l -347.09131 155.50563 l -346.98706 156.723389 l -346.79129 158.027771 l -346.8573 160.033585 l -346.9259 161.86647 l -347.72128 163.796127 l -348.51974 165.901001 l -348.86594 168.00264 l -348.94672 169.2282 l -349.02631 170.62935 l -349.27747 173.60966 l -349.54944 174.22537 l -349.53171 176.50514 l -349.88705 178.61382 l -350.52716 180.28635 l -350.89078 181.86972 l -350.8797 183.80324 l -337.1951 184.11569 l -325.48679 183.71451 l -310.7002 182.92107 l -297.04736 181.99158 l -297.7384 169.45529 l -299.15201 150.742661 l -299.50851 150.77301 l -322.80191 152.331528 l -346.31494 153.059937 l -h -273.28082 384.0784 m -275.06445 384.94366 l -276.59921 386.33612 l -279.17178 389.91406 l -278.92245 390.53085 l -275.11887 392.75613 l -271.94263 394.35779 l -270.54926 396.1232 l -268.11902 394.64029 l -268.36166 391.73996 l -266.69238 387.9711 l -267.19669 386.82837 l -268.96866 385.15408 l -268.19803 383.14044 l -268.82831 382.17334 l -269.59036 382.34515 l -273.28082 384.0784 l -h -267.41251 377.0105 m -266.65759 378.32684 l -263.36563 379.03726 l -261.71484 376.8512 l -260.57452 376.06491 l -260.44717 375.36487 l -261.45804 374.48846 l -264.87576 375.44348 l -267.41251 377.0105 l -h -260.06516 372.82806 m -259.68689 373.96558 l -254.50276 373.61444 l -255.26256 372.39078 l -260.06516 372.82806 l -h -247.70093 367.21576 m -248.58115 367.91785 l -251.34767 371.33463 l -250.84071 371.94531 l -250.08315 371.76825 l -246.67348 371.40576 l -245.54811 369.04062 l -245.17126 368.68924 l -247.70093 367.21576 l -h -234.75867 362.06805 m -234.9888 364.42566 l -233.84502 365.46234 l -230.58949 363.50888 l -231.10066 362.81647 l -232.49606 361.78442 l -234.75867 362.06805 l -h -217.89958 138.623428 m -216.18895 149.218689 l -217.39218 152.331635 l -217.01408 154.128754 l -218.01926 156.037781 l -219.35295 157.297333 l -220.20839 159.081863 l -221.57355 162.577667 l -223.00833 164.384491 l -225.17609 164.899719 l -223.90079 167.065308 l -222.75198 169.52524 l -222.77765 172.30769 l -221.82982 172.74866 l -221.41103 175.3567 l -222.50369 176.64778 l -224.12776 175.7077 l -225.13371 174.4675 l -225.9157 174.88593 l -226.4855 176.42764 l -226.71672 179.78728 l -227.77837 181.33073 l -227.74646 184.1046 l -227.99292 184.86783 l -229.44638 185.40404 l -230.02357 187.0336 l -230.85782 189.9646 l -232.44315 188.72302 l -234.72627 189.57227 l -235.09636 188.56154 l -239.14566 189.87889 l -240.79526 189.88472 l -242.17642 187.96552 l -242.96796 188.45198 l -243.40321 189.95256 l -244.1561 190.69925 l -244.31744 190.90381 l -240.24197 216.41861 l -217.81784 212.56572 l -195.36769 207.79518 l -199.65775 189.61038 l -200.88083 186.80531 l -200.60703 185.38594 l -199.44943 184.40034 l -199.82036 182.76428 l -201.35312 180.75812 l -203.30569 179.02599 l -205.05251 175.98251 l -206.63808 173.62605 l -207.56607 172.47751 l -207.53696 170.84949 l -206.53275 169.72754 l -205.30455 167.472382 l -205.79868 165.691528 l -205.50702 164.005676 l -208.47774 149.944458 l -211.25949 137.165604 l -215.62627 138.132462 l -217.89958 138.623428 l -h -211.25949 137.165604 m -208.47774 149.944458 l -205.50702 164.005676 l -205.79868 165.691528 l -205.30455 167.472382 l -190.87599 164.170761 l -188.07375 164.561554 l -186.36208 163.676697 l -184.80293 164.096512 l -181.96997 164.547363 l -178.80898 163.627197 l -177.0598 163.981171 l -175.42262 163.905899 l -174.47015 163.100998 l -172.13622 162.006287 l -170.41042 161.893585 l -167.49585 162.173172 l -165.749222 161.768753 l -164.240158 160.878357 l -164.087891 159.369141 l -164.395966 157.62709 l -163.676178 155.404419 l -161.876038 154.236191 l -160.449661 152.806229 l -158.304901 152.164642 l -156.812485 151.621857 l -158.014709 145.750107 l -158.495483 136.650208 l -157.893005 131.526855 l -159.351974 129.879532 l -167.96811 136.123047 l -168.86296 146.491333 l -171.28864 144.361435 l -171.42368 143.217087 l -172.56245 135.909653 l -172.54274 127.20163 l -191.43515 132.37912 l -202.54626 135.14241 l -211.25949 137.165604 l -h -248.31726 270.52344 m -240.25102 328.95078 l -222.89735 326.45898 l -204.4622 315.84705 l -196.10242 310.6571 l -192.51512 308.41238 l -193.68863 306.57013 l -194.7932 306.78976 l -196.18106 304.98724 l -194.91466 303.29166 l -194.89641 301.66168 l -194.82208 299.74887 l -196.92934 297.72717 l -198.50984 293.15726 l -201.5217 291.57544 l -200.27087 289.3432 l -199.56758 287.21518 l -199.2827 285.25867 l -199.12909 283.78003 l -199.08751 282.86646 l -200.03749 280.88202 l -200.00768 278.79346 l -200.17554 276.83429 l -200.62604 274.5687 l -200.2681 273.04773 l -201.04021 271.93314 l -202.73184 272.26782 l -204.18263 273.27603 l -205.15739 273.91757 l -205.98959 272.44904 l -206.47971 272.18127 l -207.96632 263.86859 l -220.98795 266.07401 l -236.52643 268.71365 l -248.31726 270.52344 l -h -199.08751 282.86646 m -199.12909 283.78003 l -199.2827 285.25867 l -199.56758 287.21518 l -200.27087 289.3432 l -201.5217 291.57544 l -198.50984 293.15726 l -196.92934 297.72717 l -194.82208 299.74887 l -194.89641 301.66168 l -194.91466 303.29166 l -196.18106 304.98724 l -194.7932 306.78976 l -193.68863 306.57013 l -182.63965 305.46365 l -173.67136 304.22241 l -172.88107 304.13498 l -172.63069 298.62869 l -168.54651 291.49661 l -164.937134 289.36267 l -164.780334 286.22296 l -160.282272 284.57495 l -157.968735 281.07071 l -150.631882 278.17783 l -148.933502 275.98621 l -148.978973 275.81461 l -149.462646 270.15549 l -146.381485 262.79269 l -144.365814 257.90665 l -141.726303 242.10771 l -142.048431 241.36768 l -142.716537 239.8019 l -140.29541 235.67862 l -140.244415 235.47856 l -138.659378 231.21487 l -136.714706 225.34859 l -138.187042 216.88116 l -137.335281 214.39488 l -135.838882 210.22073 l -138.651672 204.86021 l -140.03476 202.40541 l -142.367035 193.74857 l -173.32643 202.56464 l -165.494751 232.91853 l -176.82497 250.28366 l -188.11101 266.97424 l -199.08751 282.86646 l -h -307.31934 244.86081 m -306.29132 261.00458 l -305.31952 276.26526 l -297.45621 275.72455 l -287.68848 274.94138 l -273.79883 273.6142 l -260.99243 272.16742 l -248.31726 270.52344 l -253.94205 229.04366 l -261.63498 230.06552 l -269.33826 231.0063 l -284.7724 232.64421 l -292.50906 233.25269 l -307.98535 234.40201 l -307.33627 244.5948 l -307.31934 244.86081 l -h -195.36769 207.79518 m -217.81784 212.56572 l -207.96632 263.86859 l -206.47971 272.18127 l -205.98959 272.44904 l -205.15739 273.91757 l -204.18263 273.27603 l -202.73184 272.26782 l -201.04021 271.93314 l -200.2681 273.04773 l -200.62604 274.5687 l -200.17554 276.83429 l -200.00768 278.79346 l -200.03749 280.88202 l -199.08751 282.86646 l -188.11101 266.97424 l -176.82497 250.28366 l -165.494751 232.91853 l -173.32643 202.56464 l -195.34822 207.8817 l -195.36769 207.79518 l -h -240.25102 328.95078 m -248.31726 270.52344 l -260.99243 272.16742 l -273.79883 273.6142 l -287.68848 274.94138 l -297.45621 275.72455 l -297.07651 280.86609 l -295.05554 308.23151 l -293.61365 327.75623 l -285.56946 327.12286 l -269.95367 325.66849 l -262.04382 324.81812 l -262.05814 325.7099 l -262.89041 327.49359 l -247.72388 325.66974 l -247.17868 329.87772 l -240.25102 328.95078 l -h -205.30455 167.472382 m -206.53275 169.72754 l -207.53696 170.84949 l -207.56607 172.47751 l -206.63808 173.62605 l -205.05251 175.98251 l -203.30569 179.02599 l -201.35312 180.75812 l -199.82036 182.76428 l -199.44943 184.40034 l -200.60703 185.38594 l -200.88083 186.80531 l -199.65775 189.61038 l -195.36769 207.79518 l -195.34822 207.8817 l -173.32643 202.56464 l -142.367035 193.74857 l -142.351959 185.39893 l -148.036407 176.86961 l -151.683838 168.19249 l -155.236511 159.41423 l -156.812485 151.621857 l -158.304901 152.164642 l -160.449661 152.806229 l -161.876038 154.236191 l -163.676178 155.404419 l -164.395966 157.62709 l -164.087891 159.369141 l -164.240158 160.878357 l -165.749222 161.768753 l -167.49585 162.173172 l -170.41042 161.893585 l -172.13622 162.006287 l -174.47015 163.100998 l -175.42262 163.905899 l -177.0598 163.981171 l -178.80898 163.627197 l -181.96997 164.547363 l -184.80293 164.096512 l -186.36208 163.676697 l -188.07375 164.561554 l -190.87599 164.170761 l -205.30455 167.472382 l -h -217.81784 212.56572 m -240.24197 216.41861 l -238.63261 226.49414 l -253.94205 229.04366 l -248.31726 270.52344 l -236.52643 268.71365 l -220.98795 266.07401 l -207.96632 263.86859 l -217.81784 212.56572 l -h -244.1561 190.69925 m -244.32036 190.27859 l -245.14189 185.13985 l -259.34497 187.17119 l -270.6398 188.73288 l -283.67966 190.11104 l -295.86716 191.43413 l -294.26346 212.57941 l -292.50906 233.25269 l -284.7724 232.64421 l -269.33826 231.0063 l -261.63498 230.06552 l -253.94205 229.04366 l -238.63261 226.49414 l -240.24197 216.41861 l -244.31744 190.90381 l -244.1561 190.69925 l -h -407.32214 286.22113 m -407.27353 287.1149 l -406.61795 288.67203 l -405.16809 289.74512 l -404.9559 291.53891 l -403.73718 292.95007 l -404.03198 295.95731 l -403.11008 296.99234 l -403.05447 297.88528 l -401.56631 298.6853 l -401.65445 300.19199 l -400.61072 303.09738 l -399.76559 303.7673 l -398.30121 305.26971 l -397.53146 307.44324 l -395.83533 311.17236 l -395.73782 313.66306 l -396.88181 316.3562 l -396.53836 318.41452 l -389.23785 318.39914 l -379.8335 319.09497 l -371.53284 319.30634 l -371.96857 313.3576 l -369.96219 313.30875 l -368.29465 313.51544 l -367.83771 312.81345 l -367.91144 303.67337 l -367.96384 293.54858 l -366.0668 282.55826 l -376.14084 282.43753 l -385.24966 282.22528 l -393.92374 281.83987 l -403.38043 281.93323 l -404.10095 283.13489 l -403.20688 284.34814 l -402.41745 285.5538 l -401.93802 286.56192 l -407.32214 286.22113 l -h -351.41064 209.91429 m -359.57721 209.90634 l -369.7807 209.5876 l -380.66223 209.27477 l -390.47876 209.02641 l -390.6026 209.55161 l -391.66116 211.18076 l -391.01981 212.01115 l -391.12762 214.13283 l -391.56876 215.08551 l -392.04767 216.74565 l -394.65344 217.58151 l -395.43115 219.13521 l -395.96902 219.90344 l -396.88727 220.38304 l -397.25082 221.51591 l -398.48456 222.24159 l -399.33023 223.0782 l -399.10678 225.93478 l -397.85086 228.32056 l -397.39868 229.14694 l -395.63589 229.86972 l -393.06009 230.45338 l -392.45544 232.35081 l -393.50037 233.09631 l -393.88632 234.6759 l -392.97202 236.50189 l -392.54926 238.12404 l -390.60471 239.82118 l -390.49164 241.69397 l -389.43448 240.85484 l -387.83737 239.23859 l -379.3407 239.83559 l -370.42542 240.16609 l -363.43106 240.28053 l -356.43594 240.32896 l -355.82507 238.46521 l -356.12509 236.60019 l -355.92053 234.73631 l -355.11432 231.71959 l -354.61362 230.47742 l -354.01379 230.12212 l -354.01639 227.72702 l -353.52106 226.04128 l -352.13626 224.08687 l -352.13953 223.20039 l -351.6517 221.5144 l -351.36035 220.44969 l -351.36499 219.47508 l -350.19003 218.31685 l -350.78967 216.63762 l -351.19073 214.9574 l -351.39206 213.80757 l -350.42322 212.3862 l -350.43842 209.90898 l -351.41064 209.91429 l -h -305.31952 276.26526 m -306.29132 261.00458 l -307.31934 244.86081 l -320.99472 245.60588 l -331.20786 245.9985 l -349.29474 246.35086 l -360.12866 246.35217 l -361.98199 247.75836 l -363.00595 247.74783 l -363.22769 249.25609 l -362.22095 251.22189 l -362.74564 252.19421 l -363.80212 254.4045 l -365.88257 255.35469 l -365.94171 266.55646 l -366.10428 277.7572 l -358.86182 277.82864 l -344.16348 277.76654 l -329.36246 277.42349 l -321.27338 277.11697 l -313.08154 276.72064 l -305.31952 276.26526 l -h -407.32214 286.22113 m -401.93802 286.56192 l -402.41745 285.5538 l -403.20688 284.34814 l -404.10095 283.13489 l -403.38043 281.93323 l -393.92374 281.83987 l -385.24966 282.22528 l -376.14084 282.43753 l -366.0668 282.55826 l -366.10428 277.7572 l -365.94171 266.55646 l -365.88257 255.35469 l -363.80212 254.4045 l -362.74564 252.19421 l -362.22095 251.22189 l -363.22769 249.25609 l -363.00595 247.74783 l -361.98199 247.75836 l -360.12866 246.35217 l -359.09381 244.13776 l -357.86551 242.81136 l -356.5394 241.21686 l -356.43594 240.32896 l -363.43106 240.28053 l -370.42542 240.16609 l -379.3407 239.83559 l -387.83737 239.23859 l -389.43448 240.85484 l -390.49164 241.69397 l -390.00378 244.2963 l -390.87125 247.45712 l -392.20566 249.52699 l -393.83728 251.22372 l -395.76608 252.5453 l -396.51196 252.94946 l -397.24023 254.8674 l -397.44354 256.63663 l -398.40155 257.02728 l -399.91412 256.22635 l -401.46753 257.8244 l -401.17145 259.802 l -400.53363 261.35468 l -400.12286 263.24951 l -401.36966 264.77783 l -403.02972 266.10037 l -403.97955 266.12915 l -406.22586 268.20947 l -407.09152 268.50757 l -407.78818 270.95514 l -407.68622 272.56613 l -408.81735 275.07236 l -409.75366 274.73923 l -411.24866 276.23621 l -411.11307 277.31558 l -411.33521 278.90369 l -410.11804 279.88208 l -408.38144 281.16138 l -408.23407 282.1514 l -407.80038 283.69516 l -407.32214 286.22113 l -h -307.31934 244.86081 m -307.33627 244.5948 l -307.98535 234.40201 l -292.50906 233.25269 l -294.26346 212.57941 l -308.91296 213.67136 l -320.15765 214.30482 l -335.2287 214.87595 l -337.15408 216.25458 l -339.9823 217.11581 l -340.58032 216.68501 l -342.34702 216.71785 l -345.09653 216.67175 l -347.04514 218.02405 l -349.10306 218.92915 l -349.39178 219.81735 l -350.07892 220.26521 l -351.36035 220.44969 l -351.6517 221.5144 l -352.13953 223.20039 l -352.13626 224.08687 l -353.52106 226.04128 l -354.01639 227.72702 l -354.01379 230.12212 l -354.61362 230.47742 l -355.11432 231.71959 l -355.92053 234.73631 l -356.12509 236.60019 l -355.82507 238.46521 l -356.43594 240.32896 l -356.5394 241.21686 l -357.86551 242.81136 l -359.09381 244.13776 l -360.12866 246.35217 l -349.29474 246.35086 l -331.20786 245.9985 l -320.99472 245.60588 l -307.31934 244.86081 l -h -297.45621 275.72455 m -305.31952 276.26526 l -313.08154 276.72064 l -321.27338 277.11697 l -329.36246 277.42349 l -344.16348 277.76654 l -358.86182 277.82864 l -366.10428 277.7572 l -366.0668 282.55826 l -367.96384 293.54858 l -367.91144 303.67337 l -367.83771 312.81345 l -364.14133 310.82446 l -361.68973 309.78455 l -359.80908 310.50797 l -356.81213 310.34354 l -355.0368 310.43466 l -353.4819 311.23187 l -352.14749 311.67203 l -350.81644 311.13446 l -348.03461 311.73688 l -346.71851 309.9509 l -345.37018 311.44424 l -343.04718 310.70435 l -340.633 309.06891 l -338.06305 310.08453 l -337.00851 307.57761 l -333.02307 307.65756 l -330.60611 307.05624 l -327.75681 306.25568 l -326.50998 303.99304 l -324.2814 304.62207 l -322.99091 303.7728 l -320.94846 302.53458 l -321.36719 292.59805 l -321.80121 282.29968 l -313.55475 281.90866 l -305.31287 281.43076 l -297.07651 280.86609 l -297.45621 275.72455 l -h -350.8797 183.80324 m -350.77728 185.2975 l -349.17242 186.42978 l -348.78409 187.83446 l -349.43115 189.42442 l -350.74835 190.22595 l -351.55292 200.19424 l -351.41064 209.91429 l -350.43842 209.90898 l -350.42322 212.3862 l -351.39206 213.80757 l -351.19073 214.9574 l -350.78967 216.63762 l -350.19003 218.31685 l -351.36499 219.47508 l -351.36035 220.44969 l -350.07892 220.26521 l -349.39178 219.81735 l -349.10306 218.92915 l -347.04514 218.02405 l -345.09653 216.67175 l -342.34702 216.71785 l -340.58032 216.68501 l -339.9823 217.11581 l -337.15408 216.25458 l -335.2287 214.87595 l -320.15765 214.30482 l -308.91296 213.67136 l -294.26346 212.57941 l -295.86716 191.43413 l -297.04736 181.99158 l -310.7002 182.92107 l -325.48679 183.71451 l -337.1951 184.11569 l -350.8797 183.80324 l -h -371.53284 319.30634 m -379.8335 319.09497 l -389.23785 318.39914 l -396.53836 318.41452 l -397.2428 318.99933 l -396.53418 320.54358 l -397.88107 322.60242 l -397.60742 323.85794 l -398.83435 325.65491 l -397.64563 326.78085 l -397.40585 328.74237 l -395.78204 330.41837 l -395.09283 332.66541 l -394.41187 335.1759 l -393.32108 336.37689 l -393.9024 339.00305 l -401.6123 338.87396 l -410.00052 338.45279 l -409.88055 340.142 l -409.41953 341.94122 l -410.07666 343.13651 l -411.31348 344.29254 l -411.66284 346.03714 l -411.95978 346.98932 l -412.08765 347.15741 l -413.78448 349.78009 l -413.96002 354.00589 l -416.09216 355.88535 l -414.43179 357.41373 l -410.92331 356.06308 l -407.64795 358.29883 l -401.164 358.32071 l -394.09555 353.20972 l -386.31552 354.85403 l -379.68811 352.60529 l -374.10202 353.54288 l -373.49258 352.41095 l -374.39185 350.89236 l -375.63882 349.45206 l -375.70517 347.42181 l -374.99219 346.73331 l -375.74252 344.24405 l -376.29129 343.08261 l -376.99905 339.26627 l -376.15866 337.87424 l -375.06833 335.51471 l -374.32605 333.1449 l -373.71951 331.56674 l -372.32703 330.35864 l -371.53284 319.30634 l -h -262.89041 327.49359 m -262.05814 325.7099 l -262.04382 324.81812 l -269.95367 325.66849 l -285.56946 327.12286 l -293.61365 327.75623 l -295.05554 308.23151 l -297.07651 280.86609 l -305.31287 281.43076 l -313.55475 281.90866 l -321.80121 282.29968 l -321.36719 292.59805 l -320.94846 302.53458 l -322.99091 303.7728 l -324.2814 304.62207 l -326.50998 303.99304 l -327.75681 306.25568 l -330.60611 307.05624 l -333.02307 307.65756 l -337.00851 307.57761 l -338.06305 310.08453 l -340.633 309.06891 l -343.04718 310.70435 l -345.37018 311.44424 l -346.71851 309.9509 l -348.03461 311.73688 l -350.81644 311.13446 l -352.14749 311.67203 l -353.4819 311.23187 l -355.0368 310.43466 l -356.81213 310.34354 l -359.80908 310.50797 l -361.68973 309.78455 l -364.14133 310.82446 l -367.83771 312.81345 l -368.29465 313.51544 l -369.96219 313.30875 l -371.96857 313.3576 l -371.53284 319.30634 l -372.32703 330.35864 l -373.71951 331.56674 l -374.32605 333.1449 l -375.06833 335.51471 l -376.15866 337.87424 l -376.99905 339.26627 l -376.29129 343.08261 l -375.74252 344.24405 l -374.99219 346.73331 l -375.70517 347.42181 l -375.63882 349.45206 l -374.39185 350.89236 l -373.49258 352.41095 l -374.10202 353.54288 l -366.65469 356.05652 l -358.48199 363.78357 l -349.34714 368.25427 l -344.53635 372.94934 l -344.2952 373.12186 l -342.19629 377.73944 l -342.02539 381.23917 l -341.97345 384.82477 l -342.38864 389.81061 l -343.3364 391.918 l -344.05231 393.32266 l -340.37891 393.53259 l -333.82642 391.13425 l -326.60626 387.79083 l -324.09912 382.89801 l -322.31339 375.56335 l -317.17322 369.47705 l -314.99808 364.89774 l -314.24332 363.27942 l -310.11871 356.03046 l -303.9202 351.53867 l -300.53378 351.41803 l -296.56476 351.24429 l -290.35968 359.0061 l -283.09186 355.34088 l -281.65952 354.15976 l -278.69019 351.77927 l -276.99054 345.96329 l -274.61429 340.24811 l -269.78812 335.15936 l -269.35767 334.84912 l -265.67767 331.44348 l -263.19147 327.88281 l -262.89041 327.49359 l -h -525.06781 204.72397 m -530.79932 203.49887 l -537.6983 202.01378 l -539.22485 207.48241 l -539.11951 209.0685 l -535.94739 210.43407 l -531.69409 212.05249 l -530.49829 213.07944 l -526.57629 216.13295 l -526.4162 215.89743 l -525.91034 214.64931 l -527.24664 213.32401 l -526.45288 212.60242 l -525.06781 204.72397 l -h -537.6983 202.01378 m -530.79932 203.49887 l -525.06781 204.72397 l -524.91235 197.37546 l -531.06152 196.03119 l -539.93475 193.81813 l -540.41992 192.58846 l -541.75244 191.49658 l -542.67419 191.52228 l -544.01721 196.8492 l -547.95508 201.47203 l -551.099 200.87605 l -550.45319 199.67525 l -549.21228 197.44389 l -552.12921 199.02068 l -552.25073 200.92142 l -552.2746 202.11258 l -548.77844 204.4657 l -547.71405 205.12552 l -544.18939 205.89554 l -543.48663 204.43051 l -542.00977 203.53911 l -540.82361 201.00958 l -537.6983 202.01378 l -h -542.67419 191.52228 m -541.75244 191.49658 l -540.41992 192.58846 l -539.93475 193.81813 l -531.06152 196.03119 l -530.2298 195.14505 l -530.45349 193.62729 l -529.87518 190.94304 l -530.00684 190.27068 l -529.58649 187.82172 l -529.93134 185.63519 l -530.27539 184.63477 l -530.5025 182.0217 l -530.27057 180.34819 l -530.28528 179.24995 l -531.4762 178.48535 l -532.83417 176.85286 l -532.77533 175.49945 l -531.83966 174.19443 l -531.95129 171.24722 l -532.03247 168.58237 l -534.11499 167.571487 l -540.08948 185.71164 l -540.06091 186.72723 l -541.79462 187.90831 l -542.54327 189.17238 l -543.27484 188.88113 l -542.67419 191.52228 l -h -539.11951 209.0685 m -539.22485 207.48241 l -537.6983 202.01378 l -540.82361 201.00958 l -542.00977 203.53911 l -543.48663 204.43051 l -544.18939 205.89554 l -543.55841 206.24802 l -539.11951 209.0685 l -h -531.06152 196.03119 m -524.91235 197.37546 l -523.25739 188.94203 l -522.10413 189.13167 l -521.92645 188.81075 l -522.02216 187.14973 l -520.7395 184.73242 l -520.96771 182.40446 l -520.12579 180.97324 l -519.32574 178.07942 l -519.2713 176.64024 l -518.88525 174.64693 l -525.78455 172.84256 l -531.95129 171.24722 l -531.83966 174.19443 l -532.77533 175.49945 l -532.83417 176.85286 l -531.4762 178.48535 l -530.28528 179.24995 l -530.27057 180.34819 l -530.5025 182.0217 l -530.27539 184.63477 l -529.93134 185.63519 l -529.58649 187.82172 l -530.00684 190.27068 l -529.87518 190.94304 l -530.45349 193.62729 l -530.2298 195.14505 l -531.06152 196.03119 l -h -420.5802 296.00955 m -431.14688 295.06662 l -441.92725 294.04807 l -445.54846 306.68201 l -448.71982 316.75781 l -450.32874 319.86984 l -451.33121 321.62415 l -450.08185 323.64053 l -450.0047 326.94394 l -450.68091 328.82407 l -450.66653 330.69424 l -450.64096 332.47614 l -451.36319 333.72672 l -451.95239 334.81424 l -433.99362 336.79572 l -429.00531 337.87292 l -428.84567 338.68475 l -431.13568 340.96127 l -430.86517 343.11188 l -430.298 344.57959 l -422.33984 344.10236 l -420.8461 328.27087 l -420.96872 311.55771 l -421.40384 297.99036 l -420.5802 296.00955 l -h -430.298 344.57959 m -430.86517 343.11188 l -431.13568 340.96127 l -428.84567 338.68475 l -429.00531 337.87292 l -433.99362 336.79572 l -451.95239 334.81424 l -453.54013 337.47293 l -462.54614 336.89697 l -476.95584 336.43341 l -477.91193 338.1658 l -478.91727 337.03677 l -478.38708 333.4577 l -479.36188 332.95566 l -481.30554 333.46655 l -483.15802 333.36218 l -485.75394 340.27942 l -490.13019 348.50491 l -495.27463 355.15298 l -496.10312 359.46497 l -502.34134 370.59204 l -503.25348 377.43903 l -503.43967 381.47772 l -502.17197 388.0488 l -499.58417 389.79636 l -494.75006 389.24756 l -493.84506 387.45087 l -492.60614 385.08725 l -488.73819 383.29968 l -485.83612 379.5882 l -482.50555 375.30984 l -477.09183 368.12808 l -475.22827 364.31738 l -476.15036 357.18576 l -472.79666 351.97412 l -464.6698 344.27008 l -461.00281 343.13971 l -452.65213 348.93829 l -450.96515 348.59903 l -446.02841 344.26871 l -440.21994 342.30505 l -434.63327 343.56116 l -430.298 344.57959 l -h -451.95239 334.81424 m -451.36319 333.72672 l -450.64096 332.47614 l -450.66653 330.69424 l -450.68091 328.82407 l -450.0047 326.94394 l -450.08185 323.64053 l -451.33121 321.62415 l -450.32874 319.86984 l -448.71982 316.75781 l -445.54846 306.68201 l -441.92725 294.04807 l -448.34979 293.4072 l -452.79172 292.78192 l -463.21643 291.51471 l -462.3602 292.52744 l -461.31702 294.63882 l -463.84225 296.0885 l -465.34454 296.50873 l -467.43787 299.53152 l -468.685 301.23679 l -472.00467 303.26822 l -472.74738 304.50397 l -474.97809 305.87729 l -476.33987 308.18307 l -479.41541 309.77716 l -480.33484 312.05557 l -481.06729 313.10727 l -480.85513 313.94666 l -482.59338 314.84094 l -483.78946 316.6243 l -484.0929 318.54742 l -484.94678 318.86017 l -486.48837 319.15158 l -483.38675 325.81912 l -483.15802 333.36218 l -481.30554 333.46655 l -479.36188 332.95566 l -478.38708 333.4577 l -478.91727 337.03677 l -477.91193 338.1658 l -476.95584 336.43341 l -462.54614 336.89697 l -453.54013 337.47293 l -451.95239 334.81424 l -h -396.53836 318.41452 m -396.88181 316.3562 l -395.73782 313.66306 l -395.83533 311.17236 l -397.53146 307.44324 l -398.30121 305.26971 l -399.76559 303.7673 l -400.61072 303.09738 l -401.65445 300.19199 l -401.56631 298.6853 l -403.05447 297.88528 l -403.11008 296.99234 l -411.40137 296.44702 l -420.5802 296.00955 l -421.40384 297.99036 l -420.96872 311.55771 l -420.8461 328.27087 l -422.33984 344.10236 l -415.56924 345.3237 l -412.08765 347.15741 l -411.95978 346.98932 l -411.66284 346.03714 l -411.31348 344.29254 l -410.07666 343.13651 l -409.41953 341.94122 l -409.88055 340.142 l -410.00052 338.45279 l -401.6123 338.87396 l -393.9024 339.00305 l -393.32108 336.37689 l -394.41187 335.1759 l -395.09283 332.66541 l -395.78204 330.41837 l -397.40585 328.74237 l -397.64563 326.78085 l -398.83435 325.65491 l -397.60742 323.85794 l -397.88107 322.60242 l -396.53418 320.54358 l -397.2428 318.99933 l -396.53836 318.41452 l -h -486.48837 319.15158 m -484.94678 318.86017 l -484.0929 318.54742 l -483.78946 316.6243 l -482.59338 314.84094 l -480.85513 313.94666 l -481.06729 313.10727 l -480.33484 312.05557 l -479.41541 309.77716 l -476.33987 308.18307 l -474.97809 305.87729 l -472.74738 304.50397 l -472.00467 303.26822 l -468.685 301.23679 l -467.43787 299.53152 l -465.34454 296.50873 l -463.84225 296.0885 l -461.31702 294.63882 l -462.3602 292.52744 l -463.21643 291.51471 l -464.04703 291.13171 l -468.23428 288.74857 l -475.91061 287.69745 l -479.86169 287.53003 l -480.1088 288.38995 l -480.76636 287.65576 l -482.34351 289.20117 l -482.52747 290.34064 l -491.8407 288.87082 l -502.9353 296.97589 l -499.35324 301.50745 l -498.75366 305.12701 l -490.49442 313.474 l -486.48837 319.15158 l -h -390.49164 241.69397 m -390.60471 239.82118 l -392.54926 238.12404 l -392.97202 236.50189 l -393.88632 234.6759 l -393.50037 233.09631 l -392.45544 232.35081 l -393.06009 230.45338 l -395.63589 229.86972 l -397.39868 229.14694 l -397.85086 228.32056 l -399.10678 225.93478 l -399.33023 223.0782 l -398.48456 222.24159 l -397.25082 221.51591 l -396.88727 220.38304 l -395.96902 219.90344 l -395.43115 219.13521 l -403.20871 218.65411 l -411.07895 218.08133 l -416.88663 217.692 l -417.2218 220.42064 l -419.78311 225.71428 l -420.85852 237.73784 l -421.83231 249.78233 l -421.26859 252.77705 l -421.9501 253.43056 l -422.52936 255.25302 l -422.64832 256.58118 l -421.98584 257.35422 l -421.61523 259.08261 l -420.14935 261.53012 l -419.23343 264.37396 l -419.09756 266.52667 l -419.26947 267.31525 l -418.44098 268.81171 l -419.25943 269.72498 l -417.84885 270.64447 l -416.12506 271.67526 l -416.61884 273.86551 l -415.6286 274.8356 l -413.53854 274.01599 l -411.37967 273.64182 l -410.81448 274.66333 l -411.24866 276.23621 l -409.75366 274.73923 l -408.81735 275.07236 l -407.68622 272.56613 l -407.78818 270.95514 l -407.09152 268.50757 l -406.22586 268.20947 l -403.97955 266.12915 l -403.02972 266.10037 l -401.36966 264.77783 l -400.12286 263.24951 l -400.53363 261.35468 l -401.17145 259.802 l -401.46753 257.8244 l -399.91412 256.22635 l -398.40155 257.02728 l -397.44354 256.63663 l -397.24023 254.8674 l -396.51196 252.94946 l -395.76608 252.5453 l -393.83728 251.22372 l -392.20566 249.52699 l -390.87125 247.45712 l -390.00378 244.2963 l -390.49164 241.69397 l -h -419.09756 266.52667 m -419.23343 264.37396 l -420.14935 261.53012 l -421.61523 259.08261 l -421.98584 257.35422 l -422.64832 256.58118 l -422.52936 255.25302 l -421.9501 253.43056 l -421.26859 252.77705 l -421.83231 249.78233 l -420.85852 237.73784 l -419.78311 225.71428 l -420.54266 226.35851 l -423.12018 226.03177 l -425.09662 224.68472 l -433.23932 223.9388 l -440.46204 223.03134 l -440.55585 223.82414 l -441.67191 233.2549 l -442.76019 243.32329 l -443.61566 250.56067 l -443.15363 251.06264 l -444.02142 253.10854 l -443.80573 253.93965 l -442.46341 254.09673 l -441.33533 255.21115 l -439.4241 254.98019 l -439.44427 257.0354 l -438.39148 257.95721 l -437.54575 259.83853 l -436.42957 260.22736 l -434.98425 263.50989 l -433.32486 262.78839 l -432.67609 261.60367 l -431.52435 263.7756 l -430.69699 265.01962 l -428.90918 264.03351 l -427.11765 265.18732 l -426.58008 266.22012 l -423.91766 264.85779 l -422.34311 266.15857 l -420.17654 265.54321 l -420.1698 266.70377 l -419.09756 266.52667 l -h -408.38144 281.16138 m -410.11804 279.88208 l -411.33521 278.90369 l -411.11307 277.31558 l -411.24866 276.23621 l -410.81448 274.66333 l -411.37967 273.64182 l -413.53854 274.01599 l -415.6286 274.8356 l -416.61884 273.86551 l -416.12506 271.67526 l -417.84885 270.64447 l -419.25943 269.72498 l -418.44098 268.81171 l -419.26947 267.31525 l -419.09756 266.52667 l -420.1698 266.70377 l -420.17654 265.54321 l -422.34311 266.15857 l -423.91766 264.85779 l -426.58008 266.22012 l -427.11765 265.18732 l -428.90918 264.03351 l -430.69699 265.01962 l -431.52435 263.7756 l -432.67609 261.60367 l -433.32486 262.78839 l -434.98425 263.50989 l -436.42957 260.22736 l -437.54575 259.83853 l -438.39148 257.95721 l -439.44427 257.0354 l -439.4241 254.98019 l -441.33533 255.21115 l -442.46341 254.09673 l -443.80573 253.93965 l -444.02142 253.10854 l -443.15363 251.06264 l -443.61566 250.56067 l -446.3089 250.41652 l -447.77551 251.31123 l -450.22583 253.33405 l -451.97833 253.91693 l -453.32056 254.54979 l -455.14499 254.04054 l -456.67358 254.46371 l -458.24185 253.62241 l -459.76511 253.23247 l -460.59354 254.64279 l -462.17758 255.40704 l -462.52222 256.34586 l -462.73141 258.56113 l -463.89334 260.01181 l -464.53763 261.53601 l -465.87662 262.68973 l -466.89261 263.79926 l -468.4874 263.74353 l -467.76746 264.65906 l -465.68887 267.29843 l -463.34036 268.89075 l -463.25369 269.80072 l -462.55783 270.97543 l -460.60263 272.41229 l -460.50888 272.51483 l -460.41513 272.61737 l -459.9118 273.67267 l -458.6994 274.28467 l -458.2988 274.51761 l -456.04553 275.44254 l -450.55402 276.40771 l -443.27023 276.82318 l -440.94919 277.26257 l -436.23682 277.50177 l -431.43564 277.89984 l -426.95233 278.23877 l -421.85843 278.9614 l -421.60715 278.5369 l -420.0079 278.67233 l -420.14868 280.35522 l -408.38144 281.16138 l -h -463.21643 291.51471 m -452.79172 292.78192 l -452.73618 290.55185 l -454.39026 289.71878 l -454.8938 288.4913 l -455.81525 287.12021 l -457.50507 286.63297 l -459.3851 285.93741 l -461.1908 284.70917 l -461.82281 283.72665 l -463.32266 282.71335 l -463.21295 281.92126 l -465.04822 280.22913 l -465.82663 281.10608 l -468.5256 278.65274 l -470.0571 278.69724 l -471.07364 276.74921 l -472.60223 276.06964 l -472.26965 274.59192 l -472.28174 273.24164 l -469.13019 273.89307 l -472.28174 273.24164 l -486.10178 271.46832 l -502.25162 268.6387 l -510.85526 266.8493 l -518.49445 265.1658 l -519.43732 264.96368 l -520.27563 267.32883 l -522.80878 274.96298 l -520.77802 280.03159 l -519.18994 283.63373 l -511.30774 288.41193 l -506.94705 295.49814 l -502.9353 296.97589 l -491.8407 288.87082 l -482.52747 290.34064 l -482.34351 289.20117 l -480.76636 287.65576 l -480.1088 288.38995 l -479.86169 287.53003 l -475.91061 287.69745 l -468.23428 288.74857 l -464.04703 291.13171 l -463.21643 291.51471 l -h -443.61566 250.56067 m -442.76019 243.32329 l -441.67191 233.2549 l -440.55585 223.82414 l -444.40955 223.26831 l -447.87515 222.83099 l -450.7334 222.36815 l -455.78574 223.91937 l -459.62775 223.91158 l -464.96222 221.68391 l -468.94846 218.1011 l -472.66458 216.15318 l -474.92468 229.90137 l -473.91068 230.60721 l -474.42551 231.87306 l -474.51028 234.2892 l -474.14548 237.13853 l -473.69009 239.46199 l -473.75778 240.53114 l -472.00107 243.24011 l -471.1673 243.91071 l -470.18927 244.33269 l -469.14291 244.31413 l -467.67538 246.33571 l -467.64685 248.2278 l -467.58734 249.2256 l -466.93478 249.77284 l -466.6615 248.64522 l -465.5972 248.53372 l -464.80417 250.9865 l -465.03564 253.28864 l -464.10446 254.86145 l -462.17758 255.40704 l -460.59354 254.64279 l -459.76511 253.23247 l -458.24185 253.62241 l -456.67358 254.46371 l -455.14499 254.04054 l -453.32056 254.54979 l -451.97833 253.91693 l -450.22583 253.33405 l -447.77551 251.31123 l -446.3089 250.41652 l -443.61566 250.56067 l -h -403.11008 296.99234 m -404.03198 295.95731 l -403.73718 292.95007 l -404.9559 291.53891 l -405.16809 289.74512 l -406.61795 288.67203 l -407.27353 287.1149 l -407.32214 286.22113 l -407.80038 283.69516 l -408.23407 282.1514 l -408.38144 281.16138 l -420.14868 280.35522 l -420.0079 278.67233 l -421.60715 278.5369 l -421.85843 278.9614 l -426.95233 278.23877 l -431.43564 277.89984 l -436.23682 277.50177 l -440.94919 277.26257 l -443.27023 276.82318 l -450.55402 276.40771 l -456.04553 275.44254 l -458.2988 274.51761 l -458.6994 274.28467 l -458.2988 274.51761 l -456.04553 275.44254 l -468.18924 274.12119 l -469.13019 273.89307 l -472.28174 273.24164 l -472.26965 274.59192 l -472.60223 276.06964 l -471.07364 276.74921 l -470.0571 278.69724 l -468.5256 278.65274 l -465.82663 281.10608 l -465.04822 280.22913 l -463.21295 281.92126 l -463.32266 282.71335 l -461.82281 283.72665 l -461.1908 284.70917 l -459.3851 285.93741 l -457.50507 286.63297 l -455.81525 287.12021 l -454.8938 288.4913 l -454.39026 289.71878 l -452.73618 290.55185 l -452.79172 292.78192 l -448.34979 293.4072 l -441.92725 294.04807 l -431.14688 295.06662 l -420.5802 296.00955 l -411.40137 296.44702 l -403.11008 296.99234 l -h -458.6994 274.28467 m -459.9118 273.67267 l -460.41513 272.61737 l -460.50888 272.51483 l -460.60263 272.41229 l -462.55783 270.97543 l -463.25369 269.80072 l -463.34036 268.89075 l -465.68887 267.29843 l -467.76746 264.65906 l -468.4874 263.74353 l -469.06339 265.45544 l -469.9158 266.13696 l -470.15207 266.28125 l -471.54474 266.96979 l -473.1806 265.72977 l -473.85992 265.26468 l -474.92682 265.90799 l -477.31683 264.71942 l -477.82629 264.54767 l -477.83212 263.91641 l -477.77563 263.56534 l -478.7735 263.76437 l -479.60001 262.90924 l -479.70447 262.89218 l -480.77795 262.89603 l -481.98959 261.79388 l -482.00607 261.25031 l -481.94754 260.89954 l -481.63858 259.68918 l -482.36908 257.67377 l -483.70123 256.09573 l -483.86081 254.53526 l -484.40332 253.35988 l -484.88611 252.46477 l -485.31451 250.04462 l -486.47958 250.6535 l -487.74945 251.24243 l -488.80289 250.60391 l -489.04178 249.56783 l -489.64233 248.19556 l -489.98068 247.14085 l -490.19254 246.56047 l -490.88547 246.8864 l -491.76965 245.36926 l -492.54276 244.41335 l -493.05698 243.77567 l -493.29749 243.36929 l -493.87921 242.53737 l -493.97745 240.25815 l -493.98032 239.71501 l -498.11389 241.55151 l -498.4523 241.66718 l -498.99246 239.57036 l -499.21201 239.61812 l -500.17484 239.70143 l -501.34283 240.28664 l -501.10925 241.23878 l -501.0593 241.52042 l -502.80527 241.80876 l -504.4552 242.65685 l -505.24149 243.40509 l -505.36478 244.01503 l -505.43893 244.907 l -505.16803 245.14305 l -504.3045 246.13258 l -503.83569 248.58316 l -504.96542 248.90164 l -506.2103 248.19771 l -506.74713 249.26826 l -506.92038 249.59602 l -512.93073 251.71425 l -513.05194 251.77962 l -515.39539 261.37088 l -517.85565 261.6665 l -519.43732 264.96368 l -518.49445 265.1658 l -510.85526 266.8493 l -502.25162 268.6387 l -486.10178 271.46832 l -472.28174 273.24164 l -469.13019 273.89307 l -468.18924 274.12119 l -456.04553 275.44254 l -458.2988 274.51761 l -458.6994 274.28467 l -h -517.62506 250.53056 m -518.3147 249.74384 l -520.12396 249.16531 l -517.46075 258.29639 l -516.64111 258.01709 l -517.62506 250.53056 l -h -390.47876 209.02641 m -390.22275 207.79948 l -390.09918 205.32703 l -389.76563 204.45871 l -387.18805 203.07803 l -385.28189 201.39487 l -384.65671 200.27274 l -383.8602 199.59929 l -381.40771 198.19516 l -380.54391 198.13919 l -378.27942 196.27679 l -378.48737 193.97565 l -378.3913 191.15715 l -378.86703 188.49713 l -377.20096 186.61595 l -378.17236 184.7352 l -379.72809 183.62451 l -381.46231 182.41553 l -381.65268 182.49603 l -381.33243 176.70825 l -383.25278 176.01569 l -390.26947 173.57681 l -394.71338 176.75504 l -394.81125 176.83717 l -395.26425 176.63445 l -396.39771 176.9175 l -397.06839 178.72316 l -403.42581 180.14719 l -407.75934 181.67508 l -409.71964 181.52013 l -411.13403 181.58124 l -411.73935 183.20758 l -413.48349 183.76646 l -414.26056 185.11255 l -413.86679 186.03001 l -413.63339 187.72906 l -415.2421 187.67813 l -414.91641 189.38669 l -415.96921 190.5327 l -415.96146 190.44492 l -416.15836 190.51595 l -416.07156 190.61212 l -413.55283 194.63591 l -414.70505 195.7774 l -419.414 188.62622 l -420.53726 188.43153 l -417.48318 196.77347 l -416.39587 204.14174 l -415.55026 210.1631 l -416.86133 215.11548 l -416.88663 217.692 l -411.07895 218.08133 l -403.20871 218.65411 l -395.43115 219.13521 l -394.65344 217.58151 l -392.04767 216.74565 l -391.56876 215.08551 l -391.12762 214.13283 l -391.01981 212.01115 l -391.66116 211.18076 l -390.6026 209.55161 l -390.47876 209.02641 l -h -468.4874 263.74353 m -466.89261 263.79926 l -465.87662 262.68973 l -464.53763 261.53601 l -463.89334 260.01181 l -462.73141 258.56113 l -462.52222 256.34586 l -462.17758 255.40704 l -464.10446 254.86145 l -465.03564 253.28864 l -464.80417 250.9865 l -465.5972 248.53372 l -466.6615 248.64522 l -466.93478 249.77284 l -467.58734 249.2256 l -467.64685 248.2278 l -467.67538 246.33571 l -469.14291 244.31413 l -470.18927 244.33269 l -471.1673 243.91071 l -472.00107 243.24011 l -473.75778 240.53114 l -473.69009 239.46199 l -474.14548 237.13853 l -474.51028 234.2892 l -474.42551 231.87306 l -473.91068 230.60721 l -474.92468 229.90137 l -476.48102 239.36858 l -484.57355 237.99271 l -485.39432 243.26265 l -486.46045 242.17209 l -487.56216 240.71194 l -489.00418 240.00072 l -489.92703 238.74883 l -492.23325 238.77571 l -492.99655 237.81975 l -494.26224 236.76787 l -496.83411 237.09143 l -498.13095 238.37965 l -498.99246 239.57036 l -498.4523 241.66718 l -498.11389 241.55151 l -493.98032 239.71501 l -493.97745 240.25815 l -493.87921 242.53737 l -493.29749 243.36929 l -493.05698 243.77567 l -492.54276 244.41335 l -491.76965 245.36926 l -490.88547 246.8864 l -490.19254 246.56047 l -489.98068 247.14085 l -489.64233 248.19556 l -489.04178 249.56783 l -488.80289 250.60391 l -487.74945 251.24243 l -486.47958 250.6535 l -485.31451 250.04462 l -484.88611 252.46477 l -484.40332 253.35988 l -483.86081 254.53526 l -483.70123 256.09573 l -482.36908 257.67377 l -481.63858 259.68918 l -481.94754 260.89954 l -482.00607 261.25031 l -481.98959 261.79388 l -480.77795 262.89603 l -479.70447 262.89218 l -479.60001 262.90924 l -478.7735 263.76437 l -477.77563 263.56534 l -477.83212 263.91641 l -477.82629 264.54767 l -477.31683 264.71942 l -474.92682 265.90799 l -473.85992 265.26468 l -473.1806 265.72977 l -471.54474 266.96979 l -470.15207 266.28125 l -469.9158 266.13696 l -469.06339 265.45544 l -468.4874 263.74353 l -h -521.69653 244.17101 m -516.49524 245.3172 l -513.16992 232.39503 l -513.50195 231.50494 l -514.10858 230.91852 l -515.92438 231.06677 l -514.95038 232.37204 l -515.68823 234.30299 l -518.50598 239.4167 l -520.8371 240.81044 l -521.69653 244.17101 l -h -505.36478 244.01503 m -505.24149 243.40509 l -504.4552 242.65685 l -504.95966 242.01097 l -506.20618 242.93727 l -505.36478 244.01503 l -h -520.12396 249.16531 m -518.3147 249.74384 l -517.62506 250.53056 l -512.68561 247.49561 l -509.99445 239.24986 l -509.37891 243.91867 l -512.48059 250.08269 l -506.92038 249.59602 l -506.74713 249.26826 l -506.2103 248.19771 l -504.96542 248.90164 l -503.83569 248.58316 l -504.3045 246.13258 l -505.16803 245.14305 l -505.43893 244.907 l -505.36478 244.01503 l -506.20618 242.93727 l -504.95966 242.01097 l -504.4552 242.65685 l -502.80527 241.80876 l -501.0593 241.52042 l -501.10925 241.23878 l -501.34283 240.28664 l -500.17484 239.70143 l -499.21201 239.61812 l -498.99246 239.57036 l -498.13095 238.37965 l -496.83411 237.09143 l -494.26224 236.76787 l -492.99655 237.81975 l -492.23325 238.77571 l -489.92703 238.74883 l -489.00418 240.00072 l -487.56216 240.71194 l -486.46045 242.17209 l -485.39432 243.26265 l -484.57355 237.99271 l -491.75891 236.78488 l -494.16318 236.24396 l -499.70441 235.17462 l -506.34305 233.83643 l -513.16992 232.39503 l -516.49524 245.3172 l -521.69653 244.17101 l -521.7937 244.60478 l -520.12396 249.16531 l -h -515.68823 234.30299 m -514.95038 232.37204 l -515.92438 231.06677 l -517.3136 229.75826 l -517.6778 229.0399 l -519.16132 227.24998 l -519.90118 225.89825 l -516.93268 223.83582 l -516.5816 222.73122 l -515.63293 222.66975 l -515.36554 221.00075 l -515.96326 219.50281 l -515.27899 218.29114 l -516.2644 217.16068 l -517.01099 214.53531 l -517.89063 213.88016 l -524.6142 216.6002 l -524.80975 218.74364 l -523.11108 222.15218 l -525.48688 222.05127 l -525.52374 229.79984 l -524.78583 231.61411 l -521.68256 238.88928 l -520.59149 236.40154 l -520.16864 236.40541 l -518.76093 236.2645 l -517.28259 235.31755 l -515.68823 234.30299 l -h -525.06781 204.72397 m -526.45288 212.60242 l -527.24664 213.32401 l -525.91034 214.64931 l -526.4162 215.89743 l -526.57629 216.13295 l -526.14777 216.50931 l -536.73169 211.88283 l -539.46204 213.19769 l -532.56268 217.23354 l -529.62756 218.86771 l -524.82019 220.10979 l -524.80975 218.74364 l -524.6142 216.6002 l -517.89063 213.88016 l -516.46277 213.47665 l -515.0368 213.0704 l -514.21924 211.70798 l -514.16205 210.53905 l -513.07404 209.78241 l -511.05872 208.50308 l -500.95236 210.65419 l -490.03558 212.80974 l -478.30386 214.93336 l -477.8215 212.13777 l -483.14337 204.89644 l -482.87268 203.95566 l -481.63104 200.9422 l -484.87509 199.17821 l -490.77893 198.41588 l -496.97601 198.08519 l -501.70688 193.57996 l -500.4874 189.6813 l -499.44135 188.45679 l -505.3183 179.786 l -508.05432 177.1864 l -518.88525 174.64693 l -519.2713 176.64024 l -519.32574 178.07942 l -520.12579 180.97324 l -520.96771 182.40446 l -520.7395 184.73242 l -522.02216 187.14973 l -521.92645 188.81075 l -522.10413 189.13167 l -523.25739 188.94203 l -524.91235 197.37546 l -525.06781 204.72397 l -h -474.92468 229.90137 m -472.66458 216.15318 l -477.83655 212.22511 l -477.8215 212.13777 l -478.30386 214.93336 l -490.03558 212.80974 l -500.95236 210.65419 l -511.05872 208.50308 l -513.07404 209.78241 l -514.16205 210.53905 l -514.21924 211.70798 l -515.0368 213.0704 l -516.46277 213.47665 l -517.89063 213.88016 l -517.01099 214.53531 l -516.2644 217.16068 l -515.27899 218.29114 l -515.96326 219.50281 l -515.36554 221.00075 l -515.63293 222.66975 l -516.5816 222.73122 l -516.93268 223.83582 l -519.90118 225.89825 l -519.16132 227.24998 l -517.6778 229.0399 l -517.3136 229.75826 l -515.92438 231.06677 l -514.10858 230.91852 l -513.50195 231.50494 l -513.16992 232.39503 l -506.34305 233.83643 l -499.70441 235.17462 l -494.16318 236.24396 l -491.75891 236.78488 l -484.57355 237.99271 l -476.48102 239.36858 l -474.92468 229.90137 l -h -543.27484 188.88113 m -542.54327 189.17238 l -541.79462 187.90831 l -540.06091 186.72723 l -540.08948 185.71164 l -534.11499 167.571487 l -536.68939 165.141006 l -537.26642 162.609818 l -537.90234 159.970261 l -537.8905 156.780563 l -537.88727 151.585388 l -539.94122 145.627792 l -540.89105 142.621735 l -543.23981 144.126572 l -543.94147 144.559937 l -548.02283 141.521423 l -551.87909 143.462982 l -554.34277 151.51709 l -556.01453 156.982071 l -562.24683 161.136551 l -564.4577 164.045837 l -558.44604 171.16982 l -552.16077 176.72363 l -545.47394 181.84853 l -543.27484 188.88113 l -h -416.15836 190.51595 m -415.96146 190.44492 l -415.96921 190.5327 l -414.91641 189.38669 l -415.2421 187.67813 l -413.63339 187.72906 l -413.86679 186.03001 l -414.26056 185.11255 l -413.48349 183.76646 l -411.73935 183.20758 l -411.13403 181.58124 l -409.71964 181.52013 l -407.75934 181.67508 l -403.42581 180.14719 l -397.06839 178.72316 l -396.39771 176.9175 l -395.26425 176.63445 l -394.81125 176.83717 l -394.71338 176.75504 l -394.81125 176.83717 l -400.10263 173.86642 l -405.57162 170.13722 l -411.52109 166.234283 l -409.68109 171.83556 l -413.84341 172.80305 l -419.19135 176.27919 l -425.24945 173.38144 l -432.14423 171.65405 l -433.95297 174.3591 l -436.12927 174.54254 l -438.11197 174.65469 l -442.14871 178.30829 l -435.93207 179.96446 l -435.74582 179.98663 l -429.93686 179.50226 l -424.56522 182.19551 l -419.78833 183.55023 l -416.15836 190.51595 l -h -450.7334 222.36815 m -447.87515 222.83099 l -444.40955 223.26831 l -440.55585 223.82414 l -440.46204 223.03134 l -433.23932 223.9388 l -425.09662 224.68472 l -426.44531 223.1268 l -428.98645 217.7018 l -428.57806 210.88728 l -425.40329 204.71837 l -425.34686 200.28247 l -426.73798 194.99263 l -428.18344 191.38213 l -430.84741 188.61134 l -431.88779 191.95546 l -432.63922 186.72664 l -434.11652 185.49387 l -434.59515 181.45076 l -441.01566 182.79787 l -446.88132 186.12007 l -448.0697 190.67503 l -448.0401 195.48799 l -444.56564 200.13084 l -445.28751 202.71219 l -446.74231 202.61272 l -450.63782 197.45338 l -453.55536 198.11763 l -455.74628 203.87918 l -456.73654 208.02882 l -455.67737 210.32693 l -453.93832 214.23865 l -453.32333 216.29184 l -452.86429 218.05476 l -450.7334 222.36815 l -h -173.07452 381.26013 m -174.35074 381.48624 l -175.20572 382.57785 l -173.54427 384.3439 l -171.57851 385.74808 l -170.57954 384.81772 l -170.28937 383.11612 l -172.05472 381.82416 l -173.07452 381.26013 l -h -149.482162 370.40448 m -150.82016 370.96484 l -150.739014 372.36404 l -149.543182 372.7449 l -148.512344 371.85553 l -147.627731 370.66855 l -149.482162 370.40448 l -h -143.591263 356.35992 m -144.361435 357.27008 l -145.4245 357.16232 l -146.475388 358.40799 l -147.923706 359.25238 l -147.711487 359.61618 l -146.313736 360.08456 l -145.30545 359.01141 l -144.87056 358.23209 l -143.428421 358.07574 l -143.131302 357.64261 l -143.591263 356.35992 l -h -209.05119 375.05289 m -207.22346 375.34543 l -204.2905 376.07199 l -201.88017 375.60904 l -197.28265 372.80493 l -195.42427 372.49741 l -192.08438 371.80161 l -189.65823 372.51062 l -185.9438 371.33459 l -183.66768 370.03558 l -181.80174 370.99069 l -182.39369 373.45352 l -181.40762 373.78677 l -179.36813 374.71115 l -177.84535 376.00732 l -175.8163 376.86792 l -175.48303 374.74374 l -176.17184 371.15982 l -177.98958 369.92859 l -177.4671 369.05807 l -175.32182 371.15894 l -174.15788 373.63437 l -171.55606 376.22891 l -172.93944 377.98441 l -171.15778 380.6188 l -169.07002 382.10904 l -167.09996 383.16803 l -166.557526 384.75543 l -163.369843 386.48071 l -162.634155 388.13412 l -160.141754 389.4921 l -158.762421 389.08963 l -156.748581 389.9068 l -154.521942 390.88763 l -152.639938 391.88379 l -148.918198 392.35077 l -148.694199 391.68958 l -151.212494 390.37183 l -153.391907 389.56027 l -155.802139 387.87497 l -158.33786 387.71579 l -159.468414 386.33566 l -162.370316 384.40295 l -162.87973 383.69507 l -164.373566 382.51819 l -164.872772 379.79077 l -165.932678 377.67642 l -163.707825 378.66986 l -163.141754 377.98193 l -162.045486 379.23569 l -160.952103 377.31656 l -160.352463 378.56735 l -159.819534 376.68546 l -157.810333 377.93842 l -156.670212 377.80627 l -156.762527 375.63699 l -157.253418 374.3566 l -156.265259 372.92502 l -153.834686 373.30573 l -152.594315 371.36008 l -151.524536 370.30307 l -151.871674 368.29132 l -150.816574 366.50061 l -151.842148 364.58118 l -153.54184 362.80368 l -154.411179 361.06702 l -155.774078 360.99579 l -156.784546 361.73285 l -158.312271 360.15771 l -159.442307 360.60382 l -160.787979 359.63129 l -160.672577 357.94379 l -159.870773 357.20444 l -161.144806 355.94641 l -160.203461 355.87653 l -158.487167 356.47821 l -157.900177 357.21042 l -156.803177 356.24872 l -154.558182 356.30524 l -152.459137 355.05487 l -152.110504 353.48114 l -150.646637 351.04221 l -153.009308 349.9874 l -156.513687 348.79578 l -157.684433 348.97464 l -157.232254 350.74042 l -160.325989 350.99463 l -159.430984 348.65692 l -157.873413 347.04855 l -157.154846 345.11011 l -156.1147 343.38736 l -154.478348 341.93738 l -155.565079 340.21942 l -157.903076 340.49805 l -159.770538 339.14517 l -160.306824 337.44141 l -161.784454 335.92035 l -163.029831 335.66473 l -165.487305 334.31134 l -166.589752 334.62924 l -168.52818 332.82849 l -170.32324 333.62976 l -171.17273 335.23599 l -171.71272 334.54337 l -173.76894 334.72534 l -173.72693 335.54141 l -175.64044 336.07397 l -176.87044 335.64084 l -179.56517 336.54614 l -181.99583 336.61108 l -183.01579 336.96558 l -184.59717 336.15012 l -186.64948 336.87717 l -188.10541 337.09451 l -190.68849 350.20285 l -194.71329 370.49448 l -196.4639 370.22842 l -198.39636 370.84579 l -199.7639 371.92349 l -199.97609 372.09531 l -200.00645 372.11981 l -202.16426 374.03894 l -203.36844 371.61304 l -204.83749 369.98434 l -206.27879 371.53009 l -207.24167 372.14651 l -207.90825 372.59036 l -210.0549 373.63437 l -211.64511 375.39212 l -211.99522 375.73199 l -215.21286 379.00894 l -219.2231 380.01462 l -220.09071 382.15921 l -219.63226 384.17267 l -218.07594 383.29645 l -215.97873 382.8252 l -214.42627 379.99796 l -211.08592 378.00912 l -209.05119 375.05289 l -h -S -/DeviceRGB {} CS -[0.9098 0.9059 0.949] SC -/DeviceRGB {} cs -[0.9098 0.9059 0.949] sc -420.5802 296.00955 m -431.14688 295.06662 l -441.92725 294.04807 l -445.54846 306.68201 l -448.71982 316.75781 l -450.32874 319.86984 l -451.33121 321.62415 l -450.08185 323.64053 l -450.0047 326.94394 l -450.68091 328.82407 l -450.66653 330.69424 l -450.64096 332.47614 l -451.36319 333.72672 l -451.95239 334.81424 l -433.99362 336.79572 l -429.00531 337.87292 l -428.84567 338.68475 l -431.13568 340.96127 l -430.86517 343.11188 l -430.298 344.57959 l -422.33984 344.10236 l -420.8461 328.27087 l -420.96872 311.55771 l -421.40384 297.99036 l -420.5802 296.00955 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -420.5802 296.00955 m -431.14688 295.06662 l -441.92725 294.04807 l -445.54846 306.68201 l -448.71982 316.75781 l -450.32874 319.86984 l -451.33121 321.62415 l -450.08185 323.64053 l -450.0047 326.94394 l -450.68091 328.82407 l -450.66653 330.69424 l -450.64096 332.47614 l -451.36319 333.72672 l -451.95239 334.81424 l -433.99362 336.79572 l -429.00531 337.87292 l -428.84567 338.68475 l -431.13568 340.96127 l -430.86517 343.11188 l -430.298 344.57959 l -422.33984 344.10236 l -420.8461 328.27087 l -420.96872 311.55771 l -421.40384 297.99036 l -420.5802 296.00955 l -h -S -/DeviceRGB {} CS -[0.949 0.9412 0.9686] SC -/DeviceRGB {} cs -[0.949 0.9412 0.9686] sc -173.07452 381.26013 m -174.35074 381.48624 l -175.20572 382.57785 l -173.54427 384.3439 l -171.57851 385.74808 l -170.57954 384.81772 l -170.28937 383.11612 l -172.05472 381.82416 l -173.07452 381.26013 l -h -149.482162 370.40448 m -150.82016 370.96484 l -150.739014 372.36404 l -149.543182 372.7449 l -148.512344 371.85553 l -147.627731 370.66855 l -149.482162 370.40448 l -h -143.591263 356.35992 m -144.361435 357.27008 l -145.4245 357.16232 l -146.475388 358.40799 l -147.923706 359.25238 l -147.711487 359.61618 l -146.313736 360.08456 l -145.30545 359.01141 l -144.87056 358.23209 l -143.428421 358.07574 l -143.131302 357.64261 l -143.591263 356.35992 l -h -209.05119 375.05289 m -207.22346 375.34543 l -204.2905 376.07199 l -201.88017 375.60904 l -197.28265 372.80493 l -195.42427 372.49741 l -192.08438 371.80161 l -189.65823 372.51062 l -185.9438 371.33459 l -183.66768 370.03558 l -181.80174 370.99069 l -182.39369 373.45352 l -181.40762 373.78677 l -179.36813 374.71115 l -177.84535 376.00732 l -175.8163 376.86792 l -175.48303 374.74374 l -176.17184 371.15982 l -177.98958 369.92859 l -177.4671 369.05807 l -175.32182 371.15894 l -174.15788 373.63437 l -171.55606 376.22891 l -172.93944 377.98441 l -171.15778 380.6188 l -169.07002 382.10904 l -167.09996 383.16803 l -166.557526 384.75543 l -163.369843 386.48071 l -162.634155 388.13412 l -160.141754 389.4921 l -158.762421 389.08963 l -156.748581 389.9068 l -154.521942 390.88763 l -152.639938 391.88379 l -148.918198 392.35077 l -148.694199 391.68958 l -151.212494 390.37183 l -153.391907 389.56027 l -155.802139 387.87497 l -158.33786 387.71579 l -159.468414 386.33566 l -162.370316 384.40295 l -162.87973 383.69507 l -164.373566 382.51819 l -164.872772 379.79077 l -165.932678 377.67642 l -163.707825 378.66986 l -163.141754 377.98193 l -162.045486 379.23569 l -160.952103 377.31656 l -160.352463 378.56735 l -159.819534 376.68546 l -157.810333 377.93842 l -156.670212 377.80627 l -156.762527 375.63699 l -157.253418 374.3566 l -156.265259 372.92502 l -153.834686 373.30573 l -152.594315 371.36008 l -151.524536 370.30307 l -151.871674 368.29132 l -150.816574 366.50061 l -151.842148 364.58118 l -153.54184 362.80368 l -154.411179 361.06702 l -155.774078 360.99579 l -156.784546 361.73285 l -158.312271 360.15771 l -159.442307 360.60382 l -160.787979 359.63129 l -160.672577 357.94379 l -159.870773 357.20444 l -161.144806 355.94641 l -160.203461 355.87653 l -158.487167 356.47821 l -157.900177 357.21042 l -156.803177 356.24872 l -154.558182 356.30524 l -152.459137 355.05487 l -152.110504 353.48114 l -150.646637 351.04221 l -153.009308 349.9874 l -156.513687 348.79578 l -157.684433 348.97464 l -157.232254 350.74042 l -160.325989 350.99463 l -159.430984 348.65692 l -157.873413 347.04855 l -157.154846 345.11011 l -156.1147 343.38736 l -154.478348 341.93738 l -155.565079 340.21942 l -157.903076 340.49805 l -159.770538 339.14517 l -160.306824 337.44141 l -161.784454 335.92035 l -163.029831 335.66473 l -165.487305 334.31134 l -166.589752 334.62924 l -168.52818 332.82849 l -170.32324 333.62976 l -171.17273 335.23599 l -171.71272 334.54337 l -173.76894 334.72534 l -173.72693 335.54141 l -175.64044 336.07397 l -176.87044 335.64084 l -179.56517 336.54614 l -181.99583 336.61108 l -183.01579 336.96558 l -184.59717 336.15012 l -186.64948 336.87717 l -188.10541 337.09451 l -190.68849 350.20285 l -194.71329 370.49448 l -196.4639 370.22842 l -198.39636 370.84579 l -199.7639 371.92349 l -199.97609 372.09531 l -200.00645 372.11981 l -202.16426 374.03894 l -203.36844 371.61304 l -204.83749 369.98434 l -206.27879 371.53009 l -207.24167 372.14651 l -207.90825 372.59036 l -210.0549 373.63437 l -211.64511 375.39212 l -211.99522 375.73199 l -215.21286 379.00894 l -219.2231 380.01462 l -220.09071 382.15921 l -219.63226 384.17267 l -218.07594 383.29645 l -215.97873 382.8252 l -214.42627 379.99796 l -211.08592 378.00912 l -209.05119 375.05289 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -173.07452 381.26013 m -174.35074 381.48624 l -175.20572 382.57785 l -173.54427 384.3439 l -171.57851 385.74808 l -170.57954 384.81772 l -170.28937 383.11612 l -172.05472 381.82416 l -173.07452 381.26013 l -h -149.482162 370.40448 m -150.82016 370.96484 l -150.739014 372.36404 l -149.543182 372.7449 l -148.512344 371.85553 l -147.627731 370.66855 l -149.482162 370.40448 l -h -143.591263 356.35992 m -144.361435 357.27008 l -145.4245 357.16232 l -146.475388 358.40799 l -147.923706 359.25238 l -147.711487 359.61618 l -146.313736 360.08456 l -145.30545 359.01141 l -144.87056 358.23209 l -143.428421 358.07574 l -143.131302 357.64261 l -143.591263 356.35992 l -h -209.05119 375.05289 m -207.22346 375.34543 l -204.2905 376.07199 l -201.88017 375.60904 l -197.28265 372.80493 l -195.42427 372.49741 l -192.08438 371.80161 l -189.65823 372.51062 l -185.9438 371.33459 l -183.66768 370.03558 l -181.80174 370.99069 l -182.39369 373.45352 l -181.40762 373.78677 l -179.36813 374.71115 l -177.84535 376.00732 l -175.8163 376.86792 l -175.48303 374.74374 l -176.17184 371.15982 l -177.98958 369.92859 l -177.4671 369.05807 l -175.32182 371.15894 l -174.15788 373.63437 l -171.55606 376.22891 l -172.93944 377.98441 l -171.15778 380.6188 l -169.07002 382.10904 l -167.09996 383.16803 l -166.557526 384.75543 l -163.369843 386.48071 l -162.634155 388.13412 l -160.141754 389.4921 l -158.762421 389.08963 l -156.748581 389.9068 l -154.521942 390.88763 l -152.639938 391.88379 l -148.918198 392.35077 l -148.694199 391.68958 l -151.212494 390.37183 l -153.391907 389.56027 l -155.802139 387.87497 l -158.33786 387.71579 l -159.468414 386.33566 l -162.370316 384.40295 l -162.87973 383.69507 l -164.373566 382.51819 l -164.872772 379.79077 l -165.932678 377.67642 l -163.707825 378.66986 l -163.141754 377.98193 l -162.045486 379.23569 l -160.952103 377.31656 l -160.352463 378.56735 l -159.819534 376.68546 l -157.810333 377.93842 l -156.670212 377.80627 l -156.762527 375.63699 l -157.253418 374.3566 l -156.265259 372.92502 l -153.834686 373.30573 l -152.594315 371.36008 l -151.524536 370.30307 l -151.871674 368.29132 l -150.816574 366.50061 l -151.842148 364.58118 l -153.54184 362.80368 l -154.411179 361.06702 l -155.774078 360.99579 l -156.784546 361.73285 l -158.312271 360.15771 l -159.442307 360.60382 l -160.787979 359.63129 l -160.672577 357.94379 l -159.870773 357.20444 l -161.144806 355.94641 l -160.203461 355.87653 l -158.487167 356.47821 l -157.900177 357.21042 l -156.803177 356.24872 l -154.558182 356.30524 l -152.459137 355.05487 l -152.110504 353.48114 l -150.646637 351.04221 l -153.009308 349.9874 l -156.513687 348.79578 l -157.684433 348.97464 l -157.232254 350.74042 l -160.325989 350.99463 l -159.430984 348.65692 l -157.873413 347.04855 l -157.154846 345.11011 l -156.1147 343.38736 l -154.478348 341.93738 l -155.565079 340.21942 l -157.903076 340.49805 l -159.770538 339.14517 l -160.306824 337.44141 l -161.784454 335.92035 l -163.029831 335.66473 l -165.487305 334.31134 l -166.589752 334.62924 l -168.52818 332.82849 l -170.32324 333.62976 l -171.17273 335.23599 l -171.71272 334.54337 l -173.76894 334.72534 l -173.72693 335.54141 l -175.64044 336.07397 l -176.87044 335.64084 l -179.56517 336.54614 l -181.99583 336.61108 l -183.01579 336.96558 l -184.59717 336.15012 l -186.64948 336.87717 l -188.10541 337.09451 l -190.68849 350.20285 l -194.71329 370.49448 l -196.4639 370.22842 l -198.39636 370.84579 l -199.7639 371.92349 l -199.97609 372.09531 l -200.00645 372.11981 l -202.16426 374.03894 l -203.36844 371.61304 l -204.83749 369.98434 l -206.27879 371.53009 l -207.24167 372.14651 l -207.90825 372.59036 l -210.0549 373.63437 l -211.64511 375.39212 l -211.99522 375.73199 l -215.21286 379.00894 l -219.2231 380.01462 l -220.09071 382.15921 l -219.63226 384.17267 l -218.07594 383.29645 l -215.97873 382.8252 l -214.42627 379.99796 l -211.08592 378.00912 l -209.05119 375.05289 l -h -S -/DeviceRGB {} CS -[0.9059 0.902 0.949] SC -/DeviceRGB {} cs -[0.9059 0.902 0.949] sc -248.31726 270.52344 m -240.25102 328.95078 l -222.89735 326.45898 l -204.4622 315.84705 l -196.10242 310.6571 l -192.51512 308.41238 l -193.68863 306.57013 l -194.7932 306.78976 l -196.18106 304.98724 l -194.91466 303.29166 l -194.89641 301.66168 l -194.82208 299.74887 l -196.92934 297.72717 l -198.50984 293.15726 l -201.5217 291.57544 l -200.27087 289.3432 l -199.56758 287.21518 l -199.2827 285.25867 l -199.12909 283.78003 l -199.08751 282.86646 l -200.03749 280.88202 l -200.00768 278.79346 l -200.17554 276.83429 l -200.62604 274.5687 l -200.2681 273.04773 l -201.04021 271.93314 l -202.73184 272.26782 l -204.18263 273.27603 l -205.15739 273.91757 l -205.98959 272.44904 l -206.47971 272.18127 l -207.96632 263.86859 l -220.98795 266.07401 l -236.52643 268.71365 l -248.31726 270.52344 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -248.31726 270.52344 m -240.25102 328.95078 l -222.89735 326.45898 l -204.4622 315.84705 l -196.10242 310.6571 l -192.51512 308.41238 l -193.68863 306.57013 l -194.7932 306.78976 l -196.18106 304.98724 l -194.91466 303.29166 l -194.89641 301.66168 l -194.82208 299.74887 l -196.92934 297.72717 l -198.50984 293.15726 l -201.5217 291.57544 l -200.27087 289.3432 l -199.56758 287.21518 l -199.2827 285.25867 l -199.12909 283.78003 l -199.08751 282.86646 l -200.03749 280.88202 l -200.00768 278.79346 l -200.17554 276.83429 l -200.62604 274.5687 l -200.2681 273.04773 l -201.04021 271.93314 l -202.73184 272.26782 l -204.18263 273.27603 l -205.15739 273.91757 l -205.98959 272.44904 l -206.47971 272.18127 l -207.96632 263.86859 l -220.98795 266.07401 l -236.52643 268.71365 l -248.31726 270.52344 l -h -S -/DeviceRGB {} CS -[0.8431 0.8471 0.9176] SC -/DeviceRGB {} cs -[0.8431 0.8471 0.9176] sc -407.32214 286.22113 m -407.27353 287.1149 l -406.61795 288.67203 l -405.16809 289.74512 l -404.9559 291.53891 l -403.73718 292.95007 l -404.03198 295.95731 l -403.11008 296.99234 l -403.05447 297.88528 l -401.56631 298.6853 l -401.65445 300.19199 l -400.61072 303.09738 l -399.76559 303.7673 l -398.30121 305.26971 l -397.53146 307.44324 l -395.83533 311.17236 l -395.73782 313.66306 l -396.88181 316.3562 l -396.53836 318.41452 l -389.23785 318.39914 l -379.8335 319.09497 l -371.53284 319.30634 l -371.96857 313.3576 l -369.96219 313.30875 l -368.29465 313.51544 l -367.83771 312.81345 l -367.91144 303.67337 l -367.96384 293.54858 l -366.0668 282.55826 l -376.14084 282.43753 l -385.24966 282.22528 l -393.92374 281.83987 l -403.38043 281.93323 l -404.10095 283.13489 l -403.20688 284.34814 l -402.41745 285.5538 l -401.93802 286.56192 l -407.32214 286.22113 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -407.32214 286.22113 m -407.27353 287.1149 l -406.61795 288.67203 l -405.16809 289.74512 l -404.9559 291.53891 l -403.73718 292.95007 l -404.03198 295.95731 l -403.11008 296.99234 l -403.05447 297.88528 l -401.56631 298.6853 l -401.65445 300.19199 l -400.61072 303.09738 l -399.76559 303.7673 l -398.30121 305.26971 l -397.53146 307.44324 l -395.83533 311.17236 l -395.73782 313.66306 l -396.88181 316.3562 l -396.53836 318.41452 l -389.23785 318.39914 l -379.8335 319.09497 l -371.53284 319.30634 l -371.96857 313.3576 l -369.96219 313.30875 l -368.29465 313.51544 l -367.83771 312.81345 l -367.91144 303.67337 l -367.96384 293.54858 l -366.0668 282.55826 l -376.14084 282.43753 l -385.24966 282.22528 l -393.92374 281.83987 l -403.38043 281.93323 l -404.10095 283.13489 l -403.20688 284.34814 l -402.41745 285.5538 l -401.93802 286.56192 l -407.32214 286.22113 l -h -S -/DeviceRGB {} CS -[0.3294 0.1529 0.5608] SC -/DeviceRGB {} cs -[0.3294 0.1529 0.5608] sc -199.08751 282.86646 m -199.12909 283.78003 l -199.2827 285.25867 l -199.56758 287.21518 l -200.27087 289.3432 l -201.5217 291.57544 l -198.50984 293.15726 l -196.92934 297.72717 l -194.82208 299.74887 l -194.89641 301.66168 l -194.91466 303.29166 l -196.18106 304.98724 l -194.7932 306.78976 l -193.68863 306.57013 l -182.63965 305.46365 l -173.67136 304.22241 l -172.88107 304.13498 l -172.63069 298.62869 l -168.54651 291.49661 l -164.937134 289.36267 l -164.780334 286.22296 l -160.282272 284.57495 l -157.968735 281.07071 l -150.631882 278.17783 l -148.933502 275.98621 l -148.978973 275.81461 l -149.462646 270.15549 l -146.381485 262.79269 l -144.365814 257.90665 l -141.726303 242.10771 l -142.048431 241.36768 l -142.716537 239.8019 l -140.29541 235.67862 l -140.244415 235.47856 l -138.659378 231.21487 l -136.714706 225.34859 l -138.187042 216.88116 l -137.335281 214.39488 l -135.838882 210.22073 l -138.651672 204.86021 l -140.03476 202.40541 l -142.367035 193.74857 l -173.32643 202.56464 l -165.494751 232.91853 l -176.82497 250.28366 l -188.11101 266.97424 l -199.08751 282.86646 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -199.08751 282.86646 m -199.12909 283.78003 l -199.2827 285.25867 l -199.56758 287.21518 l -200.27087 289.3432 l -201.5217 291.57544 l -198.50984 293.15726 l -196.92934 297.72717 l -194.82208 299.74887 l -194.89641 301.66168 l -194.91466 303.29166 l -196.18106 304.98724 l -194.7932 306.78976 l -193.68863 306.57013 l -182.63965 305.46365 l -173.67136 304.22241 l -172.88107 304.13498 l -172.63069 298.62869 l -168.54651 291.49661 l -164.937134 289.36267 l -164.780334 286.22296 l -160.282272 284.57495 l -157.968735 281.07071 l -150.631882 278.17783 l -148.933502 275.98621 l -148.978973 275.81461 l -149.462646 270.15549 l -146.381485 262.79269 l -144.365814 257.90665 l -141.726303 242.10771 l -142.048431 241.36768 l -142.716537 239.8019 l -140.29541 235.67862 l -140.244415 235.47856 l -138.659378 231.21487 l -136.714706 225.34859 l -138.187042 216.88116 l -137.335281 214.39488 l -135.838882 210.22073 l -138.651672 204.86021 l -140.03476 202.40541 l -142.367035 193.74857 l -173.32643 202.56464 l -165.494751 232.91853 l -176.82497 250.28366 l -188.11101 266.97424 l -199.08751 282.86646 l -h -S -/DeviceRGB {} CS -[0.898 0.8941 0.9412] SC -/DeviceRGB {} cs -[0.898 0.8941 0.9412] sc -307.31934 244.86081 m -306.29132 261.00458 l -305.31952 276.26526 l -297.45621 275.72455 l -287.68848 274.94138 l -273.79883 273.6142 l -260.99243 272.16742 l -248.31726 270.52344 l -253.94205 229.04366 l -261.63498 230.06552 l -269.33826 231.0063 l -284.7724 232.64421 l -292.50906 233.25269 l -307.98535 234.40201 l -307.33627 244.5948 l -307.31934 244.86081 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -307.31934 244.86081 m -306.29132 261.00458 l -305.31952 276.26526 l -297.45621 275.72455 l -287.68848 274.94138 l -273.79883 273.6142 l -260.99243 272.16742 l -248.31726 270.52344 l -253.94205 229.04366 l -261.63498 230.06552 l -269.33826 231.0063 l -284.7724 232.64421 l -292.50906 233.25269 l -307.98535 234.40201 l -307.33627 244.5948 l -307.31934 244.86081 l -h -S -/DeviceRGB {} CS -[0.9412 0.9333 0.9647] SC -/DeviceRGB {} cs -[0.9412 0.9333 0.9647] sc -525.06781 204.72397 m -530.79932 203.49887 l -537.6983 202.01378 l -539.22485 207.48241 l -539.11951 209.0685 l -535.94739 210.43407 l -531.69409 212.05249 l -530.49829 213.07944 l -526.57629 216.13295 l -526.4162 215.89743 l -525.91034 214.64931 l -527.24664 213.32401 l -526.45288 212.60242 l -525.06781 204.72397 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -525.06781 204.72397 m -530.79932 203.49887 l -537.6983 202.01378 l -539.22485 207.48241 l -539.11951 209.0685 l -535.94739 210.43407 l -531.69409 212.05249 l -530.49829 213.07944 l -526.57629 216.13295 l -526.4162 215.89743 l -525.91034 214.64931 l -527.24664 213.32401 l -526.45288 212.60242 l -525.06781 204.72397 l -h -S -/DeviceRGB {} CS -[0.9412 0.9333 0.9647] SC -/DeviceRGB {} cs -[0.9412 0.9333 0.9647] sc -521.69653 244.17101 m -516.49524 245.3172 l -513.16992 232.39503 l -513.50195 231.50494 l -514.10858 230.91852 l -515.92438 231.06677 l -514.95038 232.37204 l -515.68823 234.30299 l -518.50598 239.4167 l -520.8371 240.81044 l -521.69653 244.17101 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -521.69653 244.17101 m -516.49524 245.3172 l -513.16992 232.39503 l -513.50195 231.50494 l -514.10858 230.91852 l -515.92438 231.06677 l -514.95038 232.37204 l -515.68823 234.30299 l -518.50598 239.4167 l -520.8371 240.81044 l -521.69653 244.17101 l -h -S -/DeviceRGB {} CS -[0.8392 0.8392 0.9137] SC -/DeviceRGB {} cs -[0.8392 0.8392 0.9137] sc -430.298 344.57959 m -430.86517 343.11188 l -431.13568 340.96127 l -428.84567 338.68475 l -429.00531 337.87292 l -433.99362 336.79572 l -451.95239 334.81424 l -453.54013 337.47293 l -462.54614 336.89697 l -476.95584 336.43341 l -477.91193 338.1658 l -478.91727 337.03677 l -478.38708 333.4577 l -479.36188 332.95566 l -481.30554 333.46655 l -483.15802 333.36218 l -485.75394 340.27942 l -490.13019 348.50491 l -495.27463 355.15298 l -496.10312 359.46497 l -502.34134 370.59204 l -503.25348 377.43903 l -503.43967 381.47772 l -502.17197 388.0488 l -499.58417 389.79636 l -494.75006 389.24756 l -493.84506 387.45087 l -492.60614 385.08725 l -488.73819 383.29968 l -485.83612 379.5882 l -482.50555 375.30984 l -477.09183 368.12808 l -475.22827 364.31738 l -476.15036 357.18576 l -472.79666 351.97412 l -464.6698 344.27008 l -461.00281 343.13971 l -452.65213 348.93829 l -450.96515 348.59903 l -446.02841 344.26871 l -440.21994 342.30505 l -434.63327 343.56116 l -430.298 344.57959 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -430.298 344.57959 m -430.86517 343.11188 l -431.13568 340.96127 l -428.84567 338.68475 l -429.00531 337.87292 l -433.99362 336.79572 l -451.95239 334.81424 l -453.54013 337.47293 l -462.54614 336.89697 l -476.95584 336.43341 l -477.91193 338.1658 l -478.91727 337.03677 l -478.38708 333.4577 l -479.36188 332.95566 l -481.30554 333.46655 l -483.15802 333.36218 l -485.75394 340.27942 l -490.13019 348.50491 l -495.27463 355.15298 l -496.10312 359.46497 l -502.34134 370.59204 l -503.25348 377.43903 l -503.43967 381.47772 l -502.17197 388.0488 l -499.58417 389.79636 l -494.75006 389.24756 l -493.84506 387.45087 l -492.60614 385.08725 l -488.73819 383.29968 l -485.83612 379.5882 l -482.50555 375.30984 l -477.09183 368.12808 l -475.22827 364.31738 l -476.15036 357.18576 l -472.79666 351.97412 l -464.6698 344.27008 l -461.00281 343.13971 l -452.65213 348.93829 l -450.96515 348.59903 l -446.02841 344.26871 l -440.21994 342.30505 l -434.63327 343.56116 l -430.298 344.57959 l -h -S -/DeviceRGB {} CS -[0.8667 0.8667 0.9294] SC -/DeviceRGB {} cs -[0.8667 0.8667 0.9294] sc -451.95239 334.81424 m -451.36319 333.72672 l -450.64096 332.47614 l -450.66653 330.69424 l -450.68091 328.82407 l -450.0047 326.94394 l -450.08185 323.64053 l -451.33121 321.62415 l -450.32874 319.86984 l -448.71982 316.75781 l -445.54846 306.68201 l -441.92725 294.04807 l -448.34979 293.4072 l -452.79172 292.78192 l -463.21643 291.51471 l -462.3602 292.52744 l -461.31702 294.63882 l -463.84225 296.0885 l -465.34454 296.50873 l -467.43787 299.53152 l -468.685 301.23679 l -472.00467 303.26822 l -472.74738 304.50397 l -474.97809 305.87729 l -476.33987 308.18307 l -479.41541 309.77716 l -480.33484 312.05557 l -481.06729 313.10727 l -480.85513 313.94666 l -482.59338 314.84094 l -483.78946 316.6243 l -484.0929 318.54742 l -484.94678 318.86017 l -486.48837 319.15158 l -483.38675 325.81912 l -483.15802 333.36218 l -481.30554 333.46655 l -479.36188 332.95566 l -478.38708 333.4577 l -478.91727 337.03677 l -477.91193 338.1658 l -476.95584 336.43341 l -462.54614 336.89697 l -453.54013 337.47293 l -451.95239 334.81424 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -451.95239 334.81424 m -451.36319 333.72672 l -450.64096 332.47614 l -450.66653 330.69424 l -450.68091 328.82407 l -450.0047 326.94394 l -450.08185 323.64053 l -451.33121 321.62415 l -450.32874 319.86984 l -448.71982 316.75781 l -445.54846 306.68201 l -441.92725 294.04807 l -448.34979 293.4072 l -452.79172 292.78192 l -463.21643 291.51471 l -462.3602 292.52744 l -461.31702 294.63882 l -463.84225 296.0885 l -465.34454 296.50873 l -467.43787 299.53152 l -468.685 301.23679 l -472.00467 303.26822 l -472.74738 304.50397 l -474.97809 305.87729 l -476.33987 308.18307 l -479.41541 309.77716 l -480.33484 312.05557 l -481.06729 313.10727 l -480.85513 313.94666 l -482.59338 314.84094 l -483.78946 316.6243 l -484.0929 318.54742 l -484.94678 318.86017 l -486.48837 319.15158 l -483.38675 325.81912 l -483.15802 333.36218 l -481.30554 333.46655 l -479.36188 332.95566 l -478.38708 333.4577 l -478.91727 337.03677 l -477.91193 338.1658 l -476.95584 336.43341 l -462.54614 336.89697 l -453.54013 337.47293 l -451.95239 334.81424 l -h -S -/DeviceRGB {} CS -[0.9373 0.9294 0.9647] SC -/DeviceRGB {} cs -[0.9373 0.9294 0.9647] sc -273.28082 384.0784 m -275.06445 384.94366 l -276.59921 386.33612 l -279.17178 389.91406 l -278.92245 390.53085 l -275.11887 392.75613 l -271.94263 394.35779 l -270.54926 396.1232 l -268.11902 394.64029 l -268.36166 391.73996 l -266.69238 387.9711 l -267.19669 386.82837 l -268.96866 385.15408 l -268.19803 383.14044 l -268.82831 382.17334 l -269.59036 382.34515 l -273.28082 384.0784 l -h -267.41251 377.0105 m -266.65759 378.32684 l -263.36563 379.03726 l -261.71484 376.8512 l -260.57452 376.06491 l -260.44717 375.36487 l -261.45804 374.48846 l -264.87576 375.44348 l -267.41251 377.0105 l -h -260.06516 372.82806 m -259.68689 373.96558 l -254.50276 373.61444 l -255.26256 372.39078 l -260.06516 372.82806 l -h -247.70093 367.21576 m -248.58115 367.91785 l -251.34767 371.33463 l -250.84071 371.94531 l -250.08315 371.76825 l -246.67348 371.40576 l -245.54811 369.04062 l -245.17126 368.68924 l -247.70093 367.21576 l -h -234.75867 362.06805 m -234.9888 364.42566 l -233.84502 365.46234 l -230.58949 363.50888 l -231.10066 362.81647 l -232.49606 361.78442 l -234.75867 362.06805 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -273.28082 384.0784 m -275.06445 384.94366 l -276.59921 386.33612 l -279.17178 389.91406 l -278.92245 390.53085 l -275.11887 392.75613 l -271.94263 394.35779 l -270.54926 396.1232 l -268.11902 394.64029 l -268.36166 391.73996 l -266.69238 387.9711 l -267.19669 386.82837 l -268.96866 385.15408 l -268.19803 383.14044 l -268.82831 382.17334 l -269.59036 382.34515 l -273.28082 384.0784 l -h -267.41251 377.0105 m -266.65759 378.32684 l -263.36563 379.03726 l -261.71484 376.8512 l -260.57452 376.06491 l -260.44717 375.36487 l -261.45804 374.48846 l -264.87576 375.44348 l -267.41251 377.0105 l -h -260.06516 372.82806 m -259.68689 373.96558 l -254.50276 373.61444 l -255.26256 372.39078 l -260.06516 372.82806 l -h -247.70093 367.21576 m -248.58115 367.91785 l -251.34767 371.33463 l -250.84071 371.94531 l -250.08315 371.76825 l -246.67348 371.40576 l -245.54811 369.04062 l -245.17126 368.68924 l -247.70093 367.21576 l -h -234.75867 362.06805 m -234.9888 364.42566 l -233.84502 365.46234 l -230.58949 363.50888 l -231.10066 362.81647 l -232.49606 361.78442 l -234.75867 362.06805 l -h -S -/DeviceRGB {} CS -[0.8902 0.8863 0.9373] SC -/DeviceRGB {} cs -[0.8902 0.8863 0.9373] sc -217.89958 138.623428 m -216.18895 149.218689 l -217.39218 152.331635 l -217.01408 154.128754 l -218.01926 156.037781 l -219.35295 157.297333 l -220.20839 159.081863 l -221.57355 162.577667 l -223.00833 164.384491 l -225.17609 164.899719 l -223.90079 167.065308 l -222.75198 169.52524 l -222.77765 172.30769 l -221.82982 172.74866 l -221.41103 175.3567 l -222.50369 176.64778 l -224.12776 175.7077 l -225.13371 174.4675 l -225.9157 174.88593 l -226.4855 176.42764 l -226.71672 179.78728 l -227.77837 181.33073 l -227.74646 184.1046 l -227.99292 184.86783 l -229.44638 185.40404 l -230.02357 187.0336 l -230.85782 189.9646 l -232.44315 188.72302 l -234.72627 189.57227 l -235.09636 188.56154 l -239.14566 189.87889 l -240.79526 189.88472 l -242.17642 187.96552 l -242.96796 188.45198 l -243.40321 189.95256 l -244.1561 190.69925 l -244.31744 190.90381 l -240.24197 216.41861 l -217.81784 212.56572 l -195.36769 207.79518 l -199.65775 189.61038 l -200.88083 186.80531 l -200.60703 185.38594 l -199.44943 184.40034 l -199.82036 182.76428 l -201.35312 180.75812 l -203.30569 179.02599 l -205.05251 175.98251 l -206.63808 173.62605 l -207.56607 172.47751 l -207.53696 170.84949 l -206.53275 169.72754 l -205.30455 167.472382 l -205.79868 165.691528 l -205.50702 164.005676 l -208.47774 149.944458 l -211.25949 137.165604 l -215.62627 138.132462 l -217.89958 138.623428 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -217.89958 138.623428 m -216.18895 149.218689 l -217.39218 152.331635 l -217.01408 154.128754 l -218.01926 156.037781 l -219.35295 157.297333 l -220.20839 159.081863 l -221.57355 162.577667 l -223.00833 164.384491 l -225.17609 164.899719 l -223.90079 167.065308 l -222.75198 169.52524 l -222.77765 172.30769 l -221.82982 172.74866 l -221.41103 175.3567 l -222.50369 176.64778 l -224.12776 175.7077 l -225.13371 174.4675 l -225.9157 174.88593 l -226.4855 176.42764 l -226.71672 179.78728 l -227.77837 181.33073 l -227.74646 184.1046 l -227.99292 184.86783 l -229.44638 185.40404 l -230.02357 187.0336 l -230.85782 189.9646 l -232.44315 188.72302 l -234.72627 189.57227 l -235.09636 188.56154 l -239.14566 189.87889 l -240.79526 189.88472 l -242.17642 187.96552 l -242.96796 188.45198 l -243.40321 189.95256 l -244.1561 190.69925 l -244.31744 190.90381 l -240.24197 216.41861 l -217.81784 212.56572 l -195.36769 207.79518 l -199.65775 189.61038 l -200.88083 186.80531 l -200.60703 185.38594 l -199.44943 184.40034 l -199.82036 182.76428 l -201.35312 180.75812 l -203.30569 179.02599 l -205.05251 175.98251 l -206.63808 173.62605 l -207.56607 172.47751 l -207.53696 170.84949 l -206.53275 169.72754 l -205.30455 167.472382 l -205.79868 165.691528 l -205.50702 164.005676 l -208.47774 149.944458 l -211.25949 137.165604 l -215.62627 138.132462 l -217.89958 138.623428 l -h -S -/DeviceRGB {} CS -[0.6627 0.6549 0.8118] SC -/DeviceRGB {} cs -[0.6627 0.6549 0.8118] sc -390.49164 241.69397 m -390.60471 239.82118 l -392.54926 238.12404 l -392.97202 236.50189 l -393.88632 234.6759 l -393.50037 233.09631 l -392.45544 232.35081 l -393.06009 230.45338 l -395.63589 229.86972 l -397.39868 229.14694 l -397.85086 228.32056 l -399.10678 225.93478 l -399.33023 223.0782 l -398.48456 222.24159 l -397.25082 221.51591 l -396.88727 220.38304 l -395.96902 219.90344 l -395.43115 219.13521 l -403.20871 218.65411 l -411.07895 218.08133 l -416.88663 217.692 l -417.2218 220.42064 l -419.78311 225.71428 l -420.85852 237.73784 l -421.83231 249.78233 l -421.26859 252.77705 l -421.9501 253.43056 l -422.52936 255.25302 l -422.64832 256.58118 l -421.98584 257.35422 l -421.61523 259.08261 l -420.14935 261.53012 l -419.23343 264.37396 l -419.09756 266.52667 l -419.26947 267.31525 l -418.44098 268.81171 l -419.25943 269.72498 l -417.84885 270.64447 l -416.12506 271.67526 l -416.61884 273.86551 l -415.6286 274.8356 l -413.53854 274.01599 l -411.37967 273.64182 l -410.81448 274.66333 l -411.24866 276.23621 l -409.75366 274.73923 l -408.81735 275.07236 l -407.68622 272.56613 l -407.78818 270.95514 l -407.09152 268.50757 l -406.22586 268.20947 l -403.97955 266.12915 l -403.02972 266.10037 l -401.36966 264.77783 l -400.12286 263.24951 l -400.53363 261.35468 l -401.17145 259.802 l -401.46753 257.8244 l -399.91412 256.22635 l -398.40155 257.02728 l -397.44354 256.63663 l -397.24023 254.8674 l -396.51196 252.94946 l -395.76608 252.5453 l -393.83728 251.22372 l -392.20566 249.52699 l -390.87125 247.45712 l -390.00378 244.2963 l -390.49164 241.69397 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -390.49164 241.69397 m -390.60471 239.82118 l -392.54926 238.12404 l -392.97202 236.50189 l -393.88632 234.6759 l -393.50037 233.09631 l -392.45544 232.35081 l -393.06009 230.45338 l -395.63589 229.86972 l -397.39868 229.14694 l -397.85086 228.32056 l -399.10678 225.93478 l -399.33023 223.0782 l -398.48456 222.24159 l -397.25082 221.51591 l -396.88727 220.38304 l -395.96902 219.90344 l -395.43115 219.13521 l -403.20871 218.65411 l -411.07895 218.08133 l -416.88663 217.692 l -417.2218 220.42064 l -419.78311 225.71428 l -420.85852 237.73784 l -421.83231 249.78233 l -421.26859 252.77705 l -421.9501 253.43056 l -422.52936 255.25302 l -422.64832 256.58118 l -421.98584 257.35422 l -421.61523 259.08261 l -420.14935 261.53012 l -419.23343 264.37396 l -419.09756 266.52667 l -419.26947 267.31525 l -418.44098 268.81171 l -419.25943 269.72498 l -417.84885 270.64447 l -416.12506 271.67526 l -416.61884 273.86551 l -415.6286 274.8356 l -413.53854 274.01599 l -411.37967 273.64182 l -410.81448 274.66333 l -411.24866 276.23621 l -409.75366 274.73923 l -408.81735 275.07236 l -407.68622 272.56613 l -407.78818 270.95514 l -407.09152 268.50757 l -406.22586 268.20947 l -403.97955 266.12915 l -403.02972 266.10037 l -401.36966 264.77783 l -400.12286 263.24951 l -400.53363 261.35468 l -401.17145 259.802 l -401.46753 257.8244 l -399.91412 256.22635 l -398.40155 257.02728 l -397.44354 256.63663 l -397.24023 254.8674 l -396.51196 252.94946 l -395.76608 252.5453 l -393.83728 251.22372 l -392.20566 249.52699 l -390.87125 247.45712 l -390.00378 244.2963 l -390.49164 241.69397 l -h -S -/DeviceRGB {} CS -[0.7922 0.7961 0.8902] SC -/DeviceRGB {} cs -[0.7922 0.7961 0.8902] sc -419.09756 266.52667 m -419.23343 264.37396 l -420.14935 261.53012 l -421.61523 259.08261 l -421.98584 257.35422 l -422.64832 256.58118 l -422.52936 255.25302 l -421.9501 253.43056 l -421.26859 252.77705 l -421.83231 249.78233 l -420.85852 237.73784 l -419.78311 225.71428 l -420.54266 226.35851 l -423.12018 226.03177 l -425.09662 224.68472 l -433.23932 223.9388 l -440.46204 223.03134 l -440.55585 223.82414 l -441.67191 233.2549 l -442.76019 243.32329 l -443.61566 250.56067 l -443.15363 251.06264 l -444.02142 253.10854 l -443.80573 253.93965 l -442.46341 254.09673 l -441.33533 255.21115 l -439.4241 254.98019 l -439.44427 257.0354 l -438.39148 257.95721 l -437.54575 259.83853 l -436.42957 260.22736 l -434.98425 263.50989 l -433.32486 262.78839 l -432.67609 261.60367 l -431.52435 263.7756 l -430.69699 265.01962 l -428.90918 264.03351 l -427.11765 265.18732 l -426.58008 266.22012 l -423.91766 264.85779 l -422.34311 266.15857 l -420.17654 265.54321 l -420.1698 266.70377 l -419.09756 266.52667 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -419.09756 266.52667 m -419.23343 264.37396 l -420.14935 261.53012 l -421.61523 259.08261 l -421.98584 257.35422 l -422.64832 256.58118 l -422.52936 255.25302 l -421.9501 253.43056 l -421.26859 252.77705 l -421.83231 249.78233 l -420.85852 237.73784 l -419.78311 225.71428 l -420.54266 226.35851 l -423.12018 226.03177 l -425.09662 224.68472 l -433.23932 223.9388 l -440.46204 223.03134 l -440.55585 223.82414 l -441.67191 233.2549 l -442.76019 243.32329 l -443.61566 250.56067 l -443.15363 251.06264 l -444.02142 253.10854 l -443.80573 253.93965 l -442.46341 254.09673 l -441.33533 255.21115 l -439.4241 254.98019 l -439.44427 257.0354 l -438.39148 257.95721 l -437.54575 259.83853 l -436.42957 260.22736 l -434.98425 263.50989 l -433.32486 262.78839 l -432.67609 261.60367 l -431.52435 263.7756 l -430.69699 265.01962 l -428.90918 264.03351 l -427.11765 265.18732 l -426.58008 266.22012 l -423.91766 264.85779 l -422.34311 266.15857 l -420.17654 265.54321 l -420.1698 266.70377 l -419.09756 266.52667 l -h -S -/DeviceRGB {} CS -[0.5529 0.5255 0.7451] SC -/DeviceRGB {} cs -[0.5529 0.5255 0.7451] sc -351.41064 209.91429 m -359.57721 209.90634 l -369.7807 209.5876 l -380.66223 209.27477 l -390.47876 209.02641 l -390.6026 209.55161 l -391.66116 211.18076 l -391.01981 212.01115 l -391.12762 214.13283 l -391.56876 215.08551 l -392.04767 216.74565 l -394.65344 217.58151 l -395.43115 219.13521 l -395.96902 219.90344 l -396.88727 220.38304 l -397.25082 221.51591 l -398.48456 222.24159 l -399.33023 223.0782 l -399.10678 225.93478 l -397.85086 228.32056 l -397.39868 229.14694 l -395.63589 229.86972 l -393.06009 230.45338 l -392.45544 232.35081 l -393.50037 233.09631 l -393.88632 234.6759 l -392.97202 236.50189 l -392.54926 238.12404 l -390.60471 239.82118 l -390.49164 241.69397 l -389.43448 240.85484 l -387.83737 239.23859 l -379.3407 239.83559 l -370.42542 240.16609 l -363.43106 240.28053 l -356.43594 240.32896 l -355.82507 238.46521 l -356.12509 236.60019 l -355.92053 234.73631 l -355.11432 231.71959 l -354.61362 230.47742 l -354.01379 230.12212 l -354.01639 227.72702 l -353.52106 226.04128 l -352.13626 224.08687 l -352.13953 223.20039 l -351.6517 221.5144 l -351.36035 220.44969 l -351.36499 219.47508 l -350.19003 218.31685 l -350.78967 216.63762 l -351.19073 214.9574 l -351.39206 213.80757 l -350.42322 212.3862 l -350.43842 209.90898 l -351.41064 209.91429 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -351.41064 209.91429 m -359.57721 209.90634 l -369.7807 209.5876 l -380.66223 209.27477 l -390.47876 209.02641 l -390.6026 209.55161 l -391.66116 211.18076 l -391.01981 212.01115 l -391.12762 214.13283 l -391.56876 215.08551 l -392.04767 216.74565 l -394.65344 217.58151 l -395.43115 219.13521 l -395.96902 219.90344 l -396.88727 220.38304 l -397.25082 221.51591 l -398.48456 222.24159 l -399.33023 223.0782 l -399.10678 225.93478 l -397.85086 228.32056 l -397.39868 229.14694 l -395.63589 229.86972 l -393.06009 230.45338 l -392.45544 232.35081 l -393.50037 233.09631 l -393.88632 234.6759 l -392.97202 236.50189 l -392.54926 238.12404 l -390.60471 239.82118 l -390.49164 241.69397 l -389.43448 240.85484 l -387.83737 239.23859 l -379.3407 239.83559 l -370.42542 240.16609 l -363.43106 240.28053 l -356.43594 240.32896 l -355.82507 238.46521 l -356.12509 236.60019 l -355.92053 234.73631 l -355.11432 231.71959 l -354.61362 230.47742 l -354.01379 230.12212 l -354.01639 227.72702 l -353.52106 226.04128 l -352.13626 224.08687 l -352.13953 223.20039 l -351.6517 221.5144 l -351.36035 220.44969 l -351.36499 219.47508 l -350.19003 218.31685 l -350.78967 216.63762 l -351.19073 214.9574 l -351.39206 213.80757 l -350.42322 212.3862 l -350.43842 209.90898 l -351.41064 209.91429 l -h -S -/DeviceRGB {} CS -[0.8078 0.8118 0.898] SC -/DeviceRGB {} cs -[0.8078 0.8118 0.898] sc -305.31952 276.26526 m -306.29132 261.00458 l -307.31934 244.86081 l -320.99472 245.60588 l -331.20786 245.9985 l -349.29474 246.35086 l -360.12866 246.35217 l -361.98199 247.75836 l -363.00595 247.74783 l -363.22769 249.25609 l -362.22095 251.22189 l -362.74564 252.19421 l -363.80212 254.4045 l -365.88257 255.35469 l -365.94171 266.55646 l -366.10428 277.7572 l -358.86182 277.82864 l -344.16348 277.76654 l -329.36246 277.42349 l -321.27338 277.11697 l -313.08154 276.72064 l -305.31952 276.26526 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -305.31952 276.26526 m -306.29132 261.00458 l -307.31934 244.86081 l -320.99472 245.60588 l -331.20786 245.9985 l -349.29474 246.35086 l -360.12866 246.35217 l -361.98199 247.75836 l -363.00595 247.74783 l -363.22769 249.25609 l -362.22095 251.22189 l -362.74564 252.19421 l -363.80212 254.4045 l -365.88257 255.35469 l -365.94171 266.55646 l -366.10428 277.7572 l -358.86182 277.82864 l -344.16348 277.76654 l -329.36246 277.42349 l -321.27338 277.11697 l -313.08154 276.72064 l -305.31952 276.26526 l -h -S -/DeviceRGB {} CS -[0.8941 0.8902 0.9412] SC -/DeviceRGB {} cs -[0.8941 0.8902 0.9412] sc -408.38144 281.16138 m -410.11804 279.88208 l -411.33521 278.90369 l -411.11307 277.31558 l -411.24866 276.23621 l -410.81448 274.66333 l -411.37967 273.64182 l -413.53854 274.01599 l -415.6286 274.8356 l -416.61884 273.86551 l -416.12506 271.67526 l -417.84885 270.64447 l -419.25943 269.72498 l -418.44098 268.81171 l -419.26947 267.31525 l -419.09756 266.52667 l -420.1698 266.70377 l -420.17654 265.54321 l -422.34311 266.15857 l -423.91766 264.85779 l -426.58008 266.22012 l -427.11765 265.18732 l -428.90918 264.03351 l -430.69699 265.01962 l -431.52435 263.7756 l -432.67609 261.60367 l -433.32486 262.78839 l -434.98425 263.50989 l -436.42957 260.22736 l -437.54575 259.83853 l -438.39148 257.95721 l -439.44427 257.0354 l -439.4241 254.98019 l -441.33533 255.21115 l -442.46341 254.09673 l -443.80573 253.93965 l -444.02142 253.10854 l -443.15363 251.06264 l -443.61566 250.56067 l -446.3089 250.41652 l -447.77551 251.31123 l -450.22583 253.33405 l -451.97833 253.91693 l -453.32056 254.54979 l -455.14499 254.04054 l -456.67358 254.46371 l -458.24185 253.62241 l -459.76511 253.23247 l -460.59354 254.64279 l -462.17758 255.40704 l -462.52222 256.34586 l -462.73141 258.56113 l -463.89334 260.01181 l -464.53763 261.53601 l -465.87662 262.68973 l -466.89261 263.79926 l -468.4874 263.74353 l -467.76746 264.65906 l -465.68887 267.29843 l -463.34036 268.89075 l -463.25369 269.80072 l -462.55783 270.97543 l -460.60263 272.41229 l -460.50888 272.51483 l -460.41513 272.61737 l -459.9118 273.67267 l -458.6994 274.28467 l -458.2988 274.51761 l -456.04553 275.44254 l -450.55402 276.40771 l -443.27023 276.82318 l -440.94919 277.26257 l -436.23682 277.50177 l -431.43564 277.89984 l -426.95233 278.23877 l -421.85843 278.9614 l -421.60715 278.5369 l -420.0079 278.67233 l -420.14868 280.35522 l -408.38144 281.16138 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -408.38144 281.16138 m -410.11804 279.88208 l -411.33521 278.90369 l -411.11307 277.31558 l -411.24866 276.23621 l -410.81448 274.66333 l -411.37967 273.64182 l -413.53854 274.01599 l -415.6286 274.8356 l -416.61884 273.86551 l -416.12506 271.67526 l -417.84885 270.64447 l -419.25943 269.72498 l -418.44098 268.81171 l -419.26947 267.31525 l -419.09756 266.52667 l -420.1698 266.70377 l -420.17654 265.54321 l -422.34311 266.15857 l -423.91766 264.85779 l -426.58008 266.22012 l -427.11765 265.18732 l -428.90918 264.03351 l -430.69699 265.01962 l -431.52435 263.7756 l -432.67609 261.60367 l -433.32486 262.78839 l -434.98425 263.50989 l -436.42957 260.22736 l -437.54575 259.83853 l -438.39148 257.95721 l -439.44427 257.0354 l -439.4241 254.98019 l -441.33533 255.21115 l -442.46341 254.09673 l -443.80573 253.93965 l -444.02142 253.10854 l -443.15363 251.06264 l -443.61566 250.56067 l -446.3089 250.41652 l -447.77551 251.31123 l -450.22583 253.33405 l -451.97833 253.91693 l -453.32056 254.54979 l -455.14499 254.04054 l -456.67358 254.46371 l -458.24185 253.62241 l -459.76511 253.23247 l -460.59354 254.64279 l -462.17758 255.40704 l -462.52222 256.34586 l -462.73141 258.56113 l -463.89334 260.01181 l -464.53763 261.53601 l -465.87662 262.68973 l -466.89261 263.79926 l -468.4874 263.74353 l -467.76746 264.65906 l -465.68887 267.29843 l -463.34036 268.89075 l -463.25369 269.80072 l -462.55783 270.97543 l -460.60263 272.41229 l -460.50888 272.51483 l -460.41513 272.61737 l -459.9118 273.67267 l -458.6994 274.28467 l -458.2988 274.51761 l -456.04553 275.44254 l -450.55402 276.40771 l -443.27023 276.82318 l -440.94919 277.26257 l -436.23682 277.50177 l -431.43564 277.89984 l -426.95233 278.23877 l -421.85843 278.9614 l -421.60715 278.5369 l -420.0079 278.67233 l -420.14868 280.35522 l -408.38144 281.16138 l -h -S -/DeviceRGB {} CS -[0.8941 0.8902 0.9412] SC -/DeviceRGB {} cs -[0.8941 0.8902 0.9412] sc -371.53284 319.30634 m -379.8335 319.09497 l -389.23785 318.39914 l -396.53836 318.41452 l -397.2428 318.99933 l -396.53418 320.54358 l -397.88107 322.60242 l -397.60742 323.85794 l -398.83435 325.65491 l -397.64563 326.78085 l -397.40585 328.74237 l -395.78204 330.41837 l -395.09283 332.66541 l -394.41187 335.1759 l -393.32108 336.37689 l -393.9024 339.00305 l -401.6123 338.87396 l -410.00052 338.45279 l -409.88055 340.142 l -409.41953 341.94122 l -410.07666 343.13651 l -411.31348 344.29254 l -411.66284 346.03714 l -411.95978 346.98932 l -412.08765 347.15741 l -413.78448 349.78009 l -413.96002 354.00589 l -416.09216 355.88535 l -414.43179 357.41373 l -410.92331 356.06308 l -407.64795 358.29883 l -401.164 358.32071 l -394.09555 353.20972 l -386.31552 354.85403 l -379.68811 352.60529 l -374.10202 353.54288 l -373.49258 352.41095 l -374.39185 350.89236 l -375.63882 349.45206 l -375.70517 347.42181 l -374.99219 346.73331 l -375.74252 344.24405 l -376.29129 343.08261 l -376.99905 339.26627 l -376.15866 337.87424 l -375.06833 335.51471 l -374.32605 333.1449 l -373.71951 331.56674 l -372.32703 330.35864 l -371.53284 319.30634 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -371.53284 319.30634 m -379.8335 319.09497 l -389.23785 318.39914 l -396.53836 318.41452 l -397.2428 318.99933 l -396.53418 320.54358 l -397.88107 322.60242 l -397.60742 323.85794 l -398.83435 325.65491 l -397.64563 326.78085 l -397.40585 328.74237 l -395.78204 330.41837 l -395.09283 332.66541 l -394.41187 335.1759 l -393.32108 336.37689 l -393.9024 339.00305 l -401.6123 338.87396 l -410.00052 338.45279 l -409.88055 340.142 l -409.41953 341.94122 l -410.07666 343.13651 l -411.31348 344.29254 l -411.66284 346.03714 l -411.95978 346.98932 l -412.08765 347.15741 l -413.78448 349.78009 l -413.96002 354.00589 l -416.09216 355.88535 l -414.43179 357.41373 l -410.92331 356.06308 l -407.64795 358.29883 l -401.164 358.32071 l -394.09555 353.20972 l -386.31552 354.85403 l -379.68811 352.60529 l -374.10202 353.54288 l -373.49258 352.41095 l -374.39185 350.89236 l -375.63882 349.45206 l -375.70517 347.42181 l -374.99219 346.73331 l -375.74252 344.24405 l -376.29129 343.08261 l -376.99905 339.26627 l -376.15866 337.87424 l -375.06833 335.51471 l -374.32605 333.1449 l -373.71951 331.56674 l -372.32703 330.35864 l -371.53284 319.30634 l -h -S -/DeviceRGB {} CS -[0.9412 0.9333 0.9647] SC -/DeviceRGB {} cs -[0.9412 0.9333 0.9647] sc -543.27484 188.88113 m -542.54327 189.17238 l -541.79462 187.90831 l -540.06091 186.72723 l -540.08948 185.71164 l -534.11499 167.571487 l -536.68939 165.141006 l -537.26642 162.609818 l -537.90234 159.970261 l -537.8905 156.780563 l -537.88727 151.585388 l -539.94122 145.627792 l -540.89105 142.621735 l -543.23981 144.126572 l -543.94147 144.559937 l -548.02283 141.521423 l -551.87909 143.462982 l -554.34277 151.51709 l -556.01453 156.982071 l -562.24683 161.136551 l -564.4577 164.045837 l -558.44604 171.16982 l -552.16077 176.72363 l -545.47394 181.84853 l -543.27484 188.88113 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -543.27484 188.88113 m -542.54327 189.17238 l -541.79462 187.90831 l -540.06091 186.72723 l -540.08948 185.71164 l -534.11499 167.571487 l -536.68939 165.141006 l -537.26642 162.609818 l -537.90234 159.970261 l -537.8905 156.780563 l -537.88727 151.585388 l -539.94122 145.627792 l -540.89105 142.621735 l -543.23981 144.126572 l -543.94147 144.559937 l -548.02283 141.521423 l -551.87909 143.462982 l -554.34277 151.51709 l -556.01453 156.982071 l -562.24683 161.136551 l -564.4577 164.045837 l -558.44604 171.16982 l -552.16077 176.72363 l -545.47394 181.84853 l -543.27484 188.88113 l -h -S -/DeviceRGB {} CS -[0.9294 0.9216 0.9608] SC -/DeviceRGB {} cs -[0.9294 0.9216 0.9608] sc -520.12396 249.16531 m -518.3147 249.74384 l -517.62506 250.53056 l -512.68561 247.49561 l -509.99445 239.24986 l -509.37891 243.91867 l -512.48059 250.08269 l -506.92038 249.59602 l -506.74713 249.26826 l -506.2103 248.19771 l -504.96542 248.90164 l -503.83569 248.58316 l -504.3045 246.13258 l -505.16803 245.14305 l -505.43893 244.907 l -505.36478 244.01503 l -506.20618 242.93727 l -504.95966 242.01097 l -504.4552 242.65685 l -502.80527 241.80876 l -501.0593 241.52042 l -501.10925 241.23878 l -501.34283 240.28664 l -500.17484 239.70143 l -499.21201 239.61812 l -498.99246 239.57036 l -498.13095 238.37965 l -496.83411 237.09143 l -494.26224 236.76787 l -492.99655 237.81975 l -492.23325 238.77571 l -489.92703 238.74883 l -489.00418 240.00072 l -487.56216 240.71194 l -486.46045 242.17209 l -485.39432 243.26265 l -484.57355 237.99271 l -491.75891 236.78488 l -494.16318 236.24396 l -499.70441 235.17462 l -506.34305 233.83643 l -513.16992 232.39503 l -516.49524 245.3172 l -521.69653 244.17101 l -521.7937 244.60478 l -520.12396 249.16531 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -520.12396 249.16531 m -518.3147 249.74384 l -517.62506 250.53056 l -512.68561 247.49561 l -509.99445 239.24986 l -509.37891 243.91867 l -512.48059 250.08269 l -506.92038 249.59602 l -506.74713 249.26826 l -506.2103 248.19771 l -504.96542 248.90164 l -503.83569 248.58316 l -504.3045 246.13258 l -505.16803 245.14305 l -505.43893 244.907 l -505.36478 244.01503 l -506.20618 242.93727 l -504.95966 242.01097 l -504.4552 242.65685 l -502.80527 241.80876 l -501.0593 241.52042 l -501.10925 241.23878 l -501.34283 240.28664 l -500.17484 239.70143 l -499.21201 239.61812 l -498.99246 239.57036 l -498.13095 238.37965 l -496.83411 237.09143 l -494.26224 236.76787 l -492.99655 237.81975 l -492.23325 238.77571 l -489.92703 238.74883 l -489.00418 240.00072 l -487.56216 240.71194 l -486.46045 242.17209 l -485.39432 243.26265 l -484.57355 237.99271 l -491.75891 236.78488 l -494.16318 236.24396 l -499.70441 235.17462 l -506.34305 233.83643 l -513.16992 232.39503 l -516.49524 245.3172 l -521.69653 244.17101 l -521.7937 244.60478 l -520.12396 249.16531 l -h -S -/DeviceRGB {} CS -[0.9412 0.9333 0.9647] SC -/DeviceRGB {} cs -[0.9412 0.9333 0.9647] sc -537.6983 202.01378 m -530.79932 203.49887 l -525.06781 204.72397 l -524.91235 197.37546 l -531.06152 196.03119 l -539.93475 193.81813 l -540.41992 192.58846 l -541.75244 191.49658 l -542.67419 191.52228 l -544.01721 196.8492 l -547.95508 201.47203 l -551.099 200.87605 l -550.45319 199.67525 l -549.21228 197.44389 l -552.12921 199.02068 l -552.25073 200.92142 l -552.2746 202.11258 l -548.77844 204.4657 l -547.71405 205.12552 l -544.18939 205.89554 l -543.48663 204.43051 l -542.00977 203.53911 l -540.82361 201.00958 l -537.6983 202.01378 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -537.6983 202.01378 m -530.79932 203.49887 l -525.06781 204.72397 l -524.91235 197.37546 l -531.06152 196.03119 l -539.93475 193.81813 l -540.41992 192.58846 l -541.75244 191.49658 l -542.67419 191.52228 l -544.01721 196.8492 l -547.95508 201.47203 l -551.099 200.87605 l -550.45319 199.67525 l -549.21228 197.44389 l -552.12921 199.02068 l -552.25073 200.92142 l -552.2746 202.11258 l -548.77844 204.4657 l -547.71405 205.12552 l -544.18939 205.89554 l -543.48663 204.43051 l -542.00977 203.53911 l -540.82361 201.00958 l -537.6983 202.01378 l -h -S -/DeviceRGB {} CS -[0.8588 0.8588 0.9255] SC -/DeviceRGB {} cs -[0.8588 0.8588 0.9255] sc -416.15836 190.51595 m -415.96146 190.44492 l -415.96921 190.5327 l -414.91641 189.38669 l -415.2421 187.67813 l -413.63339 187.72906 l -413.86679 186.03001 l -414.26056 185.11255 l -413.48349 183.76646 l -411.73935 183.20758 l -411.13403 181.58124 l -409.71964 181.52013 l -407.75934 181.67508 l -403.42581 180.14719 l -397.06839 178.72316 l -396.39771 176.9175 l -395.26425 176.63445 l -394.81125 176.83717 l -394.71338 176.75504 l -394.81125 176.83717 l -400.10263 173.86642 l -405.57162 170.13722 l -411.52109 166.234283 l -409.68109 171.83556 l -413.84341 172.80305 l -419.19135 176.27919 l -425.24945 173.38144 l -432.14423 171.65405 l -433.95297 174.3591 l -436.12927 174.54254 l -438.11197 174.65469 l -442.14871 178.30829 l -435.93207 179.96446 l -435.74582 179.98663 l -429.93686 179.50226 l -424.56522 182.19551 l -419.78833 183.55023 l -416.15836 190.51595 l -h -450.7334 222.36815 m -447.87515 222.83099 l -444.40955 223.26831 l -440.55585 223.82414 l -440.46204 223.03134 l -433.23932 223.9388 l -425.09662 224.68472 l -426.44531 223.1268 l -428.98645 217.7018 l -428.57806 210.88728 l -425.40329 204.71837 l -425.34686 200.28247 l -426.73798 194.99263 l -428.18344 191.38213 l -430.84741 188.61134 l -431.88779 191.95546 l -432.63922 186.72664 l -434.11652 185.49387 l -434.59515 181.45076 l -441.01566 182.79787 l -446.88132 186.12007 l -448.0697 190.67503 l -448.0401 195.48799 l -444.56564 200.13084 l -445.28751 202.71219 l -446.74231 202.61272 l -450.63782 197.45338 l -453.55536 198.11763 l -455.74628 203.87918 l -456.73654 208.02882 l -455.67737 210.32693 l -453.93832 214.23865 l -453.32333 216.29184 l -452.86429 218.05476 l -450.7334 222.36815 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -416.15836 190.51595 m -415.96146 190.44492 l -415.96921 190.5327 l -414.91641 189.38669 l -415.2421 187.67813 l -413.63339 187.72906 l -413.86679 186.03001 l -414.26056 185.11255 l -413.48349 183.76646 l -411.73935 183.20758 l -411.13403 181.58124 l -409.71964 181.52013 l -407.75934 181.67508 l -403.42581 180.14719 l -397.06839 178.72316 l -396.39771 176.9175 l -395.26425 176.63445 l -394.81125 176.83717 l -394.71338 176.75504 l -394.81125 176.83717 l -400.10263 173.86642 l -405.57162 170.13722 l -411.52109 166.234283 l -409.68109 171.83556 l -413.84341 172.80305 l -419.19135 176.27919 l -425.24945 173.38144 l -432.14423 171.65405 l -433.95297 174.3591 l -436.12927 174.54254 l -438.11197 174.65469 l -442.14871 178.30829 l -435.93207 179.96446 l -435.74582 179.98663 l -429.93686 179.50226 l -424.56522 182.19551 l -419.78833 183.55023 l -416.15836 190.51595 l -h -450.7334 222.36815 m -447.87515 222.83099 l -444.40955 223.26831 l -440.55585 223.82414 l -440.46204 223.03134 l -433.23932 223.9388 l -425.09662 224.68472 l -426.44531 223.1268 l -428.98645 217.7018 l -428.57806 210.88728 l -425.40329 204.71837 l -425.34686 200.28247 l -426.73798 194.99263 l -428.18344 191.38213 l -430.84741 188.61134 l -431.88779 191.95546 l -432.63922 186.72664 l -434.11652 185.49387 l -434.59515 181.45076 l -441.01566 182.79787 l -446.88132 186.12007 l -448.0697 190.67503 l -448.0401 195.48799 l -444.56564 200.13084 l -445.28751 202.71219 l -446.74231 202.61272 l -450.63782 197.45338 l -453.55536 198.11763 l -455.74628 203.87918 l -456.73654 208.02882 l -455.67737 210.32693 l -453.93832 214.23865 l -453.32333 216.29184 l -452.86429 218.05476 l -450.7334 222.36815 l -h -S -/DeviceRGB {} CS -[0.7176 0.7176 0.8471] SC -/DeviceRGB {} cs -[0.7176 0.7176 0.8471] sc -383.25278 176.01569 m -381.33243 176.70825 l -381.65268 182.49603 l -381.46231 182.41553 l -379.72809 183.62451 l -378.17236 184.7352 l -377.20096 186.61595 l -378.86703 188.49713 l -378.3913 191.15715 l -378.48737 193.97565 l -378.27942 196.27679 l -380.54391 198.13919 l -381.40771 198.19516 l -383.8602 199.59929 l -384.65671 200.27274 l -385.28189 201.39487 l -387.18805 203.07803 l -389.76563 204.45871 l -390.09918 205.32703 l -390.22275 207.79948 l -390.47876 209.02641 l -380.66223 209.27477 l -369.7807 209.5876 l -359.57721 209.90634 l -351.41064 209.91429 l -351.55292 200.19424 l -350.74835 190.22595 l -349.43115 189.42442 l -348.78409 187.83446 l -349.17242 186.42978 l -350.77728 185.2975 l -350.8797 183.80324 l -350.89078 181.86972 l -350.52716 180.28635 l -349.88705 178.61382 l -349.53171 176.50514 l -349.54944 174.22537 l -349.27747 173.60966 l -349.02631 170.62935 l -348.94672 169.2282 l -348.86594 168.00264 l -348.51974 165.901001 l -347.72128 163.796127 l -346.9259 161.86647 l -346.8573 160.033585 l -346.79129 158.027771 l -346.98706 156.723389 l -347.09131 155.50563 l -346.48166 154.018814 l -346.31494 153.059937 l -353.64969 153.114014 l -360.62677 153.089096 l -360.60278 150.395294 l -360.59195 149.17981 l -361.74689 149.08168 l -362.90256 149.068314 l -363.28073 150.800262 l -364.13867 154.701218 l -366.32114 156.407654 l -369.20551 156.699188 l -371.19064 156.914078 l -378.35635 158.352951 l -382.95316 160.267212 l -385.1713 161.217117 l -387.31882 160.590927 l -390.80408 159.6241 l -399.46906 161.718643 l -392.59058 165.559326 l -387.77805 169.93166 l -383.19016 174.52611 l -383.25278 176.01569 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -383.25278 176.01569 m -381.33243 176.70825 l -381.65268 182.49603 l -381.46231 182.41553 l -379.72809 183.62451 l -378.17236 184.7352 l -377.20096 186.61595 l -378.86703 188.49713 l -378.3913 191.15715 l -378.48737 193.97565 l -378.27942 196.27679 l -380.54391 198.13919 l -381.40771 198.19516 l -383.8602 199.59929 l -384.65671 200.27274 l -385.28189 201.39487 l -387.18805 203.07803 l -389.76563 204.45871 l -390.09918 205.32703 l -390.22275 207.79948 l -390.47876 209.02641 l -380.66223 209.27477 l -369.7807 209.5876 l -359.57721 209.90634 l -351.41064 209.91429 l -351.55292 200.19424 l -350.74835 190.22595 l -349.43115 189.42442 l -348.78409 187.83446 l -349.17242 186.42978 l -350.77728 185.2975 l -350.8797 183.80324 l -350.89078 181.86972 l -350.52716 180.28635 l -349.88705 178.61382 l -349.53171 176.50514 l -349.54944 174.22537 l -349.27747 173.60966 l -349.02631 170.62935 l -348.94672 169.2282 l -348.86594 168.00264 l -348.51974 165.901001 l -347.72128 163.796127 l -346.9259 161.86647 l -346.8573 160.033585 l -346.79129 158.027771 l -346.98706 156.723389 l -347.09131 155.50563 l -346.48166 154.018814 l -346.31494 153.059937 l -353.64969 153.114014 l -360.62677 153.089096 l -360.60278 150.395294 l -360.59195 149.17981 l -361.74689 149.08168 l -362.90256 149.068314 l -363.28073 150.800262 l -364.13867 154.701218 l -366.32114 156.407654 l -369.20551 156.699188 l -371.19064 156.914078 l -378.35635 158.352951 l -382.95316 160.267212 l -385.1713 161.217117 l -387.31882 160.590927 l -390.80408 159.6241 l -399.46906 161.718643 l -392.59058 165.559326 l -387.77805 169.93166 l -383.19016 174.52611 l -383.25278 176.01569 l -h -S -/DeviceRGB {} CS -[0.8863 0.8863 0.9373] SC -/DeviceRGB {} cs -[0.8863 0.8863 0.9373] sc -396.53836 318.41452 m -396.88181 316.3562 l -395.73782 313.66306 l -395.83533 311.17236 l -397.53146 307.44324 l -398.30121 305.26971 l -399.76559 303.7673 l -400.61072 303.09738 l -401.65445 300.19199 l -401.56631 298.6853 l -403.05447 297.88528 l -403.11008 296.99234 l -411.40137 296.44702 l -420.5802 296.00955 l -421.40384 297.99036 l -420.96872 311.55771 l -420.8461 328.27087 l -422.33984 344.10236 l -415.56924 345.3237 l -412.08765 347.15741 l -411.95978 346.98932 l -411.66284 346.03714 l -411.31348 344.29254 l -410.07666 343.13651 l -409.41953 341.94122 l -409.88055 340.142 l -410.00052 338.45279 l -401.6123 338.87396 l -393.9024 339.00305 l -393.32108 336.37689 l -394.41187 335.1759 l -395.09283 332.66541 l -395.78204 330.41837 l -397.40585 328.74237 l -397.64563 326.78085 l -398.83435 325.65491 l -397.60742 323.85794 l -397.88107 322.60242 l -396.53418 320.54358 l -397.2428 318.99933 l -396.53836 318.41452 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -396.53836 318.41452 m -396.88181 316.3562 l -395.73782 313.66306 l -395.83533 311.17236 l -397.53146 307.44324 l -398.30121 305.26971 l -399.76559 303.7673 l -400.61072 303.09738 l -401.65445 300.19199 l -401.56631 298.6853 l -403.05447 297.88528 l -403.11008 296.99234 l -411.40137 296.44702 l -420.5802 296.00955 l -421.40384 297.99036 l -420.96872 311.55771 l -420.8461 328.27087 l -422.33984 344.10236 l -415.56924 345.3237 l -412.08765 347.15741 l -411.95978 346.98932 l -411.66284 346.03714 l -411.31348 344.29254 l -410.07666 343.13651 l -409.41953 341.94122 l -409.88055 340.142 l -410.00052 338.45279 l -401.6123 338.87396 l -393.9024 339.00305 l -393.32108 336.37689 l -394.41187 335.1759 l -395.09283 332.66541 l -395.78204 330.41837 l -397.40585 328.74237 l -397.64563 326.78085 l -398.83435 325.65491 l -397.60742 323.85794 l -397.88107 322.60242 l -396.53418 320.54358 l -397.2428 318.99933 l -396.53836 318.41452 l -h -S -/DeviceRGB {} CS -[0.8314 0.8314 0.9098] SC -/DeviceRGB {} cs -[0.8314 0.8314 0.9098] sc -407.32214 286.22113 m -401.93802 286.56192 l -402.41745 285.5538 l -403.20688 284.34814 l -404.10095 283.13489 l -403.38043 281.93323 l -393.92374 281.83987 l -385.24966 282.22528 l -376.14084 282.43753 l -366.0668 282.55826 l -366.10428 277.7572 l -365.94171 266.55646 l -365.88257 255.35469 l -363.80212 254.4045 l -362.74564 252.19421 l -362.22095 251.22189 l -363.22769 249.25609 l -363.00595 247.74783 l -361.98199 247.75836 l -360.12866 246.35217 l -359.09381 244.13776 l -357.86551 242.81136 l -356.5394 241.21686 l -356.43594 240.32896 l -363.43106 240.28053 l -370.42542 240.16609 l -379.3407 239.83559 l -387.83737 239.23859 l -389.43448 240.85484 l -390.49164 241.69397 l -390.00378 244.2963 l -390.87125 247.45712 l -392.20566 249.52699 l -393.83728 251.22372 l -395.76608 252.5453 l -396.51196 252.94946 l -397.24023 254.8674 l -397.44354 256.63663 l -398.40155 257.02728 l -399.91412 256.22635 l -401.46753 257.8244 l -401.17145 259.802 l -400.53363 261.35468 l -400.12286 263.24951 l -401.36966 264.77783 l -403.02972 266.10037 l -403.97955 266.12915 l -406.22586 268.20947 l -407.09152 268.50757 l -407.78818 270.95514 l -407.68622 272.56613 l -408.81735 275.07236 l -409.75366 274.73923 l -411.24866 276.23621 l -411.11307 277.31558 l -411.33521 278.90369 l -410.11804 279.88208 l -408.38144 281.16138 l -408.23407 282.1514 l -407.80038 283.69516 l -407.32214 286.22113 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -407.32214 286.22113 m -401.93802 286.56192 l -402.41745 285.5538 l -403.20688 284.34814 l -404.10095 283.13489 l -403.38043 281.93323 l -393.92374 281.83987 l -385.24966 282.22528 l -376.14084 282.43753 l -366.0668 282.55826 l -366.10428 277.7572 l -365.94171 266.55646 l -365.88257 255.35469 l -363.80212 254.4045 l -362.74564 252.19421 l -362.22095 251.22189 l -363.22769 249.25609 l -363.00595 247.74783 l -361.98199 247.75836 l -360.12866 246.35217 l -359.09381 244.13776 l -357.86551 242.81136 l -356.5394 241.21686 l -356.43594 240.32896 l -363.43106 240.28053 l -370.42542 240.16609 l -379.3407 239.83559 l -387.83737 239.23859 l -389.43448 240.85484 l -390.49164 241.69397 l -390.00378 244.2963 l -390.87125 247.45712 l -392.20566 249.52699 l -393.83728 251.22372 l -395.76608 252.5453 l -396.51196 252.94946 l -397.24023 254.8674 l -397.44354 256.63663 l -398.40155 257.02728 l -399.91412 256.22635 l -401.46753 257.8244 l -401.17145 259.802 l -400.53363 261.35468 l -400.12286 263.24951 l -401.36966 264.77783 l -403.02972 266.10037 l -403.97955 266.12915 l -406.22586 268.20947 l -407.09152 268.50757 l -407.78818 270.95514 l -407.68622 272.56613 l -408.81735 275.07236 l -409.75366 274.73923 l -411.24866 276.23621 l -411.11307 277.31558 l -411.33521 278.90369 l -410.11804 279.88208 l -408.38144 281.16138 l -408.23407 282.1514 l -407.80038 283.69516 l -407.32214 286.22113 l -h -S -/DeviceRGB {} CS -[0.902 0.898 0.9451] SC -/DeviceRGB {} cs -[0.902 0.898 0.9451] sc -299.15201 150.742661 m -297.7384 169.45529 l -297.04736 181.99158 l -295.86716 191.43413 l -283.67966 190.11104 l -270.6398 188.73288 l -259.34497 187.17119 l -245.14189 185.13985 l -244.32036 190.27859 l -244.1561 190.69925 l -243.40321 189.95256 l -242.96796 188.45198 l -242.17642 187.96552 l -240.79526 189.88472 l -239.14566 189.87889 l -235.09636 188.56154 l -234.72627 189.57227 l -232.44315 188.72302 l -230.85782 189.9646 l -230.02357 187.0336 l -229.44638 185.40404 l -227.99292 184.86783 l -227.74646 184.1046 l -227.77837 181.33073 l -226.71672 179.78728 l -226.4855 176.42764 l -225.9157 174.88593 l -225.13371 174.4675 l -224.12776 175.7077 l -222.50369 176.64778 l -221.41103 175.3567 l -221.82982 172.74866 l -222.77765 172.30769 l -222.75198 169.52524 l -223.90079 167.065308 l -225.17609 164.899719 l -223.00833 164.384491 l -221.57355 162.577667 l -220.20839 159.081863 l -219.35295 157.297333 l -218.01926 156.037781 l -217.01408 154.128754 l -217.39218 152.331635 l -216.18895 149.218689 l -217.89958 138.623428 l -238.43387 142.677338 l -258.46799 145.980057 l -278.95041 148.700775 l -299.15201 150.742661 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -299.15201 150.742661 m -297.7384 169.45529 l -297.04736 181.99158 l -295.86716 191.43413 l -283.67966 190.11104 l -270.6398 188.73288 l -259.34497 187.17119 l -245.14189 185.13985 l -244.32036 190.27859 l -244.1561 190.69925 l -243.40321 189.95256 l -242.96796 188.45198 l -242.17642 187.96552 l -240.79526 189.88472 l -239.14566 189.87889 l -235.09636 188.56154 l -234.72627 189.57227 l -232.44315 188.72302 l -230.85782 189.9646 l -230.02357 187.0336 l -229.44638 185.40404 l -227.99292 184.86783 l -227.74646 184.1046 l -227.77837 181.33073 l -226.71672 179.78728 l -226.4855 176.42764 l -225.9157 174.88593 l -225.13371 174.4675 l -224.12776 175.7077 l -222.50369 176.64778 l -221.41103 175.3567 l -221.82982 172.74866 l -222.77765 172.30769 l -222.75198 169.52524 l -223.90079 167.065308 l -225.17609 164.899719 l -223.00833 164.384491 l -221.57355 162.577667 l -220.20839 159.081863 l -219.35295 157.297333 l -218.01926 156.037781 l -217.01408 154.128754 l -217.39218 152.331635 l -216.18895 149.218689 l -217.89958 138.623428 l -238.43387 142.677338 l -258.46799 145.980057 l -278.95041 148.700775 l -299.15201 150.742661 l -h -S -/DeviceRGB {} CS -[0.7176 0.7216 0.851] SC -/DeviceRGB {} cs -[0.7176 0.7216 0.851] sc -307.31934 244.86081 m -307.33627 244.5948 l -307.98535 234.40201 l -292.50906 233.25269 l -294.26346 212.57941 l -308.91296 213.67136 l -320.15765 214.30482 l -335.2287 214.87595 l -337.15408 216.25458 l -339.9823 217.11581 l -340.58032 216.68501 l -342.34702 216.71785 l -345.09653 216.67175 l -347.04514 218.02405 l -349.10306 218.92915 l -349.39178 219.81735 l -350.07892 220.26521 l -351.36035 220.44969 l -351.6517 221.5144 l -352.13953 223.20039 l -352.13626 224.08687 l -353.52106 226.04128 l -354.01639 227.72702 l -354.01379 230.12212 l -354.61362 230.47742 l -355.11432 231.71959 l -355.92053 234.73631 l -356.12509 236.60019 l -355.82507 238.46521 l -356.43594 240.32896 l -356.5394 241.21686 l -357.86551 242.81136 l -359.09381 244.13776 l -360.12866 246.35217 l -349.29474 246.35086 l -331.20786 245.9985 l -320.99472 245.60588 l -307.31934 244.86081 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -307.31934 244.86081 m -307.33627 244.5948 l -307.98535 234.40201 l -292.50906 233.25269 l -294.26346 212.57941 l -308.91296 213.67136 l -320.15765 214.30482 l -335.2287 214.87595 l -337.15408 216.25458 l -339.9823 217.11581 l -340.58032 216.68501 l -342.34702 216.71785 l -345.09653 216.67175 l -347.04514 218.02405 l -349.10306 218.92915 l -349.39178 219.81735 l -350.07892 220.26521 l -351.36035 220.44969 l -351.6517 221.5144 l -352.13953 223.20039 l -352.13626 224.08687 l -353.52106 226.04128 l -354.01639 227.72702 l -354.01379 230.12212 l -354.61362 230.47742 l -355.11432 231.71959 l -355.92053 234.73631 l -356.12509 236.60019 l -355.82507 238.46521 l -356.43594 240.32896 l -356.5394 241.21686 l -357.86551 242.81136 l -359.09381 244.13776 l -360.12866 246.35217 l -349.29474 246.35086 l -331.20786 245.9985 l -320.99472 245.60588 l -307.31934 244.86081 l -h -S -/DeviceRGB {} CS -[0.9451 0.9373 0.9686] SC -/DeviceRGB {} cs -[0.9451 0.9373 0.9686] sc -195.36769 207.79518 m -217.81784 212.56572 l -207.96632 263.86859 l -206.47971 272.18127 l -205.98959 272.44904 l -205.15739 273.91757 l -204.18263 273.27603 l -202.73184 272.26782 l -201.04021 271.93314 l -200.2681 273.04773 l -200.62604 274.5687 l -200.17554 276.83429 l -200.00768 278.79346 l -200.03749 280.88202 l -199.08751 282.86646 l -188.11101 266.97424 l -176.82497 250.28366 l -165.494751 232.91853 l -173.32643 202.56464 l -195.34822 207.8817 l -195.36769 207.79518 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -195.36769 207.79518 m -217.81784 212.56572 l -207.96632 263.86859 l -206.47971 272.18127 l -205.98959 272.44904 l -205.15739 273.91757 l -204.18263 273.27603 l -202.73184 272.26782 l -201.04021 271.93314 l -200.2681 273.04773 l -200.62604 274.5687 l -200.17554 276.83429 l -200.00768 278.79346 l -200.03749 280.88202 l -199.08751 282.86646 l -188.11101 266.97424 l -176.82497 250.28366 l -165.494751 232.91853 l -173.32643 202.56464 l -195.34822 207.8817 l -195.36769 207.79518 l -h -S -/DeviceRGB {} CS -[0.949 0.9412 0.9686] SC -/DeviceRGB {} cs -[0.949 0.9412 0.9686] sc -542.67419 191.52228 m -541.75244 191.49658 l -540.41992 192.58846 l -539.93475 193.81813 l -531.06152 196.03119 l -530.2298 195.14505 l -530.45349 193.62729 l -529.87518 190.94304 l -530.00684 190.27068 l -529.58649 187.82172 l -529.93134 185.63519 l -530.27539 184.63477 l -530.5025 182.0217 l -530.27057 180.34819 l -530.28528 179.24995 l -531.4762 178.48535 l -532.83417 176.85286 l -532.77533 175.49945 l -531.83966 174.19443 l -531.95129 171.24722 l -532.03247 168.58237 l -534.11499 167.571487 l -540.08948 185.71164 l -540.06091 186.72723 l -541.79462 187.90831 l -542.54327 189.17238 l -543.27484 188.88113 l -542.67419 191.52228 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -542.67419 191.52228 m -541.75244 191.49658 l -540.41992 192.58846 l -539.93475 193.81813 l -531.06152 196.03119 l -530.2298 195.14505 l -530.45349 193.62729 l -529.87518 190.94304 l -530.00684 190.27068 l -529.58649 187.82172 l -529.93134 185.63519 l -530.27539 184.63477 l -530.5025 182.0217 l -530.27057 180.34819 l -530.28528 179.24995 l -531.4762 178.48535 l -532.83417 176.85286 l -532.77533 175.49945 l -531.83966 174.19443 l -531.95129 171.24722 l -532.03247 168.58237 l -534.11499 167.571487 l -540.08948 185.71164 l -540.06091 186.72723 l -541.79462 187.90831 l -542.54327 189.17238 l -543.27484 188.88113 l -542.67419 191.52228 l -h -S -/DeviceRGB {} CS -[0.9333 0.9294 0.9608] SC -/DeviceRGB {} cs -[0.9333 0.9294 0.9608] sc -515.68823 234.30299 m -514.95038 232.37204 l -515.92438 231.06677 l -517.3136 229.75826 l -517.6778 229.0399 l -519.16132 227.24998 l -519.90118 225.89825 l -516.93268 223.83582 l -516.5816 222.73122 l -515.63293 222.66975 l -515.36554 221.00075 l -515.96326 219.50281 l -515.27899 218.29114 l -516.2644 217.16068 l -517.01099 214.53531 l -517.89063 213.88016 l -524.6142 216.6002 l -524.80975 218.74364 l -523.11108 222.15218 l -525.48688 222.05127 l -525.52374 229.79984 l -524.78583 231.61411 l -521.68256 238.88928 l -520.59149 236.40154 l -520.16864 236.40541 l -518.76093 236.2645 l -517.28259 235.31755 l -515.68823 234.30299 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -515.68823 234.30299 m -514.95038 232.37204 l -515.92438 231.06677 l -517.3136 229.75826 l -517.6778 229.0399 l -519.16132 227.24998 l -519.90118 225.89825 l -516.93268 223.83582 l -516.5816 222.73122 l -515.63293 222.66975 l -515.36554 221.00075 l -515.96326 219.50281 l -515.27899 218.29114 l -516.2644 217.16068 l -517.01099 214.53531 l -517.89063 213.88016 l -524.6142 216.6002 l -524.80975 218.74364 l -523.11108 222.15218 l -525.48688 222.05127 l -525.52374 229.79984 l -524.78583 231.61411 l -521.68256 238.88928 l -520.59149 236.40154 l -520.16864 236.40541 l -518.76093 236.2645 l -517.28259 235.31755 l -515.68823 234.30299 l -h -S -/DeviceRGB {} CS -[0.9294 0.9216 0.9569] SC -/DeviceRGB {} cs -[0.9294 0.9216 0.9569] sc -240.25102 328.95078 m -248.31726 270.52344 l -260.99243 272.16742 l -273.79883 273.6142 l -287.68848 274.94138 l -297.45621 275.72455 l -297.07651 280.86609 l -295.05554 308.23151 l -293.61365 327.75623 l -285.56946 327.12286 l -269.95367 325.66849 l -262.04382 324.81812 l -262.05814 325.7099 l -262.89041 327.49359 l -247.72388 325.66974 l -247.17868 329.87772 l -240.25102 328.95078 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -240.25102 328.95078 m -248.31726 270.52344 l -260.99243 272.16742 l -273.79883 273.6142 l -287.68848 274.94138 l -297.45621 275.72455 l -297.07651 280.86609 l -295.05554 308.23151 l -293.61365 327.75623 l -285.56946 327.12286 l -269.95367 325.66849 l -262.04382 324.81812 l -262.05814 325.7099 l -262.89041 327.49359 l -247.72388 325.66974 l -247.17868 329.87772 l -240.25102 328.95078 l -h -S -/DeviceRGB {} CS -[0.9059 0.902 0.949] SC -/DeviceRGB {} cs -[0.9059 0.902 0.949] sc -525.06781 204.72397 m -526.45288 212.60242 l -527.24664 213.32401 l -525.91034 214.64931 l -526.4162 215.89743 l -526.57629 216.13295 l -526.14777 216.50931 l -536.73169 211.88283 l -539.46204 213.19769 l -532.56268 217.23354 l -529.62756 218.86771 l -524.82019 220.10979 l -524.80975 218.74364 l -524.6142 216.6002 l -517.89063 213.88016 l -516.46277 213.47665 l -515.0368 213.0704 l -514.21924 211.70798 l -514.16205 210.53905 l -513.07404 209.78241 l -511.05872 208.50308 l -500.95236 210.65419 l -490.03558 212.80974 l -478.30386 214.93336 l -477.8215 212.13777 l -483.14337 204.89644 l -482.87268 203.95566 l -481.63104 200.9422 l -484.87509 199.17821 l -490.77893 198.41588 l -496.97601 198.08519 l -501.70688 193.57996 l -500.4874 189.6813 l -499.44135 188.45679 l -505.3183 179.786 l -508.05432 177.1864 l -518.88525 174.64693 l -519.2713 176.64024 l -519.32574 178.07942 l -520.12579 180.97324 l -520.96771 182.40446 l -520.7395 184.73242 l -522.02216 187.14973 l -521.92645 188.81075 l -522.10413 189.13167 l -523.25739 188.94203 l -524.91235 197.37546 l -525.06781 204.72397 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -525.06781 204.72397 m -526.45288 212.60242 l -527.24664 213.32401 l -525.91034 214.64931 l -526.4162 215.89743 l -526.57629 216.13295 l -526.14777 216.50931 l -536.73169 211.88283 l -539.46204 213.19769 l -532.56268 217.23354 l -529.62756 218.86771 l -524.82019 220.10979 l -524.80975 218.74364 l -524.6142 216.6002 l -517.89063 213.88016 l -516.46277 213.47665 l -515.0368 213.0704 l -514.21924 211.70798 l -514.16205 210.53905 l -513.07404 209.78241 l -511.05872 208.50308 l -500.95236 210.65419 l -490.03558 212.80974 l -478.30386 214.93336 l -477.8215 212.13777 l -483.14337 204.89644 l -482.87268 203.95566 l -481.63104 200.9422 l -484.87509 199.17821 l -490.77893 198.41588 l -496.97601 198.08519 l -501.70688 193.57996 l -500.4874 189.6813 l -499.44135 188.45679 l -505.3183 179.786 l -508.05432 177.1864 l -518.88525 174.64693 l -519.2713 176.64024 l -519.32574 178.07942 l -520.12579 180.97324 l -520.96771 182.40446 l -520.7395 184.73242 l -522.02216 187.14973 l -521.92645 188.81075 l -522.10413 189.13167 l -523.25739 188.94203 l -524.91235 197.37546 l -525.06781 204.72397 l -h -S -/DeviceRGB {} CS -[0.8353 0.8392 0.9137] SC -/DeviceRGB {} cs -[0.8353 0.8392 0.9137] sc -463.21643 291.51471 m -452.79172 292.78192 l -452.73618 290.55185 l -454.39026 289.71878 l -454.8938 288.4913 l -455.81525 287.12021 l -457.50507 286.63297 l -459.3851 285.93741 l -461.1908 284.70917 l -461.82281 283.72665 l -463.32266 282.71335 l -463.21295 281.92126 l -465.04822 280.22913 l -465.82663 281.10608 l -468.5256 278.65274 l -470.0571 278.69724 l -471.07364 276.74921 l -472.60223 276.06964 l -472.26965 274.59192 l -472.28174 273.24164 l -469.13019 273.89307 l -472.28174 273.24164 l -486.10178 271.46832 l -502.25162 268.6387 l -510.85526 266.8493 l -518.49445 265.1658 l -519.43732 264.96368 l -520.27563 267.32883 l -522.80878 274.96298 l -520.77802 280.03159 l -519.18994 283.63373 l -511.30774 288.41193 l -506.94705 295.49814 l -502.9353 296.97589 l -491.8407 288.87082 l -482.52747 290.34064 l -482.34351 289.20117 l -480.76636 287.65576 l -480.1088 288.38995 l -479.86169 287.53003 l -475.91061 287.69745 l -468.23428 288.74857 l -464.04703 291.13171 l -463.21643 291.51471 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -463.21643 291.51471 m -452.79172 292.78192 l -452.73618 290.55185 l -454.39026 289.71878 l -454.8938 288.4913 l -455.81525 287.12021 l -457.50507 286.63297 l -459.3851 285.93741 l -461.1908 284.70917 l -461.82281 283.72665 l -463.32266 282.71335 l -463.21295 281.92126 l -465.04822 280.22913 l -465.82663 281.10608 l -468.5256 278.65274 l -470.0571 278.69724 l -471.07364 276.74921 l -472.60223 276.06964 l -472.26965 274.59192 l -472.28174 273.24164 l -469.13019 273.89307 l -472.28174 273.24164 l -486.10178 271.46832 l -502.25162 268.6387 l -510.85526 266.8493 l -518.49445 265.1658 l -519.43732 264.96368 l -520.27563 267.32883 l -522.80878 274.96298 l -520.77802 280.03159 l -519.18994 283.63373 l -511.30774 288.41193 l -506.94705 295.49814 l -502.9353 296.97589 l -491.8407 288.87082 l -482.52747 290.34064 l -482.34351 289.20117 l -480.76636 287.65576 l -480.1088 288.38995 l -479.86169 287.53003 l -475.91061 287.69745 l -468.23428 288.74857 l -464.04703 291.13171 l -463.21643 291.51471 l -h -S -/DeviceRGB {} CS -[0.8392 0.8392 0.9137] SC -/DeviceRGB {} cs -[0.8392 0.8392 0.9137] sc -346.31494 153.059937 m -346.48166 154.018814 l -347.09131 155.50563 l -346.98706 156.723389 l -346.79129 158.027771 l -346.8573 160.033585 l -346.9259 161.86647 l -347.72128 163.796127 l -348.51974 165.901001 l -348.86594 168.00264 l -348.94672 169.2282 l -349.02631 170.62935 l -349.27747 173.60966 l -349.54944 174.22537 l -349.53171 176.50514 l -349.88705 178.61382 l -350.52716 180.28635 l -350.89078 181.86972 l -350.8797 183.80324 l -337.1951 184.11569 l -325.48679 183.71451 l -310.7002 182.92107 l -297.04736 181.99158 l -297.7384 169.45529 l -299.15201 150.742661 l -299.50851 150.77301 l -322.80191 152.331528 l -346.31494 153.059937 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -346.31494 153.059937 m -346.48166 154.018814 l -347.09131 155.50563 l -346.98706 156.723389 l -346.79129 158.027771 l -346.8573 160.033585 l -346.9259 161.86647 l -347.72128 163.796127 l -348.51974 165.901001 l -348.86594 168.00264 l -348.94672 169.2282 l -349.02631 170.62935 l -349.27747 173.60966 l -349.54944 174.22537 l -349.53171 176.50514 l -349.88705 178.61382 l -350.52716 180.28635 l -350.89078 181.86972 l -350.8797 183.80324 l -337.1951 184.11569 l -325.48679 183.71451 l -310.7002 182.92107 l -297.04736 181.99158 l -297.7384 169.45529 l -299.15201 150.742661 l -299.50851 150.77301 l -322.80191 152.331528 l -346.31494 153.059937 l -h -S -/DeviceRGB {} CS -[0.8314 0.8314 0.9098] SC -/DeviceRGB {} cs -[0.8314 0.8314 0.9098] sc -443.61566 250.56067 m -442.76019 243.32329 l -441.67191 233.2549 l -440.55585 223.82414 l -444.40955 223.26831 l -447.87515 222.83099 l -450.7334 222.36815 l -455.78574 223.91937 l -459.62775 223.91158 l -464.96222 221.68391 l -468.94846 218.1011 l -472.66458 216.15318 l -474.92468 229.90137 l -473.91068 230.60721 l -474.42551 231.87306 l -474.51028 234.2892 l -474.14548 237.13853 l -473.69009 239.46199 l -473.75778 240.53114 l -472.00107 243.24011 l -471.1673 243.91071 l -470.18927 244.33269 l -469.14291 244.31413 l -467.67538 246.33571 l -467.64685 248.2278 l -467.58734 249.2256 l -466.93478 249.77284 l -466.6615 248.64522 l -465.5972 248.53372 l -464.80417 250.9865 l -465.03564 253.28864 l -464.10446 254.86145 l -462.17758 255.40704 l -460.59354 254.64279 l -459.76511 253.23247 l -458.24185 253.62241 l -456.67358 254.46371 l -455.14499 254.04054 l -453.32056 254.54979 l -451.97833 253.91693 l -450.22583 253.33405 l -447.77551 251.31123 l -446.3089 250.41652 l -443.61566 250.56067 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -443.61566 250.56067 m -442.76019 243.32329 l -441.67191 233.2549 l -440.55585 223.82414 l -444.40955 223.26831 l -447.87515 222.83099 l -450.7334 222.36815 l -455.78574 223.91937 l -459.62775 223.91158 l -464.96222 221.68391 l -468.94846 218.1011 l -472.66458 216.15318 l -474.92468 229.90137 l -473.91068 230.60721 l -474.42551 231.87306 l -474.51028 234.2892 l -474.14548 237.13853 l -473.69009 239.46199 l -473.75778 240.53114 l -472.00107 243.24011 l -471.1673 243.91071 l -470.18927 244.33269 l -469.14291 244.31413 l -467.67538 246.33571 l -467.64685 248.2278 l -467.58734 249.2256 l -466.93478 249.77284 l -466.6615 248.64522 l -465.5972 248.53372 l -464.80417 250.9865 l -465.03564 253.28864 l -464.10446 254.86145 l -462.17758 255.40704 l -460.59354 254.64279 l -459.76511 253.23247 l -458.24185 253.62241 l -456.67358 254.46371 l -455.14499 254.04054 l -453.32056 254.54979 l -451.97833 253.91693 l -450.22583 253.33405 l -447.77551 251.31123 l -446.3089 250.41652 l -443.61566 250.56067 l -h -S -/DeviceRGB {} CS -[0.902 0.898 0.9451] SC -/DeviceRGB {} cs -[0.902 0.898 0.9451] sc -297.45621 275.72455 m -305.31952 276.26526 l -313.08154 276.72064 l -321.27338 277.11697 l -329.36246 277.42349 l -344.16348 277.76654 l -358.86182 277.82864 l -366.10428 277.7572 l -366.0668 282.55826 l -367.96384 293.54858 l -367.91144 303.67337 l -367.83771 312.81345 l -364.14133 310.82446 l -361.68973 309.78455 l -359.80908 310.50797 l -356.81213 310.34354 l -355.0368 310.43466 l -353.4819 311.23187 l -352.14749 311.67203 l -350.81644 311.13446 l -348.03461 311.73688 l -346.71851 309.9509 l -345.37018 311.44424 l -343.04718 310.70435 l -340.633 309.06891 l -338.06305 310.08453 l -337.00851 307.57761 l -333.02307 307.65756 l -330.60611 307.05624 l -327.75681 306.25568 l -326.50998 303.99304 l -324.2814 304.62207 l -322.99091 303.7728 l -320.94846 302.53458 l -321.36719 292.59805 l -321.80121 282.29968 l -313.55475 281.90866 l -305.31287 281.43076 l -297.07651 280.86609 l -297.45621 275.72455 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -297.45621 275.72455 m -305.31952 276.26526 l -313.08154 276.72064 l -321.27338 277.11697 l -329.36246 277.42349 l -344.16348 277.76654 l -358.86182 277.82864 l -366.10428 277.7572 l -366.0668 282.55826 l -367.96384 293.54858 l -367.91144 303.67337 l -367.83771 312.81345 l -364.14133 310.82446 l -361.68973 309.78455 l -359.80908 310.50797 l -356.81213 310.34354 l -355.0368 310.43466 l -353.4819 311.23187 l -352.14749 311.67203 l -350.81644 311.13446 l -348.03461 311.73688 l -346.71851 309.9509 l -345.37018 311.44424 l -343.04718 310.70435 l -340.633 309.06891 l -338.06305 310.08453 l -337.00851 307.57761 l -333.02307 307.65756 l -330.60611 307.05624 l -327.75681 306.25568 l -326.50998 303.99304 l -324.2814 304.62207 l -322.99091 303.7728 l -320.94846 302.53458 l -321.36719 292.59805 l -321.80121 282.29968 l -313.55475 281.90866 l -305.31287 281.43076 l -297.07651 280.86609 l -297.45621 275.72455 l -h -S -/DeviceRGB {} CS -[0.898 0.8941 0.9451] SC -/DeviceRGB {} cs -[0.898 0.8941 0.9451] sc -205.30455 167.472382 m -206.53275 169.72754 l -207.53696 170.84949 l -207.56607 172.47751 l -206.63808 173.62605 l -205.05251 175.98251 l -203.30569 179.02599 l -201.35312 180.75812 l -199.82036 182.76428 l -199.44943 184.40034 l -200.60703 185.38594 l -200.88083 186.80531 l -199.65775 189.61038 l -195.36769 207.79518 l -195.34822 207.8817 l -173.32643 202.56464 l -142.367035 193.74857 l -142.351959 185.39893 l -148.036407 176.86961 l -151.683838 168.19249 l -155.236511 159.41423 l -156.812485 151.621857 l -158.304901 152.164642 l -160.449661 152.806229 l -161.876038 154.236191 l -163.676178 155.404419 l -164.395966 157.62709 l -164.087891 159.369141 l -164.240158 160.878357 l -165.749222 161.768753 l -167.49585 162.173172 l -170.41042 161.893585 l -172.13622 162.006287 l -174.47015 163.100998 l -175.42262 163.905899 l -177.0598 163.981171 l -178.80898 163.627197 l -181.96997 164.547363 l -184.80293 164.096512 l -186.36208 163.676697 l -188.07375 164.561554 l -190.87599 164.170761 l -205.30455 167.472382 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -205.30455 167.472382 m -206.53275 169.72754 l -207.53696 170.84949 l -207.56607 172.47751 l -206.63808 173.62605 l -205.05251 175.98251 l -203.30569 179.02599 l -201.35312 180.75812 l -199.82036 182.76428 l -199.44943 184.40034 l -200.60703 185.38594 l -200.88083 186.80531 l -199.65775 189.61038 l -195.36769 207.79518 l -195.34822 207.8817 l -173.32643 202.56464 l -142.367035 193.74857 l -142.351959 185.39893 l -148.036407 176.86961 l -151.683838 168.19249 l -155.236511 159.41423 l -156.812485 151.621857 l -158.304901 152.164642 l -160.449661 152.806229 l -161.876038 154.236191 l -163.676178 155.404419 l -164.395966 157.62709 l -164.087891 159.369141 l -164.240158 160.878357 l -165.749222 161.768753 l -167.49585 162.173172 l -170.41042 161.893585 l -172.13622 162.006287 l -174.47015 163.100998 l -175.42262 163.905899 l -177.0598 163.981171 l -178.80898 163.627197 l -181.96997 164.547363 l -184.80293 164.096512 l -186.36208 163.676697 l -188.07375 164.561554 l -190.87599 164.170761 l -205.30455 167.472382 l -h -S -/DeviceRGB {} CS -[0.8941 0.8902 0.9412] SC -/DeviceRGB {} cs -[0.8941 0.8902 0.9412] sc -474.92468 229.90137 m -472.66458 216.15318 l -477.83655 212.22511 l -477.8215 212.13777 l -478.30386 214.93336 l -490.03558 212.80974 l -500.95236 210.65419 l -511.05872 208.50308 l -513.07404 209.78241 l -514.16205 210.53905 l -514.21924 211.70798 l -515.0368 213.0704 l -516.46277 213.47665 l -517.89063 213.88016 l -517.01099 214.53531 l -516.2644 217.16068 l -515.27899 218.29114 l -515.96326 219.50281 l -515.36554 221.00075 l -515.63293 222.66975 l -516.5816 222.73122 l -516.93268 223.83582 l -519.90118 225.89825 l -519.16132 227.24998 l -517.6778 229.0399 l -517.3136 229.75826 l -515.92438 231.06677 l -514.10858 230.91852 l -513.50195 231.50494 l -513.16992 232.39503 l -506.34305 233.83643 l -499.70441 235.17462 l -494.16318 236.24396 l -491.75891 236.78488 l -484.57355 237.99271 l -476.48102 239.36858 l -474.92468 229.90137 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -474.92468 229.90137 m -472.66458 216.15318 l -477.83655 212.22511 l -477.8215 212.13777 l -478.30386 214.93336 l -490.03558 212.80974 l -500.95236 210.65419 l -511.05872 208.50308 l -513.07404 209.78241 l -514.16205 210.53905 l -514.21924 211.70798 l -515.0368 213.0704 l -516.46277 213.47665 l -517.89063 213.88016 l -517.01099 214.53531 l -516.2644 217.16068 l -515.27899 218.29114 l -515.96326 219.50281 l -515.36554 221.00075 l -515.63293 222.66975 l -516.5816 222.73122 l -516.93268 223.83582 l -519.90118 225.89825 l -519.16132 227.24998 l -517.6778 229.0399 l -517.3136 229.75826 l -515.92438 231.06677 l -514.10858 230.91852 l -513.50195 231.50494 l -513.16992 232.39503 l -506.34305 233.83643 l -499.70441 235.17462 l -494.16318 236.24396 l -491.75891 236.78488 l -484.57355 237.99271 l -476.48102 239.36858 l -474.92468 229.90137 l -h -S -/DeviceRGB {} CS -[0.949 0.9412 0.9686] SC -/DeviceRGB {} cs -[0.949 0.9412 0.9686] sc -539.11951 209.0685 m -539.22485 207.48241 l -537.6983 202.01378 l -540.82361 201.00958 l -542.00977 203.53911 l -543.48663 204.43051 l -544.18939 205.89554 l -543.55841 206.24802 l -539.11951 209.0685 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -539.11951 209.0685 m -539.22485 207.48241 l -537.6983 202.01378 l -540.82361 201.00958 l -542.00977 203.53911 l -543.48663 204.43051 l -544.18939 205.89554 l -543.55841 206.24802 l -539.11951 209.0685 l -h -S -/DeviceRGB {} CS -[0.9216 0.9176 0.9569] SC -/DeviceRGB {} cs -[0.9216 0.9176 0.9569] sc -486.48837 319.15158 m -484.94678 318.86017 l -484.0929 318.54742 l -483.78946 316.6243 l -482.59338 314.84094 l -480.85513 313.94666 l -481.06729 313.10727 l -480.33484 312.05557 l -479.41541 309.77716 l -476.33987 308.18307 l -474.97809 305.87729 l -472.74738 304.50397 l -472.00467 303.26822 l -468.685 301.23679 l -467.43787 299.53152 l -465.34454 296.50873 l -463.84225 296.0885 l -461.31702 294.63882 l -462.3602 292.52744 l -463.21643 291.51471 l -464.04703 291.13171 l -468.23428 288.74857 l -475.91061 287.69745 l -479.86169 287.53003 l -480.1088 288.38995 l -480.76636 287.65576 l -482.34351 289.20117 l -482.52747 290.34064 l -491.8407 288.87082 l -502.9353 296.97589 l -499.35324 301.50745 l -498.75366 305.12701 l -490.49442 313.474 l -486.48837 319.15158 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -486.48837 319.15158 m -484.94678 318.86017 l -484.0929 318.54742 l -483.78946 316.6243 l -482.59338 314.84094 l -480.85513 313.94666 l -481.06729 313.10727 l -480.33484 312.05557 l -479.41541 309.77716 l -476.33987 308.18307 l -474.97809 305.87729 l -472.74738 304.50397 l -472.00467 303.26822 l -468.685 301.23679 l -467.43787 299.53152 l -465.34454 296.50873 l -463.84225 296.0885 l -461.31702 294.63882 l -462.3602 292.52744 l -463.21643 291.51471 l -464.04703 291.13171 l -468.23428 288.74857 l -475.91061 287.69745 l -479.86169 287.53003 l -480.1088 288.38995 l -480.76636 287.65576 l -482.34351 289.20117 l -482.52747 290.34064 l -491.8407 288.87082 l -502.9353 296.97589 l -499.35324 301.50745 l -498.75366 305.12701 l -490.49442 313.474 l -486.48837 319.15158 l -h -S -/DeviceRGB {} CS -[0.8392 0.8392 0.9137] SC -/DeviceRGB {} cs -[0.8392 0.8392 0.9137] sc -350.8797 183.80324 m -350.77728 185.2975 l -349.17242 186.42978 l -348.78409 187.83446 l -349.43115 189.42442 l -350.74835 190.22595 l -351.55292 200.19424 l -351.41064 209.91429 l -350.43842 209.90898 l -350.42322 212.3862 l -351.39206 213.80757 l -351.19073 214.9574 l -350.78967 216.63762 l -350.19003 218.31685 l -351.36499 219.47508 l -351.36035 220.44969 l -350.07892 220.26521 l -349.39178 219.81735 l -349.10306 218.92915 l -347.04514 218.02405 l -345.09653 216.67175 l -342.34702 216.71785 l -340.58032 216.68501 l -339.9823 217.11581 l -337.15408 216.25458 l -335.2287 214.87595 l -320.15765 214.30482 l -308.91296 213.67136 l -294.26346 212.57941 l -295.86716 191.43413 l -297.04736 181.99158 l -310.7002 182.92107 l -325.48679 183.71451 l -337.1951 184.11569 l -350.8797 183.80324 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -350.8797 183.80324 m -350.77728 185.2975 l -349.17242 186.42978 l -348.78409 187.83446 l -349.43115 189.42442 l -350.74835 190.22595 l -351.55292 200.19424 l -351.41064 209.91429 l -350.43842 209.90898 l -350.42322 212.3862 l -351.39206 213.80757 l -351.19073 214.9574 l -350.78967 216.63762 l -350.19003 218.31685 l -351.36499 219.47508 l -351.36035 220.44969 l -350.07892 220.26521 l -349.39178 219.81735 l -349.10306 218.92915 l -347.04514 218.02405 l -345.09653 216.67175 l -342.34702 216.71785 l -340.58032 216.68501 l -339.9823 217.11581 l -337.15408 216.25458 l -335.2287 214.87595 l -320.15765 214.30482 l -308.91296 213.67136 l -294.26346 212.57941 l -295.86716 191.43413 l -297.04736 181.99158 l -310.7002 182.92107 l -325.48679 183.71451 l -337.1951 184.11569 l -350.8797 183.80324 l -h -S -/DeviceRGB {} CS -[0.9059 0.902 0.9451] SC -/DeviceRGB {} cs -[0.9059 0.902 0.9451] sc -403.11008 296.99234 m -404.03198 295.95731 l -403.73718 292.95007 l -404.9559 291.53891 l -405.16809 289.74512 l -406.61795 288.67203 l -407.27353 287.1149 l -407.32214 286.22113 l -407.80038 283.69516 l -408.23407 282.1514 l -408.38144 281.16138 l -420.14868 280.35522 l -420.0079 278.67233 l -421.60715 278.5369 l -421.85843 278.9614 l -426.95233 278.23877 l -431.43564 277.89984 l -436.23682 277.50177 l -440.94919 277.26257 l -443.27023 276.82318 l -450.55402 276.40771 l -456.04553 275.44254 l -458.2988 274.51761 l -458.6994 274.28467 l -458.2988 274.51761 l -456.04553 275.44254 l -468.18924 274.12119 l -469.13019 273.89307 l -472.28174 273.24164 l -472.26965 274.59192 l -472.60223 276.06964 l -471.07364 276.74921 l -470.0571 278.69724 l -468.5256 278.65274 l -465.82663 281.10608 l -465.04822 280.22913 l -463.21295 281.92126 l -463.32266 282.71335 l -461.82281 283.72665 l -461.1908 284.70917 l -459.3851 285.93741 l -457.50507 286.63297 l -455.81525 287.12021 l -454.8938 288.4913 l -454.39026 289.71878 l -452.73618 290.55185 l -452.79172 292.78192 l -448.34979 293.4072 l -441.92725 294.04807 l -431.14688 295.06662 l -420.5802 296.00955 l -411.40137 296.44702 l -403.11008 296.99234 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -403.11008 296.99234 m -404.03198 295.95731 l -403.73718 292.95007 l -404.9559 291.53891 l -405.16809 289.74512 l -406.61795 288.67203 l -407.27353 287.1149 l -407.32214 286.22113 l -407.80038 283.69516 l -408.23407 282.1514 l -408.38144 281.16138 l -420.14868 280.35522 l -420.0079 278.67233 l -421.60715 278.5369 l -421.85843 278.9614 l -426.95233 278.23877 l -431.43564 277.89984 l -436.23682 277.50177 l -440.94919 277.26257 l -443.27023 276.82318 l -450.55402 276.40771 l -456.04553 275.44254 l -458.2988 274.51761 l -458.6994 274.28467 l -458.2988 274.51761 l -456.04553 275.44254 l -468.18924 274.12119 l -469.13019 273.89307 l -472.28174 273.24164 l -472.26965 274.59192 l -472.60223 276.06964 l -471.07364 276.74921 l -470.0571 278.69724 l -468.5256 278.65274 l -465.82663 281.10608 l -465.04822 280.22913 l -463.21295 281.92126 l -463.32266 282.71335 l -461.82281 283.72665 l -461.1908 284.70917 l -459.3851 285.93741 l -457.50507 286.63297 l -455.81525 287.12021 l -454.8938 288.4913 l -454.39026 289.71878 l -452.73618 290.55185 l -452.79172 292.78192 l -448.34979 293.4072 l -441.92725 294.04807 l -431.14688 295.06662 l -420.5802 296.00955 l -411.40137 296.44702 l -403.11008 296.99234 l -h -S -/DeviceRGB {} CS -[0.7373 0.7373 0.8627] SC -/DeviceRGB {} cs -[0.7373 0.7373 0.8627] sc -262.89041 327.49359 m -262.05814 325.7099 l -262.04382 324.81812 l -269.95367 325.66849 l -285.56946 327.12286 l -293.61365 327.75623 l -295.05554 308.23151 l -297.07651 280.86609 l -305.31287 281.43076 l -313.55475 281.90866 l -321.80121 282.29968 l -321.36719 292.59805 l -320.94846 302.53458 l -322.99091 303.7728 l -324.2814 304.62207 l -326.50998 303.99304 l -327.75681 306.25568 l -330.60611 307.05624 l -333.02307 307.65756 l -337.00851 307.57761 l -338.06305 310.08453 l -340.633 309.06891 l -343.04718 310.70435 l -345.37018 311.44424 l -346.71851 309.9509 l -348.03461 311.73688 l -350.81644 311.13446 l -352.14749 311.67203 l -353.4819 311.23187 l -355.0368 310.43466 l -356.81213 310.34354 l -359.80908 310.50797 l -361.68973 309.78455 l -364.14133 310.82446 l -367.83771 312.81345 l -368.29465 313.51544 l -369.96219 313.30875 l -371.96857 313.3576 l -371.53284 319.30634 l -372.32703 330.35864 l -373.71951 331.56674 l -374.32605 333.1449 l -375.06833 335.51471 l -376.15866 337.87424 l -376.99905 339.26627 l -376.29129 343.08261 l -375.74252 344.24405 l -374.99219 346.73331 l -375.70517 347.42181 l -375.63882 349.45206 l -374.39185 350.89236 l -373.49258 352.41095 l -374.10202 353.54288 l -366.65469 356.05652 l -358.48199 363.78357 l -349.34714 368.25427 l -344.53635 372.94934 l -344.2952 373.12186 l -342.19629 377.73944 l -342.02539 381.23917 l -341.97345 384.82477 l -342.38864 389.81061 l -343.3364 391.918 l -344.05231 393.32266 l -340.37891 393.53259 l -333.82642 391.13425 l -326.60626 387.79083 l -324.09912 382.89801 l -322.31339 375.56335 l -317.17322 369.47705 l -314.99808 364.89774 l -314.24332 363.27942 l -310.11871 356.03046 l -303.9202 351.53867 l -300.53378 351.41803 l -296.56476 351.24429 l -290.35968 359.0061 l -283.09186 355.34088 l -281.65952 354.15976 l -278.69019 351.77927 l -276.99054 345.96329 l -274.61429 340.24811 l -269.78812 335.15936 l -269.35767 334.84912 l -265.67767 331.44348 l -263.19147 327.88281 l -262.89041 327.49359 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -262.89041 327.49359 m -262.05814 325.7099 l -262.04382 324.81812 l -269.95367 325.66849 l -285.56946 327.12286 l -293.61365 327.75623 l -295.05554 308.23151 l -297.07651 280.86609 l -305.31287 281.43076 l -313.55475 281.90866 l -321.80121 282.29968 l -321.36719 292.59805 l -320.94846 302.53458 l -322.99091 303.7728 l -324.2814 304.62207 l -326.50998 303.99304 l -327.75681 306.25568 l -330.60611 307.05624 l -333.02307 307.65756 l -337.00851 307.57761 l -338.06305 310.08453 l -340.633 309.06891 l -343.04718 310.70435 l -345.37018 311.44424 l -346.71851 309.9509 l -348.03461 311.73688 l -350.81644 311.13446 l -352.14749 311.67203 l -353.4819 311.23187 l -355.0368 310.43466 l -356.81213 310.34354 l -359.80908 310.50797 l -361.68973 309.78455 l -364.14133 310.82446 l -367.83771 312.81345 l -368.29465 313.51544 l -369.96219 313.30875 l -371.96857 313.3576 l -371.53284 319.30634 l -372.32703 330.35864 l -373.71951 331.56674 l -374.32605 333.1449 l -375.06833 335.51471 l -376.15866 337.87424 l -376.99905 339.26627 l -376.29129 343.08261 l -375.74252 344.24405 l -374.99219 346.73331 l -375.70517 347.42181 l -375.63882 349.45206 l -374.39185 350.89236 l -373.49258 352.41095 l -374.10202 353.54288 l -366.65469 356.05652 l -358.48199 363.78357 l -349.34714 368.25427 l -344.53635 372.94934 l -344.2952 373.12186 l -342.19629 377.73944 l -342.02539 381.23917 l -341.97345 384.82477 l -342.38864 389.81061 l -343.3364 391.918 l -344.05231 393.32266 l -340.37891 393.53259 l -333.82642 391.13425 l -326.60626 387.79083 l -324.09912 382.89801 l -322.31339 375.56335 l -317.17322 369.47705 l -314.99808 364.89774 l -314.24332 363.27942 l -310.11871 356.03046 l -303.9202 351.53867 l -300.53378 351.41803 l -296.56476 351.24429 l -290.35968 359.0061 l -283.09186 355.34088 l -281.65952 354.15976 l -278.69019 351.77927 l -276.99054 345.96329 l -274.61429 340.24811 l -269.78812 335.15936 l -269.35767 334.84912 l -265.67767 331.44348 l -263.19147 327.88281 l -262.89041 327.49359 l -h -S -/DeviceRGB {} CS -[0.9373 0.9294 0.9608] SC -/DeviceRGB {} cs -[0.9373 0.9294 0.9608] sc -217.81784 212.56572 m -240.24197 216.41861 l -238.63261 226.49414 l -253.94205 229.04366 l -248.31726 270.52344 l -236.52643 268.71365 l -220.98795 266.07401 l -207.96632 263.86859 l -217.81784 212.56572 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -217.81784 212.56572 m -240.24197 216.41861 l -238.63261 226.49414 l -253.94205 229.04366 l -248.31726 270.52344 l -236.52643 268.71365 l -220.98795 266.07401 l -207.96632 263.86859 l -217.81784 212.56572 l -h -S -/DeviceRGB {} CS -[0.9451 0.9373 0.9647] SC -/DeviceRGB {} cs -[0.9451 0.9373 0.9647] sc -531.06152 196.03119 m -524.91235 197.37546 l -523.25739 188.94203 l -522.10413 189.13167 l -521.92645 188.81075 l -522.02216 187.14973 l -520.7395 184.73242 l -520.96771 182.40446 l -520.12579 180.97324 l -519.32574 178.07942 l -519.2713 176.64024 l -518.88525 174.64693 l -525.78455 172.84256 l -531.95129 171.24722 l -531.83966 174.19443 l -532.77533 175.49945 l -532.83417 176.85286 l -531.4762 178.48535 l -530.28528 179.24995 l -530.27057 180.34819 l -530.5025 182.0217 l -530.27539 184.63477 l -529.93134 185.63519 l -529.58649 187.82172 l -530.00684 190.27068 l -529.87518 190.94304 l -530.45349 193.62729 l -530.2298 195.14505 l -531.06152 196.03119 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -531.06152 196.03119 m -524.91235 197.37546 l -523.25739 188.94203 l -522.10413 189.13167 l -521.92645 188.81075 l -522.02216 187.14973 l -520.7395 184.73242 l -520.96771 182.40446 l -520.12579 180.97324 l -519.32574 178.07942 l -519.2713 176.64024 l -518.88525 174.64693 l -525.78455 172.84256 l -531.95129 171.24722 l -531.83966 174.19443 l -532.77533 175.49945 l -532.83417 176.85286 l -531.4762 178.48535 l -530.28528 179.24995 l -530.27057 180.34819 l -530.5025 182.0217 l -530.27539 184.63477 l -529.93134 185.63519 l -529.58649 187.82172 l -530.00684 190.27068 l -529.87518 190.94304 l -530.45349 193.62729 l -530.2298 195.14505 l -531.06152 196.03119 l -h -S -/DeviceRGB {} CS -[0.9176 0.9098 0.9529] SC -/DeviceRGB {} cs -[0.9176 0.9098 0.9529] sc -458.6994 274.28467 m -459.9118 273.67267 l -460.41513 272.61737 l -460.50888 272.51483 l -460.60263 272.41229 l -462.55783 270.97543 l -463.25369 269.80072 l -463.34036 268.89075 l -465.68887 267.29843 l -467.76746 264.65906 l -468.4874 263.74353 l -469.06339 265.45544 l -469.9158 266.13696 l -470.15207 266.28125 l -471.54474 266.96979 l -473.1806 265.72977 l -473.85992 265.26468 l -474.92682 265.90799 l -477.31683 264.71942 l -477.82629 264.54767 l -477.83212 263.91641 l -477.77563 263.56534 l -478.7735 263.76437 l -479.60001 262.90924 l -479.70447 262.89218 l -480.77795 262.89603 l -481.98959 261.79388 l -482.00607 261.25031 l -481.94754 260.89954 l -481.63858 259.68918 l -482.36908 257.67377 l -483.70123 256.09573 l -483.86081 254.53526 l -484.40332 253.35988 l -484.88611 252.46477 l -485.31451 250.04462 l -486.47958 250.6535 l -487.74945 251.24243 l -488.80289 250.60391 l -489.04178 249.56783 l -489.64233 248.19556 l -489.98068 247.14085 l -490.19254 246.56047 l -490.88547 246.8864 l -491.76965 245.36926 l -492.54276 244.41335 l -493.05698 243.77567 l -493.29749 243.36929 l -493.87921 242.53737 l -493.97745 240.25815 l -493.98032 239.71501 l -498.11389 241.55151 l -498.4523 241.66718 l -498.99246 239.57036 l -499.21201 239.61812 l -500.17484 239.70143 l -501.34283 240.28664 l -501.10925 241.23878 l -501.0593 241.52042 l -502.80527 241.80876 l -504.4552 242.65685 l -505.24149 243.40509 l -505.36478 244.01503 l -505.43893 244.907 l -505.16803 245.14305 l -504.3045 246.13258 l -503.83569 248.58316 l -504.96542 248.90164 l -506.2103 248.19771 l -506.74713 249.26826 l -506.92038 249.59602 l -512.93073 251.71425 l -513.05194 251.77962 l -515.39539 261.37088 l -517.85565 261.6665 l -519.43732 264.96368 l -518.49445 265.1658 l -510.85526 266.8493 l -502.25162 268.6387 l -486.10178 271.46832 l -472.28174 273.24164 l -469.13019 273.89307 l -468.18924 274.12119 l -456.04553 275.44254 l -458.2988 274.51761 l -458.6994 274.28467 l -h -517.62506 250.53056 m -518.3147 249.74384 l -520.12396 249.16531 l -517.46075 258.29639 l -516.64111 258.01709 l -517.62506 250.53056 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -458.6994 274.28467 m -459.9118 273.67267 l -460.41513 272.61737 l -460.50888 272.51483 l -460.60263 272.41229 l -462.55783 270.97543 l -463.25369 269.80072 l -463.34036 268.89075 l -465.68887 267.29843 l -467.76746 264.65906 l -468.4874 263.74353 l -469.06339 265.45544 l -469.9158 266.13696 l -470.15207 266.28125 l -471.54474 266.96979 l -473.1806 265.72977 l -473.85992 265.26468 l -474.92682 265.90799 l -477.31683 264.71942 l -477.82629 264.54767 l -477.83212 263.91641 l -477.77563 263.56534 l -478.7735 263.76437 l -479.60001 262.90924 l -479.70447 262.89218 l -480.77795 262.89603 l -481.98959 261.79388 l -482.00607 261.25031 l -481.94754 260.89954 l -481.63858 259.68918 l -482.36908 257.67377 l -483.70123 256.09573 l -483.86081 254.53526 l -484.40332 253.35988 l -484.88611 252.46477 l -485.31451 250.04462 l -486.47958 250.6535 l -487.74945 251.24243 l -488.80289 250.60391 l -489.04178 249.56783 l -489.64233 248.19556 l -489.98068 247.14085 l -490.19254 246.56047 l -490.88547 246.8864 l -491.76965 245.36926 l -492.54276 244.41335 l -493.05698 243.77567 l -493.29749 243.36929 l -493.87921 242.53737 l -493.97745 240.25815 l -493.98032 239.71501 l -498.11389 241.55151 l -498.4523 241.66718 l -498.99246 239.57036 l -499.21201 239.61812 l -500.17484 239.70143 l -501.34283 240.28664 l -501.10925 241.23878 l -501.0593 241.52042 l -502.80527 241.80876 l -504.4552 242.65685 l -505.24149 243.40509 l -505.36478 244.01503 l -505.43893 244.907 l -505.16803 245.14305 l -504.3045 246.13258 l -503.83569 248.58316 l -504.96542 248.90164 l -506.2103 248.19771 l -506.74713 249.26826 l -506.92038 249.59602 l -512.93073 251.71425 l -513.05194 251.77962 l -515.39539 261.37088 l -517.85565 261.6665 l -519.43732 264.96368 l -518.49445 265.1658 l -510.85526 266.8493 l -502.25162 268.6387 l -486.10178 271.46832 l -472.28174 273.24164 l -469.13019 273.89307 l -468.18924 274.12119 l -456.04553 275.44254 l -458.2988 274.51761 l -458.6994 274.28467 l -h -517.62506 250.53056 m -518.3147 249.74384 l -520.12396 249.16531 l -517.46075 258.29639 l -516.64111 258.01709 l -517.62506 250.53056 l -h -S -/DeviceRGB {} CS -[0.8353 0.8353 0.9098] SC -/DeviceRGB {} cs -[0.8353 0.8353 0.9098] sc -211.25949 137.165604 m -208.47774 149.944458 l -205.50702 164.005676 l -205.79868 165.691528 l -205.30455 167.472382 l -190.87599 164.170761 l -188.07375 164.561554 l -186.36208 163.676697 l -184.80293 164.096512 l -181.96997 164.547363 l -178.80898 163.627197 l -177.0598 163.981171 l -175.42262 163.905899 l -174.47015 163.100998 l -172.13622 162.006287 l -170.41042 161.893585 l -167.49585 162.173172 l -165.749222 161.768753 l -164.240158 160.878357 l -164.087891 159.369141 l -164.395966 157.62709 l -163.676178 155.404419 l -161.876038 154.236191 l -160.449661 152.806229 l -158.304901 152.164642 l -156.812485 151.621857 l -158.014709 145.750107 l -158.495483 136.650208 l -157.893005 131.526855 l -159.351974 129.879532 l -167.96811 136.123047 l -168.86296 146.491333 l -171.28864 144.361435 l -171.42368 143.217087 l -172.56245 135.909653 l -172.54274 127.20163 l -191.43515 132.37912 l -202.54626 135.14241 l -211.25949 137.165604 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -211.25949 137.165604 m -208.47774 149.944458 l -205.50702 164.005676 l -205.79868 165.691528 l -205.30455 167.472382 l -190.87599 164.170761 l -188.07375 164.561554 l -186.36208 163.676697 l -184.80293 164.096512 l -181.96997 164.547363 l -178.80898 163.627197 l -177.0598 163.981171 l -175.42262 163.905899 l -174.47015 163.100998 l -172.13622 162.006287 l -170.41042 161.893585 l -167.49585 162.173172 l -165.749222 161.768753 l -164.240158 160.878357 l -164.087891 159.369141 l -164.395966 157.62709 l -163.676178 155.404419 l -161.876038 154.236191 l -160.449661 152.806229 l -158.304901 152.164642 l -156.812485 151.621857 l -158.014709 145.750107 l -158.495483 136.650208 l -157.893005 131.526855 l -159.351974 129.879532 l -167.96811 136.123047 l -168.86296 146.491333 l -171.28864 144.361435 l -171.42368 143.217087 l -172.56245 135.909653 l -172.54274 127.20163 l -191.43515 132.37912 l -202.54626 135.14241 l -211.25949 137.165604 l -h -S -/DeviceRGB {} CS -[0.9451 0.9373 0.9686] SC -/DeviceRGB {} cs -[0.9451 0.9373 0.9686] sc -468.4874 263.74353 m -466.89261 263.79926 l -465.87662 262.68973 l -464.53763 261.53601 l -463.89334 260.01181 l -462.73141 258.56113 l -462.52222 256.34586 l -462.17758 255.40704 l -464.10446 254.86145 l -465.03564 253.28864 l -464.80417 250.9865 l -465.5972 248.53372 l -466.6615 248.64522 l -466.93478 249.77284 l -467.58734 249.2256 l -467.64685 248.2278 l -467.67538 246.33571 l -469.14291 244.31413 l -470.18927 244.33269 l -471.1673 243.91071 l -472.00107 243.24011 l -473.75778 240.53114 l -473.69009 239.46199 l -474.14548 237.13853 l -474.51028 234.2892 l -474.42551 231.87306 l -473.91068 230.60721 l -474.92468 229.90137 l -476.48102 239.36858 l -484.57355 237.99271 l -485.39432 243.26265 l -486.46045 242.17209 l -487.56216 240.71194 l -489.00418 240.00072 l -489.92703 238.74883 l -492.23325 238.77571 l -492.99655 237.81975 l -494.26224 236.76787 l -496.83411 237.09143 l -498.13095 238.37965 l -498.99246 239.57036 l -498.4523 241.66718 l -498.11389 241.55151 l -493.98032 239.71501 l -493.97745 240.25815 l -493.87921 242.53737 l -493.29749 243.36929 l -493.05698 243.77567 l -492.54276 244.41335 l -491.76965 245.36926 l -490.88547 246.8864 l -490.19254 246.56047 l -489.98068 247.14085 l -489.64233 248.19556 l -489.04178 249.56783 l -488.80289 250.60391 l -487.74945 251.24243 l -486.47958 250.6535 l -485.31451 250.04462 l -484.88611 252.46477 l -484.40332 253.35988 l -483.86081 254.53526 l -483.70123 256.09573 l -482.36908 257.67377 l -481.63858 259.68918 l -481.94754 260.89954 l -482.00607 261.25031 l -481.98959 261.79388 l -480.77795 262.89603 l -479.70447 262.89218 l -479.60001 262.90924 l -478.7735 263.76437 l -477.77563 263.56534 l -477.83212 263.91641 l -477.82629 264.54767 l -477.31683 264.71942 l -474.92682 265.90799 l -473.85992 265.26468 l -473.1806 265.72977 l -471.54474 266.96979 l -470.15207 266.28125 l -469.9158 266.13696 l -469.06339 265.45544 l -468.4874 263.74353 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -468.4874 263.74353 m -466.89261 263.79926 l -465.87662 262.68973 l -464.53763 261.53601 l -463.89334 260.01181 l -462.73141 258.56113 l -462.52222 256.34586 l -462.17758 255.40704 l -464.10446 254.86145 l -465.03564 253.28864 l -464.80417 250.9865 l -465.5972 248.53372 l -466.6615 248.64522 l -466.93478 249.77284 l -467.58734 249.2256 l -467.64685 248.2278 l -467.67538 246.33571 l -469.14291 244.31413 l -470.18927 244.33269 l -471.1673 243.91071 l -472.00107 243.24011 l -473.75778 240.53114 l -473.69009 239.46199 l -474.14548 237.13853 l -474.51028 234.2892 l -474.42551 231.87306 l -473.91068 230.60721 l -474.92468 229.90137 l -476.48102 239.36858 l -484.57355 237.99271 l -485.39432 243.26265 l -486.46045 242.17209 l -487.56216 240.71194 l -489.00418 240.00072 l -489.92703 238.74883 l -492.23325 238.77571 l -492.99655 237.81975 l -494.26224 236.76787 l -496.83411 237.09143 l -498.13095 238.37965 l -498.99246 239.57036 l -498.4523 241.66718 l -498.11389 241.55151 l -493.98032 239.71501 l -493.97745 240.25815 l -493.87921 242.53737 l -493.29749 243.36929 l -493.05698 243.77567 l -492.54276 244.41335 l -491.76965 245.36926 l -490.88547 246.8864 l -490.19254 246.56047 l -489.98068 247.14085 l -489.64233 248.19556 l -489.04178 249.56783 l -488.80289 250.60391 l -487.74945 251.24243 l -486.47958 250.6535 l -485.31451 250.04462 l -484.88611 252.46477 l -484.40332 253.35988 l -483.86081 254.53526 l -483.70123 256.09573 l -482.36908 257.67377 l -481.63858 259.68918 l -481.94754 260.89954 l -482.00607 261.25031 l -481.98959 261.79388 l -480.77795 262.89603 l -479.70447 262.89218 l -479.60001 262.90924 l -478.7735 263.76437 l -477.77563 263.56534 l -477.83212 263.91641 l -477.82629 264.54767 l -477.31683 264.71942 l -474.92682 265.90799 l -473.85992 265.26468 l -473.1806 265.72977 l -471.54474 266.96979 l -470.15207 266.28125 l -469.9158 266.13696 l -469.06339 265.45544 l -468.4874 263.74353 l -h -S -/DeviceRGB {} CS -[0.8627 0.8588 0.9255] SC -/DeviceRGB {} cs -[0.8627 0.8588 0.9255] sc -390.47876 209.02641 m -390.22275 207.79948 l -390.09918 205.32703 l -389.76563 204.45871 l -387.18805 203.07803 l -385.28189 201.39487 l -384.65671 200.27274 l -383.8602 199.59929 l -381.40771 198.19516 l -380.54391 198.13919 l -378.27942 196.27679 l -378.48737 193.97565 l -378.3913 191.15715 l -378.86703 188.49713 l -377.20096 186.61595 l -378.17236 184.7352 l -379.72809 183.62451 l -381.46231 182.41553 l -381.65268 182.49603 l -381.33243 176.70825 l -383.25278 176.01569 l -390.26947 173.57681 l -394.71338 176.75504 l -394.81125 176.83717 l -395.26425 176.63445 l -396.39771 176.9175 l -397.06839 178.72316 l -403.42581 180.14719 l -407.75934 181.67508 l -409.71964 181.52013 l -411.13403 181.58124 l -411.73935 183.20758 l -413.48349 183.76646 l -414.26056 185.11255 l -413.86679 186.03001 l -413.63339 187.72906 l -415.2421 187.67813 l -414.91641 189.38669 l -415.96921 190.5327 l -415.96146 190.44492 l -416.15836 190.51595 l -416.07156 190.61212 l -413.55283 194.63591 l -414.70505 195.7774 l -419.414 188.62622 l -420.53726 188.43153 l -417.48318 196.77347 l -416.39587 204.14174 l -415.55026 210.1631 l -416.86133 215.11548 l -416.88663 217.692 l -411.07895 218.08133 l -403.20871 218.65411 l -395.43115 219.13521 l -394.65344 217.58151 l -392.04767 216.74565 l -391.56876 215.08551 l -391.12762 214.13283 l -391.01981 212.01115 l -391.66116 211.18076 l -390.6026 209.55161 l -390.47876 209.02641 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -390.47876 209.02641 m -390.22275 207.79948 l -390.09918 205.32703 l -389.76563 204.45871 l -387.18805 203.07803 l -385.28189 201.39487 l -384.65671 200.27274 l -383.8602 199.59929 l -381.40771 198.19516 l -380.54391 198.13919 l -378.27942 196.27679 l -378.48737 193.97565 l -378.3913 191.15715 l -378.86703 188.49713 l -377.20096 186.61595 l -378.17236 184.7352 l -379.72809 183.62451 l -381.46231 182.41553 l -381.65268 182.49603 l -381.33243 176.70825 l -383.25278 176.01569 l -390.26947 173.57681 l -394.71338 176.75504 l -394.81125 176.83717 l -395.26425 176.63445 l -396.39771 176.9175 l -397.06839 178.72316 l -403.42581 180.14719 l -407.75934 181.67508 l -409.71964 181.52013 l -411.13403 181.58124 l -411.73935 183.20758 l -413.48349 183.76646 l -414.26056 185.11255 l -413.86679 186.03001 l -413.63339 187.72906 l -415.2421 187.67813 l -414.91641 189.38669 l -415.96921 190.5327 l -415.96146 190.44492 l -416.15836 190.51595 l -416.07156 190.61212 l -413.55283 194.63591 l -414.70505 195.7774 l -419.414 188.62622 l -420.53726 188.43153 l -417.48318 196.77347 l -416.39587 204.14174 l -415.55026 210.1631 l -416.86133 215.11548 l -416.88663 217.692 l -411.07895 218.08133 l -403.20871 218.65411 l -395.43115 219.13521 l -394.65344 217.58151 l -392.04767 216.74565 l -391.56876 215.08551 l -391.12762 214.13283 l -391.01981 212.01115 l -391.66116 211.18076 l -390.6026 209.55161 l -390.47876 209.02641 l -h -S -/DeviceRGB {} CS -[0.9412 0.9333 0.9647] SC -/DeviceRGB {} cs -[0.9412 0.9333 0.9647] sc -244.1561 190.69925 m -244.32036 190.27859 l -245.14189 185.13985 l -259.34497 187.17119 l -270.6398 188.73288 l -283.67966 190.11104 l -295.86716 191.43413 l -294.26346 212.57941 l -292.50906 233.25269 l -284.7724 232.64421 l -269.33826 231.0063 l -261.63498 230.06552 l -253.94205 229.04366 l -238.63261 226.49414 l -240.24197 216.41861 l -244.31744 190.90381 l -244.1561 190.69925 l -h -f -/DeviceRGB {} CS -[1 1 1] SC -/DeviceRGB {} cs -[1 1 1] sc -2 w -0 J -0 j -4 M -2 w -0 J -0 j -4 M -244.1561 190.69925 m -244.32036 190.27859 l -245.14189 185.13985 l -259.34497 187.17119 l -270.6398 188.73288 l -283.67966 190.11104 l -295.86716 191.43413 l -294.26346 212.57941 l -292.50906 233.25269 l -284.7724 232.64421 l -269.33826 231.0063 l -261.63498 230.06552 l -253.94205 229.04366 l -238.63261 226.49414 l -240.24197 216.41861 l -244.31744 190.90381 l -244.1561 190.69925 l -h -S -499.44135 188.45679 m -500.4874 189.6813 l -501.70688 193.57996 l -496.97601 198.08519 l -490.77893 198.41588 l -484.87509 199.17821 l -481.63104 200.9422 l -480.02457 199.1635 l -483.07053 196.90317 l -490.31696 195.53198 l -496.97839 194.20247 l -498.52576 189.73126 l -499.2128 188.7755 l -499.44135 188.45679 l -h -452.86429 218.05476 m -452.81113 219.13585 l -453.80392 220.52174 l -456.7027 221.81996 l -458.58051 221.55267 l -466.50519 214.7159 l -474.0506 211.7897 l -482.86957 205.03618 l -482.87268 203.95566 l -483.14337 204.89644 l -477.83655 212.22511 l -472.66458 216.15318 l -468.94846 218.1011 l -464.96222 221.68391 l -459.62775 223.91158 l -455.78574 223.91937 l -450.7334 222.36815 l -452.86429 218.05476 l -h -399.46906 161.718643 m -401.72833 161.47493 l -407.74652 158.132233 l -414.57114 161.316391 l -421.84561 164.572449 l -427.85721 167.372833 l -433.63602 170.06818 l -434.6904 172.68143 l -436.46451 173.44099 l -436.12927 174.54254 l -433.95297 174.3591 l -432.14423 171.65405 l -425.24945 173.38144 l -419.19135 176.27919 l -413.84341 172.80305 l -409.68109 171.83556 l -411.52109 166.234283 l -405.57162 170.13722 l -400.10263 173.86642 l -394.81125 176.83717 l -390.26947 173.57681 l -383.25278 176.01569 l -383.19016 174.52611 l -387.77805 169.93166 l -392.59058 165.559326 l -399.46906 161.718643 l -h -496.53204 372.53033 m -494.44553 372.51218 l -494.16406 369.98798 l -496.24481 370.00705 l -496.53204 372.53033 l -h -230.54208 221.82358 m -230.59265 223.90343 l -229.78415 226.82715 l -226.40009 223.35265 l -226.27959 222.88052 l -225.83914 217.93437 l -227.66377 220.24147 l -228.86197 221.53265 l -230.39629 220.89804 l -230.54208 221.82358 l -h -434.59515 181.45076 m -435.74582 179.98663 l -435.93207 179.96446 l -442.14871 178.30829 l -438.11197 174.65469 l -439.36664 173.43701 l -440.03189 175.74294 l -441.63196 177.22253 l -443.57932 176.97031 l -444.85361 178.04359 l -444.16525 179.99718 l -452.30496 183.85851 l -455.23621 192.88068 l -457.98196 201.67783 l -456.73654 208.02882 l -455.74628 203.87918 l -453.55536 198.11763 l -450.63782 197.45338 l -446.74231 202.61272 l -445.28751 202.71219 l -444.56564 200.13084 l -448.0401 195.48799 l -448.0697 190.67503 l -446.88132 186.12007 l -441.01566 182.79787 l -434.59515 181.45076 l -h -435.74582 179.98663 m -434.59515 181.45076 l -434.11652 185.49387 l -432.63922 186.72664 l -431.88779 191.95546 l -430.84741 188.61134 l -428.18344 191.38213 l -426.73798 194.99263 l -425.34686 200.28247 l -425.40329 204.71837 l -428.57806 210.88728 l -428.98645 217.7018 l -426.44531 223.1268 l -425.09662 224.68472 l -423.12018 226.03177 l -420.54266 226.35851 l -419.78311 225.71428 l -417.2218 220.42064 l -416.88663 217.692 l -416.86133 215.11548 l -415.55026 210.1631 l -416.39587 204.14174 l -417.48318 196.77347 l -420.53726 188.43153 l -419.414 188.62622 l -414.70505 195.7774 l -413.55283 194.63591 l -416.07156 190.61212 l -419.78833 183.55023 l -424.56522 182.19551 l -429.93686 179.50226 l -435.74582 179.98663 l -h -f -Q -Q -Q +gsave +[528.96 0 0 378.96 0 0] concat +/DeviceRGB setcolorspace +<< + /ImageType 1 + /Width 2204 + /Height 1579 + /ImageMatrix [2204 0 0 -1579 0 1579] + /BitsPerComponent 8 + /Decode [0 1 0 1 0 1] + /DataSource currentfile + /ASCII85Decode filter + /LZWDecode filter +>> +image +J3Vsg3$]7K#D>EP:q1$o*=mro@So+\<\5,H7Uo<*jE<[.O@Wn[3@'nb-^757;Rp>H +>q_R=AlC^cenm@9:1mM9jS"!dTMT<$3[GQ$8#0$s<4ZX!SPQ1`C/mioWjnAY&^gM+`4=1jRLW!YA +=M/6)*KS9PE`kN%="Tc_Aoh+fk'&t\ctIN)4XQLiVpoI(>.nOW?*DmsG$@,,f58"P +DKfeXi0S^6MAH=;fBr>1IXb_>kP+oS^^pnX!PjdJ%0OEX9GI`IODGpB_@VYP +$,Ve*/ITH-bV]jIOR,+@`"`Y"/@)9.f?D&^M-b]OrH +OmIKN1*g(o[EC"elTX_ZZ,c*_ECQL2A(g_UF= +ESQm4c#_\W:"=CBQYkQ&hA;15H/=mim3UV:)/KA +Qu3q"iY[\%M;jo*/W8X+c8CUAR-m+uj;AFrOlVo_9p=ZV:0!S@R;Q;sjr'1jRHBp? +D4B]+c?5]@RI5KqkSaqbU$.ptNMG_V:6h[?RVn[ol5G\ZWToqTXfLb+cF'e?RdRkm +ll-GRZ0[r4c*QdV:=Zc>Rr7&kmMh2J\aGrimCVg+cLnm>S*p6in/MrB_=3sJ%E%]U +:DLk=S8TFgnf3]:amtt*/^*`*cS`u=SF8VeoGnH2dI`t_:"/bU:K>sj*caE0; +T'sA]r#ZHgnbf"4c1ClU:Y#.:T5WQ[rZ@3_q>R"imJHo*ch78:TC;^Xhuj(2:_!Ol +=:G;h6j\E@/d=Sn*moVE0nrNM)FIVD%H55cLJ[C[6eHetiWMQ';%=d<=H*pP6qN54/ga!=SJ1"9 +;2S4G.RdIA(#m/7Mc"@E7G,9iirieL;3!D$=Nq`D6tqWXXu8c%h&GC-EK3oA3_*<> +*TP(`O&>=/8(db^j91$q;@Z#a=UcP87#@%(/k/Cb*@'WuOciU;8kE/;-03"4P>Z9n +8_H6SjTM9A;N=XI=\U@,7&cGLY#\0J>q>#iZ'J;5>"`"8/`jp]QW!6X9A+_HjoiMf +;\!81=cG/u7*1iq/nRf1SMTD]d@+!/C/%j52>"qTQ74G'4Y*Mu>>taF90r@pq +RT!C,:$KVWVc<)U;qcXql30JP<=Ya&>)cDE77jIY/uDV%SQ"g-;6!VkW`<6)0U497;8l(Y-qBbh-93!ENWt#)=5*U[ +lihsE7G$-7>\9M0#h#J*FnGiOg8"_b#qq#AaIC(ZW:th=kc)Pm002j>8i!7B*[qY1?e2?#/h]Z*m]Yg07cuD=,MFREmKLG:E*Xj7EN)A +0'6EnSTF4QdCNCSlKqH^7HqKeY4c2Vh0\UE +n\/)MqHmIoIIG/N^K9k&?ebO/n-/p/=:YI@>Rc8R7L?n50*Yh>*JYU(F7Oc;YY81U&?&S6-0ud>A)Im#hNUb"Ka&qdO +A))KnnchD$=Uu]e>`Fm:7S1^)0.(5bSWiW!;9E$;.V2keQ1Dptb?8a9A_atco*/XI +=cY=M>g8].7VU+MY;U"Jh4+"jER%_53bM^bSb'jHcWT^#BAEHXoEKln=qn*M" +7Z#Mr01KX2*M`7]Oj[E/8nhQ_V=_cqdopZbC#(qMo`h,>>)uQr>tq&.D\XnB]Ef37WLCYaEBp'/@c>7Y1Z?&c,_7`j=f04o%VS[8$EdFqf# +C2I7Y[J%VngKST6D;Dn7pBKU3>Eh7NE9n_RKrH>d*V^%]PB +hcoPuDr(B,p]giX>RuF*?4FaG7g\-Z08=H&*Q.Z-&`R%kMK)rS`V@Ikj'6M_ES`k! +q$/)(>`Y%g?;8Q;7k*P)YEj4c?-E&!1$2`eRWDePc2#C?k?RJIF5D>kq?K=M>n>6Gjo!/eo3Q@\H/CdJrSb)i9dJ@3Gl@!$Ap&<"bqd4:0 +IG_a4rs.N\?]Xc,?d8EH8*TtZYP*G&h>@5-nbunAqL;l>rVsq6s'P6oJ)C2(n,WMC +"TWKJ!3cn4n.>[T'`i7k!O*RFn0%ie,m&$7!jF6Xn1b#!2$7eX"0aojn3I1270IR$ +"L(T'n50?C<<[>E"gD89n6lMTAHm*f#-_qKn8S[eFU)l2#I&U]n::j!Ka;XS#dB9o +n<"#2PmMDt$*]s,n=^1CV$_1@$F$W>n?E?T[0pra$a@;PnA,Me`=-_-%'[tbnBh\! +eI?KN%C"XtnDOj2jUQ7o%^>=1nF7#Coac$;&$Z!CnGs1U"V>Y[&?uZUnIZ?f'bPF' +&[<>gnKAN",nb2H'!X#$nM(\32%ssi'BLV'sV$Z +nR31fAJT9"(9q]lnSo@"FVf%C(U8B)nUVN3Kc"fd(pT&;nW=\DPo4S0)6o_MnY$jU +V&F?Q)R6C_nZa#f[2X+r)mR'qn\H2"`>im>*3ma.n^/@3eK&Y_*O4E@n_kNDjW8F+ +*jP)RnaR\UocJ2L+0kbdnc9jg"X%gl+L2G!ne!$#'d7T8+gN+3nf]24,pI@Y,-idE +nhD@E2'[-%,I0HWnj+NV73lnF,dL,inkg\g<@)Zg-*gf&nmNk#AL;G3-F.J8no6$4 +FXM3T-aJ.Jnpr2EKd^tu.'eg\nrY@VPppaA.C,Knnt@NgV(-Mb.^H0+o!']#[4?:. +/$ci=o"ck4`@Q&O/@*MOo$K$EeLbgp/[F1ao&22VjXtT<0!ajso'n@goe1@]0=(O0 +o)UO$"Yb!(0XD3Bo+<]5'esbI0s_lTo-#kF,r0Nj1:&Pfo.`$W2)B;61UB5#o0G2h +75T'W1p]n5o2.A$8:o:\3$V)i[s3jYqLo*OF`B84`4L<9p +o?f]WeNJ!,4gWs-oAMkhjZ[bM5-sW?oC5%$ofmNn5I:;QoDq36"[I/8n_pJdU!Z-t +'1!"k# +7+=:eoNapC2aqh&&/8>b-#nP>DB:j!4B2#gE+"&&dR;"Y,loc6peGu7Qi +mPP2#2'l-8$WD1*;mb(Q[6X)D*%]Vr<4+_ceNH].6WJ$);^07^'k()7AQ:U%7Whj7 +mYOsfcmuMH=1)[BeSA/bEEI*s=$j;s'p2SjPuoo3.']#eXKZ@ +Tj)Cd>6:R('u=)H`EP4A=k1&fmL*8WVC@e\?+%^Ye]V/sd9^\U?535aFmWK-oj0NO +?Sj9>Q2o_UrEeK5@!23Oeb`bJ'hFVm@BHS=(!J%K+^oOA@5]];(*-m:Mdj+#-Pe^O +Q9f!R6Y#au@oc:S[Rjl87qHj4A[Y0AoX/6'ACL6N@THWD(0tPGF_BU3pAp4$d.")&m"B\&_f[\7C.ULU`tC96f:Q9Au+[;&aQC%f/1i[>dT`#\Qi +*VQUOm([<;DemqWCNeHJJh_)Mj_T,'CmO=%G0t4ZR;G9-D>*pFf)][Za_j$*DV#>8 +[h3SfbAUH!a-QKIW;"*0_SFE^Gl[_m/F +3H]OGF#Q=+lrS9QCNPnWFSBQH@OlSf2g)TRF$_>r_9*fXJTt7KG^"pd(QcFVA1!X] +H+.X9p+:=:FaA7WEFLSGf8Fu7M0jHOH^BA12o*,8NHA5pI(,Yof:c.&/UEb1I@%#Z +f=QJj[=22jI^cq:2t4F\a*)[UJ%*gTpWmT+++;bAJ@@Uh([$?.m=A@'J[cSEp[`te +NIPDIJ2dFYfE#6$F+DmLICAZlp`G'37=j)]KK)PT=AZGn-mfccKt&dipBDi:4,.ra +,+(rVpe?N'98@b3H[&JElU-A8?\R,gLq&:3=/CP:Q$9]eLKJn[pmm:%H&>^TMQ7bR +6=#EB@>e6I;Kp`LG\MBSD2MGhMKmC)\C$8&+c=q)Y;ia4\@IVZ[uPU^,$;aCpcj/FW=-4@lNg8R[3?=%qCQDUOQ+8?/fe&Kaq32'kPM'f:R;\;"3L5D$CY7U1 +fn#8gK4!;/Nu:lHi['m.Q'PQ_RCSZPf[lIDh3U.$QPlol=g=Db8!hm>R!HB4=i"BH +Mj7G+IJK(pR@g$1d@GQVS[[jQ7B`/jZ(>+_ReblOH+B/b^Qc:HT6A!oH&\3DS"86c +SQZ>mq@0,W[@ZK,T"4$QqAl9`(h21h-!C&Fm8)5&sUOr=_'q@TMA'r3l^LUng. +q/R`A,GH)ZU&&&h>#&NF.O@,1T=SlVq8]#9aeRQ_Ufr2E\q-Z'KnMKr9mPeEH<6s> +>H'ZEW2:T4@S1'GJ;liG+ +WWG>`H>fgPjc6&[URH=Eg'=\t]rQJTYBp/N>"u,PJ#uns+SuJI3g[*5&Xtib@/AY' +>2cbJkGl)oWr"BO(rriVqlh"uZb&*$q#@Up=g7cpZ!0l+HIoMn"/c2^Z5kE_RgW$-1Q"" ++2Bt__n5gj)qCj6&]+Aa_-B^Q]MZV9qniMW_OL5;r*?]m=C&C,+Zqd)qupGSe$A`$ +[_,DT>^sgW;oi3pX.3cY>[tY+PK"OLaQ;$nU'o!]4i]Y3\_KQ>r-cY6[E-"kaIKre +H[!TL$d!er0hj2:d*$e`FWrh*]dWED?C%c;tD'h,W"=L"JPFeX_WN +G^\/[5Lquces`)]7Ch#u6/#Ue?u<`>MWT:h>Q*^^(Hl@YMNHe +,Aj^)HYrak=8Q0A48krE-l5&0QC +F5u,V[/P;TSk8-0J#9o+jVmUOhOX!sQgA%Jm!d4G\jgRdUZVPumCoXgh)FWsea$Q+ +lSsaX5)JU\%O-ALm%41Brr;H%!UtILCE@9YDXH_=(%*'2mR>IihRE&>JaXVaiOlMd +5;DZ"1[na3o7&odU+dM%X;sMooUeYG^JXY'7V.&[j%f.7Ic'i\&+SFhnmrkI^ss5mLWWV-:ts1bc\ +%qgO+"U'Cm@1[Z_)Arg1_r;7FPYNYBMacYKu$tID0(WGT6>a!JA9uE>VAL +U.XHc47Uu4IRbiNb@Ips>g?\6S]f,[c<$$]8#"FGo\,igY>MCOCN^WpQFgk9g?eOf +S]:,:^"mV9S,O3/M88.jq#"Gg09sfCoD+peG=SX]lZB`Z?I)udhZ^"@5jX%0o2gKHgdi +E24ul6L_oL%7>*q3tEU8=qZS.0dK7&6r??F'ZBN@>8BZt>[i?'nYBq>7e+E<*Ck,1 +HQPcK"G7jgE[6Pf8Ff04,tW(?b&SOYET3Illrt,Q9(K?q.a)kN\LgI\"MZZadj2gd +YR(t*c-:?=htKjpmtd?J'C1[o9G_/ss"bU5cFsW&V=S>1IAQa1fRqGmtKqepr2Pcs[b"8,JD+o-.cYm$s"hAVW +pDq.l>jNCK3).k]gNHlhHU1/!GGXJL;4#8fI,=VJqgMoHh?/78=9]"_2jB"V:Z5De +4bhp?FsDfPG^_0"@b@I%BiUEL(i3]-#"+M`GpZ1JAGJPV?KH=\=^Pb9G%23I3MpS] +B)0GfSS*61H_4sI#(rU!p:cH#B_K;MF(ohNRriAuAtQ&;3i8UO/D!nXFmFA)]/%e&D#5:&ZY`o9f=,V/L=k)9354^;meFfn]5LonpV1XZ#5Q)Rn-4W*j02l" +`Gp9<)olsrKjgB])/h%JEr;JTaRafB43r!H#=Hm\I4%\:FRY$E-ts]$U7,i.T!-di +I@"a%pALn/1aJEB]rlRgB#2#prZ:+ZGlBXciq\$nRH8_.LI1Tij6\k1I+[g"#&76CMM3$485:E-; +@Y@[;;-#&18?iq>e6@inFI,6@_#\$S#(TQs1IcW:)Il`^NKLY.7ekn0i3XA^CL!7D +3:R;be0L*;k!$hm]*[G$.&c[(]fN&Jg3QPOpJ>T.6_@/cM:?j6;JK0DTbJDM<8%XVlBP;JPuaqcHEgLc +>o&Hb?EViQ>Y4/`*3>BRZIV(]8#[4KXclnkP,`(uBmk$!29rg8>4Gl>FYp"]p79h3 +HXLX^K!5SgT@@'W:omAZYuB5U=Sj7PCm--E'gBf?lS+-2SXZsOG0a=g6"k*K)lo9j +Y=E%n=tN`e[?[W>g>oXaX*#_sQ*?P*WpagUc+1l,=ZDK;V]G?4$8Ha&0>XdQKhD9:V'_0Bl5j1L_Eo3QH=Br_E8]oskHg=ot^ +Dh[ek(Y#tL.r/teCag[^#2e1irIAhk"2FUH*F([eEj/RN_3Ze[@(Qh=/qqckQqn)c +bL)&`ef2M[DXUld6$F_0*Q4>3'4Q>dMK)U0]i__H&mOIGYGO%oR*H7D]Ch2&c2=^] +'*2KWI?8IR6c]!;6K!eEK5cQpuutMI0ZE&c@XYOpKhY1GG0+Z_pOqi7I5GYiCONCfpY9?kpP)^[[,Cr +N:Te]I5eT*G1G?:GAh?s_74CfWQgd;eRn2UX*'Heh4(LLhi2?_FgN\FgA>1EII4al +#5[3a4(2rBPJDDJ"5+S77r8_JZhRSHiJ`,'E;h$!;81]3]N7jJ/ht@jf,Nb?Ft[`. +5gfrSmbM-7G4KM%]JlFijca"=Dr+p;3L9R)SB%(gNW6h?f)k,_':r-/&&S*;%Hq(6 +U0UMWdX"tf-9P5)D5s)S3gWe1SQDk7Fe?a!03bgeK9C8(_:SPuHe*SJH#h^5bP@bg +m@CGiF+3)!H-\_Sj-`\5BIN& +N"WrG/&2i66!?.[$iRi`_nfk$6(AiZX;`Y%!]Mo8#oj,bli]WH"UcjH5^Xb@F6s8J +$GoIF6<"B1A(%YN&4#jt6B!B[$edm//3u*E5t!=O//uJ(0H\LT6Q?q-bV6ps1daqo +6Wu'-bN?CjOhprU64>nA!rJPL,=$oF2l%]c>X(Pk5JhM-\Z@2GS3oW-6pdr,6G+ne +bV$hM847es6Y&eWWLZC%(W=N67'o]Wlq^%I:`6>n3ma*YZoQ)^3k7'j_os=Be-SMW +5XgW67@ZZL*(%S;6c;r07E_>lA4]12?por]_W4P5/7TG(9L_]2`6;`2ChH4bBL[h# +73!=8J28iZePZl*YF@SA2`OoKq`-4^fGV3N67N?_D +'RN:HH_7rb8)/P*b[j2lA]2N9a;fe&/;$JS@n*P77^3=jgf2@AP_ffLaII5saZ7C@ +F%FMsaOH/3=HZ,6GKBu4aU1bY'RIgb]<@4N2]G8n=bkgqQMH +7u7YSb+,ES*5`Vfk/tW]9&.D.lUV>pX@m*G3lJ4-pe@cq8%F*FlSL[9C(t-S?d7#Zb>l<%#0N/E8;]72aSMO(MY0MmE;;j+O73L',=&L%` +;k5,]XX#SH$W:h);LKoN1/_#85Z4^Ld_.q2Pql<"oMY&je6M(a77U=*85tGe;`u&J +78$U^9IZWPA^q5d<<[$d +Q%)hoJ6&HTa=P3r2Q$V*] +O%JUAXaN-0eRld6T%FdC=8eE:$%uD,K3=1e=d*@J#gYf>K[>"Y+/rc=Y5'T4E1\@QJ0TL>2>Mm4d]BCYZO&n1fZcn +]sCklZe=)(g-rFuAYE56\5#2qgRYo[Xh+l3VH_&CuNR%DgT<>pjs>.'PmLm_Gs +Y1uIb;m^^NV8ldLa/f0.>=H\=ik*Q +nQfI$k['85ag#!7U8@.^>c1>5[oNL?V?4GfH*VLQ` +P?oiahjsR;ha2ZhqW_=`W'F05;N9_oXq'Cg.Gt[J,2MD=jo$Zh&`HJ"@9g'F:)@;-(gns5iI2Y8 +@2e'9*+'[1M%0l#Sf_@++CMVe@)_m"+c>+t&7G2-@S=GoAg\^5'&nobbg%TqXt*to +B47Yh@@f)[XtAZ,0%u-e@Eo*dd!*ic*o[A\j'1#B(*_`Z3+I51@-/cqXsISk[Go1h +*Bko\2EsFg4ld)=A/m:4r^10*6t6EiA3Loh`\M(Q_FrH;@K&/qSUb3n,@ca-j-+%H +^-#o6-=m6YjCAR8D$7Rgs<7-0.ljc3MP+Jr\(1=ZjkA>W[D[S"Mn +9Ou^_AECniN_ng9A7dq!j_eZK%THs;.A/S2k+6="X/TZrCh9bcjdp@#@%_)NE*Bp* +AaWpg-?DV9@-/eYADVJo>^>I,;.kW/++A!nUdI&8 +C0mcPC@^V4W+fS:l#*J8XrCZ,R:oLPjkcMA[]\l--eeQlC$(<=..Z@eTkM`Fd\`pX +Bk$@&OQMB;lZTjTY.H66WU%j1CY#M$mA:1ZXR$DMM&rj:0!K.R\SDteCECK+f!K4! +[-W_Glb:LVI^j4*bNuCVCu3GcG.qel^$Qh*p7EYk\VY!M-e\K +6pC!]eaC`L8kt4Z?LMa$O_q8VD]ZtPQJHE?hb!',3DDV!BX0*3D"mdCAaD2d1e(@pk-#J9f[Dbg^Y7c&'k8+1?S +muHD]#7PSO&9/$VDsmRD-N8!<'QH:m>TU"TDX6dMmI>rL7pRE[B(,8uSn\K9ESg7U ++joeXG&dg"<(?TNf(\\&,]Md\nfK3!D^QOf'69-Jns:)!*n,+HlBdP4nW*eCk:]*( +"S'MeEP*ajf,jNJ#dD.kncq'l[e4Zh/TNK%nD5FH]:e%lWth2f]]t;1CTEE09aq,iM6focI(S +.aiDL<-/@FF73-%9/b;o/8u((M#TkcY=3P*)0BL]Fl+q)hKSUa?une"SEEQ=0/n#2 +(Nf*jFT522D05JABQfGN.&U-iY?(A3B^[ +oVZk#T42ogG]^uOFOt6Qhdpl$,P"o44C=(-?fH(8u2Qh:SS,3`#'GlT$kDB$%=7uTdqd)B)IuX>TU@1mWc6&m, +a(BPIVQgZBqqo,7kc9$5^j=&:qU:Q5=+o\eL&2s^Hsa,lkHatTZ[@ZZA#GuIYB?SM +a*WT:I+QVioM>dKGG$pYH`rP<&#X;(c[AU>I9<6A+4klVfR,#7DuWr0DQX8S`I)U[ +IE:=DJ$]+RaY"qGI)!*r2n+-pjF#kGr9"IccZoCt"T8=II[B>J&*XBRdX#9LHdB>E +^Z^.Hn:(_2rI8Y2("GYUV3LB-\L9L;Q/+1Ejp\3m9-RB +X-NPSL:^s"=Y*TX7@r%A[T[OV]62-PF19Vs2g`O+om=D[DqFmk#6fas@;skH7OJq/ +`aa#@r.[]fPKIHWfmLeP24Mm(F4pAqQ,rLCBf(-A7\<\XenT?=]lqG)Ze+Sf>A^7p +Fh-@H2qu%FpOU6@EHjTp-R4Vmk&U:QY(ns2cfoRsdcVR+hq@Dj]:JrqLV)U9Gs#D? +8"\>op3M/$^N?U%j`p_&^I`Y(p%84]s3L$3r]j9W#6;Q$4:MG/YZqbE5u;A@#Js;Z +.1!epS1P/e&DSoK_bftc&&_>E84M5 +@-]jt4jA)[QX/!^>utn%GMZDDl$2'oSaCg^(W3KP?dF0$pL%)%#Cta"43%(^M2Y^W +iRi#k(h,IR-&U]L^*em!f[_d:j4NccNau8k7hJ432Gl6k;^PY3jge]'R-#9X?^g+[ +[V;5o=jCWD;AoEPTMbOqM4s.e(6P?U3^/h+l'.1K_GmoH9rdKI^8J'taXt?2CDu"\ +W9d_0ag19`I;cLDgKeI#<_7>6?1')RI:ZOX^?rSd)rC,!0&&Sk_!kSN$,Z2e57tj( +>[JAgn_AU;aRVlUpNuJ_f.Y;<*8`X!o0!%5cu\"R8^1VP2c52"=@ZHBop>MP""'Eh +Bp*Ym%r^1r*T)"rpHAP%i-4#gM;dK_5'`ZD=l5S,q4<),kkVrbU$?r1YG%S&g0_DX +qq?P3n9b0Gamo;XT-ftAhd4.&rSM8FYhEH>l1XCl:\"A_?e[u*(+C[HJOH6-I3Rg6l1amU'*i>d2!uq8Y0d74leb> +V"PkBga]<`P:1 +3Cd(6)l)JBO3S495R7T;Ua1Lln.f7g2X:JkA.OgL3_1e-s!6[$Q'0R%9M(X0-KO6Y +PL=nV'1cC;AL+%8d)o<[=]6d2<3;F?\f*q\FY)X=[>/Xm`C/s5'4p6#QZDq/bP?iG +AgG0ZcOMABfXD[Z<6^hp5%VtVSM[3r15mr^2Fa[N2WiNFRkoM0(t#iYk8^;mbE6_53jZ<`QTq9`iHkZkr+QqO6T9K6RaG/k%TM1E/Z:9ICQLd:RAIY?_ +5)<&S,t-sn'r'2a2bNmI7ceb4UJuDu;>N^OW8t4Lo$W`FC/GJ"Cr;Y3(7.r<@8,p6 +25X@,RT"<-8g^AtRWSODe/Ea3WWbbgdo_gYah]p9-$b5YLWWf +=;qEOlm7@idYAVm\C0#uW!(J1T3.^IR$bV34):2K#OZde9cg'^,YD'bsa +ba+i">?+NPAOj/:Y1Hks@.n>0:oVu7gY837DX*@CX#BsY>T0ebbai=H24ER\R,DE@ +29iZJ3^),BV0(6VDn=K1lrP.38h6]o.Q,q5?5iE[X4)R0Q_*hUS(2iRAaR1_^A)%J +3Fm')OM9:fpi(ncXiTQp6O*6S.UAB4q5>13sIff:Md.^'uH>E +g#6a'L+Qrf\!H=7@JiQME?de(pB'=5N)ai%7Ei=;^?&i4TlS?-1WEPS(rmTWNq)3, +]/O'`A/p.DaZ\Il[t=/2S'-'HmS1gV5:C(_V3LPJ:=.rDere?#h4D +)S4:"afP&6Zn6TN>\fmQY4^qjf@p74=Brb22C;e`gCIf\?'-ZEDJ.2(UM+KA$;Iiu +.aD7*3bLU`[Pm!qgRETukA:1.oCh:l]:X+]MLhFB54-^d]0gK5DGP@Tp!LD+8+1c* +:c.$thqD^n5B:2IGRjc3MP";GR/ +>oK&I/^:kQB1qLDX/L-k7Kh&8#Q#5AaFiCYkH21 +g@_&@f"L7YlK#.RHlg&l]+;e%H=++.T&&u*JJRXf5NR(G,P9Q"G5C%Hm!"Ms`-A2- +qq_.-GRc\-r#$pP^RpToDlNU5BC5ZT^\E:#jX!%8p%%"pc$uAU@X5GUs3En0$j%Y- +"S@aZ!7+dK%oWK_%foHup$ZMdmqVt9-N[*oRI!'1:bqdL2##?V)Zik2O@&`gMZf,0 +X$Uk'&"*2I@0.eJ0FIo#`rWC^%+**)nB/)a +*s0e[o(XUVJ&CD=lIi)cL%?TNYEKM,8jV`'$Mului0r#6k +V[l7f&!0Eq0`N(([i7oc`j$Bn;%FXD_J@Jg*!kpHOjYNf/J<'V'!^14%dkW_1EMX. +-IFsF:ko`<%hrpo*DuhZ&d'7S#9]0:]ocqN&Rut=Bd&Q,-8B]g&TK!LFGB"+(pYe3 +Ou!q12'W_l57AnWdR+nX7i@I_)(qm,Oeiu%=!^9G)Y(EY11M8dAAt;Q*0JPeEcBrj +7i`3O-c.GUdXrSrKcT^F'+fR5XtD'knL9C2#a+p4"d(2'V^dk1.akLN'!d"-(FtX` +/(,@en?4#+,qP3./CGm.OaA>$4"ZUU/^i6&mBmf%9dGlj/s>ZUc.o6R:>k:\UV +37@=Vo89!";(pCf0GBuqP6EYh#r(tNlf0cUZ?86-)#3](42Q>"F"K/R_^LZ1.21#V +6=D=L5*q51Asb#:VQ0?U&UA5El*HJnI"6#<+GY/B/Da'GEH* +(H=5j5t>g\1Qt.(O[>7s6H>i]PFk3?s$M`:3`E.AF@/G*+Au.E4-WM9Zh$UP=Zhng +7FT4F&M>@c2%s^)j&=\gdIB%KU7kOf8(<#Z'SAqULAd>78CRH-'ELcQ7OF?+5h)>s +&,ndM*C5o39%9n7'W?f(;aRi=6M.l`'Y[6b>si\,9[q5''L+XCf0iTk"N*GleDiW. +&P//O,.(QD1ga#j,jf0.I)1f6h>eIte[(K$G:;9R9VoT`sbl +20>4&m92r)noWqL37kQVC9JjF_'i.h/`#UZj6aY6@ojVY(JPF[19snn- +F1O/,j[Bil;=tf&FS/a8o2q224VVS[bIL,#QV_`h.J)IMQ%)t;Vco@d>1KeTPq>mV +[8OEA>Kct1iZ8p*^)2:GhGf2PQd,un#H2-F6#k;]kT9_Dst(%.#\Bic$d +=#Kk_'M)DmGoS]H::5^VQ4[P#*Da)*=Q5062$mEH"%RL,/9VJ4(,KH$2e/.7C,NV6 +'tIjT^I^:;>a<95[S]tt>@"YeA[U3&emcmu?!`fVB%Ca1%r2Z_nRn-[?SYk4]acj^o:nG=*<^2K)o&pMX"bpGRM6[fL-\$"'!RB\*c6 +f+PSmiD+E5CfGgt(8#VJSOOA6C6WF8F"5hV-QDG1Q&(p??ckJ6Or'GLlS6n1QG=#C)R=Gf9>q[Yo-,&U@HI +"G8:?/!G)IIr[IsHF=A2efALDe0DF_HdBfL;PAD\a*a5sI+Q\AQWnT6f6p`T(:.^d +=(?\AT'mY^n10:4.=4)>\ +-[PP:K$\@]2_Teb\0I?TF*3mu.M%,57td7&K\0'MGMR\6=,!#BbEg\-Qt(SiB!W<@ +J!]b]p\0F[G'6LVJ/8$;nX_$d$&FrX3ML#7R$3)GQ[uGW0c2'8=A_M3.sfi$MN76R +QaH4*1P=>l=ju7bGbp@$a,HD/N6eJW=OVu6eV1nl(>*2I=Q>DL20QKTLH+a_f^jR[ +:P^t3cM.X#fSb9_YU9.1M7At8fb95uD/n4S8=6T)=s4uopD/!-VYk<=WnKP0RDYfr6`ZYGX0ZrE\l#9Wa/iIeo\*G-fYs^+AZ_'f +03W4j3oR5FE>uc6\B$1g3iI!YK8+8G(U9GJ0Uf2G +4!Cn,A#jphZJ%aC(?)@@>qK5[Z[4pC`"/seqTotRXaY\r!mP_kB%Ja;1nW>D#FLRjqW\\D*(T)j@g!OQnSV6D]@,rmj'(W!VHUW)#8 +a4u0c(ra<2)8TR5+a-Srr0+uS$bH6a63B6c4IsVCTd1Snb1o%qVZM1oah6BObJom" +*)Fd`:!B,)VZKr=HLZ!PYK.q=`Z3mU;($uXosahoa#j1&eIA68gWuDeceSP9gl9Cg +#KWGD\m-E+*0iee-c6-(=o>2G*2GsW2nV:(b5Ep8#$rW=6d,D=9q9,F]Z87P6e%M5 +bm2sTGbG9=!&7a;`][[T]][;CX3TJuf%E"&@bK;&GLrC4f@5N$>mo:JLM\58d9VgT +FiVV;)BL6IdQO"oh'peNVpdd`g;J@crAiV344G9@gYGkF1c9BMg]k2("_rWD("GMi<7ZG$e3*Xch1A(i=siLQXr4rrWHQf9'U,XQ5"IP65B +]A,S5j.<=;%`-ZXh:4X>76YZ:IS]<:;YrXZcBN1>Smh"ll`%V7mG?ag*oc]RFm$L' +m`82ere9:%pI\W,<+7CEraj-*pZVVb65AD;?CC=IS_AJ%l+)qiUL$7=t(8I7UqR:oPQl6O@\G1=U^ln.$I87P.1A' +@540DjpQ=D@Vn)oc=`?Oo]gujT[2h$=sY5F8Y]1_'Y8EFThMFal?+#A?EHbe:#l]BsV!F(;"^tiG?&/mWTVHhX,U"hX;9(eb9)o_-aF6*%gHfM8`ro +R+ujL+d'lWnP-V"=kT1eAb2=[mVb7^ctN%I>o&o$Vq#O(),5:h@BnL%p7#?rhf63_ +DYKXUCRr]?i,H1g4uX:?`8u"7I%Ft8S^HTlqAi=t=0^BEFh=32QG);HH['pe0.3C: +l14]L*m[oO?Li>(ra/HnfCAV6ID;DHlh:?D0E_UZ2paAl"@4_@(C!10F<:cT0U*pl +6EmgM$pu_u2\&3ZoKNmT0bd+j7'SRE'La`U/4u)TY:[pQjM*?A1@3%89Tp16 +1edI%??)K*I+pU)dtHmE::#oJ3_pEro0,rko^tIFZjct#:p_MZ6.%MH'gto@FW3kJ +%=-0m8[/O?!CE2op&fd<].!l>?<]$ +G?^ZdS6&YA2'mrT=EZQ[A6>-tO(I!&AY3U=2Jo@*>*UTbQ.m`f[[,[6e[od)pD(A^ +>W47TF'U^nf5ocWmbf,,T2HI5T#hN)F29o9nml/R74U4Ka6/9/Se66-R:XsU$B4'3_2FXlq +G.2s>G'=t9F5D+hpN>D<^(5_PGZU15J)FX7PNI-3GF.Lg^4N25@NMs*lf,Y!\*\OV +cbJmq(lq<+A9eYVoDLm4fCUpb-f=]J/>dF`B)f;Rqu4@Np\d1u_`h`f!Wb*`>gced +#Ct/IV8/emr1J-BJe1BX5r^:s@'g`&&7uA;\2ae%oH/_tK`j@.qVWMJ-\RSY'1/Wp +$K6(YL(LX.6MBK0*/lgrd,E)6\9/5`>N/2B8gi-0"cD*oV6KTNY/]Z`q\X9=.-@@ +c\=SQR/$HOoQuYhp-:=!U4hE6l@#rb6qFiuCLeuWOpH(,^R6MM,cm2mdUl/ma8XF. +*!)8DM4q_@(F`o@Vh'gC8BSJG.qNh+Q4h2?90$].Mi.%> +FO%D%[>fQIN7"YM:H@N"B8lSVPN$pbOtpjKV#QHs#!5X2!C5j'<&O4RKh*+"+R!)@ +TsR"?10Mn>,]&@4nhQ/$ZW0G-o]MEY?BIgZ7n@>?-TG`+:XZd?YFmGDPr-@G8r684 +l*WIJ']trb\p7(cofoAi#,,!W5;DF[b,FneUf=pj;ef$&WKfak_eH;SB!k^0'kXLH +Wj*)r>ii%#P-IbCa]N=1@oh+mG##$k>@Q+NT68/%=#p(]X0$KHe`OM6ZXZ::o`VK5 +*l-D)"MYA9';?6h`)sSq@r,/*/qh$Se*8`#B]YPT'4LN%,Wa10_JAQ;@7 +F)'g_X*7%r>pt,&lUBF,pL^a;]$FjN>89Gd]fARUALlT$o!VQA),Y>0$gE)Fp0GlYh_AK- +s-[g9!6lCN2!/iQ:iJl.^q%3=ik4K50TH[\=lVYXGrT[1[AKe1@h%Wa25+`UFjV*T +7;0@PUNC[?dMbVI8Gm>$ENYYJ>%:3>SN3Rq<]J.ppE4367B(D=?H?7oR4Y0EF`2=/!+ZZ]<#c.U-OB+:i1 +W2>d5#Wk4_S[Y3ajWfu!=$UXQ>\,`MKYtEnN\cM +Xms."pAL?3K2QH5#JkOA#1W6(GOVEd`V"usebhp>nNJ,830n^=g@(!dhDN>uk9&_p +6XX_ILWOfh-eO@da_^rZZT2pKjkRjB;r+R`G+UXRqqIYZ4hK$`rnciIj)F2[aF#Fc +kij%eFP@:Lds?46l5`BoFZueTHEo6_)tU1MrjUI)k?mQ/I*$>fahdj5"RPkYJLC%3 +i6Xf92S<,%EA$Fn]=2qO)&h4L*^/C@#CZ(^s1r%Pu9)"Mdt?^gmYbF9fU4nic=G^#TO6r!Pcc$^2Of^*F3&4:aV,&A*J2_#tC8 +5hE`flTUgR_,M2d9GbNRc_/JM6)3qcX78Kg*5Sk?^E`A81\ANe+,X:q^Phg&1\a:! +,,>iAN54&[]DB1a-c0[*[`e\6"=q7R/0FB'5RZ$e';N>neO'oE_PAs)1c*$;1rE9M +_dkZaHjmoG$q$6g6]=&he.+bA4M_^p5r7I,j?CKb'9&.m6$*s^1d],K6:=d?_3(oe +e/Ud0848\4`1nj!lla.:9Z4kD_Ad#P<):A):r5UtR'I:!E6:M3.)f.6%1G0P>Ur.b +=N,msN1;N6.rrEF"%C]oRVZ%ooO#T@@)`mh`[##u*'2)-3Q=`S7V$)"fZD&?4iW_" +`hOT3KPJMq+iG?i7cZtWlp\qdE5r*$U0/;NX@^?hF2q7%a'uakU`i.UGXUUe66oDs +"B%asI)82^+)oh#9NF[[bXOB'7@Yr#1g)j:>/Ko9\heCrgb>t^J]O(4aJ=^7[#<#D +N1Z>I7T>DfCl_-JO/886c0( +P__kW6cuL8b9XC:1pb@n[*);&aUGW""LlJe[nDRnNHCFW7$Ys6]?A^94&FO#[$jRF +^ruqtbP]6$&gje-T?L9,9Os^!FUCs!/C9q>;T'-*SIX*P%9!]H;^F0DTZL%g1smm4d1nQ%+NVr1372:P +SlHS(SJbAF(t!aMdENWVF[&3`-ReX/e0On*r;4nVY=Nd[c%uT=D*_-T8CWnre>5de +Yn9m1.8m9B<96g!'e\#?/l`W?"G?9*5\9Osj@2Ct@-R +f&^f#ol#\H9\1"Rf,[Vh*Db3+:t7.>f4B)p,qmekGh$AN1_;-=5@(^ +npZO_?!%hJ=KK\/Y[;rqNAF[/tp"P3]Wen'`iHI>iQr)+N<]ibnI`JN7O +OP(A2fd2g)4`]4EE`lC`-=(^pF`gi@G1hhf:pkUP[;FbULY.Tc>,$u/1.'X$B%kd&N2:5F$ntKA'1?]]\2,S=lmA%omGI.^tK76g*Ik7@%,/tNfXj8o%BgZ^Y?N$kh'LM*2:LAMe?ier +gMN53A7aG:]3DDjgSNW?"h\'qgtV5P>P6i=9u(![_-ASNh@m][4f$k%jPE.<>\1t4 +Ff/PtLY-IdhPJE"/_(qsc!(uJpAOd5[u +Q5a8K\)4%ZiT9rFp&)O8;rA,c?hPZ&2BoiWh0A(EbNY!?Lr +@,pllbH=1jr^5g+A@4\FA9LFQIV._s8)dQ@Au82_Y"Kfo9Oal9jP@e7VCc?hE9.+W +;mn>h#'8lgpZ8rLj^r\tFG-+=hIg/?kGERg[X6*(?>%hpkN6+6p)4Nd@HIcF=_8]: +5(huuKONutAq#KsG),4?7G\5akb`-/[VQb&j5eLFk2GP6`c,Q3OD,95$u3lA^/S`7 +PXlR;&WV'HDO8MVW+_3WBr7?`[[ZO!fB;"?kO+o*p3u-&@;$^Ul4LGf2MC?bA85-A +BP*'6G)5F7Y*8*F[-(/aBuq%Q +G.6X]TFmKgjG(,/[_(kF]^+#]l2I8ip:fktTP+h0BI:UW$aJtlKksf.hp+XTQD\PR +\nmVoC8S(IY061?ba4?llLp6SlM=bOZ>1N/ijc1-0!oD#Q#0K$le)hbL6ub:R#s#C +Z]!D[2P7$?4#nDV$Al#7YY@/FN&kOEU27#;=Je +X)CK_g7K=G:DNIjphPuDnpX^42`L>`3:iIsOB3HBpE"Cb4RqS8EZ[L"L;\+.5k7E2 +f5Du+G=1qV7.Y7+g%QrfG:Rca!cl=5nE3CsYmBpp9^rd_o+r']-?JdOh=FDXo2c`G +LI>ZS;"[miok.=uG-\(maB(D:"FH;%K,Y-jT96aNO1Cl,3 +Y>'2JW,5%#GbqDP)=qKJE-3Ofoe=I3%DMRP]r14mO*=+FntS] +IJ*W.pXA0smp^PAJ9f1'AtN[[5G*6*_e.MTH7*Ceikb>Xq2^tiQ^[f+7!d1MH`*D2 +[@@!\K6e'#qp\2^:SRVkUHCH=G`S\K.R3cJVu0NgHAcN8hl?OfaS^[.q7jMN\?54t +Y^G'Ir9)AV=0_WeZMb$Uq.CgqJ$l:h?2K\lI:q*?:V$A;bC,`0eUN/IhqS%s^,Y#b +r"m.soZI]q_gWDud@mT:GAPhb%^V\2r1C$=Dom'%b5J0.pD[4^pZqh!m/GMiI4*D@ +p[8%d4o8%)HVtN$^Xi:3o`%3=FqJ6t-`fHr_O/MFHQ&R,h^>)iqbp;E6"g9dc/tAQ$'L[T;.7 +9HBRZ\^^=o5Ft\!e/BVCNC'FOGPXV8hhB]3]Cl]=mq2I_K1Y=<&Xi%>2RWE>Z>g +MQH;k4gGqVN__6lb[iS5I,8KrT?h1l\ig7]7A[3PF]s1;IpK81Cj'#GVUo[oghq=? +^#o';^Yj'U>WsMONQ:+#H!J'r2kA:YFF%4VVcU"Plum_]^?9^Rhl@Ipkl2H_a5ur= +rEaDTVq^P3I"!/%J(NfUqL/BNTBG84rP.fr^lb.b+l`X>n2(^\_,+q]#JlLT*=0ND +S1P%7&?IYq_bf\[&&WAq4V:'o*)-Yg-Q0jH`DL/I(<-r6AJ[guN,'SWa"[LG!"V!cEoIUYDd8Xrr8(!QT +*D"VCSLmE3'Wj/ado>]p:XaFq4],/n*DKG^'dZjYeTFSh=46BUDHiSFSSMD0e]i)> +f(JEQ?WWNkKj`Q!"cZsCp+;DK!NF5$jJ:XIQ0WeRQd+oG?O>JLIbqPg"bF-6@hXLQfLm0:@H/kqPk),=1sjdC!lQf]0GAXV\KY&0Zk +):!AqkF(acft\L6qk689/r?@eH;9HrBc:h71WX`^Pr,)".(/msE@U^[Kqfqn_bA-O%B4Ze\p+ +e\#a-a)RW!--5YILFpX=r3%j"o3C`?cguodAS^#.cUlUXh+p\ooc7[Ff(L,6A_1-Y +h:LE;h8S('pKd6/htN]IIGO%1"o739ISYsbGog.`iq_G#J*FK<^TEE@(rriIHTp?# +mee-h`UBssf+%?A'@Vg1ZX0Qcp\l7qjn\nJYO25e+4'WYs.AcXs54"\J4@q`^fHj( +g2mOM0HpZcfGO`-'4,I6AdUg`/Hh`b'n\2BX#E"#gn=glKCFa0_Dk6r@72Ap:nACc +BA![J4>D6qar!K*D%0pl1l"o`_)S>XkFE#IL_1+=`)q^*U*N6c;'mVXLn(Ld)ma]? +dOE.;V%r!c=GkL-e-(RZ6&FE)T2c8ZA&KcHk8 +"-5j,njhtoFO?NdnfL90T+bhDfp`XmCX(P?2l>ZnS5BnI`RqRYk;;F] +e"V!1WS'AhWNM3oc8Ep=dllm$q4=XPRn&>6*@Lc-TM+u?cj8ka?^->-Z6G$"\fF,9 +Kajb54c2pYVT0MfN1gr'N`"Ln8*L1#Uf`R>hlb<(b/-9-%L.I>tN:,,S?r>0NqqLpL-"c<8mbBC,krZrW48>$F^8 +c>>D8G-76:gJr$kAZn8Hg7;0cD/F./4[_.+Ug)Q<;JlZP\2O?F>ZT.9WkDE\?a`VL?f=P*fmTl-m.gg?N]C)A7\Z<.UXi*6G:YU0Tap/SuDlS;JaScHW0:C:N8/VW]6 +)8fQp%Un-SCor^@[MY&:@SB3?ffcgR=K<3APTpEN-8E#TcJrD.AW:]L1:\2k*aJ&Y +FKu*8aB8:PqEpuU8hQg^MRbJYV$ +hsAU:ZT\"?fqj5Xj0=3?:3")fcT#Q2jalo1Eb5EpGRo2s4j)mt,\_0UBO)(@oL=\b +=t`?Yh&W9_JR-4*:D;tt9r7KZQp8*Y(MVZ+Vm08V`nHInl:c,qoerf!XfEK'9S9CO +*j=-ua'*6f$$A"P9\3J2?=aRiYI3f5<-_+gAY"gH2Fb[=3uHc84e7tKL1/e3%l3:, +Xa]u`CjJRoD.!5cE\jlWcMNYaDI(5lN%TAsbk"'eh#!`9%^Xpec['M8mCi86q;5EF +IW*]OVK`<2i&YY*E&gD2EGhE->UJ\oL]YH9m9@s?E^7&cW0:EF$/%8;lKS"W,(:' +W:sWehL"..n,P[ciWiY +#lnoQpk#aCn.bQB)"nLW!Q,mgjut:KD!F^p2Gbb%&2aQ/3.UjmDiZ7"H"gD>;csYfCUAi#b_.blO'iW$IA)I/W.`4p@FBZ$a@DeL3!>kaT/Qg!71lP@T`a$ +f`A>3!YF:`8i!Bm.-bb&h@MA7&Ch;1q%'_.&+KZ30a/+u^BG2Y"S!'-;%j+BYm(d\ +##QNJ0dR$9=U*5f5gC;Rd5;/K2[Ak9';j@2Y`T3r7gSWV'_+m",-M="UD:%:(%A%8 +0j=,:YnjRI(@\^J$IlbMq[>0n(U8K5nAbsbM%(&T%.TG6E<-O=R17Q7%PaRc6`/EG +lONFNl7iSa0sqs?\Jqfe)tC`a,-MRJ'caL#*:Xe-@^?[:-PA/e*V%qhctN7fkn>d3 +*q;H:&O@L3KbRB]'X@`]nc]a`!b>c>((jgf;@t'm'd9ZP(6N_`0lnOYD'Fa5N"L[Y +dPW7%G%Zr$(t(\pnjN+)"W=S=,k=YU0qp=ROW]Y7.hF34Z,J&1BdU-&-Lu.(13Co` +d2^Q_-dmPnX(N$LiuPFb*YOM^Z.NVb/@TNU+*$m%18-1;q!Lqg-.9%@ZF(fq[`?UO ++d*Ki1;PM^*@ut1+qcIZ1+Oqs,qXh4.kuN+1,ggXmj$5@0(M@_&k=T&P9dG8,ng5( +;ZSRa*+Uh99ei[q0s;)8G;6EE1%QPD1F4et.":`@-hAu>1GL9H=Xd94.5O7='1F=S +k0tTU.^H$';c,Dn=d/eMr8- +.amQA1?UZ1LhG013V)i(1AH-8r@jE;3qKI81B];3j#2Yt0f'Uae&=)KaZQoS4S-r` +1Y"WuF#,W.1NPE;.pj<<5;[FK5-scCnr5K).j!/D2)G=kPQO/4k;DkE2KTNhZkYjk +0]Y$:2cLqdoHcHG+=biu6M#mu'9,@jD)i8t3Dqk*"iPi1e/7PkoN<4,@U\Nto'/+b8WF>MV57F_C`ZjfZH#::,%%hsFh2&/u2),[d^;=3aAP_2kV,uR\+ +8X2#%FYu`j3Bq/U8lVobPsJAh5>)^(:mFmN[8T`J_+`@t=r2#g]9R#lFq4o.)270/Z +.nE[R;O,!\@]NFM1K1^'>kQ>tk%@YY6X@+Q?14sreQ6("TiC^N'\-DgS^1In]=]%d9O+cA[Z#Q2*>J.iEau&B(g'#[@^dVH!Ze`@u`]Z2>^a' +s(HS8BVueW2@4)@#ALUTMUiAJG,8:5Ipoc/@Fc`>o;)Pt1Lg$DC\GEr[Pqj[a^hj) +D"c7n2UuYffK#6t>W1PP2WB9g=_:]EAbPM02Xs"3f4Pk7Dta-K.?#abI;lWGE7W+j +*(82fS."lYgt8GP:]S(O\lPBlFi/Gh8&_[WclG%sbVt +H-<*#G9;-T,C6gBHM8[7[kVoi\T7GV/`O$V\&EEJUN?/uF>l^<$4-E.=+.PS/n8=< +cXUp\T[-\VIeWA^2t_ZEq(fF'DKl2+=9:\X4*YuZGZYQ&3#,?rD0\($E*++"\!MQQ +T7XP?K%(`c=06e8Z%I9a<`^YqfL:.0Eb9O9C3Rd@a8(-bc\8jV^JBE0=CjPrKna1o +Jp,7c\93ROH&&nXL[[0Np]ZIuKj6sJJN+0kG`di-Ps6U:JiFp23$,#B>Cr4qMYO<3 +2%,%=4,^U/MtfLP=@7b/aBIs=K_WrK.+!IR=bZY,NOC2.phc%-j?!)"@lNY)(<_LN +q2`&aO8/g&"j>E(U>PjWF>(u^2%=(3h0Nqm(0-;TpTb6U*#PaQNX3H^[6H'bNmOI6WH +3Ip&[NKMm3Onk!)3K\Q@H'3HDP#mp7ff,*tWKT?E+P.Eo=[@ua[@='EQblUafu8q> +h3D,GSG;!4(Y8?6Bq;!JB/s[hdTr@\l(5HQT)%oK-?Y]$%A0&A[?q>i=c]5%"e`Dm +JVJ04q'haE6&->URea"XoOXLP\Y?XDUA;HYg%Ck\;4NL2J9b@p3RldY?[_Xc:e0o5 +q;i<9oqf6*V>=Vt3b193rMI.&VWh6G3Y.n;$)`)tVn*+r3Z"`@'WDukU,nF2)O34, +.AIe5UH5*Jo7*Uj3NBYQ+rWbCH./g=gSDDVUr`V"fPRSQQ_o)RXSU>H3n:?AZ)64S +Xnpk(R>\!>H*4aCY53]o>(rod)6\VKXI:H73s2I.=[Cc",K\[+hd,S^d^Q+ikX3iNmkmZ^X+a_elK"o5Rse[/3_.4&r\7?*65.[G'R7U8b=/ieH\GHfI(d1`I)A'`5\\"KEgS)3*V7O:6 +])/J=)m-^r\Zso&Kde1NHc<:k#kr[#V$:kF4$gQ,5J=\Z^"_5I6XR3PW>_7/^AIH8 +48$@5GIAIh[JU"g\c]E'CV[Q%^t]7)ReO;&r;0Z!\=82VHmQ#'Dm=[A\Qgl"2mUj. +ZbsDa_u$j[4?^Vf6,\.F`4SscS5mN*=2d9l]=P2c4!5dt-+nRR`pD0[qS?tPH+j-( +^-$t\*/2H1g+3'bYS.V`S<_3DRE<+4A@qlM4Jdj;Fho'"_#1IR4LM+-(Ur25':^/] +Hm-^]`O+DN_`TTi>gpr1j2IPE`SBFk]]IE9kKZ3ScM[(U4R:=@n^!`u\f>.uI0I7N +G`k1+d/1on:;=I;A7p:HdJSXF*/Ds*.EFi^aSSSa>bBJn3RbZ)e+@q.4[m.AHcj"- +b5A`urDhB-(Une,_2V=6*6H&\C"@URYh[jT*HfV-Laq3WfDP[$4T3o\J_6NIfY*F" +rKZ$kRFs`mc8%-$SYZ`D-d`oRd5.`o*>t0?FjaR/d_3EDIDsu'hC@>9^:cDR*S&to +g"j?t*'Hg7I7`:C"^HIYeK+21IIl=oob*"%_7a5o^!YEdbLXB8']X&^I<4#3).23J +fmTFN4sAp6TAmR2inc-Dr\`_"3#CBQg3j4$gV_be8_W`#ll"eqh9"Fn=knI1jaLL` +ckFH3+0;$jk5KA`5'?%5KAN0ZkOB58h>-8_pZTtgUA`3QYi81.sA%gi- +WStRk;][%@*jt$W\)Y35li+Ta5.g01_;j.b`a1rar^Z&*Xg3CQk(;rJhI5i$?gbX< +m[imRK"6>4ET`qln,EFX56TjBJ_j`Ce@Oi,hN@>X(%K#!n^/P/hNu(5J`*,pl2N_ +Op(u>_-mn"<#QV\L;Mos(kbX+'o>ARO=0sD3?=/Nj:W=,S]pYf8YiY;<2NeHQV-B1 +fn@X^/Wicj%gR10FS;5#kS+pM%Z*WL;<\d`qD&jED\9 +;?V=ha79q&,"V8EP9WXs7$f8mZ@nVp8b/C#V\,^ZI4S#hbdT5uZNRfn9Cj.@1/.9r +dk]0h7+jFlZ\73r:",ou3mMfRo/ofi]_aife)^Np9hI^]D4QnK&OXr&AJ[j6<.u8^ +dI`\S8lG;P1J:YG`A^Rk[08Qf;tV.u;Gp@qg2540=kQj+ojqW7<`Oid>?8/NBjFd4 +h/cn(p%GYZAdO]`OThi[fsNd>Lt&- +Z.`ooV0(N0&XS +Er'Eo`d++fYF:Re`3DdiU1jBEPG;hq7[L#e\qZWPC&4ErWbV#uD65@0VRn8Bd]UKl +CjQ*(Z#&/Aca?C;%bj6coH)u#DEF`Y]5Cimlb)Z_f)*0S1bDG<<4jMQ_=655&&iNN +B+`1(HJ4Kmfetc>b&[EP1WsiEa#D=c]`hW]oP#&mQun/G_fFO\='O6urEj'dG#oU> +dp7C@gLt^MkBl*1rWe)7G^_#uj*:PnPN@(=B:J(0re9"c_/P(d8@anV?O`iBHpq[eW'P!)aQ8;!Td2GkdhMmS>2a-rj*$]iNNfS&H^DG]I +A&N_Bnb,+9kkQ=]'S/>#H2Pa-m33'.qgi]5#"\P1,\1_TOqLYa8Qdbod"t:/io"Xp +dBaaf&RU. +l^a6JG>@tl>U-=jSs.HH7lg*&B?Y?QEY:W5q$0/4o`:_M%YIS-&9(6DmiA1SL/@.S +6g/m7O]5>O+,Mj$W7761FCpP1qE7A_m3@1FE_f:7;+^"OT;?Y,Q;[Qb-mss_PgZFt +ds4cK$:M4deFoJ4q/9)Dog5Skp0>fkOYCNL^8Z6%VG&q21M0n6W`<*"HO1![oW@a>\fUGY*ISM=*jBtkIgYpQ0uC_])c8T +%!SC%*eN$K&Rk$+L9[$kK@%1SA8$[\U/jn/ffCQ+?aU`HP_tQ*gHfK>'qVduL=3HO +9h[!QX0l!:R+f_jCTW;sV=ir#;i5EeD:GO6FV`k697]q-'u.8&#,7@IT2Vmm9t?T; +k0+'osZ\qn75lmGhEWE[f9+hcfHulb/XnpKmaUHuG;A +^6dFJ=/uF1lkTE4=8)RLpV=j$D2Y[O(BRul#D-nQ$8pohbM`7LKP[Lu_A6S>ZeIKR +m5>p$=E`0Pr&KQeoEqua`tMZN:Md::.E.[L(Ljp.ACdQ +Mo*%a79OknM"HuWd[5e_Bg",GFN,WGppV)SrB7*$m\A8MP>Q&ld>dg"2M.=Z+_pq- +XE"NOef)sLj@kiAE_a6gHM1WTgnU,m(;\Xk:1\%Lb$21F@a#cEB5HCtZS*5rS0cl= +B0EN.G1PF&Rs/dfrP?!f'%P;ggN.7Z&:1tE +YIOF19Bi!+Vf_p3e9[H[Y1ojqm]NhFqUTf8]?>Ekrk6s.Vdeut7sf1"dCss&rU$/Z +$F$*2giu>1i;M9!SaX=5DYr?Rs+0[2&&VlOe])k&,Oq:jP'I!Gj=WGb +jd`6lH!`;02?u&0SCa3Tq2KgYR82rEQ_'k.ZKe6(AlXHlK!\6p@[n5.hrNbTB.Zl42kE^C0Ks4i@X1r((5 +5YO+%6o[G7d4^.\6`^U3ZjXdq4@@m4$<.MNgY"sl%1_C),/b3a4@DS277:BM6u5@] +H6U1A(dW787&i2TA/rP3*(8R#`8jW&e/cC?+2o3s74]QM415NE-:1ZW79in_CfiCH +-UQXdFR4<+,SBVWHJ@7)#C_^o7]kcdEZAOBF/'bW4I!A/?Gmd#57%ATo +XF(I6)+=+G7-oCkr.%2r:rPh$73mIU4G-0t[>O) +?HC'EaOH5!=bNHjm4H_goY=;au7V]TUKU>6!R&\AG7au?GjI8`bS4VJc +$?U=/,]QERT8JRp$2d,n7!ZpKV+P!i8o1CtI&K3pI)ill9!#$GgjR6@I`Mr"9'i]: +oBAeFKLdZ"9,t92'NBrPM9B.\95KC,FLDaFMTG.q8GnNA]Xl;)]1^<]aU&nQoTMj? +_+Y9S8ONLc'UCaHV+I2s8X.7R3qg\.a[t"(alLT<\S[4_Th5a=8d*I-pnc+]O%MBu +8rV4n4Od)!eP0<"9kp*=SCgH@fZ1A#b5ABd]WY&JgEZ'hb:L"po\`A)i6+GV98qn( +K]GdRj[a3ubM;8ReEBQdkK]=Uc?\GD2!dmUm*%$J)g#W'e94N%C/5Q7+r^4"XRo3) +oZX]93W,LCm*3cPpeRC4MDWa;4P*BQrD25J:[J*Wr;[Zcg!C_l:b8Z+/5/dg"\m5G +:#-$r7,H3(#sQktd&dW!o]".ij3Cp>;!e`f<9DK.&Pf/8:7W%q*>?1f&B4.KcJ9:3 +m-[`1(SOP'MR;s#*66I;?U/H#;=+#(o_$W?e'-><:Q6SpTVP:.)U_n<;JddZI4/!Q +.12%9:d"nYX0+,k#1-W\dbQQSl'dJm$VgOBM"NLO4U\aB%++YVdqq!AI1N:<("#`: +;+3QD/N_F`4>f*Y:8#)DSNp&+5gbi_'I>2c"W^Ib78^q(-\uLATQF.XF:):s;>j-e +X\;UnD,5QT<:(p[ocsl+1=SHb<@q-L4]GEUM +<)#h_oOoU`8QQp'<0^'TeP"L_9\3!^-J53FrHM3kcIH3H=06gN]mNo+I6H+]eW!Y^ +l@)a(>Z`"NfI^@Hr=j^M7j@p#:4fVOE9h.B]aNE2U1En@/Y#tW8W$Mjg$NobrH?ls0oBOe +eHM^?*IZX9V-70%>&C0@HFVT2J(gHC9q\964b?kVK3HI]fM.-$kb$T-YtI4gfWDJ^ +]sLnL[7c^;=RD2SICEF?OP?>96?oh>7?ZEM]Na,o,5%:,rK^[lQJ;qd>TL^e'uX?/ +QQ@08ghiH;)KT&ha]ZlX$:URj%Er(jbu,R+f9N,do[$cqd9Rd@>qON24k(MnWEQFS +h.XXLXfbj`filq[/8_RmIBX%fZ.N(5=C@n.9s`S[i*IDa`LXPDXlNeOj]eSChFc@W +"hn3kP?sgE5J_tW9uGadm9\'*?H)A>h='4fmG)9nf)>0e]u]!*oi]heg"L,n(&2%Y +ptX\K5g@Y_^!G$,eDK*]?g[l#rW$=3]%qM[>,D?1"k[+Of\N\6?tqpI*T#Vkh[1+S +i2ncjrS_//i8EGN@,RU42R+cgo."*VBfN?-!ukc?a]gc/GS-=.:Sku@]h4j^+9Q` +"5l'i?n-J!:'Y050k1\K+*Iot[G6Wt1h0_2=H3humPn^*3CT%+@3uZJ^,oiM'4]PU +@87SJrYK)L(po+EG;"b(-ZeMc?3j?SE/gWkD"1pmE<'^;JI4IkO,*[5,;pgV.s4O +BF^qR"KQ2WKBOq@C8M2Kg_l#)l(^:S1+\shKEB-+fG1,J1?FQqAmg""8[rkrOE`G,QNMEZ?&HeE.G +a_[QkCp(rt\p.t==DET8NBUM1T$V5Td,httk_3COm]JuJYA4oXCED)ECP7R'[HgSo +D6DT0^=fWH`Tri"BeJ:[krK0K]'^WPDC3&7/]*le^@#8qhbM&T(?f+3_sC^Jlt5O# +^7f2Bm93!'DXQt2rpXh9nK(`UD_BcDEeA?M1b5,C'jiXX+':#I_o_]l0c"j +DQaRM[3BMEr,3YiEA%uF588*/H1*Z:nRhDq(A7-7)"F.LlGh>m*r0`/Lunp>na?

    -@MdB,YcV4@.:4Dk,eok8V82M/j+n +EVDfS2^.`^7<1%MnkVb?5:,lE-LuXXhPVdmVbD-'9ldLilg/fcrsX#[_.i'gFY>NC +4S=T01u/[%ol!oSIopiS2tNXWo;kN"s#fu#4nI0S$T,dP&?Ys-mF>m]Q04YX/ +7.b,(FFRopDeM@B8G&fOG->XJ#2sU3:%ZbKG4%nfoE7lq:j4!8B1GjB7oOIVFZ,:\ +C+!&)Q[!_8H$>m,B?sb*^KVQD48%cBGNW8@DYNi?Y4Mr`GTI9::Lj#]Kk$`dp32:8 +O,*FYM0>L`p:#qQ]bh*#D><",GihA[m[I38Eci1=o`ks#:R$&nPt&N3nJ';nYF'Tr +Ro.m2YFKaM(jH"OGP@^n=+L'!@!F%>C=`7V8#1B:V"+.gpkPblQ\bL!Vl>oC +pp[;Ka/deLV0Ma;Gjhh\s&f(=Z$A!Cq*1/?:NcOu-Ao94pN-pkYIJq?\U0s[8!f_B +^O5DBSb`;Wp[>jN-U.AYL^MIZ;cfaj=2]>Z`DHT3qM2'JJ&cqtWC#75qT$d(^W]@o +UjDKII.,?h]Vf_ZK_ljSI4s#X2>?uL[/F@=B999CDXDeSfmTLHIBVC,kIg]4S@[$O +Hgfj=kMRm]_#,i*$Ff#.GD#fhV>ai`:1cQbLWTOVk^K,1+P4g5cg6+m+T1-#r;Z3a +rYi^Fe,(Hc(T6g%2tDG^Fc&uGI95#"F:*;3fP]m,s0)\,$&-6iOSEoe)\\#r,#MI\?8WLY7Ur^5oS,XVO3(p1BdB9M.@*RPd^ab6 +@5F45I)Co`BV/U/:('.Rb,:8#9-uPknZTSOf>PC=##4At`D-2j`.k:0%W1uf("+#?Z.n#joYL4_I2lc/4LEhLW*bC +R/C8\*KnKSmhQhIh/M&lB/=hh#(K(5dV*a64Z938X4-BW>4#q:A[0s*2VUC/f5\FY +Dg+;Ak6$.Kic+\J/k6_Aa5qAfS*\+J)MVU@qRoY5BhrnfBLfCSb8It*OVpAhhnMKi*bk'RU@5k%Gb"i8Pb+U5e;HmK-: +OLuqL_U-de%E$QZ5n679,Y8Wed6(8?`DKl4AJo,#>]I`F;5e4M&Zfmi7hOO!*lg#5 +Gp#W*%#H.KdM.0Ka\cT,,Y>:hO!mTJN2\8KdL9/s*+sr4/k^6O_(X#1oZ8f2ZQ.4H +bnF@.2U,0Bff.2TN9N;se"#kfcP,+,50l%_q*7a*%1,>Idj16[*Qe6qHI9*J)+`0) +Pp&`Ie4hYkdo>-`:=I_k5u?'2*D'/YeNHc/eQ#mXus2@FPW:3h0@ba`)`DbagLQ,?PhPkIc!*_q1)i)%LI^EfG5'J71//oYMlML ++c#&Kr@s/g3-I$7X:\A^b2^^C6&t"cr^E"2R6F-*jOmR2Q0$\:@?rV[6_*9#frf;W +k5!SLS`e\oJY$OXreI01RQc_,kcR%4s$0BbSZ(flStE%J>.1E2lWVTEXD?PH^AGlg +r'do-d14L.m2KB^[d?/(%q]]M1h4,9qm9eDmp"*5,t_D>X2%@*%gg)AdD]t=EEk.5 +_ss7EP8-p$(FdJse3>V/o,QXFcLX0u3RDj'%nY0?'b)\Cd[aYq9(%+W@G(9ZT5!$Q +h7msbpKc[%hY5k+J`-<0+,T"PhER.`q-I>cG[>iCTm:rJJ#2H,T"h2iqVKi/FPaM[ +'8-3)+3!gK5L"2VK[ZL]]<"jl1lJ"MD]3hBF1kLop4m`0U+Sgh]]*&NRm#(ndiP +KN3m!?7AsdmaV^(ZQcLN3SC!7[VPjSO9K$::<)98;/&DUih^FhE4;q +ocE/SI?2eT5Y)ar+QOf%OO>1<4#a\ohV=*;Z9C`L#ot:%Um$,GU%M!DgErP?S!29D +:eAbt-fl9OIP:+g5H.W^(sJnCEi)kP'N"sDU^r%)hHJ*ZD(]D\]9gt2?o#5:#U(2+ +R*^_#bZU&`k#BTn1HoDF"/)AsPgtLE?5cOpXYsePgRHZ,E$"dk%q5\'SQ<&Q$'5ehRZdE)F`-U.]slSTS(np!E9Y?Y\@3+2/in,OmU\ku +[1_\.qk\A:U[G)r0'l4=[8[L,R(J]4W%-N3Gj=t`X1+\k?Am'SDbXWAQbKlb)V]Z. +L%N)\f)/m$gkr/_rNA0Z]3l$FJ8ch;L8_,gi0sb!X;22[a?a(`r$>jWV2N4#:CCU! +nRa?/*Q+7nc!h)ELhu+7[2+r?>'s8*nQ%6\R(^rt]2ssOQ+t>kh]--rFcQ"S4ic4T ++ClIGORaU1\Mk`Y>^Vg!nm4nN2_OCO4/8$\VGkXj9.XXYYBK?Yi6.I#T&nbHQkg.t +]m64BAt7,7ZUS`2Qb*-&Cup+eSoN&Dh`GJ@l>TU,#/FCA!pC'kTQDN5Rs"<-i6<"2 +FCktM9$[o[*&",WcB?Ve;&!J58#GelS^Ubh:20@,N%oK+eCp6gC/%^-m/fo"QF;b5 +?"L,1VR>"/hcsrfFftE"^";!:'kGRCPI;f4f\6n+8W9^9Ek]`MgG`e^c(r0eG%8_M +?SRXZZ'WVn[*@:5E+[A6\+^s&c$@2ikDdr^[oVnPS%j+7(cS(/(A6%dgI#n=otC+Y +ek'$u7rSqAUNcjEdbGp:E/cNfnA^mG4?lY^*C%L;LD3A7O&g7k;oZ4P)ro^tO=&IY +X8+)"fGpNJEh6:Rq.D;@gqT4t*bERB-HP?((Rsc?ER*11.b]5>BCl+Vd!@')g)F+2 +D/PWeF!1M;H$SFf:8PM4VWI+!:TKf+dCZlRnEZWpYBCu!f_YmFhn/?)p3tQGHY7#, +RNm@P:?C8XVZg'_/%fhmotrlK%7L+u^i<]b`4R1C_tJ;9nbtQ.r)\mJ5!KmZ5"ht/ +B/K29?d*ef2AH%#)H65WL^;&6G+'_OGhbWKcgST=T +R3-aq^$8FqVpY@qmsk'q#Mjj\h1pl7 +]_BakpjXZ>_RqtII\.)Gr%II9:.)sEcQV>`QhC?Mhta+^>o\6hYOkWj!"]54:^6u^ +$NSNa!>#m*cVFS&9``R=!U#uq%qbs)@03WD!mi^dYA3e#3qkoEP%/qpLrm10D0XhE$\tLE(no#lV:ra!+b7)bD%1ptt:tH/< +aT8Uh%M7M-:3bGg0+Q>d%e)1`;"FaM3Ko[;$@Mm8HggZ"VDCO;&4`oM["-1 +#-f6_;'Q^9+MQ3@#LI`$0fKbC3tj']7W=+ZO[g*_8jjq+$*][00UWYQ>-Unr$F+(J +;.U)sAtY/=$dcEl;0*P9G7.6_s,b+K0\[G,M\sj&)%i&M;3r/_RZDFN%PT+G;55%` +UB5E))\D`_0_lZ-\fjh2&2D'6EQ&KOaJ4k8&Q',\&_:M)=V>^+*V&/&Z/m#=k(:u8 +'9PL$1%u@/ptq.='Te4edK:VF,o%"t'ljs2&f1CB@2@7++q\N5;BAH8E>R#F,8#8I +1+s"GpA_CM,R#h=dRPRG9-hq],na-&;HG/r%iQ'f)KK7)V84)?[3j;3-Lnbs&p>Pj +_&RKF*3t,8P(pRu595m8.2%[9%_!M,lRC6G.MA4#1$]nnq^U"d.e3Hf87#58#:n4+ +/.Ul4&eu.Eb:Jh%Sh_<11+=f9d1(t`b;KV*kr@!h]1D;Dt;MYr0t=2=e(36d/Mm^EBi"2U:YWda9Vo))m`"r=\!>Z6qV1MXYSg +0(S<\F-AVJQ?0A'(fL)FEt(0oX#e_53tnq^;n"iBKeYA$47g>AYj4'.,1Hi''4k&FT!eR7i5;Z=-..^"fF&OpepHR.(5S'GSo3jnJB0`e5+6?ig1N>^E +DUHnQ2q0'2ZmRg"0^nUi6PG5B;iM,?OZCmU6kc%X1d:q8,pY:@[<&rK<*)MQ>=I%K +7MK>dF2^6T(Ij=B1"4H=;q4BZd7;&p4d4tjoS5t:M`u6=gT+gJe<`!?)a@:(5P+\C +<23'MTK*M,5kMBJe@.^P%T\f16.E_E8^0R9.7-ua9[qLHo7KCe3DJ#X:'dUI1e1<* +78D?'rj/:do_1C92b$dH:_a(/<)chgJ7.el. +<6nX/)aa0U:,Lj1'o$_)2bpaM=S7kQjT8F];,6sar2&TV@ +\m"^I;H:V429/U[ahBk76OdRO]ci\@`Kls[@L+#;d2.EA/7OC +<_$\d94Z"?>Lg8]G#DV2_-GPu>de-I;7B(Rfk/ddB,068/%A"KarGukB@_WHm"&JC +6=sb(?WHQ/?:G(CA&'kFqJ/+]4"aT#nkctE\: +#-T +LDXrb=DW*HFWD(MIWsb,=G)Erj*lp^IlHh-qP&eBN&$&[8[9pc`J +2fjmQdSgu+J_7l!%QAVl.sOtbK@nY4=P&P"gPskBO'"i2=@52h=+p=KNu7>H9VmGf +@tkj#L%tgA\&!iEF,-.mOVnOh=V$:*>*rCGLj4oB3@BWn-tq,8M3sWn=HosJSVe:L +MHN:CGc?SqX+5D,M`A84=LXQR07gXRJiL`8-RMnSc'H`Ued+5)4K6ZRi*$33NnoQLB'=\P.AK#)97o^ +VF9)tP<%$SEk"t+URg((S`E:B3DYmml]eqYQ+9tS\b(bj23o+kTGd`%V1k61cWV3; +Tc+T<=r3m$)ki[RU)Ac6R>mUq/"%;/R:7&%\Y5ddT;1)9&@nd0\[eN(\"q_JV#!`\ +)8-#qadcMWV>=[OR$!qcCRnXHmH$3s3d7/6H5ZJ[Pe)L=M]\Q/pRaL-W6oK[3X(gq +Rr,'3TXplYg)[2^X/amWWuA>=Z&aX/h^cU.;nWg;C=eagJYOO1NlCqe*?A +CT:nOY.JbXRs2$iFgnu.\(60LHMP(>pUJ[HYPSR/)jca70sLPIYrP1VHQB\dKgL!! +Z?rp`>*6,F1V;BqN!S[SR*E"MbIlTU]c5G6:^sfN]sTLi8R#Q9>@"t19t!+7[[Zfq +g[^XuQ;Kd"2L6V,b'^q]GJCe0;b5,YWO/I":#W&UUhBV_ZVp0H`b2T +)K-S"]6c!F4"%YP_6Wp-OF,#mHZ-TF>K,B)`Z/L.9S^;*3sB>^+4ecbB;P +^O1[KADQ\UY1_7PcN4;_aW0u@.[b8d^iKNZ1i]>Dn-_gFVk +>H8Lo6,[$S]3N]PfjD\p^LIUD`E:I+I-8eFld";ScO*7`gYL25Dn\=!a1VN#<.1k' +Kub6hd/#oH]UR<=RF0f\dCg^Nr?H_BJ]`Bob$?c7go\G@ZdZL$PM@t;rC,5!%A%sh +eJpY%]Zn\a>JtXDc(*V@;EB((g)XVff%k>srGu,S=0o:4cTQp5?&.('MqH'uc[D"j +r;Xg.#LGW'-[cBM*=^_nV^N=-dXAIM?+87Q[G/C*gYEp[*AP^-bM7_i\NI:KrRZ.^ +6d+:Ye8[pASB'/cl:(RnebmtT=Lm!F:"F"#H(B$7?$G4tFl;)#A+.<>e"1L6SoJkdFm$HqnJJ0HrdjU1m,P90-p&FTI]qt,2D?$=1mj_8iQ.kJH]j>WDMtQNJ#ZK7 +rT=!(^Ys-VS.7IgO2^1#q-;cP5FKm]FF'KA[nF!Vm.L6]hS/9Vb%8*\?;DZ0dHC1J +]q1j7YMJaDI/X(PQeUd!rI06gO7W'b]En>3C)mj2%0F?7<"fI%&9J]n_6AS?#stkT +0+(&XZni1ZE:c"!6a7%a&O`lL:D(Q"bQSb3a!&HI7Ic=F)+Lm,D]-SMZum?YEV+T# +8!4R9+ilDaO!)EI<0nq'Z!l@/T!F$G.*?S;X"6l+e?:II1??2'9JYtT.EU$qcSS?P +<7a$&ZZP(a:,A-t3_m#gmlXB%eFu.&Zh48_:c&ml6;Y$H%n'8O<>S,%ZumH];DaXd +8lE%(02,;$eMg6%[.QX[:P,678(;Z58Q/VH79#lBGB3Wrp`HPTh +[EX2-=;CL]@T8Ogich!f7?qE:G'09f=dG>FC"bJAYA7?#Xg`+NQIWTd>PAlGEa1OT +a)bNF7FuV:[oM7-?2'WEH(/u`>?[Pa"RGkO4\A!n)sOlSML:Qo?M/i+iZ3HGXrYo/:/R:a!iDjk;V +[WA$QH1lBRB#G`jY;N]%4QtC\nmb +Z>:$KR/h(WmaV:(HZn/RD4?jK\\4/B9bg)9`qR/b]?^GjE#\NR_Jjl]"U@fN7#T') +Hut@hEP.>S+]L7F_(n\ha#D7a][&gfF8WL;dWE/]:XjMM='*sq]m!i9G!21)g310= +DqoP"f6?(q^%[$7FquZ`icoo0LZE]o:QOU_^1X)"eWrAaH/@D]YNgHu\$bRLIeUJD +H_2+hnbbTtaa@P><[[S"5BklWI@lk`q>NUVn,%S^Xt,cK)-d)j&,$#gp]ge,,R8kH +-3Cum&5cSG4_QDG#XLEr"^m9*JrjFL6'sY:i:2=hX\KHc=@gsc1a@\CQ4uZq<=<5, +QqZn4Z*n=Y%:PJ[L61C66^W+>dVEu]%FQCY(l&Z3,Y*[2\ML`s&JH@0LPbOZ-q-+l +'k3,!EDB7\3@ME!,4o)/:BZZg(s(m8/"hjKVDLcO0c6[-DiPFL3Cc'n*FlI#NtLM; +8%A@:A+Y84&dCWm3=+uCK?ecu,"5%J)'WU-Mil=3l+VAd-!r3iP*09I8XVRcjRen* +&p:V`1L?Dk!$3[oY'<>jJZ&S.hd5:5\j.X7^hCp%79> +altp(/G$*s-H&;4m6BdqO0R8*JCuFrAE(IKMtA3G34T,YXS!13oLdKa1p]e+25dht +VU\k^=_hksYI54dfipOPD/HVhVGtRk;[[kgD=+sEeC'sg)i&EJ"ie'=*p$XrR(FG7 +8u]9hkZp6?F`*Jq\rXk09\dsH"En%Eqb['VmY +I;?OiY.*Qk?b>`Blck$s('akB$jhH'.E/NW.`:2W'n^=/$pAIab2GE2Kl"13_Y@1C^\9hG-=c79C0?+jL).PdCNH)Bc`u*t[;1!_PD?`>7 +q$/!P-&e:1D9KI--R<68O-=Tb:0uO9lt&8^Q#=lKb*c`i8mAcMY81KX\UuPI*6FT> +2-%=+b4o<0eXLVlDpR?k:)=kXfRB\bWCR<'.q +g=p6rmB*Y%p@0r`3Q!lF4iOsQQKHtlSA+/kpRXF)<6*gO7F>^aa#lE +bIM8Po%n#H/08BJ4SLo"5)7J\00ltVkKKh<;;hqG\4C\f,;ksI)X_0_MfqVPkqn:(,gHaho0 +hhHP)eX(-Emsj?R&&A19/`Ch1.e94Pq0tWnrI;n]Hlla.J+hnW(^EI-Yg,"sr +lBBEa6??"[lO^HK_a:+5^Z6o^`%8dT/]-R$_XoM!">H(0s$J%3_^ki!>L(#X#")oY +_fQ("H;Tk_#f*MJ_k]B3Zoj/60#7*C_!F;$r'80l5mfF[_*er&,X]LL7)WQB5uJCa +&O+%48\q2p_6ckO`#_4o*lR)h/8QNL"`L]1bIcG6\JseCh,nlA\$"i6c;%*KP/;h4["'; +6mQQd*,NOrD+;GP6o7BO>XV'rE5s5C)5LUS$q`q#F[ot8//(E>lqL!7Gdo"p`>![< +,^dQMKLI^C78[a;Ji+PdDNk!!`JGs28LHAHKti:_89BX.KS[^6M9)KMaL$ki*+6c3 +NC`,=Q,I0%9T[8)O[`<5WUnTYUm/lXPt%:/[\R\.jI!sBRE"T^ac`dGr,Kb6SOqm_ +am>S!A;h4]G/mj38i39\_6c_&:!."CVf[8Ue9jdAWCin78*G;a.J"35/ff83'D-oD +KS2u,.DL89aqV2*7't-:[EE*hbB15.m#Of(NQ[iPWGIYf*5'BM]h'K`T0/?0FI(,b +Q:rR>T3OQOUmoS-`6;b]9PKTt%%p:YT?O+'9XGMWJO.F(c,r/o8jT]%KVlecd7kb[ +8qa1dN7?*?eWE8#PFEsmfdP*jnXW@X0e"tN3@.4,ZFiiQ`_.c8"9N +XQ7R#jiapfbJ_*>KYL9@^.tJ&P$GiI2!iN+mE@#/^q@]`"NA[qa3Q%$b`']gSBK5H +p!6P3c8dmYo_?Ysq98[Vbm^LE*;iMZs$?S69iS.=o`1p&1JY1U9A)g-dF:mrLD+KW +b9Yogm.\kl$.,LUd'X8.`=1#pk0?s::1Xp@.5Xej&^HXScE+cMFRIOUm87-V5c!kp +'c>7K),D7k`mjV+D"Q-)p/0WcWshP5nN0O2qU-Z5dP0P(]_p2WrR,3u4/DpTK`BJc +!B]BT;)@g.3_c0.2N"iV:i*D"AI(W(h9a\-dkrr175WIn2:H*Gd/>oMof0r/2UNfa +e$V6c_jaLt(/s<2;tUp:r>8D&6.*),;5HXgboBUJ7FC3ddIg"g1QBhX]"s@%;EZ5R +[7n(%V,CRs<:s#4jX8KI.+Fec8&XT=]@.H"^k@G<)^J0eh(C\b*u'.5L]!b(Y +f(EpOohs<\ENGQf<5!A&eT7gDk4#FS$- +EAgo*(/kq(G\s(Q'5?^^"H]*fgWX_FdH6rQs#usga#8?Xef2i +S6T!J0E%Nrm7^cLF[XJu=s_?^Usn+9`a%WE[*>IPM0bAlAr@*FKrUAj-!J7A +`Kc']Ks!bMZJDA2h6l"n`SB:uqHHBs?1$OF9oN?e\)&.89?fWSXlS6Uj]f!?>LgMq +KtlK0^0[1O>SY.]*UMY%mCL!Lh!NAAp$b0`-h/<#L%*NU +iEd[Ec't7;4k#1WrEn),XXQ<`)$+$/!QCVci&1\q7KhXM"lNkCh?De@i>;c..I+`RnR9 +/`PnFiq>%c"u)VA$"/cKi.M,=V@6k@,3)S]@+GhGjpts\Q!jk0@29L9`]M*c'B*O< +j7X3u!jcq?XpdM#A(icZ[1 +##AEiNb&u(jSXVeq)Vmi(>pLki%?`qL03Q'=llMajfqZm2DSc+>omT7j(;ZZc8O6N +-=`?$Ai=,\5_S1#4QEk^k%88>aYRH;5ND0Gk-c%hAj^+;D:]OkA6q]8AoKFMT]D,R +iTom_N_8HbFc^<%jp]#a,R3>t:ZXK2kGEUh[X@8@;*o/"PI7I4<\3?M>NdDckVe(W +7YKlX?=hE:jkM]UNaZRLM:&W +F_PH*>#oQS%WCTtE9AQhjG'-7XeTTRS`\<`BVp"eG"uLAHtV<1C,UKT5,.5`oL4$f +AQ[c%*ee?pWTp@\lF*bGAqjuJXm4Dsk`0%aY-;[V<^WInf#6fu5AC*k<\>2+CruKt,mIn//qIPjk`G=>ia5ul+No]O2jY/U/lo+%k_Bihij(mdLkB>E% +`lHQU2Jeu.m&odF##g^Cee?VbD'&<;7eH.Mp$ZFHD*I^]2Y_rS?Ys]Wm_nC#IbJY) +[-ubBD786h#2F/5h9:K(D@Zj;"5[o:lL(PSYg+/)B*dp4$-.HhDN;U'^7=V_ic*tY +m_7:5f^M@JH1(D>mgg(LrtOQ7J@NVi]I*@BLD]QJ)=aUC]O(AM7i^n[qJX+FEC+5&o1MDa*dX/7s4!Dp&$W>%q9c";f:IEF@Tnc7t[tr7*85D8(0`G6^o_cGXtBOhr2jpa0AB?WVH$Q$I"Dc&GhJP)3iN +Is@TSq6ujha.2U2Is(4Ojk#]?5G7cma(?]QGYb+06S:rcL\bY=H?Q_0BP.NoEr)-& +HCq56YFQ?IMg$M]FMEi_#B!60O)juUmXL@FmuhX!lhH3^p*(R+\=(4&cOHuGet0)t^-Vtt>Ri?tT#^WcP` +c2,K*I.,@.pX&jDdJX$jpTL`J7Mu"%Z$R"@b"3t-0A,VE[!b`W_DeoN=2[W7\9jk) +qj64'k;W:IRWkBl;X=#hf>.Aejo/oTrcNtn-_Gc>l#30DIFm9Ra&A+=a8Y8BIe!C5 +?cmj7bC$GUI)jZ`(Xi=Zp&@PUs&\rEBD;Fmq#&^CIBWOu53.-)rV^i4HQ[hogh`o' +&dJSn6/bXRA0r6'LI>S`3.+aQ(5bQ@;4-ER4UHVZA5YE5Q)N2S8`_^a<45p_Q-5u`24RAg;gI0\Gs@otB=']'&qrc;dV2JnHet/cVUOg1)Pod&;leGa'tVq=ZX9k; +/(PXcNm2%?=`"kRA[Y4rF?Jt-.uhjAFhD!5=*rccq1$.eDn%n6''!l<]3T>[<\kO< +`oM,b/9Y)6Ls0IA=\RsR4dOFWF;d9UCJC_VC3<^nB")'LfPG_84f6hJ\(kkF>J91n +ID=]ZG[*E[(QHJrEd:p(B/cC-k]D,V5,VJafBd[-?,#KG^#/=(HsT#bQXj&/U\u7; +:TrUApj522s.@?rp\TDg^V@h\o_uW:qum$bO:2Kt^sGae"i0VCkh*"6MU)S\0Us^% +_[rV$$c?r-3=j$T$p,'>$WC;SSYrPd'h'i^>o(ElA7ZRsEK"TN`mN"G*QJcQFWSU9 +r.Q4`Opm6laO3bE--5XnPp].dI&/!oB.:oH9%(Y]/Ba43]e)njm)(L#;_6$Hb]?J& +2,+`hh)bqF,]?FcI:#'4jOf&ofg_9r<5D^PRS!dd*tb'eX=F&b=9nOFWj?) +<37Bh>7s +I9fqim;CMj,rqT,f_.1bA_C+$P@rR7Kq2o2QCY-l>8F?ICYMnW\Sp5H%D?ad(ELb@ +h%qBAeYD?n2g4$oIH>ZZQ]:_*1nh*d*uW2c./?O=3pK/#j*t3%r5tS#!J!uV!^Kis!T6?P +JP[s'5hI(Zi.M\o:eh?`==j^%@p*T/C(<,23sOX8+bUDe&&ItPqO_iqKb1C%6J,3E +iF<9amJ\"_k\T0#`&3<(hAnu9Gn8lgGAp;T+usn*jruoZLs[h#7*(W,@Y@O7;)uY, +VdSh]N*)!8?7n[6],'Du@>keY0?.,5)5AHiNCm=24t,4^@sd6r;8tXNGC]:[_pFH? +5!DK(q]=eiJWLK.krl!Sp1-PGOYRtH8C>HOUP+biE_8C72h#\=F>8tWAkk5dDZ/In +o99lJ;*T\^s'PlNPnL1E_22GJjb0n);U/H==`#bP`4;44mTrQ>I4s^c"ba+;@DYTm +1$1=7R'SDU+S0"hADAl-'2E79=edjsH)l`TqJF.W\Mr[CiL@06E)&m[&E9K_SM+;^k?RPJe&lo231CYX>\Ka.k'fdfrBBEBrLai7JP]MP6/sE*P-ci6:t[Ef.!\-; +1&d&$.OuY*]c!QoDN$39$R4g-:kn +MJXf519=HpZ;qme=Q[`*SCOc_f%J#HX(?4Phbfj +mY0'"=&/$d>HN&9`3lYRDQd@#\TdJtiOd.5'AJu%H1*WT[o]6+9rd0!l^dOJQcf/3 +)sr%#h0-#'!lrP1Al!DbcbA8ju!_,a>8i1([;n9,D[\1$'8>V0eH`LFaj +cAC7j98Dm]+iDrj&5hajCN2eH[FhYs]p8>HnV.t%_2)o>]&6gUH]RS, +F+T-Em,VE2On(t5a]U8DADE`>nqL#a9bQu&$ceP'[TUb`D$FEUoKt_/ +I;d,>bo*]@k1nIK0@gihN_VK^?frr_4B+eQ!)J'_@(6>-f;T^\O+`d#N3 +ke/!)0^^78=Hc?d4YK_:V5t/nM,hZ$&UWfi'6%C9:F@og[?^`J66]rN2PI +^2D[EDf%jXj.:H!GhcHjEUFjh\b@jmcak?EBO0AdpNH)`)p``kqdZUIIe_E^jka.r +0;Wd2!T4q.J#mKEW&4M\e(cR=7c!aTpZ'!;qbN)co3Ja5DR8A,bDoMLLWB2q+llmh +P&al'an\FUj]nnDm%'-Zq0+RHI)u9Jm@hLBQT+)/ReL[TZd8@.5j-r.U,'&Z\i296 +koDF!oWF\4-][NL>M#kI?0TnNVcW1iAQKf+pXf1q@,`onfl0[i_0\C\m*Yicn?*A@ +4*P[NB,e+"?6O1]a*G]E2>?X443$rSJ_#4T_K]DsiVZ3&nQmlgGi'P%fk3/4>gLQ6 +%kGi6[lO%clco%5G%u=>U$04KU&&+f%d->Yoj'f5FRNN#rI:qB1ZPQ`?FT=5kIC7m +hqh.mA)4a=_>"p-Is/!BgAX=Yps1J!pCEhLreGO&#;>'0*DCFbn(EF#1VeFqs7cF' +LFH@6aF7L@q>WtLrElc%Ic&uYjmSE(hp;+J?S=/rkM#Obn,7al>9`mu[?a9*F^J +Zd5*:0:r#:>f@q`qQNAo0(An%336V]qp3.bE-2Dh`;U=!#V^r-h]9aWUMC9KE*nQ?5S>fQ03$^#!. +nRi7bB[*Zo%+02,0m=(HGo,tn%C#(,;!Ss\N>QYt(oZ*Qd.\-7(E)KX2c0GkE<@,A +"?"R="gPHHko<`$Ri2H\2Xqq*WA=c6.ie(.*AK+Bd7#(\h&Z%E*\latETnOLlnqX5 +'bU*\1&1=Co,Nno(%MF'K3K,>%2Q5](@hrR&T\d$HQhr#+u+KiCBGDNPp5aZ,8$+a +1-"RGmhsNf,VhXg0r5eo9b:1(&(.X$EO-UI>nJQ(( +;P>(NW5iD1-W:a-ZPOutk:%&f1,C43F"&lN/McoOAl=mMEgnkJS?).Y0_2+qdmugr +XXfRD2);QsF&5;G]e$J0//)SQ1MJ`M_(>05/X"XC1O1p#Hur7N0QQ87Ep.nGJM/gA +0,'TGN)),?><29R?UJ!:J]8`EWB/M/3qKMJ;i#ff7)jjX1p]T=j&Z)1=Y[810pC-B +`\0,(h*(Ag4u;:aF6PloOYbJV1UHa1n*i5V`BWra5VDpAF&b*)%7%9423*VQP@lf' +)aX(265+2p'7VsIF[G^P6Sj-C'>$W6-qJ'6Td1/5R5`fc"J]XdlioH8+_IEZgC;jNC`](8Ml](FI:[$o08J58bAfD +EskJpXZUM`(,Q[ioG($+\?4,u6.@,QFN$q\,k_p$6PM%FFOa*m2&MO06e#gFFQDeM +8NCle:DEG,@pqD4=&8Jd,6MFEe72=?#tAr'_R#1Y<-;'65e#6q;D`r&FGEbPKh8[, +;`-F2FZEC.4]CP\8p$gmF[]9)dn7!P9(a1`dL/_?[oN(6D["PX/'PMcfBm2`1+o[.bKVBi$Wd=qq!*Zsce]X%!2G?fFa[e$tE- +&QMiH6o?,ce]C^sbu.A\<#*qhFkL'.h-K^4?6b5)eONrRkp]ME1'mLe>uiia +?hOUoZX6c,%9HR@Q?Zf:]C1/slASLi?C).#C[L6LZX^QCV@5bLK6X+"X*GbA^Cc3Wsegk5Gc!pCo +>=e3cQJ#cVfJYU`DDjp1"*%l&m:?s>Jla(CY=B(lC?$@-;D%<2%REAnVP +G8U9ZLM59_EU]H32Ig[7.l>d\C0*9-2`YV`R;018F>gUMX%2=HT3m8GWCDd4bNMpJXo$EMYqTK=FXF**Jg*qLi11^30A`9Pf/rWJJaqgK;j`2/W)PCAOF(+j.hM,-$aaG +PW6FB;]Ui89pGHNPrVj0Guu0`eW%+JQ0PJY39-=7iBUmMNgY$MflmhVo8f;jO*QG? +biqh^$(1MnR5kX,)%Vj3Mj_^dObK;WR2_U*+.?\DP'J>3K9MJnWKT?UMF4516^O"f +@m%:lSN+6PGt9TV>FkTKSiPo(H0JU;AW<,HQ7B5#q9>5tF\>kaTK.:jC[HP\LR:)Y +TfNb#=cJhPOdUM;U+^dh)&&G7/Vq;J=T_Nifc?icK9A7&UaNZ3H,H-j9q1uVGU$:d +6SkOK1cY=.Do5SG\^dRFfhtu=V`JsuH?lF"I3.)5W&aCHC:0\%D5K"fTGe-0=RW5H +l8;`]T_bLY>,S'ZH(nIcU"ZoT2SDsk/$&K=pk+9qR`S?O6&E2"OMcXGg=`:ugSHkN +,WahcGr"B)rIoJDVY]t_gA*,-J$8_MYWE#mHO0/1KqDQ]YimsCg@);Q`Mm%1WI#qs +3IRnGX0VT$ZT=j_@oKFsZ*X;9Zk\?6R_b`p_YW;LXL^Q`je"sZ\$bO-GT,DHHJu\[e[V&RiQbis/*DZYBtmV]*l-\NO\kJ\N?%t)\o<@S$=<:Z'pfaYcWq4-`Pk( +].t80gGQ;V2nSt"E`sEggI&Wcah7+'=IW*n]@f:KNO>'^DVO641iGC_8O:t]R*)dHd0O!d4P5e]mOCu`WS;kj0`u#G?a=PHX\lQ!QY*; +a?0RGI">ie?b2Wc2LH7LI$qf*dDB.^aulNCI&Y8cGJ^tcb<3"sf8n#n2[^S,`#Qb6 +r5aZK8&ZIq`;J0(O(YKj>L!(Qc9,AWgge?ngWmtn3W*gABa)O\7E:1^2Oo]PI"fq; +M9rh0>Pu1>Wb]`4*Q`^OYM?8.I4H,?"e;Ke^#9+f.ct[?$kJ*_7kNh2iM]i%4jhd9:#re:]:Id.hHA[FLYa'7jur%m +IHcP4=k?u"h_n^q2Dd;irR]KlfGt"VCg8lI&)giWkl-jUSJBq$a0.ZQl92')GVeAd +Xm5njlTV_/hDso8^IeDjl/'AMq/b?Jc/elL8%K/khV%">gK.MYk+6/H^?=Wan)%IA +k;#W(4'Cb30=BX?k^l+@h@o.&POQ=!nG6MV^-t[T60`oqlCT;lhRE'j/b8oro/5:g +hEC3)4@-^!n\7MHS3,gRe+EW6m=*maITuK.amM@WmU'Q!5A;!aDs(JImkp)n?@hjR +c0ua-ch.P557RD&M>7%9bJ)$.^E<#R+o2//#CeW-J#W:ZXnqWDo:NG^p$pg%Qi$d( +!$9PcInfiqqt4<#rBB-;EI%7!lh5hcp:T;Nrq69*F'0_dn)!oi5)&Jjr#cEW)u^-I +K0eH-LEhf;$\lPBd27O3*u0W$U60]MAiU]h7cX$l"HGnsONHRHM);(C/XJdF0)*#u +B/5oMk0oa"mVt@[:M:F<'`*YPUB0Vc'NplID?*DR!HK=)8WK +'mdu1ZInNpRmjL+D7*TMQMZrel#=7=l1^[tmeM:G?gnmP((U_*_dW'PS5q9\NQ5Q" +)'"r<.@&(fo,4(LD`OB7BCm)_(6;%`dqSInSQ;psXk.@^)]b6jBsl]4pD][Smq,N4 +U\EOQrs+Cuj)DOK?;DZ.c/s*CI3*T*U!r=MHQ>l5?an_VGPg56DT)Y.tl1"Rtrr6,e&`2o$^T[P5!'kK;$NS!3,S:,E0Ott)5u<4R#f6"p.geW4 +S21O?:rG:'6a6bS&OZ(.6P;fW$OCdCLP/_E`K>7P(e/LmCDfUhUi.8D1$!IOdHEA6NQ"`g,W +4k"IXG=C2-?+5OFH!T$uj*KR+[I\cQBG2;Khs"GKQ!eh@$%ZKo7Lt2\fO>im^DMUr +M*Ets,Ds0N,3HM?\CNa%A,+nJO(;At8!@Jo7S'tsR:]ZiAbh'jR:^`ACR\r3`cI\` +H00IGBDMgbTkJa!Mkat^7['Z_D_@LMl0gO*VeTCiVlORD`i6(TqVJOM0\F+WMemX0 +ag#Zo7aCcnOZ(r,mI<[)[r+:)kIYV9`p:;*qptYY6P3;0_+U:D^V]Jf2\X,LHp8Rh +ESP1Ka`9MA+j4n=KYpJ]e=ShJF8Xo_cZEFt8(2Rn7nM6QrEiLSFo?F`9iq$)CYEt* ++*61\?,q0HGJ4<-iHP7D$#eU*5Eg'^?:U@FH+o'%kud[+n*==e^%q#AIb!q@Hag-U +L#G"0a7F\n8'1FOs'>oKD-JsZ[/OEaM2^OV5#qO\J&hHb5NhhAi"Q2Cbq9)`GS(!b +<""8=2?uMB+Tu2;'7u;&1:mEU)Ie]9RFL2C:ieQPq`V3dX,4o<&OcD4e.+&oB9P9>^[PfJqB(4Xb`/]u*4%C^h*Fm<; +O&>T*4D18XhMd#IOq'iM.1m_0X5&%W2F^73_'@'DO^7F4oY/F%-03PBPEKNQaf&PT +iO#AE;O%-I3!fR2qBQ$@tW4\>>'6]/nNPEQ]h&L9DO,mAe`.MP87Y% +H'$2m<%XMZ2AT!NR5t0f +&YbEYMbuMg7;0TX0QJL-aBC_tBa#`Vl\r[%8KCDKKdijO%&ZZ1+XcN=Su.ZgRaX<7 +:1XjhViuS$_h/+DV1c1RFV^ZMHAPNL0iFDs2Q'ONTi>cl;lZ*`X&XJNt5p:AOWlB@VX, +[M$DY>7k<1Ah:?XFAtScg%mWsXVIM9G)"FKF\dbn`.^kSMg;tQ39FPJl\!5b,;k&,Q/bpMCQ+j]Y)iRQd%8+0r-Ke@? +TlY+2cRP3+lWnkBG&Gjb]9d^0?2MH_D\_P@>Z#6LmBO(/[b,'U=\#Tb[`4Q8)d@@\pT<8ha-R/U>TAg\rq<7o:f[j,M_MGWce"2Hkq3bNj-So_&]6<40oBD`jEE+X^K)@o2K>nMaop)Lt2 +2b%KZ(Sl.rP0t1p_;];dMKI,ke!b2N.r/.CobK:3R);iRS7diOXgci=Ye]:o"d!a' +6IqUO>AGdEfJAP*f4X7ljP6H5Fp>k,3u.j/*KdXN3tgDau!A5.?ZF,&\PZ\L\VN;:$YaLU6P7tJ%o?=g!k:X0J_G0 +R!F05k'=)Wk^Ia%H2g1oI2A[NSsRoPIo'[e=0(QaZ_dNu>^&;kPO`!Hg1Mnuep=g; +pKmTrqs*je4#^aGSWi)]5EG>`69X4sa1-Nrht2AAdeY%[7/&n8p3YEGmlu#NpWilt +]FX'#6U/E^DpcTf.AHA31\Z._htpc#N:se!Qle+?k.Ja(s.Ac[.T=j4$irU5!^J:= +5Wf079Ed[b$U'F!^jF^!KEjc!W4Hd!]sJ2/F#gr;%R'_#4ld-hkn5fDjM/niE72Lc +-9mG:5D1F;,Pj[:isf5k6G*66_uITqPe^f_6MrN)$o(*h1.*TK6TbFcS2EQr2F+&q +ZWg^#bUPuLVnh(!_n6OJbRm4t%m_HV6i7\;$l)/M5XZd8_/pVa9H(iS)FSC16uggE +`#h:p8jVf9`0k$u"4B4gCPRQmSR#'2-e6,-! +/]FeoY(SW#b[!Zm?:F3f7JpO_$t1&R2o[C,`\]VD3jgtA3^nEV1MFise3$+ZBh#1= +-U^0e'LKgpD+tng$rt@_<]M#B7WYO;oNTCA>"E1.88Kou*/R4VMFah,8A'mPb`,/` +A4Z&u7SJn7nEiKJB?3JQZ9ZdVZt[WePt>dU7a,g@oPhpBR7XKI_.^[*7!6W,SOr0j +8bOP7fuQ:AO$bPEAG'Uq[i +S'3.q9H:tpRE\=aT?M,k9RNL,M[IT@U<4J!9WZG_^r8gVc:V=1b'KA2H]4AWWli9/ +9e=ddaNR;q]g'`F9,uSYI+_.([S(_s9t]7UbhZ"KhG*@o)/Qk/%(T+Q\kX[3]pt8/ +bgn-BRS2`)9D%Djr4u&X`6:@/:;#mfaWo#7a\7B.:@.IFr:)a.9?bW'auo8k9+]>& +cVJAS^Eh/X^q[#$J-_gb9ha$Y]_kRYo8KtmM0+E0FP+j7!`0m>9pi*.r<6#'##K.A +:jiUGN82\mj%^m-:qCAa[,k->jGIZH:5of[Kb6!Al-@fF:9>4-4V^HImS=hlcLi#O +I2Pn(G#'[];7uMJbk3B?`m!fDdJFa+N.-^:W=:k>MtI!Ebp?7^-5]k,V%C>C:s.-J +!mj@d;QVK*PmL@E/lM'i;Z/:J%5BmI$rF&^;_9gEbmdM9jhmf!d1!ff*B4Vd'%'De +;nY7kbn[r=(=A*[;tWCQSNtL@b#-+ue3-/u9MCCV+&m(N*]V0P6(G@(K[O]`cdb]g +],sprZ41q+<;e>t"Y@`S1"@jSdle(=NEAHAjATnR9?LPhSN0^* +Q-"_B;r(h]rF&XR6cU33e.lLp4_7S3kgV1)<)l=eI:nMH7oBL\StZWm[;AmfD:I$; +:\4JnD,F@T:tI9r\[>Ji9m'NCG#rO)=+,<3'j'"X=]_G&c9+):[=(uQ`84pqGC*FRGEL0.`:4#k"+9kILmMH4#?YdJ+ENK$tmN__XYeub#nZ4,=O +P#g\.E`YDifm>*uNL.aN<&ASl`%d=1`D&bmmh13fG)0 +g-'r>7=eWJV-#$M==pH_2.'I&Kj(UY>.o^041&+tY#q6tfY+L;22p2TNRjB#at8\* +]k^5KTSU8XffbMO7CcW[:S;Ql=`ndi]?XR0^0C!>>Q)?B%Dc%MT%X@c>V)";XeFNS +E/Z*>>^`F'NM]sGaBY*X>'5JOI9p*JXPE3D>kP1'q&39kY?``ah)2Cl8_;];ZWea- +?#64cV6sG6Mj_u`$f/BuL##t(h://$gXWsn%D4g:_;6d(?9R@U:$#\dMVLXmhK?`m +Gi-tUU0arsg,7#Zc-'@omU"H3gq!sKNQeTV3o'u2>nt`D9g.;Ye),#m?Zjk*NRh;s +fAEFW7%N"8?.q#ugEajo?1%\ujoJc0L($uFNTK))*X(/5k$W'3@"&AhNX9*_d,'Kb +?Bsa'20Nf6.'@QjeO7KLqV`7!#bi*G;NKl`\*C5/s7iiXfk[Obn- +$=`EV@fA&k%P_H1hVcB]i6F-igr:((Q53nX5%/V! +@>pT4Sf;+@*+U*X<#-K_mR:Kk7R#)(hprqr0[`0d@STU+>PX4[]F;a^MKUF[ +%Of*VUZ1,^ANh[,:/b_!11b?)AU[`mN`fq\QfCgsA\L!4`I&(H%d!&A$iW1s[UEbX +@UlQMg0QmHe3;M[53)o\Ao;9m%B\\T6>!B8B"cZP%Ro@MDJ%aBN.rJ9Js-U3[g?g- +MLJ4Zeo^(\PDk(jN,DL#<`/%AZ=PXfAR9as^3sQnIH@>UBE!Ep%Y8:6G\+,33#6@ADJs5i +Q=8VIk6rO[[";ZaF_&d@Bs*s4@)o8\?g"#*l2%+mq08%?=8"[ +g@*nu*3DElk1smp!cT*-mIoLV#/'G*O&T`Nc[`oNB'&GV$#m$o:_r;3'7#Q%4=5WLKsGLk])p9]UmRD+$auk@PG=JGJANLc[?'p?2*enGPLCpp@^YQ@.m*#Fshoe:PMu'W8 +HG>CQ2iW(VNcsTh56$^bX[il@P'\jGq_MH#5BV6]Q_:gUqgY#\O.,s4\8Lc,Hb[4? +cb4\^#^Q0ZGQh1D(HlpG2u6n!H:PmLB>o6o@Oc;pI"/,AO!AtKXEq@Wr3+c[P>crqb(: +p"Bi#ds4ISs#g:>B=7PKXei5Ts*r^OLY@6=qKo^.J%to2ci&@Kg\pmH#QUD:<.R=X +E*,LL'aBCZ@Bd7`7NiG#`F;\XUg>nrN^)ROq#lF@,EFrmms-aa:FVT%jjL,][UUtY +9kKT5]TRD!RnW"o\cdH,k'9eeZq<2&O\;IuBiOA/5,D,V<%?EZ]iMCBX]K9qqW3=B +@Bs#%egj1Tdq?'jBK#aA`oV9Q?#J8=qj#7l]jEF:g]d]]I_oK3\3)Ys&W=QeEEMR> +5:)H7A2;h#^/m%Yc"D)Xr8rVpU!dWHg+4Q+SBl6@ot&Cka'l=+m<2]NVVcO,hJP:, +^&IbW_r5T[4FSY&NQL='q:r-.2l"^`FaBU-T4b:[lur9^hZlL9e7q$,So69Se`ldR +4l3r'\)HrSI==D1VrR1?rdOmne,]K`0DktT^lUY`"MiA`&I$"tC[A\Y`CWg;_N;,T +$c>fb3=J:%gcl:e&A0:"S;/!@'?)[o<>NQ9Hrh0(d?J&W`mLl-)FmZ;G9"Ycr-]^. +Z5eE>85_"$,KWh?R3]n[>b*:c&tF(WVajV2H-6iMZRsAKm(k;J;Z+Qhb`b061sE:2 +d5F]tCuI=u8"?\BcI9GqSJnB1dll$`jS_?j'HI->cr;k/6d\k-)+7?O>ouPa'V-OB +dPSWd9N'Bb3DIkabs>1UhlC[r0r$rOHlOf+#iAgt*:g +EnrZ;eTTc8IFa(samJ;^?E*VdHdoOI:D0e1AcT6s=8iGTi0Z\;K]'@H&Va^rDBX^; +fUDB[[&leNN8iLH0ofaGmQlop=S>=JjLG(dn@S,N=dA+%)oQb`3C:NXMd0VZ*$I%7&;9t>7Sb) +CqCb5[-\f=caN4FG1j@m>D_<:c80Y6]C/[ipUosar7?g.FR:s&n=2X)_f7e/'uod6 +Ii$2re@,V(o%^u7bk#)s3R76Os$>$(>ouYdo\D`/eFd*S=k<9%Ipq!^f7i%*p:\4T +h"KRUES^BFmt'>??2_6XhVLEcjBnKNF&aTo[NgQR?B;(@qVIjJlMDX[[I3oAY@VD. +GrNk8r7O<^o)1d;eb8s6AlG>bT:b6AkT?_kqgT^Fp&=tErVf%er,^R*:k6ec"1;5C +!oR#eJM97l5mSJ6:H^>j-#2%mN4h6JIpf:OG<9H,Xe#b'&mFrM:"L872Vj8ihTS3 +d9\@mR'd^hjA'r<"l_ug_&220AW0KT1.HN=)G'.9H#^OZ7hT49*qS06n_-)q=S3]p +gj+sCr]^o;mQ3p@oT54S6HFEe+_'`9IIF=053X::jHPpmP$U_I2ran6j8kIk%T#aM +6RUt0V3I.7;9G*3!FV]:Q-`-*9%d])jcm0=P23"OBJV:!g_uO#IV9U:'.C0U5eD6UXIVm@J]f:d@f::<]FAA7S3p1&@ +S^Y;t:Dr7VkG7dBe)#I&(stP->l9SFqLDAq"[D2k!>4cERpPo>,t)-XjsjsdTYa;l_Sa,e_[r?Re:"QjaF>_rkMVSs$<_4 +"gHJh`)p4W@I-tmTbJut4GBV#BZ67BQQ3eD5BA'eG@nRMf3KMjh&"B8t].QKi7=b9"$JlLiZ-pKHoh>IAV9H?cN4d;M[5Yhp?Q8*Sn"o]k +fA?F4S+V7!jo&>*2TB,D(P(uZ"Me+U";!(*6SN'ZH)j9Wi>Xe1m+rJo=Bc+d90[.[ +jefrHQOmT\6Uu(b+LX8$fOC=WMTgLT\+]OO@iSp9nU<@8=PFa!!pt$5jiPQp0-90_ +IumJAcYKPS&7$fqG&HG:adG@>jW'eU.h1ILl*bZigXga,k$-$^CG9>T_P=@gA^&i" +1hN9.Re(-.c.TikB,ou;E)$V_g"/>oI.a'%g>bse7gD/^mShYZ(XUfI6t)&iU%DWZ +7(A.G@JqF,oVRi#fTS4&N*2%FeZhNPhb[gR7?05PU"$Z7;bAQmOYRu[aBH>ZCCOQ# +Z8B@")+,k=ST1h'QFtgDWb>scZTE4L`QVO.0C4[XZ?Bh`c?hchD&oI[p86BogL"c6 +S[GoL[X$2gIrB3EqmcA(LV\9A#-Xcf>EpOoh:a6#khY@5GE.a4>Mi'ANA&"ik54%] +cVE`M"fCO8Gh"jMKPGrN_>%@DiLE$]C;"8uop6EE4Cm +(M#j<]=%PYJaiPL`VnaCdf:O`)bM"pHq!t[Bmn2dI#P55]Zq/Ah,:eLQh55NW( +qQO#t&6NfX"T0r_r"*Kp'_h+>I4GOp3K)m2$@[(K(niOr#:i'd=)9*b#'cOt.Ai0,UuMiK90= +Z'ciaQR!2)C#rB3.]F>l:E#Bof*hBnZ*bn+>:'rq-1YUYAF1B-D]I2H*>3QD%@JD\ +Ijbq^-rPgKP)Ca:Nae.B*qAnPEgnLOlQ;2]?a'JP;QCqGXWZ&s.oHs&nf&c.].=T0 +/5j/4NW1F/lQXb7,8/HWOc7>$74o3;/i#dH8.?I!jsO$.02bWubO[&9B.stu0N)U= +P62cc6RT2R-W:a-P8>so)_CS*1/fPUP:JE;0/F5n.Irl_Eh,"M5)k\!+06P+o!Kt= +:Fe4u1s]P_'#Q9+a#2=U2A9^\o4n`_105+C/Q6jP9iWe9lRnBR/oue-"9'Z=.Sd;D +,uXP!KOW0s#;FW%3YSDFZ`,V^;)+9@1%Ve-Zb$G5EBFoP4B'9_PKQ);cH^Jm4]=X0 +F$2\'%4X'*'f/iRP>aZo=$HuV(3=%FdqM%1s$,!85I:YGZd=S.HS'-],En$OPD)WPZpT+?Ub`= +MGr8!PM&FSha[4qNRFX[P,UXOo02er85t3*E"P@""[Ec_8Q:mFP`\PdCIV7E68TiX +PTNNIVEXQF6F3-X/oa8N^I-Mg6kmI2FN#1U77=N37249?eCu?mUJ;N`:/pCOPj;)o +mT%bP7hk\n<;RbZG80VF0!pC)'amj'%nMN\8CX,#FIuEq+&UQ5;7.ah6LGi0arWDn +;`-:.u\l;cN8bFKnfpX&S_p,IFjFdAHLLa]9,#<`I7CQ"*k$%TF.o=&e!W +FP0ad`0h("lkMONhoH?<'j/PuS=e=\F[a9#PuPoke'dB4(=M +?rT4_87 +Q+^E\9k>'UAN!=q;C!mFh.@DVAl[AnG%5-MDe@RAB!jp6M:#XPm:Z-F?E9>u'Id&U +!GN;SBf6'-QBu=:Pn=0q@.k=MQD\KK(35^fCK@o[QFgq`^MF;H@lDA;(<^2V_./`5 +/s]"EQ9fAr75^@:A[Y`ZQ<.tTkAKpU>]t+"G56(-F`7!NE#/auCICKITP]] +Qg9+>RKU+WrEKXg3*=0if%[Vi!CL)BZ=\G:k= +s,Yh8F/"4Zj]dKX%u48.O\`lNGoMn!+-IKdP#f>RfD1T_.^?q^A%-<3fEmEQ4-U9d +0"@gDR&uU_Z'B)jD4XpKpB?,@RK]?&H`.j4W*4VJRY.QMLR3;rTir%q3gu>t +\"]<;U:R8&>-"YaYF.gnUO'DE>.^PhQ_^(fXBNZGR`heY-)C@WX]j1D7:i=LAYpC' +2-:esYM05b)[E:PQ)WK(Z!.lgBVDIFXf@j4ZALDc +kapNUS!gVhlGb<38Q(0^;L?d'KqbZnZ% +HBW,lC32R`c!5>7I!a,mQbcp`a?8Y2>jBO\REllEcWp4jSGNuTS^8?:aoWnh]WK+8 +%EbiG`14HeS@-bW\Mftmbe5CJSL_oI/V>srZ))B`]fXK05L'-me(f(o*/2ntl.#U8 +ceV[QSQjY#?c%3rem/@?`:M@sDp\H'hH^rFh0[QjJ'me&0&_$kJ[sF(NS(q*fj0fp +SWVULcdMced[d5`*NNf.1h^cle31:jICn!7^Y>FWK`/ +SaD7Zlec#ih`c6!:9EG\!T8EZkS%mm^)c0]O6GGaiZ=BL*gc-JS*D#_FWN!kri>=U +YIBk!KYm9?5!S+W]BgTRlrF6g?<>rhc/i6]k$H[,T%iYhhc-1_hS//K=j>iqH08N% +O?NR+?@VG#qsY*3ke<\RT*t.\&*c@knD=oLT,7%T("q\WlQ31g+"QoOHHlPo)ZeL\ +?TI_-47jUZoNscRT0r7c8+b\;ocI9-s',/'?1jgsp0V>$AF_rK3UD44lecp\?[LjF +9C3gRm/Mjk?K(\:O80l]q,9*;?^p321JiPjqHij`./VVg"7Q5Eq`Y29Iin3q+oD;W +qqoHl+3FFfbN[^Go)C*9T.U#P>'.Mlp)iJs?gIEXl2L_Mru_"8?i0jI!8)EOi(ura +((ge*6(sC-Cb?_?Ld^4jpp=?^)3%+SNCQB[59>nUjH*W9j=..0GQ.W]KXQcrk +X>W-tQI06N=m^C%A\Qu?[bU9e99n)uGJ.:cQ^dC1rIMaln+^-')[V;=@W@coFtXqs +aCHgS>dduoRE]@8RG@Lc6(u\>oU9&DT2DTuEu_*;,>$<_ +V(YJ?1p&]1;j>fo:fI$%4]56:/Or`>2+:SFe[8C_<`SgX@p2nJ[:`^p[Dd>q=1-00 +clr)q-"3O6-')P=2D(8+=dE'WBNb%oSSD=dXf#r=2T<.@TZnB@E$SKsd*O:8c-ECr +2`9--?$CGGG[6Z$hg+';V=/b<2l^uLZ>>g*aP]#N"b:!*2@G1GQrX`OiAbEkLLN5\ +!psI,[P*SL37^$KA%;4sOCU?e8!7Dn2G]QK3EB4IA[utkQtA@EB::gL1^fg=RFZ;I +k;h[ST4g7QLS/=L(5i:$Oh>>(7bVaHVeS8IVl/gkQE@0%qUW!UCDugi*6e"Ta0BHe +?I,oo)`H0RD0pHV\8AjOe_oe2t-Tm+1Lk@It.(dId<9&[FVeei%tUg&/#.3 +GS^EhA.O7<70L%7k65(s(2f4G$phBV#@Q%&K91No65Il'*%QY\d%V7AGZbA^Cb(4^ +%E(9)0+D?c2fk)?)ag!<%cR%@L_05d3TjT2U,5;q%_GE3?u4\*$X ++(OqmO:ha`83$u"A2K((&gg%l1\CtAT+46]"$?!j]u@r'<`/5]iVf@?Yf=aYSIGZ=??gt +Cc-ur<+C'sFPo`n+E5M,W\^\#HgugKU^uDXI%XW\nDIisjYBm"F'd`2(6*+Q:EE,QKJa;9US +j8=UnE[F2gGpanK]U=t(G#-6u7k&"3WKhM/YJ5;Drai1AQ?)X;^Xs2S@!p"GF#IUS +)3G;7S0rtGG&>MA7lb2Zk6UR[)p]@24Q4N[06$V1ckrB?i`uk`oJV;!R&:_[%2ko4 +FtqD]$Kbih.??.]ihCYG-BI8a'!1@ +BrtOH>Kchd>\h#qY@#R`bupZHk+.42Fsb7o)7)Bj]]lbDNm?=I5A:X%n"-trIG4Mc +D+l`EU,4LZd//<4DB6hRFB4OOqDWM6^"'_qG*CA/a%YqR2n\mnodF!f;sI&/>5.1V +i#7r54e6H+GW,ld*%-GZ^)=h5G7W[DRp>JHH,VZ8("\oW@r+=h`q]8Kj8=$d/Nh6"%SL:4T +^%'ORJ\L&i"Mu0CUXaSgtX;Y(SZ1=LZNoJ +9Bc=5VKD8ek5=tB>mBc!A;3\>qS/rn=+dgT^KKlNGH^]]a4Yf(C$f%&D"esJh"JL) +J3.sqm_9"bHp6fb&SH=V^F-eo^A[YP$%B +^$FN?qXWF7qoL*l6jA2tPOjMEASo_hfog^V]D(/1&/D +-GjjP_Ls>SPUXJEM*O`=6GtCke-/#5$:=@k_ZU=a'*H%_%`:+46TblH<&ChPcbU;. +_h9tdO[R#J(;mKp6c9d.dm69Q)F9V3o/;P^ZP_[J39*)smf=P7C67; +S:&BcGeXcUa;$aJ>oYS&pY#N(W`%b5@8c +d*kQ/_O08(LJW:i7(#Z][EE[#bCm;sPdei#,"X>tQrKGGe@j&d^boU)c(SBp8u/FYK[@sgn%T:4 +9&.oj<37LoeB89Pb66J@'2?E0]Lag>bG/_6%!0:AGOJDqFt,E8@7'reC[RPff,EDb:);njT3X)!_s1+cp\&`:s7$bohHa] +:3?ihPmPg6$IH0gd),TRSES0k%BOBbcFiOA'bJb:#X^03;+0p$9^t_3&5P^c;2#h& +0[J'n)UDt6:P57Vm/'Z@qU+s4Z&m@/jWVtC,1#P[VjuKLf\B:\-I>I7:fSoAPlupp +hGA>@7d+s@bq7B*0%0DGdfhGS&bo2q%b!9F4&lhebnADE2:HT2;*>XmPnm;h'uNHV +:H^hfNBGNe*7;_idChfP2'(*C*mt3Z:SIkf4X*j2,?/,,;GA^#AL:<'9%&\l;OpJ1 +eL1^R!uSFA%SNciksNV,gZ/G1Uk\f7eJ$Pu?.l=49ACu$8=G:>+/?;foB\9_M^EmVq]k^ZnNS*`s`j.E2c#_JW +P1LG4fd2kWptFCqQI;U+f2B-1SXJ0-Rb>*bZ`Y37pZRg4b5JI>6C6LY.lmg9dm0-&^?>Y1hrHe5_R^jg!PTZAF+WaUs_> +Fd60B[G,hf:h\6\IC@ma934hZ,DD[me\0`!^>&=qg]N=7je(,A<(Xj,YOcHh +gSNQS,u39MfA2_GbDj-a&AMHZhVIk^h?Dio(#c5/_V+VB1>pmA?,U&\`C]_^gkFtI +Q0I(]%:#aQgo[Nr/>lb7XPW@5h!nb*h9oXVdGH^]g'uQd2:^S`fcPq&?\R9@^%pQF +qHoNac4u^N_27"prnmDKi!'2>('1%uj5;f3?o[V7`T>s"#2j"L?A7ZNQ0R;!$CacU +hUW+lb1Y#Cmp?P8i:TBC*V8/?d,?8J?VU6&<]+=%^"?bRB7[Me%Y)I\pMh:7mN +joSuR*oZf7iW^Ob&Ed@h,2c%_hGr^rIO/H6B\bQ^iEc0;8?/VS)WPu[j+\L_Q8dip]3j(giZ:5Beii'U53)?$ +MXD]s7R=?$fA^*A@W"QkKqr1T.:BSRjFJZ%eh#mZ%B8bIi331sji1QeeXGP7?K*s=gce,<(.Db- +H!G5Wk!hjQ8<%NFr/gk682q/ot_RFD3XSksgj#:6Xj3 +cf^%LkC/f]NgOOP3t6!skMD`net)'fT'>l?BC;GA4^$taU?Er!0LeNF:8R/\Kj9'8 +Ap1-:HD03XMWgY4lEeOi*fXpsN`tk3Bb%Aj)YN>qZKYu-l!Ca_2RR6_F_R/1CPK=a +QC@-9:hdTKC&Yd2f"LD3^?bBGl5"kc&YdRRU[0mjl9d>dI\pk'`b]c5cR,W)L<4%f +Wp$mmCqd!gcE6C*Y3=`GV_4'J&U:U![I#lZD*GCF+dIH]"*jXZ(DEe3n +%g+^bV/T37E^(h]f*?2[-LcP'E1[O-Y3^2'W+a3\ElSYepCCB\eo=25nNS_t:G?i3 +0lKLHEK:n,4o@/ot]='f3P$K54f(enfM8R59k8/@e;<`\OT'WO!eUj +7e30aoS7*?pFGm6C@nli7gDh5f2-YR:\OO"pA]%)#>gBZ<;/=MG<]&N7s4&]h=Y\g +GCOl1I_0aKHM=mqpW%[Udk#GC4l/SOF:Woq#D#`2@Wk7OF?bF\53MWPL@eV2G'@Wp +QUph5BjCsZFK^Y>ZiYFnEHq4sq$2rU&!-N&P4[\XpJ7%JB9d[BQLd)lGF*PuT:,M@ +H$A/8q8]$$f:DZF??c#np%Mm>+//NC#4P-:GX&#!:!*0CL\c4+PE1OpVht2PWa,>D +Gh6a+_oXssPBe7RqY.5i-aEORZ?m=]N;&Wb=-`YqQ[=hH[jQBGLcRteo)tiH`+E$YM&l?)>iUOrQ!^lfA5Ec^\Rb5 +r"$Yn(S^NqU\mXBr*SMFB[;!Sa*r63I(-/(Y7'upc$J:5-M#%P-ggjkmeng-ro`d" +p[In^e9uQ4rGV?,=*3t>g3o%Vs**1FkP>.UqZ"&%f:UrGp7d!`iVY*S4IkhQ'G:WS +KL+QnBOiG/$\q,Z&NG/=,o2A#TCKGPG!-q-4'cbr'Tts4PY't7Bk4)F/!iqA'01Hk +AN#uOk>Rf0idEn\cY+"R'c)ElU/EDhRUn+B8uP['1hd+oXLqju.i#)/DS9>[="IAK +*JV[KZW_1R]1'$UD7Eg<90oon2XjcTOqd$r!GJ2o'G[la]'>MZOo(i5jT4aqT +if6&>mk:$VkOnb$s'K^-kPG.lcjTpU^[NcX"$hr1'a2@76lcHGO+K9-S#:'O$UV)1 +2%7Ba`'"RInE`FQ`)/'Q'?$#$9bbR/>[8(6&St5L05"G;H:H<#D]Hf[gjL26&aY,l +aAORG,KOn!N?q./>b*4a&nIgdb&WH?/'?;aX"DL-jL#uIP75Dbb`aU&1X-S,eMYU8 +Cu%%q'9)$5cBG?s43nSaof^Wbm/9/q'Fb43d$-*k6dZTB'h-N7D&l-p'TFD1dZgjc +9@FU"2,2Pam6*uIJN4fKe9)Kt;q0>l93'LWAQ;d^'n'Xp0N#[;4N?c+.cIf#u"2>`*sPWSJ@R +eT5#_:"sgHf8\a7h=n&5HX7;Yo"8=f^&LZS%ZAPD4KdW +hL1r.%kME#BTR+i#O'l:Oeq:RRolRnQ*23.R*hn>(u*q.#8 +r*M,!oDF)2"-@+4Dr(-d)3<\NIQsIlqYq#[pRp^Fn+cq?oDsHG%KJab"O1*h:Ou4q +"gnUV"(6cjJk/2,24q.'LKl?QJAPr +L/?/66We17iP[a3;!oAlfR4:i"@7i@%O+;CN=k/<8Q'G[dR;0Hki-taM@iT43^hE` +h5"23&T-=BaL)go"CI*bH87r)VXE;?BmDG8ji5s')l$q^N`!eW7fn!]T#>o#na5U3 +aRpWc"5%rrWUrAg#pJ@dM3,"q6qGE7,>D\7IZdG&a[bqKAAjgu;Hcg9K\6B;":(/f +)H'0F9.8mY#Wse)$,IK^/*1lXQ*SX1SgZZPi<6ZCddCC6flDdN'J>bL[UMT!NA0KW +`L.Al(dt?o1ZjArB;f6JIftB?-"Q>kCDCEe4WB$]SkabYCdD^@T +46%=MN3gNM:H@f)Vo88#.k3AG=Q^^&r;iP?%Y.AJ"[QfgnW+:YL.E4%+6\ChU.b>K +aSIJ5W5OdloP0?4\iiPoAg:^SR +"_"K4Nj;\hbuJC]l(+*>[T8jQ>3C#(Y#F2fcarLLCW1D!:SDkk`_dZo7-o&YU3'Ft;9LO]m(J[j(2hB"fagWQ9dcc\L=06e9k^XpZ:rcr +el+Y99l5TdVA.mZ;p'/umBsL5Vs^3WMN;]@28QcR$*;XVTlK@gaJq0Oj]pG@=mh!k +\lVYl?!FFRm`!kk=)RG3gV%h"!SjgM[^FsRc$=4mO01A.][t?_HZ+W)^/r&Ef.-`. +/2`:!=6BKhMuA+nqY<639#ojp$%_Gt$%"'mc<6YXK5cO9_Djad@8Z&u/Nor<3+i_0 +]KM"0@PkMqNn<8`@u51kn!/(agg\HLMfFG1\$lFtj'6;XmNo]&=!o%ob^4E9p-Hb+ +0(@q,NKNd$8]b*g-=ko&POaH*b#qI`hL!A0o!V]7.bW9X)sN^[p0k\GO"b0>`'\IW +!6nU>2;fJ1Rra=#T@PXu?u-RKF2iEM7uI]:gb#/&VLd)4%mQJP0o,8d+ON5'6tk3C +Gd0/h`B$X*ku\=10odm8>%^T>paCg#[Q2huNuVn&AsfkF5LimE45d5h0f`Qel^+B%q09SI[K^baiq@M1[Nq_ZaOAMT=M]sD,%.&G.uM] +)f20[9_Fsc#'nucI>"14$)"XXkhTI8G&Ed(U%DBGd@81&Da!H.oS/Re>$HF>:&K?[ +`h(Y,$Vp1PI>mh7V;YZ,L2(IeW\n],ebZn8E@[]5XBhEApT#9i/5O-34C +K?@X*ouNhO.pMEN)k#^mcdrZ +V=*3.e,","hAb?umk1`mHH$r^47fUnrk#pl!:Si.)hRci$/+6t#iXPl[IE&+:pJmk +in_qkG?udS3A5[H?15LOhYl@0#D)AN&&N*W%Q/O$$E'%n5]1+45C>$.=-T:%_hjeo`'9e%2/QlCQ>THX=#"0c+9ahXB9I +epZ3J2e;:t#N@RcD;4r3amHhr\0bPNoD>H4mb^GPpg:/rrl<^h?Z5@\hnAda#N8KC +,K9XXc*7cqQ2P#^p%_D:qu:XJo) +qN%NXWhB8d@0SDs#&n8\Y\aU6EX7+@3Y8%;DXSjg1rNM+aE/acMMQ[H:rihdi +&=WVqSI-kOH*@AMmn!lUX=eEg!Dj:7O:r#+_$fKO4>7ugYTXGE,n.W?!g#&EYVQaU +.g'`T"0b'$XpG5-9+N^J%rb9(3*n$ +Yf.!s)%A:I%8hBeD&u#?h#e7C(bI0H;!ea4OVmFn%hSOI:eqt26;?tT&.tl[E;pO_ +Yo>F*)f`D-Z+V+H_&P"a&lC4nOiWD6KbNu:*Dns?ESVY:cpCT$'bO.]EU=gPn0YD? +$Sbj-O^@[a[hdA*(@hVOZ3]8`Eu2*(+`\;@VG@Y_i>@_&,&'T!0pN630c;NL)3LO9 +Z(3--g.kMI&2HfqY3?p(;'dtt-$!-7Z<\dI@4!9`*:_9#Z-(_(diIu3-ZX>WZ/G1k +k8oe?*qG(.15PN6pE-]++7bf)AAo[3TchdY+S)CkdM!GF)(Q=?.jedj&g\B8.4amE +6;fT`nhhugQIHO1)A:XRYk',<9-eOP/oE.'Cr[ge/lR$J1OO$0s#;fg3-0p9Z]-s9OZ=qu +0QM"jP6=la$Sc]53cc#sPGECY)_r'S4*.ekZQsauq(gF<1Gd$sACtCdXY_ia1_\Ou +lTYfA:Ge9q1t1N87)_$I=#I>U,-tW-e,;1'rp:rJ2\ZQVoF0]@V)S!m/sI&fPEeH+ ++[S"36?FYCZn4W-!BJXe3O'u%PH@4DX$ebI6tNnj1VZ?L\O@1F73[pX1W`)W01I=\ +:.&;&1Yk39D`tII4VQdt.e%4LFnl72\U;F\jo9:hCM#FFcs3K2DtT[<.C*ZhI"n`BU_p8X1Z$YX:!ATg87H +;_O=<1p9O$YqB"r<-:c3[7sWn;,oJR-+(iqX4#Z8h+`$'<]+S>&`ld;kt^no=#G4J +FRr;8oiO)%/;5$>'a[]:NEF^?;)Jke[@"lXd8C^U;:1;"<0pM5.7nWP;cUA,Pr=8t +j&?c4;sdXdFj41ad9SW[?$4h+Y5_MOcAIRm'1ojPP%K^Y@BGr@s,7be[o&Z5>#J4>]iD= +OBZ#A;.VXcATh3f[U!J1\R#bG??PdM[HhGTm[fY;?Zp^%epCcpOYX?QBQa\qYQRc\ +&RfjHBlLsu[NB5W,9^)8@b*&E[OG]%2d7'*))aQe(-QI,]]%r%AJ`oUeJd;:el +D0FTL[bYfbTk6`= +"T4R"DV"E&QYgXHZYt$cGBX(+pO%rZ"`UpUG^"jDK_oajO`?^(+V]9<(F+4U%nLmp +H?UfaUX*ut2g[J@),H<7pUtZ-^A4SZCq!,dKS=Rcd=!t(IQtQ[otfUc4c`(SQE/j*Fe/HC$3mlrSOX +1P7Tr;]!9&[m>Z-4[D$MFLTIapYgf#;2$u0Km6aS\6M+^mtNdgL3IKA=8RaHq1gp. +>o3Zo\:&mpJU#'+JAg8pGS>@)NDR,(H2&P>R%6)o.tW#BEqh;?=>>/(3J3\bK@e#! +Uh+Xm7uTE"*gg;n\BU!-d>^-9NHJ$O=7M:Fh1#-9LKJPOGjUNimQt"ZLcBmFD8]3e +PDL.\LuT_"fU[Th%aeCPJsdL6E[c>PYEClH[b!U!fXI%>/;,jZKUFiBf\)Ja6'OAu +P^,ibZ*fTOBpBOo?'[?rO'):F\G;HSr_T!bOI:;BGn#lRJVg;fOa.t7 +\>'-$+d.)TR;FsI\@J%'0c@C:PISWR),6RqZ(!b]RsDQ6Xu2JI_3I%"7!JKR/%\nOQ25/R@.2'ds7LQ3Xq92]XZXo +Tl"/+g)Zm`+eh"DU3\5gH,Gnn0r"@*S@Qt@\^R>F]m)QpSXN-@as_4sl(pBFT%W_& +3a-tmpRf$.R*NU;3Wl8U#.F@9Tc+H1(VE5*X.bB6U:Q2[\rEZbOf:C+EV_P_HCLZb +J"rGuUY4%pZQl8L9;Hl.X*"8YH<$<"jtp7EV:s%`"-'0=BrsDn`7f(+3X)YWBo?/? +Y'PMSRMCcbKW9?bYBp#J])Ai0!O*jDWV["$gC4'BV5i7IZ$R2m>-Y,sZa)Y9B]eic +q^kWJa/n#QV<1XW)V:j55hHTe_TZ)pZ+ +Xh.0:]1bJYGI9Kr[;\]r)M>HYOgb/;]mJGG]A:0pfsf]H^0>piqgl8(K=IECru6s. +48lI3Pgn_0DH\qmF9;6Bp68]DG74] +6,YlS`-b.p[EZFU;8.EW^)QOUHh#)Q>h`K[^`3cLgm/b%-2o1pR +_;$9I4Grn0!Q*V@]?5W2*&YB6Tg82-]c=#igo\`sZ-,8;bB!Et46t)f]Zf/8^HBWX +*6Z?&KuX%)c$XBQN##5]*]mP@SW2;#OkDm_fksC1 +*M(XWT`/4Ue(m%5rN"0F_9LfDe@iE4jV>>=$Jae87t]dO*R2o,f,,NDh0f6prH$S] +iR!=E]KLnp4mfnXj4KH#fq%rr^&?jf!T5KGg&3_b^'L@%VqTt+iI2KU=kDDV8`DoW +Z5&6P"NT:f%Q'tqh#1g?"+,W*Dr&,odeo<,::'4mG3m@U7OF?.n:R +?dLu2l[!R4?)4XgCI1l^goB^/ND8_<$.mTe7MN)YNKi1%RUeo7&dl +V)Rf@%IP8FmTtV>^?bF.O5^)#mseF-P;Dkt\F@6>n9OQMT+gN4DVuR/jWAd_Onh5,q1"h.V!%@lU%D,2oUeqU^?tRp?.;)AqgVoKN"e@3*:No? +l?Zb0hf8SjBBroOnX9XIhhV11L#p7jprnTjhsLFCnc(iHs*pg95PuW6G;IAF"G+Bt +&9q.m)$u&7iR&Kq:*14#`T%Pte8;bnbe!U!dZIg79k";68;`FrL=F]4nP(m.T2)`eQ&'EBEpM +%K?Zi_rG^H**uD_Q-JH4q0a<.9;0i#FaG-(f3c#?mW,V9LHE\ujRN%o*e.7\g$/5, +rSJ]PcenEkID2>'fB;u)s$(H!qZ&kiZ7^$aVeckH_%9Qb#!q``,6pP3KI7-oYf%t" +6L`bd%R]aX6Oq%S"A'1nYs_A&7+#O1 +,\\(9njJZf8TJ@2-V__Fi+,g.u;o0h%b9ljk" +2bimsj#KkUV!C*;o>L5`:NPUo5>UnT"$ob*,n!(:oL.hu,.(VoMG_l7+%]?eV'/K0 +FM01u;fpPO9[iXq5u1H;,tCm5?KGKQ"sQ(opp/.=&m4`?WXZ: +kfU,q,6MDZ[QTga=a!6%AQcHqT4qHZV5%eZCP8H>$1,hq@_f/jth8OEiQSm66 +?$AHdE4<"CipPZ@rT/@^QaQF4?['3\I692!!s%7u*X./RQo5V2@s +Q7Ii%pms:"@p$`0O(5^)3=SP8%#Z:i\OKA[AD(P%QY#uIA!pqSVJDZ5q8RKHB6iWd +T4e!)K:ut)-B"X4qF6[FBmOB\VePbi;cD2WQE.$#qOY$oCKe`eYA:`S\Zo'j?%ZM9 +Rmt`3CtiRN[dAEbj1&uRI=kt^qo,\N>J&b`^2NoC"2=8P#784Lnk-)IE4fbq0&;jo +h8jVaQRg/Jr229m1m`plI:(e(6dTq&s%Ca]cK5.^@Jsh?f4!Kb>M++IQ3E**3;uA% +pO1)/h07]_sr,( +-d2+/qI[LIlp"S+p3lsJj7e"0LZeP4HS4Eks'OpQrkGr@!+5p3J++3S'IN8,TMpi$ +DB9$JfHC>>PRi@b7LBmZ-pfS"A +\hA5e`Z%9IE:%)H3eoEUp,dJQn0/Q4LlW/l`+Y&@i_gA!O"MeBLn=2Mlfa4g<\$U` +Yngfu>DnVe01GZP(h47iN00D^7X3S*bM8pFhq@@f2^GAPHdqL8-AJ:?W +[Yn!T0+?rq\>,5DO%X4R7qi8"QW"B%;JChVkuB1/PaZ(*M2sE+MSbk4esfTaEDC5u +4/\>:T2YT;:hg_4W0J-n(jXRjC/jDrFXEtbqOID[>k4K8d]-;nX]B2=>H84ca\Z0W +5q)H&'d8*g[0Ya,^s +R9Efeks^N8<]7nKp+Z$9Pq]M#%\q^(0kP7PS$SE(cWU-2BPeKZ[$I$,1qKG\D,jE? +G,EhoqOIP"eQoVLcJ)@BDf'@0m@P,f[T9GWE,Gis\+^Zs>\f0^P>u_8Q-/7@4.Knu +[=,6$k3?6!XM!ltK"IE,qnJKks!X@BJ8K0+[MTYY?r\XlXkgS)QKJK\]H;cFJN-*m-OX1<0lc^6(W1K1 +%Uo4d\*f7&`0W\%@PhG7EE1Z1G@q]=UFg\pQ/KZ+LDn'7a*OpXji(.;=$"a#ZQuJX)b^#(2iESO7 +E:.M[)7)24gu4aoPR:)DT+^-Gm@IB3.E._L(ME)A7IK"k`gR\_BPe$'CdpS/)Daln +r?%&_Y!ftV(Fj-I0rB'DS(!gM:MKbnW-&lNMj\K^AXuV`2-*r)fpc&T?"'-YQESkN +#;g&[EL_0sF4XUi?>KL`E+I(A1:c^4m!Xl!DN[Q;3WE`.h4Z;T*f/O=+)>P[CQ4;Fg +D"YNVfK9h"C^pulGXi/#;C>r:NZk\fNlm$Co4R7s0u`q8e(T.UC@.$GaC2O2g`2Z! +npS'k)&cK0F";M+raF#rQS[cof:-i1ER&jY3Sp7_T6&k?^)t2qi&g\.E"7rVH:>4! +Ho$HJrghP`Dc#_I98)g6-.[==>N.(ZB^remfD?0#j1L#*G(.]i@Fg@tgo%W)hVlV_ +$;KWc2kB\ln_SWEHgdO"^N]\Yi,Wa%kPYe*pjWQ8GLoFVSM-garu:#H]jL']=/u(F +WTJT;Re%DtXEDgr`;LLG21/W5p(($bnS`""?)t>YhdN7@066IZe%#9^E>&slFmr`3 +hg>BSn9u1kpn&A_I!=&u]MH]GSg2-fh]qc@GLH%h=6^E6HfmTES,8e$msVscpKU"I +oH0FIrbC_LI90kUSu06ucX6TuGOtMUQ]c]6na:nQ\$F46=1u#=*)2']\C@S-hHe$GO.\^ru)Z'Fm>9%mL1.5jT&ro?Y06'0RT4/#1QX +C\>Ga(EEVQ5GS$=X;X"'qnLW#5ND^Yg*N_ER6Y""64>#(*$R^#,=4L<6;!reN!I(5 +-:25L^pGOU`$rLG.\H>B_#+d2gatkZ&]4Gu/kcno6kdC1196T&_0d"c>W!#@(r<9k +6]?66ju@L*(!%E6UWr&6@:.K>UIC'84&7b7#WWa +PUj\H!^b*b6M)tMgeC3'9Z6b>OaJrP,Z7&L;N-hU`Cr0Y;:*4.)9$t`7>!rpX?8qQ +42niq&JRDM4@DX)?Uam#7LW]p*+DAg6,Z_m6tBg[MkWVH8]H-M`e7tI4A80(:djqk +7a,[U#CKTAN-7RY=ZI?F7C6=?S9[W(%)prD7PoN` +gjVc[In0Ee8.:&)N+L".K18K:4BuSk>\M2pBukT'4JZjae8E@'Mb'@s7_EZ[%#u=L +UIRF)aTR_8r,p&%G/nuoSV108`-Y"MQ:8`>&_qrZS=3$NRn:8_8^*_sg+l2MKLtg/ +#[E'SFG<>>U.RO>7]_Qi]Saj:Vb1d(0[,Ns)t]ajOi\#RaTRdK7$C70Xr(:ea_\4R +I$[4ESkD2Q92)`d>dd:A[nD"<8dq?54Ll/2Tuo4)8h@YJ7"rc_W60Lb9FS^1*5A:: +.*B3@9$<19gm#tR`le)Ra]u-p*6HAK8P=`\9[(aTgs/U[cV48`.R^jB*4aindtk>$C-9o"c?l;;s2.U;:9 +<>n\.)c0\Dcts'8FWOE9+&JKDd&d^P9d2!V%8cF;:uiPAr;+iY&Q3V-d;:=1SLRO> +.oO&3;TYNXK`TWe3m52V;8!ms%5L8gM,FL6;=-3frA?^C.Yf-dLP7]dPrR6`4&`7D +;l)WU]fjih5#_DE<"2%?e.p?D,17B/dQJmQh*st!-;o7_;&q&/74hK@92rSu<6\-: +h+eQ1/l_cdPjL/'*E#fN;c>2N;a!%fAQD`8=&iH_RN4Xm*Egpp5uk[bNCh]4B-JWser=BESSD3-CKA*neHIU+#uO\C;q3I! +S0M(bMbk-+f):S0'ogf^O&moUf2[r79p/Wd +:(T")fhHnHeWs?IoD2MLKUKTgV +>"ths>Ba2_D;'C>N/`m#jf2LTE*3@,feom8c)t2#DcoMsfmU,.Q*K'QZ7I%S +]s_#Cm+Kp\=l#[['_pB&T\*M8g1@s%h7d+\^K^ZP/Np":)gb]3Wn?^W>Wm&[`NNN` +Xk\'%gj$Y>"gZpcZs:#Ggr7NC]pDr/[op\s-$pK`S[i#X@p/cB>tqt2NPO@ef3NgW +?&dNCRPNYEW(9(h>.)<)e\sY9`a"eMh@7P4*HdKmc((t+0e4jqM:M/n@.5A54c/Kmr%l),8[:j#/[RR=jJD2 +6)eA6-KF5OANL**L-Xj<5\5C1aMpR-?:8A%7:iV;a"BknhFLtU11gGV0(nUBc8=Z5 +o48DBAkloL?=mecS7N_=AN!MiaGsh$CL;f\ATh2;A\N.q[W5SNok!8U +c-Al@VI8S%+2+7=kDj%8c=^dmHY:'?B?kol5%n:s]21Cc6E)?pSnkhOCupCiB'+b[ +>H2*g14iPA*4F3OXCr7O;^U +`fjGTBlULeNeHZ"L2")M-n^9gNh0p=T4jdE&mf\D]N-%RNG:Y$@E*P)Su-3(DWsop +C6#9.SuQP-!+dL,'eYg"aMqqMW"_G!>Y^`%^9VIuS811I@_SK!m\"?5[UT4:l6H#f +2PfZANYkf*kmkCACA$l#^MEhaC_"9t)U%AL_J7f.&tQ(l7^0\*Z0O[D"H-C#1;jV]4A(@m687%RU9odlYaH'DU.We +g$S0ifBoH'lN2D[Ss\p%hsKjiDbfpI`li6XipV?U?foXO:@8qY28Z_%<0?1EW'-] +mgnhb5B":LDpK"rN:WYeoZnjtpF#RA:Ii/aoaaoB+&[57;^5p@'uDZg +C7oZ57L2FoN+r^L;6]Q1e!qG>E@*?ZpIV)l"J4 +*qs@AVgtUQ[+%p$/]E@]?_/J +N-V=ZH-Q/0f8fX`I9aO9nFr#&GEMRmUMnJBpFi@<0:7'(Vgl+>qa*`BXI#lBpGJ3mob59f6I*5pfpV6S1 +cI\[4Hmb$N"k!3;dr?2CHXG<2GKKf%f6r/$I?,lU^Y4(egAK"H+D8uI#Msk$62_>1 +rXWpq0=1X2UjH1>rE^NCQf`a8kC.pED-,KkTA+guh#=RqP#'tahp7(52Z=N?4\)7E +8)ml.eG`899/l)7?hStfpO@X&rho)^TD6+E1FN +*Yem666G^lKLR7$F?/2T=M.fl)i[?t1&0g]4X#tZjO,JFQ;]/r94a:^>fL&)QqZYk +=i@$^4.\hZXk.CgK0Z,-BU!f`-B1Wn;X)]bKefK#WRP[JHF7@c>HCmVA_sgKuW4q\m94*Hc>.?HbNj*fDGgX"bX[#E7fP--P_QZ@r^0!L.?GcGas4)-]Q:0Er"MILGPdQl1B:mI^`sjg[',G?/Gm:`SU01I(hg(VpXi%qgDf> +B>ba0TsP'ifKag.G1.O48Z_Qp7`bdf=KdaZ)cbVK+81hM$[ +dsU+6c;U7t3mQ3enN>,rh"a.[e,9;4cr;"l6I=4F&Ob#G>o?,Ze9rK&^p$KC8^c+j +0hPAD]f/X6Pl3aAe$U2^;H-XJ;,c"F2-Eo/[9['0_/VS;>1StO;dQG2gsY0hH-94HJ[8enU04qh>)NWfDYf$i)h$,K&G9F&VT+F>kqLQ(k#bIiRjG> +M;m0j0oBIC^,M#2R/T71j1-3rqc7k,JWs_Gr`>?GR=8FH=B:-FRT]HhELZ,o[X"Ca +X,X`agKG?*U?J%0LSUe+"ke"^g2":a&oGo#`&apg,&!iqV@pD8U=_(R=.YSq!*jq;.I3l2'8?Z0H[32\F,Xgjd/[r'(-) +\oU!CdI[T9<::^'=G@UW%cgCctdaFMS6j8+f*X"`q'a!<( +%=uki#XK:R"Q6'jK$[f/]m$pY@+63LOF@YU(d/.u"=&THQ4tdBlM.&_jFtp?(dc_' +jI^6GI?<:Z6^V]8++s<:YMpYB(jutDMbJXSrVj`[PnIP8C+i".$q2#0']PogMU>`] +7@:IuioFC'd=*c=(rTci4=#m5Q8Cpqdi%1FD2j[l29-QhFWk!CL/Heh8!mb@TqjZ' +EW/0n(j-s`r&oiJ&g9ek'd@0s-]$/.-,bWd,\3WVN,i5u8XVF_jQ)kqdXG"b)+>t8 +,c-aR@Q?pak:5RmXd(ZU<_Ea)/7kW`4)rh7bF%fPUXV&[Z4:85$%jBJ,WUt72FY]D +Pqlr^5;*XM8]_:81hNFePk/3t9prCIk2b?fdsc72)9"Su,it4Fb&g9Zdk.J&m@@1i +G#&G#4AJS[QZM"ic^B%#V>S3&dh[GW3WtG4m)YjK/q_C%&54Eue!^t7LJ\jl3N/bh +U=gM,R>j:p(VfW8te9^db/)<[uK?C">b6:f1,u,pI +HGipT'k6N@NNq%uaB9H.AF-(!XO^^bfo"kVeo&g,U?PDFTVM/?QUpf)FT4)hi8!-,mC6+F+IumrCq3a19Z:cIrZ& +FDdqK]%9^Ch-!rd/Nor4pN7&$Rp0X2-0)Y]7\JKTCM`Hn)aM_fDbhY*!LlN?-L+9.ct,4'c:i>%D+S`lsUkSKWp1E;jVOniL@N8d)G"P +f9[$)HpEa0L$Zb0X_fG$jbiMe/WrQFr8SabN3C5W`n0M[j.(7Pn`E!Tf`*()'30VO +?3nX*(?X[/PlreL(!5*,-tM,.POb!m_\dG(?4$7^0b.L-G`+7^K&MRTDIat"`ti#E +eXC5uEQ4E])s7WLP4PPncIq);B:SXdm#FK[fcL@[blmNVY#Nd$:IJl%';>%tWQP$P +/85pC??6T`bM$"/b^<9UED'T^R(H.k"%A`f-?6cr%od;7_(Xju.=iT*>STCPIY +elosr2LQO>2P;L:5GJT3CZBc&rH`J_Za.H#,Wt]_2j.hHS`\Dg/]soS3=sm'+1i +]q)sK,WOKqRngUd=TN]d%Fk9mLiFI^`;$5FinR=PnX\4MpJ2g\Goqt8'b.mdcR%Hg +T9=5T9pE(=aQ;1Q)4,d[_"M\&ICpXrP;^+l[aq>$EgrY;N^_=k-Um7T+/F"J'umcP +9^1>OT(MrEd^l-cjZQt9oq#17qSuj,YBQ?%rks]O2`9sWe$NR89;^>`60I(9T(a2q +coZ`"mQFXaGFnKaqr`CrcqC?_*]`/iD9=&O'3];16/VTKM])K?hLSaFqS%3`W8*W"iNV2/CfR"]Om/<[LnK&4rG[GU\rSP0[ +S$1QD'&hrbVigc3(Z]s>P^g?dA+NknSGEaX0KtQHLOP+KVk7,Vro^9Xhf%u^hcKPt +kJI/STCdT)eb];SQM:CUpj:o[qu<;YpP(WFrnUfLr_LT7O8f1+!r3@qlnAdRO/hg5 +Lc*NlI.+;-@q,?I,5dNLr%KW&:b%#,=tf@t`fKcpcp%XE6Ng4Tp.soUcg:lHlNL*\ +"`RAjim.Pm8C#Q^s0-8CODb+qE3(\-q=&_%B#aq4%)"*O1GCfjOGs=gNsSXH$'35* +OHBk]QM^gY$8&Rg:p16!J)19h&qd01*o!te?j0(BG`OOFgS,8*j$ +&s4ZEYfd[kcP'."'9P'aYr<<>#7`IY%M;>CnP9jS[0MfZ#Kkt@0_#19$-QCXHPr6K]+no,(?V(pVg41#3k4h]>YT*g,50n`(PXo,gj( ++-HFBa*S`0UEEF5+E@Q,Oq-,,)BYIYG@O\E=[&'*YLOU +E]kJL59s,o,a(G=d=@^m$m-^#JtdN^.1 +,VCgl!7611Oj+CkA?TJ@,dKocns_*AT.3a0.[$P6_KdWZFXpA!/!@Lpd_7V[BdWDk +/5jY=&5t+f,:BdJ/X"^;dXr"GjX?;SO$rQNYRr)eHOi]=,Ef)WEih#.s"I@L0TuSa +6749=dkOc;0pB4#o)] +3E)C4F%%plUGVS?1iGB37?K63)eQk +Ze[T^.m7XD3HOLHe*T/Zns34J3g6Bse,L/hXY2Gn23"Do_Y$$5'0K514HpRHZl(/g +k<`,q6Biuec!`dM1Hk@h4u1)Dl:!oO6U(-45?(3=Eecld;a;$s5Kgq1YH4mjZJ$Mm +6,It7e8IYfF$]GB7h<:#oRBCGK1JsrX3qV4e29V#3CspO$ri%XF@AU)UIl5u7)ngN +<*;j.=%cLrV\;uoC'-ptr5KFmmW9%7Pg;jad7:Rq.Wh4UeDF"8j%`1T8X,E6eE]mD +Mb\"?8sH/E[/Ef8qL_`B96@L5PmX.*"\&fX#]=]Kio(_A-V]iS;O&V-eC>*EpJY'N +;jBFCa=g=Gmn$ML<)lQ[Ps1^\"]+ek:c2O +^fPXn3p]F>:(Xka+Td:C=LEbn<,#IbgIATO?Bsh_eaHiKq-$em=uH1\EB.AT9j9Kc +@!2o^Di%*Z_cugN@8:(NPns5hcV`6A9QI:3[H0LQ%q?@1;K`.Pej![\6Y&UP?^:Y% +[SJZE7[*NT@$V=7elu_i?!Gl!>ZM_SY/o%VEBo-Y*@:esE<\2LIpOpHAQF_&erOM\ +Ou-3:AC^WmP9jp72eA;QAbN*8/UM)QDeiBj@?$Ob8dLV=Kd?ggCf\_bG,&midqr.; +D3H2Yf&(2Mj([uBD6+Ui[dRu)o4l_*'m=;,QMkb6%PLO+S(>h$@ngpo''Ij3EL.Va +f,n]BkAF>ZE`"u?#e+_qnT-V]F%tn72ZIQ:"*=Yqi$ef)G846?:N[ISiV,!Jf3`\; +@nns5EgLQ^GAg%(A:k[WGF(C4Q[\%S7s&rDGaCa`Frje$[prodFd>$^[rm!5UO$"> +2qMbf(N"KK:O7gKGIN-If=QD8ZZGl!G^#-p[(7l$L9\.;?'^7kfA>p3[shEAI[B@B +f<]f?o6U&rI`Nsc2na_Xs+!TCI!F,j>(NTYkNR(n\!muKhuN&\q?fT/8@ +q.KpTNAt2[GjCJ0'9QE5\mRr!?r +PaP1/fhSR#+-(Ui>$4[Fq(IoaA!4B7Gs_7hR;\:6`mkWt?TCJD\QtR?K:#erS=*BE +fi]ZTLi'\2QC2UG]$J-5E\Jf<8BPYF>?&HIJu7T4L(]?TR/Jq[]g^eXAP,Z't!'Q)h)*Q*?`*ZCu?N1sUZWh&H4-3MbotZ+GAG\.rdhqn7sce\>>_^Qq$0 +6R08`S[jp2^SM5b6[-6!'=u`+%XYUt]H)[V7DBUp^q;27gb2CN0J].#_j*g2"U>M_ +iPAaW_0Kh4]BR0P;,HtE_K@]2T,A5G>H:E2mFgC\%Ejh^jp +aCU!8>[()gFidmTac^/(U@6"4EQ6=Uae\Z>"T?C=8]sR`Dkeo*R#i\c^Lm2%aV+p% +][+hBdhuDcc((]F4OdfD"Alb;cBu7=],e%Z;V:]*<4A+!sW#bb$>C84U'!S +N_t2ibBuqXK^6,m%Er&DBjCPW4V?-`1Xf-,d%*8Cfd"snHK<$id@Ep1jSn9D3RW#W +D-\`=rBo-VA(FD3e(kJ^pb13/m_X<4dG5bn`r8jf-8g3QSlX7hh#5hfPM'6-gRW-5 +h/?(pQqiPr?bK1cq.,ZeM%74'\:(sqSYb*^_q[rSg&5dCf-T3_k,\alg>1K0kssK/ +*Gq@.(ELu]h='5/s4k<^g(FqR,iYXi'A_KJ:^Ohl1@O(J]l;g-iLV"IbBr-;cel5i +iVihK#.NN>16'F6i9[pmSa"](/*(#,jGL92_ZAa\;V`Beh-N"Fh0\0a7&h:hjs#", +(@1#palT+PAH&3DqL?AC]cgZ>:hDB>)$M<;*iJh]Y8 +D8+CCroNVk"7SoOmJdR[IgC3i+%Mr/Y2T:,NtU\[K7p"tNr+/Z:bQ.k-"Mgq9)^Ua7a_u*!Q +qS12Bho;]=[J;eurq:1nIPnPtL/$flXr:0pt_tP?G9L +EB0RbkEFTkrddA/;!=-I2'.lOV,HQBg3#TQ;5mO[Q!1S%Z!"20l]p2sI_fHt=R;>X +24i30[9Ds`gNC6hEKWGU%st/,lZ^$KDjQCTmf.^N@.79'%Nc"5_d[VQ]QPeKNQC/N +=^7h2-^hU%Z^KVBImKdUB_7a!21^"bDJFJ?ogaFZT4bpp +nb2n=IW)^QnbN-4s.A3?rr>;<'F+\)YVZjn5ql7S#!oJ8*sb1^4"SW4&>Ure6SPT# +$q$-+3tOdL'K6=dYr#5j757bBTXuq"[hq2(P[>#+/k`MB^G&>;'ZVt&ZS]ub9f#`d&Aut= +gGhTBN8HWjZ_[%MZZBCG5#8NWrp[u`o`mcZZ5![5d*tK#78^Ed+%A^V"Xco?['_NL +9!m*E:!/^^5>NNR`CEg*[5C`ZdQ"Hgf1UV'^`rPd8 +G$VS"hfRKCm<F8ugc;U0D\[7EPk;['tK]ecS +H_>$H-?#Vl\h_Hfkr?\LNG1r_O/QeSQD^`t]!efDCHC%TY\!Wr]s)*1%_o8%]&q>G +D(=t-T5D.Lh6q1tQK,LB>IO"%l.adW^$2p/n\B*+(C.fr]JgA>EBI/kZ15FYaiJJW +NIf(>]XIpQDB.6jc1='\5L2A1^IQ^X47>tZFZ]:Sde1:t?eBNbQY5#q]sR[YGH$KM\N\6F^/+@<=/W%mgRi +3$A_RN&>VE`Z7FQ8I&\r)i*p/+[d/m&RmI]K^gB&7(650icItR&On3<32mWj3dN-7 +g+>[JD\lm:]Sb*k0bii().E_]LiK-b`]2Wd@T3>en\k2lf]aDd[!.QCjul5?@.4JM +?]Yk?5fMsjAg?AlOUMFO8@[+n@l03eE[F@E#j!$MAlar+=sA:1SCP/9a_2ao6.ZeprZ?g(fE36t"OSJ.lC::]%>B5sc9 +'?4V0.@WHDI#+54>'Ij:[5VajrLaSiIF'nh3N"G6S<5^]:q@N3BQXi['LI+C3UJtC +[1j\Q:45tV/O3tHhP:j6TM`j&h5E1;V!st=d^iRSBlu)+&FPKU3\*oQ]Nh,b6][8p=KUY"f<@;IfV +YneV_="<06lue;n"t%;l2:5areX*Hmg<*R+cX8YCH\/[_sl(Hga5 +gSh,hh:K-oVI=%X%$M$<$4pbNWrKNVC1( +k5AYrZ[$I0k.hf3o\[juMXOj=_!lOLi3^[Tn9*DJ3&:kL4=Pu'ZSoSNB)pnj/VW]b +"i3.,&@q^'M,Mn8^:6JCibVbUEHX"T$G-dX4?&7=(,8^aaVcHP+Y7>XX*Gl1YG3E*1HCLM7QkWl;_9-9LPg-Dd`Zok0kNPiR7fG8`m`@6 +AF.`MF#Iqeq-,jjM//V;Z2)SRk6P^Jq4Da%J'\>-1hOpq9!fP#coNL/B2'8/nKs.A +#Br=Br/#*/NgJ35B2)f_&"@P)J(*)O:$OKRSFh!%W&g,B(G.#8A_sK=)TPur4#s3\ +,W7"'fro0cGY5A5NPPDb@2=i.V)C*"fR"uWCqZ6)[1:O6q7)qQ4UnbLQ0=hr?0F\R5?rh&E87DRh-t[^5'Cp!B/[bLa0VDXF3LapS%)qKi&-D=,2tY281LbDUAGO2/9s9]MXuO`EWVm'p[: +.<:BD;f1j/\%NaAV)OA%g-a)0Ys%.CGai:TDpN_'5NiPXPOA(u;ms5:e5sPFEpeNW +3M0*"rAU\grc:\gPPj]oB%`& +5I9D[['N]3Gaa +UWF)cJ3_Bo>?C42]!!Z:$MX4>fLjP.o^75l:gMq>8)DNPhM*6p*oVA4Ec^Gj?8(;t- +iaKPH>.m;s_/+R]`-B=\1In2^80`"B*,$fqKueq'aHD=pN/G[Y8X,XbU,t9/R_<6t'SMu79UJ'2Sk9-Y +aq>H2]V3#DSJ3'=2=-qqjJ>IjVojSa8h?pRXJ?HpW\oI,212JtjK?Yqf?0Ve]NhKL +e?LkVXXHlL92r=B@Co)n[_*Tc&_slQe?g(:\kBuSbL)PI%)'9K\IQiu1q^F\"Mmbg +_otDibC%7?AAC;A`\\+@+:Q=bUrpof)*SbX]<'$_]Zi8!aZnS,9bc""+Z7?Bd^nej +1T](^1scl"ekLhMc'-1=)P'3rfou?a/\Kjp/D!=$hG+43c4L(IEi-d.iKF]+%P6Zs +*8_%7k"^TncB.Ki3jd26l&s9P%J9!BSEC0RmSO2"sf,s3LoL[[Uu-'ZS':37'/mc1M4dAHpM#O@T)J +:lP_$70B>s$8Kbs:rNmjjRc6[Udtq)ZfM'^'-kDk'%',^c4();Pn28B$H+DOda3*$Um3#;5AsnjWRMZ,KgfBdQk?7;[,us-*gJidY0-uUmf\R +.ZFR`Yaj!:`:hT[hpUmGdhI8YAMK/AN(9'0dcE8?"@Z7#2q*I?cK-l\deHJ#3D`^/ +c@%fRjZ_/cdaP"Ne.?sZrB&L*(GD=He5\reAA(qMQdd!mY,nEuCD,,k9%:gReC:0k +I88:MD6=mO<8.e_h,2][;nibseNgOlogi)*J1b%e\JOlD-k`j +="Xqb;Wm9NfOWRmDcf6p0= +/TItBJ$/[L=@IqrAVRgfJQJCufRj".22! +g*NTLAZ"1(Vi*.%>*Y[6@TclgX4kOog=<<_/ZIGeQW'q)U*ZsH-*l8_ZeIa,>4o'r +K"bG`\(cVHgQe74?*IH?D`H:XgXX!ljhB=u]%[*>[3::ZotoKA_q[[Tg]]Mn'kuGt +a4uBigm'-i?$\J%6!Tu)gss[)jTaKBT0>uph%e>n-.:(-Ug5k-h,W"]A_*f>QB)W +qqoBjhpq\_jo401s54(]i"c@O-3E*`"5lWOi)U$>Ad71:#N1=Bi0F]-V@)7i$fK#5 +i78@qjpp>C&)d^(i>*$a-5,8q'B)CpiDp]PAes?K(ZC)ciKbA?VAeF%)r\dViRT%. +jrWLT+6!JIiYE]s-6hG-,N;0Ze +0B36jitaB0-8OU>1ZLq]j&S%tAiA[m2rfWPj-D^cVE3bG46+=Cj46BRk!%i!5NE#6 +j;(&B-:6cO6f^^)jAn_1Ak(j)8*#CqjH`BuVFopX9B=)djOR&dk"b"2:ZVdWjVC_T +-;rq`;rpJJj]5CCAle#:=650=jd''2VHW)i>NNk0jjm`!k$I0C?fhQ#jq_Cf-=Z*q +A*-6kk#Q'UAnL1KBBFq^k*B`DVJ>8%CZ`WQk14D3k&0>TDs%=Dk8&(#-?A9-F6?#7 +k>l`gAp3?\GNX^*kE^DVVL%F6HfrCrkLP(Ek'lLeJ*7)ekSAa5-A(G>KBPdXkZ3E$ +AqoMmLZjJKka%(hVMaTGMs/0>kgkaWk)S[!O6Hk1kn]EG-BdUOPNbQ$kuO)6AsV\) +Qg'6ll'@b%VOHbXS*@q_l.2Eik+:i2TBZWRl5$)Y-DKc`UZt=El;jbHAu=j:Vs9#8 +lB\F7VQ/piX6R^+lIN*&k-""CYNlCslP?bk-F2qqZg1)flW1FZB"%#K\*JdYl^#*I +VRl*%]BdJLldic8k.^0T^[)0?lk[G(-Go+-_sBk2lrM*lB#a1\a6\Q%m$>c[VTS86 +bO!6mm+0GJk0E>ecg:q`m2"+:-IV9>e*TWSm8hd)B%H?mfBn=Fm?ZGmVV:FGg[3#9 +mFL+\k2,M!hsL^,mM=dL-K=GOj6fCtmT/H;B'/N)kO+)gm[!,*VX!TXlgDdZmagdn +k3h[2n*^JMmhYH^-M$U`oC#0@moK,MB(k\:p[MnlI..B.!1n-h<$@ns:frV^h8H/+U_3o%,Jak:Z?"0CoE&o+s.Q-Sk9P +1\4*no2dg@B/]@*2tMeao9VK/V`OFY47gKTo@H.sk([D:\=rhobUKu-W9Ur;tWX[oiG/d +B3+\L=7q>Nop8hSVcrc&>P6$Ap"*LBk?diU?hO_4p(q02-Xud.A+iE'p/bi!B4gj] +BD.*op6TLeVeYq7C\Gebp=F0TkAL"fDtaKUpD7iD-Z\r?F8&1HpK)M3B6O#nGP?l; +pQp1"VgA*HHhYR.pXaifkC31"J+s8!p_SMV-\D+PKD7ripfE1EB862*L\QX\pm6j4 +Vi(8YMtk>Opt(N#kDo?3O80$Bq%o1h-^+9aPPI_5q,`jWB9r@;QhcE(q3RNFVjdFj +S,(*pq:D25kFVMDTDAecqA5k%-_gGrU\[KVqH'NiB;YNLVtu1IqNn2XVlKU&X89l< +qU_kGkH=[UYPSR/q\QO7-aNV.Zhm8"qcC3&B=@\]\,1rjqj4kjVn2c7]DKX]qq&OY +kJ$if^\e>Pr"m3I-c5d?_u*$Cr)^l8B?'jna8C_6r0PP'VonqHbP]E)r7B3kkKa#" +ci"*qr>3l[-dqrPe,;edrE%PJB@d$*fDUKWrKl49VqV*Yg\o1JrR]m(kMH13hu3l= +rYOPm-fY+aj8MR0r`A4\BBK2;kPg8#rg2mKVs=8jli+rkrn$Q:kO/?Dn,EX^rtk5* +-h@9roD_>Qs&\mnBD2@Lp]$$Ds-NQ]Vu$G&qu=_7s4@5LkPkMNJ3Vsg3$]7K#D>EP +:q1$o*=mro@So+\<\5,H7Uo<*jE<[.O@Wn[3@'nb-^757;Rp>H>q_R=AlC^cenm@9 +:1mM9jS"!dTMT<$3[GQ$8#0$s<4ZX!SPQ1`C/mioWjnAY&^gM+`4=1jRLW!YA=M/6)*KS9PE`kN% +="Tc_Aoh+fk'&t\ctIN)4XQLiVpoI(>.nOW?*DmsG$@,,f58"PDKfeXi0S^6MAH=;fBr>1IXb_>kP+oS^^pnX!PjdJ%0OEX9GI`IODGpB_@VYP$,Ve*/ITH-bV]jI +OR,+@`"`Y"/@)9.f?D&^M-b]OrHOmIKN1*g(o[EC"elTX_ZZ,c*_ECQL2A(g_UF=ESQm4c#_\W:"=CB +QYkQ&hA;15H/=mim3UV:)/KAQu3q"iY[\%M;jo* +/W8X+c8CUAR-m+uj;AFrOlVo_9p=ZV:0!S@R;Q;sjr'1jRHBp?D4B]+c?5]@RI5Kq +kSaqbU$.ptNMG_V:6h[?RVn[ol5G\ZWToqTXfLb+cF'e?RdRkmll-GRZ0[r4c*QdV +:=Zc>Rr7&kmMh2J\aGrimCVg+cLnm>S*p6in/MrB_=3sJ%E%]U:DLk=S8TFgnf3]: +amtt*/^*`*cS`u=SF8VeoGnH2dI`t_:"/bU:K>sj*caE0;T'sA]r#ZHgnbf"4 +c1ClU:Y#.:T5WQ[rZ@3_q>R"imJHo*ch78:TC;^Xhuj(2:_!Ol=:G;h6j\E@/d=Sn +*moVE0nrNM +)FIVD%H55cLJ[C[6eHetiWMQ';%=d<=H*pP6qN54/ga!=SJ1"9;2S4G.RdIA(#m/7 +Mc"@E7G,9iirieL;3!D$=Nq`D6tqWXXu8c%h&GC-EK3oA3_*<>*TP(`O&>=/8(db^ +j91$q;@Z#a=UcP87#@%(/k/Cb*@'WuOciU;8kE/;-03"4P>Z9n8_H6SjTM9A;N=XI +=\U@,7&cGLY#\0J>q>#iZ'J;5>"`"8/`jp]QW!6X9A+_HjoiMf;\!81=cG/u7*1iq +/nRf1SMTD]d@+!/C/%j52>"qTQ74G'4Y*Mu>>taF90r@pqRT!C,:$KVWVc<)U +;qcXql30JP<=Ya&>)cDE77gYC"9~> +grestore showpage %%PageTrailer pdfEndPage diff --git a/packages/python/plotly/plotly/tests/test_orca/test_to_image.py b/packages/python/plotly/plotly/tests/test_orca/test_to_image.py index cf1a1a2e32..a4f88b203a 100644 --- a/packages/python/plotly/plotly/tests/test_orca/test_to_image.py +++ b/packages/python/plotly/plotly/tests/test_orca/test_to_image.py @@ -189,13 +189,13 @@ def assert_image_bytes(img_bytes, file_name, _raise=True): # Tests # ----- def test_simple_to_image(fig1, format): - img_bytes = pio.to_image(fig1, format=format, width=700, height=500) + img_bytes = pio.to_image(fig1, format=format, width=700, height=500, engine="orca") assert_image_bytes(img_bytes, "fig1." + format) def test_to_image_default(fig1, format): pio.orca.config.default_format = format - img_bytes = pio.to_image(fig1, width=700, height=500) + img_bytes = pio.to_image(fig1, width=700, height=500, engine="orca") assert_image_bytes(img_bytes, "fig1." + format) @@ -206,7 +206,12 @@ def test_write_image_string(fig1, format): file_path = tmp_dir + file_name pio.write_image( - fig1, os.path.join(tmp_dir, file_name), format=format, width=700, height=500 + fig1, + os.path.join(tmp_dir, file_name), + format=format, + width=700, + height=500, + engine="orca", ) with open(file_path, "rb") as f: @@ -225,7 +230,9 @@ def test_write_image_writeable(fig1, format): expected_bytes = f.read() mock_file = MagicMock() - pio.write_image(fig1, mock_file, format=format, width=700, height=500) + pio.write_image( + fig1, mock_file, format=format, width=700, height=500, engine="orca" + ) mock_file.write.assert_called_once_with(expected_bytes) @@ -236,7 +243,9 @@ def test_write_image_string_format_inference(fig1, format): file_path = os.path.join(tmp_dir, file_name) # Use file extension to infer image type. - pio.write_image(fig1, os.path.join(tmp_dir, file_name), width=700, height=500) + pio.write_image( + fig1, os.path.join(tmp_dir, file_name), width=700, height=500, engine="orca" + ) with open(file_path, "rb") as f: written_bytes = f.read() @@ -253,7 +262,7 @@ def test_write_image_string_no_extension_failure(fig1): # Use file extension to infer image type. with pytest.raises(ValueError) as err: - pio.write_image(fig1, file_path) + pio.write_image(fig1, file_path, engine="orca") assert "add a file extension or specify the type" in str(err.value) @@ -264,7 +273,7 @@ def test_write_image_string_bad_extension_failure(fig1): # Use file extension to infer image type. with pytest.raises(ValueError) as err: - pio.write_image(fig1, file_path) + pio.write_image(fig1, file_path, engine="orca") assert "must be specified as one of the following" in str(err.value) @@ -274,7 +283,7 @@ def test_write_image_string_bad_extension_override(fig1): file_name = "fig1.bogus" tmp_path = os.path.join(tmp_dir, file_name) - pio.write_image(fig1, tmp_path, format="eps", width=700, height=500) + pio.write_image(fig1, tmp_path, format="eps", width=700, height=500, engine="orca") with open(tmp_path, "rb") as f: written_bytes = f.read() @@ -288,14 +297,18 @@ def test_write_image_string_bad_extension_override(fig1): # Topojson # -------- def test_topojson_fig_to_image(topofig, format): - img_bytes = pio.to_image(topofig, format=format, width=700, height=500) + img_bytes = pio.to_image( + topofig, format=format, width=700, height=500, engine="orca" + ) assert_image_bytes(img_bytes, "topofig." + format) # Latex / MathJax # --------------- def test_latex_fig_to_image(latexfig, format): - img_bytes = pio.to_image(latexfig, format=format, width=700, height=500) + img_bytes = pio.to_image( + latexfig, format=format, width=700, height=500, engine="orca" + ) assert_image_bytes(img_bytes, "latexfig." + format) @@ -308,7 +321,7 @@ def test_problematic_environment_variables(fig1, format): os.environ["ELECTRON_RUN_AS_NODE"] = "1" # Do image export - img_bytes = pio.to_image(fig1, format=format, width=700, height=500) + img_bytes = pio.to_image(fig1, format=format, width=700, height=500, engine="orca") assert_image_bytes(img_bytes, "fig1." + format) # Check that environment variables were restored @@ -322,12 +335,12 @@ def test_invalid_figure_json(): # Do image export bad_fig = {"foo": "bar"} with pytest.raises(ValueError) as err: - pio.to_image(bad_fig, format="png") + pio.to_image(bad_fig, format="png", engine="orca") assert "Invalid" in str(err.value) with pytest.raises(ValueError) as err: - pio.to_image(bad_fig, format="png", validate=False) + pio.to_image(bad_fig, format="png", validate=False, engine="orca") assert "The image request was rejected by the orca conversion utility" in str( err.value diff --git a/packages/python/plotly/test_requirements/requirements_36_optional.txt b/packages/python/plotly/test_requirements/requirements_36_optional.txt index f86591ca21..371b0a3cf6 100644 --- a/packages/python/plotly/test_requirements/requirements_36_optional.txt +++ b/packages/python/plotly/test_requirements/requirements_36_optional.txt @@ -8,8 +8,6 @@ statsmodels==0.10.2 pillow==5.2.0 pytest==3.5.1 pytz==2016.10 - ---editable=./plotly-geo ipython[all]==5.1.0 ipywidgets==7.2.0 ipykernel==4.8.2 diff --git a/packages/python/plotly/test_requirements/requirements_37_optional.txt b/packages/python/plotly/test_requirements/requirements_37_optional.txt index f86591ca21..371b0a3cf6 100644 --- a/packages/python/plotly/test_requirements/requirements_37_optional.txt +++ b/packages/python/plotly/test_requirements/requirements_37_optional.txt @@ -8,8 +8,6 @@ statsmodels==0.10.2 pillow==5.2.0 pytest==3.5.1 pytz==2016.10 - ---editable=./plotly-geo ipython[all]==5.1.0 ipywidgets==7.2.0 ipykernel==4.8.2 diff --git a/packages/python/plotly/test_requirements/requirements_38_optional.txt b/packages/python/plotly/test_requirements/requirements_38_optional.txt index 091c415b25..29e1c16a99 100644 --- a/packages/python/plotly/test_requirements/requirements_38_optional.txt +++ b/packages/python/plotly/test_requirements/requirements_38_optional.txt @@ -8,8 +8,6 @@ statsmodels Pillow==8.2.0 pytest==6.2.3 pytz==2021.1 - ---editable=./plotly-geo ipython[all]==7.22.0 ipywidgets==7.6.3 ipykernel==5.5.3 diff --git a/packages/python/plotly/test_requirements/requirements_39_optional.txt b/packages/python/plotly/test_requirements/requirements_39_optional.txt index 091c415b25..29e1c16a99 100644 --- a/packages/python/plotly/test_requirements/requirements_39_optional.txt +++ b/packages/python/plotly/test_requirements/requirements_39_optional.txt @@ -8,8 +8,6 @@ statsmodels Pillow==8.2.0 pytest==6.2.3 pytz==2021.1 - ---editable=./plotly-geo ipython[all]==7.22.0 ipywidgets==7.6.3 ipykernel==5.5.3 From b343fcc24ea9f855d1c4085d0803e927bcfd5d6e Mon Sep 17 00:00:00 2001 From: meffmadd <37695050+meffmadd@users.noreply.github.com> Date: Fri, 23 Apr 2021 15:47:43 +0200 Subject: [PATCH 73/99] Fix selection of histograms with multiple traces (#2771) * sort indices only if a single trace exists --- packages/javascript/plotlywidget/src/Figure.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/javascript/plotlywidget/src/Figure.js b/packages/javascript/plotlywidget/src/Figure.js index a997ae7533..62b301a8ec 100644 --- a/packages/javascript/plotlywidget/src/Figure.js +++ b/packages/javascript/plotlywidget/src/Figure.js @@ -1,7 +1,7 @@ var widgets = require("@jupyter-widgets/base"); var _ = require("lodash"); -window.PlotlyConfig = { MathJaxConfig: "local" }; +window.PlotlyConfig = {MathJaxConfig: "local"}; var Plotly = require("plotly.js/dist/plotly"); var semver_range = "^" + require("../package.json").version; @@ -919,9 +919,18 @@ var FigureView = widgets.DOMWidgetView.extend({ pointsObject["trace_indexes"][flatPointIndex] = pointObjects[p]["curveNumber"]; } } - pointsObject["point_indexes"].sort(function(a, b) { - return a - b; - }); + + let single_trace = true; + for (let i = 1; i < numPointNumbers; i++) { + single_trace = single_trace && (pointsObject["trace_indexes"][i - 1] === pointsObject["trace_indexes"][i]) + if (!single_trace) break; + } + if (single_trace) { + pointsObject["point_indexes"].sort((function (a, b) { + return a - b + })) + } + } else { for (var p = 0; p < numPoints; p++) { pointsObject["trace_indexes"][p] = pointObjects[p]["curveNumber"]; From c60ebbcc102394d502a78c94902a7d7b142d2696 Mon Sep 17 00:00:00 2001 From: Chris Parmer Date: Fri, 23 Apr 2021 15:02:41 -0700 Subject: [PATCH 74/99] Orca to Kaleido --- doc/python/getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/python/getting-started.md b/doc/python/getting-started.md index 0872bffb4e..312940cf72 100644 --- a/doc/python/getting-started.md +++ b/doc/python/getting-started.md @@ -42,7 +42,7 @@ The [`plotly` Python library](/python/) is an interactive, [open-source](/python Built on top of the Plotly JavaScript library ([plotly.js](https://plotly.com/javascript/)), `plotly` enables Python users to create beautiful interactive web-based visualizations that can be displayed in Jupyter notebooks, saved to standalone HTML files, or served as part of pure Python-built web applications using Dash. The `plotly` Python library is sometimes referred to as "plotly.py" to differentiate it from the JavaScript library. -Thanks to deep integration with the [orca](https://github.com/plotly/orca) image export utility, `plotly` also provides great support for non-web contexts including desktop editors (e.g. QtConsole, Spyder, PyCharm) and static document publishing (e.g. exporting notebooks to PDF with high-quality vector images). +Thanks to deep integration with our [Kaleido](https://medium.com/plotly/introducing-kaleido-b03c4b7b1d81) image export utility, `plotly` also provides great support for non-web contexts including desktop editors (e.g. QtConsole, Spyder, PyCharm) and static document publishing (e.g. exporting notebooks to PDF with high-quality vector images). This Getting Started guide explains how to install `plotly` and related optional pages. Once you've installed, you can use our documentation in three main ways: From 593672d8b24a79e1e9cab7bdc555b9ff16a65b76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Collonval?= Date: Thu, 8 Apr 2021 19:20:49 +0200 Subject: [PATCH 75/99] Merge JS package and create federated extension --- .circleci/config.yml | 13 +- .gitignore | 4 + README.md | 38 +- doc/python/getting-started.md | 6 +- doc/python/renderers.md | 4 +- doc/python/troubleshooting.md | 13 +- .../javascript/jupyterlab-plotly/README.md | 5 - .../jupyterlab-plotly/package-lock.json | 3797 - .../javascript/jupyterlab-plotly/package.json | 44 - .../javascript/jupyterlab-plotly/src/lib.d.ts | 10 - .../javascript/plotlywidget/package-lock.json | 6218 +- packages/javascript/plotlywidget/package.json | 58 +- .../plotlywidget/src/{Figure.js => Figure.ts} | 959 +- packages/javascript/plotlywidget/src/embed.js | 9 - .../javascript/plotlywidget/src/extension.js | 19 - .../javascript/plotlywidget/src/extension.ts | 13 + packages/javascript/plotlywidget/src/index.js | 3 - packages/javascript/plotlywidget/src/index.ts | 3 + .../plotlywidget/src/jupyterlab-plugin.js | 18 - .../plotlywidget/src/jupyterlab-plugin.ts | 33 + packages/javascript/plotlywidget/src/lib.d.ts | 29 + .../src/plotly-renderer.ts} | 107 +- .../javascript/plotlywidget/src/version.ts | 17 + .../style/index.css | 0 .../style/plotly.svg | 0 .../tsconfig.json | 17 +- .../javascript/plotlywidget/webpack.config.js | 135 +- .../python/plotly/optional-requirements.txt | 1 + .../python/plotly/plotlywidget/__init__.py | 9 +- .../plotlywidget/nbextension/extension.js | 18 + .../plotly/plotlywidget/static/extension.js | 92 - .../plotly/plotlywidget/static/index.js | 232475 --------------- packages/python/plotly/pyproject.toml | 3 + packages/python/plotly/recipe/meta.yaml | 1 + packages/python/plotly/setup.cfg | 2 +- packages/python/plotly/setup.py | 76 +- release.md | 22 +- 37 files changed, 4165 insertions(+), 240106 deletions(-) delete mode 100644 packages/javascript/jupyterlab-plotly/README.md delete mode 100644 packages/javascript/jupyterlab-plotly/package-lock.json delete mode 100644 packages/javascript/jupyterlab-plotly/package.json delete mode 100644 packages/javascript/jupyterlab-plotly/src/lib.d.ts rename packages/javascript/plotlywidget/src/{Figure.js => Figure.ts} (75%) delete mode 100644 packages/javascript/plotlywidget/src/embed.js delete mode 100644 packages/javascript/plotlywidget/src/extension.js create mode 100644 packages/javascript/plotlywidget/src/extension.ts delete mode 100644 packages/javascript/plotlywidget/src/index.js create mode 100644 packages/javascript/plotlywidget/src/index.ts delete mode 100644 packages/javascript/plotlywidget/src/jupyterlab-plugin.js create mode 100644 packages/javascript/plotlywidget/src/jupyterlab-plugin.ts create mode 100644 packages/javascript/plotlywidget/src/lib.d.ts rename packages/javascript/{jupyterlab-plotly/src/javascript-renderer-extension.ts => plotlywidget/src/plotly-renderer.ts} (67%) create mode 100644 packages/javascript/plotlywidget/src/version.ts rename packages/javascript/{jupyterlab-plotly => plotlywidget}/style/index.css (100%) rename packages/javascript/{jupyterlab-plotly => plotlywidget}/style/plotly.svg (100%) rename packages/javascript/{jupyterlab-plotly => plotlywidget}/tsconfig.json (53%) create mode 100644 packages/python/plotly/plotlywidget/nbextension/extension.js delete mode 100644 packages/python/plotly/plotlywidget/static/extension.js delete mode 100644 packages/python/plotly/plotlywidget/static/index.js create mode 100644 packages/python/plotly/pyproject.toml diff --git a/.circleci/config.yml b/.circleci/config.yml index 82641a2e50..512a6e3e74 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -212,12 +212,13 @@ jobs: - image: circleci/python:3.7-stretch-node-browsers environment: LANG: en_US.UTF-8 + resource_class: large steps: - checkout - run: name: Install dependencies - command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_37_core.txt black inflect" + command: "cd packages/python; sudo pip install -r ./plotly/test_requirements/requirements_37_core.txt black inflect jupyterlab~=3.0" - run: name: Update jupyterlab-plotly version command: "cd packages/python/plotly; python setup.py updateplotlywidgetversion" @@ -232,7 +233,6 @@ jobs: name: Commit command: | cd packages/python/plotly - sudo mkdir /dist git config --global user.email "you@example.com" git config --global user.name "Your Name" git add -A @@ -243,15 +243,6 @@ jobs: command: | cd packages/python/plotly python setup.py sdist - sudo cp dist/* /dist - when: always - - run: - name: npm-pack widget - command: | - cd packages/javascript/jupyterlab-plotly/ - npm install webpack - npm pack - sudo cp ./jupyterlab-plotly* /dist when: always - store_artifacts: path: packages/python/plotly/dist diff --git a/.gitignore b/.gitignore index 9331d2b9c2..a660e17ba0 100644 --- a/.gitignore +++ b/.gitignore @@ -48,3 +48,7 @@ doc/python/.mapbox_token doc/.ipynb_checkpoints tags doc/check-or-enforce-order.py + +packages/javascript/plotlywidget/lib/ +packages/python/plotly/plotlywidget/labextension/ +packages/python/plotly/plotlywidget/nbextension/index.js* diff --git a/README.md b/README.md index 237e8a0036..1c21253897 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ Our recommended IDE for Plotly’s Python graphing library is Dash Enterprise’ `pip install plotly==4.14.3` -Inside [Jupyter notebook](https://jupyter.org/install) (installable with `pip install "notebook>=5.3" "ipywidgets>=7.5"`): +Inside [Jupyter](https://jupyter.org/install) (installable with `pip install "jupyterlab>=3" "ipywidgets>=7.6"`): ```python import plotly.graph_objects as go @@ -95,37 +95,22 @@ or conda. conda install -c plotly plotly=4.14.3 ``` -### Jupyter Notebook Support - -For use in the Jupyter Notebook, install the `notebook` and `ipywidgets` -packages using `pip`: - -``` -pip install "notebook>=5.3" "ipywidgets>=7.5" -``` - -or `conda`: - -``` -conda install "notebook>=5.3" "ipywidgets>=7.5" -``` - ### JupyterLab Support For use in JupyterLab, install the `jupyterlab` and `ipywidgets` packages using `pip`: ``` -pip install jupyterlab "ipywidgets>=7.5" +pip install jupyterlab>=3 "ipywidgets>=7.6" ``` or `conda`: ``` -conda install jupyterlab "ipywidgets>=7.5" +conda install jupyterlab>=3 "ipywidgets>=7.6" ``` -Then run the following commands to install the required JupyterLab extensions (note that this will require [`node`](https://nodejs.org/) to be installed): +For JupyterLab 2 or earlier, run the following commands to install the required JupyterLab extensions (note that this will require [`node`](https://nodejs.org/) to be installed): ``` # Basic JupyterLab renderer support @@ -137,6 +122,21 @@ jupyter labextension install @jupyter-widgets/jupyterlab-manager plotlywidget@4. Please check out our [Troubleshooting guide](https://plotly.com/python/troubleshooting/) if you run into any problems with JupyterLab. +### Jupyter Notebook Support + +For use in the Jupyter Notebook, install the `notebook` and `ipywidgets` +packages using `pip`: + +``` +pip install "notebook>=5.3" "ipywidgets>=7.5" +``` + +or `conda`: + +``` +conda install "notebook>=5.3" "ipywidgets>=7.5" +``` + ### Static Image Export plotly.py supports [static image export](https://plotly.com/python/static-image-export/), diff --git a/doc/python/getting-started.md b/doc/python/getting-started.md index 312940cf72..f74baab2ca 100644 --- a/doc/python/getting-started.md +++ b/doc/python/getting-started.md @@ -144,16 +144,16 @@ For use in [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/), install t packages using `pip`: ``` -$ pip install jupyterlab "ipywidgets>=7.5" +$ pip install jupyterlab "ipywidgets>=7.6" ``` or `conda`: ``` -$ conda install jupyterlab "ipywidgets>=7.5" +$ conda install jupyterlab "ipywidgets>=7.6" ``` -Then run the following commands to install the required JupyterLab extensions (note that this will require [`node`](https://nodejs.org/) to be installed): +For JupyterLab 2 or earlier, run the following commands to install the required JupyterLab extensions (note that this will require [`node`](https://nodejs.org/) to be installed): ``` # JupyterLab renderer support diff --git a/doc/python/renderers.md b/doc/python/renderers.md index ead291cf4b..d7e0f0748f 100644 --- a/doc/python/renderers.md +++ b/doc/python/renderers.md @@ -72,7 +72,7 @@ fig > To be precise, figures will display themselves using the current default renderer when the two following conditions are true. First, the last expression in a cell must evaluate to a figure. Second, `plotly.py` must be running from within an `IPython` kernel. -**In many contexts, an appropriate renderer will be chosen automatically and you will not need to perform any additional configuration.** These contexts include the classic [Jupyter Notebook](https://jupyter.org/), [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/) (provided the `jupyterlab-plotly` JupyterLab extension is installed), [Visual Studio Code notebooks](https://code.visualstudio.com/docs/python/jupyter-support), [Google Colaboratory](https://colab.research.google.com/notebooks/intro.ipynb), [Kaggle](https://www.kaggle.com/kernels) notebooks, [Azure](https://notebooks.azure.com/) notebooks, and the [Python interactive shell](https://www.python.org/shell/). +**In many contexts, an appropriate renderer will be chosen automatically and you will not need to perform any additional configuration.** These contexts include the classic [Jupyter Notebook](https://jupyter.org/), [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/) (provided the `plotlywidget` JupyterLab extension is installed), [Visual Studio Code notebooks](https://code.visualstudio.com/docs/python/jupyter-support), [Google Colaboratory](https://colab.research.google.com/notebooks/intro.ipynb), [Kaggle](https://www.kaggle.com/kernels) notebooks, [Azure](https://notebooks.azure.com/) notebooks, and the [Python interactive shell](https://www.python.org/shell/). Additional contexts are supported by choosing a compatible renderer including the [IPython console](https://docs.spyder-ide.org/ipythonconsole.html), [QtConsole](https://qtconsole.readthedocs.io/en/stable/), [Spyder](https://www.spyder-ide.org/), and more. @@ -169,7 +169,7 @@ This renderer may be useful when working with notebooks than contain lots of lar ###### `plotly_mimetype` -The `plotly_mimetype` renderer creates a specification of the figure (called a MIME-type bundle), and requests that the current user interface displays it. User interfaces that support this renderer include [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/) (requires the [`jupyterlab-plotly`](https://www.npmjs.com/package/jupyterlab-plotly) extension), [nteract](https://nteract.io/), and the Visual Studio Code [notebook interface](https://code.visualstudio.com/docs/python/jupyter-support). +The `plotly_mimetype` renderer creates a specification of the figure (called a MIME-type bundle), and requests that the current user interface displays it. User interfaces that support this renderer include [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/) (requires the [`plotlywidget`](https://www.npmjs.com/package/plotlywidget) extension), [nteract](https://nteract.io/), and the Visual Studio Code [notebook interface](https://code.visualstudio.com/docs/python/jupyter-support). ###### `jupyterlab`, `nteract`, and `vscode` These are aliases for `plotly_mimetype` since this renderer is a good choice when working in JupyterLab, nteract, and the Visual Studio Code notebook interface. Note that in VSCode Notebooks, the version of Plotly.js that is used to render is provided by the [vscode-python extension](https://code.visualstudio.com/docs/languages/python) and often trails the latest version by several weeks, so the latest features of `plotly` may not be available in VSCode right away. The situation is similar for Nteract. diff --git a/doc/python/troubleshooting.md b/doc/python/troubleshooting.md index 680fb5de4e..6f269abe52 100644 --- a/doc/python/troubleshooting.md +++ b/doc/python/troubleshooting.md @@ -65,7 +65,7 @@ IFrame(snippet_url + 'renderers', width='100%', height=630) ### JupyterLab Problems -In order to use `plotly` in JupyterLab, you *must have the extensions installed* as detailed in the [Getting Started guide](/python/getting-started). There are two extensions: `jupyterlab-plotly` for rendering figures with `fig.show()` and `plotlywidget` for the `FigureWidget`. Please note that the *extension version matters*: the extension versions in the [Getting Started](/python/getting-started) guide match the version of `plotly` at the top of the guide and so they should be installed together. +In order to use `plotly` in JupyterLab, you *must have the extensions installed* as detailed in the [Getting Started guide](/python/getting-started). There is one extension: `plotlywidget`. Please note that the *extension version matters*: the extension versions in the [Getting Started](/python/getting-started) guide match the version of `plotly` at the top of the guide and so they should be installed together. Note also that these extensions are meant to work with JupyterLab 1 or above but not 0.x. To list your current extensions, run the following command in a terminal shell **from the same environment as JupyterLab was launched**: @@ -73,7 +73,15 @@ To list your current extensions, run the following command in a terminal shell * $ jupyter labextension list ``` -If you have [installed additional python environments](https://ipython.readthedocs.io/en/stable/install/kernel_install.html) (or kernels) to use with JupyterLab, or if you are using a centrally hosted JupyterLab installation, you need to make sure that the extensions are installed in the python environment used to launch JupyterLab (the "server" environment). If you accidentally installed the extensions (and run the command above) in one of the additional python environments ("processing" environments), then it is possible for the command above to list the correct extensions but for them to not be available in the JupyterLab front-end you have loaded in your browser. To check if this is the problem, you can [look at the active extension list through your browser via the JupyterLab Extension Manager](https://jupyterlab.readthedocs.io/en/stable/user/extensions.html#using-the-extension-manager), which will always list the extensions in the "server" environment. To summarize: if you use JupyterLab with multiple python environments, the extensions must be installed in the "server" environment, and the plotly python library must be installed in each "processing" environment that you intend to use. +If you have [installed additional python environments](https://ipython.readthedocs.io/en/stable/install/kernel_install.html) (or kernels) to use with JupyterLab, or if you are using a centrally hosted JupyterLab installation, you need to make sure that the extensions are installed in the python environment used to launch JupyterLab (the "server" environment). If you accidentally installed the extensions (and run the command above) in one of the additional python environments ("processing" environments), then it is possible for the command above to list the correct extensions but for them to not be available in the JupyterLab front-end you have loaded in your browser. To check if this is the problem, you can [look at the active extension list through your browser via the JupyterLab Extension Manager](https://jupyterlab.readthedocs.io/en/stable/user/extensions.html#using-the-extension-manager), which will always list the extensions in the "server" environment. To summarize: if you use JupyterLab with multiple python environments, the extensions must be installed in the "server" environment, and the plotly python library must be installed in each "processing" environment that you intend to use. + +> Version 4.14.3 or earlier needed two extensions (`jupyterlab-plotly` and `plotlywidget`) to be installed manually running: + +```bash +$ jupyter labextension install jupyterlab-plotly @jupyter-widgets/jupyterlab-manager plotlywidget +``` + +#### JupyterLab 2 and earlier If you have the correct version of the extensions installed and active in your active JupyterLab sessions and are still seeing problems, the issue may clear up if you rebuild JupyterLab. This shouldn't be required in principle but many users have resolved their issues this way. To rebuild JupyterLab, shut down JupyterLab and run the following command in a terminal shell **from the same environment as JupyterLab was launched**: @@ -84,7 +92,6 @@ $ jupyter lab build To uninstall your Plotly extensions prior to reinstalling them, run the following commands in a terminal shell before reinstalling them by following the instructions in the [Getting Started guide](/python/getting-started): ```bash -$ jupyter labextension uninstall jupyterlab-plotly $ jupyter labextension uninstall plotlywidget ``` diff --git a/packages/javascript/jupyterlab-plotly/README.md b/packages/javascript/jupyterlab-plotly/README.md deleted file mode 100644 index 6a1264935f..0000000000 --- a/packages/javascript/jupyterlab-plotly/README.md +++ /dev/null @@ -1,5 +0,0 @@ -JupyterLab Extension for Plotly.py - -See https://plot.ly/python/getting-started/ for details. - -Install with `jupyter labextension install jupyterlab-plotly` diff --git a/packages/javascript/jupyterlab-plotly/package-lock.json b/packages/javascript/jupyterlab-plotly/package-lock.json deleted file mode 100644 index 7f55ab0c76..0000000000 --- a/packages/javascript/jupyterlab-plotly/package-lock.json +++ /dev/null @@ -1,3797 +0,0 @@ -{ - "name": "jupyterlab-plotly", - "version": "4.14.3", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "3d-view": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/3d-view/-/3d-view-2.0.0.tgz", - "integrity": "sha1-gxrpQtdQjFCAHj4G+v4ejFdOF74=", - "requires": { - "matrix-camera-controller": "^2.1.1", - "orbit-camera-controller": "^4.0.0", - "turntable-camera-controller": "^3.0.0" - } - }, - "@choojs/findup": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@choojs/findup/-/findup-0.2.1.tgz", - "integrity": "sha512-YstAqNb0MCN8PjdLCDfRsBcGVRN41f3vgLvaI0IrIcBp4AqILRSS0DeWNGkicC+f/zRIPJLc+9RURVSepwvfBw==", - "requires": { - "commander": "^2.15.1" - } - }, - "@jupyterlab/rendermime-interfaces": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@jupyterlab/rendermime-interfaces/-/rendermime-interfaces-2.1.0.tgz", - "integrity": "sha512-WZsFan4snRX3UkxMer4dOpsQcV1R3Two8wT4wLM7nrIHuwHxuruiIlzpmsZENaKfF6C5SKP5esi6DSfjs5y90g==", - "requires": { - "@lumino/coreutils": "^1.4.2", - "@lumino/widgets": "^1.11.1" - } - }, - "@lumino/algorithm": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@lumino/algorithm/-/algorithm-1.3.2.tgz", - "integrity": "sha512-r2pfLvv0oamOK+iGJgvfpoFupJs656adSXiWZlUVO2TnHzlooHtzdF2NiOygCd9++gukcNOv/lSY2Gmun6lunw==" - }, - "@lumino/collections": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@lumino/collections/-/collections-1.3.2.tgz", - "integrity": "sha512-6ka08E9qZsTXBclwQZz1IfUCxo6G0V2Y8Gb0XPdXe0IzxqAtNmRMGIvRmEf3yKZa6wY6oCgyh5IhJS9km6bqVQ==", - "requires": { - "@lumino/algorithm": "^1.3.2" - } - }, - "@lumino/commands": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/@lumino/commands/-/commands-1.11.2.tgz", - "integrity": "sha512-d03EHTztfzftXwzrDhyfST1iIhfW6DXWuWJOBNtfKO5SMCPHgt11TvNRFbgUi9grj+iOFGSOyu7q6/epb0jY0Q==", - "requires": { - "@lumino/algorithm": "^1.3.2", - "@lumino/coreutils": "^1.5.2", - "@lumino/disposable": "^1.4.2", - "@lumino/domutils": "^1.2.2", - "@lumino/keyboard": "^1.2.2", - "@lumino/signaling": "^1.4.2", - "@lumino/virtualdom": "^1.7.2" - } - }, - "@lumino/coreutils": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@lumino/coreutils/-/coreutils-1.5.2.tgz", - "integrity": "sha512-yLk507d5gONDjGLvU+bWHVisssDEigbZ1UmbCzaSaQ8DaK0WktscwqPbODh68cK8cobClx11xM7SPonqQtjX/Q==" - }, - "@lumino/disposable": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@lumino/disposable/-/disposable-1.4.2.tgz", - "integrity": "sha512-aXQvktpOT/NcUIU17bzbyv1l7Tk7F1EP6XRAF1it9E0PvNcYyutxSr5kIrV/u7PY7LAL2oYDih0X0gY8H8v5kg==", - "requires": { - "@lumino/algorithm": "^1.3.2", - "@lumino/signaling": "^1.4.2" - } - }, - "@lumino/domutils": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@lumino/domutils/-/domutils-1.2.2.tgz", - "integrity": "sha512-7m5TxYBlb1Dp84eBiW3gSIPTduMuxfq+FYUn77i03HyFrRo3m00afibBHtKPKXshSVwDRVI4QdvaTrtv3loo+g==" - }, - "@lumino/dragdrop": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@lumino/dragdrop/-/dragdrop-1.6.2.tgz", - "integrity": "sha512-fsN6G6/v4EkaliQZFgot8Gaod4YkZpRMRh1C4XmMxHCoWxJMTzHWLubuoib7MrMdderusZG6uL6wkzqrp5bLAQ==", - "requires": { - "@lumino/coreutils": "^1.5.2", - "@lumino/disposable": "^1.4.2" - } - }, - "@lumino/keyboard": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@lumino/keyboard/-/keyboard-1.2.2.tgz", - "integrity": "sha512-pQF2rsZZnAL+e2XaProTaAHHJxNXlzfDYYLKhrEIhaQlNduwU/GK1f/M8IFJ2+SFzEOvEIo9+v2jMtF4MlU2cg==" - }, - "@lumino/messaging": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@lumino/messaging/-/messaging-1.4.2.tgz", - "integrity": "sha512-3kgrCrCFxIqIdhaMbaQdsG1CD/bqiUIJue+5ZGoQKHk4rdalkwpvk5c+RcMlJIPbK2k2J6ytiQ535s4jkUCZ3Q==", - "requires": { - "@lumino/algorithm": "^1.3.2", - "@lumino/collections": "^1.3.2" - } - }, - "@lumino/properties": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@lumino/properties/-/properties-1.2.2.tgz", - "integrity": "sha512-5KzVhdoB9JP4ai74+198pACbC0JBRVRS59aKcHJmp7+cUKMpF3GawZXLVCNJrQ2Cam03lo2RBTCJvldT2VKR4g==" - }, - "@lumino/signaling": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@lumino/signaling/-/signaling-1.4.2.tgz", - "integrity": "sha512-U+T/m3iY7Oe1RR9wR/1d3DMZpNMcYdBeBzBx1l+dkdB5IEk28QqVcJDxZxyAJ7QuqXjWqvQew/SVuxyIDJWC7g==", - "requires": { - "@lumino/algorithm": "^1.3.2" - } - }, - "@lumino/virtualdom": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@lumino/virtualdom/-/virtualdom-1.7.2.tgz", - "integrity": "sha512-HIeoT7ivFp4LcOB6Sqd0/9PLNgA4vHedBnEBnAHfohLUnLNih/MlPUz7lxGoyYmc+YYT5v/Ikyb6CwuEMQqLfw==", - "requires": { - "@lumino/algorithm": "^1.3.2" - } - }, - "@lumino/widgets": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@lumino/widgets/-/widgets-1.13.2.tgz", - "integrity": "sha512-pWQEKw4Y8eaTg/kZqYkJgZ2IJmU6Iz3VyCWnw8z5qcxiEVLVeCMtkWnEWI4QYn5LNXlEZagpzc3KA9waCWOfIw==", - "requires": { - "@lumino/algorithm": "^1.3.2", - "@lumino/commands": "^1.11.2", - "@lumino/coreutils": "^1.5.2", - "@lumino/disposable": "^1.4.2", - "@lumino/domutils": "^1.2.2", - "@lumino/dragdrop": "^1.6.2", - "@lumino/keyboard": "^1.2.2", - "@lumino/messaging": "^1.4.2", - "@lumino/properties": "^1.2.2", - "@lumino/signaling": "^1.4.2", - "@lumino/virtualdom": "^1.7.2" - } - }, - "@mapbox/geojson-rewind": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.0.tgz", - "integrity": "sha512-73l/qJQgj/T/zO1JXVfuVvvKDgikD/7D/rHAD28S9BG1OTstgmftrmqfCx4U+zQAmtsB6HcDA3a7ymdnJZAQgg==", - "requires": { - "concat-stream": "~2.0.0", - "minimist": "^1.2.5" - }, - "dependencies": { - "concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "@mapbox/geojson-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz", - "integrity": "sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw==" - }, - "@mapbox/jsonlint-lines-primitives": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", - "integrity": "sha1-zlblOfg1UrWNENZy6k1vya3HsjQ=" - }, - "@mapbox/mapbox-gl-supported": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz", - "integrity": "sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==" - }, - "@mapbox/point-geometry": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", - "integrity": "sha1-ioP5M1x4YO/6Lu7KJUMyqgru2PI=" - }, - "@mapbox/tiny-sdf": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.1.1.tgz", - "integrity": "sha512-Ihn1nZcGIswJ5XGbgFAvVumOgWpvIjBX9jiRlIl46uQG9vJOF51ViBYHF95rEZupuyQbEmhLaDPLQlU7fUTsBg==" - }, - "@mapbox/unitbezier": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", - "integrity": "sha1-FWUb1VOme4WB+zmIEMmK2Go0Uk4=" - }, - "@mapbox/vector-tile": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", - "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", - "requires": { - "@mapbox/point-geometry": "~0.1.0" - } - }, - "@mapbox/whoots-js": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", - "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==" - }, - "@plotly/d3-sankey": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@plotly/d3-sankey/-/d3-sankey-0.7.2.tgz", - "integrity": "sha512-2jdVos1N3mMp3QW0k2q1ph7Gd6j5PY1YihBrwpkFnKqO+cqtZq3AdEYUeSGXMeLsBDQYiqTVcihYfk8vr5tqhw==", - "requires": { - "d3-array": "1", - "d3-collection": "1", - "d3-shape": "^1.2.0" - } - }, - "@plotly/d3-sankey-circular": { - "version": "0.33.1", - "resolved": "https://registry.npmjs.org/@plotly/d3-sankey-circular/-/d3-sankey-circular-0.33.1.tgz", - "integrity": "sha512-FgBV1HEvCr3DV7RHhDsPXyryknucxtfnLwPtCKKxdolKyTFYoLX/ibEfX39iFYIL7DYbVeRtP43dbFcrHNE+KQ==", - "requires": { - "d3-array": "^1.2.1", - "d3-collection": "^1.0.4", - "d3-shape": "^1.2.0", - "elementary-circuits-directed-graph": "^1.0.4" - } - }, - "@plotly/point-cluster": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@plotly/point-cluster/-/point-cluster-3.1.9.tgz", - "integrity": "sha512-MwaI6g9scKf68Orpr1pHZ597pYx9uP8UEFXLPbsCmuw3a84obwz6pnMXGc90VhgDNeNiLEdlmuK7CPo+5PIxXw==", - "requires": { - "array-bounds": "^1.0.1", - "binary-search-bounds": "^2.0.4", - "clamp": "^1.0.1", - "defined": "^1.0.0", - "dtype": "^2.0.0", - "flatten-vertex-data": "^1.0.2", - "is-obj": "^1.0.1", - "math-log2": "^1.0.1", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0" - } - }, - "@turf/area": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@turf/area/-/area-6.0.1.tgz", - "integrity": "sha512-Zv+3N1ep9P5JvR0YOYagLANyapGWQBh8atdeR3bKpWcigVXFsEKNUw03U/5xnh+cKzm7yozHD6MFJkqQv55y0g==", - "requires": { - "@turf/helpers": "6.x", - "@turf/meta": "6.x" - } - }, - "@turf/bbox": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.0.1.tgz", - "integrity": "sha512-EGgaRLettBG25Iyx7VyUINsPpVj1x3nFQFiGS3ER8KCI1MximzNLsam3eXRabqQDjyAKyAE1bJ4EZEpGvspQxw==", - "requires": { - "@turf/helpers": "6.x", - "@turf/meta": "6.x" - } - }, - "@turf/centroid": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-6.0.2.tgz", - "integrity": "sha512-auyDauOtC4eddH7GC3CHFTDu2PKhpSeKCRhwhHhXtJqn2dWCJQNIoCeJRmfXRIbzCWhWvgvQafvvhq8HNvmvWw==", - "requires": { - "@turf/helpers": "6.x", - "@turf/meta": "6.x" - } - }, - "@turf/helpers": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.1.4.tgz", - "integrity": "sha512-vJvrdOZy1ngC7r3MDA7zIGSoIgyrkWcGnNIEaqn/APmw+bVLF2gAW7HIsdTxd12s5wQMqEpqIQrmrbRRZ0xC7g==" - }, - "@turf/meta": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.0.2.tgz", - "integrity": "sha512-VA7HJkx7qF1l3+GNGkDVn2oXy4+QoLP6LktXAaZKjuT1JI0YESat7quUkbCMy4zP9lAUuvS4YMslLyTtr919FA==", - "requires": { - "@turf/helpers": "6.x" - } - }, - "@types/d3": { - "version": "3.5.43", - "resolved": "https://registry.npmjs.org/@types/d3/-/d3-3.5.43.tgz", - "integrity": "sha512-t9ZmXOcpVxywRw86YtIC54g7M9puRh8hFedRvVfHKf5YyOP6pSxA0TvpXpfseXSCInoW4P7bggTrSDiUOs4g5w==" - }, - "@types/plotly.js": { - "version": "1.44.28", - "resolved": "https://registry.npmjs.org/@types/plotly.js/-/plotly.js-1.44.28.tgz", - "integrity": "sha512-Ajvtn6QHjLMZfRySd0L7f17ONKxiYpZSzW29sx/bU9KL/pzbu+pXdfNika9n+W0G1ScLEJEtI2yBsZXT1UXDKA==", - "requires": { - "@types/d3": "^3" - } - }, - "a-big-triangle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/a-big-triangle/-/a-big-triangle-1.0.3.tgz", - "integrity": "sha1-7v0wsCqPUl6LH3K7a7GwwWdRx5Q=", - "requires": { - "gl-buffer": "^2.1.1", - "gl-vao": "^1.2.0", - "weak-map": "^1.0.5" - } - }, - "abs-svg-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz", - "integrity": "sha1-32Acjo0roQ1KdtYl4japo5wnI78=" - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - }, - "add-line-numbers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/add-line-numbers/-/add-line-numbers-1.0.1.tgz", - "integrity": "sha1-SNu96kfb0jTer+rGyTzqb3C0t+M=", - "requires": { - "pad-left": "^1.0.2" - } - }, - "affine-hull": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/affine-hull/-/affine-hull-1.0.0.tgz", - "integrity": "sha1-dj/x040GPOt+Jy8X7k17vK+QXF0=", - "requires": { - "robust-orientation": "^1.1.3" - } - }, - "almost-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/almost-equal/-/almost-equal-1.1.0.tgz", - "integrity": "sha1-+FHGMROHV5lCdqou++jfowZszN0=" - }, - "alpha-complex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/alpha-complex/-/alpha-complex-1.0.0.tgz", - "integrity": "sha1-kIZYcNawVCrnPAwTHU75iWabctI=", - "requires": { - "circumradius": "^1.0.0", - "delaunay-triangulate": "^1.1.6" - } - }, - "alpha-shape": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/alpha-shape/-/alpha-shape-1.0.0.tgz", - "integrity": "sha1-yDEJkj7P2mZ9IWP+Tyb+JHJvZKk=", - "requires": { - "alpha-complex": "^1.0.0", - "simplicial-complex-boundary": "^1.0.0" - } - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "array-bounds": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-bounds/-/array-bounds-1.0.1.tgz", - "integrity": "sha512-8wdW3ZGk6UjMPJx/glyEt0sLzzwAE1bhToPsO1W2pbpR2gULyxe3BjSiuJFheP50T/GgODVPz2fuMUmIywt8cQ==" - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" - }, - "array-normalize": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array-normalize/-/array-normalize-1.1.4.tgz", - "integrity": "sha512-fCp0wKFLjvSPmCn4F5Tiw4M3lpMZoHlCjfcs7nNzuj3vqQQ1/a8cgB9DXcpDSn18c+coLnaW7rqfcYCvKbyJXg==", - "requires": { - "array-bounds": "^1.0.0" - } - }, - "array-range": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-range/-/array-range-1.0.1.tgz", - "integrity": "sha1-9W5GWRhDYRxqVvd+8C7afFAIm/w=" - }, - "array-rearrange": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/array-rearrange/-/array-rearrange-2.2.2.tgz", - "integrity": "sha512-UfobP5N12Qm4Qu4fwLDIi2v6+wZsSf6snYSxAMeKhrh37YGnNWZPRmVEKc/2wfms53TLQnzfpG8wCx2Y/6NG1w==" - }, - "atob-lite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-1.0.0.tgz", - "integrity": "sha1-uI3KYAaSK5YglPdVaCa6sxxKKWs=" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "barycentric": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/barycentric/-/barycentric-1.0.1.tgz", - "integrity": "sha1-8VYruJGyb0/sRjqC7to2V4AOxog=", - "requires": { - "robust-linear-solve": "^1.0.0" - } - }, - "big-rat": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/big-rat/-/big-rat-1.0.4.tgz", - "integrity": "sha1-do0JO7V5MN0Y7Vdcf8on3FORreo=", - "requires": { - "bit-twiddle": "^1.0.2", - "bn.js": "^4.11.6", - "double-bits": "^1.1.1" - } - }, - "binary-search-bounds": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.4.tgz", - "integrity": "sha512-2hg5kgdKql5ClF2ErBcSx0U5bnl5hgS4v7wMnLFodyR47yMtj2w+UAZB+0CiqyHct2q543i7Bi4/aMIegorCCg==" - }, - "bit-twiddle": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz", - "integrity": "sha1-DGwfq+KyPRcXPZpht7cJPrnhdp4=" - }, - "bitmap-sdf": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/bitmap-sdf/-/bitmap-sdf-1.0.3.tgz", - "integrity": "sha512-ojYySSvWTx21cbgntR942zgEgqj38wHctN64vr4vYRFf3GKVmI23YlA94meWGkFslidwLwGCsMy2laJ3g/94Sg==", - "requires": { - "clamp": "^1.0.1" - } - }, - "bl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", - "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", - "dev": true, - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - } - } - }, - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - }, - "boundary-cells": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/boundary-cells/-/boundary-cells-2.0.2.tgz", - "integrity": "sha512-/S48oUFYEgZMNvdqC87iYRbLBAPHYijPRNrNpm/sS8u7ijIViKm/hrV3YD4sx/W68AsG5zLMyBEditVHApHU5w==" - }, - "box-intersect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/box-intersect/-/box-intersect-1.0.2.tgz", - "integrity": "sha512-yJeMwlmFPG1gIa7Rs/cGXeI6iOj6Qz5MG5PE61xLKpElUGzmJ4abm+qsLpzxKJFpsSDq742BQEocr8dI2t8Nxw==", - "requires": { - "bit-twiddle": "^1.0.2", - "typedarray-pool": "^1.1.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "canvas-fit": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/canvas-fit/-/canvas-fit-1.5.0.tgz", - "integrity": "sha1-rhO+Zq3kL1vg5IfjRfzjCl5bXl8=", - "requires": { - "element-size": "^1.1.1" - } - }, - "cdt2d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cdt2d/-/cdt2d-1.0.0.tgz", - "integrity": "sha1-TyEkNLzWe9s9aLj+9KzcLFRBUUE=", - "requires": { - "binary-search-bounds": "^2.0.3", - "robust-in-sphere": "^1.1.3", - "robust-orientation": "^1.1.3" - } - }, - "cell-orientation": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cell-orientation/-/cell-orientation-1.0.1.tgz", - "integrity": "sha1-tQStlqZq0obZ7dmFoiU9A7gNKFA=" - }, - "circumcenter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/circumcenter/-/circumcenter-1.0.0.tgz", - "integrity": "sha1-INeqE7F/usUvUtpPVMasi5Bu5Sk=", - "requires": { - "dup": "^1.0.0", - "robust-linear-solve": "^1.0.0" - } - }, - "circumradius": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/circumradius/-/circumradius-1.0.0.tgz", - "integrity": "sha1-cGxEfj5VzR7T0RvRM+N8JSzDBbU=", - "requires": { - "circumcenter": "^1.0.0" - } - }, - "clamp": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz", - "integrity": "sha1-ZqDmQBGBbjcZaCj9yMjBRzEshjQ=" - }, - "clean-pslg": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/clean-pslg/-/clean-pslg-1.1.2.tgz", - "integrity": "sha1-vTXHRgt+irWp92Gl7VF5aqPIbBE=", - "requires": { - "big-rat": "^1.0.3", - "box-intersect": "^1.0.1", - "nextafter": "^1.0.0", - "rat-vec": "^1.1.1", - "robust-segment-intersect": "^1.0.1", - "union-find": "^1.0.2", - "uniq": "^1.0.1" - } - }, - "color-alpha": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/color-alpha/-/color-alpha-1.0.4.tgz", - "integrity": "sha512-lr8/t5NPozTSqli+duAN+x+no/2WaKTeWvxhHGN+aXT6AJ8vPlzLa7UriyjWak0pSC2jHol9JgjBYnnHsGha9A==", - "requires": { - "color-parse": "^1.3.8" - } - }, - "color-id": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/color-id/-/color-id-1.1.0.tgz", - "integrity": "sha512-2iRtAn6dC/6/G7bBIo0uupVrIne1NsQJvJxZOBCzQOfk7jRq97feaDZ3RdzuHakRXXnHGNwglto3pqtRx1sX0g==", - "requires": { - "clamp": "^1.0.1" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "color-normalize": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/color-normalize/-/color-normalize-1.5.0.tgz", - "integrity": "sha512-rUT/HDXMr6RFffrR53oX3HGWkDOP9goSAQGBkUaAYKjOE2JxozccdGyufageWDlInRAjm/jYPrf/Y38oa+7obw==", - "requires": { - "clamp": "^1.0.1", - "color-rgba": "^2.1.1", - "dtype": "^2.0.0" - } - }, - "color-parse": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.3.8.tgz", - "integrity": "sha512-1Y79qFv0n1xair3lNMTNeoFvmc3nirMVBij24zbs1f13+7fPpQClMg5b4AuKXLt3szj7BRlHMCXHplkce6XlmA==", - "requires": { - "color-name": "^1.0.0", - "defined": "^1.0.0", - "is-plain-obj": "^1.1.0" - } - }, - "color-rgba": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/color-rgba/-/color-rgba-2.1.1.tgz", - "integrity": "sha512-VaX97wsqrMwLSOR6H7rU1Doa2zyVdmShabKrPEIFywLlHoibgD3QW9Dw6fSqM4+H/LfjprDNAUUW31qEQcGzNw==", - "requires": { - "clamp": "^1.0.1", - "color-parse": "^1.3.8", - "color-space": "^1.14.6" - } - }, - "color-space": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/color-space/-/color-space-1.16.0.tgz", - "integrity": "sha512-A6WMiFzunQ8KEPFmj02OnnoUnqhmSaHaZ/0LVFcPTdlvm8+3aMJ5x1HRHy3bDHPkovkf4sS0f4wsVvwk71fKkg==", - "requires": { - "hsluv": "^0.0.3", - "mumath": "^3.3.4" - } - }, - "colormap": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/colormap/-/colormap-2.3.1.tgz", - "integrity": "sha512-TEzNlo/qYp6pBoR2SK9JiV+DG1cmUcVO/+DEJqVPSHIKNlWh5L5L4FYog7b/h0bAnhKhpOAvx/c1dFp2QE9sFw==", - "requires": { - "lerp": "^1.0.3" - } - }, - "colors": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", - "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=", - "dev": true - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "compare-angle": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/compare-angle/-/compare-angle-1.0.1.tgz", - "integrity": "sha1-pOtjQW6jx0f8a9bItjZotN5PoSk=", - "requires": { - "robust-orientation": "^1.0.2", - "robust-product": "^1.0.0", - "robust-sum": "^1.0.0", - "signum": "^0.0.0", - "two-sum": "^1.0.0" - } - }, - "compare-cell": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/compare-cell/-/compare-cell-1.0.0.tgz", - "integrity": "sha1-qetwj24OQa73qlZrEw8ZaNyeGqo=" - }, - "compare-oriented-cell": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/compare-oriented-cell/-/compare-oriented-cell-1.0.1.tgz", - "integrity": "sha1-ahSf7vnfxPj8YjWOUd1C7/u9w54=", - "requires": { - "cell-orientation": "^1.0.1", - "compare-cell": "^1.0.0" - } - }, - "compute-dims": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/compute-dims/-/compute-dims-1.1.0.tgz", - "integrity": "sha512-YHMiIKjH/8Eom8zATk3g8/lH3HxGCZcVQyEfEoVrfWI7od/WRpTgRGShnei3jArYSx77mQqPxZNokjGHCdLfxg==", - "requires": { - "utils-copy": "^1.0.0", - "validate.io-array": "^1.0.6", - "validate.io-matrix-like": "^1.0.2", - "validate.io-ndarray-like": "^1.0.0", - "validate.io-positive-integer": "^1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "const-max-uint32": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/const-max-uint32/-/const-max-uint32-1.0.2.tgz", - "integrity": "sha1-8Am7YjDmeO2HTdLWqc2ePL+rtnY=" - }, - "const-pinf-float64": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/const-pinf-float64/-/const-pinf-float64-1.0.0.tgz", - "integrity": "sha1-9u+w15+cCYbT558pI6v5twtj1yY=" - }, - "convex-hull": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/convex-hull/-/convex-hull-1.0.3.tgz", - "integrity": "sha1-IKOqbOh/St6i/30XlxyfwcZ+H/8=", - "requires": { - "affine-hull": "^1.0.0", - "incremental-convex-hull": "^1.0.1", - "monotone-convex-hull-2d": "^1.0.1" - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "country-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/country-regex/-/country-regex-1.1.0.tgz", - "integrity": "sha1-UcMz3N8Sknt+XuucEKyBEqYSCJY=" - }, - "css-font": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-font/-/css-font-1.2.0.tgz", - "integrity": "sha512-V4U4Wps4dPDACJ4WpgofJ2RT5Yqwe1lEH6wlOOaIxMi0gTjdIijsc5FmxQlZ7ZZyKQkkutqqvULOp07l9c7ssA==", - "requires": { - "css-font-size-keywords": "^1.0.0", - "css-font-stretch-keywords": "^1.0.1", - "css-font-style-keywords": "^1.0.1", - "css-font-weight-keywords": "^1.0.0", - "css-global-keywords": "^1.0.1", - "css-system-font-keywords": "^1.0.0", - "pick-by-alias": "^1.2.0", - "string-split-by": "^1.0.0", - "unquote": "^1.1.0" - } - }, - "css-font-size-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz", - "integrity": "sha1-hUh1rOmspqjS7g00WkSq6btttss=" - }, - "css-font-stretch-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz", - "integrity": "sha1-UM7puboDH7XJUtRyMTnx4Qe1SxA=" - }, - "css-font-style-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz", - "integrity": "sha1-XDUygT9jtKHelU0TzqhqtDM0CeQ=" - }, - "css-font-weight-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz", - "integrity": "sha1-m8BGcayFvHJLV07106yWsNYE/Zc=" - }, - "css-global-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-global-keywords/-/css-global-keywords-1.0.1.tgz", - "integrity": "sha1-cqmupyeW0Bmx0qMlLeTlqqN+Smk=" - }, - "css-system-font-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz", - "integrity": "sha1-hcbwhquk6zLFcaMIav/ENLhII+0=" - }, - "csscolorparser": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", - "integrity": "sha1-s085HupNqPPpgjHizNjfnAQfFxs=" - }, - "cubic-hermite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cubic-hermite/-/cubic-hermite-1.0.0.tgz", - "integrity": "sha1-hOOy8nKzFFToOTuZu2rtRRaMFOU=" - }, - "cwise-compiler": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cwise-compiler/-/cwise-compiler-1.1.3.tgz", - "integrity": "sha1-9NZnQQ6FDToxOn0tt7HlBbsDTMU=", - "requires": { - "uniq": "^1.0.0" - } - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "d3": { - "version": "3.5.17", - "resolved": "https://registry.npmjs.org/d3/-/d3-3.5.17.tgz", - "integrity": "sha1-vEZ0gAQ3iyGjYMn8fPUjF5B2L7g=" - }, - "d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - }, - "d3-collection": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", - "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" - }, - "d3-color": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", - "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" - }, - "d3-dispatch": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", - "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" - }, - "d3-force": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", - "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", - "requires": { - "d3-collection": "1", - "d3-dispatch": "1", - "d3-quadtree": "1", - "d3-timer": "1" - } - }, - "d3-hierarchy": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", - "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" - }, - "d3-interpolate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", - "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", - "requires": { - "d3-color": "1" - } - }, - "d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" - }, - "d3-quadtree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", - "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==" - }, - "d3-shape": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", - "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", - "requires": { - "d3-path": "1" - } - }, - "d3-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", - "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" - }, - "d3-time-format": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", - "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", - "requires": { - "d3-time": "1" - } - }, - "d3-timer": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", - "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" - }, - "delaunay-triangulate": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/delaunay-triangulate/-/delaunay-triangulate-1.1.6.tgz", - "integrity": "sha1-W7yiGweBmNS8PHV5ajXLuYwllUw=", - "requires": { - "incremental-convex-hull": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "detect-kerning": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-kerning/-/detect-kerning-2.1.2.tgz", - "integrity": "sha512-I3JIbrnKPAntNLl1I6TpSQQdQ4AutYzv/sKMFKbepawV/hlH0GmYKhUoOEMd4xqaUHT+Bm0f4127lh5qs1m1tw==" - }, - "double-bits": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/double-bits/-/double-bits-1.1.1.tgz", - "integrity": "sha1-WKu6RUlNpND6Nrc60RoobJGEscY=" - }, - "draw-svg-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/draw-svg-path/-/draw-svg-path-1.0.0.tgz", - "integrity": "sha1-bxFtli3TFLmepTTW9Y3WbNvWk3k=", - "requires": { - "abs-svg-path": "~0.1.1", - "normalize-svg-path": "~0.1.0" - } - }, - "dtype": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz", - "integrity": "sha1-zQUjI84GFETs0uj1dI9popvihDQ=" - }, - "dup": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dup/-/dup-1.0.0.tgz", - "integrity": "sha1-UfxaxoX4GWRp3wuQXpNLIK9bQCk=" - }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "earcut": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.2.tgz", - "integrity": "sha512-eZoZPPJcUHnfRZ0PjLvx2qBordSiO8ofC3vt+qACLM95u+4DovnbYNpQtJh0DNsWj8RnxrQytD4WA8gj5cRIaQ==" - }, - "edges-to-adjacency-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/edges-to-adjacency-list/-/edges-to-adjacency-list-1.0.0.tgz", - "integrity": "sha1-wUbS4ISt37p0pRKTxuAZmkn3V/E=", - "requires": { - "uniq": "^1.0.0" - } - }, - "element-size": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/element-size/-/element-size-1.1.1.tgz", - "integrity": "sha1-ZOXxWdlxIWMYRby67K8nnDm1404=" - }, - "elementary-circuits-directed-graph": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/elementary-circuits-directed-graph/-/elementary-circuits-directed-graph-1.2.0.tgz", - "integrity": "sha512-eOQofnrNqebPtC29PvyNMGUBdMrIw5i8nOoC/2VOlSF84tf5+ZXnRkIk7TgdT22jFXK68CC7aA881KRmNYf/Pg==", - "requires": { - "strongly-connected-components": "^1.0.1" - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "requires": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==" - }, - "ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "requires": { - "type": "^2.0.0" - }, - "dependencies": { - "type": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", - "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==" - } - } - }, - "extract-frustum-planes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/extract-frustum-planes/-/extract-frustum-planes-1.0.0.tgz", - "integrity": "sha1-l9VwP/BWTIw8aDjKxF+ee8UsnvU=" - }, - "falafel": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.4.tgz", - "integrity": "sha512-0HXjo8XASWRmsS0X1EkhwEMZaD3Qvp7FfURwjLKjG1ghfRm/MGZl2r4cWUTv41KdNghTw4OUMmVtdGQp3+H+uQ==", - "requires": { - "acorn": "^7.1.1", - "foreach": "^2.0.5", - "isarray": "^2.0.1", - "object-keys": "^1.0.6" - }, - "dependencies": { - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - } - } - }, - "fast-isnumeric": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-isnumeric/-/fast-isnumeric-1.1.4.tgz", - "integrity": "sha512-1mM8qOr2LYz8zGaUdmiqRDiuue00Dxjgcb1NQR7TnhLVh6sQyngP9xvLo7Sl7LZpP/sk5eb+bcyWXw530NTBZw==", - "requires": { - "is-string-blank": "^1.0.1" - } - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "filtered-vector": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/filtered-vector/-/filtered-vector-1.2.4.tgz", - "integrity": "sha1-VkU8A030MC0pPKjs3qw/kKvGeNM=", - "requires": { - "binary-search-bounds": "^1.0.0", - "cubic-hermite": "^1.0.0" - }, - "dependencies": { - "binary-search-bounds": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-1.0.0.tgz", - "integrity": "sha1-MjyjF+PypA9CRMclX1OEpbIHu2k=" - } - } - }, - "flatten-vertex-data": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flatten-vertex-data/-/flatten-vertex-data-1.0.2.tgz", - "integrity": "sha512-BvCBFK2NZqerFTdMDgqfHBwxYWnxeCkwONsw6PvBMcUXqo8U/KDWwmXhqx1x2kLIg7DqIsJfOaJFOmlua3Lxuw==", - "requires": { - "dtype": "^2.0.0" - } - }, - "flip-pixels": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flip-pixels/-/flip-pixels-1.0.2.tgz", - "integrity": "sha512-oXbJGbjDnfJRWPC7Va38EFhd+A8JWE5/hCiKcK8qjCdbLj9DTpsq6MEudwpRTH+V4qq+Jw7d3pUgQdSr3x3mTA==" - }, - "font-atlas": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/font-atlas/-/font-atlas-2.1.0.tgz", - "integrity": "sha512-kP3AmvX+HJpW4w3d+PiPR2X6E1yvsBXt2yhuCw+yReO9F1WYhvZwx3c95DGZGwg9xYzDGrgJYa885xmVA+28Cg==", - "requires": { - "css-font": "^1.0.0" - } - }, - "font-measure": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/font-measure/-/font-measure-1.2.2.tgz", - "integrity": "sha512-mRLEpdrWzKe9hbfaF3Qpr06TAjquuBVP5cHy4b3hyeNdjc9i0PO6HniGsX5vjL5OWv7+Bd++NiooNpT/s8BvIA==", - "requires": { - "css-font": "^1.2.0" - } - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "from2-array": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/from2-array/-/from2-array-0.0.4.tgz", - "integrity": "sha1-6vwWtl9uJxm81X/cGGkAWsEzLNY=", - "dev": true, - "requires": { - "from2": "^2.0.3" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" - }, - "gamma": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/gamma/-/gamma-0.1.0.tgz", - "integrity": "sha1-MxVkNAO/J5BsqAqzfDbs6UQO8zA=" - }, - "geojson-vt": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz", - "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==" - }, - "get-canvas-context": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz", - "integrity": "sha1-1ue1C8TkyGNXzTnyJkeoS3NgHpM=" - }, - "gl-axes3d": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/gl-axes3d/-/gl-axes3d-1.5.3.tgz", - "integrity": "sha512-KRYbguKQcDQ6PcB9g1pgqB8Ly4TY1DQODpPKiDTasyWJ8PxQk0t2Q7XoQQijNqvsguITCpVVCzNb5GVtIWiVlQ==", - "requires": { - "bit-twiddle": "^1.0.2", - "dup": "^1.0.0", - "extract-frustum-planes": "^1.0.0", - "gl-buffer": "^2.1.2", - "gl-mat4": "^1.2.0", - "gl-shader": "^4.2.1", - "gl-state": "^1.0.0", - "gl-vao": "^1.3.0", - "gl-vec4": "^1.0.1", - "glslify": "^7.0.0", - "robust-orientation": "^1.1.3", - "split-polygon": "^1.0.0", - "vectorize-text": "^3.2.1" - } - }, - "gl-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/gl-buffer/-/gl-buffer-2.1.2.tgz", - "integrity": "sha1-LbjZwaVSf7oM25EonCBuiCuInNs=", - "requires": { - "ndarray": "^1.0.15", - "ndarray-ops": "^1.1.0", - "typedarray-pool": "^1.0.0" - } - }, - "gl-cone3d": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/gl-cone3d/-/gl-cone3d-1.5.2.tgz", - "integrity": "sha512-1JNeHH4sUtUmDA4ZK7Om8/kShwb8IZVAsnxaaB7IPRJsNGciLj1sTpODrJGeMl41RNkex5kXD2SQFrzyEAR2Rw==", - "requires": { - "colormap": "^2.3.1", - "gl-buffer": "^2.1.2", - "gl-mat4": "^1.2.0", - "gl-shader": "^4.2.1", - "gl-texture2d": "^2.1.0", - "gl-vao": "^1.3.0", - "gl-vec3": "^1.1.3", - "glsl-inverse": "^1.0.0", - "glsl-out-of-range": "^1.0.4", - "glsl-specular-cook-torrance": "^2.0.1", - "glslify": "^7.0.0", - "ndarray": "^1.0.18" - } - }, - "gl-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gl-constants/-/gl-constants-1.0.0.tgz", - "integrity": "sha1-WXpQTjZHUP9QJTqjX43qevSl0jM=" - }, - "gl-contour2d": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/gl-contour2d/-/gl-contour2d-1.1.7.tgz", - "integrity": "sha512-GdebvJ9DtT3pJDpoE+eU2q+Wo9S3MijPpPz5arZbhK85w2bARmpFpVfPaDlZqWkB644W3BlH8TVyvAo1KE4Bhw==", - "requires": { - "binary-search-bounds": "^2.0.4", - "cdt2d": "^1.0.0", - "clean-pslg": "^1.1.2", - "gl-buffer": "^2.1.2", - "gl-shader": "^4.2.1", - "glslify": "^7.0.0", - "iota-array": "^1.0.0", - "ndarray": "^1.0.18", - "surface-nets": "^1.0.2" - } - }, - "gl-error3d": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/gl-error3d/-/gl-error3d-1.0.16.tgz", - "integrity": "sha512-TGJewnKSp7ZnqGgG3XCF9ldrDbxZrO+OWlx6oIet4OdOM//n8xJ5isArnIV/sdPJnFbhfoLxWrW9f5fxHFRQ1A==", - "requires": { - "gl-buffer": "^2.1.2", - "gl-shader": "^4.2.1", - "gl-vao": "^1.3.0", - "glsl-out-of-range": "^1.0.4", - "glslify": "^7.0.0" - } - }, - "gl-fbo": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/gl-fbo/-/gl-fbo-2.0.5.tgz", - "integrity": "sha1-D6daSXz3h2lVMGkcjwSrtvtV+iI=", - "requires": { - "gl-texture2d": "^2.0.0" - } - }, - "gl-format-compiler-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/gl-format-compiler-error/-/gl-format-compiler-error-1.0.3.tgz", - "integrity": "sha1-DHmxdRiZzpcy6GJA8JCqQemEcag=", - "requires": { - "add-line-numbers": "^1.0.1", - "gl-constants": "^1.0.0", - "glsl-shader-name": "^1.0.0", - "sprintf-js": "^1.0.3" - } - }, - "gl-heatmap2d": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/gl-heatmap2d/-/gl-heatmap2d-1.1.0.tgz", - "integrity": "sha512-0FLXyxv6UBCzzhi4Q2u+9fUs6BX1+r5ZztFe27VikE9FUVw7hZiuSHmgDng92EpydogcSYHXCIK8+58RagODug==", - "requires": { - "binary-search-bounds": "^2.0.4", - "gl-buffer": "^2.1.2", - "gl-shader": "^4.2.1", - "glslify": "^7.0.0", - "iota-array": "^1.0.0", - "typedarray-pool": "^1.2.0" - } - }, - "gl-line3d": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/gl-line3d/-/gl-line3d-1.2.1.tgz", - "integrity": "sha512-eeb0+RI2ZBRqMYJK85SgsRiJK7c4aiOjcnirxv0830A3jmOc99snY3AbPcV8KvKmW0Yaf3KA4e+qNCbHiTOTnA==", - "requires": { - "binary-search-bounds": "^2.0.4", - "gl-buffer": "^2.1.2", - "gl-shader": "^4.2.1", - "gl-texture2d": "^2.1.0", - "gl-vao": "^1.3.0", - "glsl-out-of-range": "^1.0.4", - "glslify": "^7.0.0", - "ndarray": "^1.0.18" - } - }, - "gl-mat3": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gl-mat3/-/gl-mat3-1.0.0.tgz", - "integrity": "sha1-iWMyGcpCk3mha5GF2V1BcTRTuRI=" - }, - "gl-mat4": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gl-mat4/-/gl-mat4-1.2.0.tgz", - "integrity": "sha512-sT5C0pwB1/e9G9AvAoLsoaJtbMGjfd/jfxo8jMCKqYYEnjZuFvqV5rehqar0538EmssjdDeiEWnKyBSTw7quoA==" - }, - "gl-matrix": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.3.0.tgz", - "integrity": "sha512-COb7LDz+SXaHtl/h4LeaFcNdJdAQSDeVqjiIihSXNrkWObZLhDI4hIkZC11Aeqp7bcE72clzB0BnDXr2SmslRA==" - }, - "gl-mesh3d": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/gl-mesh3d/-/gl-mesh3d-2.3.1.tgz", - "integrity": "sha512-pXECamyGgu4/9HeAQSE5OEUuLBGS1aq9V4BCsTcxsND4fNLaajEkYKUz/WY2QSYElqKdsMBVsldGiKRKwlybqA==", - "requires": { - "barycentric": "^1.0.1", - "colormap": "^2.3.1", - "gl-buffer": "^2.1.2", - "gl-mat4": "^1.2.0", - "gl-shader": "^4.2.1", - "gl-texture2d": "^2.1.0", - "gl-vao": "^1.3.0", - "glsl-out-of-range": "^1.0.4", - "glsl-specular-cook-torrance": "^2.0.1", - "glslify": "^7.0.0", - "ndarray": "^1.0.18", - "normals": "^1.1.0", - "polytope-closest-point": "^1.0.0", - "simplicial-complex-contour": "^1.0.2", - "typedarray-pool": "^1.1.0" - } - }, - "gl-plot2d": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/gl-plot2d/-/gl-plot2d-1.4.5.tgz", - "integrity": "sha512-6GmCN10SWtV+qHFQ1gjdnVubeHFVsm6P4zmo0HrPIl9TcdePCUHDlBKWAuE6XtFhiMKMj7R8rApOX8O8uXUYog==", - "requires": { - "binary-search-bounds": "^2.0.4", - "gl-buffer": "^2.1.2", - "gl-select-static": "^2.0.7", - "gl-shader": "^4.2.1", - "glsl-inverse": "^1.0.0", - "glslify": "^7.0.0", - "text-cache": "^4.2.2" - } - }, - "gl-plot3d": { - "version": "2.4.7", - "resolved": "https://registry.npmjs.org/gl-plot3d/-/gl-plot3d-2.4.7.tgz", - "integrity": "sha512-mLDVWrl4Dj0O0druWyHUK5l7cBQrRIJRn2oROEgrRuOgbbrLAzsREKefwMO0bA0YqkiZMFMnV5VvPA9j57X5Xg==", - "requires": { - "3d-view": "^2.0.0", - "a-big-triangle": "^1.0.3", - "gl-axes3d": "^1.5.3", - "gl-fbo": "^2.0.5", - "gl-mat4": "^1.2.0", - "gl-select-static": "^2.0.7", - "gl-shader": "^4.2.1", - "gl-spikes3d": "^1.0.10", - "glslify": "^7.0.0", - "has-passive-events": "^1.0.0", - "is-mobile": "^2.2.1", - "mouse-change": "^1.4.0", - "mouse-event-offset": "^3.0.2", - "mouse-wheel": "^1.2.0", - "ndarray": "^1.0.19", - "right-now": "^1.0.0" - } - }, - "gl-pointcloud2d": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/gl-pointcloud2d/-/gl-pointcloud2d-1.0.3.tgz", - "integrity": "sha512-OS2e1irvJXVRpg/GziXj10xrFJm9kkRfFoB6BLUvkjCQV7ZRNNcs2CD+YSK1r0gvMwTg2T3lfLM3UPwNtz+4Xw==", - "requires": { - "gl-buffer": "^2.1.2", - "gl-shader": "^4.2.1", - "glslify": "^7.0.0", - "typedarray-pool": "^1.1.0" - } - }, - "gl-quat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gl-quat/-/gl-quat-1.0.0.tgz", - "integrity": "sha1-CUXskjOG9FMpvl3DV7HIwtR1hsU=", - "requires": { - "gl-mat3": "^1.0.0", - "gl-vec3": "^1.0.3", - "gl-vec4": "^1.0.0" - } - }, - "gl-scatter3d": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/gl-scatter3d/-/gl-scatter3d-1.2.3.tgz", - "integrity": "sha512-nXqPlT1w5Qt51dTksj+DUqrZqwWAEWg0PocsKcoDnVNv0X8sGA+LBZ0Y+zrA+KNXUL0PPCX9WR9cF2uJAZl1Sw==", - "requires": { - "gl-buffer": "^2.1.2", - "gl-mat4": "^1.2.0", - "gl-shader": "^4.2.1", - "gl-vao": "^1.3.0", - "glsl-out-of-range": "^1.0.4", - "glslify": "^7.0.0", - "is-string-blank": "^1.0.1", - "typedarray-pool": "^1.1.0", - "vectorize-text": "^3.2.1" - } - }, - "gl-select-box": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/gl-select-box/-/gl-select-box-1.0.4.tgz", - "integrity": "sha512-mKsCnglraSKyBbQiGq0Ila0WF+m6Tr+EWT2yfaMn/Sh9aMHq5Wt0F/l6Cf/Ed3CdERq5jHWAY5yxLviZteYu2w==", - "requires": { - "gl-buffer": "^2.1.2", - "gl-shader": "^4.2.1", - "glslify": "^7.0.0" - } - }, - "gl-select-static": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/gl-select-static/-/gl-select-static-2.0.7.tgz", - "integrity": "sha512-OvpYprd+ngl3liEatBTdXhSyNBjwvjMSvV2rN0KHpTU+BTi4viEETXNZXFgGXY37qARs0L28ybk3UQEW6C5Nnw==", - "requires": { - "bit-twiddle": "^1.0.2", - "gl-fbo": "^2.0.5", - "ndarray": "^1.0.18", - "typedarray-pool": "^1.1.0" - } - }, - "gl-shader": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/gl-shader/-/gl-shader-4.2.1.tgz", - "integrity": "sha1-vJuAjpKTxRtmjojeYVsMETcI3C8=", - "requires": { - "gl-format-compiler-error": "^1.0.2", - "weakmap-shim": "^1.1.0" - } - }, - "gl-spikes2d": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/gl-spikes2d/-/gl-spikes2d-1.0.2.tgz", - "integrity": "sha512-QVeOZsi9nQuJJl7NB3132CCv5KA10BWxAY2QgJNsKqbLsG53B/TrGJpjIAohnJftdZ4fT6b3ZojWgeaXk8bOOA==" - }, - "gl-spikes3d": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/gl-spikes3d/-/gl-spikes3d-1.0.10.tgz", - "integrity": "sha512-lT3xroowOFxMvlhT5Mof76B2TE02l5zt/NIWljhczV2FFHgIVhA4jMrd5dIv1so1RXMBDJIKu0uJI3QKliDVLg==", - "requires": { - "gl-buffer": "^2.1.2", - "gl-shader": "^4.2.1", - "gl-vao": "^1.3.0", - "glslify": "^7.0.0" - } - }, - "gl-state": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gl-state/-/gl-state-1.0.0.tgz", - "integrity": "sha1-Ji+qdYNbC5xTLBLzitxCXR0wzRc=", - "requires": { - "uniq": "^1.0.0" - } - }, - "gl-streamtube3d": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/gl-streamtube3d/-/gl-streamtube3d-1.4.1.tgz", - "integrity": "sha512-rH02v00kgwgdpkXVo7KsSoPp38bIAYR9TE1iONjcQ4cQAlDhrGRauqT/P5sUaOIzs17A2DxWGcXM+EpNQs9pUA==", - "requires": { - "gl-cone3d": "^1.5.2", - "gl-vec3": "^1.1.3", - "gl-vec4": "^1.0.1", - "glsl-inverse": "^1.0.0", - "glsl-out-of-range": "^1.0.4", - "glsl-specular-cook-torrance": "^2.0.1", - "glslify": "^7.0.0" - } - }, - "gl-surface3d": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/gl-surface3d/-/gl-surface3d-1.6.0.tgz", - "integrity": "sha512-x15+u4712ysnB85G55RLJEml6mOB4VaDn0VTlXCc9JcjRl5Es10Tk7lhGGyiPtkCfHwvhnkxzYA1/rHHYN7Y0A==", - "requires": { - "binary-search-bounds": "^2.0.4", - "bit-twiddle": "^1.0.2", - "colormap": "^2.3.1", - "dup": "^1.0.0", - "gl-buffer": "^2.1.2", - "gl-mat4": "^1.2.0", - "gl-shader": "^4.2.1", - "gl-texture2d": "^2.1.0", - "gl-vao": "^1.3.0", - "glsl-out-of-range": "^1.0.4", - "glsl-specular-beckmann": "^1.1.2", - "glslify": "^7.0.0", - "ndarray": "^1.0.18", - "ndarray-gradient": "^1.0.0", - "ndarray-ops": "^1.2.2", - "ndarray-pack": "^1.2.1", - "ndarray-scratch": "^1.2.0", - "surface-nets": "^1.0.2", - "typedarray-pool": "^1.1.0" - } - }, - "gl-text": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/gl-text/-/gl-text-1.1.8.tgz", - "integrity": "sha512-whnq9DEFYbW92C4ONwk2eT0YkzmVPHoADnEtuzMOmit87XhgAhBrNs3lK9EgGjU/MoWYvlF6RkI8Kl7Yuo1hUw==", - "requires": { - "bit-twiddle": "^1.0.2", - "color-normalize": "^1.5.0", - "css-font": "^1.2.0", - "detect-kerning": "^2.1.2", - "es6-weak-map": "^2.0.3", - "flatten-vertex-data": "^1.0.2", - "font-atlas": "^2.1.0", - "font-measure": "^1.2.2", - "gl-util": "^3.1.2", - "is-plain-obj": "^1.1.0", - "object-assign": "^4.1.1", - "parse-rect": "^1.2.0", - "parse-unit": "^1.0.1", - "pick-by-alias": "^1.2.0", - "regl": "^1.3.11", - "to-px": "^1.0.1", - "typedarray-pool": "^1.1.0" - } - }, - "gl-texture2d": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/gl-texture2d/-/gl-texture2d-2.1.0.tgz", - "integrity": "sha1-/2gk5+fDGoum/c2+nlxpXX4hh8c=", - "requires": { - "ndarray": "^1.0.15", - "ndarray-ops": "^1.2.2", - "typedarray-pool": "^1.1.0" - } - }, - "gl-util": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/gl-util/-/gl-util-3.1.3.tgz", - "integrity": "sha512-dvRTggw5MSkJnCbh74jZzSoTOGnVYK+Bt+Ckqm39CVcl6+zSsxqWk4lr5NKhkqXHL6qvZAU9h17ZF8mIskY9mA==", - "requires": { - "is-browser": "^2.0.1", - "is-firefox": "^1.0.3", - "is-plain-obj": "^1.1.0", - "number-is-integer": "^1.0.1", - "object-assign": "^4.1.0", - "pick-by-alias": "^1.2.0", - "weak-map": "^1.0.5" - } - }, - "gl-vao": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/gl-vao/-/gl-vao-1.3.0.tgz", - "integrity": "sha1-6ekqqVWIyrnVwvBLaTRAw99pGSM=" - }, - "gl-vec3": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gl-vec3/-/gl-vec3-1.1.3.tgz", - "integrity": "sha512-jduKUqT0SGH02l8Yl+mV1yVsDfYgQAJyXGxkJQGyxPLHRiW25DwVIRPt6uvhrEMHftJfqhqKthRcyZqNEl9Xdw==" - }, - "gl-vec4": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gl-vec4/-/gl-vec4-1.0.1.tgz", - "integrity": "sha1-l9loeCgbFLUyy84QF4Xf0cs0CWQ=" - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glsl-inject-defines": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/glsl-inject-defines/-/glsl-inject-defines-1.0.3.tgz", - "integrity": "sha1-3RqswsF/yyvT/DJBHGYz0Ne2D9Q=", - "requires": { - "glsl-token-inject-block": "^1.0.0", - "glsl-token-string": "^1.0.1", - "glsl-tokenizer": "^2.0.2" - } - }, - "glsl-inverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glsl-inverse/-/glsl-inverse-1.0.0.tgz", - "integrity": "sha1-EsCx0GX1WERNHm/q95td34qRiuY=" - }, - "glsl-out-of-range": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/glsl-out-of-range/-/glsl-out-of-range-1.0.4.tgz", - "integrity": "sha512-fCcDu2LCQ39VBvfe1FbhuazXEf0CqMZI9OYXrYlL6uUARG48CTAbL04+tZBtVM0zo1Ljx4OLu2AxNquq++lxWQ==" - }, - "glsl-resolve": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/glsl-resolve/-/glsl-resolve-0.0.1.tgz", - "integrity": "sha1-iUvvc5ENeSyBtRQxgANdCnivdtM=", - "requires": { - "resolve": "^0.6.1", - "xtend": "^2.1.2" - }, - "dependencies": { - "resolve": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz", - "integrity": "sha1-3ZV5gufnNt699TtYpN2RdUV13UY=" - }, - "xtend": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", - "integrity": "sha1-7vax8ZjByN6vrYsXZaBNrUoBxak=" - } - } - }, - "glsl-shader-name": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glsl-shader-name/-/glsl-shader-name-1.0.0.tgz", - "integrity": "sha1-osMLO6c0mb77DMcYTXx3M91LSH0=", - "requires": { - "atob-lite": "^1.0.0", - "glsl-tokenizer": "^2.0.2" - } - }, - "glsl-specular-beckmann": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/glsl-specular-beckmann/-/glsl-specular-beckmann-1.1.2.tgz", - "integrity": "sha1-/OkFaTPs3yRWJ4N2pU0IKJPndfE=" - }, - "glsl-specular-cook-torrance": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/glsl-specular-cook-torrance/-/glsl-specular-cook-torrance-2.0.1.tgz", - "integrity": "sha1-qJHMBsjHtPRyhwK0gk/ay7ln148=", - "requires": { - "glsl-specular-beckmann": "^1.1.1" - } - }, - "glsl-token-assignments": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/glsl-token-assignments/-/glsl-token-assignments-2.0.2.tgz", - "integrity": "sha1-pdgqt4SZwuimuDy2lJXm5mXOAZ8=" - }, - "glsl-token-defines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glsl-token-defines/-/glsl-token-defines-1.0.0.tgz", - "integrity": "sha1-y4kqqVmTYjFyhHDU90AySJaX+p0=", - "requires": { - "glsl-tokenizer": "^2.0.0" - } - }, - "glsl-token-depth": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/glsl-token-depth/-/glsl-token-depth-1.1.2.tgz", - "integrity": "sha1-I8XjDuK9JViEtKKLyFC495HpXYQ=" - }, - "glsl-token-descope": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glsl-token-descope/-/glsl-token-descope-1.0.2.tgz", - "integrity": "sha1-D8kKsyYYa4L1l7LnfcniHvzTIHY=", - "requires": { - "glsl-token-assignments": "^2.0.0", - "glsl-token-depth": "^1.1.0", - "glsl-token-properties": "^1.0.0", - "glsl-token-scope": "^1.1.0" - } - }, - "glsl-token-inject-block": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/glsl-token-inject-block/-/glsl-token-inject-block-1.1.0.tgz", - "integrity": "sha1-4QFfWYDBCRgkraomJfHf3ovQADQ=" - }, - "glsl-token-properties": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glsl-token-properties/-/glsl-token-properties-1.0.1.tgz", - "integrity": "sha1-SD3D2Dnw1LXGFx0VkfJJvlPCip4=" - }, - "glsl-token-scope": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/glsl-token-scope/-/glsl-token-scope-1.1.2.tgz", - "integrity": "sha1-oXKOeN8kRE+cuT/RjvD3VQOmQ7E=" - }, - "glsl-token-string": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glsl-token-string/-/glsl-token-string-1.0.1.tgz", - "integrity": "sha1-WUQdL4V958NEnJRWZgIezjWOSOw=" - }, - "glsl-token-whitespace-trim": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glsl-token-whitespace-trim/-/glsl-token-whitespace-trim-1.0.0.tgz", - "integrity": "sha1-RtHf6Yx1vX1QTAXX0RsbPpzJOxA=" - }, - "glsl-tokenizer": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/glsl-tokenizer/-/glsl-tokenizer-2.1.5.tgz", - "integrity": "sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==", - "requires": { - "through2": "^0.6.3" - } - }, - "glslify": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/glslify/-/glslify-7.1.1.tgz", - "integrity": "sha512-bud98CJ6kGZcP9Yxcsi7Iz647wuDz3oN+IZsjCRi5X1PI7t/xPKeL0mOwXJjo+CRZMqvq0CkSJiywCcY7kVYog==", - "requires": { - "bl": "^2.2.1", - "concat-stream": "^1.5.2", - "duplexify": "^3.4.5", - "falafel": "^2.1.0", - "from2": "^2.3.0", - "glsl-resolve": "0.0.1", - "glsl-token-whitespace-trim": "^1.0.0", - "glslify-bundle": "^5.0.0", - "glslify-deps": "^1.2.5", - "minimist": "^1.2.5", - "resolve": "^1.1.5", - "stack-trace": "0.0.9", - "static-eval": "^2.0.5", - "through2": "^2.0.1", - "xtend": "^4.0.0" - }, - "dependencies": { - "bl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", - "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - } - } - }, - "glslify-bundle": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-5.1.1.tgz", - "integrity": "sha512-plaAOQPv62M1r3OsWf2UbjN0hUYAB7Aph5bfH58VxJZJhloRNbxOL9tl/7H71K7OLJoSJ2ZqWOKk3ttQ6wy24A==", - "requires": { - "glsl-inject-defines": "^1.0.1", - "glsl-token-defines": "^1.0.0", - "glsl-token-depth": "^1.1.1", - "glsl-token-descope": "^1.0.2", - "glsl-token-scope": "^1.1.1", - "glsl-token-string": "^1.0.1", - "glsl-token-whitespace-trim": "^1.0.0", - "glsl-tokenizer": "^2.0.2", - "murmurhash-js": "^1.0.0", - "shallow-copy": "0.0.1" - } - }, - "glslify-deps": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/glslify-deps/-/glslify-deps-1.3.2.tgz", - "integrity": "sha512-7S7IkHWygJRjcawveXQjRXLO2FTjijPDYC7QfZyAQanY+yGLCFHYnPtsGT9bdyHiwPTw/5a1m1M9hamT2aBpag==", - "requires": { - "@choojs/findup": "^0.2.0", - "events": "^3.2.0", - "glsl-resolve": "0.0.1", - "glsl-tokenizer": "^2.0.0", - "graceful-fs": "^4.1.2", - "inherits": "^2.0.1", - "map-limit": "0.0.1", - "resolve": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" - }, - "grid-index": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz", - "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==" - }, - "has-hover": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-hover/-/has-hover-1.0.1.tgz", - "integrity": "sha1-PZdDeusZnGK4rAisvcU9O8UsF/c=", - "requires": { - "is-browser": "^2.0.1" - } - }, - "has-passive-events": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-passive-events/-/has-passive-events-1.0.0.tgz", - "integrity": "sha512-2vSj6IeIsgvsRMyeQ0JaCX5Q3lX4zMn5HpoVc7MEhQ6pv8Iq9rsXjsp+E5ZwaT7T0xhMT0KmU8gtt1EFVdbJiw==", - "requires": { - "is-browser": "^2.0.1" - } - }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "hsluv": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/hsluv/-/hsluv-0.0.3.tgz", - "integrity": "sha1-gpEH2vtKn4tSoYCe0C4JHq3mdUw=" - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "ify-loader": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ify-loader/-/ify-loader-1.1.0.tgz", - "integrity": "sha512-EiyC45FRIs+z4g98+jBzuYCfoM6TKG9p7Ek5YZUeM7rucNucaMZIseRj/5Q3I4ypkZXyC2wnU1RcYrVmshe2xw==", - "dev": true, - "requires": { - "bl": "^1.0.0", - "findup": "^0.1.5", - "from2-array": "0.0.4", - "map-limit": "0.0.1", - "multipipe": "^0.3.0", - "read-package-json": "^2.0.2", - "resolve": "^1.1.6" - }, - "dependencies": { - "commander": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz", - "integrity": "sha1-0SG7roYNmZKj1Re6lvVliOR8Z4E=", - "dev": true - }, - "findup": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/findup/-/findup-0.1.5.tgz", - "integrity": "sha1-itkpozk7rGJ5V6fl3kYjsGsOLOs=", - "dev": true, - "requires": { - "colors": "~0.6.0-1", - "commander": "~2.1.0" - } - } - } - }, - "image-palette": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/image-palette/-/image-palette-2.1.0.tgz", - "integrity": "sha512-3ImSEWD26+xuQFdP0RWR4WSXadZwvgrFhjGNpMEapTG1tf2XrBFS2dlKK5hNgH4UIaSQlSUFRn1NeA+zULIWbQ==", - "requires": { - "color-id": "^1.1.0", - "pxls": "^2.0.0", - "quantize": "^1.0.2" - } - }, - "image-size": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.7.5.tgz", - "integrity": "sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g==" - }, - "incremental-convex-hull": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/incremental-convex-hull/-/incremental-convex-hull-1.0.1.tgz", - "integrity": "sha1-UUKMFMudmmFEv+abKFH7N3M0vh4=", - "requires": { - "robust-orientation": "^1.1.2", - "simplicial-complex": "^1.0.0" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "interval-tree-1d": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/interval-tree-1d/-/interval-tree-1d-1.0.3.tgz", - "integrity": "sha1-j9veArayx9verWNry+2OCHENhcE=", - "requires": { - "binary-search-bounds": "^1.0.0" - }, - "dependencies": { - "binary-search-bounds": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-1.0.0.tgz", - "integrity": "sha1-MjyjF+PypA9CRMclX1OEpbIHu2k=" - } - } - }, - "invert-permutation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-permutation/-/invert-permutation-1.0.0.tgz", - "integrity": "sha1-oKeAQurbNrwXVR54fv0UOa3VSTM=" - }, - "iota-array": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/iota-array/-/iota-array-1.0.0.tgz", - "integrity": "sha1-ge9X/l0FgUzVjCSDYyqZwwoOgIc=" - }, - "is-base64": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-base64/-/is-base64-0.1.0.tgz", - "integrity": "sha512-WRRyllsGXJM7ZN7gPTCCQ/6wNPTRDwiWdPK66l5sJzcU/oOzcIcRRf0Rux8bkpox/1yjt0F6VJRsQOIG2qz5sg==" - }, - "is-blob": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-blob/-/is-blob-2.1.0.tgz", - "integrity": "sha512-SZ/fTft5eUhQM6oF/ZaASFDEdbFVe89Imltn9uZr03wdKMcWNVYSMjQPFtg05QuNkt5l5c135ElvXEQG0rk4tw==" - }, - "is-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-browser/-/is-browser-2.1.0.tgz", - "integrity": "sha512-F5rTJxDQ2sW81fcfOR1GnCXT6sVJC104fCyfj+mjpwNEwaPYSn5fte5jiHmBg3DHsIoL/l8Kvw5VN5SsTRcRFQ==" - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==" - }, - "is-firefox": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-firefox/-/is-firefox-1.0.3.tgz", - "integrity": "sha1-KioVZ3g6QX9uFYMjEI84YbCRhWI=" - }, - "is-float-array": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-float-array/-/is-float-array-1.0.0.tgz", - "integrity": "sha512-4ew1Sx6B6kEAl3T3NOM0yB94J3NZnBdNt4paw0e8nY73yHHTeTEhyQ3Lj7EQEnv5LD+GxNTaT4L46jcKjjpLiQ==" - }, - "is-iexplorer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-iexplorer/-/is-iexplorer-1.0.0.tgz", - "integrity": "sha1-HXK8ZtP+Iur2Fw3ajPEJQySM/HY=" - }, - "is-mobile": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-2.2.2.tgz", - "integrity": "sha512-wW/SXnYJkTjs++tVK5b6kVITZpAZPtUrt9SF80vvxGiF/Oywal+COk1jlRkiVq15RFNEQKQY31TkV24/1T5cVg==" - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - }, - "is-string-blank": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-string-blank/-/is-string-blank-1.0.1.tgz", - "integrity": "sha512-9H+ZBCVs3L9OYqv8nuUAzpcT9OTgMD1yAWrG7ihlnibdkbtB850heAmYWxHuXc4CHy4lKeK69tN+ny1K7gBIrw==" - }, - "is-svg-path": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-svg-path/-/is-svg-path-1.0.2.tgz", - "integrity": "sha1-d6tZDBKz0gNI5cehPQBAyHeE3aA=" - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "kdbush": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz", - "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==" - }, - "lerp": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/lerp/-/lerp-1.0.3.tgz", - "integrity": "sha1-oYyJaPkXiW3hXM/MKNVaa3Med24=" - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" - }, - "map-limit": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", - "integrity": "sha1-63lhAxwPDo0AG/LVb6toXViCLzg=", - "requires": { - "once": "~1.3.0" - }, - "dependencies": { - "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", - "requires": { - "wrappy": "1" - } - } - } - }, - "mapbox-gl": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-1.10.1.tgz", - "integrity": "sha512-0aHt+lFUpYfvh0kMIqXqNXqoYMuhuAsMlw87TbhWrw78Tx2zfuPI0Lx31/YPUgJ+Ire0tzQ4JnuBL7acDNXmMg==", - "requires": { - "@mapbox/geojson-rewind": "^0.5.0", - "@mapbox/geojson-types": "^1.0.2", - "@mapbox/jsonlint-lines-primitives": "^2.0.2", - "@mapbox/mapbox-gl-supported": "^1.5.0", - "@mapbox/point-geometry": "^0.1.0", - "@mapbox/tiny-sdf": "^1.1.1", - "@mapbox/unitbezier": "^0.0.0", - "@mapbox/vector-tile": "^1.3.1", - "@mapbox/whoots-js": "^3.1.0", - "csscolorparser": "~1.0.3", - "earcut": "^2.2.2", - "geojson-vt": "^3.2.1", - "gl-matrix": "^3.2.1", - "grid-index": "^1.1.0", - "minimist": "^1.2.5", - "murmurhash-js": "^1.0.0", - "pbf": "^3.2.1", - "potpack": "^1.0.1", - "quickselect": "^2.0.0", - "rw": "^1.3.3", - "supercluster": "^7.0.0", - "tinyqueue": "^2.0.3", - "vt-pbf": "^3.1.1" - } - }, - "marching-simplex-table": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/marching-simplex-table/-/marching-simplex-table-1.0.0.tgz", - "integrity": "sha1-vBYlbg+Pm1WKqbKHL4gy2UM/Uuo=", - "requires": { - "convex-hull": "^1.0.3" - } - }, - "mat4-decompose": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mat4-decompose/-/mat4-decompose-1.0.4.tgz", - "integrity": "sha1-ZetP451wh496RE60Yk1S9+frL68=", - "requires": { - "gl-mat4": "^1.0.1", - "gl-vec3": "^1.0.2" - } - }, - "mat4-interpolate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mat4-interpolate/-/mat4-interpolate-1.0.4.tgz", - "integrity": "sha1-Vf/p6zw1KV4sDVqfdyXZBoqJ/3Q=", - "requires": { - "gl-mat4": "^1.0.1", - "gl-vec3": "^1.0.2", - "mat4-decompose": "^1.0.3", - "mat4-recompose": "^1.0.3", - "quat-slerp": "^1.0.0" - } - }, - "mat4-recompose": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mat4-recompose/-/mat4-recompose-1.0.4.tgz", - "integrity": "sha1-OVPCMP8kc9x3LuAUpSySXPgbDk0=", - "requires": { - "gl-mat4": "^1.0.1" - } - }, - "math-log2": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/math-log2/-/math-log2-1.0.1.tgz", - "integrity": "sha1-+4lBvl9evol55xjmJzsXjlhpRWU=" - }, - "matrix-camera-controller": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/matrix-camera-controller/-/matrix-camera-controller-2.1.3.tgz", - "integrity": "sha1-NeUmDMHNVQliunmfLY1OlLGjk3A=", - "requires": { - "binary-search-bounds": "^1.0.0", - "gl-mat4": "^1.1.2", - "gl-vec3": "^1.0.3", - "mat4-interpolate": "^1.0.3" - }, - "dependencies": { - "binary-search-bounds": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-1.0.0.tgz", - "integrity": "sha1-MjyjF+PypA9CRMclX1OEpbIHu2k=" - } - } - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "monotone-convex-hull-2d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/monotone-convex-hull-2d/-/monotone-convex-hull-2d-1.0.1.tgz", - "integrity": "sha1-R/Xa6t88Sv03dkuqGqh4ekDu4Iw=", - "requires": { - "robust-orientation": "^1.1.3" - } - }, - "mouse-change": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/mouse-change/-/mouse-change-1.4.0.tgz", - "integrity": "sha1-wrd+W/o0pDzhRFyBV6Tk3JiVwU8=", - "requires": { - "mouse-event": "^1.0.0" - } - }, - "mouse-event": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/mouse-event/-/mouse-event-1.0.5.tgz", - "integrity": "sha1-s3ie23EJmX1aky0dAdqhVDpQFzI=" - }, - "mouse-event-offset": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mouse-event-offset/-/mouse-event-offset-3.0.2.tgz", - "integrity": "sha1-39hqbiSMa6jK1TuQXVA3ogY+mYQ=" - }, - "mouse-wheel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mouse-wheel/-/mouse-wheel-1.2.0.tgz", - "integrity": "sha1-bSkDseqPtI5h8bU7kDZ3PwQs21w=", - "requires": { - "right-now": "^1.0.0", - "signum": "^1.0.0", - "to-px": "^1.0.1" - }, - "dependencies": { - "signum": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/signum/-/signum-1.0.0.tgz", - "integrity": "sha1-dKfSvyogtA66FqkrFSEk8dVZ+nc=" - } - } - }, - "multipipe": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.3.1.tgz", - "integrity": "sha1-kmJVJXYboE/qoJYFtjgrziyR8R8=", - "dev": true, - "requires": { - "duplexer2": "^0.1.2" - } - }, - "mumath": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/mumath/-/mumath-3.3.4.tgz", - "integrity": "sha1-SNSg8P2MrU57Mglu6JsWGmPTC78=", - "requires": { - "almost-equal": "^1.1.0" - } - }, - "murmurhash-js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", - "integrity": "sha1-sGJ44h/Gw3+lMTcysEEry2rhX1E=" - }, - "ndarray": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/ndarray/-/ndarray-1.0.19.tgz", - "integrity": "sha512-B4JHA4vdyZU30ELBw3g7/p9bZupyew5a7tX1Y/gGeF2hafrPaQZhgrGQfsvgfYbgdFZjYwuEcnaobeM/WMW+HQ==", - "requires": { - "iota-array": "^1.0.0", - "is-buffer": "^1.0.2" - } - }, - "ndarray-extract-contour": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ndarray-extract-contour/-/ndarray-extract-contour-1.0.1.tgz", - "integrity": "sha1-Cu4ROjozsia5DEiIz4d79HUTBeQ=", - "requires": { - "typedarray-pool": "^1.0.0" - } - }, - "ndarray-gradient": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ndarray-gradient/-/ndarray-gradient-1.0.0.tgz", - "integrity": "sha1-t0kaUVxqZJ8ZpiMk//byf8jCU5M=", - "requires": { - "cwise-compiler": "^1.0.0", - "dup": "^1.0.0" - } - }, - "ndarray-linear-interpolate": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ndarray-linear-interpolate/-/ndarray-linear-interpolate-1.0.0.tgz", - "integrity": "sha1-eLySuFuavBW25n7mWCj54hN65ys=" - }, - "ndarray-ops": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/ndarray-ops/-/ndarray-ops-1.2.2.tgz", - "integrity": "sha1-WeiNLDKn7ryxvGkPrhQVeVV6YU4=", - "requires": { - "cwise-compiler": "^1.0.0" - } - }, - "ndarray-pack": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ndarray-pack/-/ndarray-pack-1.2.1.tgz", - "integrity": "sha1-jK6+qqJNXs9w/4YCBjeXfajuWFo=", - "requires": { - "cwise-compiler": "^1.1.2", - "ndarray": "^1.0.13" - } - }, - "ndarray-scratch": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ndarray-scratch/-/ndarray-scratch-1.2.0.tgz", - "integrity": "sha1-YwRjbWLrqT20cnrBPGkzQdulDgE=", - "requires": { - "ndarray": "^1.0.14", - "ndarray-ops": "^1.2.1", - "typedarray-pool": "^1.0.2" - } - }, - "ndarray-sort": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ndarray-sort/-/ndarray-sort-1.0.1.tgz", - "integrity": "sha1-/qBbTLg0x/TgIWo1TzynUTAN/Wo=", - "requires": { - "typedarray-pool": "^1.0.0" - } - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "nextafter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/nextafter/-/nextafter-1.0.0.tgz", - "integrity": "sha1-t9d7U1MQ4+CX5gJauwqQNHfsGjo=", - "requires": { - "double-bits": "^1.1.0" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-svg-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-0.1.0.tgz", - "integrity": "sha1-RWNg5g7Odfvve11+FgSA5//Rb+U=" - }, - "normals": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/normals/-/normals-1.1.0.tgz", - "integrity": "sha1-MltZXtNK/kZ6bFWhT9kIV4f/WcA=" - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "dev": true - }, - "number-is-integer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-integer/-/number-is-integer-1.0.1.tgz", - "integrity": "sha1-5ZvKFy/+0nMY55x862y3LAlbIVI=", - "requires": { - "is-finite": "^1.0.1" - } - }, - "numeric": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/numeric/-/numeric-1.2.6.tgz", - "integrity": "sha1-dlsCvvl5iPz4gNTrPza4D6MTNao=" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "orbit-camera-controller": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/orbit-camera-controller/-/orbit-camera-controller-4.0.0.tgz", - "integrity": "sha1-bis28OeHhmPDMPUNqbfOaGwncAU=", - "requires": { - "filtered-vector": "^1.2.1", - "gl-mat4": "^1.0.3" - } - }, - "pad-left": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-1.0.2.tgz", - "integrity": "sha1-GeVzXqmDlaJs7carkm6tEPMQDUw=", - "requires": { - "repeat-string": "^1.3.0" - } - }, - "parenthesis": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/parenthesis/-/parenthesis-3.1.7.tgz", - "integrity": "sha512-iMtu+HCbLXVrpf6Ys/4YKhcFxbux3xK4ZVB9r+a2kMSqeeQWQoDNYlXIsOjwlT2ldYXZ3k5PVeBnYn7fbAo/Bg==" - }, - "parse-rect": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parse-rect/-/parse-rect-1.2.0.tgz", - "integrity": "sha512-4QZ6KYbnE6RTwg9E0HpLchUM9EZt6DnDxajFZZDSV4p/12ZJEvPO702DZpGvRYEPo00yKDys7jASi+/w7aO8LA==", - "requires": { - "pick-by-alias": "^1.2.0" - } - }, - "parse-svg-path": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz", - "integrity": "sha1-en7A0esG+lMlx9PgCbhZoJtdSes=" - }, - "parse-unit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-unit/-/parse-unit-1.0.1.tgz", - "integrity": "sha1-fhu21b7zh0wo45JSaiVBFwKR7s8=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "pbf": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", - "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", - "requires": { - "ieee754": "^1.1.12", - "resolve-protobuf-schema": "^2.1.0" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "permutation-parity": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/permutation-parity/-/permutation-parity-1.0.0.tgz", - "integrity": "sha1-AXTVH8pwSxG5pLFSsj1Tf9xrXvQ=", - "requires": { - "typedarray-pool": "^1.0.0" - } - }, - "permutation-rank": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/permutation-rank/-/permutation-rank-1.0.0.tgz", - "integrity": "sha1-n9mLvOzwj79ZlLXq3JSmLmeUg7U=", - "requires": { - "invert-permutation": "^1.0.0", - "typedarray-pool": "^1.0.0" - } - }, - "pick-by-alias": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pick-by-alias/-/pick-by-alias-1.2.0.tgz", - "integrity": "sha1-X3yysfIabh6ISgyHhVqko3NhEHs=" - }, - "planar-dual": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/planar-dual/-/planar-dual-1.0.2.tgz", - "integrity": "sha1-tqQjVSOxsMt55fkm+OozXdmC1WM=", - "requires": { - "compare-angle": "^1.0.0", - "dup": "^1.0.0" - } - }, - "planar-graph-to-polyline": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/planar-graph-to-polyline/-/planar-graph-to-polyline-1.0.5.tgz", - "integrity": "sha1-iCuGBRmbqIv9RkyVUzA1VsUrmIo=", - "requires": { - "edges-to-adjacency-list": "^1.0.0", - "planar-dual": "^1.0.0", - "point-in-big-polygon": "^2.0.0", - "robust-orientation": "^1.0.1", - "robust-sum": "^1.0.0", - "two-product": "^1.0.0", - "uniq": "^1.0.0" - } - }, - "plotly.js": { - "version": "1.58.4", - "resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-1.58.4.tgz", - "integrity": "sha512-hdt/aEvkPjS1HJ7tJKcPqsqi9ErEZPhUFs4d2ANTLeBim+AmVcHzS1rtwr7ZrVCINgliW/+92u81omJoy+lbUw==", - "requires": { - "@plotly/d3-sankey": "0.7.2", - "@plotly/d3-sankey-circular": "0.33.1", - "@plotly/point-cluster": "^3.1.9", - "@turf/area": "^6.0.1", - "@turf/bbox": "^6.0.1", - "@turf/centroid": "^6.0.2", - "alpha-shape": "^1.0.0", - "canvas-fit": "^1.5.0", - "color-alpha": "1.0.4", - "color-normalize": "1.5.0", - "color-parse": "1.3.8", - "color-rgba": "2.1.1", - "convex-hull": "^1.0.3", - "country-regex": "^1.1.0", - "d3": "^3.5.17", - "d3-force": "^1.2.1", - "d3-hierarchy": "^1.1.9", - "d3-interpolate": "^1.4.0", - "d3-time-format": "^2.2.3", - "delaunay-triangulate": "^1.1.6", - "es6-promise": "^4.2.8", - "fast-isnumeric": "^1.1.4", - "gl-cone3d": "^1.5.2", - "gl-contour2d": "^1.1.7", - "gl-error3d": "^1.0.16", - "gl-heatmap2d": "^1.1.0", - "gl-line3d": "1.2.1", - "gl-mat4": "^1.2.0", - "gl-mesh3d": "^2.3.1", - "gl-plot2d": "^1.4.5", - "gl-plot3d": "^2.4.7", - "gl-pointcloud2d": "^1.0.3", - "gl-scatter3d": "^1.2.3", - "gl-select-box": "^1.0.4", - "gl-spikes2d": "^1.0.2", - "gl-streamtube3d": "^1.4.1", - "gl-surface3d": "^1.6.0", - "gl-text": "^1.1.8", - "glslify": "^7.1.1", - "has-hover": "^1.0.1", - "has-passive-events": "^1.0.0", - "image-size": "^0.7.5", - "is-mobile": "^2.2.2", - "mapbox-gl": "1.10.1", - "matrix-camera-controller": "^2.1.3", - "mouse-change": "^1.4.0", - "mouse-event-offset": "^3.0.2", - "mouse-wheel": "^1.2.0", - "ndarray": "^1.0.19", - "ndarray-linear-interpolate": "^1.0.0", - "parse-svg-path": "^0.1.2", - "polybooljs": "^1.2.0", - "regl": "^1.6.1", - "regl-error2d": "^2.0.11", - "regl-line2d": "^3.0.18", - "regl-scatter2d": "^3.2.1", - "regl-splom": "^1.0.12", - "right-now": "^1.0.0", - "robust-orientation": "^1.1.3", - "sane-topojson": "^4.0.0", - "strongly-connected-components": "^1.0.1", - "superscript-text": "^1.0.0", - "svg-path-sdf": "^1.1.3", - "tinycolor2": "^1.4.2", - "to-px": "1.0.1", - "topojson-client": "^3.1.0", - "webgl-context": "^2.2.0", - "world-calendars": "^1.0.3" - } - }, - "point-in-big-polygon": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/point-in-big-polygon/-/point-in-big-polygon-2.0.0.tgz", - "integrity": "sha1-ObYT6mzxfWtD4Yj3fzTETGszulU=", - "requires": { - "binary-search-bounds": "^1.0.0", - "interval-tree-1d": "^1.0.1", - "robust-orientation": "^1.1.3", - "slab-decomposition": "^1.0.1" - }, - "dependencies": { - "binary-search-bounds": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-1.0.0.tgz", - "integrity": "sha1-MjyjF+PypA9CRMclX1OEpbIHu2k=" - } - } - }, - "polybooljs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/polybooljs/-/polybooljs-1.2.0.tgz", - "integrity": "sha1-tDkMLgedTCYtOyUExiiNlbp6R1g=" - }, - "polytope-closest-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/polytope-closest-point/-/polytope-closest-point-1.0.0.tgz", - "integrity": "sha1-5uV/QIGrXox3i4Ee8G4sSK4zjD8=", - "requires": { - "numeric": "^1.2.6" - } - }, - "potpack": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.1.tgz", - "integrity": "sha512-15vItUAbViaYrmaB/Pbw7z6qX2xENbFSTA7Ii4tgbPtasxm5v6ryKhKtL91tpWovDJzTiZqdwzhcFBCwiMVdVw==" - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "protocol-buffers-schema": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.4.0.tgz", - "integrity": "sha512-G/2kcamPF2S49W5yaMGdIpkG6+5wZF0fzBteLKgEHjbNzqjZQ85aAs1iJGto31EJaSTkNvHs5IXuHSaTLWBAiA==" - }, - "pxls": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/pxls/-/pxls-2.3.2.tgz", - "integrity": "sha512-pQkwgbLqWPcuES5iEmGa10OlCf5xG0blkIF3dg7PpRZShbTYcvAdfFfGL03SMrkaSUaa/V0UpN9HWg40O2AIIw==", - "requires": { - "arr-flatten": "^1.1.0", - "compute-dims": "^1.1.0", - "flip-pixels": "^1.0.2", - "is-browser": "^2.1.0", - "is-buffer": "^2.0.3", - "to-uint8": "^1.4.1" - }, - "dependencies": { - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" - } - } - }, - "quantize": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/quantize/-/quantize-1.0.2.tgz", - "integrity": "sha1-0lrCAKd7bXD0ASfKFxoQ4zyFRt4=" - }, - "quat-slerp": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/quat-slerp/-/quat-slerp-1.0.1.tgz", - "integrity": "sha1-K6oVzjprvcMkHZcusXKDE57Wnyk=", - "requires": { - "gl-quat": "^1.0.0" - } - }, - "quickselect": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" - }, - "raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "requires": { - "performance-now": "^2.1.0" - } - }, - "rat-vec": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/rat-vec/-/rat-vec-1.1.1.tgz", - "integrity": "sha1-Dd4rZrezS7G80qI4BerIBth/0X8=", - "requires": { - "big-rat": "^1.0.3" - } - }, - "read-package-json": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.1.tgz", - "integrity": "sha512-dAiqGtVc/q5doFz6096CcnXhpYk0ZN8dEKVkGLU0CsASt8SrgF6SF7OTKAYubfvFhWaqofl+Y8HK19GR8jwW+A==", - "dev": true, - "requires": { - "glob": "^7.1.1", - "graceful-fs": "^4.1.2", - "json-parse-better-errors": "^1.0.1", - "normalize-package-data": "^2.0.0", - "npm-normalize-package-bin": "^1.0.0" - } - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "reduce-simplicial-complex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/reduce-simplicial-complex/-/reduce-simplicial-complex-1.0.0.tgz", - "integrity": "sha1-dNaWovg196bc2SBl/YxRgfLt+Lw=", - "requires": { - "cell-orientation": "^1.0.1", - "compare-cell": "^1.0.0", - "compare-oriented-cell": "^1.0.1" - } - }, - "regex-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regex-regex/-/regex-regex-1.0.0.tgz", - "integrity": "sha1-kEih6uuHD01IDavHb8Qs3MC8OnI=" - }, - "regl": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/regl/-/regl-1.7.0.tgz", - "integrity": "sha512-bEAtp/qrtKucxXSJkD4ebopFZYP0q1+3Vb2WECWv/T8yQEgKxDxJ7ztO285tAMaYZVR6mM1GgI6CCn8FROtL1w==" - }, - "regl-error2d": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/regl-error2d/-/regl-error2d-2.0.11.tgz", - "integrity": "sha512-Bv4DbLtDU69GXPSm+NvlVWzT82oQ8M2FK+SxzkyaYMlA9izZRdLmDADqBSyJTnPWiRT4a/2KA+MP+WI0N0yt7Q==", - "requires": { - "array-bounds": "^1.0.1", - "color-normalize": "^1.5.0", - "flatten-vertex-data": "^1.0.2", - "object-assign": "^4.1.1", - "pick-by-alias": "^1.2.0", - "to-float32": "^1.0.1", - "update-diff": "^1.1.0" - } - }, - "regl-line2d": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regl-line2d/-/regl-line2d-3.1.0.tgz", - "integrity": "sha512-8dB3SyAW5zTU759LrIJdkOe128htl1xlONHrknsFl1tAxZVqTc+WO/2k9pAJDuyiKu1v/6bosiuEDOB7G3dm4w==", - "requires": { - "array-bounds": "^1.0.1", - "array-find-index": "^1.0.2", - "array-normalize": "^1.1.4", - "color-normalize": "^1.5.0", - "earcut": "^2.1.5", - "es6-weak-map": "^2.0.3", - "flatten-vertex-data": "^1.0.2", - "glslify": "^7.0.0", - "object-assign": "^4.1.1", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0", - "to-float32": "^1.0.1" - } - }, - "regl-scatter2d": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/regl-scatter2d/-/regl-scatter2d-3.2.1.tgz", - "integrity": "sha512-qxUCK5kXuoVZin2gPLXkgkBfRr3XLobVgEfn5N0fiprsb/ncTCtSNVBqP0EJgNb115R+FXte9LKA9YrFx7uBnA==", - "requires": { - "@plotly/point-cluster": "^3.1.9", - "array-range": "^1.0.1", - "array-rearrange": "^2.2.2", - "clamp": "^1.0.1", - "color-id": "^1.1.0", - "color-normalize": "^1.5.0", - "color-rgba": "^2.1.1", - "flatten-vertex-data": "^1.0.2", - "glslify": "^7.0.0", - "image-palette": "^2.1.0", - "is-iexplorer": "^1.0.0", - "object-assign": "^4.1.1", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0", - "to-float32": "^1.0.1", - "update-diff": "^1.1.0" - } - }, - "regl-splom": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/regl-splom/-/regl-splom-1.0.12.tgz", - "integrity": "sha512-LliMmAQ6wJFuPiLxZgYOFOzjhWcrIWPbS3Vf763Twl6R8eKpuUyRHZ54q+hxWGYwICHoPCBKMs7pVAJi8Iv7/w==", - "requires": { - "array-bounds": "^1.0.1", - "array-range": "^1.0.1", - "color-alpha": "^1.0.4", - "flatten-vertex-data": "^1.0.2", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0", - "raf": "^3.4.1", - "regl-scatter2d": "^3.1.9" - } - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-protobuf-schema": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", - "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", - "requires": { - "protocol-buffers-schema": "^3.3.1" - } - }, - "right-now": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz", - "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg=" - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "robust-compress": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/robust-compress/-/robust-compress-1.0.0.tgz", - "integrity": "sha1-TPYsSzGNgwhRYBK7jBF1Lzkymxs=" - }, - "robust-determinant": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/robust-determinant/-/robust-determinant-1.1.0.tgz", - "integrity": "sha1-jsrnm3nKqz509t6+IjflORon6cc=", - "requires": { - "robust-compress": "^1.0.0", - "robust-scale": "^1.0.0", - "robust-sum": "^1.0.0", - "two-product": "^1.0.0" - } - }, - "robust-dot-product": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/robust-dot-product/-/robust-dot-product-1.0.0.tgz", - "integrity": "sha1-yboBeL0sMEv9cl9Y6Inx2UYARVM=", - "requires": { - "robust-sum": "^1.0.0", - "two-product": "^1.0.0" - } - }, - "robust-in-sphere": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/robust-in-sphere/-/robust-in-sphere-1.1.3.tgz", - "integrity": "sha1-HFiD0WpOkjkpR27zSBmFe/Kpz3U=", - "requires": { - "robust-scale": "^1.0.0", - "robust-subtract": "^1.0.0", - "robust-sum": "^1.0.0", - "two-product": "^1.0.0" - } - }, - "robust-linear-solve": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/robust-linear-solve/-/robust-linear-solve-1.0.0.tgz", - "integrity": "sha1-DNasUEBpGm8qo81jEdcokFyjofE=", - "requires": { - "robust-determinant": "^1.1.0" - } - }, - "robust-orientation": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/robust-orientation/-/robust-orientation-1.1.3.tgz", - "integrity": "sha1-2v9bANO+TmByLw6cAVbvln8cIEk=", - "requires": { - "robust-scale": "^1.0.2", - "robust-subtract": "^1.0.0", - "robust-sum": "^1.0.0", - "two-product": "^1.0.2" - } - }, - "robust-product": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/robust-product/-/robust-product-1.0.0.tgz", - "integrity": "sha1-aFJQAHzbunzx3nW/9tKScBEJir4=", - "requires": { - "robust-scale": "^1.0.0", - "robust-sum": "^1.0.0" - } - }, - "robust-scale": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/robust-scale/-/robust-scale-1.0.2.tgz", - "integrity": "sha1-d1Ey7QlULQKOWLLMecBikLz3jDI=", - "requires": { - "two-product": "^1.0.2", - "two-sum": "^1.0.0" - } - }, - "robust-segment-intersect": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/robust-segment-intersect/-/robust-segment-intersect-1.0.1.tgz", - "integrity": "sha1-MlK2oPwboUreaRXMvgnLzpqrHBw=", - "requires": { - "robust-orientation": "^1.1.3" - } - }, - "robust-subtract": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/robust-subtract/-/robust-subtract-1.0.0.tgz", - "integrity": "sha1-4LFk4e2LpOOl3aRaEgODSNvtPpo=" - }, - "robust-sum": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/robust-sum/-/robust-sum-1.0.0.tgz", - "integrity": "sha1-FmRuUlKStNJdgnV6KGlV4Lv6U9k=" - }, - "rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "sane-topojson": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/sane-topojson/-/sane-topojson-4.0.0.tgz", - "integrity": "sha512-bJILrpBboQfabG3BNnHI2hZl52pbt80BE09u4WhnrmzuF2JbMKZdl62G5glXskJ46p+gxE2IzOwGj/awR4g8AA==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "shallow-copy": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", - "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=" - }, - "signum": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/signum/-/signum-0.0.0.tgz", - "integrity": "sha1-q1UbEAM1EHCnBHg/GgnF52kfnPY=" - }, - "simplicial-complex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simplicial-complex/-/simplicial-complex-1.0.0.tgz", - "integrity": "sha1-bDOk7Wn81Nkbe8rdOzC2NoPq4kE=", - "requires": { - "bit-twiddle": "^1.0.0", - "union-find": "^1.0.0" - } - }, - "simplicial-complex-boundary": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simplicial-complex-boundary/-/simplicial-complex-boundary-1.0.1.tgz", - "integrity": "sha1-csn/HiTeqjdMm7L6DL8MCB6++BU=", - "requires": { - "boundary-cells": "^2.0.0", - "reduce-simplicial-complex": "^1.0.0" - } - }, - "simplicial-complex-contour": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/simplicial-complex-contour/-/simplicial-complex-contour-1.0.2.tgz", - "integrity": "sha1-iQqsrChDZTQBEFRc8mKaJuBL+dE=", - "requires": { - "marching-simplex-table": "^1.0.0", - "ndarray": "^1.0.15", - "ndarray-sort": "^1.0.0", - "typedarray-pool": "^1.1.0" - } - }, - "simplify-planar-graph": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/simplify-planar-graph/-/simplify-planar-graph-2.0.1.tgz", - "integrity": "sha1-vIWJNyXzLo+oriVoE5hEbSy892Y=", - "requires": { - "robust-orientation": "^1.0.1", - "simplicial-complex": "^0.3.3" - }, - "dependencies": { - "bit-twiddle": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-0.0.2.tgz", - "integrity": "sha1-wurruVKjuUrMFASX4c3NLxoz9Y4=" - }, - "simplicial-complex": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/simplicial-complex/-/simplicial-complex-0.3.3.tgz", - "integrity": "sha1-TDDK1X+eRXKd2PMGyHU1efRr6Z4=", - "requires": { - "bit-twiddle": "~0.0.1", - "union-find": "~0.0.3" - } - }, - "union-find": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/union-find/-/union-find-0.0.4.tgz", - "integrity": "sha1-uFSzMBYZva0USwAUx4+W6sDS8PY=" - } - } - }, - "slab-decomposition": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/slab-decomposition/-/slab-decomposition-1.0.2.tgz", - "integrity": "sha1-He1WdU1AixBznxRRA9/GGAf2UTQ=", - "requires": { - "binary-search-bounds": "^1.0.0", - "functional-red-black-tree": "^1.0.0", - "robust-orientation": "^1.1.3" - }, - "dependencies": { - "binary-search-bounds": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-1.0.0.tgz", - "integrity": "sha1-MjyjF+PypA9CRMclX1OEpbIHu2k=" - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", - "dev": true - }, - "split-polygon": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/split-polygon/-/split-polygon-1.0.0.tgz", - "integrity": "sha1-DqzIoTanaxKj2VJW6n2kXbDC0kc=", - "requires": { - "robust-dot-product": "^1.0.0", - "robust-sum": "^1.0.0" - } - }, - "sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" - }, - "stack-trace": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", - "integrity": "sha1-qPbq7KkGdMMz58Q5U/J1tFFRBpU=" - }, - "static-eval": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.0.tgz", - "integrity": "sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==", - "requires": { - "escodegen": "^1.11.1" - } - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" - }, - "string-split-by": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string-split-by/-/string-split-by-1.0.0.tgz", - "integrity": "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==", - "requires": { - "parenthesis": "^3.1.5" - } - }, - "string-to-arraybuffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-to-arraybuffer/-/string-to-arraybuffer-1.0.2.tgz", - "integrity": "sha512-DaGZidzi93dwjQen5I2osxR9ERS/R7B1PFyufNMnzhj+fmlDQAc1DSDIJVJhgI8Oq221efIMbABUBdPHDRt43Q==", - "requires": { - "atob-lite": "^2.0.0", - "is-base64": "^0.1.0" - }, - "dependencies": { - "atob-lite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz", - "integrity": "sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY=" - } - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "strongly-connected-components": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strongly-connected-components/-/strongly-connected-components-1.0.1.tgz", - "integrity": "sha1-CSDitN9nyOrulsa2I0/inoc9upk=" - }, - "supercluster": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.0.tgz", - "integrity": "sha512-LDasImUAFMhTqhK+cUXfy9C2KTUqJ3gucLjmNLNFmKWOnDUBxLFLH9oKuXOTCLveecmxh8fbk8kgh6Q0gsfe2w==", - "requires": { - "kdbush": "^3.0.0" - } - }, - "superscript-text": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/superscript-text/-/superscript-text-1.0.0.tgz", - "integrity": "sha1-58snUlZzYN9QvrBhDOjfPXHY39g=" - }, - "surface-nets": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/surface-nets/-/surface-nets-1.0.2.tgz", - "integrity": "sha1-5DPIy7qUpydMb0yZVStGG/H8eks=", - "requires": { - "ndarray-extract-contour": "^1.0.0", - "triangulate-hypercube": "^1.0.0", - "zero-crossings": "^1.0.0" - } - }, - "svg-arc-to-cubic-bezier": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz", - "integrity": "sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==" - }, - "svg-path-bounds": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/svg-path-bounds/-/svg-path-bounds-1.0.1.tgz", - "integrity": "sha1-v0WLeDcmv1NDG0Yz8nkvYHSNn3Q=", - "requires": { - "abs-svg-path": "^0.1.1", - "is-svg-path": "^1.0.1", - "normalize-svg-path": "^1.0.0", - "parse-svg-path": "^0.1.2" - }, - "dependencies": { - "normalize-svg-path": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-1.1.0.tgz", - "integrity": "sha512-r9KHKG2UUeB5LoTouwDzBy2VxXlHsiM6fyLQvnJa0S5hrhzqElH/CH7TUGhT1fVvIYBIKf3OpY4YJ4CK+iaqHg==", - "requires": { - "svg-arc-to-cubic-bezier": "^3.0.0" - } - } - } - }, - "svg-path-sdf": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/svg-path-sdf/-/svg-path-sdf-1.1.3.tgz", - "integrity": "sha512-vJJjVq/R5lSr2KLfVXVAStktfcfa1pNFjFOgyJnzZFXlO/fDZ5DmM8FpnSKKzLPfEYTVeXuVBTHF296TpxuJVg==", - "requires": { - "bitmap-sdf": "^1.0.0", - "draw-svg-path": "^1.0.0", - "is-svg-path": "^1.0.1", - "parse-svg-path": "^0.1.2", - "svg-path-bounds": "^1.0.1" - } - }, - "text-cache": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/text-cache/-/text-cache-4.2.2.tgz", - "integrity": "sha512-zky+UDYiX0a/aPw/YTBD+EzKMlCTu1chFuCMZeAkgoRiceySdROu1V2kJXhCbtEdBhiOviYnAdGiSYl58HW0ZQ==", - "requires": { - "vectorize-text": "^3.2.1" - } - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "requires": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - }, - "tinycolor2": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", - "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==" - }, - "tinyqueue": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", - "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" - }, - "to-array-buffer": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/to-array-buffer/-/to-array-buffer-3.2.0.tgz", - "integrity": "sha512-zN33mwi0gpL+7xW1ITLfJ48CEj6ZQW0ZAP0MU+2W3kEY0PAIncyuxmD4OqkUVhPAbTP7amq9j/iwvZKYS+lzSQ==", - "requires": { - "flatten-vertex-data": "^1.0.2", - "is-blob": "^2.0.1", - "string-to-arraybuffer": "^1.0.0" - } - }, - "to-float32": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-float32/-/to-float32-1.0.1.tgz", - "integrity": "sha512-nOy2WSwae3xhZbc+05xiCuU3ZPPmH0L4Rg4Q1qiOGFSuNSCTB9nVJaGgGl3ZScxAclX/L8hJuDHJGDAzbfuKCQ==" - }, - "to-px": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-px/-/to-px-1.0.1.tgz", - "integrity": "sha1-W7rtXl1PdkRbzJA8KTojB90yRkY=", - "requires": { - "parse-unit": "^1.0.1" - } - }, - "to-uint8": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/to-uint8/-/to-uint8-1.4.1.tgz", - "integrity": "sha512-o+ochsMlTZyucbww8It401FC2Rx+OP2RpDeYbA6h+y9HgedDl1UjdsJ9CmzKEG7AFP9es5PmJ4eDWeeeXihESg==", - "requires": { - "arr-flatten": "^1.1.0", - "clamp": "^1.0.1", - "is-base64": "^0.1.0", - "is-float-array": "^1.0.0", - "to-array-buffer": "^3.0.0" - } - }, - "topojson-client": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", - "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", - "requires": { - "commander": "2" - } - }, - "triangulate-hypercube": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/triangulate-hypercube/-/triangulate-hypercube-1.0.1.tgz", - "integrity": "sha1-2Acdsuv8/VHzCNC88qXEils20Tc=", - "requires": { - "gamma": "^0.1.0", - "permutation-parity": "^1.0.0", - "permutation-rank": "^1.0.0" - } - }, - "triangulate-polyline": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/triangulate-polyline/-/triangulate-polyline-1.0.3.tgz", - "integrity": "sha1-v4uod6hQVBA/65+lphtOjXAXgU0=", - "requires": { - "cdt2d": "^1.0.0" - } - }, - "turntable-camera-controller": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/turntable-camera-controller/-/turntable-camera-controller-3.0.1.tgz", - "integrity": "sha1-jb0/4AVQGRxlFky4iJcQSVeK/Zk=", - "requires": { - "filtered-vector": "^1.2.1", - "gl-mat4": "^1.0.2", - "gl-vec3": "^1.0.2" - } - }, - "two-product": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/two-product/-/two-product-1.0.2.tgz", - "integrity": "sha1-Z9ldSyV6kh4stL16+VEfkIhSLqo=" - }, - "two-sum": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/two-sum/-/two-sum-1.0.0.tgz", - "integrity": "sha1-MdPzIjnk9zHsqd+RVeKyl/AIq2Q=" - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/type-name/-/type-name-2.0.2.tgz", - "integrity": "sha1-7+fUEj2KxSr/9/QMfk3sUmYAj7Q=" - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "typedarray-pool": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/typedarray-pool/-/typedarray-pool-1.2.0.tgz", - "integrity": "sha512-YTSQbzX43yvtpfRtIDAYygoYtgT+Rpjuxy9iOpczrjpXLgGoyG7aS5USJXV2d3nn8uHTeb9rXDvzS27zUg5KYQ==", - "requires": { - "bit-twiddle": "^1.0.0", - "dup": "^1.0.0" - } - }, - "typescript": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.5.tgz", - "integrity": "sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==", - "dev": true - }, - "union-find": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/union-find/-/union-find-1.0.2.tgz", - "integrity": "sha1-KSusQV5q06iVNdI3AQ20pTYoTlg=" - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" - }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" - }, - "update-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-diff/-/update-diff-1.1.0.tgz", - "integrity": "sha1-9RAYLYHugZ+4LDprIrYrve2ngI8=" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utils-copy": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/utils-copy/-/utils-copy-1.1.1.tgz", - "integrity": "sha1-biuXmCqozXPhGCo+b4vsPA9AWKc=", - "requires": { - "const-pinf-float64": "^1.0.0", - "object-keys": "^1.0.9", - "type-name": "^2.0.0", - "utils-copy-error": "^1.0.0", - "utils-indexof": "^1.0.0", - "utils-regex-from-string": "^1.0.0", - "validate.io-array": "^1.0.3", - "validate.io-buffer": "^1.0.1", - "validate.io-nonnegative-integer": "^1.0.0" - } - }, - "utils-copy-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-copy-error/-/utils-copy-error-1.0.1.tgz", - "integrity": "sha1-eR3jk8DwmJCv1Z88vqY18HmpT6U=", - "requires": { - "object-keys": "^1.0.9", - "utils-copy": "^1.1.0" - } - }, - "utils-indexof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/utils-indexof/-/utils-indexof-1.0.0.tgz", - "integrity": "sha1-IP6r8J7xAYtSNkPoOA57yD7GG1w=", - "requires": { - "validate.io-array-like": "^1.0.1", - "validate.io-integer-primitive": "^1.0.0" - } - }, - "utils-regex-from-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/utils-regex-from-string/-/utils-regex-from-string-1.0.0.tgz", - "integrity": "sha1-/hopCfjeD/DVGCyA+8ZU1qaH0Yk=", - "requires": { - "regex-regex": "^1.0.0", - "validate.io-string-primitive": "^1.0.0" - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "validate.io-array": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/validate.io-array/-/validate.io-array-1.0.6.tgz", - "integrity": "sha1-W1osr9j4uFq7L4hroVPy2Tond00=" - }, - "validate.io-array-like": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/validate.io-array-like/-/validate.io-array-like-1.0.2.tgz", - "integrity": "sha1-evn363tRcVvrIhVmjsXM5U+t21o=", - "requires": { - "const-max-uint32": "^1.0.2", - "validate.io-integer-primitive": "^1.0.0" - } - }, - "validate.io-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/validate.io-buffer/-/validate.io-buffer-1.0.2.tgz", - "integrity": "sha1-hS1nNAIZFNXROvwyUxdh43IO1E4=" - }, - "validate.io-integer": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/validate.io-integer/-/validate.io-integer-1.0.5.tgz", - "integrity": "sha1-FoSWSAuVviJH7EQ/IjPeT4mHgGg=", - "requires": { - "validate.io-number": "^1.0.3" - } - }, - "validate.io-integer-primitive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/validate.io-integer-primitive/-/validate.io-integer-primitive-1.0.0.tgz", - "integrity": "sha1-qaoBA1X+hoHA/qbBp0rSQZyt3cY=", - "requires": { - "validate.io-number-primitive": "^1.0.0" - } - }, - "validate.io-matrix-like": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/validate.io-matrix-like/-/validate.io-matrix-like-1.0.2.tgz", - "integrity": "sha1-XsMqddCInaxzbepovdYUWxVe38M=" - }, - "validate.io-ndarray-like": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/validate.io-ndarray-like/-/validate.io-ndarray-like-1.0.0.tgz", - "integrity": "sha1-2KOw7RZbvx0vwNAHMnDPpVIpWRk=" - }, - "validate.io-nonnegative-integer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/validate.io-nonnegative-integer/-/validate.io-nonnegative-integer-1.0.0.tgz", - "integrity": "sha1-gGkkOgjF+Y6VQTySnf17GPP28p8=", - "requires": { - "validate.io-integer": "^1.0.5" - } - }, - "validate.io-number": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/validate.io-number/-/validate.io-number-1.0.3.tgz", - "integrity": "sha1-9j/+2iSL8opnqNSODjtGGhZluvg=" - }, - "validate.io-number-primitive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/validate.io-number-primitive/-/validate.io-number-primitive-1.0.0.tgz", - "integrity": "sha1-0uAfICmJNp3PEVVElWQgOv5YTlU=" - }, - "validate.io-positive-integer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/validate.io-positive-integer/-/validate.io-positive-integer-1.0.0.tgz", - "integrity": "sha1-ftLQO0wnVYzGagCqsPDpIYFKZYI=", - "requires": { - "validate.io-integer": "^1.0.5" - } - }, - "validate.io-string-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/validate.io-string-primitive/-/validate.io-string-primitive-1.0.1.tgz", - "integrity": "sha1-uBNbn7E3K94C/dU60dDM1t55j+4=" - }, - "vectorize-text": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/vectorize-text/-/vectorize-text-3.2.1.tgz", - "integrity": "sha512-rGojF+D9BB96iPZPUitfq5kaiS6eCJmfEel0NXOK/MzZSuXGiwhoop80PtaDas9/Hg/oaox1tI9g3h93qpuspg==", - "requires": { - "cdt2d": "^1.0.0", - "clean-pslg": "^1.1.0", - "ndarray": "^1.0.11", - "planar-graph-to-polyline": "^1.0.0", - "simplify-planar-graph": "^2.0.1", - "surface-nets": "^1.0.0", - "triangulate-polyline": "^1.0.0" - } - }, - "vt-pbf": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.1.tgz", - "integrity": "sha512-pHjWdrIoxurpmTcbfBWXaPwSmtPAHS105253P1qyEfSTV2HJddqjM+kIHquaT/L6lVJIk9ltTGc0IxR/G47hYA==", - "requires": { - "@mapbox/point-geometry": "0.1.0", - "@mapbox/vector-tile": "^1.3.1", - "pbf": "^3.0.5" - } - }, - "weak-map": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.5.tgz", - "integrity": "sha1-eWkVhNmGB/UHC9O3CkDmuyLkAes=" - }, - "weakmap-shim": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/weakmap-shim/-/weakmap-shim-1.1.1.tgz", - "integrity": "sha1-1lr9eEEJshZuAP9XHDMVDsKkC0k=" - }, - "webgl-context": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/webgl-context/-/webgl-context-2.2.0.tgz", - "integrity": "sha1-jzfXJXz23xzQpJ5qextyG5TMhqA=", - "requires": { - "get-canvas-context": "^1.0.1" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" - }, - "world-calendars": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/world-calendars/-/world-calendars-1.0.3.tgz", - "integrity": "sha1-slxQMrokEo/8QdCfr0pewbnBQzU=", - "requires": { - "object-assign": "^4.1.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "zero-crossings": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/zero-crossings/-/zero-crossings-1.0.1.tgz", - "integrity": "sha1-xWK9MRNkPzRDokXRJAa4i2m5qf8=", - "requires": { - "cwise-compiler": "^1.0.0" - } - } - } -} diff --git a/packages/javascript/jupyterlab-plotly/package.json b/packages/javascript/jupyterlab-plotly/package.json deleted file mode 100644 index b7900f17b3..0000000000 --- a/packages/javascript/jupyterlab-plotly/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "jupyterlab-plotly", - "version": "4.14.3", - "description": "The plotly JupyterLab extension", - "author": "The plotly.py team", - "license": "MIT", - "main": "src/index.js", - "repository": { - "type": "git", - "url": "https://github.com/plotly/plotly.py" - }, - "keywords": [ - "jupyter", - "ipython", - "plotly" - ], - "files": [ - "src/**/*.js", - "dist/*.js", - "style/*.*" - ], - "scripts": { - "build": "npm run build:src", - "build:src": "rimraf dist && tsc", - "clean": "rimraf dist/", - "test": "echo \"Error: no test specified\" && exit 1" - }, - "devDependencies": { - "rimraf": "^2.6.1", - "ify-loader": "^1.1.0", - "typescript": "~3.7.0" - }, - "dependencies": { - "plotly.js": "^1.58.4", - "@types/plotly.js": "1.44.28", - "@jupyterlab/rendermime-interfaces": "^1.3.0 || ^2.0.0 || ^3.0.0", - "@lumino/messaging": "^1.2.3", - "@lumino/widgets": "^1.8.1", - "lodash": "^4.17.4" - }, - "jupyterlab": { - "mimeExtension": "dist/javascript-renderer-extension.js" - } -} diff --git a/packages/javascript/jupyterlab-plotly/src/lib.d.ts b/packages/javascript/jupyterlab-plotly/src/lib.d.ts deleted file mode 100644 index 878636a697..0000000000 --- a/packages/javascript/jupyterlab-plotly/src/lib.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -declare module "plotly.js/dist/plotly" { - export * from "plotly.js"; - export type Frame = { [key: string]: any }; - export function addFrames(root: Plotly.Root, frames: Frame[]): Promise; - export function animate(root: Plotly.Root): void; - - export interface PlotlyHTMLElement extends HTMLElement { - on(event: "plotly_webglcontextlost", callback: () => void): void; - } -} diff --git a/packages/javascript/plotlywidget/package-lock.json b/packages/javascript/plotlywidget/package-lock.json index 51b4a441e2..1b6a8ae052 100644 --- a/packages/javascript/plotlywidget/package-lock.json +++ b/packages/javascript/plotlywidget/package-lock.json @@ -22,12 +22,18 @@ "commander": "^2.15.1" } }, + "@discoveryjs/json-ext": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz", + "integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==", + "dev": true + }, "@jupyter-widgets/base": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@jupyter-widgets/base/-/base-3.0.0.tgz", - "integrity": "sha512-un1ZTHALCwE/SAYk2gEaonYM1JoaFyhosN8a3y2bhl4N26yCB3dP1PqGHLsAFur6ZB7fwuWwBEkIZx+nOwstAQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@jupyter-widgets/base/-/base-4.0.0.tgz", + "integrity": "sha512-lBQgLYzq6C+XjfVJTidk+rckKo/+xlTgIm1XUtACA3BUz8bgi2du2zmbYkcrplJMwGub4QWP6GnKgM5ZZRhzYg==", "requires": { - "@jupyterlab/services": "^5.0.0", + "@jupyterlab/services": "^6.0.0", "@lumino/coreutils": "^1.2.0", "@lumino/messaging": "^1.2.1", "@lumino/widgets": "^1.3.0", @@ -39,201 +45,737 @@ "lodash": "^4.17.4" } }, + "@jupyterlab/builder": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@jupyterlab/builder/-/builder-3.0.7.tgz", + "integrity": "sha512-WSUT4F4ywbKDXvLcIyz0VSnduQxYOD4C1SC2rJwBHl+ZXM23vDydo8J7CHrk1N3ZJCXCodTOg6z9YEKfbObzWA==", + "dev": true, + "requires": { + "@jupyterlab/buildutils": "^3.0.5", + "@lumino/algorithm": "^1.3.3", + "@lumino/application": "^1.13.1", + "@lumino/commands": "^1.12.0", + "@lumino/coreutils": "^1.5.3", + "@lumino/disposable": "^1.4.3", + "@lumino/domutils": "^1.2.3", + "@lumino/dragdrop": "^1.7.1", + "@lumino/messaging": "^1.4.3", + "@lumino/properties": "^1.2.3", + "@lumino/signaling": "^1.4.3", + "@lumino/virtualdom": "^1.8.0", + "@lumino/widgets": "^1.16.1", + "ajv": "^6.12.3", + "commander": "~6.0.0", + "css-loader": "^5.0.1", + "duplicate-package-checker-webpack-plugin": "^3.0.0", + "file-loader": "~6.0.0", + "fs-extra": "^9.0.1", + "glob": "~7.1.6", + "mini-css-extract-plugin": "~1.3.2", + "path-browserify": "^1.0.0", + "process": "^0.11.10", + "raw-loader": "~4.0.0", + "style-loader": "~2.0.0", + "supports-color": "^7.2.0", + "svg-url-loader": "~6.0.0", + "terser-webpack-plugin": "^4.1.0", + "to-string-loader": "^1.1.6", + "url-loader": "~4.1.0", + "webpack": "^5.3.1", + "webpack-cli": "^4.1.0", + "webpack-merge": "^5.1.2", + "worker-loader": "^3.0.2" + }, + "dependencies": { + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + }, + "commander": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.0.0.tgz", + "integrity": "sha512-s7EA+hDtTYNhuXkTlhqew4txMZVdszBmKWSPEMxGr8ru8JXR7bLUFIAtPhcSuFdJQ0ILMxnJi8GkQL0yvDy/YA==", + "dev": true + }, + "css-loader": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.0.tgz", + "integrity": "sha512-MfRo2MjEeLXMlUkeUwN71Vx5oc6EJnx5UQ4Yi9iUtYQvrPtwLUucYptz0hc6n++kdNcyF5olYBS4vPjJDAcLkw==", + "dev": true, + "requires": { + "camelcase": "^6.2.0", + "cssesc": "^3.0.0", + "icss-utils": "^5.1.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.8", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^3.0.0", + "semver": "^7.3.4" + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "postcss": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.9.tgz", + "integrity": "sha512-b+TmuIL4jGtCHtoLi+G/PisuIl9avxs8IZMSmlABRwNz5RLUUACrC+ws81dcomz1nRezm5YPdXiMEzBEKgYn+Q==", + "dev": true, + "requires": { + "colorette": "^1.2.2", + "nanoid": "^3.1.22", + "source-map": "^0.6.1" + } + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "style-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz", + "integrity": "sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, + "@jupyterlab/buildutils": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jupyterlab/buildutils/-/buildutils-3.0.5.tgz", + "integrity": "sha512-D+qx7a2S8qbHlHu+xOi1fw47FzDy89aZQ/ubELm3G+uDEtSVuP2rrVBwIeVq+QjahPt7DzP5z9zkhkiPaLWCtg==", + "dev": true, + "requires": { + "@lumino/coreutils": "^1.5.3", + "@yarnpkg/lockfile": "^1.1.0", + "child_process": "~1.0.2", + "commander": "~6.0.0", + "crypto": "~1.0.1", + "dependency-graph": "^0.9.0", + "fs-extra": "^9.0.1", + "glob": "~7.1.6", + "inquirer": "^7.0.0", + "package-json": "^6.5.0", + "prettier": "^2.1.1", + "semver": "^7.3.2", + "sort-package-json": "~1.44.0", + "typescript": "~4.1.3" + }, + "dependencies": { + "commander": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.0.0.tgz", + "integrity": "sha512-s7EA+hDtTYNhuXkTlhqew4txMZVdszBmKWSPEMxGr8ru8JXR7bLUFIAtPhcSuFdJQ0ILMxnJi8GkQL0yvDy/YA==", + "dev": true + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, "@jupyterlab/coreutils": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@jupyterlab/coreutils/-/coreutils-4.1.0.tgz", - "integrity": "sha512-2lcXHd8ZCUuqoiZYK9Xs4HHX46jkdtsdmfgvgg/3odFXFMdv4Twau7fqr9URgRl5JYszPPpItGJIorAVipVfNQ==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@jupyterlab/coreutils/-/coreutils-5.0.4.tgz", + "integrity": "sha512-tmcyHk/mQ9YFgSwqWf1xJ4UrYtXBGCeR7K0bRmEwKrETGvTHNS4vqrT3D0pdSvpHdJ6cDienKE6v7ia0GYMAFw==", "requires": { - "@lumino/coreutils": "^1.4.2", - "@lumino/disposable": "^1.3.5", - "@lumino/signaling": "^1.3.5", + "@lumino/coreutils": "^1.5.3", + "@lumino/disposable": "^1.4.3", + "@lumino/signaling": "^1.4.3", "minimist": "~1.2.0", "moment": "^2.24.0", - "path-posix": "~1.0.0", + "path-browserify": "^1.0.0", "url-parse": "~1.4.7" } }, "@jupyterlab/nbformat": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@jupyterlab/nbformat/-/nbformat-2.1.0.tgz", - "integrity": "sha512-4NybeAvLTpGLZguARl6g4ENGzIPYwUaU+CZpcH2H0vq47oXrzRrZMsiWq5Dufrn0sIhOD9CINHXJ9mxIYzj/JA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@jupyterlab/nbformat/-/nbformat-3.0.4.tgz", + "integrity": "sha512-r+qZqlp4785OF+RDnvx8GvjxbAzQJcpQsV8274ZBGzunimn6NZskLlXgn2jddXExErwUwHfx9Z/n6D73FxcMEA==", "requires": { - "@lumino/coreutils": "^1.4.2" + "@lumino/coreutils": "^1.5.3" } }, "@jupyterlab/observables": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jupyterlab/observables/-/observables-3.1.0.tgz", - "integrity": "sha512-4Dx6o5BzHVdWFFUPTAaeUkGngJfy5Qm0N37lbh/2NcWz1NZuuC6SrgREW3zcLSKwxdwkMAXo6En0T1UyrCFjTA==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@jupyterlab/observables/-/observables-4.0.4.tgz", + "integrity": "sha512-i4ccUgGYtNDHw8RRM9rwkSYBN+LfSsK+uk8A/MbbSAb1MJaJMs+uqgq2TIzq9j9Vp6Akp3BT6udtWntcR2XH0Q==", + "requires": { + "@lumino/algorithm": "^1.3.3", + "@lumino/coreutils": "^1.5.3", + "@lumino/disposable": "^1.4.3", + "@lumino/messaging": "^1.4.3", + "@lumino/signaling": "^1.4.3" + } + }, + "@jupyterlab/rendermime-interfaces": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@jupyterlab/rendermime-interfaces/-/rendermime-interfaces-3.0.6.tgz", + "integrity": "sha512-T+1k9zIi94cILhs/w6tQTs6eHVornTu2t1HDAnEnFErdSSfckEvrN0uADh5JVNK3/ng+YXWQTqcMZ+xUbQvjbA==", "requires": { - "@lumino/algorithm": "^1.2.3", - "@lumino/coreutils": "^1.4.2", - "@lumino/disposable": "^1.3.5", - "@lumino/messaging": "^1.3.3", - "@lumino/signaling": "^1.3.5" + "@jupyterlab/translation": "^3.0.6", + "@lumino/coreutils": "^1.5.3", + "@lumino/widgets": "^1.16.1" } }, "@jupyterlab/services": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@jupyterlab/services/-/services-5.1.0.tgz", - "integrity": "sha512-xhtDvAdgw+sWNSbpkExCYyJbHxlwhiZYqc07+zhOdYrpxO19k/ZmmyNoYCyfvNLcMQ4JWVBoczI714u1QNLj4w==", - "requires": { - "@jupyterlab/coreutils": "^4.1.0", - "@jupyterlab/nbformat": "^2.1.0", - "@jupyterlab/observables": "^3.1.0", - "@jupyterlab/settingregistry": "^2.1.0", - "@jupyterlab/statedb": "^2.1.0", - "@lumino/algorithm": "^1.2.3", - "@lumino/coreutils": "^1.4.2", - "@lumino/disposable": "^1.3.5", - "@lumino/polling": "^1.1.1", - "@lumino/signaling": "^1.3.5", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/@jupyterlab/services/-/services-6.0.6.tgz", + "integrity": "sha512-eXBemN7LiJWPtUMMDD1h6Tqb27QljxOiXCp18hihHRKUa5uVMmO33DfoKpglwfZvQC6Vz0yv/FnAGMd90IjdMw==", + "requires": { + "@jupyterlab/coreutils": "^5.0.4", + "@jupyterlab/nbformat": "^3.0.4", + "@jupyterlab/observables": "^4.0.4", + "@jupyterlab/settingregistry": "^3.0.4", + "@jupyterlab/statedb": "^3.0.4", + "@lumino/algorithm": "^1.3.3", + "@lumino/coreutils": "^1.5.3", + "@lumino/disposable": "^1.4.3", + "@lumino/polling": "^1.3.3", + "@lumino/signaling": "^1.4.3", "node-fetch": "^2.6.0", "ws": "^7.2.0" } }, "@jupyterlab/settingregistry": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@jupyterlab/settingregistry/-/settingregistry-2.1.0.tgz", - "integrity": "sha512-FkWKcg+7d4iWz/u7am3kmRWraJiVE5uidvzADE/PfByGhYQnwJ0ROjyJwaf/GFJv7yJZewxyr7Q4JXVuoIZwPg==", - "requires": { - "@jupyterlab/statedb": "^2.1.0", - "@lumino/commands": "^1.10.1", - "@lumino/coreutils": "^1.4.2", - "@lumino/disposable": "^1.3.5", - "@lumino/signaling": "^1.3.5", - "ajv": "^6.10.2", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@jupyterlab/settingregistry/-/settingregistry-3.0.4.tgz", + "integrity": "sha512-hEl9YUXOTL/pk4mhADVCTHmqqnn8byE+MluKCoXgiDpdMmUlHrk4rzYVxoF1Yeo2ZjMm4FfdzPEYQs0vF1Cbxg==", + "requires": { + "@jupyterlab/statedb": "^3.0.4", + "@lumino/commands": "^1.12.0", + "@lumino/coreutils": "^1.5.3", + "@lumino/disposable": "^1.4.3", + "@lumino/signaling": "^1.4.3", + "ajv": "^6.12.3", "json5": "^2.1.1" } }, "@jupyterlab/statedb": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@jupyterlab/statedb/-/statedb-2.1.0.tgz", - "integrity": "sha512-3L0NGJvNeI2KeU6jrY97riEmxcKtHb1WRxbMU9ORIppR5Sb5x3K3qErep7r9qu0lV7XH9Zb95uMukX4bgj2GaA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@jupyterlab/statedb/-/statedb-3.0.4.tgz", + "integrity": "sha512-dyE9oNx6JL60/u9edv2bZ3YzalidZcBbtjZx/KkY2XrWuNVlBLC/wHcGQwsUIxRBu41jp2VeIbsHdXNI5q2CwA==", + "requires": { + "@lumino/commands": "^1.12.0", + "@lumino/coreutils": "^1.5.3", + "@lumino/disposable": "^1.4.3", + "@lumino/properties": "^1.2.3", + "@lumino/signaling": "^1.4.3" + } + }, + "@jupyterlab/translation": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@jupyterlab/translation/-/translation-3.0.6.tgz", + "integrity": "sha512-A37AyoGb9WckW132QGLUz7+9vCCepl9Fu1PC5MXJzidemNlTRLvJneihvlL09sJfq/HzlWflmvAyjC/qqkiQ5Q==", "requires": { - "@lumino/commands": "^1.10.1", - "@lumino/coreutils": "^1.4.2", - "@lumino/disposable": "^1.3.5", - "@lumino/properties": "^1.1.6", - "@lumino/signaling": "^1.3.5" + "@jupyterlab/coreutils": "^5.0.4", + "@jupyterlab/services": "^6.0.6", + "@jupyterlab/statedb": "^3.0.4", + "@lumino/coreutils": "^1.5.3" + }, + "dependencies": { + "@jupyterlab/coreutils": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@jupyterlab/coreutils/-/coreutils-5.0.4.tgz", + "integrity": "sha512-tmcyHk/mQ9YFgSwqWf1xJ4UrYtXBGCeR7K0bRmEwKrETGvTHNS4vqrT3D0pdSvpHdJ6cDienKE6v7ia0GYMAFw==", + "requires": { + "@lumino/coreutils": "^1.5.3", + "@lumino/disposable": "^1.4.3", + "@lumino/signaling": "^1.4.3", + "minimist": "~1.2.0", + "moment": "^2.24.0", + "path-browserify": "^1.0.0", + "url-parse": "~1.4.7" + } + }, + "@jupyterlab/nbformat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@jupyterlab/nbformat/-/nbformat-3.0.4.tgz", + "integrity": "sha512-r+qZqlp4785OF+RDnvx8GvjxbAzQJcpQsV8274ZBGzunimn6NZskLlXgn2jddXExErwUwHfx9Z/n6D73FxcMEA==", + "requires": { + "@lumino/coreutils": "^1.5.3" + } + }, + "@jupyterlab/observables": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@jupyterlab/observables/-/observables-4.0.4.tgz", + "integrity": "sha512-i4ccUgGYtNDHw8RRM9rwkSYBN+LfSsK+uk8A/MbbSAb1MJaJMs+uqgq2TIzq9j9Vp6Akp3BT6udtWntcR2XH0Q==", + "requires": { + "@lumino/algorithm": "^1.3.3", + "@lumino/coreutils": "^1.5.3", + "@lumino/disposable": "^1.4.3", + "@lumino/messaging": "^1.4.3", + "@lumino/signaling": "^1.4.3" + } + }, + "@jupyterlab/services": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/@jupyterlab/services/-/services-6.0.6.tgz", + "integrity": "sha512-eXBemN7LiJWPtUMMDD1h6Tqb27QljxOiXCp18hihHRKUa5uVMmO33DfoKpglwfZvQC6Vz0yv/FnAGMd90IjdMw==", + "requires": { + "@jupyterlab/coreutils": "^5.0.4", + "@jupyterlab/nbformat": "^3.0.4", + "@jupyterlab/observables": "^4.0.4", + "@jupyterlab/settingregistry": "^3.0.4", + "@jupyterlab/statedb": "^3.0.4", + "@lumino/algorithm": "^1.3.3", + "@lumino/coreutils": "^1.5.3", + "@lumino/disposable": "^1.4.3", + "@lumino/polling": "^1.3.3", + "@lumino/signaling": "^1.4.3", + "node-fetch": "^2.6.0", + "ws": "^7.2.0" + } + }, + "@jupyterlab/settingregistry": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@jupyterlab/settingregistry/-/settingregistry-3.0.4.tgz", + "integrity": "sha512-hEl9YUXOTL/pk4mhADVCTHmqqnn8byE+MluKCoXgiDpdMmUlHrk4rzYVxoF1Yeo2ZjMm4FfdzPEYQs0vF1Cbxg==", + "requires": { + "@jupyterlab/statedb": "^3.0.4", + "@lumino/commands": "^1.12.0", + "@lumino/coreutils": "^1.5.3", + "@lumino/disposable": "^1.4.3", + "@lumino/signaling": "^1.4.3", + "ajv": "^6.12.3", + "json5": "^2.1.1" + } + }, + "@jupyterlab/statedb": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@jupyterlab/statedb/-/statedb-3.0.4.tgz", + "integrity": "sha512-dyE9oNx6JL60/u9edv2bZ3YzalidZcBbtjZx/KkY2XrWuNVlBLC/wHcGQwsUIxRBu41jp2VeIbsHdXNI5q2CwA==", + "requires": { + "@lumino/commands": "^1.12.0", + "@lumino/coreutils": "^1.5.3", + "@lumino/disposable": "^1.4.3", + "@lumino/properties": "^1.2.3", + "@lumino/signaling": "^1.4.3" + } + } } }, "@lumino/algorithm": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@lumino/algorithm/-/algorithm-1.3.2.tgz", - "integrity": "sha512-r2pfLvv0oamOK+iGJgvfpoFupJs656adSXiWZlUVO2TnHzlooHtzdF2NiOygCd9++gukcNOv/lSY2Gmun6lunw==" + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@lumino/algorithm/-/algorithm-1.3.3.tgz", + "integrity": "sha512-I2BkssbOSLq3rDjgAC3fzf/zAIwkRUnAh60MO0lYcaFdSGyI15w4K3gwZHGIO0p9cKEiNHLXKEODGmOjMLOQ3g==" + }, + "@lumino/application": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@lumino/application/-/application-1.17.0.tgz", + "integrity": "sha512-g5aCFrVxwbYv4dhmQxGaiKDm2Sd768r0qhBPb2f5HhHOSCj6M/ygSedwHvE8LKixYz6sHNj5yEJAbSLssaH7Cw==", + "dev": true, + "requires": { + "@lumino/commands": "^1.13.0", + "@lumino/coreutils": "^1.6.0", + "@lumino/widgets": "^1.20.0" + }, + "dependencies": { + "@lumino/algorithm": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@lumino/algorithm/-/algorithm-1.4.0.tgz", + "integrity": "sha512-ptFtwall4bCmK+0WQiCin7pY10GphgZU9cupF8SCXYS/nUkQaV60mvWhB8V3WNQf/fOBawzU3hygdXGthfHK9A==", + "dev": true + }, + "@lumino/commands": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@lumino/commands/-/commands-1.13.0.tgz", + "integrity": "sha512-BDfp1OWyRvwu0JrGd3GP+u9G5AiM52tJzf+bI1p/urtzBVZp/6exOo2LdZuThps14gzYF3CeCE5JjbxCPj+a5g==", + "dev": true, + "requires": { + "@lumino/algorithm": "^1.4.0", + "@lumino/coreutils": "^1.6.0", + "@lumino/disposable": "^1.5.0", + "@lumino/domutils": "^1.3.0", + "@lumino/keyboard": "^1.3.0", + "@lumino/signaling": "^1.5.0", + "@lumino/virtualdom": "^1.9.0" + } + }, + "@lumino/coreutils": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@lumino/coreutils/-/coreutils-1.6.0.tgz", + "integrity": "sha512-hwUkRfwn8Rnb94VbQSt7O5QwVZ+0A+PbL77V7fzjy9o3+ICdTDqpo5m6bhOoNmSz5m/dWcSD4YSpuGtUNunVEw==", + "dev": true + }, + "@lumino/disposable": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@lumino/disposable/-/disposable-1.5.0.tgz", + "integrity": "sha512-Qq/vyMxacSxUjISXHTNz2ccAJdO7j/J771PUuU0VZc3oR80oTTyakUyoH2AciSAuN9AaeTEHsG1qv75JHqYoIg==", + "dev": true, + "requires": { + "@lumino/algorithm": "^1.4.0", + "@lumino/signaling": "^1.5.0" + } + }, + "@lumino/domutils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@lumino/domutils/-/domutils-1.3.0.tgz", + "integrity": "sha512-JvejySp2BrzRSAQ3DfTgPP4/x7yI/OouD5fCkeET83YLsOkcrFHwd2aehFEeVeo+WIg57ADv+CYh7+bZPgrkCw==", + "dev": true + }, + "@lumino/keyboard": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@lumino/keyboard/-/keyboard-1.3.0.tgz", + "integrity": "sha512-F9KHfqya2+4elMQ2X+TB4FVlY/5uLGhft1eZ8h1sAYD6p4HG2onFHlSk2byaIdE8fybjrxDUSH7x15Q6bn9yJw==", + "dev": true + }, + "@lumino/signaling": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@lumino/signaling/-/signaling-1.5.0.tgz", + "integrity": "sha512-yUrSHJq2N/c9Ro4BWKWAkO7YKA0mkHcN+1AkerUPr1/0ecQP+IoPbk+SdYPQXsKAqY9uQuG3AQkqE56ps75peQ==", + "dev": true, + "requires": { + "@lumino/algorithm": "^1.4.0" + } + }, + "@lumino/virtualdom": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@lumino/virtualdom/-/virtualdom-1.9.0.tgz", + "integrity": "sha512-llWONY4O2GDk3gGIjQJQ8ji1wikPE+fk/rVMUbWSPkUSQOR9CEZmuXvuMbnNwFfXPSPPm20WaTFLysJ4mANrqw==", + "dev": true, + "requires": { + "@lumino/algorithm": "^1.4.0" + } + } + } }, "@lumino/collections": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@lumino/collections/-/collections-1.3.2.tgz", - "integrity": "sha512-6ka08E9qZsTXBclwQZz1IfUCxo6G0V2Y8Gb0XPdXe0IzxqAtNmRMGIvRmEf3yKZa6wY6oCgyh5IhJS9km6bqVQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@lumino/collections/-/collections-1.4.0.tgz", + "integrity": "sha512-yEADfxJ9U+ihmofUkOeW7+S2whU0TpuHgmrVDNs1hsMqD1zX7cjNA8EXZ5uUA6dPKjZ1ulzepAwlWe80GXsgeg==", "requires": { - "@lumino/algorithm": "^1.3.2" + "@lumino/algorithm": "^1.4.0" + }, + "dependencies": { + "@lumino/algorithm": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@lumino/algorithm/-/algorithm-1.4.0.tgz", + "integrity": "sha512-ptFtwall4bCmK+0WQiCin7pY10GphgZU9cupF8SCXYS/nUkQaV60mvWhB8V3WNQf/fOBawzU3hygdXGthfHK9A==" + } } }, "@lumino/commands": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/@lumino/commands/-/commands-1.11.2.tgz", - "integrity": "sha512-d03EHTztfzftXwzrDhyfST1iIhfW6DXWuWJOBNtfKO5SMCPHgt11TvNRFbgUi9grj+iOFGSOyu7q6/epb0jY0Q==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/@lumino/commands/-/commands-1.12.0.tgz", + "integrity": "sha512-5TFlhDzZk1X8rCBjhh0HH3j6CcJ03mx2Pd/1rGa7MB5R+3+yYYk+gTlfHRqsxdehNRmiISaHRSrMnW8bynW7ZQ==", "requires": { - "@lumino/algorithm": "^1.3.2", - "@lumino/coreutils": "^1.5.2", - "@lumino/disposable": "^1.4.2", - "@lumino/domutils": "^1.2.2", - "@lumino/keyboard": "^1.2.2", - "@lumino/signaling": "^1.4.2", - "@lumino/virtualdom": "^1.7.2" + "@lumino/algorithm": "^1.3.3", + "@lumino/coreutils": "^1.5.3", + "@lumino/disposable": "^1.4.3", + "@lumino/domutils": "^1.2.3", + "@lumino/keyboard": "^1.2.3", + "@lumino/signaling": "^1.4.3", + "@lumino/virtualdom": "^1.8.0" } }, "@lumino/coreutils": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@lumino/coreutils/-/coreutils-1.5.2.tgz", - "integrity": "sha512-yLk507d5gONDjGLvU+bWHVisssDEigbZ1UmbCzaSaQ8DaK0WktscwqPbODh68cK8cobClx11xM7SPonqQtjX/Q==" + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@lumino/coreutils/-/coreutils-1.5.3.tgz", + "integrity": "sha512-G72jJ6sgOwAUuilz+cri7LpHIJxllK+qz+YZUC3fyyWHK7oRlZemcc43jZAVE+tagTdMxKYSQWNIVzM5lI8sWw==" }, "@lumino/disposable": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@lumino/disposable/-/disposable-1.4.2.tgz", - "integrity": "sha512-aXQvktpOT/NcUIU17bzbyv1l7Tk7F1EP6XRAF1it9E0PvNcYyutxSr5kIrV/u7PY7LAL2oYDih0X0gY8H8v5kg==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@lumino/disposable/-/disposable-1.4.3.tgz", + "integrity": "sha512-zKQ9N2AEGcYpG6PJkeMWQXvoXU9w1ocji78z+fboM/SmSgtOIVGeQt3fZeldymf0XrlOPpNXs1ZFg54yWUMnXA==", "requires": { - "@lumino/algorithm": "^1.3.2", - "@lumino/signaling": "^1.4.2" + "@lumino/algorithm": "^1.3.3", + "@lumino/signaling": "^1.4.3" } }, "@lumino/domutils": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@lumino/domutils/-/domutils-1.2.2.tgz", - "integrity": "sha512-7m5TxYBlb1Dp84eBiW3gSIPTduMuxfq+FYUn77i03HyFrRo3m00afibBHtKPKXshSVwDRVI4QdvaTrtv3loo+g==" + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@lumino/domutils/-/domutils-1.2.3.tgz", + "integrity": "sha512-SEi8WZSy+DWMkL5CfAY78MHbi3x83AVmRFxjs9+A6qsFPde+Hr1I4DNtLsSDmfAWsobHHgBnjyNp2ZkQEq0IEA==" }, "@lumino/dragdrop": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@lumino/dragdrop/-/dragdrop-1.6.2.tgz", - "integrity": "sha512-fsN6G6/v4EkaliQZFgot8Gaod4YkZpRMRh1C4XmMxHCoWxJMTzHWLubuoib7MrMdderusZG6uL6wkzqrp5bLAQ==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@lumino/dragdrop/-/dragdrop-1.7.1.tgz", + "integrity": "sha512-IeSSOTmpqBSWz+EVsbGVeHe/KIaHaUsQXZ4BJCEbCKgNGHbqMfUOtlneiKq7rEhZGF4wYs7gWWjNhMVZbUGO9Q==", + "dev": true, "requires": { - "@lumino/coreutils": "^1.5.2", - "@lumino/disposable": "^1.4.2" + "@lumino/coreutils": "^1.5.3", + "@lumino/disposable": "^1.4.3" } }, "@lumino/keyboard": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@lumino/keyboard/-/keyboard-1.2.2.tgz", - "integrity": "sha512-pQF2rsZZnAL+e2XaProTaAHHJxNXlzfDYYLKhrEIhaQlNduwU/GK1f/M8IFJ2+SFzEOvEIo9+v2jMtF4MlU2cg==" + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@lumino/keyboard/-/keyboard-1.2.3.tgz", + "integrity": "sha512-ibS0sz0VABeuJXx2JVSz36sUBMUOcQNCNPybVhwzN/GkJFs0dnDKluMu+3Px0tkB2y33bGPZU/RLZY1Xj/faEA==" }, "@lumino/messaging": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@lumino/messaging/-/messaging-1.4.2.tgz", - "integrity": "sha512-3kgrCrCFxIqIdhaMbaQdsG1CD/bqiUIJue+5ZGoQKHk4rdalkwpvk5c+RcMlJIPbK2k2J6ytiQ535s4jkUCZ3Q==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@lumino/messaging/-/messaging-1.5.0.tgz", + "integrity": "sha512-LzxjA18ncc3tksgE2JlIUCeTvnsrsYsaSxgl1QniAsYMcKd+9f7VN4f6Wq42ouPZtE+dJosQ35mji2+5Ao/tGA==", "requires": { - "@lumino/algorithm": "^1.3.2", - "@lumino/collections": "^1.3.2" + "@lumino/algorithm": "^1.4.0", + "@lumino/collections": "^1.4.0" + }, + "dependencies": { + "@lumino/algorithm": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@lumino/algorithm/-/algorithm-1.4.0.tgz", + "integrity": "sha512-ptFtwall4bCmK+0WQiCin7pY10GphgZU9cupF8SCXYS/nUkQaV60mvWhB8V3WNQf/fOBawzU3hygdXGthfHK9A==" + } } }, "@lumino/polling": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@lumino/polling/-/polling-1.3.2.tgz", - "integrity": "sha512-qS5kcTyn/IEsKz05YQk4Vixim4viFDlQB8fBmdAX8R92ATCQ1YMuDZnmtzmCPmPg2EHqcI4ZwtcFsZ7iEcV7yw==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@lumino/polling/-/polling-1.3.3.tgz", + "integrity": "sha512-uMRi6sPRnKW8m38WUY3qox1jxwzpvceafUbDJATCwyrZ48+YoY5Fxfmd9dqwioHS1aq9np5c6L35a9ZGuS0Maw==", "requires": { - "@lumino/coreutils": "^1.5.2", - "@lumino/disposable": "^1.4.2", - "@lumino/signaling": "^1.4.2" + "@lumino/coreutils": "^1.5.3", + "@lumino/disposable": "^1.4.3", + "@lumino/signaling": "^1.4.3" } }, "@lumino/properties": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@lumino/properties/-/properties-1.2.2.tgz", - "integrity": "sha512-5KzVhdoB9JP4ai74+198pACbC0JBRVRS59aKcHJmp7+cUKMpF3GawZXLVCNJrQ2Cam03lo2RBTCJvldT2VKR4g==" + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@lumino/properties/-/properties-1.2.3.tgz", + "integrity": "sha512-dbS9V/L+RpQoRjxHMAGh1JYoXaLA6F7xkVbg/vmYXqdXZ7DguO5C3Qteu9tNp7Z7Q31TqFWUCrniTI9UJiJCoQ==" }, "@lumino/signaling": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@lumino/signaling/-/signaling-1.4.2.tgz", - "integrity": "sha512-U+T/m3iY7Oe1RR9wR/1d3DMZpNMcYdBeBzBx1l+dkdB5IEk28QqVcJDxZxyAJ7QuqXjWqvQew/SVuxyIDJWC7g==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@lumino/signaling/-/signaling-1.4.3.tgz", + "integrity": "sha512-6clc8SMcH0tyKXIX31xw6sxjxJl5hj4YRd1DTHTS62cegQ0FkO8JjJeuv+Nc1pgTg6nEAf65aSOHpUdsFHDAvQ==", "requires": { - "@lumino/algorithm": "^1.3.2" + "@lumino/algorithm": "^1.3.3" } }, "@lumino/virtualdom": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@lumino/virtualdom/-/virtualdom-1.7.2.tgz", - "integrity": "sha512-HIeoT7ivFp4LcOB6Sqd0/9PLNgA4vHedBnEBnAHfohLUnLNih/MlPUz7lxGoyYmc+YYT5v/Ikyb6CwuEMQqLfw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@lumino/virtualdom/-/virtualdom-1.8.0.tgz", + "integrity": "sha512-X/1b8b7TxB9tb4+xQiS8oArcA/AK7NBZrsg2dzu/gHa3JC45R8nzQ+0tObD8Nd0gF/e9w9Ps9M62rLfefcbbKw==", "requires": { - "@lumino/algorithm": "^1.3.2" + "@lumino/algorithm": "^1.3.3" } }, "@lumino/widgets": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@lumino/widgets/-/widgets-1.13.2.tgz", - "integrity": "sha512-pWQEKw4Y8eaTg/kZqYkJgZ2IJmU6Iz3VyCWnw8z5qcxiEVLVeCMtkWnEWI4QYn5LNXlEZagpzc3KA9waCWOfIw==", - "requires": { - "@lumino/algorithm": "^1.3.2", - "@lumino/commands": "^1.11.2", - "@lumino/coreutils": "^1.5.2", - "@lumino/disposable": "^1.4.2", - "@lumino/domutils": "^1.2.2", - "@lumino/dragdrop": "^1.6.2", - "@lumino/keyboard": "^1.2.2", - "@lumino/messaging": "^1.4.2", - "@lumino/properties": "^1.2.2", - "@lumino/signaling": "^1.4.2", - "@lumino/virtualdom": "^1.7.2" + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/@lumino/widgets/-/widgets-1.20.0.tgz", + "integrity": "sha512-kJxfwlw+i7jmDHqxdaiw7ztq3JbS48u8wEMPpd7JI5dnEOBBkbvukvvHBNhfU3gLF/xttPokCCQiysMFlU/u7w==", + "requires": { + "@lumino/algorithm": "^1.4.0", + "@lumino/commands": "^1.13.0", + "@lumino/coreutils": "^1.6.0", + "@lumino/disposable": "^1.5.0", + "@lumino/domutils": "^1.3.0", + "@lumino/dragdrop": "^1.8.0", + "@lumino/keyboard": "^1.3.0", + "@lumino/messaging": "^1.5.0", + "@lumino/properties": "^1.3.0", + "@lumino/signaling": "^1.5.0", + "@lumino/virtualdom": "^1.9.0" + }, + "dependencies": { + "@lumino/algorithm": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@lumino/algorithm/-/algorithm-1.4.0.tgz", + "integrity": "sha512-ptFtwall4bCmK+0WQiCin7pY10GphgZU9cupF8SCXYS/nUkQaV60mvWhB8V3WNQf/fOBawzU3hygdXGthfHK9A==" + }, + "@lumino/commands": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@lumino/commands/-/commands-1.13.0.tgz", + "integrity": "sha512-BDfp1OWyRvwu0JrGd3GP+u9G5AiM52tJzf+bI1p/urtzBVZp/6exOo2LdZuThps14gzYF3CeCE5JjbxCPj+a5g==", + "requires": { + "@lumino/algorithm": "^1.4.0", + "@lumino/coreutils": "^1.6.0", + "@lumino/disposable": "^1.5.0", + "@lumino/domutils": "^1.3.0", + "@lumino/keyboard": "^1.3.0", + "@lumino/signaling": "^1.5.0", + "@lumino/virtualdom": "^1.9.0" + } + }, + "@lumino/coreutils": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@lumino/coreutils/-/coreutils-1.6.0.tgz", + "integrity": "sha512-hwUkRfwn8Rnb94VbQSt7O5QwVZ+0A+PbL77V7fzjy9o3+ICdTDqpo5m6bhOoNmSz5m/dWcSD4YSpuGtUNunVEw==" + }, + "@lumino/disposable": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@lumino/disposable/-/disposable-1.5.0.tgz", + "integrity": "sha512-Qq/vyMxacSxUjISXHTNz2ccAJdO7j/J771PUuU0VZc3oR80oTTyakUyoH2AciSAuN9AaeTEHsG1qv75JHqYoIg==", + "requires": { + "@lumino/algorithm": "^1.4.0", + "@lumino/signaling": "^1.5.0" + } + }, + "@lumino/domutils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@lumino/domutils/-/domutils-1.3.0.tgz", + "integrity": "sha512-JvejySp2BrzRSAQ3DfTgPP4/x7yI/OouD5fCkeET83YLsOkcrFHwd2aehFEeVeo+WIg57ADv+CYh7+bZPgrkCw==" + }, + "@lumino/dragdrop": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@lumino/dragdrop/-/dragdrop-1.8.0.tgz", + "integrity": "sha512-jDHrUGqM5RWS2QoKlxN1xLRqtlia+aM+6FiQdYa0p4I4UTX/IYdKgPhWfeH1iLk/7TLUM5p7SAOCZlHXYN2dYg==", + "requires": { + "@lumino/coreutils": "^1.6.0", + "@lumino/disposable": "^1.5.0" + } + }, + "@lumino/keyboard": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@lumino/keyboard/-/keyboard-1.3.0.tgz", + "integrity": "sha512-F9KHfqya2+4elMQ2X+TB4FVlY/5uLGhft1eZ8h1sAYD6p4HG2onFHlSk2byaIdE8fybjrxDUSH7x15Q6bn9yJw==" + }, + "@lumino/properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@lumino/properties/-/properties-1.3.0.tgz", + "integrity": "sha512-yJZ9QLvOYSoFmy/DlqB6MC/7ZiStZ173K8WKG622tcOTGfU7aqDxJq1Y0s9v3qSEIc9XlGKvYksM9yd416nlmQ==" + }, + "@lumino/signaling": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@lumino/signaling/-/signaling-1.5.0.tgz", + "integrity": "sha512-yUrSHJq2N/c9Ro4BWKWAkO7YKA0mkHcN+1AkerUPr1/0ecQP+IoPbk+SdYPQXsKAqY9uQuG3AQkqE56ps75peQ==", + "requires": { + "@lumino/algorithm": "^1.4.0" + } + }, + "@lumino/virtualdom": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@lumino/virtualdom/-/virtualdom-1.9.0.tgz", + "integrity": "sha512-llWONY4O2GDk3gGIjQJQ8ji1wikPE+fk/rVMUbWSPkUSQOR9CEZmuXvuMbnNwFfXPSPPm20WaTFLysJ4mANrqw==", + "requires": { + "@lumino/algorithm": "^1.4.0" + } + } } }, "@mapbox/geojson-rewind": { @@ -319,6 +861,59 @@ "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==" }, + "@nodelib/fs.scandir": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.4", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.4", + "fastq": "^1.6.0" + } + }, + "@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, "@plotly/d3-sankey": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/@plotly/d3-sankey/-/d3-sankey-0.7.2.tgz", @@ -357,6 +952,21 @@ "pick-by-alias": "^1.2.0" } }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, "@turf/area": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/@turf/area/-/area-6.0.1.tgz", @@ -398,26 +1008,95 @@ } }, "@types/backbone": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@types/backbone/-/backbone-1.4.3.tgz", - "integrity": "sha512-PZVw2FckEbEJ+qh2hvtgpI/4p8yD3sRbA8FEO72k01/90SSH73GcLW3CqcYP5epwDpLl3cKrgK0yypQY4qiuEw==", + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/@types/backbone/-/backbone-1.4.10.tgz", + "integrity": "sha512-X6UM8N9i4WFtO1F53Z3DE7mjI7UxEfxyFtMTYHOPFhYFvExDuu0UJENstnA023+/FnVOdxltMIKc4picZxW4dA==", "requires": { "@types/jquery": "*", "@types/underscore": "*" } }, - "@types/jquery": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.0.tgz", - "integrity": "sha512-C7qQUjpMWDUNYQRTXsP5nbYYwCwwgy84yPgoTT7fPN69NH92wLeCtFaMsWeolJD1AF/6uQw3pYt62rzv83sMmw==", - "requires": { - "@types/sizzle": "*" + "@types/d3": { + "version": "3.5.44", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-3.5.44.tgz", + "integrity": "sha512-hFEcf03YGJ2uQoDYEp3nFD5mXWxly5kf6KOstuOQFEs9sUCN7kNlKhcYkpZ3gK6PiHz4XRLkoHa80NVCJNeLBw==", + "dev": true + }, + "@types/eslint": { + "version": "7.2.8", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.8.tgz", + "integrity": "sha512-RTKvBsfz0T8CKOGZMfuluDNyMFHnu5lvNr4hWEsQeHXH6FcmIDIozOyWMh36nLGMwVd5UFNXC2xztA8lln22MQ==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz", + "integrity": "sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.46", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.46.tgz", + "integrity": "sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==", + "dev": true + }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/jquery": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.5.tgz", + "integrity": "sha512-6RXU9Xzpc6vxNrS6FPPapN1SxSHgQ336WC6Jj/N8q30OiaBZ00l1GBgeP7usjVZPivSkGUfL1z/WW6TX989M+w==", + "requires": { + "@types/sizzle": "*" } }, + "@types/json-schema": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", + "dev": true + }, "@types/lodash": { - "version": "4.14.157", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.157.tgz", - "integrity": "sha512-Ft5BNFmv2pHDgxV5JDsndOWTRJ+56zte0ZpYLowp03tW+K+t8u8YMOzAnpuqPgzX6WO1XpDIUm7u04M8vdDiVQ==" + "version": "4.14.168", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", + "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==" + }, + "@types/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==", + "dev": true + }, + "@types/node": { + "version": "14.14.37", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.37.tgz", + "integrity": "sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==", + "dev": true + }, + "@types/plotly.js": { + "version": "1.54.10", + "resolved": "https://registry.npmjs.org/@types/plotly.js/-/plotly.js-1.54.10.tgz", + "integrity": "sha512-38CuUoM5M1jQl5setuGl4yj59+7Cn6WYIQyeGLptJpAJre9/wZLl0EzdnImVB3l+qUBYxkbCH9FIDV/JoPzTXQ==", + "dev": true, + "requires": { + "@types/d3": "^3" + } }, "@types/sizzle": { "version": "2.3.2", @@ -425,9 +1104,200 @@ "integrity": "sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==" }, "@types/underscore": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/@types/underscore/-/underscore-1.10.7.tgz", - "integrity": "sha512-v1wOSqwcyqeE65A/Pr+INp1rLBbrUZkekX0i6Io96p6rgpYAoN7r0JYoKnT1sSFSBV3VoF6YQMJCDWZM8wrKXg==" + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@types/underscore/-/underscore-1.11.1.tgz", + "integrity": "sha512-mW23Xkp9HYgdMV7gnwuzqnPx6aG0J7xg/b7erQszOcyOizWylwCr9cgYM/BVVJHezUDxwyigG6+wCFQwCvyMBw==" + }, + "@types/webpack-env": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.16.0.tgz", + "integrity": "sha512-Fx+NpfOO0CpeYX2g9bkvX8O5qh9wrU1sOF4g8sft4Mu7z+qfe387YlyY8w8daDyDsKY5vUxM0yxkAYnbkRbZEw==", + "dev": true + }, + "@webassemblyjs/ast": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz", + "integrity": "sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.0", + "@webassemblyjs/helper-wasm-bytecode": "1.11.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz", + "integrity": "sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz", + "integrity": "sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz", + "integrity": "sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz", + "integrity": "sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ==", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.0", + "@webassemblyjs/helper-api-error": "1.11.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz", + "integrity": "sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz", + "integrity": "sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.0", + "@webassemblyjs/helper-buffer": "1.11.0", + "@webassemblyjs/helper-wasm-bytecode": "1.11.0", + "@webassemblyjs/wasm-gen": "1.11.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz", + "integrity": "sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.0.tgz", + "integrity": "sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.0.tgz", + "integrity": "sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz", + "integrity": "sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.0", + "@webassemblyjs/helper-buffer": "1.11.0", + "@webassemblyjs/helper-wasm-bytecode": "1.11.0", + "@webassemblyjs/helper-wasm-section": "1.11.0", + "@webassemblyjs/wasm-gen": "1.11.0", + "@webassemblyjs/wasm-opt": "1.11.0", + "@webassemblyjs/wasm-parser": "1.11.0", + "@webassemblyjs/wast-printer": "1.11.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz", + "integrity": "sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.0", + "@webassemblyjs/helper-wasm-bytecode": "1.11.0", + "@webassemblyjs/ieee754": "1.11.0", + "@webassemblyjs/leb128": "1.11.0", + "@webassemblyjs/utf8": "1.11.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz", + "integrity": "sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.0", + "@webassemblyjs/helper-buffer": "1.11.0", + "@webassemblyjs/wasm-gen": "1.11.0", + "@webassemblyjs/wasm-parser": "1.11.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz", + "integrity": "sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.0", + "@webassemblyjs/helper-api-error": "1.11.0", + "@webassemblyjs/helper-wasm-bytecode": "1.11.0", + "@webassemblyjs/ieee754": "1.11.0", + "@webassemblyjs/leb128": "1.11.0", + "@webassemblyjs/utf8": "1.11.0" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz", + "integrity": "sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.0", + "@xtuc/long": "4.2.2" + } + }, + "@webpack-cli/configtest": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.2.tgz", + "integrity": "sha512-3OBzV2fBGZ5TBfdW50cha1lHDVf9vlvRXnjpVbJBa20pSZQaSkMJZiwA8V2vD9ogyeXn8nU5s5A6mHyf5jhMzA==", + "dev": true + }, + "@webpack-cli/info": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.3.tgz", + "integrity": "sha512-lLek3/T7u40lTqzCGpC6CAbY6+vXhdhmwFRxZLMnRm6/sIF/7qMpT8MocXCRQfz0JAh63wpbXLMnsQ5162WS7Q==", + "dev": true, + "requires": { + "envinfo": "^7.7.3" + } + }, + "@webpack-cli/serve": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.3.1.tgz", + "integrity": "sha512-0qXvpeYO6vaNoRBI52/UsbcaBydJCggoBBnIo/ovQQdn6fug0BgwsjorV1hVS7fMqGVTZGcVxv8334gjmbj5hw==", + "dev": true + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true }, "a-big-triangle": { "version": "1.0.3", @@ -439,6 +1309,12 @@ "weak-map": "^1.0.5" } }, + "abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "dev": true + }, "abs-svg-path": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz", @@ -465,10 +1341,20 @@ "robust-orientation": "^1.1.3" } }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, "ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -477,22 +1363,11 @@ } }, "ajv-keywords": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.1.tgz", - "integrity": "sha512-KWcq3xN8fDjSB+IMoh2VaXVhRI0BBGxoYp3rx7Pkb6z0cFjYR9Q9l4yZqqals0/zsioCmocC5H6UvsGD4MoIBA==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true, - "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" - } - }, "almost-equal": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/almost-equal/-/almost-equal-1.1.0.tgz", @@ -516,42 +1391,41 @@ "simplicial-complex-boundary": "^1.0.0" } }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, - "optional": true, "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "type-fest": "^0.21.3" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "optional": true + "requires": { + "color-convert": "^1.9.0" + } }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true, - "optional": true - }, "array-bounds": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-bounds/-/array-bounds-1.0.1.tgz", @@ -580,80 +1454,17 @@ "resolved": "https://registry.npmjs.org/array-rearrange/-/array-rearrange-2.2.2.tgz", "integrity": "sha512-UfobP5N12Qm4Qu4fwLDIi2v6+wZsSf6snYSxAMeKhrh37YGnNWZPRmVEKc/2wfms53TLQnzfpG8wCx2Y/6NG1w==" }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true, - "optional": true - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true }, - "assign-symbols": { + "at-least-node": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true, - "optional": true - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true, - "optional": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "optional": true + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true }, "atob-lite": { "version": "1.0.0", @@ -682,77 +1493,10 @@ "robust-linear-solve": "^1.0.0" } }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "optional": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "optional": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "optional": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "optional": true - } - } - }, "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "big-rat": { "version": "1.0.4", @@ -770,28 +1514,11 @@ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, - "binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", - "dev": true, - "optional": true - }, "binary-search-bounds": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.4.tgz", "integrity": "sha512-2hg5kgdKql5ClF2ErBcSx0U5bnl5hgS4v7wMnLFodyR47yMtj2w+UAZB+0CiqyHct2q543i7Bi4/aMIegorCCg==" }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, "bit-twiddle": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz", @@ -805,64 +1532,6 @@ "clamp": "^1.0.1" } }, - "bl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", - "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", - "dev": true, - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - } - } - }, "bn.js": { "version": "4.11.9", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", @@ -897,176 +1566,122 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, - "optional": true, "requires": { "fill-range": "^7.0.1" } }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", "dev": true, "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" } }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - } + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, - "browserify-sign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz", - "integrity": "sha512-hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==", - "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.2", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" + "cacache": { + "version": "15.0.6", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.6.tgz", + "integrity": "sha512-g1WYDMct/jzW+JdWEyjaX2zoBkZ6ZT9VpOyp2I/VMtDsNLffNat3kqPFfi1eDRSK9/SuKGyORDHcQMcPF8sQ/w==", + "dev": true, + "requires": { + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" }, "dependencies": { - "bn.js": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", - "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==", + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { - "safe-buffer": "~5.2.0" + "glob": "^7.1.3" } } } }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", "dev": true, "requires": { - "pako": "~1.0.5" - } - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" }, "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", "dev": true } } }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, - "optional": true, "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" } }, "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001208", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001208.tgz", + "integrity": "sha512-OE5UE4+nBOro8Dyvv0lfx+SRtfVIOM9uhKqFmJeUbGriqhhStgp1A0OyBpgy3OUF8AhYCT+PVwPC1gMl2ZcQMA==", "dev": true }, "canvas-fit": { @@ -1092,41 +1707,59 @@ "resolved": "https://registry.npmjs.org/cell-orientation/-/cell-orientation-1.0.1.tgz", "integrity": "sha1-tQStlqZq0obZ7dmFoiU9A7gNKFA=" }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } } }, - "chokidar": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz", - "integrity": "sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.4.0" - } + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "child_process": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/child_process/-/child_process-1.0.2.tgz", + "integrity": "sha1-sffn/HPSXn/R1FWtyU4UODAYK1o=", + "dev": true + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", "dev": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "tslib": "^1.9.0" } }, "circumcenter": { @@ -1140,42 +1773,17 @@ }, "circumradius": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/circumradius/-/circumradius-1.0.0.tgz", - "integrity": "sha1-cGxEfj5VzR7T0RvRM+N8JSzDBbU=", - "requires": { - "circumcenter": "^1.0.0" - } - }, - "clamp": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz", - "integrity": "sha1-ZqDmQBGBbjcZaCj9yMjBRzEshjQ=" - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "optional": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "optional": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } + "resolved": "https://registry.npmjs.org/circumradius/-/circumradius-1.0.0.tgz", + "integrity": "sha1-cGxEfj5VzR7T0RvRM+N8JSzDBbU=", + "requires": { + "circumcenter": "^1.0.0" } }, + "clamp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz", + "integrity": "sha1-ZqDmQBGBbjcZaCj9yMjBRzEshjQ=" + }, "clean-pslg": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/clean-pslg/-/clean-pslg-1.1.2.tgz", @@ -1190,32 +1798,45 @@ "uniq": "^1.0.1" } }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" + "restore-cursor": "^3.1.0" } }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "dev": true, - "optional": true, "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "mimic-response": "^1.0.0" } }, "color-alpha": { @@ -1226,6 +1847,23 @@ "color-parse": "^1.3.8" } }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + }, + "dependencies": { + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + } + } + }, "color-id": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/color-id/-/color-id-1.1.0.tgz", @@ -1278,6 +1916,12 @@ "mumath": "^3.3.4" } }, + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "dev": true + }, "colormap": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/colormap/-/colormap-2.3.1.tgz", @@ -1286,17 +1930,17 @@ "lerp": "^1.0.3" } }, - "colors": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", - "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=", - "dev": true - }, "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, "compare-angle": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/compare-angle/-/compare-angle-1.0.1.tgz", @@ -1323,13 +1967,6 @@ "compare-cell": "^1.0.0" } }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true, - "optional": true - }, "compute-dims": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/compute-dims/-/compute-dims-1.1.0.tgz", @@ -1393,12 +2030,6 @@ } } }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, "const-max-uint32": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/const-max-uint32/-/const-max-uint32-1.0.2.tgz", @@ -1409,12 +2040,6 @@ "resolved": "https://registry.npmjs.org/const-pinf-float64/-/const-pinf-float64-1.0.0.tgz", "integrity": "sha1-9u+w15+cCYbT558pI6v5twtj1yY=" }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, "convex-hull": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/convex-hull/-/convex-hull-1.0.3.tgz", @@ -1425,13 +2050,6 @@ "monotone-convex-hull-2d": "^1.0.1" } }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true, - "optional": true - }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -1442,72 +2060,24 @@ "resolved": "https://registry.npmjs.org/country-regex/-/country-regex-1.1.0.tgz", "integrity": "sha1-UcMz3N8Sknt+XuucEKyBEqYSCJY=" }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "lru-cache": "^4.0.1", + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", "shebang-command": "^1.2.0", "which": "^1.2.9" } }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } + "crypto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/crypto/-/crypto-1.0.1.tgz", + "integrity": "sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig==", + "dev": true }, "css-font": { "version": "1.2.0", @@ -1550,6 +2120,35 @@ "resolved": "https://registry.npmjs.org/css-global-keywords/-/css-global-keywords-1.0.1.tgz", "integrity": "sha1-cqmupyeW0Bmx0qMlLeTlqqN+Smk=" }, + "css-loader": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz", + "integrity": "sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^1.2.3", + "normalize-path": "^3.0.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.2", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "css-system-font-keywords": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz", @@ -1560,6 +2159,12 @@ "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", "integrity": "sha1-s085HupNqPPpgjHizNjfnAQfFxs=" }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, "cubic-hermite": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/cubic-hermite/-/cubic-hermite-1.0.0.tgz", @@ -1667,84 +2272,39 @@ "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, - "optional": true, "requires": { - "ms": "2.0.0" + "mimic-response": "^1.0.0" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true, - "optional": true - }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, - "optional": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "optional": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "optional": true - } + "object-keys": "^1.0.12" } }, "defined": { @@ -1761,38 +2321,46 @@ "uniq": "^1.0.1" } }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } + "dependency-graph": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.9.0.tgz", + "integrity": "sha512-9YLIBURXj4DJMFALxXw9K3Y3rwb5Fk0X5/8ipCzaN84+gKxoHK43tVKRNakCQbiEx07E8Uwhuq21BpUagFhZ8w==", + "dev": true + }, + "detect-indent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", + "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", + "dev": true }, "detect-kerning": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/detect-kerning/-/detect-kerning-2.1.2.tgz", "integrity": "sha512-I3JIbrnKPAntNLl1I6TpSQQdQ4AutYzv/sKMFKbepawV/hlH0GmYKhUoOEMd4xqaUHT+Bm0f4127lh5qs1m1tw==" }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" + "path-type": "^4.0.0" + }, + "dependencies": { + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + } } }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true - }, "double-bits": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/double-bits/-/double-bits-1.1.1.tgz", @@ -1817,52 +2385,11 @@ "resolved": "https://registry.npmjs.org/dup/-/dup-1.0.0.tgz", "integrity": "sha1-UfxaxoX4GWRp3wuQXpNLIK9bQCk=" }, - "duplexer2": { + "duplexer3": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true }, "duplexify": { "version": "3.7.1", @@ -1909,6 +2436,18 @@ } } }, + "duplicate-package-checker-webpack-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/duplicate-package-checker-webpack-plugin/-/duplicate-package-checker-webpack-plugin-3.0.0.tgz", + "integrity": "sha512-aO50/qPC7X2ChjRFniRiscxBLT/K01bALqfcDaf8Ih5OqQ1N4iT/Abx9Ofu3/ms446vHTm46FACIuJUmgUQcDQ==", + "dev": true, + "requires": { + "chalk": "^2.3.0", + "find-root": "^1.0.0", + "lodash": "^4.17.4", + "semver": "^5.4.1" + } + }, "earcut": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.2.tgz", @@ -1922,6 +2461,12 @@ "uniq": "^1.0.0" } }, + "electron-to-chromium": { + "version": "1.3.710", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.710.tgz", + "integrity": "sha512-b3r0E2o4yc7mNmBeJviejF1rEx49PUBi+2NPa7jHEX3arkAXnVgLhR0YmV8oi6/Qf3HH2a8xzQmCjHNH0IpXWQ==", + "dev": true + }, "element-size": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/element-size/-/element-size-1.1.1.tgz", @@ -1965,21 +2510,35 @@ } }, "enhanced-resolve": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", - "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", "dev": true, "requires": { "graceful-fs": "^4.1.2", - "memory-fs": "^0.4.0", - "object-assign": "^4.0.1", - "tapable": "^0.2.7" + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + } + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" } }, + "envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true + }, "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, "requires": { "prr": "~1.0.1" @@ -1994,6 +2553,47 @@ "is-arrayish": "^0.2.1" } }, + "es-abstract": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", + "object-inspect": "^1.9.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" + } + }, + "es-module-lexer": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz", + "integrity": "sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==", + "dev": true + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, "es5-ext": { "version": "0.10.53", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", @@ -2014,50 +2614,11 @@ "es6-symbol": "^3.1.1" } }, - "es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-set": "~0.1.5", - "es6-symbol": "~3.1.1", - "event-emitter": "~0.3.5" - } - }, "es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" }, - "es6-set": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14", - "es6-iterator": "~2.0.1", - "es6-symbol": "3.1.1", - "event-emitter": "~0.3.5" - }, - "dependencies": { - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - } - } - }, "es6-symbol": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", @@ -2078,6 +2639,18 @@ "es6-symbol": "^3.1.1" } }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, "escodegen": { "version": "1.14.3", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", @@ -2090,15 +2663,13 @@ "source-map": "~0.6.1" } }, - "escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { - "es6-map": "^0.1.3", - "es6-weak-map": "^2.0.1", - "esrecurse": "^4.1.0", + "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, @@ -2108,12 +2679,20 @@ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { - "estraverse": "^4.1.0" + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } } }, "estraverse": { @@ -2126,80 +2705,73 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, "events": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==" }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "optional": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", + "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "get-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz", + "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, - "optional": true, "requires": { - "is-descriptor": "^0.1.0" + "shebang-regex": "^3.0.0" } }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "optional": true, "requires": { - "is-extendable": "^0.1.0" + "isexe": "^2.0.0" } } } @@ -2219,105 +2791,15 @@ } } }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, - "optional": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "optional": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "optional": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "optional": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "optional": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "optional": true - } + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" } }, "extract-frustum-planes": { @@ -2348,6 +2830,20 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, + "fast-glob": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", + "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, "fast-isnumeric": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/fast-isnumeric/-/fast-isnumeric-1.1.4.tgz", @@ -2366,19 +2862,58 @@ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "dev": true + }, + "fastq": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", + "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, - "optional": true + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-loader": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.0.0.tgz", + "integrity": "sha512-/aMOAYEFXDdjG0wytpTL5YQLfZnnTmLNjn+AIrJ/6HVnTfDqLsVKUUwkDf4I4kgex36BvjuXEn/TX9B/1ESyqQ==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + } + } }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, - "optional": true, "requires": { "to-regex-range": "^5.0.1" } @@ -2399,13 +2934,31 @@ } } }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true + }, "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, "flatten-vertex-data": { @@ -2437,28 +2990,11 @@ "css-font": "^1.2.0" } }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true, - "optional": true - }, "foreach": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "optional": true, - "requires": { - "map-cache": "^0.2.2" - } - }, "from2": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", @@ -2502,13 +3038,24 @@ } } }, - "from2-array": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/from2-array/-/from2-array-0.0.4.tgz", - "integrity": "sha1-6vwWtl9uJxm81X/cGGkAWsEzLNY=", + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, "requires": { - "from2": "^2.0.3" + "minipass": "^3.0.0" } }, "fs.realpath": { @@ -2517,12 +3064,11 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": true, - "optional": true + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true }, "functional-red-black-tree": { "version": "1.0.1", @@ -2539,29 +3085,36 @@ "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz", "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==" }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, "get-canvas-context": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz", "integrity": "sha1-1ue1C8TkyGNXzTnyJkeoS3NgHpM=" }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, - "optional": true + "requires": { + "pump": "^3.0.0" + } + }, + "git-hooks-list": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/git-hooks-list/-/git-hooks-list-1.0.3.tgz", + "integrity": "sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ==", + "dev": true }, "gl-axes3d": { "version": "1.5.3", @@ -2975,15 +3528,36 @@ } }, "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "optional": true, "requires": { "is-glob": "^4.0.1" } }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "globby": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.0.tgz", + "integrity": "sha512-3LifW9M4joGZasyYPz2A1U74zbC/45fvpXUvO/9KbSa+VV0aGZarWkfdgKyR9sExNP0t0x0ss/UMJpNpcaTspw==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.0.3", + "glob": "^7.1.3", + "ignore": "^5.1.1", + "merge2": "^1.2.3", + "slash": "^3.0.0" + } + }, "glsl-inject-defines": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/glsl-inject-defines/-/glsl-inject-defines-1.0.3.tgz", @@ -3224,6 +3798,25 @@ "resolve": "^1.0.0" } }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", @@ -3234,6 +3827,27 @@ "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz", "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==" }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, "has-hover": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-hover/-/has-hover-1.0.1.tgz", @@ -3250,116 +3864,11 @@ "is-browser": "^2.0.1" } }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "optional": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "optional": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true }, "hosted-git-info": { "version": "2.8.8", @@ -3372,49 +3881,46 @@ "resolved": "https://registry.npmjs.org/hsluv/-/hsluv-0.0.3.tgz", "integrity": "sha1-gpEH2vtKn4tSoYCe0C4JHq3mdUw=" }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "dev": true, + "requires": { + "postcss": "^7.0.14" + } + }, "ieee754": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" }, - "ify-loader": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ify-loader/-/ify-loader-1.1.0.tgz", - "integrity": "sha512-EiyC45FRIs+z4g98+jBzuYCfoM6TKG9p7Ek5YZUeM7rucNucaMZIseRj/5Q3I4ypkZXyC2wnU1RcYrVmshe2xw==", - "dev": true, - "requires": { - "bl": "^1.0.0", - "findup": "^0.1.5", - "from2-array": "0.0.4", - "map-limit": "0.0.1", - "multipipe": "^0.3.0", - "read-package-json": "^2.0.2", - "resolve": "^1.1.6" - }, - "dependencies": { - "commander": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz", - "integrity": "sha1-0SG7roYNmZKj1Re6lvVliOR8Z4E=", - "dev": true - }, - "findup": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/findup/-/findup-0.1.5.tgz", - "integrity": "sha1-itkpozk7rGJ5V6fl3kYjsGsOLOs=", - "dev": true, - "requires": { - "colors": "~0.6.0-1", - "commander": "~2.1.0" - } - } - } + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true }, "image-palette": { "version": "2.1.0", @@ -3431,6 +3937,22 @@ "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.7.5.tgz", "integrity": "sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g==" }, + "import-local": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, "incremental-convex-hull": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/incremental-convex-hull/-/incremental-convex-hull-1.0.1.tgz", @@ -3440,6 +3962,24 @@ "simplicial-complex": "^1.0.0" } }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -3455,10 +3995,67 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + } + } + }, "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", "dev": true }, "interval-tree-1d": { @@ -3476,12 +4073,6 @@ } } }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, "invert-permutation": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/invert-permutation/-/invert-permutation-1.0.0.tgz", @@ -3492,16 +4083,6 @@ "resolved": "https://registry.npmjs.org/iota-array/-/iota-array-1.0.0.tgz", "integrity": "sha1-ge9X/l0FgUzVjCSDYyqZwwoOgIc=" }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2" - } - }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -3513,21 +4094,26 @@ "resolved": "https://registry.npmjs.org/is-base64/-/is-base64-0.1.0.tgz", "integrity": "sha512-WRRyllsGXJM7ZN7gPTCCQ/6wNPTRDwiWdPK66l5sJzcU/oOzcIcRRf0Rux8bkpox/1yjt0F6VJRsQOIG2qz5sg==" }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^2.0.0" - } + "is-bigint": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", + "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", + "dev": true }, "is-blob": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-blob/-/is-blob-2.1.0.tgz", "integrity": "sha512-SZ/fTft5eUhQM6oF/ZaASFDEdbFVe89Imltn9uZr03wdKMcWNVYSMjQPFtg05QuNkt5l5c135ElvXEQG0rk4tw==" }, + "is-boolean-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", + "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "dev": true, + "requires": { + "call-bind": "^1.0.0" + } + }, "is-browser": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-browser/-/is-browser-2.1.0.tgz", @@ -3538,50 +4124,23 @@ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "optional": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "optional": true - } - } + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "dev": true }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "optional": true + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "optional": true + "dev": true }, "is-finite": { "version": "1.1.0", @@ -3599,20 +4158,16 @@ "integrity": "sha512-4ew1Sx6B6kEAl3T3NOM0yB94J3NZnBdNt4paw0e8nY73yHHTeTEhyQ3Lj7EQEnv5LD+GxNTaT4L46jcKjjpLiQ==" }, "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true }, "is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, - "optional": true, "requires": { "is-extglob": "^2.1.1" } @@ -3627,12 +4182,23 @@ "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-2.2.2.tgz", "integrity": "sha512-wW/SXnYJkTjs++tVK5b6kVITZpAZPtUrt9SF80vvxGiF/Oywal+COk1jlRkiVq15RFNEQKQY31TkV24/1T5cVg==" }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "optional": true + "dev": true + }, + "is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", + "dev": true }, "is-obj": { "version": "1.0.1", @@ -3649,15 +4215,30 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, - "optional": true, "requires": { "isobject": "^3.0.1" } }, + "is-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.1" + } + }, "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", "dev": true }, "is-string-blank": { @@ -3670,12 +4251,14 @@ "resolved": "https://registry.npmjs.org/is-svg-path/-/is-svg-path-1.0.2.tgz", "integrity": "sha1-d6tZDBKz0gNI5cehPQBAyHeE3aA=" }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", "dev": true, - "optional": true + "requires": { + "has-symbols": "^1.0.1" + } }, "isarray": { "version": "0.0.1", @@ -3692,18 +4275,28 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", "dev": true, - "optional": true + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } }, "jquery": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", - "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", + "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==" }, - "json-loader": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", - "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", "dev": true }, "json-parse-better-errors": { @@ -3725,35 +4318,35 @@ "minimist": "^1.2.5" } }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, "kdbush": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz", "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==" }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "json-buffer": "3.0.0" } }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, "lerp": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/lerp/-/lerp-1.0.3.tgz", @@ -3769,21 +4362,21 @@ } }, "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", + "parse-json": "^4.0.0", + "pify": "^3.0.0", "strip-bom": "^3.0.0" } }, "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", "dev": true }, "loader-utils": { @@ -3809,42 +4402,50 @@ } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "^4.1.0" } }, "lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "longest": { + "lowercase-keys": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true }, "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "yallist": "^4.0.0" } }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, - "optional": true + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } }, "map-limit": { "version": "0.0.1", @@ -3864,16 +4465,6 @@ } } }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "optional": true, - "requires": { - "object-visit": "^1.0.0" - } - }, "mapbox-gl": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-1.10.1.tgz", @@ -3964,30 +4555,10 @@ } } }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", "dev": true, "requires": { "errno": "^0.1.3", @@ -4032,153 +4603,95 @@ } } }, + "memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "optional": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "optional": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "optional": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "optional": true - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "optional": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" } }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "mime-db": { + "version": "1.47.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", + "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==", + "dev": true + }, + "mime-types": { + "version": "2.1.30", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", + "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", "dev": true, "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" + "mime-db": "1.47.0" } }, "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, - "minimalistic-assert": { + "mimic-response": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "dev": true }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true + "mini-css-extract-plugin": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.9.tgz", + "integrity": "sha512-Ac4s+xhVbqlyhXS5J/Vh/QXUz3ycXlCqoCPpg0vdfhsIBH9eg/It/9L1r1XhSCH737M1lqcWnMuWL13zcygn5A==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } }, "minimatch": { "version": "3.0.4", @@ -4194,27 +4707,50 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", "dev": true, - "optional": true, "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "optional": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } + "yallist": "^4.0.0" + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" } }, "mkdirp": { @@ -4274,22 +4810,6 @@ } } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true, - "optional": true - }, - "multipipe": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.3.1.tgz", - "integrity": "sha1-kmJVJXYboE/qoJYFtjgrziyR8R8=", - "dev": true, - "requires": { - "duplexer2": "^0.1.2" - } - }, "mumath": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/mumath/-/mumath-3.3.4.tgz", @@ -4303,41 +4823,17 @@ "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", "integrity": "sha1-sGJ44h/Gw3+lMTcysEEry2rhX1E=" }, - "nan": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", - "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", - "dev": true, - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "optional": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "optional": true - } - } + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "nanoid": { + "version": "3.1.22", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.22.tgz", + "integrity": "sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==", + "dev": true }, "ndarray": { "version": "1.0.19", @@ -4424,110 +4920,22 @@ "double-bits": "^1.1.0" } }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, "node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "events": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", - "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - } - } + "node-releases": { + "version": "1.1.71", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", + "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", + "dev": true }, "normalize-package-data": { "version": "2.5.0", @@ -4545,32 +4953,56 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "optional": true + "dev": true }, "normalize-svg-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-0.1.0.tgz", "integrity": "sha1-RWNg5g7Odfvve11+FgSA5//Rb+U=" }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "dev": true + }, "normals": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/normals/-/normals-1.1.0.tgz", "integrity": "sha1-MltZXtNK/kZ6bFWhT9kIV4f/WcA=" }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "dev": true + "npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + } }, "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "^3.0.0" + }, + "dependencies": { + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + } } }, "number-is-integer": { @@ -4581,12 +5013,6 @@ "is-finite": "^1.0.1" } }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, "numeric": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/numeric/-/numeric-1.2.6.tgz", @@ -4597,53 +5023,27 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "optional": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "optional": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } + "object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "dev": true }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "optional": true, - "requires": { - "isobject": "^3.0.0" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, - "optional": true, "requires": { - "isobject": "^3.0.1" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" } }, "once": { @@ -4654,6 +5054,15 @@ "wrappy": "1" } }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, "optionator": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", @@ -4676,53 +5085,82 @@ "gl-mat4": "^1.0.3" } }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", - "dev": true, - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", "dev": true }, "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { - "p-try": "^1.0.0" + "yocto-queue": "^0.1.0" } }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + }, + "dependencies": { + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + } + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, "requires": { - "p-limit": "^1.1.0" + "aggregate-error": "^3.0.0" } }, "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "pad-left": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-1.0.2.tgz", @@ -4731,38 +5169,19 @@ "repeat-string": "^1.3.0" } }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, "parenthesis": { "version": "3.1.7", "resolved": "https://registry.npmjs.org/parenthesis/-/parenthesis-3.1.7.tgz", "integrity": "sha512-iMtu+HCbLXVrpf6Ys/4YKhcFxbux3xK4ZVB9r+a2kMSqeeQWQoDNYlXIsOjwlT2ldYXZ3k5PVeBnYn7fbAo/Bg==" }, - "parse-asn1": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", - "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", - "dev": true, - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "^1.2.0" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "parse-rect": { @@ -4783,30 +5202,15 @@ "resolved": "https://registry.npmjs.org/parse-unit/-/parse-unit-1.0.1.tgz", "integrity": "sha1-fhu21b7zh0wo45JSaiVBFwKR7s8=" }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true, - "optional": true - }, "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true, - "optional": true + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" }, "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "path-is-absolute": { @@ -4826,18 +5230,13 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" }, - "path-posix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/path-posix/-/path-posix-1.0.0.tgz", - "integrity": "sha1-BrJhE/Vr6rBCVFojv6iAA8ysJg8=" - }, "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "^2.0.0" + "pify": "^3.0.0" } }, "pbf": { @@ -4849,19 +5248,6 @@ "resolve-protobuf-schema": "^2.1.0" } }, - "pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -4893,15 +5279,29 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true, - "optional": true + "dev": true + }, + "pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true }, "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, "planar-dual": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/planar-dual/-/planar-dual-1.0.2.tgz", @@ -5031,12 +5431,92 @@ "numeric": "^1.2.6" } }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "dev": true, + "requires": { + "postcss": "^7.0.5" + } + }, + "postcss-modules-local-by-default": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", + "dev": true, + "requires": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", + "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "dev": true, + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + } + }, + "postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", + "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", "dev": true, - "optional": true + "requires": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true }, "potpack": { "version": "1.0.1", @@ -5048,6 +5528,18 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, + "prettier": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", + "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "dev": true + }, "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -5059,6 +5551,12 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, "protocol-buffers-schema": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.4.0.tgz", @@ -5070,24 +5568,14 @@ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", "dev": true }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "punycode": { @@ -5128,23 +5616,17 @@ "gl-quat": "^1.0.0" } }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, "querystringify": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==" }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, "quickselect": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", @@ -5167,16 +5649,6 @@ "safe-buffer": "^5.1.0" } }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, "rat-vec": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/rat-vec/-/rat-vec-1.1.1.tgz", @@ -5185,38 +5657,61 @@ "big-rat": "^1.0.3" } }, - "read-package-json": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.1.tgz", - "integrity": "sha512-dAiqGtVc/q5doFz6096CcnXhpYk0ZN8dEKVkGLU0CsASt8SrgF6SF7OTKAYubfvFhWaqofl+Y8HK19GR8jwW+A==", + "raw-loader": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", + "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { - "glob": "^7.1.1", - "graceful-fs": "^4.1.2", - "json-parse-better-errors": "^1.0.1", - "normalize-package-data": "^2.0.0", - "npm-normalize-package-bin": "^1.0.0" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" } }, "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "^2.0.0", + "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "path-type": "^3.0.0" } }, "readable-stream": { @@ -5230,14 +5725,13 @@ "string_decoder": "~0.10.x" } }, - "readdirp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", - "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "rechoir": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz", + "integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==", "dev": true, - "optional": true, "requires": { - "picomatch": "^2.2.1" + "resolve": "^1.9.0" } }, "reduce-simplicial-complex": { @@ -5250,22 +5744,29 @@ "compare-oriented-cell": "^1.0.1" } }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "optional": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, "regex-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/regex-regex/-/regex-regex-1.0.0.tgz", "integrity": "sha1-kEih6uuHD01IDavHb8Qs3MC8OnI=" }, + "registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, "regl": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/regl/-/regl-1.7.0.tgz", @@ -5342,37 +5843,11 @@ "regl-scatter2d": "^3.1.9" } }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true, - "optional": true - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true, - "optional": true - }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -5386,6 +5861,21 @@ "path-parse": "^1.0.6" } }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + }, "resolve-protobuf-schema": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", @@ -5394,29 +5884,31 @@ "protocol-buffers-schema": "^3.3.1" } }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true, - "optional": true - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "dev": true, - "optional": true + "requires": { + "lowercase-keys": "^1.0.0" + } }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "requires": { - "align-text": "^0.1.1" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" } }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, "right-now": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz", @@ -5431,16 +5923,6 @@ "glob": "^7.1.3" } }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, "robust-compress": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/robust-compress/-/robust-compress-1.0.0.tgz", @@ -5532,82 +6014,84 @@ "resolved": "https://registry.npmjs.org/robust-sum/-/robust-sum-1.0.0.tgz", "integrity": "sha1-FmRuUlKStNJdgnV6KGlV4Lv6U9k=" }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, "rw": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "optional": true, - "requires": { - "ret": "~0.1.10" - } + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true }, "sane-topojson": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/sane-topojson/-/sane-topojson-4.0.0.tgz", "integrity": "sha512-bJILrpBboQfabG3BNnHI2hZl52pbt80BE09u4WhnrmzuF2JbMKZdl62G5glXskJ46p+gxE2IzOwGj/awR4g8AA==" }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", "dev": true, - "optional": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "randombytes": "^2.1.0" } }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "kind-of": "^6.0.2" } }, "shallow-copy": { @@ -5630,6 +6114,12 @@ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, + "shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", + "dev": true + }, "signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", @@ -5717,157 +6207,108 @@ } } }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "sort-object-keys": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sort-object-keys/-/sort-object-keys-1.1.3.tgz", + "integrity": "sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==", + "dev": true + }, + "sort-package-json": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/sort-package-json/-/sort-package-json-1.44.0.tgz", + "integrity": "sha512-u9GUZvpavUCXV5SbEqXu9FRbsJrYU6WM10r3zA0gymGPufK5X82MblCLh9GW9l46pXKEZvK+FA3eVTqC4oMp4A==", "dev": true, - "optional": true, "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "detect-indent": "^6.0.0", + "detect-newline": "3.1.0", + "git-hooks-list": "1.0.3", + "globby": "10.0.0", + "is-plain-obj": "2.1.0", + "sort-object-keys": "^1.1.3" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "optional": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "optional": true + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true } } }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-loader": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-1.1.3.tgz", + "integrity": "sha512-6YHeF+XzDOrT/ycFJNI53cgEsp/tHTMl37hi7uVyqFAlTXW109JazaQCkbc+jjoL2637qkH1amLi+JzrIpt5lA==", "dev": true, - "optional": true, "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "abab": "^2.0.5", + "iconv-lite": "^0.6.2", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "source-map": "^0.6.1", + "whatwg-mimetype": "^2.3.0" }, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "optional": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", "dev": true, - "optional": true, "requires": { - "kind-of": "^6.0.0" + "safer-buffer": ">= 2.1.2 < 3.0.0" } }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", "dev": true, - "optional": true, "requires": { - "kind-of": "^6.0.0" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", "dev": true, - "optional": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "optional": true } } }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.2.0" - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "dev": true, - "optional": true, "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true, - "optional": true - }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -5900,163 +6341,40 @@ "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", "dev": true }, - "split-polygon": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/split-polygon/-/split-polygon-1.0.0.tgz", - "integrity": "sha1-DqzIoTanaxKj2VJW6n2kXbDC0kc=", - "requires": { - "robust-dot-product": "^1.0.0", - "robust-sum": "^1.0.0" - } - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "optional": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" - }, - "stack-trace": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", - "integrity": "sha1-qPbq7KkGdMMz58Q5U/J1tFFRBpU=" - }, - "static-eval": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.0.tgz", - "integrity": "sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==", - "requires": { - "escodegen": "^1.11.1" - } - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "optional": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "optional": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } + "split-polygon": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/split-polygon/-/split-polygon-1.0.0.tgz", + "integrity": "sha1-DqzIoTanaxKj2VJW6n2kXbDC0kc=", + "requires": { + "robust-dot-product": "^1.0.0", + "robust-sum": "^1.0.0" } }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" + }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", "dev": true, "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } + "minipass": "^3.1.1" + } + }, + "stack-trace": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", + "integrity": "sha1-qPbq7KkGdMMz58Q5U/J1tFFRBpU=" + }, + "static-eval": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.0.tgz", + "integrity": "sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==", + "requires": { + "escodegen": "^1.11.1" } }, "stream-shift": { @@ -6089,36 +6407,45 @@ } }, "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "string.prototype.padend": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.2.tgz", + "integrity": "sha512-/AQFLdYvePENU3W5rgurfWSMU6n+Ww8n/3cUt7E+vPBB/D7YDG8x+qjoFs4M/alR2bW7Qg6xMjVwWUOvuQ0XpQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" } }, "string_decoder": { @@ -6127,12 +6454,12 @@ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" }, "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "^5.0.0" } }, "strip-bom": { @@ -6141,10 +6468,16 @@ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, "strongly-connected-components": { @@ -6152,6 +6485,29 @@ "resolved": "https://registry.npmjs.org/strongly-connected-components/-/strongly-connected-components-1.0.1.tgz", "integrity": "sha1-CSDitN9nyOrulsa2I0/inoc9upk=" }, + "style-loader": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.3.0.tgz", + "integrity": "sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.7.0" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + } + } + }, "supercluster": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.0.tgz", @@ -6165,6 +6521,15 @@ "resolved": "https://registry.npmjs.org/superscript-text/-/superscript-text-1.0.0.tgz", "integrity": "sha1-58snUlZzYN9QvrBhDOjfPXHY39g=" }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, "surface-nets": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/surface-nets/-/surface-nets-1.0.2.tgz", @@ -6213,12 +6578,106 @@ "svg-path-bounds": "^1.0.1" } }, + "svg-url-loader": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/svg-url-loader/-/svg-url-loader-6.0.0.tgz", + "integrity": "sha512-Qr5SCKxyxKcRnvnVrO3iQj9EX/v40UiGEMshgegzV7vpo3yc+HexELOdtWcA3MKjL8IyZZ1zOdcILmDEa/8JJQ==", + "dev": true, + "requires": { + "file-loader": "~6.0.0", + "loader-utils": "~2.0.0" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + } + } + }, "tapable": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.9.tgz", - "integrity": "sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", "dev": true }, + "tar": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", + "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, + "terser": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.6.1.tgz", + "integrity": "sha512-yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.19" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz", + "integrity": "sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==", + "dev": true, + "requires": { + "cacache": "^15.0.5", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.5.0", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "source-map": "^0.6.1", + "terser": "^5.3.4", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, "text-cache": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/text-cache/-/text-cache-4.2.2.tgz", @@ -6227,6 +6686,12 @@ "vectorize-text": "^3.2.1" } }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, "through2": { "version": "0.6.5", "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", @@ -6236,15 +6701,6 @@ "xtend": ">=4.0.0 <4.1.0-0" } }, - "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", - "dev": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, "tinycolor2": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", @@ -6255,6 +6711,15 @@ "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, "to-array-buffer": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/to-array-buffer/-/to-array-buffer-3.2.0.tgz", @@ -6265,27 +6730,11 @@ "string-to-arraybuffer": "^1.0.0" } }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, "to-float32": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-float32/-/to-float32-1.0.1.tgz", "integrity": "sha512-nOy2WSwae3xhZbc+05xiCuU3ZPPmH0L4Rg4Q1qiOGFSuNSCTB9nVJaGgGl3ZScxAclX/L8hJuDHJGDAzbfuKCQ==" }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2" - } - }, "to-px": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-px/-/to-px-1.0.1.tgz", @@ -6294,29 +6743,30 @@ "parse-unit": "^1.0.1" } }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "optional": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "optional": true, "requires": { "is-number": "^7.0.0" } }, + "to-string-loader": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/to-string-loader/-/to-string-loader-1.1.6.tgz", + "integrity": "sha512-VNg62//PS1WfNwrK3n7t6wtK5Vdtx/qeYLLEioW46VMlYUwAYT6wnfB+OwS2FMTCalIHu0tk79D3RXX8ttmZTQ==", + "dev": true, + "requires": { + "loader-utils": "^1.0.0" + } + }, "to-uint8": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/to-uint8/-/to-uint8-1.4.1.tgz", @@ -6355,10 +6805,73 @@ "cdt2d": "^1.0.0" } }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "ts-loader": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-8.1.0.tgz", + "integrity": "sha512-YiQipGGAFj2zBfqLhp28yUvPP9jUGqHxRzrGYuc82Z2wM27YIHbElXiaZDc93c3x0mz4zvBmS6q/DgExpdj37A==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "enhanced-resolve": "^4.0.0", + "loader-utils": "^2.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "turntable-camera-controller": { @@ -6394,6 +6907,12 @@ "prelude-ls": "~1.1.2" } }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + }, "type-name": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/type-name/-/type-name-2.0.2.tgz", @@ -6414,159 +6933,67 @@ } }, "typescript": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.1.6.tgz", - "integrity": "sha512-tDMYfVtvpb96msS1lDX9MEdHrW4yOuZ4Kdc4Him9oU796XldPYF/t2+uKoX0BBa0hXXwDlqYQbXY5Rzjzc5hBA==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", + "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", "dev": true }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "requires": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "requires": { - "camelcase": "^1.0.2", - "cliui": "^2.1.0", - "decamelize": "^1.0.0", - "window-size": "0.1.0" - } - } - } - }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true, - "optional": true - }, - "uglifyjs-webpack-plugin": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", - "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", "dev": true, "requires": { - "source-map": "^0.5.6", - "uglify-js": "^2.8.29", - "webpack-sources": "^1.0.1" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" } }, "underscore": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz", - "integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==" + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==" }, "union-find": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/union-find/-/union-find-1.0.2.tgz", "integrity": "sha1-KSusQV5q06iVNdI3AQ20pTYoTlg=" }, - "union-value": { + "uniq": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, - "optional": true, "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" + "unique-slug": "^2.0.0" } }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true }, "unquote": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "optional": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "optional": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "optional": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true, - "optional": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true, - "optional": true - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "optional": true - }, "update-diff": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/update-diff/-/update-diff-1.1.0.tgz", @@ -6580,28 +7007,38 @@ "punycode": "^2.1.0" } }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true, - "optional": true - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", "dev": true, "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" }, "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } } } }, @@ -6614,28 +7051,13 @@ "requires-port": "^1.0.0" } }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "optional": true - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } + "prepend-http": "^2.0.0" } }, "util-deprecate": { @@ -6686,6 +7108,12 @@ "validate.io-string-primitive": "^1.0.0" } }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -6786,12 +7214,6 @@ "triangulate-polyline": "^1.0.0" } }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, "vt-pbf": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.1.tgz", @@ -6803,237 +7225,13 @@ } }, "watchpack": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz", - "integrity": "sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g==", - "dev": true, - "requires": { - "chokidar": "^3.4.0", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.0" - } - }, - "watchpack-chokidar2": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", - "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz", + "integrity": "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==", "dev": true, - "optional": true, "requires": { - "chokidar": "^2.1.8" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "optional": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "optional": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "optional": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "optional": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true, - "optional": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "optional": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "optional": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" } }, "weak-map": { @@ -7055,87 +7253,135 @@ } }, "webpack": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.12.0.tgz", - "integrity": "sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==", - "dev": true, - "requires": { - "acorn": "^5.0.0", - "acorn-dynamic-import": "^2.0.0", - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0", - "async": "^2.1.2", - "enhanced-resolve": "^3.4.0", - "escope": "^3.6.0", - "interpret": "^1.0.0", - "json-loader": "^0.5.4", - "json5": "^0.5.1", - "loader-runner": "^2.3.0", - "loader-utils": "^1.1.0", - "memory-fs": "~0.4.1", - "mkdirp": "~0.5.0", - "node-libs-browser": "^2.0.0", - "source-map": "^0.5.3", - "supports-color": "^4.2.1", - "tapable": "^0.2.7", - "uglifyjs-webpack-plugin": "^0.4.6", - "watchpack": "^1.4.0", - "webpack-sources": "^1.0.1", - "yargs": "^8.0.2" + "version": "5.31.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.31.0.tgz", + "integrity": "sha512-3fUfZT/FUuThWSSyL32Fsh7weUUfYP/Fjc/cGSbla5KiSo0GtI1JMssCRUopJTvmLjrw05R2q7rlLtiKdSzkzQ==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.0", + "@types/estree": "^0.0.46", + "@webassemblyjs/ast": "1.11.0", + "@webassemblyjs/wasm-edit": "1.11.0", + "@webassemblyjs/wasm-parser": "1.11.0", + "acorn": "^8.0.4", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.7.0", + "es-module-lexer": "^0.4.0", + "eslint-scope": "^5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.4", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.0.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.1", + "watchpack": "^2.0.0", + "webpack-sources": "^2.1.1" }, "dependencies": { "acorn": { - "version": "5.7.4", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", - "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz", + "integrity": "sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==", "dev": true }, - "acorn-dynamic-import": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", - "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", + "enhanced-resolve": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz", + "integrity": "sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw==", "dev": true, "requires": { - "acorn": "^4.0.3" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - } + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" } }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "tapable": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", + "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", "dev": true }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "terser-webpack-plugin": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz", + "integrity": "sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q==", + "dev": true, + "requires": { + "jest-worker": "^26.6.2", + "p-limit": "^3.1.0", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "source-map": "^0.6.1", + "terser": "^5.5.1" + } }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "webpack-sources": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz", + "integrity": "sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==", "dev": true, "requires": { - "has-flag": "^2.0.0" + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" } } } }, + "webpack-cli": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.6.0.tgz", + "integrity": "sha512-9YV+qTcGMjQFiY7Nb1kmnupvb1x40lfpj8pwdO/bom+sQiP4OBMKjHq29YQrlDWDPZO9r/qWaRRywKaRDKqBTA==", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.0.2", + "@webpack-cli/info": "^1.2.3", + "@webpack-cli/serve": "^1.3.1", + "colorette": "^1.2.1", + "commander": "^7.0.0", + "enquirer": "^2.3.6", + "execa": "^5.0.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "v8-compile-cache": "^2.2.0", + "webpack-merge": "^5.7.3" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + } + } + }, + "webpack-merge": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz", + "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + } + }, "webpack-sources": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", @@ -7146,6 +7392,12 @@ "source-map": "~0.6.1" } }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -7155,16 +7407,23 @@ "isexe": "^2.0.0" } }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", "dev": true }, "word-wrap": { @@ -7172,43 +7431,48 @@ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - }, - "world-calendars": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/world-calendars/-/world-calendars-1.0.3.tgz", - "integrity": "sha1-slxQMrokEo/8QdCfr0pewbnBQzU=", - "requires": { - "object-assign": "^4.1.0" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "worker-loader": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/worker-loader/-/worker-loader-3.0.8.tgz", + "integrity": "sha512-XQyQkIFeRVC7f7uRhFdNMe/iJOdO6zxAaR3EWbDp45v3mDhrTi+++oswKNxShUNjPC/1xUp5DB29YKLhFo129g==", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" }, "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" } } } }, + "world-calendars": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/world-calendars/-/world-calendars-1.0.3.tgz", + "integrity": "sha1-slxQMrokEo/8QdCfr0pewbnBQzU=", + "requires": { + "object-assign": "^4.1.0" + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -7231,80 +7495,16 @@ "dev": true }, "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, - "yargs": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", - "dev": true, - "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^2.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^7.0.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - } - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", - "dev": true, - "requires": { - "camelcase": "^4.1.0" - }, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - } - } + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true }, "zero-crossings": { "version": "1.0.1", diff --git a/packages/javascript/plotlywidget/package.json b/packages/javascript/plotlywidget/package.json index adc9b7b0b0..faf93ada50 100644 --- a/packages/javascript/plotlywidget/package.json +++ b/packages/javascript/plotlywidget/package.json @@ -1,10 +1,10 @@ { "name": "plotlywidget", "version": "4.14.3", - "description": "The plotly JupyterLab extension", + "description": "The plotly Jupyter extension", "author": "The plotly.py team", "license": "MIT", - "main": "src/index.js", + "main": "lib/index.js", "repository": { "type": "git", "url": "https://github.com/plotly/plotly.py" @@ -17,28 +17,60 @@ "plotly" ], "files": [ - "src/**/*.js", + "lib/**/*.js", "dist/*.js", "style/*.*" ], "scripts": { - "build": "webpack", - "clean": "rimraf dist/ && rimraf ../../python/plotly/plotlywidget/static'", - "test": "echo \"Error: no test specified\" && exit 1" + "build": "npm run build:lib && npm run build:nbextension && npm run build:labextension:dev", + "build:prod": "npm run build:lib && npm run build:nbextension && npm run build:labextension", + "build:labextension": "jupyter labextension build .", + "build:labextension:dev": "jupyter labextension build --development True .", + "build:lib": "tsc", + "build:nbextension": "webpack --mode=production", + "clean": "npm run clean:lib && npm run clean:nbextension && npm run clean:labextension", + "clean:lib": "rimraf lib", + "clean:labextension": "rimraf ../../python/plotly/plotlywidget/labextension", + "clean:nbextension": "rimraf ../../python/plotly/plotlywidget/nbextension/index.js*", + "lint": "eslint . --ext .ts,.tsx --fix", + "lint:check": "eslint . --ext .ts,.tsx", + "prepack": "npm run build:lib", + "test": "echo \"Error: no test specified\" && exit 1", + "watch": "npm-run-all -p watch:*", + "watch:lib": "tsc -w", + "watch:nbextension": "webpack --watch" }, "devDependencies": { - "webpack": "^3.10.0", - "rimraf": "^2.6.1", - "ify-loader": "^1.1.0", - "typescript": "~3.1.1" + "@jupyterlab/builder": "^3.0.0", + "@lumino/application": "^1.6.0", + "@types/plotly.js": "^1.54.10", + "@types/webpack-env": "^1.13.6", + "acorn": "^7.2.0", + "css-loader": "^3.2.0", + "fs-extra": "^7.0.0", + "mkdirp": "^0.5.1", + "npm-run-all": "^4.1.3", + "prettier": "^2.0.5", + "rimraf": "^2.6.2", + "source-map-loader": "^1.1.3", + "style-loader": "^1.0.0", + "ts-loader": "^8.0.0", + "typescript": "~4.1.3", + "webpack": "^5.0.0", + "webpack-cli": "^4.0.0" }, "dependencies": { - "plotly.js": "^1.58.4", "@jupyter-widgets/base": "^2.0.0 || ^3.0.0 || ^4.0.0", - "lodash": "^4.17.4" + "@jupyterlab/rendermime-interfaces": "^1.3.0 || ^2.0.0 || ^3.0.0", + "@lumino/messaging": "^1.2.3", + "@lumino/widgets": "^1.8.1", + "lodash": "^4.17.4", + "plotly.js": "^1.58.4" }, "jupyterlab": { - "extension": "src/jupyterlab-plugin.js", + "extension": "lib/jupyterlab-plugin", + "mimeExtension": "lib/plotly-renderer", + "outputDir": "../../python/plotly/plotlywidget/labextension", "sharedPackages": { "@jupyter-widgets/base": { "bundled": false, diff --git a/packages/javascript/plotlywidget/src/Figure.js b/packages/javascript/plotlywidget/src/Figure.ts similarity index 75% rename from packages/javascript/plotlywidget/src/Figure.js rename to packages/javascript/plotlywidget/src/Figure.ts index 62b301a8ec..265544fd5d 100644 --- a/packages/javascript/plotlywidget/src/Figure.js +++ b/packages/javascript/plotlywidget/src/Figure.ts @@ -1,9 +1,128 @@ -var widgets = require("@jupyter-widgets/base"); -var _ = require("lodash"); +import { + DOMWidgetModel, + DOMWidgetView, + ISerializers, +} from "@jupyter-widgets/base"; -window.PlotlyConfig = {MathJaxConfig: "local"}; -var Plotly = require("plotly.js/dist/plotly"); -var semver_range = "^" + require("../package.json").version; +import _ from "lodash"; + +import Plotly from "plotly.js/dist/plotly"; + +import { MODULE_NAME, MODULE_VERSION } from "./version"; + +// @ts-ignore +window.PlotlyConfig = { MathJaxConfig: "local" }; +const semver_range = "^" + MODULE_VERSION; + +type InputDeviceState = { + alt: any; + ctrl: any; + meta: any; + shift: any; + button: any; + buttons: any; +}; + +type Js2PyLayoutDeltaMsg = { + layout_delta: any; + layout_edit_id: any; +}; + +type Js2PyMsg = { + source_view_id: string; +}; + +type Js2PyPointsCallbackMsg = { + event_type: string; + points: Points; + device_state: InputDeviceState; + selector: Selector; +}; + +type Js2PyRelayoutMsg = Js2PyMsg & { + relayout_data: any; +}; + +type Js2PyRestyleMsg = Js2PyMsg & { + style_data: any; + style_traces?: null | number | number[]; +}; + +type Js2PyTraceDeltasMsg = { + trace_deltas: any; + trace_edit_id: any; +}; + +type Js2PyUpdateMsg = Js2PyMsg & { + style_data: any; + layout_data: any; + style_traces?: null | number | number[]; +}; + +type Points = { + trace_indexes: number[]; + point_indexes: number[]; + xs: number[]; + ys: number[]; + zs?: number[]; +}; + +type Py2JsMsg = { + trace_edit_id?: any; + layout_edit_id?: any; + source_view_id?: any; +}; + +type Py2JsAddTracesMsg = Py2JsMsg & { + trace_data: any; +}; + +type Py2JsAnimateMsg = Py2JsMsg & { + style_data: any; + layout_data: any; + style_traces?: null | number | number[]; + animation_opts?: any; +}; + +type Py2JsDeleteTracesMsg = Py2JsMsg & { + delete_inds: number[]; +}; + +type Py2JsMoveTracesMsg = { + current_trace_inds: number[]; + new_trace_inds: number[]; +}; + +type Py2JsRestyleMsg = Py2JsMsg & { + restyle_data: any; + restyle_traces?: null | number | number[]; +}; + +type Py2JsRelayoutMsg = Py2JsMsg & { + relayout_data: any; +}; + +type Py2JsRemoveLayoutPropsMsg = { + remove_props: any; +}; + +type Py2JsRemoveTracePropsMsg = { + remove_props: any; + remove_trace: any; +}; + +type Py2JsUpdateMsg = Py2JsMsg & { + style_data: any; + layout_data: any; + style_traces?: null | number | number[]; +}; + +type Selector = { + type: "box" | "lasso"; + selector_state: + | { xrange: number[]; yrange: number[] } + | { xs: number[]; ys: number[] }; +}; // Model // ===== @@ -15,17 +134,18 @@ var semver_range = "^" + require("../package.json").version; * even before the widget is first displayed in the Notebook * @type {widgets.DOMWidgetModel} */ -var FigureModel = widgets.DOMWidgetModel.extend( - { - defaults: _.extend(widgets.DOMWidgetModel.prototype.defaults(), { +export class FigureModel extends DOMWidgetModel { + defaults() { + return { + ...super.defaults(), // Model metadata // -------------- - _model_name: "FigureModel", - _view_name: "FigureView", - _model_module: "plotlywidget", - _view_module: "plotlywidget", - _view_module_version: semver_range, - _model_module_version: semver_range, + _model_name: FigureModel.model_name, + _model_module: FigureModel.model_module, + _model_module_version: FigureModel.model_module_version, + _view_name: FigureModel.view_name, + _view_module: FigureModel.view_module, + _view_module_version: FigureModel.view_module_version, // Data and Layout // --------------- @@ -381,295 +501,295 @@ var FigureModel = widgets.DOMWidgetModel.extend( * requested by the Python side */ _last_trace_edit_id: 0, - }), - - /** - * Initialize FigureModel. Called when the Python FigureWidget is first - * constructed - */ - initialize: function () { - FigureModel.__super__.initialize.apply(this, arguments); - - this.on("change:_data", this.do_data, this); - this.on("change:_layout", this.do_layout, this); - this.on("change:_py2js_addTraces", this.do_addTraces, this); - this.on("change:_py2js_deleteTraces", this.do_deleteTraces, this); - this.on("change:_py2js_moveTraces", this.do_moveTraces, this); - this.on("change:_py2js_restyle", this.do_restyle, this); - this.on("change:_py2js_relayout", this.do_relayout, this); - this.on("change:_py2js_update", this.do_update, this); - this.on("change:_py2js_animate", this.do_animate, this); - this.on( - "change:_py2js_removeLayoutProps", - this.do_removeLayoutProps, - this - ); - this.on("change:_py2js_removeTraceProps", this.do_removeTraceProps, this); - }, + }; + } - /** - * Input a trace index specification and return an Array of trace - * indexes where: - * - * - null|undefined -> Array of all traces - * - Trace index as Number -> Single element array of input index - * - Array of trace indexes -> Input array unchanged - * - * @param {undefined|null|Number|Array.} trace_indexes - * @returns {Array.} - * Array of trace indexes - * @private - */ - _normalize_trace_indexes: function (trace_indexes) { - if (trace_indexes === null || trace_indexes === undefined) { - var numTraces = this.get("_data").length; - trace_indexes = _.range(numTraces); - } - if (!Array.isArray(trace_indexes)) { - // Make sure idx is an array - trace_indexes = [trace_indexes]; - } - return trace_indexes; - }, + /** + * Initialize FigureModel. Called when the Python FigureWidget is first + * constructed + */ + initialize() { + super.initialize.apply(this, arguments); + + this.on("change:_data", this.do_data, this); + this.on("change:_layout", this.do_layout, this); + this.on("change:_py2js_addTraces", this.do_addTraces, this); + this.on("change:_py2js_deleteTraces", this.do_deleteTraces, this); + this.on("change:_py2js_moveTraces", this.do_moveTraces, this); + this.on("change:_py2js_restyle", this.do_restyle, this); + this.on("change:_py2js_relayout", this.do_relayout, this); + this.on("change:_py2js_update", this.do_update, this); + this.on("change:_py2js_animate", this.do_animate, this); + this.on("change:_py2js_removeLayoutProps", this.do_removeLayoutProps, this); + this.on("change:_py2js_removeTraceProps", this.do_removeTraceProps, this); + } + + /** + * Input a trace index specification and return an Array of trace + * indexes where: + * + * - null|undefined -> Array of all traces + * - Trace index as Number -> Single element array of input index + * - Array of trace indexes -> Input array unchanged + * + * @param {undefined|null|Number|Array.} trace_indexes + * @returns {Array.} + * Array of trace indexes + * @private + */ + _normalize_trace_indexes(trace_indexes?: null | number | number[]): number[] { + if (trace_indexes === null || trace_indexes === undefined) { + var numTraces = this.get("_data").length; + trace_indexes = _.range(numTraces); + } + if (!Array.isArray(trace_indexes)) { + // Make sure idx is an array + trace_indexes = [trace_indexes]; + } + return trace_indexes; + } + + /** + * Log changes to the _data trait + * + * This should only happed on FigureModel initialization + */ + do_data() {} + + /** + * Log changes to the _layout trait + * + * This should only happed on FigureModel initialization + */ + do_layout() {} + + /** + * Handle addTraces message + */ + do_addTraces() { + // add trace to plot + /** @type {Py2JsAddTracesMsg} */ + var msgData: Py2JsAddTracesMsg = this.get("_py2js_addTraces"); + + if (msgData !== null) { + var currentTraces = this.get("_data"); + var newTraces = msgData.trace_data; + _.forEach(newTraces, function (newTrace) { + currentTraces.push(newTrace); + }); + } + } + + /** + * Handle deleteTraces message + */ + do_deleteTraces() { + // remove traces from plot + + /** @type {Py2JsDeleteTracesMsg} */ + var msgData: Py2JsDeleteTracesMsg = this.get("_py2js_deleteTraces"); - /** - * Log changes to the _data trait - * - * This should only happed on FigureModel initialization - */ - do_data: function () {}, - - /** - * Log changes to the _layout trait - * - * This should only happed on FigureModel initialization - */ - do_layout: function () {}, - - /** - * Handle addTraces message - */ - do_addTraces: function () { - // add trace to plot - /** @type {Py2JsAddTracesMsg} */ - var msgData = this.get("_py2js_addTraces"); - - if (msgData !== null) { - var currentTraces = this.get("_data"); - var newTraces = msgData.trace_data; - _.forEach(newTraces, function (newTrace) { - currentTraces.push(newTrace); + if (msgData !== null) { + var delete_inds = msgData.delete_inds; + var tracesData = this.get("_data"); + + // Remove del inds in reverse order so indexes remain valid + // throughout loop + delete_inds + .slice() + .reverse() + .forEach(function (del_ind) { + tracesData.splice(del_ind, 1); }); - } - }, + } + } - /** - * Handle deleteTraces message - */ - do_deleteTraces: function () { - // remove traces from plot - - /** @type {Py2JsDeleteTracesMsg} */ - var msgData = this.get("_py2js_deleteTraces"); - - if (msgData !== null) { - var delete_inds = msgData.delete_inds; - var tracesData = this.get("_data"); - - // Remove del inds in reverse order so indexes remain valid - // throughout loop - delete_inds - .slice() - .reverse() - .forEach(function (del_ind) { - tracesData.splice(del_ind, 1); - }); - } - }, + /** + * Handle moveTraces message + */ + do_moveTraces() { + /** @type {Py2JsMoveTracesMsg} */ + var msgData: Py2JsMoveTracesMsg = this.get("_py2js_moveTraces"); - /** - * Handle moveTraces message - */ - do_moveTraces: function () { - /** @type {Py2JsMoveTracesMsg} */ - var msgData = this.get("_py2js_moveTraces"); + if (msgData !== null) { + var tracesData = this.get("_data"); + var currentInds = msgData.current_trace_inds; + var newInds = msgData.new_trace_inds; - if (msgData !== null) { - var tracesData = this.get("_data"); - var currentInds = msgData.current_trace_inds; - var newInds = msgData.new_trace_inds; + performMoveTracesLike(tracesData, currentInds, newInds); + } + } - performMoveTracesLike(tracesData, currentInds, newInds); - } - }, + /** + * Handle restyle message + */ + do_restyle() { + /** @type {Py2JsRestyleMsg} */ + var msgData: Py2JsRestyleMsg = this.get("_py2js_restyle"); + if (msgData !== null) { + var restyleData = msgData.restyle_data; + var restyleTraces = this._normalize_trace_indexes(msgData.restyle_traces); + performRestyleLike(this.get("_data"), restyleData, restyleTraces); + } + } - /** - * Handle restyle message - */ - do_restyle: function () { - /** @type {Py2JsRestyleMsg} */ - var msgData = this.get("_py2js_restyle"); - if (msgData !== null) { - var restyleData = msgData.restyle_data; - var restyleTraces = this._normalize_trace_indexes( - msgData.restyle_traces - ); - performRestyleLike(this.get("_data"), restyleData, restyleTraces); - } - }, + /** + * Handle relayout message + */ + do_relayout() { + /** @type {Py2JsRelayoutMsg} */ + var msgData: Py2JsRelayoutMsg = this.get("_py2js_relayout"); - /** - * Handle relayout message - */ - do_relayout: function () { - /** @type {Py2JsRelayoutMsg} */ - var msgData = this.get("_py2js_relayout"); + if (msgData !== null) { + performRelayoutLike(this.get("_layout"), msgData.relayout_data); + } + } - if (msgData !== null) { - performRelayoutLike(this.get("_layout"), msgData.relayout_data); - } - }, + /** + * Handle update message + */ + do_update() { + /** @type {Py2JsUpdateMsg} */ + var msgData: Py2JsUpdateMsg = this.get("_py2js_update"); - /** - * Handle update message - */ - do_update: function () { - /** @type {Py2JsUpdateMsg} */ - var msgData = this.get("_py2js_update"); - - if (msgData !== null) { - var style = msgData.style_data; - var layout = msgData.layout_data; - var styleTraces = this._normalize_trace_indexes(msgData.style_traces); - performRestyleLike(this.get("_data"), style, styleTraces); - performRelayoutLike(this.get("_layout"), layout); - } - }, + if (msgData !== null) { + var style = msgData.style_data; + var layout = msgData.layout_data; + var styleTraces = this._normalize_trace_indexes(msgData.style_traces); + performRestyleLike(this.get("_data"), style, styleTraces); + performRelayoutLike(this.get("_layout"), layout); + } + } - /** - * Handle animate message - */ - do_animate: function () { - /** @type {Py2JsAnimateMsg} */ - var msgData = this.get("_py2js_animate"); - if (msgData !== null) { - var styles = msgData.style_data; - var layout = msgData.layout_data; - var trace_indexes = this._normalize_trace_indexes(msgData.style_traces); - - for (var i = 0; i < styles.length; i++) { - var style = styles[i]; - var trace_index = trace_indexes[i]; - var trace = this.get("_data")[trace_index]; - performRelayoutLike(trace, style); - } + /** + * Handle animate message + */ + do_animate() { + /** @type {Py2JsAnimateMsg} */ + var msgData: Py2JsAnimateMsg = this.get("_py2js_animate"); + if (msgData !== null) { + var styles = msgData.style_data; + var layout = msgData.layout_data; + var trace_indexes = this._normalize_trace_indexes(msgData.style_traces); - performRelayoutLike(this.get("_layout"), layout); + for (var i = 0; i < styles.length; i++) { + var style = styles[i]; + var trace_index = trace_indexes[i]; + var trace = this.get("_data")[trace_index]; + performRelayoutLike(trace, style); } - }, - /** - * Handle removeLayoutProps message - */ - do_removeLayoutProps: function () { - /** @type {Py2JsRemoveLayoutPropsMsg} */ - var msgData = this.get("_py2js_removeLayoutProps"); - - if (msgData !== null) { - var keyPaths = msgData.remove_props; - var layout = this.get("_layout"); - performRemoveProps(layout, keyPaths); - } - }, + performRelayoutLike(this.get("_layout"), layout); + } + } - /** - * Handle removeTraceProps message - */ - do_removeTraceProps: function () { - /** @type {Py2JsRemoveTracePropsMsg} */ - var msgData = this.get("_py2js_removeTraceProps"); - if (msgData !== null) { - var keyPaths = msgData.remove_props; - var traceIndex = msgData.remove_trace; - var trace = this.get("_data")[traceIndex]; - - performRemoveProps(trace, keyPaths); - } - }, - }, - { - serializers: _.extend( - { - _data: { deserialize: py2js_deserializer, serialize: js2py_serializer }, - _layout: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _py2js_addTraces: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _py2js_deleteTraces: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _py2js_moveTraces: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _py2js_restyle: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _py2js_relayout: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _py2js_update: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _py2js_animate: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _py2js_removeLayoutProps: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _py2js_removeTraceProps: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _js2py_restyle: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _js2py_relayout: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _js2py_update: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _js2py_layoutDelta: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _js2py_traceDeltas: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _js2py_pointsCallback: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - }, - widgets.DOMWidgetModel.serializers - ), + /** + * Handle removeLayoutProps message + */ + do_removeLayoutProps() { + /** @type {Py2JsRemoveLayoutPropsMsg} */ + var msgData: Py2JsRemoveLayoutPropsMsg = this.get( + "_py2js_removeLayoutProps" + ); + + if (msgData !== null) { + var keyPaths = msgData.remove_props; + var layout = this.get("_layout"); + performRemoveProps(layout, keyPaths); + } } -); + + /** + * Handle removeTraceProps message + */ + do_removeTraceProps() { + /** @type {Py2JsRemoveTracePropsMsg} */ + var msgData: Py2JsRemoveTracePropsMsg = this.get("_py2js_removeTraceProps"); + if (msgData !== null) { + var keyPaths = msgData.remove_props; + var traceIndex = msgData.remove_trace; + var trace = this.get("_data")[traceIndex]; + + performRemoveProps(trace, keyPaths); + } + } + + static serializers: ISerializers = { + ...DOMWidgetModel.serializers, + _data: { deserialize: py2js_deserializer, serialize: js2py_serializer }, + _layout: { + deserialize: py2js_deserializer, + serialize: js2py_serializer, + }, + _py2js_addTraces: { + deserialize: py2js_deserializer, + serialize: js2py_serializer, + }, + _py2js_deleteTraces: { + deserialize: py2js_deserializer, + serialize: js2py_serializer, + }, + _py2js_moveTraces: { + deserialize: py2js_deserializer, + serialize: js2py_serializer, + }, + _py2js_restyle: { + deserialize: py2js_deserializer, + serialize: js2py_serializer, + }, + _py2js_relayout: { + deserialize: py2js_deserializer, + serialize: js2py_serializer, + }, + _py2js_update: { + deserialize: py2js_deserializer, + serialize: js2py_serializer, + }, + _py2js_animate: { + deserialize: py2js_deserializer, + serialize: js2py_serializer, + }, + _py2js_removeLayoutProps: { + deserialize: py2js_deserializer, + serialize: js2py_serializer, + }, + _py2js_removeTraceProps: { + deserialize: py2js_deserializer, + serialize: js2py_serializer, + }, + _js2py_restyle: { + deserialize: py2js_deserializer, + serialize: js2py_serializer, + }, + _js2py_relayout: { + deserialize: py2js_deserializer, + serialize: js2py_serializer, + }, + _js2py_update: { + deserialize: py2js_deserializer, + serialize: js2py_serializer, + }, + _js2py_layoutDelta: { + deserialize: py2js_deserializer, + serialize: js2py_serializer, + }, + _js2py_traceDeltas: { + deserialize: py2js_deserializer, + serialize: js2py_serializer, + }, + _js2py_pointsCallback: { + deserialize: py2js_deserializer, + serialize: js2py_serializer, + }, + }; + + static model_name = "FigureModel"; + static model_module = MODULE_NAME; + static model_module_version = semver_range; + static view_name = "FigureView"; + static view_module = MODULE_NAME; + static view_module_version = semver_range; +} // View // ==== @@ -682,7 +802,9 @@ var FigureModel = widgets.DOMWidgetModel.extend( * * @type {widgets.DOMWidgetView} */ -var FigureView = widgets.DOMWidgetView.extend({ +export class FigureView extends DOMWidgetView { + viewID: string; + /** * The perform_render method is called by processPhosphorMessage * after the widget's DOM element has been attached to the notebook @@ -690,7 +812,7 @@ var FigureView = widgets.DOMWidgetView.extend({ * FigureModel, and it won't happen at all if the Python FigureWidget * is never displayed in a notebook output cell */ - perform_render: function () { + perform_render() { var that = this; // Wire up message property callbacks @@ -706,8 +828,8 @@ var FigureView = widgets.DOMWidgetView.extend({ // MathJax configuration // --------------------- - if (window.MathJax) { - MathJax.Hub.Config({ SVG: { font: "STIX-Web" } }); + if ((window as any).MathJax) { + (window as any).MathJax.Hub.Config({ SVG: { font: "STIX-Web" } }); } // Get message ids @@ -738,31 +860,31 @@ var FigureView = widgets.DOMWidgetView.extend({ that._sendLayoutDelta(layout_edit_id); // Wire up plotly event callbacks - that.el.on("plotly_restyle", function (update) { + (that.el).on("plotly_restyle", function (update: any) { that.handle_plotly_restyle(update); }); - that.el.on("plotly_relayout", function (update) { + (that.el).on("plotly_relayout", function (update: any) { that.handle_plotly_relayout(update); }); - that.el.on("plotly_update", function (update) { + (that.el).on("plotly_update", function (update: any) { that.handle_plotly_update(update); }); - that.el.on("plotly_click", function (update) { + (that.el).on("plotly_click", function (update: any) { that.handle_plotly_click(update); }); - that.el.on("plotly_hover", function (update) { + (that.el).on("plotly_hover", function (update: any) { that.handle_plotly_hover(update); }); - that.el.on("plotly_unhover", function (update) { + (that.el).on("plotly_unhover", function (update: any) { that.handle_plotly_unhover(update); }); - that.el.on("plotly_selected", function (update) { + (that.el).on("plotly_selected", function (update: any) { that.handle_plotly_selected(update); }); - that.el.on("plotly_deselect", function (update) { + (that.el).on("plotly_deselect", function (update: any) { that.handle_plotly_deselect(update); }); - that.el.on("plotly_doubleclick", function (update) { + (that.el).on("plotly_doubleclick", function (update: any) { that.handle_plotly_doubleclick(update); }); @@ -776,13 +898,13 @@ var FigureView = widgets.DOMWidgetView.extend({ document.dispatchEvent(event); } ); - }, + } /** * Respond to phosphorjs events */ - processPhosphorMessage: function (msg) { - FigureView.__super__.processPhosphorMessage.apply(this, arguments); + processPhosphorMessage(msg: any) { + super.processPhosphorMessage.apply(this, arguments); var that = this; switch (msg.type) { case "before-attach": @@ -793,7 +915,7 @@ var FigureView = widgets.DOMWidgetView.extend({ var axisHidden = { showgrid: false, showline: false, - tickvals: [], + tickvals: [] as any[], }; Plotly.newPlot(that.el, [], { @@ -814,26 +936,27 @@ var FigureView = widgets.DOMWidgetView.extend({ this.autosizeFigure(); break; } - }, + } - autosizeFigure: function () { + autosizeFigure() { var that = this; var layout = that.model.get("_layout"); if (_.isNil(layout) || _.isNil(layout.width)) { + // @ts-ignore Plotly.Plots.resize(that.el).then(function () { var layout_edit_id = that.model.get("_last_layout_edit_id"); that._sendLayoutDelta(layout_edit_id); }); } - }, + } /** * Purge Plotly.js data structures from the notebook output display * element when the view is destroyed */ - destroy: function () { + destroy() { Plotly.purge(this.el); - }, + } /** * Return the figure's _fullData array merged with its data array @@ -852,14 +975,14 @@ var FigureView = widgets.DOMWidgetView.extend({ * string, rather than having it overridded by the colorscale array. * */ - getFullData: function () { + getFullData() { return _.mergeWith( {}, - this.el._fullData, - this.el.data, + (this.el)._fullData, + (this.el).data, fullMergeCustomizer ); - }, + } /** * Return the figure's _fullLayout object merged with its layout object @@ -867,14 +990,14 @@ var FigureView = widgets.DOMWidgetView.extend({ * See getFullData documentation for discussion of why the merge is * necessary */ - getFullLayout: function () { + getFullLayout() { return _.mergeWith( {}, - this.el._fullLayout, - this.el.layout, + (this.el)._fullLayout, + (this.el).layout, fullMergeCustomizer ); - }, + } /** * Build Points data structure from data supplied by the plotly_click, @@ -882,8 +1005,8 @@ var FigureView = widgets.DOMWidgetView.extend({ * @param {Object} data * @returns {null|Points} */ - buildPointsObject: function (data) { - var pointsObject; + buildPointsObject(data: any): null | Points { + var pointsObject: Points; if (data.hasOwnProperty("points")) { // Most cartesian plots var pointObjects = data["points"]; @@ -891,7 +1014,9 @@ var FigureView = widgets.DOMWidgetView.extend({ var hasNestedPointObjects = true; for (let i = 0; i < numPoints; i++) { - hasNestedPointObjects = (hasNestedPointObjects && pointObjects[i].hasOwnProperty("pointNumbers")); + hasNestedPointObjects = + hasNestedPointObjects && + pointObjects[i].hasOwnProperty("pointNumbers"); if (!hasNestedPointObjects) break; } var numPointNumbers = numPoints; @@ -911,12 +1036,18 @@ var FigureView = widgets.DOMWidgetView.extend({ if (hasNestedPointObjects) { var flatPointIndex = 0; for (var p = 0; p < numPoints; p++) { - for (let i = 0; i < pointObjects[p]["pointNumbers"].length; i++, flatPointIndex++) { - pointsObject["point_indexes"][flatPointIndex] = pointObjects[p]["pointNumbers"][i] + for ( + let i = 0; + i < pointObjects[p]["pointNumbers"].length; + i++, flatPointIndex++ + ) { + pointsObject["point_indexes"][flatPointIndex] = + pointObjects[p]["pointNumbers"][i]; // also add xs, ys and traces so that the array doesn't get truncated later pointsObject["xs"][flatPointIndex] = pointObjects[p]["x"]; pointsObject["ys"][flatPointIndex] = pointObjects[p]["y"]; - pointsObject["trace_indexes"][flatPointIndex] = pointObjects[p]["curveNumber"]; + pointsObject["trace_indexes"][flatPointIndex] = + pointObjects[p]["curveNumber"]; } } @@ -954,7 +1085,7 @@ var FigureView = widgets.DOMWidgetView.extend({ } else { return null; } - }, + } /** * Build InputDeviceState data structure from data supplied by the @@ -962,13 +1093,13 @@ var FigureView = widgets.DOMWidgetView.extend({ * @param {Object} data * @returns {null|InputDeviceState} */ - buildInputDeviceStateObject: function (data) { + buildInputDeviceStateObject(data: any): null | InputDeviceState { var event = data["event"]; if (event === undefined) { return null; } else { /** @type {InputDeviceState} */ - var inputDeviceState = { + var inputDeviceState: InputDeviceState = { // Keyboard modifiers alt: event["altKey"], ctrl: event["ctrlKey"], @@ -981,7 +1112,7 @@ var FigureView = widgets.DOMWidgetView.extend({ }; return inputDeviceState; } - }, + } /** * Build Selector data structure from data supplied by the @@ -989,8 +1120,8 @@ var FigureView = widgets.DOMWidgetView.extend({ * @param data * @returns {null|Selector} */ - buildSelectorObject: function (data) { - var selectorObject; + buildSelectorObject(data: any): null | Selector { + var selectorObject: Selector; if (data.hasOwnProperty("range")) { // Box selection @@ -1014,13 +1145,13 @@ var FigureView = widgets.DOMWidgetView.extend({ selectorObject = null; } return selectorObject; - }, + } /** * Handle ploty_restyle events emitted by the Plotly.js library * @param data */ - handle_plotly_restyle: function (data) { + handle_plotly_restyle(data: any) { if (data === null || data === undefined) { // No data to report to the Python side return; @@ -1037,7 +1168,7 @@ var FigureView = widgets.DOMWidgetView.extend({ // Construct restyle message to send to the Python side /** @type {Js2PyRestyleMsg} */ - var restyleMsg = { + var restyleMsg: Js2PyRestyleMsg = { style_data: styleData, style_traces: styleTraces, source_view_id: this.viewID, @@ -1045,13 +1176,13 @@ var FigureView = widgets.DOMWidgetView.extend({ this.model.set("_js2py_restyle", restyleMsg); this.touch(); - }, + } /** * Handle plotly_relayout events emitted by the Plotly.js library * @param data */ - handle_plotly_relayout: function (data) { + handle_plotly_relayout(data: any) { if (data === null || data === undefined) { // No data to report to the Python side return; @@ -1063,20 +1194,20 @@ var FigureView = widgets.DOMWidgetView.extend({ } /** @type {Js2PyRelayoutMsg} */ - var relayoutMsg = { + var relayoutMsg: Js2PyRelayoutMsg = { relayout_data: data, source_view_id: this.viewID, }; this.model.set("_js2py_relayout", relayoutMsg); this.touch(); - }, + } /** * Handle plotly_update events emitted by the Plotly.js library * @param data */ - handle_plotly_update: function (data) { + handle_plotly_update(data: any) { if (data === null || data === undefined) { // No data to report to the Python side return; @@ -1088,7 +1219,7 @@ var FigureView = widgets.DOMWidgetView.extend({ } /** @type {Js2PyUpdateMsg} */ - var updateMsg = { + var updateMsg: Js2PyUpdateMsg = { style_data: data["data"][0], style_traces: data["data"][1], layout_data: data["layout"], @@ -1098,50 +1229,50 @@ var FigureView = widgets.DOMWidgetView.extend({ // Log message this.model.set("_js2py_update", updateMsg); this.touch(); - }, + } /** * Handle plotly_click events emitted by the Plotly.js library * @param data */ - handle_plotly_click: function (data) { + handle_plotly_click(data: any) { this._send_points_callback_message(data, "plotly_click"); - }, + } /** * Handle plotly_hover events emitted by the Plotly.js library * @param data */ - handle_plotly_hover: function (data) { + handle_plotly_hover(data: any) { this._send_points_callback_message(data, "plotly_hover"); - }, + } /** * Handle plotly_unhover events emitted by the Plotly.js library * @param data */ - handle_plotly_unhover: function (data) { + handle_plotly_unhover(data: any) { this._send_points_callback_message(data, "plotly_unhover"); - }, + } /** * Handle plotly_selected events emitted by the Plotly.js library * @param data */ - handle_plotly_selected: function (data) { + handle_plotly_selected(data: any) { this._send_points_callback_message(data, "plotly_selected"); - }, + } /** * Handle plotly_deselect events emitted by the Plotly.js library * @param data */ - handle_plotly_deselect: function (data) { + handle_plotly_deselect(data: any) { data = { points: [], }; this._send_points_callback_message(data, "plotly_deselect"); - }, + } /** * Build and send a points callback message to the Python side @@ -1154,14 +1285,14 @@ var FigureView = widgets.DOMWidgetView.extend({ * 'plotly_hover', 'plotly_unhover', or 'plotly_selected' * @private */ - _send_points_callback_message: function (data, event_type) { + _send_points_callback_message(data: any, event_type: string) { if (data === null || data === undefined) { // No data to report to the Python side return; } /** @type {Js2PyPointsCallbackMsg} */ - var pointsMsg = { + var pointsMsg: Js2PyPointsCallbackMsg = { event_type: event_type, points: this.buildPointsObject(data), device_state: this.buildInputDeviceStateObject(data), @@ -1172,25 +1303,22 @@ var FigureView = widgets.DOMWidgetView.extend({ this.model.set("_js2py_pointsCallback", pointsMsg); this.touch(); } - }, + } /** * Stub for future handling of plotly_doubleclick * @param data */ - handle_plotly_doubleclick: function (data) {}, + handle_plotly_doubleclick(data: any) {} /** * Handle Plotly.addTraces request */ - do_addTraces: function () { + do_addTraces() { /** @type {Py2JsAddTracesMsg} */ - var msgData = this.model.get("_py2js_addTraces"); + var msgData: Py2JsAddTracesMsg = this.model.get("_py2js_addTraces"); if (msgData !== null) { - // Save off original number of traces - var prevNumTraces = this.el.data.length; - var that = this; Plotly.addTraces(this.el, msgData.trace_data).then(function () { // ### Send trace deltas ### @@ -1201,14 +1329,14 @@ var FigureView = widgets.DOMWidgetView.extend({ that._sendLayoutDelta(layout_edit_id); }); } - }, + } /** * Handle Plotly.deleteTraces request */ - do_deleteTraces: function () { + do_deleteTraces() { /** @type {Py2JsDeleteTracesMsg} */ - var msgData = this.model.get("_py2js_deleteTraces"); + var msgData: Py2JsDeleteTracesMsg = this.model.get("_py2js_deleteTraces"); if (msgData !== null) { var delete_inds = msgData.delete_inds; @@ -1223,14 +1351,14 @@ var FigureView = widgets.DOMWidgetView.extend({ that._sendLayoutDelta(layout_edit_id); }); } - }, + } /** * Handle Plotly.moveTraces request */ - do_moveTraces: function () { + do_moveTraces() { /** @type {Py2JsMoveTracesMsg} */ - var msgData = this.model.get("_py2js_moveTraces"); + var msgData: Py2JsMoveTracesMsg = this.model.get("_py2js_moveTraces"); if (msgData !== null) { // Unpack message @@ -1245,17 +1373,17 @@ var FigureView = widgets.DOMWidgetView.extend({ Plotly.moveTraces(this.el, currentInds, newInds); } } - }, + } /** * Handle Plotly.restyle request */ - do_restyle: function () { + do_restyle() { /** @type {Py2JsRestyleMsg} */ - var msgData = this.model.get("_py2js_restyle"); + var msgData: Py2JsRestyleMsg = this.model.get("_py2js_restyle"); if (msgData !== null) { var restyleData = msgData.restyle_data; - var traceIndexes = this.model._normalize_trace_indexes( + var traceIndexes = (this.model as FigureModel)._normalize_trace_indexes( msgData.restyle_traces ); @@ -1271,14 +1399,14 @@ var FigureView = widgets.DOMWidgetView.extend({ var layout_edit_id = msgData.layout_edit_id; this._sendLayoutDelta(layout_edit_id); } - }, + } /** * Handle Plotly.relayout request */ - do_relayout: function () { + do_relayout() { /** @type {Py2JsRelayoutMsg} */ - var msgData = this.model.get("_py2js_relayout"); + var msgData: Py2JsRelayoutMsg = this.model.get("_py2js_relayout"); if (msgData !== null) { if (msgData.source_view_id !== this.viewID) { var relayoutData = msgData.relayout_data; @@ -1290,19 +1418,19 @@ var FigureView = widgets.DOMWidgetView.extend({ var layout_edit_id = msgData.layout_edit_id; this._sendLayoutDelta(layout_edit_id); } - }, + } /** * Handle Plotly.update request */ - do_update: function () { + do_update() { /** @type {Py2JsUpdateMsg} */ - var msgData = this.model.get("_py2js_update"); + var msgData: Py2JsUpdateMsg = this.model.get("_py2js_update"); if (msgData !== null) { var style = msgData.style_data || {}; var layout = msgData.layout_data || {}; - var traceIndexes = this.model._normalize_trace_indexes( + var traceIndexes = (this.model as FigureModel)._normalize_trace_indexes( msgData.style_traces ); @@ -1318,14 +1446,14 @@ var FigureView = widgets.DOMWidgetView.extend({ var layout_edit_id = msgData.layout_edit_id; this._sendLayoutDelta(layout_edit_id); } - }, + } /** * Handle Plotly.animate request */ - do_animate: function () { + do_animate() { /** @type {Py2JsAnimateMsg} */ - var msgData = this.model.get("_py2js_animate"); + var msgData: Py2JsAnimateMsg = this.model.get("_py2js_animate"); if (msgData !== null) { // Unpack params @@ -1334,11 +1462,11 @@ var FigureView = widgets.DOMWidgetView.extend({ var styles = msgData.style_data; var layout = msgData.layout_data; - var traceIndexes = this.model._normalize_trace_indexes( + var traceIndexes = (this.model as FigureModel)._normalize_trace_indexes( msgData.style_traces ); - var animationData = { + var animationData: any = { data: styles, layout: layout, traces: traceIndexes, @@ -1347,6 +1475,7 @@ var FigureView = widgets.DOMWidgetView.extend({ animationData["_doNotReportToPy"] = true; var that = this; + // @ts-ignore Plotly.animate(this.el, animationData, animationOpts).then(function () { // ### Send trace deltas ### // We create an array of deltas corresponding to the @@ -1358,7 +1487,7 @@ var FigureView = widgets.DOMWidgetView.extend({ that._sendLayoutDelta(layout_edit_id); }); } - }, + } /** * Construct layout delta object and send layoutDelta message to the @@ -1368,7 +1497,7 @@ var FigureView = widgets.DOMWidgetView.extend({ * Edit ID of message that triggered the creation of the layout delta * @private */ - _sendLayoutDelta: function (layout_edit_id) { + _sendLayoutDelta(layout_edit_id: any) { // ### Handle layout delta ### var layout_delta = createDeltaObject( this.getFullLayout(), @@ -1376,14 +1505,14 @@ var FigureView = widgets.DOMWidgetView.extend({ ); /** @type{Js2PyLayoutDeltaMsg} */ - var layoutDeltaMsg = { + var layoutDeltaMsg: Js2PyLayoutDeltaMsg = { layout_delta: layout_delta, layout_edit_id: layout_edit_id, }; this.model.set("_js2py_layoutDelta", layoutDeltaMsg); this.touch(); - }, + } /** * Construct trace deltas array for the requested trace indexes and @@ -1393,7 +1522,7 @@ var FigureView = widgets.DOMWidgetView.extend({ * Edit ID of message that triggered the creation of trace deltas * @private */ - _sendTraceDeltas: function (trace_edit_id) { + _sendTraceDeltas(trace_edit_id: any) { var trace_data = this.model.get("_data"); var traceIndexes = _.range(trace_data.length); var trace_deltas = new Array(traceIndexes.length); @@ -1408,22 +1537,22 @@ var FigureView = widgets.DOMWidgetView.extend({ } /** @type{Js2PyTraceDeltasMsg} */ - var traceDeltasMsg = { + var traceDeltasMsg: Js2PyTraceDeltasMsg = { trace_deltas: trace_deltas, trace_edit_id: trace_edit_id, }; this.model.set("_js2py_traceDeltas", traceDeltasMsg); this.touch(); - }, -}); + } +} // Serialization /** * Create a mapping from numpy dtype strings to corresponding typed array * constructors */ -var numpy_dtype_to_typedarray_type = { +const numpy_dtype_to_typedarray_type = { int8: Int8Array, int16: Int16Array, int32: Int32Array, @@ -1434,7 +1563,7 @@ var numpy_dtype_to_typedarray_type = { float64: Float64Array, }; -function serializeTypedArray(v) { +function serializeTypedArray(v: ArrayConstructor) { var numpyType; if (v instanceof Int8Array) { numpyType = "int8"; @@ -1467,8 +1596,8 @@ function serializeTypedArray(v) { /** * ipywidget JavaScript -> Python serializer */ -function js2py_serializer(v, widgetManager) { - var res; +function js2py_serializer(v: any, widgetManager?: any) { + var res: any; if (_.isTypedArray(v)) { res = serializeTypedArray(v); @@ -1501,8 +1630,8 @@ function js2py_serializer(v, widgetManager) { /** * ipywidget Python -> Javascript deserializer */ -function py2js_deserializer(v, widgetManager) { - var res; +function py2js_deserializer(v: any, widgetManager?: any) { + var res: any; if (Array.isArray(v)) { // Deserialize array elements recursively @@ -1522,6 +1651,7 @@ function py2js_deserializer(v, widgetManager) { // Note plotly.py<=3.1.1 called the buffer object `buffer` // This was renamed `value` in 3.2 to work around a naming conflict // when saving widget state to a notebook. + // @ts-ignore var typedarray_type = numpy_dtype_to_typedarray_type[v.dtype]; var buffer = _.has(v, "value") ? v.value.buffer : v.buffer.buffer; res = new typedarray_type(buffer); @@ -1550,7 +1680,7 @@ function py2js_deserializer(v, widgetManager) { * Value to examine * @returns {boolean} */ -function isTypedArray(potentialTypedArray) { +function isTypedArray(potentialTypedArray: any): boolean { return ( ArrayBuffer.isView(potentialTypedArray) && !(potentialTypedArray instanceof DataView) @@ -1565,7 +1695,7 @@ function isTypedArray(potentialTypedArray) { * * See: https://lodash.com/docs/latest#mergeWith */ -function fullMergeCustomizer(objValue, srcValue, key) { +function fullMergeCustomizer(objValue: any, srcValue: any, key: string) { if (key[0] === "_") { // Don't recurse into private properties return null; @@ -1597,7 +1727,7 @@ function fullMergeCustomizer(objValue, srcValue, key) { * d -> {foo: {bar: [5, 17]}} * */ -function performRelayoutLike(parentObj, relayoutData) { +function performRelayoutLike(parentObj: any, relayoutData: any) { // Perform a relayout style operation on a given parent object for (var rawKey in relayoutData) { if (!relayoutData.hasOwnProperty(rawKey)) { @@ -1640,7 +1770,11 @@ function performRelayoutLike(parentObj, relayoutData) { * d -> [{foo: {bar: 2}}, {foo: {bar: 3}}, {foo: {bar: 4}}] * */ -function performRestyleLike(parentArray, restyleData, restyleTraces) { +function performRestyleLike( + parentArray: any[], + restyleData: any, + restyleTraces: number[] +) { // Loop over the properties of restyleData for (var rawKey in restyleData) { if (!restyleData.hasOwnProperty(rawKey)) { @@ -1691,9 +1825,13 @@ function performRestyleLike(parentArray, restyleData, restyleTraces) { * performMoveTracesLike(d, [0, 2], [1, 2]) * d -> [{foo: 1}, {foo: 0}, {foo: 2}] */ -function performMoveTracesLike(parentArray, currentInds, newInds) { +function performMoveTracesLike( + parentArray: any[], + currentInds: number[], + newInds: number[] +) { // ### Remove by currentInds in reverse order ### - var movingTracesData = []; + var movingTracesData: any[] = []; for (var ci = currentInds.length - 1; ci >= 0; ci--) { // Insert moving parentArray at beginning of the list movingTracesData.splice(0, 0, parentArray[currentInds[ci]]); @@ -1735,7 +1873,10 @@ function performMoveTracesLike(parentArray, currentInds, newInds) { * d -> {foo: [{bar: 0}, {}]} * */ -function performRemoveProps(parentObj, keyPaths) { +function performRemoveProps( + parentObj: object, + keyPaths: Array> +) { for (var i = 0; i < keyPaths.length; i++) { var keyPath = keyPaths[i]; _.unset(parentObj, keyPath); @@ -1770,9 +1911,9 @@ function performRemoveProps(parentObj, keyPaths) { * -> {baz: 32} * */ -function createDeltaObject(fullObj, removeObj) { +function createDeltaObject(fullObj: any, removeObj: any) { // Initialize result as object or array - var res; + var res: any; if (Array.isArray(fullObj)) { res = new Array(fullObj.length); } else { @@ -1844,7 +1985,12 @@ function createDeltaObject(fullObj, removeObj) { return res; } -function randstr(existing, bits, base, _recursion) { +function randstr( + existing?: { [k: string]: any }, + bits?: number, + base?: number, + _recursion?: number +): string { if (!base) base = 16; if (bits === undefined) bits = 24; if (bits <= 0) return "0"; @@ -1876,14 +2022,9 @@ function randstr(existing, bits, base, _recursion) { (parsed !== Infinity && parsed >= Math.pow(2, bits)) ) { if (_recursion > 10) { - lib.warn("randstr failed uniqueness"); + console.warn("randstr failed uniqueness"); return res; } return randstr(existing, bits, base, (_recursion || 0) + 1); } else return res; } - -module.exports = { - FigureView: FigureView, - FigureModel: FigureModel, -}; diff --git a/packages/javascript/plotlywidget/src/embed.js b/packages/javascript/plotlywidget/src/embed.js deleted file mode 100644 index 85bc6308ad..0000000000 --- a/packages/javascript/plotlywidget/src/embed.js +++ /dev/null @@ -1,9 +0,0 @@ -// Entry point for the unpkg bundle containing custom model definitions. -// -// It differs from the notebook bundle in that it does not need to define a -// dynamic baseURL for the static assets and may load some css that would -// already be loaded by the notebook otherwise. - -// Export widget models and views, and the npm package version number. -module.exports = require('./Figure.js'); -module.exports['version'] = require('../package.json').version; diff --git a/packages/javascript/plotlywidget/src/extension.js b/packages/javascript/plotlywidget/src/extension.js deleted file mode 100644 index 93114e153c..0000000000 --- a/packages/javascript/plotlywidget/src/extension.js +++ /dev/null @@ -1,19 +0,0 @@ -// This file contains the javascript that is run when the notebook is loaded. -// It contains some requirejs configuration and the `load_ipython_extension` -// which is required for any notebook extension. - -// Configure requirejs -if (window.require) { - window.require.config({ - map: { - "*" : { - "plotlywidget": "nbextensions/plotlywidget/index" - } - } - }); -} - -// Export the required load_ipython_extention -module.exports = { - load_ipython_extension: function() {} -}; diff --git a/packages/javascript/plotlywidget/src/extension.ts b/packages/javascript/plotlywidget/src/extension.ts new file mode 100644 index 0000000000..e5b8280152 --- /dev/null +++ b/packages/javascript/plotlywidget/src/extension.ts @@ -0,0 +1,13 @@ +// Entry point for the notebook bundle containing custom model definitions. +// +// Setup notebook base URL +// +// Some static assets may be required by the custom widget javascript. The base +// url for the notebook is not known at build time and is therefore computed +// dynamically. +// eslint-disable-next-line @typescript-eslint/no-non-null-assertion +(window as any).__webpack_public_path__ = + document.querySelector('body')!.getAttribute('data-base-url') + + 'nbextensions/plotlywidget'; + +export * from './index'; diff --git a/packages/javascript/plotlywidget/src/index.js b/packages/javascript/plotlywidget/src/index.js deleted file mode 100644 index fd81a0c733..0000000000 --- a/packages/javascript/plotlywidget/src/index.js +++ /dev/null @@ -1,3 +0,0 @@ -// Export widget models and views, and the npm package version number. -module.exports = require('./Figure.js'); -module.exports['version'] = require('../package.json').version; diff --git a/packages/javascript/plotlywidget/src/index.ts b/packages/javascript/plotlywidget/src/index.ts new file mode 100644 index 0000000000..05ff95cb2f --- /dev/null +++ b/packages/javascript/plotlywidget/src/index.ts @@ -0,0 +1,3 @@ +// Export widget models and views, and the npm package version number. +export * from './Figure'; +export * from './version'; diff --git a/packages/javascript/plotlywidget/src/jupyterlab-plugin.js b/packages/javascript/plotlywidget/src/jupyterlab-plugin.js deleted file mode 100644 index aff2ce752d..0000000000 --- a/packages/javascript/plotlywidget/src/jupyterlab-plugin.js +++ /dev/null @@ -1,18 +0,0 @@ -var plotly = require('./index'); -var base = require('@jupyter-widgets/base'); - -/** - * The widget manager provider. - */ -module.exports = { - id: 'plotlywidget', - requires: [base.IJupyterWidgetRegistry], - activate: function(app, widgets) { - widgets.registerWidget({ - name: 'plotlywidget', - version: plotly.version, - exports: plotly - }); - }, - autoStart: true -}; diff --git a/packages/javascript/plotlywidget/src/jupyterlab-plugin.ts b/packages/javascript/plotlywidget/src/jupyterlab-plugin.ts new file mode 100644 index 0000000000..bc1dfbcf92 --- /dev/null +++ b/packages/javascript/plotlywidget/src/jupyterlab-plugin.ts @@ -0,0 +1,33 @@ +import { IJupyterWidgetRegistry } from "@jupyter-widgets/base"; + +import { Application, IPlugin } from "@lumino/application"; + +import { Widget } from "@lumino/widgets"; + +import { MODULE_NAME, MODULE_VERSION } from "./version"; + +/** + * Activate the widget extension. + */ +function activateWidgetExtension( + app: Application, + registry: IJupyterWidgetRegistry +): void { + registry.registerWidget({ + name: MODULE_NAME, + version: MODULE_VERSION, + exports: () => import("./index"), + }); +} + +/** + * The widget plugin. + */ +const widgetPlugin: IPlugin, void> = ({ + id: "plotlywidget", + requires: [IJupyterWidgetRegistry], + activate: activateWidgetExtension, + autoStart: true, +} as unknown) as IPlugin, void>; + +export default widgetPlugin; diff --git a/packages/javascript/plotlywidget/src/lib.d.ts b/packages/javascript/plotlywidget/src/lib.d.ts new file mode 100644 index 0000000000..e9e1f3345d --- /dev/null +++ b/packages/javascript/plotlywidget/src/lib.d.ts @@ -0,0 +1,29 @@ +import { Data, Layout } from "plotly.js"; +import { Layout } from "plotly.js/dist/plotly"; + +declare module "plotly.js/dist/plotly" { + export * from "plotly.js"; + export type Frame = { [key: string]: any }; + export function addFrames(root: Plotly.Root, frames: Frame[]): Promise; + export function animate(root: Plotly.Root): void; + + type PlotlyEvent = + | "plotly_webglcontextlost" + | "plotly_restyle" + | "plotly_relayout" + | "plotly_update" + | "plotly_click" + | "plotly_hover" + | "plotly_unhover" + | "plotly_selected" + | "plotly_deselect" + | "plotly_doubleclick"; + + export interface PlotlyHTMLElement extends HTMLElement { + _fullData: Data; + _fullLayout: Layout; + data: Data; + layout: Layout; + on(event: PlotlyEvent, callback: (update: any) => void): void; + } +} diff --git a/packages/javascript/jupyterlab-plotly/src/javascript-renderer-extension.ts b/packages/javascript/plotlywidget/src/plotly-renderer.ts similarity index 67% rename from packages/javascript/jupyterlab-plotly/src/javascript-renderer-extension.ts rename to packages/javascript/plotlywidget/src/plotly-renderer.ts index 5fc70bf0ba..dcd32041d6 100644 --- a/packages/javascript/jupyterlab-plotly/src/javascript-renderer-extension.ts +++ b/packages/javascript/plotlywidget/src/plotly-renderer.ts @@ -7,7 +7,7 @@ import { Message } from "@lumino/messaging"; import { IRenderMime } from "@jupyterlab/rendermime-interfaces"; -import Plotly from "plotly.js/dist/plotly"; +import type PlotlyType from "plotly.js/dist/plotly"; import "../style/index.css"; @@ -28,9 +28,9 @@ const CSS_ICON_CLASS = "jp-MaterialIcon jp-PlotlyIcon"; export const MIME_TYPE = "application/vnd.plotly.v1+json"; interface IPlotlySpec { - data: Plotly.Data; - layout: Plotly.Layout; - frames?: Plotly.Frame[]; + data: PlotlyType.Data; + layout: PlotlyType.Layout; + frames?: PlotlyType.Frame[]; } export class RenderedPlotly extends Widget implements IRenderMime.IRenderer { @@ -121,49 +121,60 @@ export class RenderedPlotly extends Widget implements IRenderMime.IRenderer { } } - private createGraph(model: IRenderMime.IMimeModel) { + private createGraph(model: IRenderMime.IMimeModel): Promise { const { data, layout, frames, config } = model.data[this._mimeType] as | any | IPlotlySpec; - return Plotly.react(this.node, data, layout, config).then((plot) => { - this.showGraph(); - this.hideImage(); - this.update(); - if (frames) { - Plotly.addFrames(this.node, frames); - } - if (this.node.offsetWidth > 0 && this.node.offsetHeight > 0) { - Plotly.toImage(plot, { - format: "png", - width: this.node.offsetWidth, - height: this.node.offsetHeight, - }).then((url: string) => { - const imageData = url.split(",")[1]; - if (model.data["image/png"] !== imageData) { - model.setData({ - data: { - ...model.data, - "image/png": imageData, - }, - }); - } - }); - } - - // Handle webgl context lost events - (this.node).on( - "plotly_webglcontextlost", - () => { - const png_data = model.data["image/png"]; - if (png_data !== undefined && png_data !== null) { - // We have PNG data, use it - this.updateImage(png_data); - return Promise.resolve(); - } + // Load plotly asynchronously + const loadPlotly = async (): Promise => { + if (RenderedPlotly.Plotly === null) { + RenderedPlotly.Plotly = await import("plotly.js/dist/plotly"); + RenderedPlotly._resolveLoadingPlotly(); + } + return RenderedPlotly.loadingPlotly; + }; + + return loadPlotly() + .then(() => RenderedPlotly.Plotly!.react(this.node, data, layout, config)) + .then((plot) => { + this.showGraph(); + this.hideImage(); + this.update(); + if (frames) { + RenderedPlotly.Plotly!.addFrames(this.node, frames); } - ); - }); + if (this.node.offsetWidth > 0 && this.node.offsetHeight > 0) { + RenderedPlotly.Plotly!.toImage(plot, { + format: "png", + width: this.node.offsetWidth, + height: this.node.offsetHeight, + }).then((url: string) => { + const imageData = url.split(",")[1]; + if (model.data["image/png"] !== imageData) { + model.setData({ + data: { + ...model.data, + "image/png": imageData, + }, + }); + } + }); + } + + // Handle webgl context lost events + (this.node).on( + "plotly_webglcontextlost", + () => { + const png_data = model.data["image/png"]; + if (png_data !== undefined && png_data !== null) { + // We have PNG data, use it + this.updateImage(png_data); + return Promise.resolve(); + } + } + ); + }); } /** @@ -184,9 +195,9 @@ export class RenderedPlotly extends Widget implements IRenderMime.IRenderer { * A message handler invoked on an `'update-request'` message. */ protected onUpdateRequest(msg: Message): void { - if (this.isVisible && this.hasGraphElement()) { - Plotly.redraw(this.node).then(() => { - Plotly.Plots.resize(this.node); + if (RenderedPlotly.Plotly && this.isVisible && this.hasGraphElement()) { + RenderedPlotly.Plotly.redraw(this.node).then(() => { + RenderedPlotly.Plotly!.Plots.resize(this.node); }); } } @@ -194,6 +205,12 @@ export class RenderedPlotly extends Widget implements IRenderMime.IRenderer { private _mimeType: string; private _img_el: HTMLImageElement; private _model: IRenderMime.IMimeModel; + + private static Plotly: typeof PlotlyType | null = null; + private static _resolveLoadingPlotly: () => void; + private static loadingPlotly = new Promise((resolve) => { + RenderedPlotly._resolveLoadingPlotly = resolve; + }); } /** diff --git a/packages/javascript/plotlywidget/src/version.ts b/packages/javascript/plotlywidget/src/version.ts new file mode 100644 index 0000000000..1e34941e7c --- /dev/null +++ b/packages/javascript/plotlywidget/src/version.ts @@ -0,0 +1,17 @@ +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore +// eslint-disable-next-line @typescript-eslint/no-var-requires +const data = require('../package.json'); + +/** + * The _model_module_version/_view_module_version this package implements. + * + * The html widget manager assumes that this is the same as the npm package + * version number. + */ +export const MODULE_VERSION = data.version; + +/* + * The current package name. + */ +export const MODULE_NAME = data.name; diff --git a/packages/javascript/jupyterlab-plotly/style/index.css b/packages/javascript/plotlywidget/style/index.css similarity index 100% rename from packages/javascript/jupyterlab-plotly/style/index.css rename to packages/javascript/plotlywidget/style/index.css diff --git a/packages/javascript/jupyterlab-plotly/style/plotly.svg b/packages/javascript/plotlywidget/style/plotly.svg similarity index 100% rename from packages/javascript/jupyterlab-plotly/style/plotly.svg rename to packages/javascript/plotlywidget/style/plotly.svg diff --git a/packages/javascript/jupyterlab-plotly/tsconfig.json b/packages/javascript/plotlywidget/tsconfig.json similarity index 53% rename from packages/javascript/jupyterlab-plotly/tsconfig.json rename to packages/javascript/plotlywidget/tsconfig.json index 9a2060c62d..e95d8e1417 100644 --- a/packages/javascript/jupyterlab-plotly/tsconfig.json +++ b/packages/javascript/plotlywidget/tsconfig.json @@ -1,17 +1,18 @@ { "compilerOptions": { - "outDir": "dist", - "rootDir": "src", "declaration": true, - "noImplicitAny": true, + "esModuleInterop":true, + "lib": ["es2015", "dom"], + "module": "esnext", + "moduleResolution": "node", "noEmitOnError": true, "noUnusedLocals": true, - "esModuleInterop": true, - "preserveWatchOutput": true, - "module": "commonjs", - "moduleResolution": "node", + "outDir": "lib", + "resolveJsonModule": true, + "rootDir": "src", + "skipLibCheck": true, + "strictPropertyInitialization": false, "target": "es2015", - "lib": ["dom", "es2015"], "types": [] }, "include": ["src/*"] diff --git a/packages/javascript/plotlywidget/webpack.config.js b/packages/javascript/plotlywidget/webpack.config.js index aa79f692cd..c832677703 100644 --- a/packages/javascript/plotlywidget/webpack.config.js +++ b/packages/javascript/plotlywidget/webpack.config.js @@ -1,79 +1,72 @@ -var path = require('path'); -var version = require('./package.json').version; +const path = require("path"); +const version = require("./package.json").version; -// Custom webpack loaders are generally the same for all webpack bundles, hence -// stored in a separate local variable. -var rules = [ - { test: /\.css$/, use: ['style-loader', 'css-loader']}, - { test: /\.js$/, use: ['ify-loader']} +// Custom webpack rules +const rules = [ + { test: /\.ts$/, loader: "ts-loader" }, + { test: /\.css$/, use: ["style-loader", "css-loader"] }, ]; +// Packages that shouldn't be bundled but loaded at runtime +const externals = ["@jupyter-widgets/base"]; + +const resolve = { + extensions: [".webpack.js", ".web.js", ".ts", ".js"], +}; module.exports = [ - {// Notebook extension - // - // This bundle only contains the part of the JavaScript that is run on - // load of the notebook. This section generally only performs - // some configuration for requirejs, and provides the legacy - // "load_ipython_extension" function which is required for any notebook - // extension. - // - entry: './src/extension.js', - output: { - filename: 'extension.js', - path: path.resolve( - __dirname, '..', '..', 'python', 'plotly', 'plotlywidget', 'static'), - libraryTarget: 'amd' - } + /** + * Notebook extension + * + * This bundle only contains the part of the JavaScript that is run on load of + * the notebook. + */ + { + entry: "./src/extension.ts", + output: { + filename: "index.js", + path: path.resolve( + __dirname, + "..", + "..", + "python", + "plotly", + "plotlywidget", + "nbextension" + ), + libraryTarget: "amd", + publicPath: "", + }, + module: { + rules: rules, + }, + externals, + resolve, + }, + + /** + * Embeddable plotlywidget bundle + * + * This bundle is almost identical to the notebook extension bundle. The only + * difference is in the configuration of the webpack public path for the + * static assets. + * + * The target bundle is always `dist/index.js`, which is the path required by + * the custom widget embedder. + */ + { + entry: "./src/index.ts", + output: { + filename: "index.js", + path: path.resolve(__dirname, "dist"), + libraryTarget: "amd", + library: "plotlywidget", + publicPath: "https://unpkg.com/plotlywidget@" + version + "/dist/", }, - {// Bundle for the notebook containing the custom widget views and models - // - // This bundle contains the implementation for the custom widget views and - // custom widget. - // It must be an amd module - // - entry: './src/index.js', - output: { - filename: 'index.js', - path: path.resolve( - __dirname, '..', '..', 'python', 'plotly', 'plotlywidget', 'static'), - libraryTarget: 'amd' - }, - node: { - fs: 'empty' - }, - module: { - rules: rules - }, - externals: ['@jupyter-widgets/base'] + module: { + rules: rules, }, - {// Embeddable plotlywidget bundle - // - // This bundle is generally almost identical to the notebook bundle - // containing the custom widget views and models. - // - // The only difference is in the configuration of the webpack public path - // for the static assets. - // - // It will be automatically distributed by unpkg to work with the static - // widget embedder. - // - // The target bundle is always `dist/index.js`, which is the path required - // by the custom widget embedder. - // - entry: './src/embed.js', - output: { - filename: 'index.js', - path: path.resolve(__dirname, 'dist'), - libraryTarget: 'amd', - publicPath: 'https://unpkg.com/plotlywidget@' + version + '/dist/' - }, - node: { - fs: 'empty' - }, - module: { - rules: rules - }, - externals: ['@jupyter-widgets/base'] - } + externals, + resolve, + }, ]; diff --git a/packages/python/plotly/optional-requirements.txt b/packages/python/plotly/optional-requirements.txt index 450c32d334..43733e4720 100644 --- a/packages/python/plotly/optional-requirements.txt +++ b/packages/python/plotly/optional-requirements.txt @@ -44,6 +44,7 @@ scipy ## jupyter ## jupyter +jupyterlab ~=3.0 # To package js extension as federated module ipykernel ## deps for _county_choropleth.py figure factory diff --git a/packages/python/plotly/plotlywidget/__init__.py b/packages/python/plotly/plotlywidget/__init__.py index 129358fef2..5c5365453e 100644 --- a/packages/python/plotly/plotlywidget/__init__.py +++ b/packages/python/plotly/plotlywidget/__init__.py @@ -1,12 +1,13 @@ +def _jupyter_labextension_paths(): + return [{"src": "labextension", "dest": "plotlywidget"}] + + def _jupyter_nbextension_paths(): return [ { "section": "notebook", - "src": "static", + "src": "nbextension", "dest": "plotlywidget", "require": "plotlywidget/extension", } ] - - -__frontend_version__ = "^0.1" diff --git a/packages/python/plotly/plotlywidget/nbextension/extension.js b/packages/python/plotly/plotlywidget/nbextension/extension.js new file mode 100644 index 0000000000..37f92ce1b3 --- /dev/null +++ b/packages/python/plotly/plotlywidget/nbextension/extension.js @@ -0,0 +1,18 @@ + +// Entry point for the notebook bundle containing custom model definitions. +// +define(function() { + "use strict"; + + window['requirejs'].config({ + map: { + '*': { + 'plotlywidget': 'nbextensions/plotlywidget/index', + }, + } + }); + // Export the required load_ipython_extension function + return { + load_ipython_extension : function() {} + }; +}); \ No newline at end of file diff --git a/packages/python/plotly/plotlywidget/static/extension.js b/packages/python/plotly/plotlywidget/static/extension.js deleted file mode 100644 index cab4f369e9..0000000000 --- a/packages/python/plotly/plotlywidget/static/extension.js +++ /dev/null @@ -1,92 +0,0 @@ -define(function() { return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports) { - -// This file contains the javascript that is run when the notebook is loaded. -// It contains some requirejs configuration and the `load_ipython_extension` -// which is required for any notebook extension. - -// Configure requirejs -if (window.require) { - window.require.config({ - map: { - "*" : { - "plotlywidget": "nbextensions/plotlywidget/index" - } - } - }); -} - -// Export the required load_ipython_extention -module.exports = { - load_ipython_extension: function() {} -}; - - -/***/ }) -/******/ ])});; \ No newline at end of file diff --git a/packages/python/plotly/plotlywidget/static/index.js b/packages/python/plotly/plotlywidget/static/index.js deleted file mode 100644 index 74a5f72eef..0000000000 --- a/packages/python/plotly/plotlywidget/static/index.js +++ /dev/null @@ -1,232475 +0,0 @@ -define(["@jupyter-widgets/base"], function(__WEBPACK_EXTERNAL_MODULE_4__) { return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 2); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports) { - -var g; - -// This works in non-strict mode -g = (function() { - return this; -})(); - -try { - // This works if eval is allowed (see CSP) - g = g || Function("return this")() || (1,eval)("this"); -} catch(e) { - // This works if the window reference is available - if(typeof window === "object") - g = window; -} - -// g can still be undefined, but nothing to do about it... -// We return undefined, instead of nothing here, so it's -// easier to handle this case. if(!global) { ...} - -module.exports = g; - - -/***/ }), -/* 1 */ -/***/ (function(module, exports) { - -module.exports = {"name":"plotlywidget","version":"4.14.3","description":"The plotly JupyterLab extension","author":"The plotly.py team","license":"MIT","main":"src/index.js","repository":{"type":"git","url":"https://github.com/plotly/plotly.py"},"keywords":["jupyter","widgets","ipython","ipywidgets","plotly"],"files":["src/**/*.js","dist/*.js","style/*.*"],"scripts":{"build":"webpack","clean":"rimraf dist/ && rimraf ../../python/plotly/plotlywidget/static'","test":"echo \"Error: no test specified\" && exit 1"},"devDependencies":{"webpack":"^3.10.0","rimraf":"^2.6.1","ify-loader":"^1.1.0","typescript":"~3.1.1"},"dependencies":{"plotly.js":"^1.58.4","@jupyter-widgets/base":"^2.0.0 || ^3.0.0 || ^4.0.0","lodash":"^4.17.4"},"jupyterlab":{"extension":"src/jupyterlab-plugin.js","sharedPackages":{"@jupyter-widgets/base":{"bundled":false,"singleton":true}}}} - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - -// Export widget models and views, and the npm package version number. -module.exports = __webpack_require__(3); -module.exports['version'] = __webpack_require__(1).version; - - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - -var widgets = __webpack_require__(4); -var _ = __webpack_require__(5); - -window.PlotlyConfig = { MathJaxConfig: "local" }; -var Plotly = __webpack_require__(7); -var semver_range = "^" + __webpack_require__(1).version; - -// Model -// ===== -/** - * A FigureModel holds a mirror copy of the state of a FigureWidget on - * the Python side. There is a one-to-one relationship between JavaScript - * FigureModels and Python FigureWidgets. The JavaScript FigureModel is - * initialized as soon as a Python FigureWidget initialized, this happens - * even before the widget is first displayed in the Notebook - * @type {widgets.DOMWidgetModel} - */ -var FigureModel = widgets.DOMWidgetModel.extend( - { - defaults: _.extend(widgets.DOMWidgetModel.prototype.defaults(), { - // Model metadata - // -------------- - _model_name: "FigureModel", - _view_name: "FigureView", - _model_module: "plotlywidget", - _view_module: "plotlywidget", - _view_module_version: semver_range, - _model_module_version: semver_range, - - // Data and Layout - // --------------- - // The _data and _layout properties are synchronized with the - // Python side on initialization only. After initialization, these - // properties are kept in sync through the use of the _py2js_* - // messages - _data: [], - _layout: {}, - _config: {}, - - // Python -> JS messages - // --------------------- - // Messages are implemented using trait properties. This is done so - // that we can take advantage of ipywidget's binary serialization - // protocol. - // - // Messages are sent by the Python side by assigning the message - // contents to the appropriate _py2js_* property, and then immediately - // setting it to None. Messages are received by the JavaScript - // side by registering property change callbacks in the initialize - // methods for FigureModel and FigureView. e.g. (where this is a - // FigureModel): - // - // this.on('change:_py2js_addTraces', this.do_addTraces, this); - // - // Message handling methods, do_addTraces, are responsible for - // performing the appropriate action if the message contents are - // not null - - /** - * @typedef {null|Object} Py2JsAddTracesMsg - * @property {Array.} trace_data - * Array of traces to append to the end of the figure's current traces - * @property {Number} trace_edit_id - * Edit ID to use when returning trace deltas using - * the _js2py_traceDeltas message. - * @property {Number} layout_edit_id - * Edit ID to use when returning layout deltas using - * the _js2py_layoutDelta message. - */ - _py2js_addTraces: null, - - /** - * @typedef {null|Object} Py2JsDeleteTracesMsg - * @property {Array.} delete_inds - * Array of indexes of traces to be deleted, in ascending order - * @property {Number} trace_edit_id - * Edit ID to use when returning trace deltas using - * the _js2py_traceDeltas message. - * @property {Number} layout_edit_id - * Edit ID to use when returning layout deltas using - * the _js2py_layoutDelta message. - */ - _py2js_deleteTraces: null, - - /** - * @typedef {null|Object} Py2JsMoveTracesMsg - * @property {Array.} current_trace_inds - * Array of the current indexes of traces to be moved - * @property {Array.} new_trace_inds - * Array of the new indexes that traces should be moved to. - */ - _py2js_moveTraces: null, - - /** - * @typedef {null|Object} Py2JsRestyleMsg - * @property {Object} restyle_data - * Restyle data as accepted by Plotly.restyle - * @property {null|Array.} restyle_traces - * Array of indexes of the traces that the resytle operation applies - * to, or null to apply the operation to all traces - * @property {Number} trace_edit_id - * Edit ID to use when returning trace deltas using - * the _js2py_traceDeltas message - * @property {Number} layout_edit_id - * Edit ID to use when returning layout deltas using - * the _js2py_layoutDelta message - * @property {null|String} source_view_id - * view_id of the FigureView that triggered the original restyle - * event (e.g. by clicking the legend), or null if the restyle was - * triggered from Python - */ - _py2js_restyle: null, - - /** - * @typedef {null|Object} Py2JsRelayoutMsg - * @property {Object} relayout_data - * Relayout data as accepted by Plotly.relayout - * @property {Number} layout_edit_id - * Edit ID to use when returning layout deltas using - * the _js2py_layoutDelta message - * @property {null|String} source_view_id - * view_id of the FigureView that triggered the original relayout - * event (e.g. by clicking the zoom button), or null if the - * relayout was triggered from Python - */ - _py2js_relayout: null, - - /** - * @typedef {null|Object} Py2JsUpdateMsg - * @property {Object} style_data - * Style data as accepted by Plotly.update - * @property {Object} layout_data - * Layout data as accepted by Plotly.update - * @property {Array.} style_traces - * Array of indexes of the traces that the update operation applies - * to, or null to apply the operation to all traces - * @property {Number} trace_edit_id - * Edit ID to use when returning trace deltas using - * the _js2py_traceDeltas message - * @property {Number} layout_edit_id - * Edit ID to use when returning layout deltas using - * the _js2py_layoutDelta message - * @property {null|String} source_view_id - * view_id of the FigureView that triggered the original update - * event (e.g. by clicking a button), or null if the update was - * triggered from Python - */ - _py2js_update: null, - - /** - * @typedef {null|Object} Py2JsAnimateMsg - * @property {Object} style_data - * Style data as accepted by Plotly.animate - * @property {Object} layout_data - * Layout data as accepted by Plotly.animate - * @property {Array.} style_traces - * Array of indexes of the traces that the animate operation applies - * to, or null to apply the operation to all traces - * @property {Object} animation_opts - * Animation options as accepted by Plotly.animate - * @property {Number} trace_edit_id - * Edit ID to use when returning trace deltas using - * the _js2py_traceDeltas message - * @property {Number} layout_edit_id - * Edit ID to use when returning layout deltas using - * the _js2py_layoutDelta message - * @property {null|String} source_view_id - * view_id of the FigureView that triggered the original animate - * event (e.g. by clicking a button), or null if the update was - * triggered from Python - */ - _py2js_animate: null, - - /** - * @typedef {null|Object} Py2JsRemoveLayoutPropsMsg - * @property {Array.>} remove_props - * Array of property paths to remove. Each propery path is an - * array of property names or array indexes that locate a property - * inside the _layout object - */ - _py2js_removeLayoutProps: null, - - /** - * @typedef {null|Object} Py2JsRemoveTracePropsMsg - * @property {Number} remove_trace - * The index of the trace from which to remove properties - * @property {Array.>} remove_props - * Array of property paths to remove. Each propery path is an - * array of property names or array indexes that locate a property - * inside the _data[remove_trace] object - */ - _py2js_removeTraceProps: null, - - // JS -> Python messages - // --------------------- - // Messages are sent by the JavaScript side by assigning the - // message contents to the appropriate _js2py_* property and then - // calling the `touch` method on the view that triggered the - // change. e.g. (where this is a FigureView): - // - // this.model.set('_js2py_restyle', data); - // this.touch(); - // - // The Python side is responsible for setting the property to None - // after receiving the message. - // - // Message trigger logic is described in the corresponding - // handle_plotly_* methods of FigureView - - /** - * @typedef {null|Object} Js2PyRestyleMsg - * @property {Object} style_data - * Style data that was passed to Plotly.restyle - * @property {Array.} style_traces - * Array of indexes of the traces that the restyle operation - * was applied to, or null if applied to all traces - * @property {String} source_view_id - * view_id of the FigureView that triggered the original restyle - * event (e.g. by clicking the legend) - */ - _js2py_restyle: null, - - /** - * @typedef {null|Object} Js2PyRelayoutMsg - * @property {Object} relayout_data - * Relayout data that was passed to Plotly.relayout - * @property {String} source_view_id - * view_id of the FigureView that triggered the original relayout - * event (e.g. by clicking the zoom button) - */ - _js2py_relayout: null, - - /** - * @typedef {null|Object} Js2PyUpdateMsg - * @property {Object} style_data - * Style data that was passed to Plotly.update - * @property {Object} layout_data - * Layout data that was passed to Plotly.update - * @property {Array.} style_traces - * Array of indexes of the traces that the update operation applied - * to, or null if applied to all traces - * @property {String} source_view_id - * view_id of the FigureView that triggered the original relayout - * event (e.g. by clicking the zoom button) - */ - _js2py_update: null, - - /** - * @typedef {null|Object} Js2PyLayoutDeltaMsg - * @property {Object} layout_delta - * The layout delta object that contains all of the properties of - * _fullLayout that are not identical to those in the - * FigureModel's _layout property - * @property {Number} layout_edit_id - * Edit ID of message that triggered the creation of layout delta - */ - _js2py_layoutDelta: null, - - /** - * @typedef {null|Object} Js2PyTraceDeltasMsg - * @property {Array.} trace_deltas - * Array of trace delta objects. Each trace delta contains the - * trace's uid along with all of the properties of _fullData that - * are not identical to those in the FigureModel's _data property - * @property {Number} trace_edit_id - * Edit ID of message that triggered the creation of trace deltas - */ - _js2py_traceDeltas: null, - - /** - * Object representing a collection of points for use in click, hover, - * and selection events - * @typedef {Object} Points - * @property {Array.} trace_indexes - * Array of the trace index for each point - * @property {Array.} point_indexes - * Array of the index of each point in its own trace - * @property {null|Array.} xs - * Array of the x coordinate of each point (for cartesian trace types) - * or null (for non-cartesian trace types) - * @property {null|Array.} ys - * Array of the y coordinate of each point (for cartesian trace types) - * or null (for non-cartesian trace types - * @property {null|Array.} zs - * Array of the z coordinate of each point (for 3D cartesian - * trace types) - * or null (for non-3D-cartesian trace types) - */ - - /** - * Object representing the state of the input devices during a - * plotly event - * @typedef {Object} InputDeviceState - * @property {boolean} alt - true if alt key pressed, - * false otherwise - * @property {boolean} ctrl - true if ctrl key pressed, - * false otherwise - * @property {boolean} meta - true if meta key pressed, - * false otherwise - * @property {boolean} shift - true if shift key pressed, - * false otherwise - * - * @property {boolean} button - * Indicates which button was pressed on the mouse to trigger the - * event. - * 0: Main button pressed, usually the left button or the - * un-initialized state - * 1: Auxiliary button pressed, usually the wheel button or - * the middle button (if present) - * 2: Secondary button pressed, usually the right button - * 3: Fourth button, typically the Browser Back button - * 4: Fifth button, typically the Browser Forward button - * - * @property {boolean} buttons - * Indicates which buttons were pressed on the mouse when the event - * is triggered. - * 0 : No button or un-initialized - * 1 : Primary button (usually left) - * 2 : Secondary button (usually right) - * 4 : Auxilary button (usually middle or mouse wheel button) - * 8 : 4th button (typically the "Browser Back" button) - * 16 : 5th button (typically the "Browser Forward" button) - * - * Combinations of buttons are represented by the sum of the codes - * above. e.g. a value of 7 indicates buttons 1 (primary), - * 2 (secondary), and 4 (auxilary) were pressed during the event - */ - - /** - * @typedef {Object} BoxSelectorState - * @property {Array.} xrange - * Two element array containing the x-range of the box selection - * @property {Array.} yrange - * Two element array containing the y-range of the box selection - */ - - /** - * @typedef {Object} LassoSelectorState - * @property {Array.} xs - * Array of the x-coordinates of the lasso selection region - * @property {Array.} ys - * Array of the y-coordinates of the lasso selection region - */ - - /** - * Object representing the state of the selection tool during a - * plotly_select event - * @typedef {Object} Selector - * @property {String} type - * Selection type. One of: 'box', or 'lasso' - * @property {BoxSelectorState|LassoSelectorState} selector_state - */ - - /** - * @typedef {null|Object} Js2PyPointsCallbackMsg - * @property {string} event_type - * Name of the triggering event. One of 'plotly_click', - * 'plotly_hover', 'plotly_unhover', or 'plotly_selected' - * @property {null|Points} points - * Points object for event - * @property {null|InputDeviceState} device_state - * InputDeviceState object for event - * @property {null|Selector} selector - * State of the selection tool for 'plotly_selected' events, null - * for other event types - */ - _js2py_pointsCallback: null, - - // Message tracking - // ---------------- - /** - * @type {Number} - * layout_edit_id of the last layout modification operation - * requested by the Python side - */ - _last_layout_edit_id: 0, - - /** - * @type {Number} - * trace_edit_id of the last trace modification operation - * requested by the Python side - */ - _last_trace_edit_id: 0, - }), - - /** - * Initialize FigureModel. Called when the Python FigureWidget is first - * constructed - */ - initialize: function () { - FigureModel.__super__.initialize.apply(this, arguments); - - this.on("change:_data", this.do_data, this); - this.on("change:_layout", this.do_layout, this); - this.on("change:_py2js_addTraces", this.do_addTraces, this); - this.on("change:_py2js_deleteTraces", this.do_deleteTraces, this); - this.on("change:_py2js_moveTraces", this.do_moveTraces, this); - this.on("change:_py2js_restyle", this.do_restyle, this); - this.on("change:_py2js_relayout", this.do_relayout, this); - this.on("change:_py2js_update", this.do_update, this); - this.on("change:_py2js_animate", this.do_animate, this); - this.on( - "change:_py2js_removeLayoutProps", - this.do_removeLayoutProps, - this - ); - this.on("change:_py2js_removeTraceProps", this.do_removeTraceProps, this); - }, - - /** - * Input a trace index specification and return an Array of trace - * indexes where: - * - * - null|undefined -> Array of all traces - * - Trace index as Number -> Single element array of input index - * - Array of trace indexes -> Input array unchanged - * - * @param {undefined|null|Number|Array.} trace_indexes - * @returns {Array.} - * Array of trace indexes - * @private - */ - _normalize_trace_indexes: function (trace_indexes) { - if (trace_indexes === null || trace_indexes === undefined) { - var numTraces = this.get("_data").length; - trace_indexes = _.range(numTraces); - } - if (!Array.isArray(trace_indexes)) { - // Make sure idx is an array - trace_indexes = [trace_indexes]; - } - return trace_indexes; - }, - - /** - * Log changes to the _data trait - * - * This should only happed on FigureModel initialization - */ - do_data: function () {}, - - /** - * Log changes to the _layout trait - * - * This should only happed on FigureModel initialization - */ - do_layout: function () {}, - - /** - * Handle addTraces message - */ - do_addTraces: function () { - // add trace to plot - /** @type {Py2JsAddTracesMsg} */ - var msgData = this.get("_py2js_addTraces"); - - if (msgData !== null) { - var currentTraces = this.get("_data"); - var newTraces = msgData.trace_data; - _.forEach(newTraces, function (newTrace) { - currentTraces.push(newTrace); - }); - } - }, - - /** - * Handle deleteTraces message - */ - do_deleteTraces: function () { - // remove traces from plot - - /** @type {Py2JsDeleteTracesMsg} */ - var msgData = this.get("_py2js_deleteTraces"); - - if (msgData !== null) { - var delete_inds = msgData.delete_inds; - var tracesData = this.get("_data"); - - // Remove del inds in reverse order so indexes remain valid - // throughout loop - delete_inds - .slice() - .reverse() - .forEach(function (del_ind) { - tracesData.splice(del_ind, 1); - }); - } - }, - - /** - * Handle moveTraces message - */ - do_moveTraces: function () { - /** @type {Py2JsMoveTracesMsg} */ - var msgData = this.get("_py2js_moveTraces"); - - if (msgData !== null) { - var tracesData = this.get("_data"); - var currentInds = msgData.current_trace_inds; - var newInds = msgData.new_trace_inds; - - performMoveTracesLike(tracesData, currentInds, newInds); - } - }, - - /** - * Handle restyle message - */ - do_restyle: function () { - /** @type {Py2JsRestyleMsg} */ - var msgData = this.get("_py2js_restyle"); - if (msgData !== null) { - var restyleData = msgData.restyle_data; - var restyleTraces = this._normalize_trace_indexes( - msgData.restyle_traces - ); - performRestyleLike(this.get("_data"), restyleData, restyleTraces); - } - }, - - /** - * Handle relayout message - */ - do_relayout: function () { - /** @type {Py2JsRelayoutMsg} */ - var msgData = this.get("_py2js_relayout"); - - if (msgData !== null) { - performRelayoutLike(this.get("_layout"), msgData.relayout_data); - } - }, - - /** - * Handle update message - */ - do_update: function () { - /** @type {Py2JsUpdateMsg} */ - var msgData = this.get("_py2js_update"); - - if (msgData !== null) { - var style = msgData.style_data; - var layout = msgData.layout_data; - var styleTraces = this._normalize_trace_indexes(msgData.style_traces); - performRestyleLike(this.get("_data"), style, styleTraces); - performRelayoutLike(this.get("_layout"), layout); - } - }, - - /** - * Handle animate message - */ - do_animate: function () { - /** @type {Py2JsAnimateMsg} */ - var msgData = this.get("_py2js_animate"); - if (msgData !== null) { - var styles = msgData.style_data; - var layout = msgData.layout_data; - var trace_indexes = this._normalize_trace_indexes(msgData.style_traces); - - for (var i = 0; i < styles.length; i++) { - var style = styles[i]; - var trace_index = trace_indexes[i]; - var trace = this.get("_data")[trace_index]; - performRelayoutLike(trace, style); - } - - performRelayoutLike(this.get("_layout"), layout); - } - }, - - /** - * Handle removeLayoutProps message - */ - do_removeLayoutProps: function () { - /** @type {Py2JsRemoveLayoutPropsMsg} */ - var msgData = this.get("_py2js_removeLayoutProps"); - - if (msgData !== null) { - var keyPaths = msgData.remove_props; - var layout = this.get("_layout"); - performRemoveProps(layout, keyPaths); - } - }, - - /** - * Handle removeTraceProps message - */ - do_removeTraceProps: function () { - /** @type {Py2JsRemoveTracePropsMsg} */ - var msgData = this.get("_py2js_removeTraceProps"); - if (msgData !== null) { - var keyPaths = msgData.remove_props; - var traceIndex = msgData.remove_trace; - var trace = this.get("_data")[traceIndex]; - - performRemoveProps(trace, keyPaths); - } - }, - }, - { - serializers: _.extend( - { - _data: { deserialize: py2js_deserializer, serialize: js2py_serializer }, - _layout: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _py2js_addTraces: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _py2js_deleteTraces: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _py2js_moveTraces: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _py2js_restyle: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _py2js_relayout: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _py2js_update: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _py2js_animate: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _py2js_removeLayoutProps: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _py2js_removeTraceProps: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _js2py_restyle: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _js2py_relayout: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _js2py_update: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _js2py_layoutDelta: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _js2py_traceDeltas: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - _js2py_pointsCallback: { - deserialize: py2js_deserializer, - serialize: js2py_serializer, - }, - }, - widgets.DOMWidgetModel.serializers - ), - } -); - -// View -// ==== -/** - * A FigureView manages the visual presentation of a single Plotly.js - * figure for a single notebook output cell. Each FigureView has a - * reference to FigureModel. Multiple views may share a single model - * instance, as is the case when a Python FigureWidget is displayed in - * multiple notebook output cells. - * - * @type {widgets.DOMWidgetView} - */ -var FigureView = widgets.DOMWidgetView.extend({ - /** - * The perform_render method is called by processPhosphorMessage - * after the widget's DOM element has been attached to the notebook - * output cell. This happens after the initialize of the - * FigureModel, and it won't happen at all if the Python FigureWidget - * is never displayed in a notebook output cell - */ - perform_render: function () { - var that = this; - - // Wire up message property callbacks - // ---------------------------------- - // Python -> JS event properties - this.model.on("change:_py2js_addTraces", this.do_addTraces, this); - this.model.on("change:_py2js_deleteTraces", this.do_deleteTraces, this); - this.model.on("change:_py2js_moveTraces", this.do_moveTraces, this); - this.model.on("change:_py2js_restyle", this.do_restyle, this); - this.model.on("change:_py2js_relayout", this.do_relayout, this); - this.model.on("change:_py2js_update", this.do_update, this); - this.model.on("change:_py2js_animate", this.do_animate, this); - - // MathJax configuration - // --------------------- - if (window.MathJax) { - MathJax.Hub.Config({ SVG: { font: "STIX-Web" } }); - } - - // Get message ids - // --------------------- - var layout_edit_id = this.model.get("_last_layout_edit_id"); - var trace_edit_id = this.model.get("_last_trace_edit_id"); - - // Set view UID - // ------------ - this.viewID = randstr(); - - // Initialize Plotly.js figure - // --------------------------- - // We must clone the model's data and layout properties so that - // the model is not directly mutated by the Plotly.js library. - var initialTraces = _.cloneDeep(this.model.get("_data")); - var initialLayout = _.cloneDeep(this.model.get("_layout")); - var config = this.model.get("_config"); - - Plotly.newPlot(that.el, initialTraces, initialLayout, config).then( - function () { - // ### Send trace deltas ### - // We create an array of deltas corresponding to the new - // traces. - that._sendTraceDeltas(trace_edit_id); - - // ### Send layout delta ### - that._sendLayoutDelta(layout_edit_id); - - // Wire up plotly event callbacks - that.el.on("plotly_restyle", function (update) { - that.handle_plotly_restyle(update); - }); - that.el.on("plotly_relayout", function (update) { - that.handle_plotly_relayout(update); - }); - that.el.on("plotly_update", function (update) { - that.handle_plotly_update(update); - }); - that.el.on("plotly_click", function (update) { - that.handle_plotly_click(update); - }); - that.el.on("plotly_hover", function (update) { - that.handle_plotly_hover(update); - }); - that.el.on("plotly_unhover", function (update) { - that.handle_plotly_unhover(update); - }); - that.el.on("plotly_selected", function (update) { - that.handle_plotly_selected(update); - }); - that.el.on("plotly_deselect", function (update) { - that.handle_plotly_deselect(update); - }); - that.el.on("plotly_doubleclick", function (update) { - that.handle_plotly_doubleclick(update); - }); - - // Emit event indicating that the widget has finished - // rendering - var event = new CustomEvent("plotlywidget-after-render", { - detail: { element: that.el, viewID: that.viewID }, - }); - - // Dispatch/Trigger/Fire the event - document.dispatchEvent(event); - } - ); - }, - - /** - * Respond to phosphorjs events - */ - processPhosphorMessage: function (msg) { - FigureView.__super__.processPhosphorMessage.apply(this, arguments); - var that = this; - switch (msg.type) { - case "before-attach": - // Render an initial empty figure. This establishes with - // the page that the element will not be empty, avoiding - // some occasions where the dynamic sizing behavior leads - // to collapsed figure dimensions. - var axisHidden = { - showgrid: false, - showline: false, - tickvals: [], - }; - - Plotly.newPlot(that.el, [], { - xaxis: axisHidden, - yaxis: axisHidden, - }); - - window.addEventListener("resize", function () { - that.autosizeFigure(); - }); - break; - case "after-attach": - // Rendering actual figure in the after-attach event allows - // Plotly.js to size the figure to fill the available element - this.perform_render(); - break; - case "resize": - this.autosizeFigure(); - break; - } - }, - - autosizeFigure: function () { - var that = this; - var layout = that.model.get("_layout"); - if (_.isNil(layout) || _.isNil(layout.width)) { - Plotly.Plots.resize(that.el).then(function () { - var layout_edit_id = that.model.get("_last_layout_edit_id"); - that._sendLayoutDelta(layout_edit_id); - }); - } - }, - - /** - * Purge Plotly.js data structures from the notebook output display - * element when the view is destroyed - */ - destroy: function () { - Plotly.purge(this.el); - }, - - /** - * Return the figure's _fullData array merged with its data array - * - * The merge ensures that for any properties that el._fullData and - * el.data have in common, we return the version from el.data - * - * Named colorscales are one example of why this is needed. The el.data - * array will hold named colorscale strings (e.g. 'Viridis'), while the - * el._fullData array will hold the actual colorscale array. e.g. - * - * el.data[0].marker.colorscale == 'Viridis' but - * el._fullData[0].marker.colorscale = [[..., ...], ...] - * - * Performing the merge allows our FigureModel to retain the 'Viridis' - * string, rather than having it overridded by the colorscale array. - * - */ - getFullData: function () { - return _.mergeWith( - {}, - this.el._fullData, - this.el.data, - fullMergeCustomizer - ); - }, - - /** - * Return the figure's _fullLayout object merged with its layout object - * - * See getFullData documentation for discussion of why the merge is - * necessary - */ - getFullLayout: function () { - return _.mergeWith( - {}, - this.el._fullLayout, - this.el.layout, - fullMergeCustomizer - ); - }, - - /** - * Build Points data structure from data supplied by the plotly_click, - * plotly_hover, or plotly_select events - * @param {Object} data - * @returns {null|Points} - */ - buildPointsObject: function (data) { - var pointsObject; - if (data.hasOwnProperty("points")) { - // Most cartesian plots - var pointObjects = data["points"]; - var numPoints = pointObjects.length; - - var hasNestedPointObjects = true; - for (let i = 0; i < numPoints; i++) { - hasNestedPointObjects = (hasNestedPointObjects && pointObjects[i].hasOwnProperty("pointNumbers")); - if (!hasNestedPointObjects) break; - } - var numPointNumbers = numPoints; - if (hasNestedPointObjects) { - numPointNumbers = 0; - for (let i = 0; i < numPoints; i++) { - numPointNumbers += pointObjects[i]["pointNumbers"].length; - } - } - pointsObject = { - trace_indexes: new Array(numPointNumbers), - point_indexes: new Array(numPointNumbers), - xs: new Array(numPointNumbers), - ys: new Array(numPointNumbers), - }; - - if (hasNestedPointObjects) { - var flatPointIndex = 0; - for (var p = 0; p < numPoints; p++) { - for (let i = 0; i < pointObjects[p]["pointNumbers"].length; i++, flatPointIndex++) { - pointsObject["point_indexes"][flatPointIndex] = pointObjects[p]["pointNumbers"][i] - // also add xs, ys and traces so that the array doesn't get truncated later - pointsObject["xs"][flatPointIndex] = pointObjects[p]["x"]; - pointsObject["ys"][flatPointIndex] = pointObjects[p]["y"]; - pointsObject["trace_indexes"][flatPointIndex] = pointObjects[p]["curveNumber"]; - } - } - pointsObject["point_indexes"].sort(function(a, b) { - return a - b; - }); - } else { - for (var p = 0; p < numPoints; p++) { - pointsObject["trace_indexes"][p] = pointObjects[p]["curveNumber"]; - pointsObject["point_indexes"][p] = pointObjects[p]["pointNumber"]; - pointsObject["xs"][p] = pointObjects[p]["x"]; - pointsObject["ys"][p] = pointObjects[p]["y"]; - } - } - - // Add z if present - var hasZ = - pointObjects[0] !== undefined && pointObjects[0].hasOwnProperty("z"); - if (hasZ) { - pointsObject["zs"] = new Array(numPoints); - for (p = 0; p < numPoints; p++) { - pointsObject["zs"][p] = pointObjects[p]["z"]; - } - } - - return pointsObject; - } else { - return null; - } - }, - - /** - * Build InputDeviceState data structure from data supplied by the - * plotly_click, plotly_hover, or plotly_select events - * @param {Object} data - * @returns {null|InputDeviceState} - */ - buildInputDeviceStateObject: function (data) { - var event = data["event"]; - if (event === undefined) { - return null; - } else { - /** @type {InputDeviceState} */ - var inputDeviceState = { - // Keyboard modifiers - alt: event["altKey"], - ctrl: event["ctrlKey"], - meta: event["metaKey"], - shift: event["shiftKey"], - - // Mouse buttons - button: event["button"], - buttons: event["buttons"], - }; - return inputDeviceState; - } - }, - - /** - * Build Selector data structure from data supplied by the - * plotly_select event - * @param data - * @returns {null|Selector} - */ - buildSelectorObject: function (data) { - var selectorObject; - - if (data.hasOwnProperty("range")) { - // Box selection - selectorObject = { - type: "box", - selector_state: { - xrange: data["range"]["x"], - yrange: data["range"]["y"], - }, - }; - } else if (data.hasOwnProperty("lassoPoints")) { - // Lasso selection - selectorObject = { - type: "lasso", - selector_state: { - xs: data["lassoPoints"]["x"], - ys: data["lassoPoints"]["y"], - }, - }; - } else { - selectorObject = null; - } - return selectorObject; - }, - - /** - * Handle ploty_restyle events emitted by the Plotly.js library - * @param data - */ - handle_plotly_restyle: function (data) { - if (data === null || data === undefined) { - // No data to report to the Python side - return; - } - - if (data[0] && data[0].hasOwnProperty("_doNotReportToPy")) { - // Restyle originated on the Python side - return; - } - - // Unpack data - var styleData = data[0]; - var styleTraces = data[1]; - - // Construct restyle message to send to the Python side - /** @type {Js2PyRestyleMsg} */ - var restyleMsg = { - style_data: styleData, - style_traces: styleTraces, - source_view_id: this.viewID, - }; - - this.model.set("_js2py_restyle", restyleMsg); - this.touch(); - }, - - /** - * Handle plotly_relayout events emitted by the Plotly.js library - * @param data - */ - handle_plotly_relayout: function (data) { - if (data === null || data === undefined) { - // No data to report to the Python side - return; - } - - if (data.hasOwnProperty("_doNotReportToPy")) { - // Relayout originated on the Python side - return; - } - - /** @type {Js2PyRelayoutMsg} */ - var relayoutMsg = { - relayout_data: data, - source_view_id: this.viewID, - }; - - this.model.set("_js2py_relayout", relayoutMsg); - this.touch(); - }, - - /** - * Handle plotly_update events emitted by the Plotly.js library - * @param data - */ - handle_plotly_update: function (data) { - if (data === null || data === undefined) { - // No data to report to the Python side - return; - } - - if (data["data"] && data["data"][0].hasOwnProperty("_doNotReportToPy")) { - // Update originated on the Python side - return; - } - - /** @type {Js2PyUpdateMsg} */ - var updateMsg = { - style_data: data["data"][0], - style_traces: data["data"][1], - layout_data: data["layout"], - source_view_id: this.viewID, - }; - - // Log message - this.model.set("_js2py_update", updateMsg); - this.touch(); - }, - - /** - * Handle plotly_click events emitted by the Plotly.js library - * @param data - */ - handle_plotly_click: function (data) { - this._send_points_callback_message(data, "plotly_click"); - }, - - /** - * Handle plotly_hover events emitted by the Plotly.js library - * @param data - */ - handle_plotly_hover: function (data) { - this._send_points_callback_message(data, "plotly_hover"); - }, - - /** - * Handle plotly_unhover events emitted by the Plotly.js library - * @param data - */ - handle_plotly_unhover: function (data) { - this._send_points_callback_message(data, "plotly_unhover"); - }, - - /** - * Handle plotly_selected events emitted by the Plotly.js library - * @param data - */ - handle_plotly_selected: function (data) { - this._send_points_callback_message(data, "plotly_selected"); - }, - - /** - * Handle plotly_deselect events emitted by the Plotly.js library - * @param data - */ - handle_plotly_deselect: function (data) { - data = { - points: [], - }; - this._send_points_callback_message(data, "plotly_deselect"); - }, - - /** - * Build and send a points callback message to the Python side - * - * @param {Object} data - * data object as provided by the plotly_click, plotly_hover, - * plotly_unhover, or plotly_selected events - * @param {String} event_type - * Name of the triggering event. One of 'plotly_click', - * 'plotly_hover', 'plotly_unhover', or 'plotly_selected' - * @private - */ - _send_points_callback_message: function (data, event_type) { - if (data === null || data === undefined) { - // No data to report to the Python side - return; - } - - /** @type {Js2PyPointsCallbackMsg} */ - var pointsMsg = { - event_type: event_type, - points: this.buildPointsObject(data), - device_state: this.buildInputDeviceStateObject(data), - selector: this.buildSelectorObject(data), - }; - - if (pointsMsg["points"] !== null && pointsMsg["points"] !== undefined) { - this.model.set("_js2py_pointsCallback", pointsMsg); - this.touch(); - } - }, - - /** - * Stub for future handling of plotly_doubleclick - * @param data - */ - handle_plotly_doubleclick: function (data) {}, - - /** - * Handle Plotly.addTraces request - */ - do_addTraces: function () { - /** @type {Py2JsAddTracesMsg} */ - var msgData = this.model.get("_py2js_addTraces"); - - if (msgData !== null) { - // Save off original number of traces - var prevNumTraces = this.el.data.length; - - var that = this; - Plotly.addTraces(this.el, msgData.trace_data).then(function () { - // ### Send trace deltas ### - that._sendTraceDeltas(msgData.trace_edit_id); - - // ### Send layout delta ### - var layout_edit_id = msgData.layout_edit_id; - that._sendLayoutDelta(layout_edit_id); - }); - } - }, - - /** - * Handle Plotly.deleteTraces request - */ - do_deleteTraces: function () { - /** @type {Py2JsDeleteTracesMsg} */ - var msgData = this.model.get("_py2js_deleteTraces"); - - if (msgData !== null) { - var delete_inds = msgData.delete_inds; - var that = this; - Plotly.deleteTraces(this.el, delete_inds).then(function () { - // ### Send trace deltas ### - var trace_edit_id = msgData.trace_edit_id; - that._sendTraceDeltas(trace_edit_id); - - // ### Send layout delta ### - var layout_edit_id = msgData.layout_edit_id; - that._sendLayoutDelta(layout_edit_id); - }); - } - }, - - /** - * Handle Plotly.moveTraces request - */ - do_moveTraces: function () { - /** @type {Py2JsMoveTracesMsg} */ - var msgData = this.model.get("_py2js_moveTraces"); - - if (msgData !== null) { - // Unpack message - var currentInds = msgData.current_trace_inds; - var newInds = msgData.new_trace_inds; - - // Check if the new trace indexes are actually different than - // the current indexes - var inds_equal = _.isEqual(currentInds, newInds); - - if (!inds_equal) { - Plotly.moveTraces(this.el, currentInds, newInds); - } - } - }, - - /** - * Handle Plotly.restyle request - */ - do_restyle: function () { - /** @type {Py2JsRestyleMsg} */ - var msgData = this.model.get("_py2js_restyle"); - if (msgData !== null) { - var restyleData = msgData.restyle_data; - var traceIndexes = this.model._normalize_trace_indexes( - msgData.restyle_traces - ); - - restyleData["_doNotReportToPy"] = true; - Plotly.restyle(this.el, restyleData, traceIndexes); - - // ### Send trace deltas ### - // We create an array of deltas corresponding to the restyled - // traces. - this._sendTraceDeltas(msgData.trace_edit_id); - - // ### Send layout delta ### - var layout_edit_id = msgData.layout_edit_id; - this._sendLayoutDelta(layout_edit_id); - } - }, - - /** - * Handle Plotly.relayout request - */ - do_relayout: function () { - /** @type {Py2JsRelayoutMsg} */ - var msgData = this.model.get("_py2js_relayout"); - if (msgData !== null) { - if (msgData.source_view_id !== this.viewID) { - var relayoutData = msgData.relayout_data; - relayoutData["_doNotReportToPy"] = true; - Plotly.relayout(this.el, msgData.relayout_data); - } - - // ### Send layout delta ### - var layout_edit_id = msgData.layout_edit_id; - this._sendLayoutDelta(layout_edit_id); - } - }, - - /** - * Handle Plotly.update request - */ - do_update: function () { - /** @type {Py2JsUpdateMsg} */ - var msgData = this.model.get("_py2js_update"); - - if (msgData !== null) { - var style = msgData.style_data || {}; - var layout = msgData.layout_data || {}; - var traceIndexes = this.model._normalize_trace_indexes( - msgData.style_traces - ); - - style["_doNotReportToPy"] = true; - Plotly.update(this.el, style, layout, traceIndexes); - - // ### Send trace deltas ### - // We create an array of deltas corresponding to the updated - // traces. - this._sendTraceDeltas(msgData.trace_edit_id); - - // ### Send layout delta ### - var layout_edit_id = msgData.layout_edit_id; - this._sendLayoutDelta(layout_edit_id); - } - }, - - /** - * Handle Plotly.animate request - */ - do_animate: function () { - /** @type {Py2JsAnimateMsg} */ - var msgData = this.model.get("_py2js_animate"); - - if (msgData !== null) { - // Unpack params - // var animationData = msgData[0]; - var animationOpts = msgData.animation_opts; - - var styles = msgData.style_data; - var layout = msgData.layout_data; - var traceIndexes = this.model._normalize_trace_indexes( - msgData.style_traces - ); - - var animationData = { - data: styles, - layout: layout, - traces: traceIndexes, - }; - - animationData["_doNotReportToPy"] = true; - var that = this; - - Plotly.animate(this.el, animationData, animationOpts).then(function () { - // ### Send trace deltas ### - // We create an array of deltas corresponding to the - // animated traces. - that._sendTraceDeltas(msgData.trace_edit_id); - - // ### Send layout delta ### - var layout_edit_id = msgData.layout_edit_id; - that._sendLayoutDelta(layout_edit_id); - }); - } - }, - - /** - * Construct layout delta object and send layoutDelta message to the - * Python side - * - * @param layout_edit_id - * Edit ID of message that triggered the creation of the layout delta - * @private - */ - _sendLayoutDelta: function (layout_edit_id) { - // ### Handle layout delta ### - var layout_delta = createDeltaObject( - this.getFullLayout(), - this.model.get("_layout") - ); - - /** @type{Js2PyLayoutDeltaMsg} */ - var layoutDeltaMsg = { - layout_delta: layout_delta, - layout_edit_id: layout_edit_id, - }; - - this.model.set("_js2py_layoutDelta", layoutDeltaMsg); - this.touch(); - }, - - /** - * Construct trace deltas array for the requested trace indexes and - * send traceDeltas message to the Python side - * Array of indexes of traces for which to compute deltas - * @param trace_edit_id - * Edit ID of message that triggered the creation of trace deltas - * @private - */ - _sendTraceDeltas: function (trace_edit_id) { - var trace_data = this.model.get("_data"); - var traceIndexes = _.range(trace_data.length); - var trace_deltas = new Array(traceIndexes.length); - - var fullData = this.getFullData(); - for (var i = 0; i < traceIndexes.length; i++) { - var traceInd = traceIndexes[i]; - trace_deltas[i] = createDeltaObject( - fullData[traceInd], - trace_data[traceInd] - ); - } - - /** @type{Js2PyTraceDeltasMsg} */ - var traceDeltasMsg = { - trace_deltas: trace_deltas, - trace_edit_id: trace_edit_id, - }; - - this.model.set("_js2py_traceDeltas", traceDeltasMsg); - this.touch(); - }, -}); - -// Serialization -/** - * Create a mapping from numpy dtype strings to corresponding typed array - * constructors - */ -var numpy_dtype_to_typedarray_type = { - int8: Int8Array, - int16: Int16Array, - int32: Int32Array, - uint8: Uint8Array, - uint16: Uint16Array, - uint32: Uint32Array, - float32: Float32Array, - float64: Float64Array, -}; - -function serializeTypedArray(v) { - var numpyType; - if (v instanceof Int8Array) { - numpyType = "int8"; - } else if (v instanceof Int16Array) { - numpyType = "int16"; - } else if (v instanceof Int32Array) { - numpyType = "int32"; - } else if (v instanceof Uint8Array) { - numpyType = "uint8"; - } else if (v instanceof Uint16Array) { - numpyType = "uint16"; - } else if (v instanceof Uint32Array) { - numpyType = "uint32"; - } else if (v instanceof Float32Array) { - numpyType = "float32"; - } else if (v instanceof Float64Array) { - numpyType = "float64"; - } else { - // Don't understand it, return as is - return v; - } - var res = { - dtype: numpyType, - shape: [v.length], - value: v.buffer, - }; - return res; -} - -/** - * ipywidget JavaScript -> Python serializer - */ -function js2py_serializer(v, widgetManager) { - var res; - - if (_.isTypedArray(v)) { - res = serializeTypedArray(v); - } else if (Array.isArray(v)) { - // Serialize array elements recursively - res = new Array(v.length); - for (var i = 0; i < v.length; i++) { - res[i] = js2py_serializer(v[i]); - } - } else if (_.isPlainObject(v)) { - // Serialize object properties recursively - res = {}; - for (var p in v) { - if (v.hasOwnProperty(p)) { - res[p] = js2py_serializer(v[p]); - } - } - } else if (v === undefined) { - // Translate undefined into '_undefined_' sentinal string. The - // Python _js_to_py deserializer will convert this into an - // Undefined object - res = "_undefined_"; - } else { - // Primitive value to transfer directly - res = v; - } - return res; -} - -/** - * ipywidget Python -> Javascript deserializer - */ -function py2js_deserializer(v, widgetManager) { - var res; - - if (Array.isArray(v)) { - // Deserialize array elements recursively - res = new Array(v.length); - for (var i = 0; i < v.length; i++) { - res[i] = py2js_deserializer(v[i]); - } - } else if (_.isPlainObject(v)) { - if ( - (_.has(v, "value") || _.has(v, "buffer")) && - _.has(v, "dtype") && - _.has(v, "shape") - ) { - // Deserialize special buffer/dtype/shape objects into typed arrays - // These objects correspond to numpy arrays on the Python side - // - // Note plotly.py<=3.1.1 called the buffer object `buffer` - // This was renamed `value` in 3.2 to work around a naming conflict - // when saving widget state to a notebook. - var typedarray_type = numpy_dtype_to_typedarray_type[v.dtype]; - var buffer = _.has(v, "value") ? v.value.buffer : v.buffer.buffer; - res = new typedarray_type(buffer); - } else { - // Deserialize object properties recursively - res = {}; - for (var p in v) { - if (v.hasOwnProperty(p)) { - res[p] = py2js_deserializer(v[p]); - } - } - } - } else if (v === "_undefined_") { - // Convert the _undefined_ sentinal into undefined - res = undefined; - } else { - // Accept primitive value directly - res = v; - } - return res; -} - -/** - * Return whether the input value is a typed array - * @param potentialTypedArray - * Value to examine - * @returns {boolean} - */ -function isTypedArray(potentialTypedArray) { - return ( - ArrayBuffer.isView(potentialTypedArray) && - !(potentialTypedArray instanceof DataView) - ); -} - -/** - * Customizer for use with lodash's mergeWith function - * - * The customizer ensures that typed arrays are not converted into standard - * arrays during the recursive merge - * - * See: https://lodash.com/docs/latest#mergeWith - */ -function fullMergeCustomizer(objValue, srcValue, key) { - if (key[0] === "_") { - // Don't recurse into private properties - return null; - } else if (isTypedArray(srcValue)) { - // Return typed arrays directly, don't recurse inside - return srcValue; - } -} - -/** - * Reform a Plotly.relayout like operation on an input object - * - * @param {Object} parentObj - * The object that the relayout operation should be applied to - * @param {Object} relayoutData - * An relayout object as accepted by Plotly.relayout - * - * Examples: - * var d = {foo {bar [5, 10]}}; - * performRelayoutLike(d, {'foo.bar': [0, 1]}); - * d -> {foo: {bar: [0, 1]}} - * - * var d = {foo {bar [5, 10]}}; - * performRelayoutLike(d, {'baz': 34}); - * d -> {foo: {bar: [5, 10]}, baz: 34} - * - * var d = {foo: {bar: [5, 10]}; - * performRelayoutLike(d, {'foo.baz[1]': 17}); - * d -> {foo: {bar: [5, 17]}} - * - */ -function performRelayoutLike(parentObj, relayoutData) { - // Perform a relayout style operation on a given parent object - for (var rawKey in relayoutData) { - if (!relayoutData.hasOwnProperty(rawKey)) { - continue; - } - - // Extract value for this key - var relayoutVal = relayoutData[rawKey]; - - // Set property value - if (relayoutVal === null) { - _.unset(parentObj, rawKey); - } else { - _.set(parentObj, rawKey, relayoutVal); - } - } -} - -/** - * Perform a Plotly.restyle like operation on an input object array - * - * @param {Array.} parentArray - * The object that the restyle operation should be applied to - * @param {Object} restyleData - * A restyle object as accepted by Plotly.restyle - * @param {Array.} restyleTraces - * Array of indexes of the traces that the resytle operation applies to - * - * Examples: - * var d = [{foo: {bar: 1}}, {}, {}] - * performRestyleLike(d, {'foo.bar': 2}, [0]) - * d -> [{foo: {bar: 2}}, {}, {}] - * - * var d = [{foo: {bar: 1}}, {}, {}] - * performRestyleLike(d, {'foo.bar': 2}, [0, 1, 2]) - * d -> [{foo: {bar: 2}}, {foo: {bar: 2}}, {foo: {bar: 2}}] - * - * var d = [{foo: {bar: 1}}, {}, {}] - * performRestyleLike(d, {'foo.bar': [2, 3, 4]}, [0, 1, 2]) - * d -> [{foo: {bar: 2}}, {foo: {bar: 3}}, {foo: {bar: 4}}] - * - */ -function performRestyleLike(parentArray, restyleData, restyleTraces) { - // Loop over the properties of restyleData - for (var rawKey in restyleData) { - if (!restyleData.hasOwnProperty(rawKey)) { - continue; - } - - // Extract value for property and normalize into a value list - var valArray = restyleData[rawKey]; - if (!Array.isArray(valArray)) { - valArray = [valArray]; - } - - // Loop over the indexes of the traces being restyled - for (var i = 0; i < restyleTraces.length; i++) { - // Get trace object - var traceInd = restyleTraces[i]; - var trace = parentArray[traceInd]; - - // Extract value for this trace - var singleVal = valArray[i % valArray.length]; - - // Set property value - if (singleVal === null) { - _.unset(trace, rawKey); - } else if (singleVal !== undefined) { - _.set(trace, rawKey, singleVal); - } - } - } -} - -/** - * Perform a Plotly.moveTraces like operation on an input object array - * @param parentArray - * The object that the moveTraces operation should be applied to - * @param currentInds - * Array of the current indexes of traces to be moved - * @param newInds - * Array of the new indexes that traces selected by currentInds should be - * moved to. - * - * Examples: - * var d = [{foo: 0}, {foo: 1}, {foo: 2}] - * performMoveTracesLike(d, [0, 1], [2, 0]) - * d -> [{foo: 1}, {foo: 2}, {foo: 0}] - * - * var d = [{foo: 0}, {foo: 1}, {foo: 2}] - * performMoveTracesLike(d, [0, 2], [1, 2]) - * d -> [{foo: 1}, {foo: 0}, {foo: 2}] - */ -function performMoveTracesLike(parentArray, currentInds, newInds) { - // ### Remove by currentInds in reverse order ### - var movingTracesData = []; - for (var ci = currentInds.length - 1; ci >= 0; ci--) { - // Insert moving parentArray at beginning of the list - movingTracesData.splice(0, 0, parentArray[currentInds[ci]]); - parentArray.splice(currentInds[ci], 1); - } - - // ### Sort newInds and movingTracesData by newInds ### - var newIndexSortedArrays = _(newInds) - .zip(movingTracesData) - .sortBy(0) - .unzip() - .value(); - - newInds = newIndexSortedArrays[0]; - movingTracesData = newIndexSortedArrays[1]; - - // ### Insert by newInds in forward order ### - for (var ni = 0; ni < newInds.length; ni++) { - parentArray.splice(newInds[ni], 0, movingTracesData[ni]); - } -} - -/** - * Remove nested properties from a parent object - * @param {Object} parentObj - * Parent object from which properties or nested properties should be removed - * @param {Array.>} keyPaths - * Array of key paths for properties that should be removed. Each key path - * is an array of properties names or array indexes that reference a - * property to be removed - * - * Examples: - * var d = {foo: [{bar: 0}, {bar: 1}], baz: 32} - * performRemoveProps(d, ['baz']) - * d -> {foo: [{bar: 0}, {bar: 1}]} - * - * var d = {foo: [{bar: 0}, {bar: 1}], baz: 32} - * performRemoveProps(d, ['foo[1].bar', 'baz']) - * d -> {foo: [{bar: 0}, {}]} - * - */ -function performRemoveProps(parentObj, keyPaths) { - for (var i = 0; i < keyPaths.length; i++) { - var keyPath = keyPaths[i]; - _.unset(parentObj, keyPath); - } -} - -/** - * Return object that contains all properties in fullObj that are not - * identical to the corresponding properties in removeObj - * - * Properties of fullObj and removeObj may be objects or arrays of objects - * - * Returned object is a deep clone of the properties of the input objects - * - * @param {Object} fullObj - * @param {Object} removeObj - * - * Examples: - * var fullD = {foo: [{bar: 0}, {bar: 1}], baz: 32} - * var removeD = {baz: 32} - * createDeltaObject(fullD, removeD) - * -> {foo: [{bar: 0}, {bar: 1}]} - * - * var fullD = {foo: [{bar: 0}, {bar: 1}], baz: 32} - * var removeD = {baz: 45} - * createDeltaObject(fullD, removeD) - * -> {foo: [{bar: 0}, {bar: 1}], baz: 32} - * - * var fullD = {foo: [{bar: 0}, {bar: 1}], baz: 32} - * var removeD = {foo: [{bar: 0}, {bar: 1}]} - * createDeltaObject(fullD, removeD) - * -> {baz: 32} - * - */ -function createDeltaObject(fullObj, removeObj) { - // Initialize result as object or array - var res; - if (Array.isArray(fullObj)) { - res = new Array(fullObj.length); - } else { - res = {}; - } - - // Initialize removeObj to empty object if not specified - if (removeObj === null || removeObj === undefined) { - removeObj = {}; - } - - // Iterate over object properties or array indices - for (var p in fullObj) { - if ( - p[0] !== "_" && // Don't consider private properties - fullObj.hasOwnProperty(p) && // Exclude parent properties - fullObj[p] !== null // Exclude cases where fullObj doesn't - // have the property - ) { - // Compute object equality - var props_equal; - props_equal = _.isEqual(fullObj[p], removeObj[p]); - - // Perform recursive comparison if props are not equal - if (!props_equal || p === "uid") { - // Let uids through - - // property has non-null value in fullObj that doesn't - // match the value in removeObj - var fullVal = fullObj[p]; - if (removeObj.hasOwnProperty(p) && typeof fullVal === "object") { - // Recurse over object properties - if (Array.isArray(fullVal)) { - if (fullVal.length > 0 && typeof fullVal[0] === "object") { - // We have an object array - res[p] = new Array(fullVal.length); - for (var i = 0; i < fullVal.length; i++) { - if (!Array.isArray(removeObj[p]) || removeObj[p].length <= i) { - res[p][i] = fullVal[i]; - } else { - res[p][i] = createDeltaObject(fullVal[i], removeObj[p][i]); - } - } - } else { - // We have a primitive array or typed array - res[p] = fullVal; - } - } else { - // object - var full_obj = createDeltaObject(fullVal, removeObj[p]); - if (Object.keys(full_obj).length > 0) { - // new object is not empty - res[p] = full_obj; - } - } - } else if (typeof fullVal === "object" && !Array.isArray(fullVal)) { - // Return 'clone' of fullVal - // We don't use a standard clone method so that we keep - // the special case handling of this method - res[p] = createDeltaObject(fullVal, {}); - } else if (fullVal !== undefined && typeof fullVal !== "function") { - // No recursion necessary, Just keep value from fullObj. - // But skip values with function type - res[p] = fullVal; - } - } - } - } - return res; -} - -function randstr(existing, bits, base, _recursion) { - if (!base) base = 16; - if (bits === undefined) bits = 24; - if (bits <= 0) return "0"; - - var digits = Math.log(Math.pow(2, bits)) / Math.log(base); - var res = ""; - var i, b, x; - - for (i = 2; digits === Infinity; i *= 2) { - digits = (Math.log(Math.pow(2, bits / i)) / Math.log(base)) * i; - } - - var rem = digits - Math.floor(digits); - - for (i = 0; i < Math.floor(digits); i++) { - x = Math.floor(Math.random() * base).toString(base); - res = x + res; - } - - if (rem) { - b = Math.pow(base, rem); - x = Math.floor(Math.random() * b).toString(base); - res = x + res; - } - - var parsed = parseInt(res, base); - if ( - (existing && existing[res]) || - (parsed !== Infinity && parsed >= Math.pow(2, bits)) - ) { - if (_recursion > 10) { - lib.warn("randstr failed uniqueness"); - return res; - } - return randstr(existing, bits, base, (_recursion || 0) + 1); - } else return res; -} - -module.exports = { - FigureView: FigureView, - FigureModel: FigureModel, -}; - - -/***/ }), -/* 4 */ -/***/ (function(module, exports) { - -module.exports = __WEBPACK_EXTERNAL_MODULE_4__; - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - -/* WEBPACK VAR INJECTION */(function(global, module) {var __WEBPACK_AMD_DEFINE_RESULT__;/** - * @license - * Lodash - * Copyright OpenJS Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */ -;(function() { - - /** Used as a safe reference for `undefined` in pre-ES5 environments. */ - var undefined; - - /** Used as the semantic version number. */ - var VERSION = '4.17.19'; - - /** Used as the size to enable large array optimizations. */ - var LARGE_ARRAY_SIZE = 200; - - /** Error message constants. */ - var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.', - FUNC_ERROR_TEXT = 'Expected a function'; - - /** Used to stand-in for `undefined` hash values. */ - var HASH_UNDEFINED = '__lodash_hash_undefined__'; - - /** Used as the maximum memoize cache size. */ - var MAX_MEMOIZE_SIZE = 500; - - /** Used as the internal argument placeholder. */ - var PLACEHOLDER = '__lodash_placeholder__'; - - /** Used to compose bitmasks for cloning. */ - var CLONE_DEEP_FLAG = 1, - CLONE_FLAT_FLAG = 2, - CLONE_SYMBOLS_FLAG = 4; - - /** Used to compose bitmasks for value comparisons. */ - var COMPARE_PARTIAL_FLAG = 1, - COMPARE_UNORDERED_FLAG = 2; - - /** Used to compose bitmasks for function metadata. */ - var WRAP_BIND_FLAG = 1, - WRAP_BIND_KEY_FLAG = 2, - WRAP_CURRY_BOUND_FLAG = 4, - WRAP_CURRY_FLAG = 8, - WRAP_CURRY_RIGHT_FLAG = 16, - WRAP_PARTIAL_FLAG = 32, - WRAP_PARTIAL_RIGHT_FLAG = 64, - WRAP_ARY_FLAG = 128, - WRAP_REARG_FLAG = 256, - WRAP_FLIP_FLAG = 512; - - /** Used as default options for `_.truncate`. */ - var DEFAULT_TRUNC_LENGTH = 30, - DEFAULT_TRUNC_OMISSION = '...'; - - /** Used to detect hot functions by number of calls within a span of milliseconds. */ - var HOT_COUNT = 800, - HOT_SPAN = 16; - - /** Used to indicate the type of lazy iteratees. */ - var LAZY_FILTER_FLAG = 1, - LAZY_MAP_FLAG = 2, - LAZY_WHILE_FLAG = 3; - - /** Used as references for various `Number` constants. */ - var INFINITY = 1 / 0, - MAX_SAFE_INTEGER = 9007199254740991, - MAX_INTEGER = 1.7976931348623157e+308, - NAN = 0 / 0; - - /** Used as references for the maximum length and index of an array. */ - var MAX_ARRAY_LENGTH = 4294967295, - MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1, - HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1; - - /** Used to associate wrap methods with their bit flags. */ - var wrapFlags = [ - ['ary', WRAP_ARY_FLAG], - ['bind', WRAP_BIND_FLAG], - ['bindKey', WRAP_BIND_KEY_FLAG], - ['curry', WRAP_CURRY_FLAG], - ['curryRight', WRAP_CURRY_RIGHT_FLAG], - ['flip', WRAP_FLIP_FLAG], - ['partial', WRAP_PARTIAL_FLAG], - ['partialRight', WRAP_PARTIAL_RIGHT_FLAG], - ['rearg', WRAP_REARG_FLAG] - ]; - - /** `Object#toString` result references. */ - var argsTag = '[object Arguments]', - arrayTag = '[object Array]', - asyncTag = '[object AsyncFunction]', - boolTag = '[object Boolean]', - dateTag = '[object Date]', - domExcTag = '[object DOMException]', - errorTag = '[object Error]', - funcTag = '[object Function]', - genTag = '[object GeneratorFunction]', - mapTag = '[object Map]', - numberTag = '[object Number]', - nullTag = '[object Null]', - objectTag = '[object Object]', - promiseTag = '[object Promise]', - proxyTag = '[object Proxy]', - regexpTag = '[object RegExp]', - setTag = '[object Set]', - stringTag = '[object String]', - symbolTag = '[object Symbol]', - undefinedTag = '[object Undefined]', - weakMapTag = '[object WeakMap]', - weakSetTag = '[object WeakSet]'; - - var arrayBufferTag = '[object ArrayBuffer]', - dataViewTag = '[object DataView]', - float32Tag = '[object Float32Array]', - float64Tag = '[object Float64Array]', - int8Tag = '[object Int8Array]', - int16Tag = '[object Int16Array]', - int32Tag = '[object Int32Array]', - uint8Tag = '[object Uint8Array]', - uint8ClampedTag = '[object Uint8ClampedArray]', - uint16Tag = '[object Uint16Array]', - uint32Tag = '[object Uint32Array]'; - - /** Used to match empty string literals in compiled template source. */ - var reEmptyStringLeading = /\b__p \+= '';/g, - reEmptyStringMiddle = /\b(__p \+=) '' \+/g, - reEmptyStringTrailing = /(__e\(.*?\)|\b__t\)) \+\n'';/g; - - /** Used to match HTML entities and HTML characters. */ - var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g, - reUnescapedHtml = /[&<>"']/g, - reHasEscapedHtml = RegExp(reEscapedHtml.source), - reHasUnescapedHtml = RegExp(reUnescapedHtml.source); - - /** Used to match template delimiters. */ - var reEscape = /<%-([\s\S]+?)%>/g, - reEvaluate = /<%([\s\S]+?)%>/g, - reInterpolate = /<%=([\s\S]+?)%>/g; - - /** Used to match property names within property paths. */ - var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, - reIsPlainProp = /^\w*$/, - rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; - - /** - * Used to match `RegExp` - * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). - */ - var reRegExpChar = /[\\^$.*+?()[\]{}|]/g, - reHasRegExpChar = RegExp(reRegExpChar.source); - - /** Used to match leading and trailing whitespace. */ - var reTrim = /^\s+|\s+$/g, - reTrimStart = /^\s+/, - reTrimEnd = /\s+$/; - - /** Used to match wrap detail comments. */ - var reWrapComment = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, - reWrapDetails = /\{\n\/\* \[wrapped with (.+)\] \*/, - reSplitDetails = /,? & /; - - /** Used to match words composed of alphanumeric characters. */ - var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g; - - /** Used to match backslashes in property paths. */ - var reEscapeChar = /\\(\\)?/g; - - /** - * Used to match - * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components). - */ - var reEsTemplate = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g; - - /** Used to match `RegExp` flags from their coerced string values. */ - var reFlags = /\w*$/; - - /** Used to detect bad signed hexadecimal string values. */ - var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; - - /** Used to detect binary string values. */ - var reIsBinary = /^0b[01]+$/i; - - /** Used to detect host constructors (Safari). */ - var reIsHostCtor = /^\[object .+?Constructor\]$/; - - /** Used to detect octal string values. */ - var reIsOctal = /^0o[0-7]+$/i; - - /** Used to detect unsigned integer values. */ - var reIsUint = /^(?:0|[1-9]\d*)$/; - - /** Used to match Latin Unicode letters (excluding mathematical operators). */ - var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g; - - /** Used to ensure capturing order of template delimiters. */ - var reNoMatch = /($^)/; - - /** Used to match unescaped characters in compiled string literals. */ - var reUnescapedString = /['\n\r\u2028\u2029\\]/g; - - /** Used to compose unicode character classes. */ - var rsAstralRange = '\\ud800-\\udfff', - rsComboMarksRange = '\\u0300-\\u036f', - reComboHalfMarksRange = '\\ufe20-\\ufe2f', - rsComboSymbolsRange = '\\u20d0-\\u20ff', - rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, - rsDingbatRange = '\\u2700-\\u27bf', - rsLowerRange = 'a-z\\xdf-\\xf6\\xf8-\\xff', - rsMathOpRange = '\\xac\\xb1\\xd7\\xf7', - rsNonCharRange = '\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf', - rsPunctuationRange = '\\u2000-\\u206f', - rsSpaceRange = ' \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000', - rsUpperRange = 'A-Z\\xc0-\\xd6\\xd8-\\xde', - rsVarRange = '\\ufe0e\\ufe0f', - rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange; - - /** Used to compose unicode capture groups. */ - var rsApos = "['\u2019]", - rsAstral = '[' + rsAstralRange + ']', - rsBreak = '[' + rsBreakRange + ']', - rsCombo = '[' + rsComboRange + ']', - rsDigits = '\\d+', - rsDingbat = '[' + rsDingbatRange + ']', - rsLower = '[' + rsLowerRange + ']', - rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']', - rsFitz = '\\ud83c[\\udffb-\\udfff]', - rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', - rsNonAstral = '[^' + rsAstralRange + ']', - rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', - rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', - rsUpper = '[' + rsUpperRange + ']', - rsZWJ = '\\u200d'; - - /** Used to compose unicode regexes. */ - var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')', - rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')', - rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?', - rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?', - reOptMod = rsModifier + '?', - rsOptVar = '[' + rsVarRange + ']?', - rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', - rsOrdLower = '\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])', - rsOrdUpper = '\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])', - rsSeq = rsOptVar + reOptMod + rsOptJoin, - rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq, - rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; - - /** Used to match apostrophes. */ - var reApos = RegExp(rsApos, 'g'); - - /** - * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and - * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols). - */ - var reComboMark = RegExp(rsCombo, 'g'); - - /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ - var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); - - /** Used to match complex or compound words. */ - var reUnicodeWord = RegExp([ - rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')', - rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')', - rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower, - rsUpper + '+' + rsOptContrUpper, - rsOrdUpper, - rsOrdLower, - rsDigits, - rsEmoji - ].join('|'), 'g'); - - /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */ - var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']'); - - /** Used to detect strings that need a more robust regexp to match words. */ - var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/; - - /** Used to assign default `context` object properties. */ - var contextProps = [ - 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array', - 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object', - 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array', - 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap', - '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout' - ]; - - /** Used to make template sourceURLs easier to identify. */ - var templateCounter = -1; - - /** Used to identify `toStringTag` values of typed arrays. */ - var typedArrayTags = {}; - typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = - typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = - typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = - typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = - typedArrayTags[uint32Tag] = true; - typedArrayTags[argsTag] = typedArrayTags[arrayTag] = - typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = - typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = - typedArrayTags[errorTag] = typedArrayTags[funcTag] = - typedArrayTags[mapTag] = typedArrayTags[numberTag] = - typedArrayTags[objectTag] = typedArrayTags[regexpTag] = - typedArrayTags[setTag] = typedArrayTags[stringTag] = - typedArrayTags[weakMapTag] = false; - - /** Used to identify `toStringTag` values supported by `_.clone`. */ - var cloneableTags = {}; - cloneableTags[argsTag] = cloneableTags[arrayTag] = - cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = - cloneableTags[boolTag] = cloneableTags[dateTag] = - cloneableTags[float32Tag] = cloneableTags[float64Tag] = - cloneableTags[int8Tag] = cloneableTags[int16Tag] = - cloneableTags[int32Tag] = cloneableTags[mapTag] = - cloneableTags[numberTag] = cloneableTags[objectTag] = - cloneableTags[regexpTag] = cloneableTags[setTag] = - cloneableTags[stringTag] = cloneableTags[symbolTag] = - cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = - cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; - cloneableTags[errorTag] = cloneableTags[funcTag] = - cloneableTags[weakMapTag] = false; - - /** Used to map Latin Unicode letters to basic Latin letters. */ - var deburredLetters = { - // Latin-1 Supplement block. - '\xc0': 'A', '\xc1': 'A', '\xc2': 'A', '\xc3': 'A', '\xc4': 'A', '\xc5': 'A', - '\xe0': 'a', '\xe1': 'a', '\xe2': 'a', '\xe3': 'a', '\xe4': 'a', '\xe5': 'a', - '\xc7': 'C', '\xe7': 'c', - '\xd0': 'D', '\xf0': 'd', - '\xc8': 'E', '\xc9': 'E', '\xca': 'E', '\xcb': 'E', - '\xe8': 'e', '\xe9': 'e', '\xea': 'e', '\xeb': 'e', - '\xcc': 'I', '\xcd': 'I', '\xce': 'I', '\xcf': 'I', - '\xec': 'i', '\xed': 'i', '\xee': 'i', '\xef': 'i', - '\xd1': 'N', '\xf1': 'n', - '\xd2': 'O', '\xd3': 'O', '\xd4': 'O', '\xd5': 'O', '\xd6': 'O', '\xd8': 'O', - '\xf2': 'o', '\xf3': 'o', '\xf4': 'o', '\xf5': 'o', '\xf6': 'o', '\xf8': 'o', - '\xd9': 'U', '\xda': 'U', '\xdb': 'U', '\xdc': 'U', - '\xf9': 'u', '\xfa': 'u', '\xfb': 'u', '\xfc': 'u', - '\xdd': 'Y', '\xfd': 'y', '\xff': 'y', - '\xc6': 'Ae', '\xe6': 'ae', - '\xde': 'Th', '\xfe': 'th', - '\xdf': 'ss', - // Latin Extended-A block. - '\u0100': 'A', '\u0102': 'A', '\u0104': 'A', - '\u0101': 'a', '\u0103': 'a', '\u0105': 'a', - '\u0106': 'C', '\u0108': 'C', '\u010a': 'C', '\u010c': 'C', - '\u0107': 'c', '\u0109': 'c', '\u010b': 'c', '\u010d': 'c', - '\u010e': 'D', '\u0110': 'D', '\u010f': 'd', '\u0111': 'd', - '\u0112': 'E', '\u0114': 'E', '\u0116': 'E', '\u0118': 'E', '\u011a': 'E', - '\u0113': 'e', '\u0115': 'e', '\u0117': 'e', '\u0119': 'e', '\u011b': 'e', - '\u011c': 'G', '\u011e': 'G', '\u0120': 'G', '\u0122': 'G', - '\u011d': 'g', '\u011f': 'g', '\u0121': 'g', '\u0123': 'g', - '\u0124': 'H', '\u0126': 'H', '\u0125': 'h', '\u0127': 'h', - '\u0128': 'I', '\u012a': 'I', '\u012c': 'I', '\u012e': 'I', '\u0130': 'I', - '\u0129': 'i', '\u012b': 'i', '\u012d': 'i', '\u012f': 'i', '\u0131': 'i', - '\u0134': 'J', '\u0135': 'j', - '\u0136': 'K', '\u0137': 'k', '\u0138': 'k', - '\u0139': 'L', '\u013b': 'L', '\u013d': 'L', '\u013f': 'L', '\u0141': 'L', - '\u013a': 'l', '\u013c': 'l', '\u013e': 'l', '\u0140': 'l', '\u0142': 'l', - '\u0143': 'N', '\u0145': 'N', '\u0147': 'N', '\u014a': 'N', - '\u0144': 'n', '\u0146': 'n', '\u0148': 'n', '\u014b': 'n', - '\u014c': 'O', '\u014e': 'O', '\u0150': 'O', - '\u014d': 'o', '\u014f': 'o', '\u0151': 'o', - '\u0154': 'R', '\u0156': 'R', '\u0158': 'R', - '\u0155': 'r', '\u0157': 'r', '\u0159': 'r', - '\u015a': 'S', '\u015c': 'S', '\u015e': 'S', '\u0160': 'S', - '\u015b': 's', '\u015d': 's', '\u015f': 's', '\u0161': 's', - '\u0162': 'T', '\u0164': 'T', '\u0166': 'T', - '\u0163': 't', '\u0165': 't', '\u0167': 't', - '\u0168': 'U', '\u016a': 'U', '\u016c': 'U', '\u016e': 'U', '\u0170': 'U', '\u0172': 'U', - '\u0169': 'u', '\u016b': 'u', '\u016d': 'u', '\u016f': 'u', '\u0171': 'u', '\u0173': 'u', - '\u0174': 'W', '\u0175': 'w', - '\u0176': 'Y', '\u0177': 'y', '\u0178': 'Y', - '\u0179': 'Z', '\u017b': 'Z', '\u017d': 'Z', - '\u017a': 'z', '\u017c': 'z', '\u017e': 'z', - '\u0132': 'IJ', '\u0133': 'ij', - '\u0152': 'Oe', '\u0153': 'oe', - '\u0149': "'n", '\u017f': 's' - }; - - /** Used to map characters to HTML entities. */ - var htmlEscapes = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - "'": ''' - }; - - /** Used to map HTML entities to characters. */ - var htmlUnescapes = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - ''': "'" - }; - - /** Used to escape characters for inclusion in compiled string literals. */ - var stringEscapes = { - '\\': '\\', - "'": "'", - '\n': 'n', - '\r': 'r', - '\u2028': 'u2028', - '\u2029': 'u2029' - }; - - /** Built-in method references without a dependency on `root`. */ - var freeParseFloat = parseFloat, - freeParseInt = parseInt; - - /** Detect free variable `global` from Node.js. */ - var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; - - /** Detect free variable `self`. */ - var freeSelf = typeof self == 'object' && self && self.Object === Object && self; - - /** Used as a reference to the global object. */ - var root = freeGlobal || freeSelf || Function('return this')(); - - /** Detect free variable `exports`. */ - var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; - - /** Detect free variable `module`. */ - var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; - - /** Detect the popular CommonJS extension `module.exports`. */ - var moduleExports = freeModule && freeModule.exports === freeExports; - - /** Detect free variable `process` from Node.js. */ - var freeProcess = moduleExports && freeGlobal.process; - - /** Used to access faster Node.js helpers. */ - var nodeUtil = (function() { - try { - // Use `util.types` for Node.js 10+. - var types = freeModule && freeModule.require && freeModule.require('util').types; - - if (types) { - return types; - } - - // Legacy `process.binding('util')` for Node.js < 10. - return freeProcess && freeProcess.binding && freeProcess.binding('util'); - } catch (e) {} - }()); - - /* Node.js helper references. */ - var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer, - nodeIsDate = nodeUtil && nodeUtil.isDate, - nodeIsMap = nodeUtil && nodeUtil.isMap, - nodeIsRegExp = nodeUtil && nodeUtil.isRegExp, - nodeIsSet = nodeUtil && nodeUtil.isSet, - nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; - - /*--------------------------------------------------------------------------*/ - - /** - * A faster alternative to `Function#apply`, this function invokes `func` - * with the `this` binding of `thisArg` and the arguments of `args`. - * - * @private - * @param {Function} func The function to invoke. - * @param {*} thisArg The `this` binding of `func`. - * @param {Array} args The arguments to invoke `func` with. - * @returns {*} Returns the result of `func`. - */ - function apply(func, thisArg, args) { - switch (args.length) { - case 0: return func.call(thisArg); - case 1: return func.call(thisArg, args[0]); - case 2: return func.call(thisArg, args[0], args[1]); - case 3: return func.call(thisArg, args[0], args[1], args[2]); - } - return func.apply(thisArg, args); - } - - /** - * A specialized version of `baseAggregator` for arrays. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} setter The function to set `accumulator` values. - * @param {Function} iteratee The iteratee to transform keys. - * @param {Object} accumulator The initial aggregated object. - * @returns {Function} Returns `accumulator`. - */ - function arrayAggregator(array, setter, iteratee, accumulator) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - var value = array[index]; - setter(accumulator, value, iteratee(value), array); - } - return accumulator; - } - - /** - * A specialized version of `_.forEach` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns `array`. - */ - function arrayEach(array, iteratee) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - if (iteratee(array[index], index, array) === false) { - break; - } - } - return array; - } - - /** - * A specialized version of `_.forEachRight` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns `array`. - */ - function arrayEachRight(array, iteratee) { - var length = array == null ? 0 : array.length; - - while (length--) { - if (iteratee(array[length], length, array) === false) { - break; - } - } - return array; - } - - /** - * A specialized version of `_.every` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false`. - */ - function arrayEvery(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - if (!predicate(array[index], index, array)) { - return false; - } - } - return true; - } - - /** - * A specialized version of `_.filter` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - */ - function arrayFilter(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length, - resIndex = 0, - result = []; - - while (++index < length) { - var value = array[index]; - if (predicate(value, index, array)) { - result[resIndex++] = value; - } - } - return result; - } - - /** - * A specialized version of `_.includes` for arrays without support for - * specifying an index to search from. - * - * @private - * @param {Array} [array] The array to inspect. - * @param {*} target The value to search for. - * @returns {boolean} Returns `true` if `target` is found, else `false`. - */ - function arrayIncludes(array, value) { - var length = array == null ? 0 : array.length; - return !!length && baseIndexOf(array, value, 0) > -1; - } - - /** - * This function is like `arrayIncludes` except that it accepts a comparator. - * - * @private - * @param {Array} [array] The array to inspect. - * @param {*} target The value to search for. - * @param {Function} comparator The comparator invoked per element. - * @returns {boolean} Returns `true` if `target` is found, else `false`. - */ - function arrayIncludesWith(array, value, comparator) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - if (comparator(value, array[index])) { - return true; - } - } - return false; - } - - /** - * A specialized version of `_.map` for arrays without support for iteratee - * shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ - function arrayMap(array, iteratee) { - var index = -1, - length = array == null ? 0 : array.length, - result = Array(length); - - while (++index < length) { - result[index] = iteratee(array[index], index, array); - } - return result; - } - - /** - * Appends the elements of `values` to `array`. - * - * @private - * @param {Array} array The array to modify. - * @param {Array} values The values to append. - * @returns {Array} Returns `array`. - */ - function arrayPush(array, values) { - var index = -1, - length = values.length, - offset = array.length; - - while (++index < length) { - array[offset + index] = values[index]; - } - return array; - } - - /** - * A specialized version of `_.reduce` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @param {boolean} [initAccum] Specify using the first element of `array` as - * the initial value. - * @returns {*} Returns the accumulated value. - */ - function arrayReduce(array, iteratee, accumulator, initAccum) { - var index = -1, - length = array == null ? 0 : array.length; - - if (initAccum && length) { - accumulator = array[++index]; - } - while (++index < length) { - accumulator = iteratee(accumulator, array[index], index, array); - } - return accumulator; - } - - /** - * A specialized version of `_.reduceRight` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @param {boolean} [initAccum] Specify using the last element of `array` as - * the initial value. - * @returns {*} Returns the accumulated value. - */ - function arrayReduceRight(array, iteratee, accumulator, initAccum) { - var length = array == null ? 0 : array.length; - if (initAccum && length) { - accumulator = array[--length]; - } - while (length--) { - accumulator = iteratee(accumulator, array[length], length, array); - } - return accumulator; - } - - /** - * A specialized version of `_.some` for arrays without support for iteratee - * shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - */ - function arraySome(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - if (predicate(array[index], index, array)) { - return true; - } - } - return false; - } - - /** - * Gets the size of an ASCII `string`. - * - * @private - * @param {string} string The string inspect. - * @returns {number} Returns the string size. - */ - var asciiSize = baseProperty('length'); - - /** - * Converts an ASCII `string` to an array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the converted array. - */ - function asciiToArray(string) { - return string.split(''); - } - - /** - * Splits an ASCII `string` into an array of its words. - * - * @private - * @param {string} The string to inspect. - * @returns {Array} Returns the words of `string`. - */ - function asciiWords(string) { - return string.match(reAsciiWord) || []; - } - - /** - * The base implementation of methods like `_.findKey` and `_.findLastKey`, - * without support for iteratee shorthands, which iterates over `collection` - * using `eachFunc`. - * - * @private - * @param {Array|Object} collection The collection to inspect. - * @param {Function} predicate The function invoked per iteration. - * @param {Function} eachFunc The function to iterate over `collection`. - * @returns {*} Returns the found element or its key, else `undefined`. - */ - function baseFindKey(collection, predicate, eachFunc) { - var result; - eachFunc(collection, function(value, key, collection) { - if (predicate(value, key, collection)) { - result = key; - return false; - } - }); - return result; - } - - /** - * The base implementation of `_.findIndex` and `_.findLastIndex` without - * support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} predicate The function invoked per iteration. - * @param {number} fromIndex The index to search from. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseFindIndex(array, predicate, fromIndex, fromRight) { - var length = array.length, - index = fromIndex + (fromRight ? 1 : -1); - - while ((fromRight ? index-- : ++index < length)) { - if (predicate(array[index], index, array)) { - return index; - } - } - return -1; - } - - /** - * The base implementation of `_.indexOf` without `fromIndex` bounds checks. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseIndexOf(array, value, fromIndex) { - return value === value - ? strictIndexOf(array, value, fromIndex) - : baseFindIndex(array, baseIsNaN, fromIndex); - } - - /** - * This function is like `baseIndexOf` except that it accepts a comparator. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @param {Function} comparator The comparator invoked per element. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function baseIndexOfWith(array, value, fromIndex, comparator) { - var index = fromIndex - 1, - length = array.length; - - while (++index < length) { - if (comparator(array[index], value)) { - return index; - } - } - return -1; - } - - /** - * The base implementation of `_.isNaN` without support for number objects. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. - */ - function baseIsNaN(value) { - return value !== value; - } - - /** - * The base implementation of `_.mean` and `_.meanBy` without support for - * iteratee shorthands. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {number} Returns the mean. - */ - function baseMean(array, iteratee) { - var length = array == null ? 0 : array.length; - return length ? (baseSum(array, iteratee) / length) : NAN; - } - - /** - * The base implementation of `_.property` without support for deep paths. - * - * @private - * @param {string} key The key of the property to get. - * @returns {Function} Returns the new accessor function. - */ - function baseProperty(key) { - return function(object) { - return object == null ? undefined : object[key]; - }; - } - - /** - * The base implementation of `_.propertyOf` without support for deep paths. - * - * @private - * @param {Object} object The object to query. - * @returns {Function} Returns the new accessor function. - */ - function basePropertyOf(object) { - return function(key) { - return object == null ? undefined : object[key]; - }; - } - - /** - * The base implementation of `_.reduce` and `_.reduceRight`, without support - * for iteratee shorthands, which iterates over `collection` using `eachFunc`. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {*} accumulator The initial value. - * @param {boolean} initAccum Specify using the first or last element of - * `collection` as the initial value. - * @param {Function} eachFunc The function to iterate over `collection`. - * @returns {*} Returns the accumulated value. - */ - function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { - eachFunc(collection, function(value, index, collection) { - accumulator = initAccum - ? (initAccum = false, value) - : iteratee(accumulator, value, index, collection); - }); - return accumulator; - } - - /** - * The base implementation of `_.sortBy` which uses `comparer` to define the - * sort order of `array` and replaces criteria objects with their corresponding - * values. - * - * @private - * @param {Array} array The array to sort. - * @param {Function} comparer The function to define sort order. - * @returns {Array} Returns `array`. - */ - function baseSortBy(array, comparer) { - var length = array.length; - - array.sort(comparer); - while (length--) { - array[length] = array[length].value; - } - return array; - } - - /** - * The base implementation of `_.sum` and `_.sumBy` without support for - * iteratee shorthands. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {number} Returns the sum. - */ - function baseSum(array, iteratee) { - var result, - index = -1, - length = array.length; - - while (++index < length) { - var current = iteratee(array[index]); - if (current !== undefined) { - result = result === undefined ? current : (result + current); - } - } - return result; - } - - /** - * The base implementation of `_.times` without support for iteratee shorthands - * or max array length checks. - * - * @private - * @param {number} n The number of times to invoke `iteratee`. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the array of results. - */ - function baseTimes(n, iteratee) { - var index = -1, - result = Array(n); - - while (++index < n) { - result[index] = iteratee(index); - } - return result; - } - - /** - * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array - * of key-value pairs for `object` corresponding to the property names of `props`. - * - * @private - * @param {Object} object The object to query. - * @param {Array} props The property names to get values for. - * @returns {Object} Returns the key-value pairs. - */ - function baseToPairs(object, props) { - return arrayMap(props, function(key) { - return [key, object[key]]; - }); - } - - /** - * The base implementation of `_.unary` without support for storing metadata. - * - * @private - * @param {Function} func The function to cap arguments for. - * @returns {Function} Returns the new capped function. - */ - function baseUnary(func) { - return function(value) { - return func(value); - }; - } - - /** - * The base implementation of `_.values` and `_.valuesIn` which creates an - * array of `object` property values corresponding to the property names - * of `props`. - * - * @private - * @param {Object} object The object to query. - * @param {Array} props The property names to get values for. - * @returns {Object} Returns the array of property values. - */ - function baseValues(object, props) { - return arrayMap(props, function(key) { - return object[key]; - }); - } - - /** - * Checks if a `cache` value for `key` exists. - * - * @private - * @param {Object} cache The cache to query. - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function cacheHas(cache, key) { - return cache.has(key); - } - - /** - * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol - * that is not found in the character symbols. - * - * @private - * @param {Array} strSymbols The string symbols to inspect. - * @param {Array} chrSymbols The character symbols to find. - * @returns {number} Returns the index of the first unmatched string symbol. - */ - function charsStartIndex(strSymbols, chrSymbols) { - var index = -1, - length = strSymbols.length; - - while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} - return index; - } - - /** - * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol - * that is not found in the character symbols. - * - * @private - * @param {Array} strSymbols The string symbols to inspect. - * @param {Array} chrSymbols The character symbols to find. - * @returns {number} Returns the index of the last unmatched string symbol. - */ - function charsEndIndex(strSymbols, chrSymbols) { - var index = strSymbols.length; - - while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {} - return index; - } - - /** - * Gets the number of `placeholder` occurrences in `array`. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} placeholder The placeholder to search for. - * @returns {number} Returns the placeholder count. - */ - function countHolders(array, placeholder) { - var length = array.length, - result = 0; - - while (length--) { - if (array[length] === placeholder) { - ++result; - } - } - return result; - } - - /** - * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A - * letters to basic Latin letters. - * - * @private - * @param {string} letter The matched letter to deburr. - * @returns {string} Returns the deburred letter. - */ - var deburrLetter = basePropertyOf(deburredLetters); - - /** - * Used by `_.escape` to convert characters to HTML entities. - * - * @private - * @param {string} chr The matched character to escape. - * @returns {string} Returns the escaped character. - */ - var escapeHtmlChar = basePropertyOf(htmlEscapes); - - /** - * Used by `_.template` to escape characters for inclusion in compiled string literals. - * - * @private - * @param {string} chr The matched character to escape. - * @returns {string} Returns the escaped character. - */ - function escapeStringChar(chr) { - return '\\' + stringEscapes[chr]; - } - - /** - * Gets the value at `key` of `object`. - * - * @private - * @param {Object} [object] The object to query. - * @param {string} key The key of the property to get. - * @returns {*} Returns the property value. - */ - function getValue(object, key) { - return object == null ? undefined : object[key]; - } - - /** - * Checks if `string` contains Unicode symbols. - * - * @private - * @param {string} string The string to inspect. - * @returns {boolean} Returns `true` if a symbol is found, else `false`. - */ - function hasUnicode(string) { - return reHasUnicode.test(string); - } - - /** - * Checks if `string` contains a word composed of Unicode symbols. - * - * @private - * @param {string} string The string to inspect. - * @returns {boolean} Returns `true` if a word is found, else `false`. - */ - function hasUnicodeWord(string) { - return reHasUnicodeWord.test(string); - } - - /** - * Converts `iterator` to an array. - * - * @private - * @param {Object} iterator The iterator to convert. - * @returns {Array} Returns the converted array. - */ - function iteratorToArray(iterator) { - var data, - result = []; - - while (!(data = iterator.next()).done) { - result.push(data.value); - } - return result; - } - - /** - * Converts `map` to its key-value pairs. - * - * @private - * @param {Object} map The map to convert. - * @returns {Array} Returns the key-value pairs. - */ - function mapToArray(map) { - var index = -1, - result = Array(map.size); - - map.forEach(function(value, key) { - result[++index] = [key, value]; - }); - return result; - } - - /** - * Creates a unary function that invokes `func` with its argument transformed. - * - * @private - * @param {Function} func The function to wrap. - * @param {Function} transform The argument transform. - * @returns {Function} Returns the new function. - */ - function overArg(func, transform) { - return function(arg) { - return func(transform(arg)); - }; - } - - /** - * Replaces all `placeholder` elements in `array` with an internal placeholder - * and returns an array of their indexes. - * - * @private - * @param {Array} array The array to modify. - * @param {*} placeholder The placeholder to replace. - * @returns {Array} Returns the new array of placeholder indexes. - */ - function replaceHolders(array, placeholder) { - var index = -1, - length = array.length, - resIndex = 0, - result = []; - - while (++index < length) { - var value = array[index]; - if (value === placeholder || value === PLACEHOLDER) { - array[index] = PLACEHOLDER; - result[resIndex++] = index; - } - } - return result; - } - - /** - * Converts `set` to an array of its values. - * - * @private - * @param {Object} set The set to convert. - * @returns {Array} Returns the values. - */ - function setToArray(set) { - var index = -1, - result = Array(set.size); - - set.forEach(function(value) { - result[++index] = value; - }); - return result; - } - - /** - * Converts `set` to its value-value pairs. - * - * @private - * @param {Object} set The set to convert. - * @returns {Array} Returns the value-value pairs. - */ - function setToPairs(set) { - var index = -1, - result = Array(set.size); - - set.forEach(function(value) { - result[++index] = [value, value]; - }); - return result; - } - - /** - * A specialized version of `_.indexOf` which performs strict equality - * comparisons of values, i.e. `===`. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function strictIndexOf(array, value, fromIndex) { - var index = fromIndex - 1, - length = array.length; - - while (++index < length) { - if (array[index] === value) { - return index; - } - } - return -1; - } - - /** - * A specialized version of `_.lastIndexOf` which performs strict equality - * comparisons of values, i.e. `===`. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} fromIndex The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function strictLastIndexOf(array, value, fromIndex) { - var index = fromIndex + 1; - while (index--) { - if (array[index] === value) { - return index; - } - } - return index; - } - - /** - * Gets the number of symbols in `string`. - * - * @private - * @param {string} string The string to inspect. - * @returns {number} Returns the string size. - */ - function stringSize(string) { - return hasUnicode(string) - ? unicodeSize(string) - : asciiSize(string); - } - - /** - * Converts `string` to an array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the converted array. - */ - function stringToArray(string) { - return hasUnicode(string) - ? unicodeToArray(string) - : asciiToArray(string); - } - - /** - * Used by `_.unescape` to convert HTML entities to characters. - * - * @private - * @param {string} chr The matched character to unescape. - * @returns {string} Returns the unescaped character. - */ - var unescapeHtmlChar = basePropertyOf(htmlUnescapes); - - /** - * Gets the size of a Unicode `string`. - * - * @private - * @param {string} string The string inspect. - * @returns {number} Returns the string size. - */ - function unicodeSize(string) { - var result = reUnicode.lastIndex = 0; - while (reUnicode.test(string)) { - ++result; - } - return result; - } - - /** - * Converts a Unicode `string` to an array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the converted array. - */ - function unicodeToArray(string) { - return string.match(reUnicode) || []; - } - - /** - * Splits a Unicode `string` into an array of its words. - * - * @private - * @param {string} The string to inspect. - * @returns {Array} Returns the words of `string`. - */ - function unicodeWords(string) { - return string.match(reUnicodeWord) || []; - } - - /*--------------------------------------------------------------------------*/ - - /** - * Create a new pristine `lodash` function using the `context` object. - * - * @static - * @memberOf _ - * @since 1.1.0 - * @category Util - * @param {Object} [context=root] The context object. - * @returns {Function} Returns a new `lodash` function. - * @example - * - * _.mixin({ 'foo': _.constant('foo') }); - * - * var lodash = _.runInContext(); - * lodash.mixin({ 'bar': lodash.constant('bar') }); - * - * _.isFunction(_.foo); - * // => true - * _.isFunction(_.bar); - * // => false - * - * lodash.isFunction(lodash.foo); - * // => false - * lodash.isFunction(lodash.bar); - * // => true - * - * // Create a suped-up `defer` in Node.js. - * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer; - */ - var runInContext = (function runInContext(context) { - context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps)); - - /** Built-in constructor references. */ - var Array = context.Array, - Date = context.Date, - Error = context.Error, - Function = context.Function, - Math = context.Math, - Object = context.Object, - RegExp = context.RegExp, - String = context.String, - TypeError = context.TypeError; - - /** Used for built-in method references. */ - var arrayProto = Array.prototype, - funcProto = Function.prototype, - objectProto = Object.prototype; - - /** Used to detect overreaching core-js shims. */ - var coreJsData = context['__core-js_shared__']; - - /** Used to resolve the decompiled source of functions. */ - var funcToString = funcProto.toString; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** Used to generate unique IDs. */ - var idCounter = 0; - - /** Used to detect methods masquerading as native. */ - var maskSrcKey = (function() { - var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); - return uid ? ('Symbol(src)_1.' + uid) : ''; - }()); - - /** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ - var nativeObjectToString = objectProto.toString; - - /** Used to infer the `Object` constructor. */ - var objectCtorString = funcToString.call(Object); - - /** Used to restore the original `_` reference in `_.noConflict`. */ - var oldDash = root._; - - /** Used to detect if a method is native. */ - var reIsNative = RegExp('^' + - funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' - ); - - /** Built-in value references. */ - var Buffer = moduleExports ? context.Buffer : undefined, - Symbol = context.Symbol, - Uint8Array = context.Uint8Array, - allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined, - getPrototype = overArg(Object.getPrototypeOf, Object), - objectCreate = Object.create, - propertyIsEnumerable = objectProto.propertyIsEnumerable, - splice = arrayProto.splice, - spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined, - symIterator = Symbol ? Symbol.iterator : undefined, - symToStringTag = Symbol ? Symbol.toStringTag : undefined; - - var defineProperty = (function() { - try { - var func = getNative(Object, 'defineProperty'); - func({}, '', {}); - return func; - } catch (e) {} - }()); - - /** Mocked built-ins. */ - var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout, - ctxNow = Date && Date.now !== root.Date.now && Date.now, - ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout; - - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeCeil = Math.ceil, - nativeFloor = Math.floor, - nativeGetSymbols = Object.getOwnPropertySymbols, - nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined, - nativeIsFinite = context.isFinite, - nativeJoin = arrayProto.join, - nativeKeys = overArg(Object.keys, Object), - nativeMax = Math.max, - nativeMin = Math.min, - nativeNow = Date.now, - nativeParseInt = context.parseInt, - nativeRandom = Math.random, - nativeReverse = arrayProto.reverse; - - /* Built-in method references that are verified to be native. */ - var DataView = getNative(context, 'DataView'), - Map = getNative(context, 'Map'), - Promise = getNative(context, 'Promise'), - Set = getNative(context, 'Set'), - WeakMap = getNative(context, 'WeakMap'), - nativeCreate = getNative(Object, 'create'); - - /** Used to store function metadata. */ - var metaMap = WeakMap && new WeakMap; - - /** Used to lookup unminified function names. */ - var realNames = {}; - - /** Used to detect maps, sets, and weakmaps. */ - var dataViewCtorString = toSource(DataView), - mapCtorString = toSource(Map), - promiseCtorString = toSource(Promise), - setCtorString = toSource(Set), - weakMapCtorString = toSource(WeakMap); - - /** Used to convert symbols to primitives and strings. */ - var symbolProto = Symbol ? Symbol.prototype : undefined, - symbolValueOf = symbolProto ? symbolProto.valueOf : undefined, - symbolToString = symbolProto ? symbolProto.toString : undefined; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a `lodash` object which wraps `value` to enable implicit method - * chain sequences. Methods that operate on and return arrays, collections, - * and functions can be chained together. Methods that retrieve a single value - * or may return a primitive value will automatically end the chain sequence - * and return the unwrapped value. Otherwise, the value must be unwrapped - * with `_#value`. - * - * Explicit chain sequences, which must be unwrapped with `_#value`, may be - * enabled using `_.chain`. - * - * The execution of chained methods is lazy, that is, it's deferred until - * `_#value` is implicitly or explicitly called. - * - * Lazy evaluation allows several methods to support shortcut fusion. - * Shortcut fusion is an optimization to merge iteratee calls; this avoids - * the creation of intermediate arrays and can greatly reduce the number of - * iteratee executions. Sections of a chain sequence qualify for shortcut - * fusion if the section is applied to an array and iteratees accept only - * one argument. The heuristic for whether a section qualifies for shortcut - * fusion is subject to change. - * - * Chaining is supported in custom builds as long as the `_#value` method is - * directly or indirectly included in the build. - * - * In addition to lodash methods, wrappers have `Array` and `String` methods. - * - * The wrapper `Array` methods are: - * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift` - * - * The wrapper `String` methods are: - * `replace` and `split` - * - * The wrapper methods that support shortcut fusion are: - * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`, - * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`, - * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray` - * - * The chainable wrapper methods are: - * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`, - * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`, - * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`, - * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, - * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`, - * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`, - * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`, - * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, - * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`, - * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, - * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, - * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, - * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, - * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`, - * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, - * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`, - * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, - * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`, - * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, - * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`, - * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, - * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`, - * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, - * `zipObject`, `zipObjectDeep`, and `zipWith` - * - * The wrapper methods that are **not** chainable by default are: - * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`, - * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`, - * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`, - * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`, - * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`, - * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, - * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, - * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, - * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, - * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, - * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, - * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, - * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`, - * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`, - * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`, - * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`, - * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, - * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`, - * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`, - * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`, - * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`, - * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`, - * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, - * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, - * `upperFirst`, `value`, and `words` - * - * @name _ - * @constructor - * @category Seq - * @param {*} value The value to wrap in a `lodash` instance. - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * function square(n) { - * return n * n; - * } - * - * var wrapped = _([1, 2, 3]); - * - * // Returns an unwrapped value. - * wrapped.reduce(_.add); - * // => 6 - * - * // Returns a wrapped value. - * var squares = wrapped.map(square); - * - * _.isArray(squares); - * // => false - * - * _.isArray(squares.value()); - * // => true - */ - function lodash(value) { - if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { - if (value instanceof LodashWrapper) { - return value; - } - if (hasOwnProperty.call(value, '__wrapped__')) { - return wrapperClone(value); - } - } - return new LodashWrapper(value); - } - - /** - * The base implementation of `_.create` without support for assigning - * properties to the created object. - * - * @private - * @param {Object} proto The object to inherit from. - * @returns {Object} Returns the new object. - */ - var baseCreate = (function() { - function object() {} - return function(proto) { - if (!isObject(proto)) { - return {}; - } - if (objectCreate) { - return objectCreate(proto); - } - object.prototype = proto; - var result = new object; - object.prototype = undefined; - return result; - }; - }()); - - /** - * The function whose prototype chain sequence wrappers inherit from. - * - * @private - */ - function baseLodash() { - // No operation performed. - } - - /** - * The base constructor for creating `lodash` wrapper objects. - * - * @private - * @param {*} value The value to wrap. - * @param {boolean} [chainAll] Enable explicit method chain sequences. - */ - function LodashWrapper(value, chainAll) { - this.__wrapped__ = value; - this.__actions__ = []; - this.__chain__ = !!chainAll; - this.__index__ = 0; - this.__values__ = undefined; - } - - /** - * By default, the template delimiters used by lodash are like those in - * embedded Ruby (ERB) as well as ES2015 template strings. Change the - * following template settings to use alternative delimiters. - * - * @static - * @memberOf _ - * @type {Object} - */ - lodash.templateSettings = { - - /** - * Used to detect `data` property values to be HTML-escaped. - * - * @memberOf _.templateSettings - * @type {RegExp} - */ - 'escape': reEscape, - - /** - * Used to detect code to be evaluated. - * - * @memberOf _.templateSettings - * @type {RegExp} - */ - 'evaluate': reEvaluate, - - /** - * Used to detect `data` property values to inject. - * - * @memberOf _.templateSettings - * @type {RegExp} - */ - 'interpolate': reInterpolate, - - /** - * Used to reference the data object in the template text. - * - * @memberOf _.templateSettings - * @type {string} - */ - 'variable': '', - - /** - * Used to import variables into the compiled template. - * - * @memberOf _.templateSettings - * @type {Object} - */ - 'imports': { - - /** - * A reference to the `lodash` function. - * - * @memberOf _.templateSettings.imports - * @type {Function} - */ - '_': lodash - } - }; - - // Ensure wrappers are instances of `baseLodash`. - lodash.prototype = baseLodash.prototype; - lodash.prototype.constructor = lodash; - - LodashWrapper.prototype = baseCreate(baseLodash.prototype); - LodashWrapper.prototype.constructor = LodashWrapper; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. - * - * @private - * @constructor - * @param {*} value The value to wrap. - */ - function LazyWrapper(value) { - this.__wrapped__ = value; - this.__actions__ = []; - this.__dir__ = 1; - this.__filtered__ = false; - this.__iteratees__ = []; - this.__takeCount__ = MAX_ARRAY_LENGTH; - this.__views__ = []; - } - - /** - * Creates a clone of the lazy wrapper object. - * - * @private - * @name clone - * @memberOf LazyWrapper - * @returns {Object} Returns the cloned `LazyWrapper` object. - */ - function lazyClone() { - var result = new LazyWrapper(this.__wrapped__); - result.__actions__ = copyArray(this.__actions__); - result.__dir__ = this.__dir__; - result.__filtered__ = this.__filtered__; - result.__iteratees__ = copyArray(this.__iteratees__); - result.__takeCount__ = this.__takeCount__; - result.__views__ = copyArray(this.__views__); - return result; - } - - /** - * Reverses the direction of lazy iteration. - * - * @private - * @name reverse - * @memberOf LazyWrapper - * @returns {Object} Returns the new reversed `LazyWrapper` object. - */ - function lazyReverse() { - if (this.__filtered__) { - var result = new LazyWrapper(this); - result.__dir__ = -1; - result.__filtered__ = true; - } else { - result = this.clone(); - result.__dir__ *= -1; - } - return result; - } - - /** - * Extracts the unwrapped value from its lazy wrapper. - * - * @private - * @name value - * @memberOf LazyWrapper - * @returns {*} Returns the unwrapped value. - */ - function lazyValue() { - var array = this.__wrapped__.value(), - dir = this.__dir__, - isArr = isArray(array), - isRight = dir < 0, - arrLength = isArr ? array.length : 0, - view = getView(0, arrLength, this.__views__), - start = view.start, - end = view.end, - length = end - start, - index = isRight ? end : (start - 1), - iteratees = this.__iteratees__, - iterLength = iteratees.length, - resIndex = 0, - takeCount = nativeMin(length, this.__takeCount__); - - if (!isArr || (!isRight && arrLength == length && takeCount == length)) { - return baseWrapperValue(array, this.__actions__); - } - var result = []; - - outer: - while (length-- && resIndex < takeCount) { - index += dir; - - var iterIndex = -1, - value = array[index]; - - while (++iterIndex < iterLength) { - var data = iteratees[iterIndex], - iteratee = data.iteratee, - type = data.type, - computed = iteratee(value); - - if (type == LAZY_MAP_FLAG) { - value = computed; - } else if (!computed) { - if (type == LAZY_FILTER_FLAG) { - continue outer; - } else { - break outer; - } - } - } - result[resIndex++] = value; - } - return result; - } - - // Ensure `LazyWrapper` is an instance of `baseLodash`. - LazyWrapper.prototype = baseCreate(baseLodash.prototype); - LazyWrapper.prototype.constructor = LazyWrapper; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a hash object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function Hash(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } - - /** - * Removes all key-value entries from the hash. - * - * @private - * @name clear - * @memberOf Hash - */ - function hashClear() { - this.__data__ = nativeCreate ? nativeCreate(null) : {}; - this.size = 0; - } - - /** - * Removes `key` and its value from the hash. - * - * @private - * @name delete - * @memberOf Hash - * @param {Object} hash The hash to modify. - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function hashDelete(key) { - var result = this.has(key) && delete this.__data__[key]; - this.size -= result ? 1 : 0; - return result; - } - - /** - * Gets the hash value for `key`. - * - * @private - * @name get - * @memberOf Hash - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function hashGet(key) { - var data = this.__data__; - if (nativeCreate) { - var result = data[key]; - return result === HASH_UNDEFINED ? undefined : result; - } - return hasOwnProperty.call(data, key) ? data[key] : undefined; - } - - /** - * Checks if a hash value for `key` exists. - * - * @private - * @name has - * @memberOf Hash - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function hashHas(key) { - var data = this.__data__; - return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); - } - - /** - * Sets the hash `key` to `value`. - * - * @private - * @name set - * @memberOf Hash - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the hash instance. - */ - function hashSet(key, value) { - var data = this.__data__; - this.size += this.has(key) ? 0 : 1; - data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; - return this; - } - - // Add methods to `Hash`. - Hash.prototype.clear = hashClear; - Hash.prototype['delete'] = hashDelete; - Hash.prototype.get = hashGet; - Hash.prototype.has = hashHas; - Hash.prototype.set = hashSet; - - /*------------------------------------------------------------------------*/ - - /** - * Creates an list cache object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function ListCache(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } - - /** - * Removes all key-value entries from the list cache. - * - * @private - * @name clear - * @memberOf ListCache - */ - function listCacheClear() { - this.__data__ = []; - this.size = 0; - } - - /** - * Removes `key` and its value from the list cache. - * - * @private - * @name delete - * @memberOf ListCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function listCacheDelete(key) { - var data = this.__data__, - index = assocIndexOf(data, key); - - if (index < 0) { - return false; - } - var lastIndex = data.length - 1; - if (index == lastIndex) { - data.pop(); - } else { - splice.call(data, index, 1); - } - --this.size; - return true; - } - - /** - * Gets the list cache value for `key`. - * - * @private - * @name get - * @memberOf ListCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function listCacheGet(key) { - var data = this.__data__, - index = assocIndexOf(data, key); - - return index < 0 ? undefined : data[index][1]; - } - - /** - * Checks if a list cache value for `key` exists. - * - * @private - * @name has - * @memberOf ListCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function listCacheHas(key) { - return assocIndexOf(this.__data__, key) > -1; - } - - /** - * Sets the list cache `key` to `value`. - * - * @private - * @name set - * @memberOf ListCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the list cache instance. - */ - function listCacheSet(key, value) { - var data = this.__data__, - index = assocIndexOf(data, key); - - if (index < 0) { - ++this.size; - data.push([key, value]); - } else { - data[index][1] = value; - } - return this; - } - - // Add methods to `ListCache`. - ListCache.prototype.clear = listCacheClear; - ListCache.prototype['delete'] = listCacheDelete; - ListCache.prototype.get = listCacheGet; - ListCache.prototype.has = listCacheHas; - ListCache.prototype.set = listCacheSet; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a map cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function MapCache(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } - - /** - * Removes all key-value entries from the map. - * - * @private - * @name clear - * @memberOf MapCache - */ - function mapCacheClear() { - this.size = 0; - this.__data__ = { - 'hash': new Hash, - 'map': new (Map || ListCache), - 'string': new Hash - }; - } - - /** - * Removes `key` and its value from the map. - * - * @private - * @name delete - * @memberOf MapCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function mapCacheDelete(key) { - var result = getMapData(this, key)['delete'](key); - this.size -= result ? 1 : 0; - return result; - } - - /** - * Gets the map value for `key`. - * - * @private - * @name get - * @memberOf MapCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function mapCacheGet(key) { - return getMapData(this, key).get(key); - } - - /** - * Checks if a map value for `key` exists. - * - * @private - * @name has - * @memberOf MapCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function mapCacheHas(key) { - return getMapData(this, key).has(key); - } - - /** - * Sets the map `key` to `value`. - * - * @private - * @name set - * @memberOf MapCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the map cache instance. - */ - function mapCacheSet(key, value) { - var data = getMapData(this, key), - size = data.size; - - data.set(key, value); - this.size += data.size == size ? 0 : 1; - return this; - } - - // Add methods to `MapCache`. - MapCache.prototype.clear = mapCacheClear; - MapCache.prototype['delete'] = mapCacheDelete; - MapCache.prototype.get = mapCacheGet; - MapCache.prototype.has = mapCacheHas; - MapCache.prototype.set = mapCacheSet; - - /*------------------------------------------------------------------------*/ - - /** - * - * Creates an array cache object to store unique values. - * - * @private - * @constructor - * @param {Array} [values] The values to cache. - */ - function SetCache(values) { - var index = -1, - length = values == null ? 0 : values.length; - - this.__data__ = new MapCache; - while (++index < length) { - this.add(values[index]); - } - } - - /** - * Adds `value` to the array cache. - * - * @private - * @name add - * @memberOf SetCache - * @alias push - * @param {*} value The value to cache. - * @returns {Object} Returns the cache instance. - */ - function setCacheAdd(value) { - this.__data__.set(value, HASH_UNDEFINED); - return this; - } - - /** - * Checks if `value` is in the array cache. - * - * @private - * @name has - * @memberOf SetCache - * @param {*} value The value to search for. - * @returns {number} Returns `true` if `value` is found, else `false`. - */ - function setCacheHas(value) { - return this.__data__.has(value); - } - - // Add methods to `SetCache`. - SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; - SetCache.prototype.has = setCacheHas; - - /*------------------------------------------------------------------------*/ - - /** - * Creates a stack cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function Stack(entries) { - var data = this.__data__ = new ListCache(entries); - this.size = data.size; - } - - /** - * Removes all key-value entries from the stack. - * - * @private - * @name clear - * @memberOf Stack - */ - function stackClear() { - this.__data__ = new ListCache; - this.size = 0; - } - - /** - * Removes `key` and its value from the stack. - * - * @private - * @name delete - * @memberOf Stack - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function stackDelete(key) { - var data = this.__data__, - result = data['delete'](key); - - this.size = data.size; - return result; - } - - /** - * Gets the stack value for `key`. - * - * @private - * @name get - * @memberOf Stack - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function stackGet(key) { - return this.__data__.get(key); - } - - /** - * Checks if a stack value for `key` exists. - * - * @private - * @name has - * @memberOf Stack - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function stackHas(key) { - return this.__data__.has(key); - } - - /** - * Sets the stack `key` to `value`. - * - * @private - * @name set - * @memberOf Stack - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the stack cache instance. - */ - function stackSet(key, value) { - var data = this.__data__; - if (data instanceof ListCache) { - var pairs = data.__data__; - if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { - pairs.push([key, value]); - this.size = ++data.size; - return this; - } - data = this.__data__ = new MapCache(pairs); - } - data.set(key, value); - this.size = data.size; - return this; - } - - // Add methods to `Stack`. - Stack.prototype.clear = stackClear; - Stack.prototype['delete'] = stackDelete; - Stack.prototype.get = stackGet; - Stack.prototype.has = stackHas; - Stack.prototype.set = stackSet; - - /*------------------------------------------------------------------------*/ - - /** - * Creates an array of the enumerable property names of the array-like `value`. - * - * @private - * @param {*} value The value to query. - * @param {boolean} inherited Specify returning inherited property names. - * @returns {Array} Returns the array of property names. - */ - function arrayLikeKeys(value, inherited) { - var isArr = isArray(value), - isArg = !isArr && isArguments(value), - isBuff = !isArr && !isArg && isBuffer(value), - isType = !isArr && !isArg && !isBuff && isTypedArray(value), - skipIndexes = isArr || isArg || isBuff || isType, - result = skipIndexes ? baseTimes(value.length, String) : [], - length = result.length; - - for (var key in value) { - if ((inherited || hasOwnProperty.call(value, key)) && - !(skipIndexes && ( - // Safari 9 has enumerable `arguments.length` in strict mode. - key == 'length' || - // Node.js 0.10 has enumerable non-index properties on buffers. - (isBuff && (key == 'offset' || key == 'parent')) || - // PhantomJS 2 has enumerable non-index properties on typed arrays. - (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || - // Skip index properties. - isIndex(key, length) - ))) { - result.push(key); - } - } - return result; - } - - /** - * A specialized version of `_.sample` for arrays. - * - * @private - * @param {Array} array The array to sample. - * @returns {*} Returns the random element. - */ - function arraySample(array) { - var length = array.length; - return length ? array[baseRandom(0, length - 1)] : undefined; - } - - /** - * A specialized version of `_.sampleSize` for arrays. - * - * @private - * @param {Array} array The array to sample. - * @param {number} n The number of elements to sample. - * @returns {Array} Returns the random elements. - */ - function arraySampleSize(array, n) { - return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length)); - } - - /** - * A specialized version of `_.shuffle` for arrays. - * - * @private - * @param {Array} array The array to shuffle. - * @returns {Array} Returns the new shuffled array. - */ - function arrayShuffle(array) { - return shuffleSelf(copyArray(array)); - } - - /** - * This function is like `assignValue` except that it doesn't assign - * `undefined` values. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ - function assignMergeValue(object, key, value) { - if ((value !== undefined && !eq(object[key], value)) || - (value === undefined && !(key in object))) { - baseAssignValue(object, key, value); - } - } - - /** - * Assigns `value` to `key` of `object` if the existing value is not equivalent - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ - function assignValue(object, key, value) { - var objValue = object[key]; - if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || - (value === undefined && !(key in object))) { - baseAssignValue(object, key, value); - } - } - - /** - * Gets the index at which the `key` is found in `array` of key-value pairs. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} key The key to search for. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function assocIndexOf(array, key) { - var length = array.length; - while (length--) { - if (eq(array[length][0], key)) { - return length; - } - } - return -1; - } - - /** - * Aggregates elements of `collection` on `accumulator` with keys transformed - * by `iteratee` and values set by `setter`. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} setter The function to set `accumulator` values. - * @param {Function} iteratee The iteratee to transform keys. - * @param {Object} accumulator The initial aggregated object. - * @returns {Function} Returns `accumulator`. - */ - function baseAggregator(collection, setter, iteratee, accumulator) { - baseEach(collection, function(value, key, collection) { - setter(accumulator, value, iteratee(value), collection); - }); - return accumulator; - } - - /** - * The base implementation of `_.assign` without support for multiple sources - * or `customizer` functions. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @returns {Object} Returns `object`. - */ - function baseAssign(object, source) { - return object && copyObject(source, keys(source), object); - } - - /** - * The base implementation of `_.assignIn` without support for multiple sources - * or `customizer` functions. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @returns {Object} Returns `object`. - */ - function baseAssignIn(object, source) { - return object && copyObject(source, keysIn(source), object); - } - - /** - * The base implementation of `assignValue` and `assignMergeValue` without - * value checks. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ - function baseAssignValue(object, key, value) { - if (key == '__proto__' && defineProperty) { - defineProperty(object, key, { - 'configurable': true, - 'enumerable': true, - 'value': value, - 'writable': true - }); - } else { - object[key] = value; - } - } - - /** - * The base implementation of `_.at` without support for individual paths. - * - * @private - * @param {Object} object The object to iterate over. - * @param {string[]} paths The property paths to pick. - * @returns {Array} Returns the picked elements. - */ - function baseAt(object, paths) { - var index = -1, - length = paths.length, - result = Array(length), - skip = object == null; - - while (++index < length) { - result[index] = skip ? undefined : get(object, paths[index]); - } - return result; - } - - /** - * The base implementation of `_.clamp` which doesn't coerce arguments. - * - * @private - * @param {number} number The number to clamp. - * @param {number} [lower] The lower bound. - * @param {number} upper The upper bound. - * @returns {number} Returns the clamped number. - */ - function baseClamp(number, lower, upper) { - if (number === number) { - if (upper !== undefined) { - number = number <= upper ? number : upper; - } - if (lower !== undefined) { - number = number >= lower ? number : lower; - } - } - return number; - } - - /** - * The base implementation of `_.clone` and `_.cloneDeep` which tracks - * traversed objects. - * - * @private - * @param {*} value The value to clone. - * @param {boolean} bitmask The bitmask flags. - * 1 - Deep clone - * 2 - Flatten inherited properties - * 4 - Clone symbols - * @param {Function} [customizer] The function to customize cloning. - * @param {string} [key] The key of `value`. - * @param {Object} [object] The parent object of `value`. - * @param {Object} [stack] Tracks traversed objects and their clone counterparts. - * @returns {*} Returns the cloned value. - */ - function baseClone(value, bitmask, customizer, key, object, stack) { - var result, - isDeep = bitmask & CLONE_DEEP_FLAG, - isFlat = bitmask & CLONE_FLAT_FLAG, - isFull = bitmask & CLONE_SYMBOLS_FLAG; - - if (customizer) { - result = object ? customizer(value, key, object, stack) : customizer(value); - } - if (result !== undefined) { - return result; - } - if (!isObject(value)) { - return value; - } - var isArr = isArray(value); - if (isArr) { - result = initCloneArray(value); - if (!isDeep) { - return copyArray(value, result); - } - } else { - var tag = getTag(value), - isFunc = tag == funcTag || tag == genTag; - - if (isBuffer(value)) { - return cloneBuffer(value, isDeep); - } - if (tag == objectTag || tag == argsTag || (isFunc && !object)) { - result = (isFlat || isFunc) ? {} : initCloneObject(value); - if (!isDeep) { - return isFlat - ? copySymbolsIn(value, baseAssignIn(result, value)) - : copySymbols(value, baseAssign(result, value)); - } - } else { - if (!cloneableTags[tag]) { - return object ? value : {}; - } - result = initCloneByTag(value, tag, isDeep); - } - } - // Check for circular references and return its corresponding clone. - stack || (stack = new Stack); - var stacked = stack.get(value); - if (stacked) { - return stacked; - } - stack.set(value, result); - - if (isSet(value)) { - value.forEach(function(subValue) { - result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); - }); - } else if (isMap(value)) { - value.forEach(function(subValue, key) { - result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack)); - }); - } - - var keysFunc = isFull - ? (isFlat ? getAllKeysIn : getAllKeys) - : (isFlat ? keysIn : keys); - - var props = isArr ? undefined : keysFunc(value); - arrayEach(props || value, function(subValue, key) { - if (props) { - key = subValue; - subValue = value[key]; - } - // Recursively populate clone (susceptible to call stack limits). - assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack)); - }); - return result; - } - - /** - * The base implementation of `_.conforms` which doesn't clone `source`. - * - * @private - * @param {Object} source The object of property predicates to conform to. - * @returns {Function} Returns the new spec function. - */ - function baseConforms(source) { - var props = keys(source); - return function(object) { - return baseConformsTo(object, source, props); - }; - } - - /** - * The base implementation of `_.conformsTo` which accepts `props` to check. - * - * @private - * @param {Object} object The object to inspect. - * @param {Object} source The object of property predicates to conform to. - * @returns {boolean} Returns `true` if `object` conforms, else `false`. - */ - function baseConformsTo(object, source, props) { - var length = props.length; - if (object == null) { - return !length; - } - object = Object(object); - while (length--) { - var key = props[length], - predicate = source[key], - value = object[key]; - - if ((value === undefined && !(key in object)) || !predicate(value)) { - return false; - } - } - return true; - } - - /** - * The base implementation of `_.delay` and `_.defer` which accepts `args` - * to provide to `func`. - * - * @private - * @param {Function} func The function to delay. - * @param {number} wait The number of milliseconds to delay invocation. - * @param {Array} args The arguments to provide to `func`. - * @returns {number|Object} Returns the timer id or timeout object. - */ - function baseDelay(func, wait, args) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - return setTimeout(function() { func.apply(undefined, args); }, wait); - } - - /** - * The base implementation of methods like `_.difference` without support - * for excluding multiple arrays or iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Array} values The values to exclude. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of filtered values. - */ - function baseDifference(array, values, iteratee, comparator) { - var index = -1, - includes = arrayIncludes, - isCommon = true, - length = array.length, - result = [], - valuesLength = values.length; - - if (!length) { - return result; - } - if (iteratee) { - values = arrayMap(values, baseUnary(iteratee)); - } - if (comparator) { - includes = arrayIncludesWith; - isCommon = false; - } - else if (values.length >= LARGE_ARRAY_SIZE) { - includes = cacheHas; - isCommon = false; - values = new SetCache(values); - } - outer: - while (++index < length) { - var value = array[index], - computed = iteratee == null ? value : iteratee(value); - - value = (comparator || value !== 0) ? value : 0; - if (isCommon && computed === computed) { - var valuesIndex = valuesLength; - while (valuesIndex--) { - if (values[valuesIndex] === computed) { - continue outer; - } - } - result.push(value); - } - else if (!includes(values, computed, comparator)) { - result.push(value); - } - } - return result; - } - - /** - * The base implementation of `_.forEach` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. - */ - var baseEach = createBaseEach(baseForOwn); - - /** - * The base implementation of `_.forEachRight` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. - */ - var baseEachRight = createBaseEach(baseForOwnRight, true); - - /** - * The base implementation of `_.every` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false` - */ - function baseEvery(collection, predicate) { - var result = true; - baseEach(collection, function(value, index, collection) { - result = !!predicate(value, index, collection); - return result; - }); - return result; - } - - /** - * The base implementation of methods like `_.max` and `_.min` which accepts a - * `comparator` to determine the extremum value. - * - * @private - * @param {Array} array The array to iterate over. - * @param {Function} iteratee The iteratee invoked per iteration. - * @param {Function} comparator The comparator used to compare values. - * @returns {*} Returns the extremum value. - */ - function baseExtremum(array, iteratee, comparator) { - var index = -1, - length = array.length; - - while (++index < length) { - var value = array[index], - current = iteratee(value); - - if (current != null && (computed === undefined - ? (current === current && !isSymbol(current)) - : comparator(current, computed) - )) { - var computed = current, - result = value; - } - } - return result; - } - - /** - * The base implementation of `_.fill` without an iteratee call guard. - * - * @private - * @param {Array} array The array to fill. - * @param {*} value The value to fill `array` with. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns `array`. - */ - function baseFill(array, value, start, end) { - var length = array.length; - - start = toInteger(start); - if (start < 0) { - start = -start > length ? 0 : (length + start); - } - end = (end === undefined || end > length) ? length : toInteger(end); - if (end < 0) { - end += length; - } - end = start > end ? 0 : toLength(end); - while (start < end) { - array[start++] = value; - } - return array; - } - - /** - * The base implementation of `_.filter` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - */ - function baseFilter(collection, predicate) { - var result = []; - baseEach(collection, function(value, index, collection) { - if (predicate(value, index, collection)) { - result.push(value); - } - }); - return result; - } - - /** - * The base implementation of `_.flatten` with support for restricting flattening. - * - * @private - * @param {Array} array The array to flatten. - * @param {number} depth The maximum recursion depth. - * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. - * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. - * @param {Array} [result=[]] The initial result value. - * @returns {Array} Returns the new flattened array. - */ - function baseFlatten(array, depth, predicate, isStrict, result) { - var index = -1, - length = array.length; - - predicate || (predicate = isFlattenable); - result || (result = []); - - while (++index < length) { - var value = array[index]; - if (depth > 0 && predicate(value)) { - if (depth > 1) { - // Recursively flatten arrays (susceptible to call stack limits). - baseFlatten(value, depth - 1, predicate, isStrict, result); - } else { - arrayPush(result, value); - } - } else if (!isStrict) { - result[result.length] = value; - } - } - return result; - } - - /** - * The base implementation of `baseForOwn` which iterates over `object` - * properties returned by `keysFunc` and invokes `iteratee` for each property. - * Iteratee functions may exit iteration early by explicitly returning `false`. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. - */ - var baseFor = createBaseFor(); - - /** - * This function is like `baseFor` except that it iterates over properties - * in the opposite order. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. - */ - var baseForRight = createBaseFor(true); - - /** - * The base implementation of `_.forOwn` without support for iteratee shorthands. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. - */ - function baseForOwn(object, iteratee) { - return object && baseFor(object, iteratee, keys); - } - - /** - * The base implementation of `_.forOwnRight` without support for iteratee shorthands. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. - */ - function baseForOwnRight(object, iteratee) { - return object && baseForRight(object, iteratee, keys); - } - - /** - * The base implementation of `_.functions` which creates an array of - * `object` function property names filtered from `props`. - * - * @private - * @param {Object} object The object to inspect. - * @param {Array} props The property names to filter. - * @returns {Array} Returns the function names. - */ - function baseFunctions(object, props) { - return arrayFilter(props, function(key) { - return isFunction(object[key]); - }); - } - - /** - * The base implementation of `_.get` without support for default values. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to get. - * @returns {*} Returns the resolved value. - */ - function baseGet(object, path) { - path = castPath(path, object); - - var index = 0, - length = path.length; - - while (object != null && index < length) { - object = object[toKey(path[index++])]; - } - return (index && index == length) ? object : undefined; - } - - /** - * The base implementation of `getAllKeys` and `getAllKeysIn` which uses - * `keysFunc` and `symbolsFunc` to get the enumerable property names and - * symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Function} keysFunc The function to get the keys of `object`. - * @param {Function} symbolsFunc The function to get the symbols of `object`. - * @returns {Array} Returns the array of property names and symbols. - */ - function baseGetAllKeys(object, keysFunc, symbolsFunc) { - var result = keysFunc(object); - return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); - } - - /** - * The base implementation of `getTag` without fallbacks for buggy environments. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ - function baseGetTag(value) { - if (value == null) { - return value === undefined ? undefinedTag : nullTag; - } - return (symToStringTag && symToStringTag in Object(value)) - ? getRawTag(value) - : objectToString(value); - } - - /** - * The base implementation of `_.gt` which doesn't coerce arguments. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is greater than `other`, - * else `false`. - */ - function baseGt(value, other) { - return value > other; - } - - /** - * The base implementation of `_.has` without support for deep paths. - * - * @private - * @param {Object} [object] The object to query. - * @param {Array|string} key The key to check. - * @returns {boolean} Returns `true` if `key` exists, else `false`. - */ - function baseHas(object, key) { - return object != null && hasOwnProperty.call(object, key); - } - - /** - * The base implementation of `_.hasIn` without support for deep paths. - * - * @private - * @param {Object} [object] The object to query. - * @param {Array|string} key The key to check. - * @returns {boolean} Returns `true` if `key` exists, else `false`. - */ - function baseHasIn(object, key) { - return object != null && key in Object(object); - } - - /** - * The base implementation of `_.inRange` which doesn't coerce arguments. - * - * @private - * @param {number} number The number to check. - * @param {number} start The start of the range. - * @param {number} end The end of the range. - * @returns {boolean} Returns `true` if `number` is in the range, else `false`. - */ - function baseInRange(number, start, end) { - return number >= nativeMin(start, end) && number < nativeMax(start, end); - } - - /** - * The base implementation of methods like `_.intersection`, without support - * for iteratee shorthands, that accepts an array of arrays to inspect. - * - * @private - * @param {Array} arrays The arrays to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of shared values. - */ - function baseIntersection(arrays, iteratee, comparator) { - var includes = comparator ? arrayIncludesWith : arrayIncludes, - length = arrays[0].length, - othLength = arrays.length, - othIndex = othLength, - caches = Array(othLength), - maxLength = Infinity, - result = []; - - while (othIndex--) { - var array = arrays[othIndex]; - if (othIndex && iteratee) { - array = arrayMap(array, baseUnary(iteratee)); - } - maxLength = nativeMin(array.length, maxLength); - caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120)) - ? new SetCache(othIndex && array) - : undefined; - } - array = arrays[0]; - - var index = -1, - seen = caches[0]; - - outer: - while (++index < length && result.length < maxLength) { - var value = array[index], - computed = iteratee ? iteratee(value) : value; - - value = (comparator || value !== 0) ? value : 0; - if (!(seen - ? cacheHas(seen, computed) - : includes(result, computed, comparator) - )) { - othIndex = othLength; - while (--othIndex) { - var cache = caches[othIndex]; - if (!(cache - ? cacheHas(cache, computed) - : includes(arrays[othIndex], computed, comparator)) - ) { - continue outer; - } - } - if (seen) { - seen.push(computed); - } - result.push(value); - } - } - return result; - } - - /** - * The base implementation of `_.invert` and `_.invertBy` which inverts - * `object` with values transformed by `iteratee` and set by `setter`. - * - * @private - * @param {Object} object The object to iterate over. - * @param {Function} setter The function to set `accumulator` values. - * @param {Function} iteratee The iteratee to transform values. - * @param {Object} accumulator The initial inverted object. - * @returns {Function} Returns `accumulator`. - */ - function baseInverter(object, setter, iteratee, accumulator) { - baseForOwn(object, function(value, key, object) { - setter(accumulator, iteratee(value), key, object); - }); - return accumulator; - } - - /** - * The base implementation of `_.invoke` without support for individual - * method arguments. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} path The path of the method to invoke. - * @param {Array} args The arguments to invoke the method with. - * @returns {*} Returns the result of the invoked method. - */ - function baseInvoke(object, path, args) { - path = castPath(path, object); - object = parent(object, path); - var func = object == null ? object : object[toKey(last(path))]; - return func == null ? undefined : apply(func, object, args); - } - - /** - * The base implementation of `_.isArguments`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - */ - function baseIsArguments(value) { - return isObjectLike(value) && baseGetTag(value) == argsTag; - } - - /** - * The base implementation of `_.isArrayBuffer` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. - */ - function baseIsArrayBuffer(value) { - return isObjectLike(value) && baseGetTag(value) == arrayBufferTag; - } - - /** - * The base implementation of `_.isDate` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a date object, else `false`. - */ - function baseIsDate(value) { - return isObjectLike(value) && baseGetTag(value) == dateTag; - } - - /** - * The base implementation of `_.isEqual` which supports partial comparisons - * and tracks traversed objects. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @param {boolean} bitmask The bitmask flags. - * 1 - Unordered comparison - * 2 - Partial comparison - * @param {Function} [customizer] The function to customize comparisons. - * @param {Object} [stack] Tracks traversed `value` and `other` objects. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - */ - function baseIsEqual(value, other, bitmask, customizer, stack) { - if (value === other) { - return true; - } - if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { - return value !== value && other !== other; - } - return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); - } - - /** - * A specialized version of `baseIsEqual` for arrays and objects which performs - * deep comparisons and tracks traversed objects enabling objects with circular - * references to be compared. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} [stack] Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { - var objIsArr = isArray(object), - othIsArr = isArray(other), - objTag = objIsArr ? arrayTag : getTag(object), - othTag = othIsArr ? arrayTag : getTag(other); - - objTag = objTag == argsTag ? objectTag : objTag; - othTag = othTag == argsTag ? objectTag : othTag; - - var objIsObj = objTag == objectTag, - othIsObj = othTag == objectTag, - isSameTag = objTag == othTag; - - if (isSameTag && isBuffer(object)) { - if (!isBuffer(other)) { - return false; - } - objIsArr = true; - objIsObj = false; - } - if (isSameTag && !objIsObj) { - stack || (stack = new Stack); - return (objIsArr || isTypedArray(object)) - ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) - : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); - } - if (!(bitmask & COMPARE_PARTIAL_FLAG)) { - var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), - othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); - - if (objIsWrapped || othIsWrapped) { - var objUnwrapped = objIsWrapped ? object.value() : object, - othUnwrapped = othIsWrapped ? other.value() : other; - - stack || (stack = new Stack); - return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); - } - } - if (!isSameTag) { - return false; - } - stack || (stack = new Stack); - return equalObjects(object, other, bitmask, customizer, equalFunc, stack); - } - - /** - * The base implementation of `_.isMap` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a map, else `false`. - */ - function baseIsMap(value) { - return isObjectLike(value) && getTag(value) == mapTag; - } - - /** - * The base implementation of `_.isMatch` without support for iteratee shorthands. - * - * @private - * @param {Object} object The object to inspect. - * @param {Object} source The object of property values to match. - * @param {Array} matchData The property names, values, and compare flags to match. - * @param {Function} [customizer] The function to customize comparisons. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. - */ - function baseIsMatch(object, source, matchData, customizer) { - var index = matchData.length, - length = index, - noCustomizer = !customizer; - - if (object == null) { - return !length; - } - object = Object(object); - while (index--) { - var data = matchData[index]; - if ((noCustomizer && data[2]) - ? data[1] !== object[data[0]] - : !(data[0] in object) - ) { - return false; - } - } - while (++index < length) { - data = matchData[index]; - var key = data[0], - objValue = object[key], - srcValue = data[1]; - - if (noCustomizer && data[2]) { - if (objValue === undefined && !(key in object)) { - return false; - } - } else { - var stack = new Stack; - if (customizer) { - var result = customizer(objValue, srcValue, key, object, source, stack); - } - if (!(result === undefined - ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) - : result - )) { - return false; - } - } - } - return true; - } - - /** - * The base implementation of `_.isNative` without bad shim checks. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, - * else `false`. - */ - function baseIsNative(value) { - if (!isObject(value) || isMasked(value)) { - return false; - } - var pattern = isFunction(value) ? reIsNative : reIsHostCtor; - return pattern.test(toSource(value)); - } - - /** - * The base implementation of `_.isRegExp` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. - */ - function baseIsRegExp(value) { - return isObjectLike(value) && baseGetTag(value) == regexpTag; - } - - /** - * The base implementation of `_.isSet` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a set, else `false`. - */ - function baseIsSet(value) { - return isObjectLike(value) && getTag(value) == setTag; - } - - /** - * The base implementation of `_.isTypedArray` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - */ - function baseIsTypedArray(value) { - return isObjectLike(value) && - isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; - } - - /** - * The base implementation of `_.iteratee`. - * - * @private - * @param {*} [value=_.identity] The value to convert to an iteratee. - * @returns {Function} Returns the iteratee. - */ - function baseIteratee(value) { - // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. - // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. - if (typeof value == 'function') { - return value; - } - if (value == null) { - return identity; - } - if (typeof value == 'object') { - return isArray(value) - ? baseMatchesProperty(value[0], value[1]) - : baseMatches(value); - } - return property(value); - } - - /** - * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ - function baseKeys(object) { - if (!isPrototype(object)) { - return nativeKeys(object); - } - var result = []; - for (var key in Object(object)) { - if (hasOwnProperty.call(object, key) && key != 'constructor') { - result.push(key); - } - } - return result; - } - - /** - * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ - function baseKeysIn(object) { - if (!isObject(object)) { - return nativeKeysIn(object); - } - var isProto = isPrototype(object), - result = []; - - for (var key in object) { - if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { - result.push(key); - } - } - return result; - } - - /** - * The base implementation of `_.lt` which doesn't coerce arguments. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is less than `other`, - * else `false`. - */ - function baseLt(value, other) { - return value < other; - } - - /** - * The base implementation of `_.map` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ - function baseMap(collection, iteratee) { - var index = -1, - result = isArrayLike(collection) ? Array(collection.length) : []; - - baseEach(collection, function(value, key, collection) { - result[++index] = iteratee(value, key, collection); - }); - return result; - } - - /** - * The base implementation of `_.matches` which doesn't clone `source`. - * - * @private - * @param {Object} source The object of property values to match. - * @returns {Function} Returns the new spec function. - */ - function baseMatches(source) { - var matchData = getMatchData(source); - if (matchData.length == 1 && matchData[0][2]) { - return matchesStrictComparable(matchData[0][0], matchData[0][1]); - } - return function(object) { - return object === source || baseIsMatch(object, source, matchData); - }; - } - - /** - * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. - * - * @private - * @param {string} path The path of the property to get. - * @param {*} srcValue The value to match. - * @returns {Function} Returns the new spec function. - */ - function baseMatchesProperty(path, srcValue) { - if (isKey(path) && isStrictComparable(srcValue)) { - return matchesStrictComparable(toKey(path), srcValue); - } - return function(object) { - var objValue = get(object, path); - return (objValue === undefined && objValue === srcValue) - ? hasIn(object, path) - : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); - }; - } - - /** - * The base implementation of `_.merge` without support for multiple sources. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @param {number} srcIndex The index of `source`. - * @param {Function} [customizer] The function to customize merged values. - * @param {Object} [stack] Tracks traversed source values and their merged - * counterparts. - */ - function baseMerge(object, source, srcIndex, customizer, stack) { - if (object === source) { - return; - } - baseFor(source, function(srcValue, key) { - stack || (stack = new Stack); - if (isObject(srcValue)) { - baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); - } - else { - var newValue = customizer - ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack) - : undefined; - - if (newValue === undefined) { - newValue = srcValue; - } - assignMergeValue(object, key, newValue); - } - }, keysIn); - } - - /** - * A specialized version of `baseMerge` for arrays and objects which performs - * deep merges and tracks traversed objects enabling objects with circular - * references to be merged. - * - * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @param {string} key The key of the value to merge. - * @param {number} srcIndex The index of `source`. - * @param {Function} mergeFunc The function to merge values. - * @param {Function} [customizer] The function to customize assigned values. - * @param {Object} [stack] Tracks traversed source values and their merged - * counterparts. - */ - function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { - var objValue = safeGet(object, key), - srcValue = safeGet(source, key), - stacked = stack.get(srcValue); - - if (stacked) { - assignMergeValue(object, key, stacked); - return; - } - var newValue = customizer - ? customizer(objValue, srcValue, (key + ''), object, source, stack) - : undefined; - - var isCommon = newValue === undefined; - - if (isCommon) { - var isArr = isArray(srcValue), - isBuff = !isArr && isBuffer(srcValue), - isTyped = !isArr && !isBuff && isTypedArray(srcValue); - - newValue = srcValue; - if (isArr || isBuff || isTyped) { - if (isArray(objValue)) { - newValue = objValue; - } - else if (isArrayLikeObject(objValue)) { - newValue = copyArray(objValue); - } - else if (isBuff) { - isCommon = false; - newValue = cloneBuffer(srcValue, true); - } - else if (isTyped) { - isCommon = false; - newValue = cloneTypedArray(srcValue, true); - } - else { - newValue = []; - } - } - else if (isPlainObject(srcValue) || isArguments(srcValue)) { - newValue = objValue; - if (isArguments(objValue)) { - newValue = toPlainObject(objValue); - } - else if (!isObject(objValue) || isFunction(objValue)) { - newValue = initCloneObject(srcValue); - } - } - else { - isCommon = false; - } - } - if (isCommon) { - // Recursively merge objects and arrays (susceptible to call stack limits). - stack.set(srcValue, newValue); - mergeFunc(newValue, srcValue, srcIndex, customizer, stack); - stack['delete'](srcValue); - } - assignMergeValue(object, key, newValue); - } - - /** - * The base implementation of `_.nth` which doesn't coerce arguments. - * - * @private - * @param {Array} array The array to query. - * @param {number} n The index of the element to return. - * @returns {*} Returns the nth element of `array`. - */ - function baseNth(array, n) { - var length = array.length; - if (!length) { - return; - } - n += n < 0 ? length : 0; - return isIndex(n, length) ? array[n] : undefined; - } - - /** - * The base implementation of `_.orderBy` without param guards. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by. - * @param {string[]} orders The sort orders of `iteratees`. - * @returns {Array} Returns the new sorted array. - */ - function baseOrderBy(collection, iteratees, orders) { - if (iteratees.length) { - iteratees = arrayMap(iteratees, function(iteratee) { - if (isArray(iteratee)) { - return function(value) { - return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee); - } - } - return iteratee; - }); - } else { - iteratees = [identity]; - } - - var index = -1; - iteratees = arrayMap(iteratees, baseUnary(getIteratee())); - - var result = baseMap(collection, function(value, key, collection) { - var criteria = arrayMap(iteratees, function(iteratee) { - return iteratee(value); - }); - return { 'criteria': criteria, 'index': ++index, 'value': value }; - }); - - return baseSortBy(result, function(object, other) { - return compareMultiple(object, other, orders); - }); - } - - /** - * The base implementation of `_.pick` without support for individual - * property identifiers. - * - * @private - * @param {Object} object The source object. - * @param {string[]} paths The property paths to pick. - * @returns {Object} Returns the new object. - */ - function basePick(object, paths) { - return basePickBy(object, paths, function(value, path) { - return hasIn(object, path); - }); - } - - /** - * The base implementation of `_.pickBy` without support for iteratee shorthands. - * - * @private - * @param {Object} object The source object. - * @param {string[]} paths The property paths to pick. - * @param {Function} predicate The function invoked per property. - * @returns {Object} Returns the new object. - */ - function basePickBy(object, paths, predicate) { - var index = -1, - length = paths.length, - result = {}; - - while (++index < length) { - var path = paths[index], - value = baseGet(object, path); - - if (predicate(value, path)) { - baseSet(result, castPath(path, object), value); - } - } - return result; - } - - /** - * A specialized version of `baseProperty` which supports deep paths. - * - * @private - * @param {Array|string} path The path of the property to get. - * @returns {Function} Returns the new accessor function. - */ - function basePropertyDeep(path) { - return function(object) { - return baseGet(object, path); - }; - } - - /** - * The base implementation of `_.pullAllBy` without support for iteratee - * shorthands. - * - * @private - * @param {Array} array The array to modify. - * @param {Array} values The values to remove. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns `array`. - */ - function basePullAll(array, values, iteratee, comparator) { - var indexOf = comparator ? baseIndexOfWith : baseIndexOf, - index = -1, - length = values.length, - seen = array; - - if (array === values) { - values = copyArray(values); - } - if (iteratee) { - seen = arrayMap(array, baseUnary(iteratee)); - } - while (++index < length) { - var fromIndex = 0, - value = values[index], - computed = iteratee ? iteratee(value) : value; - - while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) { - if (seen !== array) { - splice.call(seen, fromIndex, 1); - } - splice.call(array, fromIndex, 1); - } - } - return array; - } - - /** - * The base implementation of `_.pullAt` without support for individual - * indexes or capturing the removed elements. - * - * @private - * @param {Array} array The array to modify. - * @param {number[]} indexes The indexes of elements to remove. - * @returns {Array} Returns `array`. - */ - function basePullAt(array, indexes) { - var length = array ? indexes.length : 0, - lastIndex = length - 1; - - while (length--) { - var index = indexes[length]; - if (length == lastIndex || index !== previous) { - var previous = index; - if (isIndex(index)) { - splice.call(array, index, 1); - } else { - baseUnset(array, index); - } - } - } - return array; - } - - /** - * The base implementation of `_.random` without support for returning - * floating-point numbers. - * - * @private - * @param {number} lower The lower bound. - * @param {number} upper The upper bound. - * @returns {number} Returns the random number. - */ - function baseRandom(lower, upper) { - return lower + nativeFloor(nativeRandom() * (upper - lower + 1)); - } - - /** - * The base implementation of `_.range` and `_.rangeRight` which doesn't - * coerce arguments. - * - * @private - * @param {number} start The start of the range. - * @param {number} end The end of the range. - * @param {number} step The value to increment or decrement by. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Array} Returns the range of numbers. - */ - function baseRange(start, end, step, fromRight) { - var index = -1, - length = nativeMax(nativeCeil((end - start) / (step || 1)), 0), - result = Array(length); - - while (length--) { - result[fromRight ? length : ++index] = start; - start += step; - } - return result; - } - - /** - * The base implementation of `_.repeat` which doesn't coerce arguments. - * - * @private - * @param {string} string The string to repeat. - * @param {number} n The number of times to repeat the string. - * @returns {string} Returns the repeated string. - */ - function baseRepeat(string, n) { - var result = ''; - if (!string || n < 1 || n > MAX_SAFE_INTEGER) { - return result; - } - // Leverage the exponentiation by squaring algorithm for a faster repeat. - // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details. - do { - if (n % 2) { - result += string; - } - n = nativeFloor(n / 2); - if (n) { - string += string; - } - } while (n); - - return result; - } - - /** - * The base implementation of `_.rest` which doesn't validate or coerce arguments. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @returns {Function} Returns the new function. - */ - function baseRest(func, start) { - return setToString(overRest(func, start, identity), func + ''); - } - - /** - * The base implementation of `_.sample`. - * - * @private - * @param {Array|Object} collection The collection to sample. - * @returns {*} Returns the random element. - */ - function baseSample(collection) { - return arraySample(values(collection)); - } - - /** - * The base implementation of `_.sampleSize` without param guards. - * - * @private - * @param {Array|Object} collection The collection to sample. - * @param {number} n The number of elements to sample. - * @returns {Array} Returns the random elements. - */ - function baseSampleSize(collection, n) { - var array = values(collection); - return shuffleSelf(array, baseClamp(n, 0, array.length)); - } - - /** - * The base implementation of `_.set`. - * - * @private - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to set. - * @param {*} value The value to set. - * @param {Function} [customizer] The function to customize path creation. - * @returns {Object} Returns `object`. - */ - function baseSet(object, path, value, customizer) { - if (!isObject(object)) { - return object; - } - path = castPath(path, object); - - var index = -1, - length = path.length, - lastIndex = length - 1, - nested = object; - - while (nested != null && ++index < length) { - var key = toKey(path[index]), - newValue = value; - - if (key === '__proto__' || key === 'constructor' || key === 'prototype') { - return object; - } - - if (index != lastIndex) { - var objValue = nested[key]; - newValue = customizer ? customizer(objValue, key, nested) : undefined; - if (newValue === undefined) { - newValue = isObject(objValue) - ? objValue - : (isIndex(path[index + 1]) ? [] : {}); - } - } - assignValue(nested, key, newValue); - nested = nested[key]; - } - return object; - } - - /** - * The base implementation of `setData` without support for hot loop shorting. - * - * @private - * @param {Function} func The function to associate metadata with. - * @param {*} data The metadata. - * @returns {Function} Returns `func`. - */ - var baseSetData = !metaMap ? identity : function(func, data) { - metaMap.set(func, data); - return func; - }; - - /** - * The base implementation of `setToString` without support for hot loop shorting. - * - * @private - * @param {Function} func The function to modify. - * @param {Function} string The `toString` result. - * @returns {Function} Returns `func`. - */ - var baseSetToString = !defineProperty ? identity : function(func, string) { - return defineProperty(func, 'toString', { - 'configurable': true, - 'enumerable': false, - 'value': constant(string), - 'writable': true - }); - }; - - /** - * The base implementation of `_.shuffle`. - * - * @private - * @param {Array|Object} collection The collection to shuffle. - * @returns {Array} Returns the new shuffled array. - */ - function baseShuffle(collection) { - return shuffleSelf(values(collection)); - } - - /** - * The base implementation of `_.slice` without an iteratee call guard. - * - * @private - * @param {Array} array The array to slice. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the slice of `array`. - */ - function baseSlice(array, start, end) { - var index = -1, - length = array.length; - - if (start < 0) { - start = -start > length ? 0 : (length + start); - } - end = end > length ? length : end; - if (end < 0) { - end += length; - } - length = start > end ? 0 : ((end - start) >>> 0); - start >>>= 0; - - var result = Array(length); - while (++index < length) { - result[index] = array[index + start]; - } - return result; - } - - /** - * The base implementation of `_.some` without support for iteratee shorthands. - * - * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - */ - function baseSome(collection, predicate) { - var result; - - baseEach(collection, function(value, index, collection) { - result = predicate(value, index, collection); - return !result; - }); - return !!result; - } - - /** - * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which - * performs a binary search of `array` to determine the index at which `value` - * should be inserted into `array` in order to maintain its sort order. - * - * @private - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {boolean} [retHighest] Specify returning the highest qualified index. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - */ - function baseSortedIndex(array, value, retHighest) { - var low = 0, - high = array == null ? low : array.length; - - if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) { - while (low < high) { - var mid = (low + high) >>> 1, - computed = array[mid]; - - if (computed !== null && !isSymbol(computed) && - (retHighest ? (computed <= value) : (computed < value))) { - low = mid + 1; - } else { - high = mid; - } - } - return high; - } - return baseSortedIndexBy(array, value, identity, retHighest); - } - - /** - * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy` - * which invokes `iteratee` for `value` and each element of `array` to compute - * their sort ranking. The iteratee is invoked with one argument; (value). - * - * @private - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {Function} iteratee The iteratee invoked per element. - * @param {boolean} [retHighest] Specify returning the highest qualified index. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - */ - function baseSortedIndexBy(array, value, iteratee, retHighest) { - var low = 0, - high = array == null ? 0 : array.length; - if (high === 0) { - return 0; - } - - value = iteratee(value); - var valIsNaN = value !== value, - valIsNull = value === null, - valIsSymbol = isSymbol(value), - valIsUndefined = value === undefined; - - while (low < high) { - var mid = nativeFloor((low + high) / 2), - computed = iteratee(array[mid]), - othIsDefined = computed !== undefined, - othIsNull = computed === null, - othIsReflexive = computed === computed, - othIsSymbol = isSymbol(computed); - - if (valIsNaN) { - var setLow = retHighest || othIsReflexive; - } else if (valIsUndefined) { - setLow = othIsReflexive && (retHighest || othIsDefined); - } else if (valIsNull) { - setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull); - } else if (valIsSymbol) { - setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol); - } else if (othIsNull || othIsSymbol) { - setLow = false; - } else { - setLow = retHighest ? (computed <= value) : (computed < value); - } - if (setLow) { - low = mid + 1; - } else { - high = mid; - } - } - return nativeMin(high, MAX_ARRAY_INDEX); - } - - /** - * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without - * support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @returns {Array} Returns the new duplicate free array. - */ - function baseSortedUniq(array, iteratee) { - var index = -1, - length = array.length, - resIndex = 0, - result = []; - - while (++index < length) { - var value = array[index], - computed = iteratee ? iteratee(value) : value; - - if (!index || !eq(computed, seen)) { - var seen = computed; - result[resIndex++] = value === 0 ? 0 : value; - } - } - return result; - } - - /** - * The base implementation of `_.toNumber` which doesn't ensure correct - * conversions of binary, hexadecimal, or octal string values. - * - * @private - * @param {*} value The value to process. - * @returns {number} Returns the number. - */ - function baseToNumber(value) { - if (typeof value == 'number') { - return value; - } - if (isSymbol(value)) { - return NAN; - } - return +value; - } - - /** - * The base implementation of `_.toString` which doesn't convert nullish - * values to empty strings. - * - * @private - * @param {*} value The value to process. - * @returns {string} Returns the string. - */ - function baseToString(value) { - // Exit early for strings to avoid a performance hit in some environments. - if (typeof value == 'string') { - return value; - } - if (isArray(value)) { - // Recursively convert values (susceptible to call stack limits). - return arrayMap(value, baseToString) + ''; - } - if (isSymbol(value)) { - return symbolToString ? symbolToString.call(value) : ''; - } - var result = (value + ''); - return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; - } - - /** - * The base implementation of `_.uniqBy` without support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new duplicate free array. - */ - function baseUniq(array, iteratee, comparator) { - var index = -1, - includes = arrayIncludes, - length = array.length, - isCommon = true, - result = [], - seen = result; - - if (comparator) { - isCommon = false; - includes = arrayIncludesWith; - } - else if (length >= LARGE_ARRAY_SIZE) { - var set = iteratee ? null : createSet(array); - if (set) { - return setToArray(set); - } - isCommon = false; - includes = cacheHas; - seen = new SetCache; - } - else { - seen = iteratee ? [] : result; - } - outer: - while (++index < length) { - var value = array[index], - computed = iteratee ? iteratee(value) : value; - - value = (comparator || value !== 0) ? value : 0; - if (isCommon && computed === computed) { - var seenIndex = seen.length; - while (seenIndex--) { - if (seen[seenIndex] === computed) { - continue outer; - } - } - if (iteratee) { - seen.push(computed); - } - result.push(value); - } - else if (!includes(seen, computed, comparator)) { - if (seen !== result) { - seen.push(computed); - } - result.push(value); - } - } - return result; - } - - /** - * The base implementation of `_.unset`. - * - * @private - * @param {Object} object The object to modify. - * @param {Array|string} path The property path to unset. - * @returns {boolean} Returns `true` if the property is deleted, else `false`. - */ - function baseUnset(object, path) { - path = castPath(path, object); - object = parent(object, path); - return object == null || delete object[toKey(last(path))]; - } - - /** - * The base implementation of `_.update`. - * - * @private - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to update. - * @param {Function} updater The function to produce the updated value. - * @param {Function} [customizer] The function to customize path creation. - * @returns {Object} Returns `object`. - */ - function baseUpdate(object, path, updater, customizer) { - return baseSet(object, path, updater(baseGet(object, path)), customizer); - } - - /** - * The base implementation of methods like `_.dropWhile` and `_.takeWhile` - * without support for iteratee shorthands. - * - * @private - * @param {Array} array The array to query. - * @param {Function} predicate The function invoked per iteration. - * @param {boolean} [isDrop] Specify dropping elements instead of taking them. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Array} Returns the slice of `array`. - */ - function baseWhile(array, predicate, isDrop, fromRight) { - var length = array.length, - index = fromRight ? length : -1; - - while ((fromRight ? index-- : ++index < length) && - predicate(array[index], index, array)) {} - - return isDrop - ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length)) - : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index)); - } - - /** - * The base implementation of `wrapperValue` which returns the result of - * performing a sequence of actions on the unwrapped `value`, where each - * successive action is supplied the return value of the previous. - * - * @private - * @param {*} value The unwrapped value. - * @param {Array} actions Actions to perform to resolve the unwrapped value. - * @returns {*} Returns the resolved value. - */ - function baseWrapperValue(value, actions) { - var result = value; - if (result instanceof LazyWrapper) { - result = result.value(); - } - return arrayReduce(actions, function(result, action) { - return action.func.apply(action.thisArg, arrayPush([result], action.args)); - }, result); - } - - /** - * The base implementation of methods like `_.xor`, without support for - * iteratee shorthands, that accepts an array of arrays to inspect. - * - * @private - * @param {Array} arrays The arrays to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of values. - */ - function baseXor(arrays, iteratee, comparator) { - var length = arrays.length; - if (length < 2) { - return length ? baseUniq(arrays[0]) : []; - } - var index = -1, - result = Array(length); - - while (++index < length) { - var array = arrays[index], - othIndex = -1; - - while (++othIndex < length) { - if (othIndex != index) { - result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator); - } - } - } - return baseUniq(baseFlatten(result, 1), iteratee, comparator); - } - - /** - * This base implementation of `_.zipObject` which assigns values using `assignFunc`. - * - * @private - * @param {Array} props The property identifiers. - * @param {Array} values The property values. - * @param {Function} assignFunc The function to assign values. - * @returns {Object} Returns the new object. - */ - function baseZipObject(props, values, assignFunc) { - var index = -1, - length = props.length, - valsLength = values.length, - result = {}; - - while (++index < length) { - var value = index < valsLength ? values[index] : undefined; - assignFunc(result, props[index], value); - } - return result; - } - - /** - * Casts `value` to an empty array if it's not an array like object. - * - * @private - * @param {*} value The value to inspect. - * @returns {Array|Object} Returns the cast array-like object. - */ - function castArrayLikeObject(value) { - return isArrayLikeObject(value) ? value : []; - } - - /** - * Casts `value` to `identity` if it's not a function. - * - * @private - * @param {*} value The value to inspect. - * @returns {Function} Returns cast function. - */ - function castFunction(value) { - return typeof value == 'function' ? value : identity; - } - - /** - * Casts `value` to a path array if it's not one. - * - * @private - * @param {*} value The value to inspect. - * @param {Object} [object] The object to query keys on. - * @returns {Array} Returns the cast property path array. - */ - function castPath(value, object) { - if (isArray(value)) { - return value; - } - return isKey(value, object) ? [value] : stringToPath(toString(value)); - } - - /** - * A `baseRest` alias which can be replaced with `identity` by module - * replacement plugins. - * - * @private - * @type {Function} - * @param {Function} func The function to apply a rest parameter to. - * @returns {Function} Returns the new function. - */ - var castRest = baseRest; - - /** - * Casts `array` to a slice if it's needed. - * - * @private - * @param {Array} array The array to inspect. - * @param {number} start The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the cast slice. - */ - function castSlice(array, start, end) { - var length = array.length; - end = end === undefined ? length : end; - return (!start && end >= length) ? array : baseSlice(array, start, end); - } - - /** - * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout). - * - * @private - * @param {number|Object} id The timer id or timeout object of the timer to clear. - */ - var clearTimeout = ctxClearTimeout || function(id) { - return root.clearTimeout(id); - }; - - /** - * Creates a clone of `buffer`. - * - * @private - * @param {Buffer} buffer The buffer to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Buffer} Returns the cloned buffer. - */ - function cloneBuffer(buffer, isDeep) { - if (isDeep) { - return buffer.slice(); - } - var length = buffer.length, - result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); - - buffer.copy(result); - return result; - } - - /** - * Creates a clone of `arrayBuffer`. - * - * @private - * @param {ArrayBuffer} arrayBuffer The array buffer to clone. - * @returns {ArrayBuffer} Returns the cloned array buffer. - */ - function cloneArrayBuffer(arrayBuffer) { - var result = new arrayBuffer.constructor(arrayBuffer.byteLength); - new Uint8Array(result).set(new Uint8Array(arrayBuffer)); - return result; - } - - /** - * Creates a clone of `dataView`. - * - * @private - * @param {Object} dataView The data view to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the cloned data view. - */ - function cloneDataView(dataView, isDeep) { - var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; - return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); - } - - /** - * Creates a clone of `regexp`. - * - * @private - * @param {Object} regexp The regexp to clone. - * @returns {Object} Returns the cloned regexp. - */ - function cloneRegExp(regexp) { - var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); - result.lastIndex = regexp.lastIndex; - return result; - } - - /** - * Creates a clone of the `symbol` object. - * - * @private - * @param {Object} symbol The symbol object to clone. - * @returns {Object} Returns the cloned symbol object. - */ - function cloneSymbol(symbol) { - return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {}; - } - - /** - * Creates a clone of `typedArray`. - * - * @private - * @param {Object} typedArray The typed array to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the cloned typed array. - */ - function cloneTypedArray(typedArray, isDeep) { - var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; - return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); - } - - /** - * Compares values to sort them in ascending order. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {number} Returns the sort order indicator for `value`. - */ - function compareAscending(value, other) { - if (value !== other) { - var valIsDefined = value !== undefined, - valIsNull = value === null, - valIsReflexive = value === value, - valIsSymbol = isSymbol(value); - - var othIsDefined = other !== undefined, - othIsNull = other === null, - othIsReflexive = other === other, - othIsSymbol = isSymbol(other); - - if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) || - (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) || - (valIsNull && othIsDefined && othIsReflexive) || - (!valIsDefined && othIsReflexive) || - !valIsReflexive) { - return 1; - } - if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) || - (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) || - (othIsNull && valIsDefined && valIsReflexive) || - (!othIsDefined && valIsReflexive) || - !othIsReflexive) { - return -1; - } - } - return 0; - } - - /** - * Used by `_.orderBy` to compare multiple properties of a value to another - * and stable sort them. - * - * If `orders` is unspecified, all values are sorted in ascending order. Otherwise, - * specify an order of "desc" for descending or "asc" for ascending sort order - * of corresponding values. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {boolean[]|string[]} orders The order to sort by for each property. - * @returns {number} Returns the sort order indicator for `object`. - */ - function compareMultiple(object, other, orders) { - var index = -1, - objCriteria = object.criteria, - othCriteria = other.criteria, - length = objCriteria.length, - ordersLength = orders.length; - - while (++index < length) { - var result = compareAscending(objCriteria[index], othCriteria[index]); - if (result) { - if (index >= ordersLength) { - return result; - } - var order = orders[index]; - return result * (order == 'desc' ? -1 : 1); - } - } - // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications - // that causes it, under certain circumstances, to provide the same value for - // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247 - // for more details. - // - // This also ensures a stable sort in V8 and other engines. - // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details. - return object.index - other.index; - } - - /** - * Creates an array that is the composition of partially applied arguments, - * placeholders, and provided arguments into a single array of arguments. - * - * @private - * @param {Array} args The provided arguments. - * @param {Array} partials The arguments to prepend to those provided. - * @param {Array} holders The `partials` placeholder indexes. - * @params {boolean} [isCurried] Specify composing for a curried function. - * @returns {Array} Returns the new array of composed arguments. - */ - function composeArgs(args, partials, holders, isCurried) { - var argsIndex = -1, - argsLength = args.length, - holdersLength = holders.length, - leftIndex = -1, - leftLength = partials.length, - rangeLength = nativeMax(argsLength - holdersLength, 0), - result = Array(leftLength + rangeLength), - isUncurried = !isCurried; - - while (++leftIndex < leftLength) { - result[leftIndex] = partials[leftIndex]; - } - while (++argsIndex < holdersLength) { - if (isUncurried || argsIndex < argsLength) { - result[holders[argsIndex]] = args[argsIndex]; - } - } - while (rangeLength--) { - result[leftIndex++] = args[argsIndex++]; - } - return result; - } - - /** - * This function is like `composeArgs` except that the arguments composition - * is tailored for `_.partialRight`. - * - * @private - * @param {Array} args The provided arguments. - * @param {Array} partials The arguments to append to those provided. - * @param {Array} holders The `partials` placeholder indexes. - * @params {boolean} [isCurried] Specify composing for a curried function. - * @returns {Array} Returns the new array of composed arguments. - */ - function composeArgsRight(args, partials, holders, isCurried) { - var argsIndex = -1, - argsLength = args.length, - holdersIndex = -1, - holdersLength = holders.length, - rightIndex = -1, - rightLength = partials.length, - rangeLength = nativeMax(argsLength - holdersLength, 0), - result = Array(rangeLength + rightLength), - isUncurried = !isCurried; - - while (++argsIndex < rangeLength) { - result[argsIndex] = args[argsIndex]; - } - var offset = argsIndex; - while (++rightIndex < rightLength) { - result[offset + rightIndex] = partials[rightIndex]; - } - while (++holdersIndex < holdersLength) { - if (isUncurried || argsIndex < argsLength) { - result[offset + holders[holdersIndex]] = args[argsIndex++]; - } - } - return result; - } - - /** - * Copies the values of `source` to `array`. - * - * @private - * @param {Array} source The array to copy values from. - * @param {Array} [array=[]] The array to copy values to. - * @returns {Array} Returns `array`. - */ - function copyArray(source, array) { - var index = -1, - length = source.length; - - array || (array = Array(length)); - while (++index < length) { - array[index] = source[index]; - } - return array; - } - - /** - * Copies properties of `source` to `object`. - * - * @private - * @param {Object} source The object to copy properties from. - * @param {Array} props The property identifiers to copy. - * @param {Object} [object={}] The object to copy properties to. - * @param {Function} [customizer] The function to customize copied values. - * @returns {Object} Returns `object`. - */ - function copyObject(source, props, object, customizer) { - var isNew = !object; - object || (object = {}); - - var index = -1, - length = props.length; - - while (++index < length) { - var key = props[index]; - - var newValue = customizer - ? customizer(object[key], source[key], key, object, source) - : undefined; - - if (newValue === undefined) { - newValue = source[key]; - } - if (isNew) { - baseAssignValue(object, key, newValue); - } else { - assignValue(object, key, newValue); - } - } - return object; - } - - /** - * Copies own symbols of `source` to `object`. - * - * @private - * @param {Object} source The object to copy symbols from. - * @param {Object} [object={}] The object to copy symbols to. - * @returns {Object} Returns `object`. - */ - function copySymbols(source, object) { - return copyObject(source, getSymbols(source), object); - } - - /** - * Copies own and inherited symbols of `source` to `object`. - * - * @private - * @param {Object} source The object to copy symbols from. - * @param {Object} [object={}] The object to copy symbols to. - * @returns {Object} Returns `object`. - */ - function copySymbolsIn(source, object) { - return copyObject(source, getSymbolsIn(source), object); - } - - /** - * Creates a function like `_.groupBy`. - * - * @private - * @param {Function} setter The function to set accumulator values. - * @param {Function} [initializer] The accumulator object initializer. - * @returns {Function} Returns the new aggregator function. - */ - function createAggregator(setter, initializer) { - return function(collection, iteratee) { - var func = isArray(collection) ? arrayAggregator : baseAggregator, - accumulator = initializer ? initializer() : {}; - - return func(collection, setter, getIteratee(iteratee, 2), accumulator); - }; - } - - /** - * Creates a function like `_.assign`. - * - * @private - * @param {Function} assigner The function to assign values. - * @returns {Function} Returns the new assigner function. - */ - function createAssigner(assigner) { - return baseRest(function(object, sources) { - var index = -1, - length = sources.length, - customizer = length > 1 ? sources[length - 1] : undefined, - guard = length > 2 ? sources[2] : undefined; - - customizer = (assigner.length > 3 && typeof customizer == 'function') - ? (length--, customizer) - : undefined; - - if (guard && isIterateeCall(sources[0], sources[1], guard)) { - customizer = length < 3 ? undefined : customizer; - length = 1; - } - object = Object(object); - while (++index < length) { - var source = sources[index]; - if (source) { - assigner(object, source, index, customizer); - } - } - return object; - }); - } - - /** - * Creates a `baseEach` or `baseEachRight` function. - * - * @private - * @param {Function} eachFunc The function to iterate over a collection. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. - */ - function createBaseEach(eachFunc, fromRight) { - return function(collection, iteratee) { - if (collection == null) { - return collection; - } - if (!isArrayLike(collection)) { - return eachFunc(collection, iteratee); - } - var length = collection.length, - index = fromRight ? length : -1, - iterable = Object(collection); - - while ((fromRight ? index-- : ++index < length)) { - if (iteratee(iterable[index], index, iterable) === false) { - break; - } - } - return collection; - }; - } - - /** - * Creates a base function for methods like `_.forIn` and `_.forOwn`. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. - */ - function createBaseFor(fromRight) { - return function(object, iteratee, keysFunc) { - var index = -1, - iterable = Object(object), - props = keysFunc(object), - length = props.length; - - while (length--) { - var key = props[fromRight ? length : ++index]; - if (iteratee(iterable[key], key, iterable) === false) { - break; - } - } - return object; - }; - } - - /** - * Creates a function that wraps `func` to invoke it with the optional `this` - * binding of `thisArg`. - * - * @private - * @param {Function} func The function to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {*} [thisArg] The `this` binding of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createBind(func, bitmask, thisArg) { - var isBind = bitmask & WRAP_BIND_FLAG, - Ctor = createCtor(func); - - function wrapper() { - var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; - return fn.apply(isBind ? thisArg : this, arguments); - } - return wrapper; - } - - /** - * Creates a function like `_.lowerFirst`. - * - * @private - * @param {string} methodName The name of the `String` case method to use. - * @returns {Function} Returns the new case function. - */ - function createCaseFirst(methodName) { - return function(string) { - string = toString(string); - - var strSymbols = hasUnicode(string) - ? stringToArray(string) - : undefined; - - var chr = strSymbols - ? strSymbols[0] - : string.charAt(0); - - var trailing = strSymbols - ? castSlice(strSymbols, 1).join('') - : string.slice(1); - - return chr[methodName]() + trailing; - }; - } - - /** - * Creates a function like `_.camelCase`. - * - * @private - * @param {Function} callback The function to combine each word. - * @returns {Function} Returns the new compounder function. - */ - function createCompounder(callback) { - return function(string) { - return arrayReduce(words(deburr(string).replace(reApos, '')), callback, ''); - }; - } - - /** - * Creates a function that produces an instance of `Ctor` regardless of - * whether it was invoked as part of a `new` expression or by `call` or `apply`. - * - * @private - * @param {Function} Ctor The constructor to wrap. - * @returns {Function} Returns the new wrapped function. - */ - function createCtor(Ctor) { - return function() { - // Use a `switch` statement to work with class constructors. See - // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist - // for more details. - var args = arguments; - switch (args.length) { - case 0: return new Ctor; - case 1: return new Ctor(args[0]); - case 2: return new Ctor(args[0], args[1]); - case 3: return new Ctor(args[0], args[1], args[2]); - case 4: return new Ctor(args[0], args[1], args[2], args[3]); - case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]); - case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]); - case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]); - } - var thisBinding = baseCreate(Ctor.prototype), - result = Ctor.apply(thisBinding, args); - - // Mimic the constructor's `return` behavior. - // See https://es5.github.io/#x13.2.2 for more details. - return isObject(result) ? result : thisBinding; - }; - } - - /** - * Creates a function that wraps `func` to enable currying. - * - * @private - * @param {Function} func The function to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {number} arity The arity of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createCurry(func, bitmask, arity) { - var Ctor = createCtor(func); - - function wrapper() { - var length = arguments.length, - args = Array(length), - index = length, - placeholder = getHolder(wrapper); - - while (index--) { - args[index] = arguments[index]; - } - var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder) - ? [] - : replaceHolders(args, placeholder); - - length -= holders.length; - if (length < arity) { - return createRecurry( - func, bitmask, createHybrid, wrapper.placeholder, undefined, - args, holders, undefined, undefined, arity - length); - } - var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; - return apply(fn, this, args); - } - return wrapper; - } - - /** - * Creates a `_.find` or `_.findLast` function. - * - * @private - * @param {Function} findIndexFunc The function to find the collection index. - * @returns {Function} Returns the new find function. - */ - function createFind(findIndexFunc) { - return function(collection, predicate, fromIndex) { - var iterable = Object(collection); - if (!isArrayLike(collection)) { - var iteratee = getIteratee(predicate, 3); - collection = keys(collection); - predicate = function(key) { return iteratee(iterable[key], key, iterable); }; - } - var index = findIndexFunc(collection, predicate, fromIndex); - return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; - }; - } - - /** - * Creates a `_.flow` or `_.flowRight` function. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new flow function. - */ - function createFlow(fromRight) { - return flatRest(function(funcs) { - var length = funcs.length, - index = length, - prereq = LodashWrapper.prototype.thru; - - if (fromRight) { - funcs.reverse(); - } - while (index--) { - var func = funcs[index]; - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - if (prereq && !wrapper && getFuncName(func) == 'wrapper') { - var wrapper = new LodashWrapper([], true); - } - } - index = wrapper ? index : length; - while (++index < length) { - func = funcs[index]; - - var funcName = getFuncName(func), - data = funcName == 'wrapper' ? getData(func) : undefined; - - if (data && isLaziable(data[0]) && - data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && - !data[4].length && data[9] == 1 - ) { - wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); - } else { - wrapper = (func.length == 1 && isLaziable(func)) - ? wrapper[funcName]() - : wrapper.thru(func); - } - } - return function() { - var args = arguments, - value = args[0]; - - if (wrapper && args.length == 1 && isArray(value)) { - return wrapper.plant(value).value(); - } - var index = 0, - result = length ? funcs[index].apply(this, args) : value; - - while (++index < length) { - result = funcs[index].call(this, result); - } - return result; - }; - }); - } - - /** - * Creates a function that wraps `func` to invoke it with optional `this` - * binding of `thisArg`, partial application, and currying. - * - * @private - * @param {Function|string} func The function or method name to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {*} [thisArg] The `this` binding of `func`. - * @param {Array} [partials] The arguments to prepend to those provided to - * the new function. - * @param {Array} [holders] The `partials` placeholder indexes. - * @param {Array} [partialsRight] The arguments to append to those provided - * to the new function. - * @param {Array} [holdersRight] The `partialsRight` placeholder indexes. - * @param {Array} [argPos] The argument positions of the new function. - * @param {number} [ary] The arity cap of `func`. - * @param {number} [arity] The arity of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) { - var isAry = bitmask & WRAP_ARY_FLAG, - isBind = bitmask & WRAP_BIND_FLAG, - isBindKey = bitmask & WRAP_BIND_KEY_FLAG, - isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG), - isFlip = bitmask & WRAP_FLIP_FLAG, - Ctor = isBindKey ? undefined : createCtor(func); - - function wrapper() { - var length = arguments.length, - args = Array(length), - index = length; - - while (index--) { - args[index] = arguments[index]; - } - if (isCurried) { - var placeholder = getHolder(wrapper), - holdersCount = countHolders(args, placeholder); - } - if (partials) { - args = composeArgs(args, partials, holders, isCurried); - } - if (partialsRight) { - args = composeArgsRight(args, partialsRight, holdersRight, isCurried); - } - length -= holdersCount; - if (isCurried && length < arity) { - var newHolders = replaceHolders(args, placeholder); - return createRecurry( - func, bitmask, createHybrid, wrapper.placeholder, thisArg, - args, newHolders, argPos, ary, arity - length - ); - } - var thisBinding = isBind ? thisArg : this, - fn = isBindKey ? thisBinding[func] : func; - - length = args.length; - if (argPos) { - args = reorder(args, argPos); - } else if (isFlip && length > 1) { - args.reverse(); - } - if (isAry && ary < length) { - args.length = ary; - } - if (this && this !== root && this instanceof wrapper) { - fn = Ctor || createCtor(fn); - } - return fn.apply(thisBinding, args); - } - return wrapper; - } - - /** - * Creates a function like `_.invertBy`. - * - * @private - * @param {Function} setter The function to set accumulator values. - * @param {Function} toIteratee The function to resolve iteratees. - * @returns {Function} Returns the new inverter function. - */ - function createInverter(setter, toIteratee) { - return function(object, iteratee) { - return baseInverter(object, setter, toIteratee(iteratee), {}); - }; - } - - /** - * Creates a function that performs a mathematical operation on two values. - * - * @private - * @param {Function} operator The function to perform the operation. - * @param {number} [defaultValue] The value used for `undefined` arguments. - * @returns {Function} Returns the new mathematical operation function. - */ - function createMathOperation(operator, defaultValue) { - return function(value, other) { - var result; - if (value === undefined && other === undefined) { - return defaultValue; - } - if (value !== undefined) { - result = value; - } - if (other !== undefined) { - if (result === undefined) { - return other; - } - if (typeof value == 'string' || typeof other == 'string') { - value = baseToString(value); - other = baseToString(other); - } else { - value = baseToNumber(value); - other = baseToNumber(other); - } - result = operator(value, other); - } - return result; - }; - } - - /** - * Creates a function like `_.over`. - * - * @private - * @param {Function} arrayFunc The function to iterate over iteratees. - * @returns {Function} Returns the new over function. - */ - function createOver(arrayFunc) { - return flatRest(function(iteratees) { - iteratees = arrayMap(iteratees, baseUnary(getIteratee())); - return baseRest(function(args) { - var thisArg = this; - return arrayFunc(iteratees, function(iteratee) { - return apply(iteratee, thisArg, args); - }); - }); - }); - } - - /** - * Creates the padding for `string` based on `length`. The `chars` string - * is truncated if the number of characters exceeds `length`. - * - * @private - * @param {number} length The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padding for `string`. - */ - function createPadding(length, chars) { - chars = chars === undefined ? ' ' : baseToString(chars); - - var charsLength = chars.length; - if (charsLength < 2) { - return charsLength ? baseRepeat(chars, length) : chars; - } - var result = baseRepeat(chars, nativeCeil(length / stringSize(chars))); - return hasUnicode(chars) - ? castSlice(stringToArray(result), 0, length).join('') - : result.slice(0, length); - } - - /** - * Creates a function that wraps `func` to invoke it with the `this` binding - * of `thisArg` and `partials` prepended to the arguments it receives. - * - * @private - * @param {Function} func The function to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {*} thisArg The `this` binding of `func`. - * @param {Array} partials The arguments to prepend to those provided to - * the new function. - * @returns {Function} Returns the new wrapped function. - */ - function createPartial(func, bitmask, thisArg, partials) { - var isBind = bitmask & WRAP_BIND_FLAG, - Ctor = createCtor(func); - - function wrapper() { - var argsIndex = -1, - argsLength = arguments.length, - leftIndex = -1, - leftLength = partials.length, - args = Array(leftLength + argsLength), - fn = (this && this !== root && this instanceof wrapper) ? Ctor : func; - - while (++leftIndex < leftLength) { - args[leftIndex] = partials[leftIndex]; - } - while (argsLength--) { - args[leftIndex++] = arguments[++argsIndex]; - } - return apply(fn, isBind ? thisArg : this, args); - } - return wrapper; - } - - /** - * Creates a `_.range` or `_.rangeRight` function. - * - * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new range function. - */ - function createRange(fromRight) { - return function(start, end, step) { - if (step && typeof step != 'number' && isIterateeCall(start, end, step)) { - end = step = undefined; - } - // Ensure the sign of `-0` is preserved. - start = toFinite(start); - if (end === undefined) { - end = start; - start = 0; - } else { - end = toFinite(end); - } - step = step === undefined ? (start < end ? 1 : -1) : toFinite(step); - return baseRange(start, end, step, fromRight); - }; - } - - /** - * Creates a function that performs a relational operation on two values. - * - * @private - * @param {Function} operator The function to perform the operation. - * @returns {Function} Returns the new relational operation function. - */ - function createRelationalOperation(operator) { - return function(value, other) { - if (!(typeof value == 'string' && typeof other == 'string')) { - value = toNumber(value); - other = toNumber(other); - } - return operator(value, other); - }; - } - - /** - * Creates a function that wraps `func` to continue currying. - * - * @private - * @param {Function} func The function to wrap. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @param {Function} wrapFunc The function to create the `func` wrapper. - * @param {*} placeholder The placeholder value. - * @param {*} [thisArg] The `this` binding of `func`. - * @param {Array} [partials] The arguments to prepend to those provided to - * the new function. - * @param {Array} [holders] The `partials` placeholder indexes. - * @param {Array} [argPos] The argument positions of the new function. - * @param {number} [ary] The arity cap of `func`. - * @param {number} [arity] The arity of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) { - var isCurry = bitmask & WRAP_CURRY_FLAG, - newHolders = isCurry ? holders : undefined, - newHoldersRight = isCurry ? undefined : holders, - newPartials = isCurry ? partials : undefined, - newPartialsRight = isCurry ? undefined : partials; - - bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG); - bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG); - - if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) { - bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG); - } - var newData = [ - func, bitmask, thisArg, newPartials, newHolders, newPartialsRight, - newHoldersRight, argPos, ary, arity - ]; - - var result = wrapFunc.apply(undefined, newData); - if (isLaziable(func)) { - setData(result, newData); - } - result.placeholder = placeholder; - return setWrapToString(result, func, bitmask); - } - - /** - * Creates a function like `_.round`. - * - * @private - * @param {string} methodName The name of the `Math` method to use when rounding. - * @returns {Function} Returns the new round function. - */ - function createRound(methodName) { - var func = Math[methodName]; - return function(number, precision) { - number = toNumber(number); - precision = precision == null ? 0 : nativeMin(toInteger(precision), 292); - if (precision && nativeIsFinite(number)) { - // Shift with exponential notation to avoid floating-point issues. - // See [MDN](https://mdn.io/round#Examples) for more details. - var pair = (toString(number) + 'e').split('e'), - value = func(pair[0] + 'e' + (+pair[1] + precision)); - - pair = (toString(value) + 'e').split('e'); - return +(pair[0] + 'e' + (+pair[1] - precision)); - } - return func(number); - }; - } - - /** - * Creates a set object of `values`. - * - * @private - * @param {Array} values The values to add to the set. - * @returns {Object} Returns the new set. - */ - var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) { - return new Set(values); - }; - - /** - * Creates a `_.toPairs` or `_.toPairsIn` function. - * - * @private - * @param {Function} keysFunc The function to get the keys of a given object. - * @returns {Function} Returns the new pairs function. - */ - function createToPairs(keysFunc) { - return function(object) { - var tag = getTag(object); - if (tag == mapTag) { - return mapToArray(object); - } - if (tag == setTag) { - return setToPairs(object); - } - return baseToPairs(object, keysFunc(object)); - }; - } - - /** - * Creates a function that either curries or invokes `func` with optional - * `this` binding and partially applied arguments. - * - * @private - * @param {Function|string} func The function or method name to wrap. - * @param {number} bitmask The bitmask flags. - * 1 - `_.bind` - * 2 - `_.bindKey` - * 4 - `_.curry` or `_.curryRight` of a bound function - * 8 - `_.curry` - * 16 - `_.curryRight` - * 32 - `_.partial` - * 64 - `_.partialRight` - * 128 - `_.rearg` - * 256 - `_.ary` - * 512 - `_.flip` - * @param {*} [thisArg] The `this` binding of `func`. - * @param {Array} [partials] The arguments to be partially applied. - * @param {Array} [holders] The `partials` placeholder indexes. - * @param {Array} [argPos] The argument positions of the new function. - * @param {number} [ary] The arity cap of `func`. - * @param {number} [arity] The arity of `func`. - * @returns {Function} Returns the new wrapped function. - */ - function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) { - var isBindKey = bitmask & WRAP_BIND_KEY_FLAG; - if (!isBindKey && typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - var length = partials ? partials.length : 0; - if (!length) { - bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG); - partials = holders = undefined; - } - ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0); - arity = arity === undefined ? arity : toInteger(arity); - length -= holders ? holders.length : 0; - - if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) { - var partialsRight = partials, - holdersRight = holders; - - partials = holders = undefined; - } - var data = isBindKey ? undefined : getData(func); - - var newData = [ - func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, - argPos, ary, arity - ]; - - if (data) { - mergeData(newData, data); - } - func = newData[0]; - bitmask = newData[1]; - thisArg = newData[2]; - partials = newData[3]; - holders = newData[4]; - arity = newData[9] = newData[9] === undefined - ? (isBindKey ? 0 : func.length) - : nativeMax(newData[9] - length, 0); - - if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) { - bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG); - } - if (!bitmask || bitmask == WRAP_BIND_FLAG) { - var result = createBind(func, bitmask, thisArg); - } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) { - result = createCurry(func, bitmask, arity); - } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) { - result = createPartial(func, bitmask, thisArg, partials); - } else { - result = createHybrid.apply(undefined, newData); - } - var setter = data ? baseSetData : setData; - return setWrapToString(setter(result, newData), func, bitmask); - } - - /** - * Used by `_.defaults` to customize its `_.assignIn` use to assign properties - * of source objects to the destination object for all destination properties - * that resolve to `undefined`. - * - * @private - * @param {*} objValue The destination value. - * @param {*} srcValue The source value. - * @param {string} key The key of the property to assign. - * @param {Object} object The parent object of `objValue`. - * @returns {*} Returns the value to assign. - */ - function customDefaultsAssignIn(objValue, srcValue, key, object) { - if (objValue === undefined || - (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) { - return srcValue; - } - return objValue; - } - - /** - * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source - * objects into destination objects that are passed thru. - * - * @private - * @param {*} objValue The destination value. - * @param {*} srcValue The source value. - * @param {string} key The key of the property to merge. - * @param {Object} object The parent object of `objValue`. - * @param {Object} source The parent object of `srcValue`. - * @param {Object} [stack] Tracks traversed source values and their merged - * counterparts. - * @returns {*} Returns the value to assign. - */ - function customDefaultsMerge(objValue, srcValue, key, object, source, stack) { - if (isObject(objValue) && isObject(srcValue)) { - // Recursively merge objects and arrays (susceptible to call stack limits). - stack.set(srcValue, objValue); - baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack); - stack['delete'](srcValue); - } - return objValue; - } - - /** - * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain - * objects. - * - * @private - * @param {*} value The value to inspect. - * @param {string} key The key of the property to inspect. - * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`. - */ - function customOmitClone(value) { - return isPlainObject(value) ? undefined : value; - } - - /** - * A specialized version of `baseIsEqualDeep` for arrays with support for - * partial deep comparisons. - * - * @private - * @param {Array} array The array to compare. - * @param {Array} other The other array to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `array` and `other` objects. - * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. - */ - function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG, - arrLength = array.length, - othLength = other.length; - - if (arrLength != othLength && !(isPartial && othLength > arrLength)) { - return false; - } - // Check that cyclic values are equal. - var arrStacked = stack.get(array); - var othStacked = stack.get(other); - if (arrStacked && othStacked) { - return arrStacked == other && othStacked == array; - } - var index = -1, - result = true, - seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; - - stack.set(array, other); - stack.set(other, array); - - // Ignore non-index properties. - while (++index < arrLength) { - var arrValue = array[index], - othValue = other[index]; - - if (customizer) { - var compared = isPartial - ? customizer(othValue, arrValue, index, other, array, stack) - : customizer(arrValue, othValue, index, array, other, stack); - } - if (compared !== undefined) { - if (compared) { - continue; - } - result = false; - break; - } - // Recursively compare arrays (susceptible to call stack limits). - if (seen) { - if (!arraySome(other, function(othValue, othIndex) { - if (!cacheHas(seen, othIndex) && - (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { - return seen.push(othIndex); - } - })) { - result = false; - break; - } - } else if (!( - arrValue === othValue || - equalFunc(arrValue, othValue, bitmask, customizer, stack) - )) { - result = false; - break; - } - } - stack['delete'](array); - stack['delete'](other); - return result; - } - - /** - * A specialized version of `baseIsEqualDeep` for comparing objects of - * the same `toStringTag`. - * - * **Note:** This function only supports comparing values with tags of - * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {string} tag The `toStringTag` of the objects to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { - switch (tag) { - case dataViewTag: - if ((object.byteLength != other.byteLength) || - (object.byteOffset != other.byteOffset)) { - return false; - } - object = object.buffer; - other = other.buffer; - - case arrayBufferTag: - if ((object.byteLength != other.byteLength) || - !equalFunc(new Uint8Array(object), new Uint8Array(other))) { - return false; - } - return true; - - case boolTag: - case dateTag: - case numberTag: - // Coerce booleans to `1` or `0` and dates to milliseconds. - // Invalid dates are coerced to `NaN`. - return eq(+object, +other); - - case errorTag: - return object.name == other.name && object.message == other.message; - - case regexpTag: - case stringTag: - // Coerce regexes to strings and treat strings, primitives and objects, - // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring - // for more details. - return object == (other + ''); - - case mapTag: - var convert = mapToArray; - - case setTag: - var isPartial = bitmask & COMPARE_PARTIAL_FLAG; - convert || (convert = setToArray); - - if (object.size != other.size && !isPartial) { - return false; - } - // Assume cyclic values are equal. - var stacked = stack.get(object); - if (stacked) { - return stacked == other; - } - bitmask |= COMPARE_UNORDERED_FLAG; - - // Recursively compare objects (susceptible to call stack limits). - stack.set(object, other); - var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); - stack['delete'](object); - return result; - - case symbolTag: - if (symbolValueOf) { - return symbolValueOf.call(object) == symbolValueOf.call(other); - } - } - return false; - } - - /** - * A specialized version of `baseIsEqualDeep` for objects with support for - * partial deep comparisons. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG, - objProps = getAllKeys(object), - objLength = objProps.length, - othProps = getAllKeys(other), - othLength = othProps.length; - - if (objLength != othLength && !isPartial) { - return false; - } - var index = objLength; - while (index--) { - var key = objProps[index]; - if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { - return false; - } - } - // Check that cyclic values are equal. - var objStacked = stack.get(object); - var othStacked = stack.get(other); - if (objStacked && othStacked) { - return objStacked == other && othStacked == object; - } - var result = true; - stack.set(object, other); - stack.set(other, object); - - var skipCtor = isPartial; - while (++index < objLength) { - key = objProps[index]; - var objValue = object[key], - othValue = other[key]; - - if (customizer) { - var compared = isPartial - ? customizer(othValue, objValue, key, other, object, stack) - : customizer(objValue, othValue, key, object, other, stack); - } - // Recursively compare objects (susceptible to call stack limits). - if (!(compared === undefined - ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) - : compared - )) { - result = false; - break; - } - skipCtor || (skipCtor = key == 'constructor'); - } - if (result && !skipCtor) { - var objCtor = object.constructor, - othCtor = other.constructor; - - // Non `Object` object instances with different constructors are not equal. - if (objCtor != othCtor && - ('constructor' in object && 'constructor' in other) && - !(typeof objCtor == 'function' && objCtor instanceof objCtor && - typeof othCtor == 'function' && othCtor instanceof othCtor)) { - result = false; - } - } - stack['delete'](object); - stack['delete'](other); - return result; - } - - /** - * A specialized version of `baseRest` which flattens the rest array. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @returns {Function} Returns the new function. - */ - function flatRest(func) { - return setToString(overRest(func, undefined, flatten), func + ''); - } - - /** - * Creates an array of own enumerable property names and symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names and symbols. - */ - function getAllKeys(object) { - return baseGetAllKeys(object, keys, getSymbols); - } - - /** - * Creates an array of own and inherited enumerable property names and - * symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names and symbols. - */ - function getAllKeysIn(object) { - return baseGetAllKeys(object, keysIn, getSymbolsIn); - } - - /** - * Gets metadata for `func`. - * - * @private - * @param {Function} func The function to query. - * @returns {*} Returns the metadata for `func`. - */ - var getData = !metaMap ? noop : function(func) { - return metaMap.get(func); - }; - - /** - * Gets the name of `func`. - * - * @private - * @param {Function} func The function to query. - * @returns {string} Returns the function name. - */ - function getFuncName(func) { - var result = (func.name + ''), - array = realNames[result], - length = hasOwnProperty.call(realNames, result) ? array.length : 0; - - while (length--) { - var data = array[length], - otherFunc = data.func; - if (otherFunc == null || otherFunc == func) { - return data.name; - } - } - return result; - } - - /** - * Gets the argument placeholder value for `func`. - * - * @private - * @param {Function} func The function to inspect. - * @returns {*} Returns the placeholder value. - */ - function getHolder(func) { - var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func; - return object.placeholder; - } - - /** - * Gets the appropriate "iteratee" function. If `_.iteratee` is customized, - * this function returns the custom method, otherwise it returns `baseIteratee`. - * If arguments are provided, the chosen function is invoked with them and - * its result is returned. - * - * @private - * @param {*} [value] The value to convert to an iteratee. - * @param {number} [arity] The arity of the created iteratee. - * @returns {Function} Returns the chosen function or its result. - */ - function getIteratee() { - var result = lodash.iteratee || iteratee; - result = result === iteratee ? baseIteratee : result; - return arguments.length ? result(arguments[0], arguments[1]) : result; - } - - /** - * Gets the data for `map`. - * - * @private - * @param {Object} map The map to query. - * @param {string} key The reference key. - * @returns {*} Returns the map data. - */ - function getMapData(map, key) { - var data = map.__data__; - return isKeyable(key) - ? data[typeof key == 'string' ? 'string' : 'hash'] - : data.map; - } - - /** - * Gets the property names, values, and compare flags of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the match data of `object`. - */ - function getMatchData(object) { - var result = keys(object), - length = result.length; - - while (length--) { - var key = result[length], - value = object[key]; - - result[length] = [key, value, isStrictComparable(value)]; - } - return result; - } - - /** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. - */ - function getNative(object, key) { - var value = getValue(object, key); - return baseIsNative(value) ? value : undefined; - } - - /** - * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the raw `toStringTag`. - */ - function getRawTag(value) { - var isOwn = hasOwnProperty.call(value, symToStringTag), - tag = value[symToStringTag]; - - try { - value[symToStringTag] = undefined; - var unmasked = true; - } catch (e) {} - - var result = nativeObjectToString.call(value); - if (unmasked) { - if (isOwn) { - value[symToStringTag] = tag; - } else { - delete value[symToStringTag]; - } - } - return result; - } - - /** - * Creates an array of the own enumerable symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of symbols. - */ - var getSymbols = !nativeGetSymbols ? stubArray : function(object) { - if (object == null) { - return []; - } - object = Object(object); - return arrayFilter(nativeGetSymbols(object), function(symbol) { - return propertyIsEnumerable.call(object, symbol); - }); - }; - - /** - * Creates an array of the own and inherited enumerable symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of symbols. - */ - var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { - var result = []; - while (object) { - arrayPush(result, getSymbols(object)); - object = getPrototype(object); - } - return result; - }; - - /** - * Gets the `toStringTag` of `value`. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ - var getTag = baseGetTag; - - // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. - if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || - (Map && getTag(new Map) != mapTag) || - (Promise && getTag(Promise.resolve()) != promiseTag) || - (Set && getTag(new Set) != setTag) || - (WeakMap && getTag(new WeakMap) != weakMapTag)) { - getTag = function(value) { - var result = baseGetTag(value), - Ctor = result == objectTag ? value.constructor : undefined, - ctorString = Ctor ? toSource(Ctor) : ''; - - if (ctorString) { - switch (ctorString) { - case dataViewCtorString: return dataViewTag; - case mapCtorString: return mapTag; - case promiseCtorString: return promiseTag; - case setCtorString: return setTag; - case weakMapCtorString: return weakMapTag; - } - } - return result; - }; - } - - /** - * Gets the view, applying any `transforms` to the `start` and `end` positions. - * - * @private - * @param {number} start The start of the view. - * @param {number} end The end of the view. - * @param {Array} transforms The transformations to apply to the view. - * @returns {Object} Returns an object containing the `start` and `end` - * positions of the view. - */ - function getView(start, end, transforms) { - var index = -1, - length = transforms.length; - - while (++index < length) { - var data = transforms[index], - size = data.size; - - switch (data.type) { - case 'drop': start += size; break; - case 'dropRight': end -= size; break; - case 'take': end = nativeMin(end, start + size); break; - case 'takeRight': start = nativeMax(start, end - size); break; - } - } - return { 'start': start, 'end': end }; - } - - /** - * Extracts wrapper details from the `source` body comment. - * - * @private - * @param {string} source The source to inspect. - * @returns {Array} Returns the wrapper details. - */ - function getWrapDetails(source) { - var match = source.match(reWrapDetails); - return match ? match[1].split(reSplitDetails) : []; - } - - /** - * Checks if `path` exists on `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @param {Function} hasFunc The function to check properties. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - */ - function hasPath(object, path, hasFunc) { - path = castPath(path, object); - - var index = -1, - length = path.length, - result = false; - - while (++index < length) { - var key = toKey(path[index]); - if (!(result = object != null && hasFunc(object, key))) { - break; - } - object = object[key]; - } - if (result || ++index != length) { - return result; - } - length = object == null ? 0 : object.length; - return !!length && isLength(length) && isIndex(key, length) && - (isArray(object) || isArguments(object)); - } - - /** - * Initializes an array clone. - * - * @private - * @param {Array} array The array to clone. - * @returns {Array} Returns the initialized clone. - */ - function initCloneArray(array) { - var length = array.length, - result = new array.constructor(length); - - // Add properties assigned by `RegExp#exec`. - if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { - result.index = array.index; - result.input = array.input; - } - return result; - } - - /** - * Initializes an object clone. - * - * @private - * @param {Object} object The object to clone. - * @returns {Object} Returns the initialized clone. - */ - function initCloneObject(object) { - return (typeof object.constructor == 'function' && !isPrototype(object)) - ? baseCreate(getPrototype(object)) - : {}; - } - - /** - * Initializes an object clone based on its `toStringTag`. - * - * **Note:** This function only supports cloning values with tags of - * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`. - * - * @private - * @param {Object} object The object to clone. - * @param {string} tag The `toStringTag` of the object to clone. - * @param {boolean} [isDeep] Specify a deep clone. - * @returns {Object} Returns the initialized clone. - */ - function initCloneByTag(object, tag, isDeep) { - var Ctor = object.constructor; - switch (tag) { - case arrayBufferTag: - return cloneArrayBuffer(object); - - case boolTag: - case dateTag: - return new Ctor(+object); - - case dataViewTag: - return cloneDataView(object, isDeep); - - case float32Tag: case float64Tag: - case int8Tag: case int16Tag: case int32Tag: - case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: - return cloneTypedArray(object, isDeep); - - case mapTag: - return new Ctor; - - case numberTag: - case stringTag: - return new Ctor(object); - - case regexpTag: - return cloneRegExp(object); - - case setTag: - return new Ctor; - - case symbolTag: - return cloneSymbol(object); - } - } - - /** - * Inserts wrapper `details` in a comment at the top of the `source` body. - * - * @private - * @param {string} source The source to modify. - * @returns {Array} details The details to insert. - * @returns {string} Returns the modified source. - */ - function insertWrapDetails(source, details) { - var length = details.length; - if (!length) { - return source; - } - var lastIndex = length - 1; - details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex]; - details = details.join(length > 2 ? ', ' : ' '); - return source.replace(reWrapComment, '{\n/* [wrapped with ' + details + '] */\n'); - } - - /** - * Checks if `value` is a flattenable `arguments` object or array. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. - */ - function isFlattenable(value) { - return isArray(value) || isArguments(value) || - !!(spreadableSymbol && value && value[spreadableSymbol]); - } - - /** - * Checks if `value` is a valid array-like index. - * - * @private - * @param {*} value The value to check. - * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. - * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. - */ - function isIndex(value, length) { - var type = typeof value; - length = length == null ? MAX_SAFE_INTEGER : length; - - return !!length && - (type == 'number' || - (type != 'symbol' && reIsUint.test(value))) && - (value > -1 && value % 1 == 0 && value < length); - } - - /** - * Checks if the given arguments are from an iteratee call. - * - * @private - * @param {*} value The potential iteratee value argument. - * @param {*} index The potential iteratee index or key argument. - * @param {*} object The potential iteratee object argument. - * @returns {boolean} Returns `true` if the arguments are from an iteratee call, - * else `false`. - */ - function isIterateeCall(value, index, object) { - if (!isObject(object)) { - return false; - } - var type = typeof index; - if (type == 'number' - ? (isArrayLike(object) && isIndex(index, object.length)) - : (type == 'string' && index in object) - ) { - return eq(object[index], value); - } - return false; - } - - /** - * Checks if `value` is a property name and not a property path. - * - * @private - * @param {*} value The value to check. - * @param {Object} [object] The object to query keys on. - * @returns {boolean} Returns `true` if `value` is a property name, else `false`. - */ - function isKey(value, object) { - if (isArray(value)) { - return false; - } - var type = typeof value; - if (type == 'number' || type == 'symbol' || type == 'boolean' || - value == null || isSymbol(value)) { - return true; - } - return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || - (object != null && value in Object(object)); - } - - /** - * Checks if `value` is suitable for use as unique object key. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is suitable, else `false`. - */ - function isKeyable(value) { - var type = typeof value; - return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') - ? (value !== '__proto__') - : (value === null); - } - - /** - * Checks if `func` has a lazy counterpart. - * - * @private - * @param {Function} func The function to check. - * @returns {boolean} Returns `true` if `func` has a lazy counterpart, - * else `false`. - */ - function isLaziable(func) { - var funcName = getFuncName(func), - other = lodash[funcName]; - - if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) { - return false; - } - if (func === other) { - return true; - } - var data = getData(other); - return !!data && func === data[0]; - } - - /** - * Checks if `func` has its source masked. - * - * @private - * @param {Function} func The function to check. - * @returns {boolean} Returns `true` if `func` is masked, else `false`. - */ - function isMasked(func) { - return !!maskSrcKey && (maskSrcKey in func); - } - - /** - * Checks if `func` is capable of being masked. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `func` is maskable, else `false`. - */ - var isMaskable = coreJsData ? isFunction : stubFalse; - - /** - * Checks if `value` is likely a prototype object. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. - */ - function isPrototype(value) { - var Ctor = value && value.constructor, - proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; - - return value === proto; - } - - /** - * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` if suitable for strict - * equality comparisons, else `false`. - */ - function isStrictComparable(value) { - return value === value && !isObject(value); - } - - /** - * A specialized version of `matchesProperty` for source values suitable - * for strict equality comparisons, i.e. `===`. - * - * @private - * @param {string} key The key of the property to get. - * @param {*} srcValue The value to match. - * @returns {Function} Returns the new spec function. - */ - function matchesStrictComparable(key, srcValue) { - return function(object) { - if (object == null) { - return false; - } - return object[key] === srcValue && - (srcValue !== undefined || (key in Object(object))); - }; - } - - /** - * A specialized version of `_.memoize` which clears the memoized function's - * cache when it exceeds `MAX_MEMOIZE_SIZE`. - * - * @private - * @param {Function} func The function to have its output memoized. - * @returns {Function} Returns the new memoized function. - */ - function memoizeCapped(func) { - var result = memoize(func, function(key) { - if (cache.size === MAX_MEMOIZE_SIZE) { - cache.clear(); - } - return key; - }); - - var cache = result.cache; - return result; - } - - /** - * Merges the function metadata of `source` into `data`. - * - * Merging metadata reduces the number of wrappers used to invoke a function. - * This is possible because methods like `_.bind`, `_.curry`, and `_.partial` - * may be applied regardless of execution order. Methods like `_.ary` and - * `_.rearg` modify function arguments, making the order in which they are - * executed important, preventing the merging of metadata. However, we make - * an exception for a safe combined case where curried functions have `_.ary` - * and or `_.rearg` applied. - * - * @private - * @param {Array} data The destination metadata. - * @param {Array} source The source metadata. - * @returns {Array} Returns `data`. - */ - function mergeData(data, source) { - var bitmask = data[1], - srcBitmask = source[1], - newBitmask = bitmask | srcBitmask, - isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG); - - var isCombo = - ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) || - ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) || - ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG)); - - // Exit early if metadata can't be merged. - if (!(isCommon || isCombo)) { - return data; - } - // Use source `thisArg` if available. - if (srcBitmask & WRAP_BIND_FLAG) { - data[2] = source[2]; - // Set when currying a bound function. - newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG; - } - // Compose partial arguments. - var value = source[3]; - if (value) { - var partials = data[3]; - data[3] = partials ? composeArgs(partials, value, source[4]) : value; - data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4]; - } - // Compose partial right arguments. - value = source[5]; - if (value) { - partials = data[5]; - data[5] = partials ? composeArgsRight(partials, value, source[6]) : value; - data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6]; - } - // Use source `argPos` if available. - value = source[7]; - if (value) { - data[7] = value; - } - // Use source `ary` if it's smaller. - if (srcBitmask & WRAP_ARY_FLAG) { - data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]); - } - // Use source `arity` if one is not provided. - if (data[9] == null) { - data[9] = source[9]; - } - // Use source `func` and merge bitmasks. - data[0] = source[0]; - data[1] = newBitmask; - - return data; - } - - /** - * This function is like - * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) - * except that it includes inherited enumerable properties. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ - function nativeKeysIn(object) { - var result = []; - if (object != null) { - for (var key in Object(object)) { - result.push(key); - } - } - return result; - } - - /** - * Converts `value` to a string using `Object.prototype.toString`. - * - * @private - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. - */ - function objectToString(value) { - return nativeObjectToString.call(value); - } - - /** - * A specialized version of `baseRest` which transforms the rest array. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @param {Function} transform The rest array transform. - * @returns {Function} Returns the new function. - */ - function overRest(func, start, transform) { - start = nativeMax(start === undefined ? (func.length - 1) : start, 0); - return function() { - var args = arguments, - index = -1, - length = nativeMax(args.length - start, 0), - array = Array(length); - - while (++index < length) { - array[index] = args[start + index]; - } - index = -1; - var otherArgs = Array(start + 1); - while (++index < start) { - otherArgs[index] = args[index]; - } - otherArgs[start] = transform(array); - return apply(func, this, otherArgs); - }; - } - - /** - * Gets the parent value at `path` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Array} path The path to get the parent value of. - * @returns {*} Returns the parent value. - */ - function parent(object, path) { - return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1)); - } - - /** - * Reorder `array` according to the specified indexes where the element at - * the first index is assigned as the first element, the element at - * the second index is assigned as the second element, and so on. - * - * @private - * @param {Array} array The array to reorder. - * @param {Array} indexes The arranged array indexes. - * @returns {Array} Returns `array`. - */ - function reorder(array, indexes) { - var arrLength = array.length, - length = nativeMin(indexes.length, arrLength), - oldArray = copyArray(array); - - while (length--) { - var index = indexes[length]; - array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined; - } - return array; - } - - /** - * Gets the value at `key`, unless `key` is "__proto__" or "constructor". - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the property to get. - * @returns {*} Returns the property value. - */ - function safeGet(object, key) { - if (key === 'constructor' && typeof object[key] === 'function') { - return; - } - - if (key == '__proto__') { - return; - } - - return object[key]; - } - - /** - * Sets metadata for `func`. - * - * **Note:** If this function becomes hot, i.e. is invoked a lot in a short - * period of time, it will trip its breaker and transition to an identity - * function to avoid garbage collection pauses in V8. See - * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070) - * for more details. - * - * @private - * @param {Function} func The function to associate metadata with. - * @param {*} data The metadata. - * @returns {Function} Returns `func`. - */ - var setData = shortOut(baseSetData); - - /** - * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout). - * - * @private - * @param {Function} func The function to delay. - * @param {number} wait The number of milliseconds to delay invocation. - * @returns {number|Object} Returns the timer id or timeout object. - */ - var setTimeout = ctxSetTimeout || function(func, wait) { - return root.setTimeout(func, wait); - }; - - /** - * Sets the `toString` method of `func` to return `string`. - * - * @private - * @param {Function} func The function to modify. - * @param {Function} string The `toString` result. - * @returns {Function} Returns `func`. - */ - var setToString = shortOut(baseSetToString); - - /** - * Sets the `toString` method of `wrapper` to mimic the source of `reference` - * with wrapper details in a comment at the top of the source body. - * - * @private - * @param {Function} wrapper The function to modify. - * @param {Function} reference The reference function. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @returns {Function} Returns `wrapper`. - */ - function setWrapToString(wrapper, reference, bitmask) { - var source = (reference + ''); - return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask))); - } - - /** - * Creates a function that'll short out and invoke `identity` instead - * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` - * milliseconds. - * - * @private - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new shortable function. - */ - function shortOut(func) { - var count = 0, - lastCalled = 0; - - return function() { - var stamp = nativeNow(), - remaining = HOT_SPAN - (stamp - lastCalled); - - lastCalled = stamp; - if (remaining > 0) { - if (++count >= HOT_COUNT) { - return arguments[0]; - } - } else { - count = 0; - } - return func.apply(undefined, arguments); - }; - } - - /** - * A specialized version of `_.shuffle` which mutates and sets the size of `array`. - * - * @private - * @param {Array} array The array to shuffle. - * @param {number} [size=array.length] The size of `array`. - * @returns {Array} Returns `array`. - */ - function shuffleSelf(array, size) { - var index = -1, - length = array.length, - lastIndex = length - 1; - - size = size === undefined ? length : size; - while (++index < size) { - var rand = baseRandom(index, lastIndex), - value = array[rand]; - - array[rand] = array[index]; - array[index] = value; - } - array.length = size; - return array; - } - - /** - * Converts `string` to a property path array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the property path array. - */ - var stringToPath = memoizeCapped(function(string) { - var result = []; - if (string.charCodeAt(0) === 46 /* . */) { - result.push(''); - } - string.replace(rePropName, function(match, number, quote, subString) { - result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); - }); - return result; - }); - - /** - * Converts `value` to a string key if it's not a string or symbol. - * - * @private - * @param {*} value The value to inspect. - * @returns {string|symbol} Returns the key. - */ - function toKey(value) { - if (typeof value == 'string' || isSymbol(value)) { - return value; - } - var result = (value + ''); - return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; - } - - /** - * Converts `func` to its source code. - * - * @private - * @param {Function} func The function to convert. - * @returns {string} Returns the source code. - */ - function toSource(func) { - if (func != null) { - try { - return funcToString.call(func); - } catch (e) {} - try { - return (func + ''); - } catch (e) {} - } - return ''; - } - - /** - * Updates wrapper `details` based on `bitmask` flags. - * - * @private - * @returns {Array} details The details to modify. - * @param {number} bitmask The bitmask flags. See `createWrap` for more details. - * @returns {Array} Returns `details`. - */ - function updateWrapDetails(details, bitmask) { - arrayEach(wrapFlags, function(pair) { - var value = '_.' + pair[0]; - if ((bitmask & pair[1]) && !arrayIncludes(details, value)) { - details.push(value); - } - }); - return details.sort(); - } - - /** - * Creates a clone of `wrapper`. - * - * @private - * @param {Object} wrapper The wrapper to clone. - * @returns {Object} Returns the cloned wrapper. - */ - function wrapperClone(wrapper) { - if (wrapper instanceof LazyWrapper) { - return wrapper.clone(); - } - var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); - result.__actions__ = copyArray(wrapper.__actions__); - result.__index__ = wrapper.__index__; - result.__values__ = wrapper.__values__; - return result; - } - - /*------------------------------------------------------------------------*/ - - /** - * Creates an array of elements split into groups the length of `size`. - * If `array` can't be split evenly, the final chunk will be the remaining - * elements. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to process. - * @param {number} [size=1] The length of each chunk - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the new array of chunks. - * @example - * - * _.chunk(['a', 'b', 'c', 'd'], 2); - * // => [['a', 'b'], ['c', 'd']] - * - * _.chunk(['a', 'b', 'c', 'd'], 3); - * // => [['a', 'b', 'c'], ['d']] - */ - function chunk(array, size, guard) { - if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) { - size = 1; - } else { - size = nativeMax(toInteger(size), 0); - } - var length = array == null ? 0 : array.length; - if (!length || size < 1) { - return []; - } - var index = 0, - resIndex = 0, - result = Array(nativeCeil(length / size)); - - while (index < length) { - result[resIndex++] = baseSlice(array, index, (index += size)); - } - return result; - } - - /** - * Creates an array with all falsey values removed. The values `false`, `null`, - * `0`, `""`, `undefined`, and `NaN` are falsey. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to compact. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * _.compact([0, 1, false, 2, '', 3]); - * // => [1, 2, 3] - */ - function compact(array) { - var index = -1, - length = array == null ? 0 : array.length, - resIndex = 0, - result = []; - - while (++index < length) { - var value = array[index]; - if (value) { - result[resIndex++] = value; - } - } - return result; - } - - /** - * Creates a new array concatenating `array` with any additional arrays - * and/or values. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to concatenate. - * @param {...*} [values] The values to concatenate. - * @returns {Array} Returns the new concatenated array. - * @example - * - * var array = [1]; - * var other = _.concat(array, 2, [3], [[4]]); - * - * console.log(other); - * // => [1, 2, 3, [4]] - * - * console.log(array); - * // => [1] - */ - function concat() { - var length = arguments.length; - if (!length) { - return []; - } - var args = Array(length - 1), - array = arguments[0], - index = length; - - while (index--) { - args[index - 1] = arguments[index]; - } - return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1)); - } - - /** - * Creates an array of `array` values not included in the other given arrays - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. The order and references of result values are - * determined by the first array. - * - * **Note:** Unlike `_.pullAll`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {...Array} [values] The values to exclude. - * @returns {Array} Returns the new array of filtered values. - * @see _.without, _.xor - * @example - * - * _.difference([2, 1], [2, 3]); - * // => [1] - */ - var difference = baseRest(function(array, values) { - return isArrayLikeObject(array) - ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true)) - : []; - }); - - /** - * This method is like `_.difference` except that it accepts `iteratee` which - * is invoked for each element of `array` and `values` to generate the criterion - * by which they're compared. The order and references of result values are - * determined by the first array. The iteratee is invoked with one argument: - * (value). - * - * **Note:** Unlike `_.pullAllBy`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {...Array} [values] The values to exclude. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor); - * // => [1.2] - * - * // The `_.property` iteratee shorthand. - * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x'); - * // => [{ 'x': 2 }] - */ - var differenceBy = baseRest(function(array, values) { - var iteratee = last(values); - if (isArrayLikeObject(iteratee)) { - iteratee = undefined; - } - return isArrayLikeObject(array) - ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2)) - : []; - }); - - /** - * This method is like `_.difference` except that it accepts `comparator` - * which is invoked to compare elements of `array` to `values`. The order and - * references of result values are determined by the first array. The comparator - * is invoked with two arguments: (arrVal, othVal). - * - * **Note:** Unlike `_.pullAllWith`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {...Array} [values] The values to exclude. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; - * - * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual); - * // => [{ 'x': 2, 'y': 1 }] - */ - var differenceWith = baseRest(function(array, values) { - var comparator = last(values); - if (isArrayLikeObject(comparator)) { - comparator = undefined; - } - return isArrayLikeObject(array) - ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator) - : []; - }); - - /** - * Creates a slice of `array` with `n` elements dropped from the beginning. - * - * @static - * @memberOf _ - * @since 0.5.0 - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to drop. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.drop([1, 2, 3]); - * // => [2, 3] - * - * _.drop([1, 2, 3], 2); - * // => [3] - * - * _.drop([1, 2, 3], 5); - * // => [] - * - * _.drop([1, 2, 3], 0); - * // => [1, 2, 3] - */ - function drop(array, n, guard) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - n = (guard || n === undefined) ? 1 : toInteger(n); - return baseSlice(array, n < 0 ? 0 : n, length); - } - - /** - * Creates a slice of `array` with `n` elements dropped from the end. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to drop. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.dropRight([1, 2, 3]); - * // => [1, 2] - * - * _.dropRight([1, 2, 3], 2); - * // => [1] - * - * _.dropRight([1, 2, 3], 5); - * // => [] - * - * _.dropRight([1, 2, 3], 0); - * // => [1, 2, 3] - */ - function dropRight(array, n, guard) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - n = (guard || n === undefined) ? 1 : toInteger(n); - n = length - n; - return baseSlice(array, 0, n < 0 ? 0 : n); - } - - /** - * Creates a slice of `array` excluding elements dropped from the end. - * Elements are dropped until `predicate` returns falsey. The predicate is - * invoked with three arguments: (value, index, array). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the slice of `array`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': false } - * ]; - * - * _.dropRightWhile(users, function(o) { return !o.active; }); - * // => objects for ['barney'] - * - * // The `_.matches` iteratee shorthand. - * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false }); - * // => objects for ['barney', 'fred'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.dropRightWhile(users, ['active', false]); - * // => objects for ['barney'] - * - * // The `_.property` iteratee shorthand. - * _.dropRightWhile(users, 'active'); - * // => objects for ['barney', 'fred', 'pebbles'] - */ - function dropRightWhile(array, predicate) { - return (array && array.length) - ? baseWhile(array, getIteratee(predicate, 3), true, true) - : []; - } - - /** - * Creates a slice of `array` excluding elements dropped from the beginning. - * Elements are dropped until `predicate` returns falsey. The predicate is - * invoked with three arguments: (value, index, array). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the slice of `array`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': false }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': true } - * ]; - * - * _.dropWhile(users, function(o) { return !o.active; }); - * // => objects for ['pebbles'] - * - * // The `_.matches` iteratee shorthand. - * _.dropWhile(users, { 'user': 'barney', 'active': false }); - * // => objects for ['fred', 'pebbles'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.dropWhile(users, ['active', false]); - * // => objects for ['pebbles'] - * - * // The `_.property` iteratee shorthand. - * _.dropWhile(users, 'active'); - * // => objects for ['barney', 'fred', 'pebbles'] - */ - function dropWhile(array, predicate) { - return (array && array.length) - ? baseWhile(array, getIteratee(predicate, 3), true) - : []; - } - - /** - * Fills elements of `array` with `value` from `start` up to, but not - * including, `end`. - * - * **Note:** This method mutates `array`. - * - * @static - * @memberOf _ - * @since 3.2.0 - * @category Array - * @param {Array} array The array to fill. - * @param {*} value The value to fill `array` with. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns `array`. - * @example - * - * var array = [1, 2, 3]; - * - * _.fill(array, 'a'); - * console.log(array); - * // => ['a', 'a', 'a'] - * - * _.fill(Array(3), 2); - * // => [2, 2, 2] - * - * _.fill([4, 6, 8, 10], '*', 1, 3); - * // => [4, '*', '*', 10] - */ - function fill(array, value, start, end) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - if (start && typeof start != 'number' && isIterateeCall(array, value, start)) { - start = 0; - end = length; - } - return baseFill(array, value, start, end); - } - - /** - * This method is like `_.find` except that it returns the index of the first - * element `predicate` returns truthy for instead of the element itself. - * - * @static - * @memberOf _ - * @since 1.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=0] The index to search from. - * @returns {number} Returns the index of the found element, else `-1`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': false }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': true } - * ]; - * - * _.findIndex(users, function(o) { return o.user == 'barney'; }); - * // => 0 - * - * // The `_.matches` iteratee shorthand. - * _.findIndex(users, { 'user': 'fred', 'active': false }); - * // => 1 - * - * // The `_.matchesProperty` iteratee shorthand. - * _.findIndex(users, ['active', false]); - * // => 0 - * - * // The `_.property` iteratee shorthand. - * _.findIndex(users, 'active'); - * // => 2 - */ - function findIndex(array, predicate, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = fromIndex == null ? 0 : toInteger(fromIndex); - if (index < 0) { - index = nativeMax(length + index, 0); - } - return baseFindIndex(array, getIteratee(predicate, 3), index); - } - - /** - * This method is like `_.findIndex` except that it iterates over elements - * of `collection` from right to left. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=array.length-1] The index to search from. - * @returns {number} Returns the index of the found element, else `-1`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': false } - * ]; - * - * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); - * // => 2 - * - * // The `_.matches` iteratee shorthand. - * _.findLastIndex(users, { 'user': 'barney', 'active': true }); - * // => 0 - * - * // The `_.matchesProperty` iteratee shorthand. - * _.findLastIndex(users, ['active', false]); - * // => 2 - * - * // The `_.property` iteratee shorthand. - * _.findLastIndex(users, 'active'); - * // => 0 - */ - function findLastIndex(array, predicate, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = length - 1; - if (fromIndex !== undefined) { - index = toInteger(fromIndex); - index = fromIndex < 0 - ? nativeMax(length + index, 0) - : nativeMin(index, length - 1); - } - return baseFindIndex(array, getIteratee(predicate, 3), index, true); - } - - /** - * Flattens `array` a single level deep. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to flatten. - * @returns {Array} Returns the new flattened array. - * @example - * - * _.flatten([1, [2, [3, [4]], 5]]); - * // => [1, 2, [3, [4]], 5] - */ - function flatten(array) { - var length = array == null ? 0 : array.length; - return length ? baseFlatten(array, 1) : []; - } - - /** - * Recursively flattens `array`. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to flatten. - * @returns {Array} Returns the new flattened array. - * @example - * - * _.flattenDeep([1, [2, [3, [4]], 5]]); - * // => [1, 2, 3, 4, 5] - */ - function flattenDeep(array) { - var length = array == null ? 0 : array.length; - return length ? baseFlatten(array, INFINITY) : []; - } - - /** - * Recursively flatten `array` up to `depth` times. - * - * @static - * @memberOf _ - * @since 4.4.0 - * @category Array - * @param {Array} array The array to flatten. - * @param {number} [depth=1] The maximum recursion depth. - * @returns {Array} Returns the new flattened array. - * @example - * - * var array = [1, [2, [3, [4]], 5]]; - * - * _.flattenDepth(array, 1); - * // => [1, 2, [3, [4]], 5] - * - * _.flattenDepth(array, 2); - * // => [1, 2, 3, [4], 5] - */ - function flattenDepth(array, depth) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - depth = depth === undefined ? 1 : toInteger(depth); - return baseFlatten(array, depth); - } - - /** - * The inverse of `_.toPairs`; this method returns an object composed - * from key-value `pairs`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} pairs The key-value pairs. - * @returns {Object} Returns the new object. - * @example - * - * _.fromPairs([['a', 1], ['b', 2]]); - * // => { 'a': 1, 'b': 2 } - */ - function fromPairs(pairs) { - var index = -1, - length = pairs == null ? 0 : pairs.length, - result = {}; - - while (++index < length) { - var pair = pairs[index]; - result[pair[0]] = pair[1]; - } - return result; - } - - /** - * Gets the first element of `array`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @alias first - * @category Array - * @param {Array} array The array to query. - * @returns {*} Returns the first element of `array`. - * @example - * - * _.head([1, 2, 3]); - * // => 1 - * - * _.head([]); - * // => undefined - */ - function head(array) { - return (array && array.length) ? array[0] : undefined; - } - - /** - * Gets the index at which the first occurrence of `value` is found in `array` - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. If `fromIndex` is negative, it's used as the - * offset from the end of `array`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} [fromIndex=0] The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.indexOf([1, 2, 1, 2], 2); - * // => 1 - * - * // Search from the `fromIndex`. - * _.indexOf([1, 2, 1, 2], 2, 2); - * // => 3 - */ - function indexOf(array, value, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = fromIndex == null ? 0 : toInteger(fromIndex); - if (index < 0) { - index = nativeMax(length + index, 0); - } - return baseIndexOf(array, value, index); - } - - /** - * Gets all but the last element of `array`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to query. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.initial([1, 2, 3]); - * // => [1, 2] - */ - function initial(array) { - var length = array == null ? 0 : array.length; - return length ? baseSlice(array, 0, -1) : []; - } - - /** - * Creates an array of unique values that are included in all given arrays - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. The order and references of result values are - * determined by the first array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @returns {Array} Returns the new array of intersecting values. - * @example - * - * _.intersection([2, 1], [2, 3]); - * // => [2] - */ - var intersection = baseRest(function(arrays) { - var mapped = arrayMap(arrays, castArrayLikeObject); - return (mapped.length && mapped[0] === arrays[0]) - ? baseIntersection(mapped) - : []; - }); - - /** - * This method is like `_.intersection` except that it accepts `iteratee` - * which is invoked for each element of each `arrays` to generate the criterion - * by which they're compared. The order and references of result values are - * determined by the first array. The iteratee is invoked with one argument: - * (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new array of intersecting values. - * @example - * - * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor); - * // => [2.1] - * - * // The `_.property` iteratee shorthand. - * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); - * // => [{ 'x': 1 }] - */ - var intersectionBy = baseRest(function(arrays) { - var iteratee = last(arrays), - mapped = arrayMap(arrays, castArrayLikeObject); - - if (iteratee === last(mapped)) { - iteratee = undefined; - } else { - mapped.pop(); - } - return (mapped.length && mapped[0] === arrays[0]) - ? baseIntersection(mapped, getIteratee(iteratee, 2)) - : []; - }); - - /** - * This method is like `_.intersection` except that it accepts `comparator` - * which is invoked to compare elements of `arrays`. The order and references - * of result values are determined by the first array. The comparator is - * invoked with two arguments: (arrVal, othVal). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of intersecting values. - * @example - * - * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; - * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; - * - * _.intersectionWith(objects, others, _.isEqual); - * // => [{ 'x': 1, 'y': 2 }] - */ - var intersectionWith = baseRest(function(arrays) { - var comparator = last(arrays), - mapped = arrayMap(arrays, castArrayLikeObject); - - comparator = typeof comparator == 'function' ? comparator : undefined; - if (comparator) { - mapped.pop(); - } - return (mapped.length && mapped[0] === arrays[0]) - ? baseIntersection(mapped, undefined, comparator) - : []; - }); - - /** - * Converts all elements in `array` into a string separated by `separator`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to convert. - * @param {string} [separator=','] The element separator. - * @returns {string} Returns the joined string. - * @example - * - * _.join(['a', 'b', 'c'], '~'); - * // => 'a~b~c' - */ - function join(array, separator) { - return array == null ? '' : nativeJoin.call(array, separator); - } - - /** - * Gets the last element of `array`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to query. - * @returns {*} Returns the last element of `array`. - * @example - * - * _.last([1, 2, 3]); - * // => 3 - */ - function last(array) { - var length = array == null ? 0 : array.length; - return length ? array[length - 1] : undefined; - } - - /** - * This method is like `_.indexOf` except that it iterates over elements of - * `array` from right to left. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @param {number} [fromIndex=array.length-1] The index to search from. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.lastIndexOf([1, 2, 1, 2], 2); - * // => 3 - * - * // Search from the `fromIndex`. - * _.lastIndexOf([1, 2, 1, 2], 2, 2); - * // => 1 - */ - function lastIndexOf(array, value, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; - } - var index = length; - if (fromIndex !== undefined) { - index = toInteger(fromIndex); - index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); - } - return value === value - ? strictLastIndexOf(array, value, index) - : baseFindIndex(array, baseIsNaN, index, true); - } - - /** - * Gets the element at index `n` of `array`. If `n` is negative, the nth - * element from the end is returned. - * - * @static - * @memberOf _ - * @since 4.11.0 - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=0] The index of the element to return. - * @returns {*} Returns the nth element of `array`. - * @example - * - * var array = ['a', 'b', 'c', 'd']; - * - * _.nth(array, 1); - * // => 'b' - * - * _.nth(array, -2); - * // => 'c'; - */ - function nth(array, n) { - return (array && array.length) ? baseNth(array, toInteger(n)) : undefined; - } - - /** - * Removes all given values from `array` using - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. - * - * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove` - * to remove elements from an array by predicate. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Array - * @param {Array} array The array to modify. - * @param {...*} [values] The values to remove. - * @returns {Array} Returns `array`. - * @example - * - * var array = ['a', 'b', 'c', 'a', 'b', 'c']; - * - * _.pull(array, 'a', 'c'); - * console.log(array); - * // => ['b', 'b'] - */ - var pull = baseRest(pullAll); - - /** - * This method is like `_.pull` except that it accepts an array of values to remove. - * - * **Note:** Unlike `_.difference`, this method mutates `array`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to modify. - * @param {Array} values The values to remove. - * @returns {Array} Returns `array`. - * @example - * - * var array = ['a', 'b', 'c', 'a', 'b', 'c']; - * - * _.pullAll(array, ['a', 'c']); - * console.log(array); - * // => ['b', 'b'] - */ - function pullAll(array, values) { - return (array && array.length && values && values.length) - ? basePullAll(array, values) - : array; - } - - /** - * This method is like `_.pullAll` except that it accepts `iteratee` which is - * invoked for each element of `array` and `values` to generate the criterion - * by which they're compared. The iteratee is invoked with one argument: (value). - * - * **Note:** Unlike `_.differenceBy`, this method mutates `array`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to modify. - * @param {Array} values The values to remove. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns `array`. - * @example - * - * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }]; - * - * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x'); - * console.log(array); - * // => [{ 'x': 2 }] - */ - function pullAllBy(array, values, iteratee) { - return (array && array.length && values && values.length) - ? basePullAll(array, values, getIteratee(iteratee, 2)) - : array; - } - - /** - * This method is like `_.pullAll` except that it accepts `comparator` which - * is invoked to compare elements of `array` to `values`. The comparator is - * invoked with two arguments: (arrVal, othVal). - * - * **Note:** Unlike `_.differenceWith`, this method mutates `array`. - * - * @static - * @memberOf _ - * @since 4.6.0 - * @category Array - * @param {Array} array The array to modify. - * @param {Array} values The values to remove. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns `array`. - * @example - * - * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }]; - * - * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual); - * console.log(array); - * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }] - */ - function pullAllWith(array, values, comparator) { - return (array && array.length && values && values.length) - ? basePullAll(array, values, undefined, comparator) - : array; - } - - /** - * Removes elements from `array` corresponding to `indexes` and returns an - * array of removed elements. - * - * **Note:** Unlike `_.at`, this method mutates `array`. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to modify. - * @param {...(number|number[])} [indexes] The indexes of elements to remove. - * @returns {Array} Returns the new array of removed elements. - * @example - * - * var array = ['a', 'b', 'c', 'd']; - * var pulled = _.pullAt(array, [1, 3]); - * - * console.log(array); - * // => ['a', 'c'] - * - * console.log(pulled); - * // => ['b', 'd'] - */ - var pullAt = flatRest(function(array, indexes) { - var length = array == null ? 0 : array.length, - result = baseAt(array, indexes); - - basePullAt(array, arrayMap(indexes, function(index) { - return isIndex(index, length) ? +index : index; - }).sort(compareAscending)); - - return result; - }); - - /** - * Removes all elements from `array` that `predicate` returns truthy for - * and returns an array of the removed elements. The predicate is invoked - * with three arguments: (value, index, array). - * - * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull` - * to pull elements from an array by value. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Array - * @param {Array} array The array to modify. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new array of removed elements. - * @example - * - * var array = [1, 2, 3, 4]; - * var evens = _.remove(array, function(n) { - * return n % 2 == 0; - * }); - * - * console.log(array); - * // => [1, 3] - * - * console.log(evens); - * // => [2, 4] - */ - function remove(array, predicate) { - var result = []; - if (!(array && array.length)) { - return result; - } - var index = -1, - indexes = [], - length = array.length; - - predicate = getIteratee(predicate, 3); - while (++index < length) { - var value = array[index]; - if (predicate(value, index, array)) { - result.push(value); - indexes.push(index); - } - } - basePullAt(array, indexes); - return result; - } - - /** - * Reverses `array` so that the first element becomes the last, the second - * element becomes the second to last, and so on. - * - * **Note:** This method mutates `array` and is based on - * [`Array#reverse`](https://mdn.io/Array/reverse). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to modify. - * @returns {Array} Returns `array`. - * @example - * - * var array = [1, 2, 3]; - * - * _.reverse(array); - * // => [3, 2, 1] - * - * console.log(array); - * // => [3, 2, 1] - */ - function reverse(array) { - return array == null ? array : nativeReverse.call(array); - } - - /** - * Creates a slice of `array` from `start` up to, but not including, `end`. - * - * **Note:** This method is used instead of - * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are - * returned. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to slice. - * @param {number} [start=0] The start position. - * @param {number} [end=array.length] The end position. - * @returns {Array} Returns the slice of `array`. - */ - function slice(array, start, end) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - if (end && typeof end != 'number' && isIterateeCall(array, start, end)) { - start = 0; - end = length; - } - else { - start = start == null ? 0 : toInteger(start); - end = end === undefined ? length : toInteger(end); - } - return baseSlice(array, start, end); - } - - /** - * Uses a binary search to determine the lowest index at which `value` - * should be inserted into `array` in order to maintain its sort order. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - * @example - * - * _.sortedIndex([30, 50], 40); - * // => 1 - */ - function sortedIndex(array, value) { - return baseSortedIndex(array, value); - } - - /** - * This method is like `_.sortedIndex` except that it accepts `iteratee` - * which is invoked for `value` and each element of `array` to compute their - * sort ranking. The iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - * @example - * - * var objects = [{ 'x': 4 }, { 'x': 5 }]; - * - * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); - * // => 0 - * - * // The `_.property` iteratee shorthand. - * _.sortedIndexBy(objects, { 'x': 4 }, 'x'); - * // => 0 - */ - function sortedIndexBy(array, value, iteratee) { - return baseSortedIndexBy(array, value, getIteratee(iteratee, 2)); - } - - /** - * This method is like `_.indexOf` except that it performs a binary - * search on a sorted `array`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.sortedIndexOf([4, 5, 5, 5, 6], 5); - * // => 1 - */ - function sortedIndexOf(array, value) { - var length = array == null ? 0 : array.length; - if (length) { - var index = baseSortedIndex(array, value); - if (index < length && eq(array[index], value)) { - return index; - } - } - return -1; - } - - /** - * This method is like `_.sortedIndex` except that it returns the highest - * index at which `value` should be inserted into `array` in order to - * maintain its sort order. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - * @example - * - * _.sortedLastIndex([4, 5, 5, 5, 6], 5); - * // => 4 - */ - function sortedLastIndex(array, value) { - return baseSortedIndex(array, value, true); - } - - /** - * This method is like `_.sortedLastIndex` except that it accepts `iteratee` - * which is invoked for `value` and each element of `array` to compute their - * sort ranking. The iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The sorted array to inspect. - * @param {*} value The value to evaluate. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {number} Returns the index at which `value` should be inserted - * into `array`. - * @example - * - * var objects = [{ 'x': 4 }, { 'x': 5 }]; - * - * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; }); - * // => 1 - * - * // The `_.property` iteratee shorthand. - * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x'); - * // => 1 - */ - function sortedLastIndexBy(array, value, iteratee) { - return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true); - } - - /** - * This method is like `_.lastIndexOf` except that it performs a binary - * search on a sorted `array`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {*} value The value to search for. - * @returns {number} Returns the index of the matched value, else `-1`. - * @example - * - * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5); - * // => 3 - */ - function sortedLastIndexOf(array, value) { - var length = array == null ? 0 : array.length; - if (length) { - var index = baseSortedIndex(array, value, true) - 1; - if (eq(array[index], value)) { - return index; - } - } - return -1; - } - - /** - * This method is like `_.uniq` except that it's designed and optimized - * for sorted arrays. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * _.sortedUniq([1, 1, 2]); - * // => [1, 2] - */ - function sortedUniq(array) { - return (array && array.length) - ? baseSortedUniq(array) - : []; - } - - /** - * This method is like `_.uniqBy` except that it's designed and optimized - * for sorted arrays. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [iteratee] The iteratee invoked per element. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor); - * // => [1.1, 2.3] - */ - function sortedUniqBy(array, iteratee) { - return (array && array.length) - ? baseSortedUniq(array, getIteratee(iteratee, 2)) - : []; - } - - /** - * Gets all but the first element of `array`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to query. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.tail([1, 2, 3]); - * // => [2, 3] - */ - function tail(array) { - var length = array == null ? 0 : array.length; - return length ? baseSlice(array, 1, length) : []; - } - - /** - * Creates a slice of `array` with `n` elements taken from the beginning. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to take. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.take([1, 2, 3]); - * // => [1] - * - * _.take([1, 2, 3], 2); - * // => [1, 2] - * - * _.take([1, 2, 3], 5); - * // => [1, 2, 3] - * - * _.take([1, 2, 3], 0); - * // => [] - */ - function take(array, n, guard) { - if (!(array && array.length)) { - return []; - } - n = (guard || n === undefined) ? 1 : toInteger(n); - return baseSlice(array, 0, n < 0 ? 0 : n); - } - - /** - * Creates a slice of `array` with `n` elements taken from the end. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {number} [n=1] The number of elements to take. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the slice of `array`. - * @example - * - * _.takeRight([1, 2, 3]); - * // => [3] - * - * _.takeRight([1, 2, 3], 2); - * // => [2, 3] - * - * _.takeRight([1, 2, 3], 5); - * // => [1, 2, 3] - * - * _.takeRight([1, 2, 3], 0); - * // => [] - */ - function takeRight(array, n, guard) { - var length = array == null ? 0 : array.length; - if (!length) { - return []; - } - n = (guard || n === undefined) ? 1 : toInteger(n); - n = length - n; - return baseSlice(array, n < 0 ? 0 : n, length); - } - - /** - * Creates a slice of `array` with elements taken from the end. Elements are - * taken until `predicate` returns falsey. The predicate is invoked with - * three arguments: (value, index, array). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the slice of `array`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': false } - * ]; - * - * _.takeRightWhile(users, function(o) { return !o.active; }); - * // => objects for ['fred', 'pebbles'] - * - * // The `_.matches` iteratee shorthand. - * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false }); - * // => objects for ['pebbles'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.takeRightWhile(users, ['active', false]); - * // => objects for ['fred', 'pebbles'] - * - * // The `_.property` iteratee shorthand. - * _.takeRightWhile(users, 'active'); - * // => [] - */ - function takeRightWhile(array, predicate) { - return (array && array.length) - ? baseWhile(array, getIteratee(predicate, 3), false, true) - : []; - } - - /** - * Creates a slice of `array` with elements taken from the beginning. Elements - * are taken until `predicate` returns falsey. The predicate is invoked with - * three arguments: (value, index, array). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Array - * @param {Array} array The array to query. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the slice of `array`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': false }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': true } - * ]; - * - * _.takeWhile(users, function(o) { return !o.active; }); - * // => objects for ['barney', 'fred'] - * - * // The `_.matches` iteratee shorthand. - * _.takeWhile(users, { 'user': 'barney', 'active': false }); - * // => objects for ['barney'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.takeWhile(users, ['active', false]); - * // => objects for ['barney', 'fred'] - * - * // The `_.property` iteratee shorthand. - * _.takeWhile(users, 'active'); - * // => [] - */ - function takeWhile(array, predicate) { - return (array && array.length) - ? baseWhile(array, getIteratee(predicate, 3)) - : []; - } - - /** - * Creates an array of unique values, in order, from all given arrays using - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @returns {Array} Returns the new array of combined values. - * @example - * - * _.union([2], [1, 2]); - * // => [2, 1] - */ - var union = baseRest(function(arrays) { - return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true)); - }); - - /** - * This method is like `_.union` except that it accepts `iteratee` which is - * invoked for each element of each `arrays` to generate the criterion by - * which uniqueness is computed. Result values are chosen from the first - * array in which the value occurs. The iteratee is invoked with one argument: - * (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new array of combined values. - * @example - * - * _.unionBy([2.1], [1.2, 2.3], Math.floor); - * // => [2.1, 1.2] - * - * // The `_.property` iteratee shorthand. - * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); - * // => [{ 'x': 1 }, { 'x': 2 }] - */ - var unionBy = baseRest(function(arrays) { - var iteratee = last(arrays); - if (isArrayLikeObject(iteratee)) { - iteratee = undefined; - } - return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2)); - }); - - /** - * This method is like `_.union` except that it accepts `comparator` which - * is invoked to compare elements of `arrays`. Result values are chosen from - * the first array in which the value occurs. The comparator is invoked - * with two arguments: (arrVal, othVal). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of combined values. - * @example - * - * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; - * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; - * - * _.unionWith(objects, others, _.isEqual); - * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }] - */ - var unionWith = baseRest(function(arrays) { - var comparator = last(arrays); - comparator = typeof comparator == 'function' ? comparator : undefined; - return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator); - }); - - /** - * Creates a duplicate-free version of an array, using - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons, in which only the first occurrence of each element - * is kept. The order of result values is determined by the order they occur - * in the array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * _.uniq([2, 1, 2]); - * // => [2, 1] - */ - function uniq(array) { - return (array && array.length) ? baseUniq(array) : []; - } - - /** - * This method is like `_.uniq` except that it accepts `iteratee` which is - * invoked for each element in `array` to generate the criterion by which - * uniqueness is computed. The order of result values is determined by the - * order they occur in the array. The iteratee is invoked with one argument: - * (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * _.uniqBy([2.1, 1.2, 2.3], Math.floor); - * // => [2.1, 1.2] - * - * // The `_.property` iteratee shorthand. - * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x'); - * // => [{ 'x': 1 }, { 'x': 2 }] - */ - function uniqBy(array, iteratee) { - return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : []; - } - - /** - * This method is like `_.uniq` except that it accepts `comparator` which - * is invoked to compare elements of `array`. The order of result values is - * determined by the order they occur in the array.The comparator is invoked - * with two arguments: (arrVal, othVal). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new duplicate free array. - * @example - * - * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }]; - * - * _.uniqWith(objects, _.isEqual); - * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }] - */ - function uniqWith(array, comparator) { - comparator = typeof comparator == 'function' ? comparator : undefined; - return (array && array.length) ? baseUniq(array, undefined, comparator) : []; - } - - /** - * This method is like `_.zip` except that it accepts an array of grouped - * elements and creates an array regrouping the elements to their pre-zip - * configuration. - * - * @static - * @memberOf _ - * @since 1.2.0 - * @category Array - * @param {Array} array The array of grouped elements to process. - * @returns {Array} Returns the new array of regrouped elements. - * @example - * - * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]); - * // => [['a', 1, true], ['b', 2, false]] - * - * _.unzip(zipped); - * // => [['a', 'b'], [1, 2], [true, false]] - */ - function unzip(array) { - if (!(array && array.length)) { - return []; - } - var length = 0; - array = arrayFilter(array, function(group) { - if (isArrayLikeObject(group)) { - length = nativeMax(group.length, length); - return true; - } - }); - return baseTimes(length, function(index) { - return arrayMap(array, baseProperty(index)); - }); - } - - /** - * This method is like `_.unzip` except that it accepts `iteratee` to specify - * how regrouped values should be combined. The iteratee is invoked with the - * elements of each group: (...group). - * - * @static - * @memberOf _ - * @since 3.8.0 - * @category Array - * @param {Array} array The array of grouped elements to process. - * @param {Function} [iteratee=_.identity] The function to combine - * regrouped values. - * @returns {Array} Returns the new array of regrouped elements. - * @example - * - * var zipped = _.zip([1, 2], [10, 20], [100, 200]); - * // => [[1, 10, 100], [2, 20, 200]] - * - * _.unzipWith(zipped, _.add); - * // => [3, 30, 300] - */ - function unzipWith(array, iteratee) { - if (!(array && array.length)) { - return []; - } - var result = unzip(array); - if (iteratee == null) { - return result; - } - return arrayMap(result, function(group) { - return apply(iteratee, undefined, group); - }); - } - - /** - * Creates an array excluding all given values using - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. - * - * **Note:** Unlike `_.pull`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {...*} [values] The values to exclude. - * @returns {Array} Returns the new array of filtered values. - * @see _.difference, _.xor - * @example - * - * _.without([2, 1, 2, 3], 1, 2); - * // => [3] - */ - var without = baseRest(function(array, values) { - return isArrayLikeObject(array) - ? baseDifference(array, values) - : []; - }); - - /** - * Creates an array of unique values that is the - * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference) - * of the given arrays. The order of result values is determined by the order - * they occur in the arrays. - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @returns {Array} Returns the new array of filtered values. - * @see _.difference, _.without - * @example - * - * _.xor([2, 1], [2, 3]); - * // => [1, 3] - */ - var xor = baseRest(function(arrays) { - return baseXor(arrayFilter(arrays, isArrayLikeObject)); - }); - - /** - * This method is like `_.xor` except that it accepts `iteratee` which is - * invoked for each element of each `arrays` to generate the criterion by - * which by which they're compared. The order of result values is determined - * by the order they occur in the arrays. The iteratee is invoked with one - * argument: (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor); - * // => [1.2, 3.4] - * - * // The `_.property` iteratee shorthand. - * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x'); - * // => [{ 'x': 2 }] - */ - var xorBy = baseRest(function(arrays) { - var iteratee = last(arrays); - if (isArrayLikeObject(iteratee)) { - iteratee = undefined; - } - return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2)); - }); - - /** - * This method is like `_.xor` except that it accepts `comparator` which is - * invoked to compare elements of `arrays`. The order of result values is - * determined by the order they occur in the arrays. The comparator is invoked - * with two arguments: (arrVal, othVal). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Array - * @param {...Array} [arrays] The arrays to inspect. - * @param {Function} [comparator] The comparator invoked per element. - * @returns {Array} Returns the new array of filtered values. - * @example - * - * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]; - * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]; - * - * _.xorWith(objects, others, _.isEqual); - * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }] - */ - var xorWith = baseRest(function(arrays) { - var comparator = last(arrays); - comparator = typeof comparator == 'function' ? comparator : undefined; - return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator); - }); - - /** - * Creates an array of grouped elements, the first of which contains the - * first elements of the given arrays, the second of which contains the - * second elements of the given arrays, and so on. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Array - * @param {...Array} [arrays] The arrays to process. - * @returns {Array} Returns the new array of grouped elements. - * @example - * - * _.zip(['a', 'b'], [1, 2], [true, false]); - * // => [['a', 1, true], ['b', 2, false]] - */ - var zip = baseRest(unzip); - - /** - * This method is like `_.fromPairs` except that it accepts two arrays, - * one of property identifiers and one of corresponding values. - * - * @static - * @memberOf _ - * @since 0.4.0 - * @category Array - * @param {Array} [props=[]] The property identifiers. - * @param {Array} [values=[]] The property values. - * @returns {Object} Returns the new object. - * @example - * - * _.zipObject(['a', 'b'], [1, 2]); - * // => { 'a': 1, 'b': 2 } - */ - function zipObject(props, values) { - return baseZipObject(props || [], values || [], assignValue); - } - - /** - * This method is like `_.zipObject` except that it supports property paths. - * - * @static - * @memberOf _ - * @since 4.1.0 - * @category Array - * @param {Array} [props=[]] The property identifiers. - * @param {Array} [values=[]] The property values. - * @returns {Object} Returns the new object. - * @example - * - * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]); - * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } } - */ - function zipObjectDeep(props, values) { - return baseZipObject(props || [], values || [], baseSet); - } - - /** - * This method is like `_.zip` except that it accepts `iteratee` to specify - * how grouped values should be combined. The iteratee is invoked with the - * elements of each group: (...group). - * - * @static - * @memberOf _ - * @since 3.8.0 - * @category Array - * @param {...Array} [arrays] The arrays to process. - * @param {Function} [iteratee=_.identity] The function to combine - * grouped values. - * @returns {Array} Returns the new array of grouped elements. - * @example - * - * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) { - * return a + b + c; - * }); - * // => [111, 222] - */ - var zipWith = baseRest(function(arrays) { - var length = arrays.length, - iteratee = length > 1 ? arrays[length - 1] : undefined; - - iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined; - return unzipWith(arrays, iteratee); - }); - - /*------------------------------------------------------------------------*/ - - /** - * Creates a `lodash` wrapper instance that wraps `value` with explicit method - * chain sequences enabled. The result of such sequences must be unwrapped - * with `_#value`. - * - * @static - * @memberOf _ - * @since 1.3.0 - * @category Seq - * @param {*} value The value to wrap. - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 }, - * { 'user': 'pebbles', 'age': 1 } - * ]; - * - * var youngest = _ - * .chain(users) - * .sortBy('age') - * .map(function(o) { - * return o.user + ' is ' + o.age; - * }) - * .head() - * .value(); - * // => 'pebbles is 1' - */ - function chain(value) { - var result = lodash(value); - result.__chain__ = true; - return result; - } - - /** - * This method invokes `interceptor` and returns `value`. The interceptor - * is invoked with one argument; (value). The purpose of this method is to - * "tap into" a method chain sequence in order to modify intermediate results. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Seq - * @param {*} value The value to provide to `interceptor`. - * @param {Function} interceptor The function to invoke. - * @returns {*} Returns `value`. - * @example - * - * _([1, 2, 3]) - * .tap(function(array) { - * // Mutate input array. - * array.pop(); - * }) - * .reverse() - * .value(); - * // => [2, 1] - */ - function tap(value, interceptor) { - interceptor(value); - return value; - } - - /** - * This method is like `_.tap` except that it returns the result of `interceptor`. - * The purpose of this method is to "pass thru" values replacing intermediate - * results in a method chain sequence. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Seq - * @param {*} value The value to provide to `interceptor`. - * @param {Function} interceptor The function to invoke. - * @returns {*} Returns the result of `interceptor`. - * @example - * - * _(' abc ') - * .chain() - * .trim() - * .thru(function(value) { - * return [value]; - * }) - * .value(); - * // => ['abc'] - */ - function thru(value, interceptor) { - return interceptor(value); - } - - /** - * This method is the wrapper version of `_.at`. - * - * @name at - * @memberOf _ - * @since 1.0.0 - * @category Seq - * @param {...(string|string[])} [paths] The property paths to pick. - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; - * - * _(object).at(['a[0].b.c', 'a[1]']).value(); - * // => [3, 4] - */ - var wrapperAt = flatRest(function(paths) { - var length = paths.length, - start = length ? paths[0] : 0, - value = this.__wrapped__, - interceptor = function(object) { return baseAt(object, paths); }; - - if (length > 1 || this.__actions__.length || - !(value instanceof LazyWrapper) || !isIndex(start)) { - return this.thru(interceptor); - } - value = value.slice(start, +start + (length ? 1 : 0)); - value.__actions__.push({ - 'func': thru, - 'args': [interceptor], - 'thisArg': undefined - }); - return new LodashWrapper(value, this.__chain__).thru(function(array) { - if (length && !array.length) { - array.push(undefined); - } - return array; - }); - }); - - /** - * Creates a `lodash` wrapper instance with explicit method chain sequences enabled. - * - * @name chain - * @memberOf _ - * @since 0.1.0 - * @category Seq - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 40 } - * ]; - * - * // A sequence without explicit chaining. - * _(users).head(); - * // => { 'user': 'barney', 'age': 36 } - * - * // A sequence with explicit chaining. - * _(users) - * .chain() - * .head() - * .pick('user') - * .value(); - * // => { 'user': 'barney' } - */ - function wrapperChain() { - return chain(this); - } - - /** - * Executes the chain sequence and returns the wrapped result. - * - * @name commit - * @memberOf _ - * @since 3.2.0 - * @category Seq - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var array = [1, 2]; - * var wrapped = _(array).push(3); - * - * console.log(array); - * // => [1, 2] - * - * wrapped = wrapped.commit(); - * console.log(array); - * // => [1, 2, 3] - * - * wrapped.last(); - * // => 3 - * - * console.log(array); - * // => [1, 2, 3] - */ - function wrapperCommit() { - return new LodashWrapper(this.value(), this.__chain__); - } - - /** - * Gets the next value on a wrapped object following the - * [iterator protocol](https://mdn.io/iteration_protocols#iterator). - * - * @name next - * @memberOf _ - * @since 4.0.0 - * @category Seq - * @returns {Object} Returns the next iterator value. - * @example - * - * var wrapped = _([1, 2]); - * - * wrapped.next(); - * // => { 'done': false, 'value': 1 } - * - * wrapped.next(); - * // => { 'done': false, 'value': 2 } - * - * wrapped.next(); - * // => { 'done': true, 'value': undefined } - */ - function wrapperNext() { - if (this.__values__ === undefined) { - this.__values__ = toArray(this.value()); - } - var done = this.__index__ >= this.__values__.length, - value = done ? undefined : this.__values__[this.__index__++]; - - return { 'done': done, 'value': value }; - } - - /** - * Enables the wrapper to be iterable. - * - * @name Symbol.iterator - * @memberOf _ - * @since 4.0.0 - * @category Seq - * @returns {Object} Returns the wrapper object. - * @example - * - * var wrapped = _([1, 2]); - * - * wrapped[Symbol.iterator]() === wrapped; - * // => true - * - * Array.from(wrapped); - * // => [1, 2] - */ - function wrapperToIterator() { - return this; - } - - /** - * Creates a clone of the chain sequence planting `value` as the wrapped value. - * - * @name plant - * @memberOf _ - * @since 3.2.0 - * @category Seq - * @param {*} value The value to plant. - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * function square(n) { - * return n * n; - * } - * - * var wrapped = _([1, 2]).map(square); - * var other = wrapped.plant([3, 4]); - * - * other.value(); - * // => [9, 16] - * - * wrapped.value(); - * // => [1, 4] - */ - function wrapperPlant(value) { - var result, - parent = this; - - while (parent instanceof baseLodash) { - var clone = wrapperClone(parent); - clone.__index__ = 0; - clone.__values__ = undefined; - if (result) { - previous.__wrapped__ = clone; - } else { - result = clone; - } - var previous = clone; - parent = parent.__wrapped__; - } - previous.__wrapped__ = value; - return result; - } - - /** - * This method is the wrapper version of `_.reverse`. - * - * **Note:** This method mutates the wrapped array. - * - * @name reverse - * @memberOf _ - * @since 0.1.0 - * @category Seq - * @returns {Object} Returns the new `lodash` wrapper instance. - * @example - * - * var array = [1, 2, 3]; - * - * _(array).reverse().value() - * // => [3, 2, 1] - * - * console.log(array); - * // => [3, 2, 1] - */ - function wrapperReverse() { - var value = this.__wrapped__; - if (value instanceof LazyWrapper) { - var wrapped = value; - if (this.__actions__.length) { - wrapped = new LazyWrapper(this); - } - wrapped = wrapped.reverse(); - wrapped.__actions__.push({ - 'func': thru, - 'args': [reverse], - 'thisArg': undefined - }); - return new LodashWrapper(wrapped, this.__chain__); - } - return this.thru(reverse); - } - - /** - * Executes the chain sequence to resolve the unwrapped value. - * - * @name value - * @memberOf _ - * @since 0.1.0 - * @alias toJSON, valueOf - * @category Seq - * @returns {*} Returns the resolved unwrapped value. - * @example - * - * _([1, 2, 3]).value(); - * // => [1, 2, 3] - */ - function wrapperValue() { - return baseWrapperValue(this.__wrapped__, this.__actions__); - } - - /*------------------------------------------------------------------------*/ - - /** - * Creates an object composed of keys generated from the results of running - * each element of `collection` thru `iteratee`. The corresponding value of - * each key is the number of times the key was returned by `iteratee`. The - * iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 0.5.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The iteratee to transform keys. - * @returns {Object} Returns the composed aggregate object. - * @example - * - * _.countBy([6.1, 4.2, 6.3], Math.floor); - * // => { '4': 1, '6': 2 } - * - * // The `_.property` iteratee shorthand. - * _.countBy(['one', 'two', 'three'], 'length'); - * // => { '3': 2, '5': 1 } - */ - var countBy = createAggregator(function(result, value, key) { - if (hasOwnProperty.call(result, key)) { - ++result[key]; - } else { - baseAssignValue(result, key, 1); - } - }); - - /** - * Checks if `predicate` returns truthy for **all** elements of `collection`. - * Iteration is stopped once `predicate` returns falsey. The predicate is - * invoked with three arguments: (value, index|key, collection). - * - * **Note:** This method returns `true` for - * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because - * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of - * elements of empty collections. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false`. - * @example - * - * _.every([true, 1, null, 'yes'], Boolean); - * // => false - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': false } - * ]; - * - * // The `_.matches` iteratee shorthand. - * _.every(users, { 'user': 'barney', 'active': false }); - * // => false - * - * // The `_.matchesProperty` iteratee shorthand. - * _.every(users, ['active', false]); - * // => true - * - * // The `_.property` iteratee shorthand. - * _.every(users, 'active'); - * // => false - */ - function every(collection, predicate, guard) { - var func = isArray(collection) ? arrayEvery : baseEvery; - if (guard && isIterateeCall(collection, predicate, guard)) { - predicate = undefined; - } - return func(collection, getIteratee(predicate, 3)); - } - - /** - * Iterates over elements of `collection`, returning an array of all elements - * `predicate` returns truthy for. The predicate is invoked with three - * arguments: (value, index|key, collection). - * - * **Note:** Unlike `_.remove`, this method returns a new array. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - * @see _.reject - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': true }, - * { 'user': 'fred', 'age': 40, 'active': false } - * ]; - * - * _.filter(users, function(o) { return !o.active; }); - * // => objects for ['fred'] - * - * // The `_.matches` iteratee shorthand. - * _.filter(users, { 'age': 36, 'active': true }); - * // => objects for ['barney'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.filter(users, ['active', false]); - * // => objects for ['fred'] - * - * // The `_.property` iteratee shorthand. - * _.filter(users, 'active'); - * // => objects for ['barney'] - * - * // Combining several predicates using `_.overEvery` or `_.overSome`. - * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]])); - * // => objects for ['fred', 'barney'] - */ - function filter(collection, predicate) { - var func = isArray(collection) ? arrayFilter : baseFilter; - return func(collection, getIteratee(predicate, 3)); - } - - /** - * Iterates over elements of `collection`, returning the first element - * `predicate` returns truthy for. The predicate is invoked with three - * arguments: (value, index|key, collection). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=0] The index to search from. - * @returns {*} Returns the matched element, else `undefined`. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': true }, - * { 'user': 'fred', 'age': 40, 'active': false }, - * { 'user': 'pebbles', 'age': 1, 'active': true } - * ]; - * - * _.find(users, function(o) { return o.age < 40; }); - * // => object for 'barney' - * - * // The `_.matches` iteratee shorthand. - * _.find(users, { 'age': 1, 'active': true }); - * // => object for 'pebbles' - * - * // The `_.matchesProperty` iteratee shorthand. - * _.find(users, ['active', false]); - * // => object for 'fred' - * - * // The `_.property` iteratee shorthand. - * _.find(users, 'active'); - * // => object for 'barney' - */ - var find = createFind(findIndex); - - /** - * This method is like `_.find` except that it iterates over elements of - * `collection` from right to left. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Collection - * @param {Array|Object} collection The collection to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=collection.length-1] The index to search from. - * @returns {*} Returns the matched element, else `undefined`. - * @example - * - * _.findLast([1, 2, 3, 4], function(n) { - * return n % 2 == 1; - * }); - * // => 3 - */ - var findLast = createFind(findLastIndex); - - /** - * Creates a flattened array of values by running each element in `collection` - * thru `iteratee` and flattening the mapped results. The iteratee is invoked - * with three arguments: (value, index|key, collection). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new flattened array. - * @example - * - * function duplicate(n) { - * return [n, n]; - * } - * - * _.flatMap([1, 2], duplicate); - * // => [1, 1, 2, 2] - */ - function flatMap(collection, iteratee) { - return baseFlatten(map(collection, iteratee), 1); - } - - /** - * This method is like `_.flatMap` except that it recursively flattens the - * mapped results. - * - * @static - * @memberOf _ - * @since 4.7.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new flattened array. - * @example - * - * function duplicate(n) { - * return [[[n, n]]]; - * } - * - * _.flatMapDeep([1, 2], duplicate); - * // => [1, 1, 2, 2] - */ - function flatMapDeep(collection, iteratee) { - return baseFlatten(map(collection, iteratee), INFINITY); - } - - /** - * This method is like `_.flatMap` except that it recursively flattens the - * mapped results up to `depth` times. - * - * @static - * @memberOf _ - * @since 4.7.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {number} [depth=1] The maximum recursion depth. - * @returns {Array} Returns the new flattened array. - * @example - * - * function duplicate(n) { - * return [[[n, n]]]; - * } - * - * _.flatMapDepth([1, 2], duplicate, 2); - * // => [[1, 1], [2, 2]] - */ - function flatMapDepth(collection, iteratee, depth) { - depth = depth === undefined ? 1 : toInteger(depth); - return baseFlatten(map(collection, iteratee), depth); - } - - /** - * Iterates over elements of `collection` and invokes `iteratee` for each element. - * The iteratee is invoked with three arguments: (value, index|key, collection). - * Iteratee functions may exit iteration early by explicitly returning `false`. - * - * **Note:** As with other "Collections" methods, objects with a "length" - * property are iterated like arrays. To avoid this behavior use `_.forIn` - * or `_.forOwn` for object iteration. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @alias each - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. - * @see _.forEachRight - * @example - * - * _.forEach([1, 2], function(value) { - * console.log(value); - * }); - * // => Logs `1` then `2`. - * - * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { - * console.log(key); - * }); - * // => Logs 'a' then 'b' (iteration order is not guaranteed). - */ - function forEach(collection, iteratee) { - var func = isArray(collection) ? arrayEach : baseEach; - return func(collection, getIteratee(iteratee, 3)); - } - - /** - * This method is like `_.forEach` except that it iterates over elements of - * `collection` from right to left. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @alias eachRight - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. - * @see _.forEach - * @example - * - * _.forEachRight([1, 2], function(value) { - * console.log(value); - * }); - * // => Logs `2` then `1`. - */ - function forEachRight(collection, iteratee) { - var func = isArray(collection) ? arrayEachRight : baseEachRight; - return func(collection, getIteratee(iteratee, 3)); - } - - /** - * Creates an object composed of keys generated from the results of running - * each element of `collection` thru `iteratee`. The order of grouped values - * is determined by the order they occur in `collection`. The corresponding - * value of each key is an array of elements responsible for generating the - * key. The iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The iteratee to transform keys. - * @returns {Object} Returns the composed aggregate object. - * @example - * - * _.groupBy([6.1, 4.2, 6.3], Math.floor); - * // => { '4': [4.2], '6': [6.1, 6.3] } - * - * // The `_.property` iteratee shorthand. - * _.groupBy(['one', 'two', 'three'], 'length'); - * // => { '3': ['one', 'two'], '5': ['three'] } - */ - var groupBy = createAggregator(function(result, value, key) { - if (hasOwnProperty.call(result, key)) { - result[key].push(value); - } else { - baseAssignValue(result, key, [value]); - } - }); - - /** - * Checks if `value` is in `collection`. If `collection` is a string, it's - * checked for a substring of `value`, otherwise - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * is used for equality comparisons. If `fromIndex` is negative, it's used as - * the offset from the end of `collection`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object|string} collection The collection to inspect. - * @param {*} value The value to search for. - * @param {number} [fromIndex=0] The index to search from. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. - * @returns {boolean} Returns `true` if `value` is found, else `false`. - * @example - * - * _.includes([1, 2, 3], 1); - * // => true - * - * _.includes([1, 2, 3], 1, 2); - * // => false - * - * _.includes({ 'a': 1, 'b': 2 }, 1); - * // => true - * - * _.includes('abcd', 'bc'); - * // => true - */ - function includes(collection, value, fromIndex, guard) { - collection = isArrayLike(collection) ? collection : values(collection); - fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0; - - var length = collection.length; - if (fromIndex < 0) { - fromIndex = nativeMax(length + fromIndex, 0); - } - return isString(collection) - ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1) - : (!!length && baseIndexOf(collection, value, fromIndex) > -1); - } - - /** - * Invokes the method at `path` of each element in `collection`, returning - * an array of the results of each invoked method. Any additional arguments - * are provided to each invoked method. If `path` is a function, it's invoked - * for, and `this` bound to, each element in `collection`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Array|Function|string} path The path of the method to invoke or - * the function invoked per iteration. - * @param {...*} [args] The arguments to invoke each method with. - * @returns {Array} Returns the array of results. - * @example - * - * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort'); - * // => [[1, 5, 7], [1, 2, 3]] - * - * _.invokeMap([123, 456], String.prototype.split, ''); - * // => [['1', '2', '3'], ['4', '5', '6']] - */ - var invokeMap = baseRest(function(collection, path, args) { - var index = -1, - isFunc = typeof path == 'function', - result = isArrayLike(collection) ? Array(collection.length) : []; - - baseEach(collection, function(value) { - result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args); - }); - return result; - }); - - /** - * Creates an object composed of keys generated from the results of running - * each element of `collection` thru `iteratee`. The corresponding value of - * each key is the last element responsible for generating the key. The - * iteratee is invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The iteratee to transform keys. - * @returns {Object} Returns the composed aggregate object. - * @example - * - * var array = [ - * { 'dir': 'left', 'code': 97 }, - * { 'dir': 'right', 'code': 100 } - * ]; - * - * _.keyBy(array, function(o) { - * return String.fromCharCode(o.code); - * }); - * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } } - * - * _.keyBy(array, 'dir'); - * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } } - */ - var keyBy = createAggregator(function(result, value, key) { - baseAssignValue(result, key, value); - }); - - /** - * Creates an array of values by running each element in `collection` thru - * `iteratee`. The iteratee is invoked with three arguments: - * (value, index|key, collection). - * - * Many lodash methods are guarded to work as iteratees for methods like - * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. - * - * The guarded methods are: - * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`, - * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`, - * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`, - * `template`, `trim`, `trimEnd`, `trimStart`, and `words` - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - * @example - * - * function square(n) { - * return n * n; - * } - * - * _.map([4, 8], square); - * // => [16, 64] - * - * _.map({ 'a': 4, 'b': 8 }, square); - * // => [16, 64] (iteration order is not guaranteed) - * - * var users = [ - * { 'user': 'barney' }, - * { 'user': 'fred' } - * ]; - * - * // The `_.property` iteratee shorthand. - * _.map(users, 'user'); - * // => ['barney', 'fred'] - */ - function map(collection, iteratee) { - var func = isArray(collection) ? arrayMap : baseMap; - return func(collection, getIteratee(iteratee, 3)); - } - - /** - * This method is like `_.sortBy` except that it allows specifying the sort - * orders of the iteratees to sort by. If `orders` is unspecified, all values - * are sorted in ascending order. Otherwise, specify an order of "desc" for - * descending or "asc" for ascending sort order of corresponding values. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]] - * The iteratees to sort by. - * @param {string[]} [orders] The sort orders of `iteratees`. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`. - * @returns {Array} Returns the new sorted array. - * @example - * - * var users = [ - * { 'user': 'fred', 'age': 48 }, - * { 'user': 'barney', 'age': 34 }, - * { 'user': 'fred', 'age': 40 }, - * { 'user': 'barney', 'age': 36 } - * ]; - * - * // Sort by `user` in ascending order and by `age` in descending order. - * _.orderBy(users, ['user', 'age'], ['asc', 'desc']); - * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]] - */ - function orderBy(collection, iteratees, orders, guard) { - if (collection == null) { - return []; - } - if (!isArray(iteratees)) { - iteratees = iteratees == null ? [] : [iteratees]; - } - orders = guard ? undefined : orders; - if (!isArray(orders)) { - orders = orders == null ? [] : [orders]; - } - return baseOrderBy(collection, iteratees, orders); - } - - /** - * Creates an array of elements split into two groups, the first of which - * contains elements `predicate` returns truthy for, the second of which - * contains elements `predicate` returns falsey for. The predicate is - * invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the array of grouped elements. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': true }, - * { 'user': 'pebbles', 'age': 1, 'active': false } - * ]; - * - * _.partition(users, function(o) { return o.active; }); - * // => objects for [['fred'], ['barney', 'pebbles']] - * - * // The `_.matches` iteratee shorthand. - * _.partition(users, { 'age': 1, 'active': false }); - * // => objects for [['pebbles'], ['barney', 'fred']] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.partition(users, ['active', false]); - * // => objects for [['barney', 'pebbles'], ['fred']] - * - * // The `_.property` iteratee shorthand. - * _.partition(users, 'active'); - * // => objects for [['fred'], ['barney', 'pebbles']] - */ - var partition = createAggregator(function(result, value, key) { - result[key ? 0 : 1].push(value); - }, function() { return [[], []]; }); - - /** - * Reduces `collection` to a value which is the accumulated result of running - * each element in `collection` thru `iteratee`, where each successive - * invocation is supplied the return value of the previous. If `accumulator` - * is not given, the first element of `collection` is used as the initial - * value. The iteratee is invoked with four arguments: - * (accumulator, value, index|key, collection). - * - * Many lodash methods are guarded to work as iteratees for methods like - * `_.reduce`, `_.reduceRight`, and `_.transform`. - * - * The guarded methods are: - * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`, - * and `sortBy` - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @returns {*} Returns the accumulated value. - * @see _.reduceRight - * @example - * - * _.reduce([1, 2], function(sum, n) { - * return sum + n; - * }, 0); - * // => 3 - * - * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { - * (result[value] || (result[value] = [])).push(key); - * return result; - * }, {}); - * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) - */ - function reduce(collection, iteratee, accumulator) { - var func = isArray(collection) ? arrayReduce : baseReduce, - initAccum = arguments.length < 3; - - return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach); - } - - /** - * This method is like `_.reduce` except that it iterates over elements of - * `collection` from right to left. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [accumulator] The initial value. - * @returns {*} Returns the accumulated value. - * @see _.reduce - * @example - * - * var array = [[0, 1], [2, 3], [4, 5]]; - * - * _.reduceRight(array, function(flattened, other) { - * return flattened.concat(other); - * }, []); - * // => [4, 5, 2, 3, 0, 1] - */ - function reduceRight(collection, iteratee, accumulator) { - var func = isArray(collection) ? arrayReduceRight : baseReduce, - initAccum = arguments.length < 3; - - return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight); - } - - /** - * The opposite of `_.filter`; this method returns the elements of `collection` - * that `predicate` does **not** return truthy for. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - * @see _.filter - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': true } - * ]; - * - * _.reject(users, function(o) { return !o.active; }); - * // => objects for ['fred'] - * - * // The `_.matches` iteratee shorthand. - * _.reject(users, { 'age': 40, 'active': true }); - * // => objects for ['barney'] - * - * // The `_.matchesProperty` iteratee shorthand. - * _.reject(users, ['active', false]); - * // => objects for ['fred'] - * - * // The `_.property` iteratee shorthand. - * _.reject(users, 'active'); - * // => objects for ['barney'] - */ - function reject(collection, predicate) { - var func = isArray(collection) ? arrayFilter : baseFilter; - return func(collection, negate(getIteratee(predicate, 3))); - } - - /** - * Gets a random element from `collection`. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Collection - * @param {Array|Object} collection The collection to sample. - * @returns {*} Returns the random element. - * @example - * - * _.sample([1, 2, 3, 4]); - * // => 2 - */ - function sample(collection) { - var func = isArray(collection) ? arraySample : baseSample; - return func(collection); - } - - /** - * Gets `n` random elements at unique keys from `collection` up to the - * size of `collection`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Collection - * @param {Array|Object} collection The collection to sample. - * @param {number} [n=1] The number of elements to sample. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Array} Returns the random elements. - * @example - * - * _.sampleSize([1, 2, 3], 2); - * // => [3, 1] - * - * _.sampleSize([1, 2, 3], 4); - * // => [2, 3, 1] - */ - function sampleSize(collection, n, guard) { - if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) { - n = 1; - } else { - n = toInteger(n); - } - var func = isArray(collection) ? arraySampleSize : baseSampleSize; - return func(collection, n); - } - - /** - * Creates an array of shuffled values, using a version of the - * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to shuffle. - * @returns {Array} Returns the new shuffled array. - * @example - * - * _.shuffle([1, 2, 3, 4]); - * // => [4, 1, 3, 2] - */ - function shuffle(collection) { - var func = isArray(collection) ? arrayShuffle : baseShuffle; - return func(collection); - } - - /** - * Gets the size of `collection` by returning its length for array-like - * values or the number of own enumerable string keyed properties for objects. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object|string} collection The collection to inspect. - * @returns {number} Returns the collection size. - * @example - * - * _.size([1, 2, 3]); - * // => 3 - * - * _.size({ 'a': 1, 'b': 2 }); - * // => 2 - * - * _.size('pebbles'); - * // => 7 - */ - function size(collection) { - if (collection == null) { - return 0; - } - if (isArrayLike(collection)) { - return isString(collection) ? stringSize(collection) : collection.length; - } - var tag = getTag(collection); - if (tag == mapTag || tag == setTag) { - return collection.size; - } - return baseKeys(collection).length; - } - - /** - * Checks if `predicate` returns truthy for **any** element of `collection`. - * Iteration is stopped once `predicate` returns truthy. The predicate is - * invoked with three arguments: (value, index|key, collection). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - * @example - * - * _.some([null, 0, 'yes', false], Boolean); - * // => true - * - * var users = [ - * { 'user': 'barney', 'active': true }, - * { 'user': 'fred', 'active': false } - * ]; - * - * // The `_.matches` iteratee shorthand. - * _.some(users, { 'user': 'barney', 'active': false }); - * // => false - * - * // The `_.matchesProperty` iteratee shorthand. - * _.some(users, ['active', false]); - * // => true - * - * // The `_.property` iteratee shorthand. - * _.some(users, 'active'); - * // => true - */ - function some(collection, predicate, guard) { - var func = isArray(collection) ? arraySome : baseSome; - if (guard && isIterateeCall(collection, predicate, guard)) { - predicate = undefined; - } - return func(collection, getIteratee(predicate, 3)); - } - - /** - * Creates an array of elements, sorted in ascending order by the results of - * running each element in a collection thru each iteratee. This method - * performs a stable sort, that is, it preserves the original sort order of - * equal elements. The iteratees are invoked with one argument: (value). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {...(Function|Function[])} [iteratees=[_.identity]] - * The iteratees to sort by. - * @returns {Array} Returns the new sorted array. - * @example - * - * var users = [ - * { 'user': 'fred', 'age': 48 }, - * { 'user': 'barney', 'age': 36 }, - * { 'user': 'fred', 'age': 30 }, - * { 'user': 'barney', 'age': 34 } - * ]; - * - * _.sortBy(users, [function(o) { return o.user; }]); - * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]] - * - * _.sortBy(users, ['user', 'age']); - * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]] - */ - var sortBy = baseRest(function(collection, iteratees) { - if (collection == null) { - return []; - } - var length = iteratees.length; - if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) { - iteratees = []; - } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) { - iteratees = [iteratees[0]]; - } - return baseOrderBy(collection, baseFlatten(iteratees, 1), []); - }); - - /*------------------------------------------------------------------------*/ - - /** - * Gets the timestamp of the number of milliseconds that have elapsed since - * the Unix epoch (1 January 1970 00:00:00 UTC). - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Date - * @returns {number} Returns the timestamp. - * @example - * - * _.defer(function(stamp) { - * console.log(_.now() - stamp); - * }, _.now()); - * // => Logs the number of milliseconds it took for the deferred invocation. - */ - var now = ctxNow || function() { - return root.Date.now(); - }; - - /*------------------------------------------------------------------------*/ - - /** - * The opposite of `_.before`; this method creates a function that invokes - * `func` once it's called `n` or more times. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {number} n The number of calls before `func` is invoked. - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new restricted function. - * @example - * - * var saves = ['profile', 'settings']; - * - * var done = _.after(saves.length, function() { - * console.log('done saving!'); - * }); - * - * _.forEach(saves, function(type) { - * asyncSave({ 'type': type, 'complete': done }); - * }); - * // => Logs 'done saving!' after the two async saves have completed. - */ - function after(n, func) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - n = toInteger(n); - return function() { - if (--n < 1) { - return func.apply(this, arguments); - } - }; - } - - /** - * Creates a function that invokes `func`, with up to `n` arguments, - * ignoring any additional arguments. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {Function} func The function to cap arguments for. - * @param {number} [n=func.length] The arity cap. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Function} Returns the new capped function. - * @example - * - * _.map(['6', '8', '10'], _.ary(parseInt, 1)); - * // => [6, 8, 10] - */ - function ary(func, n, guard) { - n = guard ? undefined : n; - n = (func && n == null) ? func.length : n; - return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n); - } - - /** - * Creates a function that invokes `func`, with the `this` binding and arguments - * of the created function, while it's called less than `n` times. Subsequent - * calls to the created function return the result of the last `func` invocation. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {number} n The number of calls at which `func` is no longer invoked. - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new restricted function. - * @example - * - * jQuery(element).on('click', _.before(5, addContactToList)); - * // => Allows adding up to 4 contacts to the list. - */ - function before(n, func) { - var result; - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - n = toInteger(n); - return function() { - if (--n > 0) { - result = func.apply(this, arguments); - } - if (n <= 1) { - func = undefined; - } - return result; - }; - } - - /** - * Creates a function that invokes `func` with the `this` binding of `thisArg` - * and `partials` prepended to the arguments it receives. - * - * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds, - * may be used as a placeholder for partially applied arguments. - * - * **Note:** Unlike native `Function#bind`, this method doesn't set the "length" - * property of bound functions. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to bind. - * @param {*} thisArg The `this` binding of `func`. - * @param {...*} [partials] The arguments to be partially applied. - * @returns {Function} Returns the new bound function. - * @example - * - * function greet(greeting, punctuation) { - * return greeting + ' ' + this.user + punctuation; - * } - * - * var object = { 'user': 'fred' }; - * - * var bound = _.bind(greet, object, 'hi'); - * bound('!'); - * // => 'hi fred!' - * - * // Bound with placeholders. - * var bound = _.bind(greet, object, _, '!'); - * bound('hi'); - * // => 'hi fred!' - */ - var bind = baseRest(function(func, thisArg, partials) { - var bitmask = WRAP_BIND_FLAG; - if (partials.length) { - var holders = replaceHolders(partials, getHolder(bind)); - bitmask |= WRAP_PARTIAL_FLAG; - } - return createWrap(func, bitmask, thisArg, partials, holders); - }); - - /** - * Creates a function that invokes the method at `object[key]` with `partials` - * prepended to the arguments it receives. - * - * This method differs from `_.bind` by allowing bound functions to reference - * methods that may be redefined or don't yet exist. See - * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern) - * for more details. - * - * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for partially applied arguments. - * - * @static - * @memberOf _ - * @since 0.10.0 - * @category Function - * @param {Object} object The object to invoke the method on. - * @param {string} key The key of the method. - * @param {...*} [partials] The arguments to be partially applied. - * @returns {Function} Returns the new bound function. - * @example - * - * var object = { - * 'user': 'fred', - * 'greet': function(greeting, punctuation) { - * return greeting + ' ' + this.user + punctuation; - * } - * }; - * - * var bound = _.bindKey(object, 'greet', 'hi'); - * bound('!'); - * // => 'hi fred!' - * - * object.greet = function(greeting, punctuation) { - * return greeting + 'ya ' + this.user + punctuation; - * }; - * - * bound('!'); - * // => 'hiya fred!' - * - * // Bound with placeholders. - * var bound = _.bindKey(object, 'greet', _, '!'); - * bound('hi'); - * // => 'hiya fred!' - */ - var bindKey = baseRest(function(object, key, partials) { - var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG; - if (partials.length) { - var holders = replaceHolders(partials, getHolder(bindKey)); - bitmask |= WRAP_PARTIAL_FLAG; - } - return createWrap(key, bitmask, object, partials, holders); - }); - - /** - * Creates a function that accepts arguments of `func` and either invokes - * `func` returning its result, if at least `arity` number of arguments have - * been provided, or returns a function that accepts the remaining `func` - * arguments, and so on. The arity of `func` may be specified if `func.length` - * is not sufficient. - * - * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds, - * may be used as a placeholder for provided arguments. - * - * **Note:** This method doesn't set the "length" property of curried functions. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Function - * @param {Function} func The function to curry. - * @param {number} [arity=func.length] The arity of `func`. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Function} Returns the new curried function. - * @example - * - * var abc = function(a, b, c) { - * return [a, b, c]; - * }; - * - * var curried = _.curry(abc); - * - * curried(1)(2)(3); - * // => [1, 2, 3] - * - * curried(1, 2)(3); - * // => [1, 2, 3] - * - * curried(1, 2, 3); - * // => [1, 2, 3] - * - * // Curried with placeholders. - * curried(1)(_, 3)(2); - * // => [1, 2, 3] - */ - function curry(func, arity, guard) { - arity = guard ? undefined : arity; - var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity); - result.placeholder = curry.placeholder; - return result; - } - - /** - * This method is like `_.curry` except that arguments are applied to `func` - * in the manner of `_.partialRight` instead of `_.partial`. - * - * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for provided arguments. - * - * **Note:** This method doesn't set the "length" property of curried functions. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {Function} func The function to curry. - * @param {number} [arity=func.length] The arity of `func`. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Function} Returns the new curried function. - * @example - * - * var abc = function(a, b, c) { - * return [a, b, c]; - * }; - * - * var curried = _.curryRight(abc); - * - * curried(3)(2)(1); - * // => [1, 2, 3] - * - * curried(2, 3)(1); - * // => [1, 2, 3] - * - * curried(1, 2, 3); - * // => [1, 2, 3] - * - * // Curried with placeholders. - * curried(3)(1, _)(2); - * // => [1, 2, 3] - */ - function curryRight(func, arity, guard) { - arity = guard ? undefined : arity; - var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity); - result.placeholder = curryRight.placeholder; - return result; - } - - /** - * Creates a debounced function that delays invoking `func` until after `wait` - * milliseconds have elapsed since the last time the debounced function was - * invoked. The debounced function comes with a `cancel` method to cancel - * delayed `func` invocations and a `flush` method to immediately invoke them. - * Provide `options` to indicate whether `func` should be invoked on the - * leading and/or trailing edge of the `wait` timeout. The `func` is invoked - * with the last arguments provided to the debounced function. Subsequent - * calls to the debounced function return the result of the last `func` - * invocation. - * - * **Note:** If `leading` and `trailing` options are `true`, `func` is - * invoked on the trailing edge of the timeout only if the debounced function - * is invoked more than once during the `wait` timeout. - * - * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred - * until to the next tick, similar to `setTimeout` with a timeout of `0`. - * - * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) - * for details over the differences between `_.debounce` and `_.throttle`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to debounce. - * @param {number} [wait=0] The number of milliseconds to delay. - * @param {Object} [options={}] The options object. - * @param {boolean} [options.leading=false] - * Specify invoking on the leading edge of the timeout. - * @param {number} [options.maxWait] - * The maximum time `func` is allowed to be delayed before it's invoked. - * @param {boolean} [options.trailing=true] - * Specify invoking on the trailing edge of the timeout. - * @returns {Function} Returns the new debounced function. - * @example - * - * // Avoid costly calculations while the window size is in flux. - * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); - * - * // Invoke `sendMail` when clicked, debouncing subsequent calls. - * jQuery(element).on('click', _.debounce(sendMail, 300, { - * 'leading': true, - * 'trailing': false - * })); - * - * // Ensure `batchLog` is invoked once after 1 second of debounced calls. - * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); - * var source = new EventSource('/stream'); - * jQuery(source).on('message', debounced); - * - * // Cancel the trailing debounced invocation. - * jQuery(window).on('popstate', debounced.cancel); - */ - function debounce(func, wait, options) { - var lastArgs, - lastThis, - maxWait, - result, - timerId, - lastCallTime, - lastInvokeTime = 0, - leading = false, - maxing = false, - trailing = true; - - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - wait = toNumber(wait) || 0; - if (isObject(options)) { - leading = !!options.leading; - maxing = 'maxWait' in options; - maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; - trailing = 'trailing' in options ? !!options.trailing : trailing; - } - - function invokeFunc(time) { - var args = lastArgs, - thisArg = lastThis; - - lastArgs = lastThis = undefined; - lastInvokeTime = time; - result = func.apply(thisArg, args); - return result; - } - - function leadingEdge(time) { - // Reset any `maxWait` timer. - lastInvokeTime = time; - // Start the timer for the trailing edge. - timerId = setTimeout(timerExpired, wait); - // Invoke the leading edge. - return leading ? invokeFunc(time) : result; - } - - function remainingWait(time) { - var timeSinceLastCall = time - lastCallTime, - timeSinceLastInvoke = time - lastInvokeTime, - timeWaiting = wait - timeSinceLastCall; - - return maxing - ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) - : timeWaiting; - } - - function shouldInvoke(time) { - var timeSinceLastCall = time - lastCallTime, - timeSinceLastInvoke = time - lastInvokeTime; - - // Either this is the first call, activity has stopped and we're at the - // trailing edge, the system time has gone backwards and we're treating - // it as the trailing edge, or we've hit the `maxWait` limit. - return (lastCallTime === undefined || (timeSinceLastCall >= wait) || - (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); - } - - function timerExpired() { - var time = now(); - if (shouldInvoke(time)) { - return trailingEdge(time); - } - // Restart the timer. - timerId = setTimeout(timerExpired, remainingWait(time)); - } - - function trailingEdge(time) { - timerId = undefined; - - // Only invoke if we have `lastArgs` which means `func` has been - // debounced at least once. - if (trailing && lastArgs) { - return invokeFunc(time); - } - lastArgs = lastThis = undefined; - return result; - } - - function cancel() { - if (timerId !== undefined) { - clearTimeout(timerId); - } - lastInvokeTime = 0; - lastArgs = lastCallTime = lastThis = timerId = undefined; - } - - function flush() { - return timerId === undefined ? result : trailingEdge(now()); - } - - function debounced() { - var time = now(), - isInvoking = shouldInvoke(time); - - lastArgs = arguments; - lastThis = this; - lastCallTime = time; - - if (isInvoking) { - if (timerId === undefined) { - return leadingEdge(lastCallTime); - } - if (maxing) { - // Handle invocations in a tight loop. - clearTimeout(timerId); - timerId = setTimeout(timerExpired, wait); - return invokeFunc(lastCallTime); - } - } - if (timerId === undefined) { - timerId = setTimeout(timerExpired, wait); - } - return result; - } - debounced.cancel = cancel; - debounced.flush = flush; - return debounced; - } - - /** - * Defers invoking the `func` until the current call stack has cleared. Any - * additional arguments are provided to `func` when it's invoked. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to defer. - * @param {...*} [args] The arguments to invoke `func` with. - * @returns {number} Returns the timer id. - * @example - * - * _.defer(function(text) { - * console.log(text); - * }, 'deferred'); - * // => Logs 'deferred' after one millisecond. - */ - var defer = baseRest(function(func, args) { - return baseDelay(func, 1, args); - }); - - /** - * Invokes `func` after `wait` milliseconds. Any additional arguments are - * provided to `func` when it's invoked. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to delay. - * @param {number} wait The number of milliseconds to delay invocation. - * @param {...*} [args] The arguments to invoke `func` with. - * @returns {number} Returns the timer id. - * @example - * - * _.delay(function(text) { - * console.log(text); - * }, 1000, 'later'); - * // => Logs 'later' after one second. - */ - var delay = baseRest(function(func, wait, args) { - return baseDelay(func, toNumber(wait) || 0, args); - }); - - /** - * Creates a function that invokes `func` with arguments reversed. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Function - * @param {Function} func The function to flip arguments for. - * @returns {Function} Returns the new flipped function. - * @example - * - * var flipped = _.flip(function() { - * return _.toArray(arguments); - * }); - * - * flipped('a', 'b', 'c', 'd'); - * // => ['d', 'c', 'b', 'a'] - */ - function flip(func) { - return createWrap(func, WRAP_FLIP_FLAG); - } - - /** - * Creates a function that memoizes the result of `func`. If `resolver` is - * provided, it determines the cache key for storing the result based on the - * arguments provided to the memoized function. By default, the first argument - * provided to the memoized function is used as the map cache key. The `func` - * is invoked with the `this` binding of the memoized function. - * - * **Note:** The cache is exposed as the `cache` property on the memoized - * function. Its creation may be customized by replacing the `_.memoize.Cache` - * constructor with one whose instances implement the - * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) - * method interface of `clear`, `delete`, `get`, `has`, and `set`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to have its output memoized. - * @param {Function} [resolver] The function to resolve the cache key. - * @returns {Function} Returns the new memoized function. - * @example - * - * var object = { 'a': 1, 'b': 2 }; - * var other = { 'c': 3, 'd': 4 }; - * - * var values = _.memoize(_.values); - * values(object); - * // => [1, 2] - * - * values(other); - * // => [3, 4] - * - * object.a = 2; - * values(object); - * // => [1, 2] - * - * // Modify the result cache. - * values.cache.set(object, ['a', 'b']); - * values(object); - * // => ['a', 'b'] - * - * // Replace `_.memoize.Cache`. - * _.memoize.Cache = WeakMap; - */ - function memoize(func, resolver) { - if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { - throw new TypeError(FUNC_ERROR_TEXT); - } - var memoized = function() { - var args = arguments, - key = resolver ? resolver.apply(this, args) : args[0], - cache = memoized.cache; - - if (cache.has(key)) { - return cache.get(key); - } - var result = func.apply(this, args); - memoized.cache = cache.set(key, result) || cache; - return result; - }; - memoized.cache = new (memoize.Cache || MapCache); - return memoized; - } - - // Expose `MapCache`. - memoize.Cache = MapCache; - - /** - * Creates a function that negates the result of the predicate `func`. The - * `func` predicate is invoked with the `this` binding and arguments of the - * created function. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {Function} predicate The predicate to negate. - * @returns {Function} Returns the new negated function. - * @example - * - * function isEven(n) { - * return n % 2 == 0; - * } - * - * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); - * // => [1, 3, 5] - */ - function negate(predicate) { - if (typeof predicate != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - return function() { - var args = arguments; - switch (args.length) { - case 0: return !predicate.call(this); - case 1: return !predicate.call(this, args[0]); - case 2: return !predicate.call(this, args[0], args[1]); - case 3: return !predicate.call(this, args[0], args[1], args[2]); - } - return !predicate.apply(this, args); - }; - } - - /** - * Creates a function that is restricted to invoking `func` once. Repeat calls - * to the function return the value of the first invocation. The `func` is - * invoked with the `this` binding and arguments of the created function. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new restricted function. - * @example - * - * var initialize = _.once(createApplication); - * initialize(); - * initialize(); - * // => `createApplication` is invoked once - */ - function once(func) { - return before(2, func); - } - - /** - * Creates a function that invokes `func` with its arguments transformed. - * - * @static - * @since 4.0.0 - * @memberOf _ - * @category Function - * @param {Function} func The function to wrap. - * @param {...(Function|Function[])} [transforms=[_.identity]] - * The argument transforms. - * @returns {Function} Returns the new function. - * @example - * - * function doubled(n) { - * return n * 2; - * } - * - * function square(n) { - * return n * n; - * } - * - * var func = _.overArgs(function(x, y) { - * return [x, y]; - * }, [square, doubled]); - * - * func(9, 3); - * // => [81, 6] - * - * func(10, 5); - * // => [100, 10] - */ - var overArgs = castRest(function(func, transforms) { - transforms = (transforms.length == 1 && isArray(transforms[0])) - ? arrayMap(transforms[0], baseUnary(getIteratee())) - : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee())); - - var funcsLength = transforms.length; - return baseRest(function(args) { - var index = -1, - length = nativeMin(args.length, funcsLength); - - while (++index < length) { - args[index] = transforms[index].call(this, args[index]); - } - return apply(func, this, args); - }); - }); - - /** - * Creates a function that invokes `func` with `partials` prepended to the - * arguments it receives. This method is like `_.bind` except it does **not** - * alter the `this` binding. - * - * The `_.partial.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for partially applied arguments. - * - * **Note:** This method doesn't set the "length" property of partially - * applied functions. - * - * @static - * @memberOf _ - * @since 0.2.0 - * @category Function - * @param {Function} func The function to partially apply arguments to. - * @param {...*} [partials] The arguments to be partially applied. - * @returns {Function} Returns the new partially applied function. - * @example - * - * function greet(greeting, name) { - * return greeting + ' ' + name; - * } - * - * var sayHelloTo = _.partial(greet, 'hello'); - * sayHelloTo('fred'); - * // => 'hello fred' - * - * // Partially applied with placeholders. - * var greetFred = _.partial(greet, _, 'fred'); - * greetFred('hi'); - * // => 'hi fred' - */ - var partial = baseRest(function(func, partials) { - var holders = replaceHolders(partials, getHolder(partial)); - return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders); - }); - - /** - * This method is like `_.partial` except that partially applied arguments - * are appended to the arguments it receives. - * - * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic - * builds, may be used as a placeholder for partially applied arguments. - * - * **Note:** This method doesn't set the "length" property of partially - * applied functions. - * - * @static - * @memberOf _ - * @since 1.0.0 - * @category Function - * @param {Function} func The function to partially apply arguments to. - * @param {...*} [partials] The arguments to be partially applied. - * @returns {Function} Returns the new partially applied function. - * @example - * - * function greet(greeting, name) { - * return greeting + ' ' + name; - * } - * - * var greetFred = _.partialRight(greet, 'fred'); - * greetFred('hi'); - * // => 'hi fred' - * - * // Partially applied with placeholders. - * var sayHelloTo = _.partialRight(greet, 'hello', _); - * sayHelloTo('fred'); - * // => 'hello fred' - */ - var partialRight = baseRest(function(func, partials) { - var holders = replaceHolders(partials, getHolder(partialRight)); - return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders); - }); - - /** - * Creates a function that invokes `func` with arguments arranged according - * to the specified `indexes` where the argument value at the first index is - * provided as the first argument, the argument value at the second index is - * provided as the second argument, and so on. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Function - * @param {Function} func The function to rearrange arguments for. - * @param {...(number|number[])} indexes The arranged argument indexes. - * @returns {Function} Returns the new function. - * @example - * - * var rearged = _.rearg(function(a, b, c) { - * return [a, b, c]; - * }, [2, 0, 1]); - * - * rearged('b', 'c', 'a') - * // => ['a', 'b', 'c'] - */ - var rearg = flatRest(function(func, indexes) { - return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes); - }); - - /** - * Creates a function that invokes `func` with the `this` binding of the - * created function and arguments from `start` and beyond provided as - * an array. - * - * **Note:** This method is based on the - * [rest parameter](https://mdn.io/rest_parameters). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Function - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @returns {Function} Returns the new function. - * @example - * - * var say = _.rest(function(what, names) { - * return what + ' ' + _.initial(names).join(', ') + - * (_.size(names) > 1 ? ', & ' : '') + _.last(names); - * }); - * - * say('hello', 'fred', 'barney', 'pebbles'); - * // => 'hello fred, barney, & pebbles' - */ - function rest(func, start) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - start = start === undefined ? start : toInteger(start); - return baseRest(func, start); - } - - /** - * Creates a function that invokes `func` with the `this` binding of the - * create function and an array of arguments much like - * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply). - * - * **Note:** This method is based on the - * [spread operator](https://mdn.io/spread_operator). - * - * @static - * @memberOf _ - * @since 3.2.0 - * @category Function - * @param {Function} func The function to spread arguments over. - * @param {number} [start=0] The start position of the spread. - * @returns {Function} Returns the new function. - * @example - * - * var say = _.spread(function(who, what) { - * return who + ' says ' + what; - * }); - * - * say(['fred', 'hello']); - * // => 'fred says hello' - * - * var numbers = Promise.all([ - * Promise.resolve(40), - * Promise.resolve(36) - * ]); - * - * numbers.then(_.spread(function(x, y) { - * return x + y; - * })); - * // => a Promise of 76 - */ - function spread(func, start) { - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - start = start == null ? 0 : nativeMax(toInteger(start), 0); - return baseRest(function(args) { - var array = args[start], - otherArgs = castSlice(args, 0, start); - - if (array) { - arrayPush(otherArgs, array); - } - return apply(func, this, otherArgs); - }); - } - - /** - * Creates a throttled function that only invokes `func` at most once per - * every `wait` milliseconds. The throttled function comes with a `cancel` - * method to cancel delayed `func` invocations and a `flush` method to - * immediately invoke them. Provide `options` to indicate whether `func` - * should be invoked on the leading and/or trailing edge of the `wait` - * timeout. The `func` is invoked with the last arguments provided to the - * throttled function. Subsequent calls to the throttled function return the - * result of the last `func` invocation. - * - * **Note:** If `leading` and `trailing` options are `true`, `func` is - * invoked on the trailing edge of the timeout only if the throttled function - * is invoked more than once during the `wait` timeout. - * - * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred - * until to the next tick, similar to `setTimeout` with a timeout of `0`. - * - * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) - * for details over the differences between `_.throttle` and `_.debounce`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to throttle. - * @param {number} [wait=0] The number of milliseconds to throttle invocations to. - * @param {Object} [options={}] The options object. - * @param {boolean} [options.leading=true] - * Specify invoking on the leading edge of the timeout. - * @param {boolean} [options.trailing=true] - * Specify invoking on the trailing edge of the timeout. - * @returns {Function} Returns the new throttled function. - * @example - * - * // Avoid excessively updating the position while scrolling. - * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); - * - * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. - * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); - * jQuery(element).on('click', throttled); - * - * // Cancel the trailing throttled invocation. - * jQuery(window).on('popstate', throttled.cancel); - */ - function throttle(func, wait, options) { - var leading = true, - trailing = true; - - if (typeof func != 'function') { - throw new TypeError(FUNC_ERROR_TEXT); - } - if (isObject(options)) { - leading = 'leading' in options ? !!options.leading : leading; - trailing = 'trailing' in options ? !!options.trailing : trailing; - } - return debounce(func, wait, { - 'leading': leading, - 'maxWait': wait, - 'trailing': trailing - }); - } - - /** - * Creates a function that accepts up to one argument, ignoring any - * additional arguments. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Function - * @param {Function} func The function to cap arguments for. - * @returns {Function} Returns the new capped function. - * @example - * - * _.map(['6', '8', '10'], _.unary(parseInt)); - * // => [6, 8, 10] - */ - function unary(func) { - return ary(func, 1); - } - - /** - * Creates a function that provides `value` to `wrapper` as its first - * argument. Any additional arguments provided to the function are appended - * to those provided to the `wrapper`. The wrapper is invoked with the `this` - * binding of the created function. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {*} value The value to wrap. - * @param {Function} [wrapper=identity] The wrapper function. - * @returns {Function} Returns the new function. - * @example - * - * var p = _.wrap(_.escape, function(func, text) { - * return '

    ' + func(text) + '

    '; - * }); - * - * p('fred, barney, & pebbles'); - * // => '

    fred, barney, & pebbles

    ' - */ - function wrap(value, wrapper) { - return partial(castFunction(wrapper), value); - } - - /*------------------------------------------------------------------------*/ - - /** - * Casts `value` as an array if it's not one. - * - * @static - * @memberOf _ - * @since 4.4.0 - * @category Lang - * @param {*} value The value to inspect. - * @returns {Array} Returns the cast array. - * @example - * - * _.castArray(1); - * // => [1] - * - * _.castArray({ 'a': 1 }); - * // => [{ 'a': 1 }] - * - * _.castArray('abc'); - * // => ['abc'] - * - * _.castArray(null); - * // => [null] - * - * _.castArray(undefined); - * // => [undefined] - * - * _.castArray(); - * // => [] - * - * var array = [1, 2, 3]; - * console.log(_.castArray(array) === array); - * // => true - */ - function castArray() { - if (!arguments.length) { - return []; - } - var value = arguments[0]; - return isArray(value) ? value : [value]; - } - - /** - * Creates a shallow clone of `value`. - * - * **Note:** This method is loosely based on the - * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm) - * and supports cloning arrays, array buffers, booleans, date objects, maps, - * numbers, `Object` objects, regexes, sets, strings, symbols, and typed - * arrays. The own enumerable properties of `arguments` objects are cloned - * as plain objects. An empty object is returned for uncloneable values such - * as error objects, functions, DOM nodes, and WeakMaps. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to clone. - * @returns {*} Returns the cloned value. - * @see _.cloneDeep - * @example - * - * var objects = [{ 'a': 1 }, { 'b': 2 }]; - * - * var shallow = _.clone(objects); - * console.log(shallow[0] === objects[0]); - * // => true - */ - function clone(value) { - return baseClone(value, CLONE_SYMBOLS_FLAG); - } - - /** - * This method is like `_.clone` except that it accepts `customizer` which - * is invoked to produce the cloned value. If `customizer` returns `undefined`, - * cloning is handled by the method instead. The `customizer` is invoked with - * up to four arguments; (value [, index|key, object, stack]). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to clone. - * @param {Function} [customizer] The function to customize cloning. - * @returns {*} Returns the cloned value. - * @see _.cloneDeepWith - * @example - * - * function customizer(value) { - * if (_.isElement(value)) { - * return value.cloneNode(false); - * } - * } - * - * var el = _.cloneWith(document.body, customizer); - * - * console.log(el === document.body); - * // => false - * console.log(el.nodeName); - * // => 'BODY' - * console.log(el.childNodes.length); - * // => 0 - */ - function cloneWith(value, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined; - return baseClone(value, CLONE_SYMBOLS_FLAG, customizer); - } - - /** - * This method is like `_.clone` except that it recursively clones `value`. - * - * @static - * @memberOf _ - * @since 1.0.0 - * @category Lang - * @param {*} value The value to recursively clone. - * @returns {*} Returns the deep cloned value. - * @see _.clone - * @example - * - * var objects = [{ 'a': 1 }, { 'b': 2 }]; - * - * var deep = _.cloneDeep(objects); - * console.log(deep[0] === objects[0]); - * // => false - */ - function cloneDeep(value) { - return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); - } - - /** - * This method is like `_.cloneWith` except that it recursively clones `value`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to recursively clone. - * @param {Function} [customizer] The function to customize cloning. - * @returns {*} Returns the deep cloned value. - * @see _.cloneWith - * @example - * - * function customizer(value) { - * if (_.isElement(value)) { - * return value.cloneNode(true); - * } - * } - * - * var el = _.cloneDeepWith(document.body, customizer); - * - * console.log(el === document.body); - * // => false - * console.log(el.nodeName); - * // => 'BODY' - * console.log(el.childNodes.length); - * // => 20 - */ - function cloneDeepWith(value, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined; - return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer); - } - - /** - * Checks if `object` conforms to `source` by invoking the predicate - * properties of `source` with the corresponding property values of `object`. - * - * **Note:** This method is equivalent to `_.conforms` when `source` is - * partially applied. - * - * @static - * @memberOf _ - * @since 4.14.0 - * @category Lang - * @param {Object} object The object to inspect. - * @param {Object} source The object of property predicates to conform to. - * @returns {boolean} Returns `true` if `object` conforms, else `false`. - * @example - * - * var object = { 'a': 1, 'b': 2 }; - * - * _.conformsTo(object, { 'b': function(n) { return n > 1; } }); - * // => true - * - * _.conformsTo(object, { 'b': function(n) { return n > 2; } }); - * // => false - */ - function conformsTo(object, source) { - return source == null || baseConformsTo(object, source, keys(source)); - } - - /** - * Performs a - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * comparison between two values to determine if they are equivalent. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * var object = { 'a': 1 }; - * var other = { 'a': 1 }; - * - * _.eq(object, object); - * // => true - * - * _.eq(object, other); - * // => false - * - * _.eq('a', 'a'); - * // => true - * - * _.eq('a', Object('a')); - * // => false - * - * _.eq(NaN, NaN); - * // => true - */ - function eq(value, other) { - return value === other || (value !== value && other !== other); - } - - /** - * Checks if `value` is greater than `other`. - * - * @static - * @memberOf _ - * @since 3.9.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is greater than `other`, - * else `false`. - * @see _.lt - * @example - * - * _.gt(3, 1); - * // => true - * - * _.gt(3, 3); - * // => false - * - * _.gt(1, 3); - * // => false - */ - var gt = createRelationalOperation(baseGt); - - /** - * Checks if `value` is greater than or equal to `other`. - * - * @static - * @memberOf _ - * @since 3.9.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is greater than or equal to - * `other`, else `false`. - * @see _.lte - * @example - * - * _.gte(3, 1); - * // => true - * - * _.gte(3, 3); - * // => true - * - * _.gte(1, 3); - * // => false - */ - var gte = createRelationalOperation(function(value, other) { - return value >= other; - }); - - /** - * Checks if `value` is likely an `arguments` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - * else `false`. - * @example - * - * _.isArguments(function() { return arguments; }()); - * // => true - * - * _.isArguments([1, 2, 3]); - * // => false - */ - var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { - return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && - !propertyIsEnumerable.call(value, 'callee'); - }; - - /** - * Checks if `value` is classified as an `Array` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array, else `false`. - * @example - * - * _.isArray([1, 2, 3]); - * // => true - * - * _.isArray(document.body.children); - * // => false - * - * _.isArray('abc'); - * // => false - * - * _.isArray(_.noop); - * // => false - */ - var isArray = Array.isArray; - - /** - * Checks if `value` is classified as an `ArrayBuffer` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`. - * @example - * - * _.isArrayBuffer(new ArrayBuffer(2)); - * // => true - * - * _.isArrayBuffer(new Array(2)); - * // => false - */ - var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer; - - /** - * Checks if `value` is array-like. A value is considered array-like if it's - * not a function and has a `value.length` that's an integer greater than or - * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - * @example - * - * _.isArrayLike([1, 2, 3]); - * // => true - * - * _.isArrayLike(document.body.children); - * // => true - * - * _.isArrayLike('abc'); - * // => true - * - * _.isArrayLike(_.noop); - * // => false - */ - function isArrayLike(value) { - return value != null && isLength(value.length) && !isFunction(value); - } - - /** - * This method is like `_.isArrayLike` except that it also checks if `value` - * is an object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array-like object, - * else `false`. - * @example - * - * _.isArrayLikeObject([1, 2, 3]); - * // => true - * - * _.isArrayLikeObject(document.body.children); - * // => true - * - * _.isArrayLikeObject('abc'); - * // => false - * - * _.isArrayLikeObject(_.noop); - * // => false - */ - function isArrayLikeObject(value) { - return isObjectLike(value) && isArrayLike(value); - } - - /** - * Checks if `value` is classified as a boolean primitive or object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a boolean, else `false`. - * @example - * - * _.isBoolean(false); - * // => true - * - * _.isBoolean(null); - * // => false - */ - function isBoolean(value) { - return value === true || value === false || - (isObjectLike(value) && baseGetTag(value) == boolTag); - } - - /** - * Checks if `value` is a buffer. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. - * @example - * - * _.isBuffer(new Buffer(2)); - * // => true - * - * _.isBuffer(new Uint8Array(2)); - * // => false - */ - var isBuffer = nativeIsBuffer || stubFalse; - - /** - * Checks if `value` is classified as a `Date` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a date object, else `false`. - * @example - * - * _.isDate(new Date); - * // => true - * - * _.isDate('Mon April 23 2012'); - * // => false - */ - var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate; - - /** - * Checks if `value` is likely a DOM element. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`. - * @example - * - * _.isElement(document.body); - * // => true - * - * _.isElement(''); - * // => false - */ - function isElement(value) { - return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value); - } - - /** - * Checks if `value` is an empty object, collection, map, or set. - * - * Objects are considered empty if they have no own enumerable string keyed - * properties. - * - * Array-like values such as `arguments` objects, arrays, buffers, strings, or - * jQuery-like collections are considered empty if they have a `length` of `0`. - * Similarly, maps and sets are considered empty if they have a `size` of `0`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is empty, else `false`. - * @example - * - * _.isEmpty(null); - * // => true - * - * _.isEmpty(true); - * // => true - * - * _.isEmpty(1); - * // => true - * - * _.isEmpty([1, 2, 3]); - * // => false - * - * _.isEmpty({ 'a': 1 }); - * // => false - */ - function isEmpty(value) { - if (value == null) { - return true; - } - if (isArrayLike(value) && - (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || - isBuffer(value) || isTypedArray(value) || isArguments(value))) { - return !value.length; - } - var tag = getTag(value); - if (tag == mapTag || tag == setTag) { - return !value.size; - } - if (isPrototype(value)) { - return !baseKeys(value).length; - } - for (var key in value) { - if (hasOwnProperty.call(value, key)) { - return false; - } - } - return true; - } - - /** - * Performs a deep comparison between two values to determine if they are - * equivalent. - * - * **Note:** This method supports comparing arrays, array buffers, booleans, - * date objects, error objects, maps, numbers, `Object` objects, regexes, - * sets, strings, symbols, and typed arrays. `Object` objects are compared - * by their own, not inherited, enumerable properties. Functions and DOM - * nodes are compared by strict equality, i.e. `===`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * var object = { 'a': 1 }; - * var other = { 'a': 1 }; - * - * _.isEqual(object, other); - * // => true - * - * object === other; - * // => false - */ - function isEqual(value, other) { - return baseIsEqual(value, other); - } - - /** - * This method is like `_.isEqual` except that it accepts `customizer` which - * is invoked to compare values. If `customizer` returns `undefined`, comparisons - * are handled by the method instead. The `customizer` is invoked with up to - * six arguments: (objValue, othValue [, index|key, object, other, stack]). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @param {Function} [customizer] The function to customize comparisons. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * function isGreeting(value) { - * return /^h(?:i|ello)$/.test(value); - * } - * - * function customizer(objValue, othValue) { - * if (isGreeting(objValue) && isGreeting(othValue)) { - * return true; - * } - * } - * - * var array = ['hello', 'goodbye']; - * var other = ['hi', 'goodbye']; - * - * _.isEqualWith(array, other, customizer); - * // => true - */ - function isEqualWith(value, other, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined; - var result = customizer ? customizer(value, other) : undefined; - return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result; - } - - /** - * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`, - * `SyntaxError`, `TypeError`, or `URIError` object. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an error object, else `false`. - * @example - * - * _.isError(new Error); - * // => true - * - * _.isError(Error); - * // => false - */ - function isError(value) { - if (!isObjectLike(value)) { - return false; - } - var tag = baseGetTag(value); - return tag == errorTag || tag == domExcTag || - (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value)); - } - - /** - * Checks if `value` is a finite primitive number. - * - * **Note:** This method is based on - * [`Number.isFinite`](https://mdn.io/Number/isFinite). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a finite number, else `false`. - * @example - * - * _.isFinite(3); - * // => true - * - * _.isFinite(Number.MIN_VALUE); - * // => true - * - * _.isFinite(Infinity); - * // => false - * - * _.isFinite('3'); - * // => false - */ - function isFinite(value) { - return typeof value == 'number' && nativeIsFinite(value); - } - - /** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a function, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ - function isFunction(value) { - if (!isObject(value)) { - return false; - } - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 9 which returns 'object' for typed arrays and other constructors. - var tag = baseGetTag(value); - return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; - } - - /** - * Checks if `value` is an integer. - * - * **Note:** This method is based on - * [`Number.isInteger`](https://mdn.io/Number/isInteger). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an integer, else `false`. - * @example - * - * _.isInteger(3); - * // => true - * - * _.isInteger(Number.MIN_VALUE); - * // => false - * - * _.isInteger(Infinity); - * // => false - * - * _.isInteger('3'); - * // => false - */ - function isInteger(value) { - return typeof value == 'number' && value == toInteger(value); - } - - /** - * Checks if `value` is a valid array-like length. - * - * **Note:** This method is loosely based on - * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - * @example - * - * _.isLength(3); - * // => true - * - * _.isLength(Number.MIN_VALUE); - * // => false - * - * _.isLength(Infinity); - * // => false - * - * _.isLength('3'); - * // => false - */ - function isLength(value) { - return typeof value == 'number' && - value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; - } - - /** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ - function isObject(value) { - var type = typeof value; - return value != null && (type == 'object' || type == 'function'); - } - - /** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ - function isObjectLike(value) { - return value != null && typeof value == 'object'; - } - - /** - * Checks if `value` is classified as a `Map` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a map, else `false`. - * @example - * - * _.isMap(new Map); - * // => true - * - * _.isMap(new WeakMap); - * // => false - */ - var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; - - /** - * Performs a partial deep comparison between `object` and `source` to - * determine if `object` contains equivalent property values. - * - * **Note:** This method is equivalent to `_.matches` when `source` is - * partially applied. - * - * Partial comparisons will match empty array and empty object `source` - * values against any array or object value, respectively. See `_.isEqual` - * for a list of supported value comparisons. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {Object} object The object to inspect. - * @param {Object} source The object of property values to match. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. - * @example - * - * var object = { 'a': 1, 'b': 2 }; - * - * _.isMatch(object, { 'b': 2 }); - * // => true - * - * _.isMatch(object, { 'b': 1 }); - * // => false - */ - function isMatch(object, source) { - return object === source || baseIsMatch(object, source, getMatchData(source)); - } - - /** - * This method is like `_.isMatch` except that it accepts `customizer` which - * is invoked to compare values. If `customizer` returns `undefined`, comparisons - * are handled by the method instead. The `customizer` is invoked with five - * arguments: (objValue, srcValue, index|key, object, source). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {Object} object The object to inspect. - * @param {Object} source The object of property values to match. - * @param {Function} [customizer] The function to customize comparisons. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. - * @example - * - * function isGreeting(value) { - * return /^h(?:i|ello)$/.test(value); - * } - * - * function customizer(objValue, srcValue) { - * if (isGreeting(objValue) && isGreeting(srcValue)) { - * return true; - * } - * } - * - * var object = { 'greeting': 'hello' }; - * var source = { 'greeting': 'hi' }; - * - * _.isMatchWith(object, source, customizer); - * // => true - */ - function isMatchWith(object, source, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined; - return baseIsMatch(object, source, getMatchData(source), customizer); - } - - /** - * Checks if `value` is `NaN`. - * - * **Note:** This method is based on - * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as - * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for - * `undefined` and other non-number values. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. - * @example - * - * _.isNaN(NaN); - * // => true - * - * _.isNaN(new Number(NaN)); - * // => true - * - * isNaN(undefined); - * // => true - * - * _.isNaN(undefined); - * // => false - */ - function isNaN(value) { - // An `NaN` primitive is the only value that is not equal to itself. - // Perform the `toStringTag` check first to avoid errors with some - // ActiveX objects in IE. - return isNumber(value) && value != +value; - } - - /** - * Checks if `value` is a pristine native function. - * - * **Note:** This method can't reliably detect native functions in the presence - * of the core-js package because core-js circumvents this kind of detection. - * Despite multiple requests, the core-js maintainer has made it clear: any - * attempt to fix the detection will be obstructed. As a result, we're left - * with little choice but to throw an error. Unfortunately, this also affects - * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill), - * which rely on core-js. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, - * else `false`. - * @example - * - * _.isNative(Array.prototype.push); - * // => true - * - * _.isNative(_); - * // => false - */ - function isNative(value) { - if (isMaskable(value)) { - throw new Error(CORE_ERROR_TEXT); - } - return baseIsNative(value); - } - - /** - * Checks if `value` is `null`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `null`, else `false`. - * @example - * - * _.isNull(null); - * // => true - * - * _.isNull(void 0); - * // => false - */ - function isNull(value) { - return value === null; - } - - /** - * Checks if `value` is `null` or `undefined`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is nullish, else `false`. - * @example - * - * _.isNil(null); - * // => true - * - * _.isNil(void 0); - * // => true - * - * _.isNil(NaN); - * // => false - */ - function isNil(value) { - return value == null; - } - - /** - * Checks if `value` is classified as a `Number` primitive or object. - * - * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are - * classified as numbers, use the `_.isFinite` method. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a number, else `false`. - * @example - * - * _.isNumber(3); - * // => true - * - * _.isNumber(Number.MIN_VALUE); - * // => true - * - * _.isNumber(Infinity); - * // => true - * - * _.isNumber('3'); - * // => false - */ - function isNumber(value) { - return typeof value == 'number' || - (isObjectLike(value) && baseGetTag(value) == numberTag); - } - - /** - * Checks if `value` is a plain object, that is, an object created by the - * `Object` constructor or one with a `[[Prototype]]` of `null`. - * - * @static - * @memberOf _ - * @since 0.8.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. - * @example - * - * function Foo() { - * this.a = 1; - * } - * - * _.isPlainObject(new Foo); - * // => false - * - * _.isPlainObject([1, 2, 3]); - * // => false - * - * _.isPlainObject({ 'x': 0, 'y': 0 }); - * // => true - * - * _.isPlainObject(Object.create(null)); - * // => true - */ - function isPlainObject(value) { - if (!isObjectLike(value) || baseGetTag(value) != objectTag) { - return false; - } - var proto = getPrototype(value); - if (proto === null) { - return true; - } - var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; - return typeof Ctor == 'function' && Ctor instanceof Ctor && - funcToString.call(Ctor) == objectCtorString; - } - - /** - * Checks if `value` is classified as a `RegExp` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a regexp, else `false`. - * @example - * - * _.isRegExp(/abc/); - * // => true - * - * _.isRegExp('/abc/'); - * // => false - */ - var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp; - - /** - * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754 - * double precision number which isn't the result of a rounded unsafe integer. - * - * **Note:** This method is based on - * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`. - * @example - * - * _.isSafeInteger(3); - * // => true - * - * _.isSafeInteger(Number.MIN_VALUE); - * // => false - * - * _.isSafeInteger(Infinity); - * // => false - * - * _.isSafeInteger('3'); - * // => false - */ - function isSafeInteger(value) { - return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER; - } - - /** - * Checks if `value` is classified as a `Set` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a set, else `false`. - * @example - * - * _.isSet(new Set); - * // => true - * - * _.isSet(new WeakSet); - * // => false - */ - var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; - - /** - * Checks if `value` is classified as a `String` primitive or object. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a string, else `false`. - * @example - * - * _.isString('abc'); - * // => true - * - * _.isString(1); - * // => false - */ - function isString(value) { - return typeof value == 'string' || - (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); - } - - /** - * Checks if `value` is classified as a `Symbol` primitive or object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. - * @example - * - * _.isSymbol(Symbol.iterator); - * // => true - * - * _.isSymbol('abc'); - * // => false - */ - function isSymbol(value) { - return typeof value == 'symbol' || - (isObjectLike(value) && baseGetTag(value) == symbolTag); - } - - /** - * Checks if `value` is classified as a typed array. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - * @example - * - * _.isTypedArray(new Uint8Array); - * // => true - * - * _.isTypedArray([]); - * // => false - */ - var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; - - /** - * Checks if `value` is `undefined`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. - * @example - * - * _.isUndefined(void 0); - * // => true - * - * _.isUndefined(null); - * // => false - */ - function isUndefined(value) { - return value === undefined; - } - - /** - * Checks if `value` is classified as a `WeakMap` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a weak map, else `false`. - * @example - * - * _.isWeakMap(new WeakMap); - * // => true - * - * _.isWeakMap(new Map); - * // => false - */ - function isWeakMap(value) { - return isObjectLike(value) && getTag(value) == weakMapTag; - } - - /** - * Checks if `value` is classified as a `WeakSet` object. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a weak set, else `false`. - * @example - * - * _.isWeakSet(new WeakSet); - * // => true - * - * _.isWeakSet(new Set); - * // => false - */ - function isWeakSet(value) { - return isObjectLike(value) && baseGetTag(value) == weakSetTag; - } - - /** - * Checks if `value` is less than `other`. - * - * @static - * @memberOf _ - * @since 3.9.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is less than `other`, - * else `false`. - * @see _.gt - * @example - * - * _.lt(1, 3); - * // => true - * - * _.lt(3, 3); - * // => false - * - * _.lt(3, 1); - * // => false - */ - var lt = createRelationalOperation(baseLt); - - /** - * Checks if `value` is less than or equal to `other`. - * - * @static - * @memberOf _ - * @since 3.9.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if `value` is less than or equal to - * `other`, else `false`. - * @see _.gte - * @example - * - * _.lte(1, 3); - * // => true - * - * _.lte(3, 3); - * // => true - * - * _.lte(3, 1); - * // => false - */ - var lte = createRelationalOperation(function(value, other) { - return value <= other; - }); - - /** - * Converts `value` to an array. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Lang - * @param {*} value The value to convert. - * @returns {Array} Returns the converted array. - * @example - * - * _.toArray({ 'a': 1, 'b': 2 }); - * // => [1, 2] - * - * _.toArray('abc'); - * // => ['a', 'b', 'c'] - * - * _.toArray(1); - * // => [] - * - * _.toArray(null); - * // => [] - */ - function toArray(value) { - if (!value) { - return []; - } - if (isArrayLike(value)) { - return isString(value) ? stringToArray(value) : copyArray(value); - } - if (symIterator && value[symIterator]) { - return iteratorToArray(value[symIterator]()); - } - var tag = getTag(value), - func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values); - - return func(value); - } - - /** - * Converts `value` to a finite number. - * - * @static - * @memberOf _ - * @since 4.12.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted number. - * @example - * - * _.toFinite(3.2); - * // => 3.2 - * - * _.toFinite(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toFinite(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toFinite('3.2'); - * // => 3.2 - */ - function toFinite(value) { - if (!value) { - return value === 0 ? value : 0; - } - value = toNumber(value); - if (value === INFINITY || value === -INFINITY) { - var sign = (value < 0 ? -1 : 1); - return sign * MAX_INTEGER; - } - return value === value ? value : 0; - } - - /** - * Converts `value` to an integer. - * - * **Note:** This method is loosely based on - * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toInteger(3.2); - * // => 3 - * - * _.toInteger(Number.MIN_VALUE); - * // => 0 - * - * _.toInteger(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toInteger('3.2'); - * // => 3 - */ - function toInteger(value) { - var result = toFinite(value), - remainder = result % 1; - - return result === result ? (remainder ? result - remainder : result) : 0; - } - - /** - * Converts `value` to an integer suitable for use as the length of an - * array-like object. - * - * **Note:** This method is based on - * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toLength(3.2); - * // => 3 - * - * _.toLength(Number.MIN_VALUE); - * // => 0 - * - * _.toLength(Infinity); - * // => 4294967295 - * - * _.toLength('3.2'); - * // => 3 - */ - function toLength(value) { - return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0; - } - - /** - * Converts `value` to a number. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to process. - * @returns {number} Returns the number. - * @example - * - * _.toNumber(3.2); - * // => 3.2 - * - * _.toNumber(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toNumber(Infinity); - * // => Infinity - * - * _.toNumber('3.2'); - * // => 3.2 - */ - function toNumber(value) { - if (typeof value == 'number') { - return value; - } - if (isSymbol(value)) { - return NAN; - } - if (isObject(value)) { - var other = typeof value.valueOf == 'function' ? value.valueOf() : value; - value = isObject(other) ? (other + '') : other; - } - if (typeof value != 'string') { - return value === 0 ? value : +value; - } - value = value.replace(reTrim, ''); - var isBinary = reIsBinary.test(value); - return (isBinary || reIsOctal.test(value)) - ? freeParseInt(value.slice(2), isBinary ? 2 : 8) - : (reIsBadHex.test(value) ? NAN : +value); - } - - /** - * Converts `value` to a plain object flattening inherited enumerable string - * keyed properties of `value` to own properties of the plain object. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {Object} Returns the converted plain object. - * @example - * - * function Foo() { - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.assign({ 'a': 1 }, new Foo); - * // => { 'a': 1, 'b': 2 } - * - * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); - * // => { 'a': 1, 'b': 2, 'c': 3 } - */ - function toPlainObject(value) { - return copyObject(value, keysIn(value)); - } - - /** - * Converts `value` to a safe integer. A safe integer can be compared and - * represented correctly. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toSafeInteger(3.2); - * // => 3 - * - * _.toSafeInteger(Number.MIN_VALUE); - * // => 0 - * - * _.toSafeInteger(Infinity); - * // => 9007199254740991 - * - * _.toSafeInteger('3.2'); - * // => 3 - */ - function toSafeInteger(value) { - return value - ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) - : (value === 0 ? value : 0); - } - - /** - * Converts `value` to a string. An empty string is returned for `null` - * and `undefined` values. The sign of `-0` is preserved. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. - * @example - * - * _.toString(null); - * // => '' - * - * _.toString(-0); - * // => '-0' - * - * _.toString([1, 2, 3]); - * // => '1,2,3' - */ - function toString(value) { - return value == null ? '' : baseToString(value); - } - - /*------------------------------------------------------------------------*/ - - /** - * Assigns own enumerable string keyed properties of source objects to the - * destination object. Source objects are applied from left to right. - * Subsequent sources overwrite property assignments of previous sources. - * - * **Note:** This method mutates `object` and is loosely based on - * [`Object.assign`](https://mdn.io/Object/assign). - * - * @static - * @memberOf _ - * @since 0.10.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @see _.assignIn - * @example - * - * function Foo() { - * this.a = 1; - * } - * - * function Bar() { - * this.c = 3; - * } - * - * Foo.prototype.b = 2; - * Bar.prototype.d = 4; - * - * _.assign({ 'a': 0 }, new Foo, new Bar); - * // => { 'a': 1, 'c': 3 } - */ - var assign = createAssigner(function(object, source) { - if (isPrototype(source) || isArrayLike(source)) { - copyObject(source, keys(source), object); - return; - } - for (var key in source) { - if (hasOwnProperty.call(source, key)) { - assignValue(object, key, source[key]); - } - } - }); - - /** - * This method is like `_.assign` except that it iterates over own and - * inherited source properties. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @alias extend - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @see _.assign - * @example - * - * function Foo() { - * this.a = 1; - * } - * - * function Bar() { - * this.c = 3; - * } - * - * Foo.prototype.b = 2; - * Bar.prototype.d = 4; - * - * _.assignIn({ 'a': 0 }, new Foo, new Bar); - * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 } - */ - var assignIn = createAssigner(function(object, source) { - copyObject(source, keysIn(source), object); - }); - - /** - * This method is like `_.assignIn` except that it accepts `customizer` - * which is invoked to produce the assigned values. If `customizer` returns - * `undefined`, assignment is handled by the method instead. The `customizer` - * is invoked with five arguments: (objValue, srcValue, key, object, source). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @alias extendWith - * @category Object - * @param {Object} object The destination object. - * @param {...Object} sources The source objects. - * @param {Function} [customizer] The function to customize assigned values. - * @returns {Object} Returns `object`. - * @see _.assignWith - * @example - * - * function customizer(objValue, srcValue) { - * return _.isUndefined(objValue) ? srcValue : objValue; - * } - * - * var defaults = _.partialRight(_.assignInWith, customizer); - * - * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); - * // => { 'a': 1, 'b': 2 } - */ - var assignInWith = createAssigner(function(object, source, srcIndex, customizer) { - copyObject(source, keysIn(source), object, customizer); - }); - - /** - * This method is like `_.assign` except that it accepts `customizer` - * which is invoked to produce the assigned values. If `customizer` returns - * `undefined`, assignment is handled by the method instead. The `customizer` - * is invoked with five arguments: (objValue, srcValue, key, object, source). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} sources The source objects. - * @param {Function} [customizer] The function to customize assigned values. - * @returns {Object} Returns `object`. - * @see _.assignInWith - * @example - * - * function customizer(objValue, srcValue) { - * return _.isUndefined(objValue) ? srcValue : objValue; - * } - * - * var defaults = _.partialRight(_.assignWith, customizer); - * - * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); - * // => { 'a': 1, 'b': 2 } - */ - var assignWith = createAssigner(function(object, source, srcIndex, customizer) { - copyObject(source, keys(source), object, customizer); - }); - - /** - * Creates an array of values corresponding to `paths` of `object`. - * - * @static - * @memberOf _ - * @since 1.0.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {...(string|string[])} [paths] The property paths to pick. - * @returns {Array} Returns the picked values. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }; - * - * _.at(object, ['a[0].b.c', 'a[1]']); - * // => [3, 4] - */ - var at = flatRest(baseAt); - - /** - * Creates an object that inherits from the `prototype` object. If a - * `properties` object is given, its own enumerable string keyed properties - * are assigned to the created object. - * - * @static - * @memberOf _ - * @since 2.3.0 - * @category Object - * @param {Object} prototype The object to inherit from. - * @param {Object} [properties] The properties to assign to the object. - * @returns {Object} Returns the new object. - * @example - * - * function Shape() { - * this.x = 0; - * this.y = 0; - * } - * - * function Circle() { - * Shape.call(this); - * } - * - * Circle.prototype = _.create(Shape.prototype, { - * 'constructor': Circle - * }); - * - * var circle = new Circle; - * circle instanceof Circle; - * // => true - * - * circle instanceof Shape; - * // => true - */ - function create(prototype, properties) { - var result = baseCreate(prototype); - return properties == null ? result : baseAssign(result, properties); - } - - /** - * Assigns own and inherited enumerable string keyed properties of source - * objects to the destination object for all destination properties that - * resolve to `undefined`. Source objects are applied from left to right. - * Once a property is set, additional values of the same property are ignored. - * - * **Note:** This method mutates `object`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @see _.defaultsDeep - * @example - * - * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 }); - * // => { 'a': 1, 'b': 2 } - */ - var defaults = baseRest(function(object, sources) { - object = Object(object); - - var index = -1; - var length = sources.length; - var guard = length > 2 ? sources[2] : undefined; - - if (guard && isIterateeCall(sources[0], sources[1], guard)) { - length = 1; - } - - while (++index < length) { - var source = sources[index]; - var props = keysIn(source); - var propsIndex = -1; - var propsLength = props.length; - - while (++propsIndex < propsLength) { - var key = props[propsIndex]; - var value = object[key]; - - if (value === undefined || - (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) { - object[key] = source[key]; - } - } - } - - return object; - }); - - /** - * This method is like `_.defaults` except that it recursively assigns - * default properties. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 3.10.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @see _.defaults - * @example - * - * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } }); - * // => { 'a': { 'b': 2, 'c': 3 } } - */ - var defaultsDeep = baseRest(function(args) { - args.push(undefined, customDefaultsMerge); - return apply(mergeWith, undefined, args); - }); - - /** - * This method is like `_.find` except that it returns the key of the first - * element `predicate` returns truthy for instead of the element itself. - * - * @static - * @memberOf _ - * @since 1.1.0 - * @category Object - * @param {Object} object The object to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {string|undefined} Returns the key of the matched element, - * else `undefined`. - * @example - * - * var users = { - * 'barney': { 'age': 36, 'active': true }, - * 'fred': { 'age': 40, 'active': false }, - * 'pebbles': { 'age': 1, 'active': true } - * }; - * - * _.findKey(users, function(o) { return o.age < 40; }); - * // => 'barney' (iteration order is not guaranteed) - * - * // The `_.matches` iteratee shorthand. - * _.findKey(users, { 'age': 1, 'active': true }); - * // => 'pebbles' - * - * // The `_.matchesProperty` iteratee shorthand. - * _.findKey(users, ['active', false]); - * // => 'fred' - * - * // The `_.property` iteratee shorthand. - * _.findKey(users, 'active'); - * // => 'barney' - */ - function findKey(object, predicate) { - return baseFindKey(object, getIteratee(predicate, 3), baseForOwn); - } - - /** - * This method is like `_.findKey` except that it iterates over elements of - * a collection in the opposite order. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Object - * @param {Object} object The object to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @returns {string|undefined} Returns the key of the matched element, - * else `undefined`. - * @example - * - * var users = { - * 'barney': { 'age': 36, 'active': true }, - * 'fred': { 'age': 40, 'active': false }, - * 'pebbles': { 'age': 1, 'active': true } - * }; - * - * _.findLastKey(users, function(o) { return o.age < 40; }); - * // => returns 'pebbles' assuming `_.findKey` returns 'barney' - * - * // The `_.matches` iteratee shorthand. - * _.findLastKey(users, { 'age': 36, 'active': true }); - * // => 'barney' - * - * // The `_.matchesProperty` iteratee shorthand. - * _.findLastKey(users, ['active', false]); - * // => 'fred' - * - * // The `_.property` iteratee shorthand. - * _.findLastKey(users, 'active'); - * // => 'pebbles' - */ - function findLastKey(object, predicate) { - return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight); - } - - /** - * Iterates over own and inherited enumerable string keyed properties of an - * object and invokes `iteratee` for each property. The iteratee is invoked - * with three arguments: (value, key, object). Iteratee functions may exit - * iteration early by explicitly returning `false`. - * - * @static - * @memberOf _ - * @since 0.3.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns `object`. - * @see _.forInRight - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forIn(new Foo, function(value, key) { - * console.log(key); - * }); - * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed). - */ - function forIn(object, iteratee) { - return object == null - ? object - : baseFor(object, getIteratee(iteratee, 3), keysIn); - } - - /** - * This method is like `_.forIn` except that it iterates over properties of - * `object` in the opposite order. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns `object`. - * @see _.forIn - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forInRight(new Foo, function(value, key) { - * console.log(key); - * }); - * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'. - */ - function forInRight(object, iteratee) { - return object == null - ? object - : baseForRight(object, getIteratee(iteratee, 3), keysIn); - } - - /** - * Iterates over own enumerable string keyed properties of an object and - * invokes `iteratee` for each property. The iteratee is invoked with three - * arguments: (value, key, object). Iteratee functions may exit iteration - * early by explicitly returning `false`. - * - * @static - * @memberOf _ - * @since 0.3.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns `object`. - * @see _.forOwnRight - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forOwn(new Foo, function(value, key) { - * console.log(key); - * }); - * // => Logs 'a' then 'b' (iteration order is not guaranteed). - */ - function forOwn(object, iteratee) { - return object && baseForOwn(object, getIteratee(iteratee, 3)); - } - - /** - * This method is like `_.forOwn` except that it iterates over properties of - * `object` in the opposite order. - * - * @static - * @memberOf _ - * @since 2.0.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns `object`. - * @see _.forOwn - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.forOwnRight(new Foo, function(value, key) { - * console.log(key); - * }); - * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'. - */ - function forOwnRight(object, iteratee) { - return object && baseForOwnRight(object, getIteratee(iteratee, 3)); - } - - /** - * Creates an array of function property names from own enumerable properties - * of `object`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to inspect. - * @returns {Array} Returns the function names. - * @see _.functionsIn - * @example - * - * function Foo() { - * this.a = _.constant('a'); - * this.b = _.constant('b'); - * } - * - * Foo.prototype.c = _.constant('c'); - * - * _.functions(new Foo); - * // => ['a', 'b'] - */ - function functions(object) { - return object == null ? [] : baseFunctions(object, keys(object)); - } - - /** - * Creates an array of function property names from own and inherited - * enumerable properties of `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to inspect. - * @returns {Array} Returns the function names. - * @see _.functions - * @example - * - * function Foo() { - * this.a = _.constant('a'); - * this.b = _.constant('b'); - * } - * - * Foo.prototype.c = _.constant('c'); - * - * _.functionsIn(new Foo); - * // => ['a', 'b', 'c'] - */ - function functionsIn(object) { - return object == null ? [] : baseFunctions(object, keysIn(object)); - } - - /** - * Gets the value at `path` of `object`. If the resolved value is - * `undefined`, the `defaultValue` is returned in its place. - * - * @static - * @memberOf _ - * @since 3.7.0 - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to get. - * @param {*} [defaultValue] The value returned for `undefined` resolved values. - * @returns {*} Returns the resolved value. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }] }; - * - * _.get(object, 'a[0].b.c'); - * // => 3 - * - * _.get(object, ['a', '0', 'b', 'c']); - * // => 3 - * - * _.get(object, 'a.b.c', 'default'); - * // => 'default' - */ - function get(object, path, defaultValue) { - var result = object == null ? undefined : baseGet(object, path); - return result === undefined ? defaultValue : result; - } - - /** - * Checks if `path` is a direct property of `object`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - * @example - * - * var object = { 'a': { 'b': 2 } }; - * var other = _.create({ 'a': _.create({ 'b': 2 }) }); - * - * _.has(object, 'a'); - * // => true - * - * _.has(object, 'a.b'); - * // => true - * - * _.has(object, ['a', 'b']); - * // => true - * - * _.has(other, 'a'); - * // => false - */ - function has(object, path) { - return object != null && hasPath(object, path, baseHas); - } - - /** - * Checks if `path` is a direct or inherited property of `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - * @example - * - * var object = _.create({ 'a': _.create({ 'b': 2 }) }); - * - * _.hasIn(object, 'a'); - * // => true - * - * _.hasIn(object, 'a.b'); - * // => true - * - * _.hasIn(object, ['a', 'b']); - * // => true - * - * _.hasIn(object, 'b'); - * // => false - */ - function hasIn(object, path) { - return object != null && hasPath(object, path, baseHasIn); - } - - /** - * Creates an object composed of the inverted keys and values of `object`. - * If `object` contains duplicate values, subsequent values overwrite - * property assignments of previous values. - * - * @static - * @memberOf _ - * @since 0.7.0 - * @category Object - * @param {Object} object The object to invert. - * @returns {Object} Returns the new inverted object. - * @example - * - * var object = { 'a': 1, 'b': 2, 'c': 1 }; - * - * _.invert(object); - * // => { '1': 'c', '2': 'b' } - */ - var invert = createInverter(function(result, value, key) { - if (value != null && - typeof value.toString != 'function') { - value = nativeObjectToString.call(value); - } - - result[value] = key; - }, constant(identity)); - - /** - * This method is like `_.invert` except that the inverted object is generated - * from the results of running each element of `object` thru `iteratee`. The - * corresponding inverted value of each inverted key is an array of keys - * responsible for generating the inverted value. The iteratee is invoked - * with one argument: (value). - * - * @static - * @memberOf _ - * @since 4.1.0 - * @category Object - * @param {Object} object The object to invert. - * @param {Function} [iteratee=_.identity] The iteratee invoked per element. - * @returns {Object} Returns the new inverted object. - * @example - * - * var object = { 'a': 1, 'b': 2, 'c': 1 }; - * - * _.invertBy(object); - * // => { '1': ['a', 'c'], '2': ['b'] } - * - * _.invertBy(object, function(value) { - * return 'group' + value; - * }); - * // => { 'group1': ['a', 'c'], 'group2': ['b'] } - */ - var invertBy = createInverter(function(result, value, key) { - if (value != null && - typeof value.toString != 'function') { - value = nativeObjectToString.call(value); - } - - if (hasOwnProperty.call(result, value)) { - result[value].push(key); - } else { - result[value] = [key]; - } - }, getIteratee); - - /** - * Invokes the method at `path` of `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path of the method to invoke. - * @param {...*} [args] The arguments to invoke the method with. - * @returns {*} Returns the result of the invoked method. - * @example - * - * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] }; - * - * _.invoke(object, 'a[0].b.c.slice', 1, 3); - * // => [2, 3] - */ - var invoke = baseRest(baseInvoke); - - /** - * Creates an array of the own enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. See the - * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) - * for more details. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keys(new Foo); - * // => ['a', 'b'] (iteration order is not guaranteed) - * - * _.keys('hi'); - * // => ['0', '1'] - */ - function keys(object) { - return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); - } - - /** - * Creates an array of the own and inherited enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keysIn(new Foo); - * // => ['a', 'b', 'c'] (iteration order is not guaranteed) - */ - function keysIn(object) { - return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); - } - - /** - * The opposite of `_.mapValues`; this method creates an object with the - * same values as `object` and keys generated by running each own enumerable - * string keyed property of `object` thru `iteratee`. The iteratee is invoked - * with three arguments: (value, key, object). - * - * @static - * @memberOf _ - * @since 3.8.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns the new mapped object. - * @see _.mapValues - * @example - * - * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) { - * return key + value; - * }); - * // => { 'a1': 1, 'b2': 2 } - */ - function mapKeys(object, iteratee) { - var result = {}; - iteratee = getIteratee(iteratee, 3); - - baseForOwn(object, function(value, key, object) { - baseAssignValue(result, iteratee(value, key, object), value); - }); - return result; - } - - /** - * Creates an object with the same keys as `object` and values generated - * by running each own enumerable string keyed property of `object` thru - * `iteratee`. The iteratee is invoked with three arguments: - * (value, key, object). - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @returns {Object} Returns the new mapped object. - * @see _.mapKeys - * @example - * - * var users = { - * 'fred': { 'user': 'fred', 'age': 40 }, - * 'pebbles': { 'user': 'pebbles', 'age': 1 } - * }; - * - * _.mapValues(users, function(o) { return o.age; }); - * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) - * - * // The `_.property` iteratee shorthand. - * _.mapValues(users, 'age'); - * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) - */ - function mapValues(object, iteratee) { - var result = {}; - iteratee = getIteratee(iteratee, 3); - - baseForOwn(object, function(value, key, object) { - baseAssignValue(result, key, iteratee(value, key, object)); - }); - return result; - } - - /** - * This method is like `_.assign` except that it recursively merges own and - * inherited enumerable string keyed properties of source objects into the - * destination object. Source properties that resolve to `undefined` are - * skipped if a destination value exists. Array and plain object properties - * are merged recursively. Other objects and value types are overridden by - * assignment. Source objects are applied from left to right. Subsequent - * sources overwrite property assignments of previous sources. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 0.5.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} [sources] The source objects. - * @returns {Object} Returns `object`. - * @example - * - * var object = { - * 'a': [{ 'b': 2 }, { 'd': 4 }] - * }; - * - * var other = { - * 'a': [{ 'c': 3 }, { 'e': 5 }] - * }; - * - * _.merge(object, other); - * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] } - */ - var merge = createAssigner(function(object, source, srcIndex) { - baseMerge(object, source, srcIndex); - }); - - /** - * This method is like `_.merge` except that it accepts `customizer` which - * is invoked to produce the merged values of the destination and source - * properties. If `customizer` returns `undefined`, merging is handled by the - * method instead. The `customizer` is invoked with six arguments: - * (objValue, srcValue, key, object, source, stack). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The destination object. - * @param {...Object} sources The source objects. - * @param {Function} customizer The function to customize assigned values. - * @returns {Object} Returns `object`. - * @example - * - * function customizer(objValue, srcValue) { - * if (_.isArray(objValue)) { - * return objValue.concat(srcValue); - * } - * } - * - * var object = { 'a': [1], 'b': [2] }; - * var other = { 'a': [3], 'b': [4] }; - * - * _.mergeWith(object, other, customizer); - * // => { 'a': [1, 3], 'b': [2, 4] } - */ - var mergeWith = createAssigner(function(object, source, srcIndex, customizer) { - baseMerge(object, source, srcIndex, customizer); - }); - - /** - * The opposite of `_.pick`; this method creates an object composed of the - * own and inherited enumerable property paths of `object` that are not omitted. - * - * **Note:** This method is considerably slower than `_.pick`. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The source object. - * @param {...(string|string[])} [paths] The property paths to omit. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'a': 1, 'b': '2', 'c': 3 }; - * - * _.omit(object, ['a', 'c']); - * // => { 'b': '2' } - */ - var omit = flatRest(function(object, paths) { - var result = {}; - if (object == null) { - return result; - } - var isDeep = false; - paths = arrayMap(paths, function(path) { - path = castPath(path, object); - isDeep || (isDeep = path.length > 1); - return path; - }); - copyObject(object, getAllKeysIn(object), result); - if (isDeep) { - result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone); - } - var length = paths.length; - while (length--) { - baseUnset(result, paths[length]); - } - return result; - }); - - /** - * The opposite of `_.pickBy`; this method creates an object composed of - * the own and inherited enumerable string keyed properties of `object` that - * `predicate` doesn't return truthy for. The predicate is invoked with two - * arguments: (value, key). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The source object. - * @param {Function} [predicate=_.identity] The function invoked per property. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'a': 1, 'b': '2', 'c': 3 }; - * - * _.omitBy(object, _.isNumber); - * // => { 'b': '2' } - */ - function omitBy(object, predicate) { - return pickBy(object, negate(getIteratee(predicate))); - } - - /** - * Creates an object composed of the picked `object` properties. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The source object. - * @param {...(string|string[])} [paths] The property paths to pick. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'a': 1, 'b': '2', 'c': 3 }; - * - * _.pick(object, ['a', 'c']); - * // => { 'a': 1, 'c': 3 } - */ - var pick = flatRest(function(object, paths) { - return object == null ? {} : basePick(object, paths); - }); - - /** - * Creates an object composed of the `object` properties `predicate` returns - * truthy for. The predicate is invoked with two arguments: (value, key). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The source object. - * @param {Function} [predicate=_.identity] The function invoked per property. - * @returns {Object} Returns the new object. - * @example - * - * var object = { 'a': 1, 'b': '2', 'c': 3 }; - * - * _.pickBy(object, _.isNumber); - * // => { 'a': 1, 'c': 3 } - */ - function pickBy(object, predicate) { - if (object == null) { - return {}; - } - var props = arrayMap(getAllKeysIn(object), function(prop) { - return [prop]; - }); - predicate = getIteratee(predicate); - return basePickBy(object, props, function(value, path) { - return predicate(value, path[0]); - }); - } - - /** - * This method is like `_.get` except that if the resolved value is a - * function it's invoked with the `this` binding of its parent object and - * its result is returned. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to resolve. - * @param {*} [defaultValue] The value returned for `undefined` resolved values. - * @returns {*} Returns the resolved value. - * @example - * - * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] }; - * - * _.result(object, 'a[0].b.c1'); - * // => 3 - * - * _.result(object, 'a[0].b.c2'); - * // => 4 - * - * _.result(object, 'a[0].b.c3', 'default'); - * // => 'default' - * - * _.result(object, 'a[0].b.c3', _.constant('default')); - * // => 'default' - */ - function result(object, path, defaultValue) { - path = castPath(path, object); - - var index = -1, - length = path.length; - - // Ensure the loop is entered when path is empty. - if (!length) { - length = 1; - object = undefined; - } - while (++index < length) { - var value = object == null ? undefined : object[toKey(path[index])]; - if (value === undefined) { - index = length; - value = defaultValue; - } - object = isFunction(value) ? value.call(object) : value; - } - return object; - } - - /** - * Sets the value at `path` of `object`. If a portion of `path` doesn't exist, - * it's created. Arrays are created for missing index properties while objects - * are created for all other missing properties. Use `_.setWith` to customize - * `path` creation. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 3.7.0 - * @category Object - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to set. - * @param {*} value The value to set. - * @returns {Object} Returns `object`. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }] }; - * - * _.set(object, 'a[0].b.c', 4); - * console.log(object.a[0].b.c); - * // => 4 - * - * _.set(object, ['x', '0', 'y', 'z'], 5); - * console.log(object.x[0].y.z); - * // => 5 - */ - function set(object, path, value) { - return object == null ? object : baseSet(object, path, value); - } - - /** - * This method is like `_.set` except that it accepts `customizer` which is - * invoked to produce the objects of `path`. If `customizer` returns `undefined` - * path creation is handled by the method instead. The `customizer` is invoked - * with three arguments: (nsValue, key, nsObject). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to set. - * @param {*} value The value to set. - * @param {Function} [customizer] The function to customize assigned values. - * @returns {Object} Returns `object`. - * @example - * - * var object = {}; - * - * _.setWith(object, '[0][1]', 'a', Object); - * // => { '0': { '1': 'a' } } - */ - function setWith(object, path, value, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined; - return object == null ? object : baseSet(object, path, value, customizer); - } - - /** - * Creates an array of own enumerable string keyed-value pairs for `object` - * which can be consumed by `_.fromPairs`. If `object` is a map or set, its - * entries are returned. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @alias entries - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the key-value pairs. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.toPairs(new Foo); - * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed) - */ - var toPairs = createToPairs(keys); - - /** - * Creates an array of own and inherited enumerable string keyed-value pairs - * for `object` which can be consumed by `_.fromPairs`. If `object` is a map - * or set, its entries are returned. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @alias entriesIn - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the key-value pairs. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.toPairsIn(new Foo); - * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed) - */ - var toPairsIn = createToPairs(keysIn); - - /** - * An alternative to `_.reduce`; this method transforms `object` to a new - * `accumulator` object which is the result of running each of its own - * enumerable string keyed properties thru `iteratee`, with each invocation - * potentially mutating the `accumulator` object. If `accumulator` is not - * provided, a new object with the same `[[Prototype]]` will be used. The - * iteratee is invoked with four arguments: (accumulator, value, key, object). - * Iteratee functions may exit iteration early by explicitly returning `false`. - * - * @static - * @memberOf _ - * @since 1.3.0 - * @category Object - * @param {Object} object The object to iterate over. - * @param {Function} [iteratee=_.identity] The function invoked per iteration. - * @param {*} [accumulator] The custom accumulator value. - * @returns {*} Returns the accumulated value. - * @example - * - * _.transform([2, 3, 4], function(result, n) { - * result.push(n *= n); - * return n % 2 == 0; - * }, []); - * // => [4, 9] - * - * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { - * (result[value] || (result[value] = [])).push(key); - * }, {}); - * // => { '1': ['a', 'c'], '2': ['b'] } - */ - function transform(object, iteratee, accumulator) { - var isArr = isArray(object), - isArrLike = isArr || isBuffer(object) || isTypedArray(object); - - iteratee = getIteratee(iteratee, 4); - if (accumulator == null) { - var Ctor = object && object.constructor; - if (isArrLike) { - accumulator = isArr ? new Ctor : []; - } - else if (isObject(object)) { - accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {}; - } - else { - accumulator = {}; - } - } - (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) { - return iteratee(accumulator, value, index, object); - }); - return accumulator; - } - - /** - * Removes the property at `path` of `object`. - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to unset. - * @returns {boolean} Returns `true` if the property is deleted, else `false`. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 7 } }] }; - * _.unset(object, 'a[0].b.c'); - * // => true - * - * console.log(object); - * // => { 'a': [{ 'b': {} }] }; - * - * _.unset(object, ['a', '0', 'b', 'c']); - * // => true - * - * console.log(object); - * // => { 'a': [{ 'b': {} }] }; - */ - function unset(object, path) { - return object == null ? true : baseUnset(object, path); - } - - /** - * This method is like `_.set` except that accepts `updater` to produce the - * value to set. Use `_.updateWith` to customize `path` creation. The `updater` - * is invoked with one argument: (value). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.6.0 - * @category Object - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to set. - * @param {Function} updater The function to produce the updated value. - * @returns {Object} Returns `object`. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }] }; - * - * _.update(object, 'a[0].b.c', function(n) { return n * n; }); - * console.log(object.a[0].b.c); - * // => 9 - * - * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; }); - * console.log(object.x[0].y.z); - * // => 0 - */ - function update(object, path, updater) { - return object == null ? object : baseUpdate(object, path, castFunction(updater)); - } - - /** - * This method is like `_.update` except that it accepts `customizer` which is - * invoked to produce the objects of `path`. If `customizer` returns `undefined` - * path creation is handled by the method instead. The `customizer` is invoked - * with three arguments: (nsValue, key, nsObject). - * - * **Note:** This method mutates `object`. - * - * @static - * @memberOf _ - * @since 4.6.0 - * @category Object - * @param {Object} object The object to modify. - * @param {Array|string} path The path of the property to set. - * @param {Function} updater The function to produce the updated value. - * @param {Function} [customizer] The function to customize assigned values. - * @returns {Object} Returns `object`. - * @example - * - * var object = {}; - * - * _.updateWith(object, '[0][1]', _.constant('a'), Object); - * // => { '0': { '1': 'a' } } - */ - function updateWith(object, path, updater, customizer) { - customizer = typeof customizer == 'function' ? customizer : undefined; - return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer); - } - - /** - * Creates an array of the own enumerable string keyed property values of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property values. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.values(new Foo); - * // => [1, 2] (iteration order is not guaranteed) - * - * _.values('hi'); - * // => ['h', 'i'] - */ - function values(object) { - return object == null ? [] : baseValues(object, keys(object)); - } - - /** - * Creates an array of the own and inherited enumerable string keyed property - * values of `object`. - * - * **Note:** Non-object values are coerced to objects. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property values. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.valuesIn(new Foo); - * // => [1, 2, 3] (iteration order is not guaranteed) - */ - function valuesIn(object) { - return object == null ? [] : baseValues(object, keysIn(object)); - } - - /*------------------------------------------------------------------------*/ - - /** - * Clamps `number` within the inclusive `lower` and `upper` bounds. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Number - * @param {number} number The number to clamp. - * @param {number} [lower] The lower bound. - * @param {number} upper The upper bound. - * @returns {number} Returns the clamped number. - * @example - * - * _.clamp(-10, -5, 5); - * // => -5 - * - * _.clamp(10, -5, 5); - * // => 5 - */ - function clamp(number, lower, upper) { - if (upper === undefined) { - upper = lower; - lower = undefined; - } - if (upper !== undefined) { - upper = toNumber(upper); - upper = upper === upper ? upper : 0; - } - if (lower !== undefined) { - lower = toNumber(lower); - lower = lower === lower ? lower : 0; - } - return baseClamp(toNumber(number), lower, upper); - } - - /** - * Checks if `n` is between `start` and up to, but not including, `end`. If - * `end` is not specified, it's set to `start` with `start` then set to `0`. - * If `start` is greater than `end` the params are swapped to support - * negative ranges. - * - * @static - * @memberOf _ - * @since 3.3.0 - * @category Number - * @param {number} number The number to check. - * @param {number} [start=0] The start of the range. - * @param {number} end The end of the range. - * @returns {boolean} Returns `true` if `number` is in the range, else `false`. - * @see _.range, _.rangeRight - * @example - * - * _.inRange(3, 2, 4); - * // => true - * - * _.inRange(4, 8); - * // => true - * - * _.inRange(4, 2); - * // => false - * - * _.inRange(2, 2); - * // => false - * - * _.inRange(1.2, 2); - * // => true - * - * _.inRange(5.2, 4); - * // => false - * - * _.inRange(-3, -2, -6); - * // => true - */ - function inRange(number, start, end) { - start = toFinite(start); - if (end === undefined) { - end = start; - start = 0; - } else { - end = toFinite(end); - } - number = toNumber(number); - return baseInRange(number, start, end); - } - - /** - * Produces a random number between the inclusive `lower` and `upper` bounds. - * If only one argument is provided a number between `0` and the given number - * is returned. If `floating` is `true`, or either `lower` or `upper` are - * floats, a floating-point number is returned instead of an integer. - * - * **Note:** JavaScript follows the IEEE-754 standard for resolving - * floating-point values which can produce unexpected results. - * - * @static - * @memberOf _ - * @since 0.7.0 - * @category Number - * @param {number} [lower=0] The lower bound. - * @param {number} [upper=1] The upper bound. - * @param {boolean} [floating] Specify returning a floating-point number. - * @returns {number} Returns the random number. - * @example - * - * _.random(0, 5); - * // => an integer between 0 and 5 - * - * _.random(5); - * // => also an integer between 0 and 5 - * - * _.random(5, true); - * // => a floating-point number between 0 and 5 - * - * _.random(1.2, 5.2); - * // => a floating-point number between 1.2 and 5.2 - */ - function random(lower, upper, floating) { - if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) { - upper = floating = undefined; - } - if (floating === undefined) { - if (typeof upper == 'boolean') { - floating = upper; - upper = undefined; - } - else if (typeof lower == 'boolean') { - floating = lower; - lower = undefined; - } - } - if (lower === undefined && upper === undefined) { - lower = 0; - upper = 1; - } - else { - lower = toFinite(lower); - if (upper === undefined) { - upper = lower; - lower = 0; - } else { - upper = toFinite(upper); - } - } - if (lower > upper) { - var temp = lower; - lower = upper; - upper = temp; - } - if (floating || lower % 1 || upper % 1) { - var rand = nativeRandom(); - return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper); - } - return baseRandom(lower, upper); - } - - /*------------------------------------------------------------------------*/ - - /** - * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the camel cased string. - * @example - * - * _.camelCase('Foo Bar'); - * // => 'fooBar' - * - * _.camelCase('--foo-bar--'); - * // => 'fooBar' - * - * _.camelCase('__FOO_BAR__'); - * // => 'fooBar' - */ - var camelCase = createCompounder(function(result, word, index) { - word = word.toLowerCase(); - return result + (index ? capitalize(word) : word); - }); - - /** - * Converts the first character of `string` to upper case and the remaining - * to lower case. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to capitalize. - * @returns {string} Returns the capitalized string. - * @example - * - * _.capitalize('FRED'); - * // => 'Fred' - */ - function capitalize(string) { - return upperFirst(toString(string).toLowerCase()); - } - - /** - * Deburrs `string` by converting - * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table) - * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A) - * letters to basic Latin letters and removing - * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to deburr. - * @returns {string} Returns the deburred string. - * @example - * - * _.deburr('déjà vu'); - * // => 'deja vu' - */ - function deburr(string) { - string = toString(string); - return string && string.replace(reLatin, deburrLetter).replace(reComboMark, ''); - } - - /** - * Checks if `string` ends with the given target string. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to inspect. - * @param {string} [target] The string to search for. - * @param {number} [position=string.length] The position to search up to. - * @returns {boolean} Returns `true` if `string` ends with `target`, - * else `false`. - * @example - * - * _.endsWith('abc', 'c'); - * // => true - * - * _.endsWith('abc', 'b'); - * // => false - * - * _.endsWith('abc', 'b', 2); - * // => true - */ - function endsWith(string, target, position) { - string = toString(string); - target = baseToString(target); - - var length = string.length; - position = position === undefined - ? length - : baseClamp(toInteger(position), 0, length); - - var end = position; - position -= target.length; - return position >= 0 && string.slice(position, end) == target; - } - - /** - * Converts the characters "&", "<", ">", '"', and "'" in `string` to their - * corresponding HTML entities. - * - * **Note:** No other characters are escaped. To escape additional - * characters use a third-party library like [_he_](https://mths.be/he). - * - * Though the ">" character is escaped for symmetry, characters like - * ">" and "/" don't need escaping in HTML and have no special meaning - * unless they're part of a tag or unquoted attribute value. See - * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands) - * (under "semi-related fun fact") for more details. - * - * When working with HTML you should always - * [quote attribute values](http://wonko.com/post/html-escaping) to reduce - * XSS vectors. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category String - * @param {string} [string=''] The string to escape. - * @returns {string} Returns the escaped string. - * @example - * - * _.escape('fred, barney, & pebbles'); - * // => 'fred, barney, & pebbles' - */ - function escape(string) { - string = toString(string); - return (string && reHasUnescapedHtml.test(string)) - ? string.replace(reUnescapedHtml, escapeHtmlChar) - : string; - } - - /** - * Escapes the `RegExp` special characters "^", "$", "\", ".", "*", "+", - * "?", "(", ")", "[", "]", "{", "}", and "|" in `string`. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to escape. - * @returns {string} Returns the escaped string. - * @example - * - * _.escapeRegExp('[lodash](https://lodash.com/)'); - * // => '\[lodash\]\(https://lodash\.com/\)' - */ - function escapeRegExp(string) { - string = toString(string); - return (string && reHasRegExpChar.test(string)) - ? string.replace(reRegExpChar, '\\$&') - : string; - } - - /** - * Converts `string` to - * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the kebab cased string. - * @example - * - * _.kebabCase('Foo Bar'); - * // => 'foo-bar' - * - * _.kebabCase('fooBar'); - * // => 'foo-bar' - * - * _.kebabCase('__FOO_BAR__'); - * // => 'foo-bar' - */ - var kebabCase = createCompounder(function(result, word, index) { - return result + (index ? '-' : '') + word.toLowerCase(); - }); - - /** - * Converts `string`, as space separated words, to lower case. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the lower cased string. - * @example - * - * _.lowerCase('--Foo-Bar--'); - * // => 'foo bar' - * - * _.lowerCase('fooBar'); - * // => 'foo bar' - * - * _.lowerCase('__FOO_BAR__'); - * // => 'foo bar' - */ - var lowerCase = createCompounder(function(result, word, index) { - return result + (index ? ' ' : '') + word.toLowerCase(); - }); - - /** - * Converts the first character of `string` to lower case. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the converted string. - * @example - * - * _.lowerFirst('Fred'); - * // => 'fred' - * - * _.lowerFirst('FRED'); - * // => 'fRED' - */ - var lowerFirst = createCaseFirst('toLowerCase'); - - /** - * Pads `string` on the left and right sides if it's shorter than `length`. - * Padding characters are truncated if they can't be evenly divided by `length`. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to pad. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padded string. - * @example - * - * _.pad('abc', 8); - * // => ' abc ' - * - * _.pad('abc', 8, '_-'); - * // => '_-abc_-_' - * - * _.pad('abc', 3); - * // => 'abc' - */ - function pad(string, length, chars) { - string = toString(string); - length = toInteger(length); - - var strLength = length ? stringSize(string) : 0; - if (!length || strLength >= length) { - return string; - } - var mid = (length - strLength) / 2; - return ( - createPadding(nativeFloor(mid), chars) + - string + - createPadding(nativeCeil(mid), chars) - ); - } - - /** - * Pads `string` on the right side if it's shorter than `length`. Padding - * characters are truncated if they exceed `length`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to pad. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padded string. - * @example - * - * _.padEnd('abc', 6); - * // => 'abc ' - * - * _.padEnd('abc', 6, '_-'); - * // => 'abc_-_' - * - * _.padEnd('abc', 3); - * // => 'abc' - */ - function padEnd(string, length, chars) { - string = toString(string); - length = toInteger(length); - - var strLength = length ? stringSize(string) : 0; - return (length && strLength < length) - ? (string + createPadding(length - strLength, chars)) - : string; - } - - /** - * Pads `string` on the left side if it's shorter than `length`. Padding - * characters are truncated if they exceed `length`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to pad. - * @param {number} [length=0] The padding length. - * @param {string} [chars=' '] The string used as padding. - * @returns {string} Returns the padded string. - * @example - * - * _.padStart('abc', 6); - * // => ' abc' - * - * _.padStart('abc', 6, '_-'); - * // => '_-_abc' - * - * _.padStart('abc', 3); - * // => 'abc' - */ - function padStart(string, length, chars) { - string = toString(string); - length = toInteger(length); - - var strLength = length ? stringSize(string) : 0; - return (length && strLength < length) - ? (createPadding(length - strLength, chars) + string) - : string; - } - - /** - * Converts `string` to an integer of the specified radix. If `radix` is - * `undefined` or `0`, a `radix` of `10` is used unless `value` is a - * hexadecimal, in which case a `radix` of `16` is used. - * - * **Note:** This method aligns with the - * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`. - * - * @static - * @memberOf _ - * @since 1.1.0 - * @category String - * @param {string} string The string to convert. - * @param {number} [radix=10] The radix to interpret `value` by. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {number} Returns the converted integer. - * @example - * - * _.parseInt('08'); - * // => 8 - * - * _.map(['6', '08', '10'], _.parseInt); - * // => [6, 8, 10] - */ - function parseInt(string, radix, guard) { - if (guard || radix == null) { - radix = 0; - } else if (radix) { - radix = +radix; - } - return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0); - } - - /** - * Repeats the given string `n` times. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to repeat. - * @param {number} [n=1] The number of times to repeat the string. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {string} Returns the repeated string. - * @example - * - * _.repeat('*', 3); - * // => '***' - * - * _.repeat('abc', 2); - * // => 'abcabc' - * - * _.repeat('abc', 0); - * // => '' - */ - function repeat(string, n, guard) { - if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) { - n = 1; - } else { - n = toInteger(n); - } - return baseRepeat(toString(string), n); - } - - /** - * Replaces matches for `pattern` in `string` with `replacement`. - * - * **Note:** This method is based on - * [`String#replace`](https://mdn.io/String/replace). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to modify. - * @param {RegExp|string} pattern The pattern to replace. - * @param {Function|string} replacement The match replacement. - * @returns {string} Returns the modified string. - * @example - * - * _.replace('Hi Fred', 'Fred', 'Barney'); - * // => 'Hi Barney' - */ - function replace() { - var args = arguments, - string = toString(args[0]); - - return args.length < 3 ? string : string.replace(args[1], args[2]); - } - - /** - * Converts `string` to - * [snake case](https://en.wikipedia.org/wiki/Snake_case). - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the snake cased string. - * @example - * - * _.snakeCase('Foo Bar'); - * // => 'foo_bar' - * - * _.snakeCase('fooBar'); - * // => 'foo_bar' - * - * _.snakeCase('--FOO-BAR--'); - * // => 'foo_bar' - */ - var snakeCase = createCompounder(function(result, word, index) { - return result + (index ? '_' : '') + word.toLowerCase(); - }); - - /** - * Splits `string` by `separator`. - * - * **Note:** This method is based on - * [`String#split`](https://mdn.io/String/split). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category String - * @param {string} [string=''] The string to split. - * @param {RegExp|string} separator The separator pattern to split by. - * @param {number} [limit] The length to truncate results to. - * @returns {Array} Returns the string segments. - * @example - * - * _.split('a-b-c', '-', 2); - * // => ['a', 'b'] - */ - function split(string, separator, limit) { - if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) { - separator = limit = undefined; - } - limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0; - if (!limit) { - return []; - } - string = toString(string); - if (string && ( - typeof separator == 'string' || - (separator != null && !isRegExp(separator)) - )) { - separator = baseToString(separator); - if (!separator && hasUnicode(string)) { - return castSlice(stringToArray(string), 0, limit); - } - } - return string.split(separator, limit); - } - - /** - * Converts `string` to - * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage). - * - * @static - * @memberOf _ - * @since 3.1.0 - * @category String - * @param {string} [string=''] The string to convert. - * @returns {string} Returns the start cased string. - * @example - * - * _.startCase('--foo-bar--'); - * // => 'Foo Bar' - * - * _.startCase('fooBar'); - * // => 'Foo Bar' - * - * _.startCase('__FOO_BAR__'); - * // => 'FOO BAR' - */ - var startCase = createCompounder(function(result, word, index) { - return result + (index ? ' ' : '') + upperFirst(word); - }); - - /** - * Checks if `string` starts with the given target string. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category String - * @param {string} [string=''] The string to inspect. - * @param {string} [target] The string to search for. - * @param {number} [position=0] The position to search from. - * @returns {boolean} Returns `true` if `string` starts with `target`, - * else `false`. - * @example - * - * _.startsWith('abc', 'a'); - * // => true - * - * _.startsWith('abc', 'b'); - * // => false - * - * _.startsWith('abc', 'b', 1); - * // => true - */ - function startsWith(string, target, position) { - string = toString(string); - position = position == null - ? 0 - : baseClamp(toInteger(position), 0, string.length); - - target = baseToString(target); - return string.slice(position, position + target.length) == target; - } - - /** - * Creates a compiled template function that can interpolate data properties - * in "interpolate" delimiters, HTML-escape interpolated data properties in - * "escape" delimiters, and execute JavaScript in "evaluate" delimiters. Data - * properties may be accessed as free variables in the template. If a setting - * object is given, it takes precedence over `_.templateSettings` values. - * - * **Note:** In the development build `_.template` utilizes - * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl) - * for easier debugging. - * - * For more information on precompiling templates see - * [lodash's custom builds documentation](https://lodash.com/custom-builds). - * - * For more information on Chrome extension sandboxes see - * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval). - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category String - * @param {string} [string=''] The template string. - * @param {Object} [options={}] The options object. - * @param {RegExp} [options.escape=_.templateSettings.escape] - * The HTML "escape" delimiter. - * @param {RegExp} [options.evaluate=_.templateSettings.evaluate] - * The "evaluate" delimiter. - * @param {Object} [options.imports=_.templateSettings.imports] - * An object to import into the template as free variables. - * @param {RegExp} [options.interpolate=_.templateSettings.interpolate] - * The "interpolate" delimiter. - * @param {string} [options.sourceURL='lodash.templateSources[n]'] - * The sourceURL of the compiled template. - * @param {string} [options.variable='obj'] - * The data object variable name. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {Function} Returns the compiled template function. - * @example - * - * // Use the "interpolate" delimiter to create a compiled template. - * var compiled = _.template('hello <%= user %>!'); - * compiled({ 'user': 'fred' }); - * // => 'hello fred!' - * - * // Use the HTML "escape" delimiter to escape data property values. - * var compiled = _.template('<%- value %>'); - * compiled({ 'value': '\ """.format( - win_config=_window_plotly_config, cdn_url=cdn_url + win_config=_window_plotly_config, cdn_url=plotly_cdn_url() ) elif include_plotlyjs == "directory": @@ -431,12 +422,6 @@ def write_html( generated with include_plotlyjs=True, but they require an active internet connection in order to load the plotly.js library. - If 'cdn-latest', a script tag that always references the latest plotly.js - CDN is included in the output. - HTML files generated with this option are about 3MB smaller than those - generated with include_plotlyjs=True, but they require an active - internet connection in order to load the plotly.js library. - If 'directory', a script tag is included that references an external plotly.min.js bundle that is assumed to reside in the same directory as the HTML file. If `file` is a string to a local file diff --git a/packages/python/plotly/plotly/tests/test_io/test_html.py b/packages/python/plotly/plotly/tests/test_io/test_html.py index 026677c0d5..e2b2b976a7 100644 --- a/packages/python/plotly/plotly/tests/test_io/test_html.py +++ b/packages/python/plotly/plotly/tests/test_io/test_html.py @@ -34,19 +34,7 @@ def fig1(request): # HTML # ---- -def assert_latest_cdn_connected(html): - assert plotly_cdn_url(cdn_ver="latest") in html - - -def assert_locked_version_cdn_connected(html): - assert plotly_cdn_url() in html - - -def test_latest_cdn_included(fig1): - html_str = pio.to_html(fig1, include_plotlyjs="cdn-latest") - assert_latest_cdn_connected(html_str) def test_versioned_cdn_included(fig1): - html_str = pio.to_html(fig1, include_plotlyjs="cdn") - assert_locked_version_cdn_connected(html_str) + assert plotly_cdn_url() in pio.to_html(fig1, include_plotlyjs="cdn") From 48da65d78e130b43c950d8519a753ab502c9adff Mon Sep 17 00:00:00 2001 From: Nicolas Kruchten Date: Mon, 31 May 2021 12:39:30 -0400 Subject: [PATCH 94/99] bumping to JS 2.0.0 RC 2 --- contributing.md | 17 +- .../jupyterlab-plotly/package-lock.json | 8891 +- .../javascript/jupyterlab-plotly/package.json | 2 +- .../plotly/codegen/resources/plot-schema.json | 138077 +++++++-------- .../plotly/plotly/graph_objects/__init__.py | 4 - .../plotly/plotly/graph_objs/__init__.py | 4 - .../python/plotly/plotly/graph_objs/_area.py | 1003 - .../python/plotly/plotly/graph_objs/_bar.py | 244 +- .../plotly/plotly/graph_objs/_barpolar.py | 4 + .../python/plotly/plotly/graph_objs/_box.py | 96 + .../plotly/plotly/graph_objs/_candlestick.py | 96 + .../plotly/plotly/graph_objs/_carpet.py | 8 +- .../plotly/plotly/graph_objs/_choropleth.py | 6 + .../plotly/graph_objs/_choroplethmapbox.py | 6 + .../python/plotly/plotly/graph_objs/_cone.py | 285 + .../plotly/plotly/graph_objs/_contour.py | 131 +- .../plotly/graph_objs/_contourcarpet.py | 6 + .../plotly/graph_objs/_densitymapbox.py | 6 + .../plotly/plotly/graph_objs/_figure.py | 923 +- .../plotly/plotly/graph_objs/_figurewidget.py | 923 +- .../plotly/plotly/graph_objs/_funnel.py | 105 +- .../plotly/plotly/graph_objs/_heatmap.py | 131 +- .../plotly/plotly/graph_objs/_heatmapgl.py | 12 +- .../plotly/plotly/graph_objs/_histogram.py | 100 + .../plotly/plotly/graph_objs/_histogram2d.py | 131 +- .../plotly/graph_objs/_histogram2dcontour.py | 131 +- .../python/plotly/plotly/graph_objs/_image.py | 36 + .../plotly/plotly/graph_objs/_isosurface.py | 195 + .../plotly/plotly/graph_objs/_layout.py | 316 +- .../plotly/plotly/graph_objs/_mesh3d.py | 150 + .../python/plotly/plotly/graph_objs/_ohlc.py | 96 + .../plotly/plotly/graph_objs/_pointcloud.py | 5 +- .../plotly/plotly/graph_objs/_scatter.py | 232 +- .../plotly/plotly/graph_objs/_scatter3d.py | 144 + .../plotly/plotly/graph_objs/_scattergl.py | 96 + .../python/plotly/plotly/graph_objs/_splom.py | 96 + .../plotly/plotly/graph_objs/_streamtube.py | 285 + .../plotly/plotly/graph_objs/_surface.py | 150 + .../plotly/plotly/graph_objs/_violin.py | 96 + .../plotly/plotly/graph_objs/_volume.py | 195 + .../plotly/plotly/graph_objs/_waterfall.py | 105 +- .../plotly/plotly/graph_objs/area/__init__.py | 15 - .../plotly/graph_objs/area/_hoverlabel.py | 503 - .../plotly/plotly/graph_objs/area/_marker.py | 488 - .../plotly/plotly/graph_objs/area/_stream.py | 140 - .../graph_objs/area/hoverlabel/__init__.py | 8 - .../plotly/plotly/graph_objs/bar/_marker.py | 71 + .../plotly/graph_objs/bar/marker/__init__.py | 5 +- .../plotly/graph_objs/bar/marker/_colorbar.py | 42 + .../_font.py => bar/marker/_pattern.py} | 302 +- .../plotly/graph_objs/barpolar/_marker.py | 71 + .../graph_objs/barpolar/marker/__init__.py | 5 +- .../graph_objs/barpolar/marker/_colorbar.py | 42 + .../graph_objs/barpolar/marker/_pattern.py | 392 + .../plotly/plotly/graph_objs/carpet/_aaxis.py | 26 +- .../plotly/plotly/graph_objs/carpet/_baxis.py | 26 +- .../plotly/graph_objs/choropleth/_colorbar.py | 42 + .../graph_objs/choroplethmapbox/_colorbar.py | 42 + .../plotly/graph_objs/cone/_colorbar.py | 42 + .../plotly/graph_objs/contour/_colorbar.py | 42 + .../graph_objs/contourcarpet/_colorbar.py | 42 + .../graph_objs/densitymapbox/_colorbar.py | 42 + .../plotly/graph_objs/funnel/_marker.py | 6 + .../graph_objs/funnel/marker/_colorbar.py | 42 + .../plotly/graph_objs/heatmap/_colorbar.py | 42 + .../plotly/graph_objs/heatmapgl/_colorbar.py | 42 + .../plotly/graph_objs/histogram/_marker.py | 71 + .../graph_objs/histogram/marker/__init__.py | 5 +- .../graph_objs/histogram/marker/_colorbar.py | 42 + .../graph_objs/histogram/marker/_pattern.py | 392 + .../graph_objs/histogram2d/_colorbar.py | 42 + .../histogram2dcontour/_colorbar.py | 42 + .../plotly/graph_objs/isosurface/_colorbar.py | 42 + .../plotly/graph_objs/layout/__init__.py | 4 - .../plotly/graph_objs/layout/_angularaxis.py | 479 - .../plotly/graph_objs/layout/_coloraxis.py | 6 + .../plotly/graph_objs/layout/_legend.py | 4 +- .../plotly/graph_objs/layout/_modebar.py | 207 +- .../plotly/graph_objs/layout/_radialaxis.py | 514 - .../plotly/graph_objs/layout/_template.py | 3 - .../plotly/plotly/graph_objs/layout/_xaxis.py | 45 + .../plotly/plotly/graph_objs/layout/_yaxis.py | 45 + .../graph_objs/layout/coloraxis/_colorbar.py | 42 + .../plotly/graph_objs/layout/legend/_title.py | 9 +- .../graph_objs/layout/legend/title/_font.py | 3 +- .../graph_objs/layout/template/_data.py | 35 - .../layout/template/data/__init__.py | 2 - .../graph_objs/layout/template/data/_area.py | 1 - .../plotly/graph_objs/mesh3d/_colorbar.py | 42 + .../plotly/plotly/graph_objs/parcats/_line.py | 6 + .../graph_objs/parcats/line/_colorbar.py | 42 + .../plotly/graph_objs/parcoords/_line.py | 6 + .../graph_objs/parcoords/line/_colorbar.py | 42 + .../plotly/graph_objs/scatter/_marker.py | 6 + .../graph_objs/scatter/marker/_colorbar.py | 42 + .../plotly/graph_objs/scatter3d/_line.py | 6 + .../plotly/graph_objs/scatter3d/_marker.py | 6 + .../graph_objs/scatter3d/line/_colorbar.py | 42 + .../graph_objs/scatter3d/marker/_colorbar.py | 42 + .../graph_objs/scattercarpet/_marker.py | 6 + .../scattercarpet/marker/_colorbar.py | 42 + .../plotly/graph_objs/scattergeo/_marker.py | 6 + .../graph_objs/scattergeo/marker/_colorbar.py | 42 + .../plotly/graph_objs/scattergl/_marker.py | 6 + .../graph_objs/scattergl/marker/_colorbar.py | 42 + .../graph_objs/scattermapbox/_marker.py | 6 + .../scattermapbox/marker/_colorbar.py | 42 + .../plotly/graph_objs/scatterpolar/_marker.py | 6 + .../scatterpolar/marker/_colorbar.py | 42 + .../graph_objs/scatterpolargl/_marker.py | 6 + .../scatterpolargl/marker/_colorbar.py | 42 + .../graph_objs/scatterternary/_marker.py | 6 + .../scatterternary/marker/_colorbar.py | 42 + .../plotly/plotly/graph_objs/splom/_marker.py | 6 + .../graph_objs/splom/marker/_colorbar.py | 42 + .../plotly/graph_objs/streamtube/_colorbar.py | 42 + .../plotly/graph_objs/sunburst/_marker.py | 6 + .../graph_objs/sunburst/marker/_colorbar.py | 42 + .../plotly/graph_objs/surface/_colorbar.py | 42 + .../plotly/graph_objs/treemap/_marker.py | 6 + .../graph_objs/treemap/marker/_colorbar.py | 42 + .../plotly/graph_objs/volume/_colorbar.py | 42 + .../plotly/offline/_plotlyjs_version.py | 2 +- .../plotly/plotly/package_data/plotly.min.js | 33 +- .../plotly/plotly/validators/__init__.py | 2 - .../python/plotly/plotly/validators/_area.py | 125 - .../python/plotly/plotly/validators/_bar.py | 38 +- .../python/plotly/plotly/validators/_box.py | 20 + .../plotly/plotly/validators/_candlestick.py | 20 + .../python/plotly/plotly/validators/_cone.py | 54 + .../plotly/plotly/validators/_contour.py | 28 +- .../python/plotly/plotly/validators/_data.py | 1 - .../plotly/plotly/validators/_funnel.py | 22 +- .../plotly/plotly/validators/_heatmap.py | 28 +- .../plotly/plotly/validators/_histogram.py | 20 + .../plotly/plotly/validators/_histogram2d.py | 28 +- .../plotly/validators/_histogram2dcontour.py | 28 +- .../python/plotly/plotly/validators/_image.py | 4 + .../plotly/plotly/validators/_isosurface.py | 38 + .../plotly/plotly/validators/_layout.py | 24 +- .../plotly/plotly/validators/_mesh3d.py | 30 + .../python/plotly/plotly/validators/_ohlc.py | 20 + .../plotly/plotly/validators/_scatter.py | 36 +- .../plotly/plotly/validators/_scatter3d.py | 30 + .../plotly/plotly/validators/_scattergl.py | 20 + .../python/plotly/plotly/validators/_splom.py | 20 + .../plotly/plotly/validators/_streamtube.py | 54 + .../plotly/plotly/validators/_surface.py | 30 + .../plotly/plotly/validators/_violin.py | 20 + .../plotly/plotly/validators/_volume.py | 38 + .../plotly/plotly/validators/_waterfall.py | 22 +- .../plotly/plotly/validators/area/__init__.py | 56 - .../plotly/validators/area/_customdata.py | 12 - .../plotly/validators/area/_customdatasrc.py | 12 - .../plotly/validators/area/_hoverinfo.py | 15 - .../plotly/validators/area/_hoverinfosrc.py | 12 - .../plotly/validators/area/_hoverlabel.py | 51 - .../plotly/plotly/validators/area/_ids.py | 12 - .../plotly/plotly/validators/area/_idssrc.py | 12 - .../plotly/validators/area/_legendgroup.py | 12 - .../plotly/plotly/validators/area/_marker.py | 52 - .../plotly/plotly/validators/area/_meta.py | 13 - .../plotly/plotly/validators/area/_metasrc.py | 12 - .../plotly/plotly/validators/area/_name.py | 12 - .../plotly/plotly/validators/area/_opacity.py | 14 - .../plotly/plotly/validators/area/_r.py | 12 - .../plotly/plotly/validators/area/_rsrc.py | 12 - .../plotly/validators/area/_showlegend.py | 12 - .../plotly/plotly/validators/area/_stream.py | 25 - .../plotly/plotly/validators/area/_t.py | 12 - .../plotly/plotly/validators/area/_tsrc.py | 12 - .../plotly/plotly/validators/area/_uid.py | 12 - .../plotly/validators/area/_uirevision.py | 12 - .../plotly/plotly/validators/area/_visible.py | 13 - .../validators/area/hoverlabel/__init__.py | 30 - .../validators/area/hoverlabel/_align.py | 14 - .../validators/area/hoverlabel/_alignsrc.py | 12 - .../area/hoverlabel/_bordercolor.py | 15 - .../area/hoverlabel/_bordercolorsrc.py | 14 - .../validators/area/hoverlabel/_font.py | 46 - .../validators/area/hoverlabel/_namelength.py | 16 - .../area/hoverlabel/_namelengthsrc.py | 14 - .../area/hoverlabel/font/__init__.py | 24 - .../validators/area/hoverlabel/font/_color.py | 15 - .../area/hoverlabel/font/_colorsrc.py | 14 - .../area/hoverlabel/font/_family.py | 17 - .../area/hoverlabel/font/_familysrc.py | 14 - .../plotly/validators/area/marker/__init__.py | 28 - .../validators/area/marker/_colorsrc.py | 12 - .../validators/area/marker/_opacitysrc.py | 12 - .../plotly/validators/area/marker/_symbol.py | 492 - .../validators/area/marker/_symbolsrc.py | 12 - .../plotly/validators/area/stream/__init__.py | 11 - .../validators/area/stream/_maxpoints.py | 14 - .../plotly/validators/area/stream/_token.py | 14 - .../plotly/plotly/validators/bar/__init__.py | 12 +- .../plotly/validators/bar/_alignmentgroup.py | 1 - .../plotly/plotly/validators/bar/_base.py | 1 - .../plotly/plotly/validators/bar/_basesrc.py | 1 - .../plotly/validators/bar/_cliponaxis.py | 1 - .../plotly/validators/bar/_constraintext.py | 1 - .../plotly/validators/bar/_customdata.py | 1 - .../plotly/validators/bar/_customdatasrc.py | 1 - .../plotly/plotly/validators/bar/_dx.py | 1 - .../plotly/plotly/validators/bar/_dy.py | 1 - .../plotly/validators/bar/_hoverinfo.py | 1 - .../plotly/validators/bar/_hoverinfosrc.py | 1 - .../plotly/validators/bar/_hovertemplate.py | 1 - .../validators/bar/_hovertemplatesrc.py | 1 - .../plotly/validators/bar/_hovertext.py | 1 - .../plotly/validators/bar/_hovertextsrc.py | 1 - .../plotly/plotly/validators/bar/_ids.py | 1 - .../plotly/plotly/validators/bar/_idssrc.py | 1 - .../validators/bar/_insidetextanchor.py | 1 - .../plotly/validators/bar/_legendgroup.py | 1 - .../plotly/plotly/validators/bar/_marker.py | 3 + .../plotly/plotly/validators/bar/_meta.py | 1 - .../plotly/plotly/validators/bar/_metasrc.py | 1 - .../plotly/plotly/validators/bar/_name.py | 1 - .../plotly/plotly/validators/bar/_offset.py | 1 - .../plotly/validators/bar/_offsetgroup.py | 1 - .../plotly/validators/bar/_offsetsrc.py | 1 - .../plotly/plotly/validators/bar/_opacity.py | 1 - .../plotly/validators/bar/_orientation.py | 1 - .../python/plotly/plotly/validators/bar/_r.py | 12 - .../plotly/plotly/validators/bar/_rsrc.py | 12 - .../plotly/validators/bar/_selectedpoints.py | 1 - .../plotly/validators/bar/_showlegend.py | 1 - .../python/plotly/plotly/validators/bar/_t.py | 12 - .../plotly/plotly/validators/bar/_text.py | 1 - .../plotly/validators/bar/_textangle.py | 1 - .../plotly/validators/bar/_textposition.py | 1 - .../plotly/validators/bar/_textpositionsrc.py | 1 - .../plotly/plotly/validators/bar/_textsrc.py | 1 - .../plotly/validators/bar/_texttemplate.py | 1 - .../plotly/validators/bar/_texttemplatesrc.py | 1 - .../plotly/plotly/validators/bar/_tsrc.py | 12 - .../plotly/plotly/validators/bar/_uid.py | 1 - .../plotly/validators/bar/_uirevision.py | 1 - .../plotly/plotly/validators/bar/_visible.py | 1 - .../plotly/plotly/validators/bar/_width.py | 1 - .../plotly/plotly/validators/bar/_widthsrc.py | 1 - .../python/plotly/plotly/validators/bar/_x.py | 1 - .../plotly/plotly/validators/bar/_x0.py | 1 - .../plotly/plotly/validators/bar/_xaxis.py | 1 - .../plotly/validators/bar/_xcalendar.py | 1 - .../plotly/validators/bar/_xhoverformat.py | 11 + .../plotly/plotly/validators/bar/_xperiod.py | 1 - .../plotly/plotly/validators/bar/_xperiod0.py | 1 - .../validators/bar/_xperiodalignment.py | 1 - .../plotly/plotly/validators/bar/_xsrc.py | 1 - .../python/plotly/plotly/validators/bar/_y.py | 1 - .../plotly/plotly/validators/bar/_y0.py | 1 - .../plotly/plotly/validators/bar/_yaxis.py | 1 - .../plotly/validators/bar/_ycalendar.py | 1 - .../plotly/validators/bar/_yhoverformat.py | 11 + .../plotly/plotly/validators/bar/_yperiod.py | 1 - .../plotly/plotly/validators/bar/_yperiod0.py | 1 - .../validators/bar/_yperiodalignment.py | 1 - .../plotly/plotly/validators/bar/_ysrc.py | 1 - .../plotly/validators/bar/error_x/_array.py | 1 - .../validators/bar/error_x/_arrayminus.py | 1 - .../validators/bar/error_x/_arrayminussrc.py | 1 - .../validators/bar/error_x/_arraysrc.py | 1 - .../plotly/validators/bar/error_x/_color.py | 1 - .../validators/bar/error_x/_copy_ystyle.py | 1 - .../validators/bar/error_x/_symmetric.py | 1 - .../validators/bar/error_x/_thickness.py | 1 - .../validators/bar/error_x/_traceref.py | 1 - .../validators/bar/error_x/_tracerefminus.py | 1 - .../plotly/validators/bar/error_x/_type.py | 1 - .../plotly/validators/bar/error_x/_value.py | 1 - .../validators/bar/error_x/_valueminus.py | 1 - .../plotly/validators/bar/error_x/_visible.py | 1 - .../plotly/validators/bar/error_x/_width.py | 1 - .../plotly/validators/bar/error_y/_array.py | 1 - .../validators/bar/error_y/_arrayminus.py | 1 - .../validators/bar/error_y/_arrayminussrc.py | 1 - .../validators/bar/error_y/_arraysrc.py | 1 - .../plotly/validators/bar/error_y/_color.py | 1 - .../validators/bar/error_y/_symmetric.py | 1 - .../validators/bar/error_y/_thickness.py | 1 - .../validators/bar/error_y/_traceref.py | 1 - .../validators/bar/error_y/_tracerefminus.py | 1 - .../plotly/validators/bar/error_y/_type.py | 1 - .../plotly/validators/bar/error_y/_value.py | 1 - .../validators/bar/error_y/_valueminus.py | 1 - .../plotly/validators/bar/error_y/_visible.py | 1 - .../plotly/validators/bar/error_y/_width.py | 1 - .../validators/bar/hoverlabel/_align.py | 1 - .../validators/bar/hoverlabel/_alignsrc.py | 1 - .../validators/bar/hoverlabel/_bgcolor.py | 1 - .../validators/bar/hoverlabel/_bgcolorsrc.py | 1 - .../validators/bar/hoverlabel/_bordercolor.py | 1 - .../bar/hoverlabel/_bordercolorsrc.py | 1 - .../validators/bar/hoverlabel/_namelength.py | 1 - .../bar/hoverlabel/_namelengthsrc.py | 1 - .../validators/bar/hoverlabel/font/_color.py | 1 - .../bar/hoverlabel/font/_colorsrc.py | 1 - .../validators/bar/hoverlabel/font/_family.py | 1 - .../bar/hoverlabel/font/_familysrc.py | 1 - .../validators/bar/hoverlabel/font/_size.py | 1 - .../bar/hoverlabel/font/_sizesrc.py | 1 - .../validators/bar/insidetextfont/_color.py | 1 - .../bar/insidetextfont/_colorsrc.py | 1 - .../validators/bar/insidetextfont/_family.py | 1 - .../bar/insidetextfont/_familysrc.py | 1 - .../validators/bar/insidetextfont/_size.py | 1 - .../validators/bar/insidetextfont/_sizesrc.py | 1 - .../plotly/validators/bar/marker/__init__.py | 2 + .../validators/bar/marker/_autocolorscale.py | 1 - .../plotly/validators/bar/marker/_cauto.py | 1 - .../plotly/validators/bar/marker/_cmax.py | 1 - .../plotly/validators/bar/marker/_cmid.py | 1 - .../plotly/validators/bar/marker/_cmin.py | 1 - .../plotly/validators/bar/marker/_color.py | 1 - .../validators/bar/marker/_coloraxis.py | 1 - .../plotly/validators/bar/marker/_colorbar.py | 6 + .../validators/bar/marker/_colorscale.py | 1 - .../plotly/validators/bar/marker/_colorsrc.py | 1 - .../plotly/validators/bar/marker/_opacity.py | 1 - .../validators/bar/marker/_opacitysrc.py | 1 - .../plotly/validators/bar/marker/_pattern.py | 45 + .../validators/bar/marker/_reversescale.py | 1 - .../validators/bar/marker/_showscale.py | 1 - .../bar/marker/colorbar/__init__.py | 2 + .../bar/marker/colorbar/_bgcolor.py | 1 - .../bar/marker/colorbar/_bordercolor.py | 1 - .../bar/marker/colorbar/_borderwidth.py | 1 - .../validators/bar/marker/colorbar/_dtick.py | 1 - .../bar/marker/colorbar/_exponentformat.py | 1 - .../validators/bar/marker/colorbar/_len.py | 1 - .../bar/marker/colorbar/_lenmode.py | 1 - .../bar/marker/colorbar/_minexponent.py | 1 - .../validators/bar/marker/colorbar/_nticks.py | 1 - .../bar/marker/colorbar/_outlinecolor.py | 1 - .../bar/marker/colorbar/_outlinewidth.py | 1 - .../bar/marker/colorbar/_separatethousands.py | 1 - .../bar/marker/colorbar/_showexponent.py | 1 - .../bar/marker/colorbar/_showticklabels.py | 1 - .../bar/marker/colorbar/_showtickprefix.py | 1 - .../bar/marker/colorbar/_showticksuffix.py | 1 - .../bar/marker/colorbar/_thickness.py | 1 - .../bar/marker/colorbar/_thicknessmode.py | 1 - .../validators/bar/marker/colorbar/_tick0.py | 1 - .../bar/marker/colorbar/_tickangle.py | 1 - .../bar/marker/colorbar/_tickcolor.py | 1 - .../bar/marker/colorbar/_tickformat.py | 1 - .../bar/marker/colorbar/_ticklabeloverflow.py | 17 + .../bar/marker/colorbar/_ticklabelposition.py | 1 - .../bar/marker/colorbar/_ticklen.py | 1 - .../bar/marker/colorbar/_tickmode.py | 1 - .../bar/marker/colorbar/_tickprefix.py | 1 - .../validators/bar/marker/colorbar/_ticks.py | 1 - .../bar/marker/colorbar/_ticksuffix.py | 1 - .../bar/marker/colorbar/_ticktext.py | 1 - .../bar/marker/colorbar/_ticktextsrc.py | 1 - .../bar/marker/colorbar/_tickvals.py | 1 - .../bar/marker/colorbar/_tickvalssrc.py | 1 - .../bar/marker/colorbar/_tickwidth.py | 1 - .../validators/bar/marker/colorbar/_x.py | 1 - .../bar/marker/colorbar/_xanchor.py | 1 - .../validators/bar/marker/colorbar/_xpad.py | 1 - .../validators/bar/marker/colorbar/_y.py | 1 - .../bar/marker/colorbar/_yanchor.py | 1 - .../validators/bar/marker/colorbar/_ypad.py | 1 - .../bar/marker/colorbar/tickfont/_color.py | 1 - .../bar/marker/colorbar/tickfont/_family.py | 1 - .../bar/marker/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../marker/colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../marker/colorbar/tickformatstop/_value.py | 1 - .../bar/marker/colorbar/title/_side.py | 1 - .../bar/marker/colorbar/title/_text.py | 1 - .../bar/marker/colorbar/title/font/_color.py | 1 - .../bar/marker/colorbar/title/font/_family.py | 1 - .../bar/marker/colorbar/title/font/_size.py | 1 - .../bar/marker/line/_autocolorscale.py | 1 - .../validators/bar/marker/line/_cauto.py | 1 - .../validators/bar/marker/line/_cmax.py | 1 - .../validators/bar/marker/line/_cmid.py | 1 - .../validators/bar/marker/line/_cmin.py | 1 - .../validators/bar/marker/line/_color.py | 1 - .../validators/bar/marker/line/_coloraxis.py | 1 - .../validators/bar/marker/line/_colorscale.py | 1 - .../validators/bar/marker/line/_colorsrc.py | 1 - .../bar/marker/line/_reversescale.py | 1 - .../validators/bar/marker/line/_width.py | 1 - .../validators/bar/marker/line/_widthsrc.py | 1 - .../validators/bar/marker/pattern/__init__.py | 28 + .../marker/pattern}/_bgcolor.py | 7 +- .../marker/pattern}/_bgcolorsrc.py | 3 +- .../validators/bar/marker/pattern/_shape.py | 13 + .../bar/marker/pattern/_shapesrc.py | 13 + .../marker => bar/marker/pattern}/_size.py | 5 +- .../font => bar/marker/pattern}/_sizesrc.py | 3 +- .../marker/pattern/_solidity.py} | 9 +- .../bar/marker/pattern/_soliditysrc.py | 13 + .../validators/bar/outsidetextfont/_color.py | 1 - .../bar/outsidetextfont/_colorsrc.py | 1 - .../validators/bar/outsidetextfont/_family.py | 1 - .../bar/outsidetextfont/_familysrc.py | 1 - .../validators/bar/outsidetextfont/_size.py | 1 - .../bar/outsidetextfont/_sizesrc.py | 1 - .../validators/bar/selected/marker/_color.py | 1 - .../bar/selected/marker/_opacity.py | 1 - .../bar/selected/textfont/_color.py | 1 - .../validators/bar/stream/_maxpoints.py | 1 - .../plotly/validators/bar/stream/_token.py | 1 - .../plotly/validators/bar/textfont/_color.py | 1 - .../validators/bar/textfont/_colorsrc.py | 1 - .../plotly/validators/bar/textfont/_family.py | 1 - .../validators/bar/textfont/_familysrc.py | 1 - .../plotly/validators/bar/textfont/_size.py | 1 - .../validators/bar/textfont/_sizesrc.py | 1 - .../bar/unselected/marker/_color.py | 1 - .../bar/unselected/marker/_opacity.py | 1 - .../bar/unselected/textfont/_color.py | 1 - .../plotly/validators/barpolar/_base.py | 1 - .../plotly/validators/barpolar/_basesrc.py | 1 - .../plotly/validators/barpolar/_customdata.py | 1 - .../validators/barpolar/_customdatasrc.py | 1 - .../plotly/plotly/validators/barpolar/_dr.py | 1 - .../plotly/validators/barpolar/_dtheta.py | 1 - .../plotly/validators/barpolar/_hoverinfo.py | 1 - .../validators/barpolar/_hoverinfosrc.py | 1 - .../validators/barpolar/_hovertemplate.py | 1 - .../validators/barpolar/_hovertemplatesrc.py | 1 - .../plotly/validators/barpolar/_hovertext.py | 1 - .../validators/barpolar/_hovertextsrc.py | 1 - .../plotly/plotly/validators/barpolar/_ids.py | 1 - .../plotly/validators/barpolar/_idssrc.py | 1 - .../validators/barpolar/_legendgroup.py | 1 - .../plotly/validators/barpolar/_marker.py | 4 + .../plotly/validators/barpolar/_meta.py | 1 - .../plotly/validators/barpolar/_metasrc.py | 1 - .../plotly/validators/barpolar/_name.py | 1 - .../plotly/validators/barpolar/_offset.py | 1 - .../plotly/validators/barpolar/_offsetsrc.py | 1 - .../plotly/validators/barpolar/_opacity.py | 1 - .../plotly/plotly/validators/barpolar/_r.py | 1 - .../plotly/plotly/validators/barpolar/_r0.py | 1 - .../plotly/validators/barpolar/_rsrc.py | 1 - .../validators/barpolar/_selectedpoints.py | 1 - .../plotly/validators/barpolar/_showlegend.py | 1 - .../plotly/validators/barpolar/_subplot.py | 1 - .../plotly/validators/barpolar/_text.py | 1 - .../plotly/validators/barpolar/_textsrc.py | 1 - .../plotly/validators/barpolar/_theta.py | 1 - .../plotly/validators/barpolar/_theta0.py | 1 - .../plotly/validators/barpolar/_thetasrc.py | 1 - .../plotly/validators/barpolar/_thetaunit.py | 1 - .../plotly/plotly/validators/barpolar/_uid.py | 1 - .../plotly/validators/barpolar/_uirevision.py | 1 - .../plotly/validators/barpolar/_visible.py | 1 - .../plotly/validators/barpolar/_width.py | 1 - .../plotly/validators/barpolar/_widthsrc.py | 1 - .../validators/barpolar/hoverlabel/_align.py | 1 - .../barpolar/hoverlabel/_alignsrc.py | 1 - .../barpolar/hoverlabel/_bgcolor.py | 1 - .../barpolar/hoverlabel/_bgcolorsrc.py | 1 - .../barpolar/hoverlabel/_bordercolor.py | 1 - .../barpolar/hoverlabel/_bordercolorsrc.py | 1 - .../barpolar/hoverlabel/_namelength.py | 1 - .../barpolar/hoverlabel/_namelengthsrc.py | 1 - .../barpolar/hoverlabel/font/_color.py | 1 - .../barpolar/hoverlabel/font/_colorsrc.py | 1 - .../barpolar/hoverlabel/font/_family.py | 1 - .../barpolar/hoverlabel/font/_familysrc.py | 1 - .../barpolar/hoverlabel/font/_size.py | 1 - .../barpolar/hoverlabel/font/_sizesrc.py | 1 - .../validators/barpolar/marker/__init__.py | 2 + .../barpolar/marker/_autocolorscale.py | 1 - .../validators/barpolar/marker/_cauto.py | 1 - .../validators/barpolar/marker/_cmax.py | 1 - .../validators/barpolar/marker/_cmid.py | 1 - .../validators/barpolar/marker/_cmin.py | 1 - .../validators/barpolar/marker/_color.py | 1 - .../validators/barpolar/marker/_coloraxis.py | 1 - .../validators/barpolar/marker/_colorbar.py | 6 + .../validators/barpolar/marker/_colorscale.py | 1 - .../validators/barpolar/marker/_colorsrc.py | 1 - .../validators/barpolar/marker/_opacity.py | 1 - .../validators/barpolar/marker/_opacitysrc.py | 1 - .../validators/barpolar/marker/_pattern.py | 45 + .../barpolar/marker/_reversescale.py | 1 - .../validators/barpolar/marker/_showscale.py | 1 - .../barpolar/marker/colorbar/__init__.py | 2 + .../barpolar/marker/colorbar/_bgcolor.py | 1 - .../barpolar/marker/colorbar/_bordercolor.py | 1 - .../barpolar/marker/colorbar/_borderwidth.py | 1 - .../barpolar/marker/colorbar/_dtick.py | 1 - .../marker/colorbar/_exponentformat.py | 1 - .../barpolar/marker/colorbar/_len.py | 1 - .../barpolar/marker/colorbar/_lenmode.py | 1 - .../barpolar/marker/colorbar/_minexponent.py | 1 - .../barpolar/marker/colorbar/_nticks.py | 1 - .../barpolar/marker/colorbar/_outlinecolor.py | 1 - .../barpolar/marker/colorbar/_outlinewidth.py | 1 - .../marker/colorbar/_separatethousands.py | 1 - .../barpolar/marker/colorbar/_showexponent.py | 1 - .../marker/colorbar/_showticklabels.py | 1 - .../marker/colorbar/_showtickprefix.py | 1 - .../marker/colorbar/_showticksuffix.py | 1 - .../barpolar/marker/colorbar/_thickness.py | 1 - .../marker/colorbar/_thicknessmode.py | 1 - .../barpolar/marker/colorbar/_tick0.py | 1 - .../barpolar/marker/colorbar/_tickangle.py | 1 - .../barpolar/marker/colorbar/_tickcolor.py | 1 - .../barpolar/marker/colorbar/_tickformat.py | 1 - .../marker/colorbar/_ticklabeloverflow.py | 17 + .../marker/colorbar/_ticklabelposition.py | 1 - .../barpolar/marker/colorbar/_ticklen.py | 1 - .../barpolar/marker/colorbar/_tickmode.py | 1 - .../barpolar/marker/colorbar/_tickprefix.py | 1 - .../barpolar/marker/colorbar/_ticks.py | 1 - .../barpolar/marker/colorbar/_ticksuffix.py | 1 - .../barpolar/marker/colorbar/_ticktext.py | 1 - .../barpolar/marker/colorbar/_ticktextsrc.py | 1 - .../barpolar/marker/colorbar/_tickvals.py | 1 - .../barpolar/marker/colorbar/_tickvalssrc.py | 1 - .../barpolar/marker/colorbar/_tickwidth.py | 1 - .../validators/barpolar/marker/colorbar/_x.py | 1 - .../barpolar/marker/colorbar/_xanchor.py | 1 - .../barpolar/marker/colorbar/_xpad.py | 1 - .../validators/barpolar/marker/colorbar/_y.py | 1 - .../barpolar/marker/colorbar/_yanchor.py | 1 - .../barpolar/marker/colorbar/_ypad.py | 1 - .../marker/colorbar/tickfont/_color.py | 1 - .../marker/colorbar/tickfont/_family.py | 1 - .../marker/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../marker/colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../marker/colorbar/tickformatstop/_value.py | 1 - .../barpolar/marker/colorbar/title/_side.py | 1 - .../barpolar/marker/colorbar/title/_text.py | 1 - .../marker/colorbar/title/font/_color.py | 1 - .../marker/colorbar/title/font/_family.py | 1 - .../marker/colorbar/title/font/_size.py | 1 - .../barpolar/marker/line/_autocolorscale.py | 1 - .../validators/barpolar/marker/line/_cauto.py | 1 - .../validators/barpolar/marker/line/_cmax.py | 1 - .../validators/barpolar/marker/line/_cmid.py | 1 - .../validators/barpolar/marker/line/_cmin.py | 1 - .../validators/barpolar/marker/line/_color.py | 1 - .../barpolar/marker/line/_coloraxis.py | 1 - .../barpolar/marker/line/_colorscale.py | 1 - .../barpolar/marker/line/_colorsrc.py | 1 - .../barpolar/marker/line/_reversescale.py | 1 - .../validators/barpolar/marker/line/_width.py | 1 - .../barpolar/marker/line/_widthsrc.py | 1 - .../barpolar/marker/pattern/__init__.py | 28 + .../marker/pattern/_bgcolor.py} | 9 +- .../barpolar/marker/pattern/_bgcolorsrc.py | 13 + .../barpolar/marker/pattern/_shape.py | 15 + .../barpolar/marker/pattern/_shapesrc.py | 13 + .../font => barpolar/marker/pattern}/_size.py | 7 +- .../marker/pattern}/_sizesrc.py | 5 +- .../barpolar/marker/pattern/_solidity.py | 16 + .../barpolar/marker/pattern/_soliditysrc.py | 13 + .../barpolar/selected/marker/_color.py | 1 - .../barpolar/selected/marker/_opacity.py | 1 - .../barpolar/selected/textfont/_color.py | 1 - .../validators/barpolar/stream/_maxpoints.py | 1 - .../validators/barpolar/stream/_token.py | 1 - .../barpolar/unselected/marker/_color.py | 1 - .../barpolar/unselected/marker/_opacity.py | 1 - .../barpolar/unselected/textfont/_color.py | 1 - .../plotly/plotly/validators/box/__init__.py | 4 + .../plotly/validators/box/_alignmentgroup.py | 1 - .../plotly/plotly/validators/box/_boxmean.py | 1 - .../plotly/validators/box/_boxpoints.py | 1 - .../plotly/validators/box/_customdata.py | 1 - .../plotly/validators/box/_customdatasrc.py | 1 - .../plotly/plotly/validators/box/_dx.py | 1 - .../plotly/plotly/validators/box/_dy.py | 1 - .../plotly/validators/box/_fillcolor.py | 1 - .../plotly/validators/box/_hoverinfo.py | 1 - .../plotly/validators/box/_hoverinfosrc.py | 1 - .../plotly/plotly/validators/box/_hoveron.py | 1 - .../plotly/validators/box/_hovertemplate.py | 1 - .../validators/box/_hovertemplatesrc.py | 1 - .../plotly/validators/box/_hovertext.py | 1 - .../plotly/validators/box/_hovertextsrc.py | 1 - .../plotly/plotly/validators/box/_ids.py | 1 - .../plotly/plotly/validators/box/_idssrc.py | 1 - .../plotly/plotly/validators/box/_jitter.py | 1 - .../plotly/validators/box/_legendgroup.py | 1 - .../plotly/validators/box/_lowerfence.py | 1 - .../plotly/validators/box/_lowerfencesrc.py | 1 - .../plotly/plotly/validators/box/_mean.py | 1 - .../plotly/plotly/validators/box/_meansrc.py | 1 - .../plotly/plotly/validators/box/_median.py | 1 - .../plotly/validators/box/_mediansrc.py | 1 - .../plotly/plotly/validators/box/_meta.py | 1 - .../plotly/plotly/validators/box/_metasrc.py | 1 - .../plotly/plotly/validators/box/_name.py | 1 - .../plotly/plotly/validators/box/_notched.py | 1 - .../plotly/validators/box/_notchspan.py | 1 - .../plotly/validators/box/_notchspansrc.py | 1 - .../plotly/validators/box/_notchwidth.py | 1 - .../plotly/validators/box/_offsetgroup.py | 1 - .../plotly/plotly/validators/box/_opacity.py | 1 - .../plotly/validators/box/_orientation.py | 1 - .../plotly/plotly/validators/box/_pointpos.py | 1 - .../plotly/plotly/validators/box/_q1.py | 1 - .../plotly/plotly/validators/box/_q1src.py | 1 - .../plotly/plotly/validators/box/_q3.py | 1 - .../plotly/plotly/validators/box/_q3src.py | 1 - .../plotly/validators/box/_quartilemethod.py | 1 - .../plotly/plotly/validators/box/_sd.py | 1 - .../plotly/plotly/validators/box/_sdsrc.py | 1 - .../plotly/validators/box/_selectedpoints.py | 1 - .../plotly/validators/box/_showlegend.py | 1 - .../plotly/plotly/validators/box/_text.py | 1 - .../plotly/plotly/validators/box/_textsrc.py | 1 - .../plotly/plotly/validators/box/_uid.py | 1 - .../plotly/validators/box/_uirevision.py | 1 - .../plotly/validators/box/_upperfence.py | 1 - .../plotly/validators/box/_upperfencesrc.py | 1 - .../plotly/plotly/validators/box/_visible.py | 1 - .../plotly/validators/box/_whiskerwidth.py | 1 - .../plotly/plotly/validators/box/_width.py | 1 - .../python/plotly/plotly/validators/box/_x.py | 1 - .../plotly/plotly/validators/box/_x0.py | 1 - .../plotly/plotly/validators/box/_xaxis.py | 1 - .../plotly/validators/box/_xcalendar.py | 1 - .../plotly/validators/box/_xhoverformat.py | 11 + .../plotly/plotly/validators/box/_xperiod.py | 1 - .../plotly/plotly/validators/box/_xperiod0.py | 1 - .../validators/box/_xperiodalignment.py | 1 - .../plotly/plotly/validators/box/_xsrc.py | 1 - .../python/plotly/plotly/validators/box/_y.py | 1 - .../plotly/plotly/validators/box/_y0.py | 1 - .../plotly/plotly/validators/box/_yaxis.py | 1 - .../plotly/validators/box/_ycalendar.py | 1 - .../plotly/validators/box/_yhoverformat.py | 11 + .../plotly/plotly/validators/box/_yperiod.py | 1 - .../plotly/plotly/validators/box/_yperiod0.py | 1 - .../validators/box/_yperiodalignment.py | 1 - .../plotly/plotly/validators/box/_ysrc.py | 1 - .../validators/box/hoverlabel/_align.py | 1 - .../validators/box/hoverlabel/_alignsrc.py | 1 - .../validators/box/hoverlabel/_bgcolor.py | 1 - .../validators/box/hoverlabel/_bgcolorsrc.py | 1 - .../validators/box/hoverlabel/_bordercolor.py | 1 - .../box/hoverlabel/_bordercolorsrc.py | 1 - .../validators/box/hoverlabel/_namelength.py | 1 - .../box/hoverlabel/_namelengthsrc.py | 1 - .../validators/box/hoverlabel/font/_color.py | 1 - .../box/hoverlabel/font/_colorsrc.py | 1 - .../validators/box/hoverlabel/font/_family.py | 1 - .../box/hoverlabel/font/_familysrc.py | 1 - .../validators/box/hoverlabel/font/_size.py | 1 - .../box/hoverlabel/font/_sizesrc.py | 1 - .../plotly/validators/box/line/_color.py | 1 - .../plotly/validators/box/line/_width.py | 1 - .../plotly/validators/box/marker/_color.py | 1 - .../plotly/validators/box/marker/_opacity.py | 1 - .../validators/box/marker/_outliercolor.py | 1 - .../plotly/validators/box/marker/_size.py | 1 - .../plotly/validators/box/marker/_symbol.py | 1 - .../validators/box/marker/line/_color.py | 1 - .../box/marker/line/_outliercolor.py | 1 - .../box/marker/line/_outlierwidth.py | 1 - .../validators/box/marker/line/_width.py | 1 - .../validators/box/selected/marker/_color.py | 1 - .../box/selected/marker/_opacity.py | 1 - .../validators/box/selected/marker/_size.py | 1 - .../validators/box/stream/_maxpoints.py | 1 - .../plotly/validators/box/stream/_token.py | 1 - .../box/unselected/marker/_color.py | 1 - .../box/unselected/marker/_opacity.py | 1 - .../validators/box/unselected/marker/_size.py | 1 - .../plotly/validators/candlestick/__init__.py | 4 + .../plotly/validators/candlestick/_close.py | 1 - .../validators/candlestick/_closesrc.py | 1 - .../validators/candlestick/_customdata.py | 1 - .../validators/candlestick/_customdatasrc.py | 1 - .../plotly/validators/candlestick/_high.py | 1 - .../plotly/validators/candlestick/_highsrc.py | 1 - .../validators/candlestick/_hoverinfo.py | 1 - .../validators/candlestick/_hoverinfosrc.py | 1 - .../validators/candlestick/_hovertext.py | 1 - .../validators/candlestick/_hovertextsrc.py | 1 - .../plotly/validators/candlestick/_ids.py | 1 - .../plotly/validators/candlestick/_idssrc.py | 1 - .../validators/candlestick/_legendgroup.py | 1 - .../plotly/validators/candlestick/_low.py | 1 - .../plotly/validators/candlestick/_lowsrc.py | 1 - .../plotly/validators/candlestick/_meta.py | 1 - .../plotly/validators/candlestick/_metasrc.py | 1 - .../plotly/validators/candlestick/_name.py | 1 - .../plotly/validators/candlestick/_opacity.py | 1 - .../plotly/validators/candlestick/_open.py | 1 - .../plotly/validators/candlestick/_opensrc.py | 1 - .../validators/candlestick/_selectedpoints.py | 1 - .../validators/candlestick/_showlegend.py | 1 - .../plotly/validators/candlestick/_text.py | 1 - .../plotly/validators/candlestick/_textsrc.py | 1 - .../plotly/validators/candlestick/_uid.py | 1 - .../validators/candlestick/_uirevision.py | 1 - .../plotly/validators/candlestick/_visible.py | 1 - .../validators/candlestick/_whiskerwidth.py | 1 - .../plotly/validators/candlestick/_x.py | 1 - .../plotly/validators/candlestick/_xaxis.py | 1 - .../validators/candlestick/_xcalendar.py | 1 - .../validators/candlestick/_xhoverformat.py | 11 + .../plotly/validators/candlestick/_xperiod.py | 1 - .../validators/candlestick/_xperiod0.py | 1 - .../candlestick/_xperiodalignment.py | 1 - .../plotly/validators/candlestick/_xsrc.py | 1 - .../plotly/validators/candlestick/_yaxis.py | 1 - .../validators/candlestick/_yhoverformat.py | 11 + .../candlestick/decreasing/_fillcolor.py | 1 - .../candlestick/decreasing/line/_color.py | 1 - .../candlestick/decreasing/line/_width.py | 1 - .../candlestick/hoverlabel/_align.py | 1 - .../candlestick/hoverlabel/_alignsrc.py | 1 - .../candlestick/hoverlabel/_bgcolor.py | 1 - .../candlestick/hoverlabel/_bgcolorsrc.py | 1 - .../candlestick/hoverlabel/_bordercolor.py | 1 - .../candlestick/hoverlabel/_bordercolorsrc.py | 1 - .../candlestick/hoverlabel/_namelength.py | 1 - .../candlestick/hoverlabel/_namelengthsrc.py | 1 - .../candlestick/hoverlabel/_split.py | 1 - .../candlestick/hoverlabel/font/_color.py | 1 - .../candlestick/hoverlabel/font/_colorsrc.py | 1 - .../candlestick/hoverlabel/font/_family.py | 1 - .../candlestick/hoverlabel/font/_familysrc.py | 1 - .../candlestick/hoverlabel/font/_size.py | 1 - .../candlestick/hoverlabel/font/_sizesrc.py | 1 - .../candlestick/increasing/_fillcolor.py | 1 - .../candlestick/increasing/line/_color.py | 1 - .../candlestick/increasing/line/_width.py | 1 - .../validators/candlestick/line/_width.py | 1 - .../candlestick/stream/_maxpoints.py | 1 - .../validators/candlestick/stream/_token.py | 1 - .../plotly/plotly/validators/carpet/_a.py | 1 - .../plotly/plotly/validators/carpet/_a0.py | 1 - .../plotly/plotly/validators/carpet/_aaxis.py | 4 +- .../plotly/plotly/validators/carpet/_asrc.py | 1 - .../plotly/plotly/validators/carpet/_b.py | 1 - .../plotly/plotly/validators/carpet/_b0.py | 1 - .../plotly/plotly/validators/carpet/_baxis.py | 4 +- .../plotly/plotly/validators/carpet/_bsrc.py | 1 - .../plotly/validators/carpet/_carpet.py | 1 - .../plotly/validators/carpet/_cheaterslope.py | 1 - .../plotly/plotly/validators/carpet/_color.py | 1 - .../plotly/validators/carpet/_customdata.py | 1 - .../validators/carpet/_customdatasrc.py | 1 - .../plotly/plotly/validators/carpet/_da.py | 1 - .../plotly/plotly/validators/carpet/_db.py | 1 - .../plotly/plotly/validators/carpet/_ids.py | 1 - .../plotly/validators/carpet/_idssrc.py | 1 - .../plotly/plotly/validators/carpet/_meta.py | 1 - .../plotly/validators/carpet/_metasrc.py | 1 - .../plotly/plotly/validators/carpet/_name.py | 1 - .../plotly/validators/carpet/_opacity.py | 1 - .../plotly/plotly/validators/carpet/_uid.py | 1 - .../plotly/validators/carpet/_uirevision.py | 1 - .../plotly/validators/carpet/_visible.py | 1 - .../plotly/plotly/validators/carpet/_x.py | 1 - .../plotly/plotly/validators/carpet/_xaxis.py | 1 - .../plotly/plotly/validators/carpet/_xsrc.py | 1 - .../plotly/plotly/validators/carpet/_y.py | 1 - .../plotly/plotly/validators/carpet/_yaxis.py | 1 - .../plotly/plotly/validators/carpet/_ysrc.py | 1 - .../validators/carpet/aaxis/_arraydtick.py | 1 - .../validators/carpet/aaxis/_arraytick0.py | 1 - .../validators/carpet/aaxis/_autorange.py | 1 - .../carpet/aaxis/_autotypenumbers.py | 1 - .../validators/carpet/aaxis/_categoryarray.py | 1 - .../carpet/aaxis/_categoryarraysrc.py | 1 - .../validators/carpet/aaxis/_categoryorder.py | 1 - .../validators/carpet/aaxis/_cheatertype.py | 1 - .../plotly/validators/carpet/aaxis/_color.py | 1 - .../plotly/validators/carpet/aaxis/_dtick.py | 1 - .../validators/carpet/aaxis/_endline.py | 1 - .../validators/carpet/aaxis/_endlinecolor.py | 1 - .../validators/carpet/aaxis/_endlinewidth.py | 1 - .../carpet/aaxis/_exponentformat.py | 1 - .../validators/carpet/aaxis/_fixedrange.py | 1 - .../validators/carpet/aaxis/_gridcolor.py | 1 - .../validators/carpet/aaxis/_gridwidth.py | 1 - .../validators/carpet/aaxis/_labelpadding.py | 1 - .../validators/carpet/aaxis/_labelprefix.py | 1 - .../validators/carpet/aaxis/_labelsuffix.py | 1 - .../validators/carpet/aaxis/_linecolor.py | 1 - .../validators/carpet/aaxis/_linewidth.py | 1 - .../validators/carpet/aaxis/_minexponent.py | 1 - .../carpet/aaxis/_minorgridcolor.py | 1 - .../carpet/aaxis/_minorgridcount.py | 1 - .../carpet/aaxis/_minorgridwidth.py | 1 - .../plotly/validators/carpet/aaxis/_nticks.py | 1 - .../plotly/validators/carpet/aaxis/_range.py | 1 - .../validators/carpet/aaxis/_rangemode.py | 1 - .../carpet/aaxis/_separatethousands.py | 1 - .../validators/carpet/aaxis/_showexponent.py | 1 - .../validators/carpet/aaxis/_showgrid.py | 1 - .../validators/carpet/aaxis/_showline.py | 1 - .../carpet/aaxis/_showticklabels.py | 1 - .../carpet/aaxis/_showtickprefix.py | 1 - .../carpet/aaxis/_showticksuffix.py | 1 - .../validators/carpet/aaxis/_smoothing.py | 1 - .../validators/carpet/aaxis/_startline.py | 1 - .../carpet/aaxis/_startlinecolor.py | 1 - .../carpet/aaxis/_startlinewidth.py | 1 - .../plotly/validators/carpet/aaxis/_tick0.py | 1 - .../validators/carpet/aaxis/_tickangle.py | 1 - .../validators/carpet/aaxis/_tickformat.py | 1 - .../validators/carpet/aaxis/_tickmode.py | 1 - .../validators/carpet/aaxis/_tickprefix.py | 1 - .../validators/carpet/aaxis/_ticksuffix.py | 1 - .../validators/carpet/aaxis/_ticktext.py | 1 - .../validators/carpet/aaxis/_ticktextsrc.py | 1 - .../validators/carpet/aaxis/_tickvals.py | 1 - .../validators/carpet/aaxis/_tickvalssrc.py | 1 - .../plotly/validators/carpet/aaxis/_type.py | 1 - .../carpet/aaxis/tickfont/_color.py | 1 - .../carpet/aaxis/tickfont/_family.py | 1 - .../validators/carpet/aaxis/tickfont/_size.py | 1 - .../aaxis/tickformatstop/_dtickrange.py | 1 - .../carpet/aaxis/tickformatstop/_enabled.py | 1 - .../carpet/aaxis/tickformatstop/_name.py | 1 - .../aaxis/tickformatstop/_templateitemname.py | 1 - .../carpet/aaxis/tickformatstop/_value.py | 1 - .../validators/carpet/aaxis/title/_offset.py | 1 - .../validators/carpet/aaxis/title/_text.py | 1 - .../carpet/aaxis/title/font/_color.py | 1 - .../carpet/aaxis/title/font/_family.py | 1 - .../carpet/aaxis/title/font/_size.py | 1 - .../validators/carpet/baxis/_arraydtick.py | 1 - .../validators/carpet/baxis/_arraytick0.py | 1 - .../validators/carpet/baxis/_autorange.py | 1 - .../carpet/baxis/_autotypenumbers.py | 1 - .../validators/carpet/baxis/_categoryarray.py | 1 - .../carpet/baxis/_categoryarraysrc.py | 1 - .../validators/carpet/baxis/_categoryorder.py | 1 - .../validators/carpet/baxis/_cheatertype.py | 1 - .../plotly/validators/carpet/baxis/_color.py | 1 - .../plotly/validators/carpet/baxis/_dtick.py | 1 - .../validators/carpet/baxis/_endline.py | 1 - .../validators/carpet/baxis/_endlinecolor.py | 1 - .../validators/carpet/baxis/_endlinewidth.py | 1 - .../carpet/baxis/_exponentformat.py | 1 - .../validators/carpet/baxis/_fixedrange.py | 1 - .../validators/carpet/baxis/_gridcolor.py | 1 - .../validators/carpet/baxis/_gridwidth.py | 1 - .../validators/carpet/baxis/_labelpadding.py | 1 - .../validators/carpet/baxis/_labelprefix.py | 1 - .../validators/carpet/baxis/_labelsuffix.py | 1 - .../validators/carpet/baxis/_linecolor.py | 1 - .../validators/carpet/baxis/_linewidth.py | 1 - .../validators/carpet/baxis/_minexponent.py | 1 - .../carpet/baxis/_minorgridcolor.py | 1 - .../carpet/baxis/_minorgridcount.py | 1 - .../carpet/baxis/_minorgridwidth.py | 1 - .../plotly/validators/carpet/baxis/_nticks.py | 1 - .../plotly/validators/carpet/baxis/_range.py | 1 - .../validators/carpet/baxis/_rangemode.py | 1 - .../carpet/baxis/_separatethousands.py | 1 - .../validators/carpet/baxis/_showexponent.py | 1 - .../validators/carpet/baxis/_showgrid.py | 1 - .../validators/carpet/baxis/_showline.py | 1 - .../carpet/baxis/_showticklabels.py | 1 - .../carpet/baxis/_showtickprefix.py | 1 - .../carpet/baxis/_showticksuffix.py | 1 - .../validators/carpet/baxis/_smoothing.py | 1 - .../validators/carpet/baxis/_startline.py | 1 - .../carpet/baxis/_startlinecolor.py | 1 - .../carpet/baxis/_startlinewidth.py | 1 - .../plotly/validators/carpet/baxis/_tick0.py | 1 - .../validators/carpet/baxis/_tickangle.py | 1 - .../validators/carpet/baxis/_tickformat.py | 1 - .../validators/carpet/baxis/_tickmode.py | 1 - .../validators/carpet/baxis/_tickprefix.py | 1 - .../validators/carpet/baxis/_ticksuffix.py | 1 - .../validators/carpet/baxis/_ticktext.py | 1 - .../validators/carpet/baxis/_ticktextsrc.py | 1 - .../validators/carpet/baxis/_tickvals.py | 1 - .../validators/carpet/baxis/_tickvalssrc.py | 1 - .../plotly/validators/carpet/baxis/_type.py | 1 - .../carpet/baxis/tickfont/_color.py | 1 - .../carpet/baxis/tickfont/_family.py | 1 - .../validators/carpet/baxis/tickfont/_size.py | 1 - .../baxis/tickformatstop/_dtickrange.py | 1 - .../carpet/baxis/tickformatstop/_enabled.py | 1 - .../carpet/baxis/tickformatstop/_name.py | 1 - .../baxis/tickformatstop/_templateitemname.py | 1 - .../carpet/baxis/tickformatstop/_value.py | 1 - .../validators/carpet/baxis/title/_offset.py | 1 - .../validators/carpet/baxis/title/_text.py | 1 - .../carpet/baxis/title/font/_color.py | 1 - .../carpet/baxis/title/font/_family.py | 1 - .../carpet/baxis/title/font/_size.py | 1 - .../plotly/validators/carpet/font/_color.py | 1 - .../plotly/validators/carpet/font/_family.py | 1 - .../plotly/validators/carpet/font/_size.py | 1 - .../validators/carpet/stream/_maxpoints.py | 1 - .../plotly/validators/carpet/stream/_token.py | 1 - .../validators/choropleth/_autocolorscale.py | 1 - .../validators/choropleth/_coloraxis.py | 1 - .../plotly/validators/choropleth/_colorbar.py | 6 + .../validators/choropleth/_colorscale.py | 1 - .../validators/choropleth/_customdata.py | 1 - .../validators/choropleth/_customdatasrc.py | 1 - .../validators/choropleth/_featureidkey.py | 1 - .../plotly/validators/choropleth/_geo.py | 1 - .../plotly/validators/choropleth/_geojson.py | 1 - .../validators/choropleth/_hoverinfo.py | 1 - .../validators/choropleth/_hoverinfosrc.py | 1 - .../validators/choropleth/_hovertemplate.py | 1 - .../choropleth/_hovertemplatesrc.py | 1 - .../validators/choropleth/_hovertext.py | 1 - .../validators/choropleth/_hovertextsrc.py | 1 - .../plotly/validators/choropleth/_ids.py | 1 - .../plotly/validators/choropleth/_idssrc.py | 1 - .../validators/choropleth/_legendgroup.py | 1 - .../validators/choropleth/_locationmode.py | 1 - .../validators/choropleth/_locations.py | 1 - .../validators/choropleth/_locationssrc.py | 1 - .../plotly/validators/choropleth/_meta.py | 1 - .../plotly/validators/choropleth/_metasrc.py | 1 - .../plotly/validators/choropleth/_name.py | 1 - .../validators/choropleth/_reversescale.py | 1 - .../validators/choropleth/_selectedpoints.py | 1 - .../validators/choropleth/_showlegend.py | 1 - .../validators/choropleth/_showscale.py | 1 - .../plotly/validators/choropleth/_text.py | 1 - .../plotly/validators/choropleth/_textsrc.py | 1 - .../plotly/validators/choropleth/_uid.py | 1 - .../validators/choropleth/_uirevision.py | 1 - .../plotly/validators/choropleth/_visible.py | 1 - .../plotly/plotly/validators/choropleth/_z.py | 1 - .../plotly/validators/choropleth/_zauto.py | 1 - .../plotly/validators/choropleth/_zmax.py | 1 - .../plotly/validators/choropleth/_zmid.py | 1 - .../plotly/validators/choropleth/_zmin.py | 1 - .../plotly/validators/choropleth/_zsrc.py | 1 - .../choropleth/colorbar/__init__.py | 2 + .../choropleth/colorbar/_bgcolor.py | 1 - .../choropleth/colorbar/_bordercolor.py | 1 - .../choropleth/colorbar/_borderwidth.py | 1 - .../validators/choropleth/colorbar/_dtick.py | 1 - .../choropleth/colorbar/_exponentformat.py | 1 - .../validators/choropleth/colorbar/_len.py | 1 - .../choropleth/colorbar/_lenmode.py | 1 - .../choropleth/colorbar/_minexponent.py | 1 - .../validators/choropleth/colorbar/_nticks.py | 1 - .../choropleth/colorbar/_outlinecolor.py | 1 - .../choropleth/colorbar/_outlinewidth.py | 1 - .../choropleth/colorbar/_separatethousands.py | 1 - .../choropleth/colorbar/_showexponent.py | 1 - .../choropleth/colorbar/_showticklabels.py | 1 - .../choropleth/colorbar/_showtickprefix.py | 1 - .../choropleth/colorbar/_showticksuffix.py | 1 - .../choropleth/colorbar/_thickness.py | 1 - .../choropleth/colorbar/_thicknessmode.py | 1 - .../validators/choropleth/colorbar/_tick0.py | 1 - .../choropleth/colorbar/_tickangle.py | 1 - .../choropleth/colorbar/_tickcolor.py | 1 - .../choropleth/colorbar/_tickformat.py | 1 - .../choropleth/colorbar/_ticklabeloverflow.py | 17 + .../choropleth/colorbar/_ticklabelposition.py | 1 - .../choropleth/colorbar/_ticklen.py | 1 - .../choropleth/colorbar/_tickmode.py | 1 - .../choropleth/colorbar/_tickprefix.py | 1 - .../validators/choropleth/colorbar/_ticks.py | 1 - .../choropleth/colorbar/_ticksuffix.py | 1 - .../choropleth/colorbar/_ticktext.py | 1 - .../choropleth/colorbar/_ticktextsrc.py | 1 - .../choropleth/colorbar/_tickvals.py | 1 - .../choropleth/colorbar/_tickvalssrc.py | 1 - .../choropleth/colorbar/_tickwidth.py | 1 - .../validators/choropleth/colorbar/_x.py | 1 - .../choropleth/colorbar/_xanchor.py | 1 - .../validators/choropleth/colorbar/_xpad.py | 1 - .../validators/choropleth/colorbar/_y.py | 1 - .../choropleth/colorbar/_yanchor.py | 1 - .../validators/choropleth/colorbar/_ypad.py | 1 - .../choropleth/colorbar/tickfont/_color.py | 1 - .../choropleth/colorbar/tickfont/_family.py | 1 - .../choropleth/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../colorbar/tickformatstop/_value.py | 1 - .../choropleth/colorbar/title/_side.py | 1 - .../choropleth/colorbar/title/_text.py | 1 - .../choropleth/colorbar/title/font/_color.py | 1 - .../choropleth/colorbar/title/font/_family.py | 1 - .../choropleth/colorbar/title/font/_size.py | 1 - .../choropleth/hoverlabel/_align.py | 1 - .../choropleth/hoverlabel/_alignsrc.py | 1 - .../choropleth/hoverlabel/_bgcolor.py | 1 - .../choropleth/hoverlabel/_bgcolorsrc.py | 1 - .../choropleth/hoverlabel/_bordercolor.py | 1 - .../choropleth/hoverlabel/_bordercolorsrc.py | 1 - .../choropleth/hoverlabel/_namelength.py | 1 - .../choropleth/hoverlabel/_namelengthsrc.py | 1 - .../choropleth/hoverlabel/font/_color.py | 1 - .../choropleth/hoverlabel/font/_colorsrc.py | 1 - .../choropleth/hoverlabel/font/_family.py | 1 - .../choropleth/hoverlabel/font/_familysrc.py | 1 - .../choropleth/hoverlabel/font/_size.py | 1 - .../choropleth/hoverlabel/font/_sizesrc.py | 1 - .../validators/choropleth/marker/_opacity.py | 1 - .../choropleth/marker/_opacitysrc.py | 1 - .../choropleth/marker/line/_color.py | 1 - .../choropleth/marker/line/_colorsrc.py | 1 - .../choropleth/marker/line/_width.py | 1 - .../choropleth/marker/line/_widthsrc.py | 1 - .../choropleth/selected/marker/_opacity.py | 1 - .../choropleth/stream/_maxpoints.py | 1 - .../validators/choropleth/stream/_token.py | 1 - .../choropleth/unselected/marker/_opacity.py | 1 - .../choroplethmapbox/_autocolorscale.py | 1 - .../validators/choroplethmapbox/_below.py | 1 - .../validators/choroplethmapbox/_coloraxis.py | 1 - .../validators/choroplethmapbox/_colorbar.py | 6 + .../choroplethmapbox/_colorscale.py | 1 - .../choroplethmapbox/_customdata.py | 1 - .../choroplethmapbox/_customdatasrc.py | 1 - .../choroplethmapbox/_featureidkey.py | 1 - .../validators/choroplethmapbox/_geojson.py | 1 - .../validators/choroplethmapbox/_hoverinfo.py | 1 - .../choroplethmapbox/_hoverinfosrc.py | 1 - .../choroplethmapbox/_hovertemplate.py | 1 - .../choroplethmapbox/_hovertemplatesrc.py | 1 - .../validators/choroplethmapbox/_hovertext.py | 1 - .../choroplethmapbox/_hovertextsrc.py | 1 - .../validators/choroplethmapbox/_ids.py | 1 - .../validators/choroplethmapbox/_idssrc.py | 1 - .../choroplethmapbox/_legendgroup.py | 1 - .../validators/choroplethmapbox/_locations.py | 1 - .../choroplethmapbox/_locationssrc.py | 1 - .../validators/choroplethmapbox/_meta.py | 1 - .../validators/choroplethmapbox/_metasrc.py | 1 - .../validators/choroplethmapbox/_name.py | 1 - .../choroplethmapbox/_reversescale.py | 1 - .../choroplethmapbox/_selectedpoints.py | 1 - .../choroplethmapbox/_showlegend.py | 1 - .../validators/choroplethmapbox/_showscale.py | 1 - .../validators/choroplethmapbox/_subplot.py | 1 - .../validators/choroplethmapbox/_text.py | 1 - .../validators/choroplethmapbox/_textsrc.py | 1 - .../validators/choroplethmapbox/_uid.py | 1 - .../choroplethmapbox/_uirevision.py | 1 - .../validators/choroplethmapbox/_visible.py | 1 - .../plotly/validators/choroplethmapbox/_z.py | 1 - .../validators/choroplethmapbox/_zauto.py | 1 - .../validators/choroplethmapbox/_zmax.py | 1 - .../validators/choroplethmapbox/_zmid.py | 1 - .../validators/choroplethmapbox/_zmin.py | 1 - .../validators/choroplethmapbox/_zsrc.py | 1 - .../choroplethmapbox/colorbar/__init__.py | 2 + .../choroplethmapbox/colorbar/_bgcolor.py | 1 - .../choroplethmapbox/colorbar/_bordercolor.py | 1 - .../choroplethmapbox/colorbar/_borderwidth.py | 1 - .../choroplethmapbox/colorbar/_dtick.py | 1 - .../colorbar/_exponentformat.py | 1 - .../choroplethmapbox/colorbar/_len.py | 1 - .../choroplethmapbox/colorbar/_lenmode.py | 1 - .../choroplethmapbox/colorbar/_minexponent.py | 1 - .../choroplethmapbox/colorbar/_nticks.py | 1 - .../colorbar/_outlinecolor.py | 1 - .../colorbar/_outlinewidth.py | 1 - .../colorbar/_separatethousands.py | 1 - .../colorbar/_showexponent.py | 1 - .../colorbar/_showticklabels.py | 1 - .../colorbar/_showtickprefix.py | 1 - .../colorbar/_showticksuffix.py | 1 - .../choroplethmapbox/colorbar/_thickness.py | 1 - .../colorbar/_thicknessmode.py | 1 - .../choroplethmapbox/colorbar/_tick0.py | 1 - .../choroplethmapbox/colorbar/_tickangle.py | 1 - .../choroplethmapbox/colorbar/_tickcolor.py | 1 - .../choroplethmapbox/colorbar/_tickformat.py | 1 - .../colorbar/_ticklabeloverflow.py | 17 + .../colorbar/_ticklabelposition.py | 1 - .../choroplethmapbox/colorbar/_ticklen.py | 1 - .../choroplethmapbox/colorbar/_tickmode.py | 1 - .../choroplethmapbox/colorbar/_tickprefix.py | 1 - .../choroplethmapbox/colorbar/_ticks.py | 1 - .../choroplethmapbox/colorbar/_ticksuffix.py | 1 - .../choroplethmapbox/colorbar/_ticktext.py | 1 - .../choroplethmapbox/colorbar/_ticktextsrc.py | 1 - .../choroplethmapbox/colorbar/_tickvals.py | 1 - .../choroplethmapbox/colorbar/_tickvalssrc.py | 1 - .../choroplethmapbox/colorbar/_tickwidth.py | 1 - .../choroplethmapbox/colorbar/_x.py | 1 - .../choroplethmapbox/colorbar/_xanchor.py | 1 - .../choroplethmapbox/colorbar/_xpad.py | 1 - .../choroplethmapbox/colorbar/_y.py | 1 - .../choroplethmapbox/colorbar/_yanchor.py | 1 - .../choroplethmapbox/colorbar/_ypad.py | 1 - .../colorbar/tickfont/_color.py | 1 - .../colorbar/tickfont/_family.py | 1 - .../colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../colorbar/tickformatstop/_value.py | 1 - .../choroplethmapbox/colorbar/title/_side.py | 1 - .../choroplethmapbox/colorbar/title/_text.py | 1 - .../colorbar/title/font/_color.py | 1 - .../colorbar/title/font/_family.py | 1 - .../colorbar/title/font/_size.py | 1 - .../choroplethmapbox/hoverlabel/_align.py | 1 - .../choroplethmapbox/hoverlabel/_alignsrc.py | 1 - .../choroplethmapbox/hoverlabel/_bgcolor.py | 1 - .../hoverlabel/_bgcolorsrc.py | 1 - .../hoverlabel/_bordercolor.py | 1 - .../hoverlabel/_bordercolorsrc.py | 1 - .../hoverlabel/_namelength.py | 1 - .../hoverlabel/_namelengthsrc.py | 1 - .../hoverlabel/font/_color.py | 1 - .../hoverlabel/font/_colorsrc.py | 1 - .../hoverlabel/font/_family.py | 1 - .../hoverlabel/font/_familysrc.py | 1 - .../choroplethmapbox/hoverlabel/font/_size.py | 1 - .../hoverlabel/font/_sizesrc.py | 1 - .../choroplethmapbox/marker/_opacity.py | 1 - .../choroplethmapbox/marker/_opacitysrc.py | 1 - .../choroplethmapbox/marker/line/_color.py | 1 - .../choroplethmapbox/marker/line/_colorsrc.py | 1 - .../choroplethmapbox/marker/line/_width.py | 1 - .../choroplethmapbox/marker/line/_widthsrc.py | 1 - .../selected/marker/_opacity.py | 1 - .../choroplethmapbox/stream/_maxpoints.py | 1 - .../choroplethmapbox/stream/_token.py | 1 - .../unselected/marker/_opacity.py | 1 - .../plotly/plotly/validators/cone/__init__.py | 12 + .../plotly/plotly/validators/cone/_anchor.py | 1 - .../plotly/validators/cone/_autocolorscale.py | 1 - .../plotly/plotly/validators/cone/_cauto.py | 1 - .../plotly/plotly/validators/cone/_cmax.py | 1 - .../plotly/plotly/validators/cone/_cmid.py | 1 - .../plotly/plotly/validators/cone/_cmin.py | 1 - .../plotly/validators/cone/_coloraxis.py | 1 - .../plotly/validators/cone/_colorbar.py | 6 + .../plotly/validators/cone/_colorscale.py | 1 - .../plotly/validators/cone/_customdata.py | 1 - .../plotly/validators/cone/_customdatasrc.py | 1 - .../plotly/validators/cone/_hoverinfo.py | 1 - .../plotly/validators/cone/_hoverinfosrc.py | 1 - .../plotly/validators/cone/_hovertemplate.py | 1 - .../validators/cone/_hovertemplatesrc.py | 1 - .../plotly/validators/cone/_hovertext.py | 1 - .../plotly/validators/cone/_hovertextsrc.py | 1 - .../plotly/plotly/validators/cone/_ids.py | 1 - .../plotly/plotly/validators/cone/_idssrc.py | 1 - .../plotly/validators/cone/_legendgroup.py | 1 - .../plotly/plotly/validators/cone/_meta.py | 1 - .../plotly/plotly/validators/cone/_metasrc.py | 1 - .../plotly/plotly/validators/cone/_name.py | 1 - .../plotly/plotly/validators/cone/_opacity.py | 1 - .../plotly/validators/cone/_reversescale.py | 1 - .../plotly/plotly/validators/cone/_scene.py | 1 - .../plotly/validators/cone/_showlegend.py | 1 - .../plotly/validators/cone/_showscale.py | 1 - .../plotly/validators/cone/_sizemode.py | 1 - .../plotly/plotly/validators/cone/_sizeref.py | 1 - .../plotly/plotly/validators/cone/_text.py | 1 - .../plotly/plotly/validators/cone/_textsrc.py | 1 - .../plotly/plotly/validators/cone/_u.py | 1 - .../plotly/validators/cone/_uhoverformat.py | 11 + .../plotly/plotly/validators/cone/_uid.py | 1 - .../plotly/validators/cone/_uirevision.py | 1 - .../plotly/plotly/validators/cone/_usrc.py | 1 - .../plotly/plotly/validators/cone/_v.py | 1 - .../plotly/validators/cone/_vhoverformat.py | 11 + .../plotly/plotly/validators/cone/_visible.py | 1 - .../plotly/plotly/validators/cone/_vsrc.py | 1 - .../plotly/plotly/validators/cone/_w.py | 1 - .../plotly/validators/cone/_whoverformat.py | 11 + .../plotly/plotly/validators/cone/_wsrc.py | 1 - .../plotly/plotly/validators/cone/_x.py | 1 - .../plotly/validators/cone/_xhoverformat.py | 11 + .../plotly/plotly/validators/cone/_xsrc.py | 1 - .../plotly/plotly/validators/cone/_y.py | 1 - .../plotly/validators/cone/_yhoverformat.py | 11 + .../plotly/plotly/validators/cone/_ysrc.py | 1 - .../plotly/plotly/validators/cone/_z.py | 1 - .../plotly/validators/cone/_zhoverformat.py | 11 + .../plotly/plotly/validators/cone/_zsrc.py | 1 - .../validators/cone/colorbar/__init__.py | 2 + .../validators/cone/colorbar/_bgcolor.py | 1 - .../validators/cone/colorbar/_bordercolor.py | 1 - .../validators/cone/colorbar/_borderwidth.py | 1 - .../plotly/validators/cone/colorbar/_dtick.py | 1 - .../cone/colorbar/_exponentformat.py | 1 - .../plotly/validators/cone/colorbar/_len.py | 1 - .../validators/cone/colorbar/_lenmode.py | 1 - .../validators/cone/colorbar/_minexponent.py | 1 - .../validators/cone/colorbar/_nticks.py | 1 - .../validators/cone/colorbar/_outlinecolor.py | 1 - .../validators/cone/colorbar/_outlinewidth.py | 1 - .../cone/colorbar/_separatethousands.py | 1 - .../validators/cone/colorbar/_showexponent.py | 1 - .../cone/colorbar/_showticklabels.py | 1 - .../cone/colorbar/_showtickprefix.py | 1 - .../cone/colorbar/_showticksuffix.py | 1 - .../validators/cone/colorbar/_thickness.py | 1 - .../cone/colorbar/_thicknessmode.py | 1 - .../plotly/validators/cone/colorbar/_tick0.py | 1 - .../validators/cone/colorbar/_tickangle.py | 1 - .../validators/cone/colorbar/_tickcolor.py | 1 - .../validators/cone/colorbar/_tickformat.py | 1 - .../cone/colorbar/_ticklabeloverflow.py | 14 + .../cone/colorbar/_ticklabelposition.py | 1 - .../validators/cone/colorbar/_ticklen.py | 1 - .../validators/cone/colorbar/_tickmode.py | 1 - .../validators/cone/colorbar/_tickprefix.py | 1 - .../plotly/validators/cone/colorbar/_ticks.py | 1 - .../validators/cone/colorbar/_ticksuffix.py | 1 - .../validators/cone/colorbar/_ticktext.py | 1 - .../validators/cone/colorbar/_ticktextsrc.py | 1 - .../validators/cone/colorbar/_tickvals.py | 1 - .../validators/cone/colorbar/_tickvalssrc.py | 1 - .../validators/cone/colorbar/_tickwidth.py | 1 - .../plotly/validators/cone/colorbar/_x.py | 1 - .../validators/cone/colorbar/_xanchor.py | 1 - .../plotly/validators/cone/colorbar/_xpad.py | 1 - .../plotly/validators/cone/colorbar/_y.py | 1 - .../validators/cone/colorbar/_yanchor.py | 1 - .../plotly/validators/cone/colorbar/_ypad.py | 1 - .../cone/colorbar/tickfont/_color.py | 1 - .../cone/colorbar/tickfont/_family.py | 1 - .../cone/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../cone/colorbar/tickformatstop/_enabled.py | 1 - .../cone/colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../cone/colorbar/tickformatstop/_value.py | 1 - .../validators/cone/colorbar/title/_side.py | 1 - .../validators/cone/colorbar/title/_text.py | 1 - .../cone/colorbar/title/font/_color.py | 1 - .../cone/colorbar/title/font/_family.py | 1 - .../cone/colorbar/title/font/_size.py | 1 - .../validators/cone/hoverlabel/_align.py | 1 - .../validators/cone/hoverlabel/_alignsrc.py | 1 - .../validators/cone/hoverlabel/_bgcolor.py | 1 - .../validators/cone/hoverlabel/_bgcolorsrc.py | 1 - .../cone/hoverlabel/_bordercolor.py | 1 - .../cone/hoverlabel/_bordercolorsrc.py | 1 - .../validators/cone/hoverlabel/_namelength.py | 1 - .../cone/hoverlabel/_namelengthsrc.py | 1 - .../validators/cone/hoverlabel/font/_color.py | 1 - .../cone/hoverlabel/font/_colorsrc.py | 1 - .../cone/hoverlabel/font/_family.py | 1 - .../cone/hoverlabel/font/_familysrc.py | 1 - .../validators/cone/hoverlabel/font/_size.py | 1 - .../cone/hoverlabel/font/_sizesrc.py | 1 - .../validators/cone/lighting/_ambient.py | 1 - .../validators/cone/lighting/_diffuse.py | 1 - .../cone/lighting/_facenormalsepsilon.py | 1 - .../validators/cone/lighting/_fresnel.py | 1 - .../validators/cone/lighting/_roughness.py | 1 - .../validators/cone/lighting/_specular.py | 1 - .../cone/lighting/_vertexnormalsepsilon.py | 1 - .../validators/cone/lightposition/_x.py | 1 - .../validators/cone/lightposition/_y.py | 1 - .../validators/cone/lightposition/_z.py | 1 - .../validators/cone/stream/_maxpoints.py | 1 - .../plotly/validators/cone/stream/_token.py | 1 - .../plotly/validators/contour/__init__.py | 4 + .../validators/contour/_autocolorscale.py | 1 - .../plotly/validators/contour/_autocontour.py | 1 - .../plotly/validators/contour/_coloraxis.py | 1 - .../plotly/validators/contour/_colorbar.py | 6 + .../plotly/validators/contour/_colorscale.py | 1 - .../plotly/validators/contour/_connectgaps.py | 1 - .../plotly/validators/contour/_customdata.py | 1 - .../validators/contour/_customdatasrc.py | 1 - .../plotly/plotly/validators/contour/_dx.py | 1 - .../plotly/plotly/validators/contour/_dy.py | 1 - .../plotly/validators/contour/_fillcolor.py | 1 - .../plotly/validators/contour/_hoverinfo.py | 1 - .../validators/contour/_hoverinfosrc.py | 1 - .../plotly/validators/contour/_hoverongaps.py | 1 - .../validators/contour/_hovertemplate.py | 1 - .../validators/contour/_hovertemplatesrc.py | 1 - .../plotly/validators/contour/_hovertext.py | 1 - .../validators/contour/_hovertextsrc.py | 1 - .../plotly/plotly/validators/contour/_ids.py | 1 - .../plotly/validators/contour/_idssrc.py | 1 - .../plotly/validators/contour/_legendgroup.py | 1 - .../plotly/plotly/validators/contour/_meta.py | 1 - .../plotly/validators/contour/_metasrc.py | 1 - .../plotly/plotly/validators/contour/_name.py | 1 - .../plotly/validators/contour/_ncontours.py | 1 - .../plotly/validators/contour/_opacity.py | 1 - .../validators/contour/_reversescale.py | 1 - .../plotly/validators/contour/_showlegend.py | 1 - .../plotly/validators/contour/_showscale.py | 1 - .../plotly/plotly/validators/contour/_text.py | 1 - .../plotly/validators/contour/_textsrc.py | 1 - .../plotly/validators/contour/_transpose.py | 1 - .../plotly/plotly/validators/contour/_uid.py | 1 - .../plotly/validators/contour/_uirevision.py | 1 - .../plotly/validators/contour/_visible.py | 1 - .../plotly/plotly/validators/contour/_x.py | 1 - .../plotly/plotly/validators/contour/_x0.py | 1 - .../plotly/validators/contour/_xaxis.py | 1 - .../plotly/validators/contour/_xcalendar.py | 1 - .../validators/contour/_xhoverformat.py | 11 + .../plotly/validators/contour/_xperiod.py | 1 - .../plotly/validators/contour/_xperiod0.py | 1 - .../validators/contour/_xperiodalignment.py | 1 - .../plotly/plotly/validators/contour/_xsrc.py | 1 - .../plotly/validators/contour/_xtype.py | 1 - .../plotly/plotly/validators/contour/_y.py | 1 - .../plotly/plotly/validators/contour/_y0.py | 1 - .../plotly/validators/contour/_yaxis.py | 1 - .../plotly/validators/contour/_ycalendar.py | 1 - .../validators/contour/_yhoverformat.py | 11 + .../plotly/validators/contour/_yperiod.py | 1 - .../plotly/validators/contour/_yperiod0.py | 1 - .../validators/contour/_yperiodalignment.py | 1 - .../plotly/plotly/validators/contour/_ysrc.py | 1 - .../plotly/validators/contour/_ytype.py | 1 - .../plotly/plotly/validators/contour/_z.py | 1 - .../plotly/validators/contour/_zauto.py | 1 - .../validators/contour/_zhoverformat.py | 1 - .../plotly/plotly/validators/contour/_zmax.py | 1 - .../plotly/plotly/validators/contour/_zmid.py | 1 - .../plotly/plotly/validators/contour/_zmin.py | 1 - .../plotly/plotly/validators/contour/_zsrc.py | 1 - .../validators/contour/colorbar/__init__.py | 2 + .../validators/contour/colorbar/_bgcolor.py | 1 - .../contour/colorbar/_bordercolor.py | 1 - .../contour/colorbar/_borderwidth.py | 1 - .../validators/contour/colorbar/_dtick.py | 1 - .../contour/colorbar/_exponentformat.py | 1 - .../validators/contour/colorbar/_len.py | 1 - .../validators/contour/colorbar/_lenmode.py | 1 - .../contour/colorbar/_minexponent.py | 1 - .../validators/contour/colorbar/_nticks.py | 1 - .../contour/colorbar/_outlinecolor.py | 1 - .../contour/colorbar/_outlinewidth.py | 1 - .../contour/colorbar/_separatethousands.py | 1 - .../contour/colorbar/_showexponent.py | 1 - .../contour/colorbar/_showticklabels.py | 1 - .../contour/colorbar/_showtickprefix.py | 1 - .../contour/colorbar/_showticksuffix.py | 1 - .../validators/contour/colorbar/_thickness.py | 1 - .../contour/colorbar/_thicknessmode.py | 1 - .../validators/contour/colorbar/_tick0.py | 1 - .../validators/contour/colorbar/_tickangle.py | 1 - .../validators/contour/colorbar/_tickcolor.py | 1 - .../contour/colorbar/_tickformat.py | 1 - .../contour/colorbar/_ticklabeloverflow.py | 14 + .../contour/colorbar/_ticklabelposition.py | 1 - .../validators/contour/colorbar/_ticklen.py | 1 - .../validators/contour/colorbar/_tickmode.py | 1 - .../contour/colorbar/_tickprefix.py | 1 - .../validators/contour/colorbar/_ticks.py | 1 - .../contour/colorbar/_ticksuffix.py | 1 - .../validators/contour/colorbar/_ticktext.py | 1 - .../contour/colorbar/_ticktextsrc.py | 1 - .../validators/contour/colorbar/_tickvals.py | 1 - .../contour/colorbar/_tickvalssrc.py | 1 - .../validators/contour/colorbar/_tickwidth.py | 1 - .../plotly/validators/contour/colorbar/_x.py | 1 - .../validators/contour/colorbar/_xanchor.py | 1 - .../validators/contour/colorbar/_xpad.py | 1 - .../plotly/validators/contour/colorbar/_y.py | 1 - .../validators/contour/colorbar/_yanchor.py | 1 - .../validators/contour/colorbar/_ypad.py | 1 - .../contour/colorbar/tickfont/_color.py | 1 - .../contour/colorbar/tickfont/_family.py | 1 - .../contour/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../contour/colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../contour/colorbar/tickformatstop/_value.py | 1 - .../contour/colorbar/title/_side.py | 1 - .../contour/colorbar/title/_text.py | 1 - .../contour/colorbar/title/font/_color.py | 1 - .../contour/colorbar/title/font/_family.py | 1 - .../contour/colorbar/title/font/_size.py | 1 - .../validators/contour/contours/_coloring.py | 1 - .../validators/contour/contours/_end.py | 1 - .../contour/contours/_labelformat.py | 1 - .../validators/contour/contours/_operation.py | 1 - .../contour/contours/_showlabels.py | 1 - .../validators/contour/contours/_showlines.py | 1 - .../validators/contour/contours/_size.py | 1 - .../validators/contour/contours/_start.py | 1 - .../validators/contour/contours/_type.py | 1 - .../validators/contour/contours/_value.py | 1 - .../contour/contours/labelfont/_color.py | 1 - .../contour/contours/labelfont/_family.py | 1 - .../contour/contours/labelfont/_size.py | 1 - .../validators/contour/hoverlabel/_align.py | 1 - .../contour/hoverlabel/_alignsrc.py | 1 - .../validators/contour/hoverlabel/_bgcolor.py | 1 - .../contour/hoverlabel/_bgcolorsrc.py | 1 - .../contour/hoverlabel/_bordercolor.py | 1 - .../contour/hoverlabel/_bordercolorsrc.py | 1 - .../contour/hoverlabel/_namelength.py | 1 - .../contour/hoverlabel/_namelengthsrc.py | 1 - .../contour/hoverlabel/font/_color.py | 1 - .../contour/hoverlabel/font/_colorsrc.py | 1 - .../contour/hoverlabel/font/_family.py | 1 - .../contour/hoverlabel/font/_familysrc.py | 1 - .../contour/hoverlabel/font/_size.py | 1 - .../contour/hoverlabel/font/_sizesrc.py | 1 - .../plotly/validators/contour/line/_color.py | 1 - .../plotly/validators/contour/line/_dash.py | 1 - .../validators/contour/line/_smoothing.py | 1 - .../plotly/validators/contour/line/_width.py | 1 - .../validators/contour/stream/_maxpoints.py | 1 - .../validators/contour/stream/_token.py | 1 - .../plotly/validators/contourcarpet/_a.py | 1 - .../plotly/validators/contourcarpet/_a0.py | 1 - .../plotly/validators/contourcarpet/_asrc.py | 1 - .../plotly/validators/contourcarpet/_atype.py | 1 - .../contourcarpet/_autocolorscale.py | 1 - .../validators/contourcarpet/_autocontour.py | 1 - .../plotly/validators/contourcarpet/_b.py | 1 - .../plotly/validators/contourcarpet/_b0.py | 1 - .../plotly/validators/contourcarpet/_bsrc.py | 1 - .../plotly/validators/contourcarpet/_btype.py | 1 - .../validators/contourcarpet/_carpet.py | 1 - .../validators/contourcarpet/_coloraxis.py | 1 - .../validators/contourcarpet/_colorbar.py | 6 + .../validators/contourcarpet/_colorscale.py | 1 - .../validators/contourcarpet/_customdata.py | 1 - .../contourcarpet/_customdatasrc.py | 1 - .../plotly/validators/contourcarpet/_da.py | 1 - .../plotly/validators/contourcarpet/_db.py | 1 - .../validators/contourcarpet/_fillcolor.py | 1 - .../validators/contourcarpet/_hovertext.py | 1 - .../validators/contourcarpet/_hovertextsrc.py | 1 - .../plotly/validators/contourcarpet/_ids.py | 1 - .../validators/contourcarpet/_idssrc.py | 1 - .../validators/contourcarpet/_legendgroup.py | 1 - .../plotly/validators/contourcarpet/_meta.py | 1 - .../validators/contourcarpet/_metasrc.py | 1 - .../plotly/validators/contourcarpet/_name.py | 1 - .../validators/contourcarpet/_ncontours.py | 1 - .../validators/contourcarpet/_opacity.py | 1 - .../validators/contourcarpet/_reversescale.py | 1 - .../validators/contourcarpet/_showlegend.py | 1 - .../validators/contourcarpet/_showscale.py | 1 - .../plotly/validators/contourcarpet/_text.py | 1 - .../validators/contourcarpet/_textsrc.py | 1 - .../validators/contourcarpet/_transpose.py | 1 - .../plotly/validators/contourcarpet/_uid.py | 1 - .../validators/contourcarpet/_uirevision.py | 1 - .../validators/contourcarpet/_visible.py | 1 - .../plotly/validators/contourcarpet/_xaxis.py | 1 - .../plotly/validators/contourcarpet/_yaxis.py | 1 - .../plotly/validators/contourcarpet/_z.py | 1 - .../plotly/validators/contourcarpet/_zauto.py | 1 - .../plotly/validators/contourcarpet/_zmax.py | 1 - .../plotly/validators/contourcarpet/_zmid.py | 1 - .../plotly/validators/contourcarpet/_zmin.py | 1 - .../plotly/validators/contourcarpet/_zsrc.py | 1 - .../contourcarpet/colorbar/__init__.py | 2 + .../contourcarpet/colorbar/_bgcolor.py | 1 - .../contourcarpet/colorbar/_bordercolor.py | 1 - .../contourcarpet/colorbar/_borderwidth.py | 1 - .../contourcarpet/colorbar/_dtick.py | 1 - .../contourcarpet/colorbar/_exponentformat.py | 1 - .../validators/contourcarpet/colorbar/_len.py | 1 - .../contourcarpet/colorbar/_lenmode.py | 1 - .../contourcarpet/colorbar/_minexponent.py | 1 - .../contourcarpet/colorbar/_nticks.py | 1 - .../contourcarpet/colorbar/_outlinecolor.py | 1 - .../contourcarpet/colorbar/_outlinewidth.py | 1 - .../colorbar/_separatethousands.py | 1 - .../contourcarpet/colorbar/_showexponent.py | 1 - .../contourcarpet/colorbar/_showticklabels.py | 1 - .../contourcarpet/colorbar/_showtickprefix.py | 1 - .../contourcarpet/colorbar/_showticksuffix.py | 1 - .../contourcarpet/colorbar/_thickness.py | 1 - .../contourcarpet/colorbar/_thicknessmode.py | 1 - .../contourcarpet/colorbar/_tick0.py | 1 - .../contourcarpet/colorbar/_tickangle.py | 1 - .../contourcarpet/colorbar/_tickcolor.py | 1 - .../contourcarpet/colorbar/_tickformat.py | 1 - .../colorbar/_ticklabeloverflow.py | 17 + .../colorbar/_ticklabelposition.py | 1 - .../contourcarpet/colorbar/_ticklen.py | 1 - .../contourcarpet/colorbar/_tickmode.py | 1 - .../contourcarpet/colorbar/_tickprefix.py | 1 - .../contourcarpet/colorbar/_ticks.py | 1 - .../contourcarpet/colorbar/_ticksuffix.py | 1 - .../contourcarpet/colorbar/_ticktext.py | 1 - .../contourcarpet/colorbar/_ticktextsrc.py | 1 - .../contourcarpet/colorbar/_tickvals.py | 1 - .../contourcarpet/colorbar/_tickvalssrc.py | 1 - .../contourcarpet/colorbar/_tickwidth.py | 1 - .../validators/contourcarpet/colorbar/_x.py | 1 - .../contourcarpet/colorbar/_xanchor.py | 1 - .../contourcarpet/colorbar/_xpad.py | 1 - .../validators/contourcarpet/colorbar/_y.py | 1 - .../contourcarpet/colorbar/_yanchor.py | 1 - .../contourcarpet/colorbar/_ypad.py | 1 - .../contourcarpet/colorbar/tickfont/_color.py | 1 - .../colorbar/tickfont/_family.py | 1 - .../contourcarpet/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../colorbar/tickformatstop/_value.py | 1 - .../contourcarpet/colorbar/title/_side.py | 1 - .../contourcarpet/colorbar/title/_text.py | 1 - .../colorbar/title/font/_color.py | 1 - .../colorbar/title/font/_family.py | 1 - .../colorbar/title/font/_size.py | 1 - .../contourcarpet/contours/_coloring.py | 1 - .../validators/contourcarpet/contours/_end.py | 1 - .../contourcarpet/contours/_labelformat.py | 1 - .../contourcarpet/contours/_operation.py | 1 - .../contourcarpet/contours/_showlabels.py | 1 - .../contourcarpet/contours/_showlines.py | 1 - .../contourcarpet/contours/_size.py | 1 - .../contourcarpet/contours/_start.py | 1 - .../contourcarpet/contours/_type.py | 1 - .../contourcarpet/contours/_value.py | 1 - .../contours/labelfont/_color.py | 1 - .../contours/labelfont/_family.py | 1 - .../contourcarpet/contours/labelfont/_size.py | 1 - .../validators/contourcarpet/line/_color.py | 1 - .../validators/contourcarpet/line/_dash.py | 1 - .../contourcarpet/line/_smoothing.py | 1 - .../validators/contourcarpet/line/_width.py | 1 - .../contourcarpet/stream/_maxpoints.py | 1 - .../validators/contourcarpet/stream/_token.py | 1 - .../densitymapbox/_autocolorscale.py | 1 - .../plotly/validators/densitymapbox/_below.py | 1 - .../validators/densitymapbox/_coloraxis.py | 1 - .../validators/densitymapbox/_colorbar.py | 6 + .../validators/densitymapbox/_colorscale.py | 1 - .../validators/densitymapbox/_customdata.py | 1 - .../densitymapbox/_customdatasrc.py | 1 - .../validators/densitymapbox/_hoverinfo.py | 1 - .../validators/densitymapbox/_hoverinfosrc.py | 1 - .../densitymapbox/_hovertemplate.py | 1 - .../densitymapbox/_hovertemplatesrc.py | 1 - .../validators/densitymapbox/_hovertext.py | 1 - .../validators/densitymapbox/_hovertextsrc.py | 1 - .../plotly/validators/densitymapbox/_ids.py | 1 - .../validators/densitymapbox/_idssrc.py | 1 - .../plotly/validators/densitymapbox/_lat.py | 1 - .../validators/densitymapbox/_latsrc.py | 1 - .../validators/densitymapbox/_legendgroup.py | 1 - .../plotly/validators/densitymapbox/_lon.py | 1 - .../validators/densitymapbox/_lonsrc.py | 1 - .../plotly/validators/densitymapbox/_meta.py | 1 - .../validators/densitymapbox/_metasrc.py | 1 - .../plotly/validators/densitymapbox/_name.py | 1 - .../validators/densitymapbox/_opacity.py | 1 - .../validators/densitymapbox/_radius.py | 1 - .../validators/densitymapbox/_radiussrc.py | 1 - .../validators/densitymapbox/_reversescale.py | 1 - .../validators/densitymapbox/_showlegend.py | 1 - .../validators/densitymapbox/_showscale.py | 1 - .../validators/densitymapbox/_subplot.py | 1 - .../plotly/validators/densitymapbox/_text.py | 1 - .../validators/densitymapbox/_textsrc.py | 1 - .../plotly/validators/densitymapbox/_uid.py | 1 - .../validators/densitymapbox/_uirevision.py | 1 - .../validators/densitymapbox/_visible.py | 1 - .../plotly/validators/densitymapbox/_z.py | 1 - .../plotly/validators/densitymapbox/_zauto.py | 1 - .../plotly/validators/densitymapbox/_zmax.py | 1 - .../plotly/validators/densitymapbox/_zmid.py | 1 - .../plotly/validators/densitymapbox/_zmin.py | 1 - .../plotly/validators/densitymapbox/_zsrc.py | 1 - .../densitymapbox/colorbar/__init__.py | 2 + .../densitymapbox/colorbar/_bgcolor.py | 1 - .../densitymapbox/colorbar/_bordercolor.py | 1 - .../densitymapbox/colorbar/_borderwidth.py | 1 - .../densitymapbox/colorbar/_dtick.py | 1 - .../densitymapbox/colorbar/_exponentformat.py | 1 - .../validators/densitymapbox/colorbar/_len.py | 1 - .../densitymapbox/colorbar/_lenmode.py | 1 - .../densitymapbox/colorbar/_minexponent.py | 1 - .../densitymapbox/colorbar/_nticks.py | 1 - .../densitymapbox/colorbar/_outlinecolor.py | 1 - .../densitymapbox/colorbar/_outlinewidth.py | 1 - .../colorbar/_separatethousands.py | 1 - .../densitymapbox/colorbar/_showexponent.py | 1 - .../densitymapbox/colorbar/_showticklabels.py | 1 - .../densitymapbox/colorbar/_showtickprefix.py | 1 - .../densitymapbox/colorbar/_showticksuffix.py | 1 - .../densitymapbox/colorbar/_thickness.py | 1 - .../densitymapbox/colorbar/_thicknessmode.py | 1 - .../densitymapbox/colorbar/_tick0.py | 1 - .../densitymapbox/colorbar/_tickangle.py | 1 - .../densitymapbox/colorbar/_tickcolor.py | 1 - .../densitymapbox/colorbar/_tickformat.py | 1 - .../colorbar/_ticklabeloverflow.py | 17 + .../colorbar/_ticklabelposition.py | 1 - .../densitymapbox/colorbar/_ticklen.py | 1 - .../densitymapbox/colorbar/_tickmode.py | 1 - .../densitymapbox/colorbar/_tickprefix.py | 1 - .../densitymapbox/colorbar/_ticks.py | 1 - .../densitymapbox/colorbar/_ticksuffix.py | 1 - .../densitymapbox/colorbar/_ticktext.py | 1 - .../densitymapbox/colorbar/_ticktextsrc.py | 1 - .../densitymapbox/colorbar/_tickvals.py | 1 - .../densitymapbox/colorbar/_tickvalssrc.py | 1 - .../densitymapbox/colorbar/_tickwidth.py | 1 - .../validators/densitymapbox/colorbar/_x.py | 1 - .../densitymapbox/colorbar/_xanchor.py | 1 - .../densitymapbox/colorbar/_xpad.py | 1 - .../validators/densitymapbox/colorbar/_y.py | 1 - .../densitymapbox/colorbar/_yanchor.py | 1 - .../densitymapbox/colorbar/_ypad.py | 1 - .../densitymapbox/colorbar/tickfont/_color.py | 1 - .../colorbar/tickfont/_family.py | 1 - .../densitymapbox/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../colorbar/tickformatstop/_value.py | 1 - .../densitymapbox/colorbar/title/_side.py | 1 - .../densitymapbox/colorbar/title/_text.py | 1 - .../colorbar/title/font/_color.py | 1 - .../colorbar/title/font/_family.py | 1 - .../colorbar/title/font/_size.py | 1 - .../densitymapbox/hoverlabel/_align.py | 1 - .../densitymapbox/hoverlabel/_alignsrc.py | 1 - .../densitymapbox/hoverlabel/_bgcolor.py | 1 - .../densitymapbox/hoverlabel/_bgcolorsrc.py | 1 - .../densitymapbox/hoverlabel/_bordercolor.py | 1 - .../hoverlabel/_bordercolorsrc.py | 1 - .../densitymapbox/hoverlabel/_namelength.py | 1 - .../hoverlabel/_namelengthsrc.py | 1 - .../densitymapbox/hoverlabel/font/_color.py | 1 - .../hoverlabel/font/_colorsrc.py | 1 - .../densitymapbox/hoverlabel/font/_family.py | 1 - .../hoverlabel/font/_familysrc.py | 1 - .../densitymapbox/hoverlabel/font/_size.py | 1 - .../densitymapbox/hoverlabel/font/_sizesrc.py | 1 - .../densitymapbox/stream/_maxpoints.py | 1 - .../validators/densitymapbox/stream/_token.py | 1 - .../plotly/validators/frame/_baseframe.py | 5 +- .../plotly/plotly/validators/frame/_data.py | 5 +- .../plotly/plotly/validators/frame/_group.py | 5 +- .../plotly/plotly/validators/frame/_layout.py | 5 +- .../plotly/plotly/validators/frame/_name.py | 5 +- .../plotly/plotly/validators/frame/_traces.py | 5 +- .../plotly/validators/funnel/__init__.py | 4 + .../validators/funnel/_alignmentgroup.py | 1 - .../plotly/validators/funnel/_cliponaxis.py | 1 - .../validators/funnel/_constraintext.py | 1 - .../plotly/validators/funnel/_customdata.py | 1 - .../validators/funnel/_customdatasrc.py | 1 - .../plotly/plotly/validators/funnel/_dx.py | 1 - .../plotly/plotly/validators/funnel/_dy.py | 1 - .../plotly/validators/funnel/_hoverinfo.py | 1 - .../plotly/validators/funnel/_hoverinfosrc.py | 1 - .../validators/funnel/_hovertemplate.py | 1 - .../validators/funnel/_hovertemplatesrc.py | 1 - .../plotly/validators/funnel/_hovertext.py | 1 - .../plotly/validators/funnel/_hovertextsrc.py | 1 - .../plotly/plotly/validators/funnel/_ids.py | 1 - .../plotly/validators/funnel/_idssrc.py | 1 - .../validators/funnel/_insidetextanchor.py | 1 - .../plotly/validators/funnel/_legendgroup.py | 1 - .../plotly/plotly/validators/funnel/_meta.py | 1 - .../plotly/validators/funnel/_metasrc.py | 1 - .../plotly/plotly/validators/funnel/_name.py | 1 - .../plotly/validators/funnel/_offset.py | 1 - .../plotly/validators/funnel/_offsetgroup.py | 1 - .../plotly/validators/funnel/_opacity.py | 1 - .../plotly/validators/funnel/_orientation.py | 1 - .../validators/funnel/_selectedpoints.py | 1 - .../plotly/validators/funnel/_showlegend.py | 1 - .../plotly/plotly/validators/funnel/_text.py | 1 - .../plotly/validators/funnel/_textangle.py | 1 - .../plotly/validators/funnel/_textinfo.py | 1 - .../plotly/validators/funnel/_textposition.py | 1 - .../validators/funnel/_textpositionsrc.py | 1 - .../plotly/validators/funnel/_textsrc.py | 1 - .../plotly/validators/funnel/_texttemplate.py | 1 - .../validators/funnel/_texttemplatesrc.py | 1 - .../plotly/plotly/validators/funnel/_uid.py | 1 - .../plotly/validators/funnel/_uirevision.py | 1 - .../plotly/validators/funnel/_visible.py | 1 - .../plotly/plotly/validators/funnel/_width.py | 1 - .../plotly/plotly/validators/funnel/_x.py | 1 - .../plotly/plotly/validators/funnel/_x0.py | 1 - .../plotly/plotly/validators/funnel/_xaxis.py | 1 - .../plotly/validators/funnel/_xhoverformat.py | 11 + .../plotly/validators/funnel/_xperiod.py | 1 - .../plotly/validators/funnel/_xperiod0.py | 1 - .../validators/funnel/_xperiodalignment.py | 1 - .../plotly/plotly/validators/funnel/_xsrc.py | 1 - .../plotly/plotly/validators/funnel/_y.py | 1 - .../plotly/plotly/validators/funnel/_y0.py | 1 - .../plotly/plotly/validators/funnel/_yaxis.py | 1 - .../plotly/validators/funnel/_yhoverformat.py | 11 + .../plotly/validators/funnel/_yperiod.py | 1 - .../plotly/validators/funnel/_yperiod0.py | 1 - .../validators/funnel/_yperiodalignment.py | 1 - .../plotly/plotly/validators/funnel/_ysrc.py | 1 - .../validators/funnel/connector/_fillcolor.py | 1 - .../validators/funnel/connector/_visible.py | 1 - .../funnel/connector/line/_color.py | 1 - .../validators/funnel/connector/line/_dash.py | 1 - .../funnel/connector/line/_width.py | 1 - .../validators/funnel/hoverlabel/_align.py | 1 - .../validators/funnel/hoverlabel/_alignsrc.py | 1 - .../validators/funnel/hoverlabel/_bgcolor.py | 1 - .../funnel/hoverlabel/_bgcolorsrc.py | 1 - .../funnel/hoverlabel/_bordercolor.py | 1 - .../funnel/hoverlabel/_bordercolorsrc.py | 1 - .../funnel/hoverlabel/_namelength.py | 1 - .../funnel/hoverlabel/_namelengthsrc.py | 1 - .../funnel/hoverlabel/font/_color.py | 1 - .../funnel/hoverlabel/font/_colorsrc.py | 1 - .../funnel/hoverlabel/font/_family.py | 1 - .../funnel/hoverlabel/font/_familysrc.py | 1 - .../funnel/hoverlabel/font/_size.py | 1 - .../funnel/hoverlabel/font/_sizesrc.py | 1 - .../funnel/insidetextfont/_color.py | 1 - .../funnel/insidetextfont/_colorsrc.py | 1 - .../funnel/insidetextfont/_family.py | 1 - .../funnel/insidetextfont/_familysrc.py | 1 - .../validators/funnel/insidetextfont/_size.py | 1 - .../funnel/insidetextfont/_sizesrc.py | 1 - .../funnel/marker/_autocolorscale.py | 1 - .../plotly/validators/funnel/marker/_cauto.py | 1 - .../plotly/validators/funnel/marker/_cmax.py | 1 - .../plotly/validators/funnel/marker/_cmid.py | 1 - .../plotly/validators/funnel/marker/_cmin.py | 1 - .../plotly/validators/funnel/marker/_color.py | 1 - .../validators/funnel/marker/_coloraxis.py | 1 - .../validators/funnel/marker/_colorbar.py | 6 + .../validators/funnel/marker/_colorscale.py | 1 - .../validators/funnel/marker/_colorsrc.py | 1 - .../validators/funnel/marker/_opacity.py | 1 - .../validators/funnel/marker/_opacitysrc.py | 1 - .../validators/funnel/marker/_reversescale.py | 1 - .../validators/funnel/marker/_showscale.py | 1 - .../funnel/marker/colorbar/__init__.py | 2 + .../funnel/marker/colorbar/_bgcolor.py | 1 - .../funnel/marker/colorbar/_bordercolor.py | 1 - .../funnel/marker/colorbar/_borderwidth.py | 1 - .../funnel/marker/colorbar/_dtick.py | 1 - .../funnel/marker/colorbar/_exponentformat.py | 1 - .../validators/funnel/marker/colorbar/_len.py | 1 - .../funnel/marker/colorbar/_lenmode.py | 1 - .../funnel/marker/colorbar/_minexponent.py | 1 - .../funnel/marker/colorbar/_nticks.py | 1 - .../funnel/marker/colorbar/_outlinecolor.py | 1 - .../funnel/marker/colorbar/_outlinewidth.py | 1 - .../marker/colorbar/_separatethousands.py | 1 - .../funnel/marker/colorbar/_showexponent.py | 1 - .../funnel/marker/colorbar/_showticklabels.py | 1 - .../funnel/marker/colorbar/_showtickprefix.py | 1 - .../funnel/marker/colorbar/_showticksuffix.py | 1 - .../funnel/marker/colorbar/_thickness.py | 1 - .../funnel/marker/colorbar/_thicknessmode.py | 1 - .../funnel/marker/colorbar/_tick0.py | 1 - .../funnel/marker/colorbar/_tickangle.py | 1 - .../funnel/marker/colorbar/_tickcolor.py | 1 - .../funnel/marker/colorbar/_tickformat.py | 1 - .../marker/colorbar/_ticklabeloverflow.py | 17 + .../marker/colorbar/_ticklabelposition.py | 1 - .../funnel/marker/colorbar/_ticklen.py | 1 - .../funnel/marker/colorbar/_tickmode.py | 1 - .../funnel/marker/colorbar/_tickprefix.py | 1 - .../funnel/marker/colorbar/_ticks.py | 1 - .../funnel/marker/colorbar/_ticksuffix.py | 1 - .../funnel/marker/colorbar/_ticktext.py | 1 - .../funnel/marker/colorbar/_ticktextsrc.py | 1 - .../funnel/marker/colorbar/_tickvals.py | 1 - .../funnel/marker/colorbar/_tickvalssrc.py | 1 - .../funnel/marker/colorbar/_tickwidth.py | 1 - .../validators/funnel/marker/colorbar/_x.py | 1 - .../funnel/marker/colorbar/_xanchor.py | 1 - .../funnel/marker/colorbar/_xpad.py | 1 - .../validators/funnel/marker/colorbar/_y.py | 1 - .../funnel/marker/colorbar/_yanchor.py | 1 - .../funnel/marker/colorbar/_ypad.py | 1 - .../funnel/marker/colorbar/tickfont/_color.py | 1 - .../marker/colorbar/tickfont/_family.py | 1 - .../funnel/marker/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../marker/colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../marker/colorbar/tickformatstop/_value.py | 1 - .../funnel/marker/colorbar/title/_side.py | 1 - .../funnel/marker/colorbar/title/_text.py | 1 - .../marker/colorbar/title/font/_color.py | 1 - .../marker/colorbar/title/font/_family.py | 1 - .../marker/colorbar/title/font/_size.py | 1 - .../funnel/marker/line/_autocolorscale.py | 1 - .../validators/funnel/marker/line/_cauto.py | 1 - .../validators/funnel/marker/line/_cmax.py | 1 - .../validators/funnel/marker/line/_cmid.py | 1 - .../validators/funnel/marker/line/_cmin.py | 1 - .../validators/funnel/marker/line/_color.py | 1 - .../funnel/marker/line/_coloraxis.py | 1 - .../funnel/marker/line/_colorscale.py | 1 - .../funnel/marker/line/_colorsrc.py | 1 - .../funnel/marker/line/_reversescale.py | 1 - .../validators/funnel/marker/line/_width.py | 1 - .../funnel/marker/line/_widthsrc.py | 1 - .../funnel/outsidetextfont/_color.py | 1 - .../funnel/outsidetextfont/_colorsrc.py | 1 - .../funnel/outsidetextfont/_family.py | 1 - .../funnel/outsidetextfont/_familysrc.py | 1 - .../funnel/outsidetextfont/_size.py | 1 - .../funnel/outsidetextfont/_sizesrc.py | 1 - .../validators/funnel/stream/_maxpoints.py | 1 - .../plotly/validators/funnel/stream/_token.py | 1 - .../validators/funnel/textfont/_color.py | 1 - .../validators/funnel/textfont/_colorsrc.py | 1 - .../validators/funnel/textfont/_family.py | 1 - .../validators/funnel/textfont/_familysrc.py | 1 - .../validators/funnel/textfont/_size.py | 1 - .../validators/funnel/textfont/_sizesrc.py | 1 - .../validators/funnelarea/_aspectratio.py | 1 - .../validators/funnelarea/_baseratio.py | 1 - .../validators/funnelarea/_customdata.py | 1 - .../validators/funnelarea/_customdatasrc.py | 1 - .../plotly/validators/funnelarea/_dlabel.py | 1 - .../validators/funnelarea/_hoverinfo.py | 1 - .../validators/funnelarea/_hoverinfosrc.py | 1 - .../validators/funnelarea/_hovertemplate.py | 1 - .../funnelarea/_hovertemplatesrc.py | 1 - .../validators/funnelarea/_hovertext.py | 1 - .../validators/funnelarea/_hovertextsrc.py | 1 - .../plotly/validators/funnelarea/_ids.py | 1 - .../plotly/validators/funnelarea/_idssrc.py | 1 - .../plotly/validators/funnelarea/_label0.py | 1 - .../plotly/validators/funnelarea/_labels.py | 1 - .../validators/funnelarea/_labelssrc.py | 1 - .../validators/funnelarea/_legendgroup.py | 1 - .../plotly/validators/funnelarea/_meta.py | 1 - .../plotly/validators/funnelarea/_metasrc.py | 1 - .../plotly/validators/funnelarea/_name.py | 1 - .../plotly/validators/funnelarea/_opacity.py | 1 - .../validators/funnelarea/_scalegroup.py | 1 - .../validators/funnelarea/_showlegend.py | 1 - .../plotly/validators/funnelarea/_text.py | 1 - .../plotly/validators/funnelarea/_textinfo.py | 1 - .../validators/funnelarea/_textposition.py | 1 - .../validators/funnelarea/_textpositionsrc.py | 1 - .../plotly/validators/funnelarea/_textsrc.py | 1 - .../validators/funnelarea/_texttemplate.py | 1 - .../validators/funnelarea/_texttemplatesrc.py | 1 - .../plotly/validators/funnelarea/_uid.py | 1 - .../validators/funnelarea/_uirevision.py | 1 - .../plotly/validators/funnelarea/_values.py | 1 - .../validators/funnelarea/_valuessrc.py | 1 - .../plotly/validators/funnelarea/_visible.py | 1 - .../validators/funnelarea/domain/_column.py | 1 - .../validators/funnelarea/domain/_row.py | 1 - .../plotly/validators/funnelarea/domain/_x.py | 1 - .../plotly/validators/funnelarea/domain/_y.py | 1 - .../funnelarea/hoverlabel/_align.py | 1 - .../funnelarea/hoverlabel/_alignsrc.py | 1 - .../funnelarea/hoverlabel/_bgcolor.py | 1 - .../funnelarea/hoverlabel/_bgcolorsrc.py | 1 - .../funnelarea/hoverlabel/_bordercolor.py | 1 - .../funnelarea/hoverlabel/_bordercolorsrc.py | 1 - .../funnelarea/hoverlabel/_namelength.py | 1 - .../funnelarea/hoverlabel/_namelengthsrc.py | 1 - .../funnelarea/hoverlabel/font/_color.py | 1 - .../funnelarea/hoverlabel/font/_colorsrc.py | 1 - .../funnelarea/hoverlabel/font/_family.py | 1 - .../funnelarea/hoverlabel/font/_familysrc.py | 1 - .../funnelarea/hoverlabel/font/_size.py | 1 - .../funnelarea/hoverlabel/font/_sizesrc.py | 1 - .../funnelarea/insidetextfont/_color.py | 1 - .../funnelarea/insidetextfont/_colorsrc.py | 1 - .../funnelarea/insidetextfont/_family.py | 1 - .../funnelarea/insidetextfont/_familysrc.py | 1 - .../funnelarea/insidetextfont/_size.py | 1 - .../funnelarea/insidetextfont/_sizesrc.py | 1 - .../validators/funnelarea/marker/_colors.py | 1 - .../funnelarea/marker/_colorssrc.py | 1 - .../funnelarea/marker/line/_color.py | 1 - .../funnelarea/marker/line/_colorsrc.py | 1 - .../funnelarea/marker/line/_width.py | 1 - .../funnelarea/marker/line/_widthsrc.py | 1 - .../funnelarea/stream/_maxpoints.py | 1 - .../validators/funnelarea/stream/_token.py | 1 - .../validators/funnelarea/textfont/_color.py | 1 - .../funnelarea/textfont/_colorsrc.py | 1 - .../validators/funnelarea/textfont/_family.py | 1 - .../funnelarea/textfont/_familysrc.py | 1 - .../validators/funnelarea/textfont/_size.py | 1 - .../funnelarea/textfont/_sizesrc.py | 1 - .../validators/funnelarea/title/_position.py | 1 - .../validators/funnelarea/title/_text.py | 1 - .../funnelarea/title/font/_color.py | 1 - .../funnelarea/title/font/_colorsrc.py | 1 - .../funnelarea/title/font/_family.py | 1 - .../funnelarea/title/font/_familysrc.py | 1 - .../validators/funnelarea/title/font/_size.py | 1 - .../funnelarea/title/font/_sizesrc.py | 1 - .../plotly/validators/heatmap/__init__.py | 4 + .../validators/heatmap/_autocolorscale.py | 1 - .../plotly/validators/heatmap/_coloraxis.py | 1 - .../plotly/validators/heatmap/_colorbar.py | 6 + .../plotly/validators/heatmap/_colorscale.py | 1 - .../plotly/validators/heatmap/_connectgaps.py | 1 - .../plotly/validators/heatmap/_customdata.py | 1 - .../validators/heatmap/_customdatasrc.py | 1 - .../plotly/plotly/validators/heatmap/_dx.py | 1 - .../plotly/plotly/validators/heatmap/_dy.py | 1 - .../plotly/validators/heatmap/_hoverinfo.py | 1 - .../validators/heatmap/_hoverinfosrc.py | 1 - .../plotly/validators/heatmap/_hoverongaps.py | 1 - .../validators/heatmap/_hovertemplate.py | 1 - .../validators/heatmap/_hovertemplatesrc.py | 1 - .../plotly/validators/heatmap/_hovertext.py | 1 - .../validators/heatmap/_hovertextsrc.py | 1 - .../plotly/plotly/validators/heatmap/_ids.py | 1 - .../plotly/validators/heatmap/_idssrc.py | 1 - .../plotly/validators/heatmap/_legendgroup.py | 1 - .../plotly/plotly/validators/heatmap/_meta.py | 1 - .../plotly/validators/heatmap/_metasrc.py | 1 - .../plotly/plotly/validators/heatmap/_name.py | 1 - .../plotly/validators/heatmap/_opacity.py | 1 - .../validators/heatmap/_reversescale.py | 1 - .../plotly/validators/heatmap/_showlegend.py | 1 - .../plotly/validators/heatmap/_showscale.py | 1 - .../plotly/plotly/validators/heatmap/_text.py | 1 - .../plotly/validators/heatmap/_textsrc.py | 1 - .../plotly/validators/heatmap/_transpose.py | 1 - .../plotly/plotly/validators/heatmap/_uid.py | 1 - .../plotly/validators/heatmap/_uirevision.py | 1 - .../plotly/validators/heatmap/_visible.py | 1 - .../plotly/plotly/validators/heatmap/_x.py | 1 - .../plotly/plotly/validators/heatmap/_x0.py | 1 - .../plotly/validators/heatmap/_xaxis.py | 1 - .../plotly/validators/heatmap/_xcalendar.py | 1 - .../plotly/plotly/validators/heatmap/_xgap.py | 1 - .../validators/heatmap/_xhoverformat.py | 11 + .../plotly/validators/heatmap/_xperiod.py | 1 - .../plotly/validators/heatmap/_xperiod0.py | 1 - .../validators/heatmap/_xperiodalignment.py | 1 - .../plotly/plotly/validators/heatmap/_xsrc.py | 1 - .../plotly/validators/heatmap/_xtype.py | 1 - .../plotly/plotly/validators/heatmap/_y.py | 1 - .../plotly/plotly/validators/heatmap/_y0.py | 1 - .../plotly/validators/heatmap/_yaxis.py | 1 - .../plotly/validators/heatmap/_ycalendar.py | 1 - .../plotly/plotly/validators/heatmap/_ygap.py | 1 - .../validators/heatmap/_yhoverformat.py | 11 + .../plotly/validators/heatmap/_yperiod.py | 1 - .../plotly/validators/heatmap/_yperiod0.py | 1 - .../validators/heatmap/_yperiodalignment.py | 1 - .../plotly/plotly/validators/heatmap/_ysrc.py | 1 - .../plotly/validators/heatmap/_ytype.py | 1 - .../plotly/plotly/validators/heatmap/_z.py | 1 - .../plotly/validators/heatmap/_zauto.py | 1 - .../validators/heatmap/_zhoverformat.py | 1 - .../plotly/plotly/validators/heatmap/_zmax.py | 1 - .../plotly/plotly/validators/heatmap/_zmid.py | 1 - .../plotly/plotly/validators/heatmap/_zmin.py | 1 - .../plotly/validators/heatmap/_zsmooth.py | 1 - .../plotly/plotly/validators/heatmap/_zsrc.py | 1 - .../validators/heatmap/colorbar/__init__.py | 2 + .../validators/heatmap/colorbar/_bgcolor.py | 1 - .../heatmap/colorbar/_bordercolor.py | 1 - .../heatmap/colorbar/_borderwidth.py | 1 - .../validators/heatmap/colorbar/_dtick.py | 1 - .../heatmap/colorbar/_exponentformat.py | 1 - .../validators/heatmap/colorbar/_len.py | 1 - .../validators/heatmap/colorbar/_lenmode.py | 1 - .../heatmap/colorbar/_minexponent.py | 1 - .../validators/heatmap/colorbar/_nticks.py | 1 - .../heatmap/colorbar/_outlinecolor.py | 1 - .../heatmap/colorbar/_outlinewidth.py | 1 - .../heatmap/colorbar/_separatethousands.py | 1 - .../heatmap/colorbar/_showexponent.py | 1 - .../heatmap/colorbar/_showticklabels.py | 1 - .../heatmap/colorbar/_showtickprefix.py | 1 - .../heatmap/colorbar/_showticksuffix.py | 1 - .../validators/heatmap/colorbar/_thickness.py | 1 - .../heatmap/colorbar/_thicknessmode.py | 1 - .../validators/heatmap/colorbar/_tick0.py | 1 - .../validators/heatmap/colorbar/_tickangle.py | 1 - .../validators/heatmap/colorbar/_tickcolor.py | 1 - .../heatmap/colorbar/_tickformat.py | 1 - .../heatmap/colorbar/_ticklabeloverflow.py | 14 + .../heatmap/colorbar/_ticklabelposition.py | 1 - .../validators/heatmap/colorbar/_ticklen.py | 1 - .../validators/heatmap/colorbar/_tickmode.py | 1 - .../heatmap/colorbar/_tickprefix.py | 1 - .../validators/heatmap/colorbar/_ticks.py | 1 - .../heatmap/colorbar/_ticksuffix.py | 1 - .../validators/heatmap/colorbar/_ticktext.py | 1 - .../heatmap/colorbar/_ticktextsrc.py | 1 - .../validators/heatmap/colorbar/_tickvals.py | 1 - .../heatmap/colorbar/_tickvalssrc.py | 1 - .../validators/heatmap/colorbar/_tickwidth.py | 1 - .../plotly/validators/heatmap/colorbar/_x.py | 1 - .../validators/heatmap/colorbar/_xanchor.py | 1 - .../validators/heatmap/colorbar/_xpad.py | 1 - .../plotly/validators/heatmap/colorbar/_y.py | 1 - .../validators/heatmap/colorbar/_yanchor.py | 1 - .../validators/heatmap/colorbar/_ypad.py | 1 - .../heatmap/colorbar/tickfont/_color.py | 1 - .../heatmap/colorbar/tickfont/_family.py | 1 - .../heatmap/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../heatmap/colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../heatmap/colorbar/tickformatstop/_value.py | 1 - .../heatmap/colorbar/title/_side.py | 1 - .../heatmap/colorbar/title/_text.py | 1 - .../heatmap/colorbar/title/font/_color.py | 1 - .../heatmap/colorbar/title/font/_family.py | 1 - .../heatmap/colorbar/title/font/_size.py | 1 - .../validators/heatmap/hoverlabel/_align.py | 1 - .../heatmap/hoverlabel/_alignsrc.py | 1 - .../validators/heatmap/hoverlabel/_bgcolor.py | 1 - .../heatmap/hoverlabel/_bgcolorsrc.py | 1 - .../heatmap/hoverlabel/_bordercolor.py | 1 - .../heatmap/hoverlabel/_bordercolorsrc.py | 1 - .../heatmap/hoverlabel/_namelength.py | 1 - .../heatmap/hoverlabel/_namelengthsrc.py | 1 - .../heatmap/hoverlabel/font/_color.py | 1 - .../heatmap/hoverlabel/font/_colorsrc.py | 1 - .../heatmap/hoverlabel/font/_family.py | 1 - .../heatmap/hoverlabel/font/_familysrc.py | 1 - .../heatmap/hoverlabel/font/_size.py | 1 - .../heatmap/hoverlabel/font/_sizesrc.py | 1 - .../validators/heatmap/stream/_maxpoints.py | 1 - .../validators/heatmap/stream/_token.py | 1 - .../validators/heatmapgl/_autocolorscale.py | 1 - .../plotly/validators/heatmapgl/_coloraxis.py | 1 - .../plotly/validators/heatmapgl/_colorbar.py | 6 + .../validators/heatmapgl/_colorscale.py | 1 - .../validators/heatmapgl/_customdata.py | 1 - .../validators/heatmapgl/_customdatasrc.py | 1 - .../plotly/plotly/validators/heatmapgl/_dx.py | 1 - .../plotly/plotly/validators/heatmapgl/_dy.py | 1 - .../plotly/validators/heatmapgl/_hoverinfo.py | 1 - .../validators/heatmapgl/_hoverinfosrc.py | 1 - .../plotly/validators/heatmapgl/_ids.py | 1 - .../plotly/validators/heatmapgl/_idssrc.py | 1 - .../plotly/validators/heatmapgl/_meta.py | 1 - .../plotly/validators/heatmapgl/_metasrc.py | 1 - .../plotly/validators/heatmapgl/_name.py | 1 - .../plotly/validators/heatmapgl/_opacity.py | 1 - .../validators/heatmapgl/_reversescale.py | 1 - .../plotly/validators/heatmapgl/_showscale.py | 1 - .../plotly/validators/heatmapgl/_text.py | 1 - .../plotly/validators/heatmapgl/_textsrc.py | 1 - .../plotly/validators/heatmapgl/_transpose.py | 1 - .../plotly/validators/heatmapgl/_uid.py | 1 - .../validators/heatmapgl/_uirevision.py | 1 - .../plotly/validators/heatmapgl/_visible.py | 1 - .../plotly/plotly/validators/heatmapgl/_x.py | 1 - .../plotly/plotly/validators/heatmapgl/_x0.py | 1 - .../plotly/validators/heatmapgl/_xaxis.py | 1 - .../plotly/validators/heatmapgl/_xsrc.py | 1 - .../plotly/validators/heatmapgl/_xtype.py | 1 - .../plotly/plotly/validators/heatmapgl/_y.py | 1 - .../plotly/plotly/validators/heatmapgl/_y0.py | 1 - .../plotly/validators/heatmapgl/_yaxis.py | 1 - .../plotly/validators/heatmapgl/_ysrc.py | 1 - .../plotly/validators/heatmapgl/_ytype.py | 1 - .../plotly/plotly/validators/heatmapgl/_z.py | 1 - .../plotly/validators/heatmapgl/_zauto.py | 1 - .../plotly/validators/heatmapgl/_zmax.py | 1 - .../plotly/validators/heatmapgl/_zmid.py | 1 - .../plotly/validators/heatmapgl/_zmin.py | 1 - .../plotly/validators/heatmapgl/_zsmooth.py | 1 - .../plotly/validators/heatmapgl/_zsrc.py | 1 - .../validators/heatmapgl/colorbar/__init__.py | 2 + .../validators/heatmapgl/colorbar/_bgcolor.py | 1 - .../heatmapgl/colorbar/_bordercolor.py | 1 - .../heatmapgl/colorbar/_borderwidth.py | 1 - .../validators/heatmapgl/colorbar/_dtick.py | 1 - .../heatmapgl/colorbar/_exponentformat.py | 1 - .../validators/heatmapgl/colorbar/_len.py | 1 - .../validators/heatmapgl/colorbar/_lenmode.py | 1 - .../heatmapgl/colorbar/_minexponent.py | 1 - .../validators/heatmapgl/colorbar/_nticks.py | 1 - .../heatmapgl/colorbar/_outlinecolor.py | 1 - .../heatmapgl/colorbar/_outlinewidth.py | 1 - .../heatmapgl/colorbar/_separatethousands.py | 1 - .../heatmapgl/colorbar/_showexponent.py | 1 - .../heatmapgl/colorbar/_showticklabels.py | 1 - .../heatmapgl/colorbar/_showtickprefix.py | 1 - .../heatmapgl/colorbar/_showticksuffix.py | 1 - .../heatmapgl/colorbar/_thickness.py | 1 - .../heatmapgl/colorbar/_thicknessmode.py | 1 - .../validators/heatmapgl/colorbar/_tick0.py | 1 - .../heatmapgl/colorbar/_tickangle.py | 1 - .../heatmapgl/colorbar/_tickcolor.py | 1 - .../heatmapgl/colorbar/_tickformat.py | 1 - .../heatmapgl/colorbar/_ticklabeloverflow.py | 17 + .../heatmapgl/colorbar/_ticklabelposition.py | 1 - .../validators/heatmapgl/colorbar/_ticklen.py | 1 - .../heatmapgl/colorbar/_tickmode.py | 1 - .../heatmapgl/colorbar/_tickprefix.py | 1 - .../validators/heatmapgl/colorbar/_ticks.py | 1 - .../heatmapgl/colorbar/_ticksuffix.py | 1 - .../heatmapgl/colorbar/_ticktext.py | 1 - .../heatmapgl/colorbar/_ticktextsrc.py | 1 - .../heatmapgl/colorbar/_tickvals.py | 1 - .../heatmapgl/colorbar/_tickvalssrc.py | 1 - .../heatmapgl/colorbar/_tickwidth.py | 1 - .../validators/heatmapgl/colorbar/_x.py | 1 - .../validators/heatmapgl/colorbar/_xanchor.py | 1 - .../validators/heatmapgl/colorbar/_xpad.py | 1 - .../validators/heatmapgl/colorbar/_y.py | 1 - .../validators/heatmapgl/colorbar/_yanchor.py | 1 - .../validators/heatmapgl/colorbar/_ypad.py | 1 - .../heatmapgl/colorbar/tickfont/_color.py | 1 - .../heatmapgl/colorbar/tickfont/_family.py | 1 - .../heatmapgl/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../colorbar/tickformatstop/_value.py | 1 - .../heatmapgl/colorbar/title/_side.py | 1 - .../heatmapgl/colorbar/title/_text.py | 1 - .../heatmapgl/colorbar/title/font/_color.py | 1 - .../heatmapgl/colorbar/title/font/_family.py | 1 - .../heatmapgl/colorbar/title/font/_size.py | 1 - .../validators/heatmapgl/hoverlabel/_align.py | 1 - .../heatmapgl/hoverlabel/_alignsrc.py | 1 - .../heatmapgl/hoverlabel/_bgcolor.py | 1 - .../heatmapgl/hoverlabel/_bgcolorsrc.py | 1 - .../heatmapgl/hoverlabel/_bordercolor.py | 1 - .../heatmapgl/hoverlabel/_bordercolorsrc.py | 1 - .../heatmapgl/hoverlabel/_namelength.py | 1 - .../heatmapgl/hoverlabel/_namelengthsrc.py | 1 - .../heatmapgl/hoverlabel/font/_color.py | 1 - .../heatmapgl/hoverlabel/font/_colorsrc.py | 1 - .../heatmapgl/hoverlabel/font/_family.py | 1 - .../heatmapgl/hoverlabel/font/_familysrc.py | 1 - .../heatmapgl/hoverlabel/font/_size.py | 1 - .../heatmapgl/hoverlabel/font/_sizesrc.py | 1 - .../validators/heatmapgl/stream/_maxpoints.py | 1 - .../validators/heatmapgl/stream/_token.py | 1 - .../plotly/validators/histogram/__init__.py | 4 + .../validators/histogram/_alignmentgroup.py | 1 - .../plotly/validators/histogram/_autobinx.py | 1 - .../plotly/validators/histogram/_autobiny.py | 1 - .../plotly/validators/histogram/_bingroup.py | 1 - .../validators/histogram/_customdata.py | 1 - .../validators/histogram/_customdatasrc.py | 1 - .../plotly/validators/histogram/_histfunc.py | 1 - .../plotly/validators/histogram/_histnorm.py | 1 - .../plotly/validators/histogram/_hoverinfo.py | 1 - .../validators/histogram/_hoverinfosrc.py | 1 - .../validators/histogram/_hovertemplate.py | 1 - .../validators/histogram/_hovertemplatesrc.py | 1 - .../plotly/validators/histogram/_hovertext.py | 1 - .../validators/histogram/_hovertextsrc.py | 1 - .../plotly/validators/histogram/_ids.py | 1 - .../plotly/validators/histogram/_idssrc.py | 1 - .../validators/histogram/_legendgroup.py | 1 - .../plotly/validators/histogram/_marker.py | 4 + .../plotly/validators/histogram/_meta.py | 1 - .../plotly/validators/histogram/_metasrc.py | 1 - .../plotly/validators/histogram/_name.py | 1 - .../plotly/validators/histogram/_nbinsx.py | 1 - .../plotly/validators/histogram/_nbinsy.py | 1 - .../validators/histogram/_offsetgroup.py | 1 - .../plotly/validators/histogram/_opacity.py | 1 - .../validators/histogram/_orientation.py | 1 - .../validators/histogram/_selectedpoints.py | 1 - .../validators/histogram/_showlegend.py | 1 - .../plotly/validators/histogram/_text.py | 1 - .../plotly/validators/histogram/_textsrc.py | 1 - .../plotly/validators/histogram/_uid.py | 1 - .../validators/histogram/_uirevision.py | 1 - .../plotly/validators/histogram/_visible.py | 1 - .../plotly/plotly/validators/histogram/_x.py | 1 - .../plotly/validators/histogram/_xaxis.py | 1 - .../plotly/validators/histogram/_xcalendar.py | 1 - .../validators/histogram/_xhoverformat.py | 11 + .../plotly/validators/histogram/_xsrc.py | 1 - .../plotly/plotly/validators/histogram/_y.py | 1 - .../plotly/validators/histogram/_yaxis.py | 1 - .../plotly/validators/histogram/_ycalendar.py | 1 - .../validators/histogram/_yhoverformat.py | 11 + .../plotly/validators/histogram/_ysrc.py | 1 - .../histogram/cumulative/_currentbin.py | 1 - .../histogram/cumulative/_direction.py | 1 - .../histogram/cumulative/_enabled.py | 1 - .../validators/histogram/error_x/_array.py | 1 - .../histogram/error_x/_arrayminus.py | 1 - .../histogram/error_x/_arrayminussrc.py | 1 - .../validators/histogram/error_x/_arraysrc.py | 1 - .../validators/histogram/error_x/_color.py | 1 - .../histogram/error_x/_copy_ystyle.py | 1 - .../histogram/error_x/_symmetric.py | 1 - .../histogram/error_x/_thickness.py | 1 - .../validators/histogram/error_x/_traceref.py | 1 - .../histogram/error_x/_tracerefminus.py | 1 - .../validators/histogram/error_x/_type.py | 1 - .../validators/histogram/error_x/_value.py | 1 - .../histogram/error_x/_valueminus.py | 1 - .../validators/histogram/error_x/_visible.py | 1 - .../validators/histogram/error_x/_width.py | 1 - .../validators/histogram/error_y/_array.py | 1 - .../histogram/error_y/_arrayminus.py | 1 - .../histogram/error_y/_arrayminussrc.py | 1 - .../validators/histogram/error_y/_arraysrc.py | 1 - .../validators/histogram/error_y/_color.py | 1 - .../histogram/error_y/_symmetric.py | 1 - .../histogram/error_y/_thickness.py | 1 - .../validators/histogram/error_y/_traceref.py | 1 - .../histogram/error_y/_tracerefminus.py | 1 - .../validators/histogram/error_y/_type.py | 1 - .../validators/histogram/error_y/_value.py | 1 - .../histogram/error_y/_valueminus.py | 1 - .../validators/histogram/error_y/_visible.py | 1 - .../validators/histogram/error_y/_width.py | 1 - .../validators/histogram/hoverlabel/_align.py | 1 - .../histogram/hoverlabel/_alignsrc.py | 1 - .../histogram/hoverlabel/_bgcolor.py | 1 - .../histogram/hoverlabel/_bgcolorsrc.py | 1 - .../histogram/hoverlabel/_bordercolor.py | 1 - .../histogram/hoverlabel/_bordercolorsrc.py | 1 - .../histogram/hoverlabel/_namelength.py | 1 - .../histogram/hoverlabel/_namelengthsrc.py | 1 - .../histogram/hoverlabel/font/_color.py | 1 - .../histogram/hoverlabel/font/_colorsrc.py | 1 - .../histogram/hoverlabel/font/_family.py | 1 - .../histogram/hoverlabel/font/_familysrc.py | 1 - .../histogram/hoverlabel/font/_size.py | 1 - .../histogram/hoverlabel/font/_sizesrc.py | 1 - .../validators/histogram/marker/__init__.py | 2 + .../histogram/marker/_autocolorscale.py | 1 - .../validators/histogram/marker/_cauto.py | 1 - .../validators/histogram/marker/_cmax.py | 1 - .../validators/histogram/marker/_cmid.py | 1 - .../validators/histogram/marker/_cmin.py | 1 - .../validators/histogram/marker/_color.py | 1 - .../validators/histogram/marker/_coloraxis.py | 1 - .../validators/histogram/marker/_colorbar.py | 6 + .../histogram/marker/_colorscale.py | 1 - .../validators/histogram/marker/_colorsrc.py | 1 - .../validators/histogram/marker/_opacity.py | 1 - .../histogram/marker/_opacitysrc.py | 1 - .../validators/histogram/marker/_pattern.py | 45 + .../histogram/marker/_reversescale.py | 1 - .../validators/histogram/marker/_showscale.py | 1 - .../histogram/marker/colorbar/__init__.py | 2 + .../histogram/marker/colorbar/_bgcolor.py | 1 - .../histogram/marker/colorbar/_bordercolor.py | 1 - .../histogram/marker/colorbar/_borderwidth.py | 1 - .../histogram/marker/colorbar/_dtick.py | 1 - .../marker/colorbar/_exponentformat.py | 1 - .../histogram/marker/colorbar/_len.py | 1 - .../histogram/marker/colorbar/_lenmode.py | 1 - .../histogram/marker/colorbar/_minexponent.py | 1 - .../histogram/marker/colorbar/_nticks.py | 1 - .../marker/colorbar/_outlinecolor.py | 1 - .../marker/colorbar/_outlinewidth.py | 1 - .../marker/colorbar/_separatethousands.py | 1 - .../marker/colorbar/_showexponent.py | 1 - .../marker/colorbar/_showticklabels.py | 1 - .../marker/colorbar/_showtickprefix.py | 1 - .../marker/colorbar/_showticksuffix.py | 1 - .../histogram/marker/colorbar/_thickness.py | 1 - .../marker/colorbar/_thicknessmode.py | 1 - .../histogram/marker/colorbar/_tick0.py | 1 - .../histogram/marker/colorbar/_tickangle.py | 1 - .../histogram/marker/colorbar/_tickcolor.py | 1 - .../histogram/marker/colorbar/_tickformat.py | 1 - .../marker/colorbar/_ticklabeloverflow.py | 17 + .../marker/colorbar/_ticklabelposition.py | 1 - .../histogram/marker/colorbar/_ticklen.py | 1 - .../histogram/marker/colorbar/_tickmode.py | 1 - .../histogram/marker/colorbar/_tickprefix.py | 1 - .../histogram/marker/colorbar/_ticks.py | 1 - .../histogram/marker/colorbar/_ticksuffix.py | 1 - .../histogram/marker/colorbar/_ticktext.py | 1 - .../histogram/marker/colorbar/_ticktextsrc.py | 1 - .../histogram/marker/colorbar/_tickvals.py | 1 - .../histogram/marker/colorbar/_tickvalssrc.py | 1 - .../histogram/marker/colorbar/_tickwidth.py | 1 - .../histogram/marker/colorbar/_x.py | 1 - .../histogram/marker/colorbar/_xanchor.py | 1 - .../histogram/marker/colorbar/_xpad.py | 1 - .../histogram/marker/colorbar/_y.py | 1 - .../histogram/marker/colorbar/_yanchor.py | 1 - .../histogram/marker/colorbar/_ypad.py | 1 - .../marker/colorbar/tickfont/_color.py | 1 - .../marker/colorbar/tickfont/_family.py | 1 - .../marker/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../marker/colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../marker/colorbar/tickformatstop/_value.py | 1 - .../histogram/marker/colorbar/title/_side.py | 1 - .../histogram/marker/colorbar/title/_text.py | 1 - .../marker/colorbar/title/font/_color.py | 1 - .../marker/colorbar/title/font/_family.py | 1 - .../marker/colorbar/title/font/_size.py | 1 - .../histogram/marker/line/_autocolorscale.py | 1 - .../histogram/marker/line/_cauto.py | 1 - .../validators/histogram/marker/line/_cmax.py | 1 - .../validators/histogram/marker/line/_cmid.py | 1 - .../validators/histogram/marker/line/_cmin.py | 1 - .../histogram/marker/line/_color.py | 1 - .../histogram/marker/line/_coloraxis.py | 1 - .../histogram/marker/line/_colorscale.py | 1 - .../histogram/marker/line/_colorsrc.py | 1 - .../histogram/marker/line/_reversescale.py | 1 - .../histogram/marker/line/_width.py | 1 - .../histogram/marker/line/_widthsrc.py | 1 - .../histogram/marker/pattern/__init__.py | 28 + .../histogram/marker/pattern/_bgcolor.py | 14 + .../histogram/marker/pattern/_bgcolorsrc.py | 13 + .../histogram/marker/pattern/_shape.py | 15 + .../histogram/marker/pattern/_shapesrc.py | 13 + .../histogram/marker/pattern/_size.py | 15 + .../histogram/marker/pattern/_sizesrc.py | 13 + .../histogram/marker/pattern/_solidity.py | 16 + .../histogram/marker/pattern/_soliditysrc.py | 16 + .../histogram/selected/marker/_color.py | 1 - .../histogram/selected/marker/_opacity.py | 1 - .../histogram/selected/textfont/_color.py | 1 - .../validators/histogram/stream/_maxpoints.py | 1 - .../validators/histogram/stream/_token.py | 1 - .../histogram/unselected/marker/_color.py | 1 - .../histogram/unselected/marker/_opacity.py | 1 - .../histogram/unselected/textfont/_color.py | 1 - .../plotly/validators/histogram/xbins/_end.py | 1 - .../validators/histogram/xbins/_size.py | 1 - .../validators/histogram/xbins/_start.py | 1 - .../plotly/validators/histogram/ybins/_end.py | 1 - .../validators/histogram/ybins/_size.py | 1 - .../validators/histogram/ybins/_start.py | 1 - .../plotly/validators/histogram2d/__init__.py | 4 + .../validators/histogram2d/_autobinx.py | 1 - .../validators/histogram2d/_autobiny.py | 1 - .../validators/histogram2d/_autocolorscale.py | 1 - .../validators/histogram2d/_bingroup.py | 1 - .../validators/histogram2d/_coloraxis.py | 1 - .../validators/histogram2d/_colorbar.py | 6 + .../validators/histogram2d/_colorscale.py | 1 - .../validators/histogram2d/_customdata.py | 1 - .../validators/histogram2d/_customdatasrc.py | 1 - .../validators/histogram2d/_histfunc.py | 1 - .../validators/histogram2d/_histnorm.py | 1 - .../validators/histogram2d/_hoverinfo.py | 1 - .../validators/histogram2d/_hoverinfosrc.py | 1 - .../validators/histogram2d/_hovertemplate.py | 1 - .../histogram2d/_hovertemplatesrc.py | 1 - .../plotly/validators/histogram2d/_ids.py | 1 - .../plotly/validators/histogram2d/_idssrc.py | 1 - .../validators/histogram2d/_legendgroup.py | 1 - .../plotly/validators/histogram2d/_meta.py | 1 - .../plotly/validators/histogram2d/_metasrc.py | 1 - .../plotly/validators/histogram2d/_name.py | 1 - .../plotly/validators/histogram2d/_nbinsx.py | 1 - .../plotly/validators/histogram2d/_nbinsy.py | 1 - .../plotly/validators/histogram2d/_opacity.py | 1 - .../validators/histogram2d/_reversescale.py | 1 - .../validators/histogram2d/_showlegend.py | 1 - .../validators/histogram2d/_showscale.py | 1 - .../plotly/validators/histogram2d/_uid.py | 1 - .../validators/histogram2d/_uirevision.py | 1 - .../plotly/validators/histogram2d/_visible.py | 1 - .../plotly/validators/histogram2d/_x.py | 1 - .../plotly/validators/histogram2d/_xaxis.py | 1 - .../validators/histogram2d/_xbingroup.py | 1 - .../validators/histogram2d/_xcalendar.py | 1 - .../plotly/validators/histogram2d/_xgap.py | 1 - .../validators/histogram2d/_xhoverformat.py | 11 + .../plotly/validators/histogram2d/_xsrc.py | 1 - .../plotly/validators/histogram2d/_y.py | 1 - .../plotly/validators/histogram2d/_yaxis.py | 1 - .../validators/histogram2d/_ybingroup.py | 1 - .../validators/histogram2d/_ycalendar.py | 1 - .../plotly/validators/histogram2d/_ygap.py | 1 - .../validators/histogram2d/_yhoverformat.py | 11 + .../plotly/validators/histogram2d/_ysrc.py | 1 - .../plotly/validators/histogram2d/_z.py | 1 - .../plotly/validators/histogram2d/_zauto.py | 1 - .../validators/histogram2d/_zhoverformat.py | 1 - .../plotly/validators/histogram2d/_zmax.py | 1 - .../plotly/validators/histogram2d/_zmid.py | 1 - .../plotly/validators/histogram2d/_zmin.py | 1 - .../plotly/validators/histogram2d/_zsmooth.py | 1 - .../plotly/validators/histogram2d/_zsrc.py | 1 - .../histogram2d/colorbar/__init__.py | 2 + .../histogram2d/colorbar/_bgcolor.py | 1 - .../histogram2d/colorbar/_bordercolor.py | 1 - .../histogram2d/colorbar/_borderwidth.py | 1 - .../validators/histogram2d/colorbar/_dtick.py | 1 - .../histogram2d/colorbar/_exponentformat.py | 1 - .../validators/histogram2d/colorbar/_len.py | 1 - .../histogram2d/colorbar/_lenmode.py | 1 - .../histogram2d/colorbar/_minexponent.py | 1 - .../histogram2d/colorbar/_nticks.py | 1 - .../histogram2d/colorbar/_outlinecolor.py | 1 - .../histogram2d/colorbar/_outlinewidth.py | 1 - .../colorbar/_separatethousands.py | 1 - .../histogram2d/colorbar/_showexponent.py | 1 - .../histogram2d/colorbar/_showticklabels.py | 1 - .../histogram2d/colorbar/_showtickprefix.py | 1 - .../histogram2d/colorbar/_showticksuffix.py | 1 - .../histogram2d/colorbar/_thickness.py | 1 - .../histogram2d/colorbar/_thicknessmode.py | 1 - .../validators/histogram2d/colorbar/_tick0.py | 1 - .../histogram2d/colorbar/_tickangle.py | 1 - .../histogram2d/colorbar/_tickcolor.py | 1 - .../histogram2d/colorbar/_tickformat.py | 1 - .../colorbar/_ticklabeloverflow.py | 17 + .../colorbar/_ticklabelposition.py | 1 - .../histogram2d/colorbar/_ticklen.py | 1 - .../histogram2d/colorbar/_tickmode.py | 1 - .../histogram2d/colorbar/_tickprefix.py | 1 - .../validators/histogram2d/colorbar/_ticks.py | 1 - .../histogram2d/colorbar/_ticksuffix.py | 1 - .../histogram2d/colorbar/_ticktext.py | 1 - .../histogram2d/colorbar/_ticktextsrc.py | 1 - .../histogram2d/colorbar/_tickvals.py | 1 - .../histogram2d/colorbar/_tickvalssrc.py | 1 - .../histogram2d/colorbar/_tickwidth.py | 1 - .../validators/histogram2d/colorbar/_x.py | 1 - .../histogram2d/colorbar/_xanchor.py | 1 - .../validators/histogram2d/colorbar/_xpad.py | 1 - .../validators/histogram2d/colorbar/_y.py | 1 - .../histogram2d/colorbar/_yanchor.py | 1 - .../validators/histogram2d/colorbar/_ypad.py | 1 - .../histogram2d/colorbar/tickfont/_color.py | 1 - .../histogram2d/colorbar/tickfont/_family.py | 1 - .../histogram2d/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../colorbar/tickformatstop/_value.py | 1 - .../histogram2d/colorbar/title/_side.py | 1 - .../histogram2d/colorbar/title/_text.py | 1 - .../histogram2d/colorbar/title/font/_color.py | 1 - .../colorbar/title/font/_family.py | 1 - .../histogram2d/colorbar/title/font/_size.py | 1 - .../histogram2d/hoverlabel/_align.py | 1 - .../histogram2d/hoverlabel/_alignsrc.py | 1 - .../histogram2d/hoverlabel/_bgcolor.py | 1 - .../histogram2d/hoverlabel/_bgcolorsrc.py | 1 - .../histogram2d/hoverlabel/_bordercolor.py | 1 - .../histogram2d/hoverlabel/_bordercolorsrc.py | 1 - .../histogram2d/hoverlabel/_namelength.py | 1 - .../histogram2d/hoverlabel/_namelengthsrc.py | 1 - .../histogram2d/hoverlabel/font/_color.py | 1 - .../histogram2d/hoverlabel/font/_colorsrc.py | 1 - .../histogram2d/hoverlabel/font/_family.py | 1 - .../histogram2d/hoverlabel/font/_familysrc.py | 1 - .../histogram2d/hoverlabel/font/_size.py | 1 - .../histogram2d/hoverlabel/font/_sizesrc.py | 1 - .../validators/histogram2d/marker/_color.py | 1 - .../histogram2d/marker/_colorsrc.py | 1 - .../histogram2d/stream/_maxpoints.py | 1 - .../validators/histogram2d/stream/_token.py | 1 - .../validators/histogram2d/xbins/_end.py | 1 - .../validators/histogram2d/xbins/_size.py | 1 - .../validators/histogram2d/xbins/_start.py | 1 - .../validators/histogram2d/ybins/_end.py | 1 - .../validators/histogram2d/ybins/_size.py | 1 - .../validators/histogram2d/ybins/_start.py | 1 - .../validators/histogram2dcontour/__init__.py | 4 + .../histogram2dcontour/_autobinx.py | 1 - .../histogram2dcontour/_autobiny.py | 1 - .../histogram2dcontour/_autocolorscale.py | 1 - .../histogram2dcontour/_autocontour.py | 1 - .../histogram2dcontour/_bingroup.py | 1 - .../histogram2dcontour/_coloraxis.py | 1 - .../histogram2dcontour/_colorbar.py | 6 + .../histogram2dcontour/_colorscale.py | 1 - .../histogram2dcontour/_customdata.py | 1 - .../histogram2dcontour/_customdatasrc.py | 1 - .../histogram2dcontour/_histfunc.py | 1 - .../histogram2dcontour/_histnorm.py | 1 - .../histogram2dcontour/_hoverinfo.py | 1 - .../histogram2dcontour/_hoverinfosrc.py | 1 - .../histogram2dcontour/_hovertemplate.py | 1 - .../histogram2dcontour/_hovertemplatesrc.py | 1 - .../validators/histogram2dcontour/_ids.py | 1 - .../validators/histogram2dcontour/_idssrc.py | 1 - .../histogram2dcontour/_legendgroup.py | 1 - .../validators/histogram2dcontour/_meta.py | 1 - .../validators/histogram2dcontour/_metasrc.py | 1 - .../validators/histogram2dcontour/_name.py | 1 - .../validators/histogram2dcontour/_nbinsx.py | 1 - .../validators/histogram2dcontour/_nbinsy.py | 1 - .../histogram2dcontour/_ncontours.py | 1 - .../validators/histogram2dcontour/_opacity.py | 1 - .../histogram2dcontour/_reversescale.py | 1 - .../histogram2dcontour/_showlegend.py | 1 - .../histogram2dcontour/_showscale.py | 1 - .../validators/histogram2dcontour/_uid.py | 1 - .../histogram2dcontour/_uirevision.py | 1 - .../validators/histogram2dcontour/_visible.py | 1 - .../validators/histogram2dcontour/_x.py | 1 - .../validators/histogram2dcontour/_xaxis.py | 1 - .../histogram2dcontour/_xbingroup.py | 1 - .../histogram2dcontour/_xcalendar.py | 1 - .../histogram2dcontour/_xhoverformat.py | 13 + .../validators/histogram2dcontour/_xsrc.py | 1 - .../validators/histogram2dcontour/_y.py | 1 - .../validators/histogram2dcontour/_yaxis.py | 1 - .../histogram2dcontour/_ybingroup.py | 1 - .../histogram2dcontour/_ycalendar.py | 1 - .../histogram2dcontour/_yhoverformat.py | 13 + .../validators/histogram2dcontour/_ysrc.py | 1 - .../validators/histogram2dcontour/_z.py | 1 - .../validators/histogram2dcontour/_zauto.py | 1 - .../histogram2dcontour/_zhoverformat.py | 1 - .../validators/histogram2dcontour/_zmax.py | 1 - .../validators/histogram2dcontour/_zmid.py | 1 - .../validators/histogram2dcontour/_zmin.py | 1 - .../validators/histogram2dcontour/_zsrc.py | 1 - .../histogram2dcontour/colorbar/__init__.py | 2 + .../histogram2dcontour/colorbar/_bgcolor.py | 1 - .../colorbar/_bordercolor.py | 1 - .../colorbar/_borderwidth.py | 1 - .../histogram2dcontour/colorbar/_dtick.py | 1 - .../colorbar/_exponentformat.py | 1 - .../histogram2dcontour/colorbar/_len.py | 1 - .../histogram2dcontour/colorbar/_lenmode.py | 1 - .../colorbar/_minexponent.py | 1 - .../histogram2dcontour/colorbar/_nticks.py | 1 - .../colorbar/_outlinecolor.py | 1 - .../colorbar/_outlinewidth.py | 1 - .../colorbar/_separatethousands.py | 1 - .../colorbar/_showexponent.py | 1 - .../colorbar/_showticklabels.py | 1 - .../colorbar/_showtickprefix.py | 1 - .../colorbar/_showticksuffix.py | 1 - .../histogram2dcontour/colorbar/_thickness.py | 1 - .../colorbar/_thicknessmode.py | 1 - .../histogram2dcontour/colorbar/_tick0.py | 1 - .../histogram2dcontour/colorbar/_tickangle.py | 1 - .../histogram2dcontour/colorbar/_tickcolor.py | 1 - .../colorbar/_tickformat.py | 1 - .../colorbar/_ticklabeloverflow.py | 17 + .../colorbar/_ticklabelposition.py | 1 - .../histogram2dcontour/colorbar/_ticklen.py | 1 - .../histogram2dcontour/colorbar/_tickmode.py | 1 - .../colorbar/_tickprefix.py | 1 - .../histogram2dcontour/colorbar/_ticks.py | 1 - .../colorbar/_ticksuffix.py | 1 - .../histogram2dcontour/colorbar/_ticktext.py | 1 - .../colorbar/_ticktextsrc.py | 1 - .../histogram2dcontour/colorbar/_tickvals.py | 1 - .../colorbar/_tickvalssrc.py | 1 - .../histogram2dcontour/colorbar/_tickwidth.py | 1 - .../histogram2dcontour/colorbar/_x.py | 1 - .../histogram2dcontour/colorbar/_xanchor.py | 1 - .../histogram2dcontour/colorbar/_xpad.py | 1 - .../histogram2dcontour/colorbar/_y.py | 1 - .../histogram2dcontour/colorbar/_yanchor.py | 1 - .../histogram2dcontour/colorbar/_ypad.py | 1 - .../colorbar/tickfont/_color.py | 1 - .../colorbar/tickfont/_family.py | 1 - .../colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../colorbar/tickformatstop/_value.py | 1 - .../colorbar/title/_side.py | 1 - .../colorbar/title/_text.py | 1 - .../colorbar/title/font/_color.py | 1 - .../colorbar/title/font/_family.py | 1 - .../colorbar/title/font/_size.py | 1 - .../histogram2dcontour/contours/_coloring.py | 1 - .../histogram2dcontour/contours/_end.py | 1 - .../contours/_labelformat.py | 1 - .../histogram2dcontour/contours/_operation.py | 1 - .../contours/_showlabels.py | 1 - .../histogram2dcontour/contours/_showlines.py | 1 - .../histogram2dcontour/contours/_size.py | 1 - .../histogram2dcontour/contours/_start.py | 1 - .../histogram2dcontour/contours/_type.py | 1 - .../histogram2dcontour/contours/_value.py | 1 - .../contours/labelfont/_color.py | 1 - .../contours/labelfont/_family.py | 1 - .../contours/labelfont/_size.py | 1 - .../histogram2dcontour/hoverlabel/_align.py | 1 - .../hoverlabel/_alignsrc.py | 1 - .../histogram2dcontour/hoverlabel/_bgcolor.py | 1 - .../hoverlabel/_bgcolorsrc.py | 1 - .../hoverlabel/_bordercolor.py | 1 - .../hoverlabel/_bordercolorsrc.py | 1 - .../hoverlabel/_namelength.py | 1 - .../hoverlabel/_namelengthsrc.py | 1 - .../hoverlabel/font/_color.py | 1 - .../hoverlabel/font/_colorsrc.py | 1 - .../hoverlabel/font/_family.py | 1 - .../hoverlabel/font/_familysrc.py | 1 - .../hoverlabel/font/_size.py | 1 - .../hoverlabel/font/_sizesrc.py | 1 - .../histogram2dcontour/line/_color.py | 1 - .../histogram2dcontour/line/_dash.py | 1 - .../histogram2dcontour/line/_smoothing.py | 1 - .../histogram2dcontour/line/_width.py | 1 - .../histogram2dcontour/marker/_color.py | 1 - .../histogram2dcontour/marker/_colorsrc.py | 1 - .../histogram2dcontour/stream/_maxpoints.py | 1 - .../histogram2dcontour/stream/_token.py | 1 - .../histogram2dcontour/xbins/_end.py | 1 - .../histogram2dcontour/xbins/_size.py | 1 - .../histogram2dcontour/xbins/_start.py | 1 - .../histogram2dcontour/ybins/_end.py | 1 - .../histogram2dcontour/ybins/_size.py | 1 - .../histogram2dcontour/ybins/_start.py | 1 - .../plotly/validators/image/__init__.py | 2 + .../plotly/validators/image/_colormodel.py | 1 - .../plotly/validators/image/_customdata.py | 1 - .../plotly/validators/image/_customdatasrc.py | 1 - .../plotly/plotly/validators/image/_dx.py | 1 - .../plotly/plotly/validators/image/_dy.py | 1 - .../plotly/validators/image/_hoverinfo.py | 1 - .../plotly/validators/image/_hoverinfosrc.py | 1 - .../plotly/validators/image/_hovertemplate.py | 1 - .../validators/image/_hovertemplatesrc.py | 1 - .../plotly/validators/image/_hovertext.py | 1 - .../plotly/validators/image/_hovertextsrc.py | 1 - .../plotly/plotly/validators/image/_ids.py | 1 - .../plotly/plotly/validators/image/_idssrc.py | 1 - .../plotly/plotly/validators/image/_meta.py | 1 - .../plotly/validators/image/_metasrc.py | 1 - .../plotly/plotly/validators/image/_name.py | 1 - .../plotly/validators/image/_opacity.py | 1 - .../plotly/plotly/validators/image/_source.py | 1 - .../plotly/plotly/validators/image/_text.py | 1 - .../plotly/validators/image/_textsrc.py | 1 - .../plotly/plotly/validators/image/_uid.py | 1 - .../plotly/validators/image/_uirevision.py | 1 - .../plotly/validators/image/_visible.py | 1 - .../plotly/plotly/validators/image/_x0.py | 1 - .../plotly/plotly/validators/image/_xaxis.py | 1 - .../plotly/plotly/validators/image/_y0.py | 1 - .../plotly/plotly/validators/image/_yaxis.py | 1 - .../plotly/plotly/validators/image/_z.py | 1 - .../plotly/plotly/validators/image/_zmax.py | 1 - .../plotly/plotly/validators/image/_zmin.py | 1 - .../plotly/validators/image/_zsmooth.py | 12 + .../plotly/plotly/validators/image/_zsrc.py | 1 - .../validators/image/hoverlabel/_align.py | 1 - .../validators/image/hoverlabel/_alignsrc.py | 1 - .../validators/image/hoverlabel/_bgcolor.py | 1 - .../image/hoverlabel/_bgcolorsrc.py | 1 - .../image/hoverlabel/_bordercolor.py | 1 - .../image/hoverlabel/_bordercolorsrc.py | 1 - .../image/hoverlabel/_namelength.py | 1 - .../image/hoverlabel/_namelengthsrc.py | 1 - .../image/hoverlabel/font/_color.py | 1 - .../image/hoverlabel/font/_colorsrc.py | 1 - .../image/hoverlabel/font/_family.py | 1 - .../image/hoverlabel/font/_familysrc.py | 1 - .../validators/image/hoverlabel/font/_size.py | 1 - .../image/hoverlabel/font/_sizesrc.py | 1 - .../validators/image/stream/_maxpoints.py | 1 - .../plotly/validators/image/stream/_token.py | 1 - .../plotly/validators/indicator/_align.py | 1 - .../validators/indicator/_customdata.py | 1 - .../validators/indicator/_customdatasrc.py | 1 - .../plotly/validators/indicator/_ids.py | 1 - .../plotly/validators/indicator/_idssrc.py | 1 - .../plotly/validators/indicator/_meta.py | 1 - .../plotly/validators/indicator/_metasrc.py | 1 - .../plotly/validators/indicator/_mode.py | 1 - .../plotly/validators/indicator/_name.py | 1 - .../plotly/validators/indicator/_uid.py | 1 - .../validators/indicator/_uirevision.py | 1 - .../plotly/validators/indicator/_value.py | 1 - .../plotly/validators/indicator/_visible.py | 1 - .../validators/indicator/delta/_position.py | 1 - .../validators/indicator/delta/_reference.py | 1 - .../validators/indicator/delta/_relative.py | 1 - .../indicator/delta/_valueformat.py | 1 - .../indicator/delta/decreasing/_color.py | 1 - .../indicator/delta/decreasing/_symbol.py | 1 - .../validators/indicator/delta/font/_color.py | 1 - .../indicator/delta/font/_family.py | 1 - .../validators/indicator/delta/font/_size.py | 1 - .../indicator/delta/increasing/_color.py | 1 - .../indicator/delta/increasing/_symbol.py | 1 - .../validators/indicator/domain/_column.py | 1 - .../validators/indicator/domain/_row.py | 1 - .../plotly/validators/indicator/domain/_x.py | 1 - .../plotly/validators/indicator/domain/_y.py | 1 - .../validators/indicator/gauge/_bgcolor.py | 1 - .../indicator/gauge/_bordercolor.py | 1 - .../indicator/gauge/_borderwidth.py | 1 - .../validators/indicator/gauge/_shape.py | 1 - .../validators/indicator/gauge/axis/_dtick.py | 1 - .../indicator/gauge/axis/_exponentformat.py | 1 - .../indicator/gauge/axis/_minexponent.py | 1 - .../indicator/gauge/axis/_nticks.py | 1 - .../validators/indicator/gauge/axis/_range.py | 1 - .../gauge/axis/_separatethousands.py | 1 - .../indicator/gauge/axis/_showexponent.py | 1 - .../indicator/gauge/axis/_showticklabels.py | 1 - .../indicator/gauge/axis/_showtickprefix.py | 1 - .../indicator/gauge/axis/_showticksuffix.py | 1 - .../validators/indicator/gauge/axis/_tick0.py | 1 - .../indicator/gauge/axis/_tickangle.py | 1 - .../indicator/gauge/axis/_tickcolor.py | 1 - .../indicator/gauge/axis/_tickformat.py | 1 - .../indicator/gauge/axis/_ticklen.py | 1 - .../indicator/gauge/axis/_tickmode.py | 1 - .../indicator/gauge/axis/_tickprefix.py | 1 - .../validators/indicator/gauge/axis/_ticks.py | 1 - .../indicator/gauge/axis/_ticksuffix.py | 1 - .../indicator/gauge/axis/_ticktext.py | 1 - .../indicator/gauge/axis/_ticktextsrc.py | 1 - .../indicator/gauge/axis/_tickvals.py | 1 - .../indicator/gauge/axis/_tickvalssrc.py | 1 - .../indicator/gauge/axis/_tickwidth.py | 1 - .../indicator/gauge/axis/_visible.py | 1 - .../indicator/gauge/axis/tickfont/_color.py | 1 - .../indicator/gauge/axis/tickfont/_family.py | 1 - .../indicator/gauge/axis/tickfont/_size.py | 1 - .../gauge/axis/tickformatstop/_dtickrange.py | 1 - .../gauge/axis/tickformatstop/_enabled.py | 1 - .../gauge/axis/tickformatstop/_name.py | 1 - .../axis/tickformatstop/_templateitemname.py | 1 - .../gauge/axis/tickformatstop/_value.py | 1 - .../validators/indicator/gauge/bar/_color.py | 1 - .../indicator/gauge/bar/_thickness.py | 1 - .../indicator/gauge/bar/line/_color.py | 1 - .../indicator/gauge/bar/line/_width.py | 1 - .../validators/indicator/gauge/step/_color.py | 1 - .../validators/indicator/gauge/step/_name.py | 1 - .../validators/indicator/gauge/step/_range.py | 1 - .../indicator/gauge/step/_templateitemname.py | 1 - .../indicator/gauge/step/_thickness.py | 1 - .../indicator/gauge/step/line/_color.py | 1 - .../indicator/gauge/step/line/_width.py | 1 - .../indicator/gauge/threshold/_thickness.py | 1 - .../indicator/gauge/threshold/_value.py | 1 - .../indicator/gauge/threshold/line/_color.py | 1 - .../indicator/gauge/threshold/line/_width.py | 1 - .../validators/indicator/number/_prefix.py | 1 - .../validators/indicator/number/_suffix.py | 1 - .../indicator/number/_valueformat.py | 1 - .../indicator/number/font/_color.py | 1 - .../indicator/number/font/_family.py | 1 - .../validators/indicator/number/font/_size.py | 1 - .../validators/indicator/stream/_maxpoints.py | 1 - .../validators/indicator/stream/_token.py | 1 - .../validators/indicator/title/_align.py | 1 - .../validators/indicator/title/_text.py | 1 - .../validators/indicator/title/font/_color.py | 1 - .../indicator/title/font/_family.py | 1 - .../validators/indicator/title/font/_size.py | 1 - .../plotly/validators/isosurface/__init__.py | 8 + .../validators/isosurface/_autocolorscale.py | 1 - .../plotly/validators/isosurface/_cauto.py | 1 - .../plotly/validators/isosurface/_cmax.py | 1 - .../plotly/validators/isosurface/_cmid.py | 1 - .../plotly/validators/isosurface/_cmin.py | 1 - .../validators/isosurface/_coloraxis.py | 1 - .../plotly/validators/isosurface/_colorbar.py | 6 + .../validators/isosurface/_colorscale.py | 1 - .../validators/isosurface/_customdata.py | 1 - .../validators/isosurface/_customdatasrc.py | 1 - .../validators/isosurface/_flatshading.py | 1 - .../validators/isosurface/_hoverinfo.py | 1 - .../validators/isosurface/_hoverinfosrc.py | 1 - .../validators/isosurface/_hovertemplate.py | 1 - .../isosurface/_hovertemplatesrc.py | 1 - .../validators/isosurface/_hovertext.py | 1 - .../validators/isosurface/_hovertextsrc.py | 1 - .../plotly/validators/isosurface/_ids.py | 1 - .../plotly/validators/isosurface/_idssrc.py | 1 - .../plotly/validators/isosurface/_isomax.py | 1 - .../plotly/validators/isosurface/_isomin.py | 1 - .../validators/isosurface/_legendgroup.py | 1 - .../plotly/validators/isosurface/_meta.py | 1 - .../plotly/validators/isosurface/_metasrc.py | 1 - .../plotly/validators/isosurface/_name.py | 1 - .../plotly/validators/isosurface/_opacity.py | 1 - .../validators/isosurface/_reversescale.py | 1 - .../plotly/validators/isosurface/_scene.py | 1 - .../validators/isosurface/_showlegend.py | 1 - .../validators/isosurface/_showscale.py | 1 - .../plotly/validators/isosurface/_text.py | 1 - .../plotly/validators/isosurface/_textsrc.py | 1 - .../plotly/validators/isosurface/_uid.py | 1 - .../validators/isosurface/_uirevision.py | 1 - .../plotly/validators/isosurface/_value.py | 1 - .../isosurface/_valuehoverformat.py | 13 + .../plotly/validators/isosurface/_valuesrc.py | 1 - .../plotly/validators/isosurface/_visible.py | 1 - .../plotly/plotly/validators/isosurface/_x.py | 1 - .../validators/isosurface/_xhoverformat.py | 11 + .../plotly/validators/isosurface/_xsrc.py | 1 - .../plotly/plotly/validators/isosurface/_y.py | 1 - .../validators/isosurface/_yhoverformat.py | 11 + .../plotly/validators/isosurface/_ysrc.py | 1 - .../plotly/plotly/validators/isosurface/_z.py | 1 - .../validators/isosurface/_zhoverformat.py | 11 + .../plotly/validators/isosurface/_zsrc.py | 1 - .../validators/isosurface/caps/x/_fill.py | 1 - .../validators/isosurface/caps/x/_show.py | 1 - .../validators/isosurface/caps/y/_fill.py | 1 - .../validators/isosurface/caps/y/_show.py | 1 - .../validators/isosurface/caps/z/_fill.py | 1 - .../validators/isosurface/caps/z/_show.py | 1 - .../isosurface/colorbar/__init__.py | 2 + .../isosurface/colorbar/_bgcolor.py | 1 - .../isosurface/colorbar/_bordercolor.py | 1 - .../isosurface/colorbar/_borderwidth.py | 1 - .../validators/isosurface/colorbar/_dtick.py | 1 - .../isosurface/colorbar/_exponentformat.py | 1 - .../validators/isosurface/colorbar/_len.py | 1 - .../isosurface/colorbar/_lenmode.py | 1 - .../isosurface/colorbar/_minexponent.py | 1 - .../validators/isosurface/colorbar/_nticks.py | 1 - .../isosurface/colorbar/_outlinecolor.py | 1 - .../isosurface/colorbar/_outlinewidth.py | 1 - .../isosurface/colorbar/_separatethousands.py | 1 - .../isosurface/colorbar/_showexponent.py | 1 - .../isosurface/colorbar/_showticklabels.py | 1 - .../isosurface/colorbar/_showtickprefix.py | 1 - .../isosurface/colorbar/_showticksuffix.py | 1 - .../isosurface/colorbar/_thickness.py | 1 - .../isosurface/colorbar/_thicknessmode.py | 1 - .../validators/isosurface/colorbar/_tick0.py | 1 - .../isosurface/colorbar/_tickangle.py | 1 - .../isosurface/colorbar/_tickcolor.py | 1 - .../isosurface/colorbar/_tickformat.py | 1 - .../isosurface/colorbar/_ticklabeloverflow.py | 17 + .../isosurface/colorbar/_ticklabelposition.py | 1 - .../isosurface/colorbar/_ticklen.py | 1 - .../isosurface/colorbar/_tickmode.py | 1 - .../isosurface/colorbar/_tickprefix.py | 1 - .../validators/isosurface/colorbar/_ticks.py | 1 - .../isosurface/colorbar/_ticksuffix.py | 1 - .../isosurface/colorbar/_ticktext.py | 1 - .../isosurface/colorbar/_ticktextsrc.py | 1 - .../isosurface/colorbar/_tickvals.py | 1 - .../isosurface/colorbar/_tickvalssrc.py | 1 - .../isosurface/colorbar/_tickwidth.py | 1 - .../validators/isosurface/colorbar/_x.py | 1 - .../isosurface/colorbar/_xanchor.py | 1 - .../validators/isosurface/colorbar/_xpad.py | 1 - .../validators/isosurface/colorbar/_y.py | 1 - .../isosurface/colorbar/_yanchor.py | 1 - .../validators/isosurface/colorbar/_ypad.py | 1 - .../isosurface/colorbar/tickfont/_color.py | 1 - .../isosurface/colorbar/tickfont/_family.py | 1 - .../isosurface/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../colorbar/tickformatstop/_value.py | 1 - .../isosurface/colorbar/title/_side.py | 1 - .../isosurface/colorbar/title/_text.py | 1 - .../isosurface/colorbar/title/font/_color.py | 1 - .../isosurface/colorbar/title/font/_family.py | 1 - .../isosurface/colorbar/title/font/_size.py | 1 - .../validators/isosurface/contour/_color.py | 1 - .../validators/isosurface/contour/_show.py | 1 - .../validators/isosurface/contour/_width.py | 1 - .../isosurface/hoverlabel/_align.py | 1 - .../isosurface/hoverlabel/_alignsrc.py | 1 - .../isosurface/hoverlabel/_bgcolor.py | 1 - .../isosurface/hoverlabel/_bgcolorsrc.py | 1 - .../isosurface/hoverlabel/_bordercolor.py | 1 - .../isosurface/hoverlabel/_bordercolorsrc.py | 1 - .../isosurface/hoverlabel/_namelength.py | 1 - .../isosurface/hoverlabel/_namelengthsrc.py | 1 - .../isosurface/hoverlabel/font/_color.py | 1 - .../isosurface/hoverlabel/font/_colorsrc.py | 1 - .../isosurface/hoverlabel/font/_family.py | 1 - .../isosurface/hoverlabel/font/_familysrc.py | 1 - .../isosurface/hoverlabel/font/_size.py | 1 - .../isosurface/hoverlabel/font/_sizesrc.py | 1 - .../isosurface/lighting/_ambient.py | 1 - .../isosurface/lighting/_diffuse.py | 1 - .../lighting/_facenormalsepsilon.py | 1 - .../isosurface/lighting/_fresnel.py | 1 - .../isosurface/lighting/_roughness.py | 1 - .../isosurface/lighting/_specular.py | 1 - .../lighting/_vertexnormalsepsilon.py | 1 - .../validators/isosurface/lightposition/_x.py | 1 - .../validators/isosurface/lightposition/_y.py | 1 - .../validators/isosurface/lightposition/_z.py | 1 - .../validators/isosurface/slices/x/_fill.py | 1 - .../isosurface/slices/x/_locations.py | 1 - .../isosurface/slices/x/_locationssrc.py | 1 - .../validators/isosurface/slices/x/_show.py | 1 - .../validators/isosurface/slices/y/_fill.py | 1 - .../isosurface/slices/y/_locations.py | 1 - .../isosurface/slices/y/_locationssrc.py | 1 - .../validators/isosurface/slices/y/_show.py | 1 - .../validators/isosurface/slices/z/_fill.py | 1 - .../isosurface/slices/z/_locations.py | 1 - .../isosurface/slices/z/_locationssrc.py | 1 - .../validators/isosurface/slices/z/_show.py | 1 - .../validators/isosurface/spaceframe/_fill.py | 1 - .../validators/isosurface/spaceframe/_show.py | 1 - .../isosurface/stream/_maxpoints.py | 1 - .../validators/isosurface/stream/_token.py | 1 - .../validators/isosurface/surface/_count.py | 1 - .../validators/isosurface/surface/_fill.py | 1 - .../validators/isosurface/surface/_pattern.py | 1 - .../validators/isosurface/surface/_show.py | 1 - .../plotly/validators/layout/__init__.py | 8 - .../plotly/validators/layout/_angularaxis.py | 57 - .../plotly/validators/layout/_autosize.py | 1 - .../validators/layout/_autotypenumbers.py | 1 - .../plotly/validators/layout/_bargap.py | 1 - .../plotly/validators/layout/_bargroupgap.py | 1 - .../plotly/validators/layout/_barmode.py | 1 - .../plotly/validators/layout/_barnorm.py | 1 - .../plotly/validators/layout/_boxgap.py | 1 - .../plotly/validators/layout/_boxgroupgap.py | 1 - .../plotly/validators/layout/_boxmode.py | 1 - .../plotly/validators/layout/_calendar.py | 1 - .../plotly/validators/layout/_clickmode.py | 1 - .../plotly/validators/layout/_colorway.py | 1 - .../plotly/validators/layout/_computed.py | 1 - .../plotly/validators/layout/_datarevision.py | 1 - .../plotly/validators/layout/_direction.py | 13 - .../plotly/validators/layout/_dragmode.py | 1 - .../plotly/validators/layout/_editrevision.py | 1 - .../layout/_extendfunnelareacolors.py | 1 - .../validators/layout/_extendpiecolors.py | 1 - .../layout/_extendsunburstcolors.py | 1 - .../validators/layout/_extendtreemapcolors.py | 1 - .../validators/layout/_funnelareacolorway.py | 1 - .../plotly/validators/layout/_funnelgap.py | 1 - .../validators/layout/_funnelgroupgap.py | 1 - .../plotly/validators/layout/_funnelmode.py | 1 - .../plotly/validators/layout/_height.py | 1 - .../plotly/validators/layout/_hiddenlabels.py | 1 - .../validators/layout/_hiddenlabelssrc.py | 1 - .../plotly/validators/layout/_hidesources.py | 1 - .../validators/layout/_hoverdistance.py | 1 - .../plotly/validators/layout/_hovermode.py | 1 - .../plotly/plotly/validators/layout/_meta.py | 1 - .../plotly/validators/layout/_metasrc.py | 1 - .../plotly/validators/layout/_modebar.py | 41 + .../plotly/validators/layout/_orientation.py | 12 - .../validators/layout/_paper_bgcolor.py | 1 - .../plotly/validators/layout/_piecolorway.py | 1 - .../plotly/validators/layout/_plot_bgcolor.py | 1 - .../plotly/validators/layout/_radialaxis.py | 62 - .../validators/layout/_selectdirection.py | 1 - .../validators/layout/_selectionrevision.py | 1 - .../plotly/validators/layout/_separators.py | 1 - .../plotly/validators/layout/_showlegend.py | 1 - .../validators/layout/_spikedistance.py | 1 - .../validators/layout/_sunburstcolorway.py | 1 - .../validators/layout/_treemapcolorway.py | 1 - .../plotly/validators/layout/_uirevision.py | 1 - .../plotly/validators/layout/_violingap.py | 1 - .../validators/layout/_violingroupgap.py | 1 - .../plotly/validators/layout/_violinmode.py | 1 - .../plotly/validators/layout/_waterfallgap.py | 1 - .../validators/layout/_waterfallgroupgap.py | 1 - .../validators/layout/_waterfallmode.py | 1 - .../plotly/plotly/validators/layout/_width.py | 1 - .../plotly/plotly/validators/layout/_xaxis.py | 8 + .../plotly/plotly/validators/layout/_yaxis.py | 8 + .../layout/activeshape/_fillcolor.py | 1 - .../validators/layout/activeshape/_opacity.py | 1 - .../validators/layout/angularaxis/__init__.py | 32 - .../validators/layout/angularaxis/_domain.py | 21 - .../layout/angularaxis/_endpadding.py | 14 - .../validators/layout/angularaxis/_range.py | 19 - .../layout/angularaxis/_showline.py | 14 - .../layout/angularaxis/_showticklabels.py | 14 - .../layout/angularaxis/_tickcolor.py | 14 - .../validators/layout/angularaxis/_ticklen.py | 15 - .../layout/angularaxis/_tickorientation.py | 15 - .../layout/angularaxis/_ticksuffix.py | 14 - .../validators/layout/angularaxis/_visible.py | 14 - .../validators/layout/annotation/_align.py | 1 - .../layout/annotation/_arrowcolor.py | 1 - .../layout/annotation/_arrowhead.py | 1 - .../layout/annotation/_arrowside.py | 1 - .../layout/annotation/_arrowsize.py | 1 - .../layout/annotation/_arrowwidth.py | 1 - .../validators/layout/annotation/_ax.py | 1 - .../validators/layout/annotation/_axref.py | 1 - .../validators/layout/annotation/_ay.py | 1 - .../validators/layout/annotation/_ayref.py | 1 - .../validators/layout/annotation/_bgcolor.py | 1 - .../layout/annotation/_bordercolor.py | 1 - .../layout/annotation/_borderpad.py | 1 - .../layout/annotation/_borderwidth.py | 1 - .../layout/annotation/_captureevents.py | 1 - .../layout/annotation/_clicktoshow.py | 1 - .../validators/layout/annotation/_height.py | 1 - .../layout/annotation/_hovertext.py | 1 - .../validators/layout/annotation/_name.py | 1 - .../validators/layout/annotation/_opacity.py | 1 - .../layout/annotation/_showarrow.py | 1 - .../validators/layout/annotation/_standoff.py | 1 - .../layout/annotation/_startarrowhead.py | 1 - .../layout/annotation/_startarrowsize.py | 1 - .../layout/annotation/_startstandoff.py | 1 - .../layout/annotation/_templateitemname.py | 1 - .../validators/layout/annotation/_text.py | 1 - .../layout/annotation/_textangle.py | 1 - .../validators/layout/annotation/_valign.py | 1 - .../validators/layout/annotation/_visible.py | 1 - .../validators/layout/annotation/_width.py | 1 - .../plotly/validators/layout/annotation/_x.py | 1 - .../validators/layout/annotation/_xanchor.py | 1 - .../validators/layout/annotation/_xclick.py | 1 - .../validators/layout/annotation/_xref.py | 1 - .../validators/layout/annotation/_xshift.py | 1 - .../plotly/validators/layout/annotation/_y.py | 1 - .../validators/layout/annotation/_yanchor.py | 1 - .../validators/layout/annotation/_yclick.py | 1 - .../validators/layout/annotation/_yref.py | 1 - .../validators/layout/annotation/_yshift.py | 1 - .../layout/annotation/font/_color.py | 1 - .../layout/annotation/font/_family.py | 1 - .../layout/annotation/font/_size.py | 1 - .../layout/annotation/hoverlabel/_bgcolor.py | 1 - .../annotation/hoverlabel/_bordercolor.py | 1 - .../annotation/hoverlabel/font/_color.py | 1 - .../annotation/hoverlabel/font/_family.py | 1 - .../annotation/hoverlabel/font/_size.py | 1 - .../layout/coloraxis/_autocolorscale.py | 1 - .../validators/layout/coloraxis/_cauto.py | 1 - .../validators/layout/coloraxis/_cmax.py | 1 - .../validators/layout/coloraxis/_cmid.py | 1 - .../validators/layout/coloraxis/_cmin.py | 1 - .../validators/layout/coloraxis/_colorbar.py | 6 + .../layout/coloraxis/_colorscale.py | 1 - .../layout/coloraxis/_reversescale.py | 1 - .../validators/layout/coloraxis/_showscale.py | 1 - .../layout/coloraxis/colorbar/__init__.py | 2 + .../layout/coloraxis/colorbar/_bgcolor.py | 1 - .../layout/coloraxis/colorbar/_bordercolor.py | 1 - .../layout/coloraxis/colorbar/_borderwidth.py | 1 - .../layout/coloraxis/colorbar/_dtick.py | 1 - .../coloraxis/colorbar/_exponentformat.py | 1 - .../layout/coloraxis/colorbar/_len.py | 1 - .../layout/coloraxis/colorbar/_lenmode.py | 1 - .../layout/coloraxis/colorbar/_minexponent.py | 1 - .../layout/coloraxis/colorbar/_nticks.py | 1 - .../coloraxis/colorbar/_outlinecolor.py | 1 - .../coloraxis/colorbar/_outlinewidth.py | 1 - .../coloraxis/colorbar/_separatethousands.py | 1 - .../coloraxis/colorbar/_showexponent.py | 1 - .../coloraxis/colorbar/_showticklabels.py | 1 - .../coloraxis/colorbar/_showtickprefix.py | 1 - .../coloraxis/colorbar/_showticksuffix.py | 1 - .../layout/coloraxis/colorbar/_thickness.py | 1 - .../coloraxis/colorbar/_thicknessmode.py | 1 - .../layout/coloraxis/colorbar/_tick0.py | 1 - .../layout/coloraxis/colorbar/_tickangle.py | 1 - .../layout/coloraxis/colorbar/_tickcolor.py | 1 - .../layout/coloraxis/colorbar/_tickformat.py | 1 - .../coloraxis/colorbar/_ticklabeloverflow.py | 17 + .../coloraxis/colorbar/_ticklabelposition.py | 1 - .../layout/coloraxis/colorbar/_ticklen.py | 1 - .../layout/coloraxis/colorbar/_tickmode.py | 1 - .../layout/coloraxis/colorbar/_tickprefix.py | 1 - .../layout/coloraxis/colorbar/_ticks.py | 1 - .../layout/coloraxis/colorbar/_ticksuffix.py | 1 - .../layout/coloraxis/colorbar/_ticktext.py | 1 - .../layout/coloraxis/colorbar/_ticktextsrc.py | 1 - .../layout/coloraxis/colorbar/_tickvals.py | 1 - .../layout/coloraxis/colorbar/_tickvalssrc.py | 1 - .../layout/coloraxis/colorbar/_tickwidth.py | 1 - .../layout/coloraxis/colorbar/_x.py | 1 - .../layout/coloraxis/colorbar/_xanchor.py | 1 - .../layout/coloraxis/colorbar/_xpad.py | 1 - .../layout/coloraxis/colorbar/_y.py | 1 - .../layout/coloraxis/colorbar/_yanchor.py | 1 - .../layout/coloraxis/colorbar/_ypad.py | 1 - .../coloraxis/colorbar/tickfont/_color.py | 1 - .../coloraxis/colorbar/tickfont/_family.py | 1 - .../coloraxis/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../colorbar/tickformatstop/_value.py | 1 - .../layout/coloraxis/colorbar/title/_side.py | 1 - .../layout/coloraxis/colorbar/title/_text.py | 1 - .../coloraxis/colorbar/title/font/_color.py | 1 - .../coloraxis/colorbar/title/font/_family.py | 1 - .../coloraxis/colorbar/title/font/_size.py | 1 - .../layout/colorscale/_diverging.py | 1 - .../layout/colorscale/_sequential.py | 1 - .../layout/colorscale/_sequentialminus.py | 1 - .../plotly/validators/layout/font/_color.py | 1 - .../plotly/validators/layout/font/_family.py | 1 - .../plotly/validators/layout/font/_size.py | 1 - .../plotly/validators/layout/geo/_bgcolor.py | 1 - .../validators/layout/geo/_coastlinecolor.py | 1 - .../validators/layout/geo/_coastlinewidth.py | 1 - .../validators/layout/geo/_countrycolor.py | 1 - .../validators/layout/geo/_countrywidth.py | 1 - .../validators/layout/geo/_fitbounds.py | 1 - .../validators/layout/geo/_framecolor.py | 1 - .../validators/layout/geo/_framewidth.py | 1 - .../validators/layout/geo/_lakecolor.py | 1 - .../validators/layout/geo/_landcolor.py | 1 - .../validators/layout/geo/_oceancolor.py | 1 - .../validators/layout/geo/_resolution.py | 1 - .../validators/layout/geo/_rivercolor.py | 1 - .../validators/layout/geo/_riverwidth.py | 1 - .../plotly/validators/layout/geo/_scope.py | 1 - .../validators/layout/geo/_showcoastlines.py | 1 - .../validators/layout/geo/_showcountries.py | 1 - .../validators/layout/geo/_showframe.py | 1 - .../validators/layout/geo/_showlakes.py | 1 - .../plotly/validators/layout/geo/_showland.py | 1 - .../validators/layout/geo/_showocean.py | 1 - .../validators/layout/geo/_showrivers.py | 1 - .../validators/layout/geo/_showsubunits.py | 1 - .../validators/layout/geo/_subunitcolor.py | 1 - .../validators/layout/geo/_subunitwidth.py | 1 - .../validators/layout/geo/_uirevision.py | 1 - .../plotly/validators/layout/geo/_visible.py | 1 - .../validators/layout/geo/center/_lat.py | 1 - .../validators/layout/geo/center/_lon.py | 1 - .../validators/layout/geo/domain/_column.py | 1 - .../validators/layout/geo/domain/_row.py | 1 - .../plotly/validators/layout/geo/domain/_x.py | 1 - .../plotly/validators/layout/geo/domain/_y.py | 1 - .../validators/layout/geo/lataxis/_dtick.py | 1 - .../layout/geo/lataxis/_gridcolor.py | 1 - .../layout/geo/lataxis/_gridwidth.py | 1 - .../validators/layout/geo/lataxis/_range.py | 1 - .../layout/geo/lataxis/_showgrid.py | 1 - .../validators/layout/geo/lataxis/_tick0.py | 1 - .../validators/layout/geo/lonaxis/_dtick.py | 1 - .../layout/geo/lonaxis/_gridcolor.py | 1 - .../layout/geo/lonaxis/_gridwidth.py | 1 - .../validators/layout/geo/lonaxis/_range.py | 1 - .../layout/geo/lonaxis/_showgrid.py | 1 - .../validators/layout/geo/lonaxis/_tick0.py | 1 - .../layout/geo/projection/_parallels.py | 1 - .../layout/geo/projection/_scale.py | 1 - .../validators/layout/geo/projection/_type.py | 1 - .../layout/geo/projection/rotation/_lat.py | 1 - .../layout/geo/projection/rotation/_lon.py | 1 - .../layout/geo/projection/rotation/_roll.py | 1 - .../plotly/validators/layout/grid/_columns.py | 1 - .../plotly/validators/layout/grid/_pattern.py | 1 - .../validators/layout/grid/_roworder.py | 1 - .../plotly/validators/layout/grid/_rows.py | 1 - .../validators/layout/grid/_subplots.py | 1 - .../plotly/validators/layout/grid/_xaxes.py | 1 - .../plotly/validators/layout/grid/_xgap.py | 1 - .../plotly/validators/layout/grid/_xside.py | 1 - .../plotly/validators/layout/grid/_yaxes.py | 1 - .../plotly/validators/layout/grid/_ygap.py | 1 - .../plotly/validators/layout/grid/_yside.py | 1 - .../validators/layout/grid/domain/_x.py | 1 - .../validators/layout/grid/domain/_y.py | 1 - .../validators/layout/hoverlabel/_align.py | 1 - .../validators/layout/hoverlabel/_bgcolor.py | 1 - .../layout/hoverlabel/_bordercolor.py | 1 - .../layout/hoverlabel/_namelength.py | 1 - .../layout/hoverlabel/font/_color.py | 1 - .../layout/hoverlabel/font/_family.py | 1 - .../layout/hoverlabel/font/_size.py | 1 - .../plotly/validators/layout/image/_layer.py | 1 - .../plotly/validators/layout/image/_name.py | 1 - .../validators/layout/image/_opacity.py | 1 - .../plotly/validators/layout/image/_sizex.py | 1 - .../plotly/validators/layout/image/_sizey.py | 1 - .../plotly/validators/layout/image/_sizing.py | 1 - .../plotly/validators/layout/image/_source.py | 1 - .../layout/image/_templateitemname.py | 1 - .../validators/layout/image/_visible.py | 1 - .../plotly/validators/layout/image/_x.py | 1 - .../validators/layout/image/_xanchor.py | 1 - .../plotly/validators/layout/image/_xref.py | 1 - .../plotly/validators/layout/image/_y.py | 1 - .../validators/layout/image/_yanchor.py | 1 - .../plotly/validators/layout/image/_yref.py | 1 - .../validators/layout/legend/_bgcolor.py | 1 - .../validators/layout/legend/_bordercolor.py | 1 - .../validators/layout/legend/_borderwidth.py | 1 - .../validators/layout/legend/_itemclick.py | 1 - .../layout/legend/_itemdoubleclick.py | 1 - .../validators/layout/legend/_itemsizing.py | 1 - .../validators/layout/legend/_itemwidth.py | 1 - .../validators/layout/legend/_orientation.py | 1 - .../plotly/validators/layout/legend/_title.py | 4 +- .../layout/legend/_tracegroupgap.py | 1 - .../validators/layout/legend/_traceorder.py | 1 - .../validators/layout/legend/_uirevision.py | 1 - .../validators/layout/legend/_valign.py | 1 - .../plotly/validators/layout/legend/_x.py | 1 - .../validators/layout/legend/_xanchor.py | 1 - .../plotly/validators/layout/legend/_y.py | 1 - .../validators/layout/legend/_yanchor.py | 1 - .../validators/layout/legend/font/_color.py | 1 - .../validators/layout/legend/font/_family.py | 1 - .../validators/layout/legend/font/_size.py | 1 - .../validators/layout/legend/title/_side.py | 1 - .../validators/layout/legend/title/_text.py | 1 - .../layout/legend/title/font/_color.py | 1 - .../layout/legend/title/font/_family.py | 1 - .../layout/legend/title/font/_size.py | 1 - .../validators/layout/mapbox/_accesstoken.py | 1 - .../validators/layout/mapbox/_bearing.py | 1 - .../plotly/validators/layout/mapbox/_pitch.py | 1 - .../plotly/validators/layout/mapbox/_style.py | 1 - .../validators/layout/mapbox/_uirevision.py | 1 - .../plotly/validators/layout/mapbox/_zoom.py | 1 - .../validators/layout/mapbox/center/_lat.py | 1 - .../validators/layout/mapbox/center/_lon.py | 1 - .../layout/mapbox/domain/_column.py | 1 - .../validators/layout/mapbox/domain/_row.py | 1 - .../validators/layout/mapbox/domain/_x.py | 1 - .../validators/layout/mapbox/domain/_y.py | 1 - .../validators/layout/mapbox/layer/_below.py | 1 - .../validators/layout/mapbox/layer/_color.py | 1 - .../layout/mapbox/layer/_coordinates.py | 1 - .../layout/mapbox/layer/_maxzoom.py | 1 - .../layout/mapbox/layer/_minzoom.py | 1 - .../validators/layout/mapbox/layer/_name.py | 1 - .../layout/mapbox/layer/_opacity.py | 1 - .../validators/layout/mapbox/layer/_source.py | 1 - .../layout/mapbox/layer/_sourceattribution.py | 1 - .../layout/mapbox/layer/_sourcelayer.py | 1 - .../layout/mapbox/layer/_sourcetype.py | 1 - .../layout/mapbox/layer/_templateitemname.py | 1 - .../validators/layout/mapbox/layer/_type.py | 1 - .../layout/mapbox/layer/_visible.py | 1 - .../layout/mapbox/layer/circle/_radius.py | 1 - .../layout/mapbox/layer/fill/_outlinecolor.py | 1 - .../layout/mapbox/layer/line/_dash.py | 1 - .../layout/mapbox/layer/line/_dashsrc.py | 1 - .../layout/mapbox/layer/line/_width.py | 1 - .../layout/mapbox/layer/symbol/_icon.py | 1 - .../layout/mapbox/layer/symbol/_iconsize.py | 1 - .../layout/mapbox/layer/symbol/_placement.py | 1 - .../layout/mapbox/layer/symbol/_text.py | 1 - .../mapbox/layer/symbol/_textposition.py | 1 - .../mapbox/layer/symbol/textfont/_color.py | 1 - .../mapbox/layer/symbol/textfont/_family.py | 1 - .../mapbox/layer/symbol/textfont/_size.py | 1 - .../validators/layout/margin/_autoexpand.py | 1 - .../plotly/validators/layout/margin/_b.py | 1 - .../plotly/validators/layout/margin/_l.py | 1 - .../plotly/validators/layout/margin/_pad.py | 1 - .../plotly/validators/layout/margin/_r.py | 1 - .../plotly/validators/layout/margin/_t.py | 1 - .../validators/layout/modebar/__init__.py | 8 + .../validators/layout/modebar/_activecolor.py | 1 - .../plotly/validators/layout/modebar/_add.py | 12 + .../validators/layout/modebar/_addsrc.py | 11 + .../validators/layout/modebar/_bgcolor.py | 1 - .../validators/layout/modebar/_color.py | 1 - .../validators/layout/modebar/_orientation.py | 1 - .../validators/layout/modebar/_remove.py | 12 + .../validators/layout/modebar/_removesrc.py | 11 + .../validators/layout/modebar/_uirevision.py | 1 - .../layout/newshape/_drawdirection.py | 1 - .../validators/layout/newshape/_fillcolor.py | 1 - .../validators/layout/newshape/_fillrule.py | 1 - .../validators/layout/newshape/_layer.py | 1 - .../validators/layout/newshape/_opacity.py | 1 - .../validators/layout/newshape/line/_color.py | 1 - .../validators/layout/newshape/line/_dash.py | 1 - .../validators/layout/newshape/line/_width.py | 1 - .../plotly/validators/layout/polar/_bargap.py | 1 - .../validators/layout/polar/_barmode.py | 1 - .../validators/layout/polar/_bgcolor.py | 1 - .../validators/layout/polar/_gridshape.py | 1 - .../plotly/validators/layout/polar/_hole.py | 1 - .../plotly/validators/layout/polar/_sector.py | 1 - .../validators/layout/polar/_uirevision.py | 1 - .../polar/angularaxis/_autotypenumbers.py | 1 - .../polar/angularaxis/_categoryarray.py | 1 - .../polar/angularaxis/_categoryarraysrc.py | 1 - .../polar/angularaxis/_categoryorder.py | 1 - .../layout/polar/angularaxis/_color.py | 1 - .../layout/polar/angularaxis/_direction.py | 1 - .../layout/polar/angularaxis/_dtick.py | 1 - .../polar/angularaxis/_exponentformat.py | 1 - .../layout/polar/angularaxis/_gridcolor.py | 1 - .../layout/polar/angularaxis/_gridwidth.py | 1 - .../layout/polar/angularaxis/_hoverformat.py | 1 - .../layout/polar/angularaxis/_layer.py | 1 - .../layout/polar/angularaxis/_linecolor.py | 1 - .../layout/polar/angularaxis/_linewidth.py | 1 - .../layout/polar/angularaxis/_minexponent.py | 1 - .../layout/polar/angularaxis/_nticks.py | 1 - .../layout/polar/angularaxis/_period.py | 1 - .../layout/polar/angularaxis/_rotation.py | 1 - .../polar/angularaxis/_separatethousands.py | 1 - .../layout/polar/angularaxis/_showexponent.py | 1 - .../layout/polar/angularaxis/_showgrid.py | 1 - .../layout/polar/angularaxis/_showline.py | 1 - .../polar/angularaxis/_showticklabels.py | 1 - .../polar/angularaxis/_showtickprefix.py | 1 - .../polar/angularaxis/_showticksuffix.py | 1 - .../layout/polar/angularaxis/_thetaunit.py | 1 - .../layout/polar/angularaxis/_tick0.py | 1 - .../layout/polar/angularaxis/_tickangle.py | 1 - .../layout/polar/angularaxis/_tickcolor.py | 1 - .../layout/polar/angularaxis/_tickformat.py | 1 - .../layout/polar/angularaxis/_ticklen.py | 1 - .../layout/polar/angularaxis/_tickmode.py | 1 - .../layout/polar/angularaxis/_tickprefix.py | 1 - .../layout/polar/angularaxis/_ticks.py | 1 - .../layout/polar/angularaxis/_ticksuffix.py | 1 - .../layout/polar/angularaxis/_ticktext.py | 1 - .../layout/polar/angularaxis/_ticktextsrc.py | 1 - .../layout/polar/angularaxis/_tickvals.py | 1 - .../layout/polar/angularaxis/_tickvalssrc.py | 1 - .../layout/polar/angularaxis/_tickwidth.py | 1 - .../layout/polar/angularaxis/_type.py | 1 - .../layout/polar/angularaxis/_uirevision.py | 1 - .../layout/polar/angularaxis/_visible.py | 1 - .../polar/angularaxis/tickfont/_color.py | 1 - .../polar/angularaxis/tickfont/_family.py | 1 - .../polar/angularaxis/tickfont/_size.py | 1 - .../angularaxis/tickformatstop/_dtickrange.py | 1 - .../angularaxis/tickformatstop/_enabled.py | 1 - .../polar/angularaxis/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../angularaxis/tickformatstop/_value.py | 1 - .../validators/layout/polar/domain/_column.py | 1 - .../validators/layout/polar/domain/_row.py | 1 - .../validators/layout/polar/domain/_x.py | 1 - .../validators/layout/polar/domain/_y.py | 1 - .../layout/polar/radialaxis/_angle.py | 1 - .../layout/polar/radialaxis/_autorange.py | 1 - .../polar/radialaxis/_autotypenumbers.py | 1 - .../layout/polar/radialaxis/_calendar.py | 1 - .../layout/polar/radialaxis/_categoryarray.py | 1 - .../polar/radialaxis/_categoryarraysrc.py | 1 - .../layout/polar/radialaxis/_categoryorder.py | 1 - .../layout/polar/radialaxis/_color.py | 1 - .../layout/polar/radialaxis/_dtick.py | 1 - .../polar/radialaxis/_exponentformat.py | 1 - .../layout/polar/radialaxis/_gridcolor.py | 1 - .../layout/polar/radialaxis/_gridwidth.py | 1 - .../layout/polar/radialaxis/_hoverformat.py | 1 - .../layout/polar/radialaxis/_layer.py | 1 - .../layout/polar/radialaxis/_linecolor.py | 1 - .../layout/polar/radialaxis/_linewidth.py | 1 - .../layout/polar/radialaxis/_minexponent.py | 1 - .../layout/polar/radialaxis/_nticks.py | 1 - .../layout/polar/radialaxis/_range.py | 1 - .../layout/polar/radialaxis/_rangemode.py | 1 - .../polar/radialaxis/_separatethousands.py | 1 - .../layout/polar/radialaxis/_showexponent.py | 1 - .../layout/polar/radialaxis/_showgrid.py | 1 - .../layout/polar/radialaxis/_showline.py | 1 - .../polar/radialaxis/_showticklabels.py | 1 - .../polar/radialaxis/_showtickprefix.py | 1 - .../polar/radialaxis/_showticksuffix.py | 1 - .../layout/polar/radialaxis/_side.py | 1 - .../layout/polar/radialaxis/_tick0.py | 1 - .../layout/polar/radialaxis/_tickangle.py | 1 - .../layout/polar/radialaxis/_tickcolor.py | 1 - .../layout/polar/radialaxis/_tickformat.py | 1 - .../layout/polar/radialaxis/_ticklen.py | 1 - .../layout/polar/radialaxis/_tickmode.py | 1 - .../layout/polar/radialaxis/_tickprefix.py | 1 - .../layout/polar/radialaxis/_ticks.py | 1 - .../layout/polar/radialaxis/_ticksuffix.py | 1 - .../layout/polar/radialaxis/_ticktext.py | 1 - .../layout/polar/radialaxis/_ticktextsrc.py | 1 - .../layout/polar/radialaxis/_tickvals.py | 1 - .../layout/polar/radialaxis/_tickvalssrc.py | 1 - .../layout/polar/radialaxis/_tickwidth.py | 1 - .../layout/polar/radialaxis/_type.py | 1 - .../layout/polar/radialaxis/_uirevision.py | 1 - .../layout/polar/radialaxis/_visible.py | 1 - .../polar/radialaxis/tickfont/_color.py | 1 - .../polar/radialaxis/tickfont/_family.py | 1 - .../layout/polar/radialaxis/tickfont/_size.py | 1 - .../radialaxis/tickformatstop/_dtickrange.py | 1 - .../radialaxis/tickformatstop/_enabled.py | 1 - .../polar/radialaxis/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../polar/radialaxis/tickformatstop/_value.py | 1 - .../layout/polar/radialaxis/title/_text.py | 1 - .../polar/radialaxis/title/font/_color.py | 1 - .../polar/radialaxis/title/font/_family.py | 1 - .../polar/radialaxis/title/font/_size.py | 1 - .../validators/layout/radialaxis/__init__.py | 34 - .../validators/layout/radialaxis/_domain.py | 19 - .../layout/radialaxis/_endpadding.py | 14 - .../layout/radialaxis/_orientation.py | 14 - .../validators/layout/radialaxis/_range.py | 19 - .../validators/layout/radialaxis/_showline.py | 14 - .../layout/radialaxis/_showticklabels.py | 14 - .../layout/radialaxis/_tickcolor.py | 14 - .../validators/layout/radialaxis/_ticklen.py | 15 - .../layout/radialaxis/_tickorientation.py | 15 - .../layout/radialaxis/_ticksuffix.py | 14 - .../validators/layout/radialaxis/_visible.py | 14 - .../validators/layout/scene/_aspectmode.py | 1 - .../validators/layout/scene/_bgcolor.py | 1 - .../validators/layout/scene/_dragmode.py | 1 - .../validators/layout/scene/_hovermode.py | 1 - .../validators/layout/scene/_uirevision.py | 1 - .../layout/scene/annotation/_align.py | 1 - .../layout/scene/annotation/_arrowcolor.py | 1 - .../layout/scene/annotation/_arrowhead.py | 1 - .../layout/scene/annotation/_arrowside.py | 1 - .../layout/scene/annotation/_arrowsize.py | 1 - .../layout/scene/annotation/_arrowwidth.py | 1 - .../validators/layout/scene/annotation/_ax.py | 1 - .../validators/layout/scene/annotation/_ay.py | 1 - .../layout/scene/annotation/_bgcolor.py | 1 - .../layout/scene/annotation/_bordercolor.py | 1 - .../layout/scene/annotation/_borderpad.py | 1 - .../layout/scene/annotation/_borderwidth.py | 1 - .../layout/scene/annotation/_captureevents.py | 1 - .../layout/scene/annotation/_height.py | 1 - .../layout/scene/annotation/_hovertext.py | 1 - .../layout/scene/annotation/_name.py | 1 - .../layout/scene/annotation/_opacity.py | 1 - .../layout/scene/annotation/_showarrow.py | 1 - .../layout/scene/annotation/_standoff.py | 1 - .../scene/annotation/_startarrowhead.py | 1 - .../scene/annotation/_startarrowsize.py | 1 - .../layout/scene/annotation/_startstandoff.py | 1 - .../scene/annotation/_templateitemname.py | 1 - .../layout/scene/annotation/_text.py | 1 - .../layout/scene/annotation/_textangle.py | 1 - .../layout/scene/annotation/_valign.py | 1 - .../layout/scene/annotation/_visible.py | 1 - .../layout/scene/annotation/_width.py | 1 - .../validators/layout/scene/annotation/_x.py | 1 - .../layout/scene/annotation/_xanchor.py | 1 - .../layout/scene/annotation/_xshift.py | 1 - .../validators/layout/scene/annotation/_y.py | 1 - .../layout/scene/annotation/_yanchor.py | 1 - .../layout/scene/annotation/_yshift.py | 1 - .../validators/layout/scene/annotation/_z.py | 1 - .../layout/scene/annotation/font/_color.py | 1 - .../layout/scene/annotation/font/_family.py | 1 - .../layout/scene/annotation/font/_size.py | 1 - .../scene/annotation/hoverlabel/_bgcolor.py | 1 - .../annotation/hoverlabel/_bordercolor.py | 1 - .../annotation/hoverlabel/font/_color.py | 1 - .../annotation/hoverlabel/font/_family.py | 1 - .../scene/annotation/hoverlabel/font/_size.py | 1 - .../validators/layout/scene/aspectratio/_x.py | 1 - .../validators/layout/scene/aspectratio/_y.py | 1 - .../validators/layout/scene/aspectratio/_z.py | 1 - .../layout/scene/camera/center/_x.py | 1 - .../layout/scene/camera/center/_y.py | 1 - .../layout/scene/camera/center/_z.py | 1 - .../validators/layout/scene/camera/eye/_x.py | 1 - .../validators/layout/scene/camera/eye/_y.py | 1 - .../validators/layout/scene/camera/eye/_z.py | 1 - .../layout/scene/camera/projection/_type.py | 1 - .../validators/layout/scene/camera/up/_x.py | 1 - .../validators/layout/scene/camera/up/_y.py | 1 - .../validators/layout/scene/camera/up/_z.py | 1 - .../validators/layout/scene/domain/_column.py | 1 - .../validators/layout/scene/domain/_row.py | 1 - .../validators/layout/scene/domain/_x.py | 1 - .../validators/layout/scene/domain/_y.py | 1 - .../layout/scene/xaxis/_autorange.py | 1 - .../layout/scene/xaxis/_autotypenumbers.py | 1 - .../layout/scene/xaxis/_backgroundcolor.py | 1 - .../layout/scene/xaxis/_calendar.py | 1 - .../layout/scene/xaxis/_categoryarray.py | 1 - .../layout/scene/xaxis/_categoryarraysrc.py | 1 - .../layout/scene/xaxis/_categoryorder.py | 1 - .../validators/layout/scene/xaxis/_color.py | 1 - .../validators/layout/scene/xaxis/_dtick.py | 1 - .../layout/scene/xaxis/_exponentformat.py | 1 - .../layout/scene/xaxis/_gridcolor.py | 1 - .../layout/scene/xaxis/_gridwidth.py | 1 - .../layout/scene/xaxis/_hoverformat.py | 1 - .../layout/scene/xaxis/_linecolor.py | 1 - .../layout/scene/xaxis/_linewidth.py | 1 - .../layout/scene/xaxis/_minexponent.py | 1 - .../validators/layout/scene/xaxis/_mirror.py | 1 - .../validators/layout/scene/xaxis/_nticks.py | 1 - .../validators/layout/scene/xaxis/_range.py | 1 - .../layout/scene/xaxis/_rangemode.py | 1 - .../layout/scene/xaxis/_separatethousands.py | 1 - .../layout/scene/xaxis/_showaxeslabels.py | 1 - .../layout/scene/xaxis/_showbackground.py | 1 - .../layout/scene/xaxis/_showexponent.py | 1 - .../layout/scene/xaxis/_showgrid.py | 1 - .../layout/scene/xaxis/_showline.py | 1 - .../layout/scene/xaxis/_showspikes.py | 1 - .../layout/scene/xaxis/_showticklabels.py | 1 - .../layout/scene/xaxis/_showtickprefix.py | 1 - .../layout/scene/xaxis/_showticksuffix.py | 1 - .../layout/scene/xaxis/_spikecolor.py | 1 - .../layout/scene/xaxis/_spikesides.py | 1 - .../layout/scene/xaxis/_spikethickness.py | 1 - .../validators/layout/scene/xaxis/_tick0.py | 1 - .../layout/scene/xaxis/_tickangle.py | 1 - .../layout/scene/xaxis/_tickcolor.py | 1 - .../layout/scene/xaxis/_tickformat.py | 1 - .../validators/layout/scene/xaxis/_ticklen.py | 1 - .../layout/scene/xaxis/_tickmode.py | 1 - .../layout/scene/xaxis/_tickprefix.py | 1 - .../validators/layout/scene/xaxis/_ticks.py | 1 - .../layout/scene/xaxis/_ticksuffix.py | 1 - .../layout/scene/xaxis/_ticktext.py | 1 - .../layout/scene/xaxis/_ticktextsrc.py | 1 - .../layout/scene/xaxis/_tickvals.py | 1 - .../layout/scene/xaxis/_tickvalssrc.py | 1 - .../layout/scene/xaxis/_tickwidth.py | 1 - .../validators/layout/scene/xaxis/_type.py | 1 - .../validators/layout/scene/xaxis/_visible.py | 1 - .../layout/scene/xaxis/_zeroline.py | 1 - .../layout/scene/xaxis/_zerolinecolor.py | 1 - .../layout/scene/xaxis/_zerolinewidth.py | 1 - .../layout/scene/xaxis/tickfont/_color.py | 1 - .../layout/scene/xaxis/tickfont/_family.py | 1 - .../layout/scene/xaxis/tickfont/_size.py | 1 - .../scene/xaxis/tickformatstop/_dtickrange.py | 1 - .../scene/xaxis/tickformatstop/_enabled.py | 1 - .../scene/xaxis/tickformatstop/_name.py | 1 - .../xaxis/tickformatstop/_templateitemname.py | 1 - .../scene/xaxis/tickformatstop/_value.py | 1 - .../layout/scene/xaxis/title/_text.py | 1 - .../layout/scene/xaxis/title/font/_color.py | 1 - .../layout/scene/xaxis/title/font/_family.py | 1 - .../layout/scene/xaxis/title/font/_size.py | 1 - .../layout/scene/yaxis/_autorange.py | 1 - .../layout/scene/yaxis/_autotypenumbers.py | 1 - .../layout/scene/yaxis/_backgroundcolor.py | 1 - .../layout/scene/yaxis/_calendar.py | 1 - .../layout/scene/yaxis/_categoryarray.py | 1 - .../layout/scene/yaxis/_categoryarraysrc.py | 1 - .../layout/scene/yaxis/_categoryorder.py | 1 - .../validators/layout/scene/yaxis/_color.py | 1 - .../validators/layout/scene/yaxis/_dtick.py | 1 - .../layout/scene/yaxis/_exponentformat.py | 1 - .../layout/scene/yaxis/_gridcolor.py | 1 - .../layout/scene/yaxis/_gridwidth.py | 1 - .../layout/scene/yaxis/_hoverformat.py | 1 - .../layout/scene/yaxis/_linecolor.py | 1 - .../layout/scene/yaxis/_linewidth.py | 1 - .../layout/scene/yaxis/_minexponent.py | 1 - .../validators/layout/scene/yaxis/_mirror.py | 1 - .../validators/layout/scene/yaxis/_nticks.py | 1 - .../validators/layout/scene/yaxis/_range.py | 1 - .../layout/scene/yaxis/_rangemode.py | 1 - .../layout/scene/yaxis/_separatethousands.py | 1 - .../layout/scene/yaxis/_showaxeslabels.py | 1 - .../layout/scene/yaxis/_showbackground.py | 1 - .../layout/scene/yaxis/_showexponent.py | 1 - .../layout/scene/yaxis/_showgrid.py | 1 - .../layout/scene/yaxis/_showline.py | 1 - .../layout/scene/yaxis/_showspikes.py | 1 - .../layout/scene/yaxis/_showticklabels.py | 1 - .../layout/scene/yaxis/_showtickprefix.py | 1 - .../layout/scene/yaxis/_showticksuffix.py | 1 - .../layout/scene/yaxis/_spikecolor.py | 1 - .../layout/scene/yaxis/_spikesides.py | 1 - .../layout/scene/yaxis/_spikethickness.py | 1 - .../validators/layout/scene/yaxis/_tick0.py | 1 - .../layout/scene/yaxis/_tickangle.py | 1 - .../layout/scene/yaxis/_tickcolor.py | 1 - .../layout/scene/yaxis/_tickformat.py | 1 - .../validators/layout/scene/yaxis/_ticklen.py | 1 - .../layout/scene/yaxis/_tickmode.py | 1 - .../layout/scene/yaxis/_tickprefix.py | 1 - .../validators/layout/scene/yaxis/_ticks.py | 1 - .../layout/scene/yaxis/_ticksuffix.py | 1 - .../layout/scene/yaxis/_ticktext.py | 1 - .../layout/scene/yaxis/_ticktextsrc.py | 1 - .../layout/scene/yaxis/_tickvals.py | 1 - .../layout/scene/yaxis/_tickvalssrc.py | 1 - .../layout/scene/yaxis/_tickwidth.py | 1 - .../validators/layout/scene/yaxis/_type.py | 1 - .../validators/layout/scene/yaxis/_visible.py | 1 - .../layout/scene/yaxis/_zeroline.py | 1 - .../layout/scene/yaxis/_zerolinecolor.py | 1 - .../layout/scene/yaxis/_zerolinewidth.py | 1 - .../layout/scene/yaxis/tickfont/_color.py | 1 - .../layout/scene/yaxis/tickfont/_family.py | 1 - .../layout/scene/yaxis/tickfont/_size.py | 1 - .../scene/yaxis/tickformatstop/_dtickrange.py | 1 - .../scene/yaxis/tickformatstop/_enabled.py | 1 - .../scene/yaxis/tickformatstop/_name.py | 1 - .../yaxis/tickformatstop/_templateitemname.py | 1 - .../scene/yaxis/tickformatstop/_value.py | 1 - .../layout/scene/yaxis/title/_text.py | 1 - .../layout/scene/yaxis/title/font/_color.py | 1 - .../layout/scene/yaxis/title/font/_family.py | 1 - .../layout/scene/yaxis/title/font/_size.py | 1 - .../layout/scene/zaxis/_autorange.py | 1 - .../layout/scene/zaxis/_autotypenumbers.py | 1 - .../layout/scene/zaxis/_backgroundcolor.py | 1 - .../layout/scene/zaxis/_calendar.py | 1 - .../layout/scene/zaxis/_categoryarray.py | 1 - .../layout/scene/zaxis/_categoryarraysrc.py | 1 - .../layout/scene/zaxis/_categoryorder.py | 1 - .../validators/layout/scene/zaxis/_color.py | 1 - .../validators/layout/scene/zaxis/_dtick.py | 1 - .../layout/scene/zaxis/_exponentformat.py | 1 - .../layout/scene/zaxis/_gridcolor.py | 1 - .../layout/scene/zaxis/_gridwidth.py | 1 - .../layout/scene/zaxis/_hoverformat.py | 1 - .../layout/scene/zaxis/_linecolor.py | 1 - .../layout/scene/zaxis/_linewidth.py | 1 - .../layout/scene/zaxis/_minexponent.py | 1 - .../validators/layout/scene/zaxis/_mirror.py | 1 - .../validators/layout/scene/zaxis/_nticks.py | 1 - .../validators/layout/scene/zaxis/_range.py | 1 - .../layout/scene/zaxis/_rangemode.py | 1 - .../layout/scene/zaxis/_separatethousands.py | 1 - .../layout/scene/zaxis/_showaxeslabels.py | 1 - .../layout/scene/zaxis/_showbackground.py | 1 - .../layout/scene/zaxis/_showexponent.py | 1 - .../layout/scene/zaxis/_showgrid.py | 1 - .../layout/scene/zaxis/_showline.py | 1 - .../layout/scene/zaxis/_showspikes.py | 1 - .../layout/scene/zaxis/_showticklabels.py | 1 - .../layout/scene/zaxis/_showtickprefix.py | 1 - .../layout/scene/zaxis/_showticksuffix.py | 1 - .../layout/scene/zaxis/_spikecolor.py | 1 - .../layout/scene/zaxis/_spikesides.py | 1 - .../layout/scene/zaxis/_spikethickness.py | 1 - .../validators/layout/scene/zaxis/_tick0.py | 1 - .../layout/scene/zaxis/_tickangle.py | 1 - .../layout/scene/zaxis/_tickcolor.py | 1 - .../layout/scene/zaxis/_tickformat.py | 1 - .../validators/layout/scene/zaxis/_ticklen.py | 1 - .../layout/scene/zaxis/_tickmode.py | 1 - .../layout/scene/zaxis/_tickprefix.py | 1 - .../validators/layout/scene/zaxis/_ticks.py | 1 - .../layout/scene/zaxis/_ticksuffix.py | 1 - .../layout/scene/zaxis/_ticktext.py | 1 - .../layout/scene/zaxis/_ticktextsrc.py | 1 - .../layout/scene/zaxis/_tickvals.py | 1 - .../layout/scene/zaxis/_tickvalssrc.py | 1 - .../layout/scene/zaxis/_tickwidth.py | 1 - .../validators/layout/scene/zaxis/_type.py | 1 - .../validators/layout/scene/zaxis/_visible.py | 1 - .../layout/scene/zaxis/_zeroline.py | 1 - .../layout/scene/zaxis/_zerolinecolor.py | 1 - .../layout/scene/zaxis/_zerolinewidth.py | 1 - .../layout/scene/zaxis/tickfont/_color.py | 1 - .../layout/scene/zaxis/tickfont/_family.py | 1 - .../layout/scene/zaxis/tickfont/_size.py | 1 - .../scene/zaxis/tickformatstop/_dtickrange.py | 1 - .../scene/zaxis/tickformatstop/_enabled.py | 1 - .../scene/zaxis/tickformatstop/_name.py | 1 - .../zaxis/tickformatstop/_templateitemname.py | 1 - .../scene/zaxis/tickformatstop/_value.py | 1 - .../layout/scene/zaxis/title/_text.py | 1 - .../layout/scene/zaxis/title/font/_color.py | 1 - .../layout/scene/zaxis/title/font/_family.py | 1 - .../layout/scene/zaxis/title/font/_size.py | 1 - .../validators/layout/shape/_editable.py | 1 - .../validators/layout/shape/_fillcolor.py | 1 - .../validators/layout/shape/_fillrule.py | 1 - .../plotly/validators/layout/shape/_layer.py | 1 - .../plotly/validators/layout/shape/_name.py | 1 - .../validators/layout/shape/_opacity.py | 1 - .../plotly/validators/layout/shape/_path.py | 1 - .../layout/shape/_templateitemname.py | 1 - .../plotly/validators/layout/shape/_type.py | 1 - .../validators/layout/shape/_visible.py | 1 - .../plotly/validators/layout/shape/_x0.py | 1 - .../plotly/validators/layout/shape/_x1.py | 1 - .../validators/layout/shape/_xanchor.py | 1 - .../plotly/validators/layout/shape/_xref.py | 1 - .../validators/layout/shape/_xsizemode.py | 1 - .../plotly/validators/layout/shape/_y0.py | 1 - .../plotly/validators/layout/shape/_y1.py | 1 - .../validators/layout/shape/_yanchor.py | 1 - .../plotly/validators/layout/shape/_yref.py | 1 - .../validators/layout/shape/_ysizemode.py | 1 - .../validators/layout/shape/line/_color.py | 1 - .../validators/layout/shape/line/_dash.py | 1 - .../validators/layout/shape/line/_width.py | 1 - .../validators/layout/slider/_active.py | 1 - .../layout/slider/_activebgcolor.py | 1 - .../validators/layout/slider/_bgcolor.py | 1 - .../validators/layout/slider/_bordercolor.py | 1 - .../validators/layout/slider/_borderwidth.py | 1 - .../plotly/validators/layout/slider/_len.py | 1 - .../validators/layout/slider/_lenmode.py | 1 - .../validators/layout/slider/_minorticklen.py | 1 - .../plotly/validators/layout/slider/_name.py | 1 - .../layout/slider/_templateitemname.py | 1 - .../validators/layout/slider/_tickcolor.py | 1 - .../validators/layout/slider/_ticklen.py | 1 - .../validators/layout/slider/_tickwidth.py | 1 - .../validators/layout/slider/_visible.py | 1 - .../plotly/validators/layout/slider/_x.py | 1 - .../validators/layout/slider/_xanchor.py | 1 - .../plotly/validators/layout/slider/_y.py | 1 - .../validators/layout/slider/_yanchor.py | 1 - .../layout/slider/currentvalue/_offset.py | 1 - .../layout/slider/currentvalue/_prefix.py | 1 - .../layout/slider/currentvalue/_suffix.py | 1 - .../layout/slider/currentvalue/_visible.py | 1 - .../layout/slider/currentvalue/_xanchor.py | 1 - .../layout/slider/currentvalue/font/_color.py | 1 - .../slider/currentvalue/font/_family.py | 1 - .../layout/slider/currentvalue/font/_size.py | 1 - .../validators/layout/slider/font/_color.py | 1 - .../validators/layout/slider/font/_family.py | 1 - .../validators/layout/slider/font/_size.py | 1 - .../plotly/validators/layout/slider/pad/_b.py | 1 - .../plotly/validators/layout/slider/pad/_l.py | 1 - .../plotly/validators/layout/slider/pad/_r.py | 1 - .../plotly/validators/layout/slider/pad/_t.py | 1 - .../validators/layout/slider/step/_args.py | 1 - .../validators/layout/slider/step/_execute.py | 1 - .../validators/layout/slider/step/_label.py | 1 - .../validators/layout/slider/step/_method.py | 1 - .../validators/layout/slider/step/_name.py | 1 - .../layout/slider/step/_templateitemname.py | 1 - .../validators/layout/slider/step/_value.py | 1 - .../validators/layout/slider/step/_visible.py | 1 - .../layout/slider/transition/_duration.py | 1 - .../layout/slider/transition/_easing.py | 1 - .../validators/layout/template/_data.py | 3 - .../layout/template/data/__init__.py | 2 - .../validators/layout/template/data/_area.py | 18 - .../validators/layout/ternary/_bgcolor.py | 1 - .../plotly/validators/layout/ternary/_sum.py | 1 - .../validators/layout/ternary/_uirevision.py | 1 - .../validators/layout/ternary/aaxis/_color.py | 1 - .../validators/layout/ternary/aaxis/_dtick.py | 1 - .../layout/ternary/aaxis/_exponentformat.py | 1 - .../layout/ternary/aaxis/_gridcolor.py | 1 - .../layout/ternary/aaxis/_gridwidth.py | 1 - .../layout/ternary/aaxis/_hoverformat.py | 1 - .../validators/layout/ternary/aaxis/_layer.py | 1 - .../layout/ternary/aaxis/_linecolor.py | 1 - .../layout/ternary/aaxis/_linewidth.py | 1 - .../validators/layout/ternary/aaxis/_min.py | 1 - .../layout/ternary/aaxis/_minexponent.py | 1 - .../layout/ternary/aaxis/_nticks.py | 1 - .../ternary/aaxis/_separatethousands.py | 1 - .../layout/ternary/aaxis/_showexponent.py | 1 - .../layout/ternary/aaxis/_showgrid.py | 1 - .../layout/ternary/aaxis/_showline.py | 1 - .../layout/ternary/aaxis/_showticklabels.py | 1 - .../layout/ternary/aaxis/_showtickprefix.py | 1 - .../layout/ternary/aaxis/_showticksuffix.py | 1 - .../validators/layout/ternary/aaxis/_tick0.py | 1 - .../layout/ternary/aaxis/_tickangle.py | 1 - .../layout/ternary/aaxis/_tickcolor.py | 1 - .../layout/ternary/aaxis/_tickformat.py | 1 - .../layout/ternary/aaxis/_ticklen.py | 1 - .../layout/ternary/aaxis/_tickmode.py | 1 - .../layout/ternary/aaxis/_tickprefix.py | 1 - .../validators/layout/ternary/aaxis/_ticks.py | 1 - .../layout/ternary/aaxis/_ticksuffix.py | 1 - .../layout/ternary/aaxis/_ticktext.py | 1 - .../layout/ternary/aaxis/_ticktextsrc.py | 1 - .../layout/ternary/aaxis/_tickvals.py | 1 - .../layout/ternary/aaxis/_tickvalssrc.py | 1 - .../layout/ternary/aaxis/_tickwidth.py | 1 - .../layout/ternary/aaxis/_uirevision.py | 1 - .../layout/ternary/aaxis/tickfont/_color.py | 1 - .../layout/ternary/aaxis/tickfont/_family.py | 1 - .../layout/ternary/aaxis/tickfont/_size.py | 1 - .../aaxis/tickformatstop/_dtickrange.py | 1 - .../ternary/aaxis/tickformatstop/_enabled.py | 1 - .../ternary/aaxis/tickformatstop/_name.py | 1 - .../aaxis/tickformatstop/_templateitemname.py | 1 - .../ternary/aaxis/tickformatstop/_value.py | 1 - .../layout/ternary/aaxis/title/_text.py | 1 - .../layout/ternary/aaxis/title/font/_color.py | 1 - .../ternary/aaxis/title/font/_family.py | 1 - .../layout/ternary/aaxis/title/font/_size.py | 1 - .../validators/layout/ternary/baxis/_color.py | 1 - .../validators/layout/ternary/baxis/_dtick.py | 1 - .../layout/ternary/baxis/_exponentformat.py | 1 - .../layout/ternary/baxis/_gridcolor.py | 1 - .../layout/ternary/baxis/_gridwidth.py | 1 - .../layout/ternary/baxis/_hoverformat.py | 1 - .../validators/layout/ternary/baxis/_layer.py | 1 - .../layout/ternary/baxis/_linecolor.py | 1 - .../layout/ternary/baxis/_linewidth.py | 1 - .../validators/layout/ternary/baxis/_min.py | 1 - .../layout/ternary/baxis/_minexponent.py | 1 - .../layout/ternary/baxis/_nticks.py | 1 - .../ternary/baxis/_separatethousands.py | 1 - .../layout/ternary/baxis/_showexponent.py | 1 - .../layout/ternary/baxis/_showgrid.py | 1 - .../layout/ternary/baxis/_showline.py | 1 - .../layout/ternary/baxis/_showticklabels.py | 1 - .../layout/ternary/baxis/_showtickprefix.py | 1 - .../layout/ternary/baxis/_showticksuffix.py | 1 - .../validators/layout/ternary/baxis/_tick0.py | 1 - .../layout/ternary/baxis/_tickangle.py | 1 - .../layout/ternary/baxis/_tickcolor.py | 1 - .../layout/ternary/baxis/_tickformat.py | 1 - .../layout/ternary/baxis/_ticklen.py | 1 - .../layout/ternary/baxis/_tickmode.py | 1 - .../layout/ternary/baxis/_tickprefix.py | 1 - .../validators/layout/ternary/baxis/_ticks.py | 1 - .../layout/ternary/baxis/_ticksuffix.py | 1 - .../layout/ternary/baxis/_ticktext.py | 1 - .../layout/ternary/baxis/_ticktextsrc.py | 1 - .../layout/ternary/baxis/_tickvals.py | 1 - .../layout/ternary/baxis/_tickvalssrc.py | 1 - .../layout/ternary/baxis/_tickwidth.py | 1 - .../layout/ternary/baxis/_uirevision.py | 1 - .../layout/ternary/baxis/tickfont/_color.py | 1 - .../layout/ternary/baxis/tickfont/_family.py | 1 - .../layout/ternary/baxis/tickfont/_size.py | 1 - .../baxis/tickformatstop/_dtickrange.py | 1 - .../ternary/baxis/tickformatstop/_enabled.py | 1 - .../ternary/baxis/tickformatstop/_name.py | 1 - .../baxis/tickformatstop/_templateitemname.py | 1 - .../ternary/baxis/tickformatstop/_value.py | 1 - .../layout/ternary/baxis/title/_text.py | 1 - .../layout/ternary/baxis/title/font/_color.py | 1 - .../ternary/baxis/title/font/_family.py | 1 - .../layout/ternary/baxis/title/font/_size.py | 1 - .../validators/layout/ternary/caxis/_color.py | 1 - .../validators/layout/ternary/caxis/_dtick.py | 1 - .../layout/ternary/caxis/_exponentformat.py | 1 - .../layout/ternary/caxis/_gridcolor.py | 1 - .../layout/ternary/caxis/_gridwidth.py | 1 - .../layout/ternary/caxis/_hoverformat.py | 1 - .../validators/layout/ternary/caxis/_layer.py | 1 - .../layout/ternary/caxis/_linecolor.py | 1 - .../layout/ternary/caxis/_linewidth.py | 1 - .../validators/layout/ternary/caxis/_min.py | 1 - .../layout/ternary/caxis/_minexponent.py | 1 - .../layout/ternary/caxis/_nticks.py | 1 - .../ternary/caxis/_separatethousands.py | 1 - .../layout/ternary/caxis/_showexponent.py | 1 - .../layout/ternary/caxis/_showgrid.py | 1 - .../layout/ternary/caxis/_showline.py | 1 - .../layout/ternary/caxis/_showticklabels.py | 1 - .../layout/ternary/caxis/_showtickprefix.py | 1 - .../layout/ternary/caxis/_showticksuffix.py | 1 - .../validators/layout/ternary/caxis/_tick0.py | 1 - .../layout/ternary/caxis/_tickangle.py | 1 - .../layout/ternary/caxis/_tickcolor.py | 1 - .../layout/ternary/caxis/_tickformat.py | 1 - .../layout/ternary/caxis/_ticklen.py | 1 - .../layout/ternary/caxis/_tickmode.py | 1 - .../layout/ternary/caxis/_tickprefix.py | 1 - .../validators/layout/ternary/caxis/_ticks.py | 1 - .../layout/ternary/caxis/_ticksuffix.py | 1 - .../layout/ternary/caxis/_ticktext.py | 1 - .../layout/ternary/caxis/_ticktextsrc.py | 1 - .../layout/ternary/caxis/_tickvals.py | 1 - .../layout/ternary/caxis/_tickvalssrc.py | 1 - .../layout/ternary/caxis/_tickwidth.py | 1 - .../layout/ternary/caxis/_uirevision.py | 1 - .../layout/ternary/caxis/tickfont/_color.py | 1 - .../layout/ternary/caxis/tickfont/_family.py | 1 - .../layout/ternary/caxis/tickfont/_size.py | 1 - .../caxis/tickformatstop/_dtickrange.py | 1 - .../ternary/caxis/tickformatstop/_enabled.py | 1 - .../ternary/caxis/tickformatstop/_name.py | 1 - .../caxis/tickformatstop/_templateitemname.py | 1 - .../ternary/caxis/tickformatstop/_value.py | 1 - .../layout/ternary/caxis/title/_text.py | 1 - .../layout/ternary/caxis/title/font/_color.py | 1 - .../ternary/caxis/title/font/_family.py | 1 - .../layout/ternary/caxis/title/font/_size.py | 1 - .../layout/ternary/domain/_column.py | 1 - .../validators/layout/ternary/domain/_row.py | 1 - .../validators/layout/ternary/domain/_x.py | 1 - .../validators/layout/ternary/domain/_y.py | 1 - .../plotly/validators/layout/title/_text.py | 1 - .../plotly/validators/layout/title/_x.py | 1 - .../validators/layout/title/_xanchor.py | 1 - .../plotly/validators/layout/title/_xref.py | 1 - .../plotly/validators/layout/title/_y.py | 1 - .../validators/layout/title/_yanchor.py | 1 - .../plotly/validators/layout/title/_yref.py | 1 - .../validators/layout/title/font/_color.py | 1 - .../validators/layout/title/font/_family.py | 1 - .../validators/layout/title/font/_size.py | 1 - .../plotly/validators/layout/title/pad/_b.py | 1 - .../plotly/validators/layout/title/pad/_l.py | 1 - .../plotly/validators/layout/title/pad/_r.py | 1 - .../plotly/validators/layout/title/pad/_t.py | 1 - .../validators/layout/transition/_duration.py | 1 - .../validators/layout/transition/_easing.py | 1 - .../validators/layout/transition/_ordering.py | 1 - .../validators/layout/uniformtext/_minsize.py | 1 - .../validators/layout/uniformtext/_mode.py | 1 - .../validators/layout/updatemenu/_active.py | 1 - .../validators/layout/updatemenu/_bgcolor.py | 1 - .../layout/updatemenu/_bordercolor.py | 1 - .../layout/updatemenu/_borderwidth.py | 1 - .../layout/updatemenu/_direction.py | 1 - .../validators/layout/updatemenu/_name.py | 1 - .../layout/updatemenu/_showactive.py | 1 - .../layout/updatemenu/_templateitemname.py | 1 - .../validators/layout/updatemenu/_type.py | 1 - .../validators/layout/updatemenu/_visible.py | 1 - .../plotly/validators/layout/updatemenu/_x.py | 1 - .../validators/layout/updatemenu/_xanchor.py | 1 - .../plotly/validators/layout/updatemenu/_y.py | 1 - .../validators/layout/updatemenu/_yanchor.py | 1 - .../layout/updatemenu/button/_args.py | 1 - .../layout/updatemenu/button/_args2.py | 1 - .../layout/updatemenu/button/_execute.py | 1 - .../layout/updatemenu/button/_label.py | 1 - .../layout/updatemenu/button/_method.py | 1 - .../layout/updatemenu/button/_name.py | 1 - .../updatemenu/button/_templateitemname.py | 1 - .../layout/updatemenu/button/_visible.py | 1 - .../layout/updatemenu/font/_color.py | 1 - .../layout/updatemenu/font/_family.py | 1 - .../layout/updatemenu/font/_size.py | 1 - .../validators/layout/updatemenu/pad/_b.py | 1 - .../validators/layout/updatemenu/pad/_l.py | 1 - .../validators/layout/updatemenu/pad/_r.py | 1 - .../validators/layout/updatemenu/pad/_t.py | 1 - .../validators/layout/xaxis/__init__.py | 2 + .../plotly/validators/layout/xaxis/_anchor.py | 1 - .../validators/layout/xaxis/_automargin.py | 1 - .../validators/layout/xaxis/_autorange.py | 1 - .../layout/xaxis/_autotypenumbers.py | 1 - .../validators/layout/xaxis/_calendar.py | 1 - .../validators/layout/xaxis/_categoryarray.py | 1 - .../layout/xaxis/_categoryarraysrc.py | 1 - .../validators/layout/xaxis/_categoryorder.py | 1 - .../plotly/validators/layout/xaxis/_color.py | 1 - .../validators/layout/xaxis/_constrain.py | 1 - .../layout/xaxis/_constraintoward.py | 1 - .../validators/layout/xaxis/_dividercolor.py | 1 - .../validators/layout/xaxis/_dividerwidth.py | 1 - .../plotly/validators/layout/xaxis/_domain.py | 1 - .../plotly/validators/layout/xaxis/_dtick.py | 1 - .../layout/xaxis/_exponentformat.py | 1 - .../validators/layout/xaxis/_fixedrange.py | 1 - .../validators/layout/xaxis/_gridcolor.py | 1 - .../validators/layout/xaxis/_gridwidth.py | 1 - .../validators/layout/xaxis/_hoverformat.py | 1 - .../plotly/validators/layout/xaxis/_layer.py | 1 - .../validators/layout/xaxis/_linecolor.py | 1 - .../validators/layout/xaxis/_linewidth.py | 1 - .../validators/layout/xaxis/_matches.py | 1 - .../validators/layout/xaxis/_minexponent.py | 1 - .../plotly/validators/layout/xaxis/_mirror.py | 1 - .../plotly/validators/layout/xaxis/_nticks.py | 1 - .../validators/layout/xaxis/_overlaying.py | 1 - .../validators/layout/xaxis/_position.py | 1 - .../plotly/validators/layout/xaxis/_range.py | 1 - .../validators/layout/xaxis/_rangemode.py | 1 - .../validators/layout/xaxis/_scaleanchor.py | 1 - .../validators/layout/xaxis/_scaleratio.py | 1 - .../layout/xaxis/_separatethousands.py | 1 - .../validators/layout/xaxis/_showdividers.py | 1 - .../validators/layout/xaxis/_showexponent.py | 1 - .../validators/layout/xaxis/_showgrid.py | 1 - .../validators/layout/xaxis/_showline.py | 1 - .../validators/layout/xaxis/_showspikes.py | 1 - .../layout/xaxis/_showticklabels.py | 1 - .../layout/xaxis/_showtickprefix.py | 1 - .../layout/xaxis/_showticksuffix.py | 1 - .../plotly/validators/layout/xaxis/_side.py | 1 - .../validators/layout/xaxis/_spikecolor.py | 1 - .../validators/layout/xaxis/_spikedash.py | 1 - .../validators/layout/xaxis/_spikemode.py | 1 - .../validators/layout/xaxis/_spikesnap.py | 1 - .../layout/xaxis/_spikethickness.py | 1 - .../plotly/validators/layout/xaxis/_tick0.py | 1 - .../validators/layout/xaxis/_tickangle.py | 1 - .../validators/layout/xaxis/_tickcolor.py | 1 - .../validators/layout/xaxis/_tickformat.py | 1 - .../validators/layout/xaxis/_ticklabelmode.py | 1 - .../layout/xaxis/_ticklabeloverflow.py | 14 + .../layout/xaxis/_ticklabelposition.py | 1 - .../validators/layout/xaxis/_ticklen.py | 1 - .../validators/layout/xaxis/_tickmode.py | 1 - .../validators/layout/xaxis/_tickprefix.py | 1 - .../plotly/validators/layout/xaxis/_ticks.py | 1 - .../validators/layout/xaxis/_tickson.py | 1 - .../validators/layout/xaxis/_ticksuffix.py | 1 - .../validators/layout/xaxis/_ticktext.py | 1 - .../validators/layout/xaxis/_ticktextsrc.py | 1 - .../validators/layout/xaxis/_tickvals.py | 1 - .../validators/layout/xaxis/_tickvalssrc.py | 1 - .../validators/layout/xaxis/_tickwidth.py | 1 - .../plotly/validators/layout/xaxis/_type.py | 1 - .../validators/layout/xaxis/_uirevision.py | 1 - .../validators/layout/xaxis/_visible.py | 1 - .../validators/layout/xaxis/_zeroline.py | 1 - .../validators/layout/xaxis/_zerolinecolor.py | 1 - .../validators/layout/xaxis/_zerolinewidth.py | 1 - .../layout/xaxis/rangebreak/_bounds.py | 1 - .../layout/xaxis/rangebreak/_dvalue.py | 1 - .../layout/xaxis/rangebreak/_enabled.py | 1 - .../layout/xaxis/rangebreak/_name.py | 1 - .../layout/xaxis/rangebreak/_pattern.py | 1 - .../xaxis/rangebreak/_templateitemname.py | 1 - .../layout/xaxis/rangebreak/_values.py | 1 - .../xaxis/rangeselector/_activecolor.py | 1 - .../layout/xaxis/rangeselector/_bgcolor.py | 1 - .../xaxis/rangeselector/_bordercolor.py | 1 - .../xaxis/rangeselector/_borderwidth.py | 1 - .../layout/xaxis/rangeselector/_visible.py | 1 - .../layout/xaxis/rangeselector/_x.py | 1 - .../layout/xaxis/rangeselector/_xanchor.py | 1 - .../layout/xaxis/rangeselector/_y.py | 1 - .../layout/xaxis/rangeselector/_yanchor.py | 1 - .../xaxis/rangeselector/button/_count.py | 1 - .../xaxis/rangeselector/button/_label.py | 1 - .../xaxis/rangeselector/button/_name.py | 1 - .../xaxis/rangeselector/button/_step.py | 1 - .../xaxis/rangeselector/button/_stepmode.py | 1 - .../rangeselector/button/_templateitemname.py | 1 - .../xaxis/rangeselector/button/_visible.py | 1 - .../layout/xaxis/rangeselector/font/_color.py | 1 - .../xaxis/rangeselector/font/_family.py | 1 - .../layout/xaxis/rangeselector/font/_size.py | 1 - .../layout/xaxis/rangeslider/_autorange.py | 1 - .../layout/xaxis/rangeslider/_bgcolor.py | 1 - .../layout/xaxis/rangeslider/_bordercolor.py | 1 - .../layout/xaxis/rangeslider/_borderwidth.py | 1 - .../layout/xaxis/rangeslider/_range.py | 1 - .../layout/xaxis/rangeslider/_thickness.py | 1 - .../layout/xaxis/rangeslider/_visible.py | 1 - .../layout/xaxis/rangeslider/yaxis/_range.py | 1 - .../xaxis/rangeslider/yaxis/_rangemode.py | 1 - .../layout/xaxis/tickfont/_color.py | 1 - .../layout/xaxis/tickfont/_family.py | 1 - .../validators/layout/xaxis/tickfont/_size.py | 1 - .../xaxis/tickformatstop/_dtickrange.py | 1 - .../layout/xaxis/tickformatstop/_enabled.py | 1 - .../layout/xaxis/tickformatstop/_name.py | 1 - .../xaxis/tickformatstop/_templateitemname.py | 1 - .../layout/xaxis/tickformatstop/_value.py | 1 - .../layout/xaxis/title/_standoff.py | 1 - .../validators/layout/xaxis/title/_text.py | 1 - .../layout/xaxis/title/font/_color.py | 1 - .../layout/xaxis/title/font/_family.py | 1 - .../layout/xaxis/title/font/_size.py | 1 - .../validators/layout/yaxis/__init__.py | 2 + .../plotly/validators/layout/yaxis/_anchor.py | 1 - .../validators/layout/yaxis/_automargin.py | 1 - .../validators/layout/yaxis/_autorange.py | 1 - .../layout/yaxis/_autotypenumbers.py | 1 - .../validators/layout/yaxis/_calendar.py | 1 - .../validators/layout/yaxis/_categoryarray.py | 1 - .../layout/yaxis/_categoryarraysrc.py | 1 - .../validators/layout/yaxis/_categoryorder.py | 1 - .../plotly/validators/layout/yaxis/_color.py | 1 - .../validators/layout/yaxis/_constrain.py | 1 - .../layout/yaxis/_constraintoward.py | 1 - .../validators/layout/yaxis/_dividercolor.py | 1 - .../validators/layout/yaxis/_dividerwidth.py | 1 - .../plotly/validators/layout/yaxis/_domain.py | 1 - .../plotly/validators/layout/yaxis/_dtick.py | 1 - .../layout/yaxis/_exponentformat.py | 1 - .../validators/layout/yaxis/_fixedrange.py | 1 - .../validators/layout/yaxis/_gridcolor.py | 1 - .../validators/layout/yaxis/_gridwidth.py | 1 - .../validators/layout/yaxis/_hoverformat.py | 1 - .../plotly/validators/layout/yaxis/_layer.py | 1 - .../validators/layout/yaxis/_linecolor.py | 1 - .../validators/layout/yaxis/_linewidth.py | 1 - .../validators/layout/yaxis/_matches.py | 1 - .../validators/layout/yaxis/_minexponent.py | 1 - .../plotly/validators/layout/yaxis/_mirror.py | 1 - .../plotly/validators/layout/yaxis/_nticks.py | 1 - .../validators/layout/yaxis/_overlaying.py | 1 - .../validators/layout/yaxis/_position.py | 1 - .../plotly/validators/layout/yaxis/_range.py | 1 - .../validators/layout/yaxis/_rangemode.py | 1 - .../validators/layout/yaxis/_scaleanchor.py | 1 - .../validators/layout/yaxis/_scaleratio.py | 1 - .../layout/yaxis/_separatethousands.py | 1 - .../validators/layout/yaxis/_showdividers.py | 1 - .../validators/layout/yaxis/_showexponent.py | 1 - .../validators/layout/yaxis/_showgrid.py | 1 - .../validators/layout/yaxis/_showline.py | 1 - .../validators/layout/yaxis/_showspikes.py | 1 - .../layout/yaxis/_showticklabels.py | 1 - .../layout/yaxis/_showtickprefix.py | 1 - .../layout/yaxis/_showticksuffix.py | 1 - .../plotly/validators/layout/yaxis/_side.py | 1 - .../validators/layout/yaxis/_spikecolor.py | 1 - .../validators/layout/yaxis/_spikedash.py | 1 - .../validators/layout/yaxis/_spikemode.py | 1 - .../validators/layout/yaxis/_spikesnap.py | 1 - .../layout/yaxis/_spikethickness.py | 1 - .../plotly/validators/layout/yaxis/_tick0.py | 1 - .../validators/layout/yaxis/_tickangle.py | 1 - .../validators/layout/yaxis/_tickcolor.py | 1 - .../validators/layout/yaxis/_tickformat.py | 1 - .../validators/layout/yaxis/_ticklabelmode.py | 1 - .../layout/yaxis/_ticklabeloverflow.py | 14 + .../layout/yaxis/_ticklabelposition.py | 1 - .../validators/layout/yaxis/_ticklen.py | 1 - .../validators/layout/yaxis/_tickmode.py | 1 - .../validators/layout/yaxis/_tickprefix.py | 1 - .../plotly/validators/layout/yaxis/_ticks.py | 1 - .../validators/layout/yaxis/_tickson.py | 1 - .../validators/layout/yaxis/_ticksuffix.py | 1 - .../validators/layout/yaxis/_ticktext.py | 1 - .../validators/layout/yaxis/_ticktextsrc.py | 1 - .../validators/layout/yaxis/_tickvals.py | 1 - .../validators/layout/yaxis/_tickvalssrc.py | 1 - .../validators/layout/yaxis/_tickwidth.py | 1 - .../plotly/validators/layout/yaxis/_type.py | 1 - .../validators/layout/yaxis/_uirevision.py | 1 - .../validators/layout/yaxis/_visible.py | 1 - .../validators/layout/yaxis/_zeroline.py | 1 - .../validators/layout/yaxis/_zerolinecolor.py | 1 - .../validators/layout/yaxis/_zerolinewidth.py | 1 - .../layout/yaxis/rangebreak/_bounds.py | 1 - .../layout/yaxis/rangebreak/_dvalue.py | 1 - .../layout/yaxis/rangebreak/_enabled.py | 1 - .../layout/yaxis/rangebreak/_name.py | 1 - .../layout/yaxis/rangebreak/_pattern.py | 1 - .../yaxis/rangebreak/_templateitemname.py | 1 - .../layout/yaxis/rangebreak/_values.py | 1 - .../layout/yaxis/tickfont/_color.py | 1 - .../layout/yaxis/tickfont/_family.py | 1 - .../validators/layout/yaxis/tickfont/_size.py | 1 - .../yaxis/tickformatstop/_dtickrange.py | 1 - .../layout/yaxis/tickformatstop/_enabled.py | 1 - .../layout/yaxis/tickformatstop/_name.py | 1 - .../yaxis/tickformatstop/_templateitemname.py | 1 - .../layout/yaxis/tickformatstop/_value.py | 1 - .../layout/yaxis/title/_standoff.py | 1 - .../validators/layout/yaxis/title/_text.py | 1 - .../layout/yaxis/title/font/_color.py | 1 - .../layout/yaxis/title/font/_family.py | 1 - .../layout/yaxis/title/font/_size.py | 1 - .../plotly/validators/mesh3d/__init__.py | 6 + .../plotly/validators/mesh3d/_alphahull.py | 1 - .../validators/mesh3d/_autocolorscale.py | 1 - .../plotly/plotly/validators/mesh3d/_cauto.py | 1 - .../plotly/plotly/validators/mesh3d/_cmax.py | 1 - .../plotly/plotly/validators/mesh3d/_cmid.py | 1 - .../plotly/plotly/validators/mesh3d/_cmin.py | 1 - .../plotly/plotly/validators/mesh3d/_color.py | 1 - .../plotly/validators/mesh3d/_coloraxis.py | 1 - .../plotly/validators/mesh3d/_colorbar.py | 6 + .../plotly/validators/mesh3d/_colorscale.py | 1 - .../plotly/validators/mesh3d/_customdata.py | 1 - .../validators/mesh3d/_customdatasrc.py | 1 - .../plotly/validators/mesh3d/_delaunayaxis.py | 1 - .../plotly/validators/mesh3d/_facecolor.py | 1 - .../plotly/validators/mesh3d/_facecolorsrc.py | 1 - .../plotly/validators/mesh3d/_flatshading.py | 1 - .../plotly/validators/mesh3d/_hoverinfo.py | 1 - .../plotly/validators/mesh3d/_hoverinfosrc.py | 1 - .../validators/mesh3d/_hovertemplate.py | 1 - .../validators/mesh3d/_hovertemplatesrc.py | 1 - .../plotly/validators/mesh3d/_hovertext.py | 1 - .../plotly/validators/mesh3d/_hovertextsrc.py | 1 - .../plotly/plotly/validators/mesh3d/_i.py | 1 - .../plotly/plotly/validators/mesh3d/_ids.py | 1 - .../plotly/validators/mesh3d/_idssrc.py | 1 - .../plotly/validators/mesh3d/_intensity.py | 1 - .../validators/mesh3d/_intensitymode.py | 1 - .../plotly/validators/mesh3d/_intensitysrc.py | 1 - .../plotly/plotly/validators/mesh3d/_isrc.py | 1 - .../plotly/plotly/validators/mesh3d/_j.py | 1 - .../plotly/plotly/validators/mesh3d/_jsrc.py | 1 - .../plotly/plotly/validators/mesh3d/_k.py | 1 - .../plotly/plotly/validators/mesh3d/_ksrc.py | 1 - .../plotly/validators/mesh3d/_legendgroup.py | 1 - .../plotly/plotly/validators/mesh3d/_meta.py | 1 - .../plotly/validators/mesh3d/_metasrc.py | 1 - .../plotly/plotly/validators/mesh3d/_name.py | 1 - .../plotly/validators/mesh3d/_opacity.py | 1 - .../plotly/validators/mesh3d/_reversescale.py | 1 - .../plotly/plotly/validators/mesh3d/_scene.py | 1 - .../plotly/validators/mesh3d/_showlegend.py | 1 - .../plotly/validators/mesh3d/_showscale.py | 1 - .../plotly/plotly/validators/mesh3d/_text.py | 1 - .../plotly/validators/mesh3d/_textsrc.py | 1 - .../plotly/plotly/validators/mesh3d/_uid.py | 1 - .../plotly/validators/mesh3d/_uirevision.py | 1 - .../plotly/validators/mesh3d/_vertexcolor.py | 1 - .../validators/mesh3d/_vertexcolorsrc.py | 1 - .../plotly/validators/mesh3d/_visible.py | 1 - .../plotly/plotly/validators/mesh3d/_x.py | 1 - .../plotly/validators/mesh3d/_xcalendar.py | 1 - .../plotly/validators/mesh3d/_xhoverformat.py | 11 + .../plotly/plotly/validators/mesh3d/_xsrc.py | 1 - .../plotly/plotly/validators/mesh3d/_y.py | 1 - .../plotly/validators/mesh3d/_ycalendar.py | 1 - .../plotly/validators/mesh3d/_yhoverformat.py | 11 + .../plotly/plotly/validators/mesh3d/_ysrc.py | 1 - .../plotly/plotly/validators/mesh3d/_z.py | 1 - .../plotly/validators/mesh3d/_zcalendar.py | 1 - .../plotly/validators/mesh3d/_zhoverformat.py | 11 + .../plotly/plotly/validators/mesh3d/_zsrc.py | 1 - .../validators/mesh3d/colorbar/__init__.py | 2 + .../validators/mesh3d/colorbar/_bgcolor.py | 1 - .../mesh3d/colorbar/_bordercolor.py | 1 - .../mesh3d/colorbar/_borderwidth.py | 1 - .../validators/mesh3d/colorbar/_dtick.py | 1 - .../mesh3d/colorbar/_exponentformat.py | 1 - .../plotly/validators/mesh3d/colorbar/_len.py | 1 - .../validators/mesh3d/colorbar/_lenmode.py | 1 - .../mesh3d/colorbar/_minexponent.py | 1 - .../validators/mesh3d/colorbar/_nticks.py | 1 - .../mesh3d/colorbar/_outlinecolor.py | 1 - .../mesh3d/colorbar/_outlinewidth.py | 1 - .../mesh3d/colorbar/_separatethousands.py | 1 - .../mesh3d/colorbar/_showexponent.py | 1 - .../mesh3d/colorbar/_showticklabels.py | 1 - .../mesh3d/colorbar/_showtickprefix.py | 1 - .../mesh3d/colorbar/_showticksuffix.py | 1 - .../validators/mesh3d/colorbar/_thickness.py | 1 - .../mesh3d/colorbar/_thicknessmode.py | 1 - .../validators/mesh3d/colorbar/_tick0.py | 1 - .../validators/mesh3d/colorbar/_tickangle.py | 1 - .../validators/mesh3d/colorbar/_tickcolor.py | 1 - .../validators/mesh3d/colorbar/_tickformat.py | 1 - .../mesh3d/colorbar/_ticklabeloverflow.py | 14 + .../mesh3d/colorbar/_ticklabelposition.py | 1 - .../validators/mesh3d/colorbar/_ticklen.py | 1 - .../validators/mesh3d/colorbar/_tickmode.py | 1 - .../validators/mesh3d/colorbar/_tickprefix.py | 1 - .../validators/mesh3d/colorbar/_ticks.py | 1 - .../validators/mesh3d/colorbar/_ticksuffix.py | 1 - .../validators/mesh3d/colorbar/_ticktext.py | 1 - .../mesh3d/colorbar/_ticktextsrc.py | 1 - .../validators/mesh3d/colorbar/_tickvals.py | 1 - .../mesh3d/colorbar/_tickvalssrc.py | 1 - .../validators/mesh3d/colorbar/_tickwidth.py | 1 - .../plotly/validators/mesh3d/colorbar/_x.py | 1 - .../validators/mesh3d/colorbar/_xanchor.py | 1 - .../validators/mesh3d/colorbar/_xpad.py | 1 - .../plotly/validators/mesh3d/colorbar/_y.py | 1 - .../validators/mesh3d/colorbar/_yanchor.py | 1 - .../validators/mesh3d/colorbar/_ypad.py | 1 - .../mesh3d/colorbar/tickfont/_color.py | 1 - .../mesh3d/colorbar/tickfont/_family.py | 1 - .../mesh3d/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../mesh3d/colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../mesh3d/colorbar/tickformatstop/_value.py | 1 - .../validators/mesh3d/colorbar/title/_side.py | 1 - .../validators/mesh3d/colorbar/title/_text.py | 1 - .../mesh3d/colorbar/title/font/_color.py | 1 - .../mesh3d/colorbar/title/font/_family.py | 1 - .../mesh3d/colorbar/title/font/_size.py | 1 - .../validators/mesh3d/contour/_color.py | 1 - .../plotly/validators/mesh3d/contour/_show.py | 1 - .../validators/mesh3d/contour/_width.py | 1 - .../validators/mesh3d/hoverlabel/_align.py | 1 - .../validators/mesh3d/hoverlabel/_alignsrc.py | 1 - .../validators/mesh3d/hoverlabel/_bgcolor.py | 1 - .../mesh3d/hoverlabel/_bgcolorsrc.py | 1 - .../mesh3d/hoverlabel/_bordercolor.py | 1 - .../mesh3d/hoverlabel/_bordercolorsrc.py | 1 - .../mesh3d/hoverlabel/_namelength.py | 1 - .../mesh3d/hoverlabel/_namelengthsrc.py | 1 - .../mesh3d/hoverlabel/font/_color.py | 1 - .../mesh3d/hoverlabel/font/_colorsrc.py | 1 - .../mesh3d/hoverlabel/font/_family.py | 1 - .../mesh3d/hoverlabel/font/_familysrc.py | 1 - .../mesh3d/hoverlabel/font/_size.py | 1 - .../mesh3d/hoverlabel/font/_sizesrc.py | 1 - .../validators/mesh3d/lighting/_ambient.py | 1 - .../validators/mesh3d/lighting/_diffuse.py | 1 - .../mesh3d/lighting/_facenormalsepsilon.py | 1 - .../validators/mesh3d/lighting/_fresnel.py | 1 - .../validators/mesh3d/lighting/_roughness.py | 1 - .../validators/mesh3d/lighting/_specular.py | 1 - .../mesh3d/lighting/_vertexnormalsepsilon.py | 1 - .../validators/mesh3d/lightposition/_x.py | 1 - .../validators/mesh3d/lightposition/_y.py | 1 - .../validators/mesh3d/lightposition/_z.py | 1 - .../validators/mesh3d/stream/_maxpoints.py | 1 - .../plotly/validators/mesh3d/stream/_token.py | 1 - .../plotly/plotly/validators/ohlc/__init__.py | 4 + .../plotly/plotly/validators/ohlc/_close.py | 1 - .../plotly/validators/ohlc/_closesrc.py | 1 - .../plotly/validators/ohlc/_customdata.py | 1 - .../plotly/validators/ohlc/_customdatasrc.py | 1 - .../plotly/plotly/validators/ohlc/_high.py | 1 - .../plotly/plotly/validators/ohlc/_highsrc.py | 1 - .../plotly/validators/ohlc/_hoverinfo.py | 1 - .../plotly/validators/ohlc/_hoverinfosrc.py | 1 - .../plotly/validators/ohlc/_hovertext.py | 1 - .../plotly/validators/ohlc/_hovertextsrc.py | 1 - .../plotly/plotly/validators/ohlc/_ids.py | 1 - .../plotly/plotly/validators/ohlc/_idssrc.py | 1 - .../plotly/validators/ohlc/_legendgroup.py | 1 - .../plotly/plotly/validators/ohlc/_low.py | 1 - .../plotly/plotly/validators/ohlc/_lowsrc.py | 1 - .../plotly/plotly/validators/ohlc/_meta.py | 1 - .../plotly/plotly/validators/ohlc/_metasrc.py | 1 - .../plotly/plotly/validators/ohlc/_name.py | 1 - .../plotly/plotly/validators/ohlc/_opacity.py | 1 - .../plotly/plotly/validators/ohlc/_open.py | 1 - .../plotly/plotly/validators/ohlc/_opensrc.py | 1 - .../plotly/validators/ohlc/_selectedpoints.py | 1 - .../plotly/validators/ohlc/_showlegend.py | 1 - .../plotly/plotly/validators/ohlc/_text.py | 1 - .../plotly/plotly/validators/ohlc/_textsrc.py | 1 - .../plotly/validators/ohlc/_tickwidth.py | 1 - .../plotly/plotly/validators/ohlc/_uid.py | 1 - .../plotly/validators/ohlc/_uirevision.py | 1 - .../plotly/plotly/validators/ohlc/_visible.py | 1 - .../plotly/plotly/validators/ohlc/_x.py | 1 - .../plotly/plotly/validators/ohlc/_xaxis.py | 1 - .../plotly/validators/ohlc/_xcalendar.py | 1 - .../plotly/validators/ohlc/_xhoverformat.py | 11 + .../plotly/plotly/validators/ohlc/_xperiod.py | 1 - .../plotly/validators/ohlc/_xperiod0.py | 1 - .../validators/ohlc/_xperiodalignment.py | 1 - .../plotly/plotly/validators/ohlc/_xsrc.py | 1 - .../plotly/plotly/validators/ohlc/_yaxis.py | 1 - .../plotly/validators/ohlc/_yhoverformat.py | 11 + .../validators/ohlc/decreasing/line/_color.py | 1 - .../validators/ohlc/decreasing/line/_dash.py | 1 - .../validators/ohlc/decreasing/line/_width.py | 1 - .../validators/ohlc/hoverlabel/_align.py | 1 - .../validators/ohlc/hoverlabel/_alignsrc.py | 1 - .../validators/ohlc/hoverlabel/_bgcolor.py | 1 - .../validators/ohlc/hoverlabel/_bgcolorsrc.py | 1 - .../ohlc/hoverlabel/_bordercolor.py | 1 - .../ohlc/hoverlabel/_bordercolorsrc.py | 1 - .../validators/ohlc/hoverlabel/_namelength.py | 1 - .../ohlc/hoverlabel/_namelengthsrc.py | 1 - .../validators/ohlc/hoverlabel/_split.py | 1 - .../validators/ohlc/hoverlabel/font/_color.py | 1 - .../ohlc/hoverlabel/font/_colorsrc.py | 1 - .../ohlc/hoverlabel/font/_family.py | 1 - .../ohlc/hoverlabel/font/_familysrc.py | 1 - .../validators/ohlc/hoverlabel/font/_size.py | 1 - .../ohlc/hoverlabel/font/_sizesrc.py | 1 - .../validators/ohlc/increasing/line/_color.py | 1 - .../validators/ohlc/increasing/line/_dash.py | 1 - .../validators/ohlc/increasing/line/_width.py | 1 - .../plotly/validators/ohlc/line/_dash.py | 1 - .../plotly/validators/ohlc/line/_width.py | 1 - .../validators/ohlc/stream/_maxpoints.py | 1 - .../plotly/validators/ohlc/stream/_token.py | 1 - .../plotly/validators/parcats/_arrangement.py | 1 - .../validators/parcats/_bundlecolors.py | 1 - .../plotly/validators/parcats/_counts.py | 1 - .../plotly/validators/parcats/_countssrc.py | 1 - .../plotly/validators/parcats/_hoverinfo.py | 1 - .../plotly/validators/parcats/_hoveron.py | 1 - .../validators/parcats/_hovertemplate.py | 1 - .../plotly/plotly/validators/parcats/_meta.py | 1 - .../plotly/validators/parcats/_metasrc.py | 1 - .../plotly/plotly/validators/parcats/_name.py | 1 - .../plotly/validators/parcats/_sortpaths.py | 1 - .../plotly/plotly/validators/parcats/_uid.py | 1 - .../plotly/validators/parcats/_uirevision.py | 1 - .../plotly/validators/parcats/_visible.py | 1 - .../parcats/dimension/_categoryarray.py | 1 - .../parcats/dimension/_categoryarraysrc.py | 1 - .../parcats/dimension/_categoryorder.py | 1 - .../parcats/dimension/_displayindex.py | 1 - .../validators/parcats/dimension/_label.py | 1 - .../validators/parcats/dimension/_ticktext.py | 1 - .../parcats/dimension/_ticktextsrc.py | 1 - .../validators/parcats/dimension/_values.py | 1 - .../parcats/dimension/_valuessrc.py | 1 - .../validators/parcats/dimension/_visible.py | 1 - .../validators/parcats/domain/_column.py | 1 - .../plotly/validators/parcats/domain/_row.py | 1 - .../plotly/validators/parcats/domain/_x.py | 1 - .../plotly/validators/parcats/domain/_y.py | 1 - .../validators/parcats/labelfont/_color.py | 1 - .../validators/parcats/labelfont/_family.py | 1 - .../validators/parcats/labelfont/_size.py | 1 - .../parcats/line/_autocolorscale.py | 1 - .../plotly/validators/parcats/line/_cauto.py | 1 - .../plotly/validators/parcats/line/_cmax.py | 1 - .../plotly/validators/parcats/line/_cmid.py | 1 - .../plotly/validators/parcats/line/_cmin.py | 1 - .../plotly/validators/parcats/line/_color.py | 1 - .../validators/parcats/line/_coloraxis.py | 1 - .../validators/parcats/line/_colorbar.py | 6 + .../validators/parcats/line/_colorscale.py | 1 - .../validators/parcats/line/_colorsrc.py | 1 - .../validators/parcats/line/_hovertemplate.py | 1 - .../validators/parcats/line/_reversescale.py | 1 - .../plotly/validators/parcats/line/_shape.py | 1 - .../validators/parcats/line/_showscale.py | 1 - .../parcats/line/colorbar/__init__.py | 2 + .../parcats/line/colorbar/_bgcolor.py | 1 - .../parcats/line/colorbar/_bordercolor.py | 1 - .../parcats/line/colorbar/_borderwidth.py | 1 - .../parcats/line/colorbar/_dtick.py | 1 - .../parcats/line/colorbar/_exponentformat.py | 1 - .../validators/parcats/line/colorbar/_len.py | 1 - .../parcats/line/colorbar/_lenmode.py | 1 - .../parcats/line/colorbar/_minexponent.py | 1 - .../parcats/line/colorbar/_nticks.py | 1 - .../parcats/line/colorbar/_outlinecolor.py | 1 - .../parcats/line/colorbar/_outlinewidth.py | 1 - .../line/colorbar/_separatethousands.py | 1 - .../parcats/line/colorbar/_showexponent.py | 1 - .../parcats/line/colorbar/_showticklabels.py | 1 - .../parcats/line/colorbar/_showtickprefix.py | 1 - .../parcats/line/colorbar/_showticksuffix.py | 1 - .../parcats/line/colorbar/_thickness.py | 1 - .../parcats/line/colorbar/_thicknessmode.py | 1 - .../parcats/line/colorbar/_tick0.py | 1 - .../parcats/line/colorbar/_tickangle.py | 1 - .../parcats/line/colorbar/_tickcolor.py | 1 - .../parcats/line/colorbar/_tickformat.py | 1 - .../line/colorbar/_ticklabeloverflow.py | 17 + .../line/colorbar/_ticklabelposition.py | 1 - .../parcats/line/colorbar/_ticklen.py | 1 - .../parcats/line/colorbar/_tickmode.py | 1 - .../parcats/line/colorbar/_tickprefix.py | 1 - .../parcats/line/colorbar/_ticks.py | 1 - .../parcats/line/colorbar/_ticksuffix.py | 1 - .../parcats/line/colorbar/_ticktext.py | 1 - .../parcats/line/colorbar/_ticktextsrc.py | 1 - .../parcats/line/colorbar/_tickvals.py | 1 - .../parcats/line/colorbar/_tickvalssrc.py | 1 - .../parcats/line/colorbar/_tickwidth.py | 1 - .../validators/parcats/line/colorbar/_x.py | 1 - .../parcats/line/colorbar/_xanchor.py | 1 - .../validators/parcats/line/colorbar/_xpad.py | 1 - .../validators/parcats/line/colorbar/_y.py | 1 - .../parcats/line/colorbar/_yanchor.py | 1 - .../validators/parcats/line/colorbar/_ypad.py | 1 - .../parcats/line/colorbar/tickfont/_color.py | 1 - .../parcats/line/colorbar/tickfont/_family.py | 1 - .../parcats/line/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../line/colorbar/tickformatstop/_enabled.py | 1 - .../line/colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../line/colorbar/tickformatstop/_value.py | 1 - .../parcats/line/colorbar/title/_side.py | 1 - .../parcats/line/colorbar/title/_text.py | 1 - .../line/colorbar/title/font/_color.py | 1 - .../line/colorbar/title/font/_family.py | 1 - .../parcats/line/colorbar/title/font/_size.py | 1 - .../validators/parcats/stream/_maxpoints.py | 1 - .../validators/parcats/stream/_token.py | 1 - .../validators/parcats/tickfont/_color.py | 1 - .../validators/parcats/tickfont/_family.py | 1 - .../validators/parcats/tickfont/_size.py | 1 - .../validators/parcoords/_customdata.py | 1 - .../validators/parcoords/_customdatasrc.py | 1 - .../plotly/validators/parcoords/_ids.py | 1 - .../plotly/validators/parcoords/_idssrc.py | 1 - .../validators/parcoords/_labelangle.py | 1 - .../plotly/validators/parcoords/_labelside.py | 1 - .../plotly/validators/parcoords/_meta.py | 1 - .../plotly/validators/parcoords/_metasrc.py | 1 - .../plotly/validators/parcoords/_name.py | 1 - .../plotly/validators/parcoords/_uid.py | 1 - .../validators/parcoords/_uirevision.py | 1 - .../plotly/validators/parcoords/_visible.py | 1 - .../parcoords/dimension/_constraintrange.py | 1 - .../validators/parcoords/dimension/_label.py | 1 - .../parcoords/dimension/_multiselect.py | 1 - .../validators/parcoords/dimension/_name.py | 1 - .../validators/parcoords/dimension/_range.py | 1 - .../parcoords/dimension/_templateitemname.py | 1 - .../parcoords/dimension/_tickformat.py | 1 - .../parcoords/dimension/_ticktext.py | 1 - .../parcoords/dimension/_ticktextsrc.py | 1 - .../parcoords/dimension/_tickvals.py | 1 - .../parcoords/dimension/_tickvalssrc.py | 1 - .../validators/parcoords/dimension/_values.py | 1 - .../parcoords/dimension/_valuessrc.py | 1 - .../parcoords/dimension/_visible.py | 1 - .../validators/parcoords/domain/_column.py | 1 - .../validators/parcoords/domain/_row.py | 1 - .../plotly/validators/parcoords/domain/_x.py | 1 - .../plotly/validators/parcoords/domain/_y.py | 1 - .../validators/parcoords/labelfont/_color.py | 1 - .../validators/parcoords/labelfont/_family.py | 1 - .../validators/parcoords/labelfont/_size.py | 1 - .../parcoords/line/_autocolorscale.py | 1 - .../validators/parcoords/line/_cauto.py | 1 - .../plotly/validators/parcoords/line/_cmax.py | 1 - .../plotly/validators/parcoords/line/_cmid.py | 1 - .../plotly/validators/parcoords/line/_cmin.py | 1 - .../validators/parcoords/line/_color.py | 1 - .../validators/parcoords/line/_coloraxis.py | 1 - .../validators/parcoords/line/_colorbar.py | 6 + .../validators/parcoords/line/_colorscale.py | 1 - .../validators/parcoords/line/_colorsrc.py | 1 - .../parcoords/line/_reversescale.py | 1 - .../validators/parcoords/line/_showscale.py | 1 - .../parcoords/line/colorbar/__init__.py | 2 + .../parcoords/line/colorbar/_bgcolor.py | 1 - .../parcoords/line/colorbar/_bordercolor.py | 1 - .../parcoords/line/colorbar/_borderwidth.py | 1 - .../parcoords/line/colorbar/_dtick.py | 1 - .../line/colorbar/_exponentformat.py | 1 - .../parcoords/line/colorbar/_len.py | 1 - .../parcoords/line/colorbar/_lenmode.py | 1 - .../parcoords/line/colorbar/_minexponent.py | 1 - .../parcoords/line/colorbar/_nticks.py | 1 - .../parcoords/line/colorbar/_outlinecolor.py | 1 - .../parcoords/line/colorbar/_outlinewidth.py | 1 - .../line/colorbar/_separatethousands.py | 1 - .../parcoords/line/colorbar/_showexponent.py | 1 - .../line/colorbar/_showticklabels.py | 1 - .../line/colorbar/_showtickprefix.py | 1 - .../line/colorbar/_showticksuffix.py | 1 - .../parcoords/line/colorbar/_thickness.py | 1 - .../parcoords/line/colorbar/_thicknessmode.py | 1 - .../parcoords/line/colorbar/_tick0.py | 1 - .../parcoords/line/colorbar/_tickangle.py | 1 - .../parcoords/line/colorbar/_tickcolor.py | 1 - .../parcoords/line/colorbar/_tickformat.py | 1 - .../line/colorbar/_ticklabeloverflow.py | 17 + .../line/colorbar/_ticklabelposition.py | 1 - .../parcoords/line/colorbar/_ticklen.py | 1 - .../parcoords/line/colorbar/_tickmode.py | 1 - .../parcoords/line/colorbar/_tickprefix.py | 1 - .../parcoords/line/colorbar/_ticks.py | 1 - .../parcoords/line/colorbar/_ticksuffix.py | 1 - .../parcoords/line/colorbar/_ticktext.py | 1 - .../parcoords/line/colorbar/_ticktextsrc.py | 1 - .../parcoords/line/colorbar/_tickvals.py | 1 - .../parcoords/line/colorbar/_tickvalssrc.py | 1 - .../parcoords/line/colorbar/_tickwidth.py | 1 - .../validators/parcoords/line/colorbar/_x.py | 1 - .../parcoords/line/colorbar/_xanchor.py | 1 - .../parcoords/line/colorbar/_xpad.py | 1 - .../validators/parcoords/line/colorbar/_y.py | 1 - .../parcoords/line/colorbar/_yanchor.py | 1 - .../parcoords/line/colorbar/_ypad.py | 1 - .../line/colorbar/tickfont/_color.py | 1 - .../line/colorbar/tickfont/_family.py | 1 - .../parcoords/line/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../line/colorbar/tickformatstop/_enabled.py | 1 - .../line/colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../line/colorbar/tickformatstop/_value.py | 1 - .../parcoords/line/colorbar/title/_side.py | 1 - .../parcoords/line/colorbar/title/_text.py | 1 - .../line/colorbar/title/font/_color.py | 1 - .../line/colorbar/title/font/_family.py | 1 - .../line/colorbar/title/font/_size.py | 1 - .../validators/parcoords/rangefont/_color.py | 1 - .../validators/parcoords/rangefont/_family.py | 1 - .../validators/parcoords/rangefont/_size.py | 1 - .../validators/parcoords/stream/_maxpoints.py | 1 - .../validators/parcoords/stream/_token.py | 1 - .../validators/parcoords/tickfont/_color.py | 1 - .../validators/parcoords/tickfont/_family.py | 1 - .../validators/parcoords/tickfont/_size.py | 1 - .../plotly/validators/pie/_automargin.py | 1 - .../plotly/validators/pie/_customdata.py | 1 - .../plotly/validators/pie/_customdatasrc.py | 1 - .../plotly/validators/pie/_direction.py | 1 - .../plotly/plotly/validators/pie/_dlabel.py | 1 - .../plotly/plotly/validators/pie/_hole.py | 1 - .../plotly/validators/pie/_hoverinfo.py | 1 - .../plotly/validators/pie/_hoverinfosrc.py | 1 - .../plotly/validators/pie/_hovertemplate.py | 1 - .../validators/pie/_hovertemplatesrc.py | 1 - .../plotly/validators/pie/_hovertext.py | 1 - .../plotly/validators/pie/_hovertextsrc.py | 1 - .../plotly/plotly/validators/pie/_ids.py | 1 - .../plotly/plotly/validators/pie/_idssrc.py | 1 - .../validators/pie/_insidetextorientation.py | 1 - .../plotly/plotly/validators/pie/_label0.py | 1 - .../plotly/plotly/validators/pie/_labels.py | 1 - .../plotly/validators/pie/_labelssrc.py | 1 - .../plotly/validators/pie/_legendgroup.py | 1 - .../plotly/plotly/validators/pie/_meta.py | 1 - .../plotly/plotly/validators/pie/_metasrc.py | 1 - .../plotly/plotly/validators/pie/_name.py | 1 - .../plotly/plotly/validators/pie/_opacity.py | 1 - .../plotly/plotly/validators/pie/_pull.py | 1 - .../plotly/plotly/validators/pie/_pullsrc.py | 1 - .../plotly/plotly/validators/pie/_rotation.py | 1 - .../plotly/validators/pie/_scalegroup.py | 1 - .../plotly/validators/pie/_showlegend.py | 1 - .../plotly/plotly/validators/pie/_sort.py | 1 - .../plotly/plotly/validators/pie/_text.py | 1 - .../plotly/plotly/validators/pie/_textinfo.py | 1 - .../plotly/validators/pie/_textposition.py | 1 - .../plotly/validators/pie/_textpositionsrc.py | 1 - .../plotly/plotly/validators/pie/_textsrc.py | 1 - .../plotly/validators/pie/_texttemplate.py | 1 - .../plotly/validators/pie/_texttemplatesrc.py | 1 - .../plotly/plotly/validators/pie/_uid.py | 1 - .../plotly/validators/pie/_uirevision.py | 1 - .../plotly/plotly/validators/pie/_values.py | 1 - .../plotly/validators/pie/_valuessrc.py | 1 - .../plotly/plotly/validators/pie/_visible.py | 1 - .../plotly/validators/pie/domain/_column.py | 1 - .../plotly/validators/pie/domain/_row.py | 1 - .../plotly/plotly/validators/pie/domain/_x.py | 1 - .../plotly/plotly/validators/pie/domain/_y.py | 1 - .../validators/pie/hoverlabel/_align.py | 1 - .../validators/pie/hoverlabel/_alignsrc.py | 1 - .../validators/pie/hoverlabel/_bgcolor.py | 1 - .../validators/pie/hoverlabel/_bgcolorsrc.py | 1 - .../validators/pie/hoverlabel/_bordercolor.py | 1 - .../pie/hoverlabel/_bordercolorsrc.py | 1 - .../validators/pie/hoverlabel/_namelength.py | 1 - .../pie/hoverlabel/_namelengthsrc.py | 1 - .../validators/pie/hoverlabel/font/_color.py | 1 - .../pie/hoverlabel/font/_colorsrc.py | 1 - .../validators/pie/hoverlabel/font/_family.py | 1 - .../pie/hoverlabel/font/_familysrc.py | 1 - .../validators/pie/hoverlabel/font/_size.py | 1 - .../pie/hoverlabel/font/_sizesrc.py | 1 - .../validators/pie/insidetextfont/_color.py | 1 - .../pie/insidetextfont/_colorsrc.py | 1 - .../validators/pie/insidetextfont/_family.py | 1 - .../pie/insidetextfont/_familysrc.py | 1 - .../validators/pie/insidetextfont/_size.py | 1 - .../validators/pie/insidetextfont/_sizesrc.py | 1 - .../plotly/validators/pie/marker/_colors.py | 1 - .../validators/pie/marker/_colorssrc.py | 1 - .../validators/pie/marker/line/_color.py | 1 - .../validators/pie/marker/line/_colorsrc.py | 1 - .../validators/pie/marker/line/_width.py | 1 - .../validators/pie/marker/line/_widthsrc.py | 1 - .../validators/pie/outsidetextfont/_color.py | 1 - .../pie/outsidetextfont/_colorsrc.py | 1 - .../validators/pie/outsidetextfont/_family.py | 1 - .../pie/outsidetextfont/_familysrc.py | 1 - .../validators/pie/outsidetextfont/_size.py | 1 - .../pie/outsidetextfont/_sizesrc.py | 1 - .../validators/pie/stream/_maxpoints.py | 1 - .../plotly/validators/pie/stream/_token.py | 1 - .../plotly/validators/pie/textfont/_color.py | 1 - .../validators/pie/textfont/_colorsrc.py | 1 - .../plotly/validators/pie/textfont/_family.py | 1 - .../validators/pie/textfont/_familysrc.py | 1 - .../plotly/validators/pie/textfont/_size.py | 1 - .../validators/pie/textfont/_sizesrc.py | 1 - .../plotly/validators/pie/title/_position.py | 1 - .../plotly/validators/pie/title/_text.py | 1 - .../validators/pie/title/font/_color.py | 1 - .../validators/pie/title/font/_colorsrc.py | 1 - .../validators/pie/title/font/_family.py | 1 - .../validators/pie/title/font/_familysrc.py | 1 - .../plotly/validators/pie/title/font/_size.py | 1 - .../validators/pie/title/font/_sizesrc.py | 1 - .../validators/pointcloud/_customdata.py | 1 - .../validators/pointcloud/_customdatasrc.py | 1 - .../validators/pointcloud/_hoverinfo.py | 1 - .../validators/pointcloud/_hoverinfosrc.py | 1 - .../plotly/validators/pointcloud/_ids.py | 1 - .../plotly/validators/pointcloud/_idssrc.py | 1 - .../plotly/validators/pointcloud/_indices.py | 1 - .../validators/pointcloud/_indicessrc.py | 1 - .../validators/pointcloud/_legendgroup.py | 1 - .../plotly/validators/pointcloud/_meta.py | 1 - .../plotly/validators/pointcloud/_metasrc.py | 1 - .../plotly/validators/pointcloud/_name.py | 1 - .../plotly/validators/pointcloud/_opacity.py | 1 - .../validators/pointcloud/_showlegend.py | 1 - .../plotly/validators/pointcloud/_text.py | 1 - .../plotly/validators/pointcloud/_textsrc.py | 1 - .../plotly/validators/pointcloud/_uid.py | 1 - .../validators/pointcloud/_uirevision.py | 1 - .../plotly/validators/pointcloud/_visible.py | 1 - .../plotly/plotly/validators/pointcloud/_x.py | 1 - .../plotly/validators/pointcloud/_xaxis.py | 1 - .../plotly/validators/pointcloud/_xbounds.py | 1 - .../validators/pointcloud/_xboundssrc.py | 1 - .../plotly/validators/pointcloud/_xsrc.py | 1 - .../plotly/validators/pointcloud/_xy.py | 1 - .../plotly/validators/pointcloud/_xysrc.py | 1 - .../plotly/plotly/validators/pointcloud/_y.py | 1 - .../plotly/validators/pointcloud/_yaxis.py | 1 - .../plotly/validators/pointcloud/_ybounds.py | 1 - .../validators/pointcloud/_yboundssrc.py | 1 - .../plotly/validators/pointcloud/_ysrc.py | 1 - .../pointcloud/hoverlabel/_align.py | 1 - .../pointcloud/hoverlabel/_alignsrc.py | 1 - .../pointcloud/hoverlabel/_bgcolor.py | 1 - .../pointcloud/hoverlabel/_bgcolorsrc.py | 1 - .../pointcloud/hoverlabel/_bordercolor.py | 1 - .../pointcloud/hoverlabel/_bordercolorsrc.py | 1 - .../pointcloud/hoverlabel/_namelength.py | 1 - .../pointcloud/hoverlabel/_namelengthsrc.py | 1 - .../pointcloud/hoverlabel/font/_color.py | 1 - .../pointcloud/hoverlabel/font/_colorsrc.py | 1 - .../pointcloud/hoverlabel/font/_family.py | 1 - .../pointcloud/hoverlabel/font/_familysrc.py | 1 - .../pointcloud/hoverlabel/font/_size.py | 1 - .../pointcloud/hoverlabel/font/_sizesrc.py | 1 - .../validators/pointcloud/marker/_blend.py | 1 - .../validators/pointcloud/marker/_color.py | 1 - .../validators/pointcloud/marker/_opacity.py | 1 - .../validators/pointcloud/marker/_sizemax.py | 1 - .../validators/pointcloud/marker/_sizemin.py | 1 - .../pointcloud/marker/border/_arearatio.py | 1 - .../pointcloud/marker/border/_color.py | 1 - .../pointcloud/stream/_maxpoints.py | 1 - .../validators/pointcloud/stream/_token.py | 1 - .../plotly/validators/sankey/_arrangement.py | 1 - .../plotly/validators/sankey/_customdata.py | 1 - .../validators/sankey/_customdatasrc.py | 1 - .../plotly/validators/sankey/_hoverinfo.py | 1 - .../plotly/plotly/validators/sankey/_ids.py | 1 - .../plotly/validators/sankey/_idssrc.py | 1 - .../plotly/plotly/validators/sankey/_meta.py | 1 - .../plotly/validators/sankey/_metasrc.py | 1 - .../plotly/plotly/validators/sankey/_name.py | 1 - .../plotly/validators/sankey/_orientation.py | 1 - .../validators/sankey/_selectedpoints.py | 1 - .../plotly/plotly/validators/sankey/_uid.py | 1 - .../plotly/validators/sankey/_uirevision.py | 1 - .../plotly/validators/sankey/_valueformat.py | 1 - .../plotly/validators/sankey/_valuesuffix.py | 1 - .../plotly/validators/sankey/_visible.py | 1 - .../validators/sankey/domain/_column.py | 1 - .../plotly/validators/sankey/domain/_row.py | 1 - .../plotly/validators/sankey/domain/_x.py | 1 - .../plotly/validators/sankey/domain/_y.py | 1 - .../validators/sankey/hoverlabel/_align.py | 1 - .../validators/sankey/hoverlabel/_alignsrc.py | 1 - .../validators/sankey/hoverlabel/_bgcolor.py | 1 - .../sankey/hoverlabel/_bgcolorsrc.py | 1 - .../sankey/hoverlabel/_bordercolor.py | 1 - .../sankey/hoverlabel/_bordercolorsrc.py | 1 - .../sankey/hoverlabel/_namelength.py | 1 - .../sankey/hoverlabel/_namelengthsrc.py | 1 - .../sankey/hoverlabel/font/_color.py | 1 - .../sankey/hoverlabel/font/_colorsrc.py | 1 - .../sankey/hoverlabel/font/_family.py | 1 - .../sankey/hoverlabel/font/_familysrc.py | 1 - .../sankey/hoverlabel/font/_size.py | 1 - .../sankey/hoverlabel/font/_sizesrc.py | 1 - .../plotly/validators/sankey/link/_color.py | 1 - .../validators/sankey/link/_colorsrc.py | 1 - .../validators/sankey/link/_customdata.py | 1 - .../validators/sankey/link/_customdatasrc.py | 1 - .../validators/sankey/link/_hoverinfo.py | 1 - .../validators/sankey/link/_hovertemplate.py | 1 - .../sankey/link/_hovertemplatesrc.py | 1 - .../plotly/validators/sankey/link/_label.py | 1 - .../validators/sankey/link/_labelsrc.py | 1 - .../plotly/validators/sankey/link/_source.py | 1 - .../validators/sankey/link/_sourcesrc.py | 1 - .../plotly/validators/sankey/link/_target.py | 1 - .../validators/sankey/link/_targetsrc.py | 1 - .../plotly/validators/sankey/link/_value.py | 1 - .../validators/sankey/link/_valuesrc.py | 1 - .../sankey/link/colorscale/_cmax.py | 1 - .../sankey/link/colorscale/_cmin.py | 1 - .../sankey/link/colorscale/_colorscale.py | 1 - .../sankey/link/colorscale/_label.py | 1 - .../sankey/link/colorscale/_name.py | 1 - .../link/colorscale/_templateitemname.py | 1 - .../sankey/link/hoverlabel/_align.py | 1 - .../sankey/link/hoverlabel/_alignsrc.py | 1 - .../sankey/link/hoverlabel/_bgcolor.py | 1 - .../sankey/link/hoverlabel/_bgcolorsrc.py | 1 - .../sankey/link/hoverlabel/_bordercolor.py | 1 - .../sankey/link/hoverlabel/_bordercolorsrc.py | 1 - .../sankey/link/hoverlabel/_namelength.py | 1 - .../sankey/link/hoverlabel/_namelengthsrc.py | 1 - .../sankey/link/hoverlabel/font/_color.py | 1 - .../sankey/link/hoverlabel/font/_colorsrc.py | 1 - .../sankey/link/hoverlabel/font/_family.py | 1 - .../sankey/link/hoverlabel/font/_familysrc.py | 1 - .../sankey/link/hoverlabel/font/_size.py | 1 - .../sankey/link/hoverlabel/font/_sizesrc.py | 1 - .../validators/sankey/link/line/_color.py | 1 - .../validators/sankey/link/line/_colorsrc.py | 1 - .../validators/sankey/link/line/_width.py | 1 - .../validators/sankey/link/line/_widthsrc.py | 1 - .../plotly/validators/sankey/node/_color.py | 1 - .../validators/sankey/node/_colorsrc.py | 1 - .../validators/sankey/node/_customdata.py | 1 - .../validators/sankey/node/_customdatasrc.py | 1 - .../plotly/validators/sankey/node/_groups.py | 1 - .../validators/sankey/node/_hoverinfo.py | 1 - .../validators/sankey/node/_hovertemplate.py | 1 - .../sankey/node/_hovertemplatesrc.py | 1 - .../plotly/validators/sankey/node/_label.py | 1 - .../validators/sankey/node/_labelsrc.py | 1 - .../plotly/validators/sankey/node/_pad.py | 1 - .../validators/sankey/node/_thickness.py | 1 - .../plotly/validators/sankey/node/_x.py | 1 - .../plotly/validators/sankey/node/_xsrc.py | 1 - .../plotly/validators/sankey/node/_y.py | 1 - .../plotly/validators/sankey/node/_ysrc.py | 1 - .../sankey/node/hoverlabel/_align.py | 1 - .../sankey/node/hoverlabel/_alignsrc.py | 1 - .../sankey/node/hoverlabel/_bgcolor.py | 1 - .../sankey/node/hoverlabel/_bgcolorsrc.py | 1 - .../sankey/node/hoverlabel/_bordercolor.py | 1 - .../sankey/node/hoverlabel/_bordercolorsrc.py | 1 - .../sankey/node/hoverlabel/_namelength.py | 1 - .../sankey/node/hoverlabel/_namelengthsrc.py | 1 - .../sankey/node/hoverlabel/font/_color.py | 1 - .../sankey/node/hoverlabel/font/_colorsrc.py | 1 - .../sankey/node/hoverlabel/font/_family.py | 1 - .../sankey/node/hoverlabel/font/_familysrc.py | 1 - .../sankey/node/hoverlabel/font/_size.py | 1 - .../sankey/node/hoverlabel/font/_sizesrc.py | 1 - .../validators/sankey/node/line/_color.py | 1 - .../validators/sankey/node/line/_colorsrc.py | 1 - .../validators/sankey/node/line/_width.py | 1 - .../validators/sankey/node/line/_widthsrc.py | 1 - .../validators/sankey/stream/_maxpoints.py | 1 - .../plotly/validators/sankey/stream/_token.py | 1 - .../validators/sankey/textfont/_color.py | 1 - .../validators/sankey/textfont/_family.py | 1 - .../validators/sankey/textfont/_size.py | 1 - .../plotly/validators/scatter/__init__.py | 12 +- .../plotly/validators/scatter/_cliponaxis.py | 1 - .../plotly/validators/scatter/_connectgaps.py | 1 - .../plotly/validators/scatter/_customdata.py | 1 - .../validators/scatter/_customdatasrc.py | 1 - .../plotly/plotly/validators/scatter/_dx.py | 1 - .../plotly/plotly/validators/scatter/_dy.py | 1 - .../plotly/plotly/validators/scatter/_fill.py | 1 - .../plotly/validators/scatter/_fillcolor.py | 1 - .../plotly/validators/scatter/_groupnorm.py | 1 - .../plotly/validators/scatter/_hoverinfo.py | 1 - .../validators/scatter/_hoverinfosrc.py | 1 - .../plotly/validators/scatter/_hoveron.py | 1 - .../validators/scatter/_hovertemplate.py | 1 - .../validators/scatter/_hovertemplatesrc.py | 1 - .../plotly/validators/scatter/_hovertext.py | 1 - .../validators/scatter/_hovertextsrc.py | 1 - .../plotly/plotly/validators/scatter/_ids.py | 1 - .../plotly/validators/scatter/_idssrc.py | 1 - .../plotly/validators/scatter/_legendgroup.py | 1 - .../plotly/plotly/validators/scatter/_meta.py | 1 - .../plotly/validators/scatter/_metasrc.py | 1 - .../plotly/plotly/validators/scatter/_mode.py | 1 - .../plotly/plotly/validators/scatter/_name.py | 1 - .../plotly/validators/scatter/_opacity.py | 1 - .../plotly/validators/scatter/_orientation.py | 1 - .../plotly/plotly/validators/scatter/_r.py | 12 - .../plotly/plotly/validators/scatter/_rsrc.py | 12 - .../validators/scatter/_selectedpoints.py | 1 - .../plotly/validators/scatter/_showlegend.py | 1 - .../plotly/validators/scatter/_stackgaps.py | 1 - .../plotly/validators/scatter/_stackgroup.py | 1 - .../plotly/plotly/validators/scatter/_t.py | 12 - .../plotly/plotly/validators/scatter/_text.py | 1 - .../validators/scatter/_textposition.py | 1 - .../validators/scatter/_textpositionsrc.py | 1 - .../plotly/validators/scatter/_textsrc.py | 1 - .../validators/scatter/_texttemplate.py | 1 - .../validators/scatter/_texttemplatesrc.py | 1 - .../plotly/plotly/validators/scatter/_tsrc.py | 12 - .../plotly/plotly/validators/scatter/_uid.py | 1 - .../plotly/validators/scatter/_uirevision.py | 1 - .../plotly/validators/scatter/_visible.py | 1 - .../plotly/plotly/validators/scatter/_x.py | 1 - .../plotly/plotly/validators/scatter/_x0.py | 1 - .../plotly/validators/scatter/_xaxis.py | 1 - .../plotly/validators/scatter/_xcalendar.py | 1 - .../validators/scatter/_xhoverformat.py | 11 + .../plotly/validators/scatter/_xperiod.py | 1 - .../plotly/validators/scatter/_xperiod0.py | 1 - .../validators/scatter/_xperiodalignment.py | 1 - .../plotly/plotly/validators/scatter/_xsrc.py | 1 - .../plotly/plotly/validators/scatter/_y.py | 1 - .../plotly/plotly/validators/scatter/_y0.py | 1 - .../plotly/validators/scatter/_yaxis.py | 1 - .../plotly/validators/scatter/_ycalendar.py | 1 - .../validators/scatter/_yhoverformat.py | 11 + .../plotly/validators/scatter/_yperiod.py | 1 - .../plotly/validators/scatter/_yperiod0.py | 1 - .../validators/scatter/_yperiodalignment.py | 1 - .../plotly/plotly/validators/scatter/_ysrc.py | 1 - .../validators/scatter/error_x/_array.py | 1 - .../validators/scatter/error_x/_arrayminus.py | 1 - .../scatter/error_x/_arrayminussrc.py | 1 - .../validators/scatter/error_x/_arraysrc.py | 1 - .../validators/scatter/error_x/_color.py | 1 - .../scatter/error_x/_copy_ystyle.py | 1 - .../validators/scatter/error_x/_symmetric.py | 1 - .../validators/scatter/error_x/_thickness.py | 1 - .../validators/scatter/error_x/_traceref.py | 1 - .../scatter/error_x/_tracerefminus.py | 1 - .../validators/scatter/error_x/_type.py | 1 - .../validators/scatter/error_x/_value.py | 1 - .../validators/scatter/error_x/_valueminus.py | 1 - .../validators/scatter/error_x/_visible.py | 1 - .../validators/scatter/error_x/_width.py | 1 - .../validators/scatter/error_y/_array.py | 1 - .../validators/scatter/error_y/_arrayminus.py | 1 - .../scatter/error_y/_arrayminussrc.py | 1 - .../validators/scatter/error_y/_arraysrc.py | 1 - .../validators/scatter/error_y/_color.py | 1 - .../validators/scatter/error_y/_symmetric.py | 1 - .../validators/scatter/error_y/_thickness.py | 1 - .../validators/scatter/error_y/_traceref.py | 1 - .../scatter/error_y/_tracerefminus.py | 1 - .../validators/scatter/error_y/_type.py | 1 - .../validators/scatter/error_y/_value.py | 1 - .../validators/scatter/error_y/_valueminus.py | 1 - .../validators/scatter/error_y/_visible.py | 1 - .../validators/scatter/error_y/_width.py | 1 - .../validators/scatter/hoverlabel/_align.py | 1 - .../scatter/hoverlabel/_alignsrc.py | 1 - .../validators/scatter/hoverlabel/_bgcolor.py | 1 - .../scatter/hoverlabel/_bgcolorsrc.py | 1 - .../scatter/hoverlabel/_bordercolor.py | 1 - .../scatter/hoverlabel/_bordercolorsrc.py | 1 - .../scatter/hoverlabel/_namelength.py | 1 - .../scatter/hoverlabel/_namelengthsrc.py | 1 - .../scatter/hoverlabel/font/_color.py | 1 - .../scatter/hoverlabel/font/_colorsrc.py | 1 - .../scatter/hoverlabel/font/_family.py | 1 - .../scatter/hoverlabel/font/_familysrc.py | 1 - .../scatter/hoverlabel/font/_size.py | 1 - .../scatter/hoverlabel/font/_sizesrc.py | 1 - .../plotly/validators/scatter/line/_color.py | 1 - .../plotly/validators/scatter/line/_dash.py | 1 - .../plotly/validators/scatter/line/_shape.py | 1 - .../validators/scatter/line/_simplify.py | 1 - .../validators/scatter/line/_smoothing.py | 1 - .../plotly/validators/scatter/line/_width.py | 1 - .../scatter/marker/_autocolorscale.py | 1 - .../validators/scatter/marker/_cauto.py | 1 - .../plotly/validators/scatter/marker/_cmax.py | 1 - .../plotly/validators/scatter/marker/_cmid.py | 1 - .../plotly/validators/scatter/marker/_cmin.py | 1 - .../validators/scatter/marker/_color.py | 1 - .../validators/scatter/marker/_coloraxis.py | 1 - .../validators/scatter/marker/_colorbar.py | 6 + .../validators/scatter/marker/_colorscale.py | 1 - .../validators/scatter/marker/_colorsrc.py | 1 - .../scatter/marker/_maxdisplayed.py | 1 - .../validators/scatter/marker/_opacity.py | 1 - .../validators/scatter/marker/_opacitysrc.py | 1 - .../scatter/marker/_reversescale.py | 1 - .../validators/scatter/marker/_showscale.py | 1 - .../plotly/validators/scatter/marker/_size.py | 1 - .../validators/scatter/marker/_sizemin.py | 1 - .../validators/scatter/marker/_sizemode.py | 1 - .../validators/scatter/marker/_sizeref.py | 1 - .../validators/scatter/marker/_sizesrc.py | 1 - .../validators/scatter/marker/_symbol.py | 1 - .../validators/scatter/marker/_symbolsrc.py | 1 - .../scatter/marker/colorbar/__init__.py | 2 + .../scatter/marker/colorbar/_bgcolor.py | 1 - .../scatter/marker/colorbar/_bordercolor.py | 1 - .../scatter/marker/colorbar/_borderwidth.py | 1 - .../scatter/marker/colorbar/_dtick.py | 1 - .../marker/colorbar/_exponentformat.py | 1 - .../scatter/marker/colorbar/_len.py | 1 - .../scatter/marker/colorbar/_lenmode.py | 1 - .../scatter/marker/colorbar/_minexponent.py | 1 - .../scatter/marker/colorbar/_nticks.py | 1 - .../scatter/marker/colorbar/_outlinecolor.py | 1 - .../scatter/marker/colorbar/_outlinewidth.py | 1 - .../marker/colorbar/_separatethousands.py | 1 - .../scatter/marker/colorbar/_showexponent.py | 1 - .../marker/colorbar/_showticklabels.py | 1 - .../marker/colorbar/_showtickprefix.py | 1 - .../marker/colorbar/_showticksuffix.py | 1 - .../scatter/marker/colorbar/_thickness.py | 1 - .../scatter/marker/colorbar/_thicknessmode.py | 1 - .../scatter/marker/colorbar/_tick0.py | 1 - .../scatter/marker/colorbar/_tickangle.py | 1 - .../scatter/marker/colorbar/_tickcolor.py | 1 - .../scatter/marker/colorbar/_tickformat.py | 1 - .../marker/colorbar/_ticklabeloverflow.py | 17 + .../marker/colorbar/_ticklabelposition.py | 1 - .../scatter/marker/colorbar/_ticklen.py | 1 - .../scatter/marker/colorbar/_tickmode.py | 1 - .../scatter/marker/colorbar/_tickprefix.py | 1 - .../scatter/marker/colorbar/_ticks.py | 1 - .../scatter/marker/colorbar/_ticksuffix.py | 1 - .../scatter/marker/colorbar/_ticktext.py | 1 - .../scatter/marker/colorbar/_ticktextsrc.py | 1 - .../scatter/marker/colorbar/_tickvals.py | 1 - .../scatter/marker/colorbar/_tickvalssrc.py | 1 - .../scatter/marker/colorbar/_tickwidth.py | 1 - .../validators/scatter/marker/colorbar/_x.py | 1 - .../scatter/marker/colorbar/_xanchor.py | 1 - .../scatter/marker/colorbar/_xpad.py | 1 - .../validators/scatter/marker/colorbar/_y.py | 1 - .../scatter/marker/colorbar/_yanchor.py | 1 - .../scatter/marker/colorbar/_ypad.py | 1 - .../marker/colorbar/tickfont/_color.py | 1 - .../marker/colorbar/tickfont/_family.py | 1 - .../scatter/marker/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../marker/colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../marker/colorbar/tickformatstop/_value.py | 1 - .../scatter/marker/colorbar/title/_side.py | 1 - .../scatter/marker/colorbar/title/_text.py | 1 - .../marker/colorbar/title/font/_color.py | 1 - .../marker/colorbar/title/font/_family.py | 1 - .../marker/colorbar/title/font/_size.py | 1 - .../scatter/marker/gradient/_color.py | 1 - .../scatter/marker/gradient/_colorsrc.py | 1 - .../scatter/marker/gradient/_type.py | 1 - .../scatter/marker/gradient/_typesrc.py | 1 - .../scatter/marker/line/_autocolorscale.py | 1 - .../validators/scatter/marker/line/_cauto.py | 1 - .../validators/scatter/marker/line/_cmax.py | 1 - .../validators/scatter/marker/line/_cmid.py | 1 - .../validators/scatter/marker/line/_cmin.py | 1 - .../validators/scatter/marker/line/_color.py | 1 - .../scatter/marker/line/_coloraxis.py | 1 - .../scatter/marker/line/_colorscale.py | 1 - .../scatter/marker/line/_colorsrc.py | 1 - .../scatter/marker/line/_reversescale.py | 1 - .../validators/scatter/marker/line/_width.py | 1 - .../scatter/marker/line/_widthsrc.py | 1 - .../scatter/selected/marker/_color.py | 1 - .../scatter/selected/marker/_opacity.py | 1 - .../scatter/selected/marker/_size.py | 1 - .../scatter/selected/textfont/_color.py | 1 - .../validators/scatter/stream/_maxpoints.py | 1 - .../validators/scatter/stream/_token.py | 1 - .../validators/scatter/textfont/_color.py | 1 - .../validators/scatter/textfont/_colorsrc.py | 1 - .../validators/scatter/textfont/_family.py | 1 - .../validators/scatter/textfont/_familysrc.py | 1 - .../validators/scatter/textfont/_size.py | 1 - .../validators/scatter/textfont/_sizesrc.py | 1 - .../scatter/unselected/marker/_color.py | 1 - .../scatter/unselected/marker/_opacity.py | 1 - .../scatter/unselected/marker/_size.py | 1 - .../scatter/unselected/textfont/_color.py | 1 - .../plotly/validators/scatter3d/__init__.py | 6 + .../validators/scatter3d/_connectgaps.py | 1 - .../validators/scatter3d/_customdata.py | 1 - .../validators/scatter3d/_customdatasrc.py | 1 - .../plotly/validators/scatter3d/_hoverinfo.py | 1 - .../validators/scatter3d/_hoverinfosrc.py | 1 - .../validators/scatter3d/_hovertemplate.py | 1 - .../validators/scatter3d/_hovertemplatesrc.py | 1 - .../plotly/validators/scatter3d/_hovertext.py | 1 - .../validators/scatter3d/_hovertextsrc.py | 1 - .../plotly/validators/scatter3d/_ids.py | 1 - .../plotly/validators/scatter3d/_idssrc.py | 1 - .../validators/scatter3d/_legendgroup.py | 1 - .../plotly/validators/scatter3d/_meta.py | 1 - .../plotly/validators/scatter3d/_metasrc.py | 1 - .../plotly/validators/scatter3d/_mode.py | 1 - .../plotly/validators/scatter3d/_name.py | 1 - .../plotly/validators/scatter3d/_opacity.py | 1 - .../plotly/validators/scatter3d/_scene.py | 1 - .../validators/scatter3d/_showlegend.py | 1 - .../validators/scatter3d/_surfaceaxis.py | 1 - .../validators/scatter3d/_surfacecolor.py | 1 - .../plotly/validators/scatter3d/_text.py | 1 - .../validators/scatter3d/_textposition.py | 1 - .../validators/scatter3d/_textpositionsrc.py | 1 - .../plotly/validators/scatter3d/_textsrc.py | 1 - .../validators/scatter3d/_texttemplate.py | 1 - .../validators/scatter3d/_texttemplatesrc.py | 1 - .../plotly/validators/scatter3d/_uid.py | 1 - .../validators/scatter3d/_uirevision.py | 1 - .../plotly/validators/scatter3d/_visible.py | 1 - .../plotly/plotly/validators/scatter3d/_x.py | 1 - .../plotly/validators/scatter3d/_xcalendar.py | 1 - .../validators/scatter3d/_xhoverformat.py | 11 + .../plotly/validators/scatter3d/_xsrc.py | 1 - .../plotly/plotly/validators/scatter3d/_y.py | 1 - .../plotly/validators/scatter3d/_ycalendar.py | 1 - .../validators/scatter3d/_yhoverformat.py | 11 + .../plotly/validators/scatter3d/_ysrc.py | 1 - .../plotly/plotly/validators/scatter3d/_z.py | 1 - .../plotly/validators/scatter3d/_zcalendar.py | 1 - .../validators/scatter3d/_zhoverformat.py | 11 + .../plotly/validators/scatter3d/_zsrc.py | 1 - .../validators/scatter3d/error_x/_array.py | 1 - .../scatter3d/error_x/_arrayminus.py | 1 - .../scatter3d/error_x/_arrayminussrc.py | 1 - .../validators/scatter3d/error_x/_arraysrc.py | 1 - .../validators/scatter3d/error_x/_color.py | 1 - .../scatter3d/error_x/_copy_zstyle.py | 1 - .../scatter3d/error_x/_symmetric.py | 1 - .../scatter3d/error_x/_thickness.py | 1 - .../validators/scatter3d/error_x/_traceref.py | 1 - .../scatter3d/error_x/_tracerefminus.py | 1 - .../validators/scatter3d/error_x/_type.py | 1 - .../validators/scatter3d/error_x/_value.py | 1 - .../scatter3d/error_x/_valueminus.py | 1 - .../validators/scatter3d/error_x/_visible.py | 1 - .../validators/scatter3d/error_x/_width.py | 1 - .../validators/scatter3d/error_y/_array.py | 1 - .../scatter3d/error_y/_arrayminus.py | 1 - .../scatter3d/error_y/_arrayminussrc.py | 1 - .../validators/scatter3d/error_y/_arraysrc.py | 1 - .../validators/scatter3d/error_y/_color.py | 1 - .../scatter3d/error_y/_copy_zstyle.py | 1 - .../scatter3d/error_y/_symmetric.py | 1 - .../scatter3d/error_y/_thickness.py | 1 - .../validators/scatter3d/error_y/_traceref.py | 1 - .../scatter3d/error_y/_tracerefminus.py | 1 - .../validators/scatter3d/error_y/_type.py | 1 - .../validators/scatter3d/error_y/_value.py | 1 - .../scatter3d/error_y/_valueminus.py | 1 - .../validators/scatter3d/error_y/_visible.py | 1 - .../validators/scatter3d/error_y/_width.py | 1 - .../validators/scatter3d/error_z/_array.py | 1 - .../scatter3d/error_z/_arrayminus.py | 1 - .../scatter3d/error_z/_arrayminussrc.py | 1 - .../validators/scatter3d/error_z/_arraysrc.py | 1 - .../validators/scatter3d/error_z/_color.py | 1 - .../scatter3d/error_z/_symmetric.py | 1 - .../scatter3d/error_z/_thickness.py | 1 - .../validators/scatter3d/error_z/_traceref.py | 1 - .../scatter3d/error_z/_tracerefminus.py | 1 - .../validators/scatter3d/error_z/_type.py | 1 - .../validators/scatter3d/error_z/_value.py | 1 - .../scatter3d/error_z/_valueminus.py | 1 - .../validators/scatter3d/error_z/_visible.py | 1 - .../validators/scatter3d/error_z/_width.py | 1 - .../validators/scatter3d/hoverlabel/_align.py | 1 - .../scatter3d/hoverlabel/_alignsrc.py | 1 - .../scatter3d/hoverlabel/_bgcolor.py | 1 - .../scatter3d/hoverlabel/_bgcolorsrc.py | 1 - .../scatter3d/hoverlabel/_bordercolor.py | 1 - .../scatter3d/hoverlabel/_bordercolorsrc.py | 1 - .../scatter3d/hoverlabel/_namelength.py | 1 - .../scatter3d/hoverlabel/_namelengthsrc.py | 1 - .../scatter3d/hoverlabel/font/_color.py | 1 - .../scatter3d/hoverlabel/font/_colorsrc.py | 1 - .../scatter3d/hoverlabel/font/_family.py | 1 - .../scatter3d/hoverlabel/font/_familysrc.py | 1 - .../scatter3d/hoverlabel/font/_size.py | 1 - .../scatter3d/hoverlabel/font/_sizesrc.py | 1 - .../scatter3d/line/_autocolorscale.py | 1 - .../validators/scatter3d/line/_cauto.py | 1 - .../plotly/validators/scatter3d/line/_cmax.py | 1 - .../plotly/validators/scatter3d/line/_cmid.py | 1 - .../plotly/validators/scatter3d/line/_cmin.py | 1 - .../validators/scatter3d/line/_color.py | 1 - .../validators/scatter3d/line/_coloraxis.py | 1 - .../validators/scatter3d/line/_colorbar.py | 6 + .../validators/scatter3d/line/_colorscale.py | 1 - .../validators/scatter3d/line/_colorsrc.py | 1 - .../plotly/validators/scatter3d/line/_dash.py | 1 - .../scatter3d/line/_reversescale.py | 1 - .../validators/scatter3d/line/_showscale.py | 1 - .../validators/scatter3d/line/_width.py | 1 - .../scatter3d/line/colorbar/__init__.py | 2 + .../scatter3d/line/colorbar/_bgcolor.py | 1 - .../scatter3d/line/colorbar/_bordercolor.py | 1 - .../scatter3d/line/colorbar/_borderwidth.py | 1 - .../scatter3d/line/colorbar/_dtick.py | 1 - .../line/colorbar/_exponentformat.py | 1 - .../scatter3d/line/colorbar/_len.py | 1 - .../scatter3d/line/colorbar/_lenmode.py | 1 - .../scatter3d/line/colorbar/_minexponent.py | 1 - .../scatter3d/line/colorbar/_nticks.py | 1 - .../scatter3d/line/colorbar/_outlinecolor.py | 1 - .../scatter3d/line/colorbar/_outlinewidth.py | 1 - .../line/colorbar/_separatethousands.py | 1 - .../scatter3d/line/colorbar/_showexponent.py | 1 - .../line/colorbar/_showticklabels.py | 1 - .../line/colorbar/_showtickprefix.py | 1 - .../line/colorbar/_showticksuffix.py | 1 - .../scatter3d/line/colorbar/_thickness.py | 1 - .../scatter3d/line/colorbar/_thicknessmode.py | 1 - .../scatter3d/line/colorbar/_tick0.py | 1 - .../scatter3d/line/colorbar/_tickangle.py | 1 - .../scatter3d/line/colorbar/_tickcolor.py | 1 - .../scatter3d/line/colorbar/_tickformat.py | 1 - .../line/colorbar/_ticklabeloverflow.py | 17 + .../line/colorbar/_ticklabelposition.py | 1 - .../scatter3d/line/colorbar/_ticklen.py | 1 - .../scatter3d/line/colorbar/_tickmode.py | 1 - .../scatter3d/line/colorbar/_tickprefix.py | 1 - .../scatter3d/line/colorbar/_ticks.py | 1 - .../scatter3d/line/colorbar/_ticksuffix.py | 1 - .../scatter3d/line/colorbar/_ticktext.py | 1 - .../scatter3d/line/colorbar/_ticktextsrc.py | 1 - .../scatter3d/line/colorbar/_tickvals.py | 1 - .../scatter3d/line/colorbar/_tickvalssrc.py | 1 - .../scatter3d/line/colorbar/_tickwidth.py | 1 - .../validators/scatter3d/line/colorbar/_x.py | 1 - .../scatter3d/line/colorbar/_xanchor.py | 1 - .../scatter3d/line/colorbar/_xpad.py | 1 - .../validators/scatter3d/line/colorbar/_y.py | 1 - .../scatter3d/line/colorbar/_yanchor.py | 1 - .../scatter3d/line/colorbar/_ypad.py | 1 - .../line/colorbar/tickfont/_color.py | 1 - .../line/colorbar/tickfont/_family.py | 1 - .../scatter3d/line/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../line/colorbar/tickformatstop/_enabled.py | 1 - .../line/colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../line/colorbar/tickformatstop/_value.py | 1 - .../scatter3d/line/colorbar/title/_side.py | 1 - .../scatter3d/line/colorbar/title/_text.py | 1 - .../line/colorbar/title/font/_color.py | 1 - .../line/colorbar/title/font/_family.py | 1 - .../line/colorbar/title/font/_size.py | 1 - .../scatter3d/marker/_autocolorscale.py | 1 - .../validators/scatter3d/marker/_cauto.py | 1 - .../validators/scatter3d/marker/_cmax.py | 1 - .../validators/scatter3d/marker/_cmid.py | 1 - .../validators/scatter3d/marker/_cmin.py | 1 - .../validators/scatter3d/marker/_color.py | 1 - .../validators/scatter3d/marker/_coloraxis.py | 1 - .../validators/scatter3d/marker/_colorbar.py | 6 + .../scatter3d/marker/_colorscale.py | 1 - .../validators/scatter3d/marker/_colorsrc.py | 1 - .../validators/scatter3d/marker/_opacity.py | 1 - .../scatter3d/marker/_reversescale.py | 1 - .../validators/scatter3d/marker/_showscale.py | 1 - .../validators/scatter3d/marker/_size.py | 1 - .../validators/scatter3d/marker/_sizemin.py | 1 - .../validators/scatter3d/marker/_sizemode.py | 1 - .../validators/scatter3d/marker/_sizeref.py | 1 - .../validators/scatter3d/marker/_sizesrc.py | 1 - .../validators/scatter3d/marker/_symbol.py | 1 - .../validators/scatter3d/marker/_symbolsrc.py | 1 - .../scatter3d/marker/colorbar/__init__.py | 2 + .../scatter3d/marker/colorbar/_bgcolor.py | 1 - .../scatter3d/marker/colorbar/_bordercolor.py | 1 - .../scatter3d/marker/colorbar/_borderwidth.py | 1 - .../scatter3d/marker/colorbar/_dtick.py | 1 - .../marker/colorbar/_exponentformat.py | 1 - .../scatter3d/marker/colorbar/_len.py | 1 - .../scatter3d/marker/colorbar/_lenmode.py | 1 - .../scatter3d/marker/colorbar/_minexponent.py | 1 - .../scatter3d/marker/colorbar/_nticks.py | 1 - .../marker/colorbar/_outlinecolor.py | 1 - .../marker/colorbar/_outlinewidth.py | 1 - .../marker/colorbar/_separatethousands.py | 1 - .../marker/colorbar/_showexponent.py | 1 - .../marker/colorbar/_showticklabels.py | 1 - .../marker/colorbar/_showtickprefix.py | 1 - .../marker/colorbar/_showticksuffix.py | 1 - .../scatter3d/marker/colorbar/_thickness.py | 1 - .../marker/colorbar/_thicknessmode.py | 1 - .../scatter3d/marker/colorbar/_tick0.py | 1 - .../scatter3d/marker/colorbar/_tickangle.py | 1 - .../scatter3d/marker/colorbar/_tickcolor.py | 1 - .../scatter3d/marker/colorbar/_tickformat.py | 1 - .../marker/colorbar/_ticklabeloverflow.py | 17 + .../marker/colorbar/_ticklabelposition.py | 1 - .../scatter3d/marker/colorbar/_ticklen.py | 1 - .../scatter3d/marker/colorbar/_tickmode.py | 1 - .../scatter3d/marker/colorbar/_tickprefix.py | 1 - .../scatter3d/marker/colorbar/_ticks.py | 1 - .../scatter3d/marker/colorbar/_ticksuffix.py | 1 - .../scatter3d/marker/colorbar/_ticktext.py | 1 - .../scatter3d/marker/colorbar/_ticktextsrc.py | 1 - .../scatter3d/marker/colorbar/_tickvals.py | 1 - .../scatter3d/marker/colorbar/_tickvalssrc.py | 1 - .../scatter3d/marker/colorbar/_tickwidth.py | 1 - .../scatter3d/marker/colorbar/_x.py | 1 - .../scatter3d/marker/colorbar/_xanchor.py | 1 - .../scatter3d/marker/colorbar/_xpad.py | 1 - .../scatter3d/marker/colorbar/_y.py | 1 - .../scatter3d/marker/colorbar/_yanchor.py | 1 - .../scatter3d/marker/colorbar/_ypad.py | 1 - .../marker/colorbar/tickfont/_color.py | 1 - .../marker/colorbar/tickfont/_family.py | 1 - .../marker/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../marker/colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../marker/colorbar/tickformatstop/_value.py | 1 - .../scatter3d/marker/colorbar/title/_side.py | 1 - .../scatter3d/marker/colorbar/title/_text.py | 1 - .../marker/colorbar/title/font/_color.py | 1 - .../marker/colorbar/title/font/_family.py | 1 - .../marker/colorbar/title/font/_size.py | 1 - .../scatter3d/marker/line/_autocolorscale.py | 1 - .../scatter3d/marker/line/_cauto.py | 1 - .../validators/scatter3d/marker/line/_cmax.py | 1 - .../validators/scatter3d/marker/line/_cmid.py | 1 - .../validators/scatter3d/marker/line/_cmin.py | 1 - .../scatter3d/marker/line/_color.py | 1 - .../scatter3d/marker/line/_coloraxis.py | 1 - .../scatter3d/marker/line/_colorscale.py | 1 - .../scatter3d/marker/line/_colorsrc.py | 1 - .../scatter3d/marker/line/_reversescale.py | 1 - .../scatter3d/marker/line/_width.py | 1 - .../scatter3d/projection/x/_opacity.py | 1 - .../scatter3d/projection/x/_scale.py | 1 - .../scatter3d/projection/x/_show.py | 1 - .../scatter3d/projection/y/_opacity.py | 1 - .../scatter3d/projection/y/_scale.py | 1 - .../scatter3d/projection/y/_show.py | 1 - .../scatter3d/projection/z/_opacity.py | 1 - .../scatter3d/projection/z/_scale.py | 1 - .../scatter3d/projection/z/_show.py | 1 - .../validators/scatter3d/stream/_maxpoints.py | 1 - .../validators/scatter3d/stream/_token.py | 1 - .../validators/scatter3d/textfont/_color.py | 1 - .../scatter3d/textfont/_colorsrc.py | 1 - .../validators/scatter3d/textfont/_family.py | 1 - .../validators/scatter3d/textfont/_size.py | 1 - .../validators/scatter3d/textfont/_sizesrc.py | 1 - .../plotly/validators/scattercarpet/_a.py | 1 - .../plotly/validators/scattercarpet/_asrc.py | 1 - .../plotly/validators/scattercarpet/_b.py | 1 - .../plotly/validators/scattercarpet/_bsrc.py | 1 - .../validators/scattercarpet/_carpet.py | 1 - .../validators/scattercarpet/_connectgaps.py | 1 - .../validators/scattercarpet/_customdata.py | 1 - .../scattercarpet/_customdatasrc.py | 1 - .../plotly/validators/scattercarpet/_fill.py | 1 - .../validators/scattercarpet/_fillcolor.py | 1 - .../validators/scattercarpet/_hoverinfo.py | 1 - .../validators/scattercarpet/_hoverinfosrc.py | 1 - .../validators/scattercarpet/_hoveron.py | 1 - .../scattercarpet/_hovertemplate.py | 1 - .../scattercarpet/_hovertemplatesrc.py | 1 - .../validators/scattercarpet/_hovertext.py | 1 - .../validators/scattercarpet/_hovertextsrc.py | 1 - .../plotly/validators/scattercarpet/_ids.py | 1 - .../validators/scattercarpet/_idssrc.py | 1 - .../validators/scattercarpet/_legendgroup.py | 1 - .../plotly/validators/scattercarpet/_meta.py | 1 - .../validators/scattercarpet/_metasrc.py | 1 - .../plotly/validators/scattercarpet/_mode.py | 1 - .../plotly/validators/scattercarpet/_name.py | 1 - .../validators/scattercarpet/_opacity.py | 1 - .../scattercarpet/_selectedpoints.py | 1 - .../validators/scattercarpet/_showlegend.py | 1 - .../plotly/validators/scattercarpet/_text.py | 1 - .../validators/scattercarpet/_textposition.py | 1 - .../scattercarpet/_textpositionsrc.py | 1 - .../validators/scattercarpet/_textsrc.py | 1 - .../validators/scattercarpet/_texttemplate.py | 1 - .../scattercarpet/_texttemplatesrc.py | 1 - .../plotly/validators/scattercarpet/_uid.py | 1 - .../validators/scattercarpet/_uirevision.py | 1 - .../validators/scattercarpet/_visible.py | 1 - .../plotly/validators/scattercarpet/_xaxis.py | 1 - .../plotly/validators/scattercarpet/_yaxis.py | 1 - .../scattercarpet/hoverlabel/_align.py | 1 - .../scattercarpet/hoverlabel/_alignsrc.py | 1 - .../scattercarpet/hoverlabel/_bgcolor.py | 1 - .../scattercarpet/hoverlabel/_bgcolorsrc.py | 1 - .../scattercarpet/hoverlabel/_bordercolor.py | 1 - .../hoverlabel/_bordercolorsrc.py | 1 - .../scattercarpet/hoverlabel/_namelength.py | 1 - .../hoverlabel/_namelengthsrc.py | 1 - .../scattercarpet/hoverlabel/font/_color.py | 1 - .../hoverlabel/font/_colorsrc.py | 1 - .../scattercarpet/hoverlabel/font/_family.py | 1 - .../hoverlabel/font/_familysrc.py | 1 - .../scattercarpet/hoverlabel/font/_size.py | 1 - .../scattercarpet/hoverlabel/font/_sizesrc.py | 1 - .../validators/scattercarpet/line/_color.py | 1 - .../validators/scattercarpet/line/_dash.py | 1 - .../validators/scattercarpet/line/_shape.py | 1 - .../scattercarpet/line/_smoothing.py | 1 - .../validators/scattercarpet/line/_width.py | 1 - .../scattercarpet/marker/_autocolorscale.py | 1 - .../validators/scattercarpet/marker/_cauto.py | 1 - .../validators/scattercarpet/marker/_cmax.py | 1 - .../validators/scattercarpet/marker/_cmid.py | 1 - .../validators/scattercarpet/marker/_cmin.py | 1 - .../validators/scattercarpet/marker/_color.py | 1 - .../scattercarpet/marker/_coloraxis.py | 1 - .../scattercarpet/marker/_colorbar.py | 6 + .../scattercarpet/marker/_colorscale.py | 1 - .../scattercarpet/marker/_colorsrc.py | 1 - .../scattercarpet/marker/_maxdisplayed.py | 1 - .../scattercarpet/marker/_opacity.py | 1 - .../scattercarpet/marker/_opacitysrc.py | 1 - .../scattercarpet/marker/_reversescale.py | 1 - .../scattercarpet/marker/_showscale.py | 1 - .../validators/scattercarpet/marker/_size.py | 1 - .../scattercarpet/marker/_sizemin.py | 1 - .../scattercarpet/marker/_sizemode.py | 1 - .../scattercarpet/marker/_sizeref.py | 1 - .../scattercarpet/marker/_sizesrc.py | 1 - .../scattercarpet/marker/_symbol.py | 1 - .../scattercarpet/marker/_symbolsrc.py | 1 - .../scattercarpet/marker/colorbar/__init__.py | 2 + .../scattercarpet/marker/colorbar/_bgcolor.py | 1 - .../marker/colorbar/_bordercolor.py | 1 - .../marker/colorbar/_borderwidth.py | 1 - .../scattercarpet/marker/colorbar/_dtick.py | 1 - .../marker/colorbar/_exponentformat.py | 1 - .../scattercarpet/marker/colorbar/_len.py | 1 - .../scattercarpet/marker/colorbar/_lenmode.py | 1 - .../marker/colorbar/_minexponent.py | 1 - .../scattercarpet/marker/colorbar/_nticks.py | 1 - .../marker/colorbar/_outlinecolor.py | 1 - .../marker/colorbar/_outlinewidth.py | 1 - .../marker/colorbar/_separatethousands.py | 1 - .../marker/colorbar/_showexponent.py | 1 - .../marker/colorbar/_showticklabels.py | 1 - .../marker/colorbar/_showtickprefix.py | 1 - .../marker/colorbar/_showticksuffix.py | 1 - .../marker/colorbar/_thickness.py | 1 - .../marker/colorbar/_thicknessmode.py | 1 - .../scattercarpet/marker/colorbar/_tick0.py | 1 - .../marker/colorbar/_tickangle.py | 1 - .../marker/colorbar/_tickcolor.py | 1 - .../marker/colorbar/_tickformat.py | 1 - .../marker/colorbar/_ticklabeloverflow.py | 17 + .../marker/colorbar/_ticklabelposition.py | 1 - .../scattercarpet/marker/colorbar/_ticklen.py | 1 - .../marker/colorbar/_tickmode.py | 1 - .../marker/colorbar/_tickprefix.py | 1 - .../scattercarpet/marker/colorbar/_ticks.py | 1 - .../marker/colorbar/_ticksuffix.py | 1 - .../marker/colorbar/_ticktext.py | 1 - .../marker/colorbar/_ticktextsrc.py | 1 - .../marker/colorbar/_tickvals.py | 1 - .../marker/colorbar/_tickvalssrc.py | 1 - .../marker/colorbar/_tickwidth.py | 1 - .../scattercarpet/marker/colorbar/_x.py | 1 - .../scattercarpet/marker/colorbar/_xanchor.py | 1 - .../scattercarpet/marker/colorbar/_xpad.py | 1 - .../scattercarpet/marker/colorbar/_y.py | 1 - .../scattercarpet/marker/colorbar/_yanchor.py | 1 - .../scattercarpet/marker/colorbar/_ypad.py | 1 - .../marker/colorbar/tickfont/_color.py | 1 - .../marker/colorbar/tickfont/_family.py | 1 - .../marker/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../marker/colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../marker/colorbar/tickformatstop/_value.py | 1 - .../marker/colorbar/title/_side.py | 1 - .../marker/colorbar/title/_text.py | 1 - .../marker/colorbar/title/font/_color.py | 1 - .../marker/colorbar/title/font/_family.py | 1 - .../marker/colorbar/title/font/_size.py | 1 - .../scattercarpet/marker/gradient/_color.py | 1 - .../marker/gradient/_colorsrc.py | 1 - .../scattercarpet/marker/gradient/_type.py | 1 - .../scattercarpet/marker/gradient/_typesrc.py | 1 - .../marker/line/_autocolorscale.py | 1 - .../scattercarpet/marker/line/_cauto.py | 1 - .../scattercarpet/marker/line/_cmax.py | 1 - .../scattercarpet/marker/line/_cmid.py | 1 - .../scattercarpet/marker/line/_cmin.py | 1 - .../scattercarpet/marker/line/_color.py | 1 - .../scattercarpet/marker/line/_coloraxis.py | 1 - .../scattercarpet/marker/line/_colorscale.py | 1 - .../scattercarpet/marker/line/_colorsrc.py | 1 - .../marker/line/_reversescale.py | 1 - .../scattercarpet/marker/line/_width.py | 1 - .../scattercarpet/marker/line/_widthsrc.py | 1 - .../scattercarpet/selected/marker/_color.py | 1 - .../scattercarpet/selected/marker/_opacity.py | 1 - .../scattercarpet/selected/marker/_size.py | 1 - .../scattercarpet/selected/textfont/_color.py | 1 - .../scattercarpet/stream/_maxpoints.py | 1 - .../validators/scattercarpet/stream/_token.py | 1 - .../scattercarpet/textfont/_color.py | 1 - .../scattercarpet/textfont/_colorsrc.py | 1 - .../scattercarpet/textfont/_family.py | 1 - .../scattercarpet/textfont/_familysrc.py | 1 - .../scattercarpet/textfont/_size.py | 1 - .../scattercarpet/textfont/_sizesrc.py | 1 - .../scattercarpet/unselected/marker/_color.py | 1 - .../unselected/marker/_opacity.py | 1 - .../scattercarpet/unselected/marker/_size.py | 1 - .../unselected/textfont/_color.py | 1 - .../validators/scattergeo/_connectgaps.py | 1 - .../validators/scattergeo/_customdata.py | 1 - .../validators/scattergeo/_customdatasrc.py | 1 - .../validators/scattergeo/_featureidkey.py | 1 - .../plotly/validators/scattergeo/_fill.py | 1 - .../validators/scattergeo/_fillcolor.py | 1 - .../plotly/validators/scattergeo/_geo.py | 1 - .../plotly/validators/scattergeo/_geojson.py | 1 - .../validators/scattergeo/_hoverinfo.py | 1 - .../validators/scattergeo/_hoverinfosrc.py | 1 - .../validators/scattergeo/_hovertemplate.py | 1 - .../scattergeo/_hovertemplatesrc.py | 1 - .../validators/scattergeo/_hovertext.py | 1 - .../validators/scattergeo/_hovertextsrc.py | 1 - .../plotly/validators/scattergeo/_ids.py | 1 - .../plotly/validators/scattergeo/_idssrc.py | 1 - .../plotly/validators/scattergeo/_lat.py | 1 - .../plotly/validators/scattergeo/_latsrc.py | 1 - .../validators/scattergeo/_legendgroup.py | 1 - .../validators/scattergeo/_locationmode.py | 1 - .../validators/scattergeo/_locations.py | 1 - .../validators/scattergeo/_locationssrc.py | 1 - .../plotly/validators/scattergeo/_lon.py | 1 - .../plotly/validators/scattergeo/_lonsrc.py | 1 - .../plotly/validators/scattergeo/_meta.py | 1 - .../plotly/validators/scattergeo/_metasrc.py | 1 - .../plotly/validators/scattergeo/_mode.py | 1 - .../plotly/validators/scattergeo/_name.py | 1 - .../plotly/validators/scattergeo/_opacity.py | 1 - .../validators/scattergeo/_selectedpoints.py | 1 - .../validators/scattergeo/_showlegend.py | 1 - .../plotly/validators/scattergeo/_text.py | 1 - .../validators/scattergeo/_textposition.py | 1 - .../validators/scattergeo/_textpositionsrc.py | 1 - .../plotly/validators/scattergeo/_textsrc.py | 1 - .../validators/scattergeo/_texttemplate.py | 1 - .../validators/scattergeo/_texttemplatesrc.py | 1 - .../plotly/validators/scattergeo/_uid.py | 1 - .../validators/scattergeo/_uirevision.py | 1 - .../plotly/validators/scattergeo/_visible.py | 1 - .../scattergeo/hoverlabel/_align.py | 1 - .../scattergeo/hoverlabel/_alignsrc.py | 1 - .../scattergeo/hoverlabel/_bgcolor.py | 1 - .../scattergeo/hoverlabel/_bgcolorsrc.py | 1 - .../scattergeo/hoverlabel/_bordercolor.py | 1 - .../scattergeo/hoverlabel/_bordercolorsrc.py | 1 - .../scattergeo/hoverlabel/_namelength.py | 1 - .../scattergeo/hoverlabel/_namelengthsrc.py | 1 - .../scattergeo/hoverlabel/font/_color.py | 1 - .../scattergeo/hoverlabel/font/_colorsrc.py | 1 - .../scattergeo/hoverlabel/font/_family.py | 1 - .../scattergeo/hoverlabel/font/_familysrc.py | 1 - .../scattergeo/hoverlabel/font/_size.py | 1 - .../scattergeo/hoverlabel/font/_sizesrc.py | 1 - .../validators/scattergeo/line/_color.py | 1 - .../validators/scattergeo/line/_dash.py | 1 - .../validators/scattergeo/line/_width.py | 1 - .../scattergeo/marker/_autocolorscale.py | 1 - .../validators/scattergeo/marker/_cauto.py | 1 - .../validators/scattergeo/marker/_cmax.py | 1 - .../validators/scattergeo/marker/_cmid.py | 1 - .../validators/scattergeo/marker/_cmin.py | 1 - .../validators/scattergeo/marker/_color.py | 1 - .../scattergeo/marker/_coloraxis.py | 1 - .../validators/scattergeo/marker/_colorbar.py | 6 + .../scattergeo/marker/_colorscale.py | 1 - .../validators/scattergeo/marker/_colorsrc.py | 1 - .../validators/scattergeo/marker/_opacity.py | 1 - .../scattergeo/marker/_opacitysrc.py | 1 - .../scattergeo/marker/_reversescale.py | 1 - .../scattergeo/marker/_showscale.py | 1 - .../validators/scattergeo/marker/_size.py | 1 - .../validators/scattergeo/marker/_sizemin.py | 1 - .../validators/scattergeo/marker/_sizemode.py | 1 - .../validators/scattergeo/marker/_sizeref.py | 1 - .../validators/scattergeo/marker/_sizesrc.py | 1 - .../validators/scattergeo/marker/_symbol.py | 1 - .../scattergeo/marker/_symbolsrc.py | 1 - .../scattergeo/marker/colorbar/__init__.py | 2 + .../scattergeo/marker/colorbar/_bgcolor.py | 1 - .../marker/colorbar/_bordercolor.py | 1 - .../marker/colorbar/_borderwidth.py | 1 - .../scattergeo/marker/colorbar/_dtick.py | 1 - .../marker/colorbar/_exponentformat.py | 1 - .../scattergeo/marker/colorbar/_len.py | 1 - .../scattergeo/marker/colorbar/_lenmode.py | 1 - .../marker/colorbar/_minexponent.py | 1 - .../scattergeo/marker/colorbar/_nticks.py | 1 - .../marker/colorbar/_outlinecolor.py | 1 - .../marker/colorbar/_outlinewidth.py | 1 - .../marker/colorbar/_separatethousands.py | 1 - .../marker/colorbar/_showexponent.py | 1 - .../marker/colorbar/_showticklabels.py | 1 - .../marker/colorbar/_showtickprefix.py | 1 - .../marker/colorbar/_showticksuffix.py | 1 - .../scattergeo/marker/colorbar/_thickness.py | 1 - .../marker/colorbar/_thicknessmode.py | 1 - .../scattergeo/marker/colorbar/_tick0.py | 1 - .../scattergeo/marker/colorbar/_tickangle.py | 1 - .../scattergeo/marker/colorbar/_tickcolor.py | 1 - .../scattergeo/marker/colorbar/_tickformat.py | 1 - .../marker/colorbar/_ticklabeloverflow.py | 17 + .../marker/colorbar/_ticklabelposition.py | 1 - .../scattergeo/marker/colorbar/_ticklen.py | 1 - .../scattergeo/marker/colorbar/_tickmode.py | 1 - .../scattergeo/marker/colorbar/_tickprefix.py | 1 - .../scattergeo/marker/colorbar/_ticks.py | 1 - .../scattergeo/marker/colorbar/_ticksuffix.py | 1 - .../scattergeo/marker/colorbar/_ticktext.py | 1 - .../marker/colorbar/_ticktextsrc.py | 1 - .../scattergeo/marker/colorbar/_tickvals.py | 1 - .../marker/colorbar/_tickvalssrc.py | 1 - .../scattergeo/marker/colorbar/_tickwidth.py | 1 - .../scattergeo/marker/colorbar/_x.py | 1 - .../scattergeo/marker/colorbar/_xanchor.py | 1 - .../scattergeo/marker/colorbar/_xpad.py | 1 - .../scattergeo/marker/colorbar/_y.py | 1 - .../scattergeo/marker/colorbar/_yanchor.py | 1 - .../scattergeo/marker/colorbar/_ypad.py | 1 - .../marker/colorbar/tickfont/_color.py | 1 - .../marker/colorbar/tickfont/_family.py | 1 - .../marker/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../marker/colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../marker/colorbar/tickformatstop/_value.py | 1 - .../scattergeo/marker/colorbar/title/_side.py | 1 - .../scattergeo/marker/colorbar/title/_text.py | 1 - .../marker/colorbar/title/font/_color.py | 1 - .../marker/colorbar/title/font/_family.py | 1 - .../marker/colorbar/title/font/_size.py | 1 - .../scattergeo/marker/gradient/_color.py | 1 - .../scattergeo/marker/gradient/_colorsrc.py | 1 - .../scattergeo/marker/gradient/_type.py | 1 - .../scattergeo/marker/gradient/_typesrc.py | 1 - .../scattergeo/marker/line/_autocolorscale.py | 1 - .../scattergeo/marker/line/_cauto.py | 1 - .../scattergeo/marker/line/_cmax.py | 1 - .../scattergeo/marker/line/_cmid.py | 1 - .../scattergeo/marker/line/_cmin.py | 1 - .../scattergeo/marker/line/_color.py | 1 - .../scattergeo/marker/line/_coloraxis.py | 1 - .../scattergeo/marker/line/_colorscale.py | 1 - .../scattergeo/marker/line/_colorsrc.py | 1 - .../scattergeo/marker/line/_reversescale.py | 1 - .../scattergeo/marker/line/_width.py | 1 - .../scattergeo/marker/line/_widthsrc.py | 1 - .../scattergeo/selected/marker/_color.py | 1 - .../scattergeo/selected/marker/_opacity.py | 1 - .../scattergeo/selected/marker/_size.py | 1 - .../scattergeo/selected/textfont/_color.py | 1 - .../scattergeo/stream/_maxpoints.py | 1 - .../validators/scattergeo/stream/_token.py | 1 - .../validators/scattergeo/textfont/_color.py | 1 - .../scattergeo/textfont/_colorsrc.py | 1 - .../validators/scattergeo/textfont/_family.py | 1 - .../scattergeo/textfont/_familysrc.py | 1 - .../validators/scattergeo/textfont/_size.py | 1 - .../scattergeo/textfont/_sizesrc.py | 1 - .../scattergeo/unselected/marker/_color.py | 1 - .../scattergeo/unselected/marker/_opacity.py | 1 - .../scattergeo/unselected/marker/_size.py | 1 - .../scattergeo/unselected/textfont/_color.py | 1 - .../plotly/validators/scattergl/__init__.py | 4 + .../validators/scattergl/_connectgaps.py | 1 - .../validators/scattergl/_customdata.py | 1 - .../validators/scattergl/_customdatasrc.py | 1 - .../plotly/plotly/validators/scattergl/_dx.py | 1 - .../plotly/plotly/validators/scattergl/_dy.py | 1 - .../plotly/validators/scattergl/_fill.py | 1 - .../plotly/validators/scattergl/_fillcolor.py | 1 - .../plotly/validators/scattergl/_hoverinfo.py | 1 - .../validators/scattergl/_hoverinfosrc.py | 1 - .../validators/scattergl/_hovertemplate.py | 1 - .../validators/scattergl/_hovertemplatesrc.py | 1 - .../plotly/validators/scattergl/_hovertext.py | 1 - .../validators/scattergl/_hovertextsrc.py | 1 - .../plotly/validators/scattergl/_ids.py | 1 - .../plotly/validators/scattergl/_idssrc.py | 1 - .../validators/scattergl/_legendgroup.py | 1 - .../plotly/validators/scattergl/_meta.py | 1 - .../plotly/validators/scattergl/_metasrc.py | 1 - .../plotly/validators/scattergl/_mode.py | 1 - .../plotly/validators/scattergl/_name.py | 1 - .../plotly/validators/scattergl/_opacity.py | 1 - .../validators/scattergl/_selectedpoints.py | 1 - .../validators/scattergl/_showlegend.py | 1 - .../plotly/validators/scattergl/_text.py | 1 - .../validators/scattergl/_textposition.py | 1 - .../validators/scattergl/_textpositionsrc.py | 1 - .../plotly/validators/scattergl/_textsrc.py | 1 - .../validators/scattergl/_texttemplate.py | 1 - .../validators/scattergl/_texttemplatesrc.py | 1 - .../plotly/validators/scattergl/_uid.py | 1 - .../validators/scattergl/_uirevision.py | 1 - .../plotly/validators/scattergl/_visible.py | 1 - .../plotly/plotly/validators/scattergl/_x.py | 1 - .../plotly/plotly/validators/scattergl/_x0.py | 1 - .../plotly/validators/scattergl/_xaxis.py | 1 - .../plotly/validators/scattergl/_xcalendar.py | 1 - .../validators/scattergl/_xhoverformat.py | 11 + .../plotly/validators/scattergl/_xperiod.py | 1 - .../plotly/validators/scattergl/_xperiod0.py | 1 - .../validators/scattergl/_xperiodalignment.py | 1 - .../plotly/validators/scattergl/_xsrc.py | 1 - .../plotly/plotly/validators/scattergl/_y.py | 1 - .../plotly/plotly/validators/scattergl/_y0.py | 1 - .../plotly/validators/scattergl/_yaxis.py | 1 - .../plotly/validators/scattergl/_ycalendar.py | 1 - .../validators/scattergl/_yhoverformat.py | 11 + .../plotly/validators/scattergl/_yperiod.py | 1 - .../plotly/validators/scattergl/_yperiod0.py | 1 - .../validators/scattergl/_yperiodalignment.py | 1 - .../plotly/validators/scattergl/_ysrc.py | 1 - .../validators/scattergl/error_x/_array.py | 1 - .../scattergl/error_x/_arrayminus.py | 1 - .../scattergl/error_x/_arrayminussrc.py | 1 - .../validators/scattergl/error_x/_arraysrc.py | 1 - .../validators/scattergl/error_x/_color.py | 1 - .../scattergl/error_x/_copy_ystyle.py | 1 - .../scattergl/error_x/_symmetric.py | 1 - .../scattergl/error_x/_thickness.py | 1 - .../validators/scattergl/error_x/_traceref.py | 1 - .../scattergl/error_x/_tracerefminus.py | 1 - .../validators/scattergl/error_x/_type.py | 1 - .../validators/scattergl/error_x/_value.py | 1 - .../scattergl/error_x/_valueminus.py | 1 - .../validators/scattergl/error_x/_visible.py | 1 - .../validators/scattergl/error_x/_width.py | 1 - .../validators/scattergl/error_y/_array.py | 1 - .../scattergl/error_y/_arrayminus.py | 1 - .../scattergl/error_y/_arrayminussrc.py | 1 - .../validators/scattergl/error_y/_arraysrc.py | 1 - .../validators/scattergl/error_y/_color.py | 1 - .../scattergl/error_y/_symmetric.py | 1 - .../scattergl/error_y/_thickness.py | 1 - .../validators/scattergl/error_y/_traceref.py | 1 - .../scattergl/error_y/_tracerefminus.py | 1 - .../validators/scattergl/error_y/_type.py | 1 - .../validators/scattergl/error_y/_value.py | 1 - .../scattergl/error_y/_valueminus.py | 1 - .../validators/scattergl/error_y/_visible.py | 1 - .../validators/scattergl/error_y/_width.py | 1 - .../validators/scattergl/hoverlabel/_align.py | 1 - .../scattergl/hoverlabel/_alignsrc.py | 1 - .../scattergl/hoverlabel/_bgcolor.py | 1 - .../scattergl/hoverlabel/_bgcolorsrc.py | 1 - .../scattergl/hoverlabel/_bordercolor.py | 1 - .../scattergl/hoverlabel/_bordercolorsrc.py | 1 - .../scattergl/hoverlabel/_namelength.py | 1 - .../scattergl/hoverlabel/_namelengthsrc.py | 1 - .../scattergl/hoverlabel/font/_color.py | 1 - .../scattergl/hoverlabel/font/_colorsrc.py | 1 - .../scattergl/hoverlabel/font/_family.py | 1 - .../scattergl/hoverlabel/font/_familysrc.py | 1 - .../scattergl/hoverlabel/font/_size.py | 1 - .../scattergl/hoverlabel/font/_sizesrc.py | 1 - .../validators/scattergl/line/_color.py | 1 - .../plotly/validators/scattergl/line/_dash.py | 1 - .../validators/scattergl/line/_shape.py | 1 - .../validators/scattergl/line/_width.py | 1 - .../scattergl/marker/_autocolorscale.py | 1 - .../validators/scattergl/marker/_cauto.py | 1 - .../validators/scattergl/marker/_cmax.py | 1 - .../validators/scattergl/marker/_cmid.py | 1 - .../validators/scattergl/marker/_cmin.py | 1 - .../validators/scattergl/marker/_color.py | 1 - .../validators/scattergl/marker/_coloraxis.py | 1 - .../validators/scattergl/marker/_colorbar.py | 6 + .../scattergl/marker/_colorscale.py | 1 - .../validators/scattergl/marker/_colorsrc.py | 1 - .../validators/scattergl/marker/_opacity.py | 1 - .../scattergl/marker/_opacitysrc.py | 1 - .../scattergl/marker/_reversescale.py | 1 - .../validators/scattergl/marker/_showscale.py | 1 - .../validators/scattergl/marker/_size.py | 1 - .../validators/scattergl/marker/_sizemin.py | 1 - .../validators/scattergl/marker/_sizemode.py | 1 - .../validators/scattergl/marker/_sizeref.py | 1 - .../validators/scattergl/marker/_sizesrc.py | 1 - .../validators/scattergl/marker/_symbol.py | 1 - .../validators/scattergl/marker/_symbolsrc.py | 1 - .../scattergl/marker/colorbar/__init__.py | 2 + .../scattergl/marker/colorbar/_bgcolor.py | 1 - .../scattergl/marker/colorbar/_bordercolor.py | 1 - .../scattergl/marker/colorbar/_borderwidth.py | 1 - .../scattergl/marker/colorbar/_dtick.py | 1 - .../marker/colorbar/_exponentformat.py | 1 - .../scattergl/marker/colorbar/_len.py | 1 - .../scattergl/marker/colorbar/_lenmode.py | 1 - .../scattergl/marker/colorbar/_minexponent.py | 1 - .../scattergl/marker/colorbar/_nticks.py | 1 - .../marker/colorbar/_outlinecolor.py | 1 - .../marker/colorbar/_outlinewidth.py | 1 - .../marker/colorbar/_separatethousands.py | 1 - .../marker/colorbar/_showexponent.py | 1 - .../marker/colorbar/_showticklabels.py | 1 - .../marker/colorbar/_showtickprefix.py | 1 - .../marker/colorbar/_showticksuffix.py | 1 - .../scattergl/marker/colorbar/_thickness.py | 1 - .../marker/colorbar/_thicknessmode.py | 1 - .../scattergl/marker/colorbar/_tick0.py | 1 - .../scattergl/marker/colorbar/_tickangle.py | 1 - .../scattergl/marker/colorbar/_tickcolor.py | 1 - .../scattergl/marker/colorbar/_tickformat.py | 1 - .../marker/colorbar/_ticklabeloverflow.py | 17 + .../marker/colorbar/_ticklabelposition.py | 1 - .../scattergl/marker/colorbar/_ticklen.py | 1 - .../scattergl/marker/colorbar/_tickmode.py | 1 - .../scattergl/marker/colorbar/_tickprefix.py | 1 - .../scattergl/marker/colorbar/_ticks.py | 1 - .../scattergl/marker/colorbar/_ticksuffix.py | 1 - .../scattergl/marker/colorbar/_ticktext.py | 1 - .../scattergl/marker/colorbar/_ticktextsrc.py | 1 - .../scattergl/marker/colorbar/_tickvals.py | 1 - .../scattergl/marker/colorbar/_tickvalssrc.py | 1 - .../scattergl/marker/colorbar/_tickwidth.py | 1 - .../scattergl/marker/colorbar/_x.py | 1 - .../scattergl/marker/colorbar/_xanchor.py | 1 - .../scattergl/marker/colorbar/_xpad.py | 1 - .../scattergl/marker/colorbar/_y.py | 1 - .../scattergl/marker/colorbar/_yanchor.py | 1 - .../scattergl/marker/colorbar/_ypad.py | 1 - .../marker/colorbar/tickfont/_color.py | 1 - .../marker/colorbar/tickfont/_family.py | 1 - .../marker/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../marker/colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../marker/colorbar/tickformatstop/_value.py | 1 - .../scattergl/marker/colorbar/title/_side.py | 1 - .../scattergl/marker/colorbar/title/_text.py | 1 - .../marker/colorbar/title/font/_color.py | 1 - .../marker/colorbar/title/font/_family.py | 1 - .../marker/colorbar/title/font/_size.py | 1 - .../scattergl/marker/line/_autocolorscale.py | 1 - .../scattergl/marker/line/_cauto.py | 1 - .../validators/scattergl/marker/line/_cmax.py | 1 - .../validators/scattergl/marker/line/_cmid.py | 1 - .../validators/scattergl/marker/line/_cmin.py | 1 - .../scattergl/marker/line/_color.py | 1 - .../scattergl/marker/line/_coloraxis.py | 1 - .../scattergl/marker/line/_colorscale.py | 1 - .../scattergl/marker/line/_colorsrc.py | 1 - .../scattergl/marker/line/_reversescale.py | 1 - .../scattergl/marker/line/_width.py | 1 - .../scattergl/marker/line/_widthsrc.py | 1 - .../scattergl/selected/marker/_color.py | 1 - .../scattergl/selected/marker/_opacity.py | 1 - .../scattergl/selected/marker/_size.py | 1 - .../scattergl/selected/textfont/_color.py | 1 - .../validators/scattergl/stream/_maxpoints.py | 1 - .../validators/scattergl/stream/_token.py | 1 - .../validators/scattergl/textfont/_color.py | 1 - .../scattergl/textfont/_colorsrc.py | 1 - .../validators/scattergl/textfont/_family.py | 1 - .../scattergl/textfont/_familysrc.py | 1 - .../validators/scattergl/textfont/_size.py | 1 - .../validators/scattergl/textfont/_sizesrc.py | 1 - .../scattergl/unselected/marker/_color.py | 1 - .../scattergl/unselected/marker/_opacity.py | 1 - .../scattergl/unselected/marker/_size.py | 1 - .../scattergl/unselected/textfont/_color.py | 1 - .../plotly/validators/scattermapbox/_below.py | 1 - .../validators/scattermapbox/_connectgaps.py | 1 - .../validators/scattermapbox/_customdata.py | 1 - .../scattermapbox/_customdatasrc.py | 1 - .../plotly/validators/scattermapbox/_fill.py | 1 - .../validators/scattermapbox/_fillcolor.py | 1 - .../validators/scattermapbox/_hoverinfo.py | 1 - .../validators/scattermapbox/_hoverinfosrc.py | 1 - .../scattermapbox/_hovertemplate.py | 1 - .../scattermapbox/_hovertemplatesrc.py | 1 - .../validators/scattermapbox/_hovertext.py | 1 - .../validators/scattermapbox/_hovertextsrc.py | 1 - .../plotly/validators/scattermapbox/_ids.py | 1 - .../validators/scattermapbox/_idssrc.py | 1 - .../plotly/validators/scattermapbox/_lat.py | 1 - .../validators/scattermapbox/_latsrc.py | 1 - .../validators/scattermapbox/_legendgroup.py | 1 - .../plotly/validators/scattermapbox/_lon.py | 1 - .../validators/scattermapbox/_lonsrc.py | 1 - .../plotly/validators/scattermapbox/_meta.py | 1 - .../validators/scattermapbox/_metasrc.py | 1 - .../plotly/validators/scattermapbox/_mode.py | 1 - .../plotly/validators/scattermapbox/_name.py | 1 - .../validators/scattermapbox/_opacity.py | 1 - .../scattermapbox/_selectedpoints.py | 1 - .../validators/scattermapbox/_showlegend.py | 1 - .../validators/scattermapbox/_subplot.py | 1 - .../plotly/validators/scattermapbox/_text.py | 1 - .../validators/scattermapbox/_textposition.py | 1 - .../validators/scattermapbox/_textsrc.py | 1 - .../validators/scattermapbox/_texttemplate.py | 1 - .../scattermapbox/_texttemplatesrc.py | 1 - .../plotly/validators/scattermapbox/_uid.py | 1 - .../validators/scattermapbox/_uirevision.py | 1 - .../validators/scattermapbox/_visible.py | 1 - .../scattermapbox/hoverlabel/_align.py | 1 - .../scattermapbox/hoverlabel/_alignsrc.py | 1 - .../scattermapbox/hoverlabel/_bgcolor.py | 1 - .../scattermapbox/hoverlabel/_bgcolorsrc.py | 1 - .../scattermapbox/hoverlabel/_bordercolor.py | 1 - .../hoverlabel/_bordercolorsrc.py | 1 - .../scattermapbox/hoverlabel/_namelength.py | 1 - .../hoverlabel/_namelengthsrc.py | 1 - .../scattermapbox/hoverlabel/font/_color.py | 1 - .../hoverlabel/font/_colorsrc.py | 1 - .../scattermapbox/hoverlabel/font/_family.py | 1 - .../hoverlabel/font/_familysrc.py | 1 - .../scattermapbox/hoverlabel/font/_size.py | 1 - .../scattermapbox/hoverlabel/font/_sizesrc.py | 1 - .../validators/scattermapbox/line/_color.py | 1 - .../validators/scattermapbox/line/_width.py | 1 - .../scattermapbox/marker/_allowoverlap.py | 1 - .../validators/scattermapbox/marker/_angle.py | 1 - .../scattermapbox/marker/_anglesrc.py | 1 - .../scattermapbox/marker/_autocolorscale.py | 1 - .../validators/scattermapbox/marker/_cauto.py | 1 - .../validators/scattermapbox/marker/_cmax.py | 1 - .../validators/scattermapbox/marker/_cmid.py | 1 - .../validators/scattermapbox/marker/_cmin.py | 1 - .../validators/scattermapbox/marker/_color.py | 1 - .../scattermapbox/marker/_coloraxis.py | 1 - .../scattermapbox/marker/_colorbar.py | 6 + .../scattermapbox/marker/_colorscale.py | 1 - .../scattermapbox/marker/_colorsrc.py | 1 - .../scattermapbox/marker/_opacity.py | 1 - .../scattermapbox/marker/_opacitysrc.py | 1 - .../scattermapbox/marker/_reversescale.py | 1 - .../scattermapbox/marker/_showscale.py | 1 - .../validators/scattermapbox/marker/_size.py | 1 - .../scattermapbox/marker/_sizemin.py | 1 - .../scattermapbox/marker/_sizemode.py | 1 - .../scattermapbox/marker/_sizeref.py | 1 - .../scattermapbox/marker/_sizesrc.py | 1 - .../scattermapbox/marker/_symbol.py | 1 - .../scattermapbox/marker/_symbolsrc.py | 1 - .../scattermapbox/marker/colorbar/__init__.py | 2 + .../scattermapbox/marker/colorbar/_bgcolor.py | 1 - .../marker/colorbar/_bordercolor.py | 1 - .../marker/colorbar/_borderwidth.py | 1 - .../scattermapbox/marker/colorbar/_dtick.py | 1 - .../marker/colorbar/_exponentformat.py | 1 - .../scattermapbox/marker/colorbar/_len.py | 1 - .../scattermapbox/marker/colorbar/_lenmode.py | 1 - .../marker/colorbar/_minexponent.py | 1 - .../scattermapbox/marker/colorbar/_nticks.py | 1 - .../marker/colorbar/_outlinecolor.py | 1 - .../marker/colorbar/_outlinewidth.py | 1 - .../marker/colorbar/_separatethousands.py | 1 - .../marker/colorbar/_showexponent.py | 1 - .../marker/colorbar/_showticklabels.py | 1 - .../marker/colorbar/_showtickprefix.py | 1 - .../marker/colorbar/_showticksuffix.py | 1 - .../marker/colorbar/_thickness.py | 1 - .../marker/colorbar/_thicknessmode.py | 1 - .../scattermapbox/marker/colorbar/_tick0.py | 1 - .../marker/colorbar/_tickangle.py | 1 - .../marker/colorbar/_tickcolor.py | 1 - .../marker/colorbar/_tickformat.py | 1 - .../marker/colorbar/_ticklabeloverflow.py | 17 + .../marker/colorbar/_ticklabelposition.py | 1 - .../scattermapbox/marker/colorbar/_ticklen.py | 1 - .../marker/colorbar/_tickmode.py | 1 - .../marker/colorbar/_tickprefix.py | 1 - .../scattermapbox/marker/colorbar/_ticks.py | 1 - .../marker/colorbar/_ticksuffix.py | 1 - .../marker/colorbar/_ticktext.py | 1 - .../marker/colorbar/_ticktextsrc.py | 1 - .../marker/colorbar/_tickvals.py | 1 - .../marker/colorbar/_tickvalssrc.py | 1 - .../marker/colorbar/_tickwidth.py | 1 - .../scattermapbox/marker/colorbar/_x.py | 1 - .../scattermapbox/marker/colorbar/_xanchor.py | 1 - .../scattermapbox/marker/colorbar/_xpad.py | 1 - .../scattermapbox/marker/colorbar/_y.py | 1 - .../scattermapbox/marker/colorbar/_yanchor.py | 1 - .../scattermapbox/marker/colorbar/_ypad.py | 1 - .../marker/colorbar/tickfont/_color.py | 1 - .../marker/colorbar/tickfont/_family.py | 1 - .../marker/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../marker/colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../marker/colorbar/tickformatstop/_value.py | 1 - .../marker/colorbar/title/_side.py | 1 - .../marker/colorbar/title/_text.py | 1 - .../marker/colorbar/title/font/_color.py | 1 - .../marker/colorbar/title/font/_family.py | 1 - .../marker/colorbar/title/font/_size.py | 1 - .../scattermapbox/selected/marker/_color.py | 1 - .../scattermapbox/selected/marker/_opacity.py | 1 - .../scattermapbox/selected/marker/_size.py | 1 - .../scattermapbox/stream/_maxpoints.py | 1 - .../validators/scattermapbox/stream/_token.py | 1 - .../scattermapbox/textfont/_color.py | 1 - .../scattermapbox/textfont/_family.py | 1 - .../scattermapbox/textfont/_size.py | 1 - .../scattermapbox/unselected/marker/_color.py | 1 - .../unselected/marker/_opacity.py | 1 - .../scattermapbox/unselected/marker/_size.py | 1 - .../validators/scatterpolar/_cliponaxis.py | 1 - .../validators/scatterpolar/_connectgaps.py | 1 - .../validators/scatterpolar/_customdata.py | 1 - .../validators/scatterpolar/_customdatasrc.py | 1 - .../plotly/validators/scatterpolar/_dr.py | 1 - .../plotly/validators/scatterpolar/_dtheta.py | 1 - .../plotly/validators/scatterpolar/_fill.py | 1 - .../validators/scatterpolar/_fillcolor.py | 1 - .../validators/scatterpolar/_hoverinfo.py | 1 - .../validators/scatterpolar/_hoverinfosrc.py | 1 - .../validators/scatterpolar/_hoveron.py | 1 - .../validators/scatterpolar/_hovertemplate.py | 1 - .../scatterpolar/_hovertemplatesrc.py | 1 - .../validators/scatterpolar/_hovertext.py | 1 - .../validators/scatterpolar/_hovertextsrc.py | 1 - .../plotly/validators/scatterpolar/_ids.py | 1 - .../plotly/validators/scatterpolar/_idssrc.py | 1 - .../validators/scatterpolar/_legendgroup.py | 1 - .../plotly/validators/scatterpolar/_meta.py | 1 - .../validators/scatterpolar/_metasrc.py | 1 - .../plotly/validators/scatterpolar/_mode.py | 1 - .../plotly/validators/scatterpolar/_name.py | 1 - .../validators/scatterpolar/_opacity.py | 1 - .../plotly/validators/scatterpolar/_r.py | 1 - .../plotly/validators/scatterpolar/_r0.py | 1 - .../plotly/validators/scatterpolar/_rsrc.py | 1 - .../scatterpolar/_selectedpoints.py | 1 - .../validators/scatterpolar/_showlegend.py | 1 - .../validators/scatterpolar/_subplot.py | 1 - .../plotly/validators/scatterpolar/_text.py | 1 - .../validators/scatterpolar/_textposition.py | 1 - .../scatterpolar/_textpositionsrc.py | 1 - .../validators/scatterpolar/_textsrc.py | 1 - .../validators/scatterpolar/_texttemplate.py | 1 - .../scatterpolar/_texttemplatesrc.py | 1 - .../plotly/validators/scatterpolar/_theta.py | 1 - .../plotly/validators/scatterpolar/_theta0.py | 1 - .../validators/scatterpolar/_thetasrc.py | 1 - .../validators/scatterpolar/_thetaunit.py | 1 - .../plotly/validators/scatterpolar/_uid.py | 1 - .../validators/scatterpolar/_uirevision.py | 1 - .../validators/scatterpolar/_visible.py | 1 - .../scatterpolar/hoverlabel/_align.py | 1 - .../scatterpolar/hoverlabel/_alignsrc.py | 1 - .../scatterpolar/hoverlabel/_bgcolor.py | 1 - .../scatterpolar/hoverlabel/_bgcolorsrc.py | 1 - .../scatterpolar/hoverlabel/_bordercolor.py | 1 - .../hoverlabel/_bordercolorsrc.py | 1 - .../scatterpolar/hoverlabel/_namelength.py | 1 - .../scatterpolar/hoverlabel/_namelengthsrc.py | 1 - .../scatterpolar/hoverlabel/font/_color.py | 1 - .../scatterpolar/hoverlabel/font/_colorsrc.py | 1 - .../scatterpolar/hoverlabel/font/_family.py | 1 - .../hoverlabel/font/_familysrc.py | 1 - .../scatterpolar/hoverlabel/font/_size.py | 1 - .../scatterpolar/hoverlabel/font/_sizesrc.py | 1 - .../validators/scatterpolar/line/_color.py | 1 - .../validators/scatterpolar/line/_dash.py | 1 - .../validators/scatterpolar/line/_shape.py | 1 - .../scatterpolar/line/_smoothing.py | 1 - .../validators/scatterpolar/line/_width.py | 1 - .../scatterpolar/marker/_autocolorscale.py | 1 - .../validators/scatterpolar/marker/_cauto.py | 1 - .../validators/scatterpolar/marker/_cmax.py | 1 - .../validators/scatterpolar/marker/_cmid.py | 1 - .../validators/scatterpolar/marker/_cmin.py | 1 - .../validators/scatterpolar/marker/_color.py | 1 - .../scatterpolar/marker/_coloraxis.py | 1 - .../scatterpolar/marker/_colorbar.py | 6 + .../scatterpolar/marker/_colorscale.py | 1 - .../scatterpolar/marker/_colorsrc.py | 1 - .../scatterpolar/marker/_maxdisplayed.py | 1 - .../scatterpolar/marker/_opacity.py | 1 - .../scatterpolar/marker/_opacitysrc.py | 1 - .../scatterpolar/marker/_reversescale.py | 1 - .../scatterpolar/marker/_showscale.py | 1 - .../validators/scatterpolar/marker/_size.py | 1 - .../scatterpolar/marker/_sizemin.py | 1 - .../scatterpolar/marker/_sizemode.py | 1 - .../scatterpolar/marker/_sizeref.py | 1 - .../scatterpolar/marker/_sizesrc.py | 1 - .../validators/scatterpolar/marker/_symbol.py | 1 - .../scatterpolar/marker/_symbolsrc.py | 1 - .../scatterpolar/marker/colorbar/__init__.py | 2 + .../scatterpolar/marker/colorbar/_bgcolor.py | 1 - .../marker/colorbar/_bordercolor.py | 1 - .../marker/colorbar/_borderwidth.py | 1 - .../scatterpolar/marker/colorbar/_dtick.py | 1 - .../marker/colorbar/_exponentformat.py | 1 - .../scatterpolar/marker/colorbar/_len.py | 1 - .../scatterpolar/marker/colorbar/_lenmode.py | 1 - .../marker/colorbar/_minexponent.py | 1 - .../scatterpolar/marker/colorbar/_nticks.py | 1 - .../marker/colorbar/_outlinecolor.py | 1 - .../marker/colorbar/_outlinewidth.py | 1 - .../marker/colorbar/_separatethousands.py | 1 - .../marker/colorbar/_showexponent.py | 1 - .../marker/colorbar/_showticklabels.py | 1 - .../marker/colorbar/_showtickprefix.py | 1 - .../marker/colorbar/_showticksuffix.py | 1 - .../marker/colorbar/_thickness.py | 1 - .../marker/colorbar/_thicknessmode.py | 1 - .../scatterpolar/marker/colorbar/_tick0.py | 1 - .../marker/colorbar/_tickangle.py | 1 - .../marker/colorbar/_tickcolor.py | 1 - .../marker/colorbar/_tickformat.py | 1 - .../marker/colorbar/_ticklabeloverflow.py | 17 + .../marker/colorbar/_ticklabelposition.py | 1 - .../scatterpolar/marker/colorbar/_ticklen.py | 1 - .../scatterpolar/marker/colorbar/_tickmode.py | 1 - .../marker/colorbar/_tickprefix.py | 1 - .../scatterpolar/marker/colorbar/_ticks.py | 1 - .../marker/colorbar/_ticksuffix.py | 1 - .../scatterpolar/marker/colorbar/_ticktext.py | 1 - .../marker/colorbar/_ticktextsrc.py | 1 - .../scatterpolar/marker/colorbar/_tickvals.py | 1 - .../marker/colorbar/_tickvalssrc.py | 1 - .../marker/colorbar/_tickwidth.py | 1 - .../scatterpolar/marker/colorbar/_x.py | 1 - .../scatterpolar/marker/colorbar/_xanchor.py | 1 - .../scatterpolar/marker/colorbar/_xpad.py | 1 - .../scatterpolar/marker/colorbar/_y.py | 1 - .../scatterpolar/marker/colorbar/_yanchor.py | 1 - .../scatterpolar/marker/colorbar/_ypad.py | 1 - .../marker/colorbar/tickfont/_color.py | 1 - .../marker/colorbar/tickfont/_family.py | 1 - .../marker/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../marker/colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../marker/colorbar/tickformatstop/_value.py | 1 - .../marker/colorbar/title/_side.py | 1 - .../marker/colorbar/title/_text.py | 1 - .../marker/colorbar/title/font/_color.py | 1 - .../marker/colorbar/title/font/_family.py | 1 - .../marker/colorbar/title/font/_size.py | 1 - .../scatterpolar/marker/gradient/_color.py | 1 - .../scatterpolar/marker/gradient/_colorsrc.py | 1 - .../scatterpolar/marker/gradient/_type.py | 1 - .../scatterpolar/marker/gradient/_typesrc.py | 1 - .../marker/line/_autocolorscale.py | 1 - .../scatterpolar/marker/line/_cauto.py | 1 - .../scatterpolar/marker/line/_cmax.py | 1 - .../scatterpolar/marker/line/_cmid.py | 1 - .../scatterpolar/marker/line/_cmin.py | 1 - .../scatterpolar/marker/line/_color.py | 1 - .../scatterpolar/marker/line/_coloraxis.py | 1 - .../scatterpolar/marker/line/_colorscale.py | 1 - .../scatterpolar/marker/line/_colorsrc.py | 1 - .../scatterpolar/marker/line/_reversescale.py | 1 - .../scatterpolar/marker/line/_width.py | 1 - .../scatterpolar/marker/line/_widthsrc.py | 1 - .../scatterpolar/selected/marker/_color.py | 1 - .../scatterpolar/selected/marker/_opacity.py | 1 - .../scatterpolar/selected/marker/_size.py | 1 - .../scatterpolar/selected/textfont/_color.py | 1 - .../scatterpolar/stream/_maxpoints.py | 1 - .../validators/scatterpolar/stream/_token.py | 1 - .../scatterpolar/textfont/_color.py | 1 - .../scatterpolar/textfont/_colorsrc.py | 1 - .../scatterpolar/textfont/_family.py | 1 - .../scatterpolar/textfont/_familysrc.py | 1 - .../validators/scatterpolar/textfont/_size.py | 1 - .../scatterpolar/textfont/_sizesrc.py | 1 - .../scatterpolar/unselected/marker/_color.py | 1 - .../unselected/marker/_opacity.py | 1 - .../scatterpolar/unselected/marker/_size.py | 1 - .../unselected/textfont/_color.py | 1 - .../validators/scatterpolargl/_connectgaps.py | 1 - .../validators/scatterpolargl/_customdata.py | 1 - .../scatterpolargl/_customdatasrc.py | 1 - .../plotly/validators/scatterpolargl/_dr.py | 1 - .../validators/scatterpolargl/_dtheta.py | 1 - .../plotly/validators/scatterpolargl/_fill.py | 1 - .../validators/scatterpolargl/_fillcolor.py | 1 - .../validators/scatterpolargl/_hoverinfo.py | 1 - .../scatterpolargl/_hoverinfosrc.py | 1 - .../scatterpolargl/_hovertemplate.py | 1 - .../scatterpolargl/_hovertemplatesrc.py | 1 - .../validators/scatterpolargl/_hovertext.py | 1 - .../scatterpolargl/_hovertextsrc.py | 1 - .../plotly/validators/scatterpolargl/_ids.py | 1 - .../validators/scatterpolargl/_idssrc.py | 1 - .../validators/scatterpolargl/_legendgroup.py | 1 - .../plotly/validators/scatterpolargl/_meta.py | 1 - .../validators/scatterpolargl/_metasrc.py | 1 - .../plotly/validators/scatterpolargl/_mode.py | 1 - .../plotly/validators/scatterpolargl/_name.py | 1 - .../validators/scatterpolargl/_opacity.py | 1 - .../plotly/validators/scatterpolargl/_r.py | 1 - .../plotly/validators/scatterpolargl/_r0.py | 1 - .../plotly/validators/scatterpolargl/_rsrc.py | 1 - .../scatterpolargl/_selectedpoints.py | 1 - .../validators/scatterpolargl/_showlegend.py | 1 - .../validators/scatterpolargl/_subplot.py | 1 - .../plotly/validators/scatterpolargl/_text.py | 1 - .../scatterpolargl/_textposition.py | 1 - .../scatterpolargl/_textpositionsrc.py | 1 - .../validators/scatterpolargl/_textsrc.py | 1 - .../scatterpolargl/_texttemplate.py | 1 - .../scatterpolargl/_texttemplatesrc.py | 1 - .../validators/scatterpolargl/_theta.py | 1 - .../validators/scatterpolargl/_theta0.py | 1 - .../validators/scatterpolargl/_thetasrc.py | 1 - .../validators/scatterpolargl/_thetaunit.py | 1 - .../plotly/validators/scatterpolargl/_uid.py | 1 - .../validators/scatterpolargl/_uirevision.py | 1 - .../validators/scatterpolargl/_visible.py | 1 - .../scatterpolargl/hoverlabel/_align.py | 1 - .../scatterpolargl/hoverlabel/_alignsrc.py | 1 - .../scatterpolargl/hoverlabel/_bgcolor.py | 1 - .../scatterpolargl/hoverlabel/_bgcolorsrc.py | 1 - .../scatterpolargl/hoverlabel/_bordercolor.py | 1 - .../hoverlabel/_bordercolorsrc.py | 1 - .../scatterpolargl/hoverlabel/_namelength.py | 1 - .../hoverlabel/_namelengthsrc.py | 1 - .../scatterpolargl/hoverlabel/font/_color.py | 1 - .../hoverlabel/font/_colorsrc.py | 1 - .../scatterpolargl/hoverlabel/font/_family.py | 1 - .../hoverlabel/font/_familysrc.py | 1 - .../scatterpolargl/hoverlabel/font/_size.py | 1 - .../hoverlabel/font/_sizesrc.py | 1 - .../validators/scatterpolargl/line/_color.py | 1 - .../validators/scatterpolargl/line/_dash.py | 1 - .../validators/scatterpolargl/line/_shape.py | 1 - .../validators/scatterpolargl/line/_width.py | 1 - .../scatterpolargl/marker/_autocolorscale.py | 1 - .../scatterpolargl/marker/_cauto.py | 1 - .../validators/scatterpolargl/marker/_cmax.py | 1 - .../validators/scatterpolargl/marker/_cmid.py | 1 - .../validators/scatterpolargl/marker/_cmin.py | 1 - .../scatterpolargl/marker/_color.py | 1 - .../scatterpolargl/marker/_coloraxis.py | 1 - .../scatterpolargl/marker/_colorbar.py | 6 + .../scatterpolargl/marker/_colorscale.py | 1 - .../scatterpolargl/marker/_colorsrc.py | 1 - .../scatterpolargl/marker/_opacity.py | 1 - .../scatterpolargl/marker/_opacitysrc.py | 1 - .../scatterpolargl/marker/_reversescale.py | 1 - .../scatterpolargl/marker/_showscale.py | 1 - .../validators/scatterpolargl/marker/_size.py | 1 - .../scatterpolargl/marker/_sizemin.py | 1 - .../scatterpolargl/marker/_sizemode.py | 1 - .../scatterpolargl/marker/_sizeref.py | 1 - .../scatterpolargl/marker/_sizesrc.py | 1 - .../scatterpolargl/marker/_symbol.py | 1 - .../scatterpolargl/marker/_symbolsrc.py | 1 - .../marker/colorbar/__init__.py | 2 + .../marker/colorbar/_bgcolor.py | 1 - .../marker/colorbar/_bordercolor.py | 1 - .../marker/colorbar/_borderwidth.py | 1 - .../scatterpolargl/marker/colorbar/_dtick.py | 1 - .../marker/colorbar/_exponentformat.py | 1 - .../scatterpolargl/marker/colorbar/_len.py | 1 - .../marker/colorbar/_lenmode.py | 1 - .../marker/colorbar/_minexponent.py | 1 - .../scatterpolargl/marker/colorbar/_nticks.py | 1 - .../marker/colorbar/_outlinecolor.py | 1 - .../marker/colorbar/_outlinewidth.py | 1 - .../marker/colorbar/_separatethousands.py | 1 - .../marker/colorbar/_showexponent.py | 1 - .../marker/colorbar/_showticklabels.py | 1 - .../marker/colorbar/_showtickprefix.py | 1 - .../marker/colorbar/_showticksuffix.py | 1 - .../marker/colorbar/_thickness.py | 1 - .../marker/colorbar/_thicknessmode.py | 1 - .../scatterpolargl/marker/colorbar/_tick0.py | 1 - .../marker/colorbar/_tickangle.py | 1 - .../marker/colorbar/_tickcolor.py | 1 - .../marker/colorbar/_tickformat.py | 1 - .../marker/colorbar/_ticklabeloverflow.py | 17 + .../marker/colorbar/_ticklabelposition.py | 1 - .../marker/colorbar/_ticklen.py | 1 - .../marker/colorbar/_tickmode.py | 1 - .../marker/colorbar/_tickprefix.py | 1 - .../scatterpolargl/marker/colorbar/_ticks.py | 1 - .../marker/colorbar/_ticksuffix.py | 1 - .../marker/colorbar/_ticktext.py | 1 - .../marker/colorbar/_ticktextsrc.py | 1 - .../marker/colorbar/_tickvals.py | 1 - .../marker/colorbar/_tickvalssrc.py | 1 - .../marker/colorbar/_tickwidth.py | 1 - .../scatterpolargl/marker/colorbar/_x.py | 1 - .../marker/colorbar/_xanchor.py | 1 - .../scatterpolargl/marker/colorbar/_xpad.py | 1 - .../scatterpolargl/marker/colorbar/_y.py | 1 - .../marker/colorbar/_yanchor.py | 1 - .../scatterpolargl/marker/colorbar/_ypad.py | 1 - .../marker/colorbar/tickfont/_color.py | 1 - .../marker/colorbar/tickfont/_family.py | 1 - .../marker/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../marker/colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../marker/colorbar/tickformatstop/_value.py | 1 - .../marker/colorbar/title/_side.py | 1 - .../marker/colorbar/title/_text.py | 1 - .../marker/colorbar/title/font/_color.py | 1 - .../marker/colorbar/title/font/_family.py | 1 - .../marker/colorbar/title/font/_size.py | 1 - .../marker/line/_autocolorscale.py | 1 - .../scatterpolargl/marker/line/_cauto.py | 1 - .../scatterpolargl/marker/line/_cmax.py | 1 - .../scatterpolargl/marker/line/_cmid.py | 1 - .../scatterpolargl/marker/line/_cmin.py | 1 - .../scatterpolargl/marker/line/_color.py | 1 - .../scatterpolargl/marker/line/_coloraxis.py | 1 - .../scatterpolargl/marker/line/_colorscale.py | 1 - .../scatterpolargl/marker/line/_colorsrc.py | 1 - .../marker/line/_reversescale.py | 1 - .../scatterpolargl/marker/line/_width.py | 1 - .../scatterpolargl/marker/line/_widthsrc.py | 1 - .../scatterpolargl/selected/marker/_color.py | 1 - .../selected/marker/_opacity.py | 1 - .../scatterpolargl/selected/marker/_size.py | 1 - .../selected/textfont/_color.py | 1 - .../scatterpolargl/stream/_maxpoints.py | 1 - .../scatterpolargl/stream/_token.py | 1 - .../scatterpolargl/textfont/_color.py | 1 - .../scatterpolargl/textfont/_colorsrc.py | 1 - .../scatterpolargl/textfont/_family.py | 1 - .../scatterpolargl/textfont/_familysrc.py | 1 - .../scatterpolargl/textfont/_size.py | 1 - .../scatterpolargl/textfont/_sizesrc.py | 1 - .../unselected/marker/_color.py | 1 - .../unselected/marker/_opacity.py | 1 - .../scatterpolargl/unselected/marker/_size.py | 1 - .../unselected/textfont/_color.py | 1 - .../plotly/validators/scatterternary/_a.py | 1 - .../plotly/validators/scatterternary/_asrc.py | 1 - .../plotly/validators/scatterternary/_b.py | 1 - .../plotly/validators/scatterternary/_bsrc.py | 1 - .../plotly/validators/scatterternary/_c.py | 1 - .../validators/scatterternary/_cliponaxis.py | 1 - .../validators/scatterternary/_connectgaps.py | 1 - .../plotly/validators/scatterternary/_csrc.py | 1 - .../validators/scatterternary/_customdata.py | 1 - .../scatterternary/_customdatasrc.py | 1 - .../plotly/validators/scatterternary/_fill.py | 1 - .../validators/scatterternary/_fillcolor.py | 1 - .../validators/scatterternary/_hoverinfo.py | 1 - .../scatterternary/_hoverinfosrc.py | 1 - .../validators/scatterternary/_hoveron.py | 1 - .../scatterternary/_hovertemplate.py | 1 - .../scatterternary/_hovertemplatesrc.py | 1 - .../validators/scatterternary/_hovertext.py | 1 - .../scatterternary/_hovertextsrc.py | 1 - .../plotly/validators/scatterternary/_ids.py | 1 - .../validators/scatterternary/_idssrc.py | 1 - .../validators/scatterternary/_legendgroup.py | 1 - .../plotly/validators/scatterternary/_meta.py | 1 - .../validators/scatterternary/_metasrc.py | 1 - .../plotly/validators/scatterternary/_mode.py | 1 - .../plotly/validators/scatterternary/_name.py | 1 - .../validators/scatterternary/_opacity.py | 1 - .../scatterternary/_selectedpoints.py | 1 - .../validators/scatterternary/_showlegend.py | 1 - .../validators/scatterternary/_subplot.py | 1 - .../plotly/validators/scatterternary/_sum.py | 1 - .../plotly/validators/scatterternary/_text.py | 1 - .../scatterternary/_textposition.py | 1 - .../scatterternary/_textpositionsrc.py | 1 - .../validators/scatterternary/_textsrc.py | 1 - .../scatterternary/_texttemplate.py | 1 - .../scatterternary/_texttemplatesrc.py | 1 - .../plotly/validators/scatterternary/_uid.py | 1 - .../validators/scatterternary/_uirevision.py | 1 - .../validators/scatterternary/_visible.py | 1 - .../scatterternary/hoverlabel/_align.py | 1 - .../scatterternary/hoverlabel/_alignsrc.py | 1 - .../scatterternary/hoverlabel/_bgcolor.py | 1 - .../scatterternary/hoverlabel/_bgcolorsrc.py | 1 - .../scatterternary/hoverlabel/_bordercolor.py | 1 - .../hoverlabel/_bordercolorsrc.py | 1 - .../scatterternary/hoverlabel/_namelength.py | 1 - .../hoverlabel/_namelengthsrc.py | 1 - .../scatterternary/hoverlabel/font/_color.py | 1 - .../hoverlabel/font/_colorsrc.py | 1 - .../scatterternary/hoverlabel/font/_family.py | 1 - .../hoverlabel/font/_familysrc.py | 1 - .../scatterternary/hoverlabel/font/_size.py | 1 - .../hoverlabel/font/_sizesrc.py | 1 - .../validators/scatterternary/line/_color.py | 1 - .../validators/scatterternary/line/_dash.py | 1 - .../validators/scatterternary/line/_shape.py | 1 - .../scatterternary/line/_smoothing.py | 1 - .../validators/scatterternary/line/_width.py | 1 - .../scatterternary/marker/_autocolorscale.py | 1 - .../scatterternary/marker/_cauto.py | 1 - .../validators/scatterternary/marker/_cmax.py | 1 - .../validators/scatterternary/marker/_cmid.py | 1 - .../validators/scatterternary/marker/_cmin.py | 1 - .../scatterternary/marker/_color.py | 1 - .../scatterternary/marker/_coloraxis.py | 1 - .../scatterternary/marker/_colorbar.py | 6 + .../scatterternary/marker/_colorscale.py | 1 - .../scatterternary/marker/_colorsrc.py | 1 - .../scatterternary/marker/_maxdisplayed.py | 1 - .../scatterternary/marker/_opacity.py | 1 - .../scatterternary/marker/_opacitysrc.py | 1 - .../scatterternary/marker/_reversescale.py | 1 - .../scatterternary/marker/_showscale.py | 1 - .../validators/scatterternary/marker/_size.py | 1 - .../scatterternary/marker/_sizemin.py | 1 - .../scatterternary/marker/_sizemode.py | 1 - .../scatterternary/marker/_sizeref.py | 1 - .../scatterternary/marker/_sizesrc.py | 1 - .../scatterternary/marker/_symbol.py | 1 - .../scatterternary/marker/_symbolsrc.py | 1 - .../marker/colorbar/__init__.py | 2 + .../marker/colorbar/_bgcolor.py | 1 - .../marker/colorbar/_bordercolor.py | 1 - .../marker/colorbar/_borderwidth.py | 1 - .../scatterternary/marker/colorbar/_dtick.py | 1 - .../marker/colorbar/_exponentformat.py | 1 - .../scatterternary/marker/colorbar/_len.py | 1 - .../marker/colorbar/_lenmode.py | 1 - .../marker/colorbar/_minexponent.py | 1 - .../scatterternary/marker/colorbar/_nticks.py | 1 - .../marker/colorbar/_outlinecolor.py | 1 - .../marker/colorbar/_outlinewidth.py | 1 - .../marker/colorbar/_separatethousands.py | 1 - .../marker/colorbar/_showexponent.py | 1 - .../marker/colorbar/_showticklabels.py | 1 - .../marker/colorbar/_showtickprefix.py | 1 - .../marker/colorbar/_showticksuffix.py | 1 - .../marker/colorbar/_thickness.py | 1 - .../marker/colorbar/_thicknessmode.py | 1 - .../scatterternary/marker/colorbar/_tick0.py | 1 - .../marker/colorbar/_tickangle.py | 1 - .../marker/colorbar/_tickcolor.py | 1 - .../marker/colorbar/_tickformat.py | 1 - .../marker/colorbar/_ticklabeloverflow.py | 17 + .../marker/colorbar/_ticklabelposition.py | 1 - .../marker/colorbar/_ticklen.py | 1 - .../marker/colorbar/_tickmode.py | 1 - .../marker/colorbar/_tickprefix.py | 1 - .../scatterternary/marker/colorbar/_ticks.py | 1 - .../marker/colorbar/_ticksuffix.py | 1 - .../marker/colorbar/_ticktext.py | 1 - .../marker/colorbar/_ticktextsrc.py | 1 - .../marker/colorbar/_tickvals.py | 1 - .../marker/colorbar/_tickvalssrc.py | 1 - .../marker/colorbar/_tickwidth.py | 1 - .../scatterternary/marker/colorbar/_x.py | 1 - .../marker/colorbar/_xanchor.py | 1 - .../scatterternary/marker/colorbar/_xpad.py | 1 - .../scatterternary/marker/colorbar/_y.py | 1 - .../marker/colorbar/_yanchor.py | 1 - .../scatterternary/marker/colorbar/_ypad.py | 1 - .../marker/colorbar/tickfont/_color.py | 1 - .../marker/colorbar/tickfont/_family.py | 1 - .../marker/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../marker/colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../marker/colorbar/tickformatstop/_value.py | 1 - .../marker/colorbar/title/_side.py | 1 - .../marker/colorbar/title/_text.py | 1 - .../marker/colorbar/title/font/_color.py | 1 - .../marker/colorbar/title/font/_family.py | 1 - .../marker/colorbar/title/font/_size.py | 1 - .../scatterternary/marker/gradient/_color.py | 1 - .../marker/gradient/_colorsrc.py | 1 - .../scatterternary/marker/gradient/_type.py | 1 - .../marker/gradient/_typesrc.py | 1 - .../marker/line/_autocolorscale.py | 1 - .../scatterternary/marker/line/_cauto.py | 1 - .../scatterternary/marker/line/_cmax.py | 1 - .../scatterternary/marker/line/_cmid.py | 1 - .../scatterternary/marker/line/_cmin.py | 1 - .../scatterternary/marker/line/_color.py | 1 - .../scatterternary/marker/line/_coloraxis.py | 1 - .../scatterternary/marker/line/_colorscale.py | 1 - .../scatterternary/marker/line/_colorsrc.py | 1 - .../marker/line/_reversescale.py | 1 - .../scatterternary/marker/line/_width.py | 1 - .../scatterternary/marker/line/_widthsrc.py | 1 - .../scatterternary/selected/marker/_color.py | 1 - .../selected/marker/_opacity.py | 1 - .../scatterternary/selected/marker/_size.py | 1 - .../selected/textfont/_color.py | 1 - .../scatterternary/stream/_maxpoints.py | 1 - .../scatterternary/stream/_token.py | 1 - .../scatterternary/textfont/_color.py | 1 - .../scatterternary/textfont/_colorsrc.py | 1 - .../scatterternary/textfont/_family.py | 1 - .../scatterternary/textfont/_familysrc.py | 1 - .../scatterternary/textfont/_size.py | 1 - .../scatterternary/textfont/_sizesrc.py | 1 - .../unselected/marker/_color.py | 1 - .../unselected/marker/_opacity.py | 1 - .../scatterternary/unselected/marker/_size.py | 1 - .../unselected/textfont/_color.py | 1 - .../plotly/validators/splom/__init__.py | 4 + .../plotly/validators/splom/_customdata.py | 1 - .../plotly/validators/splom/_customdatasrc.py | 1 - .../plotly/validators/splom/_hoverinfo.py | 1 - .../plotly/validators/splom/_hoverinfosrc.py | 1 - .../plotly/validators/splom/_hovertemplate.py | 1 - .../validators/splom/_hovertemplatesrc.py | 1 - .../plotly/validators/splom/_hovertext.py | 1 - .../plotly/validators/splom/_hovertextsrc.py | 1 - .../plotly/plotly/validators/splom/_ids.py | 1 - .../plotly/plotly/validators/splom/_idssrc.py | 1 - .../plotly/validators/splom/_legendgroup.py | 1 - .../plotly/plotly/validators/splom/_meta.py | 1 - .../plotly/validators/splom/_metasrc.py | 1 - .../plotly/plotly/validators/splom/_name.py | 1 - .../plotly/validators/splom/_opacity.py | 1 - .../validators/splom/_selectedpoints.py | 1 - .../plotly/validators/splom/_showlegend.py | 1 - .../plotly/validators/splom/_showlowerhalf.py | 1 - .../plotly/validators/splom/_showupperhalf.py | 1 - .../plotly/plotly/validators/splom/_text.py | 1 - .../plotly/validators/splom/_textsrc.py | 1 - .../plotly/plotly/validators/splom/_uid.py | 1 - .../plotly/validators/splom/_uirevision.py | 1 - .../plotly/validators/splom/_visible.py | 1 - .../plotly/plotly/validators/splom/_xaxes.py | 1 - .../plotly/validators/splom/_xhoverformat.py | 11 + .../plotly/plotly/validators/splom/_yaxes.py | 1 - .../plotly/validators/splom/_yhoverformat.py | 11 + .../validators/splom/diagonal/_visible.py | 1 - .../validators/splom/dimension/_label.py | 1 - .../validators/splom/dimension/_name.py | 1 - .../splom/dimension/_templateitemname.py | 1 - .../validators/splom/dimension/_values.py | 1 - .../validators/splom/dimension/_valuessrc.py | 1 - .../validators/splom/dimension/_visible.py | 1 - .../splom/dimension/axis/_matches.py | 1 - .../validators/splom/dimension/axis/_type.py | 1 - .../validators/splom/hoverlabel/_align.py | 1 - .../validators/splom/hoverlabel/_alignsrc.py | 1 - .../validators/splom/hoverlabel/_bgcolor.py | 1 - .../splom/hoverlabel/_bgcolorsrc.py | 1 - .../splom/hoverlabel/_bordercolor.py | 1 - .../splom/hoverlabel/_bordercolorsrc.py | 1 - .../splom/hoverlabel/_namelength.py | 1 - .../splom/hoverlabel/_namelengthsrc.py | 1 - .../splom/hoverlabel/font/_color.py | 1 - .../splom/hoverlabel/font/_colorsrc.py | 1 - .../splom/hoverlabel/font/_family.py | 1 - .../splom/hoverlabel/font/_familysrc.py | 1 - .../validators/splom/hoverlabel/font/_size.py | 1 - .../splom/hoverlabel/font/_sizesrc.py | 1 - .../splom/marker/_autocolorscale.py | 1 - .../plotly/validators/splom/marker/_cauto.py | 1 - .../plotly/validators/splom/marker/_cmax.py | 1 - .../plotly/validators/splom/marker/_cmid.py | 1 - .../plotly/validators/splom/marker/_cmin.py | 1 - .../plotly/validators/splom/marker/_color.py | 1 - .../validators/splom/marker/_coloraxis.py | 1 - .../validators/splom/marker/_colorbar.py | 6 + .../validators/splom/marker/_colorscale.py | 1 - .../validators/splom/marker/_colorsrc.py | 1 - .../validators/splom/marker/_opacity.py | 1 - .../validators/splom/marker/_opacitysrc.py | 1 - .../validators/splom/marker/_reversescale.py | 1 - .../validators/splom/marker/_showscale.py | 1 - .../plotly/validators/splom/marker/_size.py | 1 - .../validators/splom/marker/_sizemin.py | 1 - .../validators/splom/marker/_sizemode.py | 1 - .../validators/splom/marker/_sizeref.py | 1 - .../validators/splom/marker/_sizesrc.py | 1 - .../plotly/validators/splom/marker/_symbol.py | 1 - .../validators/splom/marker/_symbolsrc.py | 1 - .../splom/marker/colorbar/__init__.py | 2 + .../splom/marker/colorbar/_bgcolor.py | 1 - .../splom/marker/colorbar/_bordercolor.py | 1 - .../splom/marker/colorbar/_borderwidth.py | 1 - .../splom/marker/colorbar/_dtick.py | 1 - .../splom/marker/colorbar/_exponentformat.py | 1 - .../validators/splom/marker/colorbar/_len.py | 1 - .../splom/marker/colorbar/_lenmode.py | 1 - .../splom/marker/colorbar/_minexponent.py | 1 - .../splom/marker/colorbar/_nticks.py | 1 - .../splom/marker/colorbar/_outlinecolor.py | 1 - .../splom/marker/colorbar/_outlinewidth.py | 1 - .../marker/colorbar/_separatethousands.py | 1 - .../splom/marker/colorbar/_showexponent.py | 1 - .../splom/marker/colorbar/_showticklabels.py | 1 - .../splom/marker/colorbar/_showtickprefix.py | 1 - .../splom/marker/colorbar/_showticksuffix.py | 1 - .../splom/marker/colorbar/_thickness.py | 1 - .../splom/marker/colorbar/_thicknessmode.py | 1 - .../splom/marker/colorbar/_tick0.py | 1 - .../splom/marker/colorbar/_tickangle.py | 1 - .../splom/marker/colorbar/_tickcolor.py | 1 - .../splom/marker/colorbar/_tickformat.py | 1 - .../marker/colorbar/_ticklabeloverflow.py | 17 + .../marker/colorbar/_ticklabelposition.py | 1 - .../splom/marker/colorbar/_ticklen.py | 1 - .../splom/marker/colorbar/_tickmode.py | 1 - .../splom/marker/colorbar/_tickprefix.py | 1 - .../splom/marker/colorbar/_ticks.py | 1 - .../splom/marker/colorbar/_ticksuffix.py | 1 - .../splom/marker/colorbar/_ticktext.py | 1 - .../splom/marker/colorbar/_ticktextsrc.py | 1 - .../splom/marker/colorbar/_tickvals.py | 1 - .../splom/marker/colorbar/_tickvalssrc.py | 1 - .../splom/marker/colorbar/_tickwidth.py | 1 - .../validators/splom/marker/colorbar/_x.py | 1 - .../splom/marker/colorbar/_xanchor.py | 1 - .../validators/splom/marker/colorbar/_xpad.py | 1 - .../validators/splom/marker/colorbar/_y.py | 1 - .../splom/marker/colorbar/_yanchor.py | 1 - .../validators/splom/marker/colorbar/_ypad.py | 1 - .../splom/marker/colorbar/tickfont/_color.py | 1 - .../splom/marker/colorbar/tickfont/_family.py | 1 - .../splom/marker/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../marker/colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../marker/colorbar/tickformatstop/_value.py | 1 - .../splom/marker/colorbar/title/_side.py | 1 - .../splom/marker/colorbar/title/_text.py | 1 - .../marker/colorbar/title/font/_color.py | 1 - .../marker/colorbar/title/font/_family.py | 1 - .../splom/marker/colorbar/title/font/_size.py | 1 - .../splom/marker/line/_autocolorscale.py | 1 - .../validators/splom/marker/line/_cauto.py | 1 - .../validators/splom/marker/line/_cmax.py | 1 - .../validators/splom/marker/line/_cmid.py | 1 - .../validators/splom/marker/line/_cmin.py | 1 - .../validators/splom/marker/line/_color.py | 1 - .../splom/marker/line/_coloraxis.py | 1 - .../splom/marker/line/_colorscale.py | 1 - .../validators/splom/marker/line/_colorsrc.py | 1 - .../splom/marker/line/_reversescale.py | 1 - .../validators/splom/marker/line/_width.py | 1 - .../validators/splom/marker/line/_widthsrc.py | 1 - .../splom/selected/marker/_color.py | 1 - .../splom/selected/marker/_opacity.py | 1 - .../validators/splom/selected/marker/_size.py | 1 - .../validators/splom/stream/_maxpoints.py | 1 - .../plotly/validators/splom/stream/_token.py | 1 - .../splom/unselected/marker/_color.py | 1 - .../splom/unselected/marker/_opacity.py | 1 - .../splom/unselected/marker/_size.py | 1 - .../plotly/validators/streamtube/__init__.py | 12 + .../validators/streamtube/_autocolorscale.py | 1 - .../plotly/validators/streamtube/_cauto.py | 1 - .../plotly/validators/streamtube/_cmax.py | 1 - .../plotly/validators/streamtube/_cmid.py | 1 - .../plotly/validators/streamtube/_cmin.py | 1 - .../validators/streamtube/_coloraxis.py | 1 - .../plotly/validators/streamtube/_colorbar.py | 6 + .../validators/streamtube/_colorscale.py | 1 - .../validators/streamtube/_customdata.py | 1 - .../validators/streamtube/_customdatasrc.py | 1 - .../validators/streamtube/_hoverinfo.py | 1 - .../validators/streamtube/_hoverinfosrc.py | 1 - .../validators/streamtube/_hovertemplate.py | 1 - .../streamtube/_hovertemplatesrc.py | 1 - .../validators/streamtube/_hovertext.py | 1 - .../plotly/validators/streamtube/_ids.py | 1 - .../plotly/validators/streamtube/_idssrc.py | 1 - .../validators/streamtube/_legendgroup.py | 1 - .../validators/streamtube/_maxdisplayed.py | 1 - .../plotly/validators/streamtube/_meta.py | 1 - .../plotly/validators/streamtube/_metasrc.py | 1 - .../plotly/validators/streamtube/_name.py | 1 - .../plotly/validators/streamtube/_opacity.py | 1 - .../validators/streamtube/_reversescale.py | 1 - .../plotly/validators/streamtube/_scene.py | 1 - .../validators/streamtube/_showlegend.py | 1 - .../validators/streamtube/_showscale.py | 1 - .../plotly/validators/streamtube/_sizeref.py | 1 - .../plotly/validators/streamtube/_text.py | 1 - .../plotly/plotly/validators/streamtube/_u.py | 1 - .../validators/streamtube/_uhoverformat.py | 11 + .../plotly/validators/streamtube/_uid.py | 1 - .../validators/streamtube/_uirevision.py | 1 - .../plotly/validators/streamtube/_usrc.py | 1 - .../plotly/plotly/validators/streamtube/_v.py | 1 - .../validators/streamtube/_vhoverformat.py | 11 + .../plotly/validators/streamtube/_visible.py | 1 - .../plotly/validators/streamtube/_vsrc.py | 1 - .../plotly/plotly/validators/streamtube/_w.py | 1 - .../validators/streamtube/_whoverformat.py | 11 + .../plotly/validators/streamtube/_wsrc.py | 1 - .../plotly/plotly/validators/streamtube/_x.py | 1 - .../validators/streamtube/_xhoverformat.py | 11 + .../plotly/validators/streamtube/_xsrc.py | 1 - .../plotly/plotly/validators/streamtube/_y.py | 1 - .../validators/streamtube/_yhoverformat.py | 11 + .../plotly/validators/streamtube/_ysrc.py | 1 - .../plotly/plotly/validators/streamtube/_z.py | 1 - .../validators/streamtube/_zhoverformat.py | 11 + .../plotly/validators/streamtube/_zsrc.py | 1 - .../streamtube/colorbar/__init__.py | 2 + .../streamtube/colorbar/_bgcolor.py | 1 - .../streamtube/colorbar/_bordercolor.py | 1 - .../streamtube/colorbar/_borderwidth.py | 1 - .../validators/streamtube/colorbar/_dtick.py | 1 - .../streamtube/colorbar/_exponentformat.py | 1 - .../validators/streamtube/colorbar/_len.py | 1 - .../streamtube/colorbar/_lenmode.py | 1 - .../streamtube/colorbar/_minexponent.py | 1 - .../validators/streamtube/colorbar/_nticks.py | 1 - .../streamtube/colorbar/_outlinecolor.py | 1 - .../streamtube/colorbar/_outlinewidth.py | 1 - .../streamtube/colorbar/_separatethousands.py | 1 - .../streamtube/colorbar/_showexponent.py | 1 - .../streamtube/colorbar/_showticklabels.py | 1 - .../streamtube/colorbar/_showtickprefix.py | 1 - .../streamtube/colorbar/_showticksuffix.py | 1 - .../streamtube/colorbar/_thickness.py | 1 - .../streamtube/colorbar/_thicknessmode.py | 1 - .../validators/streamtube/colorbar/_tick0.py | 1 - .../streamtube/colorbar/_tickangle.py | 1 - .../streamtube/colorbar/_tickcolor.py | 1 - .../streamtube/colorbar/_tickformat.py | 1 - .../streamtube/colorbar/_ticklabeloverflow.py | 17 + .../streamtube/colorbar/_ticklabelposition.py | 1 - .../streamtube/colorbar/_ticklen.py | 1 - .../streamtube/colorbar/_tickmode.py | 1 - .../streamtube/colorbar/_tickprefix.py | 1 - .../validators/streamtube/colorbar/_ticks.py | 1 - .../streamtube/colorbar/_ticksuffix.py | 1 - .../streamtube/colorbar/_ticktext.py | 1 - .../streamtube/colorbar/_ticktextsrc.py | 1 - .../streamtube/colorbar/_tickvals.py | 1 - .../streamtube/colorbar/_tickvalssrc.py | 1 - .../streamtube/colorbar/_tickwidth.py | 1 - .../validators/streamtube/colorbar/_x.py | 1 - .../streamtube/colorbar/_xanchor.py | 1 - .../validators/streamtube/colorbar/_xpad.py | 1 - .../validators/streamtube/colorbar/_y.py | 1 - .../streamtube/colorbar/_yanchor.py | 1 - .../validators/streamtube/colorbar/_ypad.py | 1 - .../streamtube/colorbar/tickfont/_color.py | 1 - .../streamtube/colorbar/tickfont/_family.py | 1 - .../streamtube/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../colorbar/tickformatstop/_value.py | 1 - .../streamtube/colorbar/title/_side.py | 1 - .../streamtube/colorbar/title/_text.py | 1 - .../streamtube/colorbar/title/font/_color.py | 1 - .../streamtube/colorbar/title/font/_family.py | 1 - .../streamtube/colorbar/title/font/_size.py | 1 - .../streamtube/hoverlabel/_align.py | 1 - .../streamtube/hoverlabel/_alignsrc.py | 1 - .../streamtube/hoverlabel/_bgcolor.py | 1 - .../streamtube/hoverlabel/_bgcolorsrc.py | 1 - .../streamtube/hoverlabel/_bordercolor.py | 1 - .../streamtube/hoverlabel/_bordercolorsrc.py | 1 - .../streamtube/hoverlabel/_namelength.py | 1 - .../streamtube/hoverlabel/_namelengthsrc.py | 1 - .../streamtube/hoverlabel/font/_color.py | 1 - .../streamtube/hoverlabel/font/_colorsrc.py | 1 - .../streamtube/hoverlabel/font/_family.py | 1 - .../streamtube/hoverlabel/font/_familysrc.py | 1 - .../streamtube/hoverlabel/font/_size.py | 1 - .../streamtube/hoverlabel/font/_sizesrc.py | 1 - .../streamtube/lighting/_ambient.py | 1 - .../streamtube/lighting/_diffuse.py | 1 - .../lighting/_facenormalsepsilon.py | 1 - .../streamtube/lighting/_fresnel.py | 1 - .../streamtube/lighting/_roughness.py | 1 - .../streamtube/lighting/_specular.py | 1 - .../lighting/_vertexnormalsepsilon.py | 1 - .../validators/streamtube/lightposition/_x.py | 1 - .../validators/streamtube/lightposition/_y.py | 1 - .../validators/streamtube/lightposition/_z.py | 1 - .../plotly/validators/streamtube/starts/_x.py | 1 - .../validators/streamtube/starts/_xsrc.py | 1 - .../plotly/validators/streamtube/starts/_y.py | 1 - .../validators/streamtube/starts/_ysrc.py | 1 - .../plotly/validators/streamtube/starts/_z.py | 1 - .../validators/streamtube/starts/_zsrc.py | 1 - .../streamtube/stream/_maxpoints.py | 1 - .../validators/streamtube/stream/_token.py | 1 - .../validators/sunburst/_branchvalues.py | 1 - .../plotly/validators/sunburst/_count.py | 1 - .../plotly/validators/sunburst/_customdata.py | 1 - .../validators/sunburst/_customdatasrc.py | 1 - .../plotly/validators/sunburst/_hoverinfo.py | 1 - .../validators/sunburst/_hoverinfosrc.py | 1 - .../validators/sunburst/_hovertemplate.py | 1 - .../validators/sunburst/_hovertemplatesrc.py | 1 - .../plotly/validators/sunburst/_hovertext.py | 1 - .../validators/sunburst/_hovertextsrc.py | 1 - .../plotly/plotly/validators/sunburst/_ids.py | 1 - .../plotly/validators/sunburst/_idssrc.py | 1 - .../sunburst/_insidetextorientation.py | 1 - .../plotly/validators/sunburst/_labels.py | 1 - .../plotly/validators/sunburst/_labelssrc.py | 1 - .../plotly/validators/sunburst/_level.py | 1 - .../plotly/validators/sunburst/_maxdepth.py | 1 - .../plotly/validators/sunburst/_meta.py | 1 - .../plotly/validators/sunburst/_metasrc.py | 1 - .../plotly/validators/sunburst/_name.py | 1 - .../plotly/validators/sunburst/_opacity.py | 1 - .../plotly/validators/sunburst/_parents.py | 1 - .../plotly/validators/sunburst/_parentssrc.py | 1 - .../plotly/validators/sunburst/_rotation.py | 1 - .../plotly/validators/sunburst/_sort.py | 1 - .../plotly/validators/sunburst/_text.py | 1 - .../plotly/validators/sunburst/_textinfo.py | 1 - .../plotly/validators/sunburst/_textsrc.py | 1 - .../validators/sunburst/_texttemplate.py | 1 - .../validators/sunburst/_texttemplatesrc.py | 1 - .../plotly/plotly/validators/sunburst/_uid.py | 1 - .../plotly/validators/sunburst/_uirevision.py | 1 - .../plotly/validators/sunburst/_values.py | 1 - .../plotly/validators/sunburst/_valuessrc.py | 1 - .../plotly/validators/sunburst/_visible.py | 1 - .../validators/sunburst/domain/_column.py | 1 - .../plotly/validators/sunburst/domain/_row.py | 1 - .../plotly/validators/sunburst/domain/_x.py | 1 - .../plotly/validators/sunburst/domain/_y.py | 1 - .../validators/sunburst/hoverlabel/_align.py | 1 - .../sunburst/hoverlabel/_alignsrc.py | 1 - .../sunburst/hoverlabel/_bgcolor.py | 1 - .../sunburst/hoverlabel/_bgcolorsrc.py | 1 - .../sunburst/hoverlabel/_bordercolor.py | 1 - .../sunburst/hoverlabel/_bordercolorsrc.py | 1 - .../sunburst/hoverlabel/_namelength.py | 1 - .../sunburst/hoverlabel/_namelengthsrc.py | 1 - .../sunburst/hoverlabel/font/_color.py | 1 - .../sunburst/hoverlabel/font/_colorsrc.py | 1 - .../sunburst/hoverlabel/font/_family.py | 1 - .../sunburst/hoverlabel/font/_familysrc.py | 1 - .../sunburst/hoverlabel/font/_size.py | 1 - .../sunburst/hoverlabel/font/_sizesrc.py | 1 - .../sunburst/insidetextfont/_color.py | 1 - .../sunburst/insidetextfont/_colorsrc.py | 1 - .../sunburst/insidetextfont/_family.py | 1 - .../sunburst/insidetextfont/_familysrc.py | 1 - .../sunburst/insidetextfont/_size.py | 1 - .../sunburst/insidetextfont/_sizesrc.py | 1 - .../validators/sunburst/leaf/_opacity.py | 1 - .../sunburst/marker/_autocolorscale.py | 1 - .../validators/sunburst/marker/_cauto.py | 1 - .../validators/sunburst/marker/_cmax.py | 1 - .../validators/sunburst/marker/_cmid.py | 1 - .../validators/sunburst/marker/_cmin.py | 1 - .../validators/sunburst/marker/_coloraxis.py | 1 - .../validators/sunburst/marker/_colorbar.py | 6 + .../validators/sunburst/marker/_colors.py | 1 - .../validators/sunburst/marker/_colorscale.py | 1 - .../validators/sunburst/marker/_colorssrc.py | 1 - .../sunburst/marker/_reversescale.py | 1 - .../validators/sunburst/marker/_showscale.py | 1 - .../sunburst/marker/colorbar/__init__.py | 2 + .../sunburst/marker/colorbar/_bgcolor.py | 1 - .../sunburst/marker/colorbar/_bordercolor.py | 1 - .../sunburst/marker/colorbar/_borderwidth.py | 1 - .../sunburst/marker/colorbar/_dtick.py | 1 - .../marker/colorbar/_exponentformat.py | 1 - .../sunburst/marker/colorbar/_len.py | 1 - .../sunburst/marker/colorbar/_lenmode.py | 1 - .../sunburst/marker/colorbar/_minexponent.py | 1 - .../sunburst/marker/colorbar/_nticks.py | 1 - .../sunburst/marker/colorbar/_outlinecolor.py | 1 - .../sunburst/marker/colorbar/_outlinewidth.py | 1 - .../marker/colorbar/_separatethousands.py | 1 - .../sunburst/marker/colorbar/_showexponent.py | 1 - .../marker/colorbar/_showticklabels.py | 1 - .../marker/colorbar/_showtickprefix.py | 1 - .../marker/colorbar/_showticksuffix.py | 1 - .../sunburst/marker/colorbar/_thickness.py | 1 - .../marker/colorbar/_thicknessmode.py | 1 - .../sunburst/marker/colorbar/_tick0.py | 1 - .../sunburst/marker/colorbar/_tickangle.py | 1 - .../sunburst/marker/colorbar/_tickcolor.py | 1 - .../sunburst/marker/colorbar/_tickformat.py | 1 - .../marker/colorbar/_ticklabeloverflow.py | 17 + .../marker/colorbar/_ticklabelposition.py | 1 - .../sunburst/marker/colorbar/_ticklen.py | 1 - .../sunburst/marker/colorbar/_tickmode.py | 1 - .../sunburst/marker/colorbar/_tickprefix.py | 1 - .../sunburst/marker/colorbar/_ticks.py | 1 - .../sunburst/marker/colorbar/_ticksuffix.py | 1 - .../sunburst/marker/colorbar/_ticktext.py | 1 - .../sunburst/marker/colorbar/_ticktextsrc.py | 1 - .../sunburst/marker/colorbar/_tickvals.py | 1 - .../sunburst/marker/colorbar/_tickvalssrc.py | 1 - .../sunburst/marker/colorbar/_tickwidth.py | 1 - .../validators/sunburst/marker/colorbar/_x.py | 1 - .../sunburst/marker/colorbar/_xanchor.py | 1 - .../sunburst/marker/colorbar/_xpad.py | 1 - .../validators/sunburst/marker/colorbar/_y.py | 1 - .../sunburst/marker/colorbar/_yanchor.py | 1 - .../sunburst/marker/colorbar/_ypad.py | 1 - .../marker/colorbar/tickfont/_color.py | 1 - .../marker/colorbar/tickfont/_family.py | 1 - .../marker/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../marker/colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../marker/colorbar/tickformatstop/_value.py | 1 - .../sunburst/marker/colorbar/title/_side.py | 1 - .../sunburst/marker/colorbar/title/_text.py | 1 - .../marker/colorbar/title/font/_color.py | 1 - .../marker/colorbar/title/font/_family.py | 1 - .../marker/colorbar/title/font/_size.py | 1 - .../validators/sunburst/marker/line/_color.py | 1 - .../sunburst/marker/line/_colorsrc.py | 1 - .../validators/sunburst/marker/line/_width.py | 1 - .../sunburst/marker/line/_widthsrc.py | 1 - .../sunburst/outsidetextfont/_color.py | 1 - .../sunburst/outsidetextfont/_colorsrc.py | 1 - .../sunburst/outsidetextfont/_family.py | 1 - .../sunburst/outsidetextfont/_familysrc.py | 1 - .../sunburst/outsidetextfont/_size.py | 1 - .../sunburst/outsidetextfont/_sizesrc.py | 1 - .../plotly/validators/sunburst/root/_color.py | 1 - .../validators/sunburst/stream/_maxpoints.py | 1 - .../validators/sunburst/stream/_token.py | 1 - .../validators/sunburst/textfont/_color.py | 1 - .../validators/sunburst/textfont/_colorsrc.py | 1 - .../validators/sunburst/textfont/_family.py | 1 - .../sunburst/textfont/_familysrc.py | 1 - .../validators/sunburst/textfont/_size.py | 1 - .../validators/sunburst/textfont/_sizesrc.py | 1 - .../plotly/validators/surface/__init__.py | 6 + .../validators/surface/_autocolorscale.py | 1 - .../plotly/validators/surface/_cauto.py | 1 - .../plotly/plotly/validators/surface/_cmax.py | 1 - .../plotly/plotly/validators/surface/_cmid.py | 1 - .../plotly/plotly/validators/surface/_cmin.py | 1 - .../plotly/validators/surface/_coloraxis.py | 1 - .../plotly/validators/surface/_colorbar.py | 6 + .../plotly/validators/surface/_colorscale.py | 1 - .../plotly/validators/surface/_connectgaps.py | 1 - .../plotly/validators/surface/_customdata.py | 1 - .../validators/surface/_customdatasrc.py | 1 - .../plotly/validators/surface/_hidesurface.py | 1 - .../plotly/validators/surface/_hoverinfo.py | 1 - .../validators/surface/_hoverinfosrc.py | 1 - .../validators/surface/_hovertemplate.py | 1 - .../validators/surface/_hovertemplatesrc.py | 1 - .../plotly/validators/surface/_hovertext.py | 1 - .../validators/surface/_hovertextsrc.py | 1 - .../plotly/plotly/validators/surface/_ids.py | 1 - .../plotly/validators/surface/_idssrc.py | 1 - .../plotly/validators/surface/_legendgroup.py | 1 - .../plotly/plotly/validators/surface/_meta.py | 1 - .../plotly/validators/surface/_metasrc.py | 1 - .../plotly/plotly/validators/surface/_name.py | 1 - .../plotly/validators/surface/_opacity.py | 1 - .../validators/surface/_opacityscale.py | 1 - .../validators/surface/_reversescale.py | 1 - .../plotly/validators/surface/_scene.py | 1 - .../plotly/validators/surface/_showlegend.py | 1 - .../plotly/validators/surface/_showscale.py | 1 - .../validators/surface/_surfacecolor.py | 1 - .../validators/surface/_surfacecolorsrc.py | 1 - .../plotly/plotly/validators/surface/_text.py | 1 - .../plotly/validators/surface/_textsrc.py | 1 - .../plotly/plotly/validators/surface/_uid.py | 1 - .../plotly/validators/surface/_uirevision.py | 1 - .../plotly/validators/surface/_visible.py | 1 - .../plotly/plotly/validators/surface/_x.py | 1 - .../plotly/validators/surface/_xcalendar.py | 1 - .../validators/surface/_xhoverformat.py | 11 + .../plotly/plotly/validators/surface/_xsrc.py | 1 - .../plotly/plotly/validators/surface/_y.py | 1 - .../plotly/validators/surface/_ycalendar.py | 1 - .../validators/surface/_yhoverformat.py | 11 + .../plotly/plotly/validators/surface/_ysrc.py | 1 - .../plotly/plotly/validators/surface/_z.py | 1 - .../plotly/validators/surface/_zcalendar.py | 1 - .../validators/surface/_zhoverformat.py | 11 + .../plotly/plotly/validators/surface/_zsrc.py | 1 - .../validators/surface/colorbar/__init__.py | 2 + .../validators/surface/colorbar/_bgcolor.py | 1 - .../surface/colorbar/_bordercolor.py | 1 - .../surface/colorbar/_borderwidth.py | 1 - .../validators/surface/colorbar/_dtick.py | 1 - .../surface/colorbar/_exponentformat.py | 1 - .../validators/surface/colorbar/_len.py | 1 - .../validators/surface/colorbar/_lenmode.py | 1 - .../surface/colorbar/_minexponent.py | 1 - .../validators/surface/colorbar/_nticks.py | 1 - .../surface/colorbar/_outlinecolor.py | 1 - .../surface/colorbar/_outlinewidth.py | 1 - .../surface/colorbar/_separatethousands.py | 1 - .../surface/colorbar/_showexponent.py | 1 - .../surface/colorbar/_showticklabels.py | 1 - .../surface/colorbar/_showtickprefix.py | 1 - .../surface/colorbar/_showticksuffix.py | 1 - .../validators/surface/colorbar/_thickness.py | 1 - .../surface/colorbar/_thicknessmode.py | 1 - .../validators/surface/colorbar/_tick0.py | 1 - .../validators/surface/colorbar/_tickangle.py | 1 - .../validators/surface/colorbar/_tickcolor.py | 1 - .../surface/colorbar/_tickformat.py | 1 - .../surface/colorbar/_ticklabeloverflow.py | 14 + .../surface/colorbar/_ticklabelposition.py | 1 - .../validators/surface/colorbar/_ticklen.py | 1 - .../validators/surface/colorbar/_tickmode.py | 1 - .../surface/colorbar/_tickprefix.py | 1 - .../validators/surface/colorbar/_ticks.py | 1 - .../surface/colorbar/_ticksuffix.py | 1 - .../validators/surface/colorbar/_ticktext.py | 1 - .../surface/colorbar/_ticktextsrc.py | 1 - .../validators/surface/colorbar/_tickvals.py | 1 - .../surface/colorbar/_tickvalssrc.py | 1 - .../validators/surface/colorbar/_tickwidth.py | 1 - .../plotly/validators/surface/colorbar/_x.py | 1 - .../validators/surface/colorbar/_xanchor.py | 1 - .../validators/surface/colorbar/_xpad.py | 1 - .../plotly/validators/surface/colorbar/_y.py | 1 - .../validators/surface/colorbar/_yanchor.py | 1 - .../validators/surface/colorbar/_ypad.py | 1 - .../surface/colorbar/tickfont/_color.py | 1 - .../surface/colorbar/tickfont/_family.py | 1 - .../surface/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../surface/colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../surface/colorbar/tickformatstop/_value.py | 1 - .../surface/colorbar/title/_side.py | 1 - .../surface/colorbar/title/_text.py | 1 - .../surface/colorbar/title/font/_color.py | 1 - .../surface/colorbar/title/font/_family.py | 1 - .../surface/colorbar/title/font/_size.py | 1 - .../validators/surface/contours/x/_color.py | 1 - .../validators/surface/contours/x/_end.py | 1 - .../surface/contours/x/_highlight.py | 1 - .../surface/contours/x/_highlightcolor.py | 1 - .../surface/contours/x/_highlightwidth.py | 1 - .../validators/surface/contours/x/_show.py | 1 - .../validators/surface/contours/x/_size.py | 1 - .../validators/surface/contours/x/_start.py | 1 - .../surface/contours/x/_usecolormap.py | 1 - .../validators/surface/contours/x/_width.py | 1 - .../surface/contours/x/project/_x.py | 1 - .../surface/contours/x/project/_y.py | 1 - .../surface/contours/x/project/_z.py | 1 - .../validators/surface/contours/y/_color.py | 1 - .../validators/surface/contours/y/_end.py | 1 - .../surface/contours/y/_highlight.py | 1 - .../surface/contours/y/_highlightcolor.py | 1 - .../surface/contours/y/_highlightwidth.py | 1 - .../validators/surface/contours/y/_show.py | 1 - .../validators/surface/contours/y/_size.py | 1 - .../validators/surface/contours/y/_start.py | 1 - .../surface/contours/y/_usecolormap.py | 1 - .../validators/surface/contours/y/_width.py | 1 - .../surface/contours/y/project/_x.py | 1 - .../surface/contours/y/project/_y.py | 1 - .../surface/contours/y/project/_z.py | 1 - .../validators/surface/contours/z/_color.py | 1 - .../validators/surface/contours/z/_end.py | 1 - .../surface/contours/z/_highlight.py | 1 - .../surface/contours/z/_highlightcolor.py | 1 - .../surface/contours/z/_highlightwidth.py | 1 - .../validators/surface/contours/z/_show.py | 1 - .../validators/surface/contours/z/_size.py | 1 - .../validators/surface/contours/z/_start.py | 1 - .../surface/contours/z/_usecolormap.py | 1 - .../validators/surface/contours/z/_width.py | 1 - .../surface/contours/z/project/_x.py | 1 - .../surface/contours/z/project/_y.py | 1 - .../surface/contours/z/project/_z.py | 1 - .../validators/surface/hoverlabel/_align.py | 1 - .../surface/hoverlabel/_alignsrc.py | 1 - .../validators/surface/hoverlabel/_bgcolor.py | 1 - .../surface/hoverlabel/_bgcolorsrc.py | 1 - .../surface/hoverlabel/_bordercolor.py | 1 - .../surface/hoverlabel/_bordercolorsrc.py | 1 - .../surface/hoverlabel/_namelength.py | 1 - .../surface/hoverlabel/_namelengthsrc.py | 1 - .../surface/hoverlabel/font/_color.py | 1 - .../surface/hoverlabel/font/_colorsrc.py | 1 - .../surface/hoverlabel/font/_family.py | 1 - .../surface/hoverlabel/font/_familysrc.py | 1 - .../surface/hoverlabel/font/_size.py | 1 - .../surface/hoverlabel/font/_sizesrc.py | 1 - .../validators/surface/lighting/_ambient.py | 1 - .../validators/surface/lighting/_diffuse.py | 1 - .../validators/surface/lighting/_fresnel.py | 1 - .../validators/surface/lighting/_roughness.py | 1 - .../validators/surface/lighting/_specular.py | 1 - .../validators/surface/lightposition/_x.py | 1 - .../validators/surface/lightposition/_y.py | 1 - .../validators/surface/lightposition/_z.py | 1 - .../validators/surface/stream/_maxpoints.py | 1 - .../validators/surface/stream/_token.py | 1 - .../plotly/validators/table/_columnorder.py | 1 - .../validators/table/_columnordersrc.py | 1 - .../plotly/validators/table/_columnwidth.py | 1 - .../validators/table/_columnwidthsrc.py | 1 - .../plotly/validators/table/_customdata.py | 1 - .../plotly/validators/table/_customdatasrc.py | 1 - .../plotly/validators/table/_hoverinfo.py | 1 - .../plotly/validators/table/_hoverinfosrc.py | 1 - .../plotly/plotly/validators/table/_ids.py | 1 - .../plotly/plotly/validators/table/_idssrc.py | 1 - .../plotly/plotly/validators/table/_meta.py | 1 - .../plotly/validators/table/_metasrc.py | 1 - .../plotly/plotly/validators/table/_name.py | 1 - .../plotly/plotly/validators/table/_uid.py | 1 - .../plotly/validators/table/_uirevision.py | 1 - .../plotly/validators/table/_visible.py | 1 - .../plotly/validators/table/cells/_align.py | 1 - .../validators/table/cells/_alignsrc.py | 1 - .../plotly/validators/table/cells/_format.py | 1 - .../validators/table/cells/_formatsrc.py | 1 - .../plotly/validators/table/cells/_height.py | 1 - .../plotly/validators/table/cells/_prefix.py | 1 - .../validators/table/cells/_prefixsrc.py | 1 - .../plotly/validators/table/cells/_suffix.py | 1 - .../validators/table/cells/_suffixsrc.py | 1 - .../plotly/validators/table/cells/_values.py | 1 - .../validators/table/cells/_valuessrc.py | 1 - .../validators/table/cells/fill/_color.py | 1 - .../validators/table/cells/fill/_colorsrc.py | 1 - .../validators/table/cells/font/_color.py | 1 - .../validators/table/cells/font/_colorsrc.py | 1 - .../validators/table/cells/font/_family.py | 1 - .../validators/table/cells/font/_familysrc.py | 1 - .../validators/table/cells/font/_size.py | 1 - .../validators/table/cells/font/_sizesrc.py | 1 - .../validators/table/cells/line/_color.py | 1 - .../validators/table/cells/line/_colorsrc.py | 1 - .../validators/table/cells/line/_width.py | 1 - .../validators/table/cells/line/_widthsrc.py | 1 - .../plotly/validators/table/domain/_column.py | 1 - .../plotly/validators/table/domain/_row.py | 1 - .../plotly/validators/table/domain/_x.py | 1 - .../plotly/validators/table/domain/_y.py | 1 - .../plotly/validators/table/header/_align.py | 1 - .../validators/table/header/_alignsrc.py | 1 - .../plotly/validators/table/header/_format.py | 1 - .../validators/table/header/_formatsrc.py | 1 - .../plotly/validators/table/header/_height.py | 1 - .../plotly/validators/table/header/_prefix.py | 1 - .../validators/table/header/_prefixsrc.py | 1 - .../plotly/validators/table/header/_suffix.py | 1 - .../validators/table/header/_suffixsrc.py | 1 - .../plotly/validators/table/header/_values.py | 1 - .../validators/table/header/_valuessrc.py | 1 - .../validators/table/header/fill/_color.py | 1 - .../validators/table/header/fill/_colorsrc.py | 1 - .../validators/table/header/font/_color.py | 1 - .../validators/table/header/font/_colorsrc.py | 1 - .../validators/table/header/font/_family.py | 1 - .../table/header/font/_familysrc.py | 1 - .../validators/table/header/font/_size.py | 1 - .../validators/table/header/font/_sizesrc.py | 1 - .../validators/table/header/line/_color.py | 1 - .../validators/table/header/line/_colorsrc.py | 1 - .../validators/table/header/line/_width.py | 1 - .../validators/table/header/line/_widthsrc.py | 1 - .../validators/table/hoverlabel/_align.py | 1 - .../validators/table/hoverlabel/_alignsrc.py | 1 - .../validators/table/hoverlabel/_bgcolor.py | 1 - .../table/hoverlabel/_bgcolorsrc.py | 1 - .../table/hoverlabel/_bordercolor.py | 1 - .../table/hoverlabel/_bordercolorsrc.py | 1 - .../table/hoverlabel/_namelength.py | 1 - .../table/hoverlabel/_namelengthsrc.py | 1 - .../table/hoverlabel/font/_color.py | 1 - .../table/hoverlabel/font/_colorsrc.py | 1 - .../table/hoverlabel/font/_family.py | 1 - .../table/hoverlabel/font/_familysrc.py | 1 - .../validators/table/hoverlabel/font/_size.py | 1 - .../table/hoverlabel/font/_sizesrc.py | 1 - .../validators/table/stream/_maxpoints.py | 1 - .../plotly/validators/table/stream/_token.py | 1 - .../validators/treemap/_branchvalues.py | 1 - .../plotly/validators/treemap/_count.py | 1 - .../plotly/validators/treemap/_customdata.py | 1 - .../validators/treemap/_customdatasrc.py | 1 - .../plotly/validators/treemap/_hoverinfo.py | 1 - .../validators/treemap/_hoverinfosrc.py | 1 - .../validators/treemap/_hovertemplate.py | 1 - .../validators/treemap/_hovertemplatesrc.py | 1 - .../plotly/validators/treemap/_hovertext.py | 1 - .../validators/treemap/_hovertextsrc.py | 1 - .../plotly/plotly/validators/treemap/_ids.py | 1 - .../plotly/validators/treemap/_idssrc.py | 1 - .../plotly/validators/treemap/_labels.py | 1 - .../plotly/validators/treemap/_labelssrc.py | 1 - .../plotly/validators/treemap/_level.py | 1 - .../plotly/validators/treemap/_maxdepth.py | 1 - .../plotly/plotly/validators/treemap/_meta.py | 1 - .../plotly/validators/treemap/_metasrc.py | 1 - .../plotly/plotly/validators/treemap/_name.py | 1 - .../plotly/validators/treemap/_opacity.py | 1 - .../plotly/validators/treemap/_parents.py | 1 - .../plotly/validators/treemap/_parentssrc.py | 1 - .../plotly/plotly/validators/treemap/_sort.py | 1 - .../plotly/plotly/validators/treemap/_text.py | 1 - .../plotly/validators/treemap/_textinfo.py | 1 - .../validators/treemap/_textposition.py | 1 - .../plotly/validators/treemap/_textsrc.py | 1 - .../validators/treemap/_texttemplate.py | 1 - .../validators/treemap/_texttemplatesrc.py | 1 - .../plotly/plotly/validators/treemap/_uid.py | 1 - .../plotly/validators/treemap/_uirevision.py | 1 - .../plotly/validators/treemap/_values.py | 1 - .../plotly/validators/treemap/_valuessrc.py | 1 - .../plotly/validators/treemap/_visible.py | 1 - .../validators/treemap/domain/_column.py | 1 - .../plotly/validators/treemap/domain/_row.py | 1 - .../plotly/validators/treemap/domain/_x.py | 1 - .../plotly/validators/treemap/domain/_y.py | 1 - .../validators/treemap/hoverlabel/_align.py | 1 - .../treemap/hoverlabel/_alignsrc.py | 1 - .../validators/treemap/hoverlabel/_bgcolor.py | 1 - .../treemap/hoverlabel/_bgcolorsrc.py | 1 - .../treemap/hoverlabel/_bordercolor.py | 1 - .../treemap/hoverlabel/_bordercolorsrc.py | 1 - .../treemap/hoverlabel/_namelength.py | 1 - .../treemap/hoverlabel/_namelengthsrc.py | 1 - .../treemap/hoverlabel/font/_color.py | 1 - .../treemap/hoverlabel/font/_colorsrc.py | 1 - .../treemap/hoverlabel/font/_family.py | 1 - .../treemap/hoverlabel/font/_familysrc.py | 1 - .../treemap/hoverlabel/font/_size.py | 1 - .../treemap/hoverlabel/font/_sizesrc.py | 1 - .../treemap/insidetextfont/_color.py | 1 - .../treemap/insidetextfont/_colorsrc.py | 1 - .../treemap/insidetextfont/_family.py | 1 - .../treemap/insidetextfont/_familysrc.py | 1 - .../treemap/insidetextfont/_size.py | 1 - .../treemap/insidetextfont/_sizesrc.py | 1 - .../treemap/marker/_autocolorscale.py | 1 - .../validators/treemap/marker/_cauto.py | 1 - .../plotly/validators/treemap/marker/_cmax.py | 1 - .../plotly/validators/treemap/marker/_cmid.py | 1 - .../plotly/validators/treemap/marker/_cmin.py | 1 - .../validators/treemap/marker/_coloraxis.py | 1 - .../validators/treemap/marker/_colorbar.py | 6 + .../validators/treemap/marker/_colors.py | 1 - .../validators/treemap/marker/_colorscale.py | 1 - .../validators/treemap/marker/_colorssrc.py | 1 - .../validators/treemap/marker/_depthfade.py | 1 - .../treemap/marker/_reversescale.py | 1 - .../validators/treemap/marker/_showscale.py | 1 - .../treemap/marker/colorbar/__init__.py | 2 + .../treemap/marker/colorbar/_bgcolor.py | 1 - .../treemap/marker/colorbar/_bordercolor.py | 1 - .../treemap/marker/colorbar/_borderwidth.py | 1 - .../treemap/marker/colorbar/_dtick.py | 1 - .../marker/colorbar/_exponentformat.py | 1 - .../treemap/marker/colorbar/_len.py | 1 - .../treemap/marker/colorbar/_lenmode.py | 1 - .../treemap/marker/colorbar/_minexponent.py | 1 - .../treemap/marker/colorbar/_nticks.py | 1 - .../treemap/marker/colorbar/_outlinecolor.py | 1 - .../treemap/marker/colorbar/_outlinewidth.py | 1 - .../marker/colorbar/_separatethousands.py | 1 - .../treemap/marker/colorbar/_showexponent.py | 1 - .../marker/colorbar/_showticklabels.py | 1 - .../marker/colorbar/_showtickprefix.py | 1 - .../marker/colorbar/_showticksuffix.py | 1 - .../treemap/marker/colorbar/_thickness.py | 1 - .../treemap/marker/colorbar/_thicknessmode.py | 1 - .../treemap/marker/colorbar/_tick0.py | 1 - .../treemap/marker/colorbar/_tickangle.py | 1 - .../treemap/marker/colorbar/_tickcolor.py | 1 - .../treemap/marker/colorbar/_tickformat.py | 1 - .../marker/colorbar/_ticklabeloverflow.py | 17 + .../marker/colorbar/_ticklabelposition.py | 1 - .../treemap/marker/colorbar/_ticklen.py | 1 - .../treemap/marker/colorbar/_tickmode.py | 1 - .../treemap/marker/colorbar/_tickprefix.py | 1 - .../treemap/marker/colorbar/_ticks.py | 1 - .../treemap/marker/colorbar/_ticksuffix.py | 1 - .../treemap/marker/colorbar/_ticktext.py | 1 - .../treemap/marker/colorbar/_ticktextsrc.py | 1 - .../treemap/marker/colorbar/_tickvals.py | 1 - .../treemap/marker/colorbar/_tickvalssrc.py | 1 - .../treemap/marker/colorbar/_tickwidth.py | 1 - .../validators/treemap/marker/colorbar/_x.py | 1 - .../treemap/marker/colorbar/_xanchor.py | 1 - .../treemap/marker/colorbar/_xpad.py | 1 - .../validators/treemap/marker/colorbar/_y.py | 1 - .../treemap/marker/colorbar/_yanchor.py | 1 - .../treemap/marker/colorbar/_ypad.py | 1 - .../marker/colorbar/tickfont/_color.py | 1 - .../marker/colorbar/tickfont/_family.py | 1 - .../treemap/marker/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../marker/colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../marker/colorbar/tickformatstop/_value.py | 1 - .../treemap/marker/colorbar/title/_side.py | 1 - .../treemap/marker/colorbar/title/_text.py | 1 - .../marker/colorbar/title/font/_color.py | 1 - .../marker/colorbar/title/font/_family.py | 1 - .../marker/colorbar/title/font/_size.py | 1 - .../validators/treemap/marker/line/_color.py | 1 - .../treemap/marker/line/_colorsrc.py | 1 - .../validators/treemap/marker/line/_width.py | 1 - .../treemap/marker/line/_widthsrc.py | 1 - .../validators/treemap/marker/pad/_b.py | 1 - .../validators/treemap/marker/pad/_l.py | 1 - .../validators/treemap/marker/pad/_r.py | 1 - .../validators/treemap/marker/pad/_t.py | 1 - .../treemap/outsidetextfont/_color.py | 1 - .../treemap/outsidetextfont/_colorsrc.py | 1 - .../treemap/outsidetextfont/_family.py | 1 - .../treemap/outsidetextfont/_familysrc.py | 1 - .../treemap/outsidetextfont/_size.py | 1 - .../treemap/outsidetextfont/_sizesrc.py | 1 - .../validators/treemap/pathbar/_edgeshape.py | 1 - .../validators/treemap/pathbar/_side.py | 1 - .../validators/treemap/pathbar/_thickness.py | 1 - .../validators/treemap/pathbar/_visible.py | 1 - .../treemap/pathbar/textfont/_color.py | 1 - .../treemap/pathbar/textfont/_colorsrc.py | 1 - .../treemap/pathbar/textfont/_family.py | 1 - .../treemap/pathbar/textfont/_familysrc.py | 1 - .../treemap/pathbar/textfont/_size.py | 1 - .../treemap/pathbar/textfont/_sizesrc.py | 1 - .../plotly/validators/treemap/root/_color.py | 1 - .../validators/treemap/stream/_maxpoints.py | 1 - .../validators/treemap/stream/_token.py | 1 - .../validators/treemap/textfont/_color.py | 1 - .../validators/treemap/textfont/_colorsrc.py | 1 - .../validators/treemap/textfont/_family.py | 1 - .../validators/treemap/textfont/_familysrc.py | 1 - .../validators/treemap/textfont/_size.py | 1 - .../validators/treemap/textfont/_sizesrc.py | 1 - .../plotly/validators/treemap/tiling/_flip.py | 1 - .../validators/treemap/tiling/_packing.py | 1 - .../plotly/validators/treemap/tiling/_pad.py | 1 - .../treemap/tiling/_squarifyratio.py | 1 - .../plotly/validators/violin/__init__.py | 4 + .../validators/violin/_alignmentgroup.py | 1 - .../plotly/validators/violin/_bandwidth.py | 1 - .../plotly/validators/violin/_customdata.py | 1 - .../validators/violin/_customdatasrc.py | 1 - .../plotly/validators/violin/_fillcolor.py | 1 - .../plotly/validators/violin/_hoverinfo.py | 1 - .../plotly/validators/violin/_hoverinfosrc.py | 1 - .../plotly/validators/violin/_hoveron.py | 1 - .../validators/violin/_hovertemplate.py | 1 - .../validators/violin/_hovertemplatesrc.py | 1 - .../plotly/validators/violin/_hovertext.py | 1 - .../plotly/validators/violin/_hovertextsrc.py | 1 - .../plotly/plotly/validators/violin/_ids.py | 1 - .../plotly/validators/violin/_idssrc.py | 1 - .../plotly/validators/violin/_jitter.py | 1 - .../plotly/validators/violin/_legendgroup.py | 1 - .../plotly/plotly/validators/violin/_meta.py | 1 - .../plotly/validators/violin/_metasrc.py | 1 - .../plotly/plotly/validators/violin/_name.py | 1 - .../plotly/validators/violin/_offsetgroup.py | 1 - .../plotly/validators/violin/_opacity.py | 1 - .../plotly/validators/violin/_orientation.py | 1 - .../plotly/validators/violin/_pointpos.py | 1 - .../plotly/validators/violin/_points.py | 1 - .../plotly/validators/violin/_scalegroup.py | 1 - .../plotly/validators/violin/_scalemode.py | 1 - .../validators/violin/_selectedpoints.py | 1 - .../plotly/validators/violin/_showlegend.py | 1 - .../plotly/plotly/validators/violin/_side.py | 1 - .../plotly/plotly/validators/violin/_span.py | 1 - .../plotly/validators/violin/_spanmode.py | 1 - .../plotly/plotly/validators/violin/_text.py | 1 - .../plotly/validators/violin/_textsrc.py | 1 - .../plotly/plotly/validators/violin/_uid.py | 1 - .../plotly/validators/violin/_uirevision.py | 1 - .../plotly/validators/violin/_visible.py | 1 - .../plotly/plotly/validators/violin/_width.py | 1 - .../plotly/plotly/validators/violin/_x.py | 1 - .../plotly/plotly/validators/violin/_x0.py | 1 - .../plotly/plotly/validators/violin/_xaxis.py | 1 - .../plotly/validators/violin/_xhoverformat.py | 11 + .../plotly/plotly/validators/violin/_xsrc.py | 1 - .../plotly/plotly/validators/violin/_y.py | 1 - .../plotly/plotly/validators/violin/_y0.py | 1 - .../plotly/plotly/validators/violin/_yaxis.py | 1 - .../plotly/validators/violin/_yhoverformat.py | 11 + .../plotly/plotly/validators/violin/_ysrc.py | 1 - .../validators/violin/box/_fillcolor.py | 1 - .../plotly/validators/violin/box/_visible.py | 1 - .../plotly/validators/violin/box/_width.py | 1 - .../validators/violin/box/line/_color.py | 1 - .../validators/violin/box/line/_width.py | 1 - .../validators/violin/hoverlabel/_align.py | 1 - .../validators/violin/hoverlabel/_alignsrc.py | 1 - .../validators/violin/hoverlabel/_bgcolor.py | 1 - .../violin/hoverlabel/_bgcolorsrc.py | 1 - .../violin/hoverlabel/_bordercolor.py | 1 - .../violin/hoverlabel/_bordercolorsrc.py | 1 - .../violin/hoverlabel/_namelength.py | 1 - .../violin/hoverlabel/_namelengthsrc.py | 1 - .../violin/hoverlabel/font/_color.py | 1 - .../violin/hoverlabel/font/_colorsrc.py | 1 - .../violin/hoverlabel/font/_family.py | 1 - .../violin/hoverlabel/font/_familysrc.py | 1 - .../violin/hoverlabel/font/_size.py | 1 - .../violin/hoverlabel/font/_sizesrc.py | 1 - .../plotly/validators/violin/line/_color.py | 1 - .../plotly/validators/violin/line/_width.py | 1 - .../plotly/validators/violin/marker/_color.py | 1 - .../validators/violin/marker/_opacity.py | 1 - .../validators/violin/marker/_outliercolor.py | 1 - .../plotly/validators/violin/marker/_size.py | 1 - .../validators/violin/marker/_symbol.py | 1 - .../validators/violin/marker/line/_color.py | 1 - .../violin/marker/line/_outliercolor.py | 1 - .../violin/marker/line/_outlierwidth.py | 1 - .../validators/violin/marker/line/_width.py | 1 - .../validators/violin/meanline/_color.py | 1 - .../validators/violin/meanline/_visible.py | 1 - .../validators/violin/meanline/_width.py | 1 - .../violin/selected/marker/_color.py | 1 - .../violin/selected/marker/_opacity.py | 1 - .../violin/selected/marker/_size.py | 1 - .../validators/violin/stream/_maxpoints.py | 1 - .../plotly/validators/violin/stream/_token.py | 1 - .../violin/unselected/marker/_color.py | 1 - .../violin/unselected/marker/_opacity.py | 1 - .../violin/unselected/marker/_size.py | 1 - .../plotly/validators/volume/__init__.py | 8 + .../validators/volume/_autocolorscale.py | 1 - .../plotly/plotly/validators/volume/_cauto.py | 1 - .../plotly/plotly/validators/volume/_cmax.py | 1 - .../plotly/plotly/validators/volume/_cmid.py | 1 - .../plotly/plotly/validators/volume/_cmin.py | 1 - .../plotly/validators/volume/_coloraxis.py | 1 - .../plotly/validators/volume/_colorbar.py | 6 + .../plotly/validators/volume/_colorscale.py | 1 - .../plotly/validators/volume/_customdata.py | 1 - .../validators/volume/_customdatasrc.py | 1 - .../plotly/validators/volume/_flatshading.py | 1 - .../plotly/validators/volume/_hoverinfo.py | 1 - .../plotly/validators/volume/_hoverinfosrc.py | 1 - .../validators/volume/_hovertemplate.py | 1 - .../validators/volume/_hovertemplatesrc.py | 1 - .../plotly/validators/volume/_hovertext.py | 1 - .../plotly/validators/volume/_hovertextsrc.py | 1 - .../plotly/plotly/validators/volume/_ids.py | 1 - .../plotly/validators/volume/_idssrc.py | 1 - .../plotly/validators/volume/_isomax.py | 1 - .../plotly/validators/volume/_isomin.py | 1 - .../plotly/validators/volume/_legendgroup.py | 1 - .../plotly/plotly/validators/volume/_meta.py | 1 - .../plotly/validators/volume/_metasrc.py | 1 - .../plotly/plotly/validators/volume/_name.py | 1 - .../plotly/validators/volume/_opacity.py | 1 - .../plotly/validators/volume/_opacityscale.py | 1 - .../plotly/validators/volume/_reversescale.py | 1 - .../plotly/plotly/validators/volume/_scene.py | 1 - .../plotly/validators/volume/_showlegend.py | 1 - .../plotly/validators/volume/_showscale.py | 1 - .../plotly/plotly/validators/volume/_text.py | 1 - .../plotly/validators/volume/_textsrc.py | 1 - .../plotly/plotly/validators/volume/_uid.py | 1 - .../plotly/validators/volume/_uirevision.py | 1 - .../plotly/plotly/validators/volume/_value.py | 1 - .../validators/volume/_valuehoverformat.py | 11 + .../plotly/validators/volume/_valuesrc.py | 1 - .../plotly/validators/volume/_visible.py | 1 - .../plotly/plotly/validators/volume/_x.py | 1 - .../plotly/validators/volume/_xhoverformat.py | 11 + .../plotly/plotly/validators/volume/_xsrc.py | 1 - .../plotly/plotly/validators/volume/_y.py | 1 - .../plotly/validators/volume/_yhoverformat.py | 11 + .../plotly/plotly/validators/volume/_ysrc.py | 1 - .../plotly/plotly/validators/volume/_z.py | 1 - .../plotly/validators/volume/_zhoverformat.py | 11 + .../plotly/plotly/validators/volume/_zsrc.py | 1 - .../plotly/validators/volume/caps/x/_fill.py | 1 - .../plotly/validators/volume/caps/x/_show.py | 1 - .../plotly/validators/volume/caps/y/_fill.py | 1 - .../plotly/validators/volume/caps/y/_show.py | 1 - .../plotly/validators/volume/caps/z/_fill.py | 1 - .../plotly/validators/volume/caps/z/_show.py | 1 - .../validators/volume/colorbar/__init__.py | 2 + .../validators/volume/colorbar/_bgcolor.py | 1 - .../volume/colorbar/_bordercolor.py | 1 - .../volume/colorbar/_borderwidth.py | 1 - .../validators/volume/colorbar/_dtick.py | 1 - .../volume/colorbar/_exponentformat.py | 1 - .../plotly/validators/volume/colorbar/_len.py | 1 - .../validators/volume/colorbar/_lenmode.py | 1 - .../volume/colorbar/_minexponent.py | 1 - .../validators/volume/colorbar/_nticks.py | 1 - .../volume/colorbar/_outlinecolor.py | 1 - .../volume/colorbar/_outlinewidth.py | 1 - .../volume/colorbar/_separatethousands.py | 1 - .../volume/colorbar/_showexponent.py | 1 - .../volume/colorbar/_showticklabels.py | 1 - .../volume/colorbar/_showtickprefix.py | 1 - .../volume/colorbar/_showticksuffix.py | 1 - .../validators/volume/colorbar/_thickness.py | 1 - .../volume/colorbar/_thicknessmode.py | 1 - .../validators/volume/colorbar/_tick0.py | 1 - .../validators/volume/colorbar/_tickangle.py | 1 - .../validators/volume/colorbar/_tickcolor.py | 1 - .../validators/volume/colorbar/_tickformat.py | 1 - .../volume/colorbar/_ticklabeloverflow.py | 14 + .../volume/colorbar/_ticklabelposition.py | 1 - .../validators/volume/colorbar/_ticklen.py | 1 - .../validators/volume/colorbar/_tickmode.py | 1 - .../validators/volume/colorbar/_tickprefix.py | 1 - .../validators/volume/colorbar/_ticks.py | 1 - .../validators/volume/colorbar/_ticksuffix.py | 1 - .../validators/volume/colorbar/_ticktext.py | 1 - .../volume/colorbar/_ticktextsrc.py | 1 - .../validators/volume/colorbar/_tickvals.py | 1 - .../volume/colorbar/_tickvalssrc.py | 1 - .../validators/volume/colorbar/_tickwidth.py | 1 - .../plotly/validators/volume/colorbar/_x.py | 1 - .../validators/volume/colorbar/_xanchor.py | 1 - .../validators/volume/colorbar/_xpad.py | 1 - .../plotly/validators/volume/colorbar/_y.py | 1 - .../validators/volume/colorbar/_yanchor.py | 1 - .../validators/volume/colorbar/_ypad.py | 1 - .../volume/colorbar/tickfont/_color.py | 1 - .../volume/colorbar/tickfont/_family.py | 1 - .../volume/colorbar/tickfont/_size.py | 1 - .../colorbar/tickformatstop/_dtickrange.py | 1 - .../colorbar/tickformatstop/_enabled.py | 1 - .../volume/colorbar/tickformatstop/_name.py | 1 - .../tickformatstop/_templateitemname.py | 1 - .../volume/colorbar/tickformatstop/_value.py | 1 - .../validators/volume/colorbar/title/_side.py | 1 - .../validators/volume/colorbar/title/_text.py | 1 - .../volume/colorbar/title/font/_color.py | 1 - .../volume/colorbar/title/font/_family.py | 1 - .../volume/colorbar/title/font/_size.py | 1 - .../validators/volume/contour/_color.py | 1 - .../plotly/validators/volume/contour/_show.py | 1 - .../validators/volume/contour/_width.py | 1 - .../validators/volume/hoverlabel/_align.py | 1 - .../validators/volume/hoverlabel/_alignsrc.py | 1 - .../validators/volume/hoverlabel/_bgcolor.py | 1 - .../volume/hoverlabel/_bgcolorsrc.py | 1 - .../volume/hoverlabel/_bordercolor.py | 1 - .../volume/hoverlabel/_bordercolorsrc.py | 1 - .../volume/hoverlabel/_namelength.py | 1 - .../volume/hoverlabel/_namelengthsrc.py | 1 - .../volume/hoverlabel/font/_color.py | 1 - .../volume/hoverlabel/font/_colorsrc.py | 1 - .../volume/hoverlabel/font/_family.py | 1 - .../volume/hoverlabel/font/_familysrc.py | 1 - .../volume/hoverlabel/font/_size.py | 1 - .../volume/hoverlabel/font/_sizesrc.py | 1 - .../validators/volume/lighting/_ambient.py | 1 - .../validators/volume/lighting/_diffuse.py | 1 - .../volume/lighting/_facenormalsepsilon.py | 1 - .../validators/volume/lighting/_fresnel.py | 1 - .../validators/volume/lighting/_roughness.py | 1 - .../validators/volume/lighting/_specular.py | 1 - .../volume/lighting/_vertexnormalsepsilon.py | 1 - .../validators/volume/lightposition/_x.py | 1 - .../validators/volume/lightposition/_y.py | 1 - .../validators/volume/lightposition/_z.py | 1 - .../validators/volume/slices/x/_fill.py | 1 - .../validators/volume/slices/x/_locations.py | 1 - .../volume/slices/x/_locationssrc.py | 1 - .../validators/volume/slices/x/_show.py | 1 - .../validators/volume/slices/y/_fill.py | 1 - .../validators/volume/slices/y/_locations.py | 1 - .../volume/slices/y/_locationssrc.py | 1 - .../validators/volume/slices/y/_show.py | 1 - .../validators/volume/slices/z/_fill.py | 1 - .../validators/volume/slices/z/_locations.py | 1 - .../volume/slices/z/_locationssrc.py | 1 - .../validators/volume/slices/z/_show.py | 1 - .../validators/volume/spaceframe/_fill.py | 1 - .../validators/volume/spaceframe/_show.py | 1 - .../validators/volume/stream/_maxpoints.py | 1 - .../plotly/validators/volume/stream/_token.py | 1 - .../validators/volume/surface/_count.py | 1 - .../plotly/validators/volume/surface/_fill.py | 1 - .../validators/volume/surface/_pattern.py | 1 - .../plotly/validators/volume/surface/_show.py | 1 - .../plotly/validators/waterfall/__init__.py | 4 + .../validators/waterfall/_alignmentgroup.py | 1 - .../plotly/validators/waterfall/_base.py | 1 - .../validators/waterfall/_cliponaxis.py | 1 - .../validators/waterfall/_constraintext.py | 1 - .../validators/waterfall/_customdata.py | 1 - .../validators/waterfall/_customdatasrc.py | 1 - .../plotly/plotly/validators/waterfall/_dx.py | 1 - .../plotly/plotly/validators/waterfall/_dy.py | 1 - .../plotly/validators/waterfall/_hoverinfo.py | 1 - .../validators/waterfall/_hoverinfosrc.py | 1 - .../validators/waterfall/_hovertemplate.py | 1 - .../validators/waterfall/_hovertemplatesrc.py | 1 - .../plotly/validators/waterfall/_hovertext.py | 1 - .../validators/waterfall/_hovertextsrc.py | 1 - .../plotly/validators/waterfall/_ids.py | 1 - .../plotly/validators/waterfall/_idssrc.py | 1 - .../validators/waterfall/_insidetextanchor.py | 1 - .../validators/waterfall/_legendgroup.py | 1 - .../plotly/validators/waterfall/_measure.py | 1 - .../validators/waterfall/_measuresrc.py | 1 - .../plotly/validators/waterfall/_meta.py | 1 - .../plotly/validators/waterfall/_metasrc.py | 1 - .../plotly/validators/waterfall/_name.py | 1 - .../plotly/validators/waterfall/_offset.py | 1 - .../validators/waterfall/_offsetgroup.py | 1 - .../plotly/validators/waterfall/_offsetsrc.py | 1 - .../plotly/validators/waterfall/_opacity.py | 1 - .../validators/waterfall/_orientation.py | 1 - .../validators/waterfall/_selectedpoints.py | 1 - .../validators/waterfall/_showlegend.py | 1 - .../plotly/validators/waterfall/_text.py | 1 - .../plotly/validators/waterfall/_textangle.py | 1 - .../plotly/validators/waterfall/_textinfo.py | 1 - .../validators/waterfall/_textposition.py | 1 - .../validators/waterfall/_textpositionsrc.py | 1 - .../plotly/validators/waterfall/_textsrc.py | 1 - .../validators/waterfall/_texttemplate.py | 1 - .../validators/waterfall/_texttemplatesrc.py | 1 - .../plotly/validators/waterfall/_uid.py | 1 - .../validators/waterfall/_uirevision.py | 1 - .../plotly/validators/waterfall/_visible.py | 1 - .../plotly/validators/waterfall/_width.py | 1 - .../plotly/validators/waterfall/_widthsrc.py | 1 - .../plotly/plotly/validators/waterfall/_x.py | 1 - .../plotly/plotly/validators/waterfall/_x0.py | 1 - .../plotly/validators/waterfall/_xaxis.py | 1 - .../validators/waterfall/_xhoverformat.py | 11 + .../plotly/validators/waterfall/_xperiod.py | 1 - .../plotly/validators/waterfall/_xperiod0.py | 1 - .../validators/waterfall/_xperiodalignment.py | 1 - .../plotly/validators/waterfall/_xsrc.py | 1 - .../plotly/plotly/validators/waterfall/_y.py | 1 - .../plotly/plotly/validators/waterfall/_y0.py | 1 - .../plotly/validators/waterfall/_yaxis.py | 1 - .../validators/waterfall/_yhoverformat.py | 11 + .../plotly/validators/waterfall/_yperiod.py | 1 - .../plotly/validators/waterfall/_yperiod0.py | 1 - .../validators/waterfall/_yperiodalignment.py | 1 - .../plotly/validators/waterfall/_ysrc.py | 1 - .../validators/waterfall/connector/_mode.py | 1 - .../waterfall/connector/_visible.py | 1 - .../waterfall/connector/line/_color.py | 1 - .../waterfall/connector/line/_dash.py | 1 - .../waterfall/connector/line/_width.py | 1 - .../waterfall/decreasing/marker/_color.py | 1 - .../decreasing/marker/line/_color.py | 1 - .../decreasing/marker/line/_width.py | 1 - .../validators/waterfall/hoverlabel/_align.py | 1 - .../waterfall/hoverlabel/_alignsrc.py | 1 - .../waterfall/hoverlabel/_bgcolor.py | 1 - .../waterfall/hoverlabel/_bgcolorsrc.py | 1 - .../waterfall/hoverlabel/_bordercolor.py | 1 - .../waterfall/hoverlabel/_bordercolorsrc.py | 1 - .../waterfall/hoverlabel/_namelength.py | 1 - .../waterfall/hoverlabel/_namelengthsrc.py | 1 - .../waterfall/hoverlabel/font/_color.py | 1 - .../waterfall/hoverlabel/font/_colorsrc.py | 1 - .../waterfall/hoverlabel/font/_family.py | 1 - .../waterfall/hoverlabel/font/_familysrc.py | 1 - .../waterfall/hoverlabel/font/_size.py | 1 - .../waterfall/hoverlabel/font/_sizesrc.py | 1 - .../waterfall/increasing/marker/_color.py | 1 - .../increasing/marker/line/_color.py | 1 - .../increasing/marker/line/_width.py | 1 - .../waterfall/insidetextfont/_color.py | 1 - .../waterfall/insidetextfont/_colorsrc.py | 1 - .../waterfall/insidetextfont/_family.py | 1 - .../waterfall/insidetextfont/_familysrc.py | 1 - .../waterfall/insidetextfont/_size.py | 1 - .../waterfall/insidetextfont/_sizesrc.py | 1 - .../waterfall/outsidetextfont/_color.py | 1 - .../waterfall/outsidetextfont/_colorsrc.py | 1 - .../waterfall/outsidetextfont/_family.py | 1 - .../waterfall/outsidetextfont/_familysrc.py | 1 - .../waterfall/outsidetextfont/_size.py | 1 - .../waterfall/outsidetextfont/_sizesrc.py | 1 - .../validators/waterfall/stream/_maxpoints.py | 1 - .../validators/waterfall/stream/_token.py | 1 - .../validators/waterfall/textfont/_color.py | 1 - .../waterfall/textfont/_colorsrc.py | 1 - .../validators/waterfall/textfont/_family.py | 1 - .../waterfall/textfont/_familysrc.py | 1 - .../validators/waterfall/textfont/_size.py | 1 - .../validators/waterfall/textfont/_sizesrc.py | 1 - .../waterfall/totals/marker/_color.py | 1 - .../waterfall/totals/marker/line/_color.py | 1 - .../waterfall/totals/marker/line/_width.py | 1 - release.md | 16 +- 7684 files changed, 75858 insertions(+), 95448 deletions(-) delete mode 100644 packages/python/plotly/plotly/graph_objs/_area.py delete mode 100644 packages/python/plotly/plotly/graph_objs/area/__init__.py delete mode 100644 packages/python/plotly/plotly/graph_objs/area/_hoverlabel.py delete mode 100644 packages/python/plotly/plotly/graph_objs/area/_marker.py delete mode 100644 packages/python/plotly/plotly/graph_objs/area/_stream.py delete mode 100644 packages/python/plotly/plotly/graph_objs/area/hoverlabel/__init__.py rename packages/python/plotly/plotly/graph_objs/{area/hoverlabel/_font.py => bar/marker/_pattern.py} (50%) create mode 100644 packages/python/plotly/plotly/graph_objs/barpolar/marker/_pattern.py create mode 100644 packages/python/plotly/plotly/graph_objs/histogram/marker/_pattern.py delete mode 100644 packages/python/plotly/plotly/graph_objs/layout/_angularaxis.py delete mode 100644 packages/python/plotly/plotly/graph_objs/layout/_radialaxis.py delete mode 100644 packages/python/plotly/plotly/graph_objs/layout/template/data/_area.py delete mode 100644 packages/python/plotly/plotly/validators/_area.py delete mode 100644 packages/python/plotly/plotly/validators/area/__init__.py delete mode 100644 packages/python/plotly/plotly/validators/area/_customdata.py delete mode 100644 packages/python/plotly/plotly/validators/area/_customdatasrc.py delete mode 100644 packages/python/plotly/plotly/validators/area/_hoverinfo.py delete mode 100644 packages/python/plotly/plotly/validators/area/_hoverinfosrc.py delete mode 100644 packages/python/plotly/plotly/validators/area/_hoverlabel.py delete mode 100644 packages/python/plotly/plotly/validators/area/_ids.py delete mode 100644 packages/python/plotly/plotly/validators/area/_idssrc.py delete mode 100644 packages/python/plotly/plotly/validators/area/_legendgroup.py delete mode 100644 packages/python/plotly/plotly/validators/area/_marker.py delete mode 100644 packages/python/plotly/plotly/validators/area/_meta.py delete mode 100644 packages/python/plotly/plotly/validators/area/_metasrc.py delete mode 100644 packages/python/plotly/plotly/validators/area/_name.py delete mode 100644 packages/python/plotly/plotly/validators/area/_opacity.py delete mode 100644 packages/python/plotly/plotly/validators/area/_r.py delete mode 100644 packages/python/plotly/plotly/validators/area/_rsrc.py delete mode 100644 packages/python/plotly/plotly/validators/area/_showlegend.py delete mode 100644 packages/python/plotly/plotly/validators/area/_stream.py delete mode 100644 packages/python/plotly/plotly/validators/area/_t.py delete mode 100644 packages/python/plotly/plotly/validators/area/_tsrc.py delete mode 100644 packages/python/plotly/plotly/validators/area/_uid.py delete mode 100644 packages/python/plotly/plotly/validators/area/_uirevision.py delete mode 100644 packages/python/plotly/plotly/validators/area/_visible.py delete mode 100644 packages/python/plotly/plotly/validators/area/hoverlabel/__init__.py delete mode 100644 packages/python/plotly/plotly/validators/area/hoverlabel/_align.py delete mode 100644 packages/python/plotly/plotly/validators/area/hoverlabel/_alignsrc.py delete mode 100644 packages/python/plotly/plotly/validators/area/hoverlabel/_bordercolor.py delete mode 100644 packages/python/plotly/plotly/validators/area/hoverlabel/_bordercolorsrc.py delete mode 100644 packages/python/plotly/plotly/validators/area/hoverlabel/_font.py delete mode 100644 packages/python/plotly/plotly/validators/area/hoverlabel/_namelength.py delete mode 100644 packages/python/plotly/plotly/validators/area/hoverlabel/_namelengthsrc.py delete mode 100644 packages/python/plotly/plotly/validators/area/hoverlabel/font/__init__.py delete mode 100644 packages/python/plotly/plotly/validators/area/hoverlabel/font/_color.py delete mode 100644 packages/python/plotly/plotly/validators/area/hoverlabel/font/_colorsrc.py delete mode 100644 packages/python/plotly/plotly/validators/area/hoverlabel/font/_family.py delete mode 100644 packages/python/plotly/plotly/validators/area/hoverlabel/font/_familysrc.py delete mode 100644 packages/python/plotly/plotly/validators/area/marker/__init__.py delete mode 100644 packages/python/plotly/plotly/validators/area/marker/_colorsrc.py delete mode 100644 packages/python/plotly/plotly/validators/area/marker/_opacitysrc.py delete mode 100644 packages/python/plotly/plotly/validators/area/marker/_symbol.py delete mode 100644 packages/python/plotly/plotly/validators/area/marker/_symbolsrc.py delete mode 100644 packages/python/plotly/plotly/validators/area/stream/__init__.py delete mode 100644 packages/python/plotly/plotly/validators/area/stream/_maxpoints.py delete mode 100644 packages/python/plotly/plotly/validators/area/stream/_token.py delete mode 100644 packages/python/plotly/plotly/validators/bar/_r.py delete mode 100644 packages/python/plotly/plotly/validators/bar/_rsrc.py delete mode 100644 packages/python/plotly/plotly/validators/bar/_t.py delete mode 100644 packages/python/plotly/plotly/validators/bar/_tsrc.py create mode 100644 packages/python/plotly/plotly/validators/bar/_xhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/bar/_yhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/bar/marker/_pattern.py create mode 100644 packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/bar/marker/pattern/__init__.py rename packages/python/plotly/plotly/validators/{area/hoverlabel => bar/marker/pattern}/_bgcolor.py (62%) rename packages/python/plotly/plotly/validators/{area/hoverlabel => bar/marker/pattern}/_bgcolorsrc.py (73%) create mode 100644 packages/python/plotly/plotly/validators/bar/marker/pattern/_shape.py create mode 100644 packages/python/plotly/plotly/validators/bar/marker/pattern/_shapesrc.py rename packages/python/plotly/plotly/validators/{area/marker => bar/marker/pattern}/_size.py (65%) rename packages/python/plotly/plotly/validators/{area/hoverlabel/font => bar/marker/pattern}/_sizesrc.py (72%) rename packages/python/plotly/plotly/validators/{area/marker/_opacity.py => bar/marker/pattern/_solidity.py} (56%) create mode 100644 packages/python/plotly/plotly/validators/bar/marker/pattern/_soliditysrc.py create mode 100644 packages/python/plotly/plotly/validators/barpolar/marker/_pattern.py create mode 100644 packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/barpolar/marker/pattern/__init__.py rename packages/python/plotly/plotly/validators/{area/marker/_color.py => barpolar/marker/pattern/_bgcolor.py} (50%) create mode 100644 packages/python/plotly/plotly/validators/barpolar/marker/pattern/_bgcolorsrc.py create mode 100644 packages/python/plotly/plotly/validators/barpolar/marker/pattern/_shape.py create mode 100644 packages/python/plotly/plotly/validators/barpolar/marker/pattern/_shapesrc.py rename packages/python/plotly/plotly/validators/{area/hoverlabel/font => barpolar/marker/pattern}/_size.py (60%) rename packages/python/plotly/plotly/validators/{area/marker => barpolar/marker/pattern}/_sizesrc.py (70%) create mode 100644 packages/python/plotly/plotly/validators/barpolar/marker/pattern/_solidity.py create mode 100644 packages/python/plotly/plotly/validators/barpolar/marker/pattern/_soliditysrc.py create mode 100644 packages/python/plotly/plotly/validators/box/_xhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/box/_yhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/candlestick/_xhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/candlestick/_yhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/choropleth/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/cone/_uhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/cone/_vhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/cone/_whoverformat.py create mode 100644 packages/python/plotly/plotly/validators/cone/_xhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/cone/_yhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/cone/_zhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/cone/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/contour/_xhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/contour/_yhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/contour/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/funnel/_xhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/funnel/_yhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/heatmap/_xhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/heatmap/_yhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/heatmap/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/histogram/_xhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/histogram/_yhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/histogram/marker/_pattern.py create mode 100644 packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/histogram/marker/pattern/__init__.py create mode 100644 packages/python/plotly/plotly/validators/histogram/marker/pattern/_bgcolor.py create mode 100644 packages/python/plotly/plotly/validators/histogram/marker/pattern/_bgcolorsrc.py create mode 100644 packages/python/plotly/plotly/validators/histogram/marker/pattern/_shape.py create mode 100644 packages/python/plotly/plotly/validators/histogram/marker/pattern/_shapesrc.py create mode 100644 packages/python/plotly/plotly/validators/histogram/marker/pattern/_size.py create mode 100644 packages/python/plotly/plotly/validators/histogram/marker/pattern/_sizesrc.py create mode 100644 packages/python/plotly/plotly/validators/histogram/marker/pattern/_solidity.py create mode 100644 packages/python/plotly/plotly/validators/histogram/marker/pattern/_soliditysrc.py create mode 100644 packages/python/plotly/plotly/validators/histogram2d/_xhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/histogram2d/_yhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/histogram2dcontour/_xhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/histogram2dcontour/_yhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/image/_zsmooth.py create mode 100644 packages/python/plotly/plotly/validators/isosurface/_valuehoverformat.py create mode 100644 packages/python/plotly/plotly/validators/isosurface/_xhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/isosurface/_yhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/isosurface/_zhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/isosurface/colorbar/_ticklabeloverflow.py delete mode 100644 packages/python/plotly/plotly/validators/layout/_angularaxis.py delete mode 100644 packages/python/plotly/plotly/validators/layout/_direction.py delete mode 100644 packages/python/plotly/plotly/validators/layout/_orientation.py delete mode 100644 packages/python/plotly/plotly/validators/layout/_radialaxis.py delete mode 100644 packages/python/plotly/plotly/validators/layout/angularaxis/__init__.py delete mode 100644 packages/python/plotly/plotly/validators/layout/angularaxis/_domain.py delete mode 100644 packages/python/plotly/plotly/validators/layout/angularaxis/_endpadding.py delete mode 100644 packages/python/plotly/plotly/validators/layout/angularaxis/_range.py delete mode 100644 packages/python/plotly/plotly/validators/layout/angularaxis/_showline.py delete mode 100644 packages/python/plotly/plotly/validators/layout/angularaxis/_showticklabels.py delete mode 100644 packages/python/plotly/plotly/validators/layout/angularaxis/_tickcolor.py delete mode 100644 packages/python/plotly/plotly/validators/layout/angularaxis/_ticklen.py delete mode 100644 packages/python/plotly/plotly/validators/layout/angularaxis/_tickorientation.py delete mode 100644 packages/python/plotly/plotly/validators/layout/angularaxis/_ticksuffix.py delete mode 100644 packages/python/plotly/plotly/validators/layout/angularaxis/_visible.py create mode 100644 packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/layout/modebar/_add.py create mode 100644 packages/python/plotly/plotly/validators/layout/modebar/_addsrc.py create mode 100644 packages/python/plotly/plotly/validators/layout/modebar/_remove.py create mode 100644 packages/python/plotly/plotly/validators/layout/modebar/_removesrc.py delete mode 100644 packages/python/plotly/plotly/validators/layout/radialaxis/__init__.py delete mode 100644 packages/python/plotly/plotly/validators/layout/radialaxis/_domain.py delete mode 100644 packages/python/plotly/plotly/validators/layout/radialaxis/_endpadding.py delete mode 100644 packages/python/plotly/plotly/validators/layout/radialaxis/_orientation.py delete mode 100644 packages/python/plotly/plotly/validators/layout/radialaxis/_range.py delete mode 100644 packages/python/plotly/plotly/validators/layout/radialaxis/_showline.py delete mode 100644 packages/python/plotly/plotly/validators/layout/radialaxis/_showticklabels.py delete mode 100644 packages/python/plotly/plotly/validators/layout/radialaxis/_tickcolor.py delete mode 100644 packages/python/plotly/plotly/validators/layout/radialaxis/_ticklen.py delete mode 100644 packages/python/plotly/plotly/validators/layout/radialaxis/_tickorientation.py delete mode 100644 packages/python/plotly/plotly/validators/layout/radialaxis/_ticksuffix.py delete mode 100644 packages/python/plotly/plotly/validators/layout/radialaxis/_visible.py delete mode 100644 packages/python/plotly/plotly/validators/layout/template/data/_area.py create mode 100644 packages/python/plotly/plotly/validators/layout/xaxis/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/layout/yaxis/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/mesh3d/_xhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/mesh3d/_yhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/mesh3d/_zhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/ohlc/_xhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/ohlc/_yhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticklabeloverflow.py delete mode 100644 packages/python/plotly/plotly/validators/scatter/_r.py delete mode 100644 packages/python/plotly/plotly/validators/scatter/_rsrc.py delete mode 100644 packages/python/plotly/plotly/validators/scatter/_t.py delete mode 100644 packages/python/plotly/plotly/validators/scatter/_tsrc.py create mode 100644 packages/python/plotly/plotly/validators/scatter/_xhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/scatter/_yhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/scatter3d/_xhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/scatter3d/_yhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/scatter3d/_zhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/scattergl/_xhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/scattergl/_yhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/splom/_xhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/splom/_yhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/streamtube/_uhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/streamtube/_vhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/streamtube/_whoverformat.py create mode 100644 packages/python/plotly/plotly/validators/streamtube/_xhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/streamtube/_yhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/streamtube/_zhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/streamtube/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/surface/_xhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/surface/_yhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/surface/_zhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/surface/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/violin/_xhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/violin/_yhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/volume/_valuehoverformat.py create mode 100644 packages/python/plotly/plotly/validators/volume/_xhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/volume/_yhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/volume/_zhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/volume/colorbar/_ticklabeloverflow.py create mode 100644 packages/python/plotly/plotly/validators/waterfall/_xhoverformat.py create mode 100644 packages/python/plotly/plotly/validators/waterfall/_yhoverformat.py diff --git a/contributing.md b/contributing.md index 318e015a27..3c7421d880 100644 --- a/contributing.md +++ b/contributing.md @@ -166,19 +166,6 @@ and [`pip`](https://pip.pypa.io/en/stable/reference/pip_install/#install-editable) documentation on _development mode_. -### ipywidgets development install - -Run the following commands in your virtual environment to use the -development version of `FigureWidget`, -```bash -(plotly_dev) $ jupyter nbextension enable --py widgetsnbextension -(plotly_dev) $ jupyter nbextension install --py --symlink --sys-prefix plotlywidget -(plotly_dev) $ jupyter nbextension enable --py --sys-prefix plotlywidget -``` -To make plotly plots show up in JupyterLab, you also need to [install the plotly jupyterlab extensions][plotly-jl]. - -[plotly-jl]: https://plot.ly/python/getting-started/#jupyterlab-support-python-35 - ### Configure black code formatting This repo uses the [Black](https://black.readthedocs.io/en/stable/) code formatter, @@ -224,7 +211,7 @@ make that pull request! ## Update to a new version of Plotly.js -First update the version of the `plotly.js` dependency in `packages/javascript/plotlywidget/package.json`. +First update the version of the `plotly.js` dependency in `packages/javascript/jupyterlab-plotly/package.json`. Then run the `updateplotlyjs` command with: @@ -238,7 +225,7 @@ the `plotly/plotly.js` GitHub repository (and place them in `plotly/package_data`). It will then regenerate all of the `graph_objs` classes based on the new schema. -For dev branches, it is also possible to use `updateplotlyjsdev --devrepo reponame --devbranch branchname` to update to development versions of `plotly.js`. This will fetch the `plotly.js` in the CircleCI artifact of the branch `branchname` of the repo `reponame`. If `--devrepo` or `--devbranch` are omitted, `updateplotlyjsdev` defaults using `plotly/plotly.js` and `master` respectively. +For dev branches, it is also possible to use `updateplotlyjsdev --devrepo reponame --devbranch branchname` to update to development versions of `plotly.js`. This will fetch the `plotly.js` in the CircleCI artifact of the branch `branchname` of the repo `reponame`. If `--devrepo` or `--devbranch` are omitted, `updateplotlyjsdev` defaults using `plotly/plotly.js` and `master` respectively. ## Testing diff --git a/packages/javascript/jupyterlab-plotly/package-lock.json b/packages/javascript/jupyterlab-plotly/package-lock.json index ec85b7d81c..49e1e50766 100644 --- a/packages/javascript/jupyterlab-plotly/package-lock.json +++ b/packages/javascript/jupyterlab-plotly/package-lock.json @@ -1,8472 +1,19 @@ { "name": "jupyterlab-plotly", "version": "4.14.3", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "version": "4.14.3", - "license": "MIT", - "dependencies": { - "@jupyter-widgets/base": "^2.0.0 || ^3.0.0 || ^4.0.0", - "@jupyterlab/rendermime-interfaces": "^1.3.0 || ^2.0.0 || ^3.0.0", - "@lumino/messaging": "^1.2.3", - "@lumino/widgets": "^1.8.1", - "lodash": "^4.17.4", - "plotly.js": "^1.58.4" - }, - "devDependencies": { - "@jupyterlab/builder": "^3.0.0", - "@lumino/application": "^1.6.0", - "@types/plotly.js": "^1.54.10", - "@types/webpack-env": "^1.13.6", - "acorn": "^7.2.0", - "css-loader": "^3.2.0", - "fs-extra": "^7.0.0", - "mkdirp": "^0.5.1", - "npm-run-all": "^4.1.3", - "prettier": "^2.0.5", - "rimraf": "^2.6.2", - "source-map-loader": "^1.1.3", - "style-loader": "^1.0.0", - "ts-loader": "^8.0.0", - "typescript": "~4.1.3", - "webpack": "^5.0.0", - "webpack-cli": "^4.0.0" - } - }, - "node_modules/@choojs/findup": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@choojs/findup/-/findup-0.2.1.tgz", - "integrity": "sha512-YstAqNb0MCN8PjdLCDfRsBcGVRN41f3vgLvaI0IrIcBp4AqILRSS0DeWNGkicC+f/zRIPJLc+9RURVSepwvfBw==", - "dependencies": { - "commander": "^2.15.1" - }, - "bin": { - "findup": "bin/findup.js" - } - }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz", - "integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@jupyter-widgets/base": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@jupyter-widgets/base/-/base-4.0.0.tgz", - "integrity": "sha512-lBQgLYzq6C+XjfVJTidk+rckKo/+xlTgIm1XUtACA3BUz8bgi2du2zmbYkcrplJMwGub4QWP6GnKgM5ZZRhzYg==", - "dependencies": { - "@jupyterlab/services": "^6.0.0", - "@lumino/coreutils": "^1.2.0", - "@lumino/messaging": "^1.2.1", - "@lumino/widgets": "^1.3.0", - "@types/backbone": "^1.4.1", - "@types/lodash": "^4.14.134", - "backbone": "1.2.3", - "base64-js": "^1.2.1", - "jquery": "^3.1.1", - "lodash": "^4.17.4" - } - }, - "node_modules/@jupyterlab/builder": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@jupyterlab/builder/-/builder-3.0.7.tgz", - "integrity": "sha512-WSUT4F4ywbKDXvLcIyz0VSnduQxYOD4C1SC2rJwBHl+ZXM23vDydo8J7CHrk1N3ZJCXCodTOg6z9YEKfbObzWA==", - "dev": true, - "dependencies": { - "@jupyterlab/buildutils": "^3.0.5", - "@lumino/algorithm": "^1.3.3", - "@lumino/application": "^1.13.1", - "@lumino/commands": "^1.12.0", - "@lumino/coreutils": "^1.5.3", - "@lumino/disposable": "^1.4.3", - "@lumino/domutils": "^1.2.3", - "@lumino/dragdrop": "^1.7.1", - "@lumino/messaging": "^1.4.3", - "@lumino/properties": "^1.2.3", - "@lumino/signaling": "^1.4.3", - "@lumino/virtualdom": "^1.8.0", - "@lumino/widgets": "^1.16.1", - "ajv": "^6.12.3", - "commander": "~6.0.0", - "css-loader": "^5.0.1", - "duplicate-package-checker-webpack-plugin": "^3.0.0", - "file-loader": "~6.0.0", - "fs-extra": "^9.0.1", - "glob": "~7.1.6", - "mini-css-extract-plugin": "~1.3.2", - "path-browserify": "^1.0.0", - "process": "^0.11.10", - "raw-loader": "~4.0.0", - "style-loader": "~2.0.0", - "supports-color": "^7.2.0", - "svg-url-loader": "~6.0.0", - "terser-webpack-plugin": "^4.1.0", - "to-string-loader": "^1.1.6", - "url-loader": "~4.1.0", - "webpack": "^5.3.1", - "webpack-cli": "^4.1.0", - "webpack-merge": "^5.1.2", - "worker-loader": "^3.0.2" - }, - "bin": { - "build-labextension": "lib/build-labextension.js" - } - }, - "node_modules/@jupyterlab/builder/node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@jupyterlab/builder/node_modules/commander": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.0.0.tgz", - "integrity": "sha512-s7EA+hDtTYNhuXkTlhqew4txMZVdszBmKWSPEMxGr8ru8JXR7bLUFIAtPhcSuFdJQ0ILMxnJi8GkQL0yvDy/YA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@jupyterlab/builder/node_modules/css-loader": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.0.tgz", - "integrity": "sha512-MfRo2MjEeLXMlUkeUwN71Vx5oc6EJnx5UQ4Yi9iUtYQvrPtwLUucYptz0hc6n++kdNcyF5olYBS4vPjJDAcLkw==", - "dev": true, - "dependencies": { - "camelcase": "^6.2.0", - "cssesc": "^3.0.0", - "icss-utils": "^5.1.0", - "loader-utils": "^2.0.0", - "postcss": "^8.2.8", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.1.0", - "schema-utils": "^3.0.0", - "semver": "^7.3.4" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/@jupyterlab/builder/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@jupyterlab/builder/node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" - } - }, - "node_modules/@jupyterlab/builder/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "node_modules/@jupyterlab/builder/node_modules/loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/@jupyterlab/builder/node_modules/postcss": { - "version": "8.2.9", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.9.tgz", - "integrity": "sha512-b+TmuIL4jGtCHtoLi+G/PisuIl9avxs8IZMSmlABRwNz5RLUUACrC+ws81dcomz1nRezm5YPdXiMEzBEKgYn+Q==", - "dev": true, - "dependencies": { - "colorette": "^1.2.2", - "nanoid": "^3.1.22", - "source-map": "^0.6.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/@jupyterlab/builder/node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" - } - }, - "node_modules/@jupyterlab/builder/node_modules/postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", - "dev": true, - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - } - }, - "node_modules/@jupyterlab/builder/node_modules/postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - } - }, - "node_modules/@jupyterlab/builder/node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - } - }, - "node_modules/@jupyterlab/builder/node_modules/schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/@jupyterlab/builder/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@jupyterlab/builder/node_modules/style-loader": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz", - "integrity": "sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/@jupyterlab/builder/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@jupyterlab/buildutils": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jupyterlab/buildutils/-/buildutils-3.0.5.tgz", - "integrity": "sha512-D+qx7a2S8qbHlHu+xOi1fw47FzDy89aZQ/ubELm3G+uDEtSVuP2rrVBwIeVq+QjahPt7DzP5z9zkhkiPaLWCtg==", - "dev": true, - "dependencies": { - "@lumino/coreutils": "^1.5.3", - "@yarnpkg/lockfile": "^1.1.0", - "child_process": "~1.0.2", - "commander": "~6.0.0", - "crypto": "~1.0.1", - "dependency-graph": "^0.9.0", - "fs-extra": "^9.0.1", - "glob": "~7.1.6", - "inquirer": "^7.0.0", - "package-json": "^6.5.0", - "prettier": "^2.1.1", - "semver": "^7.3.2", - "sort-package-json": "~1.44.0", - "typescript": "~4.1.3" - }, - "bin": { - "get-dependency": "lib/get-dependency.js", - "remove-dependency": "lib/remove-dependency.js", - "update-dependency": "lib/update-dependency.js", - "update-dist-tag": "lib/update-dist-tag.js" - } - }, - "node_modules/@jupyterlab/buildutils/node_modules/commander": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.0.0.tgz", - "integrity": "sha512-s7EA+hDtTYNhuXkTlhqew4txMZVdszBmKWSPEMxGr8ru8JXR7bLUFIAtPhcSuFdJQ0ILMxnJi8GkQL0yvDy/YA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@jupyterlab/buildutils/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@jupyterlab/buildutils/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "node_modules/@jupyterlab/buildutils/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@jupyterlab/buildutils/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@jupyterlab/coreutils": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@jupyterlab/coreutils/-/coreutils-5.0.4.tgz", - "integrity": "sha512-tmcyHk/mQ9YFgSwqWf1xJ4UrYtXBGCeR7K0bRmEwKrETGvTHNS4vqrT3D0pdSvpHdJ6cDienKE6v7ia0GYMAFw==", - "dependencies": { - "@lumino/coreutils": "^1.5.3", - "@lumino/disposable": "^1.4.3", - "@lumino/signaling": "^1.4.3", - "minimist": "~1.2.0", - "moment": "^2.24.0", - "path-browserify": "^1.0.0", - "url-parse": "~1.4.7" - } - }, - "node_modules/@jupyterlab/nbformat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@jupyterlab/nbformat/-/nbformat-3.0.4.tgz", - "integrity": "sha512-r+qZqlp4785OF+RDnvx8GvjxbAzQJcpQsV8274ZBGzunimn6NZskLlXgn2jddXExErwUwHfx9Z/n6D73FxcMEA==", - "dependencies": { - "@lumino/coreutils": "^1.5.3" - } - }, - "node_modules/@jupyterlab/observables": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@jupyterlab/observables/-/observables-4.0.4.tgz", - "integrity": "sha512-i4ccUgGYtNDHw8RRM9rwkSYBN+LfSsK+uk8A/MbbSAb1MJaJMs+uqgq2TIzq9j9Vp6Akp3BT6udtWntcR2XH0Q==", - "dependencies": { - "@lumino/algorithm": "^1.3.3", - "@lumino/coreutils": "^1.5.3", - "@lumino/disposable": "^1.4.3", - "@lumino/messaging": "^1.4.3", - "@lumino/signaling": "^1.4.3" - } - }, - "node_modules/@jupyterlab/rendermime-interfaces": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@jupyterlab/rendermime-interfaces/-/rendermime-interfaces-3.0.6.tgz", - "integrity": "sha512-T+1k9zIi94cILhs/w6tQTs6eHVornTu2t1HDAnEnFErdSSfckEvrN0uADh5JVNK3/ng+YXWQTqcMZ+xUbQvjbA==", - "dependencies": { - "@jupyterlab/translation": "^3.0.6", - "@lumino/coreutils": "^1.5.3", - "@lumino/widgets": "^1.16.1" - } - }, - "node_modules/@jupyterlab/services": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/@jupyterlab/services/-/services-6.0.6.tgz", - "integrity": "sha512-eXBemN7LiJWPtUMMDD1h6Tqb27QljxOiXCp18hihHRKUa5uVMmO33DfoKpglwfZvQC6Vz0yv/FnAGMd90IjdMw==", - "dependencies": { - "@jupyterlab/coreutils": "^5.0.4", - "@jupyterlab/nbformat": "^3.0.4", - "@jupyterlab/observables": "^4.0.4", - "@jupyterlab/settingregistry": "^3.0.4", - "@jupyterlab/statedb": "^3.0.4", - "@lumino/algorithm": "^1.3.3", - "@lumino/coreutils": "^1.5.3", - "@lumino/disposable": "^1.4.3", - "@lumino/polling": "^1.3.3", - "@lumino/signaling": "^1.4.3", - "node-fetch": "^2.6.0", - "ws": "^7.2.0" - } - }, - "node_modules/@jupyterlab/settingregistry": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@jupyterlab/settingregistry/-/settingregistry-3.0.4.tgz", - "integrity": "sha512-hEl9YUXOTL/pk4mhADVCTHmqqnn8byE+MluKCoXgiDpdMmUlHrk4rzYVxoF1Yeo2ZjMm4FfdzPEYQs0vF1Cbxg==", - "dependencies": { - "@jupyterlab/statedb": "^3.0.4", - "@lumino/commands": "^1.12.0", - "@lumino/coreutils": "^1.5.3", - "@lumino/disposable": "^1.4.3", - "@lumino/signaling": "^1.4.3", - "ajv": "^6.12.3", - "json5": "^2.1.1" - } - }, - "node_modules/@jupyterlab/statedb": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@jupyterlab/statedb/-/statedb-3.0.4.tgz", - "integrity": "sha512-dyE9oNx6JL60/u9edv2bZ3YzalidZcBbtjZx/KkY2XrWuNVlBLC/wHcGQwsUIxRBu41jp2VeIbsHdXNI5q2CwA==", - "dependencies": { - "@lumino/commands": "^1.12.0", - "@lumino/coreutils": "^1.5.3", - "@lumino/disposable": "^1.4.3", - "@lumino/properties": "^1.2.3", - "@lumino/signaling": "^1.4.3" - } - }, - "node_modules/@jupyterlab/translation": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@jupyterlab/translation/-/translation-3.0.6.tgz", - "integrity": "sha512-A37AyoGb9WckW132QGLUz7+9vCCepl9Fu1PC5MXJzidemNlTRLvJneihvlL09sJfq/HzlWflmvAyjC/qqkiQ5Q==", - "dependencies": { - "@jupyterlab/coreutils": "^5.0.4", - "@jupyterlab/services": "^6.0.6", - "@jupyterlab/statedb": "^3.0.4", - "@lumino/coreutils": "^1.5.3" - } - }, - "node_modules/@jupyterlab/translation/node_modules/@jupyterlab/coreutils": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@jupyterlab/coreutils/-/coreutils-5.0.4.tgz", - "integrity": "sha512-tmcyHk/mQ9YFgSwqWf1xJ4UrYtXBGCeR7K0bRmEwKrETGvTHNS4vqrT3D0pdSvpHdJ6cDienKE6v7ia0GYMAFw==", - "dependencies": { - "@lumino/coreutils": "^1.5.3", - "@lumino/disposable": "^1.4.3", - "@lumino/signaling": "^1.4.3", - "minimist": "~1.2.0", - "moment": "^2.24.0", - "path-browserify": "^1.0.0", - "url-parse": "~1.4.7" - } - }, - "node_modules/@jupyterlab/translation/node_modules/@jupyterlab/nbformat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@jupyterlab/nbformat/-/nbformat-3.0.4.tgz", - "integrity": "sha512-r+qZqlp4785OF+RDnvx8GvjxbAzQJcpQsV8274ZBGzunimn6NZskLlXgn2jddXExErwUwHfx9Z/n6D73FxcMEA==", - "dependencies": { - "@lumino/coreutils": "^1.5.3" - } - }, - "node_modules/@jupyterlab/translation/node_modules/@jupyterlab/observables": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@jupyterlab/observables/-/observables-4.0.4.tgz", - "integrity": "sha512-i4ccUgGYtNDHw8RRM9rwkSYBN+LfSsK+uk8A/MbbSAb1MJaJMs+uqgq2TIzq9j9Vp6Akp3BT6udtWntcR2XH0Q==", - "dependencies": { - "@lumino/algorithm": "^1.3.3", - "@lumino/coreutils": "^1.5.3", - "@lumino/disposable": "^1.4.3", - "@lumino/messaging": "^1.4.3", - "@lumino/signaling": "^1.4.3" - } - }, - "node_modules/@jupyterlab/translation/node_modules/@jupyterlab/services": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/@jupyterlab/services/-/services-6.0.6.tgz", - "integrity": "sha512-eXBemN7LiJWPtUMMDD1h6Tqb27QljxOiXCp18hihHRKUa5uVMmO33DfoKpglwfZvQC6Vz0yv/FnAGMd90IjdMw==", - "dependencies": { - "@jupyterlab/coreutils": "^5.0.4", - "@jupyterlab/nbformat": "^3.0.4", - "@jupyterlab/observables": "^4.0.4", - "@jupyterlab/settingregistry": "^3.0.4", - "@jupyterlab/statedb": "^3.0.4", - "@lumino/algorithm": "^1.3.3", - "@lumino/coreutils": "^1.5.3", - "@lumino/disposable": "^1.4.3", - "@lumino/polling": "^1.3.3", - "@lumino/signaling": "^1.4.3", - "node-fetch": "^2.6.0", - "ws": "^7.2.0" - } - }, - "node_modules/@jupyterlab/translation/node_modules/@jupyterlab/settingregistry": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@jupyterlab/settingregistry/-/settingregistry-3.0.4.tgz", - "integrity": "sha512-hEl9YUXOTL/pk4mhADVCTHmqqnn8byE+MluKCoXgiDpdMmUlHrk4rzYVxoF1Yeo2ZjMm4FfdzPEYQs0vF1Cbxg==", - "dependencies": { - "@jupyterlab/statedb": "^3.0.4", - "@lumino/commands": "^1.12.0", - "@lumino/coreutils": "^1.5.3", - "@lumino/disposable": "^1.4.3", - "@lumino/signaling": "^1.4.3", - "ajv": "^6.12.3", - "json5": "^2.1.1" - } - }, - "node_modules/@jupyterlab/translation/node_modules/@jupyterlab/statedb": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@jupyterlab/statedb/-/statedb-3.0.4.tgz", - "integrity": "sha512-dyE9oNx6JL60/u9edv2bZ3YzalidZcBbtjZx/KkY2XrWuNVlBLC/wHcGQwsUIxRBu41jp2VeIbsHdXNI5q2CwA==", - "dependencies": { - "@lumino/commands": "^1.12.0", - "@lumino/coreutils": "^1.5.3", - "@lumino/disposable": "^1.4.3", - "@lumino/properties": "^1.2.3", - "@lumino/signaling": "^1.4.3" - } - }, - "node_modules/@lumino/algorithm": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@lumino/algorithm/-/algorithm-1.3.3.tgz", - "integrity": "sha512-I2BkssbOSLq3rDjgAC3fzf/zAIwkRUnAh60MO0lYcaFdSGyI15w4K3gwZHGIO0p9cKEiNHLXKEODGmOjMLOQ3g==" - }, - "node_modules/@lumino/application": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@lumino/application/-/application-1.17.0.tgz", - "integrity": "sha512-g5aCFrVxwbYv4dhmQxGaiKDm2Sd768r0qhBPb2f5HhHOSCj6M/ygSedwHvE8LKixYz6sHNj5yEJAbSLssaH7Cw==", - "dev": true, - "dependencies": { - "@lumino/commands": "^1.13.0", - "@lumino/coreutils": "^1.6.0", - "@lumino/widgets": "^1.20.0" - } - }, - "node_modules/@lumino/application/node_modules/@lumino/algorithm": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@lumino/algorithm/-/algorithm-1.4.0.tgz", - "integrity": "sha512-ptFtwall4bCmK+0WQiCin7pY10GphgZU9cupF8SCXYS/nUkQaV60mvWhB8V3WNQf/fOBawzU3hygdXGthfHK9A==", - "dev": true - }, - "node_modules/@lumino/application/node_modules/@lumino/commands": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@lumino/commands/-/commands-1.13.0.tgz", - "integrity": "sha512-BDfp1OWyRvwu0JrGd3GP+u9G5AiM52tJzf+bI1p/urtzBVZp/6exOo2LdZuThps14gzYF3CeCE5JjbxCPj+a5g==", - "dev": true, - "dependencies": { - "@lumino/algorithm": "^1.4.0", - "@lumino/coreutils": "^1.6.0", - "@lumino/disposable": "^1.5.0", - "@lumino/domutils": "^1.3.0", - "@lumino/keyboard": "^1.3.0", - "@lumino/signaling": "^1.5.0", - "@lumino/virtualdom": "^1.9.0" - } - }, - "node_modules/@lumino/application/node_modules/@lumino/coreutils": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@lumino/coreutils/-/coreutils-1.6.0.tgz", - "integrity": "sha512-hwUkRfwn8Rnb94VbQSt7O5QwVZ+0A+PbL77V7fzjy9o3+ICdTDqpo5m6bhOoNmSz5m/dWcSD4YSpuGtUNunVEw==", - "dev": true - }, - "node_modules/@lumino/application/node_modules/@lumino/disposable": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@lumino/disposable/-/disposable-1.5.0.tgz", - "integrity": "sha512-Qq/vyMxacSxUjISXHTNz2ccAJdO7j/J771PUuU0VZc3oR80oTTyakUyoH2AciSAuN9AaeTEHsG1qv75JHqYoIg==", - "dev": true, - "dependencies": { - "@lumino/algorithm": "^1.4.0", - "@lumino/signaling": "^1.5.0" - } - }, - "node_modules/@lumino/application/node_modules/@lumino/domutils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@lumino/domutils/-/domutils-1.3.0.tgz", - "integrity": "sha512-JvejySp2BrzRSAQ3DfTgPP4/x7yI/OouD5fCkeET83YLsOkcrFHwd2aehFEeVeo+WIg57ADv+CYh7+bZPgrkCw==", - "dev": true - }, - "node_modules/@lumino/application/node_modules/@lumino/keyboard": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@lumino/keyboard/-/keyboard-1.3.0.tgz", - "integrity": "sha512-F9KHfqya2+4elMQ2X+TB4FVlY/5uLGhft1eZ8h1sAYD6p4HG2onFHlSk2byaIdE8fybjrxDUSH7x15Q6bn9yJw==", - "dev": true - }, - "node_modules/@lumino/application/node_modules/@lumino/signaling": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@lumino/signaling/-/signaling-1.5.0.tgz", - "integrity": "sha512-yUrSHJq2N/c9Ro4BWKWAkO7YKA0mkHcN+1AkerUPr1/0ecQP+IoPbk+SdYPQXsKAqY9uQuG3AQkqE56ps75peQ==", - "dev": true, - "dependencies": { - "@lumino/algorithm": "^1.4.0" - } - }, - "node_modules/@lumino/application/node_modules/@lumino/virtualdom": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@lumino/virtualdom/-/virtualdom-1.9.0.tgz", - "integrity": "sha512-llWONY4O2GDk3gGIjQJQ8ji1wikPE+fk/rVMUbWSPkUSQOR9CEZmuXvuMbnNwFfXPSPPm20WaTFLysJ4mANrqw==", - "dev": true, - "dependencies": { - "@lumino/algorithm": "^1.4.0" - } - }, - "node_modules/@lumino/collections": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@lumino/collections/-/collections-1.4.0.tgz", - "integrity": "sha512-yEADfxJ9U+ihmofUkOeW7+S2whU0TpuHgmrVDNs1hsMqD1zX7cjNA8EXZ5uUA6dPKjZ1ulzepAwlWe80GXsgeg==", - "dependencies": { - "@lumino/algorithm": "^1.4.0" - } - }, - "node_modules/@lumino/collections/node_modules/@lumino/algorithm": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@lumino/algorithm/-/algorithm-1.4.0.tgz", - "integrity": "sha512-ptFtwall4bCmK+0WQiCin7pY10GphgZU9cupF8SCXYS/nUkQaV60mvWhB8V3WNQf/fOBawzU3hygdXGthfHK9A==" - }, - "node_modules/@lumino/commands": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/@lumino/commands/-/commands-1.12.0.tgz", - "integrity": "sha512-5TFlhDzZk1X8rCBjhh0HH3j6CcJ03mx2Pd/1rGa7MB5R+3+yYYk+gTlfHRqsxdehNRmiISaHRSrMnW8bynW7ZQ==", - "dependencies": { - "@lumino/algorithm": "^1.3.3", - "@lumino/coreutils": "^1.5.3", - "@lumino/disposable": "^1.4.3", - "@lumino/domutils": "^1.2.3", - "@lumino/keyboard": "^1.2.3", - "@lumino/signaling": "^1.4.3", - "@lumino/virtualdom": "^1.8.0" - } - }, - "node_modules/@lumino/coreutils": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@lumino/coreutils/-/coreutils-1.5.3.tgz", - "integrity": "sha512-G72jJ6sgOwAUuilz+cri7LpHIJxllK+qz+YZUC3fyyWHK7oRlZemcc43jZAVE+tagTdMxKYSQWNIVzM5lI8sWw==" - }, - "node_modules/@lumino/disposable": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@lumino/disposable/-/disposable-1.4.3.tgz", - "integrity": "sha512-zKQ9N2AEGcYpG6PJkeMWQXvoXU9w1ocji78z+fboM/SmSgtOIVGeQt3fZeldymf0XrlOPpNXs1ZFg54yWUMnXA==", - "dependencies": { - "@lumino/algorithm": "^1.3.3", - "@lumino/signaling": "^1.4.3" - } - }, - "node_modules/@lumino/domutils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@lumino/domutils/-/domutils-1.2.3.tgz", - "integrity": "sha512-SEi8WZSy+DWMkL5CfAY78MHbi3x83AVmRFxjs9+A6qsFPde+Hr1I4DNtLsSDmfAWsobHHgBnjyNp2ZkQEq0IEA==" - }, - "node_modules/@lumino/dragdrop": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@lumino/dragdrop/-/dragdrop-1.7.1.tgz", - "integrity": "sha512-IeSSOTmpqBSWz+EVsbGVeHe/KIaHaUsQXZ4BJCEbCKgNGHbqMfUOtlneiKq7rEhZGF4wYs7gWWjNhMVZbUGO9Q==", - "dev": true, - "dependencies": { - "@lumino/coreutils": "^1.5.3", - "@lumino/disposable": "^1.4.3" - } - }, - "node_modules/@lumino/keyboard": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@lumino/keyboard/-/keyboard-1.2.3.tgz", - "integrity": "sha512-ibS0sz0VABeuJXx2JVSz36sUBMUOcQNCNPybVhwzN/GkJFs0dnDKluMu+3Px0tkB2y33bGPZU/RLZY1Xj/faEA==" - }, - "node_modules/@lumino/messaging": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@lumino/messaging/-/messaging-1.5.0.tgz", - "integrity": "sha512-LzxjA18ncc3tksgE2JlIUCeTvnsrsYsaSxgl1QniAsYMcKd+9f7VN4f6Wq42ouPZtE+dJosQ35mji2+5Ao/tGA==", - "dependencies": { - "@lumino/algorithm": "^1.4.0", - "@lumino/collections": "^1.4.0" - } - }, - "node_modules/@lumino/messaging/node_modules/@lumino/algorithm": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@lumino/algorithm/-/algorithm-1.4.0.tgz", - "integrity": "sha512-ptFtwall4bCmK+0WQiCin7pY10GphgZU9cupF8SCXYS/nUkQaV60mvWhB8V3WNQf/fOBawzU3hygdXGthfHK9A==" - }, - "node_modules/@lumino/polling": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@lumino/polling/-/polling-1.3.3.tgz", - "integrity": "sha512-uMRi6sPRnKW8m38WUY3qox1jxwzpvceafUbDJATCwyrZ48+YoY5Fxfmd9dqwioHS1aq9np5c6L35a9ZGuS0Maw==", - "dependencies": { - "@lumino/coreutils": "^1.5.3", - "@lumino/disposable": "^1.4.3", - "@lumino/signaling": "^1.4.3" - } - }, - "node_modules/@lumino/properties": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@lumino/properties/-/properties-1.2.3.tgz", - "integrity": "sha512-dbS9V/L+RpQoRjxHMAGh1JYoXaLA6F7xkVbg/vmYXqdXZ7DguO5C3Qteu9tNp7Z7Q31TqFWUCrniTI9UJiJCoQ==" - }, - "node_modules/@lumino/signaling": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@lumino/signaling/-/signaling-1.4.3.tgz", - "integrity": "sha512-6clc8SMcH0tyKXIX31xw6sxjxJl5hj4YRd1DTHTS62cegQ0FkO8JjJeuv+Nc1pgTg6nEAf65aSOHpUdsFHDAvQ==", - "dependencies": { - "@lumino/algorithm": "^1.3.3" - } - }, - "node_modules/@lumino/virtualdom": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@lumino/virtualdom/-/virtualdom-1.8.0.tgz", - "integrity": "sha512-X/1b8b7TxB9tb4+xQiS8oArcA/AK7NBZrsg2dzu/gHa3JC45R8nzQ+0tObD8Nd0gF/e9w9Ps9M62rLfefcbbKw==", - "dependencies": { - "@lumino/algorithm": "^1.3.3" - } - }, - "node_modules/@lumino/widgets": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/@lumino/widgets/-/widgets-1.20.0.tgz", - "integrity": "sha512-kJxfwlw+i7jmDHqxdaiw7ztq3JbS48u8wEMPpd7JI5dnEOBBkbvukvvHBNhfU3gLF/xttPokCCQiysMFlU/u7w==", - "dependencies": { - "@lumino/algorithm": "^1.4.0", - "@lumino/commands": "^1.13.0", - "@lumino/coreutils": "^1.6.0", - "@lumino/disposable": "^1.5.0", - "@lumino/domutils": "^1.3.0", - "@lumino/dragdrop": "^1.8.0", - "@lumino/keyboard": "^1.3.0", - "@lumino/messaging": "^1.5.0", - "@lumino/properties": "^1.3.0", - "@lumino/signaling": "^1.5.0", - "@lumino/virtualdom": "^1.9.0" - } - }, - "node_modules/@lumino/widgets/node_modules/@lumino/algorithm": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@lumino/algorithm/-/algorithm-1.4.0.tgz", - "integrity": "sha512-ptFtwall4bCmK+0WQiCin7pY10GphgZU9cupF8SCXYS/nUkQaV60mvWhB8V3WNQf/fOBawzU3hygdXGthfHK9A==" - }, - "node_modules/@lumino/widgets/node_modules/@lumino/commands": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@lumino/commands/-/commands-1.13.0.tgz", - "integrity": "sha512-BDfp1OWyRvwu0JrGd3GP+u9G5AiM52tJzf+bI1p/urtzBVZp/6exOo2LdZuThps14gzYF3CeCE5JjbxCPj+a5g==", - "dependencies": { - "@lumino/algorithm": "^1.4.0", - "@lumino/coreutils": "^1.6.0", - "@lumino/disposable": "^1.5.0", - "@lumino/domutils": "^1.3.0", - "@lumino/keyboard": "^1.3.0", - "@lumino/signaling": "^1.5.0", - "@lumino/virtualdom": "^1.9.0" - } - }, - "node_modules/@lumino/widgets/node_modules/@lumino/coreutils": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@lumino/coreutils/-/coreutils-1.6.0.tgz", - "integrity": "sha512-hwUkRfwn8Rnb94VbQSt7O5QwVZ+0A+PbL77V7fzjy9o3+ICdTDqpo5m6bhOoNmSz5m/dWcSD4YSpuGtUNunVEw==" - }, - "node_modules/@lumino/widgets/node_modules/@lumino/disposable": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@lumino/disposable/-/disposable-1.5.0.tgz", - "integrity": "sha512-Qq/vyMxacSxUjISXHTNz2ccAJdO7j/J771PUuU0VZc3oR80oTTyakUyoH2AciSAuN9AaeTEHsG1qv75JHqYoIg==", - "dependencies": { - "@lumino/algorithm": "^1.4.0", - "@lumino/signaling": "^1.5.0" - } - }, - "node_modules/@lumino/widgets/node_modules/@lumino/domutils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@lumino/domutils/-/domutils-1.3.0.tgz", - "integrity": "sha512-JvejySp2BrzRSAQ3DfTgPP4/x7yI/OouD5fCkeET83YLsOkcrFHwd2aehFEeVeo+WIg57ADv+CYh7+bZPgrkCw==" - }, - "node_modules/@lumino/widgets/node_modules/@lumino/dragdrop": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@lumino/dragdrop/-/dragdrop-1.8.0.tgz", - "integrity": "sha512-jDHrUGqM5RWS2QoKlxN1xLRqtlia+aM+6FiQdYa0p4I4UTX/IYdKgPhWfeH1iLk/7TLUM5p7SAOCZlHXYN2dYg==", - "dependencies": { - "@lumino/coreutils": "^1.6.0", - "@lumino/disposable": "^1.5.0" - } - }, - "node_modules/@lumino/widgets/node_modules/@lumino/keyboard": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@lumino/keyboard/-/keyboard-1.3.0.tgz", - "integrity": "sha512-F9KHfqya2+4elMQ2X+TB4FVlY/5uLGhft1eZ8h1sAYD6p4HG2onFHlSk2byaIdE8fybjrxDUSH7x15Q6bn9yJw==" - }, - "node_modules/@lumino/widgets/node_modules/@lumino/properties": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@lumino/properties/-/properties-1.3.0.tgz", - "integrity": "sha512-yJZ9QLvOYSoFmy/DlqB6MC/7ZiStZ173K8WKG622tcOTGfU7aqDxJq1Y0s9v3qSEIc9XlGKvYksM9yd416nlmQ==" - }, - "node_modules/@lumino/widgets/node_modules/@lumino/signaling": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@lumino/signaling/-/signaling-1.5.0.tgz", - "integrity": "sha512-yUrSHJq2N/c9Ro4BWKWAkO7YKA0mkHcN+1AkerUPr1/0ecQP+IoPbk+SdYPQXsKAqY9uQuG3AQkqE56ps75peQ==", - "dependencies": { - "@lumino/algorithm": "^1.4.0" - } - }, - "node_modules/@lumino/widgets/node_modules/@lumino/virtualdom": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@lumino/virtualdom/-/virtualdom-1.9.0.tgz", - "integrity": "sha512-llWONY4O2GDk3gGIjQJQ8ji1wikPE+fk/rVMUbWSPkUSQOR9CEZmuXvuMbnNwFfXPSPPm20WaTFLysJ4mANrqw==", - "dependencies": { - "@lumino/algorithm": "^1.4.0" - } - }, - "node_modules/@mapbox/geojson-rewind": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.0.tgz", - "integrity": "sha512-73l/qJQgj/T/zO1JXVfuVvvKDgikD/7D/rHAD28S9BG1OTstgmftrmqfCx4U+zQAmtsB6HcDA3a7ymdnJZAQgg==", - "dependencies": { - "concat-stream": "~2.0.0", - "minimist": "^1.2.5" - }, - "bin": { - "geojson-rewind": "geojson-rewind" - } - }, - "node_modules/@mapbox/geojson-rewind/node_modules/concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "engines": [ - "node >= 6.0" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/@mapbox/geojson-rewind/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@mapbox/geojson-rewind/node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/@mapbox/geojson-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz", - "integrity": "sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw==" - }, - "node_modules/@mapbox/jsonlint-lines-primitives": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", - "integrity": "sha1-zlblOfg1UrWNENZy6k1vya3HsjQ=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@mapbox/mapbox-gl-supported": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz", - "integrity": "sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==" - }, - "node_modules/@mapbox/point-geometry": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", - "integrity": "sha1-ioP5M1x4YO/6Lu7KJUMyqgru2PI=" - }, - "node_modules/@mapbox/tiny-sdf": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.1.1.tgz", - "integrity": "sha512-Ihn1nZcGIswJ5XGbgFAvVumOgWpvIjBX9jiRlIl46uQG9vJOF51ViBYHF95rEZupuyQbEmhLaDPLQlU7fUTsBg==" - }, - "node_modules/@mapbox/unitbezier": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", - "integrity": "sha1-FWUb1VOme4WB+zmIEMmK2Go0Uk4=" - }, - "node_modules/@mapbox/vector-tile": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", - "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", - "dependencies": { - "@mapbox/point-geometry": "~0.1.0" - } - }, - "node_modules/@mapbox/whoots-js": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", - "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", - "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.4", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", - "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", - "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.4", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "dev": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/move-file/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/move-file/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/@plotly/d3-sankey": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@plotly/d3-sankey/-/d3-sankey-0.7.2.tgz", - "integrity": "sha512-2jdVos1N3mMp3QW0k2q1ph7Gd6j5PY1YihBrwpkFnKqO+cqtZq3AdEYUeSGXMeLsBDQYiqTVcihYfk8vr5tqhw==", - "dependencies": { - "d3-array": "1", - "d3-collection": "1", - "d3-shape": "^1.2.0" - } - }, - "node_modules/@plotly/d3-sankey-circular": { - "version": "0.33.1", - "resolved": "https://registry.npmjs.org/@plotly/d3-sankey-circular/-/d3-sankey-circular-0.33.1.tgz", - "integrity": "sha512-FgBV1HEvCr3DV7RHhDsPXyryknucxtfnLwPtCKKxdolKyTFYoLX/ibEfX39iFYIL7DYbVeRtP43dbFcrHNE+KQ==", - "dependencies": { - "d3-array": "^1.2.1", - "d3-collection": "^1.0.4", - "d3-shape": "^1.2.0", - "elementary-circuits-directed-graph": "^1.0.4" - } - }, - "node_modules/@plotly/point-cluster": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@plotly/point-cluster/-/point-cluster-3.1.9.tgz", - "integrity": "sha512-MwaI6g9scKf68Orpr1pHZ597pYx9uP8UEFXLPbsCmuw3a84obwz6pnMXGc90VhgDNeNiLEdlmuK7CPo+5PIxXw==", - "dependencies": { - "array-bounds": "^1.0.1", - "binary-search-bounds": "^2.0.4", - "clamp": "^1.0.1", - "defined": "^1.0.0", - "dtype": "^2.0.0", - "flatten-vertex-data": "^1.0.2", - "is-obj": "^1.0.1", - "math-log2": "^1.0.1", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0" - } - }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@turf/area": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@turf/area/-/area-6.0.1.tgz", - "integrity": "sha512-Zv+3N1ep9P5JvR0YOYagLANyapGWQBh8atdeR3bKpWcigVXFsEKNUw03U/5xnh+cKzm7yozHD6MFJkqQv55y0g==", - "dependencies": { - "@turf/helpers": "6.x", - "@turf/meta": "6.x" - } - }, - "node_modules/@turf/bbox": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.0.1.tgz", - "integrity": "sha512-EGgaRLettBG25Iyx7VyUINsPpVj1x3nFQFiGS3ER8KCI1MximzNLsam3eXRabqQDjyAKyAE1bJ4EZEpGvspQxw==", - "dependencies": { - "@turf/helpers": "6.x", - "@turf/meta": "6.x" - } - }, - "node_modules/@turf/centroid": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-6.0.2.tgz", - "integrity": "sha512-auyDauOtC4eddH7GC3CHFTDu2PKhpSeKCRhwhHhXtJqn2dWCJQNIoCeJRmfXRIbzCWhWvgvQafvvhq8HNvmvWw==", - "dependencies": { - "@turf/helpers": "6.x", - "@turf/meta": "6.x" - } - }, - "node_modules/@turf/helpers": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.1.4.tgz", - "integrity": "sha512-vJvrdOZy1ngC7r3MDA7zIGSoIgyrkWcGnNIEaqn/APmw+bVLF2gAW7HIsdTxd12s5wQMqEpqIQrmrbRRZ0xC7g==" - }, - "node_modules/@turf/meta": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.0.2.tgz", - "integrity": "sha512-VA7HJkx7qF1l3+GNGkDVn2oXy4+QoLP6LktXAaZKjuT1JI0YESat7quUkbCMy4zP9lAUuvS4YMslLyTtr919FA==", - "dependencies": { - "@turf/helpers": "6.x" - } - }, - "node_modules/@types/backbone": { - "version": "1.4.10", - "resolved": "https://registry.npmjs.org/@types/backbone/-/backbone-1.4.10.tgz", - "integrity": "sha512-X6UM8N9i4WFtO1F53Z3DE7mjI7UxEfxyFtMTYHOPFhYFvExDuu0UJENstnA023+/FnVOdxltMIKc4picZxW4dA==", - "dependencies": { - "@types/jquery": "*", - "@types/underscore": "*" - } - }, - "node_modules/@types/d3": { - "version": "3.5.44", - "resolved": "https://registry.npmjs.org/@types/d3/-/d3-3.5.44.tgz", - "integrity": "sha512-hFEcf03YGJ2uQoDYEp3nFD5mXWxly5kf6KOstuOQFEs9sUCN7kNlKhcYkpZ3gK6PiHz4XRLkoHa80NVCJNeLBw==", - "dev": true - }, - "node_modules/@types/eslint": { - "version": "7.2.8", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.8.tgz", - "integrity": "sha512-RTKvBsfz0T8CKOGZMfuluDNyMFHnu5lvNr4hWEsQeHXH6FcmIDIozOyWMh36nLGMwVd5UFNXC2xztA8lln22MQ==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz", - "integrity": "sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==", - "dev": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "0.0.46", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.46.tgz", - "integrity": "sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==", - "dev": true - }, - "node_modules/@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", - "dev": true, - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/jquery": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.5.tgz", - "integrity": "sha512-6RXU9Xzpc6vxNrS6FPPapN1SxSHgQ336WC6Jj/N8q30OiaBZ00l1GBgeP7usjVZPivSkGUfL1z/WW6TX989M+w==", - "dependencies": { - "@types/sizzle": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", - "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", - "dev": true - }, - "node_modules/@types/lodash": { - "version": "4.14.168", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", - "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==" - }, - "node_modules/@types/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==", - "dev": true - }, - "node_modules/@types/node": { - "version": "14.14.37", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.37.tgz", - "integrity": "sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==", - "dev": true - }, - "node_modules/@types/plotly.js": { - "version": "1.54.10", - "resolved": "https://registry.npmjs.org/@types/plotly.js/-/plotly.js-1.54.10.tgz", - "integrity": "sha512-38CuUoM5M1jQl5setuGl4yj59+7Cn6WYIQyeGLptJpAJre9/wZLl0EzdnImVB3l+qUBYxkbCH9FIDV/JoPzTXQ==", - "dev": true, - "dependencies": { - "@types/d3": "^3" - } - }, - "node_modules/@types/sizzle": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.2.tgz", - "integrity": "sha512-7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==" - }, - "node_modules/@types/underscore": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@types/underscore/-/underscore-1.11.1.tgz", - "integrity": "sha512-mW23Xkp9HYgdMV7gnwuzqnPx6aG0J7xg/b7erQszOcyOizWylwCr9cgYM/BVVJHezUDxwyigG6+wCFQwCvyMBw==" - }, - "node_modules/@types/webpack-env": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.16.0.tgz", - "integrity": "sha512-Fx+NpfOO0CpeYX2g9bkvX8O5qh9wrU1sOF4g8sft4Mu7z+qfe387YlyY8w8daDyDsKY5vUxM0yxkAYnbkRbZEw==", - "dev": true - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.0.tgz", - "integrity": "sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg==", - "dev": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.0", - "@webassemblyjs/helper-wasm-bytecode": "1.11.0" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz", - "integrity": "sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz", - "integrity": "sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz", - "integrity": "sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz", - "integrity": "sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.0", - "@webassemblyjs/helper-api-error": "1.11.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz", - "integrity": "sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz", - "integrity": "sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/helper-buffer": "1.11.0", - "@webassemblyjs/helper-wasm-bytecode": "1.11.0", - "@webassemblyjs/wasm-gen": "1.11.0" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz", - "integrity": "sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA==", - "dev": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.0.tgz", - "integrity": "sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g==", - "dev": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.0.tgz", - "integrity": "sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw==", - "dev": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz", - "integrity": "sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/helper-buffer": "1.11.0", - "@webassemblyjs/helper-wasm-bytecode": "1.11.0", - "@webassemblyjs/helper-wasm-section": "1.11.0", - "@webassemblyjs/wasm-gen": "1.11.0", - "@webassemblyjs/wasm-opt": "1.11.0", - "@webassemblyjs/wasm-parser": "1.11.0", - "@webassemblyjs/wast-printer": "1.11.0" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz", - "integrity": "sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/helper-wasm-bytecode": "1.11.0", - "@webassemblyjs/ieee754": "1.11.0", - "@webassemblyjs/leb128": "1.11.0", - "@webassemblyjs/utf8": "1.11.0" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.0.tgz", - "integrity": "sha512-tHUSP5F4ywyh3hZ0+fDQuWxKx3mJiPeFufg+9gwTpYp324mPCQgnuVKwzLTZVqj0duRDovnPaZqDwoyhIO8kYg==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/helper-buffer": "1.11.0", - "@webassemblyjs/wasm-gen": "1.11.0", - "@webassemblyjs/wasm-parser": "1.11.0" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.0.tgz", - "integrity": "sha512-6L285Sgu9gphrcpDXINvm0M9BskznnzJTE7gYkjDbxET28shDqp27wpruyx3C2S/dvEwiigBwLA1cz7lNUi0kw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/helper-api-error": "1.11.0", - "@webassemblyjs/helper-wasm-bytecode": "1.11.0", - "@webassemblyjs/ieee754": "1.11.0", - "@webassemblyjs/leb128": "1.11.0", - "@webassemblyjs/utf8": "1.11.0" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.0.tgz", - "integrity": "sha512-Fg5OX46pRdTgB7rKIUojkh9vXaVN6sGYCnEiJN1GYkb0RPwShZXp6KTDqmoMdQPKhcroOXh3fEzmkWmCYaKYhQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webpack-cli/configtest": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.2.tgz", - "integrity": "sha512-3OBzV2fBGZ5TBfdW50cha1lHDVf9vlvRXnjpVbJBa20pSZQaSkMJZiwA8V2vD9ogyeXn8nU5s5A6mHyf5jhMzA==", - "dev": true - }, - "node_modules/@webpack-cli/info": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.3.tgz", - "integrity": "sha512-lLek3/T7u40lTqzCGpC6CAbY6+vXhdhmwFRxZLMnRm6/sIF/7qMpT8MocXCRQfz0JAh63wpbXLMnsQ5162WS7Q==", - "dev": true, - "dependencies": { - "envinfo": "^7.7.3" - } - }, - "node_modules/@webpack-cli/serve": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.3.1.tgz", - "integrity": "sha512-0qXvpeYO6vaNoRBI52/UsbcaBydJCggoBBnIo/ovQQdn6fug0BgwsjorV1hVS7fMqGVTZGcVxv8334gjmbj5hw==", - "dev": true - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true - }, - "node_modules/3d-view": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/3d-view/-/3d-view-2.0.0.tgz", - "integrity": "sha1-gxrpQtdQjFCAHj4G+v4ejFdOF74=", - "dependencies": { - "matrix-camera-controller": "^2.1.1", - "orbit-camera-controller": "^4.0.0", - "turntable-camera-controller": "^3.0.0" - } - }, - "node_modules/a-big-triangle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/a-big-triangle/-/a-big-triangle-1.0.3.tgz", - "integrity": "sha1-7v0wsCqPUl6LH3K7a7GwwWdRx5Q=", - "dependencies": { - "gl-buffer": "^2.1.1", - "gl-vao": "^1.2.0", - "weak-map": "^1.0.5" - } - }, - "node_modules/abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "node_modules/abs-svg-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz", - "integrity": "sha1-32Acjo0roQ1KdtYl4japo5wnI78=" - }, - "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/add-line-numbers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/add-line-numbers/-/add-line-numbers-1.0.1.tgz", - "integrity": "sha1-SNu96kfb0jTer+rGyTzqb3C0t+M=", - "dependencies": { - "pad-left": "^1.0.2" - } - }, - "node_modules/affine-hull": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/affine-hull/-/affine-hull-1.0.0.tgz", - "integrity": "sha1-dj/x040GPOt+Jy8X7k17vK+QXF0=", - "dependencies": { - "robust-orientation": "^1.1.3" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "node_modules/almost-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/almost-equal/-/almost-equal-1.1.0.tgz", - "integrity": "sha1-+FHGMROHV5lCdqou++jfowZszN0=" - }, - "node_modules/alpha-complex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/alpha-complex/-/alpha-complex-1.0.0.tgz", - "integrity": "sha1-kIZYcNawVCrnPAwTHU75iWabctI=", - "dependencies": { - "circumradius": "^1.0.0", - "delaunay-triangulate": "^1.1.6" - } - }, - "node_modules/alpha-shape": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/alpha-shape/-/alpha-shape-1.0.0.tgz", - "integrity": "sha1-yDEJkj7P2mZ9IWP+Tyb+JHJvZKk=", - "dependencies": { - "alpha-complex": "^1.0.0", - "simplicial-complex-boundary": "^1.0.0" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-bounds": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-bounds/-/array-bounds-1.0.1.tgz", - "integrity": "sha512-8wdW3ZGk6UjMPJx/glyEt0sLzzwAE1bhToPsO1W2pbpR2gULyxe3BjSiuJFheP50T/GgODVPz2fuMUmIywt8cQ==" - }, - "node_modules/array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-normalize": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array-normalize/-/array-normalize-1.1.4.tgz", - "integrity": "sha512-fCp0wKFLjvSPmCn4F5Tiw4M3lpMZoHlCjfcs7nNzuj3vqQQ1/a8cgB9DXcpDSn18c+coLnaW7rqfcYCvKbyJXg==", - "dependencies": { - "array-bounds": "^1.0.0" - } - }, - "node_modules/array-range": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-range/-/array-range-1.0.1.tgz", - "integrity": "sha1-9W5GWRhDYRxqVvd+8C7afFAIm/w=" - }, - "node_modules/array-rearrange": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/array-rearrange/-/array-rearrange-2.2.2.tgz", - "integrity": "sha512-UfobP5N12Qm4Qu4fwLDIi2v6+wZsSf6snYSxAMeKhrh37YGnNWZPRmVEKc/2wfms53TLQnzfpG8wCx2Y/6NG1w==" - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/atob-lite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-1.0.0.tgz", - "integrity": "sha1-uI3KYAaSK5YglPdVaCa6sxxKKWs=" - }, - "node_modules/backbone": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/backbone/-/backbone-1.2.3.tgz", - "integrity": "sha1-wiz9B/yG676uYdGJKe0RXpmdZbk=", - "dependencies": { - "underscore": ">=1.7.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "node_modules/barycentric": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/barycentric/-/barycentric-1.0.1.tgz", - "integrity": "sha1-8VYruJGyb0/sRjqC7to2V4AOxog=", - "dependencies": { - "robust-linear-solve": "^1.0.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "node_modules/big-rat": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/big-rat/-/big-rat-1.0.4.tgz", - "integrity": "sha1-do0JO7V5MN0Y7Vdcf8on3FORreo=", - "dependencies": { - "bit-twiddle": "^1.0.2", - "bn.js": "^4.11.6", - "double-bits": "^1.1.1" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/binary-search-bounds": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.4.tgz", - "integrity": "sha512-2hg5kgdKql5ClF2ErBcSx0U5bnl5hgS4v7wMnLFodyR47yMtj2w+UAZB+0CiqyHct2q543i7Bi4/aMIegorCCg==" - }, - "node_modules/bit-twiddle": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz", - "integrity": "sha1-DGwfq+KyPRcXPZpht7cJPrnhdp4=" - }, - "node_modules/bitmap-sdf": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/bitmap-sdf/-/bitmap-sdf-1.0.3.tgz", - "integrity": "sha512-ojYySSvWTx21cbgntR942zgEgqj38wHctN64vr4vYRFf3GKVmI23YlA94meWGkFslidwLwGCsMy2laJ3g/94Sg==", - "dependencies": { - "clamp": "^1.0.1" - } - }, - "node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" - }, - "node_modules/boundary-cells": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/boundary-cells/-/boundary-cells-2.0.2.tgz", - "integrity": "sha512-/S48oUFYEgZMNvdqC87iYRbLBAPHYijPRNrNpm/sS8u7ijIViKm/hrV3YD4sx/W68AsG5zLMyBEditVHApHU5w==" - }, - "node_modules/box-intersect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/box-intersect/-/box-intersect-1.0.2.tgz", - "integrity": "sha512-yJeMwlmFPG1gIa7Rs/cGXeI6iOj6Qz5MG5PE61xLKpElUGzmJ4abm+qsLpzxKJFpsSDq742BQEocr8dI2t8Nxw==", - "dependencies": { - "bit-twiddle": "^1.0.2", - "typedarray-pool": "^1.1.0" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.16.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", - "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001181", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.649", - "escalade": "^3.1.1", - "node-releases": "^1.1.70" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "node_modules/cacache": { - "version": "15.0.6", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.6.tgz", - "integrity": "sha512-g1WYDMct/jzW+JdWEyjaX2zoBkZ6ZT9VpOyp2I/VMtDsNLffNat3kqPFfi1eDRSK9/SuKGyORDHcQMcPF8sQ/w==", - "dev": true, - "dependencies": { - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cacache/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cacache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001208", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001208.tgz", - "integrity": "sha512-OE5UE4+nBOro8Dyvv0lfx+SRtfVIOM9uhKqFmJeUbGriqhhStgp1A0OyBpgy3OUF8AhYCT+PVwPC1gMl2ZcQMA==", - "dev": true - }, - "node_modules/canvas-fit": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/canvas-fit/-/canvas-fit-1.5.0.tgz", - "integrity": "sha1-rhO+Zq3kL1vg5IfjRfzjCl5bXl8=", - "dependencies": { - "element-size": "^1.1.1" - } - }, - "node_modules/cdt2d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cdt2d/-/cdt2d-1.0.0.tgz", - "integrity": "sha1-TyEkNLzWe9s9aLj+9KzcLFRBUUE=", - "dependencies": { - "binary-search-bounds": "^2.0.3", - "robust-in-sphere": "^1.1.3", - "robust-orientation": "^1.1.3" - } - }, - "node_modules/cell-orientation": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cell-orientation/-/cell-orientation-1.0.1.tgz", - "integrity": "sha1-tQStlqZq0obZ7dmFoiU9A7gNKFA=" - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "node_modules/child_process": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/child_process/-/child_process-1.0.2.tgz", - "integrity": "sha1-sffn/HPSXn/R1FWtyU4UODAYK1o=", - "dev": true - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/circumcenter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/circumcenter/-/circumcenter-1.0.0.tgz", - "integrity": "sha1-INeqE7F/usUvUtpPVMasi5Bu5Sk=", - "dependencies": { - "dup": "^1.0.0", - "robust-linear-solve": "^1.0.0" - } - }, - "node_modules/circumradius": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/circumradius/-/circumradius-1.0.0.tgz", - "integrity": "sha1-cGxEfj5VzR7T0RvRM+N8JSzDBbU=", - "dependencies": { - "circumcenter": "^1.0.0" - } - }, - "node_modules/clamp": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz", - "integrity": "sha1-ZqDmQBGBbjcZaCj9yMjBRzEshjQ=" - }, - "node_modules/clean-pslg": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/clean-pslg/-/clean-pslg-1.1.2.tgz", - "integrity": "sha1-vTXHRgt+irWp92Gl7VF5aqPIbBE=", - "dependencies": { - "big-rat": "^1.0.3", - "box-intersect": "^1.0.1", - "nextafter": "^1.0.0", - "rat-vec": "^1.1.1", - "robust-segment-intersect": "^1.0.1", - "union-find": "^1.0.2", - "uniq": "^1.0.1" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/color-alpha": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/color-alpha/-/color-alpha-1.0.4.tgz", - "integrity": "sha512-lr8/t5NPozTSqli+duAN+x+no/2WaKTeWvxhHGN+aXT6AJ8vPlzLa7UriyjWak0pSC2jHol9JgjBYnnHsGha9A==", - "dependencies": { - "color-parse": "^1.3.8" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-convert/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/color-id": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/color-id/-/color-id-1.1.0.tgz", - "integrity": "sha512-2iRtAn6dC/6/G7bBIo0uupVrIne1NsQJvJxZOBCzQOfk7jRq97feaDZ3RdzuHakRXXnHGNwglto3pqtRx1sX0g==", - "dependencies": { - "clamp": "^1.0.1" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/color-normalize": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/color-normalize/-/color-normalize-1.5.0.tgz", - "integrity": "sha512-rUT/HDXMr6RFffrR53oX3HGWkDOP9goSAQGBkUaAYKjOE2JxozccdGyufageWDlInRAjm/jYPrf/Y38oa+7obw==", - "dependencies": { - "clamp": "^1.0.1", - "color-rgba": "^2.1.1", - "dtype": "^2.0.0" - } - }, - "node_modules/color-parse": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.3.8.tgz", - "integrity": "sha512-1Y79qFv0n1xair3lNMTNeoFvmc3nirMVBij24zbs1f13+7fPpQClMg5b4AuKXLt3szj7BRlHMCXHplkce6XlmA==", - "dependencies": { - "color-name": "^1.0.0", - "defined": "^1.0.0", - "is-plain-obj": "^1.1.0" - } - }, - "node_modules/color-rgba": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/color-rgba/-/color-rgba-2.1.1.tgz", - "integrity": "sha512-VaX97wsqrMwLSOR6H7rU1Doa2zyVdmShabKrPEIFywLlHoibgD3QW9Dw6fSqM4+H/LfjprDNAUUW31qEQcGzNw==", - "dependencies": { - "clamp": "^1.0.1", - "color-parse": "^1.3.8", - "color-space": "^1.14.6" - } - }, - "node_modules/color-space": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/color-space/-/color-space-1.16.0.tgz", - "integrity": "sha512-A6WMiFzunQ8KEPFmj02OnnoUnqhmSaHaZ/0LVFcPTdlvm8+3aMJ5x1HRHy3bDHPkovkf4sS0f4wsVvwk71fKkg==", - "dependencies": { - "hsluv": "^0.0.3", - "mumath": "^3.3.4" - } - }, - "node_modules/colorette": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", - "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", - "dev": true - }, - "node_modules/colormap": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/colormap/-/colormap-2.3.1.tgz", - "integrity": "sha512-TEzNlo/qYp6pBoR2SK9JiV+DG1cmUcVO/+DEJqVPSHIKNlWh5L5L4FYog7b/h0bAnhKhpOAvx/c1dFp2QE9sFw==", - "dependencies": { - "lerp": "^1.0.3" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "node_modules/compare-angle": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/compare-angle/-/compare-angle-1.0.1.tgz", - "integrity": "sha1-pOtjQW6jx0f8a9bItjZotN5PoSk=", - "dependencies": { - "robust-orientation": "^1.0.2", - "robust-product": "^1.0.0", - "robust-sum": "^1.0.0", - "signum": "^0.0.0", - "two-sum": "^1.0.0" - } - }, - "node_modules/compare-cell": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/compare-cell/-/compare-cell-1.0.0.tgz", - "integrity": "sha1-qetwj24OQa73qlZrEw8ZaNyeGqo=" - }, - "node_modules/compare-oriented-cell": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/compare-oriented-cell/-/compare-oriented-cell-1.0.1.tgz", - "integrity": "sha1-ahSf7vnfxPj8YjWOUd1C7/u9w54=", - "dependencies": { - "cell-orientation": "^1.0.1", - "compare-cell": "^1.0.0" - } - }, - "node_modules/compute-dims": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/compute-dims/-/compute-dims-1.1.0.tgz", - "integrity": "sha512-YHMiIKjH/8Eom8zATk3g8/lH3HxGCZcVQyEfEoVrfWI7od/WRpTgRGShnei3jArYSx77mQqPxZNokjGHCdLfxg==", - "dependencies": { - "utils-copy": "^1.0.0", - "validate.io-array": "^1.0.6", - "validate.io-matrix-like": "^1.0.2", - "validate.io-ndarray-like": "^1.0.0", - "validate.io-positive-integer": "^1.0.0" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concat-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/const-max-uint32": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/const-max-uint32/-/const-max-uint32-1.0.2.tgz", - "integrity": "sha1-8Am7YjDmeO2HTdLWqc2ePL+rtnY=" - }, - "node_modules/const-pinf-float64": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/const-pinf-float64/-/const-pinf-float64-1.0.0.tgz", - "integrity": "sha1-9u+w15+cCYbT558pI6v5twtj1yY=" - }, - "node_modules/convex-hull": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/convex-hull/-/convex-hull-1.0.3.tgz", - "integrity": "sha1-IKOqbOh/St6i/30XlxyfwcZ+H/8=", - "dependencies": { - "affine-hull": "^1.0.0", - "incremental-convex-hull": "^1.0.1", - "monotone-convex-hull-2d": "^1.0.1" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "node_modules/country-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/country-regex/-/country-regex-1.1.0.tgz", - "integrity": "sha1-UcMz3N8Sknt+XuucEKyBEqYSCJY=" - }, - "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/crypto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/crypto/-/crypto-1.0.1.tgz", - "integrity": "sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig==", - "dev": true - }, - "node_modules/css-font": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-font/-/css-font-1.2.0.tgz", - "integrity": "sha512-V4U4Wps4dPDACJ4WpgofJ2RT5Yqwe1lEH6wlOOaIxMi0gTjdIijsc5FmxQlZ7ZZyKQkkutqqvULOp07l9c7ssA==", - "dependencies": { - "css-font-size-keywords": "^1.0.0", - "css-font-stretch-keywords": "^1.0.1", - "css-font-style-keywords": "^1.0.1", - "css-font-weight-keywords": "^1.0.0", - "css-global-keywords": "^1.0.1", - "css-system-font-keywords": "^1.0.0", - "pick-by-alias": "^1.2.0", - "string-split-by": "^1.0.0", - "unquote": "^1.1.0" - } - }, - "node_modules/css-font-size-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz", - "integrity": "sha1-hUh1rOmspqjS7g00WkSq6btttss=" - }, - "node_modules/css-font-stretch-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz", - "integrity": "sha1-UM7puboDH7XJUtRyMTnx4Qe1SxA=" - }, - "node_modules/css-font-style-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz", - "integrity": "sha1-XDUygT9jtKHelU0TzqhqtDM0CeQ=" - }, - "node_modules/css-font-weight-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz", - "integrity": "sha1-m8BGcayFvHJLV07106yWsNYE/Zc=" - }, - "node_modules/css-global-keywords": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-global-keywords/-/css-global-keywords-1.0.1.tgz", - "integrity": "sha1-cqmupyeW0Bmx0qMlLeTlqqN+Smk=" - }, - "node_modules/css-loader": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz", - "integrity": "sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "cssesc": "^3.0.0", - "icss-utils": "^4.1.1", - "loader-utils": "^1.2.3", - "normalize-path": "^3.0.0", - "postcss": "^7.0.32", - "postcss-modules-extract-imports": "^2.0.0", - "postcss-modules-local-by-default": "^3.0.2", - "postcss-modules-scope": "^2.2.0", - "postcss-modules-values": "^3.0.0", - "postcss-value-parser": "^4.1.0", - "schema-utils": "^2.7.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">= 8.9.0" - } - }, - "node_modules/css-loader/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/css-system-font-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz", - "integrity": "sha1-hcbwhquk6zLFcaMIav/ENLhII+0=" - }, - "node_modules/csscolorparser": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", - "integrity": "sha1-s085HupNqPPpgjHizNjfnAQfFxs=" - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cubic-hermite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cubic-hermite/-/cubic-hermite-1.0.0.tgz", - "integrity": "sha1-hOOy8nKzFFToOTuZu2rtRRaMFOU=" - }, - "node_modules/cwise-compiler": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cwise-compiler/-/cwise-compiler-1.1.3.tgz", - "integrity": "sha1-9NZnQQ6FDToxOn0tt7HlBbsDTMU=", - "dependencies": { - "uniq": "^1.0.0" - } - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/d3": { - "version": "3.5.17", - "resolved": "https://registry.npmjs.org/d3/-/d3-3.5.17.tgz", - "integrity": "sha1-vEZ0gAQ3iyGjYMn8fPUjF5B2L7g=" - }, - "node_modules/d3-array": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", - "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==" - }, - "node_modules/d3-collection": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", - "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==" - }, - "node_modules/d3-color": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", - "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" - }, - "node_modules/d3-dispatch": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", - "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" - }, - "node_modules/d3-force": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", - "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", - "dependencies": { - "d3-collection": "1", - "d3-dispatch": "1", - "d3-quadtree": "1", - "d3-timer": "1" - } - }, - "node_modules/d3-hierarchy": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", - "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==" - }, - "node_modules/d3-interpolate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", - "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", - "dependencies": { - "d3-color": "1" - } - }, - "node_modules/d3-path": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", - "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==" - }, - "node_modules/d3-quadtree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", - "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==" - }, - "node_modules/d3-shape": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", - "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", - "dependencies": { - "d3-path": "1" - } - }, - "node_modules/d3-time": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", - "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==" - }, - "node_modules/d3-time-format": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", - "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", - "dependencies": { - "d3-time": "1" - } - }, - "node_modules/d3-timer": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", - "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" - }, - "node_modules/delaunay-triangulate": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/delaunay-triangulate/-/delaunay-triangulate-1.1.6.tgz", - "integrity": "sha1-W7yiGweBmNS8PHV5ajXLuYwllUw=", - "dependencies": { - "incremental-convex-hull": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "node_modules/dependency-graph": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.9.0.tgz", - "integrity": "sha512-9YLIBURXj4DJMFALxXw9K3Y3rwb5Fk0X5/8ipCzaN84+gKxoHK43tVKRNakCQbiEx07E8Uwhuq21BpUagFhZ8w==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/detect-indent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", - "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-kerning": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-kerning/-/detect-kerning-2.1.2.tgz", - "integrity": "sha512-I3JIbrnKPAntNLl1I6TpSQQdQ4AutYzv/sKMFKbepawV/hlH0GmYKhUoOEMd4xqaUHT+Bm0f4127lh5qs1m1tw==" - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dir-glob/node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/double-bits": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/double-bits/-/double-bits-1.1.1.tgz", - "integrity": "sha1-WKu6RUlNpND6Nrc60RoobJGEscY=" - }, - "node_modules/draw-svg-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/draw-svg-path/-/draw-svg-path-1.0.0.tgz", - "integrity": "sha1-bxFtli3TFLmepTTW9Y3WbNvWk3k=", - "dependencies": { - "abs-svg-path": "~0.1.1", - "normalize-svg-path": "~0.1.0" - } - }, - "node_modules/dtype": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz", - "integrity": "sha1-zQUjI84GFETs0uj1dI9popvihDQ=", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/dup": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dup/-/dup-1.0.0.tgz", - "integrity": "sha1-UfxaxoX4GWRp3wuQXpNLIK9bQCk=" - }, - "node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/duplexify/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/duplexify/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/duplexify/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/duplexify/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/duplicate-package-checker-webpack-plugin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/duplicate-package-checker-webpack-plugin/-/duplicate-package-checker-webpack-plugin-3.0.0.tgz", - "integrity": "sha512-aO50/qPC7X2ChjRFniRiscxBLT/K01bALqfcDaf8Ih5OqQ1N4iT/Abx9Ofu3/ms446vHTm46FACIuJUmgUQcDQ==", - "dev": true, - "dependencies": { - "chalk": "^2.3.0", - "find-root": "^1.0.0", - "lodash": "^4.17.4", - "semver": "^5.4.1" - } - }, - "node_modules/earcut": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.2.tgz", - "integrity": "sha512-eZoZPPJcUHnfRZ0PjLvx2qBordSiO8ofC3vt+qACLM95u+4DovnbYNpQtJh0DNsWj8RnxrQytD4WA8gj5cRIaQ==" - }, - "node_modules/edges-to-adjacency-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/edges-to-adjacency-list/-/edges-to-adjacency-list-1.0.0.tgz", - "integrity": "sha1-wUbS4ISt37p0pRKTxuAZmkn3V/E=", - "dependencies": { - "uniq": "^1.0.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.3.710", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.710.tgz", - "integrity": "sha512-b3r0E2o4yc7mNmBeJviejF1rEx49PUBi+2NPa7jHEX3arkAXnVgLhR0YmV8oi6/Qf3HH2a8xzQmCjHNH0IpXWQ==", - "dev": true - }, - "node_modules/element-size": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/element-size/-/element-size-1.1.1.tgz", - "integrity": "sha1-ZOXxWdlxIWMYRby67K8nnDm1404=" - }, - "node_modules/elementary-circuits-directed-graph": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/elementary-circuits-directed-graph/-/elementary-circuits-directed-graph-1.2.0.tgz", - "integrity": "sha512-eOQofnrNqebPtC29PvyNMGUBdMrIw5i8nOoC/2VOlSF84tf5+ZXnRkIk7TgdT22jFXK68CC7aA881KRmNYf/Pg==", - "dependencies": { - "strongly-connected-components": "^1.0.1" - } - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true, - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", - "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.2", - "is-string": "^1.0.5", - "object-inspect": "^1.9.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-module-lexer": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz", - "integrity": "sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==", - "dev": true - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "dependencies": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dependencies": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", - "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/execa/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/execa/node_modules/get-stream": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz", - "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/execa/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/execa/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/execa/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/execa/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "dependencies": { - "type": "^2.0.0" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz", - "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==" - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/extract-frustum-planes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/extract-frustum-planes/-/extract-frustum-planes-1.0.0.tgz", - "integrity": "sha1-l9VwP/BWTIw8aDjKxF+ee8UsnvU=" - }, - "node_modules/falafel": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.4.tgz", - "integrity": "sha512-0HXjo8XASWRmsS0X1EkhwEMZaD3Qvp7FfURwjLKjG1ghfRm/MGZl2r4cWUTv41KdNghTw4OUMmVtdGQp3+H+uQ==", - "dependencies": { - "acorn": "^7.1.1", - "foreach": "^2.0.5", - "isarray": "^2.0.1", - "object-keys": "^1.0.6" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/falafel/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-glob": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", - "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", - "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fast-isnumeric": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-isnumeric/-/fast-isnumeric-1.1.4.tgz", - "integrity": "sha512-1mM8qOr2LYz8zGaUdmiqRDiuue00Dxjgcb1NQR7TnhLVh6sQyngP9xvLo7Sl7LZpP/sk5eb+bcyWXw530NTBZw==", - "dependencies": { - "is-string-blank": "^1.0.1" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", - "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/file-loader": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.0.0.tgz", - "integrity": "sha512-/aMOAYEFXDdjG0wytpTL5YQLfZnnTmLNjn+AIrJ/6HVnTfDqLsVKUUwkDf4I4kgex36BvjuXEn/TX9B/1ESyqQ==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/file-loader/node_modules/loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/filtered-vector": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/filtered-vector/-/filtered-vector-1.2.4.tgz", - "integrity": "sha1-VkU8A030MC0pPKjs3qw/kKvGeNM=", - "dependencies": { - "binary-search-bounds": "^1.0.0", - "cubic-hermite": "^1.0.0" - } - }, - "node_modules/filtered-vector/node_modules/binary-search-bounds": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-1.0.0.tgz", - "integrity": "sha1-MjyjF+PypA9CRMclX1OEpbIHu2k=" - }, - "node_modules/find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flatten-vertex-data": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flatten-vertex-data/-/flatten-vertex-data-1.0.2.tgz", - "integrity": "sha512-BvCBFK2NZqerFTdMDgqfHBwxYWnxeCkwONsw6PvBMcUXqo8U/KDWwmXhqx1x2kLIg7DqIsJfOaJFOmlua3Lxuw==", - "dependencies": { - "dtype": "^2.0.0" - } - }, - "node_modules/flip-pixels": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flip-pixels/-/flip-pixels-1.0.2.tgz", - "integrity": "sha512-oXbJGbjDnfJRWPC7Va38EFhd+A8JWE5/hCiKcK8qjCdbLj9DTpsq6MEudwpRTH+V4qq+Jw7d3pUgQdSr3x3mTA==" - }, - "node_modules/font-atlas": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/font-atlas/-/font-atlas-2.1.0.tgz", - "integrity": "sha512-kP3AmvX+HJpW4w3d+PiPR2X6E1yvsBXt2yhuCw+yReO9F1WYhvZwx3c95DGZGwg9xYzDGrgJYa885xmVA+28Cg==", - "dependencies": { - "css-font": "^1.0.0" - } - }, - "node_modules/font-measure": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/font-measure/-/font-measure-1.2.2.tgz", - "integrity": "sha512-mRLEpdrWzKe9hbfaF3Qpr06TAjquuBVP5cHy4b3hyeNdjc9i0PO6HniGsX5vjL5OWv7+Bd++NiooNpT/s8BvIA==", - "dependencies": { - "css-font": "^1.2.0" - } - }, - "node_modules/foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/from2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/from2/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/from2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/from2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" - }, - "node_modules/gamma": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/gamma/-/gamma-0.1.0.tgz", - "integrity": "sha1-MxVkNAO/J5BsqAqzfDbs6UQO8zA=" - }, - "node_modules/geojson-vt": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz", - "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==" - }, - "node_modules/get-canvas-context": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz", - "integrity": "sha1-1ue1C8TkyGNXzTnyJkeoS3NgHpM=" - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/git-hooks-list": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/git-hooks-list/-/git-hooks-list-1.0.3.tgz", - "integrity": "sha512-Y7wLWcrLUXwk2noSka166byGCvhMtDRpgHdzCno1UQv/n/Hegp++a2xBWJL1lJarnKD3SWaljD+0z1ztqxuKyQ==", - "dev": true - }, - "node_modules/gl-axes3d": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/gl-axes3d/-/gl-axes3d-1.5.3.tgz", - "integrity": "sha512-KRYbguKQcDQ6PcB9g1pgqB8Ly4TY1DQODpPKiDTasyWJ8PxQk0t2Q7XoQQijNqvsguITCpVVCzNb5GVtIWiVlQ==", - "dependencies": { - "bit-twiddle": "^1.0.2", - "dup": "^1.0.0", - "extract-frustum-planes": "^1.0.0", - "gl-buffer": "^2.1.2", - "gl-mat4": "^1.2.0", - "gl-shader": "^4.2.1", - "gl-state": "^1.0.0", - "gl-vao": "^1.3.0", - "gl-vec4": "^1.0.1", - "glslify": "^7.0.0", - "robust-orientation": "^1.1.3", - "split-polygon": "^1.0.0", - "vectorize-text": "^3.2.1" - } - }, - "node_modules/gl-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/gl-buffer/-/gl-buffer-2.1.2.tgz", - "integrity": "sha1-LbjZwaVSf7oM25EonCBuiCuInNs=", - "dependencies": { - "ndarray": "^1.0.15", - "ndarray-ops": "^1.1.0", - "typedarray-pool": "^1.0.0" - } - }, - "node_modules/gl-cone3d": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/gl-cone3d/-/gl-cone3d-1.5.2.tgz", - "integrity": "sha512-1JNeHH4sUtUmDA4ZK7Om8/kShwb8IZVAsnxaaB7IPRJsNGciLj1sTpODrJGeMl41RNkex5kXD2SQFrzyEAR2Rw==", - "dependencies": { - "colormap": "^2.3.1", - "gl-buffer": "^2.1.2", - "gl-mat4": "^1.2.0", - "gl-shader": "^4.2.1", - "gl-texture2d": "^2.1.0", - "gl-vao": "^1.3.0", - "gl-vec3": "^1.1.3", - "glsl-inverse": "^1.0.0", - "glsl-out-of-range": "^1.0.4", - "glsl-specular-cook-torrance": "^2.0.1", - "glslify": "^7.0.0", - "ndarray": "^1.0.18" - } - }, - "node_modules/gl-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gl-constants/-/gl-constants-1.0.0.tgz", - "integrity": "sha1-WXpQTjZHUP9QJTqjX43qevSl0jM=" - }, - "node_modules/gl-contour2d": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/gl-contour2d/-/gl-contour2d-1.1.7.tgz", - "integrity": "sha512-GdebvJ9DtT3pJDpoE+eU2q+Wo9S3MijPpPz5arZbhK85w2bARmpFpVfPaDlZqWkB644W3BlH8TVyvAo1KE4Bhw==", - "dependencies": { - "binary-search-bounds": "^2.0.4", - "cdt2d": "^1.0.0", - "clean-pslg": "^1.1.2", - "gl-buffer": "^2.1.2", - "gl-shader": "^4.2.1", - "glslify": "^7.0.0", - "iota-array": "^1.0.0", - "ndarray": "^1.0.18", - "surface-nets": "^1.0.2" - } - }, - "node_modules/gl-error3d": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/gl-error3d/-/gl-error3d-1.0.16.tgz", - "integrity": "sha512-TGJewnKSp7ZnqGgG3XCF9ldrDbxZrO+OWlx6oIet4OdOM//n8xJ5isArnIV/sdPJnFbhfoLxWrW9f5fxHFRQ1A==", - "dependencies": { - "gl-buffer": "^2.1.2", - "gl-shader": "^4.2.1", - "gl-vao": "^1.3.0", - "glsl-out-of-range": "^1.0.4", - "glslify": "^7.0.0" - } - }, - "node_modules/gl-fbo": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/gl-fbo/-/gl-fbo-2.0.5.tgz", - "integrity": "sha1-D6daSXz3h2lVMGkcjwSrtvtV+iI=", - "dependencies": { - "gl-texture2d": "^2.0.0" - } - }, - "node_modules/gl-format-compiler-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/gl-format-compiler-error/-/gl-format-compiler-error-1.0.3.tgz", - "integrity": "sha1-DHmxdRiZzpcy6GJA8JCqQemEcag=", - "dependencies": { - "add-line-numbers": "^1.0.1", - "gl-constants": "^1.0.0", - "glsl-shader-name": "^1.0.0", - "sprintf-js": "^1.0.3" - } - }, - "node_modules/gl-heatmap2d": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/gl-heatmap2d/-/gl-heatmap2d-1.1.0.tgz", - "integrity": "sha512-0FLXyxv6UBCzzhi4Q2u+9fUs6BX1+r5ZztFe27VikE9FUVw7hZiuSHmgDng92EpydogcSYHXCIK8+58RagODug==", - "dependencies": { - "binary-search-bounds": "^2.0.4", - "gl-buffer": "^2.1.2", - "gl-shader": "^4.2.1", - "glslify": "^7.0.0", - "iota-array": "^1.0.0", - "typedarray-pool": "^1.2.0" - } - }, - "node_modules/gl-line3d": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/gl-line3d/-/gl-line3d-1.2.1.tgz", - "integrity": "sha512-eeb0+RI2ZBRqMYJK85SgsRiJK7c4aiOjcnirxv0830A3jmOc99snY3AbPcV8KvKmW0Yaf3KA4e+qNCbHiTOTnA==", - "dependencies": { - "binary-search-bounds": "^2.0.4", - "gl-buffer": "^2.1.2", - "gl-shader": "^4.2.1", - "gl-texture2d": "^2.1.0", - "gl-vao": "^1.3.0", - "glsl-out-of-range": "^1.0.4", - "glslify": "^7.0.0", - "ndarray": "^1.0.18" - } - }, - "node_modules/gl-mat3": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gl-mat3/-/gl-mat3-1.0.0.tgz", - "integrity": "sha1-iWMyGcpCk3mha5GF2V1BcTRTuRI=" - }, - "node_modules/gl-mat4": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gl-mat4/-/gl-mat4-1.2.0.tgz", - "integrity": "sha512-sT5C0pwB1/e9G9AvAoLsoaJtbMGjfd/jfxo8jMCKqYYEnjZuFvqV5rehqar0538EmssjdDeiEWnKyBSTw7quoA==" - }, - "node_modules/gl-matrix": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.3.0.tgz", - "integrity": "sha512-COb7LDz+SXaHtl/h4LeaFcNdJdAQSDeVqjiIihSXNrkWObZLhDI4hIkZC11Aeqp7bcE72clzB0BnDXr2SmslRA==" - }, - "node_modules/gl-mesh3d": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/gl-mesh3d/-/gl-mesh3d-2.3.1.tgz", - "integrity": "sha512-pXECamyGgu4/9HeAQSE5OEUuLBGS1aq9V4BCsTcxsND4fNLaajEkYKUz/WY2QSYElqKdsMBVsldGiKRKwlybqA==", - "dependencies": { - "barycentric": "^1.0.1", - "colormap": "^2.3.1", - "gl-buffer": "^2.1.2", - "gl-mat4": "^1.2.0", - "gl-shader": "^4.2.1", - "gl-texture2d": "^2.1.0", - "gl-vao": "^1.3.0", - "glsl-out-of-range": "^1.0.4", - "glsl-specular-cook-torrance": "^2.0.1", - "glslify": "^7.0.0", - "ndarray": "^1.0.18", - "normals": "^1.1.0", - "polytope-closest-point": "^1.0.0", - "simplicial-complex-contour": "^1.0.2", - "typedarray-pool": "^1.1.0" - } - }, - "node_modules/gl-plot2d": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/gl-plot2d/-/gl-plot2d-1.4.5.tgz", - "integrity": "sha512-6GmCN10SWtV+qHFQ1gjdnVubeHFVsm6P4zmo0HrPIl9TcdePCUHDlBKWAuE6XtFhiMKMj7R8rApOX8O8uXUYog==", - "dependencies": { - "binary-search-bounds": "^2.0.4", - "gl-buffer": "^2.1.2", - "gl-select-static": "^2.0.7", - "gl-shader": "^4.2.1", - "glsl-inverse": "^1.0.0", - "glslify": "^7.0.0", - "text-cache": "^4.2.2" - } - }, - "node_modules/gl-plot3d": { - "version": "2.4.7", - "resolved": "https://registry.npmjs.org/gl-plot3d/-/gl-plot3d-2.4.7.tgz", - "integrity": "sha512-mLDVWrl4Dj0O0druWyHUK5l7cBQrRIJRn2oROEgrRuOgbbrLAzsREKefwMO0bA0YqkiZMFMnV5VvPA9j57X5Xg==", - "dependencies": { - "3d-view": "^2.0.0", - "a-big-triangle": "^1.0.3", - "gl-axes3d": "^1.5.3", - "gl-fbo": "^2.0.5", - "gl-mat4": "^1.2.0", - "gl-select-static": "^2.0.7", - "gl-shader": "^4.2.1", - "gl-spikes3d": "^1.0.10", - "glslify": "^7.0.0", - "has-passive-events": "^1.0.0", - "is-mobile": "^2.2.1", - "mouse-change": "^1.4.0", - "mouse-event-offset": "^3.0.2", - "mouse-wheel": "^1.2.0", - "ndarray": "^1.0.19", - "right-now": "^1.0.0" - } - }, - "node_modules/gl-pointcloud2d": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/gl-pointcloud2d/-/gl-pointcloud2d-1.0.3.tgz", - "integrity": "sha512-OS2e1irvJXVRpg/GziXj10xrFJm9kkRfFoB6BLUvkjCQV7ZRNNcs2CD+YSK1r0gvMwTg2T3lfLM3UPwNtz+4Xw==", - "dependencies": { - "gl-buffer": "^2.1.2", - "gl-shader": "^4.2.1", - "glslify": "^7.0.0", - "typedarray-pool": "^1.1.0" - } - }, - "node_modules/gl-quat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gl-quat/-/gl-quat-1.0.0.tgz", - "integrity": "sha1-CUXskjOG9FMpvl3DV7HIwtR1hsU=", - "dependencies": { - "gl-mat3": "^1.0.0", - "gl-vec3": "^1.0.3", - "gl-vec4": "^1.0.0" - } - }, - "node_modules/gl-scatter3d": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/gl-scatter3d/-/gl-scatter3d-1.2.3.tgz", - "integrity": "sha512-nXqPlT1w5Qt51dTksj+DUqrZqwWAEWg0PocsKcoDnVNv0X8sGA+LBZ0Y+zrA+KNXUL0PPCX9WR9cF2uJAZl1Sw==", - "dependencies": { - "gl-buffer": "^2.1.2", - "gl-mat4": "^1.2.0", - "gl-shader": "^4.2.1", - "gl-vao": "^1.3.0", - "glsl-out-of-range": "^1.0.4", - "glslify": "^7.0.0", - "is-string-blank": "^1.0.1", - "typedarray-pool": "^1.1.0", - "vectorize-text": "^3.2.1" - } - }, - "node_modules/gl-select-box": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/gl-select-box/-/gl-select-box-1.0.4.tgz", - "integrity": "sha512-mKsCnglraSKyBbQiGq0Ila0WF+m6Tr+EWT2yfaMn/Sh9aMHq5Wt0F/l6Cf/Ed3CdERq5jHWAY5yxLviZteYu2w==", - "dependencies": { - "gl-buffer": "^2.1.2", - "gl-shader": "^4.2.1", - "glslify": "^7.0.0" - } - }, - "node_modules/gl-select-static": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/gl-select-static/-/gl-select-static-2.0.7.tgz", - "integrity": "sha512-OvpYprd+ngl3liEatBTdXhSyNBjwvjMSvV2rN0KHpTU+BTi4viEETXNZXFgGXY37qARs0L28ybk3UQEW6C5Nnw==", - "dependencies": { - "bit-twiddle": "^1.0.2", - "gl-fbo": "^2.0.5", - "ndarray": "^1.0.18", - "typedarray-pool": "^1.1.0" - } - }, - "node_modules/gl-shader": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/gl-shader/-/gl-shader-4.2.1.tgz", - "integrity": "sha1-vJuAjpKTxRtmjojeYVsMETcI3C8=", - "dependencies": { - "gl-format-compiler-error": "^1.0.2", - "weakmap-shim": "^1.1.0" - } - }, - "node_modules/gl-spikes2d": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/gl-spikes2d/-/gl-spikes2d-1.0.2.tgz", - "integrity": "sha512-QVeOZsi9nQuJJl7NB3132CCv5KA10BWxAY2QgJNsKqbLsG53B/TrGJpjIAohnJftdZ4fT6b3ZojWgeaXk8bOOA==" - }, - "node_modules/gl-spikes3d": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/gl-spikes3d/-/gl-spikes3d-1.0.10.tgz", - "integrity": "sha512-lT3xroowOFxMvlhT5Mof76B2TE02l5zt/NIWljhczV2FFHgIVhA4jMrd5dIv1so1RXMBDJIKu0uJI3QKliDVLg==", - "dependencies": { - "gl-buffer": "^2.1.2", - "gl-shader": "^4.2.1", - "gl-vao": "^1.3.0", - "glslify": "^7.0.0" - } - }, - "node_modules/gl-state": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gl-state/-/gl-state-1.0.0.tgz", - "integrity": "sha1-Ji+qdYNbC5xTLBLzitxCXR0wzRc=", - "dependencies": { - "uniq": "^1.0.0" - } - }, - "node_modules/gl-streamtube3d": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/gl-streamtube3d/-/gl-streamtube3d-1.4.1.tgz", - "integrity": "sha512-rH02v00kgwgdpkXVo7KsSoPp38bIAYR9TE1iONjcQ4cQAlDhrGRauqT/P5sUaOIzs17A2DxWGcXM+EpNQs9pUA==", - "dependencies": { - "gl-cone3d": "^1.5.2", - "gl-vec3": "^1.1.3", - "gl-vec4": "^1.0.1", - "glsl-inverse": "^1.0.0", - "glsl-out-of-range": "^1.0.4", - "glsl-specular-cook-torrance": "^2.0.1", - "glslify": "^7.0.0" - } - }, - "node_modules/gl-surface3d": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/gl-surface3d/-/gl-surface3d-1.6.0.tgz", - "integrity": "sha512-x15+u4712ysnB85G55RLJEml6mOB4VaDn0VTlXCc9JcjRl5Es10Tk7lhGGyiPtkCfHwvhnkxzYA1/rHHYN7Y0A==", - "dependencies": { - "binary-search-bounds": "^2.0.4", - "bit-twiddle": "^1.0.2", - "colormap": "^2.3.1", - "dup": "^1.0.0", - "gl-buffer": "^2.1.2", - "gl-mat4": "^1.2.0", - "gl-shader": "^4.2.1", - "gl-texture2d": "^2.1.0", - "gl-vao": "^1.3.0", - "glsl-out-of-range": "^1.0.4", - "glsl-specular-beckmann": "^1.1.2", - "glslify": "^7.0.0", - "ndarray": "^1.0.18", - "ndarray-gradient": "^1.0.0", - "ndarray-ops": "^1.2.2", - "ndarray-pack": "^1.2.1", - "ndarray-scratch": "^1.2.0", - "surface-nets": "^1.0.2", - "typedarray-pool": "^1.1.0" - } - }, - "node_modules/gl-text": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/gl-text/-/gl-text-1.1.8.tgz", - "integrity": "sha512-whnq9DEFYbW92C4ONwk2eT0YkzmVPHoADnEtuzMOmit87XhgAhBrNs3lK9EgGjU/MoWYvlF6RkI8Kl7Yuo1hUw==", - "dependencies": { - "bit-twiddle": "^1.0.2", - "color-normalize": "^1.5.0", - "css-font": "^1.2.0", - "detect-kerning": "^2.1.2", - "es6-weak-map": "^2.0.3", - "flatten-vertex-data": "^1.0.2", - "font-atlas": "^2.1.0", - "font-measure": "^1.2.2", - "gl-util": "^3.1.2", - "is-plain-obj": "^1.1.0", - "object-assign": "^4.1.1", - "parse-rect": "^1.2.0", - "parse-unit": "^1.0.1", - "pick-by-alias": "^1.2.0", - "regl": "^1.3.11", - "to-px": "^1.0.1", - "typedarray-pool": "^1.1.0" - } - }, - "node_modules/gl-texture2d": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/gl-texture2d/-/gl-texture2d-2.1.0.tgz", - "integrity": "sha1-/2gk5+fDGoum/c2+nlxpXX4hh8c=", - "dependencies": { - "ndarray": "^1.0.15", - "ndarray-ops": "^1.2.2", - "typedarray-pool": "^1.1.0" - } - }, - "node_modules/gl-util": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/gl-util/-/gl-util-3.1.3.tgz", - "integrity": "sha512-dvRTggw5MSkJnCbh74jZzSoTOGnVYK+Bt+Ckqm39CVcl6+zSsxqWk4lr5NKhkqXHL6qvZAU9h17ZF8mIskY9mA==", - "dependencies": { - "is-browser": "^2.0.1", - "is-firefox": "^1.0.3", - "is-plain-obj": "^1.1.0", - "number-is-integer": "^1.0.1", - "object-assign": "^4.1.0", - "pick-by-alias": "^1.2.0", - "weak-map": "^1.0.5" - } - }, - "node_modules/gl-vao": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/gl-vao/-/gl-vao-1.3.0.tgz", - "integrity": "sha1-6ekqqVWIyrnVwvBLaTRAw99pGSM=" - }, - "node_modules/gl-vec3": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gl-vec3/-/gl-vec3-1.1.3.tgz", - "integrity": "sha512-jduKUqT0SGH02l8Yl+mV1yVsDfYgQAJyXGxkJQGyxPLHRiW25DwVIRPt6uvhrEMHftJfqhqKthRcyZqNEl9Xdw==" - }, - "node_modules/gl-vec4": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gl-vec4/-/gl-vec4-1.0.1.tgz", - "integrity": "sha1-l9loeCgbFLUyy84QF4Xf0cs0CWQ=" - }, - "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "node_modules/globby": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.0.tgz", - "integrity": "sha512-3LifW9M4joGZasyYPz2A1U74zbC/45fvpXUvO/9KbSa+VV0aGZarWkfdgKyR9sExNP0t0x0ss/UMJpNpcaTspw==", - "dev": true, - "dependencies": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/glsl-inject-defines": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/glsl-inject-defines/-/glsl-inject-defines-1.0.3.tgz", - "integrity": "sha1-3RqswsF/yyvT/DJBHGYz0Ne2D9Q=", - "dependencies": { - "glsl-token-inject-block": "^1.0.0", - "glsl-token-string": "^1.0.1", - "glsl-tokenizer": "^2.0.2" - } - }, - "node_modules/glsl-inverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glsl-inverse/-/glsl-inverse-1.0.0.tgz", - "integrity": "sha1-EsCx0GX1WERNHm/q95td34qRiuY=" - }, - "node_modules/glsl-out-of-range": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/glsl-out-of-range/-/glsl-out-of-range-1.0.4.tgz", - "integrity": "sha512-fCcDu2LCQ39VBvfe1FbhuazXEf0CqMZI9OYXrYlL6uUARG48CTAbL04+tZBtVM0zo1Ljx4OLu2AxNquq++lxWQ==" - }, - "node_modules/glsl-resolve": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/glsl-resolve/-/glsl-resolve-0.0.1.tgz", - "integrity": "sha1-iUvvc5ENeSyBtRQxgANdCnivdtM=", - "dependencies": { - "resolve": "^0.6.1", - "xtend": "^2.1.2" - } - }, - "node_modules/glsl-resolve/node_modules/resolve": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz", - "integrity": "sha1-3ZV5gufnNt699TtYpN2RdUV13UY=" - }, - "node_modules/glsl-resolve/node_modules/xtend": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", - "integrity": "sha1-7vax8ZjByN6vrYsXZaBNrUoBxak=", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/glsl-shader-name": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glsl-shader-name/-/glsl-shader-name-1.0.0.tgz", - "integrity": "sha1-osMLO6c0mb77DMcYTXx3M91LSH0=", - "dependencies": { - "atob-lite": "^1.0.0", - "glsl-tokenizer": "^2.0.2" - } - }, - "node_modules/glsl-specular-beckmann": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/glsl-specular-beckmann/-/glsl-specular-beckmann-1.1.2.tgz", - "integrity": "sha1-/OkFaTPs3yRWJ4N2pU0IKJPndfE=" - }, - "node_modules/glsl-specular-cook-torrance": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/glsl-specular-cook-torrance/-/glsl-specular-cook-torrance-2.0.1.tgz", - "integrity": "sha1-qJHMBsjHtPRyhwK0gk/ay7ln148=", - "dependencies": { - "glsl-specular-beckmann": "^1.1.1" - } - }, - "node_modules/glsl-token-assignments": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/glsl-token-assignments/-/glsl-token-assignments-2.0.2.tgz", - "integrity": "sha1-pdgqt4SZwuimuDy2lJXm5mXOAZ8=" - }, - "node_modules/glsl-token-defines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glsl-token-defines/-/glsl-token-defines-1.0.0.tgz", - "integrity": "sha1-y4kqqVmTYjFyhHDU90AySJaX+p0=", - "dependencies": { - "glsl-tokenizer": "^2.0.0" - } - }, - "node_modules/glsl-token-depth": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/glsl-token-depth/-/glsl-token-depth-1.1.2.tgz", - "integrity": "sha1-I8XjDuK9JViEtKKLyFC495HpXYQ=" - }, - "node_modules/glsl-token-descope": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glsl-token-descope/-/glsl-token-descope-1.0.2.tgz", - "integrity": "sha1-D8kKsyYYa4L1l7LnfcniHvzTIHY=", - "dependencies": { - "glsl-token-assignments": "^2.0.0", - "glsl-token-depth": "^1.1.0", - "glsl-token-properties": "^1.0.0", - "glsl-token-scope": "^1.1.0" - } - }, - "node_modules/glsl-token-inject-block": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/glsl-token-inject-block/-/glsl-token-inject-block-1.1.0.tgz", - "integrity": "sha1-4QFfWYDBCRgkraomJfHf3ovQADQ=" - }, - "node_modules/glsl-token-properties": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glsl-token-properties/-/glsl-token-properties-1.0.1.tgz", - "integrity": "sha1-SD3D2Dnw1LXGFx0VkfJJvlPCip4=" - }, - "node_modules/glsl-token-scope": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/glsl-token-scope/-/glsl-token-scope-1.1.2.tgz", - "integrity": "sha1-oXKOeN8kRE+cuT/RjvD3VQOmQ7E=" - }, - "node_modules/glsl-token-string": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glsl-token-string/-/glsl-token-string-1.0.1.tgz", - "integrity": "sha1-WUQdL4V958NEnJRWZgIezjWOSOw=" - }, - "node_modules/glsl-token-whitespace-trim": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glsl-token-whitespace-trim/-/glsl-token-whitespace-trim-1.0.0.tgz", - "integrity": "sha1-RtHf6Yx1vX1QTAXX0RsbPpzJOxA=" - }, - "node_modules/glsl-tokenizer": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/glsl-tokenizer/-/glsl-tokenizer-2.1.5.tgz", - "integrity": "sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==", - "dependencies": { - "through2": "^0.6.3" - } - }, - "node_modules/glslify": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/glslify/-/glslify-7.1.1.tgz", - "integrity": "sha512-bud98CJ6kGZcP9Yxcsi7Iz647wuDz3oN+IZsjCRi5X1PI7t/xPKeL0mOwXJjo+CRZMqvq0CkSJiywCcY7kVYog==", - "dependencies": { - "bl": "^2.2.1", - "concat-stream": "^1.5.2", - "duplexify": "^3.4.5", - "falafel": "^2.1.0", - "from2": "^2.3.0", - "glsl-resolve": "0.0.1", - "glsl-token-whitespace-trim": "^1.0.0", - "glslify-bundle": "^5.0.0", - "glslify-deps": "^1.2.5", - "minimist": "^1.2.5", - "resolve": "^1.1.5", - "stack-trace": "0.0.9", - "static-eval": "^2.0.5", - "through2": "^2.0.1", - "xtend": "^4.0.0" - }, - "bin": { - "glslify": "bin.js" - } - }, - "node_modules/glslify-bundle": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-5.1.1.tgz", - "integrity": "sha512-plaAOQPv62M1r3OsWf2UbjN0hUYAB7Aph5bfH58VxJZJhloRNbxOL9tl/7H71K7OLJoSJ2ZqWOKk3ttQ6wy24A==", - "dependencies": { - "glsl-inject-defines": "^1.0.1", - "glsl-token-defines": "^1.0.0", - "glsl-token-depth": "^1.1.1", - "glsl-token-descope": "^1.0.2", - "glsl-token-scope": "^1.1.1", - "glsl-token-string": "^1.0.1", - "glsl-token-whitespace-trim": "^1.0.0", - "glsl-tokenizer": "^2.0.2", - "murmurhash-js": "^1.0.0", - "shallow-copy": "0.0.1" - } - }, - "node_modules/glslify-deps": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/glslify-deps/-/glslify-deps-1.3.2.tgz", - "integrity": "sha512-7S7IkHWygJRjcawveXQjRXLO2FTjijPDYC7QfZyAQanY+yGLCFHYnPtsGT9bdyHiwPTw/5a1m1M9hamT2aBpag==", - "dependencies": { - "@choojs/findup": "^0.2.0", - "events": "^3.2.0", - "glsl-resolve": "0.0.1", - "glsl-tokenizer": "^2.0.0", - "graceful-fs": "^4.1.2", - "inherits": "^2.0.1", - "map-limit": "0.0.1", - "resolve": "^1.0.0" - } - }, - "node_modules/glslify/node_modules/bl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", - "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", - "dependencies": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/glslify/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/glslify/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/glslify/node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/glslify/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/glslify/node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/glslify/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" - }, - "node_modules/grid-index": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz", - "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==" - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-hover": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-hover/-/has-hover-1.0.1.tgz", - "integrity": "sha1-PZdDeusZnGK4rAisvcU9O8UsF/c=", - "dependencies": { - "is-browser": "^2.0.1" - } - }, - "node_modules/has-passive-events": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-passive-events/-/has-passive-events-1.0.0.tgz", - "integrity": "sha512-2vSj6IeIsgvsRMyeQ0JaCX5Q3lX4zMn5HpoVc7MEhQ6pv8Iq9rsXjsp+E5ZwaT7T0xhMT0KmU8gtt1EFVdbJiw==", - "dependencies": { - "is-browser": "^2.0.1" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "node_modules/hsluv": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/hsluv/-/hsluv-0.0.3.tgz", - "integrity": "sha1-gpEH2vtKn4tSoYCe0C4JHq3mdUw=" - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", - "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", - "dev": true, - "dependencies": { - "postcss": "^7.0.14" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" - }, - "node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/image-palette": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/image-palette/-/image-palette-2.1.0.tgz", - "integrity": "sha512-3ImSEWD26+xuQFdP0RWR4WSXadZwvgrFhjGNpMEapTG1tf2XrBFS2dlKK5hNgH4UIaSQlSUFRn1NeA+zULIWbQ==", - "dependencies": { - "color-id": "^1.1.0", - "pxls": "^2.0.0", - "quantize": "^1.0.2" - } - }, - "node_modules/image-size": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.7.5.tgz", - "integrity": "sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g==", - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/import-local": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/incremental-convex-hull": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/incremental-convex-hull/-/incremental-convex-hull-1.0.1.tgz", - "integrity": "sha1-UUKMFMudmmFEv+abKFH7N3M0vh4=", - "dependencies": { - "robust-orientation": "^1.1.2", - "simplicial-complex": "^1.0.0" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.19", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.6.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/inquirer/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/inquirer/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/interval-tree-1d": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/interval-tree-1d/-/interval-tree-1d-1.0.3.tgz", - "integrity": "sha1-j9veArayx9verWNry+2OCHENhcE=", - "dependencies": { - "binary-search-bounds": "^1.0.0" - } - }, - "node_modules/interval-tree-1d/node_modules/binary-search-bounds": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-1.0.0.tgz", - "integrity": "sha1-MjyjF+PypA9CRMclX1OEpbIHu2k=" - }, - "node_modules/invert-permutation": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-permutation/-/invert-permutation-1.0.0.tgz", - "integrity": "sha1-oKeAQurbNrwXVR54fv0UOa3VSTM=" - }, - "node_modules/iota-array": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/iota-array/-/iota-array-1.0.0.tgz", - "integrity": "sha1-ge9X/l0FgUzVjCSDYyqZwwoOgIc=" - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "node_modules/is-base64": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-base64/-/is-base64-0.1.0.tgz", - "integrity": "sha512-WRRyllsGXJM7ZN7gPTCCQ/6wNPTRDwiWdPK66l5sJzcU/oOzcIcRRf0Rux8bkpox/1yjt0F6VJRsQOIG2qz5sg==" - }, - "node_modules/is-bigint": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", - "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", - "dev": true - }, - "node_modules/is-blob": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-blob/-/is-blob-2.1.0.tgz", - "integrity": "sha512-SZ/fTft5eUhQM6oF/ZaASFDEdbFVe89Imltn9uZr03wdKMcWNVYSMjQPFtg05QuNkt5l5c135ElvXEQG0rk4tw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", - "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-browser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-browser/-/is-browser-2.1.0.tgz", - "integrity": "sha512-F5rTJxDQ2sW81fcfOR1GnCXT6sVJC104fCyfj+mjpwNEwaPYSn5fte5jiHmBg3DHsIoL/l8Kvw5VN5SsTRcRFQ==" - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-firefox": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-firefox/-/is-firefox-1.0.3.tgz", - "integrity": "sha1-KioVZ3g6QX9uFYMjEI84YbCRhWI=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-float-array": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-float-array/-/is-float-array-1.0.0.tgz", - "integrity": "sha512-4ew1Sx6B6kEAl3T3NOM0yB94J3NZnBdNt4paw0e8nY73yHHTeTEhyQ3Lj7EQEnv5LD+GxNTaT4L46jcKjjpLiQ==" - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-iexplorer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-iexplorer/-/is-iexplorer-1.0.0.tgz", - "integrity": "sha1-HXK8ZtP+Iur2Fw3ajPEJQySM/HY=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-mobile": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-2.2.2.tgz", - "integrity": "sha512-wW/SXnYJkTjs++tVK5b6kVITZpAZPtUrt9SF80vvxGiF/Oywal+COk1jlRkiVq15RFNEQKQY31TkV24/1T5cVg==" - }, - "node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", - "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", - "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-string-blank": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-string-blank/-/is-string-blank-1.0.1.tgz", - "integrity": "sha512-9H+ZBCVs3L9OYqv8nuUAzpcT9OTgMD1yAWrG7ihlnibdkbtB850heAmYWxHuXc4CHy4lKeK69tN+ny1K7gBIrw==" - }, - "node_modules/is-svg-path": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-svg-path/-/is-svg-path-1.0.2.tgz", - "integrity": "sha1-d6tZDBKz0gNI5cehPQBAyHeE3aA=" - }, - "node_modules/is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jquery": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", - "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==" - }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/kdbush": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz", - "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==" - }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lerp": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/lerp/-/lerp-1.0.3.tgz", - "integrity": "sha1-oYyJaPkXiW3hXM/MKNVaa3Med24=" - }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", - "dev": true, - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/loader-utils/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/map-limit": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", - "integrity": "sha1-63lhAxwPDo0AG/LVb6toXViCLzg=", - "dependencies": { - "once": "~1.3.0" - } - }, - "node_modules/map-limit/node_modules/once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/mapbox-gl": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-1.10.1.tgz", - "integrity": "sha512-0aHt+lFUpYfvh0kMIqXqNXqoYMuhuAsMlw87TbhWrw78Tx2zfuPI0Lx31/YPUgJ+Ire0tzQ4JnuBL7acDNXmMg==", - "dependencies": { - "@mapbox/geojson-rewind": "^0.5.0", - "@mapbox/geojson-types": "^1.0.2", - "@mapbox/jsonlint-lines-primitives": "^2.0.2", - "@mapbox/mapbox-gl-supported": "^1.5.0", - "@mapbox/point-geometry": "^0.1.0", - "@mapbox/tiny-sdf": "^1.1.1", - "@mapbox/unitbezier": "^0.0.0", - "@mapbox/vector-tile": "^1.3.1", - "@mapbox/whoots-js": "^3.1.0", - "csscolorparser": "~1.0.3", - "earcut": "^2.2.2", - "geojson-vt": "^3.2.1", - "gl-matrix": "^3.2.1", - "grid-index": "^1.1.0", - "minimist": "^1.2.5", - "murmurhash-js": "^1.0.0", - "pbf": "^3.2.1", - "potpack": "^1.0.1", - "quickselect": "^2.0.0", - "rw": "^1.3.3", - "supercluster": "^7.0.0", - "tinyqueue": "^2.0.3", - "vt-pbf": "^3.1.1" - }, - "engines": { - "node": ">=6.4.0" - } - }, - "node_modules/marching-simplex-table": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/marching-simplex-table/-/marching-simplex-table-1.0.0.tgz", - "integrity": "sha1-vBYlbg+Pm1WKqbKHL4gy2UM/Uuo=", - "dependencies": { - "convex-hull": "^1.0.3" - } - }, - "node_modules/mat4-decompose": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mat4-decompose/-/mat4-decompose-1.0.4.tgz", - "integrity": "sha1-ZetP451wh496RE60Yk1S9+frL68=", - "dependencies": { - "gl-mat4": "^1.0.1", - "gl-vec3": "^1.0.2" - } - }, - "node_modules/mat4-interpolate": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mat4-interpolate/-/mat4-interpolate-1.0.4.tgz", - "integrity": "sha1-Vf/p6zw1KV4sDVqfdyXZBoqJ/3Q=", - "dependencies": { - "gl-mat4": "^1.0.1", - "gl-vec3": "^1.0.2", - "mat4-decompose": "^1.0.3", - "mat4-recompose": "^1.0.3", - "quat-slerp": "^1.0.0" - } - }, - "node_modules/mat4-recompose": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mat4-recompose/-/mat4-recompose-1.0.4.tgz", - "integrity": "sha1-OVPCMP8kc9x3LuAUpSySXPgbDk0=", - "dependencies": { - "gl-mat4": "^1.0.1" - } - }, - "node_modules/math-log2": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/math-log2/-/math-log2-1.0.1.tgz", - "integrity": "sha1-+4lBvl9evol55xjmJzsXjlhpRWU=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matrix-camera-controller": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/matrix-camera-controller/-/matrix-camera-controller-2.1.3.tgz", - "integrity": "sha1-NeUmDMHNVQliunmfLY1OlLGjk3A=", - "dependencies": { - "binary-search-bounds": "^1.0.0", - "gl-mat4": "^1.1.2", - "gl-vec3": "^1.0.3", - "mat4-interpolate": "^1.0.3" - } - }, - "node_modules/matrix-camera-controller/node_modules/binary-search-bounds": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-1.0.0.tgz", - "integrity": "sha1-MjyjF+PypA9CRMclX1OEpbIHu2k=" - }, - "node_modules/memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/memory-fs/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/memory-fs/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/memory-fs/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/memory-fs/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mime-db": { - "version": "1.47.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", - "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.30", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", - "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", - "dev": true, - "dependencies": { - "mime-db": "1.47.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.9.tgz", - "integrity": "sha512-Ac4s+xhVbqlyhXS5J/Vh/QXUz3ycXlCqoCPpg0vdfhsIBH9eg/It/9L1r1XhSCH737M1lqcWnMuWL13zcygn5A==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "webpack-sources": "^1.1.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "node_modules/minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/moment": { - "version": "2.27.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz", - "integrity": "sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==", - "engines": { - "node": "*" - } - }, - "node_modules/monotone-convex-hull-2d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/monotone-convex-hull-2d/-/monotone-convex-hull-2d-1.0.1.tgz", - "integrity": "sha1-R/Xa6t88Sv03dkuqGqh4ekDu4Iw=", - "dependencies": { - "robust-orientation": "^1.1.3" - } - }, - "node_modules/mouse-change": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/mouse-change/-/mouse-change-1.4.0.tgz", - "integrity": "sha1-wrd+W/o0pDzhRFyBV6Tk3JiVwU8=", - "dependencies": { - "mouse-event": "^1.0.0" - } - }, - "node_modules/mouse-event": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/mouse-event/-/mouse-event-1.0.5.tgz", - "integrity": "sha1-s3ie23EJmX1aky0dAdqhVDpQFzI=" - }, - "node_modules/mouse-event-offset": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mouse-event-offset/-/mouse-event-offset-3.0.2.tgz", - "integrity": "sha1-39hqbiSMa6jK1TuQXVA3ogY+mYQ=" - }, - "node_modules/mouse-wheel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mouse-wheel/-/mouse-wheel-1.2.0.tgz", - "integrity": "sha1-bSkDseqPtI5h8bU7kDZ3PwQs21w=", - "dependencies": { - "right-now": "^1.0.0", - "signum": "^1.0.0", - "to-px": "^1.0.1" - } - }, - "node_modules/mouse-wheel/node_modules/signum": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/signum/-/signum-1.0.0.tgz", - "integrity": "sha1-dKfSvyogtA66FqkrFSEk8dVZ+nc=" - }, - "node_modules/mumath": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/mumath/-/mumath-3.3.4.tgz", - "integrity": "sha1-SNSg8P2MrU57Mglu6JsWGmPTC78=", - "dependencies": { - "almost-equal": "^1.1.0" - } - }, - "node_modules/murmurhash-js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", - "integrity": "sha1-sGJ44h/Gw3+lMTcysEEry2rhX1E=" - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.1.22", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.22.tgz", - "integrity": "sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/ndarray": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/ndarray/-/ndarray-1.0.19.tgz", - "integrity": "sha512-B4JHA4vdyZU30ELBw3g7/p9bZupyew5a7tX1Y/gGeF2hafrPaQZhgrGQfsvgfYbgdFZjYwuEcnaobeM/WMW+HQ==", - "dependencies": { - "iota-array": "^1.0.0", - "is-buffer": "^1.0.2" - } - }, - "node_modules/ndarray-extract-contour": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ndarray-extract-contour/-/ndarray-extract-contour-1.0.1.tgz", - "integrity": "sha1-Cu4ROjozsia5DEiIz4d79HUTBeQ=", - "dependencies": { - "typedarray-pool": "^1.0.0" - } - }, - "node_modules/ndarray-gradient": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ndarray-gradient/-/ndarray-gradient-1.0.0.tgz", - "integrity": "sha1-t0kaUVxqZJ8ZpiMk//byf8jCU5M=", - "dependencies": { - "cwise-compiler": "^1.0.0", - "dup": "^1.0.0" - } - }, - "node_modules/ndarray-linear-interpolate": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ndarray-linear-interpolate/-/ndarray-linear-interpolate-1.0.0.tgz", - "integrity": "sha1-eLySuFuavBW25n7mWCj54hN65ys=" - }, - "node_modules/ndarray-ops": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/ndarray-ops/-/ndarray-ops-1.2.2.tgz", - "integrity": "sha1-WeiNLDKn7ryxvGkPrhQVeVV6YU4=", - "dependencies": { - "cwise-compiler": "^1.0.0" - } - }, - "node_modules/ndarray-pack": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ndarray-pack/-/ndarray-pack-1.2.1.tgz", - "integrity": "sha1-jK6+qqJNXs9w/4YCBjeXfajuWFo=", - "dependencies": { - "cwise-compiler": "^1.1.2", - "ndarray": "^1.0.13" - } - }, - "node_modules/ndarray-scratch": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/ndarray-scratch/-/ndarray-scratch-1.2.0.tgz", - "integrity": "sha1-YwRjbWLrqT20cnrBPGkzQdulDgE=", - "dependencies": { - "ndarray": "^1.0.14", - "ndarray-ops": "^1.2.1", - "typedarray-pool": "^1.0.2" - } - }, - "node_modules/ndarray-sort": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ndarray-sort/-/ndarray-sort-1.0.1.tgz", - "integrity": "sha1-/qBbTLg0x/TgIWo1TzynUTAN/Wo=", - "dependencies": { - "typedarray-pool": "^1.0.0" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - }, - "node_modules/nextafter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/nextafter/-/nextafter-1.0.0.tgz", - "integrity": "sha1-t9d7U1MQ4+CX5gJauwqQNHfsGjo=", - "dependencies": { - "double-bits": "^1.1.0" - } - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/node-releases": { - "version": "1.1.71", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", - "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", - "dev": true - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-svg-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-0.1.0.tgz", - "integrity": "sha1-RWNg5g7Odfvve11+FgSA5//Rb+U=" - }, - "node_modules/normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/normals": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/normals/-/normals-1.1.0.tgz", - "integrity": "sha1-MltZXtNK/kZ6bFWhT9kIV4f/WcA=" - }, - "node_modules/npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "bin": { - "npm-run-all": "bin/npm-run-all/index.js", - "run-p": "bin/run-p/index.js", - "run-s": "bin/run-s/index.js" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npm-run-path/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/number-is-integer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-integer/-/number-is-integer-1.0.1.tgz", - "integrity": "sha1-5ZvKFy/+0nMY55x862y3LAlbIVI=", - "dependencies": { - "is-finite": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/numeric": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/numeric/-/numeric-1.2.6.tgz", - "integrity": "sha1-dlsCvvl5iPz4gNTrPza4D6MTNao=" - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", - "dev": true - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/orbit-camera-controller": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/orbit-camera-controller/-/orbit-camera-controller-4.0.0.tgz", - "integrity": "sha1-bis28OeHhmPDMPUNqbfOaGwncAU=", - "dependencies": { - "filtered-vector": "^1.2.1", - "gl-mat4": "^1.0.3" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, - "dependencies": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/package-json/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/pad-left": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-1.0.2.tgz", - "integrity": "sha1-GeVzXqmDlaJs7carkm6tEPMQDUw=", - "dependencies": { - "repeat-string": "^1.3.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parenthesis": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/parenthesis/-/parenthesis-3.1.7.tgz", - "integrity": "sha512-iMtu+HCbLXVrpf6Ys/4YKhcFxbux3xK4ZVB9r+a2kMSqeeQWQoDNYlXIsOjwlT2ldYXZ3k5PVeBnYn7fbAo/Bg==" - }, - "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/parse-rect": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parse-rect/-/parse-rect-1.2.0.tgz", - "integrity": "sha512-4QZ6KYbnE6RTwg9E0HpLchUM9EZt6DnDxajFZZDSV4p/12ZJEvPO702DZpGvRYEPo00yKDys7jASi+/w7aO8LA==", - "dependencies": { - "pick-by-alias": "^1.2.0" - } - }, - "node_modules/parse-svg-path": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz", - "integrity": "sha1-en7A0esG+lMlx9PgCbhZoJtdSes=" - }, - "node_modules/parse-unit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-unit/-/parse-unit-1.0.1.tgz", - "integrity": "sha1-fhu21b7zh0wo45JSaiVBFwKR7s8=" - }, - "node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pbf": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", - "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", - "dependencies": { - "ieee754": "^1.1.12", - "resolve-protobuf-schema": "^2.1.0" - }, - "bin": { - "pbf": "bin/pbf" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "node_modules/permutation-parity": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/permutation-parity/-/permutation-parity-1.0.0.tgz", - "integrity": "sha1-AXTVH8pwSxG5pLFSsj1Tf9xrXvQ=", - "dependencies": { - "typedarray-pool": "^1.0.0" - } - }, - "node_modules/permutation-rank": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/permutation-rank/-/permutation-rank-1.0.0.tgz", - "integrity": "sha1-n9mLvOzwj79ZlLXq3JSmLmeUg7U=", - "dependencies": { - "invert-permutation": "^1.0.0", - "typedarray-pool": "^1.0.0" - } - }, - "node_modules/pick-by-alias": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pick-by-alias/-/pick-by-alias-1.2.0.tgz", - "integrity": "sha1-X3yysfIabh6ISgyHhVqko3NhEHs=" - }, - "node_modules/picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/pidtree": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", - "dev": true, - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/planar-dual": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/planar-dual/-/planar-dual-1.0.2.tgz", - "integrity": "sha1-tqQjVSOxsMt55fkm+OozXdmC1WM=", - "dependencies": { - "compare-angle": "^1.0.0", - "dup": "^1.0.0" - } - }, - "node_modules/planar-graph-to-polyline": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/planar-graph-to-polyline/-/planar-graph-to-polyline-1.0.5.tgz", - "integrity": "sha1-iCuGBRmbqIv9RkyVUzA1VsUrmIo=", - "dependencies": { - "edges-to-adjacency-list": "^1.0.0", - "planar-dual": "^1.0.0", - "point-in-big-polygon": "^2.0.0", - "robust-orientation": "^1.0.1", - "robust-sum": "^1.0.0", - "two-product": "^1.0.0", - "uniq": "^1.0.0" - } - }, - "node_modules/plotly.js": { - "version": "1.58.4", - "resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-1.58.4.tgz", - "integrity": "sha512-hdt/aEvkPjS1HJ7tJKcPqsqi9ErEZPhUFs4d2ANTLeBim+AmVcHzS1rtwr7ZrVCINgliW/+92u81omJoy+lbUw==", - "dependencies": { - "@plotly/d3-sankey": "0.7.2", - "@plotly/d3-sankey-circular": "0.33.1", - "@plotly/point-cluster": "^3.1.9", - "@turf/area": "^6.0.1", - "@turf/bbox": "^6.0.1", - "@turf/centroid": "^6.0.2", - "alpha-shape": "^1.0.0", - "canvas-fit": "^1.5.0", - "color-alpha": "1.0.4", - "color-normalize": "1.5.0", - "color-parse": "1.3.8", - "color-rgba": "2.1.1", - "convex-hull": "^1.0.3", - "country-regex": "^1.1.0", - "d3": "^3.5.17", - "d3-force": "^1.2.1", - "d3-hierarchy": "^1.1.9", - "d3-interpolate": "^1.4.0", - "d3-time-format": "^2.2.3", - "delaunay-triangulate": "^1.1.6", - "es6-promise": "^4.2.8", - "fast-isnumeric": "^1.1.4", - "gl-cone3d": "^1.5.2", - "gl-contour2d": "^1.1.7", - "gl-error3d": "^1.0.16", - "gl-heatmap2d": "^1.1.0", - "gl-line3d": "1.2.1", - "gl-mat4": "^1.2.0", - "gl-mesh3d": "^2.3.1", - "gl-plot2d": "^1.4.5", - "gl-plot3d": "^2.4.7", - "gl-pointcloud2d": "^1.0.3", - "gl-scatter3d": "^1.2.3", - "gl-select-box": "^1.0.4", - "gl-spikes2d": "^1.0.2", - "gl-streamtube3d": "^1.4.1", - "gl-surface3d": "^1.6.0", - "gl-text": "^1.1.8", - "glslify": "^7.1.1", - "has-hover": "^1.0.1", - "has-passive-events": "^1.0.0", - "image-size": "^0.7.5", - "is-mobile": "^2.2.2", - "mapbox-gl": "1.10.1", - "matrix-camera-controller": "^2.1.3", - "mouse-change": "^1.4.0", - "mouse-event-offset": "^3.0.2", - "mouse-wheel": "^1.2.0", - "ndarray": "^1.0.19", - "ndarray-linear-interpolate": "^1.0.0", - "parse-svg-path": "^0.1.2", - "polybooljs": "^1.2.0", - "regl": "^1.6.1", - "regl-error2d": "^2.0.11", - "regl-line2d": "^3.0.18", - "regl-scatter2d": "^3.2.1", - "regl-splom": "^1.0.12", - "right-now": "^1.0.0", - "robust-orientation": "^1.1.3", - "sane-topojson": "^4.0.0", - "strongly-connected-components": "^1.0.1", - "superscript-text": "^1.0.0", - "svg-path-sdf": "^1.1.3", - "tinycolor2": "^1.4.2", - "to-px": "1.0.1", - "topojson-client": "^3.1.0", - "webgl-context": "^2.2.0", - "world-calendars": "^1.0.3" - } - }, - "node_modules/point-in-big-polygon": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/point-in-big-polygon/-/point-in-big-polygon-2.0.0.tgz", - "integrity": "sha1-ObYT6mzxfWtD4Yj3fzTETGszulU=", - "dependencies": { - "binary-search-bounds": "^1.0.0", - "interval-tree-1d": "^1.0.1", - "robust-orientation": "^1.1.3", - "slab-decomposition": "^1.0.1" - } - }, - "node_modules/point-in-big-polygon/node_modules/binary-search-bounds": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-1.0.0.tgz", - "integrity": "sha1-MjyjF+PypA9CRMclX1OEpbIHu2k=" - }, - "node_modules/polybooljs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/polybooljs/-/polybooljs-1.2.0.tgz", - "integrity": "sha1-tDkMLgedTCYtOyUExiiNlbp6R1g=" - }, - "node_modules/polytope-closest-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/polytope-closest-point/-/polytope-closest-point-1.0.0.tgz", - "integrity": "sha1-5uV/QIGrXox3i4Ee8G4sSK4zjD8=", - "dependencies": { - "numeric": "^1.2.6" - } - }, - "node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", - "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", - "dev": true, - "dependencies": { - "postcss": "^7.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", - "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", - "dev": true, - "dependencies": { - "icss-utils": "^4.1.1", - "postcss": "^7.0.32", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-modules-scope": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", - "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", - "dev": true, - "dependencies": { - "postcss": "^7.0.6", - "postcss-selector-parser": "^6.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-modules-values": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", - "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", - "dev": true, - "dependencies": { - "icss-utils": "^4.0.0", - "postcss": "^7.0.6" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", - "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true - }, - "node_modules/postcss/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/potpack": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.1.tgz", - "integrity": "sha512-15vItUAbViaYrmaB/Pbw7z6qX2xENbFSTA7Ii4tgbPtasxm5v6ryKhKtL91tpWovDJzTiZqdwzhcFBCwiMVdVw==" - }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "node_modules/protocol-buffers-schema": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.4.0.tgz", - "integrity": "sha512-G/2kcamPF2S49W5yaMGdIpkG6+5wZF0fzBteLKgEHjbNzqjZQ85aAs1iJGto31EJaSTkNvHs5IXuHSaTLWBAiA==" - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/pxls": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/pxls/-/pxls-2.3.2.tgz", - "integrity": "sha512-pQkwgbLqWPcuES5iEmGa10OlCf5xG0blkIF3dg7PpRZShbTYcvAdfFfGL03SMrkaSUaa/V0UpN9HWg40O2AIIw==", - "dependencies": { - "arr-flatten": "^1.1.0", - "compute-dims": "^1.1.0", - "flip-pixels": "^1.0.2", - "is-browser": "^2.1.0", - "is-buffer": "^2.0.3", - "to-uint8": "^1.4.1" - } - }, - "node_modules/pxls/node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/quantize": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/quantize/-/quantize-1.0.2.tgz", - "integrity": "sha1-0lrCAKd7bXD0ASfKFxoQ4zyFRt4=", - "engines": { - "node": ">=0.10.21" - } - }, - "node_modules/quat-slerp": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/quat-slerp/-/quat-slerp-1.0.1.tgz", - "integrity": "sha1-K6oVzjprvcMkHZcusXKDE57Wnyk=", - "dependencies": { - "gl-quat": "^1.0.0" - } - }, - "node_modules/querystringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", - "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "node_modules/quickselect": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", - "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" - }, - "node_modules/raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "dependencies": { - "performance-now": "^2.1.0" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/rat-vec": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/rat-vec/-/rat-vec-1.1.1.tgz", - "integrity": "sha1-Dd4rZrezS7G80qI4BerIBth/0X8=", - "dependencies": { - "big-rat": "^1.0.3" - } - }, - "node_modules/raw-loader": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", - "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/raw-loader/node_modules/loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/raw-loader/node_modules/schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/rechoir": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz", - "integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==", - "dev": true, - "dependencies": { - "resolve": "^1.9.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/reduce-simplicial-complex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/reduce-simplicial-complex/-/reduce-simplicial-complex-1.0.0.tgz", - "integrity": "sha1-dNaWovg196bc2SBl/YxRgfLt+Lw=", - "dependencies": { - "cell-orientation": "^1.0.1", - "compare-cell": "^1.0.0", - "compare-oriented-cell": "^1.0.1" - } - }, - "node_modules/regex-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regex-regex/-/regex-regex-1.0.0.tgz", - "integrity": "sha1-kEih6uuHD01IDavHb8Qs3MC8OnI=" - }, - "node_modules/registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/regl": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/regl/-/regl-1.7.0.tgz", - "integrity": "sha512-bEAtp/qrtKucxXSJkD4ebopFZYP0q1+3Vb2WECWv/T8yQEgKxDxJ7ztO285tAMaYZVR6mM1GgI6CCn8FROtL1w==" - }, - "node_modules/regl-error2d": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/regl-error2d/-/regl-error2d-2.0.11.tgz", - "integrity": "sha512-Bv4DbLtDU69GXPSm+NvlVWzT82oQ8M2FK+SxzkyaYMlA9izZRdLmDADqBSyJTnPWiRT4a/2KA+MP+WI0N0yt7Q==", - "dependencies": { - "array-bounds": "^1.0.1", - "color-normalize": "^1.5.0", - "flatten-vertex-data": "^1.0.2", - "object-assign": "^4.1.1", - "pick-by-alias": "^1.2.0", - "to-float32": "^1.0.1", - "update-diff": "^1.1.0" - } - }, - "node_modules/regl-line2d": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regl-line2d/-/regl-line2d-3.1.0.tgz", - "integrity": "sha512-8dB3SyAW5zTU759LrIJdkOe128htl1xlONHrknsFl1tAxZVqTc+WO/2k9pAJDuyiKu1v/6bosiuEDOB7G3dm4w==", - "dependencies": { - "array-bounds": "^1.0.1", - "array-find-index": "^1.0.2", - "array-normalize": "^1.1.4", - "color-normalize": "^1.5.0", - "earcut": "^2.1.5", - "es6-weak-map": "^2.0.3", - "flatten-vertex-data": "^1.0.2", - "glslify": "^7.0.0", - "object-assign": "^4.1.1", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0", - "to-float32": "^1.0.1" - } - }, - "node_modules/regl-scatter2d": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/regl-scatter2d/-/regl-scatter2d-3.2.1.tgz", - "integrity": "sha512-qxUCK5kXuoVZin2gPLXkgkBfRr3XLobVgEfn5N0fiprsb/ncTCtSNVBqP0EJgNb115R+FXte9LKA9YrFx7uBnA==", - "dependencies": { - "@plotly/point-cluster": "^3.1.9", - "array-range": "^1.0.1", - "array-rearrange": "^2.2.2", - "clamp": "^1.0.1", - "color-id": "^1.1.0", - "color-normalize": "^1.5.0", - "color-rgba": "^2.1.1", - "flatten-vertex-data": "^1.0.2", - "glslify": "^7.0.0", - "image-palette": "^2.1.0", - "is-iexplorer": "^1.0.0", - "object-assign": "^4.1.1", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0", - "to-float32": "^1.0.1", - "update-diff": "^1.1.0" - } - }, - "node_modules/regl-splom": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/regl-splom/-/regl-splom-1.0.12.tgz", - "integrity": "sha512-LliMmAQ6wJFuPiLxZgYOFOzjhWcrIWPbS3Vf763Twl6R8eKpuUyRHZ54q+hxWGYwICHoPCBKMs7pVAJi8Iv7/w==", - "dependencies": { - "array-bounds": "^1.0.1", - "array-range": "^1.0.1", - "color-alpha": "^1.0.4", - "flatten-vertex-data": "^1.0.2", - "parse-rect": "^1.2.0", - "pick-by-alias": "^1.2.0", - "raf": "^3.4.1", - "regl-scatter2d": "^3.1.9" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "node_modules/resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dependencies": { - "path-parse": "^1.0.6" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-protobuf-schema": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", - "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", - "dependencies": { - "protocol-buffers-schema": "^3.3.1" - } - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/right-now": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz", - "integrity": "sha1-bolgne69fc2vja7Mmuo5z1haCRg=" - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/robust-compress": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/robust-compress/-/robust-compress-1.0.0.tgz", - "integrity": "sha1-TPYsSzGNgwhRYBK7jBF1Lzkymxs=" - }, - "node_modules/robust-determinant": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/robust-determinant/-/robust-determinant-1.1.0.tgz", - "integrity": "sha1-jsrnm3nKqz509t6+IjflORon6cc=", - "dependencies": { - "robust-compress": "^1.0.0", - "robust-scale": "^1.0.0", - "robust-sum": "^1.0.0", - "two-product": "^1.0.0" - } - }, - "node_modules/robust-dot-product": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/robust-dot-product/-/robust-dot-product-1.0.0.tgz", - "integrity": "sha1-yboBeL0sMEv9cl9Y6Inx2UYARVM=", - "dependencies": { - "robust-sum": "^1.0.0", - "two-product": "^1.0.0" - } - }, - "node_modules/robust-in-sphere": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/robust-in-sphere/-/robust-in-sphere-1.1.3.tgz", - "integrity": "sha1-HFiD0WpOkjkpR27zSBmFe/Kpz3U=", - "dependencies": { - "robust-scale": "^1.0.0", - "robust-subtract": "^1.0.0", - "robust-sum": "^1.0.0", - "two-product": "^1.0.0" - } - }, - "node_modules/robust-linear-solve": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/robust-linear-solve/-/robust-linear-solve-1.0.0.tgz", - "integrity": "sha1-DNasUEBpGm8qo81jEdcokFyjofE=", - "dependencies": { - "robust-determinant": "^1.1.0" - } - }, - "node_modules/robust-orientation": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/robust-orientation/-/robust-orientation-1.1.3.tgz", - "integrity": "sha1-2v9bANO+TmByLw6cAVbvln8cIEk=", - "dependencies": { - "robust-scale": "^1.0.2", - "robust-subtract": "^1.0.0", - "robust-sum": "^1.0.0", - "two-product": "^1.0.2" - } - }, - "node_modules/robust-product": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/robust-product/-/robust-product-1.0.0.tgz", - "integrity": "sha1-aFJQAHzbunzx3nW/9tKScBEJir4=", - "dependencies": { - "robust-scale": "^1.0.0", - "robust-sum": "^1.0.0" - } - }, - "node_modules/robust-scale": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/robust-scale/-/robust-scale-1.0.2.tgz", - "integrity": "sha1-d1Ey7QlULQKOWLLMecBikLz3jDI=", - "dependencies": { - "two-product": "^1.0.2", - "two-sum": "^1.0.0" - } - }, - "node_modules/robust-segment-intersect": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/robust-segment-intersect/-/robust-segment-intersect-1.0.1.tgz", - "integrity": "sha1-MlK2oPwboUreaRXMvgnLzpqrHBw=", - "dependencies": { - "robust-orientation": "^1.1.3" - } - }, - "node_modules/robust-subtract": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/robust-subtract/-/robust-subtract-1.0.0.tgz", - "integrity": "sha1-4LFk4e2LpOOl3aRaEgODSNvtPpo=" - }, - "node_modules/robust-sum": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/robust-sum/-/robust-sum-1.0.0.tgz", - "integrity": "sha1-FmRuUlKStNJdgnV6KGlV4Lv6U9k=" - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" - }, - "node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sane-topojson": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/sane-topojson/-/sane-topojson-4.0.0.tgz", - "integrity": "sha512-bJILrpBboQfabG3BNnHI2hZl52pbt80BE09u4WhnrmzuF2JbMKZdl62G5glXskJ46p+gxE2IzOwGj/awR4g8AA==" - }, - "node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - } - }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shallow-copy": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", - "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=" - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shell-quote": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", - "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", - "dev": true - }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "node_modules/signum": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/signum/-/signum-0.0.0.tgz", - "integrity": "sha1-q1UbEAM1EHCnBHg/GgnF52kfnPY=" - }, - "node_modules/simplicial-complex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simplicial-complex/-/simplicial-complex-1.0.0.tgz", - "integrity": "sha1-bDOk7Wn81Nkbe8rdOzC2NoPq4kE=", - "dependencies": { - "bit-twiddle": "^1.0.0", - "union-find": "^1.0.0" - } - }, - "node_modules/simplicial-complex-boundary": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simplicial-complex-boundary/-/simplicial-complex-boundary-1.0.1.tgz", - "integrity": "sha1-csn/HiTeqjdMm7L6DL8MCB6++BU=", - "dependencies": { - "boundary-cells": "^2.0.0", - "reduce-simplicial-complex": "^1.0.0" - } - }, - "node_modules/simplicial-complex-contour": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/simplicial-complex-contour/-/simplicial-complex-contour-1.0.2.tgz", - "integrity": "sha1-iQqsrChDZTQBEFRc8mKaJuBL+dE=", - "dependencies": { - "marching-simplex-table": "^1.0.0", - "ndarray": "^1.0.15", - "ndarray-sort": "^1.0.0", - "typedarray-pool": "^1.1.0" - } - }, - "node_modules/simplify-planar-graph": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/simplify-planar-graph/-/simplify-planar-graph-2.0.1.tgz", - "integrity": "sha1-vIWJNyXzLo+oriVoE5hEbSy892Y=", - "dependencies": { - "robust-orientation": "^1.0.1", - "simplicial-complex": "^0.3.3" - } - }, - "node_modules/simplify-planar-graph/node_modules/bit-twiddle": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-0.0.2.tgz", - "integrity": "sha1-wurruVKjuUrMFASX4c3NLxoz9Y4=" - }, - "node_modules/simplify-planar-graph/node_modules/simplicial-complex": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/simplicial-complex/-/simplicial-complex-0.3.3.tgz", - "integrity": "sha1-TDDK1X+eRXKd2PMGyHU1efRr6Z4=", - "dependencies": { - "bit-twiddle": "~0.0.1", - "union-find": "~0.0.3" - } - }, - "node_modules/simplify-planar-graph/node_modules/union-find": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/union-find/-/union-find-0.0.4.tgz", - "integrity": "sha1-uFSzMBYZva0USwAUx4+W6sDS8PY=" - }, - "node_modules/slab-decomposition": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/slab-decomposition/-/slab-decomposition-1.0.2.tgz", - "integrity": "sha1-He1WdU1AixBznxRRA9/GGAf2UTQ=", - "dependencies": { - "binary-search-bounds": "^1.0.0", - "functional-red-black-tree": "^1.0.0", - "robust-orientation": "^1.1.3" - } - }, - "node_modules/slab-decomposition/node_modules/binary-search-bounds": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-1.0.0.tgz", - "integrity": "sha1-MjyjF+PypA9CRMclX1OEpbIHu2k=" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/sort-object-keys": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sort-object-keys/-/sort-object-keys-1.1.3.tgz", - "integrity": "sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==", - "dev": true - }, - "node_modules/sort-package-json": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/sort-package-json/-/sort-package-json-1.44.0.tgz", - "integrity": "sha512-u9GUZvpavUCXV5SbEqXu9FRbsJrYU6WM10r3zA0gymGPufK5X82MblCLh9GW9l46pXKEZvK+FA3eVTqC4oMp4A==", - "dev": true, - "dependencies": { - "detect-indent": "^6.0.0", - "detect-newline": "3.1.0", - "git-hooks-list": "1.0.3", - "globby": "10.0.0", - "is-plain-obj": "2.1.0", - "sort-object-keys": "^1.1.3" - }, - "bin": { - "sort-package-json": "cli.js" - } - }, - "node_modules/sort-package-json/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-loader": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-1.1.3.tgz", - "integrity": "sha512-6YHeF+XzDOrT/ycFJNI53cgEsp/tHTMl37hi7uVyqFAlTXW109JazaQCkbc+jjoL2637qkH1amLi+JzrIpt5lA==", - "dev": true, - "dependencies": { - "abab": "^2.0.5", - "iconv-lite": "^0.6.2", - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "source-map": "^0.6.1", - "whatwg-mimetype": "^2.3.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/source-map-loader/node_modules/iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-loader/node_modules/loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/source-map-loader/node_modules/schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", - "dev": true - }, - "node_modules/split-polygon": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/split-polygon/-/split-polygon-1.0.0.tgz", - "integrity": "sha1-DqzIoTanaxKj2VJW6n2kXbDC0kc=", - "dependencies": { - "robust-dot-product": "^1.0.0", - "robust-sum": "^1.0.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" - }, - "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/stack-trace": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", - "integrity": "sha1-qPbq7KkGdMMz58Q5U/J1tFFRBpU=", - "engines": { - "node": "*" - } - }, - "node_modules/static-eval": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.0.tgz", - "integrity": "sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==", - "dependencies": { - "escodegen": "^1.11.1" - } - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" - }, - "node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "node_modules/string-split-by": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string-split-by/-/string-split-by-1.0.0.tgz", - "integrity": "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==", - "dependencies": { - "parenthesis": "^3.1.5" - } - }, - "node_modules/string-to-arraybuffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-to-arraybuffer/-/string-to-arraybuffer-1.0.2.tgz", - "integrity": "sha512-DaGZidzi93dwjQen5I2osxR9ERS/R7B1PFyufNMnzhj+fmlDQAc1DSDIJVJhgI8Oq221efIMbABUBdPHDRt43Q==", - "dependencies": { - "atob-lite": "^2.0.0", - "is-base64": "^0.1.0" - } - }, - "node_modules/string-to-arraybuffer/node_modules/atob-lite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz", - "integrity": "sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY=" - }, - "node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.padend": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.2.tgz", - "integrity": "sha512-/AQFLdYvePENU3W5rgurfWSMU6n+Ww8n/3cUt7E+vPBB/D7YDG8x+qjoFs4M/alR2bW7Qg6xMjVwWUOvuQ0XpQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strongly-connected-components": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strongly-connected-components/-/strongly-connected-components-1.0.1.tgz", - "integrity": "sha1-CSDitN9nyOrulsa2I0/inoc9upk=" - }, - "node_modules/style-loader": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.3.0.tgz", - "integrity": "sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^2.7.0" - }, - "engines": { - "node": ">= 8.9.0" - } - }, - "node_modules/style-loader/node_modules/loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/supercluster": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.0.tgz", - "integrity": "sha512-LDasImUAFMhTqhK+cUXfy9C2KTUqJ3gucLjmNLNFmKWOnDUBxLFLH9oKuXOTCLveecmxh8fbk8kgh6Q0gsfe2w==", - "dependencies": { - "kdbush": "^3.0.0" - } - }, - "node_modules/superscript-text": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/superscript-text/-/superscript-text-1.0.0.tgz", - "integrity": "sha1-58snUlZzYN9QvrBhDOjfPXHY39g=" - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/surface-nets": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/surface-nets/-/surface-nets-1.0.2.tgz", - "integrity": "sha1-5DPIy7qUpydMb0yZVStGG/H8eks=", - "dependencies": { - "ndarray-extract-contour": "^1.0.0", - "triangulate-hypercube": "^1.0.0", - "zero-crossings": "^1.0.0" - } - }, - "node_modules/svg-arc-to-cubic-bezier": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz", - "integrity": "sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==" - }, - "node_modules/svg-path-bounds": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/svg-path-bounds/-/svg-path-bounds-1.0.1.tgz", - "integrity": "sha1-v0WLeDcmv1NDG0Yz8nkvYHSNn3Q=", - "dependencies": { - "abs-svg-path": "^0.1.1", - "is-svg-path": "^1.0.1", - "normalize-svg-path": "^1.0.0", - "parse-svg-path": "^0.1.2" - } - }, - "node_modules/svg-path-bounds/node_modules/normalize-svg-path": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-1.1.0.tgz", - "integrity": "sha512-r9KHKG2UUeB5LoTouwDzBy2VxXlHsiM6fyLQvnJa0S5hrhzqElH/CH7TUGhT1fVvIYBIKf3OpY4YJ4CK+iaqHg==", - "dependencies": { - "svg-arc-to-cubic-bezier": "^3.0.0" - } - }, - "node_modules/svg-path-sdf": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/svg-path-sdf/-/svg-path-sdf-1.1.3.tgz", - "integrity": "sha512-vJJjVq/R5lSr2KLfVXVAStktfcfa1pNFjFOgyJnzZFXlO/fDZ5DmM8FpnSKKzLPfEYTVeXuVBTHF296TpxuJVg==", - "dependencies": { - "bitmap-sdf": "^1.0.0", - "draw-svg-path": "^1.0.0", - "is-svg-path": "^1.0.1", - "parse-svg-path": "^0.1.2", - "svg-path-bounds": "^1.0.1" - } - }, - "node_modules/svg-url-loader": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/svg-url-loader/-/svg-url-loader-6.0.0.tgz", - "integrity": "sha512-Qr5SCKxyxKcRnvnVrO3iQj9EX/v40UiGEMshgegzV7vpo3yc+HexELOdtWcA3MKjL8IyZZ1zOdcILmDEa/8JJQ==", - "dev": true, - "dependencies": { - "file-loader": "~6.0.0", - "loader-utils": "~2.0.0" - } - }, - "node_modules/svg-url-loader/node_modules/loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", - "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", - "dev": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.6.1.tgz", - "integrity": "sha512-yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw==", - "dev": true, - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.19" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz", - "integrity": "sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==", - "dev": true, - "dependencies": { - "cacache": "^15.0.5", - "find-cache-dir": "^3.3.1", - "jest-worker": "^26.5.0", - "p-limit": "^3.0.2", - "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", - "source-map": "^0.6.1", - "terser": "^5.3.4", - "webpack-sources": "^1.4.3" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/terser/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/text-cache": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/text-cache/-/text-cache-4.2.2.tgz", - "integrity": "sha512-zky+UDYiX0a/aPw/YTBD+EzKMlCTu1chFuCMZeAkgoRiceySdROu1V2kJXhCbtEdBhiOviYnAdGiSYl58HW0ZQ==", - "dependencies": { - "vectorize-text": "^3.2.1" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "node_modules/through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dependencies": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - }, - "node_modules/tinycolor2": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", - "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==", - "engines": { - "node": "*" - } - }, - "node_modules/tinyqueue": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", - "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-array-buffer": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/to-array-buffer/-/to-array-buffer-3.2.0.tgz", - "integrity": "sha512-zN33mwi0gpL+7xW1ITLfJ48CEj6ZQW0ZAP0MU+2W3kEY0PAIncyuxmD4OqkUVhPAbTP7amq9j/iwvZKYS+lzSQ==", - "dependencies": { - "flatten-vertex-data": "^1.0.2", - "is-blob": "^2.0.1", - "string-to-arraybuffer": "^1.0.0" - } - }, - "node_modules/to-float32": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-float32/-/to-float32-1.0.1.tgz", - "integrity": "sha512-nOy2WSwae3xhZbc+05xiCuU3ZPPmH0L4Rg4Q1qiOGFSuNSCTB9nVJaGgGl3ZScxAclX/L8hJuDHJGDAzbfuKCQ==" - }, - "node_modules/to-px": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-px/-/to-px-1.0.1.tgz", - "integrity": "sha1-W7rtXl1PdkRbzJA8KTojB90yRkY=", - "dependencies": { - "parse-unit": "^1.0.1" - } - }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/to-string-loader": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/to-string-loader/-/to-string-loader-1.1.6.tgz", - "integrity": "sha512-VNg62//PS1WfNwrK3n7t6wtK5Vdtx/qeYLLEioW46VMlYUwAYT6wnfB+OwS2FMTCalIHu0tk79D3RXX8ttmZTQ==", - "dev": true, - "dependencies": { - "loader-utils": "^1.0.0" - } - }, - "node_modules/to-uint8": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/to-uint8/-/to-uint8-1.4.1.tgz", - "integrity": "sha512-o+ochsMlTZyucbww8It401FC2Rx+OP2RpDeYbA6h+y9HgedDl1UjdsJ9CmzKEG7AFP9es5PmJ4eDWeeeXihESg==", - "dependencies": { - "arr-flatten": "^1.1.0", - "clamp": "^1.0.1", - "is-base64": "^0.1.0", - "is-float-array": "^1.0.0", - "to-array-buffer": "^3.0.0" - } - }, - "node_modules/topojson-client": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", - "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", - "dependencies": { - "commander": "2" - }, - "bin": { - "topo2geo": "bin/topo2geo", - "topomerge": "bin/topomerge", - "topoquantize": "bin/topoquantize" - } - }, - "node_modules/triangulate-hypercube": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/triangulate-hypercube/-/triangulate-hypercube-1.0.1.tgz", - "integrity": "sha1-2Acdsuv8/VHzCNC88qXEils20Tc=", - "dependencies": { - "gamma": "^0.1.0", - "permutation-parity": "^1.0.0", - "permutation-rank": "^1.0.0" - } - }, - "node_modules/triangulate-polyline": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/triangulate-polyline/-/triangulate-polyline-1.0.3.tgz", - "integrity": "sha1-v4uod6hQVBA/65+lphtOjXAXgU0=", - "dependencies": { - "cdt2d": "^1.0.0" - } - }, - "node_modules/ts-loader": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-8.1.0.tgz", - "integrity": "sha512-YiQipGGAFj2zBfqLhp28yUvPP9jUGqHxRzrGYuc82Z2wM27YIHbElXiaZDc93c3x0mz4zvBmS6q/DgExpdj37A==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "enhanced-resolve": "^4.0.0", - "loader-utils": "^2.0.0", - "micromatch": "^4.0.0", - "semver": "^7.3.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ts-loader/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-loader/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-loader/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ts-loader/node_modules/loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/ts-loader/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/turntable-camera-controller": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/turntable-camera-controller/-/turntable-camera-controller-3.0.1.tgz", - "integrity": "sha1-jb0/4AVQGRxlFky4iJcQSVeK/Zk=", - "dependencies": { - "filtered-vector": "^1.2.1", - "gl-mat4": "^1.0.2", - "gl-vec3": "^1.0.2" - } - }, - "node_modules/two-product": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/two-product/-/two-product-1.0.2.tgz", - "integrity": "sha1-Z9ldSyV6kh4stL16+VEfkIhSLqo=" - }, - "node_modules/two-sum": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/two-sum/-/two-sum-1.0.0.tgz", - "integrity": "sha1-MdPzIjnk9zHsqd+RVeKyl/AIq2Q=" - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/type-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/type-name/-/type-name-2.0.2.tgz", - "integrity": "sha1-7+fUEj2KxSr/9/QMfk3sUmYAj7Q=" - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "node_modules/typedarray-pool": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/typedarray-pool/-/typedarray-pool-1.2.0.tgz", - "integrity": "sha512-YTSQbzX43yvtpfRtIDAYygoYtgT+Rpjuxy9iOpczrjpXLgGoyG7aS5USJXV2d3nn8uHTeb9rXDvzS27zUg5KYQ==", - "dependencies": { - "bit-twiddle": "^1.0.0", - "dup": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", - "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, - "node_modules/underscore": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", - "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==" - }, - "node_modules/union-find": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/union-find/-/union-find-1.0.2.tgz", - "integrity": "sha1-KSusQV5q06iVNdI3AQ20pTYoTlg=" - }, - "node_modules/uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" - }, - "node_modules/update-diff": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-diff/-/update-diff-1.1.0.tgz", - "integrity": "sha1-9RAYLYHugZ+4LDprIrYrve2ngI8=" - }, - "node_modules/uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-loader": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", - "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "mime-types": "^2.1.27", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/url-loader/node_modules/loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/url-loader/node_modules/schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/utils-copy": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/utils-copy/-/utils-copy-1.1.1.tgz", - "integrity": "sha1-biuXmCqozXPhGCo+b4vsPA9AWKc=", - "dependencies": { - "const-pinf-float64": "^1.0.0", - "object-keys": "^1.0.9", - "type-name": "^2.0.0", - "utils-copy-error": "^1.0.0", - "utils-indexof": "^1.0.0", - "utils-regex-from-string": "^1.0.0", - "validate.io-array": "^1.0.3", - "validate.io-buffer": "^1.0.1", - "validate.io-nonnegative-integer": "^1.0.0" - } - }, - "node_modules/utils-copy-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-copy-error/-/utils-copy-error-1.0.1.tgz", - "integrity": "sha1-eR3jk8DwmJCv1Z88vqY18HmpT6U=", - "dependencies": { - "object-keys": "^1.0.9", - "utils-copy": "^1.1.0" - } - }, - "node_modules/utils-indexof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/utils-indexof/-/utils-indexof-1.0.0.tgz", - "integrity": "sha1-IP6r8J7xAYtSNkPoOA57yD7GG1w=", - "dependencies": { - "validate.io-array-like": "^1.0.1", - "validate.io-integer-primitive": "^1.0.0" - } - }, - "node_modules/utils-regex-from-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/utils-regex-from-string/-/utils-regex-from-string-1.0.0.tgz", - "integrity": "sha1-/hopCfjeD/DVGCyA+8ZU1qaH0Yk=", - "dependencies": { - "regex-regex": "^1.0.0", - "validate.io-string-primitive": "^1.0.0" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/validate.io-array": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/validate.io-array/-/validate.io-array-1.0.6.tgz", - "integrity": "sha1-W1osr9j4uFq7L4hroVPy2Tond00=" - }, - "node_modules/validate.io-array-like": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/validate.io-array-like/-/validate.io-array-like-1.0.2.tgz", - "integrity": "sha1-evn363tRcVvrIhVmjsXM5U+t21o=", - "dependencies": { - "const-max-uint32": "^1.0.2", - "validate.io-integer-primitive": "^1.0.0" - } - }, - "node_modules/validate.io-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/validate.io-buffer/-/validate.io-buffer-1.0.2.tgz", - "integrity": "sha1-hS1nNAIZFNXROvwyUxdh43IO1E4=" - }, - "node_modules/validate.io-integer": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/validate.io-integer/-/validate.io-integer-1.0.5.tgz", - "integrity": "sha1-FoSWSAuVviJH7EQ/IjPeT4mHgGg=", - "dependencies": { - "validate.io-number": "^1.0.3" - } - }, - "node_modules/validate.io-integer-primitive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/validate.io-integer-primitive/-/validate.io-integer-primitive-1.0.0.tgz", - "integrity": "sha1-qaoBA1X+hoHA/qbBp0rSQZyt3cY=", - "dependencies": { - "validate.io-number-primitive": "^1.0.0" - } - }, - "node_modules/validate.io-matrix-like": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/validate.io-matrix-like/-/validate.io-matrix-like-1.0.2.tgz", - "integrity": "sha1-XsMqddCInaxzbepovdYUWxVe38M=" - }, - "node_modules/validate.io-ndarray-like": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/validate.io-ndarray-like/-/validate.io-ndarray-like-1.0.0.tgz", - "integrity": "sha1-2KOw7RZbvx0vwNAHMnDPpVIpWRk=" - }, - "node_modules/validate.io-nonnegative-integer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/validate.io-nonnegative-integer/-/validate.io-nonnegative-integer-1.0.0.tgz", - "integrity": "sha1-gGkkOgjF+Y6VQTySnf17GPP28p8=", - "dependencies": { - "validate.io-integer": "^1.0.5" - } - }, - "node_modules/validate.io-number": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/validate.io-number/-/validate.io-number-1.0.3.tgz", - "integrity": "sha1-9j/+2iSL8opnqNSODjtGGhZluvg=" - }, - "node_modules/validate.io-number-primitive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/validate.io-number-primitive/-/validate.io-number-primitive-1.0.0.tgz", - "integrity": "sha1-0uAfICmJNp3PEVVElWQgOv5YTlU=" - }, - "node_modules/validate.io-positive-integer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/validate.io-positive-integer/-/validate.io-positive-integer-1.0.0.tgz", - "integrity": "sha1-ftLQO0wnVYzGagCqsPDpIYFKZYI=", - "dependencies": { - "validate.io-integer": "^1.0.5" - } - }, - "node_modules/validate.io-string-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/validate.io-string-primitive/-/validate.io-string-primitive-1.0.1.tgz", - "integrity": "sha1-uBNbn7E3K94C/dU60dDM1t55j+4=" - }, - "node_modules/vectorize-text": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/vectorize-text/-/vectorize-text-3.2.1.tgz", - "integrity": "sha512-rGojF+D9BB96iPZPUitfq5kaiS6eCJmfEel0NXOK/MzZSuXGiwhoop80PtaDas9/Hg/oaox1tI9g3h93qpuspg==", - "dependencies": { - "cdt2d": "^1.0.0", - "clean-pslg": "^1.1.0", - "ndarray": "^1.0.11", - "planar-graph-to-polyline": "^1.0.0", - "simplify-planar-graph": "^2.0.1", - "surface-nets": "^1.0.0", - "triangulate-polyline": "^1.0.0" - } - }, - "node_modules/vt-pbf": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.1.tgz", - "integrity": "sha512-pHjWdrIoxurpmTcbfBWXaPwSmtPAHS105253P1qyEfSTV2HJddqjM+kIHquaT/L6lVJIk9ltTGc0IxR/G47hYA==", - "dependencies": { - "@mapbox/point-geometry": "0.1.0", - "@mapbox/vector-tile": "^1.3.1", - "pbf": "^3.0.5" - } - }, - "node_modules/watchpack": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz", - "integrity": "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==", - "dev": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/weak-map": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.5.tgz", - "integrity": "sha1-eWkVhNmGB/UHC9O3CkDmuyLkAes=" - }, - "node_modules/weakmap-shim": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/weakmap-shim/-/weakmap-shim-1.1.1.tgz", - "integrity": "sha1-1lr9eEEJshZuAP9XHDMVDsKkC0k=" - }, - "node_modules/webgl-context": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/webgl-context/-/webgl-context-2.2.0.tgz", - "integrity": "sha1-jzfXJXz23xzQpJ5qextyG5TMhqA=", - "dependencies": { - "get-canvas-context": "^1.0.1" - } - }, - "node_modules/webpack": { - "version": "5.31.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.31.0.tgz", - "integrity": "sha512-3fUfZT/FUuThWSSyL32Fsh7weUUfYP/Fjc/cGSbla5KiSo0GtI1JMssCRUopJTvmLjrw05R2q7rlLtiKdSzkzQ==", - "dev": true, - "dependencies": { - "@types/eslint-scope": "^3.7.0", - "@types/estree": "^0.0.46", - "@webassemblyjs/ast": "1.11.0", - "@webassemblyjs/wasm-edit": "1.11.0", - "@webassemblyjs/wasm-parser": "1.11.0", - "acorn": "^8.0.4", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.7.0", - "es-module-lexer": "^0.4.0", - "eslint-scope": "^5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.4", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.0.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.1", - "watchpack": "^2.0.0", - "webpack-sources": "^2.1.1" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack-cli": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.6.0.tgz", - "integrity": "sha512-9YV+qTcGMjQFiY7Nb1kmnupvb1x40lfpj8pwdO/bom+sQiP4OBMKjHq29YQrlDWDPZO9r/qWaRRywKaRDKqBTA==", - "dev": true, - "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.0.2", - "@webpack-cli/info": "^1.2.3", - "@webpack-cli/serve": "^1.3.1", - "colorette": "^1.2.1", - "commander": "^7.0.0", - "enquirer": "^2.3.6", - "execa": "^5.0.0", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "v8-compile-cache": "^2.2.0", - "webpack-merge": "^5.7.3" - }, - "bin": { - "webpack-cli": "bin/cli.js" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack-cli/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-merge": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz", - "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/webpack/node_modules/acorn": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz", - "integrity": "sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/webpack/node_modules/enhanced-resolve": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz", - "integrity": "sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/webpack/node_modules/tapable": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", - "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack/node_modules/terser-webpack-plugin": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz", - "integrity": "sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q==", - "dev": true, - "dependencies": { - "jest-worker": "^26.6.2", - "p-limit": "^3.1.0", - "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", - "source-map": "^0.6.1", - "terser": "^5.5.1" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/webpack/node_modules/webpack-sources": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz", - "integrity": "sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==", - "dev": true, - "dependencies": { - "source-list-map": "^2.0.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "node_modules/wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/worker-loader": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/worker-loader/-/worker-loader-3.0.8.tgz", - "integrity": "sha512-XQyQkIFeRVC7f7uRhFdNMe/iJOdO6zxAaR3EWbDp45v3mDhrTi+++oswKNxShUNjPC/1xUp5DB29YKLhFo129g==", - "dev": true, - "dependencies": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/worker-loader/node_modules/loader-utils": { + "dependencies": { + "3d-view": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/worker-loader/node_modules/schema-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", - "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.6", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/world-calendars": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/world-calendars/-/world-calendars-1.0.3.tgz", - "integrity": "sha1-slxQMrokEo/8QdCfr0pewbnBQzU=", - "dependencies": { - "object-assign": "^4.1.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/ws": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz", - "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==", - "engines": { - "node": ">=8.3.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" + "resolved": "https://registry.npmjs.org/3d-view/-/3d-view-2.0.0.tgz", + "integrity": "sha1-gxrpQtdQjFCAHj4G+v4ejFdOF74=", + "requires": { + "matrix-camera-controller": "^2.1.1", + "orbit-camera-controller": "^4.0.0", + "turntable-camera-controller": "^3.0.0" } }, - "node_modules/zero-crossings": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/zero-crossings/-/zero-crossings-1.0.1.tgz", - "integrity": "sha1-xWK9MRNkPzRDokXRJAa4i2m5qf8=", - "dependencies": { - "cwise-compiler": "^1.0.0" - } - } - }, - "dependencies": { "@choojs/findup": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/@choojs/findup/-/findup-0.2.1.tgz", @@ -9232,42 +779,18 @@ } }, "@mapbox/geojson-rewind": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.0.tgz", - "integrity": "sha512-73l/qJQgj/T/zO1JXVfuVvvKDgikD/7D/rHAD28S9BG1OTstgmftrmqfCx4U+zQAmtsB6HcDA3a7ymdnJZAQgg==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.1.tgz", + "integrity": "sha512-eL7fMmfTBKjrb+VFHXCGv9Ot0zc3C0U+CwXo1IrP+EPwDczLoXv34Tgq3y+2mPSFNVUXgU42ILWJTC7145KPTA==", "requires": { - "concat-stream": "~2.0.0", + "get-stream": "^6.0.1", "minimist": "^1.2.5" }, "dependencies": { - "concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" } } }, @@ -9292,9 +815,9 @@ "integrity": "sha1-ioP5M1x4YO/6Lu7KJUMyqgru2PI=" }, "@mapbox/tiny-sdf": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.1.1.tgz", - "integrity": "sha512-Ihn1nZcGIswJ5XGbgFAvVumOgWpvIjBX9jiRlIl46uQG9vJOF51ViBYHF95rEZupuyQbEmhLaDPLQlU7fUTsBg==" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.2.5.tgz", + "integrity": "sha512-cD8A/zJlm6fdJOk6DqPUV8mcpyJkRz2x2R+/fYcWDYG3oWbG7/L7Yl/WqQ1VZCjnL9OTIMAn6c+BC5Eru4sQEw==" }, "@mapbox/unitbezier": { "version": "0.0.0", @@ -9367,6 +890,11 @@ } } }, + "@plotly/d3": { + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@plotly/d3/-/d3-3.5.18.tgz", + "integrity": "sha512-4xT7I58TN+jQoTFABcilva8MfYUtg3pyIVkZsTKOk69IuRSuTCPeqE0abKRpz5GPMS55XggBu2fNf6nhTJ4Nqw==" + }, "@plotly/d3-sankey": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/@plotly/d3-sankey/-/d3-sankey-0.7.2.tgz", @@ -9421,43 +949,43 @@ } }, "@turf/area": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@turf/area/-/area-6.0.1.tgz", - "integrity": "sha512-Zv+3N1ep9P5JvR0YOYagLANyapGWQBh8atdeR3bKpWcigVXFsEKNUw03U/5xnh+cKzm7yozHD6MFJkqQv55y0g==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@turf/area/-/area-6.3.0.tgz", + "integrity": "sha512-Y1cYyAQ2fk94npdgOeMF4msc2uabHY1m7A7ntixf1I8rkyDd6/iHh1IMy1QsM+VZXAEwDwsXhu+ZFYd3Jkeg4A==", "requires": { - "@turf/helpers": "6.x", - "@turf/meta": "6.x" + "@turf/helpers": "^6.3.0", + "@turf/meta": "^6.3.0" } }, "@turf/bbox": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.0.1.tgz", - "integrity": "sha512-EGgaRLettBG25Iyx7VyUINsPpVj1x3nFQFiGS3ER8KCI1MximzNLsam3eXRabqQDjyAKyAE1bJ4EZEpGvspQxw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.3.0.tgz", + "integrity": "sha512-N4ue5Xopu1qieSHP2MA/CJGWHPKaTrVXQJjzHRNcY1vtsO126xbSaJhWUrFc5x5vVkXp0dcucGryO0r5m4o/KA==", "requires": { - "@turf/helpers": "6.x", - "@turf/meta": "6.x" + "@turf/helpers": "^6.3.0", + "@turf/meta": "^6.3.0" } }, "@turf/centroid": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-6.0.2.tgz", - "integrity": "sha512-auyDauOtC4eddH7GC3CHFTDu2PKhpSeKCRhwhHhXtJqn2dWCJQNIoCeJRmfXRIbzCWhWvgvQafvvhq8HNvmvWw==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-6.3.0.tgz", + "integrity": "sha512-7KTyqhUEqXDoyR/nf/jAXiW8ZVszEnrp5XZkgYyrf2GWdSovSO0iCN1J3bE2jkJv7IWyeDmGYL61GGzuTSZS2Q==", "requires": { - "@turf/helpers": "6.x", - "@turf/meta": "6.x" + "@turf/helpers": "^6.3.0", + "@turf/meta": "^6.3.0" } }, "@turf/helpers": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.1.4.tgz", - "integrity": "sha512-vJvrdOZy1ngC7r3MDA7zIGSoIgyrkWcGnNIEaqn/APmw+bVLF2gAW7HIsdTxd12s5wQMqEpqIQrmrbRRZ0xC7g==" + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.3.0.tgz", + "integrity": "sha512-kr6KuD4Z0GZ30tblTEvi90rvvVNlKieXuMC8CTzE/rVQb0/f/Cb29zCXxTD7giQTEQY/P2nRW23wEqqyNHulCg==" }, "@turf/meta": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.0.2.tgz", - "integrity": "sha512-VA7HJkx7qF1l3+GNGkDVn2oXy4+QoLP6LktXAaZKjuT1JI0YESat7quUkbCMy4zP9lAUuvS4YMslLyTtr919FA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.3.0.tgz", + "integrity": "sha512-qBJjaAJS9H3ap0HlGXyF/Bzfl0qkA9suafX/jnDsZvWMfVLt+s+o6twKrXOGk5t7nnNON2NFRC8+czxpu104EQ==", "requires": { - "@turf/helpers": "6.x" + "@turf/helpers": "^6.3.0" } }, "@types/backbone": { @@ -9752,16 +1280,6 @@ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true }, - "3d-view": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/3d-view/-/3d-view-2.0.0.tgz", - "integrity": "sha1-gxrpQtdQjFCAHj4G+v4ejFdOF74=", - "requires": { - "matrix-camera-controller": "^2.1.1", - "orbit-camera-controller": "^4.0.0", - "turntable-camera-controller": "^3.0.0" - } - }, "a-big-triangle": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/a-big-triangle/-/a-big-triangle-1.0.3.tgz", @@ -9978,9 +1496,9 @@ "dev": true }, "binary-search-bounds": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.4.tgz", - "integrity": "sha512-2hg5kgdKql5ClF2ErBcSx0U5bnl5hgS4v7wMnLFodyR47yMtj2w+UAZB+0CiqyHct2q543i7Bi4/aMIegorCCg==" + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.5.tgz", + "integrity": "sha512-H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA==" }, "bit-twiddle": { "version": "1.0.2", @@ -9995,10 +1513,62 @@ "clamp": "^1.0.1" } }, + "bl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", + "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + } + } + }, "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, "boundary-cells": { "version": "2.0.2", @@ -10386,9 +1956,9 @@ "dev": true }, "colormap": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/colormap/-/colormap-2.3.1.tgz", - "integrity": "sha512-TEzNlo/qYp6pBoR2SK9JiV+DG1cmUcVO/+DEJqVPSHIKNlWh5L5L4FYog7b/h0bAnhKhpOAvx/c1dFp2QE9sFw==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/colormap/-/colormap-2.3.2.tgz", + "integrity": "sha512-jDOjaoEEmA9AgA11B/jCSAvYE95r3wRoAyTf3LEHGiUVlNHJaL1mRkf5AyLSpQBVGfTEPwGEqCIzL+kgr2WgNA==", "requires": { "lerp": "^1.0.3" } @@ -10650,11 +2220,6 @@ "type": "^1.0.1" } }, - "d3": { - "version": "3.5.17", - "resolved": "https://registry.npmjs.org/d3/-/d3-3.5.17.tgz", - "integrity": "sha1-vEZ0gAQ3iyGjYMn8fPUjF5B2L7g=" - }, "d3-array": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", @@ -10735,6 +2300,14 @@ "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, "decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", @@ -10936,13 +2509,19 @@ "integrity": "sha1-ZOXxWdlxIWMYRby67K8nnDm1404=" }, "elementary-circuits-directed-graph": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/elementary-circuits-directed-graph/-/elementary-circuits-directed-graph-1.2.0.tgz", - "integrity": "sha512-eOQofnrNqebPtC29PvyNMGUBdMrIw5i8nOoC/2VOlSF84tf5+ZXnRkIk7TgdT22jFXK68CC7aA881KRmNYf/Pg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/elementary-circuits-directed-graph/-/elementary-circuits-directed-graph-1.3.1.tgz", + "integrity": "sha512-ZEiB5qkn2adYmpXGnJKkxT8uJHlW/mxmBpmeqawEHzPxh9HkLD4/1mFYX5l0On+f6rcPIt8/EWlRU2Vo3fX6dQ==", "requires": { "strongly-connected-components": "^1.0.1" } }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, "emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", @@ -11062,11 +2641,6 @@ "es6-symbol": "^3.1.1" } }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" - }, "es6-symbol": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", @@ -11233,9 +2807,9 @@ }, "dependencies": { "type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz", - "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==" + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" } } }, @@ -11618,22 +3192,6 @@ "resolved": "https://registry.npmjs.org/gl-constants/-/gl-constants-1.0.0.tgz", "integrity": "sha1-WXpQTjZHUP9QJTqjX43qevSl0jM=" }, - "gl-contour2d": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/gl-contour2d/-/gl-contour2d-1.1.7.tgz", - "integrity": "sha512-GdebvJ9DtT3pJDpoE+eU2q+Wo9S3MijPpPz5arZbhK85w2bARmpFpVfPaDlZqWkB644W3BlH8TVyvAo1KE4Bhw==", - "requires": { - "binary-search-bounds": "^2.0.4", - "cdt2d": "^1.0.0", - "clean-pslg": "^1.1.2", - "gl-buffer": "^2.1.2", - "gl-shader": "^4.2.1", - "glslify": "^7.0.0", - "iota-array": "^1.0.0", - "ndarray": "^1.0.18", - "surface-nets": "^1.0.2" - } - }, "gl-error3d": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/gl-error3d/-/gl-error3d-1.0.16.tgz", @@ -11666,9 +3224,9 @@ } }, "gl-heatmap2d": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/gl-heatmap2d/-/gl-heatmap2d-1.1.0.tgz", - "integrity": "sha512-0FLXyxv6UBCzzhi4Q2u+9fUs6BX1+r5ZztFe27VikE9FUVw7hZiuSHmgDng92EpydogcSYHXCIK8+58RagODug==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/gl-heatmap2d/-/gl-heatmap2d-1.1.1.tgz", + "integrity": "sha512-6Vo1fPIB1vQFWBA/MR6JAA16XuQuhwvZRbSjYEq++m4QV33iqjGS2HcVIRfJGX+fomd5eiz6bwkVZcKm69zQPw==", "requires": { "binary-search-bounds": "^2.0.4", "gl-buffer": "^2.1.2", @@ -12153,15 +3711,6 @@ "xtend": "^4.0.0" }, "dependencies": { - "bl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", - "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -12179,28 +3728,19 @@ "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } } }, "through2": { @@ -12345,7 +3885,6 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } @@ -12360,9 +3899,9 @@ } }, "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "ignore": { "version": "5.1.8", @@ -12380,11 +3919,6 @@ "quantize": "^1.0.2" } }, - "image-size": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.7.5.tgz", - "integrity": "sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g==" - }, "import-local": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", @@ -12863,6 +4397,11 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", @@ -13258,6 +4797,11 @@ } } }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, "mumath": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/mumath/-/mumath-3.3.4.tgz", @@ -13283,6 +4827,11 @@ "integrity": "sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==", "dev": true }, + "native-promise-only": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz", + "integrity": "sha1-IKMYwwy0X3H+et+/eyHJnBRy7xE=" + }, "ndarray": { "version": "1.0.19", "resolved": "https://registry.npmjs.org/ndarray/-/ndarray-1.0.19.tgz", @@ -13349,6 +4898,16 @@ "typedarray-pool": "^1.0.0" } }, + "needle": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz", + "integrity": "sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg==", + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, "neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -13774,10 +5333,11 @@ } }, "plotly.js": { - "version": "1.58.4", - "resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-1.58.4.tgz", - "integrity": "sha512-hdt/aEvkPjS1HJ7tJKcPqsqi9ErEZPhUFs4d2ANTLeBim+AmVcHzS1rtwr7ZrVCINgliW/+92u81omJoy+lbUw==", + "version": "2.0.0-rc.2", + "resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-2.0.0-rc.2.tgz", + "integrity": "sha512-0opKITvzle8UNmabQnXbDoMJ8ftkL1XNrYA8pWfqwDrGMS4LoT9swN+9G4fWXFDevhLpXguGhgNx8CWfeHSdlA==", "requires": { + "@plotly/d3": "^3.5.18", "@plotly/d3-sankey": "0.7.2", "@plotly/d3-sankey-circular": "0.33.1", "@plotly/point-cluster": "^3.1.9", @@ -13792,18 +5352,15 @@ "color-rgba": "2.1.1", "convex-hull": "^1.0.3", "country-regex": "^1.1.0", - "d3": "^3.5.17", "d3-force": "^1.2.1", "d3-hierarchy": "^1.1.9", "d3-interpolate": "^1.4.0", "d3-time-format": "^2.2.3", "delaunay-triangulate": "^1.1.6", - "es6-promise": "^4.2.8", "fast-isnumeric": "^1.1.4", "gl-cone3d": "^1.5.2", - "gl-contour2d": "^1.1.7", "gl-error3d": "^1.0.16", - "gl-heatmap2d": "^1.1.0", + "gl-heatmap2d": "^1.1.1", "gl-line3d": "1.2.1", "gl-mat4": "^1.2.0", "gl-mesh3d": "^2.3.1", @@ -13819,25 +5376,25 @@ "glslify": "^7.1.1", "has-hover": "^1.0.1", "has-passive-events": "^1.0.0", - "image-size": "^0.7.5", "is-mobile": "^2.2.2", "mapbox-gl": "1.10.1", "matrix-camera-controller": "^2.1.3", "mouse-change": "^1.4.0", "mouse-event-offset": "^3.0.2", "mouse-wheel": "^1.2.0", + "native-promise-only": "^0.8.1", "ndarray": "^1.0.19", "ndarray-linear-interpolate": "^1.0.0", "parse-svg-path": "^0.1.2", "polybooljs": "^1.2.0", + "probe-image-size": "^7.1.0", "regl": "^1.6.1", "regl-error2d": "^2.0.11", - "regl-line2d": "^3.0.18", - "regl-scatter2d": "^3.2.1", - "regl-splom": "^1.0.12", + "regl-line2d": "^3.1.0", + "regl-scatter2d": "^3.2.3", + "regl-splom": "^1.0.14", "right-now": "^1.0.0", "robust-orientation": "^1.1.3", - "sane-topojson": "^4.0.0", "strongly-connected-components": "^1.0.1", "superscript-text": "^1.0.0", "svg-path-sdf": "^1.1.3", @@ -13988,6 +5545,16 @@ "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", "dev": true }, + "probe-image-size": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-7.1.1.tgz", + "integrity": "sha512-lvpHKqtino5SSrFEKxFncco8raLywljcLbjcE35VIRl5O+u1qLXenNaEfnopYdJgN4PPvvBxdr8b7sEUTvfY/w==", + "requires": { + "lodash.merge": "^4.6.2", + "needle": "^2.5.2", + "stream-parser": "~0.3.1" + } + }, "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -14006,9 +5573,9 @@ "dev": true }, "protocol-buffers-schema": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.4.0.tgz", - "integrity": "sha512-G/2kcamPF2S49W5yaMGdIpkG6+5wZF0fzBteLKgEHjbNzqjZQ85aAs1iJGto31EJaSTkNvHs5IXuHSaTLWBAiA==" + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.5.1.tgz", + "integrity": "sha512-YVCvdhxWNDP8/nJDyXLuM+UFsuPk4+1PB7WGPVDzm3HTHbzFLxQYeW2iZpS4mmnXrQJGBzt230t/BbEb7PrQaw==" }, "prr": { "version": "1.0.1", @@ -14254,9 +5821,9 @@ } }, "regl-scatter2d": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/regl-scatter2d/-/regl-scatter2d-3.2.1.tgz", - "integrity": "sha512-qxUCK5kXuoVZin2gPLXkgkBfRr3XLobVgEfn5N0fiprsb/ncTCtSNVBqP0EJgNb115R+FXte9LKA9YrFx7uBnA==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/regl-scatter2d/-/regl-scatter2d-3.2.3.tgz", + "integrity": "sha512-wURiMVjNrcBoED0SMYH9Accs0CovdnBWWuzH/WgT0kuJ3kDzia1vhmEUA2JZ/beozalARkFAy/C2K/4Nd1eZqQ==", "requires": { "@plotly/point-cluster": "^3.1.9", "array-range": "^1.0.1", @@ -14277,9 +5844,9 @@ } }, "regl-splom": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/regl-splom/-/regl-splom-1.0.12.tgz", - "integrity": "sha512-LliMmAQ6wJFuPiLxZgYOFOzjhWcrIWPbS3Vf763Twl6R8eKpuUyRHZ54q+hxWGYwICHoPCBKMs7pVAJi8Iv7/w==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/regl-splom/-/regl-splom-1.0.14.tgz", + "integrity": "sha512-OiLqjmPRYbd7kDlHC6/zDf6L8lxgDC65BhC8JirhP4ykrK4x22ZyS+BnY8EUinXKDeMgmpRwCvUmk7BK4Nweuw==", "requires": { "array-bounds": "^1.0.1", "array-range": "^1.0.1", @@ -14288,7 +5855,7 @@ "parse-rect": "^1.2.0", "pick-by-alias": "^1.2.0", "raf": "^3.4.1", - "regl-scatter2d": "^3.1.9" + "regl-scatter2d": "^3.2.3" } }, "repeat-string": { @@ -14499,13 +6066,12 @@ "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "sane-topojson": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/sane-topojson/-/sane-topojson-4.0.0.tgz", - "integrity": "sha512-bJILrpBboQfabG3BNnHI2hZl52pbt80BE09u4WhnrmzuF2JbMKZdl62G5glXskJ46p+gxE2IzOwGj/awR4g8AA==" + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, "schema-utils": { "version": "2.7.1", @@ -14825,16 +6391,34 @@ "escodegen": "^1.11.1" } }, + "stream-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz", + "integrity": "sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=", + "requires": { + "debug": "2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, "stream-shift": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, "string-split-by": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/string-split-by/-/string-split-by-1.0.0.tgz", @@ -14901,6 +6485,11 @@ "define-properties": "^1.1.3" } }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -14957,9 +6546,9 @@ } }, "supercluster": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.0.tgz", - "integrity": "sha512-LDasImUAFMhTqhK+cUXfy9C2KTUqJ3gucLjmNLNFmKWOnDUBxLFLH9oKuXOTCLveecmxh8fbk8kgh6Q0gsfe2w==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.3.tgz", + "integrity": "sha512-7+bR4FbF5SYsmkHfDp61QiwCKtwNDyPsddk9TzfsDA5DQr5Goii5CVD2SXjglweFCxjrzVZf945ahqYfUIk8UA==", "requires": { "kdbush": "^3.0.0" } @@ -14994,9 +6583,9 @@ "integrity": "sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==" }, "svg-path-bounds": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/svg-path-bounds/-/svg-path-bounds-1.0.1.tgz", - "integrity": "sha1-v0WLeDcmv1NDG0Yz8nkvYHSNn3Q=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/svg-path-bounds/-/svg-path-bounds-1.0.2.tgz", + "integrity": "sha512-H4/uAgLWrppIC0kHsb2/dWUYSmb4GE5UqH06uqWBcg6LBjX2fu0A8+JrO2/FJPZiSsNOKZAhyFFgsLTdYUvSqQ==", "requires": { "abs-svg-path": "^0.1.1", "is-svg-path": "^1.0.1", @@ -15179,9 +6768,9 @@ } }, "to-float32": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-float32/-/to-float32-1.0.1.tgz", - "integrity": "sha512-nOy2WSwae3xhZbc+05xiCuU3ZPPmH0L4Rg4Q1qiOGFSuNSCTB9nVJaGgGl3ZScxAclX/L8hJuDHJGDAzbfuKCQ==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/to-float32/-/to-float32-1.1.0.tgz", + "integrity": "sha512-keDnAusn/vc+R3iEiSDw8TOF7gPiTLdK1ArvWtYbJQiVfmRg6i/CAvbKq3uIS0vWroAC7ZecN3DjQKw3aSklUg==" }, "to-px": { "version": "1.0.1", @@ -15663,13 +7252,13 @@ } }, "vt-pbf": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.1.tgz", - "integrity": "sha512-pHjWdrIoxurpmTcbfBWXaPwSmtPAHS105253P1qyEfSTV2HJddqjM+kIHquaT/L6lVJIk9ltTGc0IxR/G47hYA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.2.tgz", + "integrity": "sha512-2+WbhabeHzcCfyw4KpxlB1DD1Kvg+aJRgNFBetGww3TnSX/YMfkvJBt8/+1cz9aF4mEgzcc8poeoMclK27xRjg==", "requires": { "@mapbox/point-geometry": "0.1.0", "@mapbox/vector-tile": "^1.3.1", - "pbf": "^3.0.5" + "pbf": "^3.2.1" } }, "watchpack": { diff --git a/packages/javascript/jupyterlab-plotly/package.json b/packages/javascript/jupyterlab-plotly/package.json index 986522e28a..73747035c4 100644 --- a/packages/javascript/jupyterlab-plotly/package.json +++ b/packages/javascript/jupyterlab-plotly/package.json @@ -65,7 +65,7 @@ "@lumino/messaging": "^1.2.3", "@lumino/widgets": "^1.8.1", "lodash": "^4.17.4", - "plotly.js": "^1.58.4" + "plotly.js": "^2.0.0-rc.2" }, "jupyterlab": { "extension": "lib/jupyterlab-plugin", diff --git a/packages/python/plotly/codegen/resources/plot-schema.json b/packages/python/plotly/codegen/resources/plot-schema.json index 7552e48e7d..301b662e62 100644 --- a/packages/python/plotly/codegen/resources/plot-schema.json +++ b/packages/python/plotly/codegen/resources/plot-schema.json @@ -1,72943 +1,65302 @@ { - "defs": { - "valObjects": { - "data_array": { - "description": "An {array} of data. The value MUST be an {array}, or we ignore it. Note that typed arrays (e.g. Float32Array) are supported.", - "requiredOpts": [], - "otherOpts": [ - "dflt" - ] - }, - "enumerated": { - "description": "Enumerated value type. The available values are listed in `values`.", - "requiredOpts": [ - "values" - ], - "otherOpts": [ - "dflt", - "coerceNumber", - "arrayOk" - ] - }, - "boolean": { - "description": "A boolean (true/false) value.", - "requiredOpts": [], - "otherOpts": [ - "dflt" - ] - }, - "number": { - "description": "A number or a numeric value (e.g. a number inside a string). When applicable, values greater (less) than `max` (`min`) are coerced to the `dflt`.", - "requiredOpts": [], - "otherOpts": [ - "dflt", - "min", - "max", - "arrayOk" - ] - }, - "integer": { - "description": "An integer or an integer inside a string. When applicable, values greater (less) than `max` (`min`) are coerced to the `dflt`.", - "requiredOpts": [], - "otherOpts": [ - "dflt", - "min", - "max", - "arrayOk" - ] - }, - "string": { - "description": "A string value. Numbers are converted to strings except for attributes with `strict` set to true.", - "requiredOpts": [], - "otherOpts": [ - "dflt", - "noBlank", - "strict", - "arrayOk", - "values" - ] - }, - "color": { - "description": "A string describing color. Supported formats: - hex (e.g. '#d3d3d3') - rgb (e.g. 'rgb(255, 0, 0)') - rgba (e.g. 'rgb(255, 0, 0, 0.5)') - hsl (e.g. 'hsl(0, 100%, 50%)') - hsv (e.g. 'hsv(0, 100%, 100%)') - named colors (full list: http://www.w3.org/TR/css3-color/#svg-color)", - "requiredOpts": [], - "otherOpts": [ - "dflt", - "arrayOk" - ] - }, - "colorlist": { - "description": "A list of colors. Must be an {array} containing valid colors.", - "requiredOpts": [], - "otherOpts": [ - "dflt" - ] - }, - "colorscale": { - "description": "A Plotly colorscale either picked by a name: (any of Greys, YlGnBu, Greens, YlOrRd, Bluered, RdBu, Reds, Blues, Picnic, Rainbow, Portland, Jet, Hot, Blackbody, Earth, Electric, Viridis, Cividis ) customized as an {array} of 2-element {arrays} where the first element is the normalized color level value (starting at *0* and ending at *1*), and the second item is a valid color string.", - "requiredOpts": [], - "otherOpts": [ - "dflt" - ] - }, - "angle": { - "description": "A number (in degree) between -180 and 180.", - "requiredOpts": [], - "otherOpts": [ - "dflt" - ] - }, - "subplotid": { - "description": "An id string of a subplot type (given by dflt), optionally followed by an integer >1. e.g. if dflt='geo', we can have 'geo', 'geo2', 'geo3', ...", - "requiredOpts": [ - "dflt" - ], - "otherOpts": [ - "regex" - ] - }, - "flaglist": { - "description": "A string representing a combination of flags (order does not matter here). Combine any of the available `flags` with *+*. (e.g. ('lines+markers')). Values in `extras` cannot be combined.", - "requiredOpts": [ - "flags" - ], - "otherOpts": [ - "dflt", - "extras", - "arrayOk" - ] - }, - "any": { - "description": "Any type.", - "requiredOpts": [], - "otherOpts": [ - "dflt", - "values", - "arrayOk" - ] - }, - "info_array": { - "description": "An {array} of plot information.", - "requiredOpts": [ - "items" - ], - "otherOpts": [ - "dflt", - "freeLength", - "dimensions" - ] - } + "defs": { + "valObjects": { + "data_array": { + "description": "An {array} of data. The value MUST be an {array}, or we ignore it. Note that typed arrays (e.g. Float32Array) are supported.", + "requiredOpts": [], + "otherOpts": [ + "dflt" + ] + }, + "enumerated": { + "description": "Enumerated value type. The available values are listed in `values`.", + "requiredOpts": [ + "values" + ], + "otherOpts": [ + "dflt", + "coerceNumber", + "arrayOk" + ] + }, + "boolean": { + "description": "A boolean (true/false) value.", + "requiredOpts": [], + "otherOpts": [ + "dflt" + ] + }, + "number": { + "description": "A number or a numeric value (e.g. a number inside a string). When applicable, values greater (less) than `max` (`min`) are coerced to the `dflt`.", + "requiredOpts": [], + "otherOpts": [ + "dflt", + "min", + "max", + "arrayOk" + ] + }, + "integer": { + "description": "An integer or an integer inside a string. When applicable, values greater (less) than `max` (`min`) are coerced to the `dflt`.", + "requiredOpts": [], + "otherOpts": [ + "dflt", + "min", + "max", + "arrayOk" + ] + }, + "string": { + "description": "A string value. Numbers are converted to strings except for attributes with `strict` set to true.", + "requiredOpts": [], + "otherOpts": [ + "dflt", + "noBlank", + "strict", + "arrayOk", + "values" + ] + }, + "color": { + "description": "A string describing color. Supported formats: - hex (e.g. '#d3d3d3') - rgb (e.g. 'rgb(255, 0, 0)') - rgba (e.g. 'rgb(255, 0, 0, 0.5)') - hsl (e.g. 'hsl(0, 100%, 50%)') - hsv (e.g. 'hsv(0, 100%, 100%)') - named colors (full list: http://www.w3.org/TR/css3-color/#svg-color)", + "requiredOpts": [], + "otherOpts": [ + "dflt", + "arrayOk" + ] + }, + "colorlist": { + "description": "A list of colors. Must be an {array} containing valid colors.", + "requiredOpts": [], + "otherOpts": [ + "dflt" + ] + }, + "colorscale": { + "description": "A Plotly colorscale either picked by a name: (any of Greys, YlGnBu, Greens, YlOrRd, Bluered, RdBu, Reds, Blues, Picnic, Rainbow, Portland, Jet, Hot, Blackbody, Earth, Electric, Viridis, Cividis ) customized as an {array} of 2-element {arrays} where the first element is the normalized color level value (starting at *0* and ending at *1*), and the second item is a valid color string.", + "requiredOpts": [], + "otherOpts": [ + "dflt" + ] + }, + "angle": { + "description": "A number (in degree) between -180 and 180.", + "requiredOpts": [], + "otherOpts": [ + "dflt" + ] + }, + "subplotid": { + "description": "An id string of a subplot type (given by dflt), optionally followed by an integer >1. e.g. if dflt='geo', we can have 'geo', 'geo2', 'geo3', ...", + "requiredOpts": [ + "dflt" + ], + "otherOpts": [ + "regex" + ] + }, + "flaglist": { + "description": "A string representing a combination of flags (order does not matter here). Combine any of the available `flags` with *+*. (e.g. ('lines+markers')). Values in `extras` cannot be combined.", + "requiredOpts": [ + "flags" + ], + "otherOpts": [ + "dflt", + "extras", + "arrayOk" + ] + }, + "any": { + "description": "Any type.", + "requiredOpts": [], + "otherOpts": [ + "dflt", + "values", + "arrayOk" + ] + }, + "info_array": { + "description": "An {array} of plot information.", + "requiredOpts": [ + "items" + ], + "otherOpts": [ + "dflt", + "freeLength", + "dimensions" + ] + } + }, + "metaKeys": [ + "_isSubplotObj", + "_isLinkedToArray", + "_arrayAttrRegexps", + "_deprecated", + "description", + "role", + "editType", + "impliedEdits" + ], + "editType": { + "traces": { + "valType": "flaglist", + "extras": [ + "none" + ], + "flags": [ + "calc", + "clearAxisTypes", + "plot", + "style", + "markerSize", + "colorbars" + ], + "description": "trace attributes should include an `editType` string matching this flaglist. *calc* is the most extensive: a full (re)plot starting by clearing `gd.calcdata` to force it to be regenerated *clearAxisTypes* resets the types of the axes this trace is on, because new data could cause the automatic axis type detection to change. Log type will not be cleared, as that is never automatically chosen so must have been user-specified. *plot* (re)plots but without first clearing `gd.calcdata`. *style* only calls `module.style` (or module.editStyle) for all trace modules and redraws the legend. *markerSize* is like *style*, but propagate axis-range changes due to scatter `marker.size` *colorbars* only redraws colorbars." + }, + "layout": { + "valType": "flaglist", + "extras": [ + "none" + ], + "flags": [ + "calc", + "plot", + "legend", + "ticks", + "axrange", + "layoutstyle", + "modebar", + "camera", + "arraydraw", + "colorbars" + ], + "description": "layout attributes should include an `editType` string matching this flaglist. *calc* is the most extensive: a full (re)plot starting by clearing `gd.calcdata` to force it to be regenerated *plot* (re)plots but without first clearing `gd.calcdata`. *legend* only redraws the legend. *ticks* only redraws axis ticks, labels, and gridlines. *axrange* minimal sequence when updating axis ranges. *layoutstyle* reapplies global and SVG cartesian axis styles. *modebar* just updates the modebar. *camera* just updates the camera settings for gl3d scenes. *arraydraw* allows component arrays to invoke the redraw routines just for the component(s) that changed. *colorbars* only redraws colorbars." + } + }, + "impliedEdits": { + "description": "Sometimes when an attribute is changed, other attributes must be altered as well in order to achieve the intended result. For example, when `range` is specified, it is important to set `autorange` to `false` or the new `range` value would be lost in the redraw. `impliedEdits` is the mechanism to do this: `impliedEdits: {autorange: false}`. Each key is a relative paths to the attribute string to change, using *^* to ascend into the parent container, for example `range[0]` has `impliedEdits: {*^autorange*: false}`. A value of `undefined` means that the attribute will not be changed, but its previous value should be recorded in case we want to reverse this change later. For example, `autorange` has `impliedEdits: {*range[0]*: undefined, *range[1]*:undefined} because the range will likely be changed by redraw." + } + }, + "traces": { + "scatter": { + "meta": { + "description": "The scatter trace type encompasses line charts, scatter charts, text charts, and bubble charts. The data visualized as scatter point or lines is set in `x` and `y`. Text (appearing either on the chart or on hover only) is via `text`. Bubble charts are achieved by setting `marker.size` and/or `marker.color` to numerical arrays." + }, + "categories": [ + "cartesian", + "svg", + "symbols", + "errorBarsOK", + "showLegend", + "scatter-like", + "zoomScale" + ], + "animatable": true, + "type": "scatter", + "attributes": { + "type": "scatter", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "showlegend": { + "valType": "boolean", + "dflt": true, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "anim": true, + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "anim": true, + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "selectedpoints": { + "valType": "any", + "editType": "calc", + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "x": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "anim": true, + "description": "Sets the x coordinates." + }, + "x0": { + "valType": "any", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "anim": true, + "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step." + }, + "dx": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "anim": true, + "description": "Sets the x coordinate step. See `x0` for more info." + }, + "y": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "anim": true, + "description": "Sets the y coordinates." + }, + "y0": { + "valType": "any", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "anim": true, + "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step." + }, + "dy": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "anim": true, + "description": "Sets the y coordinate step. See `y0` for more info." + }, + "xperiod": { + "valType": "any", + "dflt": 0, + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." + }, + "yperiod": { + "valType": "any", + "dflt": 0, + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." + }, + "xperiod0": { + "valType": "any", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." + }, + "yperiod0": { + "valType": "any", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." + }, + "xperiodalignment": { + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ], + "dflt": "middle", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis." + }, + "yperiodalignment": { + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ], + "dflt": "middle", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis." + }, + "xhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `x` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `xaxis.hoverformat`." + }, + "yhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `y` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `yaxis.hoverformat`." + }, + "stackgroup": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Set several scatter traces (on the same subplot) to the same stackgroup in order to add their y values (or their x values if `orientation` is *h*). If blank or omitted this trace will not be stacked. Stacking also turns `fill` on by default, using *tonexty* (*tonextx*) if `orientation` is *h* (*v*) and sets the default `mode` to *lines* irrespective of point count. You can only stack on a numeric (linear or log) axis. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order." + }, + "orientation": { + "valType": "enumerated", + "values": [ + "v", + "h" + ], + "editType": "calc", + "description": "Only relevant when `stackgroup` is used, and only the first `orientation` found in the `stackgroup` will be used - including if `visible` is *legendonly* but not if it is `false`. Sets the stacking direction. With *v* (*h*), the y (x) values of subsequent traces are added. Also affects the default value of `fill`." + }, + "groupnorm": { + "valType": "enumerated", + "values": [ + "", + "fraction", + "percent" + ], + "dflt": "", + "editType": "calc", + "description": "Only relevant when `stackgroup` is used, and only the first `groupnorm` found in the `stackgroup` will be used - including if `visible` is *legendonly* but not if it is `false`. Sets the normalization for the sum of this `stackgroup`. With *fraction*, the value of each trace at each location is divided by the sum of all trace values at that location. *percent* is the same but multiplied by 100 to show percentages. If there are multiple subplots, or multiple `stackgroup`s on one subplot, each will be normalized within its own set." + }, + "stackgaps": { + "valType": "enumerated", + "values": [ + "infer zero", + "interpolate" + ], + "dflt": "infer zero", + "editType": "calc", + "description": "Only relevant when `stackgroup` is used, and only the first `stackgaps` found in the `stackgroup` will be used - including if `visible` is *legendonly* but not if it is `false`. Determines how we handle locations at which other traces in this group have data but this one does not. With *infer zero* we insert a zero at these locations. With *interpolate* we linearly interpolate between existing values, and extrapolate a constant beyond the existing values." + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." + }, + "texttemplate": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. ", + "arrayOk": true + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "style", + "description": "Sets hover text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." + }, + "mode": { + "valType": "flaglist", + "flags": [ + "lines", + "markers", + "text" + ], + "extras": [ + "none" + ], + "editType": "calc", + "description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover. If there are less than 20 points and the trace is not stacked then the default is *lines+markers*. Otherwise, *lines*." + }, + "hoveron": { + "valType": "flaglist", + "flags": [ + "points", + "fills" + ], + "editType": "style", + "description": "Do the hover effects highlight individual points (markers or line points) or do they highlight filled regions? If the fill is *toself* or *tonext* and there are no markers or text, then the default is *fills*, otherwise it is *points*." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "line": { + "color": { + "valType": "color", + "editType": "style", + "anim": true, + "description": "Sets the line color." + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "style", + "anim": true, + "description": "Sets the line width (in px)." + }, + "shape": { + "valType": "enumerated", + "values": [ + "linear", + "spline", + "hv", + "vh", + "hvh", + "vhv" + ], + "dflt": "linear", + "editType": "plot", + "description": "Determines the line shape. With *spline* the lines are drawn using spline interpolation. The other available values correspond to step-wise line shapes." + }, + "smoothing": { + "valType": "number", + "min": 0, + "max": 1.3, + "dflt": 1, + "editType": "plot", + "description": "Has an effect only if `shape` is set to *spline* Sets the amount of smoothing. *0* corresponds to no smoothing (equivalent to a *linear* shape)." + }, + "dash": { + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ], + "dflt": "solid", + "editType": "style", + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." + }, + "simplify": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Simplifies lines by removing nearly-collinear points. When transitioning lines, it may be desirable to disable this so that the number of points along the resulting SVG path is unaffected." + }, + "editType": "plot", + "role": "object" + }, + "connectgaps": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected." + }, + "cliponaxis": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not markers and text nodes are clipped about the subplot axes. To show markers and text nodes above axis lines and tick labels, make sure to set `xaxis.layer` and `yaxis.layer` to *below traces*." + }, + "fill": { + "valType": "enumerated", + "values": [ + "none", + "tozeroy", + "tozerox", + "tonexty", + "tonextx", + "toself", + "tonext" + ], + "editType": "calc", + "description": "Sets the area to fill with a solid color. Defaults to *none* unless this trace is stacked, then it gets *tonexty* (*tonextx*) if `orientation` is *v* (*h*) Use with `fillcolor` if not *none*. *tozerox* and *tozeroy* fill to x=0 and y=0 respectively. *tonextx* and *tonexty* fill between the endpoints of this trace and the endpoints of the trace before it, connecting those endpoints with straight lines (to make a stacked area graph); if there is no trace before it, they behave like *tozerox* and *tozeroy*. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape. *tonext* fills the space between two traces if one completely encloses the other (eg consecutive contour lines), and behaves like *toself* if there is no trace before it. *tonext* should not be used if one trace does not enclose the other. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order." + }, + "fillcolor": { + "valType": "color", + "editType": "style", + "anim": true, + "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." + }, + "marker": { + "symbol": { + "valType": "enumerated", + "values": [ + 0, + "0", + "circle", + 100, + "100", + "circle-open", + 200, + "200", + "circle-dot", + 300, + "300", + "circle-open-dot", + 1, + "1", + "square", + 101, + "101", + "square-open", + 201, + "201", + "square-dot", + 301, + "301", + "square-open-dot", + 2, + "2", + "diamond", + 102, + "102", + "diamond-open", + 202, + "202", + "diamond-dot", + 302, + "302", + "diamond-open-dot", + 3, + "3", + "cross", + 103, + "103", + "cross-open", + 203, + "203", + "cross-dot", + 303, + "303", + "cross-open-dot", + 4, + "4", + "x", + 104, + "104", + "x-open", + 204, + "204", + "x-dot", + 304, + "304", + "x-open-dot", + 5, + "5", + "triangle-up", + 105, + "105", + "triangle-up-open", + 205, + "205", + "triangle-up-dot", + 305, + "305", + "triangle-up-open-dot", + 6, + "6", + "triangle-down", + 106, + "106", + "triangle-down-open", + 206, + "206", + "triangle-down-dot", + 306, + "306", + "triangle-down-open-dot", + 7, + "7", + "triangle-left", + 107, + "107", + "triangle-left-open", + 207, + "207", + "triangle-left-dot", + 307, + "307", + "triangle-left-open-dot", + 8, + "8", + "triangle-right", + 108, + "108", + "triangle-right-open", + 208, + "208", + "triangle-right-dot", + 308, + "308", + "triangle-right-open-dot", + 9, + "9", + "triangle-ne", + 109, + "109", + "triangle-ne-open", + 209, + "209", + "triangle-ne-dot", + 309, + "309", + "triangle-ne-open-dot", + 10, + "10", + "triangle-se", + 110, + "110", + "triangle-se-open", + 210, + "210", + "triangle-se-dot", + 310, + "310", + "triangle-se-open-dot", + 11, + "11", + "triangle-sw", + 111, + "111", + "triangle-sw-open", + 211, + "211", + "triangle-sw-dot", + 311, + "311", + "triangle-sw-open-dot", + 12, + "12", + "triangle-nw", + 112, + "112", + "triangle-nw-open", + 212, + "212", + "triangle-nw-dot", + 312, + "312", + "triangle-nw-open-dot", + 13, + "13", + "pentagon", + 113, + "113", + "pentagon-open", + 213, + "213", + "pentagon-dot", + 313, + "313", + "pentagon-open-dot", + 14, + "14", + "hexagon", + 114, + "114", + "hexagon-open", + 214, + "214", + "hexagon-dot", + 314, + "314", + "hexagon-open-dot", + 15, + "15", + "hexagon2", + 115, + "115", + "hexagon2-open", + 215, + "215", + "hexagon2-dot", + 315, + "315", + "hexagon2-open-dot", + 16, + "16", + "octagon", + 116, + "116", + "octagon-open", + 216, + "216", + "octagon-dot", + 316, + "316", + "octagon-open-dot", + 17, + "17", + "star", + 117, + "117", + "star-open", + 217, + "217", + "star-dot", + 317, + "317", + "star-open-dot", + 18, + "18", + "hexagram", + 118, + "118", + "hexagram-open", + 218, + "218", + "hexagram-dot", + 318, + "318", + "hexagram-open-dot", + 19, + "19", + "star-triangle-up", + 119, + "119", + "star-triangle-up-open", + 219, + "219", + "star-triangle-up-dot", + 319, + "319", + "star-triangle-up-open-dot", + 20, + "20", + "star-triangle-down", + 120, + "120", + "star-triangle-down-open", + 220, + "220", + "star-triangle-down-dot", + 320, + "320", + "star-triangle-down-open-dot", + 21, + "21", + "star-square", + 121, + "121", + "star-square-open", + 221, + "221", + "star-square-dot", + 321, + "321", + "star-square-open-dot", + 22, + "22", + "star-diamond", + 122, + "122", + "star-diamond-open", + 222, + "222", + "star-diamond-dot", + 322, + "322", + "star-diamond-open-dot", + 23, + "23", + "diamond-tall", + 123, + "123", + "diamond-tall-open", + 223, + "223", + "diamond-tall-dot", + 323, + "323", + "diamond-tall-open-dot", + 24, + "24", + "diamond-wide", + 124, + "124", + "diamond-wide-open", + 224, + "224", + "diamond-wide-dot", + 324, + "324", + "diamond-wide-open-dot", + 25, + "25", + "hourglass", + 125, + "125", + "hourglass-open", + 26, + "26", + "bowtie", + 126, + "126", + "bowtie-open", + 27, + "27", + "circle-cross", + 127, + "127", + "circle-cross-open", + 28, + "28", + "circle-x", + 128, + "128", + "circle-x-open", + 29, + "29", + "square-cross", + 129, + "129", + "square-cross-open", + 30, + "30", + "square-x", + 130, + "130", + "square-x-open", + 31, + "31", + "diamond-cross", + 131, + "131", + "diamond-cross-open", + 32, + "32", + "diamond-x", + 132, + "132", + "diamond-x-open", + 33, + "33", + "cross-thin", + 133, + "133", + "cross-thin-open", + 34, + "34", + "x-thin", + 134, + "134", + "x-thin-open", + 35, + "35", + "asterisk", + 135, + "135", + "asterisk-open", + 36, + "36", + "hash", + 136, + "136", + "hash-open", + 236, + "236", + "hash-dot", + 336, + "336", + "hash-open-dot", + 37, + "37", + "y-up", + 137, + "137", + "y-up-open", + 38, + "38", + "y-down", + 138, + "138", + "y-down-open", + 39, + "39", + "y-left", + 139, + "139", + "y-left-open", + 40, + "40", + "y-right", + 140, + "140", + "y-right-open", + 41, + "41", + "line-ew", + 141, + "141", + "line-ew-open", + 42, + "42", + "line-ns", + 142, + "142", + "line-ns-open", + 43, + "43", + "line-ne", + 143, + "143", + "line-ne-open", + 44, + "44", + "line-nw", + 144, + "144", + "line-nw-open", + 45, + "45", + "arrow-up", + 145, + "145", + "arrow-up-open", + 46, + "46", + "arrow-down", + 146, + "146", + "arrow-down-open", + 47, + "47", + "arrow-left", + 147, + "147", + "arrow-left-open", + 48, + "48", + "arrow-right", + 148, + "148", + "arrow-right-open", + 49, + "49", + "arrow-bar-up", + 149, + "149", + "arrow-bar-up-open", + 50, + "50", + "arrow-bar-down", + 150, + "150", + "arrow-bar-down-open", + 51, + "51", + "arrow-bar-left", + 151, + "151", + "arrow-bar-left-open", + 52, + "52", + "arrow-bar-right", + 152, + "152", + "arrow-bar-right-open" + ], + "dflt": "circle", + "arrayOk": true, + "editType": "style", + "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "arrayOk": true, + "editType": "style", + "anim": true, + "description": "Sets the marker opacity." + }, + "size": { + "valType": "number", + "min": 0, + "dflt": 6, + "arrayOk": true, + "editType": "calc", + "anim": true, + "description": "Sets the marker size (in px)." + }, + "maxdisplayed": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "plot", + "description": "Sets a maximum number of points to be drawn on the graph. *0* corresponds to no limit." + }, + "sizeref": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`." + }, + "sizemin": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points." + }, + "sizemode": { + "valType": "enumerated", + "values": [ + "diameter", + "area" + ], + "dflt": "diameter", + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels." + }, + "line": { + "width": { + "valType": "number", + "min": 0, + "arrayOk": true, + "editType": "style", + "anim": true, + "description": "Sets the width (in px) of the lines bounding the marker points." + }, + "editType": "calc", + "color": { + "valType": "color", + "arrayOk": true, + "editType": "style", + "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set.", + "anim": true + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "role": "object", + "widthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for width .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "gradient": { + "type": { + "valType": "enumerated", + "values": [ + "radial", + "horizontal", + "vertical", + "none" + ], + "arrayOk": true, + "dflt": "none", + "editType": "calc", + "description": "Sets the type of gradient used to fill the markers" + }, + "color": { + "valType": "color", + "arrayOk": true, + "editType": "calc", + "description": "Sets the final color of the gradient fill: the center color for radial, the right for horizontal, or the bottom for vertical." + }, + "editType": "calc", + "role": "object", + "typesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for type .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "editType": "calc", + "color": { + "valType": "color", + "arrayOk": true, + "editType": "style", + "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set.", + "anim": true + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "colorbars" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "colorbars" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "colorbars" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "colorbars" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "colorbars" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "colorbars" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "colorbars" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "colorbars" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "colorbars" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "colorbars" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "colorbars", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "colorbars", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "colorbars", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "colorbars", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "colorbars" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "colorbars", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "colorbars", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "colorbars" + }, + { + "valType": "any", + "editType": "colorbars" + } + ], + "editType": "colorbars", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "colorbars", + "name": { + "valType": "string", + "editType": "colorbars", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "colorbars", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "colorbars", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "colorbars", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "colorbars", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars" + }, + "editType": "colorbars", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "colorbars" + } + }, + "editType": "colorbars", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "role": "object", + "symbolsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for symbol .", + "editType": "none" + }, + "opacitysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for opacity .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "selected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "style", + "description": "Sets the marker opacity of selected points." + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the marker color of selected points." + }, + "size": { + "valType": "number", + "min": 0, + "editType": "style", + "description": "Sets the marker size of selected points." + }, + "editType": "style", + "role": "object" + }, + "textfont": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the text font color of selected points." + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "unselected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "style", + "description": "Sets the marker opacity of unselected points, applied only when a selection exists." + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the marker color of unselected points, applied only when a selection exists." + }, + "size": { + "valType": "number", + "min": 0, + "editType": "style", + "description": "Sets the marker size of unselected points, applied only when a selection exists." + }, + "editType": "style", + "role": "object" + }, + "textfont": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the text font color of unselected points, applied only when a selection exists." + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "textposition": { + "valType": "enumerated", + "values": [ + "top left", + "top center", + "top right", + "middle left", + "middle center", + "middle right", + "bottom left", + "bottom center", + "bottom right" + ], + "dflt": "middle center", + "arrayOk": true, + "editType": "calc", + "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates." + }, + "textfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "style", + "arrayOk": true + }, + "editType": "calc", + "description": "Sets the text font.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "error_x": { + "visible": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not this set of error bars is visible." + }, + "type": { + "valType": "enumerated", + "values": [ + "percent", + "constant", + "sqrt", + "data" + ], + "editType": "calc", + "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`." + }, + "symmetric": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars." + }, + "array": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data." + }, + "arrayminus": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data." + }, + "value": { + "valType": "number", + "min": 0, + "dflt": 10, + "editType": "calc", + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars." + }, + "valueminus": { + "valType": "number", + "min": 0, + "dflt": 10, + "editType": "calc", + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars" + }, + "traceref": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "style" + }, + "tracerefminus": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "style" + }, + "copy_ystyle": { + "valType": "boolean", + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the stoke color of the error bars." + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "style", + "description": "Sets the thickness (in px) of the error bars." + }, + "width": { + "valType": "number", + "min": 0, + "editType": "plot", + "description": "Sets the width (in px) of the cross-bar at both ends of the error bars." + }, + "editType": "calc", + "_deprecated": { + "opacity": { + "valType": "number", + "editType": "style", + "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." + } + }, + "role": "object", + "arraysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for array .", + "editType": "none" + }, + "arrayminussrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for arrayminus .", + "editType": "none" + } + }, + "error_y": { + "visible": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not this set of error bars is visible." + }, + "type": { + "valType": "enumerated", + "values": [ + "percent", + "constant", + "sqrt", + "data" + ], + "editType": "calc", + "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`." + }, + "symmetric": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars." + }, + "array": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data." + }, + "arrayminus": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data." + }, + "value": { + "valType": "number", + "min": 0, + "dflt": 10, + "editType": "calc", + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars." + }, + "valueminus": { + "valType": "number", + "min": 0, + "dflt": 10, + "editType": "calc", + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars" + }, + "traceref": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "style" + }, + "tracerefminus": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "style" + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the stoke color of the error bars." + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "style", + "description": "Sets the thickness (in px) of the error bars." + }, + "width": { + "valType": "number", + "min": 0, + "editType": "plot", + "description": "Sets the width (in px) of the cross-bar at both ends of the error bars." + }, + "editType": "calc", + "_deprecated": { + "opacity": { + "valType": "number", + "editType": "style", + "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." + } + }, + "role": "object", + "arraysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for array .", + "editType": "none" + }, + "arrayminussrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for arrayminus .", + "editType": "none" + } + }, + "xcalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `x` date data." + }, + "ycalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `y` date data." + }, + "xaxis": { + "valType": "subplotid", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." + }, + "yaxis": { + "valType": "subplotid", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "ysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for y .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "texttemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + }, + "textpositionsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for textposition .", + "editType": "none" + } + } + }, + "bar": { + "meta": { + "description": "The data visualized by the span of the bars is set in `y` if `orientation` is set th *v* (the default) and the labels are set in `x`. By setting `orientation` to *h*, the roles are interchanged." + }, + "categories": [ + "bar-like", + "cartesian", + "svg", + "bar", + "oriented", + "errorBarsOK", + "showLegend", + "zoomScale" + ], + "animatable": true, + "type": "bar", + "attributes": { + "type": "bar", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "showlegend": { + "valType": "boolean", + "dflt": true, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "anim": true, + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "anim": true, + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "selectedpoints": { + "valType": "any", + "editType": "calc", + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "x": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "anim": true, + "description": "Sets the x coordinates." + }, + "x0": { + "valType": "any", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "anim": true, + "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step." + }, + "dx": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "anim": true, + "description": "Sets the x coordinate step. See `x0` for more info." + }, + "y": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "anim": true, + "description": "Sets the y coordinates." + }, + "y0": { + "valType": "any", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "anim": true, + "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step." + }, + "dy": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "anim": true, + "description": "Sets the y coordinate step. See `y0` for more info." + }, + "xperiod": { + "valType": "any", + "dflt": 0, + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." + }, + "yperiod": { + "valType": "any", + "dflt": 0, + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." + }, + "xperiod0": { + "valType": "any", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." + }, + "yperiod0": { + "valType": "any", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." + }, + "xperiodalignment": { + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ], + "dflt": "middle", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis." + }, + "yperiodalignment": { + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ], + "dflt": "middle", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis." + }, + "xhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `x` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `xaxis.hoverformat`." + }, + "yhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `y` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `yaxis.hoverformat`." + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." + }, + "texttemplate": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `value` and `label`.", + "arrayOk": true + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "style", + "description": "Sets hover text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "textposition": { + "valType": "enumerated", + "values": [ + "inside", + "outside", + "auto", + "none" + ], + "dflt": "auto", + "arrayOk": true, + "editType": "calc", + "description": "Specifies the location of the `text`. *inside* positions `text` inside, next to the bar end (rotated and scaled if needed). *outside* positions `text` outside, next to the bar end (scaled if needed), unless there is another bar stacked on this one, then the text gets pushed inside. *auto* tries to position `text` inside the bar, but if the bar is too small and no bar is stacked on this one the text is moved outside. If *none*, no text appears." + }, + "insidetextanchor": { + "valType": "enumerated", + "values": [ + "end", + "middle", + "start" + ], + "dflt": "end", + "editType": "plot", + "description": "Determines if texts are kept at center or start/end points in `textposition` *inside* mode." + }, + "textangle": { + "valType": "angle", + "dflt": "auto", + "editType": "plot", + "description": "Sets the angle of the tick labels with respect to the bar. For example, a `tickangle` of -90 draws the tick labels vertically. With *auto* the texts may automatically be rotated to fit with the maximum size in bars." + }, + "textfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "style", + "arrayOk": true + }, + "editType": "calc", + "description": "Sets the font used for `text`.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "insidetextfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "style", + "arrayOk": true + }, + "editType": "calc", + "description": "Sets the font used for `text` lying inside the bar.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "outsidetextfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "style", + "arrayOk": true + }, + "editType": "calc", + "description": "Sets the font used for `text` lying outside the bar.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "constraintext": { + "valType": "enumerated", + "values": [ + "inside", + "outside", + "both", + "none" + ], + "dflt": "both", + "editType": "calc", + "description": "Constrain the size of text inside or outside a bar to be no larger than the bar itself." + }, + "cliponaxis": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether the text nodes are clipped about the subplot axes. To show the text nodes above axis lines and tick labels, make sure to set `xaxis.layer` and `yaxis.layer` to *below traces*." + }, + "orientation": { + "valType": "enumerated", + "values": [ + "v", + "h" + ], + "editType": "calc+clearAxisTypes", + "description": "Sets the orientation of the bars. With *v* (*h*), the value of the each bar spans along the vertical (horizontal)." + }, + "base": { + "valType": "any", + "dflt": null, + "arrayOk": true, + "editType": "calc", + "description": "Sets where the bar base is drawn (in position axis units). In *stack* or *relative* barmode, traces that set *base* will be excluded and drawn in *overlay* mode instead." + }, + "offset": { + "valType": "number", + "dflt": null, + "arrayOk": true, + "editType": "calc", + "description": "Shifts the position where the bar is drawn (in position axis units). In *group* barmode, traces that set *offset* will be excluded and drawn in *overlay* mode instead." + }, + "width": { + "valType": "number", + "dflt": null, + "min": 0, + "arrayOk": true, + "editType": "calc", + "description": "Sets the bar width (in position axis units)." + }, + "marker": { + "line": { + "width": { + "valType": "number", + "min": 0, + "arrayOk": true, + "editType": "style", + "anim": true, + "description": "Sets the width (in px) of the lines bounding the marker points.", + "dflt": 0 + }, + "editType": "calc", + "color": { + "valType": "color", + "arrayOk": true, + "editType": "style", + "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "role": "object", + "widthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for width .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "editType": "calc", + "color": { + "valType": "color", + "arrayOk": true, + "editType": "style", + "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "colorbars" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "colorbars" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "colorbars" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "colorbars" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "colorbars" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "colorbars" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "colorbars" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "colorbars" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "colorbars" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "colorbars" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "colorbars", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "colorbars", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "colorbars", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "colorbars", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "colorbars" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "colorbars", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "colorbars", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "colorbars" + }, + { + "valType": "any", + "editType": "colorbars" + } + ], + "editType": "colorbars", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "colorbars", + "name": { + "valType": "string", + "editType": "colorbars", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "colorbars", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "colorbars", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "colorbars", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "colorbars", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars" + }, + "editType": "colorbars", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "colorbars" + } + }, + "editType": "colorbars", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "opacity": { + "valType": "number", + "arrayOk": true, + "dflt": 1, + "min": 0, + "max": 1, + "editType": "style", + "description": "Sets the opacity of the bars." + }, + "pattern": { + "shape": { + "valType": "enumerated", + "values": [ + "", + "/", + "\\", + "x", + "-", + "|", + "+", + "." + ], + "dflt": "", + "arrayOk": true, + "editType": "style", + "description": "Sets the shape of the pattern fill. By default, no pattern is used for filling the area." + }, + "bgcolor": { + "valType": "color", + "arrayOk": true, + "editType": "style", + "description": "Sets the background color of the pattern fill. Defaults to a transparent background." + }, + "size": { + "valType": "number", + "min": 0, + "dflt": 8, + "arrayOk": true, + "editType": "style", + "description": "Sets the size of unit squares of the pattern fill in pixels, which corresponds to the interval of repetition of the pattern." + }, + "solidity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.3, + "arrayOk": true, + "editType": "style", + "description": "Sets the solidity of the pattern fill. Solidity is roughly the fraction of the area filled by the pattern. Solidity of 0 shows only the background color without pattern and solidty of 1 shows only the foreground color without pattern." + }, + "editType": "style", + "role": "object", + "shapesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for shape .", + "editType": "none" + }, + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "soliditysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for solidity .", + "editType": "none" + } + }, + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + }, + "opacitysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for opacity .", + "editType": "none" + } + }, + "offsetgroup": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up." + }, + "alignmentgroup": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently." + }, + "selected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "style", + "description": "Sets the marker opacity of selected points." + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the marker color of selected points." + }, + "editType": "style", + "role": "object" + }, + "textfont": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the text font color of selected points." + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "unselected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "style", + "description": "Sets the marker opacity of unselected points, applied only when a selection exists." + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the marker color of unselected points, applied only when a selection exists." + }, + "editType": "style", + "role": "object" + }, + "textfont": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the text font color of unselected points, applied only when a selection exists." + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "_deprecated": { + "bardir": { + "valType": "enumerated", + "editType": "calc", + "values": [ + "v", + "h" + ], + "description": "Renamed to `orientation`." + } + }, + "error_x": { + "visible": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not this set of error bars is visible." + }, + "type": { + "valType": "enumerated", + "values": [ + "percent", + "constant", + "sqrt", + "data" + ], + "editType": "calc", + "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`." + }, + "symmetric": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars." + }, + "array": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data." + }, + "arrayminus": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data." + }, + "value": { + "valType": "number", + "min": 0, + "dflt": 10, + "editType": "calc", + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars." + }, + "valueminus": { + "valType": "number", + "min": 0, + "dflt": 10, + "editType": "calc", + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars" + }, + "traceref": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "style" + }, + "tracerefminus": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "style" + }, + "copy_ystyle": { + "valType": "boolean", + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the stoke color of the error bars." + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "style", + "description": "Sets the thickness (in px) of the error bars." + }, + "width": { + "valType": "number", + "min": 0, + "editType": "plot", + "description": "Sets the width (in px) of the cross-bar at both ends of the error bars." + }, + "editType": "calc", + "_deprecated": { + "opacity": { + "valType": "number", + "editType": "style", + "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." + } + }, + "role": "object", + "arraysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for array .", + "editType": "none" + }, + "arrayminussrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for arrayminus .", + "editType": "none" + } + }, + "error_y": { + "visible": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not this set of error bars is visible." + }, + "type": { + "valType": "enumerated", + "values": [ + "percent", + "constant", + "sqrt", + "data" + ], + "editType": "calc", + "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`." + }, + "symmetric": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars." + }, + "array": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data." + }, + "arrayminus": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data." + }, + "value": { + "valType": "number", + "min": 0, + "dflt": 10, + "editType": "calc", + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars." + }, + "valueminus": { + "valType": "number", + "min": 0, + "dflt": 10, + "editType": "calc", + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars" + }, + "traceref": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "style" + }, + "tracerefminus": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "style" + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the stoke color of the error bars." + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "style", + "description": "Sets the thickness (in px) of the error bars." + }, + "width": { + "valType": "number", + "min": 0, + "editType": "plot", + "description": "Sets the width (in px) of the cross-bar at both ends of the error bars." + }, + "editType": "calc", + "_deprecated": { + "opacity": { + "valType": "number", + "editType": "style", + "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." + } + }, + "role": "object", + "arraysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for array .", + "editType": "none" + }, + "arrayminussrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for arrayminus .", + "editType": "none" + } + }, + "xcalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `x` date data." + }, + "ycalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `y` date data." + }, + "xaxis": { + "valType": "subplotid", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." + }, + "yaxis": { + "valType": "subplotid", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "ysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for y .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "texttemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + }, + "textpositionsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for textposition .", + "editType": "none" + }, + "basesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for base .", + "editType": "none" + }, + "offsetsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for offset .", + "editType": "none" + }, + "widthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for width .", + "editType": "none" + } + }, + "layoutAttributes": { + "barmode": { + "valType": "enumerated", + "values": [ + "stack", + "group", + "overlay", + "relative" + ], + "dflt": "group", + "editType": "calc", + "description": "Determines how bars at the same location coordinate are displayed on the graph. With *stack*, the bars are stacked on top of one another With *relative*, the bars are stacked on top of one another, with negative values below the axis, positive values above With *group*, the bars are plotted next to one another centered around the shared location. With *overlay*, the bars are plotted over one another, you might need to an *opacity* to see multiple bars." + }, + "barnorm": { + "valType": "enumerated", + "values": [ + "", + "fraction", + "percent" + ], + "dflt": "", + "editType": "calc", + "description": "Sets the normalization for bar traces on the graph. With *fraction*, the value of each bar is divided by the sum of all values at that location coordinate. *percent* is the same but multiplied by 100 to show percentages." + }, + "bargap": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc", + "description": "Sets the gap (in plot fraction) between bars of adjacent location coordinates." + }, + "bargroupgap": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0, + "editType": "calc", + "description": "Sets the gap (in plot fraction) between bars of the same location coordinate." + } + } + }, + "box": { + "meta": { + "description": "Each box spans from quartile 1 (Q1) to quartile 3 (Q3). The second quartile (Q2, i.e. the median) is marked by a line inside the box. The fences grow outward from the boxes' edges, by default they span +/- 1.5 times the interquartile range (IQR: Q3-Q1), The sample mean and standard deviation as well as notches and the sample, outlier and suspected outliers points can be optionally added to the box plot. The values and positions corresponding to each boxes can be input using two signatures. The first signature expects users to supply the sample values in the `y` data array for vertical boxes (`x` for horizontal boxes). By supplying an `x` (`y`) array, one box per distinct `x` (`y`) value is drawn If no `x` (`y`) {array} is provided, a single box is drawn. In this case, the box is positioned with the trace `name` or with `x0` (`y0`) if provided. The second signature expects users to supply the boxes corresponding Q1, median and Q3 statistics in the `q1`, `median` and `q3` data arrays respectively. Other box features relying on statistics namely `lowerfence`, `upperfence`, `notchspan` can be set directly by the users. To have plotly compute them or to show sample points besides the boxes, users can set the `y` data array for vertical boxes (`x` for horizontal boxes) to a 2D array with the outer length corresponding to the number of boxes in the traces and the inner length corresponding the sample size." + }, + "categories": [ + "cartesian", + "svg", + "symbols", + "oriented", + "box-violin", + "showLegend", + "boxLayout", + "zoomScale" + ], + "animatable": false, + "type": "box", + "attributes": { + "type": "box", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "showlegend": { + "valType": "boolean", + "dflt": true, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "selectedpoints": { + "valType": "any", + "editType": "calc", + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "y": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the y sample data or coordinates. See overview for more info." + }, + "x": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the x sample data or coordinates. See overview for more info." + }, + "x0": { + "valType": "any", + "editType": "calc+clearAxisTypes", + "description": "Sets the x coordinate for single-box traces or the starting coordinate for multi-box traces set using q1/median/q3. See overview for more info." + }, + "y0": { + "valType": "any", + "editType": "calc+clearAxisTypes", + "description": "Sets the y coordinate for single-box traces or the starting coordinate for multi-box traces set using q1/median/q3. See overview for more info." + }, + "dx": { + "valType": "number", + "editType": "calc", + "description": "Sets the x coordinate step for multi-box traces set using q1/median/q3." + }, + "dy": { + "valType": "number", + "editType": "calc", + "description": "Sets the y coordinate step for multi-box traces set using q1/median/q3." + }, + "xperiod": { + "valType": "any", + "dflt": 0, + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." + }, + "yperiod": { + "valType": "any", + "dflt": 0, + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." + }, + "xperiod0": { + "valType": "any", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." + }, + "yperiod0": { + "valType": "any", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." + }, + "xperiodalignment": { + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ], + "dflt": "middle", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis." + }, + "yperiodalignment": { + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ], + "dflt": "middle", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis." + }, + "xhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `x` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `xaxis.hoverformat`." + }, + "yhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `y` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `yaxis.hoverformat`." + }, + "name": { + "valType": "string", + "editType": "calc+clearAxisTypes", + "description": "Sets the trace name. The trace name appear as the legend item and on hover. For box traces, the name will also be used for the position coordinate, if `x` and `x0` (`y` and `y0` if horizontal) are missing and the position axis is categorical" + }, + "q1": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the Quartile 1 values. There should be as many items as the number of boxes desired." + }, + "median": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the median values. There should be as many items as the number of boxes desired." + }, + "q3": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the Quartile 3 values. There should be as many items as the number of boxes desired." + }, + "lowerfence": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the lower fence values. There should be as many items as the number of boxes desired. This attribute has effect only under the q1/median/q3 signature. If `lowerfence` is not provided but a sample (in `y` or `x`) is set, we compute the lower as the last sample point below 1.5 times the IQR." + }, + "upperfence": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the upper fence values. There should be as many items as the number of boxes desired. This attribute has effect only under the q1/median/q3 signature. If `upperfence` is not provided but a sample (in `y` or `x`) is set, we compute the lower as the last sample point above 1.5 times the IQR." + }, + "notched": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not notches are drawn. Notches displays a confidence interval around the median. We compute the confidence interval as median +/- 1.57 * IQR / sqrt(N), where IQR is the interquartile range and N is the sample size. If two boxes' notches do not overlap there is 95% confidence their medians differ. See https://sites.google.com/site/davidsstatistics/home/notched-box-plots for more info. Defaults to *false* unless `notchwidth` or `notchspan` is set." + }, + "notchwidth": { + "valType": "number", + "min": 0, + "max": 0.5, + "dflt": 0.25, + "editType": "calc", + "description": "Sets the width of the notches relative to the box' width. For example, with 0, the notches are as wide as the box(es)." + }, + "notchspan": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the notch span from the boxes' `median` values. There should be as many items as the number of boxes desired. This attribute has effect only under the q1/median/q3 signature. If `notchspan` is not provided but a sample (in `y` or `x`) is set, we compute it as 1.57 * IQR / sqrt(N), where N is the sample size." + }, + "boxpoints": { + "valType": "enumerated", + "values": [ + "all", + "outliers", + "suspectedoutliers", + false + ], + "editType": "calc", + "description": "If *outliers*, only the sample points lying outside the whiskers are shown If *suspectedoutliers*, the outlier points are shown and points either less than 4*Q1-3*Q3 or greater than 4*Q3-3*Q1 are highlighted (see `outliercolor`) If *all*, all sample points are shown If *false*, only the box(es) are shown with no sample points Defaults to *suspectedoutliers* when `marker.outliercolor` or `marker.line.outliercolor` is set. Defaults to *all* under the q1/median/q3 signature. Otherwise defaults to *outliers*." + }, + "jitter": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc", + "description": "Sets the amount of jitter in the sample points drawn. If *0*, the sample points align along the distribution axis. If *1*, the sample points are drawn in a random jitter of width equal to the width of the box(es)." + }, + "pointpos": { + "valType": "number", + "min": -2, + "max": 2, + "editType": "calc", + "description": "Sets the position of the sample points in relation to the box(es). If *0*, the sample points are places over the center of the box(es). Positive (negative) values correspond to positions to the right (left) for vertical boxes and above (below) for horizontal boxes" + }, + "boxmean": { + "valType": "enumerated", + "values": [ + true, + "sd", + false + ], + "editType": "calc", + "description": "If *true*, the mean of the box(es)' underlying distribution is drawn as a dashed line inside the box(es). If *sd* the standard deviation is also drawn. Defaults to *true* when `mean` is set. Defaults to *sd* when `sd` is set Otherwise defaults to *false*." + }, + "mean": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the mean values. There should be as many items as the number of boxes desired. This attribute has effect only under the q1/median/q3 signature. If `mean` is not provided but a sample (in `y` or `x`) is set, we compute the mean for each box using the sample values." + }, + "sd": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the standard deviation values. There should be as many items as the number of boxes desired. This attribute has effect only under the q1/median/q3 signature. If `sd` is not provided but a sample (in `y` or `x`) is set, we compute the standard deviation for each box using the sample values." + }, + "orientation": { + "valType": "enumerated", + "values": [ + "v", + "h" + ], + "editType": "calc+clearAxisTypes", + "description": "Sets the orientation of the box(es). If *v* (*h*), the distribution is visualized along the vertical (horizontal)." + }, + "quartilemethod": { + "valType": "enumerated", + "values": [ + "linear", + "exclusive", + "inclusive" + ], + "dflt": "linear", + "editType": "calc", + "description": "Sets the method used to compute the sample's Q1 and Q3 quartiles. The *linear* method uses the 25th percentile for Q1 and 75th percentile for Q3 as computed using method #10 (listed on http://www.amstat.org/publications/jse/v14n3/langford.html). The *exclusive* method uses the median to divide the ordered dataset into two halves if the sample is odd, it does not include the median in either half - Q1 is then the median of the lower half and Q3 the median of the upper half. The *inclusive* method also uses the median to divide the ordered dataset into two halves but if the sample is odd, it includes the median in both halves - Q1 is then the median of the lower half and Q3 the median of the upper half." + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Sets the width of the box in data coordinate If *0* (default value) the width is automatically selected based on the positions of other box traces in the same subplot." + }, + "marker": { + "outliercolor": { + "valType": "color", + "dflt": "rgba(0, 0, 0, 0)", + "editType": "style", + "description": "Sets the color of the outlier sample points." + }, + "symbol": { + "valType": "enumerated", + "values": [ + 0, + "0", + "circle", + 100, + "100", + "circle-open", + 200, + "200", + "circle-dot", + 300, + "300", + "circle-open-dot", + 1, + "1", + "square", + 101, + "101", + "square-open", + 201, + "201", + "square-dot", + 301, + "301", + "square-open-dot", + 2, + "2", + "diamond", + 102, + "102", + "diamond-open", + 202, + "202", + "diamond-dot", + 302, + "302", + "diamond-open-dot", + 3, + "3", + "cross", + 103, + "103", + "cross-open", + 203, + "203", + "cross-dot", + 303, + "303", + "cross-open-dot", + 4, + "4", + "x", + 104, + "104", + "x-open", + 204, + "204", + "x-dot", + 304, + "304", + "x-open-dot", + 5, + "5", + "triangle-up", + 105, + "105", + "triangle-up-open", + 205, + "205", + "triangle-up-dot", + 305, + "305", + "triangle-up-open-dot", + 6, + "6", + "triangle-down", + 106, + "106", + "triangle-down-open", + 206, + "206", + "triangle-down-dot", + 306, + "306", + "triangle-down-open-dot", + 7, + "7", + "triangle-left", + 107, + "107", + "triangle-left-open", + 207, + "207", + "triangle-left-dot", + 307, + "307", + "triangle-left-open-dot", + 8, + "8", + "triangle-right", + 108, + "108", + "triangle-right-open", + 208, + "208", + "triangle-right-dot", + 308, + "308", + "triangle-right-open-dot", + 9, + "9", + "triangle-ne", + 109, + "109", + "triangle-ne-open", + 209, + "209", + "triangle-ne-dot", + 309, + "309", + "triangle-ne-open-dot", + 10, + "10", + "triangle-se", + 110, + "110", + "triangle-se-open", + 210, + "210", + "triangle-se-dot", + 310, + "310", + "triangle-se-open-dot", + 11, + "11", + "triangle-sw", + 111, + "111", + "triangle-sw-open", + 211, + "211", + "triangle-sw-dot", + 311, + "311", + "triangle-sw-open-dot", + 12, + "12", + "triangle-nw", + 112, + "112", + "triangle-nw-open", + 212, + "212", + "triangle-nw-dot", + 312, + "312", + "triangle-nw-open-dot", + 13, + "13", + "pentagon", + 113, + "113", + "pentagon-open", + 213, + "213", + "pentagon-dot", + 313, + "313", + "pentagon-open-dot", + 14, + "14", + "hexagon", + 114, + "114", + "hexagon-open", + 214, + "214", + "hexagon-dot", + 314, + "314", + "hexagon-open-dot", + 15, + "15", + "hexagon2", + 115, + "115", + "hexagon2-open", + 215, + "215", + "hexagon2-dot", + 315, + "315", + "hexagon2-open-dot", + 16, + "16", + "octagon", + 116, + "116", + "octagon-open", + 216, + "216", + "octagon-dot", + 316, + "316", + "octagon-open-dot", + 17, + "17", + "star", + 117, + "117", + "star-open", + 217, + "217", + "star-dot", + 317, + "317", + "star-open-dot", + 18, + "18", + "hexagram", + 118, + "118", + "hexagram-open", + 218, + "218", + "hexagram-dot", + 318, + "318", + "hexagram-open-dot", + 19, + "19", + "star-triangle-up", + 119, + "119", + "star-triangle-up-open", + 219, + "219", + "star-triangle-up-dot", + 319, + "319", + "star-triangle-up-open-dot", + 20, + "20", + "star-triangle-down", + 120, + "120", + "star-triangle-down-open", + 220, + "220", + "star-triangle-down-dot", + 320, + "320", + "star-triangle-down-open-dot", + 21, + "21", + "star-square", + 121, + "121", + "star-square-open", + 221, + "221", + "star-square-dot", + 321, + "321", + "star-square-open-dot", + 22, + "22", + "star-diamond", + 122, + "122", + "star-diamond-open", + 222, + "222", + "star-diamond-dot", + 322, + "322", + "star-diamond-open-dot", + 23, + "23", + "diamond-tall", + 123, + "123", + "diamond-tall-open", + 223, + "223", + "diamond-tall-dot", + 323, + "323", + "diamond-tall-open-dot", + 24, + "24", + "diamond-wide", + 124, + "124", + "diamond-wide-open", + 224, + "224", + "diamond-wide-dot", + 324, + "324", + "diamond-wide-open-dot", + 25, + "25", + "hourglass", + 125, + "125", + "hourglass-open", + 26, + "26", + "bowtie", + 126, + "126", + "bowtie-open", + 27, + "27", + "circle-cross", + 127, + "127", + "circle-cross-open", + 28, + "28", + "circle-x", + 128, + "128", + "circle-x-open", + 29, + "29", + "square-cross", + 129, + "129", + "square-cross-open", + 30, + "30", + "square-x", + 130, + "130", + "square-x-open", + 31, + "31", + "diamond-cross", + 131, + "131", + "diamond-cross-open", + 32, + "32", + "diamond-x", + 132, + "132", + "diamond-x-open", + 33, + "33", + "cross-thin", + 133, + "133", + "cross-thin-open", + 34, + "34", + "x-thin", + 134, + "134", + "x-thin-open", + 35, + "35", + "asterisk", + 135, + "135", + "asterisk-open", + 36, + "36", + "hash", + 136, + "136", + "hash-open", + 236, + "236", + "hash-dot", + 336, + "336", + "hash-open-dot", + 37, + "37", + "y-up", + 137, + "137", + "y-up-open", + 38, + "38", + "y-down", + 138, + "138", + "y-down-open", + 39, + "39", + "y-left", + 139, + "139", + "y-left-open", + 40, + "40", + "y-right", + 140, + "140", + "y-right-open", + 41, + "41", + "line-ew", + 141, + "141", + "line-ew-open", + 42, + "42", + "line-ns", + 142, + "142", + "line-ns-open", + 43, + "43", + "line-ne", + 143, + "143", + "line-ne-open", + 44, + "44", + "line-nw", + 144, + "144", + "line-nw-open", + 45, + "45", + "arrow-up", + 145, + "145", + "arrow-up-open", + 46, + "46", + "arrow-down", + 146, + "146", + "arrow-down-open", + 47, + "47", + "arrow-left", + 147, + "147", + "arrow-left-open", + 48, + "48", + "arrow-right", + 148, + "148", + "arrow-right-open", + 49, + "49", + "arrow-bar-up", + 149, + "149", + "arrow-bar-up-open", + 50, + "50", + "arrow-bar-down", + 150, + "150", + "arrow-bar-down-open", + 51, + "51", + "arrow-bar-left", + 151, + "151", + "arrow-bar-left-open", + 52, + "52", + "arrow-bar-right", + 152, + "152", + "arrow-bar-right-open" + ], + "dflt": "circle", + "arrayOk": false, + "editType": "plot", + "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "arrayOk": false, + "editType": "style", + "description": "Sets the marker opacity.", + "dflt": 1 + }, + "size": { + "valType": "number", + "min": 0, + "dflt": 6, + "arrayOk": false, + "editType": "calc", + "description": "Sets the marker size (in px)." + }, + "color": { + "valType": "color", + "arrayOk": false, + "editType": "style", + "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." + }, + "line": { + "color": { + "valType": "color", + "arrayOk": false, + "editType": "style", + "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set.", + "dflt": "#444" + }, + "width": { + "valType": "number", + "min": 0, + "arrayOk": false, + "editType": "style", + "description": "Sets the width (in px) of the lines bounding the marker points.", + "dflt": 0 + }, + "outliercolor": { + "valType": "color", + "editType": "style", + "description": "Sets the border line color of the outlier sample points. Defaults to marker.color" + }, + "outlierwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "style", + "description": "Sets the border line width (in px) of the outlier sample points." + }, + "editType": "style", + "role": "object" + }, + "editType": "plot", + "role": "object" + }, + "line": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the color of line bounding the box(es)." + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "style", + "description": "Sets the width (in px) of line bounding the box(es)." + }, + "editType": "plot", + "role": "object" + }, + "fillcolor": { + "valType": "color", + "editType": "style", + "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." + }, + "whiskerwidth": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.5, + "editType": "calc", + "description": "Sets the width of the whiskers relative to the box' width. For example, with 1, the whiskers are as wide as the box(es)." + }, + "offsetgroup": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up." + }, + "alignmentgroup": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently." + }, + "selected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "style", + "description": "Sets the marker opacity of selected points." + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the marker color of selected points." + }, + "size": { + "valType": "number", + "min": 0, + "editType": "style", + "description": "Sets the marker size of selected points." + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "unselected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "style", + "description": "Sets the marker opacity of unselected points, applied only when a selection exists." + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the marker color of unselected points, applied only when a selection exists." + }, + "size": { + "valType": "number", + "min": 0, + "editType": "style", + "description": "Sets the marker size of unselected points, applied only when a selection exists." + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets the text elements associated with each sample value. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "style", + "description": "Same as `text`." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "hoveron": { + "valType": "flaglist", + "flags": [ + "boxes", + "points" + ], + "dflt": "boxes+points", + "editType": "style", + "description": "Do the hover effects highlight individual boxes or sample points or both?" + }, + "xcalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `x` date data." + }, + "ycalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `y` date data." + }, + "xaxis": { + "valType": "subplotid", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." + }, + "yaxis": { + "valType": "subplotid", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "ysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for y .", + "editType": "none" + }, + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "q1src": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for q1 .", + "editType": "none" + }, + "mediansrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for median .", + "editType": "none" + }, + "q3src": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for q3 .", + "editType": "none" + }, + "lowerfencesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for lowerfence .", + "editType": "none" + }, + "upperfencesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for upperfence .", + "editType": "none" + }, + "notchspansrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for notchspan .", + "editType": "none" + }, + "meansrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for mean .", + "editType": "none" + }, + "sdsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for sd .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + } + }, + "layoutAttributes": { + "boxmode": { + "valType": "enumerated", + "values": [ + "group", + "overlay" + ], + "dflt": "overlay", + "editType": "calc", + "description": "Determines how boxes at the same location coordinate are displayed on the graph. If *group*, the boxes are plotted next to one another centered around the shared location. If *overlay*, the boxes are plotted over one another, you might need to set *opacity* to see them multiple boxes. Has no effect on traces that have *width* set." + }, + "boxgap": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.3, + "editType": "calc", + "description": "Sets the gap (in plot fraction) between boxes of adjacent location coordinates. Has no effect on traces that have *width* set." + }, + "boxgroupgap": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.3, + "editType": "calc", + "description": "Sets the gap (in plot fraction) between boxes of the same location coordinate. Has no effect on traces that have *width* set." + } + } + }, + "heatmap": { + "meta": { + "description": "The data that describes the heatmap value-to-color mapping is set in `z`. Data in `z` can either be a {2D array} of values (ragged or not) or a 1D array of values. In the case where `z` is a {2D array}, say that `z` has N rows and M columns. Then, by default, the resulting heatmap will have N partitions along the y axis and M partitions along the x axis. In other words, the i-th row/ j-th column cell in `z` is mapped to the i-th partition of the y axis (starting from the bottom of the plot) and the j-th partition of the x-axis (starting from the left of the plot). This behavior can be flipped by using `transpose`. Moreover, `x` (`y`) can be provided with M or M+1 (N or N+1) elements. If M (N), then the coordinates correspond to the center of the heatmap cells and the cells have equal width. If M+1 (N+1), then the coordinates correspond to the edges of the heatmap cells. In the case where `z` is a 1D {array}, the x and y coordinates must be provided in `x` and `y` respectively to form data triplets." + }, + "categories": [ + "cartesian", + "svg", + "2dMap", + "showLegend" + ], + "animatable": false, + "type": "heatmap", + "attributes": { + "type": "heatmap", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "z": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the z data." + }, + "x": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the x coordinates.", + "impliedEdits": { + "xtype": "array" + } + }, + "x0": { + "valType": "any", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step.", + "impliedEdits": { + "xtype": "scaled" + } + }, + "dx": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Sets the x coordinate step. See `x0` for more info.", + "impliedEdits": { + "xtype": "scaled" + } + }, + "y": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the y coordinates.", + "impliedEdits": { + "ytype": "array" + } + }, + "y0": { + "valType": "any", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step.", + "impliedEdits": { + "ytype": "scaled" + } + }, + "dy": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Sets the y coordinate step. See `y0` for more info.", + "impliedEdits": { + "ytype": "scaled" + } + }, + "xperiod": { + "valType": "any", + "dflt": 0, + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", + "impliedEdits": { + "xtype": "scaled" + } + }, + "yperiod": { + "valType": "any", + "dflt": 0, + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", + "impliedEdits": { + "ytype": "scaled" + } + }, + "xperiod0": { + "valType": "any", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", + "impliedEdits": { + "xtype": "scaled" + } + }, + "yperiod0": { + "valType": "any", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", + "impliedEdits": { + "ytype": "scaled" + } + }, + "xperiodalignment": { + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ], + "dflt": "middle", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis.", + "impliedEdits": { + "xtype": "scaled" + } + }, + "yperiodalignment": { + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ], + "dflt": "middle", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis.", + "impliedEdits": { + "ytype": "scaled" + } + }, + "text": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the text elements associated with each z value." + }, + "hovertext": { + "valType": "data_array", + "editType": "calc", + "description": "Same as `text`." + }, + "transpose": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Transposes the z data." + }, + "xtype": { + "valType": "enumerated", + "values": [ + "array", + "scaled" + ], + "editType": "calc+clearAxisTypes", + "description": "If *array*, the heatmap's x coordinates are given by *x* (the default behavior when `x` is provided). If *scaled*, the heatmap's x coordinates are given by *x0* and *dx* (the default behavior when `x` is not provided)." + }, + "ytype": { + "valType": "enumerated", + "values": [ + "array", + "scaled" + ], + "editType": "calc+clearAxisTypes", + "description": "If *array*, the heatmap's y coordinates are given by *y* (the default behavior when `y` is provided) If *scaled*, the heatmap's y coordinates are given by *y0* and *dy* (the default behavior when `y` is not provided)" + }, + "zsmooth": { + "valType": "enumerated", + "values": [ + "fast", + "best", + false + ], + "dflt": false, + "editType": "calc", + "description": "Picks a smoothing algorithm use to smooth `z` data." + }, + "hoverongaps": { + "valType": "boolean", + "dflt": true, + "editType": "none", + "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the `z` data have hover labels associated with them." + }, + "connectgaps": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the `z` data are filled in. It is defaulted to true if `z` is a one dimensional array and `zsmooth` is not false; otherwise it is defaulted to false." + }, + "xgap": { + "valType": "number", + "dflt": 0, + "min": 0, + "editType": "plot", + "description": "Sets the horizontal gap (in pixels) between bricks." + }, + "ygap": { + "valType": "number", + "dflt": 0, + "min": 0, + "editType": "plot", + "description": "Sets the vertical gap (in pixels) between bricks." + }, + "xhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `x` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `xaxis.hoverformat`." + }, + "yhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `y` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `yaxis.hoverformat`." + }, + "zhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `z` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format By default the values are formatted using generic number format." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "showlegend": { + "valType": "boolean", + "dflt": false, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "zauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user." + }, + "zmin": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "zauto": false + }, + "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well." + }, + "zmax": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "zauto": false + }, + "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well." + }, + "zmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`zmin` and `zmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "colorbars" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "colorbars" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "colorbars" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "colorbars" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "colorbars" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "colorbars" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "colorbars" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "colorbars" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "colorbars" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "colorbars" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "colorbars", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "colorbars", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "colorbars", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "colorbars", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "colorbars" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "colorbars", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "colorbars", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "colorbars" + }, + { + "valType": "any", + "editType": "colorbars" + } + ], + "editType": "colorbars", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "colorbars", + "name": { + "valType": "string", + "editType": "colorbars", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "colorbars", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "colorbars", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "colorbars", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "colorbars", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars" + }, + "editType": "colorbars", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "colorbars" + } + }, + "editType": "colorbars", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "xcalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `x` date data." + }, + "ycalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `y` date data." + }, + "xaxis": { + "valType": "subplotid", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." + }, + "yaxis": { + "valType": "subplotid", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "zsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for z .", + "editType": "none" + }, + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "ysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for y .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + } + } + }, + "histogram": { + "meta": { + "description": "The sample data from which statistics are computed is set in `x` for vertically spanning histograms and in `y` for horizontally spanning histograms. Binning options are set `xbins` and `ybins` respectively if no aggregation data is provided." + }, + "categories": [ + "bar-like", + "cartesian", + "svg", + "bar", + "histogram", + "oriented", + "errorBarsOK", + "showLegend" + ], + "animatable": false, + "type": "histogram", + "attributes": { + "type": "histogram", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "showlegend": { + "valType": "boolean", + "dflt": true, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "selectedpoints": { + "valType": "any", + "editType": "calc", + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "x": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the sample data to be binned on the x axis." + }, + "y": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the sample data to be binned on the y axis." + }, + "xhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `x` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `xaxis.hoverformat`." + }, + "yhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `y` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `yaxis.hoverformat`." + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets hover text elements associated with each bar. If a single string, the same string appears over all bars. If an array of string, the items are mapped in order to the this trace's coordinates." + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "style", + "description": "Same as `text`." + }, + "orientation": { + "valType": "enumerated", + "values": [ + "v", + "h" + ], + "editType": "calc+clearAxisTypes", + "description": "Sets the orientation of the bars. With *v* (*h*), the value of the each bar spans along the vertical (horizontal)." + }, + "histfunc": { + "valType": "enumerated", + "values": [ + "count", + "sum", + "avg", + "min", + "max" + ], + "dflt": "count", + "editType": "calc", + "description": "Specifies the binning function used for this histogram trace. If *count*, the histogram values are computed by counting the number of values lying inside each bin. If *sum*, *avg*, *min*, *max*, the histogram values are computed using the sum, the average, the minimum or the maximum of the values lying inside each bin respectively." + }, + "histnorm": { + "valType": "enumerated", + "values": [ + "", + "percent", + "probability", + "density", + "probability density" + ], + "dflt": "", + "editType": "calc", + "description": "Specifies the type of normalization used for this histogram trace. If **, the span of each bar corresponds to the number of occurrences (i.e. the number of data points lying inside the bins). If *percent* / *probability*, the span of each bar corresponds to the percentage / fraction of occurrences with respect to the total number of sample points (here, the sum of all bin HEIGHTS equals 100% / 1). If *density*, the span of each bar corresponds to the number of occurrences in a bin divided by the size of the bin interval (here, the sum of all bin AREAS equals the total number of sample points). If *probability density*, the area of each bar corresponds to the probability that an event will fall into the corresponding bin (here, the sum of all bin AREAS equals 1)." + }, + "cumulative": { + "enabled": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "If true, display the cumulative distribution by summing the binned values. Use the `direction` and `centralbin` attributes to tune the accumulation method. Note: in this mode, the *density* `histnorm` settings behave the same as their equivalents without *density*: ** and *density* both rise to the number of data points, and *probability* and *probability density* both rise to the number of sample points." + }, + "direction": { + "valType": "enumerated", + "values": [ + "increasing", + "decreasing" + ], + "dflt": "increasing", + "editType": "calc", + "description": "Only applies if cumulative is enabled. If *increasing* (default) we sum all prior bins, so the result increases from left to right. If *decreasing* we sum later bins so the result decreases from left to right." + }, + "currentbin": { + "valType": "enumerated", + "values": [ + "include", + "exclude", + "half" + ], + "dflt": "include", + "editType": "calc", + "description": "Only applies if cumulative is enabled. Sets whether the current bin is included, excluded, or has half of its value included in the current cumulative value. *include* is the default for compatibility with various other tools, however it introduces a half-bin bias to the results. *exclude* makes the opposite half-bin bias, and *half* removes it." + }, + "editType": "calc", + "role": "object" + }, + "nbinsx": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Specifies the maximum number of desired bins. This value will be used in an algorithm that will decide the optimal bin size such that the histogram best visualizes the distribution of the data. Ignored if `xbins.size` is provided." + }, + "xbins": { + "start": { + "valType": "any", + "editType": "calc", + "description": "Sets the starting value for the x axis bins. Defaults to the minimum data value, shifted down if necessary to make nice round values and to remove ambiguous bin edges. For example, if most of the data is integers we shift the bin edges 0.5 down, so a `size` of 5 would have a default `start` of -0.5, so it is clear that 0-4 are in the first bin, 5-9 in the second, but continuous data gets a start of 0 and bins [0,5), [5,10) etc. Dates behave similarly, and `start` should be a date string. For category data, `start` is based on the category serial numbers, and defaults to -0.5. If multiple non-overlaying histograms share a subplot, the first explicit `start` is used exactly and all others are shifted down (if necessary) to differ from that one by an integer number of bins." + }, + "end": { + "valType": "any", + "editType": "calc", + "description": "Sets the end value for the x axis bins. The last bin may not end exactly at this value, we increment the bin edge by `size` from `start` until we reach or exceed `end`. Defaults to the maximum data value. Like `start`, for dates use a date string, and for category data `end` is based on the category serial numbers." + }, + "size": { + "valType": "any", + "editType": "calc", + "description": "Sets the size of each x axis bin. Default behavior: If `nbinsx` is 0 or omitted, we choose a nice round bin size such that the number of bins is about the same as the typical number of samples in each bin. If `nbinsx` is provided, we choose a nice round bin size giving no more than that many bins. For date data, use milliseconds or *M* for months, as in `axis.dtick`. For category data, the number of categories to bin together (always defaults to 1). If multiple non-overlaying histograms share a subplot, the first explicit `size` is used and all others discarded. If no `size` is provided,the sample data from all traces is combined to determine `size` as described above." + }, + "editType": "calc", + "role": "object" + }, + "nbinsy": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Specifies the maximum number of desired bins. This value will be used in an algorithm that will decide the optimal bin size such that the histogram best visualizes the distribution of the data. Ignored if `ybins.size` is provided." + }, + "ybins": { + "start": { + "valType": "any", + "editType": "calc", + "description": "Sets the starting value for the y axis bins. Defaults to the minimum data value, shifted down if necessary to make nice round values and to remove ambiguous bin edges. For example, if most of the data is integers we shift the bin edges 0.5 down, so a `size` of 5 would have a default `start` of -0.5, so it is clear that 0-4 are in the first bin, 5-9 in the second, but continuous data gets a start of 0 and bins [0,5), [5,10) etc. Dates behave similarly, and `start` should be a date string. For category data, `start` is based on the category serial numbers, and defaults to -0.5. If multiple non-overlaying histograms share a subplot, the first explicit `start` is used exactly and all others are shifted down (if necessary) to differ from that one by an integer number of bins." + }, + "end": { + "valType": "any", + "editType": "calc", + "description": "Sets the end value for the y axis bins. The last bin may not end exactly at this value, we increment the bin edge by `size` from `start` until we reach or exceed `end`. Defaults to the maximum data value. Like `start`, for dates use a date string, and for category data `end` is based on the category serial numbers." + }, + "size": { + "valType": "any", + "editType": "calc", + "description": "Sets the size of each y axis bin. Default behavior: If `nbinsy` is 0 or omitted, we choose a nice round bin size such that the number of bins is about the same as the typical number of samples in each bin. If `nbinsy` is provided, we choose a nice round bin size giving no more than that many bins. For date data, use milliseconds or *M* for months, as in `axis.dtick`. For category data, the number of categories to bin together (always defaults to 1). If multiple non-overlaying histograms share a subplot, the first explicit `size` is used and all others discarded. If no `size` is provided,the sample data from all traces is combined to determine `size` as described above." + }, + "editType": "calc", + "role": "object" + }, + "autobinx": { + "valType": "boolean", + "dflt": null, + "editType": "calc", + "description": "Obsolete: since v1.42 each bin attribute is auto-determined separately and `autobinx` is not needed. However, we accept `autobinx: true` or `false` and will update `xbins` accordingly before deleting `autobinx` from the trace." + }, + "autobiny": { + "valType": "boolean", + "dflt": null, + "editType": "calc", + "description": "Obsolete: since v1.42 each bin attribute is auto-determined separately and `autobiny` is not needed. However, we accept `autobiny: true` or `false` and will update `ybins` accordingly before deleting `autobiny` from the trace." + }, + "bingroup": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Set a group of histogram traces which will have compatible bin settings. Note that traces on the same subplot and with the same *orientation* under `barmode` *stack*, *relative* and *group* are forced into the same bingroup, Using `bingroup`, traces under `barmode` *overlay* and on different axes (of the same axis type) can have compatible bin settings. Note that histogram and histogram2d* trace can share the same `bingroup`" + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variable `binNumber` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "marker": { + "line": { + "width": { + "valType": "number", + "min": 0, + "arrayOk": true, + "editType": "style", + "description": "Sets the width (in px) of the lines bounding the marker points.", + "dflt": 0 + }, + "editType": "calc", + "color": { + "valType": "color", + "arrayOk": true, + "editType": "style", + "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "role": "object", + "widthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for width .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "editType": "calc", + "color": { + "valType": "color", + "arrayOk": true, + "editType": "style", + "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "colorbars" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "colorbars" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "colorbars" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "colorbars" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "colorbars" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "colorbars" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "colorbars" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "colorbars" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "colorbars" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "colorbars" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "colorbars", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "colorbars", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "colorbars", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "colorbars", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "colorbars" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "colorbars", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "colorbars", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "colorbars" + }, + { + "valType": "any", + "editType": "colorbars" + } + ], + "editType": "colorbars", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "colorbars", + "name": { + "valType": "string", + "editType": "colorbars", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "colorbars", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "colorbars", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "colorbars", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "colorbars", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars" + }, + "editType": "colorbars", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "colorbars" + } + }, + "editType": "colorbars", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "opacity": { + "valType": "number", + "arrayOk": true, + "dflt": 1, + "min": 0, + "max": 1, + "editType": "style", + "description": "Sets the opacity of the bars." + }, + "pattern": { + "shape": { + "valType": "enumerated", + "values": [ + "", + "/", + "\\", + "x", + "-", + "|", + "+", + "." + ], + "dflt": "", + "arrayOk": true, + "editType": "style", + "description": "Sets the shape of the pattern fill. By default, no pattern is used for filling the area." + }, + "bgcolor": { + "valType": "color", + "arrayOk": true, + "editType": "style", + "description": "Sets the background color of the pattern fill. Defaults to a transparent background." + }, + "size": { + "valType": "number", + "min": 0, + "dflt": 8, + "arrayOk": true, + "editType": "style", + "description": "Sets the size of unit squares of the pattern fill in pixels, which corresponds to the interval of repetition of the pattern." + }, + "solidity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.3, + "arrayOk": true, + "editType": "style", + "description": "Sets the solidity of the pattern fill. Solidity is roughly the fraction of the area filled by the pattern. Solidity of 0 shows only the background color without pattern and solidty of 1 shows only the foreground color without pattern." + }, + "editType": "style", + "role": "object", + "shapesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for shape .", + "editType": "none" + }, + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "soliditysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for solidity .", + "editType": "none" + } + }, + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + }, + "opacitysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for opacity .", + "editType": "none" + } + }, + "offsetgroup": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up." + }, + "alignmentgroup": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently." + }, + "selected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "style", + "description": "Sets the marker opacity of selected points." + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the marker color of selected points." + }, + "editType": "style", + "role": "object" + }, + "textfont": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the text font color of selected points." + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "unselected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "style", + "description": "Sets the marker opacity of unselected points, applied only when a selection exists." + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the marker color of unselected points, applied only when a selection exists." + }, + "editType": "style", + "role": "object" + }, + "textfont": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the text font color of unselected points, applied only when a selection exists." + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "_deprecated": { + "bardir": { + "valType": "enumerated", + "editType": "calc", + "values": [ + "v", + "h" + ], + "description": "Renamed to `orientation`." + } + }, + "error_x": { + "visible": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not this set of error bars is visible." + }, + "type": { + "valType": "enumerated", + "values": [ + "percent", + "constant", + "sqrt", + "data" + ], + "editType": "calc", + "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`." + }, + "symmetric": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars." + }, + "array": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data." + }, + "arrayminus": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data." + }, + "value": { + "valType": "number", + "min": 0, + "dflt": 10, + "editType": "calc", + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars." + }, + "valueminus": { + "valType": "number", + "min": 0, + "dflt": 10, + "editType": "calc", + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars" + }, + "traceref": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "style" + }, + "tracerefminus": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "style" + }, + "copy_ystyle": { + "valType": "boolean", + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the stoke color of the error bars." + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "style", + "description": "Sets the thickness (in px) of the error bars." + }, + "width": { + "valType": "number", + "min": 0, + "editType": "plot", + "description": "Sets the width (in px) of the cross-bar at both ends of the error bars." + }, + "editType": "calc", + "_deprecated": { + "opacity": { + "valType": "number", + "editType": "style", + "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." + } + }, + "role": "object", + "arraysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for array .", + "editType": "none" + }, + "arrayminussrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for arrayminus .", + "editType": "none" + } + }, + "error_y": { + "visible": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not this set of error bars is visible." + }, + "type": { + "valType": "enumerated", + "values": [ + "percent", + "constant", + "sqrt", + "data" + ], + "editType": "calc", + "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`." + }, + "symmetric": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars." + }, + "array": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data." + }, + "arrayminus": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data." + }, + "value": { + "valType": "number", + "min": 0, + "dflt": 10, + "editType": "calc", + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars." + }, + "valueminus": { + "valType": "number", + "min": 0, + "dflt": 10, + "editType": "calc", + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars" + }, + "traceref": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "style" + }, + "tracerefminus": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "style" + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the stoke color of the error bars." + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "style", + "description": "Sets the thickness (in px) of the error bars." + }, + "width": { + "valType": "number", + "min": 0, + "editType": "plot", + "description": "Sets the width (in px) of the cross-bar at both ends of the error bars." + }, + "editType": "calc", + "_deprecated": { + "opacity": { + "valType": "number", + "editType": "style", + "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." + } + }, + "role": "object", + "arraysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for array .", + "editType": "none" + }, + "arrayminussrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for arrayminus .", + "editType": "none" + } + }, + "xcalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `x` date data." + }, + "ycalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `y` date data." + }, + "xaxis": { + "valType": "subplotid", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." + }, + "yaxis": { + "valType": "subplotid", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "ysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for y .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + } + }, + "layoutAttributes": { + "barmode": { + "valType": "enumerated", + "values": [ + "stack", + "group", + "overlay", + "relative" + ], + "dflt": "group", + "editType": "calc", + "description": "Determines how bars at the same location coordinate are displayed on the graph. With *stack*, the bars are stacked on top of one another With *relative*, the bars are stacked on top of one another, with negative values below the axis, positive values above With *group*, the bars are plotted next to one another centered around the shared location. With *overlay*, the bars are plotted over one another, you might need to an *opacity* to see multiple bars." + }, + "barnorm": { + "valType": "enumerated", + "values": [ + "", + "fraction", + "percent" + ], + "dflt": "", + "editType": "calc", + "description": "Sets the normalization for bar traces on the graph. With *fraction*, the value of each bar is divided by the sum of all values at that location coordinate. *percent* is the same but multiplied by 100 to show percentages." + }, + "bargap": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc", + "description": "Sets the gap (in plot fraction) between bars of adjacent location coordinates." + }, + "bargroupgap": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0, + "editType": "calc", + "description": "Sets the gap (in plot fraction) between bars of the same location coordinate." + } + } + }, + "histogram2d": { + "meta": { + "hrName": "histogram_2d", + "description": "The sample data from which statistics are computed is set in `x` and `y` (where `x` and `y` represent marginal distributions, binning is set in `xbins` and `ybins` in this case) or `z` (where `z` represent the 2D distribution and binning set, binning is set by `x` and `y` in this case). The resulting distribution is visualized as a heatmap." + }, + "categories": [ + "cartesian", + "svg", + "2dMap", + "histogram", + "showLegend" + ], + "animatable": false, + "type": "histogram2d", + "attributes": { + "type": "histogram2d", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "x": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the sample data to be binned on the x axis." + }, + "y": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the sample data to be binned on the y axis." + }, + "z": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the aggregation data." + }, + "marker": { + "color": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the aggregation data." + }, + "editType": "calc", + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "histnorm": { + "valType": "enumerated", + "values": [ + "", + "percent", + "probability", + "density", + "probability density" + ], + "dflt": "", + "editType": "calc", + "description": "Specifies the type of normalization used for this histogram trace. If **, the span of each bar corresponds to the number of occurrences (i.e. the number of data points lying inside the bins). If *percent* / *probability*, the span of each bar corresponds to the percentage / fraction of occurrences with respect to the total number of sample points (here, the sum of all bin HEIGHTS equals 100% / 1). If *density*, the span of each bar corresponds to the number of occurrences in a bin divided by the size of the bin interval (here, the sum of all bin AREAS equals the total number of sample points). If *probability density*, the area of each bar corresponds to the probability that an event will fall into the corresponding bin (here, the sum of all bin AREAS equals 1)." + }, + "histfunc": { + "valType": "enumerated", + "values": [ + "count", + "sum", + "avg", + "min", + "max" + ], + "dflt": "count", + "editType": "calc", + "description": "Specifies the binning function used for this histogram trace. If *count*, the histogram values are computed by counting the number of values lying inside each bin. If *sum*, *avg*, *min*, *max*, the histogram values are computed using the sum, the average, the minimum or the maximum of the values lying inside each bin respectively." + }, + "nbinsx": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Specifies the maximum number of desired bins. This value will be used in an algorithm that will decide the optimal bin size such that the histogram best visualizes the distribution of the data. Ignored if `xbins.size` is provided." + }, + "xbins": { + "start": { + "valType": "any", + "editType": "calc", + "description": "Sets the starting value for the x axis bins. Defaults to the minimum data value, shifted down if necessary to make nice round values and to remove ambiguous bin edges. For example, if most of the data is integers we shift the bin edges 0.5 down, so a `size` of 5 would have a default `start` of -0.5, so it is clear that 0-4 are in the first bin, 5-9 in the second, but continuous data gets a start of 0 and bins [0,5), [5,10) etc. Dates behave similarly, and `start` should be a date string. For category data, `start` is based on the category serial numbers, and defaults to -0.5. " + }, + "end": { + "valType": "any", + "editType": "calc", + "description": "Sets the end value for the x axis bins. The last bin may not end exactly at this value, we increment the bin edge by `size` from `start` until we reach or exceed `end`. Defaults to the maximum data value. Like `start`, for dates use a date string, and for category data `end` is based on the category serial numbers." + }, + "size": { + "valType": "any", + "editType": "calc", + "description": "Sets the size of each x axis bin. Default behavior: If `nbinsx` is 0 or omitted, we choose a nice round bin size such that the number of bins is about the same as the typical number of samples in each bin. If `nbinsx` is provided, we choose a nice round bin size giving no more than that many bins. For date data, use milliseconds or *M* for months, as in `axis.dtick`. For category data, the number of categories to bin together (always defaults to 1). " + }, + "editType": "calc", + "role": "object" + }, + "nbinsy": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Specifies the maximum number of desired bins. This value will be used in an algorithm that will decide the optimal bin size such that the histogram best visualizes the distribution of the data. Ignored if `ybins.size` is provided." + }, + "ybins": { + "start": { + "valType": "any", + "editType": "calc", + "description": "Sets the starting value for the y axis bins. Defaults to the minimum data value, shifted down if necessary to make nice round values and to remove ambiguous bin edges. For example, if most of the data is integers we shift the bin edges 0.5 down, so a `size` of 5 would have a default `start` of -0.5, so it is clear that 0-4 are in the first bin, 5-9 in the second, but continuous data gets a start of 0 and bins [0,5), [5,10) etc. Dates behave similarly, and `start` should be a date string. For category data, `start` is based on the category serial numbers, and defaults to -0.5. " + }, + "end": { + "valType": "any", + "editType": "calc", + "description": "Sets the end value for the y axis bins. The last bin may not end exactly at this value, we increment the bin edge by `size` from `start` until we reach or exceed `end`. Defaults to the maximum data value. Like `start`, for dates use a date string, and for category data `end` is based on the category serial numbers." + }, + "size": { + "valType": "any", + "editType": "calc", + "description": "Sets the size of each y axis bin. Default behavior: If `nbinsy` is 0 or omitted, we choose a nice round bin size such that the number of bins is about the same as the typical number of samples in each bin. If `nbinsy` is provided, we choose a nice round bin size giving no more than that many bins. For date data, use milliseconds or *M* for months, as in `axis.dtick`. For category data, the number of categories to bin together (always defaults to 1). " + }, + "editType": "calc", + "role": "object" + }, + "autobinx": { + "valType": "boolean", + "dflt": null, + "editType": "calc", + "description": "Obsolete: since v1.42 each bin attribute is auto-determined separately and `autobinx` is not needed. However, we accept `autobinx: true` or `false` and will update `xbins` accordingly before deleting `autobinx` from the trace." + }, + "autobiny": { + "valType": "boolean", + "dflt": null, + "editType": "calc", + "description": "Obsolete: since v1.42 each bin attribute is auto-determined separately and `autobiny` is not needed. However, we accept `autobiny: true` or `false` and will update `ybins` accordingly before deleting `autobiny` from the trace." + }, + "bingroup": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Set the `xbingroup` and `ybingroup` default prefix For example, setting a `bingroup` of *1* on two histogram2d traces will make them their x-bins and y-bins match separately." + }, + "xbingroup": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Set a group of histogram traces which will have compatible x-bin settings. Using `xbingroup`, histogram2d and histogram2dcontour traces (on axes of the same axis type) can have compatible x-bin settings. Note that the same `xbingroup` value can be used to set (1D) histogram `bingroup`" + }, + "ybingroup": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Set a group of histogram traces which will have compatible y-bin settings. Using `ybingroup`, histogram2d and histogram2dcontour traces (on axes of the same axis type) can have compatible y-bin settings. Note that the same `ybingroup` value can be used to set (1D) histogram `bingroup`" + }, + "xgap": { + "valType": "number", + "dflt": 0, + "min": 0, + "editType": "plot", + "description": "Sets the horizontal gap (in pixels) between bricks." + }, + "ygap": { + "valType": "number", + "dflt": 0, + "min": 0, + "editType": "plot", + "description": "Sets the vertical gap (in pixels) between bricks." + }, + "zsmooth": { + "valType": "enumerated", + "values": [ + "fast", + "best", + false + ], + "dflt": false, + "editType": "calc", + "description": "Picks a smoothing algorithm use to smooth `z` data." + }, + "xhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `x` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `xaxis.hoverformat`." + }, + "yhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `y` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `yaxis.hoverformat`." + }, + "zhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `z` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format By default the values are formatted using generic number format." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variable `z` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "showlegend": { + "valType": "boolean", + "dflt": false, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "zauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user." + }, + "zmin": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "zauto": false + }, + "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well." + }, + "zmax": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "zauto": false + }, + "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well." + }, + "zmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`zmin` and `zmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "colorbars" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "colorbars" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "colorbars" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "colorbars" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "colorbars" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "colorbars" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "colorbars" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "colorbars" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "colorbars" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "colorbars" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "colorbars", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "colorbars", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "colorbars", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "colorbars", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "colorbars" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "colorbars", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "colorbars", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "colorbars" + }, + { + "valType": "any", + "editType": "colorbars" + } + ], + "editType": "colorbars", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "colorbars", + "name": { + "valType": "string", + "editType": "colorbars", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "colorbars", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "colorbars", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "colorbars", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "colorbars", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars" + }, + "editType": "colorbars", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "colorbars" + } + }, + "editType": "colorbars", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "xcalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `x` date data." + }, + "ycalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `y` date data." + }, + "xaxis": { + "valType": "subplotid", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." + }, + "yaxis": { + "valType": "subplotid", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "ysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for y .", + "editType": "none" + }, + "zsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for z .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + } + } + }, + "histogram2dcontour": { + "meta": { + "hrName": "histogram_2d_contour", + "description": "The sample data from which statistics are computed is set in `x` and `y` (where `x` and `y` represent marginal distributions, binning is set in `xbins` and `ybins` in this case) or `z` (where `z` represent the 2D distribution and binning set, binning is set by `x` and `y` in this case). The resulting distribution is visualized as a contour plot." + }, + "categories": [ + "cartesian", + "svg", + "2dMap", + "contour", + "histogram", + "showLegend" + ], + "animatable": false, + "type": "histogram2dcontour", + "attributes": { + "type": "histogram2dcontour", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "showlegend": { + "valType": "boolean", + "dflt": true, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "x": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the sample data to be binned on the x axis." + }, + "y": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the sample data to be binned on the y axis." + }, + "z": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the aggregation data." + }, + "marker": { + "color": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the aggregation data." + }, + "editType": "calc", + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "histnorm": { + "valType": "enumerated", + "values": [ + "", + "percent", + "probability", + "density", + "probability density" + ], + "dflt": "", + "editType": "calc", + "description": "Specifies the type of normalization used for this histogram trace. If **, the span of each bar corresponds to the number of occurrences (i.e. the number of data points lying inside the bins). If *percent* / *probability*, the span of each bar corresponds to the percentage / fraction of occurrences with respect to the total number of sample points (here, the sum of all bin HEIGHTS equals 100% / 1). If *density*, the span of each bar corresponds to the number of occurrences in a bin divided by the size of the bin interval (here, the sum of all bin AREAS equals the total number of sample points). If *probability density*, the area of each bar corresponds to the probability that an event will fall into the corresponding bin (here, the sum of all bin AREAS equals 1)." + }, + "histfunc": { + "valType": "enumerated", + "values": [ + "count", + "sum", + "avg", + "min", + "max" + ], + "dflt": "count", + "editType": "calc", + "description": "Specifies the binning function used for this histogram trace. If *count*, the histogram values are computed by counting the number of values lying inside each bin. If *sum*, *avg*, *min*, *max*, the histogram values are computed using the sum, the average, the minimum or the maximum of the values lying inside each bin respectively." + }, + "nbinsx": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Specifies the maximum number of desired bins. This value will be used in an algorithm that will decide the optimal bin size such that the histogram best visualizes the distribution of the data. Ignored if `xbins.size` is provided." + }, + "xbins": { + "start": { + "valType": "any", + "editType": "calc", + "description": "Sets the starting value for the x axis bins. Defaults to the minimum data value, shifted down if necessary to make nice round values and to remove ambiguous bin edges. For example, if most of the data is integers we shift the bin edges 0.5 down, so a `size` of 5 would have a default `start` of -0.5, so it is clear that 0-4 are in the first bin, 5-9 in the second, but continuous data gets a start of 0 and bins [0,5), [5,10) etc. Dates behave similarly, and `start` should be a date string. For category data, `start` is based on the category serial numbers, and defaults to -0.5. " + }, + "end": { + "valType": "any", + "editType": "calc", + "description": "Sets the end value for the x axis bins. The last bin may not end exactly at this value, we increment the bin edge by `size` from `start` until we reach or exceed `end`. Defaults to the maximum data value. Like `start`, for dates use a date string, and for category data `end` is based on the category serial numbers." + }, + "size": { + "valType": "any", + "editType": "calc", + "description": "Sets the size of each x axis bin. Default behavior: If `nbinsx` is 0 or omitted, we choose a nice round bin size such that the number of bins is about the same as the typical number of samples in each bin. If `nbinsx` is provided, we choose a nice round bin size giving no more than that many bins. For date data, use milliseconds or *M* for months, as in `axis.dtick`. For category data, the number of categories to bin together (always defaults to 1). " + }, + "editType": "calc", + "role": "object" + }, + "nbinsy": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Specifies the maximum number of desired bins. This value will be used in an algorithm that will decide the optimal bin size such that the histogram best visualizes the distribution of the data. Ignored if `ybins.size` is provided." + }, + "ybins": { + "start": { + "valType": "any", + "editType": "calc", + "description": "Sets the starting value for the y axis bins. Defaults to the minimum data value, shifted down if necessary to make nice round values and to remove ambiguous bin edges. For example, if most of the data is integers we shift the bin edges 0.5 down, so a `size` of 5 would have a default `start` of -0.5, so it is clear that 0-4 are in the first bin, 5-9 in the second, but continuous data gets a start of 0 and bins [0,5), [5,10) etc. Dates behave similarly, and `start` should be a date string. For category data, `start` is based on the category serial numbers, and defaults to -0.5. " + }, + "end": { + "valType": "any", + "editType": "calc", + "description": "Sets the end value for the y axis bins. The last bin may not end exactly at this value, we increment the bin edge by `size` from `start` until we reach or exceed `end`. Defaults to the maximum data value. Like `start`, for dates use a date string, and for category data `end` is based on the category serial numbers." + }, + "size": { + "valType": "any", + "editType": "calc", + "description": "Sets the size of each y axis bin. Default behavior: If `nbinsy` is 0 or omitted, we choose a nice round bin size such that the number of bins is about the same as the typical number of samples in each bin. If `nbinsy` is provided, we choose a nice round bin size giving no more than that many bins. For date data, use milliseconds or *M* for months, as in `axis.dtick`. For category data, the number of categories to bin together (always defaults to 1). " + }, + "editType": "calc", + "role": "object" + }, + "autobinx": { + "valType": "boolean", + "dflt": null, + "editType": "calc", + "description": "Obsolete: since v1.42 each bin attribute is auto-determined separately and `autobinx` is not needed. However, we accept `autobinx: true` or `false` and will update `xbins` accordingly before deleting `autobinx` from the trace." + }, + "autobiny": { + "valType": "boolean", + "dflt": null, + "editType": "calc", + "description": "Obsolete: since v1.42 each bin attribute is auto-determined separately and `autobiny` is not needed. However, we accept `autobiny: true` or `false` and will update `ybins` accordingly before deleting `autobiny` from the trace." + }, + "bingroup": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Set the `xbingroup` and `ybingroup` default prefix For example, setting a `bingroup` of *1* on two histogram2d traces will make them their x-bins and y-bins match separately." + }, + "xbingroup": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Set a group of histogram traces which will have compatible x-bin settings. Using `xbingroup`, histogram2d and histogram2dcontour traces (on axes of the same axis type) can have compatible x-bin settings. Note that the same `xbingroup` value can be used to set (1D) histogram `bingroup`" + }, + "ybingroup": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Set a group of histogram traces which will have compatible y-bin settings. Using `ybingroup`, histogram2d and histogram2dcontour traces (on axes of the same axis type) can have compatible y-bin settings. Note that the same `ybingroup` value can be used to set (1D) histogram `bingroup`" + }, + "autocontour": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the contour level attributes are picked by an algorithm. If *true*, the number of contour levels can be set in `ncontours`. If *false*, set the contour level attributes in `contours`." + }, + "ncontours": { + "valType": "integer", + "dflt": 15, + "min": 1, + "editType": "calc", + "description": "Sets the maximum number of contour levels. The actual number of contours will be chosen automatically to be less than or equal to the value of `ncontours`. Has an effect only if `autocontour` is *true* or if `contours.size` is missing." + }, + "contours": { + "type": { + "valType": "enumerated", + "values": [ + "levels", + "constraint" + ], + "dflt": "levels", + "editType": "calc", + "description": "If `levels`, the data is represented as a contour plot with multiple levels displayed. If `constraint`, the data is represented as constraints with the invalid region shaded as specified by the `operation` and `value` parameters." + }, + "start": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "^autocontour": false + }, + "description": "Sets the starting contour level value. Must be less than `contours.end`" + }, + "end": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "^autocontour": false + }, + "description": "Sets the end contour level value. Must be more than `contours.start`" + }, + "size": { + "valType": "number", + "dflt": null, + "min": 0, + "editType": "plot", + "impliedEdits": { + "^autocontour": false + }, + "description": "Sets the step between each contour level. Must be positive." + }, + "coloring": { + "valType": "enumerated", + "values": [ + "fill", + "heatmap", + "lines", + "none" + ], + "dflt": "fill", + "editType": "calc", + "description": "Determines the coloring method showing the contour values. If *fill*, coloring is done evenly between each contour level If *heatmap*, a heatmap gradient coloring is applied between each contour level. If *lines*, coloring is done on the contour lines. If *none*, no coloring is applied on this trace." + }, + "showlines": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not the contour lines are drawn. Has an effect only if `contours.coloring` is set to *fill*." + }, + "showlabels": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Determines whether to label the contour lines with their values." + }, + "labelfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "style" + }, + "editType": "plot", + "description": "Sets the font used for labeling the contour levels. The default color comes from the lines, if shown. The default family and size come from `layout.font`.", + "role": "object" + }, + "labelformat": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets the contour label formatting rule using d3 formatting mini-language which is very similar to Python, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format" + }, + "operation": { + "valType": "enumerated", + "values": [ + "=", + "<", + ">=", + ">", + "<=", + "[]", + "()", + "[)", + "(]", + "][", + ")(", + "](", + ")[" + ], + "dflt": "=", + "editType": "calc", + "description": "Sets the constraint operation. *=* keeps regions equal to `value` *<* and *<=* keep regions less than `value` *>* and *>=* keep regions greater than `value` *[]*, *()*, *[)*, and *(]* keep regions inside `value[0]` to `value[1]` *][*, *)(*, *](*, *)[* keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter transforms." + }, + "value": { + "valType": "any", + "dflt": 0, + "editType": "calc", + "description": "Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values (=,<,>=,>,<=) *value* is expected to be a number. When `operation` is set to one of the interval values ([],(),[),(],][,)(,](,)[) *value* is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound." + }, + "editType": "calc", + "impliedEdits": { + "autocontour": false, + "role": "object" + }, + "role": "object" + }, + "line": { + "color": { + "valType": "color", + "editType": "style+colorbars", + "description": "Sets the color of the contour level. Has no effect if `contours.coloring` is set to *lines*." + }, + "width": { + "valType": "number", + "min": 0, + "editType": "style+colorbars", + "description": "Sets the contour line width in (in px)", + "dflt": 0.5 + }, + "dash": { + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ], + "dflt": "solid", + "editType": "style", + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." + }, + "smoothing": { + "valType": "number", + "min": 0, + "max": 1.3, + "dflt": 1, + "editType": "plot", + "description": "Sets the amount of smoothing for the contour lines, where *0* corresponds to no smoothing." + }, + "editType": "plot", + "role": "object" + }, + "xhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `x` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `xaxis.hoverformat`." + }, + "yhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `y` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `yaxis.hoverformat`." + }, + "zhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `z` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format By default the values are formatted using generic number format." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variable `z` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "zauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user." + }, + "zmin": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "zauto": false + }, + "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well." + }, + "zmax": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "zauto": false + }, + "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well." + }, + "zmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`zmin` and `zmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "colorbars" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "colorbars" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "colorbars" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "colorbars" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "colorbars" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "colorbars" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "colorbars" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "colorbars" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "colorbars" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "colorbars" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "colorbars", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "colorbars", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "colorbars", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "colorbars", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "colorbars" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "colorbars", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "colorbars", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "colorbars" + }, + { + "valType": "any", + "editType": "colorbars" + } + ], + "editType": "colorbars", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "colorbars", + "name": { + "valType": "string", + "editType": "colorbars", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "colorbars", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "colorbars", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "colorbars", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "colorbars", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars" + }, + "editType": "colorbars", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "colorbars" + } + }, + "editType": "colorbars", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "xcalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `x` date data." + }, + "ycalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `y` date data." + }, + "xaxis": { + "valType": "subplotid", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." + }, + "yaxis": { + "valType": "subplotid", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "ysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for y .", + "editType": "none" + }, + "zsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for z .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + } + } + }, + "contour": { + "meta": { + "description": "The data from which contour lines are computed is set in `z`. Data in `z` must be a {2D array} of numbers. Say that `z` has N rows and M columns, then by default, these N rows correspond to N y coordinates (set in `y` or auto-generated) and the M columns correspond to M x coordinates (set in `x` or auto-generated). By setting `transpose` to *true*, the above behavior is flipped." + }, + "categories": [ + "cartesian", + "svg", + "2dMap", + "contour", + "showLegend" + ], + "animatable": false, + "type": "contour", + "attributes": { + "type": "contour", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "showlegend": { + "valType": "boolean", + "dflt": true, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "z": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the z data." + }, + "x": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the x coordinates.", + "impliedEdits": { + "xtype": "array" + } + }, + "x0": { + "valType": "any", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step.", + "impliedEdits": { + "xtype": "scaled" + } + }, + "dx": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Sets the x coordinate step. See `x0` for more info.", + "impliedEdits": { + "xtype": "scaled" + } + }, + "y": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the y coordinates.", + "impliedEdits": { + "ytype": "array" + } + }, + "y0": { + "valType": "any", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step.", + "impliedEdits": { + "ytype": "scaled" + } + }, + "dy": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Sets the y coordinate step. See `y0` for more info.", + "impliedEdits": { + "ytype": "scaled" + } + }, + "xperiod": { + "valType": "any", + "dflt": 0, + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", + "impliedEdits": { + "xtype": "scaled" + } + }, + "yperiod": { + "valType": "any", + "dflt": 0, + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", + "impliedEdits": { + "ytype": "scaled" + } + }, + "xperiod0": { + "valType": "any", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." + }, + "yperiod0": { + "valType": "any", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." + }, + "xperiodalignment": { + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ], + "dflt": "middle", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis.", + "impliedEdits": { + "xtype": "scaled" + } + }, + "yperiodalignment": { + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ], + "dflt": "middle", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis.", + "impliedEdits": { + "ytype": "scaled" + } + }, + "text": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the text elements associated with each z value." + }, + "hovertext": { + "valType": "data_array", + "editType": "calc", + "description": "Same as `text`." + }, + "transpose": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Transposes the z data." + }, + "xtype": { + "valType": "enumerated", + "values": [ + "array", + "scaled" + ], + "editType": "calc+clearAxisTypes", + "description": "If *array*, the heatmap's x coordinates are given by *x* (the default behavior when `x` is provided). If *scaled*, the heatmap's x coordinates are given by *x0* and *dx* (the default behavior when `x` is not provided)." + }, + "ytype": { + "valType": "enumerated", + "values": [ + "array", + "scaled" + ], + "editType": "calc+clearAxisTypes", + "description": "If *array*, the heatmap's y coordinates are given by *y* (the default behavior when `y` is provided) If *scaled*, the heatmap's y coordinates are given by *y0* and *dy* (the default behavior when `y` is not provided)" + }, + "xhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `x` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `xaxis.hoverformat`." + }, + "yhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `y` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `yaxis.hoverformat`." + }, + "zhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `z` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format By default the values are formatted using generic number format." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "hoverongaps": { + "valType": "boolean", + "dflt": true, + "editType": "none", + "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the `z` data have hover labels associated with them." + }, + "connectgaps": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the `z` data are filled in. It is defaulted to true if `z` is a one dimensional array otherwise it is defaulted to false." + }, + "fillcolor": { + "valType": "color", + "editType": "calc", + "description": "Sets the fill color if `contours.type` is *constraint*. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." + }, + "autocontour": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the contour level attributes are picked by an algorithm. If *true*, the number of contour levels can be set in `ncontours`. If *false*, set the contour level attributes in `contours`." + }, + "ncontours": { + "valType": "integer", + "dflt": 15, + "min": 1, + "editType": "calc", + "description": "Sets the maximum number of contour levels. The actual number of contours will be chosen automatically to be less than or equal to the value of `ncontours`. Has an effect only if `autocontour` is *true* or if `contours.size` is missing." + }, + "contours": { + "type": { + "valType": "enumerated", + "values": [ + "levels", + "constraint" + ], + "dflt": "levels", + "editType": "calc", + "description": "If `levels`, the data is represented as a contour plot with multiple levels displayed. If `constraint`, the data is represented as constraints with the invalid region shaded as specified by the `operation` and `value` parameters." + }, + "start": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "^autocontour": false + }, + "description": "Sets the starting contour level value. Must be less than `contours.end`" + }, + "end": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "^autocontour": false + }, + "description": "Sets the end contour level value. Must be more than `contours.start`" + }, + "size": { + "valType": "number", + "dflt": null, + "min": 0, + "editType": "plot", + "impliedEdits": { + "^autocontour": false + }, + "description": "Sets the step between each contour level. Must be positive." + }, + "coloring": { + "valType": "enumerated", + "values": [ + "fill", + "heatmap", + "lines", + "none" + ], + "dflt": "fill", + "editType": "calc", + "description": "Determines the coloring method showing the contour values. If *fill*, coloring is done evenly between each contour level If *heatmap*, a heatmap gradient coloring is applied between each contour level. If *lines*, coloring is done on the contour lines. If *none*, no coloring is applied on this trace." + }, + "showlines": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not the contour lines are drawn. Has an effect only if `contours.coloring` is set to *fill*." + }, + "showlabels": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Determines whether to label the contour lines with their values." + }, + "labelfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "style" + }, + "editType": "plot", + "description": "Sets the font used for labeling the contour levels. The default color comes from the lines, if shown. The default family and size come from `layout.font`.", + "role": "object" + }, + "labelformat": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets the contour label formatting rule using d3 formatting mini-language which is very similar to Python, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format" + }, + "operation": { + "valType": "enumerated", + "values": [ + "=", + "<", + ">=", + ">", + "<=", + "[]", + "()", + "[)", + "(]", + "][", + ")(", + "](", + ")[" + ], + "dflt": "=", + "editType": "calc", + "description": "Sets the constraint operation. *=* keeps regions equal to `value` *<* and *<=* keep regions less than `value` *>* and *>=* keep regions greater than `value` *[]*, *()*, *[)*, and *(]* keep regions inside `value[0]` to `value[1]` *][*, *)(*, *](*, *)[* keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter transforms." + }, + "value": { + "valType": "any", + "dflt": 0, + "editType": "calc", + "description": "Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values (=,<,>=,>,<=) *value* is expected to be a number. When `operation` is set to one of the interval values ([],(),[),(],][,)(,](,)[) *value* is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound." + }, + "editType": "calc", + "impliedEdits": { + "autocontour": false, + "role": "object" + }, + "role": "object" + }, + "line": { + "color": { + "valType": "color", + "editType": "style+colorbars", + "description": "Sets the color of the contour level. Has no effect if `contours.coloring` is set to *lines*." + }, + "width": { + "valType": "number", + "min": 0, + "editType": "style+colorbars", + "description": "Sets the contour line width in (in px) Defaults to *0.5* when `contours.type` is *levels*. Defaults to *2* when `contour.type` is *constraint*." + }, + "dash": { + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ], + "dflt": "solid", + "editType": "style", + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." + }, + "smoothing": { + "valType": "number", + "min": 0, + "max": 1.3, + "dflt": 1, + "editType": "plot", + "description": "Sets the amount of smoothing for the contour lines, where *0* corresponds to no smoothing." + }, + "editType": "plot", + "role": "object" + }, + "zauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user." + }, + "zmin": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "zauto": false + }, + "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well." + }, + "zmax": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "zauto": false + }, + "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well." + }, + "zmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`zmin` and `zmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "colorbars" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "colorbars" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "colorbars" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "colorbars" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "colorbars" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "colorbars" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "colorbars" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "colorbars" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "colorbars" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "colorbars" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "colorbars", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "colorbars", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "colorbars", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "colorbars", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "colorbars" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "colorbars", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "colorbars", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "colorbars" + }, + { + "valType": "any", + "editType": "colorbars" + } + ], + "editType": "colorbars", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "colorbars", + "name": { + "valType": "string", + "editType": "colorbars", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "colorbars", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "colorbars", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "colorbars", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "colorbars", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars" + }, + "editType": "colorbars", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "colorbars" + } + }, + "editType": "colorbars", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "xcalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `x` date data." + }, + "ycalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `y` date data." + }, + "xaxis": { + "valType": "subplotid", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." + }, + "yaxis": { + "valType": "subplotid", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "zsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for z .", + "editType": "none" + }, + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "ysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for y .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + } + } + }, + "scatterternary": { + "meta": { + "hrName": "scatter_ternary", + "description": "Provides similar functionality to the *scatter* type but on a ternary phase diagram. The data is provided by at least two arrays out of `a`, `b`, `c` triplets." + }, + "categories": [ + "ternary", + "symbols", + "showLegend", + "scatter-like" + ], + "animatable": false, + "type": "scatterternary", + "attributes": { + "type": "scatterternary", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "showlegend": { + "valType": "boolean", + "dflt": true, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "selectedpoints": { + "valType": "any", + "editType": "calc", + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "a": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the quantity of component `a` in each data point. If `a`, `b`, and `c` are all provided, they need not be normalized, only the relative values matter. If only two arrays are provided they must be normalized to match `ternary.sum`." + }, + "b": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the quantity of component `a` in each data point. If `a`, `b`, and `c` are all provided, they need not be normalized, only the relative values matter. If only two arrays are provided they must be normalized to match `ternary.sum`." + }, + "c": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the quantity of component `a` in each data point. If `a`, `b`, and `c` are all provided, they need not be normalized, only the relative values matter. If only two arrays are provided they must be normalized to match `ternary.sum`." + }, + "sum": { + "valType": "number", + "dflt": 0, + "min": 0, + "editType": "calc", + "description": "The number each triplet should sum to, if only two of `a`, `b`, and `c` are provided. This overrides `ternary.sum` to normalize this specific trace, but does not affect the values displayed on the axes. 0 (or missing) means to use ternary.sum" + }, + "mode": { + "valType": "flaglist", + "flags": [ + "lines", + "markers", + "text" + ], + "extras": [ + "none" + ], + "editType": "calc", + "description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover. If there are less than 20 points and the trace is not stacked then the default is *lines+markers*. Otherwise, *lines*.", + "dflt": "markers" + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets text elements associated with each (a,b,c) point. If a single string, the same string appears over all the data points. If an array of strings, the items are mapped in order to the the data points in (a,b,c). If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." + }, + "texttemplate": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `a`, `b`, `c` and `text`.", + "arrayOk": true + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "style", + "description": "Sets hover text elements associated with each (a,b,c) point. If a single string, the same string appears over all the data points. If an array of strings, the items are mapped in order to the the data points in (a,b,c). To be seen, trace `hoverinfo` must contain a *text* flag." + }, + "line": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the line color." + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "style", + "description": "Sets the line width (in px)." + }, + "dash": { + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ], + "dflt": "solid", + "editType": "style", + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." + }, + "shape": { + "valType": "enumerated", + "values": [ + "linear", + "spline" + ], + "dflt": "linear", + "editType": "plot", + "description": "Determines the line shape. With *spline* the lines are drawn using spline interpolation. The other available values correspond to step-wise line shapes." + }, + "smoothing": { + "valType": "number", + "min": 0, + "max": 1.3, + "dflt": 1, + "editType": "plot", + "description": "Has an effect only if `shape` is set to *spline* Sets the amount of smoothing. *0* corresponds to no smoothing (equivalent to a *linear* shape)." + }, + "editType": "calc", + "role": "object" + }, + "connectgaps": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected." + }, + "cliponaxis": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not markers and text nodes are clipped about the subplot axes. To show markers and text nodes above axis lines and tick labels, make sure to set `xaxis.layer` and `yaxis.layer` to *below traces*." + }, + "fill": { + "valType": "enumerated", + "values": [ + "none", + "toself", + "tonext" + ], + "editType": "calc", + "description": "Sets the area to fill with a solid color. Use with `fillcolor` if not *none*. scatterternary has a subset of the options available to scatter. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape. *tonext* fills the space between two traces if one completely encloses the other (eg consecutive contour lines), and behaves like *toself* if there is no trace before it. *tonext* should not be used if one trace does not enclose the other.", + "dflt": "none" + }, + "fillcolor": { + "valType": "color", + "editType": "style", + "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." + }, + "marker": { + "symbol": { + "valType": "enumerated", + "values": [ + 0, + "0", + "circle", + 100, + "100", + "circle-open", + 200, + "200", + "circle-dot", + 300, + "300", + "circle-open-dot", + 1, + "1", + "square", + 101, + "101", + "square-open", + 201, + "201", + "square-dot", + 301, + "301", + "square-open-dot", + 2, + "2", + "diamond", + 102, + "102", + "diamond-open", + 202, + "202", + "diamond-dot", + 302, + "302", + "diamond-open-dot", + 3, + "3", + "cross", + 103, + "103", + "cross-open", + 203, + "203", + "cross-dot", + 303, + "303", + "cross-open-dot", + 4, + "4", + "x", + 104, + "104", + "x-open", + 204, + "204", + "x-dot", + 304, + "304", + "x-open-dot", + 5, + "5", + "triangle-up", + 105, + "105", + "triangle-up-open", + 205, + "205", + "triangle-up-dot", + 305, + "305", + "triangle-up-open-dot", + 6, + "6", + "triangle-down", + 106, + "106", + "triangle-down-open", + 206, + "206", + "triangle-down-dot", + 306, + "306", + "triangle-down-open-dot", + 7, + "7", + "triangle-left", + 107, + "107", + "triangle-left-open", + 207, + "207", + "triangle-left-dot", + 307, + "307", + "triangle-left-open-dot", + 8, + "8", + "triangle-right", + 108, + "108", + "triangle-right-open", + 208, + "208", + "triangle-right-dot", + 308, + "308", + "triangle-right-open-dot", + 9, + "9", + "triangle-ne", + 109, + "109", + "triangle-ne-open", + 209, + "209", + "triangle-ne-dot", + 309, + "309", + "triangle-ne-open-dot", + 10, + "10", + "triangle-se", + 110, + "110", + "triangle-se-open", + 210, + "210", + "triangle-se-dot", + 310, + "310", + "triangle-se-open-dot", + 11, + "11", + "triangle-sw", + 111, + "111", + "triangle-sw-open", + 211, + "211", + "triangle-sw-dot", + 311, + "311", + "triangle-sw-open-dot", + 12, + "12", + "triangle-nw", + 112, + "112", + "triangle-nw-open", + 212, + "212", + "triangle-nw-dot", + 312, + "312", + "triangle-nw-open-dot", + 13, + "13", + "pentagon", + 113, + "113", + "pentagon-open", + 213, + "213", + "pentagon-dot", + 313, + "313", + "pentagon-open-dot", + 14, + "14", + "hexagon", + 114, + "114", + "hexagon-open", + 214, + "214", + "hexagon-dot", + 314, + "314", + "hexagon-open-dot", + 15, + "15", + "hexagon2", + 115, + "115", + "hexagon2-open", + 215, + "215", + "hexagon2-dot", + 315, + "315", + "hexagon2-open-dot", + 16, + "16", + "octagon", + 116, + "116", + "octagon-open", + 216, + "216", + "octagon-dot", + 316, + "316", + "octagon-open-dot", + 17, + "17", + "star", + 117, + "117", + "star-open", + 217, + "217", + "star-dot", + 317, + "317", + "star-open-dot", + 18, + "18", + "hexagram", + 118, + "118", + "hexagram-open", + 218, + "218", + "hexagram-dot", + 318, + "318", + "hexagram-open-dot", + 19, + "19", + "star-triangle-up", + 119, + "119", + "star-triangle-up-open", + 219, + "219", + "star-triangle-up-dot", + 319, + "319", + "star-triangle-up-open-dot", + 20, + "20", + "star-triangle-down", + 120, + "120", + "star-triangle-down-open", + 220, + "220", + "star-triangle-down-dot", + 320, + "320", + "star-triangle-down-open-dot", + 21, + "21", + "star-square", + 121, + "121", + "star-square-open", + 221, + "221", + "star-square-dot", + 321, + "321", + "star-square-open-dot", + 22, + "22", + "star-diamond", + 122, + "122", + "star-diamond-open", + 222, + "222", + "star-diamond-dot", + 322, + "322", + "star-diamond-open-dot", + 23, + "23", + "diamond-tall", + 123, + "123", + "diamond-tall-open", + 223, + "223", + "diamond-tall-dot", + 323, + "323", + "diamond-tall-open-dot", + 24, + "24", + "diamond-wide", + 124, + "124", + "diamond-wide-open", + 224, + "224", + "diamond-wide-dot", + 324, + "324", + "diamond-wide-open-dot", + 25, + "25", + "hourglass", + 125, + "125", + "hourglass-open", + 26, + "26", + "bowtie", + 126, + "126", + "bowtie-open", + 27, + "27", + "circle-cross", + 127, + "127", + "circle-cross-open", + 28, + "28", + "circle-x", + 128, + "128", + "circle-x-open", + 29, + "29", + "square-cross", + 129, + "129", + "square-cross-open", + 30, + "30", + "square-x", + 130, + "130", + "square-x-open", + 31, + "31", + "diamond-cross", + 131, + "131", + "diamond-cross-open", + 32, + "32", + "diamond-x", + 132, + "132", + "diamond-x-open", + 33, + "33", + "cross-thin", + 133, + "133", + "cross-thin-open", + 34, + "34", + "x-thin", + 134, + "134", + "x-thin-open", + 35, + "35", + "asterisk", + 135, + "135", + "asterisk-open", + 36, + "36", + "hash", + 136, + "136", + "hash-open", + 236, + "236", + "hash-dot", + 336, + "336", + "hash-open-dot", + 37, + "37", + "y-up", + 137, + "137", + "y-up-open", + 38, + "38", + "y-down", + 138, + "138", + "y-down-open", + 39, + "39", + "y-left", + 139, + "139", + "y-left-open", + 40, + "40", + "y-right", + 140, + "140", + "y-right-open", + 41, + "41", + "line-ew", + 141, + "141", + "line-ew-open", + 42, + "42", + "line-ns", + 142, + "142", + "line-ns-open", + 43, + "43", + "line-ne", + 143, + "143", + "line-ne-open", + 44, + "44", + "line-nw", + 144, + "144", + "line-nw-open", + 45, + "45", + "arrow-up", + 145, + "145", + "arrow-up-open", + 46, + "46", + "arrow-down", + 146, + "146", + "arrow-down-open", + 47, + "47", + "arrow-left", + 147, + "147", + "arrow-left-open", + 48, + "48", + "arrow-right", + 148, + "148", + "arrow-right-open", + 49, + "49", + "arrow-bar-up", + 149, + "149", + "arrow-bar-up-open", + 50, + "50", + "arrow-bar-down", + 150, + "150", + "arrow-bar-down-open", + 51, + "51", + "arrow-bar-left", + 151, + "151", + "arrow-bar-left-open", + 52, + "52", + "arrow-bar-right", + 152, + "152", + "arrow-bar-right-open" + ], + "dflt": "circle", + "arrayOk": true, + "editType": "style", + "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "arrayOk": true, + "editType": "style", + "description": "Sets the marker opacity." + }, + "maxdisplayed": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "plot", + "description": "Sets a maximum number of points to be drawn on the graph. *0* corresponds to no limit." + }, + "size": { + "valType": "number", + "min": 0, + "dflt": 6, + "arrayOk": true, + "editType": "calc", + "description": "Sets the marker size (in px)." + }, + "sizeref": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`." + }, + "sizemin": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points." + }, + "sizemode": { + "valType": "enumerated", + "values": [ + "diameter", + "area" + ], + "dflt": "diameter", + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels." + }, + "line": { + "width": { + "valType": "number", + "min": 0, + "arrayOk": true, + "editType": "style", + "description": "Sets the width (in px) of the lines bounding the marker points." + }, + "editType": "calc", + "color": { + "valType": "color", + "arrayOk": true, + "editType": "style", + "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "role": "object", + "widthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for width .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "gradient": { + "type": { + "valType": "enumerated", + "values": [ + "radial", + "horizontal", + "vertical", + "none" + ], + "arrayOk": true, + "dflt": "none", + "editType": "calc", + "description": "Sets the type of gradient used to fill the markers" + }, + "color": { + "valType": "color", + "arrayOk": true, + "editType": "calc", + "description": "Sets the final color of the gradient fill: the center color for radial, the right for horizontal, or the bottom for vertical." + }, + "editType": "calc", + "role": "object", + "typesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for type .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "editType": "calc", + "color": { + "valType": "color", + "arrayOk": true, + "editType": "style", + "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "colorbars" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "colorbars" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "colorbars" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "colorbars" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "colorbars" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "colorbars" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "colorbars" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "colorbars" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "colorbars" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "colorbars" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "colorbars", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "colorbars", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "colorbars", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "colorbars", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "colorbars" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "colorbars", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "colorbars", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "colorbars" + }, + { + "valType": "any", + "editType": "colorbars" + } + ], + "editType": "colorbars", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "colorbars", + "name": { + "valType": "string", + "editType": "colorbars", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "colorbars", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "colorbars", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "colorbars", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "colorbars", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars" + }, + "editType": "colorbars", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "colorbars" + } + }, + "editType": "colorbars", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "role": "object", + "symbolsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for symbol .", + "editType": "none" + }, + "opacitysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for opacity .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "textfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "style", + "arrayOk": true + }, + "editType": "calc", + "description": "Sets the text font.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "textposition": { + "valType": "enumerated", + "values": [ + "top left", + "top center", + "top right", + "middle left", + "middle center", + "middle right", + "bottom left", + "bottom center", + "bottom right" + ], + "dflt": "middle center", + "arrayOk": true, + "editType": "calc", + "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates." + }, + "selected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "style", + "description": "Sets the marker opacity of selected points." + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the marker color of selected points." + }, + "size": { + "valType": "number", + "min": 0, + "editType": "style", + "description": "Sets the marker size of selected points." + }, + "editType": "style", + "role": "object" + }, + "textfont": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the text font color of selected points." + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "unselected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "style", + "description": "Sets the marker opacity of unselected points, applied only when a selection exists." + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the marker color of unselected points, applied only when a selection exists." + }, + "size": { + "valType": "number", + "min": 0, + "editType": "style", + "description": "Sets the marker size of unselected points, applied only when a selection exists." + }, + "editType": "style", + "role": "object" + }, + "textfont": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the text font color of unselected points, applied only when a selection exists." + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "a", + "b", + "c", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hoveron": { + "valType": "flaglist", + "flags": [ + "points", + "fills" + ], + "editType": "style", + "description": "Do the hover effects highlight individual points (markers or line points) or do they highlight filled regions? If the fill is *toself* or *tonext* and there are no markers or text, then the default is *fills*, otherwise it is *points*." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "subplot": { + "valType": "subplotid", + "dflt": "ternary", + "editType": "calc", + "description": "Sets a reference between this trace's data coordinates and a ternary subplot. If *ternary* (the default value), the data refer to `layout.ternary`. If *ternary2*, the data refer to `layout.ternary2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "asrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for a .", + "editType": "none" + }, + "bsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for b .", + "editType": "none" + }, + "csrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for c .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "texttemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "textpositionsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for textposition .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + } + } + }, + "violin": { + "meta": { + "description": "In vertical (horizontal) violin plots, statistics are computed using `y` (`x`) values. By supplying an `x` (`y`) array, one violin per distinct x (y) value is drawn If no `x` (`y`) {array} is provided, a single violin is drawn. That violin position is then positioned with with `name` or with `x0` (`y0`) if provided." + }, + "categories": [ + "cartesian", + "svg", + "symbols", + "oriented", + "box-violin", + "showLegend", + "violinLayout", + "zoomScale" + ], + "animatable": false, + "type": "violin", + "attributes": { + "type": "violin", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "showlegend": { + "valType": "boolean", + "dflt": true, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "selectedpoints": { + "valType": "any", + "editType": "calc", + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "y": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the y sample data or coordinates. See overview for more info." + }, + "x": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the x sample data or coordinates. See overview for more info." + }, + "x0": { + "valType": "any", + "editType": "calc+clearAxisTypes", + "description": "Sets the x coordinate for single-box traces or the starting coordinate for multi-box traces set using q1/median/q3. See overview for more info." + }, + "y0": { + "valType": "any", + "editType": "calc+clearAxisTypes", + "description": "Sets the y coordinate for single-box traces or the starting coordinate for multi-box traces set using q1/median/q3. See overview for more info." + }, + "xhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `x` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `xaxis.hoverformat`." + }, + "yhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `y` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `yaxis.hoverformat`." + }, + "name": { + "valType": "string", + "editType": "calc+clearAxisTypes", + "description": "Sets the trace name. The trace name appear as the legend item and on hover. For violin traces, the name will also be used for the position coordinate, if `x` and `x0` (`y` and `y0` if horizontal) are missing and the position axis is categorical. Note that the trace name is also used as a default value for attribute `scalegroup` (please see its description for details)." + }, + "orientation": { + "valType": "enumerated", + "values": [ + "v", + "h" + ], + "editType": "calc+clearAxisTypes", + "description": "Sets the orientation of the violin(s). If *v* (*h*), the distribution is visualized along the vertical (horizontal)." + }, + "bandwidth": { + "valType": "number", + "min": 0, + "editType": "calc", + "description": "Sets the bandwidth used to compute the kernel density estimate. By default, the bandwidth is determined by Silverman's rule of thumb." + }, + "scalegroup": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "If there are multiple violins that should be sized according to to some metric (see `scalemode`), link them by providing a non-empty group id here shared by every trace in the same group. If a violin's `width` is undefined, `scalegroup` will default to the trace's name. In this case, violins with the same names will be linked together" + }, + "scalemode": { + "valType": "enumerated", + "values": [ + "width", + "count" + ], + "dflt": "width", + "editType": "calc", + "description": "Sets the metric by which the width of each violin is determined.*width* means each violin has the same (max) width*count* means the violins are scaled by the number of sample points makingup each violin." + }, + "spanmode": { + "valType": "enumerated", + "values": [ + "soft", + "hard", + "manual" + ], + "dflt": "soft", + "editType": "calc", + "description": "Sets the method by which the span in data space where the density function will be computed. *soft* means the span goes from the sample's minimum value minus two bandwidths to the sample's maximum value plus two bandwidths. *hard* means the span goes from the sample's minimum to its maximum value. For custom span settings, use mode *manual* and fill in the `span` attribute." + }, + "span": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "calc" + }, + { + "valType": "any", + "editType": "calc" + } + ], + "editType": "calc", + "description": "Sets the span in data space for which the density function will be computed. Has an effect only when `spanmode` is set to *manual*." + }, + "line": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the color of line bounding the violin(s)." + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "style", + "description": "Sets the width (in px) of line bounding the violin(s)." + }, + "editType": "plot", + "role": "object" + }, + "fillcolor": { + "valType": "color", + "editType": "style", + "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." + }, + "points": { + "valType": "enumerated", + "values": [ + "all", + "outliers", + "suspectedoutliers", + false + ], + "editType": "calc", + "description": "If *outliers*, only the sample points lying outside the whiskers are shown If *suspectedoutliers*, the outlier points are shown and points either less than 4*Q1-3*Q3 or greater than 4*Q3-3*Q1 are highlighted (see `outliercolor`) If *all*, all sample points are shown If *false*, only the violins are shown with no sample points. Defaults to *suspectedoutliers* when `marker.outliercolor` or `marker.line.outliercolor` is set, otherwise defaults to *outliers*." + }, + "jitter": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc", + "description": "Sets the amount of jitter in the sample points drawn. If *0*, the sample points align along the distribution axis. If *1*, the sample points are drawn in a random jitter of width equal to the width of the violins." + }, + "pointpos": { + "valType": "number", + "min": -2, + "max": 2, + "editType": "calc", + "description": "Sets the position of the sample points in relation to the violins. If *0*, the sample points are places over the center of the violins. Positive (negative) values correspond to positions to the right (left) for vertical violins and above (below) for horizontal violins." + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Sets the width of the violin in data coordinates. If *0* (default value) the width is automatically selected based on the positions of other violin traces in the same subplot." + }, + "marker": { + "outliercolor": { + "valType": "color", + "dflt": "rgba(0, 0, 0, 0)", + "editType": "style", + "description": "Sets the color of the outlier sample points." + }, + "symbol": { + "valType": "enumerated", + "values": [ + 0, + "0", + "circle", + 100, + "100", + "circle-open", + 200, + "200", + "circle-dot", + 300, + "300", + "circle-open-dot", + 1, + "1", + "square", + 101, + "101", + "square-open", + 201, + "201", + "square-dot", + 301, + "301", + "square-open-dot", + 2, + "2", + "diamond", + 102, + "102", + "diamond-open", + 202, + "202", + "diamond-dot", + 302, + "302", + "diamond-open-dot", + 3, + "3", + "cross", + 103, + "103", + "cross-open", + 203, + "203", + "cross-dot", + 303, + "303", + "cross-open-dot", + 4, + "4", + "x", + 104, + "104", + "x-open", + 204, + "204", + "x-dot", + 304, + "304", + "x-open-dot", + 5, + "5", + "triangle-up", + 105, + "105", + "triangle-up-open", + 205, + "205", + "triangle-up-dot", + 305, + "305", + "triangle-up-open-dot", + 6, + "6", + "triangle-down", + 106, + "106", + "triangle-down-open", + 206, + "206", + "triangle-down-dot", + 306, + "306", + "triangle-down-open-dot", + 7, + "7", + "triangle-left", + 107, + "107", + "triangle-left-open", + 207, + "207", + "triangle-left-dot", + 307, + "307", + "triangle-left-open-dot", + 8, + "8", + "triangle-right", + 108, + "108", + "triangle-right-open", + 208, + "208", + "triangle-right-dot", + 308, + "308", + "triangle-right-open-dot", + 9, + "9", + "triangle-ne", + 109, + "109", + "triangle-ne-open", + 209, + "209", + "triangle-ne-dot", + 309, + "309", + "triangle-ne-open-dot", + 10, + "10", + "triangle-se", + 110, + "110", + "triangle-se-open", + 210, + "210", + "triangle-se-dot", + 310, + "310", + "triangle-se-open-dot", + 11, + "11", + "triangle-sw", + 111, + "111", + "triangle-sw-open", + 211, + "211", + "triangle-sw-dot", + 311, + "311", + "triangle-sw-open-dot", + 12, + "12", + "triangle-nw", + 112, + "112", + "triangle-nw-open", + 212, + "212", + "triangle-nw-dot", + 312, + "312", + "triangle-nw-open-dot", + 13, + "13", + "pentagon", + 113, + "113", + "pentagon-open", + 213, + "213", + "pentagon-dot", + 313, + "313", + "pentagon-open-dot", + 14, + "14", + "hexagon", + 114, + "114", + "hexagon-open", + 214, + "214", + "hexagon-dot", + 314, + "314", + "hexagon-open-dot", + 15, + "15", + "hexagon2", + 115, + "115", + "hexagon2-open", + 215, + "215", + "hexagon2-dot", + 315, + "315", + "hexagon2-open-dot", + 16, + "16", + "octagon", + 116, + "116", + "octagon-open", + 216, + "216", + "octagon-dot", + 316, + "316", + "octagon-open-dot", + 17, + "17", + "star", + 117, + "117", + "star-open", + 217, + "217", + "star-dot", + 317, + "317", + "star-open-dot", + 18, + "18", + "hexagram", + 118, + "118", + "hexagram-open", + 218, + "218", + "hexagram-dot", + 318, + "318", + "hexagram-open-dot", + 19, + "19", + "star-triangle-up", + 119, + "119", + "star-triangle-up-open", + 219, + "219", + "star-triangle-up-dot", + 319, + "319", + "star-triangle-up-open-dot", + 20, + "20", + "star-triangle-down", + 120, + "120", + "star-triangle-down-open", + 220, + "220", + "star-triangle-down-dot", + 320, + "320", + "star-triangle-down-open-dot", + 21, + "21", + "star-square", + 121, + "121", + "star-square-open", + 221, + "221", + "star-square-dot", + 321, + "321", + "star-square-open-dot", + 22, + "22", + "star-diamond", + 122, + "122", + "star-diamond-open", + 222, + "222", + "star-diamond-dot", + 322, + "322", + "star-diamond-open-dot", + 23, + "23", + "diamond-tall", + 123, + "123", + "diamond-tall-open", + 223, + "223", + "diamond-tall-dot", + 323, + "323", + "diamond-tall-open-dot", + 24, + "24", + "diamond-wide", + 124, + "124", + "diamond-wide-open", + 224, + "224", + "diamond-wide-dot", + 324, + "324", + "diamond-wide-open-dot", + 25, + "25", + "hourglass", + 125, + "125", + "hourglass-open", + 26, + "26", + "bowtie", + 126, + "126", + "bowtie-open", + 27, + "27", + "circle-cross", + 127, + "127", + "circle-cross-open", + 28, + "28", + "circle-x", + 128, + "128", + "circle-x-open", + 29, + "29", + "square-cross", + 129, + "129", + "square-cross-open", + 30, + "30", + "square-x", + 130, + "130", + "square-x-open", + 31, + "31", + "diamond-cross", + 131, + "131", + "diamond-cross-open", + 32, + "32", + "diamond-x", + 132, + "132", + "diamond-x-open", + 33, + "33", + "cross-thin", + 133, + "133", + "cross-thin-open", + 34, + "34", + "x-thin", + 134, + "134", + "x-thin-open", + 35, + "35", + "asterisk", + 135, + "135", + "asterisk-open", + 36, + "36", + "hash", + 136, + "136", + "hash-open", + 236, + "236", + "hash-dot", + 336, + "336", + "hash-open-dot", + 37, + "37", + "y-up", + 137, + "137", + "y-up-open", + 38, + "38", + "y-down", + 138, + "138", + "y-down-open", + 39, + "39", + "y-left", + 139, + "139", + "y-left-open", + 40, + "40", + "y-right", + 140, + "140", + "y-right-open", + 41, + "41", + "line-ew", + 141, + "141", + "line-ew-open", + 42, + "42", + "line-ns", + 142, + "142", + "line-ns-open", + 43, + "43", + "line-ne", + 143, + "143", + "line-ne-open", + 44, + "44", + "line-nw", + 144, + "144", + "line-nw-open", + 45, + "45", + "arrow-up", + 145, + "145", + "arrow-up-open", + 46, + "46", + "arrow-down", + 146, + "146", + "arrow-down-open", + 47, + "47", + "arrow-left", + 147, + "147", + "arrow-left-open", + 48, + "48", + "arrow-right", + 148, + "148", + "arrow-right-open", + 49, + "49", + "arrow-bar-up", + 149, + "149", + "arrow-bar-up-open", + 50, + "50", + "arrow-bar-down", + 150, + "150", + "arrow-bar-down-open", + 51, + "51", + "arrow-bar-left", + 151, + "151", + "arrow-bar-left-open", + 52, + "52", + "arrow-bar-right", + 152, + "152", + "arrow-bar-right-open" + ], + "dflt": "circle", + "arrayOk": false, + "editType": "plot", + "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "arrayOk": false, + "editType": "style", + "description": "Sets the marker opacity.", + "dflt": 1 + }, + "size": { + "valType": "number", + "min": 0, + "dflt": 6, + "arrayOk": false, + "editType": "calc", + "description": "Sets the marker size (in px)." + }, + "color": { + "valType": "color", + "arrayOk": false, + "editType": "style", + "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." + }, + "line": { + "color": { + "valType": "color", + "arrayOk": false, + "editType": "style", + "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set.", + "dflt": "#444" + }, + "width": { + "valType": "number", + "min": 0, + "arrayOk": false, + "editType": "style", + "description": "Sets the width (in px) of the lines bounding the marker points.", + "dflt": 0 + }, + "outliercolor": { + "valType": "color", + "editType": "style", + "description": "Sets the border line color of the outlier sample points. Defaults to marker.color" + }, + "outlierwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "style", + "description": "Sets the border line width (in px) of the outlier sample points." + }, + "editType": "style", + "role": "object" + }, + "editType": "plot", + "role": "object" + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets the text elements associated with each sample value. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "style", + "description": "Same as `text`." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "box": { + "visible": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Determines if an miniature box plot is drawn inside the violins. " + }, + "width": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.25, + "editType": "plot", + "description": "Sets the width of the inner box plots relative to the violins' width. For example, with 1, the inner box plots are as wide as the violins." + }, + "fillcolor": { + "valType": "color", + "editType": "style", + "description": "Sets the inner box plot fill color." + }, + "line": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the inner box plot bounding line color." + }, + "width": { + "valType": "number", + "min": 0, + "editType": "style", + "description": "Sets the inner box plot bounding line width." + }, + "editType": "style", + "role": "object" + }, + "editType": "plot", + "role": "object" + }, + "meanline": { + "visible": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Determines if a line corresponding to the sample's mean is shown inside the violins. If `box.visible` is turned on, the mean line is drawn inside the inner box. Otherwise, the mean line is drawn from one side of the violin to other." + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the mean line color." + }, + "width": { + "valType": "number", + "min": 0, + "editType": "style", + "description": "Sets the mean line width." + }, + "editType": "plot", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "both", + "positive", + "negative" + ], + "dflt": "both", + "editType": "calc", + "description": "Determines on which side of the position value the density function making up one half of a violin is plotted. Useful when comparing two violin traces under *overlay* mode, where one trace has `side` set to *positive* and the other to *negative*." + }, + "offsetgroup": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up." + }, + "alignmentgroup": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently." + }, + "selected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "style", + "description": "Sets the marker opacity of selected points." + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the marker color of selected points." + }, + "size": { + "valType": "number", + "min": 0, + "editType": "style", + "description": "Sets the marker size of selected points." + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "unselected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "style", + "description": "Sets the marker opacity of unselected points, applied only when a selection exists." + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the marker color of unselected points, applied only when a selection exists." + }, + "size": { + "valType": "number", + "min": 0, + "editType": "style", + "description": "Sets the marker size of unselected points, applied only when a selection exists." + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "hoveron": { + "valType": "flaglist", + "flags": [ + "violins", + "points", + "kde" + ], + "dflt": "violins+points+kde", + "extras": [ + "all" + ], + "editType": "style", + "description": "Do the hover effects highlight individual violins or sample points or the kernel density estimate or any combination of them?" + }, + "xaxis": { + "valType": "subplotid", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." + }, + "yaxis": { + "valType": "subplotid", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "ysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for y .", + "editType": "none" + }, + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + } + }, + "layoutAttributes": { + "violinmode": { + "valType": "enumerated", + "values": [ + "group", + "overlay" + ], + "dflt": "overlay", + "editType": "calc", + "description": "Determines how violins at the same location coordinate are displayed on the graph. If *group*, the violins are plotted next to one another centered around the shared location. If *overlay*, the violins are plotted over one another, you might need to set *opacity* to see them multiple violins. Has no effect on traces that have *width* set." + }, + "violingap": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.3, + "editType": "calc", + "description": "Sets the gap (in plot fraction) between violins of adjacent location coordinates. Has no effect on traces that have *width* set." + }, + "violingroupgap": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.3, + "editType": "calc", + "description": "Sets the gap (in plot fraction) between violins of the same location coordinate. Has no effect on traces that have *width* set." + } + } + }, + "funnel": { + "meta": { + "description": "Visualize stages in a process using length-encoded bars. This trace can be used to show data in either a part-to-whole representation wherein each item appears in a single stage, or in a \"drop-off\" representation wherein each item appears in each stage it traversed. See also the \"funnelarea\" trace type for a different approach to visualizing funnel data." + }, + "categories": [ + "bar-like", + "cartesian", + "svg", + "oriented", + "showLegend", + "zoomScale" + ], + "animatable": false, + "type": "funnel", + "attributes": { + "type": "funnel", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "showlegend": { + "valType": "boolean", + "dflt": true, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "selectedpoints": { + "valType": "any", + "editType": "calc", + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "x": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the x coordinates." + }, + "x0": { + "valType": "any", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step." + }, + "dx": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Sets the x coordinate step. See `x0` for more info." + }, + "y": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the y coordinates." + }, + "y0": { + "valType": "any", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step." + }, + "dy": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Sets the y coordinate step. See `y0` for more info." + }, + "xperiod": { + "valType": "any", + "dflt": 0, + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." + }, + "yperiod": { + "valType": "any", + "dflt": 0, + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." + }, + "xperiod0": { + "valType": "any", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." + }, + "yperiod0": { + "valType": "any", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." + }, + "xperiodalignment": { + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ], + "dflt": "middle", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis." + }, + "yperiodalignment": { + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ], + "dflt": "middle", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis." + }, + "xhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `x` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `xaxis.hoverformat`." + }, + "yhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `y` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `yaxis.hoverformat`." + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "style", + "description": "Sets hover text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `percentInitial`, `percentPrevious` and `percentTotal`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "name", + "x", + "y", + "text", + "percent initial", + "percent previous", + "percent total" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "textinfo": { + "valType": "flaglist", + "flags": [ + "label", + "text", + "percent initial", + "percent previous", + "percent total", + "value" + ], + "extras": [ + "none" + ], + "editType": "plot", + "arrayOk": false, + "description": "Determines which trace information appear on the graph. In the case of having multiple funnels, percentages & totals are computed separately (per trace)." + }, + "texttemplate": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `percentInitial`, `percentPrevious`, `percentTotal`, `label` and `value`.", + "arrayOk": true + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." + }, + "textposition": { + "valType": "enumerated", + "values": [ + "inside", + "outside", + "auto", + "none" + ], + "dflt": "auto", + "arrayOk": true, + "editType": "calc", + "description": "Specifies the location of the `text`. *inside* positions `text` inside, next to the bar end (rotated and scaled if needed). *outside* positions `text` outside, next to the bar end (scaled if needed), unless there is another bar stacked on this one, then the text gets pushed inside. *auto* tries to position `text` inside the bar, but if the bar is too small and no bar is stacked on this one the text is moved outside. If *none*, no text appears." + }, + "insidetextanchor": { + "valType": "enumerated", + "values": [ + "end", + "middle", + "start" + ], + "dflt": "middle", + "editType": "plot", + "description": "Determines if texts are kept at center or start/end points in `textposition` *inside* mode." + }, + "textangle": { + "valType": "angle", + "dflt": 0, + "editType": "plot", + "description": "Sets the angle of the tick labels with respect to the bar. For example, a `tickangle` of -90 draws the tick labels vertically. With *auto* the texts may automatically be rotated to fit with the maximum size in bars." + }, + "textfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "style", + "arrayOk": true + }, + "editType": "calc", + "description": "Sets the font used for `text`.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "insidetextfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "style", + "arrayOk": true + }, + "editType": "calc", + "description": "Sets the font used for `text` lying inside the bar.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "outsidetextfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "style", + "arrayOk": true + }, + "editType": "calc", + "description": "Sets the font used for `text` lying outside the bar.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "constraintext": { + "valType": "enumerated", + "values": [ + "inside", + "outside", + "both", + "none" + ], + "dflt": "both", + "editType": "calc", + "description": "Constrain the size of text inside or outside a bar to be no larger than the bar itself." + }, + "cliponaxis": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether the text nodes are clipped about the subplot axes. To show the text nodes above axis lines and tick labels, make sure to set `xaxis.layer` and `yaxis.layer` to *below traces*." + }, + "orientation": { + "valType": "enumerated", + "values": [ + "v", + "h" + ], + "editType": "calc+clearAxisTypes", + "description": "Sets the orientation of the funnels. With *v* (*h*), the value of the each bar spans along the vertical (horizontal). By default funnels are tend to be oriented horizontally; unless only *y* array is presented or orientation is set to *v*. Also regarding graphs including only 'horizontal' funnels, *autorange* on the *y-axis* are set to *reversed*." + }, + "offset": { + "valType": "number", + "dflt": null, + "arrayOk": false, + "editType": "calc", + "description": "Shifts the position where the bar is drawn (in position axis units). In *group* barmode, traces that set *offset* will be excluded and drawn in *overlay* mode instead." + }, + "width": { + "valType": "number", + "dflt": null, + "min": 0, + "arrayOk": false, + "editType": "calc", + "description": "Sets the bar width (in position axis units)." + }, + "marker": { + "line": { + "width": { + "valType": "number", + "min": 0, + "arrayOk": true, + "editType": "style", + "description": "Sets the width (in px) of the lines bounding the marker points.", + "dflt": 0 + }, + "editType": "calc", + "color": { + "valType": "color", + "arrayOk": true, + "editType": "style", + "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "role": "object", + "widthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for width .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "editType": "calc", + "color": { + "valType": "color", + "arrayOk": true, + "editType": "style", + "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "colorbars" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "colorbars" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "colorbars" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "colorbars" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "colorbars" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "colorbars" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "colorbars" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "colorbars" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "colorbars" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "colorbars" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "colorbars", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "colorbars", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "colorbars", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "colorbars", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "colorbars" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "colorbars", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "colorbars", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "colorbars" + }, + { + "valType": "any", + "editType": "colorbars" + } + ], + "editType": "colorbars", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "colorbars", + "name": { + "valType": "string", + "editType": "colorbars", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "colorbars", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "colorbars", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "colorbars", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "colorbars", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars" + }, + "editType": "colorbars", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "colorbars" + } + }, + "editType": "colorbars", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "opacity": { + "valType": "number", + "arrayOk": true, + "dflt": 1, + "min": 0, + "max": 1, + "editType": "style", + "description": "Sets the opacity of the bars." + }, + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + }, + "opacitysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for opacity .", + "editType": "none" + } + }, + "connector": { + "fillcolor": { + "valType": "color", + "editType": "style", + "description": "Sets the fill color." + }, + "line": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the line color.", + "dflt": "#444" + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "plot", + "description": "Sets the line width (in px)." + }, + "dash": { + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ], + "dflt": "solid", + "editType": "style", + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." + }, + "editType": "style", + "role": "object" + }, + "visible": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines if connector regions and lines are drawn." + }, + "editType": "plot", + "role": "object" + }, + "offsetgroup": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up." + }, + "alignmentgroup": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently." + }, + "xaxis": { + "valType": "subplotid", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." + }, + "yaxis": { + "valType": "subplotid", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "ysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for y .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "texttemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "textpositionsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for textposition .", + "editType": "none" + } + }, + "layoutAttributes": { + "funnelmode": { + "valType": "enumerated", + "values": [ + "stack", + "group", + "overlay" + ], + "dflt": "stack", + "editType": "calc", + "description": "Determines how bars at the same location coordinate are displayed on the graph. With *stack*, the bars are stacked on top of one another With *group*, the bars are plotted next to one another centered around the shared location. With *overlay*, the bars are plotted over one another, you might need to an *opacity* to see multiple bars." + }, + "funnelgap": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc", + "description": "Sets the gap (in plot fraction) between bars of adjacent location coordinates." + }, + "funnelgroupgap": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0, + "editType": "calc", + "description": "Sets the gap (in plot fraction) between bars of the same location coordinate." + } + } + }, + "waterfall": { + "meta": { + "description": "Draws waterfall trace which is useful graph to displays the contribution of various elements (either positive or negative) in a bar chart. The data visualized by the span of the bars is set in `y` if `orientation` is set th *v* (the default) and the labels are set in `x`. By setting `orientation` to *h*, the roles are interchanged." + }, + "categories": [ + "bar-like", + "cartesian", + "svg", + "oriented", + "showLegend", + "zoomScale" + ], + "animatable": false, + "type": "waterfall", + "attributes": { + "type": "waterfall", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "showlegend": { + "valType": "boolean", + "dflt": true, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "selectedpoints": { + "valType": "any", + "editType": "calc", + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "measure": { + "valType": "data_array", + "dflt": [], + "editType": "calc", + "description": "An array containing types of values. By default the values are considered as 'relative'. However; it is possible to use 'total' to compute the sums. Also 'absolute' could be applied to reset the computed total or to declare an initial value where needed." + }, + "base": { + "valType": "number", + "dflt": null, + "arrayOk": false, + "editType": "calc", + "description": "Sets where the bar base is drawn (in position axis units)." + }, + "x": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the x coordinates." + }, + "x0": { + "valType": "any", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step." + }, + "dx": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Sets the x coordinate step. See `x0` for more info." + }, + "y": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the y coordinates." + }, + "y0": { + "valType": "any", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step." + }, + "dy": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Sets the y coordinate step. See `y0` for more info." + }, + "xperiod": { + "valType": "any", + "dflt": 0, + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." + }, + "yperiod": { + "valType": "any", + "dflt": 0, + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." + }, + "xperiod0": { + "valType": "any", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." + }, + "yperiod0": { + "valType": "any", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." + }, + "xperiodalignment": { + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ], + "dflt": "middle", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis." + }, + "yperiodalignment": { + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ], + "dflt": "middle", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis." + }, + "xhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `x` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `xaxis.hoverformat`." + }, + "yhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `y` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `yaxis.hoverformat`." + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "style", + "description": "Sets hover text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `initial`, `delta` and `final`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "name", + "x", + "y", + "text", + "initial", + "delta", + "final" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "textinfo": { + "valType": "flaglist", + "flags": [ + "label", + "text", + "initial", + "delta", + "final" + ], + "extras": [ + "none" + ], + "editType": "plot", + "arrayOk": false, + "description": "Determines which trace information appear on the graph. In the case of having multiple waterfalls, totals are computed separately (per trace)." + }, + "texttemplate": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `initial`, `delta`, `final` and `label`.", + "arrayOk": true + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." + }, + "textposition": { + "valType": "enumerated", + "values": [ + "inside", + "outside", + "auto", + "none" + ], + "dflt": "auto", + "arrayOk": true, + "editType": "calc", + "description": "Specifies the location of the `text`. *inside* positions `text` inside, next to the bar end (rotated and scaled if needed). *outside* positions `text` outside, next to the bar end (scaled if needed), unless there is another bar stacked on this one, then the text gets pushed inside. *auto* tries to position `text` inside the bar, but if the bar is too small and no bar is stacked on this one the text is moved outside. If *none*, no text appears." + }, + "insidetextanchor": { + "valType": "enumerated", + "values": [ + "end", + "middle", + "start" + ], + "dflt": "end", + "editType": "plot", + "description": "Determines if texts are kept at center or start/end points in `textposition` *inside* mode." + }, + "textangle": { + "valType": "angle", + "dflt": "auto", + "editType": "plot", + "description": "Sets the angle of the tick labels with respect to the bar. For example, a `tickangle` of -90 draws the tick labels vertically. With *auto* the texts may automatically be rotated to fit with the maximum size in bars." + }, + "textfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "style", + "arrayOk": true + }, + "editType": "calc", + "description": "Sets the font used for `text`.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "insidetextfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "style", + "arrayOk": true + }, + "editType": "calc", + "description": "Sets the font used for `text` lying inside the bar.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "outsidetextfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "style", + "arrayOk": true + }, + "editType": "calc", + "description": "Sets the font used for `text` lying outside the bar.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "constraintext": { + "valType": "enumerated", + "values": [ + "inside", + "outside", + "both", + "none" + ], + "dflt": "both", + "editType": "calc", + "description": "Constrain the size of text inside or outside a bar to be no larger than the bar itself." + }, + "cliponaxis": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether the text nodes are clipped about the subplot axes. To show the text nodes above axis lines and tick labels, make sure to set `xaxis.layer` and `yaxis.layer` to *below traces*." + }, + "orientation": { + "valType": "enumerated", + "values": [ + "v", + "h" + ], + "editType": "calc+clearAxisTypes", + "description": "Sets the orientation of the bars. With *v* (*h*), the value of the each bar spans along the vertical (horizontal)." + }, + "offset": { + "valType": "number", + "dflt": null, + "arrayOk": true, + "editType": "calc", + "description": "Shifts the position where the bar is drawn (in position axis units). In *group* barmode, traces that set *offset* will be excluded and drawn in *overlay* mode instead." + }, + "width": { + "valType": "number", + "dflt": null, + "min": 0, + "arrayOk": true, + "editType": "calc", + "description": "Sets the bar width (in position axis units)." + }, + "increasing": { + "marker": { + "color": { + "valType": "color", + "arrayOk": false, + "editType": "style", + "description": "Sets the marker color of all increasing values." + }, + "line": { + "color": { + "valType": "color", + "arrayOk": false, + "editType": "style", + "description": "Sets the line color of all increasing values." + }, + "width": { + "valType": "number", + "min": 0, + "arrayOk": false, + "editType": "style", + "description": "Sets the line width of all increasing values.", + "dflt": 0 + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "decreasing": { + "marker": { + "color": { + "valType": "color", + "arrayOk": false, + "editType": "style", + "description": "Sets the marker color of all decreasing values." + }, + "line": { + "color": { + "valType": "color", + "arrayOk": false, + "editType": "style", + "description": "Sets the line color of all decreasing values." + }, + "width": { + "valType": "number", + "min": 0, + "arrayOk": false, + "editType": "style", + "description": "Sets the line width of all decreasing values.", + "dflt": 0 + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "totals": { + "marker": { + "color": { + "valType": "color", + "arrayOk": false, + "editType": "style", + "description": "Sets the marker color of all intermediate sums and total values." + }, + "line": { + "color": { + "valType": "color", + "arrayOk": false, + "editType": "style", + "description": "Sets the line color of all intermediate sums and total values." + }, + "width": { + "valType": "number", + "min": 0, + "arrayOk": false, + "editType": "style", + "description": "Sets the line width of all intermediate sums and total values.", + "dflt": 0 + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "connector": { + "line": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the line color.", + "dflt": "#444" + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "plot", + "description": "Sets the line width (in px)." + }, + "dash": { + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ], + "dflt": "solid", + "editType": "style", + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." + }, + "editType": "plot", + "role": "object" + }, + "mode": { + "valType": "enumerated", + "values": [ + "spanning", + "between" + ], + "dflt": "between", + "editType": "plot", + "description": "Sets the shape of connector lines." + }, + "visible": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines if connector lines are drawn. " + }, + "editType": "plot", + "role": "object" + }, + "offsetgroup": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up." + }, + "alignmentgroup": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently." + }, + "xaxis": { + "valType": "subplotid", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." + }, + "yaxis": { + "valType": "subplotid", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "measuresrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for measure .", + "editType": "none" + }, + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "ysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for y .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "texttemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "textpositionsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for textposition .", + "editType": "none" + }, + "offsetsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for offset .", + "editType": "none" + }, + "widthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for width .", + "editType": "none" + } + }, + "layoutAttributes": { + "waterfallmode": { + "valType": "enumerated", + "values": [ + "group", + "overlay" + ], + "dflt": "group", + "editType": "calc", + "description": "Determines how bars at the same location coordinate are displayed on the graph. With *group*, the bars are plotted next to one another centered around the shared location. With *overlay*, the bars are plotted over one another, you might need to an *opacity* to see multiple bars." + }, + "waterfallgap": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc", + "description": "Sets the gap (in plot fraction) between bars of adjacent location coordinates." + }, + "waterfallgroupgap": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0, + "editType": "calc", + "description": "Sets the gap (in plot fraction) between bars of the same location coordinate." + } + } + }, + "image": { + "meta": { + "description": "Display an image, i.e. data on a 2D regular raster. By default, when an image is displayed in a subplot, its y axis will be reversed (ie. `autorange: 'reversed'`), constrained to the domain (ie. `constrain: 'domain'`) and it will have the same scale as its x axis (ie. `scaleanchor: 'x,`) in order for pixels to be rendered as squares." + }, + "categories": [ + "cartesian", + "svg", + "2dMap", + "noSortingByValue" + ], + "animatable": false, + "type": "image", + "attributes": { + "type": "image", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "source": { + "valType": "string", + "editType": "calc", + "description": "Specifies the data URI of the image to be visualized. The URI consists of \"data:image/[][;base64],\"" + }, + "z": { + "valType": "data_array", + "editType": "calc", + "description": "A 2-dimensional array in which each element is an array of 3 or 4 numbers representing a color." + }, + "colormodel": { + "valType": "enumerated", + "values": [ + "rgb", + "rgba", + "rgba256", + "hsl", + "hsla" + ], + "editType": "calc", + "description": "Color model used to map the numerical color components described in `z` into colors. If `source` is specified, this attribute will be set to `rgba256` otherwise it defaults to `rgb`." + }, + "zsmooth": { + "valType": "enumerated", + "values": [ + "fast", + false + ], + "dflt": false, + "editType": "plot", + "description": "Picks a smoothing algorithm used to smooth `z` data. This only applies for image traces that use the `source` attribute." + }, + "zmin": { + "valType": "info_array", + "items": [ + { + "valType": "number", + "editType": "calc" + }, + { + "valType": "number", + "editType": "calc" + }, + { + "valType": "number", + "editType": "calc" + }, + { + "valType": "number", + "editType": "calc" + } + ], + "editType": "calc", + "description": "Array defining the lower bound for each color component. Note that the default value will depend on the colormodel. For the `rgb` colormodel, it is [0, 0, 0]. For the `rgba` colormodel, it is [0, 0, 0, 0]. For the `rgba256` colormodel, it is [0, 0, 0, 0]. For the `hsl` colormodel, it is [0, 0, 0]. For the `hsla` colormodel, it is [0, 0, 0, 0]." + }, + "zmax": { + "valType": "info_array", + "items": [ + { + "valType": "number", + "editType": "calc" + }, + { + "valType": "number", + "editType": "calc" + }, + { + "valType": "number", + "editType": "calc" + }, + { + "valType": "number", + "editType": "calc" + } + ], + "editType": "calc", + "description": "Array defining the higher bound for each color component. Note that the default value will depend on the colormodel. For the `rgb` colormodel, it is [255, 255, 255]. For the `rgba` colormodel, it is [255, 255, 255, 1]. For the `rgba256` colormodel, it is [255, 255, 255, 255]. For the `hsl` colormodel, it is [360, 100, 100]. For the `hsla` colormodel, it is [360, 100, 100, 1]." + }, + "x0": { + "valType": "any", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "description": "Set the image's x position." + }, + "y0": { + "valType": "any", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "description": "Set the image's y position." + }, + "dx": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Set the pixel's horizontal size." + }, + "dy": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Set the pixel's vertical size" + }, + "text": { + "valType": "data_array", + "editType": "plot", + "description": "Sets the text elements associated with each z value." + }, + "hovertext": { + "valType": "data_array", + "editType": "plot", + "description": "Same as `text`." + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "x", + "y", + "z", + "color", + "name", + "text" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "x+y+z+text+name", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `z`, `color` and `colormodel`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "xaxis": { + "valType": "subplotid", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." + }, + "yaxis": { + "valType": "subplotid", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "zsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for z .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + } + } + }, + "pie": { + "meta": { + "description": "A data visualized by the sectors of the pie is set in `values`. The sector labels are set in `labels`. The sector colors are set in `marker.colors`" + }, + "categories": [ + "pie-like", + "pie", + "showLegend" + ], + "animatable": false, + "type": "pie", + "attributes": { + "type": "pie", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "showlegend": { + "valType": "boolean", + "dflt": true, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "labels": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the sector labels. If `labels` entries are duplicated, we sum associated `values` or simply count occurrences if `values` is not provided. For other array attributes (including color) we use the first non-empty entry among all occurrences of the label." + }, + "label0": { + "valType": "number", + "dflt": 0, + "editType": "calc", + "description": "Alternate to `labels`. Builds a numeric set of labels. Use with `dlabel` where `label0` is the starting label and `dlabel` the step." + }, + "dlabel": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Sets the label step. See `label0` for more info." + }, + "values": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the values of the sectors. If omitted, we count occurrences of each label." + }, + "marker": { + "colors": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the color of each sector. If not specified, the default trace color set is used to pick the sector colors." + }, + "line": { + "color": { + "valType": "color", + "dflt": "#444", + "arrayOk": true, + "editType": "style", + "description": "Sets the color of the line enclosing each sector." + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 0, + "arrayOk": true, + "editType": "style", + "description": "Sets the width (in px) of the line enclosing each sector." + }, + "editType": "calc", + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + }, + "widthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for width .", + "editType": "none" + } + }, + "editType": "calc", + "role": "object", + "colorssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for colors .", + "editType": "none" + } + }, + "text": { + "valType": "data_array", + "editType": "plot", + "description": "Sets text elements associated with each sector. If trace `textinfo` contains a *text* flag, these elements will be seen on the chart. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "style", + "description": "Sets hover text elements associated with each sector. If a single string, the same string appears for all data points. If an array of string, the items are mapped in order of this trace's sectors. To be seen, trace `hoverinfo` must contain a *text* flag." + }, + "scalegroup": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "If there are multiple pie charts that should be sized according to their totals, link them by providing a non-empty group id here shared by every trace in the same group." + }, + "textinfo": { + "valType": "flaglist", + "flags": [ + "label", + "text", + "value", + "percent" + ], + "extras": [ + "none" + ], + "editType": "calc", + "description": "Determines which trace information appear on the graph." + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "label", + "text", + "value", + "percent", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `label`, `color`, `value`, `percent` and `text`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "texttemplate": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `label`, `color`, `value`, `percent` and `text`.", + "arrayOk": true + }, + "textposition": { + "valType": "enumerated", + "values": [ + "inside", + "outside", + "auto", + "none" + ], + "dflt": "auto", + "arrayOk": true, + "editType": "plot", + "description": "Specifies the location of the `textinfo`." + }, + "textfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "plot", + "arrayOk": true + }, + "editType": "plot", + "description": "Sets the font used for `textinfo`.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "insidetextorientation": { + "valType": "enumerated", + "values": [ + "horizontal", + "radial", + "tangential", + "auto" + ], + "dflt": "auto", + "editType": "plot", + "description": "Controls the orientation of the text inside chart sectors. When set to *auto*, text may be oriented in any direction in order to be as big as possible in the middle of a sector. The *horizontal* option orients text to be parallel with the bottom of the chart, and may make text smaller in order to achieve that goal. The *radial* option orients text along the radius of the sector. The *tangential* option orients text perpendicular to the radius of the sector." + }, + "insidetextfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "plot", + "arrayOk": true + }, + "editType": "plot", + "description": "Sets the font used for `textinfo` lying inside the sector.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "outsidetextfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "plot", + "arrayOk": true + }, + "editType": "plot", + "description": "Sets the font used for `textinfo` lying outside the sector.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "automargin": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Determines whether outside text labels can push the margins." + }, + "title": { + "text": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets the title of the chart. If it is empty, no title is displayed. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "plot", + "arrayOk": true + }, + "editType": "plot", + "description": "Sets the font used for `title`. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "position": { + "valType": "enumerated", + "values": [ + "top left", + "top center", + "top right", + "middle center", + "bottom left", + "bottom center", + "bottom right" + ], + "editType": "plot", + "description": "Specifies the location of the `title`. Note that the title's position used to be set by the now deprecated `titleposition` attribute." + }, + "editType": "plot", + "role": "object" + }, + "domain": { + "x": { + "valType": "info_array", + "editType": "calc", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the horizontal domain of this pie trace (in plot fraction)." + }, + "y": { + "valType": "info_array", + "editType": "calc", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the vertical domain of this pie trace (in plot fraction)." + }, + "editType": "calc", + "row": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "If there is a layout grid, use the domain for this row in the grid for this pie trace ." + }, + "column": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "If there is a layout grid, use the domain for this column in the grid for this pie trace ." + }, + "role": "object" + }, + "hole": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0, + "editType": "calc", + "description": "Sets the fraction of the radius to cut out of the pie. Use this to make a donut chart." + }, + "sort": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not the sectors are reordered from largest to smallest." + }, + "direction": { + "valType": "enumerated", + "values": [ + "clockwise", + "counterclockwise" + ], + "dflt": "counterclockwise", + "editType": "calc", + "description": "Specifies the direction at which succeeding sectors follow one another." + }, + "rotation": { + "valType": "number", + "min": -360, + "max": 360, + "dflt": 0, + "editType": "calc", + "description": "Instead of the first slice starting at 12 o'clock, rotate to some other angle." + }, + "pull": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0, + "arrayOk": true, + "editType": "calc", + "description": "Sets the fraction of larger radius to pull the sectors out from the center. This can be a constant to pull all slices apart from each other equally or an array to highlight one or more slices." + }, + "_deprecated": { + "title": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Deprecated in favor of `title.text`. Note that value of `title` is no longer a simple *string* but a set of sub-attributes." + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "plot", + "arrayOk": true + }, + "editType": "plot", + "description": "Deprecated in favor of `title.font`." + }, + "titleposition": { + "valType": "enumerated", + "values": [ + "top left", + "top center", + "top right", + "middle center", + "bottom left", + "bottom center", + "bottom right" + ], + "editType": "calc", + "description": "Deprecated in favor of `title.position`." + } + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "labelssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for labels .", + "editType": "none" + }, + "valuessrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for values .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + }, + "texttemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", + "editType": "none" + }, + "textpositionsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for textposition .", + "editType": "none" + }, + "pullsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for pull .", + "editType": "none" + } + }, + "layoutAttributes": { + "hiddenlabels": { + "valType": "data_array", + "editType": "calc", + "description": "hiddenlabels is the funnelarea & pie chart analog of visible:'legendonly' but it can contain many labels, and can simultaneously hide slices from several pies/funnelarea charts" + }, + "piecolorway": { + "valType": "colorlist", + "editType": "calc", + "description": "Sets the default pie slice colors. Defaults to the main `colorway` used for trace colors. If you specify a new list here it can still be extended with lighter and darker colors, see `extendpiecolors`." + }, + "extendpiecolors": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "If `true`, the pie slice colors (whether given by `piecolorway` or inherited from `colorway`) will be extended to three times its original length by first repeating every color 20% lighter then each color 20% darker. This is intended to reduce the likelihood of reusing the same color when you have many slices, but you can set `false` to disable. Colors provided in the trace, using `marker.colors`, are never extended." + }, + "hiddenlabelssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hiddenlabels .", + "editType": "none" + } + } + }, + "sunburst": { + "meta": { + "description": "Visualize hierarchal data spanning outward radially from root to leaves. The sunburst sectors are determined by the entries in *labels* or *ids* and in *parents*." + }, + "categories": [], + "animatable": true, + "type": "sunburst", + "attributes": { + "type": "sunburst", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "anim": true, + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "anim": true, + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "labels": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the labels of each of the sectors." + }, + "parents": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the parent sectors for each of the sectors. Empty string items '' are understood to reference the root node in the hierarchy. If `ids` is filled, `parents` items are understood to be \"ids\" themselves. When `ids` is not set, plotly attempts to find matching items in `labels`, but beware they must be unique." + }, + "values": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the values associated with each of the sectors. Use with `branchvalues` to determine how the values are summed." + }, + "branchvalues": { + "valType": "enumerated", + "values": [ + "remainder", + "total" + ], + "dflt": "remainder", + "editType": "calc", + "description": "Determines how the items in `values` are summed. When set to *total*, items in `values` are taken to be value of all its descendants. When set to *remainder*, items in `values` corresponding to the root and the branches sectors are taken to be the extra part not part of the sum of the values at their leaves." + }, + "count": { + "valType": "flaglist", + "flags": [ + "branches", + "leaves" + ], + "dflt": "leaves", + "editType": "calc", + "description": "Determines default for `values` when it is not provided, by inferring a 1 for each of the *leaves* and/or *branches*, otherwise 0." + }, + "level": { + "valType": "any", + "editType": "plot", + "anim": true, + "description": "Sets the level from which this trace hierarchy is rendered. Set `level` to `''` to start from the root node in the hierarchy. Must be an \"id\" if `ids` is filled in, otherwise plotly attempts to find a matching item in `labels`." + }, + "maxdepth": { + "valType": "integer", + "editType": "plot", + "dflt": -1, + "description": "Sets the number of rendered sectors from any given `level`. Set `maxdepth` to *-1* to render all the levels in the hierarchy." + }, + "marker": { + "colors": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the color of each sector of this trace. If not specified, the default trace color set is used to pick the sector colors." + }, + "line": { + "color": { + "valType": "color", + "dflt": null, + "arrayOk": true, + "editType": "style", + "description": "Sets the color of the line enclosing each sector. Defaults to the `paper_bgcolor` value." + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 1, + "arrayOk": true, + "editType": "style", + "description": "Sets the width (in px) of the line enclosing each sector." + }, + "editType": "calc", + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + }, + "widthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for width .", + "editType": "none" + } + }, + "editType": "calc", + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here colors) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if colorsis set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if colorsis set to a numerical array. Value should have the same units as colors and if set, `marker.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if colorsis set to a numerical array. Value should have the same units as colors and if set, `marker.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if colorsis set to a numerical array. Value should have the same units as colors. Has no effect when `marker.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if colorsis set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if colorsis set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. Has an effect only if colorsis set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if colorsis set to a numerical array." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "colorbars" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "colorbars" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "colorbars" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "colorbars" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "colorbars" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "colorbars" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "colorbars" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "colorbars" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "colorbars" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "colorbars" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "colorbars", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "colorbars", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "colorbars", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "colorbars", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "colorbars" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "colorbars", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "colorbars", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "colorbars" + }, + { + "valType": "any", + "editType": "colorbars" + } + ], + "editType": "colorbars", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "colorbars", + "name": { + "valType": "string", + "editType": "colorbars", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "colorbars", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "colorbars", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "colorbars", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "colorbars", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars" + }, + "editType": "colorbars", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "colorbars" + } + }, + "editType": "colorbars", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "role": "object", + "colorssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for colors .", + "editType": "none" + } + }, + "leaf": { + "opacity": { + "valType": "number", + "editType": "style", + "min": 0, + "max": 1, + "description": "Sets the opacity of the leaves. With colorscale it is defaulted to 1; otherwise it is defaulted to 0.7" + }, + "editType": "plot", + "role": "object" + }, + "text": { + "valType": "data_array", + "editType": "plot", + "description": "Sets text elements associated with each sector. If trace `textinfo` contains a *text* flag, these elements will be seen on the chart. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." + }, + "textinfo": { + "valType": "flaglist", + "flags": [ + "label", + "text", + "value", + "current path", + "percent root", + "percent entry", + "percent parent" + ], + "extras": [ + "none" + ], + "editType": "plot", + "description": "Determines which trace information appear on the graph." + }, + "texttemplate": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry`, `percentParent`, `label` and `value`.", + "arrayOk": true + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "style", + "description": "Sets hover text elements associated with each sector. If a single string, the same string appears for all data points. If an array of string, the items are mapped in order of this trace's sectors. To be seen, trace `hoverinfo` must contain a *text* flag." + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "label", + "text", + "value", + "name", + "current path", + "percent root", + "percent entry", + "percent parent" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "label+text+value+name", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "textfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "plot", + "arrayOk": true + }, + "editType": "plot", + "description": "Sets the font used for `textinfo`.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "insidetextorientation": { + "valType": "enumerated", + "values": [ + "horizontal", + "radial", + "tangential", + "auto" + ], + "dflt": "auto", + "editType": "plot", + "description": "Controls the orientation of the text inside chart sectors. When set to *auto*, text may be oriented in any direction in order to be as big as possible in the middle of a sector. The *horizontal* option orients text to be parallel with the bottom of the chart, and may make text smaller in order to achieve that goal. The *radial* option orients text along the radius of the sector. The *tangential* option orients text perpendicular to the radius of the sector." + }, + "insidetextfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "plot", + "arrayOk": true + }, + "editType": "plot", + "description": "Sets the font used for `textinfo` lying inside the sector.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "outsidetextfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "plot", + "arrayOk": true + }, + "editType": "plot", + "description": "Sets the font used for `textinfo` lying outside the sector. This option refers to the root of the hierarchy presented at the center of a sunburst graph. Please note that if a hierarchy has multiple root nodes, this option won't have any effect and `insidetextfont` would be used.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "rotation": { + "valType": "angle", + "dflt": 0, + "editType": "plot", + "description": "Rotates the whole diagram counterclockwise by some angle. By default the first slice starts at 3 o'clock." + }, + "sort": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not the sectors are reordered from largest to smallest." + }, + "root": { + "color": { + "valType": "color", + "editType": "calc", + "dflt": "rgba(0,0,0,0)", + "description": "sets the color of the root node for a sunburst or a treemap trace. this has no effect when a colorscale is used to set the markers." + }, + "editType": "calc", + "role": "object" + }, + "domain": { + "x": { + "valType": "info_array", + "editType": "calc", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the horizontal domain of this sunburst trace (in plot fraction)." + }, + "y": { + "valType": "info_array", + "editType": "calc", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the vertical domain of this sunburst trace (in plot fraction)." + }, + "editType": "calc", + "row": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "If there is a layout grid, use the domain for this row in the grid for this sunburst trace ." + }, + "column": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "If there is a layout grid, use the domain for this column in the grid for this sunburst trace ." + }, + "role": "object" + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "labelssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for labels .", + "editType": "none" + }, + "parentssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for parents .", + "editType": "none" + }, + "valuessrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for values .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "texttemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + } + }, + "layoutAttributes": { + "sunburstcolorway": { + "valType": "colorlist", + "editType": "calc", + "description": "Sets the default sunburst slice colors. Defaults to the main `colorway` used for trace colors. If you specify a new list here it can still be extended with lighter and darker colors, see `extendsunburstcolors`." + }, + "extendsunburstcolors": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "If `true`, the sunburst slice colors (whether given by `sunburstcolorway` or inherited from `colorway`) will be extended to three times its original length by first repeating every color 20% lighter then each color 20% darker. This is intended to reduce the likelihood of reusing the same color when you have many slices, but you can set `false` to disable. Colors provided in the trace, using `marker.colors`, are never extended." + } + } + }, + "treemap": { + "meta": { + "description": "Visualize hierarchal data from leaves (and/or outer branches) towards root with rectangles. The treemap sectors are determined by the entries in *labels* or *ids* and in *parents*." + }, + "categories": [], + "animatable": true, + "type": "treemap", + "attributes": { + "type": "treemap", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "anim": true, + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "anim": true, + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "labels": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the labels of each of the sectors." + }, + "parents": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the parent sectors for each of the sectors. Empty string items '' are understood to reference the root node in the hierarchy. If `ids` is filled, `parents` items are understood to be \"ids\" themselves. When `ids` is not set, plotly attempts to find matching items in `labels`, but beware they must be unique." + }, + "values": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the values associated with each of the sectors. Use with `branchvalues` to determine how the values are summed." + }, + "branchvalues": { + "valType": "enumerated", + "values": [ + "remainder", + "total" + ], + "dflt": "remainder", + "editType": "calc", + "description": "Determines how the items in `values` are summed. When set to *total*, items in `values` are taken to be value of all its descendants. When set to *remainder*, items in `values` corresponding to the root and the branches sectors are taken to be the extra part not part of the sum of the values at their leaves." + }, + "count": { + "valType": "flaglist", + "flags": [ + "branches", + "leaves" + ], + "dflt": "leaves", + "editType": "calc", + "description": "Determines default for `values` when it is not provided, by inferring a 1 for each of the *leaves* and/or *branches*, otherwise 0." + }, + "level": { + "valType": "any", + "editType": "plot", + "anim": true, + "description": "Sets the level from which this trace hierarchy is rendered. Set `level` to `''` to start from the root node in the hierarchy. Must be an \"id\" if `ids` is filled in, otherwise plotly attempts to find a matching item in `labels`." + }, + "maxdepth": { + "valType": "integer", + "editType": "plot", + "dflt": -1, + "description": "Sets the number of rendered sectors from any given `level`. Set `maxdepth` to *-1* to render all the levels in the hierarchy." + }, + "tiling": { + "packing": { + "valType": "enumerated", + "values": [ + "squarify", + "binary", + "dice", + "slice", + "slice-dice", + "dice-slice" + ], + "dflt": "squarify", + "editType": "plot", + "description": "Determines d3 treemap solver. For more info please refer to https://github.com/d3/d3-hierarchy#treemap-tiling" + }, + "squarifyratio": { + "valType": "number", + "min": 1, + "dflt": 1, + "editType": "plot", + "description": "When using *squarify* `packing` algorithm, according to https://github.com/d3/d3-hierarchy/blob/master/README.md#squarify_ratio this option specifies the desired aspect ratio of the generated rectangles. The ratio must be specified as a number greater than or equal to one. Note that the orientation of the generated rectangles (tall or wide) is not implied by the ratio; for example, a ratio of two will attempt to produce a mixture of rectangles whose width:height ratio is either 2:1 or 1:2. When using *squarify*, unlike d3 which uses the Golden Ratio i.e. 1.618034, Plotly applies 1 to increase squares in treemap layouts." + }, + "flip": { + "valType": "flaglist", + "flags": [ + "x", + "y" + ], + "dflt": "", + "editType": "plot", + "description": "Determines if the positions obtained from solver are flipped on each axis." + }, + "pad": { + "valType": "number", + "min": 0, + "dflt": 3, + "editType": "plot", + "description": "Sets the inner padding (in px)." + }, + "editType": "calc", + "role": "object" + }, + "marker": { + "pad": { + "t": { + "valType": "number", + "min": 0, + "editType": "plot", + "description": "Sets the padding form the top (in px)." + }, + "l": { + "valType": "number", + "min": 0, + "editType": "plot", + "description": "Sets the padding form the left (in px)." + }, + "r": { + "valType": "number", + "min": 0, + "editType": "plot", + "description": "Sets the padding form the right (in px)." + }, + "b": { + "valType": "number", + "min": 0, + "editType": "plot", + "description": "Sets the padding form the bottom (in px)." + }, + "editType": "calc", + "role": "object" + }, + "colors": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the color of each sector of this trace. If not specified, the default trace color set is used to pick the sector colors." + }, + "depthfade": { + "valType": "enumerated", + "values": [ + true, + false, + "reversed" + ], + "editType": "style", + "description": "Determines if the sector colors are faded towards the background from the leaves up to the headers. This option is unavailable when a `colorscale` is present, defaults to false when `marker.colors` is set, but otherwise defaults to true. When set to *reversed*, the fading direction is inverted, that is the top elements within hierarchy are drawn with fully saturated colors while the leaves are faded towards the background color." + }, + "line": { + "color": { + "valType": "color", + "dflt": null, + "arrayOk": true, + "editType": "style", + "description": "Sets the color of the line enclosing each sector. Defaults to the `paper_bgcolor` value." + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 1, + "arrayOk": true, + "editType": "style", + "description": "Sets the width (in px) of the line enclosing each sector." + }, + "editType": "calc", + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + }, + "widthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for width .", + "editType": "none" + } + }, + "editType": "calc", + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here colors) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if colorsis set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if colorsis set to a numerical array. Value should have the same units as colors and if set, `marker.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if colorsis set to a numerical array. Value should have the same units as colors and if set, `marker.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if colorsis set to a numerical array. Value should have the same units as colors. Has no effect when `marker.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if colorsis set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if colorsis set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. Has an effect only if colorsis set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if colorsis set to a numerical array." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "colorbars" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "colorbars" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "colorbars" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "colorbars" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "colorbars" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "colorbars" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "colorbars" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "colorbars" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "colorbars" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "colorbars" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "colorbars", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "colorbars", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "colorbars", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "colorbars", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "colorbars" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "colorbars", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "colorbars", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "colorbars" + }, + { + "valType": "any", + "editType": "colorbars" + } + ], + "editType": "colorbars", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "colorbars", + "name": { + "valType": "string", + "editType": "colorbars", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "colorbars", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "colorbars", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "colorbars", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "colorbars", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars" + }, + "editType": "colorbars", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "colorbars" + } + }, + "editType": "colorbars", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "role": "object", + "colorssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for colors .", + "editType": "none" + } + }, + "pathbar": { + "visible": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines if the path bar is drawn i.e. outside the trace `domain` and with one pixel gap." + }, + "side": { + "valType": "enumerated", + "values": [ + "top", + "bottom" + ], + "dflt": "top", + "editType": "plot", + "description": "Determines on which side of the the treemap the `pathbar` should be presented." + }, + "edgeshape": { + "valType": "enumerated", + "values": [ + ">", + "<", + "|", + "/", + "\\" + ], + "dflt": ">", + "editType": "plot", + "description": "Determines which shape is used for edges between `barpath` labels." + }, + "thickness": { + "valType": "number", + "min": 12, + "editType": "plot", + "description": "Sets the thickness of `pathbar` (in px). If not specified the `pathbar.textfont.size` is used with 3 pixles extra padding on each side." + }, + "textfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "plot", + "arrayOk": true + }, + "editType": "plot", + "description": "Sets the font used inside `pathbar`.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "editType": "calc", + "role": "object" + }, + "text": { + "valType": "data_array", + "editType": "plot", + "description": "Sets text elements associated with each sector. If trace `textinfo` contains a *text* flag, these elements will be seen on the chart. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." + }, + "textinfo": { + "valType": "flaglist", + "flags": [ + "label", + "text", + "value", + "current path", + "percent root", + "percent entry", + "percent parent" + ], + "extras": [ + "none" + ], + "editType": "plot", + "description": "Determines which trace information appear on the graph." + }, + "texttemplate": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry`, `percentParent`, `label` and `value`.", + "arrayOk": true + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "style", + "description": "Sets hover text elements associated with each sector. If a single string, the same string appears for all data points. If an array of string, the items are mapped in order of this trace's sectors. To be seen, trace `hoverinfo` must contain a *text* flag." + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "label", + "text", + "value", + "name", + "current path", + "percent root", + "percent entry", + "percent parent" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "label+text+value+name", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "textfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "plot", + "arrayOk": true + }, + "editType": "plot", + "description": "Sets the font used for `textinfo`.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "insidetextfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "plot", + "arrayOk": true + }, + "editType": "plot", + "description": "Sets the font used for `textinfo` lying inside the sector.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "outsidetextfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "plot", + "arrayOk": true + }, + "editType": "plot", + "description": "Sets the font used for `textinfo` lying outside the sector. This option refers to the root of the hierarchy presented on top left corner of a treemap graph. Please note that if a hierarchy has multiple root nodes, this option won't have any effect and `insidetextfont` would be used.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "textposition": { + "valType": "enumerated", + "values": [ + "top left", + "top center", + "top right", + "middle left", + "middle center", + "middle right", + "bottom left", + "bottom center", + "bottom right" + ], + "dflt": "top left", + "editType": "plot", + "description": "Sets the positions of the `text` elements." + }, + "sort": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not the sectors are reordered from largest to smallest." + }, + "root": { + "color": { + "valType": "color", + "editType": "calc", + "dflt": "rgba(0,0,0,0)", + "description": "sets the color of the root node for a sunburst or a treemap trace. this has no effect when a colorscale is used to set the markers." + }, + "editType": "calc", + "role": "object" + }, + "domain": { + "x": { + "valType": "info_array", + "editType": "calc", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the horizontal domain of this treemap trace (in plot fraction)." + }, + "y": { + "valType": "info_array", + "editType": "calc", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the vertical domain of this treemap trace (in plot fraction)." + }, + "editType": "calc", + "row": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "If there is a layout grid, use the domain for this row in the grid for this treemap trace ." + }, + "column": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "If there is a layout grid, use the domain for this column in the grid for this treemap trace ." + }, + "role": "object" + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "labelssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for labels .", + "editType": "none" + }, + "parentssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for parents .", + "editType": "none" + }, + "valuessrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for values .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "texttemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + } + }, + "layoutAttributes": { + "treemapcolorway": { + "valType": "colorlist", + "editType": "calc", + "description": "Sets the default treemap slice colors. Defaults to the main `colorway` used for trace colors. If you specify a new list here it can still be extended with lighter and darker colors, see `extendtreemapcolors`." + }, + "extendtreemapcolors": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "If `true`, the treemap slice colors (whether given by `treemapcolorway` or inherited from `colorway`) will be extended to three times its original length by first repeating every color 20% lighter then each color 20% darker. This is intended to reduce the likelihood of reusing the same color when you have many slices, but you can set `false` to disable. Colors provided in the trace, using `marker.colors`, are never extended." + } + } + }, + "funnelarea": { + "meta": { + "description": "Visualize stages in a process using area-encoded trapezoids. This trace can be used to show data in a part-to-whole representation similar to a \"pie\" trace, wherein each item appears in a single stage. See also the \"funnel\" trace type for a different approach to visualizing funnel data." + }, + "categories": [ + "pie-like", + "funnelarea", + "showLegend" + ], + "animatable": false, + "type": "funnelarea", + "attributes": { + "type": "funnelarea", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "showlegend": { + "valType": "boolean", + "dflt": true, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "labels": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the sector labels. If `labels` entries are duplicated, we sum associated `values` or simply count occurrences if `values` is not provided. For other array attributes (including color) we use the first non-empty entry among all occurrences of the label." + }, + "label0": { + "valType": "number", + "dflt": 0, + "editType": "calc", + "description": "Alternate to `labels`. Builds a numeric set of labels. Use with `dlabel` where `label0` is the starting label and `dlabel` the step." + }, + "dlabel": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Sets the label step. See `label0` for more info." + }, + "values": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the values of the sectors. If omitted, we count occurrences of each label." + }, + "marker": { + "colors": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the color of each sector. If not specified, the default trace color set is used to pick the sector colors." + }, + "line": { + "color": { + "valType": "color", + "dflt": null, + "arrayOk": true, + "editType": "style", + "description": "Sets the color of the line enclosing each sector. Defaults to the `paper_bgcolor` value." + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 1, + "arrayOk": true, + "editType": "style", + "description": "Sets the width (in px) of the line enclosing each sector." + }, + "editType": "calc", + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + }, + "widthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for width .", + "editType": "none" + } + }, + "editType": "calc", + "role": "object", + "colorssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for colors .", + "editType": "none" + } + }, + "text": { + "valType": "data_array", + "editType": "plot", + "description": "Sets text elements associated with each sector. If trace `textinfo` contains a *text* flag, these elements will be seen on the chart. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "style", + "description": "Sets hover text elements associated with each sector. If a single string, the same string appears for all data points. If an array of string, the items are mapped in order of this trace's sectors. To be seen, trace `hoverinfo` must contain a *text* flag." + }, + "scalegroup": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "If there are multiple funnelareas that should be sized according to their totals, link them by providing a non-empty group id here shared by every trace in the same group." + }, + "textinfo": { + "valType": "flaglist", + "flags": [ + "label", + "text", + "value", + "percent" + ], + "extras": [ + "none" + ], + "editType": "calc", + "description": "Determines which trace information appear on the graph." + }, + "texttemplate": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `label`, `color`, `value`, `text` and `percent`.", + "arrayOk": true + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "label", + "text", + "value", + "percent", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `label`, `color`, `value`, `text` and `percent`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "textposition": { + "valType": "enumerated", + "values": [ + "inside", + "none" + ], + "dflt": "inside", + "arrayOk": true, + "editType": "plot", + "description": "Specifies the location of the `textinfo`." + }, + "textfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "plot", + "arrayOk": true + }, + "editType": "plot", + "description": "Sets the font used for `textinfo`.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "insidetextfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "plot", + "arrayOk": true + }, + "editType": "plot", + "description": "Sets the font used for `textinfo` lying inside the sector.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "title": { + "text": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets the title of the chart. If it is empty, no title is displayed. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "plot", + "arrayOk": true + }, + "editType": "plot", + "description": "Sets the font used for `title`. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "position": { + "valType": "enumerated", + "values": [ + "top left", + "top center", + "top right" + ], + "editType": "plot", + "description": "Specifies the location of the `title`. Note that the title's position used to be set by the now deprecated `titleposition` attribute.", + "dflt": "top center" + }, + "editType": "plot", + "role": "object" + }, + "domain": { + "x": { + "valType": "info_array", + "editType": "calc", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the horizontal domain of this funnelarea trace (in plot fraction)." + }, + "y": { + "valType": "info_array", + "editType": "calc", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the vertical domain of this funnelarea trace (in plot fraction)." + }, + "editType": "calc", + "row": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "If there is a layout grid, use the domain for this row in the grid for this funnelarea trace ." + }, + "column": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "If there is a layout grid, use the domain for this column in the grid for this funnelarea trace ." + }, + "role": "object" + }, + "aspectratio": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the ratio between height and width" + }, + "baseratio": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.333, + "editType": "plot", + "description": "Sets the ratio between bottom length and maximum top length." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "labelssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for labels .", + "editType": "none" + }, + "valuessrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for values .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "texttemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + }, + "textpositionsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for textposition .", + "editType": "none" + } + }, + "layoutAttributes": { + "hiddenlabels": { + "valType": "data_array", + "editType": "calc", + "description": "hiddenlabels is the funnelarea & pie chart analog of visible:'legendonly' but it can contain many labels, and can simultaneously hide slices from several pies/funnelarea charts" + }, + "funnelareacolorway": { + "valType": "colorlist", + "editType": "calc", + "description": "Sets the default funnelarea slice colors. Defaults to the main `colorway` used for trace colors. If you specify a new list here it can still be extended with lighter and darker colors, see `extendfunnelareacolors`." + }, + "extendfunnelareacolors": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "If `true`, the funnelarea slice colors (whether given by `funnelareacolorway` or inherited from `colorway`) will be extended to three times its original length by first repeating every color 20% lighter then each color 20% darker. This is intended to reduce the likelihood of reusing the same color when you have many slices, but you can set `false` to disable. Colors provided in the trace, using `marker.colors`, are never extended." + }, + "hiddenlabelssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hiddenlabels .", + "editType": "none" + } + } + }, + "scatter3d": { + "meta": { + "hrName": "scatter_3d", + "description": "The data visualized as scatter point or lines in 3D dimension is set in `x`, `y`, `z`. Text (appearing either on the chart or on hover only) is via `text`. Bubble charts are achieved by setting `marker.size` and/or `marker.color` Projections are achieved via `projection`. Surface fills are achieved via `surfaceaxis`." + }, + "categories": [ + "gl3d", + "symbols", + "showLegend", + "scatter-like" + ], + "animatable": false, + "type": "scatter3d", + "attributes": { + "type": "scatter3d", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "showlegend": { + "valType": "boolean", + "dflt": true, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "x": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the x coordinates." + }, + "y": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the y coordinates." + }, + "z": { + "valType": "data_array", + "description": "Sets the z coordinates.", + "editType": "calc+clearAxisTypes" + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets text elements associated with each (x,y,z) triplet. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y,z) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." + }, + "texttemplate": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. ", + "arrayOk": true + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets text elements associated with each (x,y,z) triplet. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y,z) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "xhoverformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the hover text formatting rule for `x` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `xaxis.hoverformat`." + }, + "yhoverformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the hover text formatting rule for `y` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `yaxis.hoverformat`." + }, + "zhoverformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the hover text formatting rule for `z` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `zaxis.hoverformat`." + }, + "mode": { + "valType": "flaglist", + "flags": [ + "lines", + "markers", + "text" + ], + "extras": [ + "none" + ], + "editType": "calc", + "description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover. If there are less than 20 points and the trace is not stacked then the default is *lines+markers*. Otherwise, *lines*.", + "dflt": "lines+markers" + }, + "surfaceaxis": { + "valType": "enumerated", + "values": [ + -1, + 0, + 1, + 2 + ], + "dflt": -1, + "description": "If *-1*, the scatter points are not fill with a surface If *0*, *1*, *2*, the scatter points are filled with a Delaunay surface about the x, y, z respectively.", + "editType": "calc" + }, + "surfacecolor": { + "valType": "color", + "description": "Sets the surface fill color.", + "editType": "calc" + }, + "projection": { + "x": { + "show": { + "valType": "boolean", + "dflt": false, + "description": "Sets whether or not projections are shown along the x axis.", + "editType": "calc" + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "description": "Sets the projection color.", + "editType": "calc" + }, + "scale": { + "valType": "number", + "min": 0, + "max": 10, + "dflt": 0.6666666666666666, + "description": "Sets the scale factor determining the size of the projection marker points.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "y": { + "show": { + "valType": "boolean", + "dflt": false, + "description": "Sets whether or not projections are shown along the y axis.", + "editType": "calc" + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "description": "Sets the projection color.", + "editType": "calc" + }, + "scale": { + "valType": "number", + "min": 0, + "max": 10, + "dflt": 0.6666666666666666, + "description": "Sets the scale factor determining the size of the projection marker points.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "z": { + "show": { + "valType": "boolean", + "dflt": false, + "description": "Sets whether or not projections are shown along the z axis.", + "editType": "calc" + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "description": "Sets the projection color.", + "editType": "calc" + }, + "scale": { + "valType": "number", + "min": 0, + "max": 10, + "dflt": 0.6666666666666666, + "description": "Sets the scale factor determining the size of the projection marker points.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "editType": "calc", + "role": "object" + }, + "connectgaps": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected." + }, + "line": { + "width": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "calc", + "description": "Sets the line width (in px)." + }, + "dash": { + "valType": "enumerated", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ], + "dflt": "solid", + "description": "Sets the dash style of the lines.", + "editType": "calc" + }, + "color": { + "valType": "color", + "arrayOk": true, + "editType": "calc", + "description": "Sets thelinecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `line.cmin` and `line.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `line.color`) or the bounds set in `line.cmin` and `line.cmax` Has an effect only if in `line.color`is set to a numerical array. Defaults to `false` when `line.cmin` and `line.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `line.color`is set to a numerical array. Value should have the same units as in `line.color` and if set, `line.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `line.color`is set to a numerical array. Value should have the same units as in `line.color` and if set, `line.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `line.cmin` and/or `line.cmax` to be equidistant to this point. Has an effect only if in `line.color`is set to a numerical array. Value should have the same units as in `line.color`. Has no effect when `line.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`line.cmin` and `line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `line.colorscale`. Has an effect only if in `line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Reverses the color mapping if true. Has an effect only if in `line.color`is set to a numerical array. If true, `line.cmin` will correspond to the last color in the array and `line.cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `line.color`is set to a numerical array." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "calc" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "calc" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "calc" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "calc" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "calc" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "calc" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "calc" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "calc" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "calc" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "calc" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "calc" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "calc" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "calc", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "calc", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "calc" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "calc", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Sets the color bar's tick label font", + "editType": "calc", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "calc", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "calc" + }, + { + "valType": "any", + "editType": "calc" + } + ], + "editType": "calc", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "calc", + "name": { + "valType": "string", + "editType": "calc", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "calc", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "calc", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "calc", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "calc" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "calc", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "calc" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "calc" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "calc" + } + }, + "editType": "calc", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "editType": "calc", + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "marker": { + "symbol": { + "valType": "enumerated", + "values": [ + "circle", + "circle-open", + "square", + "square-open", + "diamond", + "diamond-open", + "cross", + "x" + ], + "dflt": "circle", + "arrayOk": true, + "description": "Sets the marker symbol type.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 0, + "dflt": 8, + "arrayOk": true, + "editType": "calc", + "description": "Sets the marker size (in px)." + }, + "sizeref": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`." + }, + "sizemin": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points." + }, + "sizemode": { + "valType": "enumerated", + "values": [ + "diameter", + "area" + ], + "dflt": "diameter", + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "arrayOk": false, + "editType": "calc", + "description": "Sets the marker opacity. Note that the marker opacity for scatter3d traces must be a scalar value for performance reasons. To set a blending opacity value (i.e. which is not transparent), set *marker.color* to an rgba color and use its alpha channel." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "calc" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "calc" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "calc" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "calc" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "calc" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "calc" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "calc" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "calc" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "calc" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "calc" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "calc" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "calc" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "calc", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "calc", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "calc" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "calc", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Sets the color bar's tick label font", + "editType": "calc", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "calc", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "calc" + }, + { + "valType": "any", + "editType": "calc" + } + ], + "editType": "calc", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "calc", + "name": { + "valType": "string", + "editType": "calc", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "calc", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "calc", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "calc", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "calc" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "calc", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "calc" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "calc" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "calc" + } + }, + "editType": "calc", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "line": { + "width": { + "valType": "number", + "min": 0, + "arrayOk": false, + "editType": "calc", + "description": "Sets the width (in px) of the lines bounding the marker points." + }, + "color": { + "valType": "color", + "arrayOk": true, + "editType": "calc", + "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "editType": "calc", + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "color": { + "valType": "color", + "arrayOk": true, + "editType": "calc", + "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "editType": "calc", + "role": "object", + "symbolsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for symbol .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "textposition": { + "valType": "enumerated", + "values": [ + "top left", + "top center", + "top right", + "middle left", + "middle center", + "middle right", + "bottom left", + "bottom center", + "bottom right" + ], + "dflt": "top center", + "arrayOk": true, + "editType": "calc", + "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates." + }, + "textfont": { + "color": { + "valType": "color", + "editType": "calc", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc", + "arrayOk": true + }, + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": false + }, + "editType": "calc", + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + } + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "calc", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "error_x": { + "visible": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not this set of error bars is visible." + }, + "type": { + "valType": "enumerated", + "values": [ + "percent", + "constant", + "sqrt", + "data" + ], + "editType": "calc", + "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`." + }, + "symmetric": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars." + }, + "array": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data." + }, + "arrayminus": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data." + }, + "value": { + "valType": "number", + "min": 0, + "dflt": 10, + "editType": "calc", + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars." + }, + "valueminus": { + "valType": "number", + "min": 0, + "dflt": 10, + "editType": "calc", + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars" + }, + "traceref": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc" + }, + "tracerefminus": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc" + }, + "copy_zstyle": { + "valType": "boolean", + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc", + "description": "Sets the stoke color of the error bars." + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "calc", + "description": "Sets the thickness (in px) of the error bars." + }, + "width": { + "valType": "number", + "min": 0, + "editType": "calc", + "description": "Sets the width (in px) of the cross-bar at both ends of the error bars." + }, + "editType": "calc", + "_deprecated": { + "opacity": { + "valType": "number", + "editType": "calc", + "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." + } + }, + "role": "object", + "arraysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for array .", + "editType": "none" + }, + "arrayminussrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for arrayminus .", + "editType": "none" + } + }, + "error_y": { + "visible": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not this set of error bars is visible." + }, + "type": { + "valType": "enumerated", + "values": [ + "percent", + "constant", + "sqrt", + "data" + ], + "editType": "calc", + "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`." + }, + "symmetric": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars." + }, + "array": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data." + }, + "arrayminus": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data." + }, + "value": { + "valType": "number", + "min": 0, + "dflt": 10, + "editType": "calc", + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars." + }, + "valueminus": { + "valType": "number", + "min": 0, + "dflt": 10, + "editType": "calc", + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars" + }, + "traceref": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc" + }, + "tracerefminus": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc" + }, + "copy_zstyle": { + "valType": "boolean", + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc", + "description": "Sets the stoke color of the error bars." + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "calc", + "description": "Sets the thickness (in px) of the error bars." + }, + "width": { + "valType": "number", + "min": 0, + "editType": "calc", + "description": "Sets the width (in px) of the cross-bar at both ends of the error bars." + }, + "editType": "calc", + "_deprecated": { + "opacity": { + "valType": "number", + "editType": "calc", + "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." + } + }, + "role": "object", + "arraysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for array .", + "editType": "none" + }, + "arrayminussrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for arrayminus .", + "editType": "none" + } + }, + "error_z": { + "visible": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not this set of error bars is visible." + }, + "type": { + "valType": "enumerated", + "values": [ + "percent", + "constant", + "sqrt", + "data" + ], + "editType": "calc", + "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`." + }, + "symmetric": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars." + }, + "array": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data." + }, + "arrayminus": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data." + }, + "value": { + "valType": "number", + "min": 0, + "dflt": 10, + "editType": "calc", + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars." + }, + "valueminus": { + "valType": "number", + "min": 0, + "dflt": 10, + "editType": "calc", + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars" + }, + "traceref": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc" + }, + "tracerefminus": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc", + "description": "Sets the stoke color of the error bars." + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "calc", + "description": "Sets the thickness (in px) of the error bars." + }, + "width": { + "valType": "number", + "min": 0, + "editType": "calc", + "description": "Sets the width (in px) of the cross-bar at both ends of the error bars." + }, + "editType": "calc", + "_deprecated": { + "opacity": { + "valType": "number", + "editType": "calc", + "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." + } + }, + "role": "object", + "arraysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for array .", + "editType": "none" + }, + "arrayminussrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for arrayminus .", + "editType": "none" + } + }, + "xcalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `x` date data." + }, + "ycalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `y` date data." + }, + "zcalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `z` date data." + }, + "scene": { + "valType": "subplotid", + "dflt": "scene", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's 3D coordinate system and a 3D scene. If *scene* (the default value), the (x,y,z) coordinates refer to `layout.scene`. If *scene2*, the (x,y,z) coordinates refer to `layout.scene2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "ysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for y .", + "editType": "none" + }, + "zsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for z .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "texttemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + }, + "textpositionsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for textposition .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + } + } + }, + "surface": { + "meta": { + "description": "The data the describes the coordinates of the surface is set in `z`. Data in `z` should be a {2D array}. Coordinates in `x` and `y` can either be 1D {arrays} or {2D arrays} (e.g. to graph parametric surfaces). If not provided in `x` and `y`, the x and y coordinates are assumed to be linear starting at 0 with a unit step. The color scale corresponds to the `z` values by default. For custom color scales, use `surfacecolor` which should be a {2D array}, where its bounds can be controlled using `cmin` and `cmax`." + }, + "categories": [ + "gl3d", + "2dMap", + "showLegend" + ], + "animatable": false, + "type": "surface", + "attributes": { + "type": "surface", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "z": { + "valType": "data_array", + "description": "Sets the z coordinates.", + "editType": "calc+clearAxisTypes" + }, + "x": { + "valType": "data_array", + "description": "Sets the x coordinates.", + "editType": "calc+clearAxisTypes" + }, + "y": { + "valType": "data_array", + "description": "Sets the y coordinates.", + "editType": "calc+clearAxisTypes" + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "description": "Sets the text elements associated with each z value. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", + "editType": "calc" + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "description": "Same as `text`.", + "editType": "calc" + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "xhoverformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the hover text formatting rule for `x` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `xaxis.hoverformat`." + }, + "yhoverformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the hover text formatting rule for `y` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `yaxis.hoverformat`." + }, + "zhoverformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the hover text formatting rule for `z` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `zaxis.hoverformat`." + }, + "connectgaps": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the `z` data are filled in." + }, + "surfacecolor": { + "valType": "data_array", + "description": "Sets the surface color values, used for setting a color scale independent of `z`.", + "editType": "calc" + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here z or surfacecolor) or the bounds set in `cmin` and `cmax` Defaults to `false` when `cmin` and `cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Value should have the same units as z or surfacecolor and if set, `cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Value should have the same units as z or surfacecolor and if set, `cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `cmin` and/or `cmax` to be equidistant to this point. Value should have the same units as z or surfacecolor. Has no effect when `cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`cmin` and `cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Reverses the color mapping if true. If true, `cmin` will correspond to the last color in the array and `cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "calc" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "calc" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "calc" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "calc" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "calc" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "calc" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "calc" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "calc" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "calc" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "calc" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "calc" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "calc" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "calc", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "calc", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "calc" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "calc", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Sets the color bar's tick label font", + "editType": "calc", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "calc", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "calc" + }, + { + "valType": "any", + "editType": "calc" + } + ], + "editType": "calc", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "calc", + "name": { + "valType": "string", + "editType": "calc", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "calc", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "calc", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "calc", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "calc" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "calc", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "calc" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "calc" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "calc" + } + }, + "editType": "calc", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "contours": { + "x": { + "show": { + "valType": "boolean", + "dflt": false, + "description": "Determines whether or not contour lines about the x dimension are drawn.", + "editType": "calc" + }, + "start": { + "valType": "number", + "dflt": null, + "editType": "calc", + "description": "Sets the starting contour level value. Must be less than `contours.end`" + }, + "end": { + "valType": "number", + "dflt": null, + "editType": "calc", + "description": "Sets the end contour level value. Must be more than `contours.start`" + }, + "size": { + "valType": "number", + "dflt": null, + "min": 0, + "editType": "calc", + "description": "Sets the step between each contour level. Must be positive." + }, + "project": { + "x": { + "valType": "boolean", + "dflt": false, + "description": "Determines whether or not these contour lines are projected on the x plane. If `highlight` is set to *true* (the default), the projected lines are shown on hover. If `show` is set to *true*, the projected lines are shown in permanence.", + "editType": "calc" + }, + "y": { + "valType": "boolean", + "dflt": false, + "description": "Determines whether or not these contour lines are projected on the y plane. If `highlight` is set to *true* (the default), the projected lines are shown on hover. If `show` is set to *true*, the projected lines are shown in permanence.", + "editType": "calc" + }, + "z": { + "valType": "boolean", + "dflt": false, + "description": "Determines whether or not these contour lines are projected on the z plane. If `highlight` is set to *true* (the default), the projected lines are shown on hover. If `show` is set to *true*, the projected lines are shown in permanence.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "color": { + "valType": "color", + "dflt": "#444", + "description": "Sets the color of the contour lines.", + "editType": "calc" + }, + "usecolormap": { + "valType": "boolean", + "dflt": false, + "description": "An alternate to *color*. Determines whether or not the contour lines are colored using the trace *colorscale*.", + "editType": "calc" + }, + "width": { + "valType": "number", + "min": 1, + "max": 16, + "dflt": 2, + "description": "Sets the width of the contour lines.", + "editType": "calc" + }, + "highlight": { + "valType": "boolean", + "dflt": true, + "description": "Determines whether or not contour lines about the x dimension are highlighted on hover.", + "editType": "calc" + }, + "highlightcolor": { + "valType": "color", + "dflt": "#444", + "description": "Sets the color of the highlighted contour lines.", + "editType": "calc" + }, + "highlightwidth": { + "valType": "number", + "min": 1, + "max": 16, + "dflt": 2, + "description": "Sets the width of the highlighted contour lines.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "y": { + "show": { + "valType": "boolean", + "dflt": false, + "description": "Determines whether or not contour lines about the y dimension are drawn.", + "editType": "calc" + }, + "start": { + "valType": "number", + "dflt": null, + "editType": "calc", + "description": "Sets the starting contour level value. Must be less than `contours.end`" + }, + "end": { + "valType": "number", + "dflt": null, + "editType": "calc", + "description": "Sets the end contour level value. Must be more than `contours.start`" + }, + "size": { + "valType": "number", + "dflt": null, + "min": 0, + "editType": "calc", + "description": "Sets the step between each contour level. Must be positive." + }, + "project": { + "x": { + "valType": "boolean", + "dflt": false, + "description": "Determines whether or not these contour lines are projected on the x plane. If `highlight` is set to *true* (the default), the projected lines are shown on hover. If `show` is set to *true*, the projected lines are shown in permanence.", + "editType": "calc" + }, + "y": { + "valType": "boolean", + "dflt": false, + "description": "Determines whether or not these contour lines are projected on the y plane. If `highlight` is set to *true* (the default), the projected lines are shown on hover. If `show` is set to *true*, the projected lines are shown in permanence.", + "editType": "calc" + }, + "z": { + "valType": "boolean", + "dflt": false, + "description": "Determines whether or not these contour lines are projected on the z plane. If `highlight` is set to *true* (the default), the projected lines are shown on hover. If `show` is set to *true*, the projected lines are shown in permanence.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "color": { + "valType": "color", + "dflt": "#444", + "description": "Sets the color of the contour lines.", + "editType": "calc" + }, + "usecolormap": { + "valType": "boolean", + "dflt": false, + "description": "An alternate to *color*. Determines whether or not the contour lines are colored using the trace *colorscale*.", + "editType": "calc" + }, + "width": { + "valType": "number", + "min": 1, + "max": 16, + "dflt": 2, + "description": "Sets the width of the contour lines.", + "editType": "calc" + }, + "highlight": { + "valType": "boolean", + "dflt": true, + "description": "Determines whether or not contour lines about the y dimension are highlighted on hover.", + "editType": "calc" + }, + "highlightcolor": { + "valType": "color", + "dflt": "#444", + "description": "Sets the color of the highlighted contour lines.", + "editType": "calc" + }, + "highlightwidth": { + "valType": "number", + "min": 1, + "max": 16, + "dflt": 2, + "description": "Sets the width of the highlighted contour lines.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "z": { + "show": { + "valType": "boolean", + "dflt": false, + "description": "Determines whether or not contour lines about the z dimension are drawn.", + "editType": "calc" + }, + "start": { + "valType": "number", + "dflt": null, + "editType": "calc", + "description": "Sets the starting contour level value. Must be less than `contours.end`" + }, + "end": { + "valType": "number", + "dflt": null, + "editType": "calc", + "description": "Sets the end contour level value. Must be more than `contours.start`" + }, + "size": { + "valType": "number", + "dflt": null, + "min": 0, + "editType": "calc", + "description": "Sets the step between each contour level. Must be positive." + }, + "project": { + "x": { + "valType": "boolean", + "dflt": false, + "description": "Determines whether or not these contour lines are projected on the x plane. If `highlight` is set to *true* (the default), the projected lines are shown on hover. If `show` is set to *true*, the projected lines are shown in permanence.", + "editType": "calc" + }, + "y": { + "valType": "boolean", + "dflt": false, + "description": "Determines whether or not these contour lines are projected on the y plane. If `highlight` is set to *true* (the default), the projected lines are shown on hover. If `show` is set to *true*, the projected lines are shown in permanence.", + "editType": "calc" + }, + "z": { + "valType": "boolean", + "dflt": false, + "description": "Determines whether or not these contour lines are projected on the z plane. If `highlight` is set to *true* (the default), the projected lines are shown on hover. If `show` is set to *true*, the projected lines are shown in permanence.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "color": { + "valType": "color", + "dflt": "#444", + "description": "Sets the color of the contour lines.", + "editType": "calc" + }, + "usecolormap": { + "valType": "boolean", + "dflt": false, + "description": "An alternate to *color*. Determines whether or not the contour lines are colored using the trace *colorscale*.", + "editType": "calc" + }, + "width": { + "valType": "number", + "min": 1, + "max": 16, + "dflt": 2, + "description": "Sets the width of the contour lines.", + "editType": "calc" + }, + "highlight": { + "valType": "boolean", + "dflt": true, + "description": "Determines whether or not contour lines about the z dimension are highlighted on hover.", + "editType": "calc" + }, + "highlightcolor": { + "valType": "color", + "dflt": "#444", + "description": "Sets the color of the highlighted contour lines.", + "editType": "calc" + }, + "highlightwidth": { + "valType": "number", + "min": 1, + "max": 16, + "dflt": 2, + "description": "Sets the width of the highlighted contour lines.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "editType": "calc", + "role": "object" + }, + "hidesurface": { + "valType": "boolean", + "dflt": false, + "description": "Determines whether or not a surface is drawn. For example, set `hidesurface` to *false* `contours.x.show` to *true* and `contours.y.show` to *true* to draw a wire frame plot.", + "editType": "calc" + }, + "lightposition": { + "x": { + "valType": "number", + "min": -100000, + "max": 100000, + "dflt": 10, + "description": "Numeric vector, representing the X coordinate for each vertex.", + "editType": "calc" + }, + "y": { + "valType": "number", + "min": -100000, + "max": 100000, + "dflt": 10000, + "description": "Numeric vector, representing the Y coordinate for each vertex.", + "editType": "calc" + }, + "z": { + "valType": "number", + "min": -100000, + "max": 100000, + "dflt": 0, + "description": "Numeric vector, representing the Z coordinate for each vertex.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "lighting": { + "ambient": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.8, + "description": "Ambient light increases overall color visibility but can wash out the image.", + "editType": "calc" + }, + "diffuse": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.8, + "description": "Represents the extent that incident rays are reflected in a range of angles.", + "editType": "calc" + }, + "specular": { + "valType": "number", + "min": 0, + "max": 2, + "dflt": 0.05, + "description": "Represents the level that incident rays are reflected in a single direction, causing shine.", + "editType": "calc" + }, + "roughness": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.5, + "description": "Alters specular reflection; the rougher the surface, the wider and less contrasty the shine.", + "editType": "calc" + }, + "fresnel": { + "valType": "number", + "min": 0, + "max": 5, + "dflt": 0.2, + "description": "Represents the reflectance as a dependency of the viewing angle; e.g. paper is reflective when viewing it from the edge of the paper (almost 90 degrees), causing shine.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "description": "Sets the opacity of the surface. Please note that in the case of using high `opacity` values for example a value greater than or equal to 0.5 on two surfaces (and 0.25 with four surfaces), an overlay of multiple transparent surfaces may not perfectly be sorted in depth by the webgl API. This behavior may be improved in the near future and is subject to change.", + "editType": "calc" + }, + "opacityscale": { + "valType": "any", + "editType": "calc", + "description": "Sets the opacityscale. The opacityscale must be an array containing arrays mapping a normalized value to an opacity value. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 1], [0.5, 0.2], [1, 1]]` means that higher/lower values would have higher opacity values and those in the middle would be more transparent Alternatively, `opacityscale` may be a palette name string of the following list: 'min', 'max', 'extremes' and 'uniform'. The default is 'uniform'." + }, + "_deprecated": { + "zauto": { + "description": "Obsolete. Use `cauto` instead.", + "editType": "calc" + }, + "zmin": { + "description": "Obsolete. Use `cmin` instead.", + "editType": "calc" + }, + "zmax": { + "description": "Obsolete. Use `cmax` instead.", + "editType": "calc" + } + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "calc", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "showlegend": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "xcalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `x` date data." + }, + "ycalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `y` date data." + }, + "zcalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `z` date data." + }, + "scene": { + "valType": "subplotid", + "dflt": "scene", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's 3D coordinate system and a 3D scene. If *scene* (the default value), the (x,y,z) coordinates refer to `layout.scene`. If *scene2*, the (x,y,z) coordinates refer to `layout.scene2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "zsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for z .", + "editType": "none" + }, + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "ysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for y .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + }, + "surfacecolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for surfacecolor .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + } + } + }, + "isosurface": { + "meta": { + "description": "Draws isosurfaces between iso-min and iso-max values with coordinates given by four 1-dimensional arrays containing the `value`, `x`, `y` and `z` of every vertex of a uniform or non-uniform 3-D grid. Horizontal or vertical slices, caps as well as spaceframe between iso-min and iso-max values could also be drawn using this trace." + }, + "categories": [ + "gl3d", + "showLegend" + ], + "animatable": false, + "type": "isosurface", + "attributes": { + "type": "isosurface", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "x": { + "valType": "data_array", + "description": "Sets the X coordinates of the vertices on X axis.", + "editType": "calc+clearAxisTypes" + }, + "y": { + "valType": "data_array", + "description": "Sets the Y coordinates of the vertices on Y axis.", + "editType": "calc+clearAxisTypes" + }, + "z": { + "valType": "data_array", + "description": "Sets the Z coordinates of the vertices on Z axis.", + "editType": "calc+clearAxisTypes" + }, + "value": { + "valType": "data_array", + "description": "Sets the 4th dimension (value) of the vertices.", + "editType": "calc+clearAxisTypes" + }, + "isomin": { + "valType": "number", + "description": "Sets the minimum boundary for iso-surface plot.", + "editType": "calc" + }, + "isomax": { + "valType": "number", + "description": "Sets the maximum boundary for iso-surface plot.", + "editType": "calc" + }, + "surface": { + "show": { + "valType": "boolean", + "dflt": true, + "description": "Hides/displays surfaces between minimum and maximum iso-values.", + "editType": "calc" + }, + "count": { + "valType": "integer", + "dflt": 2, + "min": 1, + "description": "Sets the number of iso-surfaces between minimum and maximum iso-values. By default this value is 2 meaning that only minimum and maximum surfaces would be drawn.", + "editType": "calc" + }, + "fill": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "description": "Sets the fill ratio of the iso-surface. The default fill value of the surface is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "editType": "calc" + }, + "pattern": { + "valType": "flaglist", + "flags": [ + "A", + "B", + "C", + "D", + "E" + ], + "extras": [ + "all", + "odd", + "even" + ], + "dflt": "all", + "description": "Sets the surface pattern of the iso-surface 3-D sections. The default pattern of the surface is `all` meaning that the rest of surface elements would be shaded. The check options (either 1 or 2) could be used to draw half of the squares on the surface. Using various combinations of capital `A`, `B`, `C`, `D` and `E` may also be used to reduce the number of triangles on the iso-surfaces and creating other patterns of interest.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "spaceframe": { + "show": { + "valType": "boolean", + "dflt": false, + "description": "Displays/hides tetrahedron shapes between minimum and maximum iso-values. Often useful when either caps or surfaces are disabled or filled with values less than 1.", + "editType": "calc" + }, + "fill": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.15, + "description": "Sets the fill ratio of the `spaceframe` elements. The default fill value is 0.15 meaning that only 15% of the area of every faces of tetras would be shaded. Applying a greater `fill` ratio would allow the creation of stronger elements or could be sued to have entirely closed areas (in case of using 1).", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "slices": { + "x": { + "show": { + "valType": "boolean", + "dflt": false, + "description": "Determines whether or not slice planes about the x dimension are drawn.", + "editType": "calc" + }, + "locations": { + "valType": "data_array", + "dflt": [], + "description": "Specifies the location(s) of slices on the axis. When not specified slices would be created for all points of the axis x except start and end.", + "editType": "calc" + }, + "fill": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "description": "Sets the fill ratio of the `slices`. The default fill value of the `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "editType": "calc" + }, + "editType": "calc", + "role": "object", + "locationssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for locations .", + "editType": "none" + } + }, + "y": { + "show": { + "valType": "boolean", + "dflt": false, + "description": "Determines whether or not slice planes about the y dimension are drawn.", + "editType": "calc" + }, + "locations": { + "valType": "data_array", + "dflt": [], + "description": "Specifies the location(s) of slices on the axis. When not specified slices would be created for all points of the axis y except start and end.", + "editType": "calc" + }, + "fill": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "description": "Sets the fill ratio of the `slices`. The default fill value of the `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "editType": "calc" + }, + "editType": "calc", + "role": "object", + "locationssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for locations .", + "editType": "none" + } + }, + "z": { + "show": { + "valType": "boolean", + "dflt": false, + "description": "Determines whether or not slice planes about the z dimension are drawn.", + "editType": "calc" + }, + "locations": { + "valType": "data_array", + "dflt": [], + "description": "Specifies the location(s) of slices on the axis. When not specified slices would be created for all points of the axis z except start and end.", + "editType": "calc" + }, + "fill": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "description": "Sets the fill ratio of the `slices`. The default fill value of the `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "editType": "calc" + }, + "editType": "calc", + "role": "object", + "locationssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for locations .", + "editType": "none" + } + }, + "editType": "calc", + "role": "object" + }, + "caps": { + "x": { + "show": { + "valType": "boolean", + "dflt": true, + "description": "Sets the fill ratio of the `slices`. The default fill value of the x `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "editType": "calc" + }, + "fill": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "description": "Sets the fill ratio of the `caps`. The default fill value of the `caps` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "y": { + "show": { + "valType": "boolean", + "dflt": true, + "description": "Sets the fill ratio of the `slices`. The default fill value of the y `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "editType": "calc" + }, + "fill": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "description": "Sets the fill ratio of the `caps`. The default fill value of the `caps` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "z": { + "show": { + "valType": "boolean", + "dflt": true, + "description": "Sets the fill ratio of the `slices`. The default fill value of the z `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "editType": "calc" + }, + "fill": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "description": "Sets the fill ratio of the `caps`. The default fill value of the `caps` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "editType": "calc", + "role": "object" + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "description": "Sets the text elements associated with the vertices. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", + "editType": "calc" + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "description": "Same as `text`.", + "editType": "calc" + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "xhoverformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the hover text formatting rule for `x` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `xaxis.hoverformat`." + }, + "yhoverformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the hover text formatting rule for `y` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `yaxis.hoverformat`." + }, + "zhoverformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the hover text formatting rule for `z` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `zaxis.hoverformat`." + }, + "valuehoverformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the hover text formatting rule for `value` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format By default the values are formatted using generic number format." + }, + "showlegend": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here `value`) or the bounds set in `cmin` and `cmax` Defaults to `false` when `cmin` and `cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Value should have the same units as `value` and if set, `cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Value should have the same units as `value` and if set, `cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `cmin` and/or `cmax` to be equidistant to this point. Value should have the same units as `value`. Has no effect when `cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`cmin` and `cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Reverses the color mapping if true. If true, `cmin` will correspond to the last color in the array and `cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "calc" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "calc" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "calc" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "calc" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "calc" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "calc" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "calc" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "calc" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "calc" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "calc" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "calc" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "calc" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "calc", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "calc", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "calc" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "calc", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Sets the color bar's tick label font", + "editType": "calc", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "calc", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "calc" + }, + { + "valType": "any", + "editType": "calc" + } + ], + "editType": "calc", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "calc", + "name": { + "valType": "string", + "editType": "calc", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "calc", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "calc", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "calc", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "calc" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "calc", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "calc" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "calc" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "calc" + } + }, + "editType": "calc", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "description": "Sets the opacity of the surface. Please note that in the case of using high `opacity` values for example a value greater than or equal to 0.5 on two surfaces (and 0.25 with four surfaces), an overlay of multiple transparent surfaces may not perfectly be sorted in depth by the webgl API. This behavior may be improved in the near future and is subject to change.", + "editType": "calc" + }, + "lightposition": { + "x": { + "valType": "number", + "min": -100000, + "max": 100000, + "dflt": 100000, + "description": "Numeric vector, representing the X coordinate for each vertex.", + "editType": "calc" + }, + "y": { + "valType": "number", + "min": -100000, + "max": 100000, + "dflt": 100000, + "description": "Numeric vector, representing the Y coordinate for each vertex.", + "editType": "calc" + }, + "z": { + "valType": "number", + "min": -100000, + "max": 100000, + "dflt": 0, + "description": "Numeric vector, representing the Z coordinate for each vertex.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "lighting": { + "vertexnormalsepsilon": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1e-12, + "editType": "calc", + "description": "Epsilon for vertex normals calculation avoids math issues arising from degenerate geometry." + }, + "facenormalsepsilon": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0, + "editType": "calc", + "description": "Epsilon for face normals calculation avoids math issues arising from degenerate geometry." + }, + "editType": "calc", + "ambient": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.8, + "description": "Ambient light increases overall color visibility but can wash out the image.", + "editType": "calc" + }, + "diffuse": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.8, + "description": "Represents the extent that incident rays are reflected in a range of angles.", + "editType": "calc" + }, + "specular": { + "valType": "number", + "min": 0, + "max": 2, + "dflt": 0.05, + "description": "Represents the level that incident rays are reflected in a single direction, causing shine.", + "editType": "calc" + }, + "roughness": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.5, + "description": "Alters specular reflection; the rougher the surface, the wider and less contrasty the shine.", + "editType": "calc" + }, + "fresnel": { + "valType": "number", + "min": 0, + "max": 5, + "dflt": 0.2, + "description": "Represents the reflectance as a dependency of the viewing angle; e.g. paper is reflective when viewing it from the edge of the paper (almost 90 degrees), causing shine.", + "editType": "calc" + }, + "role": "object" + }, + "flatshading": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not normal smoothing is applied to the meshes, creating meshes with an angular, low-poly look via flat reflections." + }, + "contour": { + "show": { + "valType": "boolean", + "dflt": false, + "description": "Sets whether or not dynamic contours are shown on hover", + "editType": "calc" + }, + "color": { + "valType": "color", + "dflt": "#444", + "description": "Sets the color of the contour lines.", + "editType": "calc" + }, + "width": { + "valType": "number", + "min": 1, + "max": 16, + "dflt": 2, + "description": "Sets the width of the contour lines.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "calc", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "scene": { + "valType": "subplotid", + "dflt": "scene", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's 3D coordinate system and a 3D scene. If *scene* (the default value), the (x,y,z) coordinates refer to `layout.scene`. If *scene2*, the (x,y,z) coordinates refer to `layout.scene2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "ysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for y .", + "editType": "none" + }, + "zsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for z .", + "editType": "none" + }, + "valuesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for value .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + } + } + }, + "volume": { + "meta": { + "description": "Draws volume trace between iso-min and iso-max values with coordinates given by four 1-dimensional arrays containing the `value`, `x`, `y` and `z` of every vertex of a uniform or non-uniform 3-D grid. Horizontal or vertical slices, caps as well as spaceframe between iso-min and iso-max values could also be drawn using this trace." + }, + "categories": [ + "gl3d", + "showLegend" + ], + "animatable": false, + "type": "volume", + "attributes": { + "type": "volume", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "x": { + "valType": "data_array", + "description": "Sets the X coordinates of the vertices on X axis.", + "editType": "calc+clearAxisTypes" + }, + "y": { + "valType": "data_array", + "description": "Sets the Y coordinates of the vertices on Y axis.", + "editType": "calc+clearAxisTypes" + }, + "z": { + "valType": "data_array", + "description": "Sets the Z coordinates of the vertices on Z axis.", + "editType": "calc+clearAxisTypes" + }, + "value": { + "valType": "data_array", + "description": "Sets the 4th dimension (value) of the vertices.", + "editType": "calc+clearAxisTypes" + }, + "isomin": { + "valType": "number", + "description": "Sets the minimum boundary for iso-surface plot.", + "editType": "calc" + }, + "isomax": { + "valType": "number", + "description": "Sets the maximum boundary for iso-surface plot.", + "editType": "calc" + }, + "surface": { + "show": { + "valType": "boolean", + "dflt": true, + "description": "Hides/displays surfaces between minimum and maximum iso-values.", + "editType": "calc" + }, + "count": { + "valType": "integer", + "dflt": 2, + "min": 1, + "description": "Sets the number of iso-surfaces between minimum and maximum iso-values. By default this value is 2 meaning that only minimum and maximum surfaces would be drawn.", + "editType": "calc" + }, + "fill": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "description": "Sets the fill ratio of the iso-surface. The default fill value of the surface is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "editType": "calc" + }, + "pattern": { + "valType": "flaglist", + "flags": [ + "A", + "B", + "C", + "D", + "E" + ], + "extras": [ + "all", + "odd", + "even" + ], + "dflt": "all", + "description": "Sets the surface pattern of the iso-surface 3-D sections. The default pattern of the surface is `all` meaning that the rest of surface elements would be shaded. The check options (either 1 or 2) could be used to draw half of the squares on the surface. Using various combinations of capital `A`, `B`, `C`, `D` and `E` may also be used to reduce the number of triangles on the iso-surfaces and creating other patterns of interest.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "spaceframe": { + "show": { + "valType": "boolean", + "dflt": false, + "description": "Displays/hides tetrahedron shapes between minimum and maximum iso-values. Often useful when either caps or surfaces are disabled or filled with values less than 1.", + "editType": "calc" + }, + "fill": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "description": "Sets the fill ratio of the `spaceframe` elements. The default fill value is 1 meaning that they are entirely shaded. Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "slices": { + "x": { + "show": { + "valType": "boolean", + "dflt": false, + "description": "Determines whether or not slice planes about the x dimension are drawn.", + "editType": "calc" + }, + "locations": { + "valType": "data_array", + "dflt": [], + "description": "Specifies the location(s) of slices on the axis. When not specified slices would be created for all points of the axis x except start and end.", + "editType": "calc" + }, + "fill": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "description": "Sets the fill ratio of the `slices`. The default fill value of the `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "editType": "calc" + }, + "editType": "calc", + "role": "object", + "locationssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for locations .", + "editType": "none" + } + }, + "y": { + "show": { + "valType": "boolean", + "dflt": false, + "description": "Determines whether or not slice planes about the y dimension are drawn.", + "editType": "calc" + }, + "locations": { + "valType": "data_array", + "dflt": [], + "description": "Specifies the location(s) of slices on the axis. When not specified slices would be created for all points of the axis y except start and end.", + "editType": "calc" + }, + "fill": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "description": "Sets the fill ratio of the `slices`. The default fill value of the `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "editType": "calc" + }, + "editType": "calc", + "role": "object", + "locationssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for locations .", + "editType": "none" + } + }, + "z": { + "show": { + "valType": "boolean", + "dflt": false, + "description": "Determines whether or not slice planes about the z dimension are drawn.", + "editType": "calc" + }, + "locations": { + "valType": "data_array", + "dflt": [], + "description": "Specifies the location(s) of slices on the axis. When not specified slices would be created for all points of the axis z except start and end.", + "editType": "calc" + }, + "fill": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "description": "Sets the fill ratio of the `slices`. The default fill value of the `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "editType": "calc" + }, + "editType": "calc", + "role": "object", + "locationssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for locations .", + "editType": "none" + } + }, + "editType": "calc", + "role": "object" + }, + "caps": { + "x": { + "show": { + "valType": "boolean", + "dflt": true, + "description": "Sets the fill ratio of the `slices`. The default fill value of the x `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "editType": "calc" + }, + "fill": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "description": "Sets the fill ratio of the `caps`. The default fill value of the `caps` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "y": { + "show": { + "valType": "boolean", + "dflt": true, + "description": "Sets the fill ratio of the `slices`. The default fill value of the y `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "editType": "calc" + }, + "fill": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "description": "Sets the fill ratio of the `caps`. The default fill value of the `caps` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "z": { + "show": { + "valType": "boolean", + "dflt": true, + "description": "Sets the fill ratio of the `slices`. The default fill value of the z `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "editType": "calc" + }, + "fill": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "description": "Sets the fill ratio of the `caps`. The default fill value of the `caps` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "editType": "calc", + "role": "object" + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "description": "Sets the text elements associated with the vertices. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", + "editType": "calc" + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "description": "Same as `text`.", + "editType": "calc" + }, + "xhoverformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the hover text formatting rule for `x` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `xaxis.hoverformat`." + }, + "yhoverformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the hover text formatting rule for `y` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `yaxis.hoverformat`." + }, + "zhoverformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the hover text formatting rule for `z` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `zaxis.hoverformat`." + }, + "valuehoverformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the hover text formatting rule for `value` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format By default the values are formatted using generic number format." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here `value`) or the bounds set in `cmin` and `cmax` Defaults to `false` when `cmin` and `cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Value should have the same units as `value` and if set, `cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Value should have the same units as `value` and if set, `cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `cmin` and/or `cmax` to be equidistant to this point. Value should have the same units as `value`. Has no effect when `cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`cmin` and `cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Reverses the color mapping if true. If true, `cmin` will correspond to the last color in the array and `cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "calc" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "calc" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "calc" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "calc" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "calc" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "calc" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "calc" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "calc" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "calc" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "calc" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "calc" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "calc" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "calc", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "calc", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "calc" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "calc", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Sets the color bar's tick label font", + "editType": "calc", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "calc", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "calc" + }, + { + "valType": "any", + "editType": "calc" + } + ], + "editType": "calc", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "calc", + "name": { + "valType": "string", + "editType": "calc", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "calc", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "calc", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "calc", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "calc" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "calc", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "calc" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "calc" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "calc" + } + }, + "editType": "calc", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "description": "Sets the opacity of the surface. Please note that in the case of using high `opacity` values for example a value greater than or equal to 0.5 on two surfaces (and 0.25 with four surfaces), an overlay of multiple transparent surfaces may not perfectly be sorted in depth by the webgl API. This behavior may be improved in the near future and is subject to change.", + "editType": "calc" + }, + "opacityscale": { + "valType": "any", + "editType": "calc", + "description": "Sets the opacityscale. The opacityscale must be an array containing arrays mapping a normalized value to an opacity value. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 1], [0.5, 0.2], [1, 1]]` means that higher/lower values would have higher opacity values and those in the middle would be more transparent Alternatively, `opacityscale` may be a palette name string of the following list: 'min', 'max', 'extremes' and 'uniform'. The default is 'uniform'." + }, + "lightposition": { + "x": { + "valType": "number", + "min": -100000, + "max": 100000, + "dflt": 100000, + "description": "Numeric vector, representing the X coordinate for each vertex.", + "editType": "calc" + }, + "y": { + "valType": "number", + "min": -100000, + "max": 100000, + "dflt": 100000, + "description": "Numeric vector, representing the Y coordinate for each vertex.", + "editType": "calc" + }, + "z": { + "valType": "number", + "min": -100000, + "max": 100000, + "dflt": 0, + "description": "Numeric vector, representing the Z coordinate for each vertex.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "lighting": { + "vertexnormalsepsilon": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1e-12, + "editType": "calc", + "description": "Epsilon for vertex normals calculation avoids math issues arising from degenerate geometry." + }, + "facenormalsepsilon": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0, + "editType": "calc", + "description": "Epsilon for face normals calculation avoids math issues arising from degenerate geometry." + }, + "editType": "calc", + "ambient": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.8, + "description": "Ambient light increases overall color visibility but can wash out the image.", + "editType": "calc" + }, + "diffuse": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.8, + "description": "Represents the extent that incident rays are reflected in a range of angles.", + "editType": "calc" + }, + "specular": { + "valType": "number", + "min": 0, + "max": 2, + "dflt": 0.05, + "description": "Represents the level that incident rays are reflected in a single direction, causing shine.", + "editType": "calc" + }, + "roughness": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.5, + "description": "Alters specular reflection; the rougher the surface, the wider and less contrasty the shine.", + "editType": "calc" + }, + "fresnel": { + "valType": "number", + "min": 0, + "max": 5, + "dflt": 0.2, + "description": "Represents the reflectance as a dependency of the viewing angle; e.g. paper is reflective when viewing it from the edge of the paper (almost 90 degrees), causing shine.", + "editType": "calc" + }, + "role": "object" + }, + "flatshading": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not normal smoothing is applied to the meshes, creating meshes with an angular, low-poly look via flat reflections." + }, + "contour": { + "show": { + "valType": "boolean", + "dflt": false, + "description": "Sets whether or not dynamic contours are shown on hover", + "editType": "calc" + }, + "color": { + "valType": "color", + "dflt": "#444", + "description": "Sets the color of the contour lines.", + "editType": "calc" + }, + "width": { + "valType": "number", + "min": 1, + "max": 16, + "dflt": 2, + "description": "Sets the width of the contour lines.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "calc", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "showlegend": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "scene": { + "valType": "subplotid", + "dflt": "scene", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's 3D coordinate system and a 3D scene. If *scene* (the default value), the (x,y,z) coordinates refer to `layout.scene`. If *scene2*, the (x,y,z) coordinates refer to `layout.scene2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "ysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for y .", + "editType": "none" + }, + "zsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for z .", + "editType": "none" + }, + "valuesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for value .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + } + } + }, + "mesh3d": { + "meta": { + "description": "Draws sets of triangles with coordinates given by three 1-dimensional arrays in `x`, `y`, `z` and (1) a sets of `i`, `j`, `k` indices (2) Delaunay triangulation or (3) the Alpha-shape algorithm or (4) the Convex-hull algorithm" + }, + "categories": [ + "gl3d", + "showLegend" + ], + "animatable": false, + "type": "mesh3d", + "attributes": { + "type": "mesh3d", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "x": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the X coordinates of the vertices. The nth element of vectors `x`, `y` and `z` jointly represent the X, Y and Z coordinates of the nth vertex." + }, + "y": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the Y coordinates of the vertices. The nth element of vectors `x`, `y` and `z` jointly represent the X, Y and Z coordinates of the nth vertex." + }, + "z": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the Z coordinates of the vertices. The nth element of vectors `x`, `y` and `z` jointly represent the X, Y and Z coordinates of the nth vertex." + }, + "i": { + "valType": "data_array", + "editType": "calc", + "description": "A vector of vertex indices, i.e. integer values between 0 and the length of the vertex vectors, representing the *first* vertex of a triangle. For example, `{i[m], j[m], k[m]}` together represent face m (triangle m) in the mesh, where `i[m] = n` points to the triplet `{x[n], y[n], z[n]}` in the vertex arrays. Therefore, each element in `i` represents a point in space, which is the first vertex of a triangle." + }, + "j": { + "valType": "data_array", + "editType": "calc", + "description": "A vector of vertex indices, i.e. integer values between 0 and the length of the vertex vectors, representing the *second* vertex of a triangle. For example, `{i[m], j[m], k[m]}` together represent face m (triangle m) in the mesh, where `j[m] = n` points to the triplet `{x[n], y[n], z[n]}` in the vertex arrays. Therefore, each element in `j` represents a point in space, which is the second vertex of a triangle." + }, + "k": { + "valType": "data_array", + "editType": "calc", + "description": "A vector of vertex indices, i.e. integer values between 0 and the length of the vertex vectors, representing the *third* vertex of a triangle. For example, `{i[m], j[m], k[m]}` together represent face m (triangle m) in the mesh, where `k[m] = n` points to the triplet `{x[n], y[n], z[n]}` in the vertex arrays. Therefore, each element in `k` represents a point in space, which is the third vertex of a triangle." + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets the text elements associated with the vertices. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Same as `text`." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "xhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `x` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `xaxis.hoverformat`." + }, + "yhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `y` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `yaxis.hoverformat`." + }, + "zhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `z` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `zaxis.hoverformat`." + }, + "delaunayaxis": { + "valType": "enumerated", + "values": [ + "x", + "y", + "z" + ], + "dflt": "z", + "editType": "calc", + "description": "Sets the Delaunay axis, which is the axis that is perpendicular to the surface of the Delaunay triangulation. It has an effect if `i`, `j`, `k` are not provided and `alphahull` is set to indicate Delaunay triangulation." + }, + "alphahull": { + "valType": "number", + "dflt": -1, + "editType": "calc", + "description": "Determines how the mesh surface triangles are derived from the set of vertices (points) represented by the `x`, `y` and `z` arrays, if the `i`, `j`, `k` arrays are not supplied. For general use of `mesh3d` it is preferred that `i`, `j`, `k` are supplied. If *-1*, Delaunay triangulation is used, which is mainly suitable if the mesh is a single, more or less layer surface that is perpendicular to `delaunayaxis`. In case the `delaunayaxis` intersects the mesh surface at more than one point it will result triangles that are very long in the dimension of `delaunayaxis`. If *>0*, the alpha-shape algorithm is used. In this case, the positive `alphahull` value signals the use of the alpha-shape algorithm, _and_ its value acts as the parameter for the mesh fitting. If *0*, the convex-hull algorithm is used. It is suitable for convex bodies or if the intention is to enclose the `x`, `y` and `z` point set into a convex hull." + }, + "intensity": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the intensity values for vertices or cells as defined by `intensitymode`. It can be used for plotting fields on meshes." + }, + "intensitymode": { + "valType": "enumerated", + "values": [ + "vertex", + "cell" + ], + "dflt": "vertex", + "editType": "calc", + "description": "Determines the source of `intensity` values." + }, + "color": { + "valType": "color", + "editType": "calc", + "description": "Sets the color of the whole mesh" + }, + "vertexcolor": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the color of each vertex Overrides *color*. While Red, green and blue colors are in the range of 0 and 255; in the case of having vertex color data in RGBA format, the alpha color should be normalized to be between 0 and 1." + }, + "facecolor": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the color of each face Overrides *color* and *vertexcolor*." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here `intensity`) or the bounds set in `cmin` and `cmax` Defaults to `false` when `cmin` and `cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Value should have the same units as `intensity` and if set, `cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Value should have the same units as `intensity` and if set, `cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `cmin` and/or `cmax` to be equidistant to this point. Value should have the same units as `intensity`. Has no effect when `cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`cmin` and `cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. If true, `cmin` will correspond to the last color in the array and `cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "colorbars" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "colorbars" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "colorbars" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "colorbars" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "colorbars" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "colorbars" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "colorbars" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "colorbars" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "colorbars" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "colorbars" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "colorbars", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "colorbars", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "colorbars", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "colorbars", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "colorbars" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "colorbars", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "colorbars", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "colorbars" + }, + { + "valType": "any", + "editType": "colorbars" + } + ], + "editType": "colorbars", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "colorbars", + "name": { + "valType": "string", + "editType": "colorbars", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "colorbars", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "colorbars", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "colorbars", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "colorbars", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars" + }, + "editType": "colorbars", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "colorbars" + } + }, + "editType": "colorbars", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "description": "Sets the opacity of the surface. Please note that in the case of using high `opacity` values for example a value greater than or equal to 0.5 on two surfaces (and 0.25 with four surfaces), an overlay of multiple transparent surfaces may not perfectly be sorted in depth by the webgl API. This behavior may be improved in the near future and is subject to change.", + "editType": "calc" + }, + "flatshading": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not normal smoothing is applied to the meshes, creating meshes with an angular, low-poly look via flat reflections." + }, + "contour": { + "show": { + "valType": "boolean", + "dflt": false, + "description": "Sets whether or not dynamic contours are shown on hover", + "editType": "calc" + }, + "color": { + "valType": "color", + "dflt": "#444", + "description": "Sets the color of the contour lines.", + "editType": "calc" + }, + "width": { + "valType": "number", + "min": 1, + "max": 16, + "dflt": 2, + "description": "Sets the width of the contour lines.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "lightposition": { + "x": { + "valType": "number", + "min": -100000, + "max": 100000, + "dflt": 100000, + "description": "Numeric vector, representing the X coordinate for each vertex.", + "editType": "calc" + }, + "y": { + "valType": "number", + "min": -100000, + "max": 100000, + "dflt": 100000, + "description": "Numeric vector, representing the Y coordinate for each vertex.", + "editType": "calc" + }, + "z": { + "valType": "number", + "min": -100000, + "max": 100000, + "dflt": 0, + "description": "Numeric vector, representing the Z coordinate for each vertex.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "lighting": { + "vertexnormalsepsilon": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1e-12, + "editType": "calc", + "description": "Epsilon for vertex normals calculation avoids math issues arising from degenerate geometry." + }, + "facenormalsepsilon": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.000001, + "editType": "calc", + "description": "Epsilon for face normals calculation avoids math issues arising from degenerate geometry." + }, + "editType": "calc", + "ambient": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.8, + "description": "Ambient light increases overall color visibility but can wash out the image.", + "editType": "calc" + }, + "diffuse": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.8, + "description": "Represents the extent that incident rays are reflected in a range of angles.", + "editType": "calc" + }, + "specular": { + "valType": "number", + "min": 0, + "max": 2, + "dflt": 0.05, + "description": "Represents the level that incident rays are reflected in a single direction, causing shine.", + "editType": "calc" + }, + "roughness": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.5, + "description": "Alters specular reflection; the rougher the surface, the wider and less contrasty the shine.", + "editType": "calc" + }, + "fresnel": { + "valType": "number", + "min": 0, + "max": 5, + "dflt": 0.2, + "description": "Represents the reflectance as a dependency of the viewing angle; e.g. paper is reflective when viewing it from the edge of the paper (almost 90 degrees), causing shine.", + "editType": "calc" + }, + "role": "object" + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "calc", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "showlegend": { + "valType": "boolean", + "dflt": false, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "xcalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `x` date data." + }, + "ycalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `y` date data." + }, + "zcalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `z` date data." + }, + "scene": { + "valType": "subplotid", + "dflt": "scene", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's 3D coordinate system and a 3D scene. If *scene* (the default value), the (x,y,z) coordinates refer to `layout.scene`. If *scene2*, the (x,y,z) coordinates refer to `layout.scene2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "ysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for y .", + "editType": "none" + }, + "zsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for z .", + "editType": "none" + }, + "isrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for i .", + "editType": "none" + }, + "jsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for j .", + "editType": "none" + }, + "ksrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for k .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + }, + "intensitysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for intensity .", + "editType": "none" + }, + "vertexcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for vertexcolor .", + "editType": "none" + }, + "facecolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for facecolor .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + } + } + }, + "cone": { + "meta": { + "description": "Use cone traces to visualize vector fields. Specify a vector field using 6 1D arrays, 3 position arrays `x`, `y` and `z` and 3 vector component arrays `u`, `v`, `w`. The cones are drawn exactly at the positions given by `x`, `y` and `z`." + }, + "categories": [ + "gl3d", + "showLegend" + ], + "animatable": false, + "type": "cone", + "attributes": { + "type": "cone", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "x": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the x coordinates of the vector field and of the displayed cones." + }, + "y": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the y coordinates of the vector field and of the displayed cones." + }, + "z": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the z coordinates of the vector field and of the displayed cones." + }, + "u": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the x components of the vector field." + }, + "v": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the y components of the vector field." + }, + "w": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the z components of the vector field." + }, + "sizemode": { + "valType": "enumerated", + "values": [ + "scaled", + "absolute" + ], + "editType": "calc", + "dflt": "scaled", + "description": "Determines whether `sizeref` is set as a *scaled* (i.e unitless) scalar (normalized by the max u/v/w norm in the vector field) or as *absolute* value (in the same units as the vector field)." + }, + "sizeref": { + "valType": "number", + "editType": "calc", + "min": 0, + "description": "Adjusts the cone size scaling. The size of the cones is determined by their u/v/w norm multiplied a factor and `sizeref`. This factor (computed internally) corresponds to the minimum \"time\" to travel across two successive x/y/z positions at the average velocity of those two successive positions. All cones in a given trace use the same factor. With `sizemode` set to *scaled*, `sizeref` is unitless, its default value is *0.5* With `sizemode` set to *absolute*, `sizeref` has the same units as the u/v/w vector field, its the default value is half the sample's maximum vector norm." + }, + "anchor": { + "valType": "enumerated", + "editType": "calc", + "values": [ + "tip", + "tail", + "cm", + "center" + ], + "dflt": "cm", + "description": "Sets the cones' anchor with respect to their x/y/z positions. Note that *cm* denote the cone's center of mass which corresponds to 1/4 from the tail to tip." + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets the text elements associated with the cones. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Same as `text`." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variable `norm` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "uhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `u` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format By default the values are formatted using generic number format." + }, + "vhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `v` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format By default the values are formatted using generic number format." + }, + "whoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `w` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format By default the values are formatted using generic number format." + }, + "xhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `x` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `xaxis.hoverformat`." + }, + "yhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `y` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `yaxis.hoverformat`." + }, + "zhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `z` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `zaxis.hoverformat`." + }, + "showlegend": { + "valType": "boolean", + "dflt": false, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here u/v/w norm) or the bounds set in `cmin` and `cmax` Defaults to `false` when `cmin` and `cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Value should have the same units as u/v/w norm and if set, `cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Value should have the same units as u/v/w norm and if set, `cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `cmin` and/or `cmax` to be equidistant to this point. Value should have the same units as u/v/w norm. Has no effect when `cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`cmin` and `cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. If true, `cmin` will correspond to the last color in the array and `cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "colorbars" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "colorbars" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "colorbars" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "colorbars" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "colorbars" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "colorbars" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "colorbars" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "colorbars" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "colorbars" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "colorbars" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "colorbars", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "colorbars", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "colorbars", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "colorbars", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "colorbars" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "colorbars", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "colorbars", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "colorbars" + }, + { + "valType": "any", + "editType": "colorbars" + } + ], + "editType": "colorbars", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "colorbars", + "name": { + "valType": "string", + "editType": "colorbars", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "colorbars", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "colorbars", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "colorbars", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "colorbars", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars" + }, + "editType": "colorbars", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "colorbars" + } + }, + "editType": "colorbars", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "description": "Sets the opacity of the surface. Please note that in the case of using high `opacity` values for example a value greater than or equal to 0.5 on two surfaces (and 0.25 with four surfaces), an overlay of multiple transparent surfaces may not perfectly be sorted in depth by the webgl API. This behavior may be improved in the near future and is subject to change.", + "editType": "calc" + }, + "lightposition": { + "x": { + "valType": "number", + "min": -100000, + "max": 100000, + "dflt": 100000, + "description": "Numeric vector, representing the X coordinate for each vertex.", + "editType": "calc" + }, + "y": { + "valType": "number", + "min": -100000, + "max": 100000, + "dflt": 100000, + "description": "Numeric vector, representing the Y coordinate for each vertex.", + "editType": "calc" + }, + "z": { + "valType": "number", + "min": -100000, + "max": 100000, + "dflt": 0, + "description": "Numeric vector, representing the Z coordinate for each vertex.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "lighting": { + "vertexnormalsepsilon": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1e-12, + "editType": "calc", + "description": "Epsilon for vertex normals calculation avoids math issues arising from degenerate geometry." + }, + "facenormalsepsilon": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.000001, + "editType": "calc", + "description": "Epsilon for face normals calculation avoids math issues arising from degenerate geometry." + }, + "editType": "calc", + "ambient": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.8, + "description": "Ambient light increases overall color visibility but can wash out the image.", + "editType": "calc" + }, + "diffuse": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.8, + "description": "Represents the extent that incident rays are reflected in a range of angles.", + "editType": "calc" + }, + "specular": { + "valType": "number", + "min": 0, + "max": 2, + "dflt": 0.05, + "description": "Represents the level that incident rays are reflected in a single direction, causing shine.", + "editType": "calc" + }, + "roughness": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.5, + "description": "Alters specular reflection; the rougher the surface, the wider and less contrasty the shine.", + "editType": "calc" + }, + "fresnel": { + "valType": "number", + "min": 0, + "max": 5, + "dflt": 0.2, + "description": "Represents the reflectance as a dependency of the viewing angle; e.g. paper is reflective when viewing it from the edge of the paper (almost 90 degrees), causing shine.", + "editType": "calc" + }, + "role": "object" + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "x", + "y", + "z", + "u", + "v", + "w", + "norm", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "x+y+z+norm+text+name", + "editType": "calc", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "scene": { + "valType": "subplotid", + "dflt": "scene", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's 3D coordinate system and a 3D scene. If *scene* (the default value), the (x,y,z) coordinates refer to `layout.scene`. If *scene2*, the (x,y,z) coordinates refer to `layout.scene2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "ysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for y .", + "editType": "none" + }, + "zsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for z .", + "editType": "none" + }, + "usrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for u .", + "editType": "none" + }, + "vsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for v .", + "editType": "none" + }, + "wsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for w .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + } + } + }, + "streamtube": { + "meta": { + "description": "Use a streamtube trace to visualize flow in a vector field. Specify a vector field using 6 1D arrays of equal length, 3 position arrays `x`, `y` and `z` and 3 vector component arrays `u`, `v`, and `w`. By default, the tubes' starting positions will be cut from the vector field's x-z plane at its minimum y value. To specify your own starting position, use attributes `starts.x`, `starts.y` and `starts.z`. The color is encoded by the norm of (u, v, w), and the local radius by the divergence of (u, v, w)." + }, + "categories": [ + "gl3d", + "showLegend" + ], + "animatable": false, + "type": "streamtube", + "attributes": { + "type": "streamtube", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "x": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the x coordinates of the vector field." + }, + "y": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the y coordinates of the vector field." + }, + "z": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the z coordinates of the vector field." + }, + "u": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the x components of the vector field." + }, + "v": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the y components of the vector field." + }, + "w": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the z components of the vector field." + }, + "starts": { + "x": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the x components of the starting position of the streamtubes" + }, + "y": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the y components of the starting position of the streamtubes" + }, + "z": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the z components of the starting position of the streamtubes" + }, + "editType": "calc", + "role": "object", + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "ysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for y .", + "editType": "none" + }, + "zsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for z .", + "editType": "none" + } + }, + "maxdisplayed": { + "valType": "integer", + "min": 0, + "dflt": 1000, + "editType": "calc", + "description": "The maximum number of displayed segments in a streamtube." + }, + "sizeref": { + "valType": "number", + "editType": "calc", + "min": 0, + "dflt": 1, + "description": "The scaling factor for the streamtubes. The default is 1, which avoids two max divergence tubes from touching at adjacent starting positions." + }, + "text": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a text element associated with this trace. If trace `hoverinfo` contains a *text* flag, this text element will be seen in all hover labels. Note that streamtube traces do not support array `text` values." + }, + "hovertext": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Same as `text`." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `tubex`, `tubey`, `tubez`, `tubeu`, `tubev`, `tubew`, `norm` and `divergence`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "uhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `u` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format By default the values are formatted using generic number format." + }, + "vhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `v` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format By default the values are formatted using generic number format." + }, + "whoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `w` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format By default the values are formatted using generic number format." + }, + "xhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `x` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `xaxis.hoverformat`." + }, + "yhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `y` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `yaxis.hoverformat`." + }, + "zhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `z` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `zaxis.hoverformat`." + }, + "showlegend": { + "valType": "boolean", + "dflt": false, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here u/v/w norm) or the bounds set in `cmin` and `cmax` Defaults to `false` when `cmin` and `cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Value should have the same units as u/v/w norm and if set, `cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Value should have the same units as u/v/w norm and if set, `cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `cmin` and/or `cmax` to be equidistant to this point. Value should have the same units as u/v/w norm. Has no effect when `cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`cmin` and `cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. If true, `cmin` will correspond to the last color in the array and `cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "colorbars" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "colorbars" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "colorbars" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "colorbars" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "colorbars" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "colorbars" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "colorbars" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "colorbars" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "colorbars" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "colorbars" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "colorbars", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "colorbars", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "colorbars", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "colorbars", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "colorbars" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "colorbars", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "colorbars", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "colorbars" + }, + { + "valType": "any", + "editType": "colorbars" + } + ], + "editType": "colorbars", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "colorbars", + "name": { + "valType": "string", + "editType": "colorbars", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "colorbars", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "colorbars", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "colorbars", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "colorbars", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars" + }, + "editType": "colorbars", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "colorbars" + } + }, + "editType": "colorbars", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "description": "Sets the opacity of the surface. Please note that in the case of using high `opacity` values for example a value greater than or equal to 0.5 on two surfaces (and 0.25 with four surfaces), an overlay of multiple transparent surfaces may not perfectly be sorted in depth by the webgl API. This behavior may be improved in the near future and is subject to change.", + "editType": "calc" + }, + "lightposition": { + "x": { + "valType": "number", + "min": -100000, + "max": 100000, + "dflt": 100000, + "description": "Numeric vector, representing the X coordinate for each vertex.", + "editType": "calc" + }, + "y": { + "valType": "number", + "min": -100000, + "max": 100000, + "dflt": 100000, + "description": "Numeric vector, representing the Y coordinate for each vertex.", + "editType": "calc" + }, + "z": { + "valType": "number", + "min": -100000, + "max": 100000, + "dflt": 0, + "description": "Numeric vector, representing the Z coordinate for each vertex.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "lighting": { + "vertexnormalsepsilon": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1e-12, + "editType": "calc", + "description": "Epsilon for vertex normals calculation avoids math issues arising from degenerate geometry." + }, + "facenormalsepsilon": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.000001, + "editType": "calc", + "description": "Epsilon for face normals calculation avoids math issues arising from degenerate geometry." + }, + "editType": "calc", + "ambient": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.8, + "description": "Ambient light increases overall color visibility but can wash out the image.", + "editType": "calc" + }, + "diffuse": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.8, + "description": "Represents the extent that incident rays are reflected in a range of angles.", + "editType": "calc" + }, + "specular": { + "valType": "number", + "min": 0, + "max": 2, + "dflt": 0.05, + "description": "Represents the level that incident rays are reflected in a single direction, causing shine.", + "editType": "calc" + }, + "roughness": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.5, + "description": "Alters specular reflection; the rougher the surface, the wider and less contrasty the shine.", + "editType": "calc" + }, + "fresnel": { + "valType": "number", + "min": 0, + "max": 5, + "dflt": 0.2, + "description": "Represents the reflectance as a dependency of the viewing angle; e.g. paper is reflective when viewing it from the edge of the paper (almost 90 degrees), causing shine.", + "editType": "calc" + }, + "role": "object" + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "x", + "y", + "z", + "u", + "v", + "w", + "norm", + "divergence", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "x+y+z+norm+text+name", + "editType": "calc", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "scene": { + "valType": "subplotid", + "dflt": "scene", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's 3D coordinate system and a 3D scene. If *scene* (the default value), the (x,y,z) coordinates refer to `layout.scene`. If *scene2*, the (x,y,z) coordinates refer to `layout.scene2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "ysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for y .", + "editType": "none" + }, + "zsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for z .", + "editType": "none" + }, + "usrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for u .", + "editType": "none" + }, + "vsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for v .", + "editType": "none" + }, + "wsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for w .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + } + } + }, + "scattergeo": { + "meta": { + "hrName": "scatter_geo", + "description": "The data visualized as scatter point or lines on a geographic map is provided either by longitude/latitude pairs in `lon` and `lat` respectively or by geographic location IDs or names in `locations`." + }, + "categories": [ + "geo", + "symbols", + "showLegend", + "scatter-like" + ], + "animatable": false, + "type": "scattergeo", + "attributes": { + "type": "scattergeo", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "showlegend": { + "valType": "boolean", + "dflt": true, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "selectedpoints": { + "valType": "any", + "editType": "calc", + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "lon": { + "valType": "data_array", + "description": "Sets the longitude coordinates (in degrees East).", + "editType": "calc" + }, + "lat": { + "valType": "data_array", + "description": "Sets the latitude coordinates (in degrees North).", + "editType": "calc" + }, + "locations": { + "valType": "data_array", + "description": "Sets the coordinates via location IDs or names. Coordinates correspond to the centroid of each location given. See `locationmode` for more info.", + "editType": "calc" + }, + "locationmode": { + "valType": "enumerated", + "values": [ + "ISO-3", + "USA-states", + "country names", + "geojson-id" + ], + "dflt": "ISO-3", + "description": "Determines the set of locations used to match entries in `locations` to regions on the map. Values *ISO-3*, *USA-states*, *country names* correspond to features on the base map and value *geojson-id* corresponds to features from a custom GeoJSON linked to the `geojson` attribute.", + "editType": "calc" + }, + "geojson": { + "valType": "any", + "editType": "calc", + "description": "Sets optional GeoJSON data associated with this trace. If not given, the features on the base map are used when `locations` is set. It can be set as a valid GeoJSON object or as a URL string. Note that we only accept GeoJSONs of type *FeatureCollection* or *Feature* with geometries of type *Polygon* or *MultiPolygon*." + }, + "featureidkey": { + "valType": "string", + "editType": "calc", + "dflt": "id", + "description": "Sets the key in GeoJSON features which is used as id to match the items included in the `locations` array. Only has an effect when `geojson` is set. Support nested property, for example *properties.name*." + }, + "mode": { + "valType": "flaglist", + "flags": [ + "lines", + "markers", + "text" + ], + "extras": [ + "none" + ], + "editType": "calc", + "description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover. If there are less than 20 points and the trace is not stacked then the default is *lines+markers*. Otherwise, *lines*.", + "dflt": "markers" + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets text elements associated with each (lon,lat) pair or item in `locations`. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (lon,lat) or `locations` coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." + }, + "texttemplate": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `lat`, `lon`, `location` and `text`.", + "arrayOk": true + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets hover text elements associated with each (lon,lat) pair or item in `locations`. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (lon,lat) or `locations` coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." + }, + "textfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "calc", + "arrayOk": true + }, + "editType": "calc", + "description": "Sets the text font.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "textposition": { + "valType": "enumerated", + "values": [ + "top left", + "top center", + "top right", + "middle left", + "middle center", + "middle right", + "bottom left", + "bottom center", + "bottom right" + ], + "dflt": "middle center", + "arrayOk": true, + "editType": "calc", + "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates." + }, + "line": { + "color": { + "valType": "color", + "editType": "calc", + "description": "Sets the line color." + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "calc", + "description": "Sets the line width (in px)." + }, + "dash": { + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ], + "dflt": "solid", + "editType": "calc", + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." + }, + "editType": "calc", + "role": "object" + }, + "connectgaps": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected." + }, + "marker": { + "symbol": { + "valType": "enumerated", + "values": [ + 0, + "0", + "circle", + 100, + "100", + "circle-open", + 200, + "200", + "circle-dot", + 300, + "300", + "circle-open-dot", + 1, + "1", + "square", + 101, + "101", + "square-open", + 201, + "201", + "square-dot", + 301, + "301", + "square-open-dot", + 2, + "2", + "diamond", + 102, + "102", + "diamond-open", + 202, + "202", + "diamond-dot", + 302, + "302", + "diamond-open-dot", + 3, + "3", + "cross", + 103, + "103", + "cross-open", + 203, + "203", + "cross-dot", + 303, + "303", + "cross-open-dot", + 4, + "4", + "x", + 104, + "104", + "x-open", + 204, + "204", + "x-dot", + 304, + "304", + "x-open-dot", + 5, + "5", + "triangle-up", + 105, + "105", + "triangle-up-open", + 205, + "205", + "triangle-up-dot", + 305, + "305", + "triangle-up-open-dot", + 6, + "6", + "triangle-down", + 106, + "106", + "triangle-down-open", + 206, + "206", + "triangle-down-dot", + 306, + "306", + "triangle-down-open-dot", + 7, + "7", + "triangle-left", + 107, + "107", + "triangle-left-open", + 207, + "207", + "triangle-left-dot", + 307, + "307", + "triangle-left-open-dot", + 8, + "8", + "triangle-right", + 108, + "108", + "triangle-right-open", + 208, + "208", + "triangle-right-dot", + 308, + "308", + "triangle-right-open-dot", + 9, + "9", + "triangle-ne", + 109, + "109", + "triangle-ne-open", + 209, + "209", + "triangle-ne-dot", + 309, + "309", + "triangle-ne-open-dot", + 10, + "10", + "triangle-se", + 110, + "110", + "triangle-se-open", + 210, + "210", + "triangle-se-dot", + 310, + "310", + "triangle-se-open-dot", + 11, + "11", + "triangle-sw", + 111, + "111", + "triangle-sw-open", + 211, + "211", + "triangle-sw-dot", + 311, + "311", + "triangle-sw-open-dot", + 12, + "12", + "triangle-nw", + 112, + "112", + "triangle-nw-open", + 212, + "212", + "triangle-nw-dot", + 312, + "312", + "triangle-nw-open-dot", + 13, + "13", + "pentagon", + 113, + "113", + "pentagon-open", + 213, + "213", + "pentagon-dot", + 313, + "313", + "pentagon-open-dot", + 14, + "14", + "hexagon", + 114, + "114", + "hexagon-open", + 214, + "214", + "hexagon-dot", + 314, + "314", + "hexagon-open-dot", + 15, + "15", + "hexagon2", + 115, + "115", + "hexagon2-open", + 215, + "215", + "hexagon2-dot", + 315, + "315", + "hexagon2-open-dot", + 16, + "16", + "octagon", + 116, + "116", + "octagon-open", + 216, + "216", + "octagon-dot", + 316, + "316", + "octagon-open-dot", + 17, + "17", + "star", + 117, + "117", + "star-open", + 217, + "217", + "star-dot", + 317, + "317", + "star-open-dot", + 18, + "18", + "hexagram", + 118, + "118", + "hexagram-open", + 218, + "218", + "hexagram-dot", + 318, + "318", + "hexagram-open-dot", + 19, + "19", + "star-triangle-up", + 119, + "119", + "star-triangle-up-open", + 219, + "219", + "star-triangle-up-dot", + 319, + "319", + "star-triangle-up-open-dot", + 20, + "20", + "star-triangle-down", + 120, + "120", + "star-triangle-down-open", + 220, + "220", + "star-triangle-down-dot", + 320, + "320", + "star-triangle-down-open-dot", + 21, + "21", + "star-square", + 121, + "121", + "star-square-open", + 221, + "221", + "star-square-dot", + 321, + "321", + "star-square-open-dot", + 22, + "22", + "star-diamond", + 122, + "122", + "star-diamond-open", + 222, + "222", + "star-diamond-dot", + 322, + "322", + "star-diamond-open-dot", + 23, + "23", + "diamond-tall", + 123, + "123", + "diamond-tall-open", + 223, + "223", + "diamond-tall-dot", + 323, + "323", + "diamond-tall-open-dot", + 24, + "24", + "diamond-wide", + 124, + "124", + "diamond-wide-open", + 224, + "224", + "diamond-wide-dot", + 324, + "324", + "diamond-wide-open-dot", + 25, + "25", + "hourglass", + 125, + "125", + "hourglass-open", + 26, + "26", + "bowtie", + 126, + "126", + "bowtie-open", + 27, + "27", + "circle-cross", + 127, + "127", + "circle-cross-open", + 28, + "28", + "circle-x", + 128, + "128", + "circle-x-open", + 29, + "29", + "square-cross", + 129, + "129", + "square-cross-open", + 30, + "30", + "square-x", + 130, + "130", + "square-x-open", + 31, + "31", + "diamond-cross", + 131, + "131", + "diamond-cross-open", + 32, + "32", + "diamond-x", + 132, + "132", + "diamond-x-open", + 33, + "33", + "cross-thin", + 133, + "133", + "cross-thin-open", + 34, + "34", + "x-thin", + 134, + "134", + "x-thin-open", + 35, + "35", + "asterisk", + 135, + "135", + "asterisk-open", + 36, + "36", + "hash", + 136, + "136", + "hash-open", + 236, + "236", + "hash-dot", + 336, + "336", + "hash-open-dot", + 37, + "37", + "y-up", + 137, + "137", + "y-up-open", + 38, + "38", + "y-down", + 138, + "138", + "y-down-open", + 39, + "39", + "y-left", + 139, + "139", + "y-left-open", + 40, + "40", + "y-right", + 140, + "140", + "y-right-open", + 41, + "41", + "line-ew", + 141, + "141", + "line-ew-open", + 42, + "42", + "line-ns", + 142, + "142", + "line-ns-open", + 43, + "43", + "line-ne", + 143, + "143", + "line-ne-open", + 44, + "44", + "line-nw", + 144, + "144", + "line-nw-open", + 45, + "45", + "arrow-up", + 145, + "145", + "arrow-up-open", + 46, + "46", + "arrow-down", + 146, + "146", + "arrow-down-open", + 47, + "47", + "arrow-left", + 147, + "147", + "arrow-left-open", + 48, + "48", + "arrow-right", + 148, + "148", + "arrow-right-open", + 49, + "49", + "arrow-bar-up", + 149, + "149", + "arrow-bar-up-open", + 50, + "50", + "arrow-bar-down", + 150, + "150", + "arrow-bar-down-open", + 51, + "51", + "arrow-bar-left", + 151, + "151", + "arrow-bar-left-open", + 52, + "52", + "arrow-bar-right", + 152, + "152", + "arrow-bar-right-open" + ], + "dflt": "circle", + "arrayOk": true, + "editType": "calc", + "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "arrayOk": true, + "editType": "calc", + "description": "Sets the marker opacity." + }, + "size": { + "valType": "number", + "min": 0, + "dflt": 6, + "arrayOk": true, + "editType": "calc", + "description": "Sets the marker size (in px)." + }, + "sizeref": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`." + }, + "sizemin": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points." + }, + "sizemode": { + "valType": "enumerated", + "values": [ + "diameter", + "area" + ], + "dflt": "diameter", + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "calc" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "calc" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "calc" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "calc" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "calc" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "calc" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "calc" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "calc" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "calc" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "calc" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "calc" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "calc" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "calc", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "calc", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "calc" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "calc", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Sets the color bar's tick label font", + "editType": "calc", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "calc", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "calc" + }, + { + "valType": "any", + "editType": "calc" + } + ], + "editType": "calc", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "calc", + "name": { + "valType": "string", + "editType": "calc", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "calc", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "calc", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "calc", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "calc" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "calc", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "calc" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "calc" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "calc" + } + }, + "editType": "calc", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "line": { + "width": { + "valType": "number", + "min": 0, + "arrayOk": true, + "editType": "calc", + "description": "Sets the width (in px) of the lines bounding the marker points." + }, + "color": { + "valType": "color", + "arrayOk": true, + "editType": "calc", + "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "editType": "calc", + "role": "object", + "widthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for width .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "gradient": { + "type": { + "valType": "enumerated", + "values": [ + "radial", + "horizontal", + "vertical", + "none" + ], + "arrayOk": true, + "dflt": "none", + "editType": "calc", + "description": "Sets the type of gradient used to fill the markers" + }, + "color": { + "valType": "color", + "arrayOk": true, + "editType": "calc", + "description": "Sets the final color of the gradient fill: the center color for radial, the right for horizontal, or the bottom for vertical." + }, + "editType": "calc", + "role": "object", + "typesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for type .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "color": { + "valType": "color", + "arrayOk": true, + "editType": "calc", + "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "editType": "calc", + "role": "object", + "symbolsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for symbol .", + "editType": "none" + }, + "opacitysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for opacity .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "fill": { + "valType": "enumerated", + "values": [ + "none", + "toself" + ], + "dflt": "none", + "description": "Sets the area to fill with a solid color. Use with `fillcolor` if not *none*. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape.", + "editType": "calc" + }, + "fillcolor": { + "valType": "color", + "editType": "calc", + "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." + }, + "selected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc", + "description": "Sets the marker opacity of selected points." + }, + "color": { + "valType": "color", + "editType": "calc", + "description": "Sets the marker color of selected points." + }, + "size": { + "valType": "number", + "min": 0, + "editType": "calc", + "description": "Sets the marker size of selected points." + }, + "editType": "calc", + "role": "object" + }, + "textfont": { + "color": { + "valType": "color", + "editType": "calc", + "description": "Sets the text font color of selected points." + }, + "editType": "calc", + "role": "object" + }, + "editType": "calc", + "role": "object" + }, + "unselected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc", + "description": "Sets the marker opacity of unselected points, applied only when a selection exists." + }, + "color": { + "valType": "color", + "editType": "calc", + "description": "Sets the marker color of unselected points, applied only when a selection exists." + }, + "size": { + "valType": "number", + "min": 0, + "editType": "calc", + "description": "Sets the marker size of unselected points, applied only when a selection exists." + }, + "editType": "calc", + "role": "object" + }, + "textfont": { + "color": { + "valType": "color", + "editType": "calc", + "description": "Sets the text font color of unselected points, applied only when a selection exists." + }, + "editType": "calc", + "role": "object" + }, + "editType": "calc", + "role": "object" + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "lon", + "lat", + "location", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "calc", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "geo": { + "valType": "subplotid", + "dflt": "geo", + "editType": "calc", + "description": "Sets a reference between this trace's geospatial coordinates and a geographic map. If *geo* (the default value), the geospatial coordinates refer to `layout.geo`. If *geo2*, the geospatial coordinates refer to `layout.geo2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "lonsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for lon .", + "editType": "none" + }, + "latsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for lat .", + "editType": "none" + }, + "locationssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for locations .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "texttemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "textpositionsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for textposition .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + } + } + }, + "choropleth": { + "meta": { + "description": "The data that describes the choropleth value-to-color mapping is set in `z`. The geographic locations corresponding to each value in `z` are set in `locations`." + }, + "categories": [ + "geo", + "noOpacity", + "showLegend" + ], + "animatable": false, + "type": "choropleth", + "attributes": { + "type": "choropleth", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "selectedpoints": { + "valType": "any", + "editType": "calc", + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "locations": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the coordinates via location IDs or names. See `locationmode` for more info." + }, + "locationmode": { + "valType": "enumerated", + "values": [ + "ISO-3", + "USA-states", + "country names", + "geojson-id" + ], + "dflt": "ISO-3", + "description": "Determines the set of locations used to match entries in `locations` to regions on the map. Values *ISO-3*, *USA-states*, *country names* correspond to features on the base map and value *geojson-id* corresponds to features from a custom GeoJSON linked to the `geojson` attribute.", + "editType": "calc" + }, + "z": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the color values." + }, + "geojson": { + "valType": "any", + "editType": "calc", + "description": "Sets optional GeoJSON data associated with this trace. If not given, the features on the base map are used. It can be set as a valid GeoJSON object or as a URL string. Note that we only accept GeoJSONs of type *FeatureCollection* or *Feature* with geometries of type *Polygon* or *MultiPolygon*." + }, + "featureidkey": { + "valType": "string", + "editType": "calc", + "dflt": "id", + "description": "Sets the key in GeoJSON features which is used as id to match the items included in the `locations` array. Only has an effect when `geojson` is set. Support nested property, for example *properties.name*." + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets the text elements associated with each location." + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Same as `text`." + }, + "marker": { + "line": { + "color": { + "valType": "color", + "arrayOk": true, + "editType": "calc", + "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set.", + "dflt": "#444" + }, + "width": { + "valType": "number", + "min": 0, + "arrayOk": true, + "editType": "calc", + "description": "Sets the width (in px) of the lines bounding the marker points.", + "dflt": 1 + }, + "editType": "calc", + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + }, + "widthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for width .", + "editType": "none" + } + }, + "opacity": { + "valType": "number", + "arrayOk": true, + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the locations." + }, + "editType": "calc", + "role": "object", + "opacitysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for opacity .", + "editType": "none" + } + }, + "selected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc", + "description": "Sets the marker opacity of selected points." + }, + "editType": "plot", + "role": "object" + }, + "editType": "plot", + "role": "object" + }, + "unselected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc", + "description": "Sets the marker opacity of unselected points, applied only when a selection exists." + }, + "editType": "plot", + "role": "object" + }, + "editType": "plot", + "role": "object" + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "location", + "z", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "calc", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "showlegend": { + "valType": "boolean", + "dflt": false, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "zauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user." + }, + "zmin": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "zauto": false + }, + "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well." + }, + "zmax": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "zauto": false + }, + "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well." + }, + "zmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`zmin` and `zmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "colorbars" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "colorbars" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "colorbars" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "colorbars" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "colorbars" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "colorbars" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "colorbars" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "colorbars" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "colorbars" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "colorbars" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "colorbars", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "colorbars", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "colorbars", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "colorbars", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "colorbars" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "colorbars", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "colorbars", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "colorbars" + }, + { + "valType": "any", + "editType": "colorbars" + } + ], + "editType": "colorbars", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "colorbars", + "name": { + "valType": "string", + "editType": "colorbars", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "colorbars", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "colorbars", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "colorbars", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "colorbars", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars" + }, + "editType": "colorbars", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "colorbars" + } + }, + "editType": "colorbars", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "geo": { + "valType": "subplotid", + "dflt": "geo", + "editType": "calc", + "description": "Sets a reference between this trace's geospatial coordinates and a geographic map. If *geo* (the default value), the geospatial coordinates refer to `layout.geo`. If *geo2*, the geospatial coordinates refer to `layout.geo2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "locationssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for locations .", + "editType": "none" + }, + "zsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for z .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + } + } + }, + "scattergl": { + "meta": { + "hrName": "scatter_gl", + "description": "The data visualized as scatter point or lines is set in `x` and `y` using the WebGL plotting engine. Bubble charts are achieved by setting `marker.size` and/or `marker.color` to a numerical arrays." + }, + "categories": [ + "gl", + "regl", + "cartesian", + "symbols", + "errorBarsOK", + "showLegend", + "scatter-like" + ], + "animatable": false, + "type": "scattergl", + "attributes": { + "type": "scattergl", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "showlegend": { + "valType": "boolean", + "dflt": true, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "selectedpoints": { + "valType": "any", + "editType": "calc", + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "x": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the x coordinates." + }, + "x0": { + "valType": "any", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step." + }, + "dx": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Sets the x coordinate step. See `x0` for more info." + }, + "y": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the y coordinates." + }, + "y0": { + "valType": "any", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step." + }, + "dy": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Sets the y coordinate step. See `y0` for more info." + }, + "xperiod": { + "valType": "any", + "dflt": 0, + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." + }, + "yperiod": { + "valType": "any", + "dflt": 0, + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." + }, + "xperiod0": { + "valType": "any", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." + }, + "yperiod0": { + "valType": "any", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." + }, + "xperiodalignment": { + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ], + "dflt": "middle", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis." + }, + "yperiodalignment": { + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ], + "dflt": "middle", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis." + }, + "xhoverformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the hover text formatting rule for `x` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `xaxis.hoverformat`." + }, + "yhoverformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the hover text formatting rule for `y` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `yaxis.hoverformat`." + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets hover text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." + }, + "textposition": { + "valType": "enumerated", + "values": [ + "top left", + "top center", + "top right", + "middle left", + "middle center", + "middle right", + "bottom left", + "bottom center", + "bottom right" + ], + "dflt": "middle center", + "arrayOk": true, + "editType": "calc", + "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates." + }, + "textfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "calc", + "arrayOk": true + }, + "editType": "calc", + "description": "Sets the text font.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "mode": { + "valType": "flaglist", + "flags": [ + "lines", + "markers", + "text" + ], + "extras": [ + "none" + ], + "description": "Determines the drawing mode for this scatter trace.", + "editType": "calc" + }, + "line": { + "color": { + "valType": "color", + "editType": "calc", + "description": "Sets the line color." + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "calc", + "description": "Sets the line width (in px)." + }, + "shape": { + "valType": "enumerated", + "values": [ + "linear", + "hv", + "vh", + "hvh", + "vhv" + ], + "dflt": "linear", + "editType": "calc", + "description": "Determines the line shape. The values correspond to step-wise line shapes." + }, + "dash": { + "valType": "enumerated", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ], + "dflt": "solid", + "description": "Sets the style of the lines.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "marker": { + "color": { + "valType": "color", + "arrayOk": true, + "editType": "calc", + "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "calc" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "calc" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "calc" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "calc" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "calc" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "calc" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "calc" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "calc" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "calc" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "calc" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "calc" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "calc" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "calc", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "calc", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "calc" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "calc", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Sets the color bar's tick label font", + "editType": "calc", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "calc", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "calc" + }, + { + "valType": "any", + "editType": "calc" + } + ], + "editType": "calc", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "calc", + "name": { + "valType": "string", + "editType": "calc", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "calc", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "calc", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "calc", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "calc" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "calc", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "calc" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "calc" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "calc" + } + }, + "editType": "calc", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "symbol": { + "valType": "enumerated", + "values": [ + 0, + "0", + "circle", + 100, + "100", + "circle-open", + 200, + "200", + "circle-dot", + 300, + "300", + "circle-open-dot", + 1, + "1", + "square", + 101, + "101", + "square-open", + 201, + "201", + "square-dot", + 301, + "301", + "square-open-dot", + 2, + "2", + "diamond", + 102, + "102", + "diamond-open", + 202, + "202", + "diamond-dot", + 302, + "302", + "diamond-open-dot", + 3, + "3", + "cross", + 103, + "103", + "cross-open", + 203, + "203", + "cross-dot", + 303, + "303", + "cross-open-dot", + 4, + "4", + "x", + 104, + "104", + "x-open", + 204, + "204", + "x-dot", + 304, + "304", + "x-open-dot", + 5, + "5", + "triangle-up", + 105, + "105", + "triangle-up-open", + 205, + "205", + "triangle-up-dot", + 305, + "305", + "triangle-up-open-dot", + 6, + "6", + "triangle-down", + 106, + "106", + "triangle-down-open", + 206, + "206", + "triangle-down-dot", + 306, + "306", + "triangle-down-open-dot", + 7, + "7", + "triangle-left", + 107, + "107", + "triangle-left-open", + 207, + "207", + "triangle-left-dot", + 307, + "307", + "triangle-left-open-dot", + 8, + "8", + "triangle-right", + 108, + "108", + "triangle-right-open", + 208, + "208", + "triangle-right-dot", + 308, + "308", + "triangle-right-open-dot", + 9, + "9", + "triangle-ne", + 109, + "109", + "triangle-ne-open", + 209, + "209", + "triangle-ne-dot", + 309, + "309", + "triangle-ne-open-dot", + 10, + "10", + "triangle-se", + 110, + "110", + "triangle-se-open", + 210, + "210", + "triangle-se-dot", + 310, + "310", + "triangle-se-open-dot", + 11, + "11", + "triangle-sw", + 111, + "111", + "triangle-sw-open", + 211, + "211", + "triangle-sw-dot", + 311, + "311", + "triangle-sw-open-dot", + 12, + "12", + "triangle-nw", + 112, + "112", + "triangle-nw-open", + 212, + "212", + "triangle-nw-dot", + 312, + "312", + "triangle-nw-open-dot", + 13, + "13", + "pentagon", + 113, + "113", + "pentagon-open", + 213, + "213", + "pentagon-dot", + 313, + "313", + "pentagon-open-dot", + 14, + "14", + "hexagon", + 114, + "114", + "hexagon-open", + 214, + "214", + "hexagon-dot", + 314, + "314", + "hexagon-open-dot", + 15, + "15", + "hexagon2", + 115, + "115", + "hexagon2-open", + 215, + "215", + "hexagon2-dot", + 315, + "315", + "hexagon2-open-dot", + 16, + "16", + "octagon", + 116, + "116", + "octagon-open", + 216, + "216", + "octagon-dot", + 316, + "316", + "octagon-open-dot", + 17, + "17", + "star", + 117, + "117", + "star-open", + 217, + "217", + "star-dot", + 317, + "317", + "star-open-dot", + 18, + "18", + "hexagram", + 118, + "118", + "hexagram-open", + 218, + "218", + "hexagram-dot", + 318, + "318", + "hexagram-open-dot", + 19, + "19", + "star-triangle-up", + 119, + "119", + "star-triangle-up-open", + 219, + "219", + "star-triangle-up-dot", + 319, + "319", + "star-triangle-up-open-dot", + 20, + "20", + "star-triangle-down", + 120, + "120", + "star-triangle-down-open", + 220, + "220", + "star-triangle-down-dot", + 320, + "320", + "star-triangle-down-open-dot", + 21, + "21", + "star-square", + 121, + "121", + "star-square-open", + 221, + "221", + "star-square-dot", + 321, + "321", + "star-square-open-dot", + 22, + "22", + "star-diamond", + 122, + "122", + "star-diamond-open", + 222, + "222", + "star-diamond-dot", + 322, + "322", + "star-diamond-open-dot", + 23, + "23", + "diamond-tall", + 123, + "123", + "diamond-tall-open", + 223, + "223", + "diamond-tall-dot", + 323, + "323", + "diamond-tall-open-dot", + 24, + "24", + "diamond-wide", + 124, + "124", + "diamond-wide-open", + 224, + "224", + "diamond-wide-dot", + 324, + "324", + "diamond-wide-open-dot", + 25, + "25", + "hourglass", + 125, + "125", + "hourglass-open", + 26, + "26", + "bowtie", + 126, + "126", + "bowtie-open", + 27, + "27", + "circle-cross", + 127, + "127", + "circle-cross-open", + 28, + "28", + "circle-x", + 128, + "128", + "circle-x-open", + 29, + "29", + "square-cross", + 129, + "129", + "square-cross-open", + 30, + "30", + "square-x", + 130, + "130", + "square-x-open", + 31, + "31", + "diamond-cross", + 131, + "131", + "diamond-cross-open", + 32, + "32", + "diamond-x", + 132, + "132", + "diamond-x-open", + 33, + "33", + "cross-thin", + 133, + "133", + "cross-thin-open", + 34, + "34", + "x-thin", + 134, + "134", + "x-thin-open", + 35, + "35", + "asterisk", + 135, + "135", + "asterisk-open", + 36, + "36", + "hash", + 136, + "136", + "hash-open", + 236, + "236", + "hash-dot", + 336, + "336", + "hash-open-dot", + 37, + "37", + "y-up", + 137, + "137", + "y-up-open", + 38, + "38", + "y-down", + 138, + "138", + "y-down-open", + 39, + "39", + "y-left", + 139, + "139", + "y-left-open", + 40, + "40", + "y-right", + 140, + "140", + "y-right-open", + 41, + "41", + "line-ew", + 141, + "141", + "line-ew-open", + 42, + "42", + "line-ns", + 142, + "142", + "line-ns-open", + 43, + "43", + "line-ne", + 143, + "143", + "line-ne-open", + 44, + "44", + "line-nw", + 144, + "144", + "line-nw-open", + 45, + "45", + "arrow-up", + 145, + "145", + "arrow-up-open", + 46, + "46", + "arrow-down", + 146, + "146", + "arrow-down-open", + 47, + "47", + "arrow-left", + 147, + "147", + "arrow-left-open", + 48, + "48", + "arrow-right", + 148, + "148", + "arrow-right-open", + 49, + "49", + "arrow-bar-up", + 149, + "149", + "arrow-bar-up-open", + 50, + "50", + "arrow-bar-down", + 150, + "150", + "arrow-bar-down-open", + 51, + "51", + "arrow-bar-left", + 151, + "151", + "arrow-bar-left-open", + 52, + "52", + "arrow-bar-right", + 152, + "152", + "arrow-bar-right-open" + ], + "dflt": "circle", + "arrayOk": true, + "editType": "calc", + "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name." + }, + "size": { + "valType": "number", + "min": 0, + "dflt": 6, + "arrayOk": true, + "editType": "calc", + "description": "Sets the marker size (in px)." + }, + "sizeref": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`." + }, + "sizemin": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points." + }, + "sizemode": { + "valType": "enumerated", + "values": [ + "diameter", + "area" + ], + "dflt": "diameter", + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "arrayOk": true, + "editType": "calc", + "description": "Sets the marker opacity." + }, + "line": { + "color": { + "valType": "color", + "arrayOk": true, + "editType": "calc", + "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "width": { + "valType": "number", + "min": 0, + "arrayOk": true, + "editType": "calc", + "description": "Sets the width (in px) of the lines bounding the marker points." + }, + "editType": "calc", + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + }, + "widthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for width .", + "editType": "none" + } + }, + "editType": "calc", + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + }, + "symbolsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for symbol .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "opacitysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for opacity .", + "editType": "none" + } + }, + "connectgaps": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected." + }, + "fill": { + "valType": "enumerated", + "values": [ + "none", + "tozeroy", + "tozerox", + "tonexty", + "tonextx", + "toself", + "tonext" + ], + "editType": "calc", + "description": "Sets the area to fill with a solid color. Defaults to *none* unless this trace is stacked, then it gets *tonexty* (*tonextx*) if `orientation` is *v* (*h*) Use with `fillcolor` if not *none*. *tozerox* and *tozeroy* fill to x=0 and y=0 respectively. *tonextx* and *tonexty* fill between the endpoints of this trace and the endpoints of the trace before it, connecting those endpoints with straight lines (to make a stacked area graph); if there is no trace before it, they behave like *tozerox* and *tozeroy*. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape. *tonext* fills the space between two traces if one completely encloses the other (eg consecutive contour lines), and behaves like *toself* if there is no trace before it. *tonext* should not be used if one trace does not enclose the other. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order.", + "dflt": "none" + }, + "fillcolor": { + "valType": "color", + "editType": "calc", + "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." + }, + "selected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc", + "description": "Sets the marker opacity of selected points." + }, + "color": { + "valType": "color", + "editType": "calc", + "description": "Sets the marker color of selected points." + }, + "size": { + "valType": "number", + "min": 0, + "editType": "calc", + "description": "Sets the marker size of selected points." + }, + "editType": "calc", + "role": "object" + }, + "textfont": { + "color": { + "valType": "color", + "editType": "calc", + "description": "Sets the text font color of selected points." + }, + "editType": "calc", + "role": "object" + }, + "editType": "calc", + "role": "object" + }, + "unselected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc", + "description": "Sets the marker opacity of unselected points, applied only when a selection exists." + }, + "color": { + "valType": "color", + "editType": "calc", + "description": "Sets the marker color of unselected points, applied only when a selection exists." + }, + "size": { + "valType": "number", + "min": 0, + "editType": "calc", + "description": "Sets the marker size of unselected points, applied only when a selection exists." + }, + "editType": "calc", + "role": "object" + }, + "textfont": { + "color": { + "valType": "color", + "editType": "calc", + "description": "Sets the text font color of unselected points, applied only when a selection exists." + }, + "editType": "calc", + "role": "object" + }, + "editType": "calc", + "role": "object" + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "calc", + "description": "Sets the opacity of the trace." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "texttemplate": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. ", + "arrayOk": true + }, + "error_x": { + "visible": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not this set of error bars is visible." + }, + "type": { + "valType": "enumerated", + "values": [ + "percent", + "constant", + "sqrt", + "data" + ], + "editType": "calc", + "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`." + }, + "symmetric": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars." + }, + "array": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data." + }, + "arrayminus": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data." + }, + "value": { + "valType": "number", + "min": 0, + "dflt": 10, + "editType": "calc", + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars." + }, + "valueminus": { + "valType": "number", + "min": 0, + "dflt": 10, + "editType": "calc", + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars" + }, + "traceref": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc" + }, + "tracerefminus": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc" + }, + "copy_ystyle": { + "valType": "boolean", + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc", + "description": "Sets the stoke color of the error bars." + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "calc", + "description": "Sets the thickness (in px) of the error bars." + }, + "width": { + "valType": "number", + "min": 0, + "editType": "calc", + "description": "Sets the width (in px) of the cross-bar at both ends of the error bars." + }, + "editType": "calc", + "_deprecated": { + "opacity": { + "valType": "number", + "editType": "calc", + "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." + } + }, + "role": "object", + "arraysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for array .", + "editType": "none" + }, + "arrayminussrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for arrayminus .", + "editType": "none" + } + }, + "error_y": { + "visible": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not this set of error bars is visible." + }, + "type": { + "valType": "enumerated", + "values": [ + "percent", + "constant", + "sqrt", + "data" + ], + "editType": "calc", + "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`." + }, + "symmetric": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars." + }, + "array": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data." + }, + "arrayminus": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data." + }, + "value": { + "valType": "number", + "min": 0, + "dflt": 10, + "editType": "calc", + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars." + }, + "valueminus": { + "valType": "number", + "min": 0, + "dflt": 10, + "editType": "calc", + "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars" + }, + "traceref": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc" + }, + "tracerefminus": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc", + "description": "Sets the stoke color of the error bars." + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "calc", + "description": "Sets the thickness (in px) of the error bars." + }, + "width": { + "valType": "number", + "min": 0, + "editType": "calc", + "description": "Sets the width (in px) of the cross-bar at both ends of the error bars." + }, + "editType": "calc", + "_deprecated": { + "opacity": { + "valType": "number", + "editType": "calc", + "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." + } + }, + "role": "object", + "arraysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for array .", + "editType": "none" + }, + "arrayminussrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for arrayminus .", + "editType": "none" + } + }, + "xcalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `x` date data." + }, + "ycalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `y` date data." + }, + "xaxis": { + "valType": "subplotid", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." + }, + "yaxis": { + "valType": "subplotid", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "ysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for y .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "textpositionsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for textposition .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + }, + "texttemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", + "editType": "none" + } + } + }, + "splom": { + "meta": { + "description": "Splom traces generate scatter plot matrix visualizations. Each splom `dimensions` items correspond to a generated axis. Values for each of those dimensions are set in `dimensions[i].values`. Splom traces support all `scattergl` marker style attributes. Specify `layout.grid` attributes and/or layout x-axis and y-axis attributes for more control over the axis positioning and style. " + }, + "categories": [ + "gl", + "regl", + "cartesian", + "symbols", + "showLegend", + "scatter-like" + ], + "animatable": false, + "type": "splom", + "attributes": { + "type": "splom", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "showlegend": { + "valType": "boolean", + "dflt": true, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "selectedpoints": { + "valType": "any", + "editType": "calc", + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "dimensions": { + "items": { + "dimension": { + "visible": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this dimension is shown on the graph. Note that even visible false dimension contribute to the default grid generate by this splom trace." + }, + "label": { + "valType": "string", + "editType": "calc", + "description": "Sets the label corresponding to this splom dimension." + }, + "values": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the dimension values to be plotted." + }, + "axis": { + "type": { + "valType": "enumerated", + "values": [ + "linear", + "log", + "date", + "category" + ], + "editType": "calc+clearAxisTypes", + "description": "Sets the axis type for this dimension's generated x and y axes. Note that the axis `type` values set in layout take precedence over this attribute." + }, + "matches": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not the x & y axes generated by this dimension match. Equivalent to setting the `matches` axis attribute in the layout with the correct axis id." + }, + "editType": "calc+clearAxisTypes", + "role": "object" + }, + "editType": "calc+clearAxisTypes", + "name": { + "valType": "string", + "editType": "none", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "calc", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object", + "valuessrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for values .", + "editType": "none" + } + } + }, + "role": "object" + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets text elements associated with each (x,y) pair to appear on hover. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates." + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Same as `text`." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "xhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `x` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `xaxis.hoverformat`." + }, + "yhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `y` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `yaxis.hoverformat`." + }, + "marker": { + "color": { + "valType": "color", + "arrayOk": true, + "editType": "style", + "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "style", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "style", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "colorbars" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "colorbars" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "colorbars" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "colorbars" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "colorbars" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "colorbars" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "colorbars" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "colorbars" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "colorbars" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "colorbars" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "colorbars", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "colorbars", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "colorbars", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "colorbars", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "colorbars" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "colorbars", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "colorbars", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "colorbars" + }, + { + "valType": "any", + "editType": "colorbars" + } + ], + "editType": "colorbars", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "colorbars", + "name": { + "valType": "string", + "editType": "colorbars", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "colorbars", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "colorbars", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "colorbars", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "colorbars", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars" + }, + "editType": "colorbars", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "colorbars" + } + }, + "editType": "colorbars", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "symbol": { + "valType": "enumerated", + "values": [ + 0, + "0", + "circle", + 100, + "100", + "circle-open", + 200, + "200", + "circle-dot", + 300, + "300", + "circle-open-dot", + 1, + "1", + "square", + 101, + "101", + "square-open", + 201, + "201", + "square-dot", + 301, + "301", + "square-open-dot", + 2, + "2", + "diamond", + 102, + "102", + "diamond-open", + 202, + "202", + "diamond-dot", + 302, + "302", + "diamond-open-dot", + 3, + "3", + "cross", + 103, + "103", + "cross-open", + 203, + "203", + "cross-dot", + 303, + "303", + "cross-open-dot", + 4, + "4", + "x", + 104, + "104", + "x-open", + 204, + "204", + "x-dot", + 304, + "304", + "x-open-dot", + 5, + "5", + "triangle-up", + 105, + "105", + "triangle-up-open", + 205, + "205", + "triangle-up-dot", + 305, + "305", + "triangle-up-open-dot", + 6, + "6", + "triangle-down", + 106, + "106", + "triangle-down-open", + 206, + "206", + "triangle-down-dot", + 306, + "306", + "triangle-down-open-dot", + 7, + "7", + "triangle-left", + 107, + "107", + "triangle-left-open", + 207, + "207", + "triangle-left-dot", + 307, + "307", + "triangle-left-open-dot", + 8, + "8", + "triangle-right", + 108, + "108", + "triangle-right-open", + 208, + "208", + "triangle-right-dot", + 308, + "308", + "triangle-right-open-dot", + 9, + "9", + "triangle-ne", + 109, + "109", + "triangle-ne-open", + 209, + "209", + "triangle-ne-dot", + 309, + "309", + "triangle-ne-open-dot", + 10, + "10", + "triangle-se", + 110, + "110", + "triangle-se-open", + 210, + "210", + "triangle-se-dot", + 310, + "310", + "triangle-se-open-dot", + 11, + "11", + "triangle-sw", + 111, + "111", + "triangle-sw-open", + 211, + "211", + "triangle-sw-dot", + 311, + "311", + "triangle-sw-open-dot", + 12, + "12", + "triangle-nw", + 112, + "112", + "triangle-nw-open", + 212, + "212", + "triangle-nw-dot", + 312, + "312", + "triangle-nw-open-dot", + 13, + "13", + "pentagon", + 113, + "113", + "pentagon-open", + 213, + "213", + "pentagon-dot", + 313, + "313", + "pentagon-open-dot", + 14, + "14", + "hexagon", + 114, + "114", + "hexagon-open", + 214, + "214", + "hexagon-dot", + 314, + "314", + "hexagon-open-dot", + 15, + "15", + "hexagon2", + 115, + "115", + "hexagon2-open", + 215, + "215", + "hexagon2-dot", + 315, + "315", + "hexagon2-open-dot", + 16, + "16", + "octagon", + 116, + "116", + "octagon-open", + 216, + "216", + "octagon-dot", + 316, + "316", + "octagon-open-dot", + 17, + "17", + "star", + 117, + "117", + "star-open", + 217, + "217", + "star-dot", + 317, + "317", + "star-open-dot", + 18, + "18", + "hexagram", + 118, + "118", + "hexagram-open", + 218, + "218", + "hexagram-dot", + 318, + "318", + "hexagram-open-dot", + 19, + "19", + "star-triangle-up", + 119, + "119", + "star-triangle-up-open", + 219, + "219", + "star-triangle-up-dot", + 319, + "319", + "star-triangle-up-open-dot", + 20, + "20", + "star-triangle-down", + 120, + "120", + "star-triangle-down-open", + 220, + "220", + "star-triangle-down-dot", + 320, + "320", + "star-triangle-down-open-dot", + 21, + "21", + "star-square", + 121, + "121", + "star-square-open", + 221, + "221", + "star-square-dot", + 321, + "321", + "star-square-open-dot", + 22, + "22", + "star-diamond", + 122, + "122", + "star-diamond-open", + 222, + "222", + "star-diamond-dot", + 322, + "322", + "star-diamond-open-dot", + 23, + "23", + "diamond-tall", + 123, + "123", + "diamond-tall-open", + 223, + "223", + "diamond-tall-dot", + 323, + "323", + "diamond-tall-open-dot", + 24, + "24", + "diamond-wide", + 124, + "124", + "diamond-wide-open", + 224, + "224", + "diamond-wide-dot", + 324, + "324", + "diamond-wide-open-dot", + 25, + "25", + "hourglass", + 125, + "125", + "hourglass-open", + 26, + "26", + "bowtie", + 126, + "126", + "bowtie-open", + 27, + "27", + "circle-cross", + 127, + "127", + "circle-cross-open", + 28, + "28", + "circle-x", + 128, + "128", + "circle-x-open", + 29, + "29", + "square-cross", + 129, + "129", + "square-cross-open", + 30, + "30", + "square-x", + 130, + "130", + "square-x-open", + 31, + "31", + "diamond-cross", + 131, + "131", + "diamond-cross-open", + 32, + "32", + "diamond-x", + 132, + "132", + "diamond-x-open", + 33, + "33", + "cross-thin", + 133, + "133", + "cross-thin-open", + 34, + "34", + "x-thin", + 134, + "134", + "x-thin-open", + 35, + "35", + "asterisk", + 135, + "135", + "asterisk-open", + 36, + "36", + "hash", + 136, + "136", + "hash-open", + 236, + "236", + "hash-dot", + 336, + "336", + "hash-open-dot", + 37, + "37", + "y-up", + 137, + "137", + "y-up-open", + 38, + "38", + "y-down", + 138, + "138", + "y-down-open", + 39, + "39", + "y-left", + 139, + "139", + "y-left-open", + 40, + "40", + "y-right", + 140, + "140", + "y-right-open", + 41, + "41", + "line-ew", + 141, + "141", + "line-ew-open", + 42, + "42", + "line-ns", + 142, + "142", + "line-ns-open", + 43, + "43", + "line-ne", + 143, + "143", + "line-ne-open", + 44, + "44", + "line-nw", + 144, + "144", + "line-nw-open", + 45, + "45", + "arrow-up", + 145, + "145", + "arrow-up-open", + 46, + "46", + "arrow-down", + 146, + "146", + "arrow-down-open", + 47, + "47", + "arrow-left", + 147, + "147", + "arrow-left-open", + 48, + "48", + "arrow-right", + 148, + "148", + "arrow-right-open", + 49, + "49", + "arrow-bar-up", + 149, + "149", + "arrow-bar-up-open", + 50, + "50", + "arrow-bar-down", + 150, + "150", + "arrow-bar-down-open", + 51, + "51", + "arrow-bar-left", + 151, + "151", + "arrow-bar-left-open", + 52, + "52", + "arrow-bar-right", + 152, + "152", + "arrow-bar-right-open" + ], + "dflt": "circle", + "arrayOk": true, + "editType": "style", + "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name." + }, + "size": { + "valType": "number", + "min": 0, + "dflt": 6, + "arrayOk": true, + "editType": "markerSize", + "description": "Sets the marker size (in px)." + }, + "sizeref": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`." + }, + "sizemin": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points." + }, + "sizemode": { + "valType": "enumerated", + "values": [ + "diameter", + "area" + ], + "dflt": "diameter", + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "arrayOk": true, + "editType": "style", + "description": "Sets the marker opacity." + }, + "line": { + "color": { + "valType": "color", + "arrayOk": true, + "editType": "calc", + "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "width": { + "valType": "number", + "min": 0, + "arrayOk": true, + "editType": "calc", + "description": "Sets the width (in px) of the lines bounding the marker points." + }, + "editType": "calc", + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + }, + "widthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for width .", + "editType": "none" + } + }, + "editType": "calc", + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + }, + "symbolsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for symbol .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "opacitysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for opacity .", + "editType": "none" + } + }, + "xaxes": { + "valType": "info_array", + "freeLength": true, + "editType": "calc", + "items": { + "valType": "subplotid", + "regex": "/^x([2-9]|[1-9][0-9]+)?( domain)?$/", + "editType": "plot" + }, + "description": "Sets the list of x axes corresponding to dimensions of this splom trace. By default, a splom will match the first N xaxes where N is the number of input dimensions. Note that, in case where `diagonal.visible` is false and `showupperhalf` or `showlowerhalf` is false, this splom trace will generate one less x-axis and one less y-axis." + }, + "yaxes": { + "valType": "info_array", + "freeLength": true, + "editType": "calc", + "items": { + "valType": "subplotid", + "regex": "/^y([2-9]|[1-9][0-9]+)?( domain)?$/", + "editType": "plot" + }, + "description": "Sets the list of y axes corresponding to dimensions of this splom trace. By default, a splom will match the first N yaxes where N is the number of input dimensions. Note that, in case where `diagonal.visible` is false and `showupperhalf` or `showlowerhalf` is false, this splom trace will generate one less x-axis and one less y-axis." + }, + "diagonal": { + "visible": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not subplots on the diagonal are displayed." + }, + "editType": "calc", + "role": "object" + }, + "showupperhalf": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not subplots on the upper half from the diagonal are displayed." + }, + "showlowerhalf": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not subplots on the lower half from the diagonal are displayed." + }, + "selected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc", + "description": "Sets the marker opacity of selected points." + }, + "color": { + "valType": "color", + "editType": "calc", + "description": "Sets the marker color of selected points." + }, + "size": { + "valType": "number", + "min": 0, + "editType": "calc", + "description": "Sets the marker size of selected points." + }, + "editType": "calc", + "role": "object" + }, + "editType": "calc", + "role": "object" + }, + "unselected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc", + "description": "Sets the marker opacity of unselected points, applied only when a selection exists." + }, + "color": { + "valType": "color", + "editType": "calc", + "description": "Sets the marker color of unselected points, applied only when a selection exists." + }, + "size": { + "valType": "number", + "min": 0, + "editType": "calc", + "description": "Sets the marker size of unselected points, applied only when a selection exists." + }, + "editType": "calc", + "role": "object" + }, + "editType": "calc", + "role": "object" + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "calc", + "description": "Sets the opacity of the trace." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + } + } + }, + "pointcloud": { + "meta": { + "description": "*pointcloud* trace is deprecated! Please consider switching to the *scattergl* trace type. The data visualized as a point cloud set in `x` and `y` using the WebGl plotting engine." + }, + "categories": [ + "gl", + "gl2d", + "showLegend" + ], + "animatable": false, + "type": "pointcloud", + "attributes": { + "type": "pointcloud", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "showlegend": { + "valType": "boolean", + "dflt": true, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "x": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the x coordinates." + }, + "y": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the y coordinates." + }, + "xy": { + "valType": "data_array", + "editType": "calc", + "description": "Faster alternative to specifying `x` and `y` separately. If supplied, it must be a typed `Float32Array` array that represents points such that `xy[i * 2] = x[i]` and `xy[i * 2 + 1] = y[i]`" + }, + "indices": { + "valType": "data_array", + "editType": "calc", + "description": "A sequential value, 0..n, supply it to avoid creating this array inside plotting. If specified, it must be a typed `Int32Array` array. Its length must be equal to or greater than the number of points. For the best performance and memory use, create one large `indices` typed array that is guaranteed to be at least as long as the largest number of points during use, and reuse it on each `Plotly.restyle()` call." + }, + "xbounds": { + "valType": "data_array", + "editType": "calc", + "description": "Specify `xbounds` in the shape of `[xMin, xMax] to avoid looping through the `xy` typed array. Use it in conjunction with `xy` and `ybounds` for the performance benefits." + }, + "ybounds": { + "valType": "data_array", + "editType": "calc", + "description": "Specify `ybounds` in the shape of `[yMin, yMax] to avoid looping through the `xy` typed array. Use it in conjunction with `xy` and `xbounds` for the performance benefits." + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." + }, + "marker": { + "color": { + "valType": "color", + "arrayOk": false, + "editType": "calc", + "description": "Sets the marker fill color. It accepts a specific color.If the color is not fully opaque and there are hundreds of thousandsof points, it may cause slower zooming and panning." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "arrayOk": false, + "editType": "calc", + "description": "Sets the marker opacity. The default value is `1` (fully opaque). If the markers are not fully opaque and there are hundreds of thousands of points, it may cause slower zooming and panning. Opacity fades the color even if `blend` is left on `false` even if there is no translucency effect in that case." + }, + "blend": { + "valType": "boolean", + "dflt": null, + "editType": "calc", + "description": "Determines if colors are blended together for a translucency effect in case `opacity` is specified as a value less then `1`. Setting `blend` to `true` reduces zoom/pan speed if used with large numbers of points." + }, + "sizemin": { + "valType": "number", + "min": 0.1, + "max": 2, + "dflt": 0.5, + "editType": "calc", + "description": "Sets the minimum size (in px) of the rendered marker points, effective when the `pointcloud` shows a million or more points." + }, + "sizemax": { + "valType": "number", + "min": 0.1, + "dflt": 20, + "editType": "calc", + "description": "Sets the maximum size (in px) of the rendered marker points. Effective when the `pointcloud` shows only few points." + }, + "border": { + "color": { + "valType": "color", + "arrayOk": false, + "editType": "calc", + "description": "Sets the stroke color. It accepts a specific color. If the color is not fully opaque and there are hundreds of thousands of points, it may cause slower zooming and panning." + }, + "arearatio": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0, + "editType": "calc", + "description": "Specifies what fraction of the marker area is covered with the border." + }, + "editType": "calc", + "role": "object" + }, + "editType": "calc", + "role": "object" + }, + "xaxis": { + "valType": "subplotid", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." + }, + "yaxis": { + "valType": "subplotid", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "ysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for y .", + "editType": "none" + }, + "xysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for xy .", + "editType": "none" + }, + "indicessrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for indices .", + "editType": "none" + }, + "xboundssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for xbounds .", + "editType": "none" + }, + "yboundssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ybounds .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + } + } + }, + "heatmapgl": { + "meta": { + "description": "*heatmapgl* trace is deprecated! Please consider switching to the *heatmap* or *image* trace types. Alternatively you could contribute/sponsor rewriting this trace type based on cartesian features and using regl framework. WebGL version of the heatmap trace type." + }, + "categories": [ + "gl", + "gl2d", + "2dMap" + ], + "animatable": false, + "type": "heatmapgl", + "attributes": { + "type": "heatmapgl", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "z": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the z data." + }, + "x": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the x coordinates.", + "impliedEdits": { + "xtype": "array" + } + }, + "x0": { + "valType": "any", + "dflt": 0, + "editType": "calc", + "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step.", + "impliedEdits": { + "xtype": "scaled" + } + }, + "dx": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Sets the x coordinate step. See `x0` for more info.", + "impliedEdits": { + "xtype": "scaled" + } + }, + "y": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the y coordinates.", + "impliedEdits": { + "ytype": "array" + } + }, + "y0": { + "valType": "any", + "dflt": 0, + "editType": "calc", + "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step.", + "impliedEdits": { + "ytype": "scaled" + } + }, + "dy": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Sets the y coordinate step. See `y0` for more info.", + "impliedEdits": { + "ytype": "scaled" + } + }, + "text": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the text elements associated with each z value." + }, + "transpose": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Transposes the z data." + }, + "xtype": { + "valType": "enumerated", + "values": [ + "array", + "scaled" + ], + "editType": "calc", + "description": "If *array*, the heatmap's x coordinates are given by *x* (the default behavior when `x` is provided). If *scaled*, the heatmap's x coordinates are given by *x0* and *dx* (the default behavior when `x` is not provided)." + }, + "ytype": { + "valType": "enumerated", + "values": [ + "array", + "scaled" + ], + "editType": "calc", + "description": "If *array*, the heatmap's y coordinates are given by *y* (the default behavior when `y` is provided) If *scaled*, the heatmap's y coordinates are given by *y0* and *dy* (the default behavior when `y` is not provided)" + }, + "zsmooth": { + "valType": "enumerated", + "values": [ + "fast", + false + ], + "dflt": "fast", + "editType": "calc", + "description": "Picks a smoothing algorithm use to smooth `z` data." + }, + "zauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user." + }, + "zmin": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "zauto": false + }, + "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well." + }, + "zmax": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "zauto": false + }, + "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well." + }, + "zmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`zmin` and `zmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "calc" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "calc" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "calc" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "calc" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "calc" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "calc" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "calc" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "calc" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "calc" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "calc" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "calc" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "calc" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "calc", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "calc", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "calc" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "calc", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Sets the color bar's tick label font", + "editType": "calc", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "calc", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "calc" + }, + { + "valType": "any", + "editType": "calc" + } + ], + "editType": "calc", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "calc", + "name": { + "valType": "string", + "editType": "calc", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "calc", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "calc", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "calc", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "calc" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "calc", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "calc" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "calc" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "calc" + } + }, + "editType": "calc", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "xaxis": { + "valType": "subplotid", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." + }, + "yaxis": { + "valType": "subplotid", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "zsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for z .", + "editType": "none" + }, + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "ysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for y .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + } + } + }, + "parcoords": { + "meta": { + "description": "Parallel coordinates for multidimensional exploratory data analysis. The samples are specified in `dimensions`. The colors are set in `line.color`." + }, + "categories": [ + "gl", + "regl", + "noOpacity", + "noHover" + ], + "animatable": false, + "type": "parcoords", + "attributes": { + "type": "parcoords", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "domain": { + "x": { + "valType": "info_array", + "editType": "plot", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the horizontal domain of this parcoords trace (in plot fraction)." + }, + "y": { + "valType": "info_array", + "editType": "plot", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the vertical domain of this parcoords trace (in plot fraction)." + }, + "editType": "plot", + "row": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "plot", + "description": "If there is a layout grid, use the domain for this row in the grid for this parcoords trace ." + }, + "column": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "plot", + "description": "If there is a layout grid, use the domain for this column in the grid for this parcoords trace ." + }, + "role": "object" + }, + "labelangle": { + "valType": "angle", + "dflt": 0, + "editType": "plot", + "description": "Sets the angle of the labels with respect to the horizontal. For example, a `tickangle` of -90 draws the labels vertically. Tilted labels with *labelangle* may be positioned better inside margins when `labelposition` is set to *bottom*." + }, + "labelside": { + "valType": "enumerated", + "values": [ + "top", + "bottom" + ], + "dflt": "top", + "editType": "plot", + "description": "Specifies the location of the `label`. *top* positions labels above, next to the title *bottom* positions labels below the graph Tilted labels with *labelangle* may be positioned better inside margins when `labelposition` is set to *bottom*." + }, + "labelfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Sets the font for the `dimension` labels.", + "role": "object" + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Sets the font for the `dimension` tick values.", + "role": "object" + }, + "rangefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Sets the font for the `dimension` range values.", + "role": "object" + }, + "dimensions": { + "items": { + "dimension": { + "label": { + "valType": "string", + "editType": "plot", + "description": "The shown name of the dimension." + }, + "tickvals": { + "valType": "data_array", + "editType": "plot", + "description": "Sets the values at which ticks on this axis appear." + }, + "ticktext": { + "valType": "data_array", + "editType": "plot", + "description": "Sets the text displayed at the ticks position via `tickvals`." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "visible": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Shows the dimension when set to `true` (the default). Hides the dimension for `false`." + }, + "range": { + "valType": "info_array", + "items": [ + { + "valType": "number", + "editType": "plot" + }, + { + "valType": "number", + "editType": "plot" + } + ], + "editType": "plot", + "description": "The domain range that represents the full, shown axis extent. Defaults to the `values` extent. Must be an array of `[fromValue, toValue]` with finite numbers as elements." + }, + "constraintrange": { + "valType": "info_array", + "freeLength": true, + "dimensions": "1-2", + "items": [ + { + "valType": "number", + "editType": "plot" + }, + { + "valType": "number", + "editType": "plot" + } + ], + "editType": "plot", + "description": "The domain range to which the filter on the dimension is constrained. Must be an array of `[fromValue, toValue]` with `fromValue <= toValue`, or if `multiselect` is not disabled, you may give an array of arrays, where each inner array is `[fromValue, toValue]`." + }, + "multiselect": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Do we allow multiple selection ranges or just a single range?" + }, + "values": { + "valType": "data_array", + "editType": "calc", + "description": "Dimension values. `values[n]` represents the value of the `n`th point in the dataset, therefore the `values` vector for all dimensions must be the same (longer vectors will be truncated). Each value must be a finite number." + }, + "editType": "calc", + "description": "The dimensions (variables) of the parallel coordinates chart. 2..60 dimensions are supported.", + "name": { + "valType": "string", + "editType": "none", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "calc", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + }, + "valuessrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for values .", + "editType": "none" + } + } + }, + "role": "object" + }, + "line": { + "editType": "calc", + "color": { + "valType": "color", + "arrayOk": true, + "editType": "calc", + "description": "Sets thelinecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `line.cmin` and `line.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `line.color`) or the bounds set in `line.cmin` and `line.cmax` Has an effect only if in `line.color`is set to a numerical array. Defaults to `false` when `line.cmin` and `line.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `line.color`is set to a numerical array. Value should have the same units as in `line.color` and if set, `line.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `line.color`is set to a numerical array. Value should have the same units as in `line.color` and if set, `line.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `line.cmin` and/or `line.cmax` to be equidistant to this point. Has an effect only if in `line.color`is set to a numerical array. Value should have the same units as in `line.color`. Has no effect when `line.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": [ + [ + 0, + "#440154" + ], + [ + 0.06274509803921569, + "#48186a" + ], + [ + 0.12549019607843137, + "#472d7b" + ], + [ + 0.18823529411764706, + "#424086" + ], + [ + 0.25098039215686274, + "#3b528b" + ], + [ + 0.3137254901960784, + "#33638d" + ], + [ + 0.3764705882352941, + "#2c728e" + ], + [ + 0.4392156862745098, + "#26828e" + ], + [ + 0.5019607843137255, + "#21918c" + ], + [ + 0.5647058823529412, + "#1fa088" + ], + [ + 0.6274509803921569, + "#28ae80" + ], + [ + 0.6901960784313725, + "#3fbc73" + ], + [ + 0.7529411764705882, + "#5ec962" + ], + [ + 0.8156862745098039, + "#84d44b" + ], + [ + 0.8784313725490196, + "#addc30" + ], + [ + 0.9411764705882353, + "#d8e219" + ], + [ + 1, + "#fde725" + ] + ], + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`line.cmin` and `line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `line.colorscale`. Has an effect only if in `line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. Has an effect only if in `line.color`is set to a numerical array. If true, `line.cmin` will correspond to the last color in the array and `line.cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `line.color`is set to a numerical array." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "colorbars" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "colorbars" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "colorbars" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "colorbars" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "colorbars" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "colorbars" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "colorbars" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "colorbars" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "colorbars" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "colorbars" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "colorbars", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "colorbars", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "colorbars", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "colorbars", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "colorbars" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "colorbars", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "colorbars", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "colorbars" + }, + { + "valType": "any", + "editType": "colorbars" + } + ], + "editType": "colorbars", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "colorbars", + "name": { + "valType": "string", + "editType": "colorbars", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "colorbars", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "colorbars", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "colorbars", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "colorbars", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars" + }, + "editType": "colorbars", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "colorbars" + } + }, + "editType": "colorbars", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + } + } + }, + "parcats": { + "meta": { + "description": "Parallel categories diagram for multidimensional categorical data." + }, + "categories": [ + "noOpacity" + ], + "animatable": false, + "type": "parcats", + "attributes": { + "type": "parcats", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "domain": { + "x": { + "valType": "info_array", + "editType": "calc", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the horizontal domain of this parcats trace (in plot fraction)." + }, + "y": { + "valType": "info_array", + "editType": "calc", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the vertical domain of this parcats trace (in plot fraction)." + }, + "editType": "calc", + "row": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "If there is a layout grid, use the domain for this row in the grid for this parcats trace ." + }, + "column": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "If there is a layout grid, use the domain for this column in the grid for this parcats trace ." + }, + "role": "object" + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "count", + "probability" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": false, + "dflt": "all", + "editType": "plot", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hoveron": { + "valType": "enumerated", + "values": [ + "category", + "color", + "dimension" + ], + "dflt": "category", + "editType": "plot", + "description": "Sets the hover interaction mode for the parcats diagram. If `category`, hover interaction take place per category. If `color`, hover interactions take place per color per category. If `dimension`, hover interactions take place across all categories per dimension." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `count`, `probability`, `category`, `categorycount`, `colorcount` and `bandcolorcount`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``." + }, + "arrangement": { + "valType": "enumerated", + "values": [ + "perpendicular", + "freeform", + "fixed" + ], + "dflt": "perpendicular", + "editType": "plot", + "description": "Sets the drag interaction mode for categories and dimensions. If `perpendicular`, the categories can only move along a line perpendicular to the paths. If `freeform`, the categories can freely move on the plane. If `fixed`, the categories and dimensions are stationary." + }, + "bundlecolors": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Sort paths so that like colors are bundled together within each category." + }, + "sortpaths": { + "valType": "enumerated", + "values": [ + "forward", + "backward" + ], + "dflt": "forward", + "editType": "plot", + "description": "Sets the path sorting algorithm. If `forward`, sort paths based on dimension categories from left to right. If `backward`, sort paths based on dimensions categories from right to left." + }, + "labelfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "editType": "calc", + "description": "Sets the font for the `dimension` labels.", + "role": "object" + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "editType": "calc", + "description": "Sets the font for the `category` labels.", + "role": "object" + }, + "dimensions": { + "items": { + "dimension": { + "label": { + "valType": "string", + "editType": "calc", + "description": "The shown name of the dimension." + }, + "categoryorder": { + "valType": "enumerated", + "values": [ + "trace", + "category ascending", + "category descending", + "array" + ], + "dflt": "trace", + "editType": "calc", + "description": "Specifies the ordering logic for the categories in the dimension. By default, plotly uses *trace*, which specifies the order that is present in the data supplied. Set `categoryorder` to *category ascending* or *category descending* if order should be determined by the alphanumerical order of the category names. Set `categoryorder` to *array* to derive the ordering from the attribute `categoryarray`. If a category is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to the *trace* mode. The unspecified categories will follow the categories in `categoryarray`." + }, + "categoryarray": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the order in which categories in this dimension appear. Only has an effect if `categoryorder` is set to *array*. Used with `categoryorder`." + }, + "ticktext": { + "valType": "data_array", + "editType": "calc", + "description": "Sets alternative tick labels for the categories in this dimension. Only has an effect if `categoryorder` is set to *array*. Should be an array the same length as `categoryarray` Used with `categoryorder`." + }, + "values": { + "valType": "data_array", + "dflt": [], + "editType": "calc", + "description": "Dimension values. `values[n]` represents the category value of the `n`th point in the dataset, therefore the `values` vector for all dimensions must be the same (longer vectors will be truncated)." + }, + "displayindex": { + "valType": "integer", + "editType": "calc", + "description": "The display index of dimension, from left to right, zero indexed, defaults to dimension index." + }, + "editType": "calc", + "description": "The dimensions (variables) of the parallel categories diagram.", + "visible": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Shows the dimension when set to `true` (the default). Hides the dimension for `false`." + }, + "role": "object", + "categoryarraysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for categoryarray .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + }, + "valuessrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for values .", + "editType": "none" + } + } + }, + "role": "object" + }, + "line": { + "editType": "calc", + "color": { + "valType": "color", + "arrayOk": true, + "editType": "calc", + "description": "Sets thelinecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `line.cmin` and `line.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `line.color`) or the bounds set in `line.cmin` and `line.cmax` Has an effect only if in `line.color`is set to a numerical array. Defaults to `false` when `line.cmin` and `line.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `line.color`is set to a numerical array. Value should have the same units as in `line.color` and if set, `line.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `line.color`is set to a numerical array. Value should have the same units as in `line.color` and if set, `line.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `line.cmin` and/or `line.cmax` to be equidistant to this point. Has an effect only if in `line.color`is set to a numerical array. Value should have the same units as in `line.color`. Has no effect when `line.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`line.cmin` and `line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `line.colorscale`. Has an effect only if in `line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. Has an effect only if in `line.color`is set to a numerical array. If true, `line.cmin` will correspond to the last color in the array and `line.cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `line.color`is set to a numerical array." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "colorbars" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "colorbars" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "colorbars" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "colorbars" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "colorbars" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "colorbars" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "colorbars" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "colorbars" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "colorbars" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "colorbars" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "colorbars", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "colorbars", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "colorbars", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "colorbars", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "colorbars" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "colorbars", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "colorbars", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "colorbars" + }, + { + "valType": "any", + "editType": "colorbars" + } + ], + "editType": "colorbars", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "colorbars", + "name": { + "valType": "string", + "editType": "colorbars", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "colorbars", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "colorbars", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "colorbars", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "colorbars", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars" + }, + "editType": "colorbars", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "colorbars" + } + }, + "editType": "colorbars", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "shape": { + "valType": "enumerated", + "values": [ + "linear", + "hspline" + ], + "dflt": "linear", + "editType": "plot", + "description": "Sets the shape of the paths. If `linear`, paths are composed of straight lines. If `hspline`, paths are composed of horizontal curved splines" + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `count` and `probability`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``." + }, + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "counts": { + "valType": "number", + "min": 0, + "dflt": 1, + "arrayOk": true, + "editType": "calc", + "description": "The number of observations represented by each state. Defaults to 1 so that each state represents one observation" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "countssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for counts .", + "editType": "none" + } + } + }, + "scattermapbox": { + "meta": { + "hrName": "scatter_mapbox", + "description": "The data visualized as scatter point, lines or marker symbols on a Mapbox GL geographic map is provided by longitude/latitude pairs in `lon` and `lat`." + }, + "categories": [ + "mapbox", + "gl", + "symbols", + "showLegend", + "scatter-like" + ], + "animatable": false, + "type": "scattermapbox", + "attributes": { + "type": "scattermapbox", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "showlegend": { + "valType": "boolean", + "dflt": true, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "selectedpoints": { + "valType": "any", + "editType": "calc", + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "lon": { + "valType": "data_array", + "description": "Sets the longitude coordinates (in degrees East).", + "editType": "calc" + }, + "lat": { + "valType": "data_array", + "description": "Sets the latitude coordinates (in degrees North).", + "editType": "calc" + }, + "mode": { + "valType": "flaglist", + "flags": [ + "lines", + "markers", + "text" + ], + "extras": [ + "none" + ], + "editType": "calc", + "description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover.", + "dflt": "markers" + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets text elements associated with each (lon,lat) pair If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (lon,lat) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." + }, + "texttemplate": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `lat`, `lon` and `text`.", + "arrayOk": true + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets hover text elements associated with each (lon,lat) pair If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (lon,lat) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." + }, + "line": { + "color": { + "valType": "color", + "editType": "calc", + "description": "Sets the line color." + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "calc", + "description": "Sets the line width (in px)." + }, + "editType": "calc", + "role": "object" + }, + "connectgaps": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected." + }, + "marker": { + "symbol": { + "valType": "string", + "dflt": "circle", + "arrayOk": true, + "description": "Sets the marker symbol. Full list: https://www.mapbox.com/maki-icons/ Note that the array `marker.color` and `marker.size` are only available for *circle* symbols.", + "editType": "calc" + }, + "angle": { + "valType": "number", + "dflt": "auto", + "arrayOk": true, + "description": "Sets the marker orientation from true North, in degrees clockwise. When using the *auto* default, no rotation would be applied in perspective views which is different from using a zero angle.", + "editType": "calc" + }, + "allowoverlap": { + "valType": "boolean", + "dflt": false, + "description": "Flag to draw all symbols, even if they overlap.", + "editType": "calc" + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "arrayOk": true, + "editType": "calc", + "description": "Sets the marker opacity." + }, + "size": { + "valType": "number", + "min": 0, + "dflt": 6, + "arrayOk": true, + "editType": "calc", + "description": "Sets the marker size (in px)." + }, + "sizeref": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`." + }, + "sizemin": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points." + }, + "sizemode": { + "valType": "enumerated", + "values": [ + "diameter", + "area" + ], + "dflt": "diameter", + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels." + }, + "color": { + "valType": "color", + "arrayOk": true, + "editType": "calc", + "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "calc" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "calc" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "calc" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "calc" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "calc" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "calc" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "calc" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "calc" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "calc" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "calc" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "calc" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "calc" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "calc", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "calc", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "calc" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "calc", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Sets the color bar's tick label font", + "editType": "calc", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "calc", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "calc" + }, + { + "valType": "any", + "editType": "calc" + } + ], + "editType": "calc", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "calc", + "name": { + "valType": "string", + "editType": "calc", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "calc", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "calc", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "calc", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "calc" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "calc", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "calc" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "calc" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "calc" + } + }, + "editType": "calc", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "editType": "calc", + "role": "object", + "symbolsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for symbol .", + "editType": "none" + }, + "anglesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for angle .", + "editType": "none" + }, + "opacitysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for opacity .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "fill": { + "valType": "enumerated", + "values": [ + "none", + "toself" + ], + "dflt": "none", + "description": "Sets the area to fill with a solid color. Use with `fillcolor` if not *none*. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape.", + "editType": "calc" + }, + "fillcolor": { + "valType": "color", + "editType": "calc", + "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." + }, + "textfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "dflt": "Open Sans Regular, Arial Unicode MS Regular", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Sets the icon text font (color=mapbox.layer.paint.text-color, size=mapbox.layer.layout.text-size). Has an effect only when `type` is set to *symbol*.", + "editType": "calc", + "role": "object" + }, + "textposition": { + "valType": "enumerated", + "values": [ + "top left", + "top center", + "top right", + "middle left", + "middle center", + "middle right", + "bottom left", + "bottom center", + "bottom right" + ], + "dflt": "middle center", + "arrayOk": false, + "editType": "calc", + "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates." + }, + "below": { + "valType": "string", + "description": "Determines if this scattermapbox trace's layers are to be inserted before the layer with the specified ID. By default, scattermapbox layers are inserted above all the base layers. To place the scattermapbox layers above every other layer, set `below` to *''*.", + "editType": "calc" + }, + "selected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc", + "description": "Sets the marker opacity of selected points." + }, + "color": { + "valType": "color", + "editType": "calc", + "description": "Sets the marker color of selected points." + }, + "size": { + "valType": "number", + "min": 0, + "editType": "calc", + "description": "Sets the marker size of selected points." + }, + "editType": "calc", + "role": "object" + }, + "editType": "calc", + "role": "object" + }, + "unselected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc", + "description": "Sets the marker opacity of unselected points, applied only when a selection exists." + }, + "color": { + "valType": "color", + "editType": "calc", + "description": "Sets the marker color of unselected points, applied only when a selection exists." + }, + "size": { + "valType": "number", + "min": 0, + "editType": "calc", + "description": "Sets the marker size of unselected points, applied only when a selection exists." + }, + "editType": "calc", + "role": "object" + }, + "editType": "calc", + "role": "object" + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "lon", + "lat", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "calc", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "subplot": { + "valType": "subplotid", + "dflt": "mapbox", + "editType": "calc", + "description": "Sets a reference between this trace's data coordinates and a mapbox subplot. If *mapbox* (the default value), the data refer to `layout.mapbox`. If *mapbox2*, the data refer to `layout.mapbox2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "lonsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for lon .", + "editType": "none" + }, + "latsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for lat .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "texttemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + } + } + }, + "choroplethmapbox": { + "meta": { + "hr_name": "choropleth_mapbox", + "description": "GeoJSON features to be filled are set in `geojson` The data that describes the choropleth value-to-color mapping is set in `locations` and `z`." + }, + "categories": [ + "mapbox", + "gl", + "noOpacity", + "showLegend" + ], + "animatable": false, + "type": "choroplethmapbox", + "attributes": { + "type": "choroplethmapbox", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "selectedpoints": { + "valType": "any", + "editType": "calc", + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "locations": { + "valType": "data_array", + "editType": "calc", + "description": "Sets which features found in *geojson* to plot using their feature `id` field." + }, + "z": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the color values." + }, + "geojson": { + "valType": "any", + "editType": "calc", + "description": "Sets the GeoJSON data associated with this trace. It can be set as a valid GeoJSON object or as a URL string. Note that we only accept GeoJSONs of type *FeatureCollection* or *Feature* with geometries of type *Polygon* or *MultiPolygon*." + }, + "featureidkey": { + "valType": "string", + "editType": "calc", + "dflt": "id", + "description": "Sets the key in GeoJSON features which is used as id to match the items included in the `locations` array. Support nested property, for example *properties.name*." + }, + "below": { + "valType": "string", + "editType": "plot", + "description": "Determines if the choropleth polygons will be inserted before the layer with the specified ID. By default, choroplethmapbox traces are placed above the water layers. If set to '', the layer will be inserted above every existing layer." + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets the text elements associated with each location." + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Same as `text`." + }, + "marker": { + "line": { + "color": { + "valType": "color", + "arrayOk": true, + "editType": "plot", + "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set.", + "dflt": "#444" + }, + "width": { + "valType": "number", + "min": 0, + "arrayOk": true, + "editType": "plot", + "description": "Sets the width (in px) of the lines bounding the marker points.", + "dflt": 1 + }, + "editType": "calc", + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + }, + "widthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for width .", + "editType": "none" + } + }, + "opacity": { + "valType": "number", + "arrayOk": true, + "min": 0, + "max": 1, + "dflt": 1, + "editType": "plot", + "description": "Sets the opacity of the locations." + }, + "editType": "calc", + "role": "object", + "opacitysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for opacity .", + "editType": "none" + } + }, + "selected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot", + "description": "Sets the marker opacity of selected points." + }, + "editType": "plot", + "role": "object" + }, + "editType": "plot", + "role": "object" + }, + "unselected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot", + "description": "Sets the marker opacity of unselected points, applied only when a selection exists." + }, + "editType": "plot", + "role": "object" + }, + "editType": "plot", + "role": "object" + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "location", + "z", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "calc", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variable `properties` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "showlegend": { + "valType": "boolean", + "dflt": false, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "zauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user." + }, + "zmin": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "zauto": false + }, + "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well." + }, + "zmax": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "zauto": false + }, + "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well." + }, + "zmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`zmin` and `zmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "colorbars" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "colorbars" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "colorbars" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "colorbars" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "colorbars" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "colorbars" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "colorbars" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "colorbars" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "colorbars" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "colorbars" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "colorbars", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "colorbars", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "colorbars", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "colorbars", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "colorbars" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "colorbars", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "colorbars", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "colorbars" + }, + { + "valType": "any", + "editType": "colorbars" + } + ], + "editType": "colorbars", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "colorbars", + "name": { + "valType": "string", + "editType": "colorbars", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "colorbars", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "colorbars", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "colorbars", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "colorbars", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars" + }, + "editType": "colorbars", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "colorbars" + } + }, + "editType": "colorbars", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "subplot": { + "valType": "subplotid", + "dflt": "mapbox", + "editType": "calc", + "description": "Sets a reference between this trace's data coordinates and a mapbox subplot. If *mapbox* (the default value), the data refer to `layout.mapbox`. If *mapbox2*, the data refer to `layout.mapbox2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "locationssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for locations .", + "editType": "none" + }, + "zsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for z .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + } + } + }, + "densitymapbox": { + "meta": { + "hr_name": "density_mapbox", + "description": "Draws a bivariate kernel density estimation with a Gaussian kernel from `lon` and `lat` coordinates and optional `z` values using a colorscale." + }, + "categories": [ + "mapbox", + "gl", + "showLegend" + ], + "animatable": false, + "type": "densitymapbox", + "attributes": { + "type": "densitymapbox", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "lon": { + "valType": "data_array", + "description": "Sets the longitude coordinates (in degrees East).", + "editType": "calc" + }, + "lat": { + "valType": "data_array", + "description": "Sets the latitude coordinates (in degrees North).", + "editType": "calc" + }, + "z": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the points' weight. For example, a value of 10 would be equivalent to having 10 points of weight 1 in the same spot" + }, + "radius": { + "valType": "number", + "editType": "plot", + "arrayOk": true, + "min": 1, + "dflt": 30, + "description": "Sets the radius of influence of one `lon` / `lat` point in pixels. Increasing the value makes the densitymapbox trace smoother, but less detailed." + }, + "below": { + "valType": "string", + "editType": "plot", + "description": "Determines if the densitymapbox trace will be inserted before the layer with the specified ID. By default, densitymapbox traces are placed below the first layer of type symbol If set to '', the layer will be inserted above every existing layer." + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets text elements associated with each (lon,lat) pair If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (lon,lat) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets hover text elements associated with each (lon,lat) pair If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (lon,lat) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "lon", + "lat", + "z", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "showlegend": { + "valType": "boolean", + "dflt": false, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "zauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user." + }, + "zmin": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "zauto": false + }, + "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well." + }, + "zmax": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "zauto": false + }, + "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well." + }, + "zmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`zmin` and `zmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "colorbars" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "colorbars" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "colorbars" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "colorbars" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "colorbars" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "colorbars" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "colorbars" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "colorbars" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "colorbars" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "colorbars" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "colorbars", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "colorbars", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "colorbars", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "colorbars", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "colorbars" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "colorbars", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "colorbars", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "colorbars" + }, + { + "valType": "any", + "editType": "colorbars" + } + ], + "editType": "colorbars", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "colorbars", + "name": { + "valType": "string", + "editType": "colorbars", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "colorbars", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "colorbars", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "colorbars", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "colorbars", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars" + }, + "editType": "colorbars", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "colorbars" + } + }, + "editType": "colorbars", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "subplot": { + "valType": "subplotid", + "dflt": "mapbox", + "editType": "calc", + "description": "Sets a reference between this trace's data coordinates and a mapbox subplot. If *mapbox* (the default value), the data refer to `layout.mapbox`. If *mapbox2*, the data refer to `layout.mapbox2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "lonsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for lon .", + "editType": "none" + }, + "latsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for lat .", + "editType": "none" + }, + "zsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for z .", + "editType": "none" + }, + "radiussrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for radius .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + } + } + }, + "sankey": { + "meta": { + "description": "Sankey plots for network flow data analysis. The nodes are specified in `nodes` and the links between sources and targets in `links`. The colors are set in `nodes[i].color` and `links[i].color`, otherwise defaults are used." + }, + "categories": [ + "noOpacity" + ], + "animatable": false, + "type": "sankey", + "attributes": { + "type": "sankey", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "selectedpoints": { + "valType": "any", + "editType": "calc", + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": false, + "dflt": "all", + "editType": "calc", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired. Note that this attribute is superseded by `node.hoverinfo` and `node.hoverinfo` for nodes and links respectively." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "calc", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "calc", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "calc", + "arrayOk": true + }, + "editType": "calc", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "calc", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "calc", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "calc", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "domain": { + "x": { + "valType": "info_array", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the horizontal domain of this sankey trace (in plot fraction).", + "editType": "calc" + }, + "y": { + "valType": "info_array", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the vertical domain of this sankey trace (in plot fraction).", + "editType": "calc" + }, + "row": { + "valType": "integer", + "min": 0, + "dflt": 0, + "description": "If there is a layout grid, use the domain for this row in the grid for this sankey trace .", + "editType": "calc" + }, + "column": { + "valType": "integer", + "min": 0, + "dflt": 0, + "description": "If there is a layout grid, use the domain for this column in the grid for this sankey trace .", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "orientation": { + "valType": "enumerated", + "values": [ + "v", + "h" + ], + "dflt": "h", + "description": "Sets the orientation of the Sankey diagram.", + "editType": "calc" + }, + "valueformat": { + "valType": "string", + "dflt": ".3s", + "description": "Sets the value formatting rule using d3 formatting mini-language which is similar to those of Python. See https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format", + "editType": "calc" + }, + "valuesuffix": { + "valType": "string", + "dflt": "", + "description": "Adds a unit to follow the value in the hover tooltip. Add a space if a separation is necessary from the value.", + "editType": "calc" + }, + "arrangement": { + "valType": "enumerated", + "values": [ + "snap", + "perpendicular", + "freeform", + "fixed" + ], + "dflt": "snap", + "description": "If value is `snap` (the default), the node arrangement is assisted by automatic snapping of elements to preserve space between nodes specified via `nodepad`. If value is `perpendicular`, the nodes can only move along a line perpendicular to the flow. If value is `freeform`, the nodes can freely move on the plane. If value is `fixed`, the nodes are stationary.", + "editType": "calc" + }, + "textfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Sets the font for node labels", + "editType": "calc", + "role": "object" + }, + "node": { + "label": { + "valType": "data_array", + "dflt": [], + "description": "The shown name of the node.", + "editType": "calc" + }, + "groups": { + "valType": "info_array", + "impliedEdits": { + "x": [], + "y": [] + }, + "dimensions": 2, + "freeLength": true, + "dflt": [], + "items": { + "valType": "number", + "editType": "calc" + }, + "description": "Groups of nodes. Each group is defined by an array with the indices of the nodes it contains. Multiple groups can be specified.", + "editType": "calc" + }, + "x": { + "valType": "data_array", + "dflt": [], + "description": "The normalized horizontal position of the node.", + "editType": "calc" + }, + "y": { + "valType": "data_array", + "dflt": [], + "description": "The normalized vertical position of the node.", + "editType": "calc" + }, + "color": { + "valType": "color", + "arrayOk": true, + "description": "Sets the `node` color. It can be a single value, or an array for specifying color for each `node`. If `node.color` is omitted, then the default `Plotly` color palette will be cycled through to have a variety of colors. These defaults are not fully opaque, to allow some visibility of what is beneath the node.", + "editType": "calc" + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data to each node." + }, + "line": { + "color": { + "valType": "color", + "dflt": "#444", + "arrayOk": true, + "description": "Sets the color of the `line` around each `node`.", + "editType": "calc" + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 0.5, + "arrayOk": true, + "description": "Sets the width (in px) of the `line` around each `node`.", + "editType": "calc" + }, + "editType": "calc", + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + }, + "widthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for width .", + "editType": "none" + } + }, + "pad": { + "valType": "number", + "arrayOk": false, + "min": 0, + "dflt": 20, + "description": "Sets the padding (in px) between the `nodes`.", + "editType": "calc" + }, + "thickness": { + "valType": "number", + "arrayOk": false, + "min": 1, + "dflt": 20, + "description": "Sets the thickness (in px) of the `nodes`.", + "editType": "calc" + }, + "hoverinfo": { + "valType": "enumerated", + "values": [ + "all", + "none", + "skip" + ], + "dflt": "all", + "description": "Determines which trace information appear when hovering nodes. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", + "editType": "calc" + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "calc", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "calc", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "calc", + "arrayOk": true + }, + "editType": "calc", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "calc", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "calc", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "calc", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "description": "The nodes of the Sankey plot.", + "editType": "calc", + "role": "object", + "labelsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for label .", + "editType": "none" + }, + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "ysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for y .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + } + }, + "link": { + "label": { + "valType": "data_array", + "dflt": [], + "description": "The shown name of the link.", + "editType": "calc" + }, + "color": { + "valType": "color", + "arrayOk": true, + "description": "Sets the `link` color. It can be a single value, or an array for specifying color for each `link`. If `link.color` is omitted, then by default, a translucent grey link will be used.", + "editType": "calc" + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data to each link." + }, + "line": { + "color": { + "valType": "color", + "dflt": "#444", + "arrayOk": true, + "description": "Sets the color of the `line` around each `link`.", + "editType": "calc" + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 0, + "arrayOk": true, + "description": "Sets the width (in px) of the `line` around each `link`.", + "editType": "calc" + }, + "editType": "calc", + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + }, + "widthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for width .", + "editType": "none" + } + }, + "source": { + "valType": "data_array", + "dflt": [], + "description": "An integer number `[0..nodes.length - 1]` that represents the source node.", + "editType": "calc" + }, + "target": { + "valType": "data_array", + "dflt": [], + "description": "An integer number `[0..nodes.length - 1]` that represents the target node.", + "editType": "calc" + }, + "value": { + "valType": "data_array", + "dflt": [], + "description": "A numeric value representing the flow volume value.", + "editType": "calc" + }, + "hoverinfo": { + "valType": "enumerated", + "values": [ + "all", + "none", + "skip" + ], + "dflt": "all", + "description": "Determines which trace information appear when hovering links. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", + "editType": "calc" + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "calc", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "calc", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "calc", + "arrayOk": true + }, + "editType": "calc", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "calc", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "calc", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "calc", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "colorscales": { + "items": { + "concentrationscales": { + "editType": "calc", + "label": { + "valType": "string", + "editType": "calc", + "description": "The label of the links to color based on their concentration within a flow.", + "dflt": "" + }, + "cmax": { + "valType": "number", + "editType": "calc", + "dflt": 1, + "description": "Sets the upper bound of the color domain." + }, + "cmin": { + "valType": "number", + "editType": "calc", + "dflt": 0, + "description": "Sets the lower bound of the color domain." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": [ + [ + 0, + "white" + ], + [ + 1, + "black" + ] + ], + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`cmin` and `cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "name": { + "valType": "string", + "editType": "calc", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "calc", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "description": "The links of the Sankey plot.", + "editType": "calc", + "role": "object", + "labelsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for label .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "sourcesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for source .", + "editType": "none" + }, + "targetsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for target .", + "editType": "none" + }, + "valuesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for value .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + } + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + } + } + }, + "indicator": { + "meta": { + "description": "An indicator is used to visualize a single `value` along with some contextual information such as `steps` or a `threshold`, using a combination of three visual elements: a number, a delta, and/or a gauge. Deltas are taken with respect to a `reference`. Gauges can be either angular or bullet (aka linear) gauges." + }, + "categories": [ + "svg", + "noOpacity", + "noHover" + ], + "animatable": true, + "type": "indicator", + "attributes": { + "type": "indicator", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "anim": true, + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "anim": true, + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "mode": { + "valType": "flaglist", + "editType": "calc", + "flags": [ + "number", + "delta", + "gauge" + ], + "dflt": "number", + "description": "Determines how the value is displayed on the graph. `number` displays the value numerically in text. `delta` displays the difference to a reference value in text. Finally, `gauge` displays the value graphically on an axis." + }, + "value": { + "valType": "number", + "editType": "calc", + "anim": true, + "description": "Sets the number to be displayed." + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "editType": "plot", + "description": "Sets the horizontal alignment of the `text` within the box. Note that this attribute has no effect if an angular gauge is displayed: in this case, it is always centered" + }, + "domain": { + "x": { + "valType": "info_array", + "editType": "calc", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the horizontal domain of this indicator trace (in plot fraction)." + }, + "y": { + "valType": "info_array", + "editType": "calc", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the vertical domain of this indicator trace (in plot fraction)." + }, + "editType": "calc", + "row": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "If there is a layout grid, use the domain for this row in the grid for this indicator trace ." + }, + "column": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "If there is a layout grid, use the domain for this column in the grid for this indicator trace ." + }, + "role": "object" + }, + "title": { + "text": { + "valType": "string", + "editType": "plot", + "description": "Sets the title of this indicator." + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "editType": "plot", + "description": "Sets the horizontal alignment of the title. It defaults to `center` except for bullet charts for which it defaults to right." + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Set the font used to display the title", + "role": "object" + }, + "editType": "plot", + "role": "object" + }, + "number": { + "valueformat": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets the value formatting rule using d3 formatting mini-language which is similar to those of Python. See https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Set the font used to display main number", + "role": "object" + }, + "prefix": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets a prefix appearing before the number." + }, + "suffix": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets a suffix appearing next to the number." + }, + "editType": "plot", + "role": "object" + }, + "delta": { + "reference": { + "valType": "number", + "editType": "calc", + "description": "Sets the reference value to compute the delta. By default, it is set to the current value." + }, + "position": { + "valType": "enumerated", + "values": [ + "top", + "bottom", + "left", + "right" + ], + "dflt": "bottom", + "editType": "plot", + "description": "Sets the position of delta with respect to the number." + }, + "relative": { + "valType": "boolean", + "editType": "plot", + "dflt": false, + "description": "Show relative change" + }, + "valueformat": { + "valType": "string", + "editType": "plot", + "description": "Sets the value formatting rule using d3 formatting mini-language which is similar to those of Python. See https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format" + }, + "increasing": { + "symbol": { + "valType": "string", + "dflt": "▲", + "editType": "plot", + "description": "Sets the symbol to display for increasing value" + }, + "color": { + "valType": "color", + "dflt": "#3D9970", + "editType": "plot", + "description": "Sets the color for increasing value." + }, + "editType": "plot", + "role": "object" + }, + "decreasing": { + "symbol": { + "valType": "string", + "dflt": "▼", + "editType": "plot", + "description": "Sets the symbol to display for increasing value" + }, + "color": { + "valType": "color", + "dflt": "#FF4136", + "editType": "plot", + "description": "Sets the color for increasing value." + }, + "editType": "plot", + "role": "object" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Set the font used to display the delta", + "role": "object" + }, + "editType": "calc", + "role": "object" + }, + "gauge": { + "shape": { + "valType": "enumerated", + "editType": "plot", + "dflt": "angular", + "values": [ + "angular", + "bullet" + ], + "description": "Set the shape of the gauge" + }, + "bar": { + "color": { + "valType": "color", + "editType": "plot", + "description": "Sets the background color of the arc.", + "dflt": "green" + }, + "line": { + "color": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the color of the line enclosing each sector." + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "plot", + "description": "Sets the width (in px) of the line enclosing each sector." + }, + "editType": "calc", + "role": "object" + }, + "thickness": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "plot", + "description": "Sets the thickness of the bar as a fraction of the total thickness of the gauge." + }, + "editType": "calc", + "description": "Set the appearance of the gauge's value", + "role": "object" + }, + "bgcolor": { + "valType": "color", + "editType": "plot", + "description": "Sets the gauge background color." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the color of the border enclosing the gauge." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the width (in px) of the border enclosing the gauge." + }, + "axis": { + "range": { + "valType": "info_array", + "items": [ + { + "valType": "number", + "editType": "plot" + }, + { + "valType": "number", + "editType": "plot" + } + ], + "editType": "plot", + "description": "Sets the range of this axis." + }, + "visible": { + "valType": "boolean", + "editType": "plot", + "description": "A single toggle to hide the axis while preserving interaction like dragging. Default is true when a cheater plot is present on the axis, otherwise false", + "dflt": true + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "plot", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "plot", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "plot", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "plot", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "plot", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "outside" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "plot", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "plot" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "description": "Sets the color bar's tick label font", + "editType": "plot", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "plot", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "plot" + }, + { + "valType": "any", + "editType": "plot" + } + ], + "editType": "plot", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "plot", + "name": { + "valType": "string", + "editType": "plot", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "plot", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "plot", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "plot", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "editType": "plot", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "steps": { + "items": { + "step": { + "color": { + "valType": "color", + "editType": "plot", + "description": "Sets the background color of the arc." + }, + "line": { + "color": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the color of the line enclosing each sector." + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "plot", + "description": "Sets the width (in px) of the line enclosing each sector." + }, + "editType": "calc", + "role": "object" + }, + "thickness": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "plot", + "description": "Sets the thickness of the bar as a fraction of the total thickness of the gauge." + }, + "editType": "calc", + "range": { + "valType": "info_array", + "items": [ + { + "valType": "number", + "editType": "plot" + }, + { + "valType": "number", + "editType": "plot" + } + ], + "editType": "plot", + "description": "Sets the range of this axis." + }, + "name": { + "valType": "string", + "editType": "none", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "calc", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "threshold": { + "line": { + "color": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the color of the threshold line." + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the width (in px) of the threshold line." + }, + "editType": "plot", + "role": "object" + }, + "thickness": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.85, + "editType": "plot", + "description": "Sets the thickness of the threshold line as a fraction of the thickness of the gauge." + }, + "value": { + "valType": "number", + "editType": "calc", + "dflt": false, + "description": "Sets a treshold value drawn as a line." + }, + "editType": "plot", + "role": "object" + }, + "description": "The gauge of the Indicator plot.", + "editType": "plot", + "role": "object" + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + } + } + }, + "table": { + "meta": { + "description": "Table view for detailed data viewing. The data are arranged in a grid of rows and columns. Most styling can be specified for columns, rows or individual cells. Table is using a column-major order, ie. the grid is represented as a vector of column vectors." + }, + "categories": [ + "noOpacity" + ], + "animatable": false, + "type": "table", + "attributes": { + "type": "table", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "domain": { + "x": { + "valType": "info_array", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the horizontal domain of this table trace (in plot fraction).", + "editType": "calc" + }, + "y": { + "valType": "info_array", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "calc" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the vertical domain of this table trace (in plot fraction).", + "editType": "calc" + }, + "row": { + "valType": "integer", + "min": 0, + "dflt": 0, + "description": "If there is a layout grid, use the domain for this row in the grid for this table trace .", + "editType": "calc" + }, + "column": { + "valType": "integer", + "min": 0, + "dflt": 0, + "description": "If there is a layout grid, use the domain for this column in the grid for this table trace .", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "columnwidth": { + "valType": "number", + "arrayOk": true, + "dflt": null, + "description": "The width of columns expressed as a ratio. Columns fill the available width in proportion of their specified column widths.", + "editType": "calc" + }, + "columnorder": { + "valType": "data_array", + "description": "Specifies the rendered order of the data columns; for example, a value `2` at position `0` means that column index `0` in the data will be rendered as the third column, as columns have an index base of zero.", + "editType": "calc" + }, + "header": { + "values": { + "valType": "data_array", + "dflt": [], + "description": "Header cell values. `values[m][n]` represents the value of the `n`th point in column `m`, therefore the `values[m]` vector length for all columns must be the same (longer vectors will be truncated). Each value must be a finite number or a string.", + "editType": "calc" + }, + "format": { + "valType": "data_array", + "dflt": [], + "description": "Sets the cell value formatting rule using d3 formatting mini-language which is similar to those of Python. See https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format", + "editType": "calc" + }, + "prefix": { + "valType": "string", + "arrayOk": true, + "dflt": null, + "description": "Prefix for cell values.", + "editType": "calc" + }, + "suffix": { + "valType": "string", + "arrayOk": true, + "dflt": null, + "description": "Suffix for cell values.", + "editType": "calc" + }, + "height": { + "valType": "number", + "dflt": 28, + "description": "The height of cells.", + "editType": "calc" + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "center", + "editType": "calc", + "description": "Sets the horizontal alignment of the `text` within the box. Has an effect only if `text` spans two or more lines (i.e. `text` contains one or more
    HTML tags) or if an explicit width is set to override the text width.", + "arrayOk": true + }, + "line": { + "width": { + "valType": "number", + "arrayOk": true, + "dflt": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "arrayOk": true, + "dflt": "grey", + "editType": "calc" + }, + "editType": "calc", + "role": "object", + "widthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for width .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "fill": { + "color": { + "valType": "color", + "arrayOk": true, + "dflt": "white", + "description": "Sets the cell fill color. It accepts either a specific color or an array of colors or a 2D array of colors.", + "editType": "calc" + }, + "editType": "calc", + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true, + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "arrayOk": true, + "editType": "calc" + }, + "color": { + "valType": "color", + "arrayOk": true, + "editType": "calc" + }, + "description": "", + "editType": "calc", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "editType": "calc", + "role": "object", + "valuessrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for values .", + "editType": "none" + }, + "formatsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for format .", + "editType": "none" + }, + "prefixsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for prefix .", + "editType": "none" + }, + "suffixsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for suffix .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + } + }, + "cells": { + "values": { + "valType": "data_array", + "dflt": [], + "description": "Cell values. `values[m][n]` represents the value of the `n`th point in column `m`, therefore the `values[m]` vector length for all columns must be the same (longer vectors will be truncated). Each value must be a finite number or a string.", + "editType": "calc" + }, + "format": { + "valType": "data_array", + "dflt": [], + "description": "Sets the cell value formatting rule using d3 formatting mini-language which is similar to those of Python. See https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format", + "editType": "calc" + }, + "prefix": { + "valType": "string", + "arrayOk": true, + "dflt": null, + "description": "Prefix for cell values.", + "editType": "calc" + }, + "suffix": { + "valType": "string", + "arrayOk": true, + "dflt": null, + "description": "Suffix for cell values.", + "editType": "calc" + }, + "height": { + "valType": "number", + "dflt": 20, + "description": "The height of cells.", + "editType": "calc" + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "center", + "editType": "calc", + "description": "Sets the horizontal alignment of the `text` within the box. Has an effect only if `text` spans two or more lines (i.e. `text` contains one or more
    HTML tags) or if an explicit width is set to override the text width.", + "arrayOk": true + }, + "line": { + "width": { + "valType": "number", + "arrayOk": true, + "dflt": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "arrayOk": true, + "dflt": "grey", + "editType": "calc" + }, + "editType": "calc", + "role": "object", + "widthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for width .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "fill": { + "color": { + "valType": "color", + "arrayOk": true, + "dflt": "white", + "description": "Sets the cell fill color. It accepts either a specific color or an array of colors or a 2D array of colors.", + "editType": "calc" + }, + "editType": "calc", + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true, + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "arrayOk": true, + "editType": "calc" + }, + "color": { + "valType": "color", + "arrayOk": true, + "editType": "calc" + }, + "description": "", + "editType": "calc", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "editType": "calc", + "role": "object", + "valuessrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for values .", + "editType": "none" + }, + "formatsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for format .", + "editType": "none" + }, + "prefixsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for prefix .", + "editType": "none" + }, + "suffixsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for suffix .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + } + }, + "editType": "calc", + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "columnwidthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for columnwidth .", + "editType": "none" + }, + "columnordersrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for columnorder .", + "editType": "none" + } + } + }, + "carpet": { + "meta": { + "description": "The data describing carpet axis layout is set in `y` and (optionally) also `x`. If only `y` is present, `x` the plot is interpreted as a cheater plot and is filled in using the `y` values. `x` and `y` may either be 2D arrays matching with each dimension matching that of `a` and `b`, or they may be 1D arrays with total length equal to that of `a` and `b`." + }, + "categories": [ + "cartesian", + "svg", + "carpet", + "carpetAxis", + "notLegendIsolatable", + "noMultiCategory", + "noHover", + "noSortingByValue" + ], + "animatable": true, + "type": "carpet", + "attributes": { + "type": "carpet", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "anim": true, + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "anim": true, + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "carpet": { + "valType": "string", + "editType": "calc", + "description": "An identifier for this carpet, so that `scattercarpet` and `contourcarpet` traces can specify a carpet plot on which they lie" + }, + "x": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "A two dimensional array of x coordinates at each carpet point. If omitted, the plot is a cheater plot and the xaxis is hidden by default." + }, + "y": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "A two dimensional array of y coordinates at each carpet point." + }, + "a": { + "valType": "data_array", + "editType": "calc", + "description": "An array containing values of the first parameter value" + }, + "a0": { + "valType": "number", + "dflt": 0, + "editType": "calc", + "description": "Alternate to `a`. Builds a linear space of a coordinates. Use with `da` where `a0` is the starting coordinate and `da` the step." + }, + "da": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Sets the a coordinate step. See `a0` for more info." + }, + "b": { + "valType": "data_array", + "editType": "calc", + "description": "A two dimensional array of y coordinates at each carpet point." + }, + "b0": { + "valType": "number", + "dflt": 0, + "editType": "calc", + "description": "Alternate to `b`. Builds a linear space of a coordinates. Use with `db` where `b0` is the starting coordinate and `db` the step." + }, + "db": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Sets the b coordinate step. See `b0` for more info." + }, + "cheaterslope": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "The shift applied to each successive row of data in creating a cheater plot. Only used if `x` is been omitted." + }, + "aaxis": { + "color": { + "valType": "color", + "editType": "calc", + "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." + }, + "smoothing": { + "valType": "number", + "dflt": 1, + "min": 0, + "max": 1.3, + "editType": "calc" + }, + "title": { + "text": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the title of this axis. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "editType": "calc", + "description": "Sets this axis' title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "role": "object" + }, + "offset": { + "valType": "number", + "dflt": 10, + "editType": "calc", + "description": "An additional amount by which to offset the title from the tick labels, given in pixels. Note that this used to be set by the now deprecated `titleoffset` attribute." + }, + "editType": "calc", + "role": "object" + }, + "type": { + "valType": "enumerated", + "values": [ + "-", + "linear", + "date", + "category" + ], + "dflt": "-", + "editType": "calc", + "description": "Sets the axis type. By default, plotly attempts to determined the axis type by looking into the data of the traces that referenced the axis in question." + }, + "autotypenumbers": { + "valType": "enumerated", + "values": [ + "convert types", + "strict" + ], + "dflt": "convert types", + "editType": "calc", + "description": "Using *strict* a numeric string in trace data is not converted to a number. Using *convert types* a numeric string in trace data may be treated as a number during automatic axis `type` detection. Defaults to layout.autotypenumbers." + }, + "autorange": { + "valType": "enumerated", + "values": [ + true, + false, + "reversed" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not the range of this axis is computed in relation to the input data. See `rangemode` for more info. If `range` is provided, then `autorange` is set to *false*." + }, + "rangemode": { + "valType": "enumerated", + "values": [ + "normal", + "tozero", + "nonnegative" + ], + "dflt": "normal", + "editType": "calc", + "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data." + }, + "range": { + "valType": "info_array", + "editType": "calc", + "items": [ + { + "valType": "any", + "editType": "calc" + }, + { + "valType": "any", + "editType": "calc" + } + ], + "description": "Sets the range of this axis. If the axis `type` is *log*, then you must take the log of your desired range (e.g. to set the range from 1 to 100, set the range from 0 to 2). If the axis `type` is *date*, it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is *category*, it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "fixedrange": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not this axis is zoom-able. If true, then zoom is disabled." + }, + "cheatertype": { + "valType": "enumerated", + "values": [ + "index", + "value" + ], + "dflt": "value", + "editType": "calc" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "linear", + "array" + ], + "dflt": "array", + "editType": "calc" + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tickvals": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "showticklabels": { + "valType": "enumerated", + "values": [ + "start", + "end", + "both", + "none" + ], + "dflt": "start", + "editType": "calc", + "description": "Determines whether axis labels are drawn on the low side, the high side, both, or neither side of the axis." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "editType": "calc", + "description": "Sets the tick font.", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "calc", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "calc", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "calc", + "description": "Hide SI prefix for 10^n if |n| is below this number" + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "If \"true\", even 4-digit integers are separated" + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "calc" + }, + { + "valType": "any", + "editType": "calc" + } + ], + "editType": "calc", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "calc", + "name": { + "valType": "string", + "editType": "calc", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "calc", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "categoryorder": { + "valType": "enumerated", + "values": [ + "trace", + "category ascending", + "category descending", + "array" + ], + "dflt": "trace", + "editType": "calc", + "description": "Specifies the ordering logic for the case of categorical variables. By default, plotly uses *trace*, which specifies the order that is present in the data supplied. Set `categoryorder` to *category ascending* or *category descending* if order should be determined by the alphanumerical order of the category names. Set `categoryorder` to *array* to derive the ordering from the attribute `categoryarray`. If a category is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to the *trace* mode. The unspecified categories will follow the categories in `categoryarray`." + }, + "categoryarray": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the order in which categories on this axis appear. Only has an effect if `categoryorder` is set to *array*. Used with `categoryorder`." + }, + "labelpadding": { + "valType": "integer", + "dflt": 10, + "editType": "calc", + "description": "Extra padding between label and the axis" + }, + "labelprefix": { + "valType": "string", + "editType": "calc", + "description": "Sets a axis label prefix." + }, + "labelsuffix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a axis label suffix." + }, + "showline": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not a line bounding this axis is drawn." + }, + "linecolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the axis line color." + }, + "linewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the width (in px) of the axis line." + }, + "gridcolor": { + "valType": "color", + "editType": "calc", + "description": "Sets the axis line color." + }, + "gridwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the width (in px) of the axis line." + }, + "showgrid": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not grid lines are drawn. If *true*, the grid lines are drawn at every tick mark." + }, + "minorgridcount": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Sets the number of minor grid ticks per major grid tick" + }, + "minorgridwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the width (in px) of the grid lines." + }, + "minorgridcolor": { + "valType": "color", + "dflt": "#eee", + "editType": "calc", + "description": "Sets the color of the grid lines." + }, + "startline": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not a line is drawn at along the starting value of this axis. If *true*, the start line is drawn on top of the grid lines." + }, + "startlinecolor": { + "valType": "color", + "editType": "calc", + "description": "Sets the line color of the start line." + }, + "startlinewidth": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Sets the width (in px) of the start line." + }, + "endline": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not a line is drawn at along the final value of this axis. If *true*, the end line is drawn on top of the grid lines." + }, + "endlinewidth": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Sets the width (in px) of the end line." + }, + "endlinecolor": { + "valType": "color", + "editType": "calc", + "description": "Sets the line color of the end line." + }, + "tick0": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "The starting index of grid lines along the axis" + }, + "dtick": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "The stride between grid lines along the axis" + }, + "arraytick0": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "The starting index of grid lines along the axis" + }, + "arraydtick": { + "valType": "integer", + "min": 1, + "dflt": 1, + "editType": "calc", + "description": "The stride between grid lines along the axis" + }, + "_deprecated": { + "title": { + "valType": "string", + "editType": "calc", + "description": "Deprecated in favor of `title.text`. Note that value of `title` is no longer a simple *string* but a set of sub-attributes." + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "editType": "calc", + "description": "Deprecated in favor of `title.font`." + }, + "titleoffset": { + "valType": "number", + "dflt": 10, + "editType": "calc", + "description": "Deprecated in favor of `title.offset`." + } + }, + "editType": "calc", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + }, + "categoryarraysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for categoryarray .", + "editType": "none" + } + }, + "baxis": { + "color": { + "valType": "color", + "editType": "calc", + "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." + }, + "smoothing": { + "valType": "number", + "dflt": 1, + "min": 0, + "max": 1.3, + "editType": "calc" + }, + "title": { + "text": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the title of this axis. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "editType": "calc", + "description": "Sets this axis' title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "role": "object" + }, + "offset": { + "valType": "number", + "dflt": 10, + "editType": "calc", + "description": "An additional amount by which to offset the title from the tick labels, given in pixels. Note that this used to be set by the now deprecated `titleoffset` attribute." + }, + "editType": "calc", + "role": "object" + }, + "type": { + "valType": "enumerated", + "values": [ + "-", + "linear", + "date", + "category" + ], + "dflt": "-", + "editType": "calc", + "description": "Sets the axis type. By default, plotly attempts to determined the axis type by looking into the data of the traces that referenced the axis in question." + }, + "autotypenumbers": { + "valType": "enumerated", + "values": [ + "convert types", + "strict" + ], + "dflt": "convert types", + "editType": "calc", + "description": "Using *strict* a numeric string in trace data is not converted to a number. Using *convert types* a numeric string in trace data may be treated as a number during automatic axis `type` detection. Defaults to layout.autotypenumbers." + }, + "autorange": { + "valType": "enumerated", + "values": [ + true, + false, + "reversed" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not the range of this axis is computed in relation to the input data. See `rangemode` for more info. If `range` is provided, then `autorange` is set to *false*." + }, + "rangemode": { + "valType": "enumerated", + "values": [ + "normal", + "tozero", + "nonnegative" + ], + "dflt": "normal", + "editType": "calc", + "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data." + }, + "range": { + "valType": "info_array", + "editType": "calc", + "items": [ + { + "valType": "any", + "editType": "calc" + }, + { + "valType": "any", + "editType": "calc" + } + ], + "description": "Sets the range of this axis. If the axis `type` is *log*, then you must take the log of your desired range (e.g. to set the range from 1 to 100, set the range from 0 to 2). If the axis `type` is *date*, it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is *category*, it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "fixedrange": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not this axis is zoom-able. If true, then zoom is disabled." + }, + "cheatertype": { + "valType": "enumerated", + "values": [ + "index", + "value" + ], + "dflt": "value", + "editType": "calc" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "linear", + "array" + ], + "dflt": "array", + "editType": "calc" + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tickvals": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "showticklabels": { + "valType": "enumerated", + "values": [ + "start", + "end", + "both", + "none" + ], + "dflt": "start", + "editType": "calc", + "description": "Determines whether axis labels are drawn on the low side, the high side, both, or neither side of the axis." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "editType": "calc", + "description": "Sets the tick font.", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "calc", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "calc", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "calc", + "description": "Hide SI prefix for 10^n if |n| is below this number" + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "If \"true\", even 4-digit integers are separated" + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "calc" + }, + { + "valType": "any", + "editType": "calc" + } + ], + "editType": "calc", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "calc", + "name": { + "valType": "string", + "editType": "calc", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "calc", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "categoryorder": { + "valType": "enumerated", + "values": [ + "trace", + "category ascending", + "category descending", + "array" + ], + "dflt": "trace", + "editType": "calc", + "description": "Specifies the ordering logic for the case of categorical variables. By default, plotly uses *trace*, which specifies the order that is present in the data supplied. Set `categoryorder` to *category ascending* or *category descending* if order should be determined by the alphanumerical order of the category names. Set `categoryorder` to *array* to derive the ordering from the attribute `categoryarray`. If a category is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to the *trace* mode. The unspecified categories will follow the categories in `categoryarray`." + }, + "categoryarray": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the order in which categories on this axis appear. Only has an effect if `categoryorder` is set to *array*. Used with `categoryorder`." + }, + "labelpadding": { + "valType": "integer", + "dflt": 10, + "editType": "calc", + "description": "Extra padding between label and the axis" + }, + "labelprefix": { + "valType": "string", + "editType": "calc", + "description": "Sets a axis label prefix." + }, + "labelsuffix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a axis label suffix." + }, + "showline": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not a line bounding this axis is drawn." + }, + "linecolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the axis line color." + }, + "linewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the width (in px) of the axis line." + }, + "gridcolor": { + "valType": "color", + "editType": "calc", + "description": "Sets the axis line color." + }, + "gridwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the width (in px) of the axis line." + }, + "showgrid": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not grid lines are drawn. If *true*, the grid lines are drawn at every tick mark." + }, + "minorgridcount": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Sets the number of minor grid ticks per major grid tick" + }, + "minorgridwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the width (in px) of the grid lines." + }, + "minorgridcolor": { + "valType": "color", + "dflt": "#eee", + "editType": "calc", + "description": "Sets the color of the grid lines." + }, + "startline": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not a line is drawn at along the starting value of this axis. If *true*, the start line is drawn on top of the grid lines." + }, + "startlinecolor": { + "valType": "color", + "editType": "calc", + "description": "Sets the line color of the start line." + }, + "startlinewidth": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Sets the width (in px) of the start line." + }, + "endline": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether or not a line is drawn at along the final value of this axis. If *true*, the end line is drawn on top of the grid lines." + }, + "endlinewidth": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Sets the width (in px) of the end line." + }, + "endlinecolor": { + "valType": "color", + "editType": "calc", + "description": "Sets the line color of the end line." + }, + "tick0": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "The starting index of grid lines along the axis" + }, + "dtick": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "The stride between grid lines along the axis" + }, + "arraytick0": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "The starting index of grid lines along the axis" + }, + "arraydtick": { + "valType": "integer", + "min": 1, + "dflt": 1, + "editType": "calc", + "description": "The stride between grid lines along the axis" + }, + "_deprecated": { + "title": { + "valType": "string", + "editType": "calc", + "description": "Deprecated in favor of `title.text`. Note that value of `title` is no longer a simple *string* but a set of sub-attributes." + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "editType": "calc", + "description": "Deprecated in favor of `title.font`." + }, + "titleoffset": { + "valType": "number", + "dflt": 10, + "editType": "calc", + "description": "Deprecated in favor of `title.offset`." + } + }, + "editType": "calc", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + }, + "categoryarraysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for categoryarray .", + "editType": "none" + } + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "dflt": "\"Open Sans\", verdana, arial, sans-serif" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc", + "dflt": 12 + }, + "color": { + "valType": "color", + "editType": "calc", + "dflt": "#444" + }, + "editType": "calc", + "description": "The default font used for axis & tick labels on this carpet", + "role": "object" + }, + "color": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." + }, + "xaxis": { + "valType": "subplotid", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." + }, + "yaxis": { + "valType": "subplotid", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "ysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for y .", + "editType": "none" + }, + "asrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for a .", + "editType": "none" + }, + "bsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for b .", + "editType": "none" + } + } + }, + "scattercarpet": { + "meta": { + "hrName": "scatter_carpet", + "description": "Plots a scatter trace on either the first carpet axis or the carpet axis with a matching `carpet` attribute." + }, + "categories": [ + "svg", + "carpet", + "symbols", + "showLegend", + "carpetDependent", + "zoomScale" + ], + "animatable": false, + "type": "scattercarpet", + "attributes": { + "type": "scattercarpet", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "showlegend": { + "valType": "boolean", + "dflt": true, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "selectedpoints": { + "valType": "any", + "editType": "calc", + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "carpet": { + "valType": "string", + "editType": "calc", + "description": "An identifier for this carpet, so that `scattercarpet` and `contourcarpet` traces can specify a carpet plot on which they lie" + }, + "a": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the a-axis coordinates." + }, + "b": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the b-axis coordinates." + }, + "mode": { + "valType": "flaglist", + "flags": [ + "lines", + "markers", + "text" + ], + "extras": [ + "none" + ], + "editType": "calc", + "description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover. If there are less than 20 points and the trace is not stacked then the default is *lines+markers*. Otherwise, *lines*.", + "dflt": "markers" + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets text elements associated with each (a,b) point. If a single string, the same string appears over all the data points. If an array of strings, the items are mapped in order to the the data points in (a,b). If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." + }, + "texttemplate": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `a`, `b` and `text`.", + "arrayOk": true + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "style", + "description": "Sets hover text elements associated with each (a,b) point. If a single string, the same string appears over all the data points. If an array of strings, the items are mapped in order to the the data points in (a,b). To be seen, trace `hoverinfo` must contain a *text* flag." + }, + "line": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the line color." + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "style", + "description": "Sets the line width (in px)." + }, + "dash": { + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ], + "dflt": "solid", + "editType": "style", + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." + }, + "shape": { + "valType": "enumerated", + "values": [ + "linear", + "spline" + ], + "dflt": "linear", + "editType": "plot", + "description": "Determines the line shape. With *spline* the lines are drawn using spline interpolation. The other available values correspond to step-wise line shapes." + }, + "smoothing": { + "valType": "number", + "min": 0, + "max": 1.3, + "dflt": 1, + "editType": "plot", + "description": "Has an effect only if `shape` is set to *spline* Sets the amount of smoothing. *0* corresponds to no smoothing (equivalent to a *linear* shape)." + }, + "editType": "calc", + "role": "object" + }, + "connectgaps": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected." + }, + "fill": { + "valType": "enumerated", + "values": [ + "none", + "toself", + "tonext" + ], + "editType": "calc", + "description": "Sets the area to fill with a solid color. Use with `fillcolor` if not *none*. scatterternary has a subset of the options available to scatter. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape. *tonext* fills the space between two traces if one completely encloses the other (eg consecutive contour lines), and behaves like *toself* if there is no trace before it. *tonext* should not be used if one trace does not enclose the other.", + "dflt": "none" + }, + "fillcolor": { + "valType": "color", + "editType": "style", + "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." + }, + "marker": { + "symbol": { + "valType": "enumerated", + "values": [ + 0, + "0", + "circle", + 100, + "100", + "circle-open", + 200, + "200", + "circle-dot", + 300, + "300", + "circle-open-dot", + 1, + "1", + "square", + 101, + "101", + "square-open", + 201, + "201", + "square-dot", + 301, + "301", + "square-open-dot", + 2, + "2", + "diamond", + 102, + "102", + "diamond-open", + 202, + "202", + "diamond-dot", + 302, + "302", + "diamond-open-dot", + 3, + "3", + "cross", + 103, + "103", + "cross-open", + 203, + "203", + "cross-dot", + 303, + "303", + "cross-open-dot", + 4, + "4", + "x", + 104, + "104", + "x-open", + 204, + "204", + "x-dot", + 304, + "304", + "x-open-dot", + 5, + "5", + "triangle-up", + 105, + "105", + "triangle-up-open", + 205, + "205", + "triangle-up-dot", + 305, + "305", + "triangle-up-open-dot", + 6, + "6", + "triangle-down", + 106, + "106", + "triangle-down-open", + 206, + "206", + "triangle-down-dot", + 306, + "306", + "triangle-down-open-dot", + 7, + "7", + "triangle-left", + 107, + "107", + "triangle-left-open", + 207, + "207", + "triangle-left-dot", + 307, + "307", + "triangle-left-open-dot", + 8, + "8", + "triangle-right", + 108, + "108", + "triangle-right-open", + 208, + "208", + "triangle-right-dot", + 308, + "308", + "triangle-right-open-dot", + 9, + "9", + "triangle-ne", + 109, + "109", + "triangle-ne-open", + 209, + "209", + "triangle-ne-dot", + 309, + "309", + "triangle-ne-open-dot", + 10, + "10", + "triangle-se", + 110, + "110", + "triangle-se-open", + 210, + "210", + "triangle-se-dot", + 310, + "310", + "triangle-se-open-dot", + 11, + "11", + "triangle-sw", + 111, + "111", + "triangle-sw-open", + 211, + "211", + "triangle-sw-dot", + 311, + "311", + "triangle-sw-open-dot", + 12, + "12", + "triangle-nw", + 112, + "112", + "triangle-nw-open", + 212, + "212", + "triangle-nw-dot", + 312, + "312", + "triangle-nw-open-dot", + 13, + "13", + "pentagon", + 113, + "113", + "pentagon-open", + 213, + "213", + "pentagon-dot", + 313, + "313", + "pentagon-open-dot", + 14, + "14", + "hexagon", + 114, + "114", + "hexagon-open", + 214, + "214", + "hexagon-dot", + 314, + "314", + "hexagon-open-dot", + 15, + "15", + "hexagon2", + 115, + "115", + "hexagon2-open", + 215, + "215", + "hexagon2-dot", + 315, + "315", + "hexagon2-open-dot", + 16, + "16", + "octagon", + 116, + "116", + "octagon-open", + 216, + "216", + "octagon-dot", + 316, + "316", + "octagon-open-dot", + 17, + "17", + "star", + 117, + "117", + "star-open", + 217, + "217", + "star-dot", + 317, + "317", + "star-open-dot", + 18, + "18", + "hexagram", + 118, + "118", + "hexagram-open", + 218, + "218", + "hexagram-dot", + 318, + "318", + "hexagram-open-dot", + 19, + "19", + "star-triangle-up", + 119, + "119", + "star-triangle-up-open", + 219, + "219", + "star-triangle-up-dot", + 319, + "319", + "star-triangle-up-open-dot", + 20, + "20", + "star-triangle-down", + 120, + "120", + "star-triangle-down-open", + 220, + "220", + "star-triangle-down-dot", + 320, + "320", + "star-triangle-down-open-dot", + 21, + "21", + "star-square", + 121, + "121", + "star-square-open", + 221, + "221", + "star-square-dot", + 321, + "321", + "star-square-open-dot", + 22, + "22", + "star-diamond", + 122, + "122", + "star-diamond-open", + 222, + "222", + "star-diamond-dot", + 322, + "322", + "star-diamond-open-dot", + 23, + "23", + "diamond-tall", + 123, + "123", + "diamond-tall-open", + 223, + "223", + "diamond-tall-dot", + 323, + "323", + "diamond-tall-open-dot", + 24, + "24", + "diamond-wide", + 124, + "124", + "diamond-wide-open", + 224, + "224", + "diamond-wide-dot", + 324, + "324", + "diamond-wide-open-dot", + 25, + "25", + "hourglass", + 125, + "125", + "hourglass-open", + 26, + "26", + "bowtie", + 126, + "126", + "bowtie-open", + 27, + "27", + "circle-cross", + 127, + "127", + "circle-cross-open", + 28, + "28", + "circle-x", + 128, + "128", + "circle-x-open", + 29, + "29", + "square-cross", + 129, + "129", + "square-cross-open", + 30, + "30", + "square-x", + 130, + "130", + "square-x-open", + 31, + "31", + "diamond-cross", + 131, + "131", + "diamond-cross-open", + 32, + "32", + "diamond-x", + 132, + "132", + "diamond-x-open", + 33, + "33", + "cross-thin", + 133, + "133", + "cross-thin-open", + 34, + "34", + "x-thin", + 134, + "134", + "x-thin-open", + 35, + "35", + "asterisk", + 135, + "135", + "asterisk-open", + 36, + "36", + "hash", + 136, + "136", + "hash-open", + 236, + "236", + "hash-dot", + 336, + "336", + "hash-open-dot", + 37, + "37", + "y-up", + 137, + "137", + "y-up-open", + 38, + "38", + "y-down", + 138, + "138", + "y-down-open", + 39, + "39", + "y-left", + 139, + "139", + "y-left-open", + 40, + "40", + "y-right", + 140, + "140", + "y-right-open", + 41, + "41", + "line-ew", + 141, + "141", + "line-ew-open", + 42, + "42", + "line-ns", + 142, + "142", + "line-ns-open", + 43, + "43", + "line-ne", + 143, + "143", + "line-ne-open", + 44, + "44", + "line-nw", + 144, + "144", + "line-nw-open", + 45, + "45", + "arrow-up", + 145, + "145", + "arrow-up-open", + 46, + "46", + "arrow-down", + 146, + "146", + "arrow-down-open", + 47, + "47", + "arrow-left", + 147, + "147", + "arrow-left-open", + 48, + "48", + "arrow-right", + 148, + "148", + "arrow-right-open", + 49, + "49", + "arrow-bar-up", + 149, + "149", + "arrow-bar-up-open", + 50, + "50", + "arrow-bar-down", + 150, + "150", + "arrow-bar-down-open", + 51, + "51", + "arrow-bar-left", + 151, + "151", + "arrow-bar-left-open", + 52, + "52", + "arrow-bar-right", + 152, + "152", + "arrow-bar-right-open" + ], + "dflt": "circle", + "arrayOk": true, + "editType": "style", + "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "arrayOk": true, + "editType": "style", + "description": "Sets the marker opacity." + }, + "maxdisplayed": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "plot", + "description": "Sets a maximum number of points to be drawn on the graph. *0* corresponds to no limit." + }, + "size": { + "valType": "number", + "min": 0, + "dflt": 6, + "arrayOk": true, + "editType": "calc", + "description": "Sets the marker size (in px)." + }, + "sizeref": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`." + }, + "sizemin": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points." + }, + "sizemode": { + "valType": "enumerated", + "values": [ + "diameter", + "area" + ], + "dflt": "diameter", + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels." + }, + "line": { + "width": { + "valType": "number", + "min": 0, + "arrayOk": true, + "editType": "style", + "description": "Sets the width (in px) of the lines bounding the marker points." + }, + "editType": "calc", + "color": { + "valType": "color", + "arrayOk": true, + "editType": "style", + "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "role": "object", + "widthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for width .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "gradient": { + "type": { + "valType": "enumerated", + "values": [ + "radial", + "horizontal", + "vertical", + "none" + ], + "arrayOk": true, + "dflt": "none", + "editType": "calc", + "description": "Sets the type of gradient used to fill the markers" + }, + "color": { + "valType": "color", + "arrayOk": true, + "editType": "calc", + "description": "Sets the final color of the gradient fill: the center color for radial, the right for horizontal, or the bottom for vertical." + }, + "editType": "calc", + "role": "object", + "typesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for type .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "editType": "calc", + "color": { + "valType": "color", + "arrayOk": true, + "editType": "style", + "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "colorbars" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "colorbars" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "colorbars" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "colorbars" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "colorbars" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "colorbars" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "colorbars" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "colorbars" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "colorbars" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "colorbars" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "colorbars", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "colorbars", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "colorbars", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "colorbars", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "colorbars" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "colorbars", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "colorbars", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "colorbars" + }, + { + "valType": "any", + "editType": "colorbars" + } + ], + "editType": "colorbars", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "colorbars", + "name": { + "valType": "string", + "editType": "colorbars", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "colorbars", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "colorbars", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "colorbars", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "colorbars", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars" + }, + "editType": "colorbars", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "colorbars" + } + }, + "editType": "colorbars", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "role": "object", + "symbolsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for symbol .", + "editType": "none" + }, + "opacitysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for opacity .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "textfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "style", + "arrayOk": true + }, + "editType": "calc", + "description": "Sets the text font.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "textposition": { + "valType": "enumerated", + "values": [ + "top left", + "top center", + "top right", + "middle left", + "middle center", + "middle right", + "bottom left", + "bottom center", + "bottom right" + ], + "dflt": "middle center", + "arrayOk": true, + "editType": "calc", + "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates." + }, + "selected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "style", + "description": "Sets the marker opacity of selected points." + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the marker color of selected points." + }, + "size": { + "valType": "number", + "min": 0, + "editType": "style", + "description": "Sets the marker size of selected points." + }, + "editType": "style", + "role": "object" + }, + "textfont": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the text font color of selected points." + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "unselected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "style", + "description": "Sets the marker opacity of unselected points, applied only when a selection exists." + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the marker color of unselected points, applied only when a selection exists." + }, + "size": { + "valType": "number", + "min": 0, + "editType": "style", + "description": "Sets the marker size of unselected points, applied only when a selection exists." + }, + "editType": "style", + "role": "object" + }, + "textfont": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the text font color of unselected points, applied only when a selection exists." + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "a", + "b", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hoveron": { + "valType": "flaglist", + "flags": [ + "points", + "fills" + ], + "editType": "style", + "description": "Do the hover effects highlight individual points (markers or line points) or do they highlight filled regions? If the fill is *toself* or *tonext* and there are no markers or text, then the default is *fills*, otherwise it is *points*." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "xaxis": { + "valType": "subplotid", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." + }, + "yaxis": { + "valType": "subplotid", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "asrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for a .", + "editType": "none" + }, + "bsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for b .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "texttemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "textpositionsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for textposition .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + } + } + }, + "contourcarpet": { + "meta": { + "hrName": "contour_carpet", + "description": "Plots contours on either the first carpet axis or the carpet axis with a matching `carpet` attribute. Data `z` is interpreted as matching that of the corresponding carpet axis." + }, + "categories": [ + "cartesian", + "svg", + "carpet", + "contour", + "symbols", + "showLegend", + "hasLines", + "carpetDependent", + "noHover", + "noSortingByValue" + ], + "animatable": false, + "type": "contourcarpet", + "attributes": { + "type": "contourcarpet", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "showlegend": { + "valType": "boolean", + "dflt": true, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "carpet": { + "valType": "string", + "editType": "calc", + "description": "The `carpet` of the carpet axes on which this contour trace lies" + }, + "z": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the z data." + }, + "a": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the x coordinates.", + "impliedEdits": { + "xtype": "array" + } + }, + "a0": { + "valType": "any", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step.", + "impliedEdits": { + "xtype": "scaled" + } + }, + "da": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Sets the x coordinate step. See `x0` for more info.", + "impliedEdits": { + "xtype": "scaled" + } + }, + "b": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the y coordinates.", + "impliedEdits": { + "ytype": "array" + } + }, + "b0": { + "valType": "any", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step.", + "impliedEdits": { + "ytype": "scaled" + } + }, + "db": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Sets the y coordinate step. See `y0` for more info.", + "impliedEdits": { + "ytype": "scaled" + } + }, + "text": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the text elements associated with each z value." + }, + "hovertext": { + "valType": "data_array", + "editType": "calc", + "description": "Same as `text`." + }, + "transpose": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Transposes the z data." + }, + "atype": { + "valType": "enumerated", + "values": [ + "array", + "scaled" + ], + "editType": "calc+clearAxisTypes", + "description": "If *array*, the heatmap's x coordinates are given by *x* (the default behavior when `x` is provided). If *scaled*, the heatmap's x coordinates are given by *x0* and *dx* (the default behavior when `x` is not provided)." + }, + "btype": { + "valType": "enumerated", + "values": [ + "array", + "scaled" + ], + "editType": "calc+clearAxisTypes", + "description": "If *array*, the heatmap's y coordinates are given by *y* (the default behavior when `y` is provided) If *scaled*, the heatmap's y coordinates are given by *y0* and *dy* (the default behavior when `y` is not provided)" + }, + "fillcolor": { + "valType": "color", + "editType": "calc", + "description": "Sets the fill color if `contours.type` is *constraint*. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." + }, + "autocontour": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the contour level attributes are picked by an algorithm. If *true*, the number of contour levels can be set in `ncontours`. If *false*, set the contour level attributes in `contours`." + }, + "ncontours": { + "valType": "integer", + "dflt": 15, + "min": 1, + "editType": "calc", + "description": "Sets the maximum number of contour levels. The actual number of contours will be chosen automatically to be less than or equal to the value of `ncontours`. Has an effect only if `autocontour` is *true* or if `contours.size` is missing." + }, + "contours": { + "type": { + "valType": "enumerated", + "values": [ + "levels", + "constraint" + ], + "dflt": "levels", + "editType": "calc", + "description": "If `levels`, the data is represented as a contour plot with multiple levels displayed. If `constraint`, the data is represented as constraints with the invalid region shaded as specified by the `operation` and `value` parameters." + }, + "start": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "^autocontour": false + }, + "description": "Sets the starting contour level value. Must be less than `contours.end`" + }, + "end": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "^autocontour": false + }, + "description": "Sets the end contour level value. Must be more than `contours.start`" + }, + "size": { + "valType": "number", + "dflt": null, + "min": 0, + "editType": "plot", + "impliedEdits": { + "^autocontour": false + }, + "description": "Sets the step between each contour level. Must be positive." + }, + "coloring": { + "valType": "enumerated", + "values": [ + "fill", + "lines", + "none" + ], + "dflt": "fill", + "editType": "calc", + "description": "Determines the coloring method showing the contour values. If *fill*, coloring is done evenly between each contour level If *lines*, coloring is done on the contour lines. If *none*, no coloring is applied on this trace." + }, + "showlines": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not the contour lines are drawn. Has an effect only if `contours.coloring` is set to *fill*." + }, + "showlabels": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Determines whether to label the contour lines with their values." + }, + "labelfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "style" + }, + "editType": "plot", + "description": "Sets the font used for labeling the contour levels. The default color comes from the lines, if shown. The default family and size come from `layout.font`.", + "role": "object" + }, + "labelformat": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets the contour label formatting rule using d3 formatting mini-language which is very similar to Python, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format" + }, + "operation": { + "valType": "enumerated", + "values": [ + "=", + "<", + ">=", + ">", + "<=", + "[]", + "()", + "[)", + "(]", + "][", + ")(", + "](", + ")[" + ], + "dflt": "=", + "editType": "calc", + "description": "Sets the constraint operation. *=* keeps regions equal to `value` *<* and *<=* keep regions less than `value` *>* and *>=* keep regions greater than `value` *[]*, *()*, *[)*, and *(]* keep regions inside `value[0]` to `value[1]` *][*, *)(*, *](*, *)[* keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter transforms." + }, + "value": { + "valType": "any", + "dflt": 0, + "editType": "calc", + "description": "Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values (=,<,>=,>,<=) *value* is expected to be a number. When `operation` is set to one of the interval values ([],(),[),(],][,)(,](,)[) *value* is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound." + }, + "editType": "calc", + "impliedEdits": { + "autocontour": false, + "role": "object" + }, + "role": "object" + }, + "line": { + "color": { + "valType": "color", + "editType": "style+colorbars", + "description": "Sets the color of the contour level. Has no effect if `contours.coloring` is set to *lines*." + }, + "width": { + "valType": "number", + "min": 0, + "editType": "style+colorbars", + "description": "Sets the contour line width in (in px) Defaults to *0.5* when `contours.type` is *levels*. Defaults to *2* when `contour.type` is *constraint*." + }, + "dash": { + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ], + "dflt": "solid", + "editType": "style", + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." + }, + "smoothing": { + "valType": "number", + "min": 0, + "max": 1.3, + "dflt": 1, + "editType": "plot", + "description": "Sets the amount of smoothing for the contour lines, where *0* corresponds to no smoothing." + }, + "editType": "plot", + "role": "object" + }, + "zauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user." + }, + "zmin": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "zauto": false + }, + "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well." + }, + "zmax": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "zauto": false + }, + "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well." + }, + "zmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`zmin` and `zmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "colorbars" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "colorbars" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "colorbars" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "colorbars" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "colorbars" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "colorbars" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "colorbars" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "colorbars" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "colorbars" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "colorbars" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "colorbars", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "colorbars", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "colorbars", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "colorbars", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "colorbars" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "colorbars", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "colorbars", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "colorbars" + }, + { + "valType": "any", + "editType": "colorbars" + } + ], + "editType": "colorbars", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "colorbars", + "name": { + "valType": "string", + "editType": "colorbars", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "colorbars", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "colorbars", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "colorbars", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "colorbars", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars" + }, + "editType": "colorbars", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "colorbars" + } + }, + "editType": "colorbars", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "xaxis": { + "valType": "subplotid", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." + }, + "yaxis": { + "valType": "subplotid", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "zsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for z .", + "editType": "none" + }, + "asrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for a .", + "editType": "none" + }, + "bsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for b .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + } + } + }, + "ohlc": { + "meta": { + "description": "The ohlc (short for Open-High-Low-Close) is a style of financial chart describing open, high, low and close for a given `x` coordinate (most likely time). The tip of the lines represent the `low` and `high` values and the horizontal segments represent the `open` and `close` values. Sample points where the close value is higher (lower) then the open value are called increasing (decreasing). By default, increasing items are drawn in green whereas decreasing are drawn in red." + }, + "categories": [ + "cartesian", + "svg", + "showLegend" + ], + "animatable": false, + "type": "ohlc", + "attributes": { + "type": "ohlc", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "showlegend": { + "valType": "boolean", + "dflt": true, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "selectedpoints": { + "valType": "any", + "editType": "calc", + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "xperiod": { + "valType": "any", + "dflt": 0, + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." + }, + "xperiod0": { + "valType": "any", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." + }, + "xperiodalignment": { + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ], + "dflt": "middle", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis." + }, + "xhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `x` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `xaxis.hoverformat`." + }, + "yhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `y` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `yaxis.hoverformat`." + }, + "x": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the x coordinates. If absent, linear coordinate will be generated." + }, + "open": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the open values." + }, + "high": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the high values." + }, + "low": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the low values." + }, + "close": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the close values." + }, + "line": { + "width": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "style", + "description": "[object Object] Note that this style setting can also be set per direction via `increasing.line.width` and `decreasing.line.width`." + }, + "dash": { + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ], + "dflt": "solid", + "editType": "style", + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*). Note that this style setting can also be set per direction via `increasing.line.dash` and `decreasing.line.dash`." + }, + "editType": "style", + "role": "object" + }, + "increasing": { + "line": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the line color.", + "dflt": "#3D9970" + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "style", + "description": "Sets the line width (in px)." + }, + "dash": { + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ], + "dflt": "solid", + "editType": "style", + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "decreasing": { + "line": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the line color.", + "dflt": "#FF4136" + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "style", + "description": "Sets the line width (in px)." + }, + "dash": { + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ], + "dflt": "solid", + "editType": "style", + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets hover text elements associated with each sample point. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to this trace's sample points." + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Same as `text`." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "max": 0.5, + "dflt": 0.3, + "editType": "calc", + "description": "Sets the width of the open/close tick marks relative to the *x* minimal interval." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "split": { + "valType": "boolean", + "dflt": false, + "editType": "style", + "description": "Show hover information (open, close, high, low) in separate labels." + }, + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "xcalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `x` date data." + }, + "xaxis": { + "valType": "subplotid", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." + }, + "yaxis": { + "valType": "subplotid", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "opensrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for open .", + "editType": "none" + }, + "highsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for high .", + "editType": "none" + }, + "lowsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for low .", + "editType": "none" + }, + "closesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for close .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + } + } + }, + "candlestick": { + "meta": { + "description": "The candlestick is a style of financial chart describing open, high, low and close for a given `x` coordinate (most likely time). The boxes represent the spread between the `open` and `close` values and the lines represent the spread between the `low` and `high` values Sample points where the close value is higher (lower) then the open value are called increasing (decreasing). By default, increasing candles are drawn in green whereas decreasing are drawn in red." + }, + "categories": [ + "cartesian", + "svg", + "showLegend", + "candlestick", + "boxLayout" + ], + "animatable": false, + "type": "candlestick", + "attributes": { + "type": "candlestick", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "showlegend": { + "valType": "boolean", + "dflt": true, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "selectedpoints": { + "valType": "any", + "editType": "calc", + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "x", + "y", + "z", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "xperiod": { + "valType": "any", + "dflt": 0, + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." + }, + "xperiod0": { + "valType": "any", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." + }, + "xperiodalignment": { + "valType": "enumerated", + "values": [ + "start", + "middle", + "end" + ], + "dflt": "middle", + "editType": "calc", + "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis." + }, + "xhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `x` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `xaxis.hoverformat`." + }, + "yhoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule for `y` using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format By default the values are formatted using `yaxis.hoverformat`." + }, + "x": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the x coordinates. If absent, linear coordinate will be generated." + }, + "open": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the open values." + }, + "high": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the high values." + }, + "low": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the low values." + }, + "close": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the close values." + }, + "line": { + "width": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "style", + "description": "Sets the width (in px) of line bounding the box(es). Note that this style setting can also be set per direction via `increasing.line.width` and `decreasing.line.width`." + }, + "editType": "style", + "role": "object" + }, + "increasing": { + "line": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the color of line bounding the box(es).", + "dflt": "#3D9970" + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "style", + "description": "Sets the width (in px) of line bounding the box(es)." + }, + "editType": "style", + "role": "object" + }, + "fillcolor": { + "valType": "color", + "editType": "style", + "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." + }, + "editType": "style", + "role": "object" + }, + "decreasing": { + "line": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the color of line bounding the box(es).", + "dflt": "#FF4136" + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "style", + "description": "Sets the width (in px) of line bounding the box(es)." + }, + "editType": "style", + "role": "object" + }, + "fillcolor": { + "valType": "color", + "editType": "style", + "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." + }, + "editType": "style", + "role": "object" + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets hover text elements associated with each sample point. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to this trace's sample points." + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Same as `text`." + }, + "whiskerwidth": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0, + "editType": "calc", + "description": "Sets the width of the whiskers relative to the box' width. For example, with 1, the whiskers are as wide as the box(es)." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "split": { + "valType": "boolean", + "dflt": false, + "editType": "style", + "description": "Show hover information (open, close, high, low) in separate labels." + }, + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "xcalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use with `x` date data." + }, + "xaxis": { + "valType": "subplotid", + "dflt": "x", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." + }, + "yaxis": { + "valType": "subplotid", + "dflt": "y", + "editType": "calc+clearAxisTypes", + "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "xsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for x .", + "editType": "none" + }, + "opensrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for open .", + "editType": "none" + }, + "highsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for high .", + "editType": "none" + }, + "lowsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for low .", + "editType": "none" + }, + "closesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for close .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + } + }, + "layoutAttributes": { + "boxmode": { + "valType": "enumerated", + "values": [ + "group", + "overlay" + ], + "dflt": "overlay", + "editType": "calc", + "description": "Determines how boxes at the same location coordinate are displayed on the graph. If *group*, the boxes are plotted next to one another centered around the shared location. If *overlay*, the boxes are plotted over one another, you might need to set *opacity* to see them multiple boxes. Has no effect on traces that have *width* set." + }, + "boxgap": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.3, + "editType": "calc", + "description": "Sets the gap (in plot fraction) between boxes of adjacent location coordinates. Has no effect on traces that have *width* set." + }, + "boxgroupgap": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.3, + "editType": "calc", + "description": "Sets the gap (in plot fraction) between boxes of the same location coordinate. Has no effect on traces that have *width* set." + } + } + }, + "scatterpolar": { + "meta": { + "hrName": "scatter_polar", + "description": "The scatterpolar trace type encompasses line charts, scatter charts, text charts, and bubble charts in polar coordinates. The data visualized as scatter point or lines is set in `r` (radial) and `theta` (angular) coordinates Text (appearing either on the chart or on hover only) is via `text`. Bubble charts are achieved by setting `marker.size` and/or `marker.color` to numerical arrays." + }, + "categories": [ + "polar", + "symbols", + "showLegend", + "scatter-like" + ], + "animatable": false, + "type": "scatterpolar", + "attributes": { + "type": "scatterpolar", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "showlegend": { + "valType": "boolean", + "dflt": true, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "selectedpoints": { + "valType": "any", + "editType": "calc", + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "mode": { + "valType": "flaglist", + "flags": [ + "lines", + "markers", + "text" + ], + "extras": [ + "none" + ], + "editType": "calc", + "description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover. If there are less than 20 points and the trace is not stacked then the default is *lines+markers*. Otherwise, *lines*." + }, + "r": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the radial coordinates" + }, + "theta": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the angular coordinates" + }, + "r0": { + "valType": "any", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "description": "Alternate to `r`. Builds a linear space of r coordinates. Use with `dr` where `r0` is the starting coordinate and `dr` the step." + }, + "dr": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Sets the r coordinate step." + }, + "theta0": { + "valType": "any", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "description": "Alternate to `theta`. Builds a linear space of theta coordinates. Use with `dtheta` where `theta0` is the starting coordinate and `dtheta` the step." + }, + "dtheta": { + "valType": "number", + "editType": "calc", + "description": "Sets the theta coordinate step. By default, the `dtheta` step equals the subplot's period divided by the length of the `r` coordinates." + }, + "thetaunit": { + "valType": "enumerated", + "values": [ + "radians", + "degrees", + "gradians" + ], + "dflt": "degrees", + "editType": "calc+clearAxisTypes", + "description": "Sets the unit of input *theta* values. Has an effect only when on *linear* angular axes." + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." + }, + "texttemplate": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `r`, `theta` and `text`.", + "arrayOk": true + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "style", + "description": "Sets hover text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." + }, + "line": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the line color." + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "style", + "description": "Sets the line width (in px)." + }, + "dash": { + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ], + "dflt": "solid", + "editType": "style", + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." + }, + "shape": { + "valType": "enumerated", + "values": [ + "linear", + "spline" + ], + "dflt": "linear", + "editType": "plot", + "description": "Determines the line shape. With *spline* the lines are drawn using spline interpolation. The other available values correspond to step-wise line shapes." + }, + "smoothing": { + "valType": "number", + "min": 0, + "max": 1.3, + "dflt": 1, + "editType": "plot", + "description": "Has an effect only if `shape` is set to *spline* Sets the amount of smoothing. *0* corresponds to no smoothing (equivalent to a *linear* shape)." + }, + "editType": "calc", + "role": "object" + }, + "connectgaps": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected." + }, + "marker": { + "symbol": { + "valType": "enumerated", + "values": [ + 0, + "0", + "circle", + 100, + "100", + "circle-open", + 200, + "200", + "circle-dot", + 300, + "300", + "circle-open-dot", + 1, + "1", + "square", + 101, + "101", + "square-open", + 201, + "201", + "square-dot", + 301, + "301", + "square-open-dot", + 2, + "2", + "diamond", + 102, + "102", + "diamond-open", + 202, + "202", + "diamond-dot", + 302, + "302", + "diamond-open-dot", + 3, + "3", + "cross", + 103, + "103", + "cross-open", + 203, + "203", + "cross-dot", + 303, + "303", + "cross-open-dot", + 4, + "4", + "x", + 104, + "104", + "x-open", + 204, + "204", + "x-dot", + 304, + "304", + "x-open-dot", + 5, + "5", + "triangle-up", + 105, + "105", + "triangle-up-open", + 205, + "205", + "triangle-up-dot", + 305, + "305", + "triangle-up-open-dot", + 6, + "6", + "triangle-down", + 106, + "106", + "triangle-down-open", + 206, + "206", + "triangle-down-dot", + 306, + "306", + "triangle-down-open-dot", + 7, + "7", + "triangle-left", + 107, + "107", + "triangle-left-open", + 207, + "207", + "triangle-left-dot", + 307, + "307", + "triangle-left-open-dot", + 8, + "8", + "triangle-right", + 108, + "108", + "triangle-right-open", + 208, + "208", + "triangle-right-dot", + 308, + "308", + "triangle-right-open-dot", + 9, + "9", + "triangle-ne", + 109, + "109", + "triangle-ne-open", + 209, + "209", + "triangle-ne-dot", + 309, + "309", + "triangle-ne-open-dot", + 10, + "10", + "triangle-se", + 110, + "110", + "triangle-se-open", + 210, + "210", + "triangle-se-dot", + 310, + "310", + "triangle-se-open-dot", + 11, + "11", + "triangle-sw", + 111, + "111", + "triangle-sw-open", + 211, + "211", + "triangle-sw-dot", + 311, + "311", + "triangle-sw-open-dot", + 12, + "12", + "triangle-nw", + 112, + "112", + "triangle-nw-open", + 212, + "212", + "triangle-nw-dot", + 312, + "312", + "triangle-nw-open-dot", + 13, + "13", + "pentagon", + 113, + "113", + "pentagon-open", + 213, + "213", + "pentagon-dot", + 313, + "313", + "pentagon-open-dot", + 14, + "14", + "hexagon", + 114, + "114", + "hexagon-open", + 214, + "214", + "hexagon-dot", + 314, + "314", + "hexagon-open-dot", + 15, + "15", + "hexagon2", + 115, + "115", + "hexagon2-open", + 215, + "215", + "hexagon2-dot", + 315, + "315", + "hexagon2-open-dot", + 16, + "16", + "octagon", + 116, + "116", + "octagon-open", + 216, + "216", + "octagon-dot", + 316, + "316", + "octagon-open-dot", + 17, + "17", + "star", + 117, + "117", + "star-open", + 217, + "217", + "star-dot", + 317, + "317", + "star-open-dot", + 18, + "18", + "hexagram", + 118, + "118", + "hexagram-open", + 218, + "218", + "hexagram-dot", + 318, + "318", + "hexagram-open-dot", + 19, + "19", + "star-triangle-up", + 119, + "119", + "star-triangle-up-open", + 219, + "219", + "star-triangle-up-dot", + 319, + "319", + "star-triangle-up-open-dot", + 20, + "20", + "star-triangle-down", + 120, + "120", + "star-triangle-down-open", + 220, + "220", + "star-triangle-down-dot", + 320, + "320", + "star-triangle-down-open-dot", + 21, + "21", + "star-square", + 121, + "121", + "star-square-open", + 221, + "221", + "star-square-dot", + 321, + "321", + "star-square-open-dot", + 22, + "22", + "star-diamond", + 122, + "122", + "star-diamond-open", + 222, + "222", + "star-diamond-dot", + 322, + "322", + "star-diamond-open-dot", + 23, + "23", + "diamond-tall", + 123, + "123", + "diamond-tall-open", + 223, + "223", + "diamond-tall-dot", + 323, + "323", + "diamond-tall-open-dot", + 24, + "24", + "diamond-wide", + 124, + "124", + "diamond-wide-open", + 224, + "224", + "diamond-wide-dot", + 324, + "324", + "diamond-wide-open-dot", + 25, + "25", + "hourglass", + 125, + "125", + "hourglass-open", + 26, + "26", + "bowtie", + 126, + "126", + "bowtie-open", + 27, + "27", + "circle-cross", + 127, + "127", + "circle-cross-open", + 28, + "28", + "circle-x", + 128, + "128", + "circle-x-open", + 29, + "29", + "square-cross", + 129, + "129", + "square-cross-open", + 30, + "30", + "square-x", + 130, + "130", + "square-x-open", + 31, + "31", + "diamond-cross", + 131, + "131", + "diamond-cross-open", + 32, + "32", + "diamond-x", + 132, + "132", + "diamond-x-open", + 33, + "33", + "cross-thin", + 133, + "133", + "cross-thin-open", + 34, + "34", + "x-thin", + 134, + "134", + "x-thin-open", + 35, + "35", + "asterisk", + 135, + "135", + "asterisk-open", + 36, + "36", + "hash", + 136, + "136", + "hash-open", + 236, + "236", + "hash-dot", + 336, + "336", + "hash-open-dot", + 37, + "37", + "y-up", + 137, + "137", + "y-up-open", + 38, + "38", + "y-down", + 138, + "138", + "y-down-open", + 39, + "39", + "y-left", + 139, + "139", + "y-left-open", + 40, + "40", + "y-right", + 140, + "140", + "y-right-open", + 41, + "41", + "line-ew", + 141, + "141", + "line-ew-open", + 42, + "42", + "line-ns", + 142, + "142", + "line-ns-open", + 43, + "43", + "line-ne", + 143, + "143", + "line-ne-open", + 44, + "44", + "line-nw", + 144, + "144", + "line-nw-open", + 45, + "45", + "arrow-up", + 145, + "145", + "arrow-up-open", + 46, + "46", + "arrow-down", + 146, + "146", + "arrow-down-open", + 47, + "47", + "arrow-left", + 147, + "147", + "arrow-left-open", + 48, + "48", + "arrow-right", + 148, + "148", + "arrow-right-open", + 49, + "49", + "arrow-bar-up", + 149, + "149", + "arrow-bar-up-open", + 50, + "50", + "arrow-bar-down", + 150, + "150", + "arrow-bar-down-open", + 51, + "51", + "arrow-bar-left", + 151, + "151", + "arrow-bar-left-open", + 52, + "52", + "arrow-bar-right", + 152, + "152", + "arrow-bar-right-open" + ], + "dflt": "circle", + "arrayOk": true, + "editType": "style", + "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "arrayOk": true, + "editType": "style", + "description": "Sets the marker opacity." + }, + "size": { + "valType": "number", + "min": 0, + "dflt": 6, + "arrayOk": true, + "editType": "calc", + "description": "Sets the marker size (in px)." + }, + "maxdisplayed": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "plot", + "description": "Sets a maximum number of points to be drawn on the graph. *0* corresponds to no limit." + }, + "sizeref": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`." + }, + "sizemin": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points." + }, + "sizemode": { + "valType": "enumerated", + "values": [ + "diameter", + "area" + ], + "dflt": "diameter", + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels." + }, + "line": { + "width": { + "valType": "number", + "min": 0, + "arrayOk": true, + "editType": "style", + "description": "Sets the width (in px) of the lines bounding the marker points." + }, + "editType": "calc", + "color": { + "valType": "color", + "arrayOk": true, + "editType": "style", + "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "role": "object", + "widthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for width .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "gradient": { + "type": { + "valType": "enumerated", + "values": [ + "radial", + "horizontal", + "vertical", + "none" + ], + "arrayOk": true, + "dflt": "none", + "editType": "calc", + "description": "Sets the type of gradient used to fill the markers" + }, + "color": { + "valType": "color", + "arrayOk": true, + "editType": "calc", + "description": "Sets the final color of the gradient fill: the center color for radial, the right for horizontal, or the bottom for vertical." + }, + "editType": "calc", + "role": "object", + "typesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for type .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "editType": "calc", + "color": { + "valType": "color", + "arrayOk": true, + "editType": "style", + "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "colorbars" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "colorbars" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "colorbars" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "colorbars" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "colorbars" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "colorbars" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "colorbars" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "colorbars" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "colorbars" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "colorbars" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "colorbars", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "colorbars", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "colorbars", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "colorbars", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "colorbars" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "colorbars", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "colorbars", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "colorbars" + }, + { + "valType": "any", + "editType": "colorbars" + } + ], + "editType": "colorbars", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "colorbars", + "name": { + "valType": "string", + "editType": "colorbars", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "colorbars", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "colorbars", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "colorbars", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "colorbars", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars" + }, + "editType": "colorbars", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "colorbars" + } + }, + "editType": "colorbars", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "role": "object", + "symbolsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for symbol .", + "editType": "none" + }, + "opacitysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for opacity .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "cliponaxis": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Determines whether or not markers and text nodes are clipped about the subplot axes. To show markers and text nodes above axis lines and tick labels, make sure to set `xaxis.layer` and `yaxis.layer` to *below traces*." + }, + "textposition": { + "valType": "enumerated", + "values": [ + "top left", + "top center", + "top right", + "middle left", + "middle center", + "middle right", + "bottom left", + "bottom center", + "bottom right" + ], + "dflt": "middle center", + "arrayOk": true, + "editType": "calc", + "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates." + }, + "textfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "style", + "arrayOk": true + }, + "editType": "calc", + "description": "Sets the text font.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "fill": { + "valType": "enumerated", + "values": [ + "none", + "toself", + "tonext" + ], + "editType": "calc", + "description": "Sets the area to fill with a solid color. Use with `fillcolor` if not *none*. scatterpolar has a subset of the options available to scatter. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape. *tonext* fills the space between two traces if one completely encloses the other (eg consecutive contour lines), and behaves like *toself* if there is no trace before it. *tonext* should not be used if one trace does not enclose the other.", + "dflt": "none" + }, + "fillcolor": { + "valType": "color", + "editType": "style", + "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "r", + "theta", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hoveron": { + "valType": "flaglist", + "flags": [ + "points", + "fills" + ], + "editType": "style", + "description": "Do the hover effects highlight individual points (markers or line points) or do they highlight filled regions? If the fill is *toself* or *tonext* and there are no markers or text, then the default is *fills*, otherwise it is *points*." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "selected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "style", + "description": "Sets the marker opacity of selected points." + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the marker color of selected points." + }, + "size": { + "valType": "number", + "min": 0, + "editType": "style", + "description": "Sets the marker size of selected points." + }, + "editType": "style", + "role": "object" + }, + "textfont": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the text font color of selected points." + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "unselected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "style", + "description": "Sets the marker opacity of unselected points, applied only when a selection exists." + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the marker color of unselected points, applied only when a selection exists." + }, + "size": { + "valType": "number", + "min": 0, + "editType": "style", + "description": "Sets the marker size of unselected points, applied only when a selection exists." + }, + "editType": "style", + "role": "object" + }, + "textfont": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the text font color of unselected points, applied only when a selection exists." + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "subplot": { + "valType": "subplotid", + "dflt": "polar", + "editType": "calc", + "description": "Sets a reference between this trace's data coordinates and a polar subplot. If *polar* (the default value), the data refer to `layout.polar`. If *polar2*, the data refer to `layout.polar2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "rsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for r .", + "editType": "none" + }, + "thetasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for theta .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "texttemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "textpositionsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for textposition .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + } + } + }, + "scatterpolargl": { + "meta": { + "hrName": "scatter_polar_gl", + "description": "The scatterpolargl trace type encompasses line charts, scatter charts, and bubble charts in polar coordinates using the WebGL plotting engine. The data visualized as scatter point or lines is set in `r` (radial) and `theta` (angular) coordinates Bubble charts are achieved by setting `marker.size` and/or `marker.color` to numerical arrays." + }, + "categories": [ + "gl", + "regl", + "polar", + "symbols", + "showLegend", + "scatter-like" + ], + "animatable": false, + "type": "scatterpolargl", + "attributes": { + "type": "scatterpolargl", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "showlegend": { + "valType": "boolean", + "dflt": true, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "selectedpoints": { + "valType": "any", + "editType": "calc", + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "mode": { + "valType": "flaglist", + "flags": [ + "lines", + "markers", + "text" + ], + "extras": [ + "none" + ], + "editType": "calc", + "description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover. If there are less than 20 points and the trace is not stacked then the default is *lines+markers*. Otherwise, *lines*." + }, + "r": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the radial coordinates" + }, + "theta": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the angular coordinates" + }, + "r0": { + "valType": "any", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "description": "Alternate to `r`. Builds a linear space of r coordinates. Use with `dr` where `r0` is the starting coordinate and `dr` the step." + }, + "dr": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Sets the r coordinate step." + }, + "theta0": { + "valType": "any", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "description": "Alternate to `theta`. Builds a linear space of theta coordinates. Use with `dtheta` where `theta0` is the starting coordinate and `dtheta` the step." + }, + "dtheta": { + "valType": "number", + "editType": "calc", + "description": "Sets the theta coordinate step. By default, the `dtheta` step equals the subplot's period divided by the length of the `r` coordinates." + }, + "thetaunit": { + "valType": "enumerated", + "values": [ + "radians", + "degrees", + "gradians" + ], + "dflt": "degrees", + "editType": "calc+clearAxisTypes", + "description": "Sets the unit of input *theta* values. Has an effect only when on *linear* angular axes." + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." + }, + "texttemplate": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `r`, `theta` and `text`.", + "arrayOk": true + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "style", + "description": "Sets hover text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "line": { + "color": { + "valType": "color", + "editType": "calc", + "description": "Sets the line color." + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "calc", + "description": "Sets the line width (in px)." + }, + "shape": { + "valType": "enumerated", + "values": [ + "linear", + "hv", + "vh", + "hvh", + "vhv" + ], + "dflt": "linear", + "editType": "calc", + "description": "Determines the line shape. The values correspond to step-wise line shapes." + }, + "dash": { + "valType": "enumerated", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ], + "dflt": "solid", + "description": "Sets the style of the lines.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "connectgaps": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected." + }, + "marker": { + "color": { + "valType": "color", + "arrayOk": true, + "editType": "calc", + "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "calc" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "calc" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "calc" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "calc" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "calc" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "calc" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "calc" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "calc" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "calc" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "calc" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "calc" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "calc" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "calc", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "calc", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "calc", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "calc" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "calc", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "calc", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Sets the color bar's tick label font", + "editType": "calc", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "calc", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "calc" + }, + { + "valType": "any", + "editType": "calc" + } + ], + "editType": "calc", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "calc", + "name": { + "valType": "string", + "editType": "calc", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "calc", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "calc", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "calc", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "calc", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "calc", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "calc" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "calc", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "calc" + }, + "editType": "calc", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "calc" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "calc" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "calc" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "calc" + } + }, + "editType": "calc", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "symbol": { + "valType": "enumerated", + "values": [ + 0, + "0", + "circle", + 100, + "100", + "circle-open", + 200, + "200", + "circle-dot", + 300, + "300", + "circle-open-dot", + 1, + "1", + "square", + 101, + "101", + "square-open", + 201, + "201", + "square-dot", + 301, + "301", + "square-open-dot", + 2, + "2", + "diamond", + 102, + "102", + "diamond-open", + 202, + "202", + "diamond-dot", + 302, + "302", + "diamond-open-dot", + 3, + "3", + "cross", + 103, + "103", + "cross-open", + 203, + "203", + "cross-dot", + 303, + "303", + "cross-open-dot", + 4, + "4", + "x", + 104, + "104", + "x-open", + 204, + "204", + "x-dot", + 304, + "304", + "x-open-dot", + 5, + "5", + "triangle-up", + 105, + "105", + "triangle-up-open", + 205, + "205", + "triangle-up-dot", + 305, + "305", + "triangle-up-open-dot", + 6, + "6", + "triangle-down", + 106, + "106", + "triangle-down-open", + 206, + "206", + "triangle-down-dot", + 306, + "306", + "triangle-down-open-dot", + 7, + "7", + "triangle-left", + 107, + "107", + "triangle-left-open", + 207, + "207", + "triangle-left-dot", + 307, + "307", + "triangle-left-open-dot", + 8, + "8", + "triangle-right", + 108, + "108", + "triangle-right-open", + 208, + "208", + "triangle-right-dot", + 308, + "308", + "triangle-right-open-dot", + 9, + "9", + "triangle-ne", + 109, + "109", + "triangle-ne-open", + 209, + "209", + "triangle-ne-dot", + 309, + "309", + "triangle-ne-open-dot", + 10, + "10", + "triangle-se", + 110, + "110", + "triangle-se-open", + 210, + "210", + "triangle-se-dot", + 310, + "310", + "triangle-se-open-dot", + 11, + "11", + "triangle-sw", + 111, + "111", + "triangle-sw-open", + 211, + "211", + "triangle-sw-dot", + 311, + "311", + "triangle-sw-open-dot", + 12, + "12", + "triangle-nw", + 112, + "112", + "triangle-nw-open", + 212, + "212", + "triangle-nw-dot", + 312, + "312", + "triangle-nw-open-dot", + 13, + "13", + "pentagon", + 113, + "113", + "pentagon-open", + 213, + "213", + "pentagon-dot", + 313, + "313", + "pentagon-open-dot", + 14, + "14", + "hexagon", + 114, + "114", + "hexagon-open", + 214, + "214", + "hexagon-dot", + 314, + "314", + "hexagon-open-dot", + 15, + "15", + "hexagon2", + 115, + "115", + "hexagon2-open", + 215, + "215", + "hexagon2-dot", + 315, + "315", + "hexagon2-open-dot", + 16, + "16", + "octagon", + 116, + "116", + "octagon-open", + 216, + "216", + "octagon-dot", + 316, + "316", + "octagon-open-dot", + 17, + "17", + "star", + 117, + "117", + "star-open", + 217, + "217", + "star-dot", + 317, + "317", + "star-open-dot", + 18, + "18", + "hexagram", + 118, + "118", + "hexagram-open", + 218, + "218", + "hexagram-dot", + 318, + "318", + "hexagram-open-dot", + 19, + "19", + "star-triangle-up", + 119, + "119", + "star-triangle-up-open", + 219, + "219", + "star-triangle-up-dot", + 319, + "319", + "star-triangle-up-open-dot", + 20, + "20", + "star-triangle-down", + 120, + "120", + "star-triangle-down-open", + 220, + "220", + "star-triangle-down-dot", + 320, + "320", + "star-triangle-down-open-dot", + 21, + "21", + "star-square", + 121, + "121", + "star-square-open", + 221, + "221", + "star-square-dot", + 321, + "321", + "star-square-open-dot", + 22, + "22", + "star-diamond", + 122, + "122", + "star-diamond-open", + 222, + "222", + "star-diamond-dot", + 322, + "322", + "star-diamond-open-dot", + 23, + "23", + "diamond-tall", + 123, + "123", + "diamond-tall-open", + 223, + "223", + "diamond-tall-dot", + 323, + "323", + "diamond-tall-open-dot", + 24, + "24", + "diamond-wide", + 124, + "124", + "diamond-wide-open", + 224, + "224", + "diamond-wide-dot", + 324, + "324", + "diamond-wide-open-dot", + 25, + "25", + "hourglass", + 125, + "125", + "hourglass-open", + 26, + "26", + "bowtie", + 126, + "126", + "bowtie-open", + 27, + "27", + "circle-cross", + 127, + "127", + "circle-cross-open", + 28, + "28", + "circle-x", + 128, + "128", + "circle-x-open", + 29, + "29", + "square-cross", + 129, + "129", + "square-cross-open", + 30, + "30", + "square-x", + 130, + "130", + "square-x-open", + 31, + "31", + "diamond-cross", + 131, + "131", + "diamond-cross-open", + 32, + "32", + "diamond-x", + 132, + "132", + "diamond-x-open", + 33, + "33", + "cross-thin", + 133, + "133", + "cross-thin-open", + 34, + "34", + "x-thin", + 134, + "134", + "x-thin-open", + 35, + "35", + "asterisk", + 135, + "135", + "asterisk-open", + 36, + "36", + "hash", + 136, + "136", + "hash-open", + 236, + "236", + "hash-dot", + 336, + "336", + "hash-open-dot", + 37, + "37", + "y-up", + 137, + "137", + "y-up-open", + 38, + "38", + "y-down", + 138, + "138", + "y-down-open", + 39, + "39", + "y-left", + 139, + "139", + "y-left-open", + 40, + "40", + "y-right", + 140, + "140", + "y-right-open", + 41, + "41", + "line-ew", + 141, + "141", + "line-ew-open", + 42, + "42", + "line-ns", + 142, + "142", + "line-ns-open", + 43, + "43", + "line-ne", + 143, + "143", + "line-ne-open", + 44, + "44", + "line-nw", + 144, + "144", + "line-nw-open", + 45, + "45", + "arrow-up", + 145, + "145", + "arrow-up-open", + 46, + "46", + "arrow-down", + 146, + "146", + "arrow-down-open", + 47, + "47", + "arrow-left", + 147, + "147", + "arrow-left-open", + 48, + "48", + "arrow-right", + 148, + "148", + "arrow-right-open", + 49, + "49", + "arrow-bar-up", + 149, + "149", + "arrow-bar-up-open", + 50, + "50", + "arrow-bar-down", + 150, + "150", + "arrow-bar-down-open", + 51, + "51", + "arrow-bar-left", + 151, + "151", + "arrow-bar-left-open", + 52, + "52", + "arrow-bar-right", + 152, + "152", + "arrow-bar-right-open" + ], + "dflt": "circle", + "arrayOk": true, + "editType": "calc", + "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name." + }, + "size": { + "valType": "number", + "min": 0, + "dflt": 6, + "arrayOk": true, + "editType": "calc", + "description": "Sets the marker size (in px)." + }, + "sizeref": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`." + }, + "sizemin": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points." + }, + "sizemode": { + "valType": "enumerated", + "values": [ + "diameter", + "area" + ], + "dflt": "diameter", + "editType": "calc", + "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "arrayOk": true, + "editType": "calc", + "description": "Sets the marker opacity." + }, + "line": { + "color": { + "valType": "color", + "arrayOk": true, + "editType": "calc", + "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "width": { + "valType": "number", + "min": 0, + "arrayOk": true, + "editType": "calc", + "description": "Sets the width (in px) of the lines bounding the marker points." + }, + "editType": "calc", + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + }, + "widthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for width .", + "editType": "none" + } + }, + "editType": "calc", + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + }, + "symbolsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for symbol .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "opacitysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for opacity .", + "editType": "none" + } + }, + "fill": { + "valType": "enumerated", + "values": [ + "none", + "tozeroy", + "tozerox", + "tonexty", + "tonextx", + "toself", + "tonext" + ], + "editType": "calc", + "description": "Sets the area to fill with a solid color. Defaults to *none* unless this trace is stacked, then it gets *tonexty* (*tonextx*) if `orientation` is *v* (*h*) Use with `fillcolor` if not *none*. *tozerox* and *tozeroy* fill to x=0 and y=0 respectively. *tonextx* and *tonexty* fill between the endpoints of this trace and the endpoints of the trace before it, connecting those endpoints with straight lines (to make a stacked area graph); if there is no trace before it, they behave like *tozerox* and *tozeroy*. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape. *tonext* fills the space between two traces if one completely encloses the other (eg consecutive contour lines), and behaves like *toself* if there is no trace before it. *tonext* should not be used if one trace does not enclose the other. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order.", + "dflt": "none" + }, + "fillcolor": { + "valType": "color", + "editType": "calc", + "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." + }, + "textposition": { + "valType": "enumerated", + "values": [ + "top left", + "top center", + "top right", + "middle left", + "middle center", + "middle right", + "bottom left", + "bottom center", + "bottom right" + ], + "dflt": "middle center", + "arrayOk": true, + "editType": "calc", + "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates." + }, + "textfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "calc", + "arrayOk": true + }, + "editType": "calc", + "description": "Sets the text font.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "r", + "theta", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "selected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "style", + "description": "Sets the marker opacity of selected points." + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the marker color of selected points." + }, + "size": { + "valType": "number", + "min": 0, + "editType": "style", + "description": "Sets the marker size of selected points." + }, + "editType": "style", + "role": "object" + }, + "textfont": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the text font color of selected points." + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "unselected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "style", + "description": "Sets the marker opacity of unselected points, applied only when a selection exists." + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the marker color of unselected points, applied only when a selection exists." + }, + "size": { + "valType": "number", + "min": 0, + "editType": "style", + "description": "Sets the marker size of unselected points, applied only when a selection exists." + }, + "editType": "style", + "role": "object" + }, + "textfont": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the text font color of unselected points, applied only when a selection exists." + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "subplot": { + "valType": "subplotid", + "dflt": "polar", + "editType": "calc", + "description": "Sets a reference between this trace's data coordinates and a polar subplot. If *polar* (the default value), the data refer to `layout.polar`. If *polar2*, the data refer to `layout.polar2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "rsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for r .", + "editType": "none" + }, + "thetasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for theta .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "texttemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + }, + "textpositionsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for textposition .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + } + } + }, + "barpolar": { + "meta": { + "hrName": "bar_polar", + "description": "The data visualized by the radial span of the bars is set in `r`" + }, + "categories": [ + "polar", + "bar", + "showLegend" + ], + "animatable": false, + "type": "barpolar", + "attributes": { + "type": "barpolar", + "visible": { + "valType": "enumerated", + "values": [ + true, + false, + "legendonly" + ], + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." + }, + "showlegend": { + "valType": "boolean", + "dflt": true, + "editType": "style", + "description": "Determines whether or not an item corresponding to this trace is shown in the legend." + }, + "legendgroup": { + "valType": "string", + "dflt": "", + "editType": "style", + "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "style", + "description": "Sets the opacity of the trace." + }, + "name": { + "valType": "string", + "editType": "style", + "description": "Sets the trace name. The trace name appear as the legend item and on hover." + }, + "uid": { + "valType": "string", + "editType": "plot", + "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." + }, + "ids": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type." + }, + "customdata": { + "valType": "data_array", + "editType": "calc", + "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." + }, + "selectedpoints": { + "valType": "any", + "editType": "calc", + "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of the hover labels for this trace", + "arrayOk": true + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of the hover labels for this trace.", + "arrayOk": true + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "arrayOk": true + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "arrayOk": true + }, + "color": { + "valType": "color", + "editType": "none", + "arrayOk": true + }, + "editType": "none", + "description": "Sets the font used in hover labels.", + "role": "object", + "familysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for family .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", + "arrayOk": true + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", + "arrayOk": true + }, + "editType": "none", + "role": "object", + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "bordercolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", + "editType": "none" + }, + "alignsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for align .", + "editType": "none" + }, + "namelengthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for namelength .", + "editType": "none" + } + }, + "stream": { + "token": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." + }, + "maxpoints": { + "valType": "number", + "min": 0, + "max": 10000, + "dflt": 500, + "editType": "calc", + "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." + }, + "editType": "calc", + "role": "object" + }, + "transforms": { + "items": { + "transform": { + "editType": "calc", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", + "role": "object" + } + }, + "role": "object" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." + }, + "r": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the radial coordinates" + }, + "theta": { + "valType": "data_array", + "editType": "calc+clearAxisTypes", + "description": "Sets the angular coordinates" + }, + "r0": { + "valType": "any", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "description": "Alternate to `r`. Builds a linear space of r coordinates. Use with `dr` where `r0` is the starting coordinate and `dr` the step." + }, + "dr": { + "valType": "number", + "dflt": 1, + "editType": "calc", + "description": "Sets the r coordinate step." + }, + "theta0": { + "valType": "any", + "dflt": 0, + "editType": "calc+clearAxisTypes", + "description": "Alternate to `theta`. Builds a linear space of theta coordinates. Use with `dtheta` where `theta0` is the starting coordinate and `dtheta` the step." + }, + "dtheta": { + "valType": "number", + "editType": "calc", + "description": "Sets the theta coordinate step. By default, the `dtheta` step equals the subplot's period divided by the length of the `r` coordinates." + }, + "thetaunit": { + "valType": "enumerated", + "values": [ + "radians", + "degrees", + "gradians" + ], + "dflt": "degrees", + "editType": "calc+clearAxisTypes", + "description": "Sets the unit of input *theta* values. Has an effect only when on *linear* angular axes." + }, + "base": { + "valType": "any", + "dflt": null, + "arrayOk": true, + "editType": "calc", + "description": "Sets where the bar base is drawn (in radial axis units). In *stack* barmode, traces that set *base* will be excluded and drawn in *overlay* mode instead." + }, + "offset": { + "valType": "number", + "dflt": null, + "arrayOk": true, + "editType": "calc", + "description": "Shifts the angular position where the bar is drawn (in *thetatunit* units)." + }, + "width": { + "valType": "number", + "dflt": null, + "min": 0, + "arrayOk": true, + "editType": "calc", + "description": "Sets the bar angular width (in *thetaunit* units)." + }, + "text": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "calc", + "description": "Sets hover text elements associated with each bar. If a single string, the same string appears over all bars. If an array of string, the items are mapped in order to the this trace's coordinates." + }, + "hovertext": { + "valType": "string", + "dflt": "", + "arrayOk": true, + "editType": "style", + "description": "Same as `text`." + }, + "marker": { + "line": { + "width": { + "valType": "number", + "min": 0, + "arrayOk": true, + "editType": "style", + "description": "Sets the width (in px) of the lines bounding the marker points.", + "dflt": 0 + }, + "editType": "calc", + "color": { + "valType": "color", + "arrayOk": true, + "editType": "style", + "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "role": "object", + "widthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for width .", + "editType": "none" + }, + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + } + }, + "editType": "calc", + "color": { + "valType": "color", + "arrayOk": true, + "editType": "style", + "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." + }, + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "colorbars" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "colorbars" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "colorbars" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "colorbars" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "colorbars" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "colorbars" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "colorbars" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "colorbars" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "colorbars" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "colorbars" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "colorbars", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "colorbars", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "colorbars", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "colorbars", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "colorbars" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "colorbars", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "colorbars", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "colorbars" + }, + { + "valType": "any", + "editType": "colorbars" + } + ], + "editType": "colorbars", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "colorbars", + "name": { + "valType": "string", + "editType": "colorbars", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "colorbars", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "colorbars", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "colorbars", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "colorbars", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars" + }, + "editType": "colorbars", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "colorbars" + } + }, + "editType": "colorbars", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "coloraxis": { + "valType": "subplotid", + "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", + "dflt": null, + "editType": "calc", + "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." + }, + "opacity": { + "valType": "number", + "arrayOk": true, + "dflt": 1, + "min": 0, + "max": 1, + "editType": "style", + "description": "Sets the opacity of the bars." + }, + "pattern": { + "shape": { + "valType": "enumerated", + "values": [ + "", + "/", + "\\", + "x", + "-", + "|", + "+", + "." + ], + "dflt": "", + "arrayOk": true, + "editType": "style", + "description": "Sets the shape of the pattern fill. By default, no pattern is used for filling the area." + }, + "bgcolor": { + "valType": "color", + "arrayOk": true, + "editType": "style", + "description": "Sets the background color of the pattern fill. Defaults to a transparent background." + }, + "size": { + "valType": "number", + "min": 0, + "dflt": 8, + "arrayOk": true, + "editType": "style", + "description": "Sets the size of unit squares of the pattern fill in pixels, which corresponds to the interval of repetition of the pattern." + }, + "solidity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.3, + "arrayOk": true, + "editType": "style", + "description": "Sets the solidity of the pattern fill. Solidity is roughly the fraction of the area filled by the pattern. Solidity of 0 shows only the background color without pattern and solidty of 1 shows only the foreground color without pattern." + }, + "editType": "style", + "role": "object", + "shapesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for shape .", + "editType": "none" + }, + "bgcolorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", + "editType": "none" + }, + "sizesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for size .", + "editType": "none" + }, + "soliditysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for solidity .", + "editType": "none" + } + }, + "role": "object", + "colorsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for color .", + "editType": "none" + }, + "opacitysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for opacity .", + "editType": "none" + } + }, + "hoverinfo": { + "valType": "flaglist", + "flags": [ + "r", + "theta", + "text", + "name" + ], + "extras": [ + "all", + "none", + "skip" + ], + "arrayOk": true, + "dflt": "all", + "editType": "none", + "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." + }, + "hovertemplate": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", + "arrayOk": true + }, + "selected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "style", + "description": "Sets the marker opacity of selected points." + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the marker color of selected points." + }, + "editType": "style", + "role": "object" + }, + "textfont": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the text font color of selected points." + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "unselected": { + "marker": { + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "style", + "description": "Sets the marker opacity of unselected points, applied only when a selection exists." + }, + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the marker color of unselected points, applied only when a selection exists." + }, + "editType": "style", + "role": "object" + }, + "textfont": { + "color": { + "valType": "color", + "editType": "style", + "description": "Sets the text font color of unselected points, applied only when a selection exists." + }, + "editType": "style", + "role": "object" + }, + "editType": "style", + "role": "object" + }, + "subplot": { + "valType": "subplotid", + "dflt": "polar", + "editType": "calc", + "description": "Sets a reference between this trace's data coordinates and a polar subplot. If *polar* (the default value), the data refer to `layout.polar`. If *polar2*, the data refer to `layout.polar2`, and so on." + }, + "idssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ids .", + "editType": "none" + }, + "customdatasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for customdata .", + "editType": "none" + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + }, + "rsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for r .", + "editType": "none" + }, + "thetasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for theta .", + "editType": "none" + }, + "basesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for base .", + "editType": "none" + }, + "offsetsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for offset .", + "editType": "none" + }, + "widthsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for width .", + "editType": "none" + }, + "textsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for text .", + "editType": "none" + }, + "hovertextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertext .", + "editType": "none" + }, + "hoverinfosrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", + "editType": "none" + }, + "hovertemplatesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", + "editType": "none" + } + }, + "layoutAttributes": { + "barmode": { + "valType": "enumerated", + "values": [ + "stack", + "overlay" + ], + "dflt": "stack", + "editType": "calc", + "description": "Determines how bars at the same location coordinate are displayed on the graph. With *stack*, the bars are stacked on top of one another With *overlay*, the bars are plotted over one another, you might need to an *opacity* to see multiple bars." + }, + "bargap": { + "valType": "number", + "dflt": 0.1, + "min": 0, + "max": 1, + "editType": "calc", + "description": "Sets the gap between bars of adjacent location coordinates. Values are unitless, they represent fractions of the minimum difference in bar positions in the data." + } + } + } + }, + "layout": { + "layoutAttributes": { + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "dflt": "\"Open Sans\", verdana, arial, sans-serif" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc", + "dflt": 12 + }, + "color": { + "valType": "color", + "editType": "calc", + "dflt": "#444" + }, + "editType": "calc", + "description": "Sets the global font. Note that fonts used in traces and other layout components inherit from the global font.", + "role": "object" + }, + "title": { + "text": { + "valType": "string", + "editType": "layoutstyle", + "description": "Sets the plot's title. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "layoutstyle", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "layoutstyle" + }, + "color": { + "valType": "color", + "editType": "layoutstyle" + }, + "editType": "layoutstyle", + "description": "Sets the title font. Note that the title's font used to be customized by the now deprecated `titlefont` attribute.", + "role": "object" + }, + "xref": { + "valType": "enumerated", + "dflt": "container", + "values": [ + "container", + "paper" + ], + "editType": "layoutstyle", + "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only." + }, + "yref": { + "valType": "enumerated", + "dflt": "container", + "values": [ + "container", + "paper" + ], + "editType": "layoutstyle", + "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only." + }, + "x": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.5, + "editType": "layoutstyle", + "description": "Sets the x position with respect to `xref` in normalized coordinates from *0* (left) to *1* (right)." + }, + "y": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": "auto", + "editType": "layoutstyle", + "description": "Sets the y position with respect to `yref` in normalized coordinates from *0* (bottom) to *1* (top). *auto* places the baseline of the title onto the vertical center of the top margin." + }, + "xanchor": { + "valType": "enumerated", + "dflt": "auto", + "values": [ + "auto", + "left", + "center", + "right" + ], + "editType": "layoutstyle", + "description": "Sets the title's horizontal alignment with respect to its x position. *left* means that the title starts at x, *right* means that the title ends at x and *center* means that the title's center is at x. *auto* divides `xref` by three and calculates the `xanchor` value automatically based on the value of `x`." + }, + "yanchor": { + "valType": "enumerated", + "dflt": "auto", + "values": [ + "auto", + "top", + "middle", + "bottom" + ], + "editType": "layoutstyle", + "description": "Sets the title's vertical alignment with respect to its y position. *top* means that the title's cap line is at y, *bottom* means that the title's baseline is at y and *middle* means that the title's midline is at y. *auto* divides `yref` by three and calculates the `yanchor` value automatically based on the value of `y`." + }, + "pad": { + "t": { + "valType": "number", + "dflt": 0, + "editType": "layoutstyle", + "description": "The amount of padding (in px) along the top of the component." + }, + "r": { + "valType": "number", + "dflt": 0, + "editType": "layoutstyle", + "description": "The amount of padding (in px) on the right side of the component." + }, + "b": { + "valType": "number", + "dflt": 0, + "editType": "layoutstyle", + "description": "The amount of padding (in px) along the bottom of the component." + }, + "l": { + "valType": "number", + "dflt": 0, + "editType": "layoutstyle", + "description": "The amount of padding (in px) on the left side of the component." + }, + "editType": "layoutstyle", + "description": "Sets the padding of the title. Each padding value only applies when the corresponding `xanchor`/`yanchor` value is set accordingly. E.g. for left padding to take effect, `xanchor` must be set to *left*. The same rule applies if `xanchor`/`yanchor` is determined automatically. Padding is muted if the respective anchor value is *middle*/*center*.", + "role": "object" + }, + "editType": "layoutstyle", + "role": "object" + }, + "uniformtext": { + "mode": { + "valType": "enumerated", + "values": [ + false, + "hide", + "show" + ], + "dflt": false, + "editType": "plot", + "description": "Determines how the font size for various text elements are uniformed between each trace type. If the computed text sizes were smaller than the minimum size defined by `uniformtext.minsize` using *hide* option hides the text; and using *show* option shows the text without further downscaling. Please note that if the size defined by `minsize` is greater than the font size defined by trace, then the `minsize` is used." + }, + "minsize": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "plot", + "description": "Sets the minimum text size between traces of the same type." + }, + "editType": "plot", + "role": "object" + }, + "autosize": { + "valType": "boolean", + "dflt": false, + "editType": "none", + "description": "Determines whether or not a layout width or height that has been left undefined by the user is initialized on each relayout. Note that, regardless of this attribute, an undefined layout width or height is always initialized on the first call to plot." + }, + "width": { + "valType": "number", + "min": 10, + "dflt": 700, + "editType": "plot", + "description": "Sets the plot's width (in px)." + }, + "height": { + "valType": "number", + "min": 10, + "dflt": 450, + "editType": "plot", + "description": "Sets the plot's height (in px)." + }, + "margin": { + "l": { + "valType": "number", + "min": 0, + "dflt": 80, + "editType": "plot", + "description": "Sets the left margin (in px)." + }, + "r": { + "valType": "number", + "min": 0, + "dflt": 80, + "editType": "plot", + "description": "Sets the right margin (in px)." + }, + "t": { + "valType": "number", + "min": 0, + "dflt": 100, + "editType": "plot", + "description": "Sets the top margin (in px)." + }, + "b": { + "valType": "number", + "min": 0, + "dflt": 80, + "editType": "plot", + "description": "Sets the bottom margin (in px)." + }, + "pad": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "plot", + "description": "Sets the amount of padding (in px) between the plotting area and the axis lines" + }, + "autoexpand": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Turns on/off margin expansion computations. Legends, colorbars, updatemenus, sliders, axis rangeselector and rangeslider are allowed to push the margins by defaults." + }, + "editType": "plot", + "role": "object" + }, + "computed": { + "valType": "any", + "editType": "none", + "description": "Placeholder for exporting automargin-impacting values namely `margin.t`, `margin.b`, `margin.l` and `margin.r` in *full-json* mode." + }, + "paper_bgcolor": { + "valType": "color", + "dflt": "#fff", + "editType": "plot", + "description": "Sets the background color of the paper where the graph is drawn." + }, + "plot_bgcolor": { + "valType": "color", + "dflt": "#fff", + "editType": "layoutstyle", + "description": "Sets the background color of the plotting area in-between x and y axes." + }, + "autotypenumbers": { + "valType": "enumerated", + "values": [ + "convert types", + "strict" + ], + "dflt": "convert types", + "editType": "calc", + "description": "Using *strict* a numeric string in trace data is not converted to a number. Using *convert types* a numeric string in trace data may be treated as a number during automatic axis `type` detection. This is the default value; however it could be overridden for individual axes." + }, + "separators": { + "valType": "string", + "editType": "plot", + "description": "Sets the decimal and thousand separators. For example, *. * puts a '.' before decimals and a space between thousands. In English locales, dflt is *.,* but other locales may alter this default." + }, + "hidesources": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Determines whether or not a text link citing the data source is placed at the bottom-right cored of the figure. Has only an effect only on graphs that have been generated via forked graphs from the Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise)." + }, + "showlegend": { + "valType": "boolean", + "editType": "legend", + "description": "Determines whether or not a legend is drawn. Default is `true` if there is a trace to show and any of these: a) Two or more traces would by default be shown in the legend. b) One pie trace is shown in the legend. c) One trace is explicitly given with `showlegend: true`." + }, + "colorway": { + "valType": "colorlist", + "dflt": [ + "#1f77b4", + "#ff7f0e", + "#2ca02c", + "#d62728", + "#9467bd", + "#8c564b", + "#e377c2", + "#7f7f7f", + "#bcbd22", + "#17becf" + ], + "editType": "calc", + "description": "Sets the default trace colors." + }, + "datarevision": { + "valType": "any", + "editType": "calc", + "description": "If provided, a changed value tells `Plotly.react` that one or more data arrays has changed. This way you can modify arrays in-place rather than making a complete new copy for an incremental change. If NOT provided, `Plotly.react` assumes that data arrays are being treated as immutable, thus any data array with a different identity from its predecessor contains new data." + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Used to allow user interactions with the plot to persist after `Plotly.react` calls that are unaware of these interactions. If `uirevision` is omitted, or if it is given and it changed from the previous `Plotly.react` call, the exact new figure is used. If `uirevision` is truthy and did NOT change, any attribute that has been affected by user interactions and did not receive a different value in the new figure will keep the interaction value. `layout.uirevision` attribute serves as the default for `uirevision` attributes in various sub-containers. For finer control you can set these sub-attributes directly. For example, if your app separately controls the data on the x and y axes you might set `xaxis.uirevision=*time*` and `yaxis.uirevision=*cost*`. Then if only the y data is changed, you can update `yaxis.uirevision=*quantity*` and the y axis range will reset but the x axis range will retain any user-driven zoom." + }, + "editrevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of user-driven changes in `editable: true` configuration, other than trace names and axis titles. Defaults to `layout.uirevision`." + }, + "selectionrevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of user-driven changes in selected points from all traces." + }, + "template": { + "valType": "any", + "editType": "calc", + "description": "Default attributes to be applied to the plot. Templates can be created from existing plots using `Plotly.makeTemplate`, or created manually. They should be objects with format: `{layout: layoutTemplate, data: {[type]: [traceTemplate, ...]}, ...}` `layoutTemplate` and `traceTemplate` are objects matching the attribute structure of `layout` and a data trace. Trace templates are applied cyclically to traces of each type. Container arrays (eg `annotations`) have special handling: An object ending in `defaults` (eg `annotationdefaults`) is applied to each array item. But if an item has a `templateitemname` key we look in the template array for an item with matching `name` and apply that instead. If no matching `name` is found we mark the item invisible. Any named template item not referenced is appended to the end of the array, so you can use this for a watermark annotation or a logo image, for example. To omit one of these items on the plot, make an item with matching `templateitemname` and `visible: false`." + }, + "newshape": { + "line": { + "color": { + "valType": "color", + "editType": "none", + "description": "Sets the line color. By default uses either dark grey or white to increase contrast with background color." + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 4, + "editType": "none", + "description": "Sets the line width (in px)." + }, + "dash": { + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ], + "dflt": "solid", + "editType": "none", + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." + }, + "editType": "none", + "role": "object" + }, + "fillcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "editType": "none", + "description": "Sets the color filling new shapes' interior. Please note that if using a fillcolor with alpha greater than half, drag inside the active shape starts moving the shape underneath, otherwise a new shape could be started over." + }, + "fillrule": { + "valType": "enumerated", + "values": [ + "evenodd", + "nonzero" + ], + "dflt": "evenodd", + "editType": "none", + "description": "Determines the path's interior. For more info please visit https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill-rule" + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "none", + "description": "Sets the opacity of new shapes." + }, + "layer": { + "valType": "enumerated", + "values": [ + "below", + "above" + ], + "dflt": "above", + "editType": "none", + "description": "Specifies whether new shapes are drawn below or above traces." + }, + "drawdirection": { + "valType": "enumerated", + "values": [ + "ortho", + "horizontal", + "vertical", + "diagonal" + ], + "dflt": "diagonal", + "editType": "none", + "description": "When `dragmode` is set to *drawrect*, *drawline* or *drawcircle* this limits the drag to be horizontal, vertical or diagonal. Using *diagonal* there is no limit e.g. in drawing lines in any direction. *ortho* limits the draw to be either horizontal or vertical. *horizontal* allows horizontal extend. *vertical* allows vertical extend." + }, + "editType": "none", + "role": "object" + }, + "activeshape": { + "fillcolor": { + "valType": "color", + "dflt": "rgb(255,0,255)", + "editType": "none", + "description": "Sets the color filling the active shape' interior." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0.5, + "editType": "none", + "description": "Sets the opacity of the active shape." + }, + "editType": "none", + "role": "object" + }, + "meta": { + "valType": "any", + "arrayOk": true, + "editType": "plot", + "description": "Assigns extra meta information that can be used in various `text` attributes. Attributes such as the graph, axis and colorbar `title.text`, annotation `text` `trace.name` in legend items, `rangeselector`, `updatemenus` and `sliders` `label` text all support `meta`. One can access `meta` fields using template strings: `%{meta[i]}` where `i` is the index of the `meta` item in question. `meta` can also be an object for example `{key: value}` which can be accessed %{meta[key]}." + }, + "transition": { + "duration": { + "valType": "number", + "min": 0, + "dflt": 500, + "editType": "none", + "description": "The duration of the transition, in milliseconds. If equal to zero, updates are synchronous." + }, + "easing": { + "valType": "enumerated", + "dflt": "cubic-in-out", + "values": [ + "linear", + "quad", + "cubic", + "sin", + "exp", + "circle", + "elastic", + "back", + "bounce", + "linear-in", + "quad-in", + "cubic-in", + "sin-in", + "exp-in", + "circle-in", + "elastic-in", + "back-in", + "bounce-in", + "linear-out", + "quad-out", + "cubic-out", + "sin-out", + "exp-out", + "circle-out", + "elastic-out", + "back-out", + "bounce-out", + "linear-in-out", + "quad-in-out", + "cubic-in-out", + "sin-in-out", + "exp-in-out", + "circle-in-out", + "elastic-in-out", + "back-in-out", + "bounce-in-out" + ], + "editType": "none", + "description": "The easing function used for the transition" + }, + "ordering": { + "valType": "enumerated", + "values": [ + "layout first", + "traces first" + ], + "dflt": "layout first", + "editType": "none", + "description": "Determines whether the figure's layout or traces smoothly transitions during updates that make both traces and layout change." + }, + "description": "Sets transition options used during Plotly.react updates.", + "editType": "none", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "editType": "layoutstyle", + "description": "Value of `title` is no longer a simple *string* but a set of sub-attributes. To set the contents of the title, please use `title.text` now." + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "layoutstyle", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "layoutstyle" + }, + "color": { + "valType": "color", + "editType": "layoutstyle" + }, + "editType": "layoutstyle", + "description": "Former `titlefont` is now the sub-attribute `font` of `title`. To customize title font properties, please use `title.font` now." + } + }, + "clickmode": { + "valType": "flaglist", + "flags": [ + "event", + "select" + ], + "dflt": "event", + "editType": "plot", + "extras": [ + "none" + ], + "description": "Determines the mode of single click interactions. *event* is the default value and emits the `plotly_click` event. In addition this mode emits the `plotly_selected` event in drag modes *lasso* and *select*, but with no event data attached (kept for compatibility reasons). The *select* flag enables selecting single data points via click. This mode also supports persistent selections, meaning that pressing Shift while clicking, adds to / subtracts from an existing selection. *select* with `hovermode`: *x* can be confusing, consider explicitly setting `hovermode`: *closest* when using this feature. Selection events are sent accordingly as long as *event* flag is set as well. When the *event* flag is missing, `plotly_click` and `plotly_selected` events are not fired." + }, + "dragmode": { + "valType": "enumerated", + "values": [ + "zoom", + "pan", + "select", + "lasso", + "drawclosedpath", + "drawopenpath", + "drawline", + "drawrect", + "drawcircle", + "orbit", + "turntable", + false + ], + "dflt": "zoom", + "editType": "modebar", + "description": "Determines the mode of drag interactions. *select* and *lasso* apply only to scatter traces with markers or text. *orbit* and *turntable* apply only to 3D scenes." + }, + "hovermode": { + "valType": "enumerated", + "values": [ + "x", + "y", + "closest", + false, + "x unified", + "y unified" + ], + "dflt": "closest", + "editType": "modebar", + "description": "Determines the mode of hover interactions. If *closest*, a single hoverlabel will appear for the *closest* point within the `hoverdistance`. If *x* (or *y*), multiple hoverlabels will appear for multiple points at the *closest* x- (or y-) coordinate within the `hoverdistance`, with the caveat that no more than one hoverlabel will appear per trace. If *x unified* (or *y unified*), a single hoverlabel will appear multiple points at the closest x- (or y-) coordinate within the `hoverdistance` with the caveat that no more than one hoverlabel will appear per trace. In this mode, spikelines are enabled by default perpendicular to the specified axis. If false, hover interactions are disabled." + }, + "hoverdistance": { + "valType": "integer", + "min": -1, + "dflt": 20, + "editType": "none", + "description": "Sets the default distance (in pixels) to look for data to add hover labels (-1 means no cutoff, 0 means no looking for data). This is only a real distance for hovering on point-like objects, like scatter points. For area-like objects (bars, scatter fills, etc) hovering is on inside the area and off outside, but these objects will not supersede hover on point-like objects in case of conflict." + }, + "spikedistance": { + "valType": "integer", + "min": -1, + "dflt": -1, + "editType": "none", + "description": "Sets the default distance (in pixels) to look for data to draw spikelines to (-1 means no cutoff, 0 means no looking for data). As with hoverdistance, distance does not apply to area-like objects. In addition, some objects can be hovered on but will not generate spikelines, such as scatter fills." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "none", + "description": "Sets the background color of all hover labels on graph" + }, + "bordercolor": { + "valType": "color", + "editType": "none", + "description": "Sets the border color of all hover labels on graph." + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "none", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "dflt": "Arial, sans-serif" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "none", + "dflt": 13 + }, + "color": { + "valType": "color", + "editType": "none" + }, + "editType": "none", + "description": "Sets the default hover label font used by all traces on the graph.", + "role": "object" + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "right", + "auto" + ], + "dflt": "auto", + "editType": "none", + "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines" + }, + "namelength": { + "valType": "integer", + "min": -1, + "dflt": 15, + "editType": "none", + "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis." + }, + "editType": "none", + "role": "object" + }, + "selectdirection": { + "valType": "enumerated", + "values": [ + "h", + "v", + "d", + "any" + ], + "dflt": "any", + "description": "When `dragmode` is set to *select*, this limits the selection of the drag to horizontal, vertical or diagonal. *h* only allows horizontal selection, *v* only vertical, *d* only diagonal and *any* sets no limit.", + "editType": "none" + }, + "grid": { + "rows": { + "valType": "integer", + "min": 1, + "editType": "plot", + "description": "The number of rows in the grid. If you provide a 2D `subplots` array or a `yaxes` array, its length is used as the default. But it's also possible to have a different length, if you want to leave a row at the end for non-cartesian subplots." + }, + "roworder": { + "valType": "enumerated", + "values": [ + "top to bottom", + "bottom to top" + ], + "dflt": "top to bottom", + "editType": "plot", + "description": "Is the first row the top or the bottom? Note that columns are always enumerated from left to right." + }, + "columns": { + "valType": "integer", + "min": 1, + "editType": "plot", + "description": "The number of columns in the grid. If you provide a 2D `subplots` array, the length of its longest row is used as the default. If you give an `xaxes` array, its length is used as the default. But it's also possible to have a different length, if you want to leave a row at the end for non-cartesian subplots." + }, + "subplots": { + "valType": "info_array", + "freeLength": true, + "dimensions": 2, + "items": { + "valType": "enumerated", + "values": [ + "/^x([2-9]|[1-9][0-9]+)?y([2-9]|[1-9][0-9]+)?$/", + "" + ], + "editType": "plot" + }, + "editType": "plot", + "description": "Used for freeform grids, where some axes may be shared across subplots but others are not. Each entry should be a cartesian subplot id, like *xy* or *x3y2*, or ** to leave that cell empty. You may reuse x axes within the same column, and y axes within the same row. Non-cartesian subplots and traces that support `domain` can place themselves in this grid separately using the `gridcell` attribute." + }, + "xaxes": { + "valType": "info_array", + "freeLength": true, + "items": { + "valType": "enumerated", + "values": [ + "/^x([2-9]|[1-9][0-9]+)?( domain)?$/", + "" + ], + "editType": "plot" + }, + "editType": "plot", + "description": "Used with `yaxes` when the x and y axes are shared across columns and rows. Each entry should be an x axis id like *x*, *x2*, etc., or ** to not put an x axis in that column. Entries other than ** must be unique. Ignored if `subplots` is present. If missing but `yaxes` is present, will generate consecutive IDs." + }, + "yaxes": { + "valType": "info_array", + "freeLength": true, + "items": { + "valType": "enumerated", + "values": [ + "/^y([2-9]|[1-9][0-9]+)?( domain)?$/", + "" + ], + "editType": "plot" + }, + "editType": "plot", + "description": "Used with `yaxes` when the x and y axes are shared across columns and rows. Each entry should be an y axis id like *y*, *y2*, etc., or ** to not put a y axis in that row. Entries other than ** must be unique. Ignored if `subplots` is present. If missing but `xaxes` is present, will generate consecutive IDs." + }, + "pattern": { + "valType": "enumerated", + "values": [ + "independent", + "coupled" + ], + "dflt": "coupled", + "editType": "plot", + "description": "If no `subplots`, `xaxes`, or `yaxes` are given but we do have `rows` and `columns`, we can generate defaults using consecutive axis IDs, in two ways: *coupled* gives one x axis per column and one y axis per row. *independent* uses a new xy pair for each cell, left-to-right across each row then iterating rows according to `roworder`." + }, + "xgap": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot", + "description": "Horizontal space between grid cells, expressed as a fraction of the total width available to one cell. Defaults to 0.1 for coupled-axes grids and 0.2 for independent grids." + }, + "ygap": { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot", + "description": "Vertical space between grid cells, expressed as a fraction of the total height available to one cell. Defaults to 0.1 for coupled-axes grids and 0.3 for independent grids." + }, + "domain": { + "x": { + "valType": "info_array", + "editType": "plot", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the horizontal domain of this grid subplot (in plot fraction). The first and last cells end exactly at the domain edges, with no grout around the edges." + }, + "y": { + "valType": "info_array", + "editType": "plot", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the vertical domain of this grid subplot (in plot fraction). The first and last cells end exactly at the domain edges, with no grout around the edges." + }, + "editType": "plot", + "role": "object" + }, + "xside": { + "valType": "enumerated", + "values": [ + "bottom", + "bottom plot", + "top plot", + "top" + ], + "dflt": "bottom plot", + "editType": "plot", + "description": "Sets where the x axis labels and titles go. *bottom* means the very bottom of the grid. *bottom plot* is the lowest plot that each x axis is used in. *top* and *top plot* are similar." + }, + "yside": { + "valType": "enumerated", + "values": [ + "left", + "left plot", + "right plot", + "right" + ], + "dflt": "left plot", + "editType": "plot", + "description": "Sets where the y axis labels and titles go. *left* means the very left edge of the grid. *left plot* is the leftmost plot that each y axis is used in. *right* and *right plot* are similar." + }, + "editType": "plot", + "role": "object" + }, + "calendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the default calendar system to use for interpreting and displaying dates throughout the plot." + }, + "xaxis": { + "visible": { + "valType": "boolean", + "editType": "plot", + "description": "A single toggle to hide the axis while preserving interaction like dragging. Default is true when a cheater plot is present on the axis, otherwise false" + }, + "color": { + "valType": "color", + "dflt": "#444", + "editType": "ticks", + "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." + }, + "title": { + "text": { + "valType": "string", + "editType": "ticks", + "description": "Sets the title of this axis. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "ticks", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "ticks" + }, + "color": { + "valType": "color", + "editType": "ticks" + }, + "editType": "ticks", + "description": "Sets this axis' title font. Note that the title's font used to be customized by the now deprecated `titlefont` attribute.", + "role": "object" + }, + "standoff": { + "valType": "number", + "min": 0, + "editType": "ticks", + "description": "Sets the standoff distance (in px) between the axis labels and the title text The default value is a function of the axis tick labels, the title `font.size` and the axis `linewidth`. Note that the axis title position is always constrained within the margins, so the actual standoff distance is always less than the set or default value. By setting `standoff` and turning on `automargin`, plotly.js will push the margins to fit the axis title at given standoff distance." + }, + "editType": "ticks", + "role": "object" + }, + "type": { + "valType": "enumerated", + "values": [ + "-", + "linear", + "log", + "date", + "category", + "multicategory" + ], + "dflt": "-", + "editType": "calc", + "_noTemplating": true, + "description": "Sets the axis type. By default, plotly attempts to determined the axis type by looking into the data of the traces that referenced the axis in question." + }, + "autotypenumbers": { + "valType": "enumerated", + "values": [ + "convert types", + "strict" + ], + "dflt": "convert types", + "editType": "calc", + "description": "Using *strict* a numeric string in trace data is not converted to a number. Using *convert types* a numeric string in trace data may be treated as a number during automatic axis `type` detection. Defaults to layout.autotypenumbers." + }, + "autorange": { + "valType": "enumerated", + "values": [ + true, + false, + "reversed" + ], + "dflt": true, + "editType": "axrange", + "impliedEdits": {}, + "description": "Determines whether or not the range of this axis is computed in relation to the input data. See `rangemode` for more info. If `range` is provided, then `autorange` is set to *false*." + }, + "rangemode": { + "valType": "enumerated", + "values": [ + "normal", + "tozero", + "nonnegative" + ], + "dflt": "normal", + "editType": "plot", + "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes." + }, + "range": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "axrange", + "impliedEdits": { + "^autorange": false + }, + "anim": true + }, + { + "valType": "any", + "editType": "axrange", + "impliedEdits": { + "^autorange": false + }, + "anim": true + } + ], + "editType": "axrange", + "impliedEdits": { + "autorange": false + }, + "anim": true, + "description": "Sets the range of this axis. If the axis `type` is *log*, then you must take the log of your desired range (e.g. to set the range from 1 to 100, set the range from 0 to 2). If the axis `type` is *date*, it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is *category*, it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "fixedrange": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not this axis is zoom-able. If true, then zoom is disabled." + }, + "scaleanchor": { + "valType": "enumerated", + "values": [ + "/^x([2-9]|[1-9][0-9]+)?( domain)?$/", + "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" + ], + "editType": "plot", + "description": "If set to another axis id (e.g. `x2`, `y`), the range of this axis changes together with the range of the corresponding axis such that the scale of pixels per unit is in a constant ratio. Both axes are still zoomable, but when you zoom one, the other will zoom the same amount, keeping a fixed midpoint. `constrain` and `constraintoward` determine how we enforce the constraint. You can chain these, ie `yaxis: {scaleanchor: *x*}, xaxis2: {scaleanchor: *y*}` but you can only link axes of the same `type`. The linked axis can have the opposite letter (to constrain the aspect ratio) or the same letter (to match scales across subplots). Loops (`yaxis: {scaleanchor: *x*}, xaxis: {scaleanchor: *y*}` or longer) are redundant and the last constraint encountered will be ignored to avoid possible inconsistent constraints via `scaleratio`. Note that setting axes simultaneously in both a `scaleanchor` and a `matches` constraint is currently forbidden." + }, + "scaleratio": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "If this axis is linked to another by `scaleanchor`, this determines the pixel to unit scale ratio. For example, if this value is 10, then every unit on this axis spans 10 times the number of pixels as a unit on the linked axis. Use this for example to create an elevation profile where the vertical scale is exaggerated a fixed amount with respect to the horizontal." + }, + "constrain": { + "valType": "enumerated", + "values": [ + "range", + "domain" + ], + "editType": "plot", + "description": "If this axis needs to be compressed (either due to its own `scaleanchor` and `scaleratio` or those of the other axis), determines how that happens: by increasing the *range*, or by decreasing the *domain*. Default is *domain* for axes containing image traces, *range* otherwise." + }, + "constraintoward": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right", + "top", + "middle", + "bottom" + ], + "editType": "plot", + "description": "If this axis needs to be compressed (either due to its own `scaleanchor` and `scaleratio` or those of the other axis), determines which direction we push the originally specified plot area. Options are *left*, *center* (default), and *right* for x axes, and *top*, *middle* (default), and *bottom* for y axes." + }, + "matches": { + "valType": "enumerated", + "values": [ + "/^x([2-9]|[1-9][0-9]+)?( domain)?$/", + "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" + ], + "editType": "calc", + "description": "If set to another axis id (e.g. `x2`, `y`), the range of this axis will match the range of the corresponding axis in data-coordinates space. Moreover, matching axes share auto-range values, category lists and histogram auto-bins. Note that setting axes simultaneously in both a `scaleanchor` and a `matches` constraint is currently forbidden. Moreover, note that matching axes must have the same `type`." + }, + "rangebreaks": { + "items": { + "rangebreak": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether this axis rangebreak is enabled or disabled. Please note that `rangebreaks` only work for *date* axis type." + }, + "bounds": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "calc" + }, + { + "valType": "any", + "editType": "calc" + } + ], + "editType": "calc", + "description": "Sets the lower and upper bounds of this axis rangebreak. Can be used with `pattern`." + }, + "pattern": { + "valType": "enumerated", + "values": [ + "day of week", + "hour", + "" + ], + "editType": "calc", + "description": "Determines a pattern on the time line that generates breaks. If *day of week* - days of the week in English e.g. 'Sunday' or `sun` (matching is case-insensitive and considers only the first three characters), as well as Sunday-based integers between 0 and 6. If *hour* - hour (24-hour clock) as decimal numbers between 0 and 24. for more info. Examples: - { pattern: 'day of week', bounds: [6, 1] } or simply { bounds: ['sat', 'mon'] } breaks from Saturday to Monday (i.e. skips the weekends). - { pattern: 'hour', bounds: [17, 8] } breaks from 5pm to 8am (i.e. skips non-work hours)." + }, + "values": { + "valType": "info_array", + "freeLength": true, + "editType": "calc", + "items": { + "valType": "any", + "editType": "calc" + }, + "description": "Sets the coordinate values corresponding to the rangebreaks. An alternative to `bounds`. Use `dvalue` to set the size of the values along the axis." + }, + "dvalue": { + "valType": "number", + "editType": "calc", + "min": 0, + "dflt": 86400000, + "description": "Sets the size of each `values` item. The default is one day in milliseconds." + }, + "editType": "calc", + "name": { + "valType": "string", + "editType": "none", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "calc", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "ticks", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "ticks", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "ticks", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "ticks", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "ticks", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "ticks", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "ticks", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines." + }, + "tickson": { + "valType": "enumerated", + "values": [ + "labels", + "boundaries" + ], + "dflt": "labels", + "editType": "ticks", + "description": "Determines where ticks and grid lines are drawn with respect to their corresponding tick labels. Only has an effect for axes of `type` *category* or *multicategory*. When set to *boundaries*, ticks and grid lines are drawn half a category to the left/bottom of labels." + }, + "ticklabelmode": { + "valType": "enumerated", + "values": [ + "instant", + "period" + ], + "dflt": "instant", + "editType": "ticks", + "description": "Determines where tick labels are drawn with respect to their corresponding ticks and grid lines. Only has an effect for axes of `type` *date* When set to *period*, tick labels are drawn in the middle of the period between ticks." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside left", + "inside left", + "outside right", + "inside right", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "editType": "calc", + "description": "Determines where tick labels are drawn with respect to the axis Please note that top or bottom has no effect on x axes or when `ticklabelmode` is set to *period*. Similarly left or right has no effect on y axes or when `ticklabelmode` is set to *period*. Has no effect on *multicategory* axes or when `tickson` is set to *boundaries*. When used on axes linked by `matches` or `scaleanchor`, no extra padding for inside labels would be added by autorange, so that the scales could match." + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "calc", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. Otherwise on *category* and *multicategory* axes the default is *allow*. In other cases the default is *hide past div*." + }, + "mirror": { + "valType": "enumerated", + "values": [ + true, + "ticks", + false, + "all", + "allticks" + ], + "dflt": false, + "editType": "ticks+layoutstyle", + "description": "Determines if the axis lines or/and ticks are mirrored to the opposite side of the plotting area. If *true*, the axis lines are mirrored. If *ticks*, the axis lines and ticks are mirrored. If *false*, mirroring is disable. If *all*, axis lines are mirrored on all shared-axes subplots. If *allticks*, axis lines and ticks are mirrored on all shared-axes subplots." + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "ticks", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "ticks", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "ticks", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "ticks", + "description": "Determines whether or not the tick labels are drawn." + }, + "automargin": { + "valType": "boolean", + "dflt": false, + "editType": "ticks", + "description": "Determines whether long tick labels automatically grow the figure margins." + }, + "showspikes": { + "valType": "boolean", + "dflt": false, + "editType": "modebar", + "description": "Determines whether or not spikes (aka droplines) are drawn for this axis. Note: This only takes affect when hovermode = closest" + }, + "spikecolor": { + "valType": "color", + "dflt": null, + "editType": "none", + "description": "Sets the spike color. If undefined, will use the series color" + }, + "spikethickness": { + "valType": "number", + "dflt": 3, + "editType": "none", + "description": "Sets the width (in px) of the zero line." + }, + "spikedash": { + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ], + "dflt": "dash", + "editType": "none", + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." + }, + "spikemode": { + "valType": "flaglist", + "flags": [ + "toaxis", + "across", + "marker" + ], + "dflt": "toaxis", + "editType": "none", + "description": "Determines the drawing mode for the spike line If *toaxis*, the line is drawn from the data point to the axis the series is plotted on. If *across*, the line is drawn across the entire plot area, and supercedes *toaxis*. If *marker*, then a marker dot is drawn on the axis the series is plotted on" + }, + "spikesnap": { + "valType": "enumerated", + "values": [ + "data", + "cursor", + "hovered data" + ], + "dflt": "hovered data", + "editType": "none", + "description": "Determines whether spikelines are stuck to the cursor or to the closest datapoints." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "ticks", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "ticks" + }, + "color": { + "valType": "color", + "editType": "ticks" + }, + "editType": "ticks", + "description": "Sets the tick font.", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "ticks", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "ticks", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "ticks", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "ticks", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "ticks", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "ticks", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "ticks", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "ticks", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "ticks", + "description": "If \"true\", even 4-digit integers are separated" + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "ticks", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "ticks", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "ticks" + }, + { + "valType": "any", + "editType": "ticks" + } + ], + "editType": "ticks", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "ticks", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "ticks", + "name": { + "valType": "string", + "editType": "none", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "calc", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "hoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "showline": { + "valType": "boolean", + "dflt": false, + "editType": "ticks+layoutstyle", + "description": "Determines whether or not a line bounding this axis is drawn." + }, + "linecolor": { + "valType": "color", + "dflt": "#444", + "editType": "layoutstyle", + "description": "Sets the axis line color." + }, + "linewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "ticks+layoutstyle", + "description": "Sets the width (in px) of the axis line." + }, + "showgrid": { + "valType": "boolean", + "editType": "ticks", + "description": "Determines whether or not grid lines are drawn. If *true*, the grid lines are drawn at every tick mark." + }, + "gridcolor": { + "valType": "color", + "dflt": "#eee", + "editType": "ticks", + "description": "Sets the color of the grid lines." + }, + "gridwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "ticks", + "description": "Sets the width (in px) of the grid lines." + }, + "zeroline": { + "valType": "boolean", + "editType": "ticks", + "description": "Determines whether or not a line is drawn at along the 0 value of this axis. If *true*, the zero line is drawn on top of the grid lines." + }, + "zerolinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "ticks", + "description": "Sets the line color of the zero line." + }, + "zerolinewidth": { + "valType": "number", + "dflt": 1, + "editType": "ticks", + "description": "Sets the width (in px) of the zero line." + }, + "showdividers": { + "valType": "boolean", + "dflt": true, + "editType": "ticks", + "description": "Determines whether or not a dividers are drawn between the category levels of this axis. Only has an effect on *multicategory* axes." + }, + "dividercolor": { + "valType": "color", + "dflt": "#444", + "editType": "ticks", + "description": "Sets the color of the dividers Only has an effect on *multicategory* axes." + }, + "dividerwidth": { + "valType": "number", + "dflt": 1, + "editType": "ticks", + "description": "Sets the width (in px) of the dividers Only has an effect on *multicategory* axes." + }, + "anchor": { + "valType": "enumerated", + "values": [ + "free", + "/^x([2-9]|[1-9][0-9]+)?( domain)?$/", + "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" + ], + "editType": "plot", + "description": "If set to an opposite-letter axis id (e.g. `x2`, `y`), this axis is bound to the corresponding opposite-letter axis. If set to *free*, this axis' position is determined by `position`." + }, + "side": { + "valType": "enumerated", + "values": [ + "top", + "bottom", + "left", + "right" + ], + "editType": "plot", + "description": "Determines whether a x (y) axis is positioned at the *bottom* (*left*) or *top* (*right*) of the plotting area." + }, + "overlaying": { + "valType": "enumerated", + "values": [ + "free", + "/^x([2-9]|[1-9][0-9]+)?( domain)?$/", + "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" + ], + "editType": "plot", + "description": "If set a same-letter axis id, this axis is overlaid on top of the corresponding same-letter axis, with traces and axes visible for both axes. If *false*, this axis does not overlay any same-letter axes. In this case, for axes with overlapping domains only the highest-numbered axis will be visible." + }, + "layer": { + "valType": "enumerated", + "values": [ + "above traces", + "below traces" + ], + "dflt": "above traces", + "editType": "plot", + "description": "Sets the layer on which this axis is displayed. If *above traces*, this axis is displayed above all the subplot's traces If *below traces*, this axis is displayed below all the subplot's traces, but above the grid lines. Useful when used together with scatter-like traces with `cliponaxis` set to *false* to show markers and/or text nodes above this axis." + }, + "domain": { + "valType": "info_array", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + } + ], + "dflt": [ + 0, + 1 + ], + "editType": "plot", + "description": "Sets the domain of this axis (in plot fraction)." + }, + "position": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0, + "editType": "plot", + "description": "Sets the position of this axis in the plotting space (in normalized coordinates). Only has an effect if `anchor` is set to *free*." + }, + "categoryorder": { + "valType": "enumerated", + "values": [ + "trace", + "category ascending", + "category descending", + "array", + "total ascending", + "total descending", + "min ascending", + "min descending", + "max ascending", + "max descending", + "sum ascending", + "sum descending", + "mean ascending", + "mean descending", + "median ascending", + "median descending" + ], + "dflt": "trace", + "editType": "calc", + "description": "Specifies the ordering logic for the case of categorical variables. By default, plotly uses *trace*, which specifies the order that is present in the data supplied. Set `categoryorder` to *category ascending* or *category descending* if order should be determined by the alphanumerical order of the category names. Set `categoryorder` to *array* to derive the ordering from the attribute `categoryarray`. If a category is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to the *trace* mode. The unspecified categories will follow the categories in `categoryarray`. Set `categoryorder` to *total ascending* or *total descending* if order should be determined by the numerical order of the values. Similarly, the order can be determined by the min, max, sum, mean or median of all the values." + }, + "categoryarray": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the order in which categories on this axis appear. Only has an effect if `categoryorder` is set to *array*. Used with `categoryorder`." + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of user-driven changes in axis `range`, `autorange`, and `title` if in `editable: true` configuration. Defaults to `layout.uirevision`." + }, + "editType": "calc", + "_deprecated": { + "autotick": { + "valType": "boolean", + "editType": "ticks", + "description": "Obsolete. Set `tickmode` to *auto* for old `autotick` *true* behavior. Set `tickmode` to *linear* for `autotick` *false*." + }, + "title": { + "valType": "string", + "editType": "ticks", + "description": "Value of `title` is no longer a simple *string* but a set of sub-attributes. To set the axis' title, please use `title.text` now." + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "ticks", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "ticks" + }, + "color": { + "valType": "color", + "editType": "ticks" + }, + "editType": "ticks", + "description": "Former `titlefont` is now the sub-attribute `font` of `title`. To customize title font properties, please use `title.font` now." + } + }, + "rangeslider": { + "bgcolor": { + "valType": "color", + "dflt": "#fff", + "editType": "plot", + "description": "Sets the background color of the range slider." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the border color of the range slider." + }, + "borderwidth": { + "valType": "integer", + "dflt": 0, + "min": 0, + "editType": "plot", + "description": "Sets the border width of the range slider." + }, + "autorange": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the range slider range is computed in relation to the input data. If `range` is provided, then `autorange` is set to *false*." + }, + "range": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "calc", + "impliedEdits": { + "^autorange": false + } + }, + { + "valType": "any", + "editType": "calc", + "impliedEdits": { + "^autorange": false + } + } + ], + "editType": "calc", + "impliedEdits": { + "autorange": false + }, + "description": "Sets the range of the range slider. If not set, defaults to the full xaxis range. If the axis `type` is *log*, then you must take the log of your desired range. If the axis `type` is *date*, it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is *category*, it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "thickness": { + "valType": "number", + "dflt": 0.15, + "min": 0, + "max": 1, + "editType": "plot", + "description": "The height of the range slider as a fraction of the total plot area height." + }, + "visible": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not the range slider will be visible. If visible, perpendicular axes will be set to `fixedrange`" + }, + "editType": "calc", + "yaxis": { + "_isSubplotObj": true, + "rangemode": { + "valType": "enumerated", + "values": [ + "auto", + "fixed", + "match" + ], + "dflt": "match", + "editType": "calc", + "description": "Determines whether or not the range of this axis in the rangeslider use the same value than in the main plot when zooming in/out. If *auto*, the autorange will be used. If *fixed*, the `range` is used. If *match*, the current range of the corresponding y-axis on the main subplot is used." + }, + "range": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "plot" }, - "metaKeys": [ - "_isSubplotObj", - "_isLinkedToArray", - "_arrayAttrRegexps", - "_deprecated", - "description", - "role", - "editType", - "impliedEdits" + { + "valType": "any", + "editType": "plot" + } + ], + "editType": "plot", + "description": "Sets the range of this axis for the rangeslider." + }, + "editType": "calc", + "role": "object" + }, + "role": "object" + }, + "rangeselector": { + "visible": { + "valType": "boolean", + "editType": "plot", + "description": "Determines whether or not this range selector is visible. Note that range selectors are only available for x axes of `type` set to or auto-typed to *date*." + }, + "buttons": { + "items": { + "button": { + "visible": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not this button is visible." + }, + "step": { + "valType": "enumerated", + "values": [ + "month", + "year", + "day", + "hour", + "minute", + "second", + "all" + ], + "dflt": "month", + "editType": "plot", + "description": "The unit of measurement that the `count` value will set the range by." + }, + "stepmode": { + "valType": "enumerated", + "values": [ + "backward", + "todate" + ], + "dflt": "backward", + "editType": "plot", + "description": "Sets the range update mode. If *backward*, the range update shifts the start of range back *count* times *step* milliseconds. If *todate*, the range update shifts the start of range back to the first timestamp from *count* times *step* milliseconds back. For example, with `step` set to *year* and `count` set to *1* the range update shifts the start of the range back to January 01 of the current year. Month and year *todate* are currently available only for the built-in (Gregorian) calendar." + }, + "count": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the number of steps to take to update the range. Use with `step` to specify the update interval." + }, + "label": { + "valType": "string", + "editType": "plot", + "description": "Sets the text label to appear on the button." + }, + "editType": "plot", + "description": "Sets the specifications for each buttons. By default, a range selector comes with no buttons.", + "name": { + "valType": "string", + "editType": "none", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "calc", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "x": { + "valType": "number", + "min": -2, + "max": 3, + "editType": "plot", + "description": "Sets the x position (in normalized coordinates) of the range selector." + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "auto", + "left", + "center", + "right" + ], + "dflt": "left", + "editType": "plot", + "description": "Sets the range selector's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the range selector." + }, + "y": { + "valType": "number", + "min": -2, + "max": 3, + "editType": "plot", + "description": "Sets the y position (in normalized coordinates) of the range selector." + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "auto", + "top", + "middle", + "bottom" + ], + "dflt": "bottom", + "editType": "plot", + "description": "Sets the range selector's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the range selector." + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Sets the font of the range selector button text.", + "role": "object" + }, + "bgcolor": { + "valType": "color", + "dflt": "#eee", + "editType": "plot", + "description": "Sets the background color of the range selector buttons." + }, + "activecolor": { + "valType": "color", + "editType": "plot", + "description": "Sets the background color of the active range selector button." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the color of the border enclosing the range selector." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "plot", + "description": "Sets the width (in px) of the border enclosing the range selector." + }, + "editType": "plot", + "role": "object" + }, + "calendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use for `range` and `tick0` if this is a date axis. This does not set the calendar for interpreting data on this axis, that's specified in the trace or via the global `layout.calendar`" + }, + "_isSubplotObj": true, + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + }, + "categoryarraysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for categoryarray .", + "editType": "none" + } + }, + "yaxis": { + "visible": { + "valType": "boolean", + "editType": "plot", + "description": "A single toggle to hide the axis while preserving interaction like dragging. Default is true when a cheater plot is present on the axis, otherwise false" + }, + "color": { + "valType": "color", + "dflt": "#444", + "editType": "ticks", + "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." + }, + "title": { + "text": { + "valType": "string", + "editType": "ticks", + "description": "Sets the title of this axis. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "ticks", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "ticks" + }, + "color": { + "valType": "color", + "editType": "ticks" + }, + "editType": "ticks", + "description": "Sets this axis' title font. Note that the title's font used to be customized by the now deprecated `titlefont` attribute.", + "role": "object" + }, + "standoff": { + "valType": "number", + "min": 0, + "editType": "ticks", + "description": "Sets the standoff distance (in px) between the axis labels and the title text The default value is a function of the axis tick labels, the title `font.size` and the axis `linewidth`. Note that the axis title position is always constrained within the margins, so the actual standoff distance is always less than the set or default value. By setting `standoff` and turning on `automargin`, plotly.js will push the margins to fit the axis title at given standoff distance." + }, + "editType": "ticks", + "role": "object" + }, + "type": { + "valType": "enumerated", + "values": [ + "-", + "linear", + "log", + "date", + "category", + "multicategory" + ], + "dflt": "-", + "editType": "calc", + "_noTemplating": true, + "description": "Sets the axis type. By default, plotly attempts to determined the axis type by looking into the data of the traces that referenced the axis in question." + }, + "autotypenumbers": { + "valType": "enumerated", + "values": [ + "convert types", + "strict" + ], + "dflt": "convert types", + "editType": "calc", + "description": "Using *strict* a numeric string in trace data is not converted to a number. Using *convert types* a numeric string in trace data may be treated as a number during automatic axis `type` detection. Defaults to layout.autotypenumbers." + }, + "autorange": { + "valType": "enumerated", + "values": [ + true, + false, + "reversed" + ], + "dflt": true, + "editType": "axrange", + "impliedEdits": {}, + "description": "Determines whether or not the range of this axis is computed in relation to the input data. See `rangemode` for more info. If `range` is provided, then `autorange` is set to *false*." + }, + "rangemode": { + "valType": "enumerated", + "values": [ + "normal", + "tozero", + "nonnegative" + ], + "dflt": "normal", + "editType": "plot", + "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes." + }, + "range": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "axrange", + "impliedEdits": { + "^autorange": false + }, + "anim": true + }, + { + "valType": "any", + "editType": "axrange", + "impliedEdits": { + "^autorange": false + }, + "anim": true + } + ], + "editType": "axrange", + "impliedEdits": { + "autorange": false + }, + "anim": true, + "description": "Sets the range of this axis. If the axis `type` is *log*, then you must take the log of your desired range (e.g. to set the range from 1 to 100, set the range from 0 to 2). If the axis `type` is *date*, it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is *category*, it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "fixedrange": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not this axis is zoom-able. If true, then zoom is disabled." + }, + "scaleanchor": { + "valType": "enumerated", + "values": [ + "/^x([2-9]|[1-9][0-9]+)?( domain)?$/", + "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" + ], + "editType": "plot", + "description": "If set to another axis id (e.g. `x2`, `y`), the range of this axis changes together with the range of the corresponding axis such that the scale of pixels per unit is in a constant ratio. Both axes are still zoomable, but when you zoom one, the other will zoom the same amount, keeping a fixed midpoint. `constrain` and `constraintoward` determine how we enforce the constraint. You can chain these, ie `yaxis: {scaleanchor: *x*}, xaxis2: {scaleanchor: *y*}` but you can only link axes of the same `type`. The linked axis can have the opposite letter (to constrain the aspect ratio) or the same letter (to match scales across subplots). Loops (`yaxis: {scaleanchor: *x*}, xaxis: {scaleanchor: *y*}` or longer) are redundant and the last constraint encountered will be ignored to avoid possible inconsistent constraints via `scaleratio`. Note that setting axes simultaneously in both a `scaleanchor` and a `matches` constraint is currently forbidden." + }, + "scaleratio": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "If this axis is linked to another by `scaleanchor`, this determines the pixel to unit scale ratio. For example, if this value is 10, then every unit on this axis spans 10 times the number of pixels as a unit on the linked axis. Use this for example to create an elevation profile where the vertical scale is exaggerated a fixed amount with respect to the horizontal." + }, + "constrain": { + "valType": "enumerated", + "values": [ + "range", + "domain" + ], + "editType": "plot", + "description": "If this axis needs to be compressed (either due to its own `scaleanchor` and `scaleratio` or those of the other axis), determines how that happens: by increasing the *range*, or by decreasing the *domain*. Default is *domain* for axes containing image traces, *range* otherwise." + }, + "constraintoward": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right", + "top", + "middle", + "bottom" + ], + "editType": "plot", + "description": "If this axis needs to be compressed (either due to its own `scaleanchor` and `scaleratio` or those of the other axis), determines which direction we push the originally specified plot area. Options are *left*, *center* (default), and *right* for x axes, and *top*, *middle* (default), and *bottom* for y axes." + }, + "matches": { + "valType": "enumerated", + "values": [ + "/^x([2-9]|[1-9][0-9]+)?( domain)?$/", + "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" + ], + "editType": "calc", + "description": "If set to another axis id (e.g. `x2`, `y`), the range of this axis will match the range of the corresponding axis in data-coordinates space. Moreover, matching axes share auto-range values, category lists and histogram auto-bins. Note that setting axes simultaneously in both a `scaleanchor` and a `matches` constraint is currently forbidden. Moreover, note that matching axes must have the same `type`." + }, + "rangebreaks": { + "items": { + "rangebreak": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether this axis rangebreak is enabled or disabled. Please note that `rangebreaks` only work for *date* axis type." + }, + "bounds": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "calc" + }, + { + "valType": "any", + "editType": "calc" + } + ], + "editType": "calc", + "description": "Sets the lower and upper bounds of this axis rangebreak. Can be used with `pattern`." + }, + "pattern": { + "valType": "enumerated", + "values": [ + "day of week", + "hour", + "" + ], + "editType": "calc", + "description": "Determines a pattern on the time line that generates breaks. If *day of week* - days of the week in English e.g. 'Sunday' or `sun` (matching is case-insensitive and considers only the first three characters), as well as Sunday-based integers between 0 and 6. If *hour* - hour (24-hour clock) as decimal numbers between 0 and 24. for more info. Examples: - { pattern: 'day of week', bounds: [6, 1] } or simply { bounds: ['sat', 'mon'] } breaks from Saturday to Monday (i.e. skips the weekends). - { pattern: 'hour', bounds: [17, 8] } breaks from 5pm to 8am (i.e. skips non-work hours)." + }, + "values": { + "valType": "info_array", + "freeLength": true, + "editType": "calc", + "items": { + "valType": "any", + "editType": "calc" + }, + "description": "Sets the coordinate values corresponding to the rangebreaks. An alternative to `bounds`. Use `dvalue` to set the size of the values along the axis." + }, + "dvalue": { + "valType": "number", + "editType": "calc", + "min": 0, + "dflt": 86400000, + "description": "Sets the size of each `values` item. The default is one day in milliseconds." + }, + "editType": "calc", + "name": { + "valType": "string", + "editType": "none", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "calc", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "ticks", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "ticks", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "ticks", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "ticks", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "ticks", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "ticks", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "ticks", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines." + }, + "tickson": { + "valType": "enumerated", + "values": [ + "labels", + "boundaries" + ], + "dflt": "labels", + "editType": "ticks", + "description": "Determines where ticks and grid lines are drawn with respect to their corresponding tick labels. Only has an effect for axes of `type` *category* or *multicategory*. When set to *boundaries*, ticks and grid lines are drawn half a category to the left/bottom of labels." + }, + "ticklabelmode": { + "valType": "enumerated", + "values": [ + "instant", + "period" + ], + "dflt": "instant", + "editType": "ticks", + "description": "Determines where tick labels are drawn with respect to their corresponding ticks and grid lines. Only has an effect for axes of `type` *date* When set to *period*, tick labels are drawn in the middle of the period between ticks." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside left", + "inside left", + "outside right", + "inside right", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "editType": "calc", + "description": "Determines where tick labels are drawn with respect to the axis Please note that top or bottom has no effect on x axes or when `ticklabelmode` is set to *period*. Similarly left or right has no effect on y axes or when `ticklabelmode` is set to *period*. Has no effect on *multicategory* axes or when `tickson` is set to *boundaries*. When used on axes linked by `matches` or `scaleanchor`, no extra padding for inside labels would be added by autorange, so that the scales could match." + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "calc", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. Otherwise on *category* and *multicategory* axes the default is *allow*. In other cases the default is *hide past div*." + }, + "mirror": { + "valType": "enumerated", + "values": [ + true, + "ticks", + false, + "all", + "allticks" + ], + "dflt": false, + "editType": "ticks+layoutstyle", + "description": "Determines if the axis lines or/and ticks are mirrored to the opposite side of the plotting area. If *true*, the axis lines are mirrored. If *ticks*, the axis lines and ticks are mirrored. If *false*, mirroring is disable. If *all*, axis lines are mirrored on all shared-axes subplots. If *allticks*, axis lines and ticks are mirrored on all shared-axes subplots." + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "ticks", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "ticks", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "ticks", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "ticks", + "description": "Determines whether or not the tick labels are drawn." + }, + "automargin": { + "valType": "boolean", + "dflt": false, + "editType": "ticks", + "description": "Determines whether long tick labels automatically grow the figure margins." + }, + "showspikes": { + "valType": "boolean", + "dflt": false, + "editType": "modebar", + "description": "Determines whether or not spikes (aka droplines) are drawn for this axis. Note: This only takes affect when hovermode = closest" + }, + "spikecolor": { + "valType": "color", + "dflt": null, + "editType": "none", + "description": "Sets the spike color. If undefined, will use the series color" + }, + "spikethickness": { + "valType": "number", + "dflt": 3, + "editType": "none", + "description": "Sets the width (in px) of the zero line." + }, + "spikedash": { + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ], + "dflt": "dash", + "editType": "none", + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." + }, + "spikemode": { + "valType": "flaglist", + "flags": [ + "toaxis", + "across", + "marker" + ], + "dflt": "toaxis", + "editType": "none", + "description": "Determines the drawing mode for the spike line If *toaxis*, the line is drawn from the data point to the axis the series is plotted on. If *across*, the line is drawn across the entire plot area, and supercedes *toaxis*. If *marker*, then a marker dot is drawn on the axis the series is plotted on" + }, + "spikesnap": { + "valType": "enumerated", + "values": [ + "data", + "cursor", + "hovered data" + ], + "dflt": "hovered data", + "editType": "none", + "description": "Determines whether spikelines are stuck to the cursor or to the closest datapoints." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "ticks", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "ticks" + }, + "color": { + "valType": "color", + "editType": "ticks" + }, + "editType": "ticks", + "description": "Sets the tick font.", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "ticks", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "ticks", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "ticks", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "ticks", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "ticks", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "ticks", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "ticks", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "ticks", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "ticks", + "description": "If \"true\", even 4-digit integers are separated" + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "ticks", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "ticks", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." + }, + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "ticks" + }, + { + "valType": "any", + "editType": "ticks" + } ], - "editType": { - "traces": { - "valType": "flaglist", - "extras": [ - "none" - ], - "flags": [ - "calc", - "clearAxisTypes", - "plot", - "style", - "markerSize", - "colorbars" - ], - "description": "trace attributes should include an `editType` string matching this flaglist. *calc* is the most extensive: a full `Plotly.plot` starting by clearing `gd.calcdata` to force it to be regenerated *clearAxisTypes* resets the types of the axes this trace is on, because new data could cause the automatic axis type detection to change. Log type will not be cleared, as that is never automatically chosen so must have been user-specified. *plot* calls `Plotly.plot` but without first clearing `gd.calcdata`. *style* only calls `module.style` (or module.editStyle) for all trace modules and redraws the legend. *markerSize* is like *style*, but propagate axis-range changes due to scatter `marker.size` *colorbars* only redraws colorbars." - }, - "layout": { - "valType": "flaglist", - "extras": [ - "none" - ], - "flags": [ - "calc", - "plot", - "legend", - "ticks", - "axrange", - "layoutstyle", - "modebar", - "camera", - "arraydraw", - "colorbars" - ], - "description": "layout attributes should include an `editType` string matching this flaglist. *calc* is the most extensive: a full `Plotly.plot` starting by clearing `gd.calcdata` to force it to be regenerated *plot* calls `Plotly.plot` but without first clearing `gd.calcdata`. *legend* only redraws the legend. *ticks* only redraws axis ticks, labels, and gridlines. *axrange* minimal sequence when updating axis ranges. *layoutstyle* reapplies global and SVG cartesian axis styles. *modebar* just updates the modebar. *camera* just updates the camera settings for gl3d scenes. *arraydraw* allows component arrays to invoke the redraw routines just for the component(s) that changed. *colorbars* only redraws colorbars." - } - }, - "impliedEdits": { - "description": "Sometimes when an attribute is changed, other attributes must be altered as well in order to achieve the intended result. For example, when `range` is specified, it is important to set `autorange` to `false` or the new `range` value would be lost in the redraw. `impliedEdits` is the mechanism to do this: `impliedEdits: {autorange: false}`. Each key is a relative paths to the attribute string to change, using *^* to ascend into the parent container, for example `range[0]` has `impliedEdits: {*^autorange*: false}`. A value of `undefined` means that the attribute will not be changed, but its previous value should be recorded in case we want to reverse this change later. For example, `autorange` has `impliedEdits: {*range[0]*: undefined, *range[1]*:undefined} because the range will likely be changed by redraw." - } + "editType": "ticks", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" + }, + "value": { + "valType": "string", + "dflt": "", + "editType": "ticks", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" + }, + "editType": "ticks", + "name": { + "valType": "string", + "editType": "none", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "calc", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" }, - "traces": { - "scatter": { - "meta": { - "description": "The scatter trace type encompasses line charts, scatter charts, text charts, and bubble charts. The data visualized as scatter point or lines is set in `x` and `y`. Text (appearing either on the chart or on hover only) is via `text`. Bubble charts are achieved by setting `marker.size` and/or `marker.color` to numerical arrays." - }, - "categories": [ - "cartesian", - "svg", - "symbols", - "errorBarsOK", - "showLegend", - "scatter-like", - "zoomScale" - ], - "animatable": true, - "type": "scatter", - "attributes": { - "type": "scatter", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "anim": true, - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "anim": true, - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "selectedpoints": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "x": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "anim": true, - "description": "Sets the x coordinates.", - "role": "data" - }, - "x0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc+clearAxisTypes", - "anim": true, - "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step." - }, - "dx": { - "valType": "number", - "dflt": 1, - "role": "info", - "editType": "calc", - "anim": true, - "description": "Sets the x coordinate step. See `x0` for more info." - }, - "y": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "anim": true, - "description": "Sets the y coordinates.", - "role": "data" - }, - "y0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc+clearAxisTypes", - "anim": true, - "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step." - }, - "dy": { - "valType": "number", - "dflt": 1, - "role": "info", - "editType": "calc", - "anim": true, - "description": "Sets the y coordinate step. See `y0` for more info." - }, - "xperiod": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." - }, - "yperiod": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." - }, - "xperiod0": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." - }, - "yperiod0": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." - }, - "xperiodalignment": { - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ], - "dflt": "middle", - "role": "style", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis." - }, - "yperiodalignment": { - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ], - "dflt": "middle", - "role": "style", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis." - }, - "stackgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Set several scatter traces (on the same subplot) to the same stackgroup in order to add their y values (or their x values if `orientation` is *h*). If blank or omitted this trace will not be stacked. Stacking also turns `fill` on by default, using *tonexty* (*tonextx*) if `orientation` is *h* (*v*) and sets the default `mode` to *lines* irrespective of point count. You can only stack on a numeric (linear or log) axis. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order." - }, - "orientation": { - "valType": "enumerated", - "role": "info", - "values": [ - "v", - "h" - ], - "editType": "calc", - "description": "Only relevant when `stackgroup` is used, and only the first `orientation` found in the `stackgroup` will be used - including if `visible` is *legendonly* but not if it is `false`. Sets the stacking direction. With *v* (*h*), the y (x) values of subsequent traces are added. Also affects the default value of `fill`." - }, - "groupnorm": { - "valType": "enumerated", - "values": [ - "", - "fraction", - "percent" - ], - "dflt": "", - "role": "info", - "editType": "calc", - "description": "Only relevant when `stackgroup` is used, and only the first `groupnorm` found in the `stackgroup` will be used - including if `visible` is *legendonly* but not if it is `false`. Sets the normalization for the sum of this `stackgroup`. With *fraction*, the value of each trace at each location is divided by the sum of all trace values at that location. *percent* is the same but multiplied by 100 to show percentages. If there are multiple subplots, or multiple `stackgroup`s on one subplot, each will be normalized within its own set." - }, - "stackgaps": { - "valType": "enumerated", - "values": [ - "infer zero", - "interpolate" - ], - "dflt": "infer zero", - "role": "info", - "editType": "calc", - "description": "Only relevant when `stackgroup` is used, and only the first `stackgaps` found in the `stackgroup` will be used - including if `visible` is *legendonly* but not if it is `false`. Determines how we handle locations at which other traces in this group have data but this one does not. With *infer zero* we insert a zero at these locations. With *interpolate* we linearly interpolate between existing values, and extrapolate a constant beyond the existing values." - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." - }, - "texttemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. ", - "arrayOk": true - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "style", - "description": "Sets hover text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." - }, - "mode": { - "valType": "flaglist", - "flags": [ - "lines", - "markers", - "text" - ], - "extras": [ - "none" - ], - "role": "info", - "editType": "calc", - "description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover. If there are less than 20 points and the trace is not stacked then the default is *lines+markers*. Otherwise, *lines*." - }, - "hoveron": { - "valType": "flaglist", - "flags": [ - "points", - "fills" - ], - "role": "info", - "editType": "style", - "description": "Do the hover effects highlight individual points (markers or line points) or do they highlight filled regions? If the fill is *toself* or *tonext* and there are no markers or text, then the default is *fills*, otherwise it is *points*." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "line": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "anim": true, - "description": "Sets the line color." - }, - "width": { - "valType": "number", - "min": 0, - "dflt": 2, - "role": "style", - "editType": "style", - "anim": true, - "description": "Sets the line width (in px)." - }, - "shape": { - "valType": "enumerated", - "values": [ - "linear", - "spline", - "hv", - "vh", - "hvh", - "vhv" - ], - "dflt": "linear", - "role": "style", - "editType": "plot", - "description": "Determines the line shape. With *spline* the lines are drawn using spline interpolation. The other available values correspond to step-wise line shapes." - }, - "smoothing": { - "valType": "number", - "min": 0, - "max": 1.3, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Has an effect only if `shape` is set to *spline* Sets the amount of smoothing. *0* corresponds to no smoothing (equivalent to a *linear* shape)." - }, - "dash": { - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ], - "dflt": "solid", - "role": "style", - "editType": "style", - "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." - }, - "simplify": { - "valType": "boolean", - "dflt": true, - "role": "info", - "editType": "plot", - "description": "Simplifies lines by removing nearly-collinear points. When transitioning lines, it may be desirable to disable this so that the number of points along the resulting SVG path is unaffected." - }, - "editType": "plot", - "role": "object" - }, - "connectgaps": { - "valType": "boolean", - "dflt": false, - "role": "info", - "editType": "calc", - "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected." - }, - "cliponaxis": { - "valType": "boolean", - "dflt": true, - "role": "info", - "editType": "plot", - "description": "Determines whether or not markers and text nodes are clipped about the subplot axes. To show markers and text nodes above axis lines and tick labels, make sure to set `xaxis.layer` and `yaxis.layer` to *below traces*." - }, - "fill": { - "valType": "enumerated", - "values": [ - "none", - "tozeroy", - "tozerox", - "tonexty", - "tonextx", - "toself", - "tonext" - ], - "role": "style", - "editType": "calc", - "description": "Sets the area to fill with a solid color. Defaults to *none* unless this trace is stacked, then it gets *tonexty* (*tonextx*) if `orientation` is *v* (*h*) Use with `fillcolor` if not *none*. *tozerox* and *tozeroy* fill to x=0 and y=0 respectively. *tonextx* and *tonexty* fill between the endpoints of this trace and the endpoints of the trace before it, connecting those endpoints with straight lines (to make a stacked area graph); if there is no trace before it, they behave like *tozerox* and *tozeroy*. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape. *tonext* fills the space between two traces if one completely encloses the other (eg consecutive contour lines), and behaves like *toself* if there is no trace before it. *tonext* should not be used if one trace does not enclose the other. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order." - }, - "fillcolor": { - "valType": "color", - "role": "style", - "editType": "style", - "anim": true, - "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." - }, - "marker": { - "symbol": { - "valType": "enumerated", - "values": [ - 0, - "0", - "circle", - 100, - "100", - "circle-open", - 200, - "200", - "circle-dot", - 300, - "300", - "circle-open-dot", - 1, - "1", - "square", - 101, - "101", - "square-open", - 201, - "201", - "square-dot", - 301, - "301", - "square-open-dot", - 2, - "2", - "diamond", - 102, - "102", - "diamond-open", - 202, - "202", - "diamond-dot", - 302, - "302", - "diamond-open-dot", - 3, - "3", - "cross", - 103, - "103", - "cross-open", - 203, - "203", - "cross-dot", - 303, - "303", - "cross-open-dot", - 4, - "4", - "x", - 104, - "104", - "x-open", - 204, - "204", - "x-dot", - 304, - "304", - "x-open-dot", - 5, - "5", - "triangle-up", - 105, - "105", - "triangle-up-open", - 205, - "205", - "triangle-up-dot", - 305, - "305", - "triangle-up-open-dot", - 6, - "6", - "triangle-down", - 106, - "106", - "triangle-down-open", - 206, - "206", - "triangle-down-dot", - 306, - "306", - "triangle-down-open-dot", - 7, - "7", - "triangle-left", - 107, - "107", - "triangle-left-open", - 207, - "207", - "triangle-left-dot", - 307, - "307", - "triangle-left-open-dot", - 8, - "8", - "triangle-right", - 108, - "108", - "triangle-right-open", - 208, - "208", - "triangle-right-dot", - 308, - "308", - "triangle-right-open-dot", - 9, - "9", - "triangle-ne", - 109, - "109", - "triangle-ne-open", - 209, - "209", - "triangle-ne-dot", - 309, - "309", - "triangle-ne-open-dot", - 10, - "10", - "triangle-se", - 110, - "110", - "triangle-se-open", - 210, - "210", - "triangle-se-dot", - 310, - "310", - "triangle-se-open-dot", - 11, - "11", - "triangle-sw", - 111, - "111", - "triangle-sw-open", - 211, - "211", - "triangle-sw-dot", - 311, - "311", - "triangle-sw-open-dot", - 12, - "12", - "triangle-nw", - 112, - "112", - "triangle-nw-open", - 212, - "212", - "triangle-nw-dot", - 312, - "312", - "triangle-nw-open-dot", - 13, - "13", - "pentagon", - 113, - "113", - "pentagon-open", - 213, - "213", - "pentagon-dot", - 313, - "313", - "pentagon-open-dot", - 14, - "14", - "hexagon", - 114, - "114", - "hexagon-open", - 214, - "214", - "hexagon-dot", - 314, - "314", - "hexagon-open-dot", - 15, - "15", - "hexagon2", - 115, - "115", - "hexagon2-open", - 215, - "215", - "hexagon2-dot", - 315, - "315", - "hexagon2-open-dot", - 16, - "16", - "octagon", - 116, - "116", - "octagon-open", - 216, - "216", - "octagon-dot", - 316, - "316", - "octagon-open-dot", - 17, - "17", - "star", - 117, - "117", - "star-open", - 217, - "217", - "star-dot", - 317, - "317", - "star-open-dot", - 18, - "18", - "hexagram", - 118, - "118", - "hexagram-open", - 218, - "218", - "hexagram-dot", - 318, - "318", - "hexagram-open-dot", - 19, - "19", - "star-triangle-up", - 119, - "119", - "star-triangle-up-open", - 219, - "219", - "star-triangle-up-dot", - 319, - "319", - "star-triangle-up-open-dot", - 20, - "20", - "star-triangle-down", - 120, - "120", - "star-triangle-down-open", - 220, - "220", - "star-triangle-down-dot", - 320, - "320", - "star-triangle-down-open-dot", - 21, - "21", - "star-square", - 121, - "121", - "star-square-open", - 221, - "221", - "star-square-dot", - 321, - "321", - "star-square-open-dot", - 22, - "22", - "star-diamond", - 122, - "122", - "star-diamond-open", - 222, - "222", - "star-diamond-dot", - 322, - "322", - "star-diamond-open-dot", - 23, - "23", - "diamond-tall", - 123, - "123", - "diamond-tall-open", - 223, - "223", - "diamond-tall-dot", - 323, - "323", - "diamond-tall-open-dot", - 24, - "24", - "diamond-wide", - 124, - "124", - "diamond-wide-open", - 224, - "224", - "diamond-wide-dot", - 324, - "324", - "diamond-wide-open-dot", - 25, - "25", - "hourglass", - 125, - "125", - "hourglass-open", - 26, - "26", - "bowtie", - 126, - "126", - "bowtie-open", - 27, - "27", - "circle-cross", - 127, - "127", - "circle-cross-open", - 28, - "28", - "circle-x", - 128, - "128", - "circle-x-open", - 29, - "29", - "square-cross", - 129, - "129", - "square-cross-open", - 30, - "30", - "square-x", - 130, - "130", - "square-x-open", - 31, - "31", - "diamond-cross", - 131, - "131", - "diamond-cross-open", - 32, - "32", - "diamond-x", - 132, - "132", - "diamond-x-open", - 33, - "33", - "cross-thin", - 133, - "133", - "cross-thin-open", - 34, - "34", - "x-thin", - 134, - "134", - "x-thin-open", - 35, - "35", - "asterisk", - 135, - "135", - "asterisk-open", - 36, - "36", - "hash", - 136, - "136", - "hash-open", - 236, - "236", - "hash-dot", - 336, - "336", - "hash-open-dot", - 37, - "37", - "y-up", - 137, - "137", - "y-up-open", - 38, - "38", - "y-down", - 138, - "138", - "y-down-open", - 39, - "39", - "y-left", - 139, - "139", - "y-left-open", - 40, - "40", - "y-right", - 140, - "140", - "y-right-open", - 41, - "41", - "line-ew", - 141, - "141", - "line-ew-open", - 42, - "42", - "line-ns", - 142, - "142", - "line-ns-open", - 43, - "43", - "line-ne", - 143, - "143", - "line-ne-open", - 44, - "44", - "line-nw", - 144, - "144", - "line-nw-open", - 45, - "45", - "arrow-up", - 145, - "145", - "arrow-up-open", - 46, - "46", - "arrow-down", - 146, - "146", - "arrow-down-open", - 47, - "47", - "arrow-left", - 147, - "147", - "arrow-left-open", - 48, - "48", - "arrow-right", - 148, - "148", - "arrow-right-open", - 49, - "49", - "arrow-bar-up", - 149, - "149", - "arrow-bar-up-open", - 50, - "50", - "arrow-bar-down", - 150, - "150", - "arrow-bar-down-open", - 51, - "51", - "arrow-bar-left", - 151, - "151", - "arrow-bar-left-open", - 52, - "52", - "arrow-bar-right", - 152, - "152", - "arrow-bar-right-open" - ], - "dflt": "circle", - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name." - }, - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "arrayOk": true, - "role": "style", - "editType": "style", - "anim": true, - "description": "Sets the marker opacity." - }, - "size": { - "valType": "number", - "min": 0, - "dflt": 6, - "arrayOk": true, - "role": "style", - "editType": "calc", - "anim": true, - "description": "Sets the marker size (in px)." - }, - "maxdisplayed": { - "valType": "number", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "plot", - "description": "Sets a maximum number of points to be drawn on the graph. *0* corresponds to no limit." - }, - "sizeref": { - "valType": "number", - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`." - }, - "sizemin": { - "valType": "number", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points." - }, - "sizemode": { - "valType": "enumerated", - "values": [ - "diameter", - "area" - ], - "dflt": "diameter", - "role": "info", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels." - }, - "line": { - "width": { - "valType": "number", - "min": 0, - "arrayOk": true, - "role": "style", - "editType": "style", - "anim": true, - "description": "Sets the width (in px) of the lines bounding the marker points." - }, - "editType": "calc", - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set.", - "anim": true - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "role": "object", - "widthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for width .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "gradient": { - "type": { - "valType": "enumerated", - "values": [ - "radial", - "horizontal", - "vertical", - "none" - ], - "arrayOk": true, - "dflt": "none", - "role": "style", - "editType": "calc", - "description": "Sets the type of gradient used to fill the markers" - }, - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the final color of the gradient fill: the center color for radial, the right for horizontal, or the bottom for vertical." - }, - "editType": "calc", - "role": "object", - "typesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for type .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "editType": "calc", - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set.", - "anim": true - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "colorbars" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "colorbars" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "colorbars" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "colorbars" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "colorbars" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "colorbars" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "colorbars" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "colorbars" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "colorbars" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "colorbars" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "colorbars", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "colorbars", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "colorbars", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "colorbars" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "colorbars", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "colorbars", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "colorbars", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "colorbars" - }, - { - "valType": "any", - "editType": "colorbars" - } - ], - "editType": "colorbars", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "colorbars", - "name": { - "valType": "string", - "role": "style", - "editType": "colorbars", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "colorbars", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "colorbars", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "colorbars", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "colorbars", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars" - }, - "editType": "colorbars", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "colorbars" - } - }, - "editType": "colorbars", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "role": "object", - "symbolsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for symbol .", - "editType": "none" - }, - "opacitysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for opacity .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "selected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity of selected points." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the marker color of selected points." - }, - "size": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "style", - "description": "Sets the marker size of selected points." - }, - "editType": "style", - "role": "object" - }, - "textfont": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the text font color of selected points." - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "unselected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity of unselected points, applied only when a selection exists." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the marker color of unselected points, applied only when a selection exists." - }, - "size": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "style", - "description": "Sets the marker size of unselected points, applied only when a selection exists." - }, - "editType": "style", - "role": "object" - }, - "textfont": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the text font color of unselected points, applied only when a selection exists." - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "textposition": { - "valType": "enumerated", - "values": [ - "top left", - "top center", - "top right", - "middle left", - "middle center", - "middle right", - "bottom left", - "bottom center", - "bottom right" - ], - "dflt": "middle center", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates." - }, - "textfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "arrayOk": true - }, - "editType": "calc", - "description": "Sets the text font.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "r": { - "valType": "data_array", - "editType": "calc", - "description": "r coordinates in scatter traces are deprecated!Please switch to the *scatterpolar* trace type.Sets the radial coordinatesfor legacy polar chart only.", - "role": "data" - }, - "t": { - "valType": "data_array", - "editType": "calc", - "description": "t coordinates in scatter traces are deprecated!Please switch to the *scatterpolar* trace type.Sets the angular coordinatesfor legacy polar chart only.", - "role": "data" - }, - "error_x": { - "visible": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether or not this set of error bars is visible." - }, - "type": { - "valType": "enumerated", - "values": [ - "percent", - "constant", - "sqrt", - "data" - ], - "role": "info", - "editType": "calc", - "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`." - }, - "symmetric": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars." - }, - "array": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", - "role": "data" - }, - "arrayminus": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", - "role": "data" - }, - "value": { - "valType": "number", - "min": 0, - "dflt": 10, - "role": "info", - "editType": "calc", - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars." - }, - "valueminus": { - "valType": "number", - "min": 0, - "dflt": 10, - "role": "info", - "editType": "calc", - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars" - }, - "traceref": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "style" - }, - "tracerefminus": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "style" - }, - "copy_ystyle": { - "valType": "boolean", - "role": "style", - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the stoke color of the error bars." - }, - "thickness": { - "valType": "number", - "min": 0, - "dflt": 2, - "role": "style", - "editType": "style", - "description": "Sets the thickness (in px) of the error bars." - }, - "width": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the cross-bar at both ends of the error bars." - }, - "editType": "calc", - "_deprecated": { - "opacity": { - "valType": "number", - "role": "style", - "editType": "style", - "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." - } - }, - "role": "object", - "arraysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for array .", - "editType": "none" - }, - "arrayminussrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for arrayminus .", - "editType": "none" - } - }, - "error_y": { - "visible": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether or not this set of error bars is visible." - }, - "type": { - "valType": "enumerated", - "values": [ - "percent", - "constant", - "sqrt", - "data" - ], - "role": "info", - "editType": "calc", - "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`." - }, - "symmetric": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars." - }, - "array": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", - "role": "data" - }, - "arrayminus": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", - "role": "data" - }, - "value": { - "valType": "number", - "min": 0, - "dflt": 10, - "role": "info", - "editType": "calc", - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars." - }, - "valueminus": { - "valType": "number", - "min": 0, - "dflt": 10, - "role": "info", - "editType": "calc", - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars" - }, - "traceref": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "style" - }, - "tracerefminus": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "style" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the stoke color of the error bars." - }, - "thickness": { - "valType": "number", - "min": 0, - "dflt": 2, - "role": "style", - "editType": "style", - "description": "Sets the thickness (in px) of the error bars." - }, - "width": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the cross-bar at both ends of the error bars." - }, - "editType": "calc", - "_deprecated": { - "opacity": { - "valType": "number", - "role": "style", - "editType": "style", - "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." - } - }, - "role": "object", - "arraysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for array .", - "editType": "none" - }, - "arrayminussrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for arrayminus .", - "editType": "none" - } - }, - "xcalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `x` date data." - }, - "ycalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `y` date data." - }, - "xaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." - }, - "yaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "ysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for y .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "texttemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - }, - "textpositionsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for textposition .", - "editType": "none" - }, - "rsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for r .", - "editType": "none" - }, - "tsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for t .", - "editType": "none" - } - } + "hoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "showline": { + "valType": "boolean", + "dflt": false, + "editType": "ticks+layoutstyle", + "description": "Determines whether or not a line bounding this axis is drawn." + }, + "linecolor": { + "valType": "color", + "dflt": "#444", + "editType": "layoutstyle", + "description": "Sets the axis line color." + }, + "linewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "ticks+layoutstyle", + "description": "Sets the width (in px) of the axis line." + }, + "showgrid": { + "valType": "boolean", + "editType": "ticks", + "description": "Determines whether or not grid lines are drawn. If *true*, the grid lines are drawn at every tick mark." + }, + "gridcolor": { + "valType": "color", + "dflt": "#eee", + "editType": "ticks", + "description": "Sets the color of the grid lines." + }, + "gridwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "ticks", + "description": "Sets the width (in px) of the grid lines." + }, + "zeroline": { + "valType": "boolean", + "editType": "ticks", + "description": "Determines whether or not a line is drawn at along the 0 value of this axis. If *true*, the zero line is drawn on top of the grid lines." + }, + "zerolinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "ticks", + "description": "Sets the line color of the zero line." + }, + "zerolinewidth": { + "valType": "number", + "dflt": 1, + "editType": "ticks", + "description": "Sets the width (in px) of the zero line." + }, + "showdividers": { + "valType": "boolean", + "dflt": true, + "editType": "ticks", + "description": "Determines whether or not a dividers are drawn between the category levels of this axis. Only has an effect on *multicategory* axes." + }, + "dividercolor": { + "valType": "color", + "dflt": "#444", + "editType": "ticks", + "description": "Sets the color of the dividers Only has an effect on *multicategory* axes." + }, + "dividerwidth": { + "valType": "number", + "dflt": 1, + "editType": "ticks", + "description": "Sets the width (in px) of the dividers Only has an effect on *multicategory* axes." + }, + "anchor": { + "valType": "enumerated", + "values": [ + "free", + "/^x([2-9]|[1-9][0-9]+)?( domain)?$/", + "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" + ], + "editType": "plot", + "description": "If set to an opposite-letter axis id (e.g. `x2`, `y`), this axis is bound to the corresponding opposite-letter axis. If set to *free*, this axis' position is determined by `position`." + }, + "side": { + "valType": "enumerated", + "values": [ + "top", + "bottom", + "left", + "right" + ], + "editType": "plot", + "description": "Determines whether a x (y) axis is positioned at the *bottom* (*left*) or *top* (*right*) of the plotting area." + }, + "overlaying": { + "valType": "enumerated", + "values": [ + "free", + "/^x([2-9]|[1-9][0-9]+)?( domain)?$/", + "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" + ], + "editType": "plot", + "description": "If set a same-letter axis id, this axis is overlaid on top of the corresponding same-letter axis, with traces and axes visible for both axes. If *false*, this axis does not overlay any same-letter axes. In this case, for axes with overlapping domains only the highest-numbered axis will be visible." + }, + "layer": { + "valType": "enumerated", + "values": [ + "above traces", + "below traces" + ], + "dflt": "above traces", + "editType": "plot", + "description": "Sets the layer on which this axis is displayed. If *above traces*, this axis is displayed above all the subplot's traces If *below traces*, this axis is displayed below all the subplot's traces, but above the grid lines. Useful when used together with scatter-like traces with `cliponaxis` set to *false* to show markers and/or text nodes above this axis." + }, + "domain": { + "valType": "info_array", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + } + ], + "dflt": [ + 0, + 1 + ], + "editType": "plot", + "description": "Sets the domain of this axis (in plot fraction)." + }, + "position": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0, + "editType": "plot", + "description": "Sets the position of this axis in the plotting space (in normalized coordinates). Only has an effect if `anchor` is set to *free*." + }, + "categoryorder": { + "valType": "enumerated", + "values": [ + "trace", + "category ascending", + "category descending", + "array", + "total ascending", + "total descending", + "min ascending", + "min descending", + "max ascending", + "max descending", + "sum ascending", + "sum descending", + "mean ascending", + "mean descending", + "median ascending", + "median descending" + ], + "dflt": "trace", + "editType": "calc", + "description": "Specifies the ordering logic for the case of categorical variables. By default, plotly uses *trace*, which specifies the order that is present in the data supplied. Set `categoryorder` to *category ascending* or *category descending* if order should be determined by the alphanumerical order of the category names. Set `categoryorder` to *array* to derive the ordering from the attribute `categoryarray`. If a category is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to the *trace* mode. The unspecified categories will follow the categories in `categoryarray`. Set `categoryorder` to *total ascending* or *total descending* if order should be determined by the numerical order of the values. Similarly, the order can be determined by the min, max, sum, mean or median of all the values." + }, + "categoryarray": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the order in which categories on this axis appear. Only has an effect if `categoryorder` is set to *array*. Used with `categoryorder`." + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of user-driven changes in axis `range`, `autorange`, and `title` if in `editable: true` configuration. Defaults to `layout.uirevision`." + }, + "editType": "calc", + "_deprecated": { + "autotick": { + "valType": "boolean", + "editType": "ticks", + "description": "Obsolete. Set `tickmode` to *auto* for old `autotick` *true* behavior. Set `tickmode` to *linear* for `autotick` *false*." + }, + "title": { + "valType": "string", + "editType": "ticks", + "description": "Value of `title` is no longer a simple *string* but a set of sub-attributes. To set the axis' title, please use `title.text` now." + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "ticks", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "ticks" + }, + "color": { + "valType": "color", + "editType": "ticks" + }, + "editType": "ticks", + "description": "Former `titlefont` is now the sub-attribute `font` of `title`. To customize title font properties, please use `title.font` now." + } + }, + "calendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use for `range` and `tick0` if this is a date axis. This does not set the calendar for interpreting data on this axis, that's specified in the trace or via the global `layout.calendar`" + }, + "_isSubplotObj": true, + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + }, + "categoryarraysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for categoryarray .", + "editType": "none" + } + }, + "ternary": { + "domain": { + "x": { + "valType": "info_array", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the horizontal domain of this ternary subplot (in plot fraction).", + "editType": "plot" + }, + "y": { + "valType": "info_array", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the vertical domain of this ternary subplot (in plot fraction).", + "editType": "plot" + }, + "row": { + "valType": "integer", + "min": 0, + "dflt": 0, + "description": "If there is a layout grid, use the domain for this row in the grid for this ternary subplot .", + "editType": "plot" + }, + "column": { + "valType": "integer", + "min": 0, + "dflt": 0, + "description": "If there is a layout grid, use the domain for this column in the grid for this ternary subplot .", + "editType": "plot" + }, + "editType": "plot", + "role": "object" + }, + "bgcolor": { + "valType": "color", + "dflt": "#fff", + "description": "Set the background color of the subplot", + "editType": "plot" + }, + "sum": { + "valType": "number", + "dflt": 1, + "min": 0, + "description": "The number each triplet should sum to, and the maximum range of each axis", + "editType": "plot" + }, + "aaxis": { + "title": { + "text": { + "valType": "string", + "editType": "plot", + "description": "Sets the title of this axis. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Sets this axis' title font. Note that the title's font used to be customized by the now deprecated `titlefont` attribute.", + "role": "object" + }, + "editType": "plot", + "role": "object" + }, + "color": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "plot", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 1, + "dflt": 6, + "editType": "plot", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "plot", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "plot", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "plot", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines." + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "plot", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not the tick labels are drawn." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets a tick label prefix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets a tick label suffix." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "plot", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "plot", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "If \"true\", even 4-digit integers are separated" + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Sets the tick font.", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "plot", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." }, - "bar": { - "meta": { - "description": "The data visualized by the span of the bars is set in `y` if `orientation` is set th *v* (the default) and the labels are set in `x`. By setting `orientation` to *h*, the roles are interchanged." - }, - "categories": [ - "bar-like", - "cartesian", - "svg", - "bar", - "oriented", - "errorBarsOK", - "showLegend", - "zoomScale" - ], - "animatable": true, - "type": "bar", - "attributes": { - "type": "bar", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "anim": true, - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "anim": true, - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "selectedpoints": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "x": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "anim": true, - "description": "Sets the x coordinates.", - "role": "data" - }, - "x0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc+clearAxisTypes", - "anim": true, - "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step." - }, - "dx": { - "valType": "number", - "dflt": 1, - "role": "info", - "editType": "calc", - "anim": true, - "description": "Sets the x coordinate step. See `x0` for more info." - }, - "y": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "anim": true, - "description": "Sets the y coordinates.", - "role": "data" - }, - "y0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc+clearAxisTypes", - "anim": true, - "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step." - }, - "dy": { - "valType": "number", - "dflt": 1, - "role": "info", - "editType": "calc", - "anim": true, - "description": "Sets the y coordinate step. See `y0` for more info." - }, - "xperiod": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." - }, - "yperiod": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." - }, - "xperiod0": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." - }, - "yperiod0": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." - }, - "xperiodalignment": { - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ], - "dflt": "middle", - "role": "style", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis." - }, - "yperiodalignment": { - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ], - "dflt": "middle", - "role": "style", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis." - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." - }, - "texttemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "plot", - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `value` and `label`.", - "arrayOk": true - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "style", - "description": "Sets hover text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "textposition": { - "valType": "enumerated", - "role": "info", - "values": [ - "inside", - "outside", - "auto", - "none" - ], - "dflt": "none", - "arrayOk": true, - "editType": "calc", - "description": "Specifies the location of the `text`. *inside* positions `text` inside, next to the bar end (rotated and scaled if needed). *outside* positions `text` outside, next to the bar end (scaled if needed), unless there is another bar stacked on this one, then the text gets pushed inside. *auto* tries to position `text` inside the bar, but if the bar is too small and no bar is stacked on this one the text is moved outside." - }, - "insidetextanchor": { - "valType": "enumerated", - "values": [ - "end", - "middle", - "start" - ], - "dflt": "end", - "role": "info", - "editType": "plot", - "description": "Determines if texts are kept at center or start/end points in `textposition` *inside* mode." - }, - "textangle": { - "valType": "angle", - "dflt": "auto", - "role": "info", - "editType": "plot", - "description": "Sets the angle of the tick labels with respect to the bar. For example, a `tickangle` of -90 draws the tick labels vertically. With *auto* the texts may automatically be rotated to fit with the maximum size in bars." - }, - "textfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "arrayOk": true - }, - "editType": "calc", - "description": "Sets the font used for `text`.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "insidetextfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "arrayOk": true - }, - "editType": "calc", - "description": "Sets the font used for `text` lying inside the bar.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "outsidetextfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "arrayOk": true - }, - "editType": "calc", - "description": "Sets the font used for `text` lying outside the bar.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "constraintext": { - "valType": "enumerated", - "values": [ - "inside", - "outside", - "both", - "none" - ], - "role": "info", - "dflt": "both", - "editType": "calc", - "description": "Constrain the size of text inside or outside a bar to be no larger than the bar itself." - }, - "cliponaxis": { - "valType": "boolean", - "dflt": true, - "role": "info", - "editType": "plot", - "description": "Determines whether the text nodes are clipped about the subplot axes. To show the text nodes above axis lines and tick labels, make sure to set `xaxis.layer` and `yaxis.layer` to *below traces*." - }, - "orientation": { - "valType": "enumerated", - "role": "info", - "values": [ - "v", - "h" - ], - "editType": "calc+clearAxisTypes", - "description": "Sets the orientation of the bars. With *v* (*h*), the value of the each bar spans along the vertical (horizontal)." - }, - "base": { - "valType": "any", - "dflt": null, - "arrayOk": true, - "role": "info", - "editType": "calc", - "description": "Sets where the bar base is drawn (in position axis units). In *stack* or *relative* barmode, traces that set *base* will be excluded and drawn in *overlay* mode instead." - }, - "offset": { - "valType": "number", - "dflt": null, - "arrayOk": true, - "role": "info", - "editType": "calc", - "description": "Shifts the position where the bar is drawn (in position axis units). In *group* barmode, traces that set *offset* will be excluded and drawn in *overlay* mode instead." - }, - "width": { - "valType": "number", - "dflt": null, - "min": 0, - "arrayOk": true, - "role": "info", - "editType": "calc", - "description": "Sets the bar width (in position axis units)." - }, - "marker": { - "line": { - "width": { - "valType": "number", - "min": 0, - "arrayOk": true, - "role": "style", - "editType": "style", - "anim": true, - "description": "Sets the width (in px) of the lines bounding the marker points.", - "dflt": 0 - }, - "editType": "calc", - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "role": "object", - "widthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for width .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "editType": "calc", - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "colorbars" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "colorbars" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "colorbars" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "colorbars" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "colorbars" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "colorbars" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "colorbars" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "colorbars" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "colorbars" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "colorbars" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "colorbars", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "colorbars", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "colorbars", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "colorbars" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "colorbars", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "colorbars", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "colorbars", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "colorbars" - }, - { - "valType": "any", - "editType": "colorbars" - } - ], - "editType": "colorbars", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "colorbars", - "name": { - "valType": "string", - "role": "style", - "editType": "colorbars", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "colorbars", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "colorbars", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "colorbars", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "colorbars", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars" - }, - "editType": "colorbars", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "colorbars" - } - }, - "editType": "colorbars", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "opacity": { - "valType": "number", - "arrayOk": true, - "dflt": 1, - "min": 0, - "max": 1, - "role": "style", - "editType": "style", - "description": "Sets the opacity of the bars." - }, - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - }, - "opacitysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for opacity .", - "editType": "none" - } - }, - "offsetgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up." - }, - "alignmentgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently." - }, - "selected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity of selected points." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the marker color of selected points." - }, - "editType": "style", - "role": "object" - }, - "textfont": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the text font color of selected points." - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "unselected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity of unselected points, applied only when a selection exists." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the marker color of unselected points, applied only when a selection exists." - }, - "editType": "style", - "role": "object" - }, - "textfont": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the text font color of unselected points, applied only when a selection exists." - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "r": { - "valType": "data_array", - "editType": "calc", - "description": "r coordinates in scatter traces are deprecated!Please switch to the *scatterpolar* trace type.Sets the radial coordinatesfor legacy polar chart only.", - "role": "data" - }, - "t": { - "valType": "data_array", - "editType": "calc", - "description": "t coordinates in scatter traces are deprecated!Please switch to the *scatterpolar* trace type.Sets the angular coordinatesfor legacy polar chart only.", - "role": "data" - }, - "_deprecated": { - "bardir": { - "valType": "enumerated", - "role": "info", - "editType": "calc", - "values": [ - "v", - "h" - ], - "description": "Renamed to `orientation`." - } - }, - "error_x": { - "visible": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether or not this set of error bars is visible." - }, - "type": { - "valType": "enumerated", - "values": [ - "percent", - "constant", - "sqrt", - "data" - ], - "role": "info", - "editType": "calc", - "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`." - }, - "symmetric": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars." - }, - "array": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", - "role": "data" - }, - "arrayminus": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", - "role": "data" - }, - "value": { - "valType": "number", - "min": 0, - "dflt": 10, - "role": "info", - "editType": "calc", - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars." - }, - "valueminus": { - "valType": "number", - "min": 0, - "dflt": 10, - "role": "info", - "editType": "calc", - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars" - }, - "traceref": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "style" - }, - "tracerefminus": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "style" - }, - "copy_ystyle": { - "valType": "boolean", - "role": "style", - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the stoke color of the error bars." - }, - "thickness": { - "valType": "number", - "min": 0, - "dflt": 2, - "role": "style", - "editType": "style", - "description": "Sets the thickness (in px) of the error bars." - }, - "width": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the cross-bar at both ends of the error bars." - }, - "editType": "calc", - "_deprecated": { - "opacity": { - "valType": "number", - "role": "style", - "editType": "style", - "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." - } - }, - "role": "object", - "arraysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for array .", - "editType": "none" - }, - "arrayminussrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for arrayminus .", - "editType": "none" - } - }, - "error_y": { - "visible": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether or not this set of error bars is visible." - }, - "type": { - "valType": "enumerated", - "values": [ - "percent", - "constant", - "sqrt", - "data" - ], - "role": "info", - "editType": "calc", - "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`." - }, - "symmetric": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars." - }, - "array": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", - "role": "data" - }, - "arrayminus": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", - "role": "data" - }, - "value": { - "valType": "number", - "min": 0, - "dflt": 10, - "role": "info", - "editType": "calc", - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars." - }, - "valueminus": { - "valType": "number", - "min": 0, - "dflt": 10, - "role": "info", - "editType": "calc", - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars" - }, - "traceref": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "style" - }, - "tracerefminus": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "style" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the stoke color of the error bars." - }, - "thickness": { - "valType": "number", - "min": 0, - "dflt": 2, - "role": "style", - "editType": "style", - "description": "Sets the thickness (in px) of the error bars." - }, - "width": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the cross-bar at both ends of the error bars." - }, - "editType": "calc", - "_deprecated": { - "opacity": { - "valType": "number", - "role": "style", - "editType": "style", - "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." - } - }, - "role": "object", - "arraysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for array .", - "editType": "none" - }, - "arrayminussrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for arrayminus .", - "editType": "none" - } - }, - "xcalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `x` date data." - }, - "ycalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `y` date data." - }, - "xaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." - }, - "yaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "ysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for y .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "texttemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - }, - "textpositionsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for textposition .", - "editType": "none" - }, - "basesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for base .", - "editType": "none" - }, - "offsetsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for offset .", - "editType": "none" - }, - "widthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for width .", - "editType": "none" - }, - "rsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for r .", - "editType": "none" - }, - "tsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for t .", - "editType": "none" - } - }, - "layoutAttributes": { - "barmode": { - "valType": "enumerated", - "values": [ - "stack", - "group", - "overlay", - "relative" - ], - "dflt": "group", - "role": "info", - "editType": "calc", - "description": "Determines how bars at the same location coordinate are displayed on the graph. With *stack*, the bars are stacked on top of one another With *relative*, the bars are stacked on top of one another, with negative values below the axis, positive values above With *group*, the bars are plotted next to one another centered around the shared location. With *overlay*, the bars are plotted over one another, you might need to an *opacity* to see multiple bars." - }, - "barnorm": { - "valType": "enumerated", - "values": [ - "", - "fraction", - "percent" - ], - "dflt": "", - "role": "info", - "editType": "calc", - "description": "Sets the normalization for bar traces on the graph. With *fraction*, the value of each bar is divided by the sum of all values at that location coordinate. *percent* is the same but multiplied by 100 to show percentages." - }, - "bargap": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "calc", - "description": "Sets the gap (in plot fraction) between bars of adjacent location coordinates." - }, - "bargroupgap": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Sets the gap (in plot fraction) between bars of the same location coordinate." - } - } + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "plot" + }, + { + "valType": "any", + "editType": "plot" + } + ], + "editType": "plot", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" }, - "box": { - "meta": { - "description": "Each box spans from quartile 1 (Q1) to quartile 3 (Q3). The second quartile (Q2, i.e. the median) is marked by a line inside the box. The fences grow outward from the boxes' edges, by default they span +/- 1.5 times the interquartile range (IQR: Q3-Q1), The sample mean and standard deviation as well as notches and the sample, outlier and suspected outliers points can be optionally added to the box plot. The values and positions corresponding to each boxes can be input using two signatures. The first signature expects users to supply the sample values in the `y` data array for vertical boxes (`x` for horizontal boxes). By supplying an `x` (`y`) array, one box per distinct `x` (`y`) value is drawn If no `x` (`y`) {array} is provided, a single box is drawn. In this case, the box is positioned with the trace `name` or with `x0` (`y0`) if provided. The second signature expects users to supply the boxes corresponding Q1, median and Q3 statistics in the `q1`, `median` and `q3` data arrays respectively. Other box features relying on statistics namely `lowerfence`, `upperfence`, `notchspan` can be set directly by the users. To have plotly compute them or to show sample points besides the boxes, users can set the `y` data array for vertical boxes (`x` for horizontal boxes) to a 2D array with the outer length corresponding to the number of boxes in the traces and the inner length corresponding the sample size." - }, - "categories": [ - "cartesian", - "svg", - "symbols", - "oriented", - "box-violin", - "showLegend", - "boxLayout", - "zoomScale" - ], - "animatable": false, - "type": "box", - "attributes": { - "type": "box", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "selectedpoints": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "y": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the y sample data or coordinates. See overview for more info.", - "role": "data" - }, - "x": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the x sample data or coordinates. See overview for more info.", - "role": "data" - }, - "x0": { - "valType": "any", - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Sets the x coordinate for single-box traces or the starting coordinate for multi-box traces set using q1/median/q3. See overview for more info." - }, - "y0": { - "valType": "any", - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Sets the y coordinate for single-box traces or the starting coordinate for multi-box traces set using q1/median/q3. See overview for more info." - }, - "dx": { - "valType": "number", - "role": "info", - "editType": "calc", - "description": "Sets the x coordinate step for multi-box traces set using q1/median/q3." - }, - "dy": { - "valType": "number", - "role": "info", - "editType": "calc", - "description": "Sets the y coordinate step for multi-box traces set using q1/median/q3." - }, - "xperiod": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." - }, - "yperiod": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." - }, - "xperiod0": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." - }, - "yperiod0": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." - }, - "xperiodalignment": { - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ], - "dflt": "middle", - "role": "style", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis." - }, - "yperiodalignment": { - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ], - "dflt": "middle", - "role": "style", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Sets the trace name. The trace name appear as the legend item and on hover. For box traces, the name will also be used for the position coordinate, if `x` and `x0` (`y` and `y0` if horizontal) are missing and the position axis is categorical" - }, - "q1": { - "valType": "data_array", - "role": "data", - "editType": "calc+clearAxisTypes", - "description": "Sets the Quartile 1 values. There should be as many items as the number of boxes desired." - }, - "median": { - "valType": "data_array", - "role": "data", - "editType": "calc+clearAxisTypes", - "description": "Sets the median values. There should be as many items as the number of boxes desired." - }, - "q3": { - "valType": "data_array", - "role": "data", - "editType": "calc+clearAxisTypes", - "description": "Sets the Quartile 3 values. There should be as many items as the number of boxes desired." - }, - "lowerfence": { - "valType": "data_array", - "role": "data", - "editType": "calc", - "description": "Sets the lower fence values. There should be as many items as the number of boxes desired. This attribute has effect only under the q1/median/q3 signature. If `lowerfence` is not provided but a sample (in `y` or `x`) is set, we compute the lower as the last sample point below 1.5 times the IQR." - }, - "upperfence": { - "valType": "data_array", - "role": "data", - "editType": "calc", - "description": "Sets the upper fence values. There should be as many items as the number of boxes desired. This attribute has effect only under the q1/median/q3 signature. If `upperfence` is not provided but a sample (in `y` or `x`) is set, we compute the lower as the last sample point above 1.5 times the IQR." - }, - "notched": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether or not notches are drawn. Notches displays a confidence interval around the median. We compute the confidence interval as median +/- 1.57 * IQR / sqrt(N), where IQR is the interquartile range and N is the sample size. If two boxes' notches do not overlap there is 95% confidence their medians differ. See https://sites.google.com/site/davidsstatistics/home/notched-box-plots for more info. Defaults to *false* unless `notchwidth` or `notchspan` is set." - }, - "notchwidth": { - "valType": "number", - "min": 0, - "max": 0.5, - "dflt": 0.25, - "role": "style", - "editType": "calc", - "description": "Sets the width of the notches relative to the box' width. For example, with 0, the notches are as wide as the box(es)." - }, - "notchspan": { - "valType": "data_array", - "role": "data", - "editType": "calc", - "description": "Sets the notch span from the boxes' `median` values. There should be as many items as the number of boxes desired. This attribute has effect only under the q1/median/q3 signature. If `notchspan` is not provided but a sample (in `y` or `x`) is set, we compute it as 1.57 * IQR / sqrt(N), where N is the sample size." - }, - "boxpoints": { - "valType": "enumerated", - "values": [ - "all", - "outliers", - "suspectedoutliers", - false - ], - "role": "style", - "editType": "calc", - "description": "If *outliers*, only the sample points lying outside the whiskers are shown If *suspectedoutliers*, the outlier points are shown and points either less than 4*Q1-3*Q3 or greater than 4*Q3-3*Q1 are highlighted (see `outliercolor`) If *all*, all sample points are shown If *false*, only the box(es) are shown with no sample points Defaults to *suspectedoutliers* when `marker.outliercolor` or `marker.line.outliercolor` is set. Defaults to *all* under the q1/median/q3 signature. Otherwise defaults to *outliers*." - }, - "jitter": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "calc", - "description": "Sets the amount of jitter in the sample points drawn. If *0*, the sample points align along the distribution axis. If *1*, the sample points are drawn in a random jitter of width equal to the width of the box(es)." - }, - "pointpos": { - "valType": "number", - "min": -2, - "max": 2, - "role": "style", - "editType": "calc", - "description": "Sets the position of the sample points in relation to the box(es). If *0*, the sample points are places over the center of the box(es). Positive (negative) values correspond to positions to the right (left) for vertical boxes and above (below) for horizontal boxes" - }, - "boxmean": { - "valType": "enumerated", - "values": [ - true, - "sd", - false - ], - "role": "style", - "editType": "calc", - "description": "If *true*, the mean of the box(es)' underlying distribution is drawn as a dashed line inside the box(es). If *sd* the standard deviation is also drawn. Defaults to *true* when `mean` is set. Defaults to *sd* when `sd` is set Otherwise defaults to *false*." - }, - "mean": { - "valType": "data_array", - "role": "data", - "editType": "calc", - "description": "Sets the mean values. There should be as many items as the number of boxes desired. This attribute has effect only under the q1/median/q3 signature. If `mean` is not provided but a sample (in `y` or `x`) is set, we compute the mean for each box using the sample values." - }, - "sd": { - "valType": "data_array", - "role": "data", - "editType": "calc", - "description": "Sets the standard deviation values. There should be as many items as the number of boxes desired. This attribute has effect only under the q1/median/q3 signature. If `sd` is not provided but a sample (in `y` or `x`) is set, we compute the standard deviation for each box using the sample values." - }, - "orientation": { - "valType": "enumerated", - "values": [ - "v", - "h" - ], - "role": "style", - "editType": "calc+clearAxisTypes", - "description": "Sets the orientation of the box(es). If *v* (*h*), the distribution is visualized along the vertical (horizontal)." - }, - "quartilemethod": { - "valType": "enumerated", - "values": [ - "linear", - "exclusive", - "inclusive" - ], - "dflt": "linear", - "role": "info", - "editType": "calc", - "description": "Sets the method used to compute the sample's Q1 and Q3 quartiles. The *linear* method uses the 25th percentile for Q1 and 75th percentile for Q3 as computed using method #10 (listed on http://www.amstat.org/publications/jse/v14n3/langford.html). The *exclusive* method uses the median to divide the ordered dataset into two halves if the sample is odd, it does not include the median in either half - Q1 is then the median of the lower half and Q3 the median of the upper half. The *inclusive* method also uses the median to divide the ordered dataset into two halves but if the sample is odd, it includes the median in both halves - Q1 is then the median of the lower half and Q3 the median of the upper half." - }, - "width": { - "valType": "number", - "min": 0, - "role": "info", - "dflt": 0, - "editType": "calc", - "description": "Sets the width of the box in data coordinate If *0* (default value) the width is automatically selected based on the positions of other box traces in the same subplot." - }, - "marker": { - "outliercolor": { - "valType": "color", - "dflt": "rgba(0, 0, 0, 0)", - "role": "style", - "editType": "style", - "description": "Sets the color of the outlier sample points." - }, - "symbol": { - "valType": "enumerated", - "values": [ - 0, - "0", - "circle", - 100, - "100", - "circle-open", - 200, - "200", - "circle-dot", - 300, - "300", - "circle-open-dot", - 1, - "1", - "square", - 101, - "101", - "square-open", - 201, - "201", - "square-dot", - 301, - "301", - "square-open-dot", - 2, - "2", - "diamond", - 102, - "102", - "diamond-open", - 202, - "202", - "diamond-dot", - 302, - "302", - "diamond-open-dot", - 3, - "3", - "cross", - 103, - "103", - "cross-open", - 203, - "203", - "cross-dot", - 303, - "303", - "cross-open-dot", - 4, - "4", - "x", - 104, - "104", - "x-open", - 204, - "204", - "x-dot", - 304, - "304", - "x-open-dot", - 5, - "5", - "triangle-up", - 105, - "105", - "triangle-up-open", - 205, - "205", - "triangle-up-dot", - 305, - "305", - "triangle-up-open-dot", - 6, - "6", - "triangle-down", - 106, - "106", - "triangle-down-open", - 206, - "206", - "triangle-down-dot", - 306, - "306", - "triangle-down-open-dot", - 7, - "7", - "triangle-left", - 107, - "107", - "triangle-left-open", - 207, - "207", - "triangle-left-dot", - 307, - "307", - "triangle-left-open-dot", - 8, - "8", - "triangle-right", - 108, - "108", - "triangle-right-open", - 208, - "208", - "triangle-right-dot", - 308, - "308", - "triangle-right-open-dot", - 9, - "9", - "triangle-ne", - 109, - "109", - "triangle-ne-open", - 209, - "209", - "triangle-ne-dot", - 309, - "309", - "triangle-ne-open-dot", - 10, - "10", - "triangle-se", - 110, - "110", - "triangle-se-open", - 210, - "210", - "triangle-se-dot", - 310, - "310", - "triangle-se-open-dot", - 11, - "11", - "triangle-sw", - 111, - "111", - "triangle-sw-open", - 211, - "211", - "triangle-sw-dot", - 311, - "311", - "triangle-sw-open-dot", - 12, - "12", - "triangle-nw", - 112, - "112", - "triangle-nw-open", - 212, - "212", - "triangle-nw-dot", - 312, - "312", - "triangle-nw-open-dot", - 13, - "13", - "pentagon", - 113, - "113", - "pentagon-open", - 213, - "213", - "pentagon-dot", - 313, - "313", - "pentagon-open-dot", - 14, - "14", - "hexagon", - 114, - "114", - "hexagon-open", - 214, - "214", - "hexagon-dot", - 314, - "314", - "hexagon-open-dot", - 15, - "15", - "hexagon2", - 115, - "115", - "hexagon2-open", - 215, - "215", - "hexagon2-dot", - 315, - "315", - "hexagon2-open-dot", - 16, - "16", - "octagon", - 116, - "116", - "octagon-open", - 216, - "216", - "octagon-dot", - 316, - "316", - "octagon-open-dot", - 17, - "17", - "star", - 117, - "117", - "star-open", - 217, - "217", - "star-dot", - 317, - "317", - "star-open-dot", - 18, - "18", - "hexagram", - 118, - "118", - "hexagram-open", - 218, - "218", - "hexagram-dot", - 318, - "318", - "hexagram-open-dot", - 19, - "19", - "star-triangle-up", - 119, - "119", - "star-triangle-up-open", - 219, - "219", - "star-triangle-up-dot", - 319, - "319", - "star-triangle-up-open-dot", - 20, - "20", - "star-triangle-down", - 120, - "120", - "star-triangle-down-open", - 220, - "220", - "star-triangle-down-dot", - 320, - "320", - "star-triangle-down-open-dot", - 21, - "21", - "star-square", - 121, - "121", - "star-square-open", - 221, - "221", - "star-square-dot", - 321, - "321", - "star-square-open-dot", - 22, - "22", - "star-diamond", - 122, - "122", - "star-diamond-open", - 222, - "222", - "star-diamond-dot", - 322, - "322", - "star-diamond-open-dot", - 23, - "23", - "diamond-tall", - 123, - "123", - "diamond-tall-open", - 223, - "223", - "diamond-tall-dot", - 323, - "323", - "diamond-tall-open-dot", - 24, - "24", - "diamond-wide", - 124, - "124", - "diamond-wide-open", - 224, - "224", - "diamond-wide-dot", - 324, - "324", - "diamond-wide-open-dot", - 25, - "25", - "hourglass", - 125, - "125", - "hourglass-open", - 26, - "26", - "bowtie", - 126, - "126", - "bowtie-open", - 27, - "27", - "circle-cross", - 127, - "127", - "circle-cross-open", - 28, - "28", - "circle-x", - 128, - "128", - "circle-x-open", - 29, - "29", - "square-cross", - 129, - "129", - "square-cross-open", - 30, - "30", - "square-x", - 130, - "130", - "square-x-open", - 31, - "31", - "diamond-cross", - 131, - "131", - "diamond-cross-open", - 32, - "32", - "diamond-x", - 132, - "132", - "diamond-x-open", - 33, - "33", - "cross-thin", - 133, - "133", - "cross-thin-open", - 34, - "34", - "x-thin", - 134, - "134", - "x-thin-open", - 35, - "35", - "asterisk", - 135, - "135", - "asterisk-open", - 36, - "36", - "hash", - 136, - "136", - "hash-open", - 236, - "236", - "hash-dot", - 336, - "336", - "hash-open-dot", - 37, - "37", - "y-up", - 137, - "137", - "y-up-open", - 38, - "38", - "y-down", - 138, - "138", - "y-down-open", - 39, - "39", - "y-left", - 139, - "139", - "y-left-open", - 40, - "40", - "y-right", - 140, - "140", - "y-right-open", - 41, - "41", - "line-ew", - 141, - "141", - "line-ew-open", - 42, - "42", - "line-ns", - 142, - "142", - "line-ns-open", - 43, - "43", - "line-ne", - 143, - "143", - "line-ne-open", - 44, - "44", - "line-nw", - 144, - "144", - "line-nw-open", - 45, - "45", - "arrow-up", - 145, - "145", - "arrow-up-open", - 46, - "46", - "arrow-down", - 146, - "146", - "arrow-down-open", - 47, - "47", - "arrow-left", - 147, - "147", - "arrow-left-open", - 48, - "48", - "arrow-right", - 148, - "148", - "arrow-right-open", - 49, - "49", - "arrow-bar-up", - 149, - "149", - "arrow-bar-up-open", - 50, - "50", - "arrow-bar-down", - 150, - "150", - "arrow-bar-down-open", - 51, - "51", - "arrow-bar-left", - 151, - "151", - "arrow-bar-left-open", - 52, - "52", - "arrow-bar-right", - 152, - "152", - "arrow-bar-right-open" - ], - "dflt": "circle", - "arrayOk": false, - "role": "style", - "editType": "plot", - "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name." - }, - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "arrayOk": false, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity.", - "dflt": 1 - }, - "size": { - "valType": "number", - "min": 0, - "dflt": 6, - "arrayOk": false, - "role": "style", - "editType": "calc", - "description": "Sets the marker size (in px)." - }, - "color": { - "valType": "color", - "arrayOk": false, - "role": "style", - "editType": "style", - "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." - }, - "line": { - "color": { - "valType": "color", - "arrayOk": false, - "role": "style", - "editType": "style", - "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set.", - "dflt": "#444" - }, - "width": { - "valType": "number", - "min": 0, - "arrayOk": false, - "role": "style", - "editType": "style", - "description": "Sets the width (in px) of the lines bounding the marker points.", - "dflt": 0 - }, - "outliercolor": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the border line color of the outlier sample points. Defaults to marker.color" - }, - "outlierwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "style", - "description": "Sets the border line width (in px) of the outlier sample points." - }, - "editType": "style", - "role": "object" - }, - "editType": "plot", - "role": "object" - }, - "line": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the color of line bounding the box(es)." - }, - "width": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 2, - "editType": "style", - "description": "Sets the width (in px) of line bounding the box(es)." - }, - "editType": "plot", - "role": "object" - }, - "fillcolor": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." - }, - "whiskerwidth": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": 0.5, - "role": "style", - "editType": "calc", - "description": "Sets the width of the whiskers relative to the box' width. For example, with 1, the whiskers are as wide as the box(es)." - }, - "offsetgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up." - }, - "alignmentgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently." - }, - "selected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity of selected points." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the marker color of selected points." - }, - "size": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "style", - "description": "Sets the marker size of selected points." - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "unselected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity of unselected points, applied only when a selection exists." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the marker color of unselected points, applied only when a selection exists." - }, - "size": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "style", - "description": "Sets the marker size of unselected points, applied only when a selection exists." - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets the text elements associated with each sample value. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "style", - "description": "Same as `text`." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "hoveron": { - "valType": "flaglist", - "flags": [ - "boxes", - "points" - ], - "dflt": "boxes+points", - "role": "info", - "editType": "style", - "description": "Do the hover effects highlight individual boxes or sample points or both?" - }, - "xcalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `x` date data." - }, - "ycalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `y` date data." - }, - "xaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." - }, - "yaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "ysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for y .", - "editType": "none" - }, - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "q1src": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for q1 .", - "editType": "none" - }, - "mediansrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for median .", - "editType": "none" - }, - "q3src": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for q3 .", - "editType": "none" - }, - "lowerfencesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for lowerfence .", - "editType": "none" - }, - "upperfencesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for upperfence .", - "editType": "none" - }, - "notchspansrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for notchspan .", - "editType": "none" - }, - "meansrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for mean .", - "editType": "none" - }, - "sdsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for sd .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - } - }, - "layoutAttributes": { - "boxmode": { - "valType": "enumerated", - "values": [ - "group", - "overlay" - ], - "dflt": "overlay", - "role": "info", - "editType": "calc", - "description": "Determines how boxes at the same location coordinate are displayed on the graph. If *group*, the boxes are plotted next to one another centered around the shared location. If *overlay*, the boxes are plotted over one another, you might need to set *opacity* to see them multiple boxes. Has no effect on traces that have *width* set." - }, - "boxgap": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": 0.3, - "role": "style", - "editType": "calc", - "description": "Sets the gap (in plot fraction) between boxes of adjacent location coordinates. Has no effect on traces that have *width* set." - }, - "boxgroupgap": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": 0.3, - "role": "style", - "editType": "calc", - "description": "Sets the gap (in plot fraction) between boxes of the same location coordinate. Has no effect on traces that have *width* set." - } - } + "value": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" }, - "heatmap": { - "meta": { - "description": "The data that describes the heatmap value-to-color mapping is set in `z`. Data in `z` can either be a {2D array} of values (ragged or not) or a 1D array of values. In the case where `z` is a {2D array}, say that `z` has N rows and M columns. Then, by default, the resulting heatmap will have N partitions along the y axis and M partitions along the x axis. In other words, the i-th row/ j-th column cell in `z` is mapped to the i-th partition of the y axis (starting from the bottom of the plot) and the j-th partition of the x-axis (starting from the left of the plot). This behavior can be flipped by using `transpose`. Moreover, `x` (`y`) can be provided with M or M+1 (N or N+1) elements. If M (N), then the coordinates correspond to the center of the heatmap cells and the cells have equal width. If M+1 (N+1), then the coordinates correspond to the edges of the heatmap cells. In the case where `z` is a 1D {array}, the x and y coordinates must be provided in `x` and `y` respectively to form data triplets." - }, - "categories": [ - "cartesian", - "svg", - "2dMap", - "showLegend" - ], - "animatable": false, - "type": "heatmap", - "attributes": { - "type": "heatmap", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "z": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the z data.", - "role": "data" - }, - "x": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the x coordinates.", - "impliedEdits": { - "xtype": "array" - }, - "role": "data" - }, - "x0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step.", - "impliedEdits": { - "xtype": "scaled" - } - }, - "dx": { - "valType": "number", - "dflt": 1, - "role": "info", - "editType": "calc", - "description": "Sets the x coordinate step. See `x0` for more info.", - "impliedEdits": { - "xtype": "scaled" - } - }, - "y": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the y coordinates.", - "impliedEdits": { - "ytype": "array" - }, - "role": "data" - }, - "y0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step.", - "impliedEdits": { - "ytype": "scaled" - } - }, - "dy": { - "valType": "number", - "dflt": 1, - "role": "info", - "editType": "calc", - "description": "Sets the y coordinate step. See `y0` for more info.", - "impliedEdits": { - "ytype": "scaled" - } - }, - "xperiod": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", - "impliedEdits": { - "xtype": "scaled" - } - }, - "yperiod": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", - "impliedEdits": { - "ytype": "scaled" - } - }, - "xperiod0": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", - "impliedEdits": { - "xtype": "scaled" - } - }, - "yperiod0": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.", - "impliedEdits": { - "ytype": "scaled" - } - }, - "xperiodalignment": { - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ], - "dflt": "middle", - "role": "style", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis.", - "impliedEdits": { - "xtype": "scaled" - } - }, - "yperiodalignment": { - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ], - "dflt": "middle", - "role": "style", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis.", - "impliedEdits": { - "ytype": "scaled" - } - }, - "text": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the text elements associated with each z value.", - "role": "data" - }, - "hovertext": { - "valType": "data_array", - "editType": "calc", - "description": "Same as `text`.", - "role": "data" - }, - "transpose": { - "valType": "boolean", - "dflt": false, - "role": "info", - "editType": "calc", - "description": "Transposes the z data." - }, - "xtype": { - "valType": "enumerated", - "values": [ - "array", - "scaled" - ], - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "If *array*, the heatmap's x coordinates are given by *x* (the default behavior when `x` is provided). If *scaled*, the heatmap's x coordinates are given by *x0* and *dx* (the default behavior when `x` is not provided)." - }, - "ytype": { - "valType": "enumerated", - "values": [ - "array", - "scaled" - ], - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "If *array*, the heatmap's y coordinates are given by *y* (the default behavior when `y` is provided) If *scaled*, the heatmap's y coordinates are given by *y0* and *dy* (the default behavior when `y` is not provided)" - }, - "zsmooth": { - "valType": "enumerated", - "values": [ - "fast", - "best", - false - ], - "dflt": false, - "role": "style", - "editType": "calc", - "description": "Picks a smoothing algorithm use to smooth `z` data." - }, - "hoverongaps": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "none", - "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the `z` data have hover labels associated with them." - }, - "connectgaps": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the `z` data are filled in. It is defaulted to true if `z` is a one dimensional array and `zsmooth` is not false; otherwise it is defaulted to false." - }, - "xgap": { - "valType": "number", - "dflt": 0, - "min": 0, - "role": "style", - "editType": "plot", - "description": "Sets the horizontal gap (in pixels) between bricks." - }, - "ygap": { - "valType": "number", - "dflt": 0, - "min": 0, - "role": "style", - "editType": "plot", - "description": "Sets the vertical gap (in pixels) between bricks." - }, - "zhoverformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "none", - "description": "Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format" - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "zauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user." - }, - "zmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "zauto": false - }, - "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well." - }, - "zmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "zauto": false - }, - "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well." - }, - "zmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`zmin` and `zmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "colorbars" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "colorbars" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "colorbars" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "colorbars" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "colorbars" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "colorbars" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "colorbars" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "colorbars" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "colorbars" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "colorbars" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "colorbars", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "colorbars", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "colorbars", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "colorbars" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "colorbars", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "colorbars", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "colorbars", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "colorbars" - }, - { - "valType": "any", - "editType": "colorbars" - } - ], - "editType": "colorbars", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "colorbars", - "name": { - "valType": "string", - "role": "style", - "editType": "colorbars", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "colorbars", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "colorbars", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "colorbars", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "colorbars", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars" - }, - "editType": "colorbars", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "colorbars" - } - }, - "editType": "colorbars", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "xcalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `x` date data." - }, - "ycalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `y` date data." - }, - "xaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." - }, - "yaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "zsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for z .", - "editType": "none" - }, - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "ysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for y .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - } - } + "editType": "plot", + "name": { + "valType": "string", + "editType": "plot", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." }, - "histogram": { - "meta": { - "description": "The sample data from which statistics are computed is set in `x` for vertically spanning histograms and in `y` for horizontally spanning histograms. Binning options are set `xbins` and `ybins` respectively if no aggregation data is provided." - }, - "categories": [ - "bar-like", - "cartesian", - "svg", - "bar", - "histogram", - "oriented", - "errorBarsOK", - "showLegend" - ], - "animatable": false, - "type": "histogram", - "attributes": { - "type": "histogram", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "selectedpoints": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "x": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the sample data to be binned on the x axis.", - "role": "data" - }, - "y": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the sample data to be binned on the y axis.", - "role": "data" - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets hover text elements associated with each bar. If a single string, the same string appears over all bars. If an array of string, the items are mapped in order to the this trace's coordinates." - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "style", - "description": "Same as `text`." - }, - "orientation": { - "valType": "enumerated", - "role": "info", - "values": [ - "v", - "h" - ], - "editType": "calc+clearAxisTypes", - "description": "Sets the orientation of the bars. With *v* (*h*), the value of the each bar spans along the vertical (horizontal)." - }, - "histfunc": { - "valType": "enumerated", - "values": [ - "count", - "sum", - "avg", - "min", - "max" - ], - "role": "style", - "dflt": "count", - "editType": "calc", - "description": "Specifies the binning function used for this histogram trace. If *count*, the histogram values are computed by counting the number of values lying inside each bin. If *sum*, *avg*, *min*, *max*, the histogram values are computed using the sum, the average, the minimum or the maximum of the values lying inside each bin respectively." - }, - "histnorm": { - "valType": "enumerated", - "values": [ - "", - "percent", - "probability", - "density", - "probability density" - ], - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Specifies the type of normalization used for this histogram trace. If **, the span of each bar corresponds to the number of occurrences (i.e. the number of data points lying inside the bins). If *percent* / *probability*, the span of each bar corresponds to the percentage / fraction of occurrences with respect to the total number of sample points (here, the sum of all bin HEIGHTS equals 100% / 1). If *density*, the span of each bar corresponds to the number of occurrences in a bin divided by the size of the bin interval (here, the sum of all bin AREAS equals the total number of sample points). If *probability density*, the area of each bar corresponds to the probability that an event will fall into the corresponding bin (here, the sum of all bin AREAS equals 1)." - }, - "cumulative": { - "enabled": { - "valType": "boolean", - "dflt": false, - "role": "info", - "editType": "calc", - "description": "If true, display the cumulative distribution by summing the binned values. Use the `direction` and `centralbin` attributes to tune the accumulation method. Note: in this mode, the *density* `histnorm` settings behave the same as their equivalents without *density*: ** and *density* both rise to the number of data points, and *probability* and *probability density* both rise to the number of sample points." - }, - "direction": { - "valType": "enumerated", - "values": [ - "increasing", - "decreasing" - ], - "dflt": "increasing", - "role": "info", - "editType": "calc", - "description": "Only applies if cumulative is enabled. If *increasing* (default) we sum all prior bins, so the result increases from left to right. If *decreasing* we sum later bins so the result decreases from left to right." - }, - "currentbin": { - "valType": "enumerated", - "values": [ - "include", - "exclude", - "half" - ], - "dflt": "include", - "role": "info", - "editType": "calc", - "description": "Only applies if cumulative is enabled. Sets whether the current bin is included, excluded, or has half of its value included in the current cumulative value. *include* is the default for compatibility with various other tools, however it introduces a half-bin bias to the results. *exclude* makes the opposite half-bin bias, and *half* removes it." - }, - "editType": "calc", - "role": "object" - }, - "nbinsx": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Specifies the maximum number of desired bins. This value will be used in an algorithm that will decide the optimal bin size such that the histogram best visualizes the distribution of the data. Ignored if `xbins.size` is provided." - }, - "xbins": { - "start": { - "valType": "any", - "role": "style", - "editType": "calc", - "description": "Sets the starting value for the x axis bins. Defaults to the minimum data value, shifted down if necessary to make nice round values and to remove ambiguous bin edges. For example, if most of the data is integers we shift the bin edges 0.5 down, so a `size` of 5 would have a default `start` of -0.5, so it is clear that 0-4 are in the first bin, 5-9 in the second, but continuous data gets a start of 0 and bins [0,5), [5,10) etc. Dates behave similarly, and `start` should be a date string. For category data, `start` is based on the category serial numbers, and defaults to -0.5. If multiple non-overlaying histograms share a subplot, the first explicit `start` is used exactly and all others are shifted down (if necessary) to differ from that one by an integer number of bins." - }, - "end": { - "valType": "any", - "role": "style", - "editType": "calc", - "description": "Sets the end value for the x axis bins. The last bin may not end exactly at this value, we increment the bin edge by `size` from `start` until we reach or exceed `end`. Defaults to the maximum data value. Like `start`, for dates use a date string, and for category data `end` is based on the category serial numbers." - }, - "size": { - "valType": "any", - "role": "style", - "editType": "calc", - "description": "Sets the size of each x axis bin. Default behavior: If `nbinsx` is 0 or omitted, we choose a nice round bin size such that the number of bins is about the same as the typical number of samples in each bin. If `nbinsx` is provided, we choose a nice round bin size giving no more than that many bins. For date data, use milliseconds or *M* for months, as in `axis.dtick`. For category data, the number of categories to bin together (always defaults to 1). If multiple non-overlaying histograms share a subplot, the first explicit `size` is used and all others discarded. If no `size` is provided,the sample data from all traces is combined to determine `size` as described above." - }, - "editType": "calc", - "role": "object" - }, - "nbinsy": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Specifies the maximum number of desired bins. This value will be used in an algorithm that will decide the optimal bin size such that the histogram best visualizes the distribution of the data. Ignored if `ybins.size` is provided." - }, - "ybins": { - "start": { - "valType": "any", - "role": "style", - "editType": "calc", - "description": "Sets the starting value for the y axis bins. Defaults to the minimum data value, shifted down if necessary to make nice round values and to remove ambiguous bin edges. For example, if most of the data is integers we shift the bin edges 0.5 down, so a `size` of 5 would have a default `start` of -0.5, so it is clear that 0-4 are in the first bin, 5-9 in the second, but continuous data gets a start of 0 and bins [0,5), [5,10) etc. Dates behave similarly, and `start` should be a date string. For category data, `start` is based on the category serial numbers, and defaults to -0.5. If multiple non-overlaying histograms share a subplot, the first explicit `start` is used exactly and all others are shifted down (if necessary) to differ from that one by an integer number of bins." - }, - "end": { - "valType": "any", - "role": "style", - "editType": "calc", - "description": "Sets the end value for the y axis bins. The last bin may not end exactly at this value, we increment the bin edge by `size` from `start` until we reach or exceed `end`. Defaults to the maximum data value. Like `start`, for dates use a date string, and for category data `end` is based on the category serial numbers." - }, - "size": { - "valType": "any", - "role": "style", - "editType": "calc", - "description": "Sets the size of each y axis bin. Default behavior: If `nbinsy` is 0 or omitted, we choose a nice round bin size such that the number of bins is about the same as the typical number of samples in each bin. If `nbinsy` is provided, we choose a nice round bin size giving no more than that many bins. For date data, use milliseconds or *M* for months, as in `axis.dtick`. For category data, the number of categories to bin together (always defaults to 1). If multiple non-overlaying histograms share a subplot, the first explicit `size` is used and all others discarded. If no `size` is provided,the sample data from all traces is combined to determine `size` as described above." - }, - "editType": "calc", - "role": "object" - }, - "autobinx": { - "valType": "boolean", - "dflt": null, - "role": "style", - "editType": "calc", - "description": "Obsolete: since v1.42 each bin attribute is auto-determined separately and `autobinx` is not needed. However, we accept `autobinx: true` or `false` and will update `xbins` accordingly before deleting `autobinx` from the trace." - }, - "autobiny": { - "valType": "boolean", - "dflt": null, - "role": "style", - "editType": "calc", - "description": "Obsolete: since v1.42 each bin attribute is auto-determined separately and `autobiny` is not needed. However, we accept `autobiny: true` or `false` and will update `ybins` accordingly before deleting `autobiny` from the trace." - }, - "bingroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Set a group of histogram traces which will have compatible bin settings. Note that traces on the same subplot and with the same *orientation* under `barmode` *stack*, *relative* and *group* are forced into the same bingroup, Using `bingroup`, traces under `barmode` *overlay* and on different axes (of the same axis type) can have compatible bin settings. Note that histogram and histogram2d* trace can share the same `bingroup`" - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variable `binNumber` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "marker": { - "line": { - "width": { - "valType": "number", - "min": 0, - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets the width (in px) of the lines bounding the marker points.", - "dflt": 0 - }, - "editType": "calc", - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "role": "object", - "widthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for width .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "editType": "calc", - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "colorbars" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "colorbars" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "colorbars" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "colorbars" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "colorbars" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "colorbars" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "colorbars" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "colorbars" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "colorbars" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "colorbars" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "colorbars", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "colorbars", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "colorbars", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "colorbars" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "colorbars", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "colorbars", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "colorbars", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "colorbars" - }, - { - "valType": "any", - "editType": "colorbars" - } - ], - "editType": "colorbars", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "colorbars", - "name": { - "valType": "string", - "role": "style", - "editType": "colorbars", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "colorbars", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "colorbars", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "colorbars", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "colorbars", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars" - }, - "editType": "colorbars", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "colorbars" - } - }, - "editType": "colorbars", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "opacity": { - "valType": "number", - "arrayOk": true, - "dflt": 1, - "min": 0, - "max": 1, - "role": "style", - "editType": "style", - "description": "Sets the opacity of the bars." - }, - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - }, - "opacitysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for opacity .", - "editType": "none" - } - }, - "offsetgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up." - }, - "alignmentgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently." - }, - "selected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity of selected points." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the marker color of selected points." - }, - "editType": "style", - "role": "object" - }, - "textfont": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the text font color of selected points." - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "unselected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity of unselected points, applied only when a selection exists." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the marker color of unselected points, applied only when a selection exists." - }, - "editType": "style", - "role": "object" - }, - "textfont": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the text font color of unselected points, applied only when a selection exists." - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "_deprecated": { - "bardir": { - "valType": "enumerated", - "role": "info", - "editType": "calc", - "values": [ - "v", - "h" - ], - "description": "Renamed to `orientation`." - } - }, - "error_x": { - "visible": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether or not this set of error bars is visible." - }, - "type": { - "valType": "enumerated", - "values": [ - "percent", - "constant", - "sqrt", - "data" - ], - "role": "info", - "editType": "calc", - "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`." - }, - "symmetric": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars." - }, - "array": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", - "role": "data" - }, - "arrayminus": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", - "role": "data" - }, - "value": { - "valType": "number", - "min": 0, - "dflt": 10, - "role": "info", - "editType": "calc", - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars." - }, - "valueminus": { - "valType": "number", - "min": 0, - "dflt": 10, - "role": "info", - "editType": "calc", - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars" - }, - "traceref": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "style" - }, - "tracerefminus": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "style" - }, - "copy_ystyle": { - "valType": "boolean", - "role": "style", - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the stoke color of the error bars." - }, - "thickness": { - "valType": "number", - "min": 0, - "dflt": 2, - "role": "style", - "editType": "style", - "description": "Sets the thickness (in px) of the error bars." - }, - "width": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the cross-bar at both ends of the error bars." - }, - "editType": "calc", - "_deprecated": { - "opacity": { - "valType": "number", - "role": "style", - "editType": "style", - "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." - } - }, - "role": "object", - "arraysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for array .", - "editType": "none" - }, - "arrayminussrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for arrayminus .", - "editType": "none" - } - }, - "error_y": { - "visible": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether or not this set of error bars is visible." - }, - "type": { - "valType": "enumerated", - "values": [ - "percent", - "constant", - "sqrt", - "data" - ], - "role": "info", - "editType": "calc", - "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`." - }, - "symmetric": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars." - }, - "array": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", - "role": "data" - }, - "arrayminus": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", - "role": "data" - }, - "value": { - "valType": "number", - "min": 0, - "dflt": 10, - "role": "info", - "editType": "calc", - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars." - }, - "valueminus": { - "valType": "number", - "min": 0, - "dflt": 10, - "role": "info", - "editType": "calc", - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars" - }, - "traceref": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "style" - }, - "tracerefminus": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "style" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the stoke color of the error bars." - }, - "thickness": { - "valType": "number", - "min": 0, - "dflt": 2, - "role": "style", - "editType": "style", - "description": "Sets the thickness (in px) of the error bars." - }, - "width": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the cross-bar at both ends of the error bars." - }, - "editType": "calc", - "_deprecated": { - "opacity": { - "valType": "number", - "role": "style", - "editType": "style", - "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." - } - }, - "role": "object", - "arraysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for array .", - "editType": "none" - }, - "arrayminussrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for arrayminus .", - "editType": "none" - } - }, - "xcalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `x` date data." - }, - "ycalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `y` date data." - }, - "xaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." - }, - "yaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "ysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for y .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - } - }, - "layoutAttributes": { - "barmode": { - "valType": "enumerated", - "values": [ - "stack", - "group", - "overlay", - "relative" - ], - "dflt": "group", - "role": "info", - "editType": "calc", - "description": "Determines how bars at the same location coordinate are displayed on the graph. With *stack*, the bars are stacked on top of one another With *relative*, the bars are stacked on top of one another, with negative values below the axis, positive values above With *group*, the bars are plotted next to one another centered around the shared location. With *overlay*, the bars are plotted over one another, you might need to an *opacity* to see multiple bars." - }, - "barnorm": { - "valType": "enumerated", - "values": [ - "", - "fraction", - "percent" - ], - "dflt": "", - "role": "info", - "editType": "calc", - "description": "Sets the normalization for bar traces on the graph. With *fraction*, the value of each bar is divided by the sum of all values at that location coordinate. *percent* is the same but multiplied by 100 to show percentages." - }, - "bargap": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "calc", - "description": "Sets the gap (in plot fraction) between bars of adjacent location coordinates." - }, - "bargroupgap": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Sets the gap (in plot fraction) between bars of the same location coordinate." - } - } + "templateitemname": { + "valType": "string", + "editType": "plot", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." }, - "histogram2d": { - "meta": { - "hrName": "histogram_2d", - "description": "The sample data from which statistics are computed is set in `x` and `y` (where `x` and `y` represent marginal distributions, binning is set in `xbins` and `ybins` in this case) or `z` (where `z` represent the 2D distribution and binning set, binning is set by `x` and `y` in this case). The resulting distribution is visualized as a heatmap." - }, - "categories": [ - "cartesian", - "svg", - "2dMap", - "histogram", - "showLegend" - ], - "animatable": false, - "type": "histogram2d", - "attributes": { - "type": "histogram2d", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "x": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the sample data to be binned on the x axis.", - "role": "data" - }, - "y": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the sample data to be binned on the y axis.", - "role": "data" - }, - "z": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the aggregation data.", - "role": "data" - }, - "marker": { - "color": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the aggregation data.", - "role": "data" - }, - "editType": "calc", - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "histnorm": { - "valType": "enumerated", - "values": [ - "", - "percent", - "probability", - "density", - "probability density" - ], - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Specifies the type of normalization used for this histogram trace. If **, the span of each bar corresponds to the number of occurrences (i.e. the number of data points lying inside the bins). If *percent* / *probability*, the span of each bar corresponds to the percentage / fraction of occurrences with respect to the total number of sample points (here, the sum of all bin HEIGHTS equals 100% / 1). If *density*, the span of each bar corresponds to the number of occurrences in a bin divided by the size of the bin interval (here, the sum of all bin AREAS equals the total number of sample points). If *probability density*, the area of each bar corresponds to the probability that an event will fall into the corresponding bin (here, the sum of all bin AREAS equals 1)." - }, - "histfunc": { - "valType": "enumerated", - "values": [ - "count", - "sum", - "avg", - "min", - "max" - ], - "role": "style", - "dflt": "count", - "editType": "calc", - "description": "Specifies the binning function used for this histogram trace. If *count*, the histogram values are computed by counting the number of values lying inside each bin. If *sum*, *avg*, *min*, *max*, the histogram values are computed using the sum, the average, the minimum or the maximum of the values lying inside each bin respectively." - }, - "nbinsx": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Specifies the maximum number of desired bins. This value will be used in an algorithm that will decide the optimal bin size such that the histogram best visualizes the distribution of the data. Ignored if `xbins.size` is provided." - }, - "xbins": { - "start": { - "valType": "any", - "role": "style", - "editType": "calc", - "description": "Sets the starting value for the x axis bins. Defaults to the minimum data value, shifted down if necessary to make nice round values and to remove ambiguous bin edges. For example, if most of the data is integers we shift the bin edges 0.5 down, so a `size` of 5 would have a default `start` of -0.5, so it is clear that 0-4 are in the first bin, 5-9 in the second, but continuous data gets a start of 0 and bins [0,5), [5,10) etc. Dates behave similarly, and `start` should be a date string. For category data, `start` is based on the category serial numbers, and defaults to -0.5. " - }, - "end": { - "valType": "any", - "role": "style", - "editType": "calc", - "description": "Sets the end value for the x axis bins. The last bin may not end exactly at this value, we increment the bin edge by `size` from `start` until we reach or exceed `end`. Defaults to the maximum data value. Like `start`, for dates use a date string, and for category data `end` is based on the category serial numbers." - }, - "size": { - "valType": "any", - "role": "style", - "editType": "calc", - "description": "Sets the size of each x axis bin. Default behavior: If `nbinsx` is 0 or omitted, we choose a nice round bin size such that the number of bins is about the same as the typical number of samples in each bin. If `nbinsx` is provided, we choose a nice round bin size giving no more than that many bins. For date data, use milliseconds or *M* for months, as in `axis.dtick`. For category data, the number of categories to bin together (always defaults to 1). " - }, - "editType": "calc", - "role": "object" - }, - "nbinsy": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Specifies the maximum number of desired bins. This value will be used in an algorithm that will decide the optimal bin size such that the histogram best visualizes the distribution of the data. Ignored if `ybins.size` is provided." - }, - "ybins": { - "start": { - "valType": "any", - "role": "style", - "editType": "calc", - "description": "Sets the starting value for the y axis bins. Defaults to the minimum data value, shifted down if necessary to make nice round values and to remove ambiguous bin edges. For example, if most of the data is integers we shift the bin edges 0.5 down, so a `size` of 5 would have a default `start` of -0.5, so it is clear that 0-4 are in the first bin, 5-9 in the second, but continuous data gets a start of 0 and bins [0,5), [5,10) etc. Dates behave similarly, and `start` should be a date string. For category data, `start` is based on the category serial numbers, and defaults to -0.5. " - }, - "end": { - "valType": "any", - "role": "style", - "editType": "calc", - "description": "Sets the end value for the y axis bins. The last bin may not end exactly at this value, we increment the bin edge by `size` from `start` until we reach or exceed `end`. Defaults to the maximum data value. Like `start`, for dates use a date string, and for category data `end` is based on the category serial numbers." - }, - "size": { - "valType": "any", - "role": "style", - "editType": "calc", - "description": "Sets the size of each y axis bin. Default behavior: If `nbinsy` is 0 or omitted, we choose a nice round bin size such that the number of bins is about the same as the typical number of samples in each bin. If `nbinsy` is provided, we choose a nice round bin size giving no more than that many bins. For date data, use milliseconds or *M* for months, as in `axis.dtick`. For category data, the number of categories to bin together (always defaults to 1). " - }, - "editType": "calc", - "role": "object" - }, - "autobinx": { - "valType": "boolean", - "dflt": null, - "role": "style", - "editType": "calc", - "description": "Obsolete: since v1.42 each bin attribute is auto-determined separately and `autobinx` is not needed. However, we accept `autobinx: true` or `false` and will update `xbins` accordingly before deleting `autobinx` from the trace." - }, - "autobiny": { - "valType": "boolean", - "dflt": null, - "role": "style", - "editType": "calc", - "description": "Obsolete: since v1.42 each bin attribute is auto-determined separately and `autobiny` is not needed. However, we accept `autobiny: true` or `false` and will update `ybins` accordingly before deleting `autobiny` from the trace." - }, - "bingroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Set the `xbingroup` and `ybingroup` default prefix For example, setting a `bingroup` of *1* on two histogram2d traces will make them their x-bins and y-bins match separately." - }, - "xbingroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Set a group of histogram traces which will have compatible x-bin settings. Using `xbingroup`, histogram2d and histogram2dcontour traces (on axes of the same axis type) can have compatible x-bin settings. Note that the same `xbingroup` value can be used to set (1D) histogram `bingroup`" - }, - "ybingroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Set a group of histogram traces which will have compatible y-bin settings. Using `ybingroup`, histogram2d and histogram2dcontour traces (on axes of the same axis type) can have compatible y-bin settings. Note that the same `ybingroup` value can be used to set (1D) histogram `bingroup`" - }, - "xgap": { - "valType": "number", - "dflt": 0, - "min": 0, - "role": "style", - "editType": "plot", - "description": "Sets the horizontal gap (in pixels) between bricks." - }, - "ygap": { - "valType": "number", - "dflt": 0, - "min": 0, - "role": "style", - "editType": "plot", - "description": "Sets the vertical gap (in pixels) between bricks." - }, - "zsmooth": { - "valType": "enumerated", - "values": [ - "fast", - "best", - false - ], - "dflt": false, - "role": "style", - "editType": "calc", - "description": "Picks a smoothing algorithm use to smooth `z` data." - }, - "zhoverformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "none", - "description": "Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format" - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variable `z` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "zauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user." - }, - "zmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "zauto": false - }, - "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well." - }, - "zmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "zauto": false - }, - "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well." - }, - "zmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`zmin` and `zmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "colorbars" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "colorbars" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "colorbars" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "colorbars" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "colorbars" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "colorbars" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "colorbars" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "colorbars" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "colorbars" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "colorbars" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "colorbars", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "colorbars", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "colorbars", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "colorbars" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "colorbars", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "colorbars", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "colorbars", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "colorbars" - }, - { - "valType": "any", - "editType": "colorbars" - } - ], - "editType": "colorbars", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "colorbars", - "name": { - "valType": "string", - "role": "style", - "editType": "colorbars", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "colorbars", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "colorbars", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "colorbars", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "colorbars", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars" - }, - "editType": "colorbars", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "colorbars" - } - }, - "editType": "colorbars", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "xcalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `x` date data." - }, - "ycalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `y` date data." - }, - "xaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." - }, - "yaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "ysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for y .", - "editType": "none" - }, - "zsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for z .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - } - } + "role": "object" + } + }, + "role": "object" + }, + "hoverformat": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "showline": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not a line bounding this axis is drawn." + }, + "linecolor": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the axis line color." + }, + "linewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the width (in px) of the axis line." + }, + "showgrid": { + "valType": "boolean", + "editType": "plot", + "description": "Determines whether or not grid lines are drawn. If *true*, the grid lines are drawn at every tick mark.", + "dflt": true + }, + "gridcolor": { + "valType": "color", + "dflt": "#eee", + "editType": "plot", + "description": "Sets the color of the grid lines." + }, + "gridwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the width (in px) of the grid lines." + }, + "layer": { + "valType": "enumerated", + "values": [ + "above traces", + "below traces" + ], + "dflt": "above traces", + "editType": "plot", + "description": "Sets the layer on which this axis is displayed. If *above traces*, this axis is displayed above all the subplot's traces If *below traces*, this axis is displayed below all the subplot's traces, but above the grid lines. Useful when used together with scatter-like traces with `cliponaxis` set to *false* to show markers and/or text nodes above this axis." + }, + "min": { + "valType": "number", + "dflt": 0, + "min": 0, + "description": "The minimum value visible on this axis. The maximum is determined by the sum minus the minimum values of the other two axes. The full view corresponds to all the minima set to zero.", + "editType": "plot" + }, + "_deprecated": { + "title": { + "valType": "string", + "editType": "plot", + "description": "Value of `title` is no longer a simple *string* but a set of sub-attributes. To set the axis' title, please use `title.text` now." + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Former `titlefont` is now the sub-attribute `font` of `title`. To customize title font properties, please use `title.font` now." + } + }, + "editType": "plot", + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of user-driven changes in axis `min`, and `title` if in `editable: true` configuration. Defaults to `ternary.uirevision`." + }, + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "baxis": { + "title": { + "text": { + "valType": "string", + "editType": "plot", + "description": "Sets the title of this axis. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Sets this axis' title font. Note that the title's font used to be customized by the now deprecated `titlefont` attribute.", + "role": "object" + }, + "editType": "plot", + "role": "object" + }, + "color": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "plot", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 1, + "dflt": 6, + "editType": "plot", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "plot", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "plot", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "plot", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines." + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "plot", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not the tick labels are drawn." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets a tick label prefix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets a tick label suffix." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "plot", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "plot", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "If \"true\", even 4-digit integers are separated" + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Sets the tick font.", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "plot", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." }, - "histogram2dcontour": { - "meta": { - "hrName": "histogram_2d_contour", - "description": "The sample data from which statistics are computed is set in `x` and `y` (where `x` and `y` represent marginal distributions, binning is set in `xbins` and `ybins` in this case) or `z` (where `z` represent the 2D distribution and binning set, binning is set by `x` and `y` in this case). The resulting distribution is visualized as a contour plot." - }, - "categories": [ - "cartesian", - "svg", - "2dMap", - "contour", - "histogram", - "showLegend" - ], - "animatable": false, - "type": "histogram2dcontour", - "attributes": { - "type": "histogram2dcontour", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "x": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the sample data to be binned on the x axis.", - "role": "data" - }, - "y": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the sample data to be binned on the y axis.", - "role": "data" - }, - "z": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the aggregation data.", - "role": "data" - }, - "marker": { - "color": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the aggregation data.", - "role": "data" - }, - "editType": "calc", - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "histnorm": { - "valType": "enumerated", - "values": [ - "", - "percent", - "probability", - "density", - "probability density" - ], - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Specifies the type of normalization used for this histogram trace. If **, the span of each bar corresponds to the number of occurrences (i.e. the number of data points lying inside the bins). If *percent* / *probability*, the span of each bar corresponds to the percentage / fraction of occurrences with respect to the total number of sample points (here, the sum of all bin HEIGHTS equals 100% / 1). If *density*, the span of each bar corresponds to the number of occurrences in a bin divided by the size of the bin interval (here, the sum of all bin AREAS equals the total number of sample points). If *probability density*, the area of each bar corresponds to the probability that an event will fall into the corresponding bin (here, the sum of all bin AREAS equals 1)." - }, - "histfunc": { - "valType": "enumerated", - "values": [ - "count", - "sum", - "avg", - "min", - "max" - ], - "role": "style", - "dflt": "count", - "editType": "calc", - "description": "Specifies the binning function used for this histogram trace. If *count*, the histogram values are computed by counting the number of values lying inside each bin. If *sum*, *avg*, *min*, *max*, the histogram values are computed using the sum, the average, the minimum or the maximum of the values lying inside each bin respectively." - }, - "nbinsx": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Specifies the maximum number of desired bins. This value will be used in an algorithm that will decide the optimal bin size such that the histogram best visualizes the distribution of the data. Ignored if `xbins.size` is provided." - }, - "xbins": { - "start": { - "valType": "any", - "role": "style", - "editType": "calc", - "description": "Sets the starting value for the x axis bins. Defaults to the minimum data value, shifted down if necessary to make nice round values and to remove ambiguous bin edges. For example, if most of the data is integers we shift the bin edges 0.5 down, so a `size` of 5 would have a default `start` of -0.5, so it is clear that 0-4 are in the first bin, 5-9 in the second, but continuous data gets a start of 0 and bins [0,5), [5,10) etc. Dates behave similarly, and `start` should be a date string. For category data, `start` is based on the category serial numbers, and defaults to -0.5. " - }, - "end": { - "valType": "any", - "role": "style", - "editType": "calc", - "description": "Sets the end value for the x axis bins. The last bin may not end exactly at this value, we increment the bin edge by `size` from `start` until we reach or exceed `end`. Defaults to the maximum data value. Like `start`, for dates use a date string, and for category data `end` is based on the category serial numbers." - }, - "size": { - "valType": "any", - "role": "style", - "editType": "calc", - "description": "Sets the size of each x axis bin. Default behavior: If `nbinsx` is 0 or omitted, we choose a nice round bin size such that the number of bins is about the same as the typical number of samples in each bin. If `nbinsx` is provided, we choose a nice round bin size giving no more than that many bins. For date data, use milliseconds or *M* for months, as in `axis.dtick`. For category data, the number of categories to bin together (always defaults to 1). " - }, - "editType": "calc", - "role": "object" - }, - "nbinsy": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Specifies the maximum number of desired bins. This value will be used in an algorithm that will decide the optimal bin size such that the histogram best visualizes the distribution of the data. Ignored if `ybins.size` is provided." - }, - "ybins": { - "start": { - "valType": "any", - "role": "style", - "editType": "calc", - "description": "Sets the starting value for the y axis bins. Defaults to the minimum data value, shifted down if necessary to make nice round values and to remove ambiguous bin edges. For example, if most of the data is integers we shift the bin edges 0.5 down, so a `size` of 5 would have a default `start` of -0.5, so it is clear that 0-4 are in the first bin, 5-9 in the second, but continuous data gets a start of 0 and bins [0,5), [5,10) etc. Dates behave similarly, and `start` should be a date string. For category data, `start` is based on the category serial numbers, and defaults to -0.5. " - }, - "end": { - "valType": "any", - "role": "style", - "editType": "calc", - "description": "Sets the end value for the y axis bins. The last bin may not end exactly at this value, we increment the bin edge by `size` from `start` until we reach or exceed `end`. Defaults to the maximum data value. Like `start`, for dates use a date string, and for category data `end` is based on the category serial numbers." - }, - "size": { - "valType": "any", - "role": "style", - "editType": "calc", - "description": "Sets the size of each y axis bin. Default behavior: If `nbinsy` is 0 or omitted, we choose a nice round bin size such that the number of bins is about the same as the typical number of samples in each bin. If `nbinsy` is provided, we choose a nice round bin size giving no more than that many bins. For date data, use milliseconds or *M* for months, as in `axis.dtick`. For category data, the number of categories to bin together (always defaults to 1). " - }, - "editType": "calc", - "role": "object" - }, - "autobinx": { - "valType": "boolean", - "dflt": null, - "role": "style", - "editType": "calc", - "description": "Obsolete: since v1.42 each bin attribute is auto-determined separately and `autobinx` is not needed. However, we accept `autobinx: true` or `false` and will update `xbins` accordingly before deleting `autobinx` from the trace." - }, - "autobiny": { - "valType": "boolean", - "dflt": null, - "role": "style", - "editType": "calc", - "description": "Obsolete: since v1.42 each bin attribute is auto-determined separately and `autobiny` is not needed. However, we accept `autobiny: true` or `false` and will update `ybins` accordingly before deleting `autobiny` from the trace." - }, - "bingroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Set the `xbingroup` and `ybingroup` default prefix For example, setting a `bingroup` of *1* on two histogram2d traces will make them their x-bins and y-bins match separately." - }, - "xbingroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Set a group of histogram traces which will have compatible x-bin settings. Using `xbingroup`, histogram2d and histogram2dcontour traces (on axes of the same axis type) can have compatible x-bin settings. Note that the same `xbingroup` value can be used to set (1D) histogram `bingroup`" - }, - "ybingroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Set a group of histogram traces which will have compatible y-bin settings. Using `ybingroup`, histogram2d and histogram2dcontour traces (on axes of the same axis type) can have compatible y-bin settings. Note that the same `ybingroup` value can be used to set (1D) histogram `bingroup`" - }, - "autocontour": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the contour level attributes are picked by an algorithm. If *true*, the number of contour levels can be set in `ncontours`. If *false*, set the contour level attributes in `contours`." - }, - "ncontours": { - "valType": "integer", - "dflt": 15, - "min": 1, - "role": "style", - "editType": "calc", - "description": "Sets the maximum number of contour levels. The actual number of contours will be chosen automatically to be less than or equal to the value of `ncontours`. Has an effect only if `autocontour` is *true* or if `contours.size` is missing." - }, - "contours": { - "type": { - "valType": "enumerated", - "values": [ - "levels", - "constraint" - ], - "dflt": "levels", - "role": "info", - "editType": "calc", - "description": "If `levels`, the data is represented as a contour plot with multiple levels displayed. If `constraint`, the data is represented as constraints with the invalid region shaded as specified by the `operation` and `value` parameters." - }, - "start": { - "valType": "number", - "dflt": null, - "role": "style", - "editType": "plot", - "impliedEdits": { - "^autocontour": false - }, - "description": "Sets the starting contour level value. Must be less than `contours.end`" - }, - "end": { - "valType": "number", - "dflt": null, - "role": "style", - "editType": "plot", - "impliedEdits": { - "^autocontour": false - }, - "description": "Sets the end contour level value. Must be more than `contours.start`" - }, - "size": { - "valType": "number", - "dflt": null, - "min": 0, - "role": "style", - "editType": "plot", - "impliedEdits": { - "^autocontour": false - }, - "description": "Sets the step between each contour level. Must be positive." - }, - "coloring": { - "valType": "enumerated", - "values": [ - "fill", - "heatmap", - "lines", - "none" - ], - "dflt": "fill", - "role": "style", - "editType": "calc", - "description": "Determines the coloring method showing the contour values. If *fill*, coloring is done evenly between each contour level If *heatmap*, a heatmap gradient coloring is applied between each contour level. If *lines*, coloring is done on the contour lines. If *none*, no coloring is applied on this trace." - }, - "showlines": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "plot", - "description": "Determines whether or not the contour lines are drawn. Has an effect only if `contours.coloring` is set to *fill*." - }, - "showlabels": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "plot", - "description": "Determines whether to label the contour lines with their values." - }, - "labelfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style" - }, - "editType": "plot", - "description": "Sets the font used for labeling the contour levels. The default color comes from the lines, if shown. The default family and size come from `layout.font`.", - "role": "object" - }, - "labelformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets the contour label formatting rule using d3 formatting mini-language which is very similar to Python, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format" - }, - "operation": { - "valType": "enumerated", - "values": [ - "=", - "<", - ">=", - ">", - "<=", - "[]", - "()", - "[)", - "(]", - "][", - ")(", - "](", - ")[" - ], - "role": "info", - "dflt": "=", - "editType": "calc", - "description": "Sets the constraint operation. *=* keeps regions equal to `value` *<* and *<=* keep regions less than `value` *>* and *>=* keep regions greater than `value` *[]*, *()*, *[)*, and *(]* keep regions inside `value[0]` to `value[1]` *][*, *)(*, *](*, *)[* keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter transforms." - }, - "value": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values (=,<,>=,>,<=) *value* is expected to be a number. When `operation` is set to one of the interval values ([],(),[),(],][,)(,](,)[) *value* is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound." - }, - "editType": "calc", - "impliedEdits": { - "autocontour": false, - "role": "object" - }, - "role": "object" - }, - "line": { - "color": { - "valType": "color", - "role": "style", - "editType": "style+colorbars", - "description": "Sets the color of the contour level. Has no effect if `contours.coloring` is set to *lines*." - }, - "width": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "style+colorbars", - "description": "Sets the contour line width in (in px)", - "dflt": 0.5 - }, - "dash": { - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ], - "dflt": "solid", - "role": "style", - "editType": "style", - "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." - }, - "smoothing": { - "valType": "number", - "min": 0, - "max": 1.3, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the amount of smoothing for the contour lines, where *0* corresponds to no smoothing." - }, - "editType": "plot", - "role": "object" - }, - "zhoverformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "none", - "description": "Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format" - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variable `z` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "zauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user." - }, - "zmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "zauto": false - }, - "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well." - }, - "zmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "zauto": false - }, - "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well." - }, - "zmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`zmin` and `zmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "colorbars" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "colorbars" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "colorbars" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "colorbars" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "colorbars" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "colorbars" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "colorbars" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "colorbars" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "colorbars" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "colorbars" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "colorbars", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "colorbars", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "colorbars", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "colorbars" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "colorbars", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "colorbars", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "colorbars", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "colorbars" - }, - { - "valType": "any", - "editType": "colorbars" - } - ], - "editType": "colorbars", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "colorbars", - "name": { - "valType": "string", - "role": "style", - "editType": "colorbars", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "colorbars", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "colorbars", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "colorbars", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "colorbars", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars" - }, - "editType": "colorbars", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "colorbars" - } - }, - "editType": "colorbars", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "xcalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `x` date data." - }, - "ycalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `y` date data." - }, - "xaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." - }, - "yaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "ysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for y .", - "editType": "none" - }, - "zsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for z .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - } - } + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "plot" + }, + { + "valType": "any", + "editType": "plot" + } + ], + "editType": "plot", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" }, - "contour": { - "meta": { - "description": "The data from which contour lines are computed is set in `z`. Data in `z` must be a {2D array} of numbers. Say that `z` has N rows and M columns, then by default, these N rows correspond to N y coordinates (set in `y` or auto-generated) and the M columns correspond to M x coordinates (set in `x` or auto-generated). By setting `transpose` to *true*, the above behavior is flipped." - }, - "categories": [ - "cartesian", - "svg", - "2dMap", - "contour", - "showLegend" - ], - "animatable": false, - "type": "contour", - "attributes": { - "type": "contour", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "z": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the z data.", - "role": "data" - }, - "x": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the x coordinates.", - "impliedEdits": { - "xtype": "array" - }, - "role": "data" - }, - "x0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step.", - "impliedEdits": { - "xtype": "scaled" - } - }, - "dx": { - "valType": "number", - "dflt": 1, - "role": "info", - "editType": "calc", - "description": "Sets the x coordinate step. See `x0` for more info.", - "impliedEdits": { - "xtype": "scaled" - } - }, - "y": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the y coordinates.", - "impliedEdits": { - "ytype": "array" - }, - "role": "data" - }, - "y0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step.", - "impliedEdits": { - "ytype": "scaled" - } - }, - "dy": { - "valType": "number", - "dflt": 1, - "role": "info", - "editType": "calc", - "description": "Sets the y coordinate step. See `y0` for more info.", - "impliedEdits": { - "ytype": "scaled" - } - }, - "xperiod": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", - "impliedEdits": { - "xtype": "scaled" - } - }, - "yperiod": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer.", - "impliedEdits": { - "ytype": "scaled" - } - }, - "xperiod0": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." - }, - "yperiod0": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." - }, - "xperiodalignment": { - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ], - "dflt": "middle", - "role": "style", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis.", - "impliedEdits": { - "xtype": "scaled" - } - }, - "yperiodalignment": { - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ], - "dflt": "middle", - "role": "style", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis.", - "impliedEdits": { - "ytype": "scaled" - } - }, - "text": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the text elements associated with each z value.", - "role": "data" - }, - "hovertext": { - "valType": "data_array", - "editType": "calc", - "description": "Same as `text`.", - "role": "data" - }, - "transpose": { - "valType": "boolean", - "dflt": false, - "role": "info", - "editType": "calc", - "description": "Transposes the z data." - }, - "xtype": { - "valType": "enumerated", - "values": [ - "array", - "scaled" - ], - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "If *array*, the heatmap's x coordinates are given by *x* (the default behavior when `x` is provided). If *scaled*, the heatmap's x coordinates are given by *x0* and *dx* (the default behavior when `x` is not provided)." - }, - "ytype": { - "valType": "enumerated", - "values": [ - "array", - "scaled" - ], - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "If *array*, the heatmap's y coordinates are given by *y* (the default behavior when `y` is provided) If *scaled*, the heatmap's y coordinates are given by *y0* and *dy* (the default behavior when `y` is not provided)" - }, - "zhoverformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "none", - "description": "Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format" - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "hoverongaps": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "none", - "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the `z` data have hover labels associated with them." - }, - "connectgaps": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the `z` data are filled in. It is defaulted to true if `z` is a one dimensional array otherwise it is defaulted to false." - }, - "fillcolor": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the fill color if `contours.type` is *constraint*. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." - }, - "autocontour": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the contour level attributes are picked by an algorithm. If *true*, the number of contour levels can be set in `ncontours`. If *false*, set the contour level attributes in `contours`." - }, - "ncontours": { - "valType": "integer", - "dflt": 15, - "min": 1, - "role": "style", - "editType": "calc", - "description": "Sets the maximum number of contour levels. The actual number of contours will be chosen automatically to be less than or equal to the value of `ncontours`. Has an effect only if `autocontour` is *true* or if `contours.size` is missing." - }, - "contours": { - "type": { - "valType": "enumerated", - "values": [ - "levels", - "constraint" - ], - "dflt": "levels", - "role": "info", - "editType": "calc", - "description": "If `levels`, the data is represented as a contour plot with multiple levels displayed. If `constraint`, the data is represented as constraints with the invalid region shaded as specified by the `operation` and `value` parameters." - }, - "start": { - "valType": "number", - "dflt": null, - "role": "style", - "editType": "plot", - "impliedEdits": { - "^autocontour": false - }, - "description": "Sets the starting contour level value. Must be less than `contours.end`" - }, - "end": { - "valType": "number", - "dflt": null, - "role": "style", - "editType": "plot", - "impliedEdits": { - "^autocontour": false - }, - "description": "Sets the end contour level value. Must be more than `contours.start`" - }, - "size": { - "valType": "number", - "dflt": null, - "min": 0, - "role": "style", - "editType": "plot", - "impliedEdits": { - "^autocontour": false - }, - "description": "Sets the step between each contour level. Must be positive." - }, - "coloring": { - "valType": "enumerated", - "values": [ - "fill", - "heatmap", - "lines", - "none" - ], - "dflt": "fill", - "role": "style", - "editType": "calc", - "description": "Determines the coloring method showing the contour values. If *fill*, coloring is done evenly between each contour level If *heatmap*, a heatmap gradient coloring is applied between each contour level. If *lines*, coloring is done on the contour lines. If *none*, no coloring is applied on this trace." - }, - "showlines": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "plot", - "description": "Determines whether or not the contour lines are drawn. Has an effect only if `contours.coloring` is set to *fill*." - }, - "showlabels": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "plot", - "description": "Determines whether to label the contour lines with their values." - }, - "labelfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style" - }, - "editType": "plot", - "description": "Sets the font used for labeling the contour levels. The default color comes from the lines, if shown. The default family and size come from `layout.font`.", - "role": "object" - }, - "labelformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets the contour label formatting rule using d3 formatting mini-language which is very similar to Python, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format" - }, - "operation": { - "valType": "enumerated", - "values": [ - "=", - "<", - ">=", - ">", - "<=", - "[]", - "()", - "[)", - "(]", - "][", - ")(", - "](", - ")[" - ], - "role": "info", - "dflt": "=", - "editType": "calc", - "description": "Sets the constraint operation. *=* keeps regions equal to `value` *<* and *<=* keep regions less than `value` *>* and *>=* keep regions greater than `value` *[]*, *()*, *[)*, and *(]* keep regions inside `value[0]` to `value[1]` *][*, *)(*, *](*, *)[* keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter transforms." - }, - "value": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values (=,<,>=,>,<=) *value* is expected to be a number. When `operation` is set to one of the interval values ([],(),[),(],][,)(,](,)[) *value* is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound." - }, - "editType": "calc", - "impliedEdits": { - "autocontour": false, - "role": "object" - }, - "role": "object" - }, - "line": { - "color": { - "valType": "color", - "role": "style", - "editType": "style+colorbars", - "description": "Sets the color of the contour level. Has no effect if `contours.coloring` is set to *lines*." - }, - "width": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "style+colorbars", - "description": "Sets the contour line width in (in px) Defaults to *0.5* when `contours.type` is *levels*. Defaults to *2* when `contour.type` is *constraint*." - }, - "dash": { - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ], - "dflt": "solid", - "role": "style", - "editType": "style", - "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." - }, - "smoothing": { - "valType": "number", - "min": 0, - "max": 1.3, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the amount of smoothing for the contour lines, where *0* corresponds to no smoothing." - }, - "editType": "plot", - "role": "object" - }, - "zauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user." - }, - "zmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "zauto": false - }, - "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well." - }, - "zmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "zauto": false - }, - "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well." - }, - "zmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`zmin` and `zmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "colorbars" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "colorbars" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "colorbars" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "colorbars" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "colorbars" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "colorbars" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "colorbars" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "colorbars" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "colorbars" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "colorbars" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "colorbars", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "colorbars", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "colorbars", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "colorbars" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "colorbars", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "colorbars", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "colorbars", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "colorbars" - }, - { - "valType": "any", - "editType": "colorbars" - } - ], - "editType": "colorbars", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "colorbars", - "name": { - "valType": "string", - "role": "style", - "editType": "colorbars", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "colorbars", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "colorbars", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "colorbars", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "colorbars", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars" - }, - "editType": "colorbars", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "colorbars" - } - }, - "editType": "colorbars", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "xcalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `x` date data." - }, - "ycalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `y` date data." - }, - "xaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." - }, - "yaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "zsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for z .", - "editType": "none" - }, - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "ysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for y .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - } - } + "value": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" }, - "scatterternary": { - "meta": { - "hrName": "scatter_ternary", - "description": "Provides similar functionality to the *scatter* type but on a ternary phase diagram. The data is provided by at least two arrays out of `a`, `b`, `c` triplets." - }, - "categories": [ - "ternary", - "symbols", - "showLegend", - "scatter-like" - ], - "animatable": false, - "type": "scatterternary", - "attributes": { - "type": "scatterternary", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "selectedpoints": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "a": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the quantity of component `a` in each data point. If `a`, `b`, and `c` are all provided, they need not be normalized, only the relative values matter. If only two arrays are provided they must be normalized to match `ternary.sum`.", - "role": "data" - }, - "b": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the quantity of component `a` in each data point. If `a`, `b`, and `c` are all provided, they need not be normalized, only the relative values matter. If only two arrays are provided they must be normalized to match `ternary.sum`.", - "role": "data" - }, - "c": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the quantity of component `a` in each data point. If `a`, `b`, and `c` are all provided, they need not be normalized, only the relative values matter. If only two arrays are provided they must be normalized to match `ternary.sum`.", - "role": "data" - }, - "sum": { - "valType": "number", - "role": "info", - "dflt": 0, - "min": 0, - "editType": "calc", - "description": "The number each triplet should sum to, if only two of `a`, `b`, and `c` are provided. This overrides `ternary.sum` to normalize this specific trace, but does not affect the values displayed on the axes. 0 (or missing) means to use ternary.sum" - }, - "mode": { - "valType": "flaglist", - "flags": [ - "lines", - "markers", - "text" - ], - "extras": [ - "none" - ], - "role": "info", - "editType": "calc", - "description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover. If there are less than 20 points and the trace is not stacked then the default is *lines+markers*. Otherwise, *lines*.", - "dflt": "markers" - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets text elements associated with each (a,b,c) point. If a single string, the same string appears over all the data points. If an array of strings, the items are mapped in order to the the data points in (a,b,c). If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." - }, - "texttemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "plot", - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `a`, `b`, `c` and `text`.", - "arrayOk": true - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "style", - "description": "Sets hover text elements associated with each (a,b,c) point. If a single string, the same string appears over all the data points. If an array of strings, the items are mapped in order to the the data points in (a,b,c). To be seen, trace `hoverinfo` must contain a *text* flag." - }, - "line": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the line color." - }, - "width": { - "valType": "number", - "min": 0, - "dflt": 2, - "role": "style", - "editType": "style", - "description": "Sets the line width (in px)." - }, - "dash": { - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ], - "dflt": "solid", - "role": "style", - "editType": "style", - "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." - }, - "shape": { - "valType": "enumerated", - "values": [ - "linear", - "spline" - ], - "dflt": "linear", - "role": "style", - "editType": "plot", - "description": "Determines the line shape. With *spline* the lines are drawn using spline interpolation. The other available values correspond to step-wise line shapes." - }, - "smoothing": { - "valType": "number", - "min": 0, - "max": 1.3, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Has an effect only if `shape` is set to *spline* Sets the amount of smoothing. *0* corresponds to no smoothing (equivalent to a *linear* shape)." - }, - "editType": "calc", - "role": "object" - }, - "connectgaps": { - "valType": "boolean", - "dflt": false, - "role": "info", - "editType": "calc", - "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected." - }, - "cliponaxis": { - "valType": "boolean", - "dflt": true, - "role": "info", - "editType": "plot", - "description": "Determines whether or not markers and text nodes are clipped about the subplot axes. To show markers and text nodes above axis lines and tick labels, make sure to set `xaxis.layer` and `yaxis.layer` to *below traces*." - }, - "fill": { - "valType": "enumerated", - "values": [ - "none", - "toself", - "tonext" - ], - "role": "style", - "editType": "calc", - "description": "Sets the area to fill with a solid color. Use with `fillcolor` if not *none*. scatterternary has a subset of the options available to scatter. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape. *tonext* fills the space between two traces if one completely encloses the other (eg consecutive contour lines), and behaves like *toself* if there is no trace before it. *tonext* should not be used if one trace does not enclose the other.", - "dflt": "none" - }, - "fillcolor": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." - }, - "marker": { - "symbol": { - "valType": "enumerated", - "values": [ - 0, - "0", - "circle", - 100, - "100", - "circle-open", - 200, - "200", - "circle-dot", - 300, - "300", - "circle-open-dot", - 1, - "1", - "square", - 101, - "101", - "square-open", - 201, - "201", - "square-dot", - 301, - "301", - "square-open-dot", - 2, - "2", - "diamond", - 102, - "102", - "diamond-open", - 202, - "202", - "diamond-dot", - 302, - "302", - "diamond-open-dot", - 3, - "3", - "cross", - 103, - "103", - "cross-open", - 203, - "203", - "cross-dot", - 303, - "303", - "cross-open-dot", - 4, - "4", - "x", - 104, - "104", - "x-open", - 204, - "204", - "x-dot", - 304, - "304", - "x-open-dot", - 5, - "5", - "triangle-up", - 105, - "105", - "triangle-up-open", - 205, - "205", - "triangle-up-dot", - 305, - "305", - "triangle-up-open-dot", - 6, - "6", - "triangle-down", - 106, - "106", - "triangle-down-open", - 206, - "206", - "triangle-down-dot", - 306, - "306", - "triangle-down-open-dot", - 7, - "7", - "triangle-left", - 107, - "107", - "triangle-left-open", - 207, - "207", - "triangle-left-dot", - 307, - "307", - "triangle-left-open-dot", - 8, - "8", - "triangle-right", - 108, - "108", - "triangle-right-open", - 208, - "208", - "triangle-right-dot", - 308, - "308", - "triangle-right-open-dot", - 9, - "9", - "triangle-ne", - 109, - "109", - "triangle-ne-open", - 209, - "209", - "triangle-ne-dot", - 309, - "309", - "triangle-ne-open-dot", - 10, - "10", - "triangle-se", - 110, - "110", - "triangle-se-open", - 210, - "210", - "triangle-se-dot", - 310, - "310", - "triangle-se-open-dot", - 11, - "11", - "triangle-sw", - 111, - "111", - "triangle-sw-open", - 211, - "211", - "triangle-sw-dot", - 311, - "311", - "triangle-sw-open-dot", - 12, - "12", - "triangle-nw", - 112, - "112", - "triangle-nw-open", - 212, - "212", - "triangle-nw-dot", - 312, - "312", - "triangle-nw-open-dot", - 13, - "13", - "pentagon", - 113, - "113", - "pentagon-open", - 213, - "213", - "pentagon-dot", - 313, - "313", - "pentagon-open-dot", - 14, - "14", - "hexagon", - 114, - "114", - "hexagon-open", - 214, - "214", - "hexagon-dot", - 314, - "314", - "hexagon-open-dot", - 15, - "15", - "hexagon2", - 115, - "115", - "hexagon2-open", - 215, - "215", - "hexagon2-dot", - 315, - "315", - "hexagon2-open-dot", - 16, - "16", - "octagon", - 116, - "116", - "octagon-open", - 216, - "216", - "octagon-dot", - 316, - "316", - "octagon-open-dot", - 17, - "17", - "star", - 117, - "117", - "star-open", - 217, - "217", - "star-dot", - 317, - "317", - "star-open-dot", - 18, - "18", - "hexagram", - 118, - "118", - "hexagram-open", - 218, - "218", - "hexagram-dot", - 318, - "318", - "hexagram-open-dot", - 19, - "19", - "star-triangle-up", - 119, - "119", - "star-triangle-up-open", - 219, - "219", - "star-triangle-up-dot", - 319, - "319", - "star-triangle-up-open-dot", - 20, - "20", - "star-triangle-down", - 120, - "120", - "star-triangle-down-open", - 220, - "220", - "star-triangle-down-dot", - 320, - "320", - "star-triangle-down-open-dot", - 21, - "21", - "star-square", - 121, - "121", - "star-square-open", - 221, - "221", - "star-square-dot", - 321, - "321", - "star-square-open-dot", - 22, - "22", - "star-diamond", - 122, - "122", - "star-diamond-open", - 222, - "222", - "star-diamond-dot", - 322, - "322", - "star-diamond-open-dot", - 23, - "23", - "diamond-tall", - 123, - "123", - "diamond-tall-open", - 223, - "223", - "diamond-tall-dot", - 323, - "323", - "diamond-tall-open-dot", - 24, - "24", - "diamond-wide", - 124, - "124", - "diamond-wide-open", - 224, - "224", - "diamond-wide-dot", - 324, - "324", - "diamond-wide-open-dot", - 25, - "25", - "hourglass", - 125, - "125", - "hourglass-open", - 26, - "26", - "bowtie", - 126, - "126", - "bowtie-open", - 27, - "27", - "circle-cross", - 127, - "127", - "circle-cross-open", - 28, - "28", - "circle-x", - 128, - "128", - "circle-x-open", - 29, - "29", - "square-cross", - 129, - "129", - "square-cross-open", - 30, - "30", - "square-x", - 130, - "130", - "square-x-open", - 31, - "31", - "diamond-cross", - 131, - "131", - "diamond-cross-open", - 32, - "32", - "diamond-x", - 132, - "132", - "diamond-x-open", - 33, - "33", - "cross-thin", - 133, - "133", - "cross-thin-open", - 34, - "34", - "x-thin", - 134, - "134", - "x-thin-open", - 35, - "35", - "asterisk", - 135, - "135", - "asterisk-open", - 36, - "36", - "hash", - 136, - "136", - "hash-open", - 236, - "236", - "hash-dot", - 336, - "336", - "hash-open-dot", - 37, - "37", - "y-up", - 137, - "137", - "y-up-open", - 38, - "38", - "y-down", - 138, - "138", - "y-down-open", - 39, - "39", - "y-left", - 139, - "139", - "y-left-open", - 40, - "40", - "y-right", - 140, - "140", - "y-right-open", - 41, - "41", - "line-ew", - 141, - "141", - "line-ew-open", - 42, - "42", - "line-ns", - 142, - "142", - "line-ns-open", - 43, - "43", - "line-ne", - 143, - "143", - "line-ne-open", - 44, - "44", - "line-nw", - 144, - "144", - "line-nw-open", - 45, - "45", - "arrow-up", - 145, - "145", - "arrow-up-open", - 46, - "46", - "arrow-down", - 146, - "146", - "arrow-down-open", - 47, - "47", - "arrow-left", - 147, - "147", - "arrow-left-open", - 48, - "48", - "arrow-right", - 148, - "148", - "arrow-right-open", - 49, - "49", - "arrow-bar-up", - 149, - "149", - "arrow-bar-up-open", - 50, - "50", - "arrow-bar-down", - 150, - "150", - "arrow-bar-down-open", - 51, - "51", - "arrow-bar-left", - 151, - "151", - "arrow-bar-left-open", - 52, - "52", - "arrow-bar-right", - 152, - "152", - "arrow-bar-right-open" - ], - "dflt": "circle", - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name." - }, - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity." - }, - "maxdisplayed": { - "valType": "number", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "plot", - "description": "Sets a maximum number of points to be drawn on the graph. *0* corresponds to no limit." - }, - "size": { - "valType": "number", - "min": 0, - "dflt": 6, - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the marker size (in px)." - }, - "sizeref": { - "valType": "number", - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`." - }, - "sizemin": { - "valType": "number", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points." - }, - "sizemode": { - "valType": "enumerated", - "values": [ - "diameter", - "area" - ], - "dflt": "diameter", - "role": "info", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels." - }, - "line": { - "width": { - "valType": "number", - "min": 0, - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets the width (in px) of the lines bounding the marker points." - }, - "editType": "calc", - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "role": "object", - "widthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for width .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "gradient": { - "type": { - "valType": "enumerated", - "values": [ - "radial", - "horizontal", - "vertical", - "none" - ], - "arrayOk": true, - "dflt": "none", - "role": "style", - "editType": "calc", - "description": "Sets the type of gradient used to fill the markers" - }, - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the final color of the gradient fill: the center color for radial, the right for horizontal, or the bottom for vertical." - }, - "editType": "calc", - "role": "object", - "typesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for type .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "editType": "calc", - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "colorbars" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "colorbars" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "colorbars" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "colorbars" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "colorbars" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "colorbars" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "colorbars" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "colorbars" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "colorbars" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "colorbars" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "colorbars", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "colorbars", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "colorbars", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "colorbars" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "colorbars", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "colorbars", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "colorbars", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "colorbars" - }, - { - "valType": "any", - "editType": "colorbars" - } - ], - "editType": "colorbars", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "colorbars", - "name": { - "valType": "string", - "role": "style", - "editType": "colorbars", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "colorbars", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "colorbars", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "colorbars", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "colorbars", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars" - }, - "editType": "colorbars", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "colorbars" - } - }, - "editType": "colorbars", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "role": "object", - "symbolsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for symbol .", - "editType": "none" - }, - "opacitysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for opacity .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "textfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "arrayOk": true - }, - "editType": "calc", - "description": "Sets the text font.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "textposition": { - "valType": "enumerated", - "values": [ - "top left", - "top center", - "top right", - "middle left", - "middle center", - "middle right", - "bottom left", - "bottom center", - "bottom right" - ], - "dflt": "middle center", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates." - }, - "selected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity of selected points." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the marker color of selected points." - }, - "size": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "style", - "description": "Sets the marker size of selected points." - }, - "editType": "style", - "role": "object" - }, - "textfont": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the text font color of selected points." - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "unselected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity of unselected points, applied only when a selection exists." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the marker color of unselected points, applied only when a selection exists." - }, - "size": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "style", - "description": "Sets the marker size of unselected points, applied only when a selection exists." - }, - "editType": "style", - "role": "object" - }, - "textfont": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the text font color of unselected points, applied only when a selection exists." - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "a", - "b", - "c", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hoveron": { - "valType": "flaglist", - "flags": [ - "points", - "fills" - ], - "role": "info", - "editType": "style", - "description": "Do the hover effects highlight individual points (markers or line points) or do they highlight filled regions? If the fill is *toself* or *tonext* and there are no markers or text, then the default is *fills*, otherwise it is *points*." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "subplot": { - "valType": "subplotid", - "role": "info", - "dflt": "ternary", - "editType": "calc", - "description": "Sets a reference between this trace's data coordinates and a ternary subplot. If *ternary* (the default value), the data refer to `layout.ternary`. If *ternary2*, the data refer to `layout.ternary2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "asrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for a .", - "editType": "none" - }, - "bsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for b .", - "editType": "none" - }, - "csrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for c .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "texttemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "textpositionsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for textposition .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - } - } + "editType": "plot", + "name": { + "valType": "string", + "editType": "plot", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." }, - "violin": { - "meta": { - "description": "In vertical (horizontal) violin plots, statistics are computed using `y` (`x`) values. By supplying an `x` (`y`) array, one violin per distinct x (y) value is drawn If no `x` (`y`) {array} is provided, a single violin is drawn. That violin position is then positioned with with `name` or with `x0` (`y0`) if provided." - }, - "categories": [ - "cartesian", - "svg", - "symbols", - "oriented", - "box-violin", - "showLegend", - "violinLayout", - "zoomScale" - ], - "animatable": false, - "type": "violin", - "attributes": { - "type": "violin", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "selectedpoints": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "y": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the y sample data or coordinates. See overview for more info.", - "role": "data" - }, - "x": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the x sample data or coordinates. See overview for more info.", - "role": "data" - }, - "x0": { - "valType": "any", - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Sets the x coordinate for single-box traces or the starting coordinate for multi-box traces set using q1/median/q3. See overview for more info." - }, - "y0": { - "valType": "any", - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Sets the y coordinate for single-box traces or the starting coordinate for multi-box traces set using q1/median/q3. See overview for more info." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Sets the trace name. The trace name appear as the legend item and on hover. For violin traces, the name will also be used for the position coordinate, if `x` and `x0` (`y` and `y0` if horizontal) are missing and the position axis is categorical. Note that the trace name is also used as a default value for attribute `scalegroup` (please see its description for details)." - }, - "orientation": { - "valType": "enumerated", - "values": [ - "v", - "h" - ], - "role": "style", - "editType": "calc+clearAxisTypes", - "description": "Sets the orientation of the violin(s). If *v* (*h*), the distribution is visualized along the vertical (horizontal)." - }, - "bandwidth": { - "valType": "number", - "min": 0, - "role": "info", - "editType": "calc", - "description": "Sets the bandwidth used to compute the kernel density estimate. By default, the bandwidth is determined by Silverman's rule of thumb." - }, - "scalegroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "If there are multiple violins that should be sized according to to some metric (see `scalemode`), link them by providing a non-empty group id here shared by every trace in the same group. If a violin's `width` is undefined, `scalegroup` will default to the trace's name. In this case, violins with the same names will be linked together" - }, - "scalemode": { - "valType": "enumerated", - "values": [ - "width", - "count" - ], - "dflt": "width", - "role": "info", - "editType": "calc", - "description": "Sets the metric by which the width of each violin is determined.*width* means each violin has the same (max) width*count* means the violins are scaled by the number of sample points makingup each violin." - }, - "spanmode": { - "valType": "enumerated", - "values": [ - "soft", - "hard", - "manual" - ], - "dflt": "soft", - "role": "info", - "editType": "calc", - "description": "Sets the method by which the span in data space where the density function will be computed. *soft* means the span goes from the sample's minimum value minus two bandwidths to the sample's maximum value plus two bandwidths. *hard* means the span goes from the sample's minimum to its maximum value. For custom span settings, use mode *manual* and fill in the `span` attribute." - }, - "span": { - "valType": "info_array", - "items": [ - { - "valType": "any", - "editType": "calc" - }, - { - "valType": "any", - "editType": "calc" - } - ], - "role": "info", - "editType": "calc", - "description": "Sets the span in data space for which the density function will be computed. Has an effect only when `spanmode` is set to *manual*." - }, - "line": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the color of line bounding the violin(s)." - }, - "width": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 2, - "editType": "style", - "description": "Sets the width (in px) of line bounding the violin(s)." - }, - "editType": "plot", - "role": "object" - }, - "fillcolor": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." - }, - "points": { - "valType": "enumerated", - "values": [ - "all", - "outliers", - "suspectedoutliers", - false - ], - "role": "style", - "editType": "calc", - "description": "If *outliers*, only the sample points lying outside the whiskers are shown If *suspectedoutliers*, the outlier points are shown and points either less than 4*Q1-3*Q3 or greater than 4*Q3-3*Q1 are highlighted (see `outliercolor`) If *all*, all sample points are shown If *false*, only the violins are shown with no sample points. Defaults to *suspectedoutliers* when `marker.outliercolor` or `marker.line.outliercolor` is set, otherwise defaults to *outliers*." - }, - "jitter": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "calc", - "description": "Sets the amount of jitter in the sample points drawn. If *0*, the sample points align along the distribution axis. If *1*, the sample points are drawn in a random jitter of width equal to the width of the violins." - }, - "pointpos": { - "valType": "number", - "min": -2, - "max": 2, - "role": "style", - "editType": "calc", - "description": "Sets the position of the sample points in relation to the violins. If *0*, the sample points are places over the center of the violins. Positive (negative) values correspond to positions to the right (left) for vertical violins and above (below) for horizontal violins." - }, - "width": { - "valType": "number", - "min": 0, - "role": "info", - "dflt": 0, - "editType": "calc", - "description": "Sets the width of the violin in data coordinates. If *0* (default value) the width is automatically selected based on the positions of other violin traces in the same subplot." - }, - "marker": { - "outliercolor": { - "valType": "color", - "dflt": "rgba(0, 0, 0, 0)", - "role": "style", - "editType": "style", - "description": "Sets the color of the outlier sample points." - }, - "symbol": { - "valType": "enumerated", - "values": [ - 0, - "0", - "circle", - 100, - "100", - "circle-open", - 200, - "200", - "circle-dot", - 300, - "300", - "circle-open-dot", - 1, - "1", - "square", - 101, - "101", - "square-open", - 201, - "201", - "square-dot", - 301, - "301", - "square-open-dot", - 2, - "2", - "diamond", - 102, - "102", - "diamond-open", - 202, - "202", - "diamond-dot", - 302, - "302", - "diamond-open-dot", - 3, - "3", - "cross", - 103, - "103", - "cross-open", - 203, - "203", - "cross-dot", - 303, - "303", - "cross-open-dot", - 4, - "4", - "x", - 104, - "104", - "x-open", - 204, - "204", - "x-dot", - 304, - "304", - "x-open-dot", - 5, - "5", - "triangle-up", - 105, - "105", - "triangle-up-open", - 205, - "205", - "triangle-up-dot", - 305, - "305", - "triangle-up-open-dot", - 6, - "6", - "triangle-down", - 106, - "106", - "triangle-down-open", - 206, - "206", - "triangle-down-dot", - 306, - "306", - "triangle-down-open-dot", - 7, - "7", - "triangle-left", - 107, - "107", - "triangle-left-open", - 207, - "207", - "triangle-left-dot", - 307, - "307", - "triangle-left-open-dot", - 8, - "8", - "triangle-right", - 108, - "108", - "triangle-right-open", - 208, - "208", - "triangle-right-dot", - 308, - "308", - "triangle-right-open-dot", - 9, - "9", - "triangle-ne", - 109, - "109", - "triangle-ne-open", - 209, - "209", - "triangle-ne-dot", - 309, - "309", - "triangle-ne-open-dot", - 10, - "10", - "triangle-se", - 110, - "110", - "triangle-se-open", - 210, - "210", - "triangle-se-dot", - 310, - "310", - "triangle-se-open-dot", - 11, - "11", - "triangle-sw", - 111, - "111", - "triangle-sw-open", - 211, - "211", - "triangle-sw-dot", - 311, - "311", - "triangle-sw-open-dot", - 12, - "12", - "triangle-nw", - 112, - "112", - "triangle-nw-open", - 212, - "212", - "triangle-nw-dot", - 312, - "312", - "triangle-nw-open-dot", - 13, - "13", - "pentagon", - 113, - "113", - "pentagon-open", - 213, - "213", - "pentagon-dot", - 313, - "313", - "pentagon-open-dot", - 14, - "14", - "hexagon", - 114, - "114", - "hexagon-open", - 214, - "214", - "hexagon-dot", - 314, - "314", - "hexagon-open-dot", - 15, - "15", - "hexagon2", - 115, - "115", - "hexagon2-open", - 215, - "215", - "hexagon2-dot", - 315, - "315", - "hexagon2-open-dot", - 16, - "16", - "octagon", - 116, - "116", - "octagon-open", - 216, - "216", - "octagon-dot", - 316, - "316", - "octagon-open-dot", - 17, - "17", - "star", - 117, - "117", - "star-open", - 217, - "217", - "star-dot", - 317, - "317", - "star-open-dot", - 18, - "18", - "hexagram", - 118, - "118", - "hexagram-open", - 218, - "218", - "hexagram-dot", - 318, - "318", - "hexagram-open-dot", - 19, - "19", - "star-triangle-up", - 119, - "119", - "star-triangle-up-open", - 219, - "219", - "star-triangle-up-dot", - 319, - "319", - "star-triangle-up-open-dot", - 20, - "20", - "star-triangle-down", - 120, - "120", - "star-triangle-down-open", - 220, - "220", - "star-triangle-down-dot", - 320, - "320", - "star-triangle-down-open-dot", - 21, - "21", - "star-square", - 121, - "121", - "star-square-open", - 221, - "221", - "star-square-dot", - 321, - "321", - "star-square-open-dot", - 22, - "22", - "star-diamond", - 122, - "122", - "star-diamond-open", - 222, - "222", - "star-diamond-dot", - 322, - "322", - "star-diamond-open-dot", - 23, - "23", - "diamond-tall", - 123, - "123", - "diamond-tall-open", - 223, - "223", - "diamond-tall-dot", - 323, - "323", - "diamond-tall-open-dot", - 24, - "24", - "diamond-wide", - 124, - "124", - "diamond-wide-open", - 224, - "224", - "diamond-wide-dot", - 324, - "324", - "diamond-wide-open-dot", - 25, - "25", - "hourglass", - 125, - "125", - "hourglass-open", - 26, - "26", - "bowtie", - 126, - "126", - "bowtie-open", - 27, - "27", - "circle-cross", - 127, - "127", - "circle-cross-open", - 28, - "28", - "circle-x", - 128, - "128", - "circle-x-open", - 29, - "29", - "square-cross", - 129, - "129", - "square-cross-open", - 30, - "30", - "square-x", - 130, - "130", - "square-x-open", - 31, - "31", - "diamond-cross", - 131, - "131", - "diamond-cross-open", - 32, - "32", - "diamond-x", - 132, - "132", - "diamond-x-open", - 33, - "33", - "cross-thin", - 133, - "133", - "cross-thin-open", - 34, - "34", - "x-thin", - 134, - "134", - "x-thin-open", - 35, - "35", - "asterisk", - 135, - "135", - "asterisk-open", - 36, - "36", - "hash", - 136, - "136", - "hash-open", - 236, - "236", - "hash-dot", - 336, - "336", - "hash-open-dot", - 37, - "37", - "y-up", - 137, - "137", - "y-up-open", - 38, - "38", - "y-down", - 138, - "138", - "y-down-open", - 39, - "39", - "y-left", - 139, - "139", - "y-left-open", - 40, - "40", - "y-right", - 140, - "140", - "y-right-open", - 41, - "41", - "line-ew", - 141, - "141", - "line-ew-open", - 42, - "42", - "line-ns", - 142, - "142", - "line-ns-open", - 43, - "43", - "line-ne", - 143, - "143", - "line-ne-open", - 44, - "44", - "line-nw", - 144, - "144", - "line-nw-open", - 45, - "45", - "arrow-up", - 145, - "145", - "arrow-up-open", - 46, - "46", - "arrow-down", - 146, - "146", - "arrow-down-open", - 47, - "47", - "arrow-left", - 147, - "147", - "arrow-left-open", - 48, - "48", - "arrow-right", - 148, - "148", - "arrow-right-open", - 49, - "49", - "arrow-bar-up", - 149, - "149", - "arrow-bar-up-open", - 50, - "50", - "arrow-bar-down", - 150, - "150", - "arrow-bar-down-open", - 51, - "51", - "arrow-bar-left", - 151, - "151", - "arrow-bar-left-open", - 52, - "52", - "arrow-bar-right", - 152, - "152", - "arrow-bar-right-open" - ], - "dflt": "circle", - "arrayOk": false, - "role": "style", - "editType": "plot", - "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name." - }, - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "arrayOk": false, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity.", - "dflt": 1 - }, - "size": { - "valType": "number", - "min": 0, - "dflt": 6, - "arrayOk": false, - "role": "style", - "editType": "calc", - "description": "Sets the marker size (in px)." - }, - "color": { - "valType": "color", - "arrayOk": false, - "role": "style", - "editType": "style", - "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." - }, - "line": { - "color": { - "valType": "color", - "arrayOk": false, - "role": "style", - "editType": "style", - "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set.", - "dflt": "#444" - }, - "width": { - "valType": "number", - "min": 0, - "arrayOk": false, - "role": "style", - "editType": "style", - "description": "Sets the width (in px) of the lines bounding the marker points.", - "dflt": 0 - }, - "outliercolor": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the border line color of the outlier sample points. Defaults to marker.color" - }, - "outlierwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "style", - "description": "Sets the border line width (in px) of the outlier sample points." - }, - "editType": "style", - "role": "object" - }, - "editType": "plot", - "role": "object" - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets the text elements associated with each sample value. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "style", - "description": "Same as `text`." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "box": { - "visible": { - "valType": "boolean", - "dflt": false, - "role": "info", - "editType": "plot", - "description": "Determines if an miniature box plot is drawn inside the violins. " - }, - "width": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": 0.25, - "role": "info", - "editType": "plot", - "description": "Sets the width of the inner box plots relative to the violins' width. For example, with 1, the inner box plots are as wide as the violins." - }, - "fillcolor": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the inner box plot fill color." - }, - "line": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the inner box plot bounding line color." - }, - "width": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "style", - "description": "Sets the inner box plot bounding line width." - }, - "editType": "style", - "role": "object" - }, - "editType": "plot", - "role": "object" - }, - "meanline": { - "visible": { - "valType": "boolean", - "dflt": false, - "role": "info", - "editType": "plot", - "description": "Determines if a line corresponding to the sample's mean is shown inside the violins. If `box.visible` is turned on, the mean line is drawn inside the inner box. Otherwise, the mean line is drawn from one side of the violin to other." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the mean line color." - }, - "width": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "style", - "description": "Sets the mean line width." - }, - "editType": "plot", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "both", - "positive", - "negative" - ], - "dflt": "both", - "role": "info", - "editType": "calc", - "description": "Determines on which side of the position value the density function making up one half of a violin is plotted. Useful when comparing two violin traces under *overlay* mode, where one trace has `side` set to *positive* and the other to *negative*." - }, - "offsetgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up." - }, - "alignmentgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently." - }, - "selected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity of selected points." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the marker color of selected points." - }, - "size": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "style", - "description": "Sets the marker size of selected points." - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "unselected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity of unselected points, applied only when a selection exists." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the marker color of unselected points, applied only when a selection exists." - }, - "size": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "style", - "description": "Sets the marker size of unselected points, applied only when a selection exists." - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "hoveron": { - "valType": "flaglist", - "flags": [ - "violins", - "points", - "kde" - ], - "dflt": "violins+points+kde", - "extras": [ - "all" - ], - "role": "info", - "editType": "style", - "description": "Do the hover effects highlight individual violins or sample points or the kernel density estimate or any combination of them?" - }, - "xaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." - }, - "yaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "ysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for y .", - "editType": "none" - }, - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - } - }, - "layoutAttributes": { - "violinmode": { - "valType": "enumerated", - "values": [ - "group", - "overlay" - ], - "dflt": "overlay", - "role": "info", - "editType": "calc", - "description": "Determines how violins at the same location coordinate are displayed on the graph. If *group*, the violins are plotted next to one another centered around the shared location. If *overlay*, the violins are plotted over one another, you might need to set *opacity* to see them multiple violins. Has no effect on traces that have *width* set." - }, - "violingap": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": 0.3, - "role": "style", - "editType": "calc", - "description": "Sets the gap (in plot fraction) between violins of adjacent location coordinates. Has no effect on traces that have *width* set." - }, - "violingroupgap": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": 0.3, - "role": "style", - "editType": "calc", - "description": "Sets the gap (in plot fraction) between violins of the same location coordinate. Has no effect on traces that have *width* set." - } - } + "templateitemname": { + "valType": "string", + "editType": "plot", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." }, - "funnel": { - "meta": { - "description": "Visualize stages in a process using length-encoded bars. This trace can be used to show data in either a part-to-whole representation wherein each item appears in a single stage, or in a \"drop-off\" representation wherein each item appears in each stage it traversed. See also the \"funnelarea\" trace type for a different approach to visualizing funnel data." - }, - "categories": [ - "bar-like", - "cartesian", - "svg", - "oriented", - "showLegend", - "zoomScale" - ], - "animatable": false, - "type": "funnel", - "attributes": { - "type": "funnel", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "selectedpoints": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "x": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the x coordinates.", - "role": "data" - }, - "x0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step." - }, - "dx": { - "valType": "number", - "dflt": 1, - "role": "info", - "editType": "calc", - "description": "Sets the x coordinate step. See `x0` for more info." - }, - "y": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the y coordinates.", - "role": "data" - }, - "y0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step." - }, - "dy": { - "valType": "number", - "dflt": 1, - "role": "info", - "editType": "calc", - "description": "Sets the y coordinate step. See `y0` for more info." - }, - "xperiod": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." - }, - "yperiod": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." - }, - "xperiod0": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." - }, - "yperiod0": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." - }, - "xperiodalignment": { - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ], - "dflt": "middle", - "role": "style", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis." - }, - "yperiodalignment": { - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ], - "dflt": "middle", - "role": "style", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis." - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "style", - "description": "Sets hover text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `percentInitial`, `percentPrevious` and `percentTotal`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "name", - "x", - "y", - "text", - "percent initial", - "percent previous", - "percent total" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "textinfo": { - "valType": "flaglist", - "flags": [ - "label", - "text", - "percent initial", - "percent previous", - "percent total", - "value" - ], - "extras": [ - "none" - ], - "role": "info", - "editType": "plot", - "arrayOk": false, - "description": "Determines which trace information appear on the graph. In the case of having multiple funnels, percentages & totals are computed separately (per trace)." - }, - "texttemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "plot", - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `percentInitial`, `percentPrevious`, `percentTotal`, `label` and `value`.", - "arrayOk": true - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." - }, - "textposition": { - "valType": "enumerated", - "role": "info", - "values": [ - "inside", - "outside", - "auto", - "none" - ], - "dflt": "auto", - "arrayOk": true, - "editType": "calc", - "description": "Specifies the location of the `text`. *inside* positions `text` inside, next to the bar end (rotated and scaled if needed). *outside* positions `text` outside, next to the bar end (scaled if needed), unless there is another bar stacked on this one, then the text gets pushed inside. *auto* tries to position `text` inside the bar, but if the bar is too small and no bar is stacked on this one the text is moved outside." - }, - "insidetextanchor": { - "valType": "enumerated", - "values": [ - "end", - "middle", - "start" - ], - "dflt": "middle", - "role": "info", - "editType": "plot", - "description": "Determines if texts are kept at center or start/end points in `textposition` *inside* mode." - }, - "textangle": { - "valType": "angle", - "dflt": 0, - "role": "info", - "editType": "plot", - "description": "Sets the angle of the tick labels with respect to the bar. For example, a `tickangle` of -90 draws the tick labels vertically. With *auto* the texts may automatically be rotated to fit with the maximum size in bars." - }, - "textfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "arrayOk": true - }, - "editType": "calc", - "description": "Sets the font used for `text`.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "insidetextfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "arrayOk": true - }, - "editType": "calc", - "description": "Sets the font used for `text` lying inside the bar.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "outsidetextfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "arrayOk": true - }, - "editType": "calc", - "description": "Sets the font used for `text` lying outside the bar.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "constraintext": { - "valType": "enumerated", - "values": [ - "inside", - "outside", - "both", - "none" - ], - "role": "info", - "dflt": "both", - "editType": "calc", - "description": "Constrain the size of text inside or outside a bar to be no larger than the bar itself." - }, - "cliponaxis": { - "valType": "boolean", - "dflt": true, - "role": "info", - "editType": "plot", - "description": "Determines whether the text nodes are clipped about the subplot axes. To show the text nodes above axis lines and tick labels, make sure to set `xaxis.layer` and `yaxis.layer` to *below traces*." - }, - "orientation": { - "valType": "enumerated", - "role": "info", - "values": [ - "v", - "h" - ], - "editType": "calc+clearAxisTypes", - "description": "Sets the orientation of the funnels. With *v* (*h*), the value of the each bar spans along the vertical (horizontal). By default funnels are tend to be oriented horizontally; unless only *y* array is presented or orientation is set to *v*. Also regarding graphs including only 'horizontal' funnels, *autorange* on the *y-axis* are set to *reversed*." - }, - "offset": { - "valType": "number", - "dflt": null, - "arrayOk": false, - "role": "info", - "editType": "calc", - "description": "Shifts the position where the bar is drawn (in position axis units). In *group* barmode, traces that set *offset* will be excluded and drawn in *overlay* mode instead." - }, - "width": { - "valType": "number", - "dflt": null, - "min": 0, - "arrayOk": false, - "role": "info", - "editType": "calc", - "description": "Sets the bar width (in position axis units)." - }, - "marker": { - "line": { - "width": { - "valType": "number", - "min": 0, - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets the width (in px) of the lines bounding the marker points.", - "dflt": 0 - }, - "editType": "calc", - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "role": "object", - "widthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for width .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "editType": "calc", - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "colorbars" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "colorbars" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "colorbars" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "colorbars" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "colorbars" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "colorbars" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "colorbars" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "colorbars" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "colorbars" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "colorbars" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "colorbars", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "colorbars", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "colorbars", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "colorbars" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "colorbars", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "colorbars", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "colorbars", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "colorbars" - }, - { - "valType": "any", - "editType": "colorbars" - } - ], - "editType": "colorbars", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "colorbars", - "name": { - "valType": "string", - "role": "style", - "editType": "colorbars", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "colorbars", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "colorbars", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "colorbars", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "colorbars", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars" - }, - "editType": "colorbars", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "colorbars" - } - }, - "editType": "colorbars", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "opacity": { - "valType": "number", - "arrayOk": true, - "dflt": 1, - "min": 0, - "max": 1, - "role": "style", - "editType": "style", - "description": "Sets the opacity of the bars." - }, - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - }, - "opacitysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for opacity .", - "editType": "none" - } - }, - "connector": { - "fillcolor": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the fill color." - }, - "line": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the line color.", - "dflt": "#444" - }, - "width": { - "valType": "number", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "plot", - "description": "Sets the line width (in px)." - }, - "dash": { - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ], - "dflt": "solid", - "role": "style", - "editType": "style", - "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." - }, - "editType": "style", - "role": "object" - }, - "visible": { - "valType": "boolean", - "dflt": true, - "role": "info", - "editType": "plot", - "description": "Determines if connector regions and lines are drawn." - }, - "editType": "plot", - "role": "object" - }, - "offsetgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up." - }, - "alignmentgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently." - }, - "xaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." - }, - "yaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "ysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for y .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "texttemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "textpositionsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for textposition .", - "editType": "none" - } - }, - "layoutAttributes": { - "funnelmode": { - "valType": "enumerated", - "values": [ - "stack", - "group", - "overlay" - ], - "dflt": "stack", - "role": "info", - "editType": "calc", - "description": "Determines how bars at the same location coordinate are displayed on the graph. With *stack*, the bars are stacked on top of one another With *group*, the bars are plotted next to one another centered around the shared location. With *overlay*, the bars are plotted over one another, you might need to an *opacity* to see multiple bars." - }, - "funnelgap": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "calc", - "description": "Sets the gap (in plot fraction) between bars of adjacent location coordinates." - }, - "funnelgroupgap": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Sets the gap (in plot fraction) between bars of the same location coordinate." - } - } + "role": "object" + } + }, + "role": "object" + }, + "hoverformat": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "showline": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not a line bounding this axis is drawn." + }, + "linecolor": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the axis line color." + }, + "linewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the width (in px) of the axis line." + }, + "showgrid": { + "valType": "boolean", + "editType": "plot", + "description": "Determines whether or not grid lines are drawn. If *true*, the grid lines are drawn at every tick mark.", + "dflt": true + }, + "gridcolor": { + "valType": "color", + "dflt": "#eee", + "editType": "plot", + "description": "Sets the color of the grid lines." + }, + "gridwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the width (in px) of the grid lines." + }, + "layer": { + "valType": "enumerated", + "values": [ + "above traces", + "below traces" + ], + "dflt": "above traces", + "editType": "plot", + "description": "Sets the layer on which this axis is displayed. If *above traces*, this axis is displayed above all the subplot's traces If *below traces*, this axis is displayed below all the subplot's traces, but above the grid lines. Useful when used together with scatter-like traces with `cliponaxis` set to *false* to show markers and/or text nodes above this axis." + }, + "min": { + "valType": "number", + "dflt": 0, + "min": 0, + "description": "The minimum value visible on this axis. The maximum is determined by the sum minus the minimum values of the other two axes. The full view corresponds to all the minima set to zero.", + "editType": "plot" + }, + "_deprecated": { + "title": { + "valType": "string", + "editType": "plot", + "description": "Value of `title` is no longer a simple *string* but a set of sub-attributes. To set the axis' title, please use `title.text` now." + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Former `titlefont` is now the sub-attribute `font` of `title`. To customize title font properties, please use `title.font` now." + } + }, + "editType": "plot", + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of user-driven changes in axis `min`, and `title` if in `editable: true` configuration. Defaults to `ternary.uirevision`." + }, + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "caxis": { + "title": { + "text": { + "valType": "string", + "editType": "plot", + "description": "Sets the title of this axis. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Sets this axis' title font. Note that the title's font used to be customized by the now deprecated `titlefont` attribute.", + "role": "object" + }, + "editType": "plot", + "role": "object" + }, + "color": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "plot", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 1, + "dflt": 6, + "editType": "plot", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "plot", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "plot", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "plot", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines." + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "plot", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not the tick labels are drawn." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets a tick label prefix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets a tick label suffix." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "plot", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "plot", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "If \"true\", even 4-digit integers are separated" + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Sets the tick font.", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "plot", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." }, - "waterfall": { - "meta": { - "description": "Draws waterfall trace which is useful graph to displays the contribution of various elements (either positive or negative) in a bar chart. The data visualized by the span of the bars is set in `y` if `orientation` is set th *v* (the default) and the labels are set in `x`. By setting `orientation` to *h*, the roles are interchanged." - }, - "categories": [ - "bar-like", - "cartesian", - "svg", - "oriented", - "showLegend", - "zoomScale" - ], - "animatable": false, - "type": "waterfall", - "attributes": { - "type": "waterfall", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "selectedpoints": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "measure": { - "valType": "data_array", - "dflt": [], - "role": "data", - "editType": "calc", - "description": "An array containing types of values. By default the values are considered as 'relative'. However; it is possible to use 'total' to compute the sums. Also 'absolute' could be applied to reset the computed total or to declare an initial value where needed." - }, - "base": { - "valType": "number", - "dflt": null, - "arrayOk": false, - "role": "info", - "editType": "calc", - "description": "Sets where the bar base is drawn (in position axis units)." - }, - "x": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the x coordinates.", - "role": "data" - }, - "x0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step." - }, - "dx": { - "valType": "number", - "dflt": 1, - "role": "info", - "editType": "calc", - "description": "Sets the x coordinate step. See `x0` for more info." - }, - "y": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the y coordinates.", - "role": "data" - }, - "y0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step." - }, - "dy": { - "valType": "number", - "dflt": 1, - "role": "info", - "editType": "calc", - "description": "Sets the y coordinate step. See `y0` for more info." - }, - "xperiod": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." - }, - "yperiod": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." - }, - "xperiod0": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." - }, - "yperiod0": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." - }, - "xperiodalignment": { - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ], - "dflt": "middle", - "role": "style", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis." - }, - "yperiodalignment": { - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ], - "dflt": "middle", - "role": "style", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis." - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "style", - "description": "Sets hover text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `initial`, `delta` and `final`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "name", - "x", - "y", - "text", - "initial", - "delta", - "final" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "textinfo": { - "valType": "flaglist", - "flags": [ - "label", - "text", - "initial", - "delta", - "final" - ], - "extras": [ - "none" - ], - "role": "info", - "editType": "plot", - "arrayOk": false, - "description": "Determines which trace information appear on the graph. In the case of having multiple waterfalls, totals are computed separately (per trace)." - }, - "texttemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "plot", - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `initial`, `delta`, `final` and `label`.", - "arrayOk": true - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." - }, - "textposition": { - "valType": "enumerated", - "role": "info", - "values": [ - "inside", - "outside", - "auto", - "none" - ], - "dflt": "none", - "arrayOk": true, - "editType": "calc", - "description": "Specifies the location of the `text`. *inside* positions `text` inside, next to the bar end (rotated and scaled if needed). *outside* positions `text` outside, next to the bar end (scaled if needed), unless there is another bar stacked on this one, then the text gets pushed inside. *auto* tries to position `text` inside the bar, but if the bar is too small and no bar is stacked on this one the text is moved outside." - }, - "insidetextanchor": { - "valType": "enumerated", - "values": [ - "end", - "middle", - "start" - ], - "dflt": "end", - "role": "info", - "editType": "plot", - "description": "Determines if texts are kept at center or start/end points in `textposition` *inside* mode." - }, - "textangle": { - "valType": "angle", - "dflt": "auto", - "role": "info", - "editType": "plot", - "description": "Sets the angle of the tick labels with respect to the bar. For example, a `tickangle` of -90 draws the tick labels vertically. With *auto* the texts may automatically be rotated to fit with the maximum size in bars." - }, - "textfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "arrayOk": true - }, - "editType": "calc", - "description": "Sets the font used for `text`.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "insidetextfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "arrayOk": true - }, - "editType": "calc", - "description": "Sets the font used for `text` lying inside the bar.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "outsidetextfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "arrayOk": true - }, - "editType": "calc", - "description": "Sets the font used for `text` lying outside the bar.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "constraintext": { - "valType": "enumerated", - "values": [ - "inside", - "outside", - "both", - "none" - ], - "role": "info", - "dflt": "both", - "editType": "calc", - "description": "Constrain the size of text inside or outside a bar to be no larger than the bar itself." - }, - "cliponaxis": { - "valType": "boolean", - "dflt": true, - "role": "info", - "editType": "plot", - "description": "Determines whether the text nodes are clipped about the subplot axes. To show the text nodes above axis lines and tick labels, make sure to set `xaxis.layer` and `yaxis.layer` to *below traces*." - }, - "orientation": { - "valType": "enumerated", - "role": "info", - "values": [ - "v", - "h" - ], - "editType": "calc+clearAxisTypes", - "description": "Sets the orientation of the bars. With *v* (*h*), the value of the each bar spans along the vertical (horizontal)." - }, - "offset": { - "valType": "number", - "dflt": null, - "arrayOk": true, - "role": "info", - "editType": "calc", - "description": "Shifts the position where the bar is drawn (in position axis units). In *group* barmode, traces that set *offset* will be excluded and drawn in *overlay* mode instead." - }, - "width": { - "valType": "number", - "dflt": null, - "min": 0, - "arrayOk": true, - "role": "info", - "editType": "calc", - "description": "Sets the bar width (in position axis units)." - }, - "increasing": { - "marker": { - "color": { - "valType": "color", - "arrayOk": false, - "role": "style", - "editType": "style", - "description": "Sets the marker color of all increasing values." - }, - "line": { - "color": { - "valType": "color", - "arrayOk": false, - "role": "style", - "editType": "style", - "description": "Sets the line color of all increasing values." - }, - "width": { - "valType": "number", - "min": 0, - "arrayOk": false, - "role": "style", - "editType": "style", - "description": "Sets the line width of all increasing values.", - "dflt": 0 - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "decreasing": { - "marker": { - "color": { - "valType": "color", - "arrayOk": false, - "role": "style", - "editType": "style", - "description": "Sets the marker color of all decreasing values." - }, - "line": { - "color": { - "valType": "color", - "arrayOk": false, - "role": "style", - "editType": "style", - "description": "Sets the line color of all decreasing values." - }, - "width": { - "valType": "number", - "min": 0, - "arrayOk": false, - "role": "style", - "editType": "style", - "description": "Sets the line width of all decreasing values.", - "dflt": 0 - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "totals": { - "marker": { - "color": { - "valType": "color", - "arrayOk": false, - "role": "style", - "editType": "style", - "description": "Sets the marker color of all intermediate sums and total values." - }, - "line": { - "color": { - "valType": "color", - "arrayOk": false, - "role": "style", - "editType": "style", - "description": "Sets the line color of all intermediate sums and total values." - }, - "width": { - "valType": "number", - "min": 0, - "arrayOk": false, - "role": "style", - "editType": "style", - "description": "Sets the line width of all intermediate sums and total values.", - "dflt": 0 - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "connector": { - "line": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the line color.", - "dflt": "#444" - }, - "width": { - "valType": "number", - "min": 0, - "dflt": 2, - "role": "style", - "editType": "plot", - "description": "Sets the line width (in px)." - }, - "dash": { - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ], - "dflt": "solid", - "role": "style", - "editType": "style", - "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." - }, - "editType": "plot", - "role": "object" - }, - "mode": { - "valType": "enumerated", - "values": [ - "spanning", - "between" - ], - "dflt": "between", - "role": "info", - "editType": "plot", - "description": "Sets the shape of connector lines." - }, - "visible": { - "valType": "boolean", - "dflt": true, - "role": "info", - "editType": "plot", - "description": "Determines if connector lines are drawn. " - }, - "editType": "plot", - "role": "object" - }, - "offsetgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Set several traces linked to the same position axis or matching axes to the same offsetgroup where bars of the same position coordinate will line up." - }, - "alignmentgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Set several traces linked to the same position axis or matching axes to the same alignmentgroup. This controls whether bars compute their positional range dependently or independently." - }, - "xaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." - }, - "yaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "measuresrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for measure .", - "editType": "none" - }, - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "ysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for y .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "texttemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "textpositionsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for textposition .", - "editType": "none" - }, - "offsetsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for offset .", - "editType": "none" - }, - "widthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for width .", - "editType": "none" - } - }, - "layoutAttributes": { - "waterfallmode": { - "valType": "enumerated", - "values": [ - "group", - "overlay" - ], - "dflt": "group", - "role": "info", - "editType": "calc", - "description": "Determines how bars at the same location coordinate are displayed on the graph. With *group*, the bars are plotted next to one another centered around the shared location. With *overlay*, the bars are plotted over one another, you might need to an *opacity* to see multiple bars." - }, - "waterfallgap": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "calc", - "description": "Sets the gap (in plot fraction) between bars of adjacent location coordinates." - }, - "waterfallgroupgap": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Sets the gap (in plot fraction) between bars of the same location coordinate." - } - } + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "plot" + }, + { + "valType": "any", + "editType": "plot" + } + ], + "editType": "plot", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" }, - "image": { - "meta": { - "description": "Display an image, i.e. data on a 2D regular raster. By default, when an image is displayed in a subplot, its y axis will be reversed (ie. `autorange: 'reversed'`), constrained to the domain (ie. `constrain: 'domain'`) and it will have the same scale as its x axis (ie. `scaleanchor: 'x,`) in order for pixels to be rendered as squares." - }, - "categories": [ - "cartesian", - "svg", - "2dMap", - "noSortingByValue" - ], - "animatable": false, - "type": "image", - "attributes": { - "type": "image", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "source": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Specifies the data URI of the image to be visualized. The URI consists of \"data:image/[][;base64],\"" - }, - "z": { - "valType": "data_array", - "role": "data", - "editType": "calc", - "description": "A 2-dimensional array in which each element is an array of 3 or 4 numbers representing a color." - }, - "colormodel": { - "valType": "enumerated", - "values": [ - "rgb", - "rgba", - "rgba256", - "hsl", - "hsla" - ], - "role": "info", - "editType": "calc", - "description": "Color model used to map the numerical color components described in `z` into colors. If `source` is specified, this attribute will be set to `rgba256` otherwise it defaults to `rgb`." - }, - "zmin": { - "valType": "info_array", - "items": [ - { - "valType": "number", - "editType": "calc" - }, - { - "valType": "number", - "editType": "calc" - }, - { - "valType": "number", - "editType": "calc" - }, - { - "valType": "number", - "editType": "calc" - } - ], - "role": "info", - "editType": "calc", - "description": "Array defining the lower bound for each color component. Note that the default value will depend on the colormodel. For the `rgb` colormodel, it is [0, 0, 0]. For the `rgba` colormodel, it is [0, 0, 0, 0]. For the `rgba256` colormodel, it is [0, 0, 0, 0]. For the `hsl` colormodel, it is [0, 0, 0]. For the `hsla` colormodel, it is [0, 0, 0, 0]." - }, - "zmax": { - "valType": "info_array", - "items": [ - { - "valType": "number", - "editType": "calc" - }, - { - "valType": "number", - "editType": "calc" - }, - { - "valType": "number", - "editType": "calc" - }, - { - "valType": "number", - "editType": "calc" - } - ], - "role": "info", - "editType": "calc", - "description": "Array defining the higher bound for each color component. Note that the default value will depend on the colormodel. For the `rgb` colormodel, it is [255, 255, 255]. For the `rgba` colormodel, it is [255, 255, 255, 1]. For the `rgba256` colormodel, it is [255, 255, 255, 255]. For the `hsl` colormodel, it is [360, 100, 100]. For the `hsla` colormodel, it is [360, 100, 100, 1]." - }, - "x0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Set the image's x position." - }, - "y0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Set the image's y position." - }, - "dx": { - "valType": "number", - "dflt": 1, - "role": "info", - "editType": "calc", - "description": "Set the pixel's horizontal size." - }, - "dy": { - "valType": "number", - "dflt": 1, - "role": "info", - "editType": "calc", - "description": "Set the pixel's vertical size" - }, - "text": { - "valType": "data_array", - "editType": "plot", - "description": "Sets the text elements associated with each z value.", - "role": "data" - }, - "hovertext": { - "valType": "data_array", - "editType": "plot", - "description": "Same as `text`.", - "role": "data" - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "color", - "name", - "text" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "x+y+z+text+name", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `z`, `color` and `colormodel`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "xaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." - }, - "yaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "zsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for z .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - } - } + "value": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" }, - "pie": { - "meta": { - "description": "A data visualized by the sectors of the pie is set in `values`. The sector labels are set in `labels`. The sector colors are set in `marker.colors`" - }, - "categories": [ - "pie-like", - "pie", - "showLegend" - ], - "animatable": false, - "type": "pie", - "attributes": { - "type": "pie", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "labels": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the sector labels. If `labels` entries are duplicated, we sum associated `values` or simply count occurrences if `values` is not provided. For other array attributes (including color) we use the first non-empty entry among all occurrences of the label.", - "role": "data" - }, - "label0": { - "valType": "number", - "role": "info", - "dflt": 0, - "editType": "calc", - "description": "Alternate to `labels`. Builds a numeric set of labels. Use with `dlabel` where `label0` is the starting label and `dlabel` the step." - }, - "dlabel": { - "valType": "number", - "role": "info", - "dflt": 1, - "editType": "calc", - "description": "Sets the label step. See `label0` for more info." - }, - "values": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the values of the sectors. If omitted, we count occurrences of each label.", - "role": "data" - }, - "marker": { - "colors": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the color of each sector. If not specified, the default trace color set is used to pick the sector colors.", - "role": "data" - }, - "line": { - "color": { - "valType": "color", - "role": "style", - "dflt": "#444", - "arrayOk": true, - "editType": "style", - "description": "Sets the color of the line enclosing each sector." - }, - "width": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "arrayOk": true, - "editType": "style", - "description": "Sets the width (in px) of the line enclosing each sector." - }, - "editType": "calc", - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - }, - "widthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for width .", - "editType": "none" - } - }, - "editType": "calc", - "role": "object", - "colorssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for colors .", - "editType": "none" - } - }, - "text": { - "valType": "data_array", - "editType": "plot", - "description": "Sets text elements associated with each sector. If trace `textinfo` contains a *text* flag, these elements will be seen on the chart. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", - "role": "data" - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "style", - "description": "Sets hover text elements associated with each sector. If a single string, the same string appears for all data points. If an array of string, the items are mapped in order of this trace's sectors. To be seen, trace `hoverinfo` must contain a *text* flag." - }, - "scalegroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "If there are multiple pie charts that should be sized according to their totals, link them by providing a non-empty group id here shared by every trace in the same group." - }, - "textinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "label", - "text", - "value", - "percent" - ], - "extras": [ - "none" - ], - "editType": "calc", - "description": "Determines which trace information appear on the graph." - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "label", - "text", - "value", - "percent", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `label`, `color`, `value`, `percent` and `text`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "texttemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "plot", - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `label`, `color`, `value`, `percent` and `text`.", - "arrayOk": true - }, - "textposition": { - "valType": "enumerated", - "role": "info", - "values": [ - "inside", - "outside", - "auto", - "none" - ], - "dflt": "auto", - "arrayOk": true, - "editType": "plot", - "description": "Specifies the location of the `textinfo`." - }, - "textfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot", - "arrayOk": true - }, - "editType": "plot", - "description": "Sets the font used for `textinfo`.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "insidetextorientation": { - "valType": "enumerated", - "role": "info", - "values": [ - "horizontal", - "radial", - "tangential", - "auto" - ], - "dflt": "auto", - "editType": "plot", - "description": "Controls the orientation of the text inside chart sectors. When set to *auto*, text may be oriented in any direction in order to be as big as possible in the middle of a sector. The *horizontal* option orients text to be parallel with the bottom of the chart, and may make text smaller in order to achieve that goal. The *radial* option orients text along the radius of the sector. The *tangential* option orients text perpendicular to the radius of the sector." - }, - "insidetextfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot", - "arrayOk": true - }, - "editType": "plot", - "description": "Sets the font used for `textinfo` lying inside the sector.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "outsidetextfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot", - "arrayOk": true - }, - "editType": "plot", - "description": "Sets the font used for `textinfo` lying outside the sector.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "automargin": { - "valType": "boolean", - "dflt": false, - "role": "info", - "editType": "plot", - "description": "Determines whether outside text labels can push the margins." - }, - "title": { - "text": { - "valType": "string", - "dflt": "", - "role": "info", - "editType": "plot", - "description": "Sets the title of the chart. If it is empty, no title is displayed. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot", - "arrayOk": true - }, - "editType": "plot", - "description": "Sets the font used for `title`. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "position": { - "valType": "enumerated", - "values": [ - "top left", - "top center", - "top right", - "middle center", - "bottom left", - "bottom center", - "bottom right" - ], - "role": "info", - "editType": "plot", - "description": "Specifies the location of the `title`. Note that the title's position used to be set by the now deprecated `titleposition` attribute." - }, - "editType": "plot", - "role": "object" - }, - "domain": { - "x": { - "valType": "info_array", - "role": "info", - "editType": "calc", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the horizontal domain of this pie trace (in plot fraction)." - }, - "y": { - "valType": "info_array", - "role": "info", - "editType": "calc", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the vertical domain of this pie trace (in plot fraction)." - }, - "editType": "calc", - "row": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "If there is a layout grid, use the domain for this row in the grid for this pie trace ." - }, - "column": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "If there is a layout grid, use the domain for this column in the grid for this pie trace ." - }, - "role": "object" - }, - "hole": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0, - "editType": "calc", - "description": "Sets the fraction of the radius to cut out of the pie. Use this to make a donut chart." - }, - "sort": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not the sectors are reordered from largest to smallest." - }, - "direction": { - "valType": "enumerated", - "values": [ - "clockwise", - "counterclockwise" - ], - "role": "style", - "dflt": "counterclockwise", - "editType": "calc", - "description": "Specifies the direction at which succeeding sectors follow one another." - }, - "rotation": { - "valType": "number", - "role": "style", - "min": -360, - "max": 360, - "dflt": 0, - "editType": "calc", - "description": "Instead of the first slice starting at 12 o'clock, rotate to some other angle." - }, - "pull": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0, - "arrayOk": true, - "editType": "calc", - "description": "Sets the fraction of larger radius to pull the sectors out from the center. This can be a constant to pull all slices apart from each other equally or an array to highlight one or more slices." - }, - "_deprecated": { - "title": { - "valType": "string", - "dflt": "", - "role": "info", - "editType": "calc", - "description": "Deprecated in favor of `title.text`. Note that value of `title` is no longer a simple *string* but a set of sub-attributes." - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot", - "arrayOk": true - }, - "editType": "plot", - "description": "Deprecated in favor of `title.font`." - }, - "titleposition": { - "valType": "enumerated", - "values": [ - "top left", - "top center", - "top right", - "middle center", - "bottom left", - "bottom center", - "bottom right" - ], - "role": "info", - "editType": "calc", - "description": "Deprecated in favor of `title.position`." - } - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "labelssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for labels .", - "editType": "none" - }, - "valuessrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for values .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - }, - "texttemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", - "editType": "none" - }, - "textpositionsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for textposition .", - "editType": "none" - }, - "pullsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for pull .", - "editType": "none" - } - }, - "layoutAttributes": { - "hiddenlabels": { - "valType": "data_array", - "role": "data", - "editType": "calc", - "description": "hiddenlabels is the funnelarea & pie chart analog of visible:'legendonly' but it can contain many labels, and can simultaneously hide slices from several pies/funnelarea charts" - }, - "piecolorway": { - "valType": "colorlist", - "role": "style", - "editType": "calc", - "description": "Sets the default pie slice colors. Defaults to the main `colorway` used for trace colors. If you specify a new list here it can still be extended with lighter and darker colors, see `extendpiecolors`." - }, - "extendpiecolors": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "calc", - "description": "If `true`, the pie slice colors (whether given by `piecolorway` or inherited from `colorway`) will be extended to three times its original length by first repeating every color 20% lighter then each color 20% darker. This is intended to reduce the likelihood of reusing the same color when you have many slices, but you can set `false` to disable. Colors provided in the trace, using `marker.colors`, are never extended." - }, - "hiddenlabelssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hiddenlabels .", - "editType": "none" - } - } + "editType": "plot", + "name": { + "valType": "string", + "editType": "plot", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." }, - "sunburst": { - "meta": { - "description": "Visualize hierarchal data spanning outward radially from root to leaves. The sunburst sectors are determined by the entries in *labels* or *ids* and in *parents*." - }, - "categories": [], - "animatable": true, - "type": "sunburst", - "attributes": { - "type": "sunburst", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "anim": true, - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "anim": true, - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "labels": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the labels of each of the sectors.", - "role": "data" - }, - "parents": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the parent sectors for each of the sectors. Empty string items '' are understood to reference the root node in the hierarchy. If `ids` is filled, `parents` items are understood to be \"ids\" themselves. When `ids` is not set, plotly attempts to find matching items in `labels`, but beware they must be unique.", - "role": "data" - }, - "values": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the values associated with each of the sectors. Use with `branchvalues` to determine how the values are summed.", - "role": "data" - }, - "branchvalues": { - "valType": "enumerated", - "values": [ - "remainder", - "total" - ], - "dflt": "remainder", - "editType": "calc", - "role": "info", - "description": "Determines how the items in `values` are summed. When set to *total*, items in `values` are taken to be value of all its descendants. When set to *remainder*, items in `values` corresponding to the root and the branches sectors are taken to be the extra part not part of the sum of the values at their leaves." - }, - "count": { - "valType": "flaglist", - "flags": [ - "branches", - "leaves" - ], - "dflt": "leaves", - "editType": "calc", - "role": "info", - "description": "Determines default for `values` when it is not provided, by inferring a 1 for each of the *leaves* and/or *branches*, otherwise 0." - }, - "level": { - "valType": "any", - "editType": "plot", - "anim": true, - "role": "info", - "description": "Sets the level from which this trace hierarchy is rendered. Set `level` to `''` to start from the root node in the hierarchy. Must be an \"id\" if `ids` is filled in, otherwise plotly attempts to find a matching item in `labels`." - }, - "maxdepth": { - "valType": "integer", - "editType": "plot", - "role": "info", - "dflt": -1, - "description": "Sets the number of rendered sectors from any given `level`. Set `maxdepth` to *-1* to render all the levels in the hierarchy." - }, - "marker": { - "colors": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the color of each sector of this trace. If not specified, the default trace color set is used to pick the sector colors.", - "role": "data" - }, - "line": { - "color": { - "valType": "color", - "role": "style", - "dflt": null, - "arrayOk": true, - "editType": "style", - "description": "Sets the color of the line enclosing each sector. Defaults to the `paper_bgcolor` value." - }, - "width": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 1, - "arrayOk": true, - "editType": "style", - "description": "Sets the width (in px) of the line enclosing each sector." - }, - "editType": "calc", - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - }, - "widthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for width .", - "editType": "none" - } - }, - "editType": "calc", - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here colors) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if colorsis set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if colorsis set to a numerical array. Value should have the same units as colors and if set, `marker.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if colorsis set to a numerical array. Value should have the same units as colors and if set, `marker.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if colorsis set to a numerical array. Value should have the same units as colors. Has no effect when `marker.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if colorsis set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if colorsis set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. Has an effect only if colorsis set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if colorsis set to a numerical array." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "colorbars" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "colorbars" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "colorbars" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "colorbars" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "colorbars" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "colorbars" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "colorbars" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "colorbars" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "colorbars" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "colorbars" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "colorbars", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "colorbars", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "colorbars", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "colorbars" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "colorbars", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "colorbars", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "colorbars", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "colorbars" - }, - { - "valType": "any", - "editType": "colorbars" - } - ], - "editType": "colorbars", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "colorbars", - "name": { - "valType": "string", - "role": "style", - "editType": "colorbars", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "colorbars", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "colorbars", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "colorbars", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "colorbars", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars" - }, - "editType": "colorbars", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "colorbars" - } - }, - "editType": "colorbars", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "role": "object", - "colorssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for colors .", - "editType": "none" - } - }, - "leaf": { - "opacity": { - "valType": "number", - "editType": "style", - "role": "style", - "min": 0, - "max": 1, - "description": "Sets the opacity of the leaves. With colorscale it is defaulted to 1; otherwise it is defaulted to 0.7" - }, - "editType": "plot", - "role": "object" - }, - "text": { - "valType": "data_array", - "editType": "plot", - "description": "Sets text elements associated with each sector. If trace `textinfo` contains a *text* flag, these elements will be seen on the chart. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", - "role": "data" - }, - "textinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "label", - "text", - "value", - "current path", - "percent root", - "percent entry", - "percent parent" - ], - "extras": [ - "none" - ], - "editType": "plot", - "description": "Determines which trace information appear on the graph." - }, - "texttemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "plot", - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry`, `percentParent`, `label` and `value`.", - "arrayOk": true - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "style", - "description": "Sets hover text elements associated with each sector. If a single string, the same string appears for all data points. If an array of string, the items are mapped in order of this trace's sectors. To be seen, trace `hoverinfo` must contain a *text* flag." - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "label", - "text", - "value", - "name", - "current path", - "percent root", - "percent entry", - "percent parent" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "label+text+value+name", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "textfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot", - "arrayOk": true - }, - "editType": "plot", - "description": "Sets the font used for `textinfo`.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "insidetextorientation": { - "valType": "enumerated", - "role": "info", - "values": [ - "horizontal", - "radial", - "tangential", - "auto" - ], - "dflt": "auto", - "editType": "plot", - "description": "Controls the orientation of the text inside chart sectors. When set to *auto*, text may be oriented in any direction in order to be as big as possible in the middle of a sector. The *horizontal* option orients text to be parallel with the bottom of the chart, and may make text smaller in order to achieve that goal. The *radial* option orients text along the radius of the sector. The *tangential* option orients text perpendicular to the radius of the sector." - }, - "insidetextfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot", - "arrayOk": true - }, - "editType": "plot", - "description": "Sets the font used for `textinfo` lying inside the sector.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "outsidetextfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot", - "arrayOk": true - }, - "editType": "plot", - "description": "Sets the font used for `textinfo` lying outside the sector. This option refers to the root of the hierarchy presented at the center of a sunburst graph. Please note that if a hierarchy has multiple root nodes, this option won't have any effect and `insidetextfont` would be used.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "rotation": { - "valType": "angle", - "role": "style", - "dflt": 0, - "editType": "plot", - "description": "Rotates the whole diagram counterclockwise by some angle. By default the first slice starts at 3 o'clock." - }, - "sort": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not the sectors are reordered from largest to smallest." - }, - "root": { - "color": { - "valType": "color", - "editType": "calc", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "sets the color of the root node for a sunburst or a treemap trace. this has no effect when a colorscale is used to set the markers." - }, - "editType": "calc", - "role": "object" - }, - "domain": { - "x": { - "valType": "info_array", - "role": "info", - "editType": "calc", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the horizontal domain of this sunburst trace (in plot fraction)." - }, - "y": { - "valType": "info_array", - "role": "info", - "editType": "calc", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the vertical domain of this sunburst trace (in plot fraction)." - }, - "editType": "calc", - "row": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "If there is a layout grid, use the domain for this row in the grid for this sunburst trace ." - }, - "column": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "If there is a layout grid, use the domain for this column in the grid for this sunburst trace ." - }, - "role": "object" - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "labelssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for labels .", - "editType": "none" - }, - "parentssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for parents .", - "editType": "none" - }, - "valuessrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for values .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "texttemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - } - }, - "layoutAttributes": { - "sunburstcolorway": { - "valType": "colorlist", - "role": "style", - "editType": "calc", - "description": "Sets the default sunburst slice colors. Defaults to the main `colorway` used for trace colors. If you specify a new list here it can still be extended with lighter and darker colors, see `extendsunburstcolors`." - }, - "extendsunburstcolors": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "calc", - "description": "If `true`, the sunburst slice colors (whether given by `sunburstcolorway` or inherited from `colorway`) will be extended to three times its original length by first repeating every color 20% lighter then each color 20% darker. This is intended to reduce the likelihood of reusing the same color when you have many slices, but you can set `false` to disable. Colors provided in the trace, using `marker.colors`, are never extended." - } - } + "templateitemname": { + "valType": "string", + "editType": "plot", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." }, - "treemap": { - "meta": { - "description": "Visualize hierarchal data from leaves (and/or outer branches) towards root with rectangles. The treemap sectors are determined by the entries in *labels* or *ids* and in *parents*." - }, - "categories": [], - "animatable": true, - "type": "treemap", - "attributes": { - "type": "treemap", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "anim": true, - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "anim": true, - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "labels": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the labels of each of the sectors.", - "role": "data" - }, - "parents": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the parent sectors for each of the sectors. Empty string items '' are understood to reference the root node in the hierarchy. If `ids` is filled, `parents` items are understood to be \"ids\" themselves. When `ids` is not set, plotly attempts to find matching items in `labels`, but beware they must be unique.", - "role": "data" - }, - "values": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the values associated with each of the sectors. Use with `branchvalues` to determine how the values are summed.", - "role": "data" - }, - "branchvalues": { - "valType": "enumerated", - "values": [ - "remainder", - "total" - ], - "dflt": "remainder", - "editType": "calc", - "role": "info", - "description": "Determines how the items in `values` are summed. When set to *total*, items in `values` are taken to be value of all its descendants. When set to *remainder*, items in `values` corresponding to the root and the branches sectors are taken to be the extra part not part of the sum of the values at their leaves." - }, - "count": { - "valType": "flaglist", - "flags": [ - "branches", - "leaves" - ], - "dflt": "leaves", - "editType": "calc", - "role": "info", - "description": "Determines default for `values` when it is not provided, by inferring a 1 for each of the *leaves* and/or *branches*, otherwise 0." - }, - "level": { - "valType": "any", - "editType": "plot", - "anim": true, - "role": "info", - "description": "Sets the level from which this trace hierarchy is rendered. Set `level` to `''` to start from the root node in the hierarchy. Must be an \"id\" if `ids` is filled in, otherwise plotly attempts to find a matching item in `labels`." - }, - "maxdepth": { - "valType": "integer", - "editType": "plot", - "role": "info", - "dflt": -1, - "description": "Sets the number of rendered sectors from any given `level`. Set `maxdepth` to *-1* to render all the levels in the hierarchy." - }, - "tiling": { - "packing": { - "valType": "enumerated", - "values": [ - "squarify", - "binary", - "dice", - "slice", - "slice-dice", - "dice-slice" - ], - "dflt": "squarify", - "role": "info", - "editType": "plot", - "description": "Determines d3 treemap solver. For more info please refer to https://github.com/d3/d3-hierarchy#treemap-tiling" - }, - "squarifyratio": { - "valType": "number", - "role": "info", - "min": 1, - "dflt": 1, - "editType": "plot", - "description": "When using *squarify* `packing` algorithm, according to https://github.com/d3/d3-hierarchy/blob/master/README.md#squarify_ratio this option specifies the desired aspect ratio of the generated rectangles. The ratio must be specified as a number greater than or equal to one. Note that the orientation of the generated rectangles (tall or wide) is not implied by the ratio; for example, a ratio of two will attempt to produce a mixture of rectangles whose width:height ratio is either 2:1 or 1:2. When using *squarify*, unlike d3 which uses the Golden Ratio i.e. 1.618034, Plotly applies 1 to increase squares in treemap layouts." - }, - "flip": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y" - ], - "dflt": "", - "editType": "plot", - "description": "Determines if the positions obtained from solver are flipped on each axis." - }, - "pad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 3, - "editType": "plot", - "description": "Sets the inner padding (in px)." - }, - "editType": "calc", - "role": "object" - }, - "marker": { - "pad": { - "t": { - "valType": "number", - "role": "style", - "min": 0, - "editType": "plot", - "description": "Sets the padding form the top (in px)." - }, - "l": { - "valType": "number", - "role": "style", - "min": 0, - "editType": "plot", - "description": "Sets the padding form the left (in px)." - }, - "r": { - "valType": "number", - "role": "style", - "min": 0, - "editType": "plot", - "description": "Sets the padding form the right (in px)." - }, - "b": { - "valType": "number", - "role": "style", - "min": 0, - "editType": "plot", - "description": "Sets the padding form the bottom (in px)." - }, - "editType": "calc", - "role": "object" - }, - "colors": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the color of each sector of this trace. If not specified, the default trace color set is used to pick the sector colors.", - "role": "data" - }, - "depthfade": { - "valType": "enumerated", - "values": [ - true, - false, - "reversed" - ], - "editType": "style", - "role": "style", - "description": "Determines if the sector colors are faded towards the background from the leaves up to the headers. This option is unavailable when a `colorscale` is present, defaults to false when `marker.colors` is set, but otherwise defaults to true. When set to *reversed*, the fading direction is inverted, that is the top elements within hierarchy are drawn with fully saturated colors while the leaves are faded towards the background color." - }, - "line": { - "color": { - "valType": "color", - "role": "style", - "dflt": null, - "arrayOk": true, - "editType": "style", - "description": "Sets the color of the line enclosing each sector. Defaults to the `paper_bgcolor` value." - }, - "width": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 1, - "arrayOk": true, - "editType": "style", - "description": "Sets the width (in px) of the line enclosing each sector." - }, - "editType": "calc", - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - }, - "widthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for width .", - "editType": "none" - } - }, - "editType": "calc", - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here colors) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if colorsis set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if colorsis set to a numerical array. Value should have the same units as colors and if set, `marker.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if colorsis set to a numerical array. Value should have the same units as colors and if set, `marker.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if colorsis set to a numerical array. Value should have the same units as colors. Has no effect when `marker.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if colorsis set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if colorsis set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. Has an effect only if colorsis set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if colorsis set to a numerical array." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "colorbars" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "colorbars" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "colorbars" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "colorbars" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "colorbars" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "colorbars" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "colorbars" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "colorbars" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "colorbars" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "colorbars" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "colorbars", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "colorbars", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "colorbars", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "colorbars" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "colorbars", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "colorbars", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "colorbars", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "colorbars" - }, - { - "valType": "any", - "editType": "colorbars" - } - ], - "editType": "colorbars", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "colorbars", - "name": { - "valType": "string", - "role": "style", - "editType": "colorbars", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "colorbars", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "colorbars", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "colorbars", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "colorbars", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars" - }, - "editType": "colorbars", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "colorbars" - } - }, - "editType": "colorbars", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "role": "object", - "colorssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for colors .", - "editType": "none" - } - }, - "pathbar": { - "visible": { - "valType": "boolean", - "dflt": true, - "role": "info", - "editType": "plot", - "description": "Determines if the path bar is drawn i.e. outside the trace `domain` and with one pixel gap." - }, - "side": { - "valType": "enumerated", - "values": [ - "top", - "bottom" - ], - "dflt": "top", - "role": "info", - "editType": "plot", - "description": "Determines on which side of the the treemap the `pathbar` should be presented." - }, - "edgeshape": { - "valType": "enumerated", - "values": [ - ">", - "<", - "|", - "/", - "\\" - ], - "dflt": ">", - "role": "style", - "editType": "plot", - "description": "Determines which shape is used for edges between `barpath` labels." - }, - "thickness": { - "valType": "number", - "min": 12, - "role": "info", - "editType": "plot", - "description": "Sets the thickness of `pathbar` (in px). If not specified the `pathbar.textfont.size` is used with 3 pixles extra padding on each side." - }, - "textfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot", - "arrayOk": true - }, - "editType": "plot", - "description": "Sets the font used inside `pathbar`.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "editType": "calc", - "role": "object" - }, - "text": { - "valType": "data_array", - "editType": "plot", - "description": "Sets text elements associated with each sector. If trace `textinfo` contains a *text* flag, these elements will be seen on the chart. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", - "role": "data" - }, - "textinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "label", - "text", - "value", - "current path", - "percent root", - "percent entry", - "percent parent" - ], - "extras": [ - "none" - ], - "editType": "plot", - "description": "Determines which trace information appear on the graph." - }, - "texttemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "plot", - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry`, `percentParent`, `label` and `value`.", - "arrayOk": true - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "style", - "description": "Sets hover text elements associated with each sector. If a single string, the same string appears for all data points. If an array of string, the items are mapped in order of this trace's sectors. To be seen, trace `hoverinfo` must contain a *text* flag." - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "label", - "text", - "value", - "name", - "current path", - "percent root", - "percent entry", - "percent parent" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "label+text+value+name", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `currentPath`, `root`, `entry`, `percentRoot`, `percentEntry` and `percentParent`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "textfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot", - "arrayOk": true - }, - "editType": "plot", - "description": "Sets the font used for `textinfo`.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "insidetextfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot", - "arrayOk": true - }, - "editType": "plot", - "description": "Sets the font used for `textinfo` lying inside the sector.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "outsidetextfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot", - "arrayOk": true - }, - "editType": "plot", - "description": "Sets the font used for `textinfo` lying outside the sector. This option refers to the root of the hierarchy presented on top left corner of a treemap graph. Please note that if a hierarchy has multiple root nodes, this option won't have any effect and `insidetextfont` would be used.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "textposition": { - "valType": "enumerated", - "values": [ - "top left", - "top center", - "top right", - "middle left", - "middle center", - "middle right", - "bottom left", - "bottom center", - "bottom right" - ], - "dflt": "top left", - "role": "style", - "editType": "plot", - "description": "Sets the positions of the `text` elements." - }, - "sort": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not the sectors are reordered from largest to smallest." - }, - "root": { - "color": { - "valType": "color", - "editType": "calc", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "sets the color of the root node for a sunburst or a treemap trace. this has no effect when a colorscale is used to set the markers." - }, - "editType": "calc", - "role": "object" - }, - "domain": { - "x": { - "valType": "info_array", - "role": "info", - "editType": "calc", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the horizontal domain of this treemap trace (in plot fraction)." - }, - "y": { - "valType": "info_array", - "role": "info", - "editType": "calc", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the vertical domain of this treemap trace (in plot fraction)." - }, - "editType": "calc", - "row": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "If there is a layout grid, use the domain for this row in the grid for this treemap trace ." - }, - "column": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "If there is a layout grid, use the domain for this column in the grid for this treemap trace ." - }, - "role": "object" - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "labelssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for labels .", - "editType": "none" - }, - "parentssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for parents .", - "editType": "none" - }, - "valuessrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for values .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "texttemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - } - }, - "layoutAttributes": { - "treemapcolorway": { - "valType": "colorlist", - "role": "style", - "editType": "calc", - "description": "Sets the default treemap slice colors. Defaults to the main `colorway` used for trace colors. If you specify a new list here it can still be extended with lighter and darker colors, see `extendtreemapcolors`." - }, - "extendtreemapcolors": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "calc", - "description": "If `true`, the treemap slice colors (whether given by `treemapcolorway` or inherited from `colorway`) will be extended to three times its original length by first repeating every color 20% lighter then each color 20% darker. This is intended to reduce the likelihood of reusing the same color when you have many slices, but you can set `false` to disable. Colors provided in the trace, using `marker.colors`, are never extended." - } - } + "role": "object" + } + }, + "role": "object" + }, + "hoverformat": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "showline": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not a line bounding this axis is drawn." + }, + "linecolor": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the axis line color." + }, + "linewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the width (in px) of the axis line." + }, + "showgrid": { + "valType": "boolean", + "editType": "plot", + "description": "Determines whether or not grid lines are drawn. If *true*, the grid lines are drawn at every tick mark.", + "dflt": true + }, + "gridcolor": { + "valType": "color", + "dflt": "#eee", + "editType": "plot", + "description": "Sets the color of the grid lines." + }, + "gridwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the width (in px) of the grid lines." + }, + "layer": { + "valType": "enumerated", + "values": [ + "above traces", + "below traces" + ], + "dflt": "above traces", + "editType": "plot", + "description": "Sets the layer on which this axis is displayed. If *above traces*, this axis is displayed above all the subplot's traces If *below traces*, this axis is displayed below all the subplot's traces, but above the grid lines. Useful when used together with scatter-like traces with `cliponaxis` set to *false* to show markers and/or text nodes above this axis." + }, + "min": { + "valType": "number", + "dflt": 0, + "min": 0, + "description": "The minimum value visible on this axis. The maximum is determined by the sum minus the minimum values of the other two axes. The full view corresponds to all the minima set to zero.", + "editType": "plot" + }, + "_deprecated": { + "title": { + "valType": "string", + "editType": "plot", + "description": "Value of `title` is no longer a simple *string* but a set of sub-attributes. To set the axis' title, please use `title.text` now." + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Former `titlefont` is now the sub-attribute `font` of `title`. To customize title font properties, please use `title.font` now." + } + }, + "editType": "plot", + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of user-driven changes in axis `min`, and `title` if in `editable: true` configuration. Defaults to `ternary.uirevision`." + }, + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "editType": "plot", + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of user-driven changes in axis `min` and `title`, if not overridden in the individual axes. Defaults to `layout.uirevision`." + }, + "_isSubplotObj": true, + "role": "object" + }, + "scene": { + "_arrayAttrRegexps": [ + {} + ], + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "editType": "plot" + }, + "camera": { + "up": { + "x": { + "valType": "number", + "dflt": 0, + "editType": "camera" + }, + "y": { + "valType": "number", + "dflt": 0, + "editType": "camera" + }, + "z": { + "valType": "number", + "dflt": 1, + "editType": "camera" + }, + "editType": "camera", + "description": "Sets the (x,y,z) components of the 'up' camera vector. This vector determines the up direction of this scene with respect to the page. The default is *{x: 0, y: 0, z: 1}* which means that the z axis points up.", + "role": "object" + }, + "center": { + "x": { + "valType": "number", + "dflt": 0, + "editType": "camera" + }, + "y": { + "valType": "number", + "dflt": 0, + "editType": "camera" + }, + "z": { + "valType": "number", + "dflt": 0, + "editType": "camera" + }, + "editType": "camera", + "description": "Sets the (x,y,z) components of the 'center' camera vector This vector determines the translation (x,y,z) space about the center of this scene. By default, there is no such translation.", + "role": "object" + }, + "eye": { + "x": { + "valType": "number", + "dflt": 1.25, + "editType": "camera" + }, + "y": { + "valType": "number", + "dflt": 1.25, + "editType": "camera" + }, + "z": { + "valType": "number", + "dflt": 1.25, + "editType": "camera" + }, + "editType": "camera", + "description": "Sets the (x,y,z) components of the 'eye' camera vector. This vector determines the view point about the origin of this scene.", + "role": "object" + }, + "projection": { + "type": { + "valType": "enumerated", + "values": [ + "perspective", + "orthographic" + ], + "dflt": "perspective", + "editType": "calc", + "description": "Sets the projection type. The projection type could be either *perspective* or *orthographic*. The default is *perspective*." + }, + "editType": "calc", + "role": "object" + }, + "editType": "camera", + "role": "object" + }, + "domain": { + "x": { + "valType": "info_array", + "editType": "plot", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the horizontal domain of this scene subplot (in plot fraction)." + }, + "y": { + "valType": "info_array", + "editType": "plot", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the vertical domain of this scene subplot (in plot fraction)." + }, + "editType": "plot", + "row": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "plot", + "description": "If there is a layout grid, use the domain for this row in the grid for this scene subplot ." + }, + "column": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "plot", + "description": "If there is a layout grid, use the domain for this column in the grid for this scene subplot ." + }, + "role": "object" + }, + "aspectmode": { + "valType": "enumerated", + "values": [ + "auto", + "cube", + "data", + "manual" + ], + "dflt": "auto", + "editType": "plot", + "impliedEdits": {}, + "description": "If *cube*, this scene's axes are drawn as a cube, regardless of the axes' ranges. If *data*, this scene's axes are drawn in proportion with the axes' ranges. If *manual*, this scene's axes are drawn in proportion with the input of *aspectratio* (the default behavior if *aspectratio* is provided). If *auto*, this scene's axes are drawn using the results of *data* except when one axis is more than four times the size of the two others, where in that case the results of *cube* are used." + }, + "aspectratio": { + "x": { + "valType": "number", + "min": 0, + "editType": "plot", + "impliedEdits": { + "^aspectmode": "manual" + } + }, + "y": { + "valType": "number", + "min": 0, + "editType": "plot", + "impliedEdits": { + "^aspectmode": "manual" + } + }, + "z": { + "valType": "number", + "min": 0, + "editType": "plot", + "impliedEdits": { + "^aspectmode": "manual" + } + }, + "editType": "plot", + "impliedEdits": { + "aspectmode": "manual", + "role": "object" + }, + "description": "Sets this scene's axis aspectratio.", + "role": "object" + }, + "xaxis": { + "visible": { + "valType": "boolean", + "editType": "plot", + "description": "A single toggle to hide the axis while preserving interaction like dragging. Default is true when a cheater plot is present on the axis, otherwise false" + }, + "showspikes": { + "valType": "boolean", + "dflt": true, + "description": "Sets whether or not spikes starting from data points to this axis' wall are shown on hover.", + "editType": "plot" + }, + "spikesides": { + "valType": "boolean", + "dflt": true, + "description": "Sets whether or not spikes extending from the projection data points to this axis' wall boundaries are shown on hover.", + "editType": "plot" + }, + "spikethickness": { + "valType": "number", + "min": 0, + "dflt": 2, + "description": "Sets the thickness (in px) of the spikes.", + "editType": "plot" + }, + "spikecolor": { + "valType": "color", + "dflt": "#444", + "description": "Sets the color of the spikes.", + "editType": "plot" + }, + "showbackground": { + "valType": "boolean", + "dflt": false, + "description": "Sets whether or not this axis' wall has a background color.", + "editType": "plot" + }, + "backgroundcolor": { + "valType": "color", + "dflt": "rgba(204, 204, 204, 0.5)", + "description": "Sets the background color of this axis' wall.", + "editType": "plot" + }, + "showaxeslabels": { + "valType": "boolean", + "dflt": true, + "description": "Sets whether or not this axis is labeled", + "editType": "plot" + }, + "color": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." + }, + "categoryorder": { + "valType": "enumerated", + "values": [ + "trace", + "category ascending", + "category descending", + "array", + "total ascending", + "total descending", + "min ascending", + "min descending", + "max ascending", + "max descending", + "sum ascending", + "sum descending", + "mean ascending", + "mean descending", + "median ascending", + "median descending" + ], + "dflt": "trace", + "editType": "plot", + "description": "Specifies the ordering logic for the case of categorical variables. By default, plotly uses *trace*, which specifies the order that is present in the data supplied. Set `categoryorder` to *category ascending* or *category descending* if order should be determined by the alphanumerical order of the category names. Set `categoryorder` to *array* to derive the ordering from the attribute `categoryarray`. If a category is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to the *trace* mode. The unspecified categories will follow the categories in `categoryarray`. Set `categoryorder` to *total ascending* or *total descending* if order should be determined by the numerical order of the values. Similarly, the order can be determined by the min, max, sum, mean or median of all the values." + }, + "categoryarray": { + "valType": "data_array", + "editType": "plot", + "description": "Sets the order in which categories on this axis appear. Only has an effect if `categoryorder` is set to *array*. Used with `categoryorder`." + }, + "title": { + "text": { + "valType": "string", + "editType": "plot", + "description": "Sets the title of this axis. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Sets this axis' title font. Note that the title's font used to be customized by the now deprecated `titlefont` attribute.", + "role": "object" + }, + "editType": "plot", + "role": "object" + }, + "type": { + "valType": "enumerated", + "values": [ + "-", + "linear", + "log", + "date", + "category" + ], + "dflt": "-", + "editType": "plot", + "_noTemplating": true, + "description": "Sets the axis type. By default, plotly attempts to determined the axis type by looking into the data of the traces that referenced the axis in question." + }, + "autotypenumbers": { + "valType": "enumerated", + "values": [ + "convert types", + "strict" + ], + "dflt": "convert types", + "editType": "plot", + "description": "Using *strict* a numeric string in trace data is not converted to a number. Using *convert types* a numeric string in trace data may be treated as a number during automatic axis `type` detection. Defaults to layout.autotypenumbers." + }, + "autorange": { + "valType": "enumerated", + "values": [ + true, + false, + "reversed" + ], + "dflt": true, + "editType": "plot", + "impliedEdits": {}, + "description": "Determines whether or not the range of this axis is computed in relation to the input data. See `rangemode` for more info. If `range` is provided, then `autorange` is set to *false*." + }, + "rangemode": { + "valType": "enumerated", + "values": [ + "normal", + "tozero", + "nonnegative" + ], + "dflt": "normal", + "editType": "plot", + "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes." + }, + "range": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "^autorange": false + } + }, + { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "^autorange": false + } + } + ], + "editType": "plot", + "impliedEdits": { + "autorange": false + }, + "anim": false, + "description": "Sets the range of this axis. If the axis `type` is *log*, then you must take the log of your desired range (e.g. to set the range from 1 to 100, set the range from 0 to 2). If the axis `type` is *date*, it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is *category*, it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "plot", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "plot", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "plot", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "plot", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "plot", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines." + }, + "mirror": { + "valType": "enumerated", + "values": [ + true, + "ticks", + false, + "all", + "allticks" + ], + "dflt": false, + "editType": "plot", + "description": "Determines if the axis lines or/and ticks are mirrored to the opposite side of the plotting area. If *true*, the axis lines are mirrored. If *ticks*, the axis lines and ticks are mirrored. If *false*, mirroring is disable. If *all*, axis lines are mirrored on all shared-axes subplots. If *allticks*, axis lines and ticks are mirrored on all shared-axes subplots." + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "plot", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Sets the tick font.", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "plot", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "plot", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "plot", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "If \"true\", even 4-digit integers are separated" + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." }, - "funnelarea": { - "meta": { - "description": "Visualize stages in a process using area-encoded trapezoids. This trace can be used to show data in a part-to-whole representation similar to a \"pie\" trace, wherein each item appears in a single stage. See also the \"funnel\" trace type for a different approach to visualizing funnel data." - }, - "categories": [ - "pie-like", - "funnelarea", - "showLegend" - ], - "animatable": false, - "type": "funnelarea", - "attributes": { - "type": "funnelarea", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "labels": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the sector labels. If `labels` entries are duplicated, we sum associated `values` or simply count occurrences if `values` is not provided. For other array attributes (including color) we use the first non-empty entry among all occurrences of the label.", - "role": "data" - }, - "label0": { - "valType": "number", - "role": "info", - "dflt": 0, - "editType": "calc", - "description": "Alternate to `labels`. Builds a numeric set of labels. Use with `dlabel` where `label0` is the starting label and `dlabel` the step." - }, - "dlabel": { - "valType": "number", - "role": "info", - "dflt": 1, - "editType": "calc", - "description": "Sets the label step. See `label0` for more info." - }, - "values": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the values of the sectors. If omitted, we count occurrences of each label.", - "role": "data" - }, - "marker": { - "colors": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the color of each sector. If not specified, the default trace color set is used to pick the sector colors.", - "role": "data" - }, - "line": { - "color": { - "valType": "color", - "role": "style", - "dflt": null, - "arrayOk": true, - "editType": "style", - "description": "Sets the color of the line enclosing each sector. Defaults to the `paper_bgcolor` value." - }, - "width": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 1, - "arrayOk": true, - "editType": "style", - "description": "Sets the width (in px) of the line enclosing each sector." - }, - "editType": "calc", - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - }, - "widthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for width .", - "editType": "none" - } - }, - "editType": "calc", - "role": "object", - "colorssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for colors .", - "editType": "none" - } - }, - "text": { - "valType": "data_array", - "editType": "plot", - "description": "Sets text elements associated with each sector. If trace `textinfo` contains a *text* flag, these elements will be seen on the chart. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", - "role": "data" - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "style", - "description": "Sets hover text elements associated with each sector. If a single string, the same string appears for all data points. If an array of string, the items are mapped in order of this trace's sectors. To be seen, trace `hoverinfo` must contain a *text* flag." - }, - "scalegroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "If there are multiple funnelareas that should be sized according to their totals, link them by providing a non-empty group id here shared by every trace in the same group." - }, - "textinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "label", - "text", - "value", - "percent" - ], - "extras": [ - "none" - ], - "editType": "calc", - "description": "Determines which trace information appear on the graph." - }, - "texttemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "plot", - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `label`, `color`, `value`, `text` and `percent`.", - "arrayOk": true - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "label", - "text", - "value", - "percent", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `label`, `color`, `value`, `text` and `percent`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "textposition": { - "valType": "enumerated", - "role": "info", - "values": [ - "inside", - "none" - ], - "dflt": "inside", - "arrayOk": true, - "editType": "plot", - "description": "Specifies the location of the `textinfo`." - }, - "textfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot", - "arrayOk": true - }, - "editType": "plot", - "description": "Sets the font used for `textinfo`.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "insidetextfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot", - "arrayOk": true - }, - "editType": "plot", - "description": "Sets the font used for `textinfo` lying inside the sector.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "title": { - "text": { - "valType": "string", - "dflt": "", - "role": "info", - "editType": "plot", - "description": "Sets the title of the chart. If it is empty, no title is displayed. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot", - "arrayOk": true - }, - "editType": "plot", - "description": "Sets the font used for `title`. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "position": { - "valType": "enumerated", - "values": [ - "top left", - "top center", - "top right" - ], - "role": "info", - "editType": "plot", - "description": "Specifies the location of the `title`. Note that the title's position used to be set by the now deprecated `titleposition` attribute.", - "dflt": "top center" - }, - "editType": "plot", - "role": "object" - }, - "domain": { - "x": { - "valType": "info_array", - "role": "info", - "editType": "calc", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the horizontal domain of this funnelarea trace (in plot fraction)." - }, - "y": { - "valType": "info_array", - "role": "info", - "editType": "calc", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the vertical domain of this funnelarea trace (in plot fraction)." - }, - "editType": "calc", - "row": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "If there is a layout grid, use the domain for this row in the grid for this funnelarea trace ." - }, - "column": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "If there is a layout grid, use the domain for this column in the grid for this funnelarea trace ." - }, - "role": "object" - }, - "aspectratio": { - "valType": "number", - "role": "info", - "min": 0, - "dflt": 1, - "editType": "plot", - "description": "Sets the ratio between height and width" - }, - "baseratio": { - "valType": "number", - "role": "info", - "min": 0, - "max": 1, - "dflt": 0.333, - "editType": "plot", - "description": "Sets the ratio between bottom length and maximum top length." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "labelssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for labels .", - "editType": "none" - }, - "valuessrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for values .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "texttemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - }, - "textpositionsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for textposition .", - "editType": "none" - } - }, - "layoutAttributes": { - "hiddenlabels": { - "valType": "data_array", - "role": "data", - "editType": "calc", - "description": "hiddenlabels is the funnelarea & pie chart analog of visible:'legendonly' but it can contain many labels, and can simultaneously hide slices from several pies/funnelarea charts" - }, - "funnelareacolorway": { - "valType": "colorlist", - "role": "style", - "editType": "calc", - "description": "Sets the default funnelarea slice colors. Defaults to the main `colorway` used for trace colors. If you specify a new list here it can still be extended with lighter and darker colors, see `extendfunnelareacolors`." - }, - "extendfunnelareacolors": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "calc", - "description": "If `true`, the funnelarea slice colors (whether given by `funnelareacolorway` or inherited from `colorway`) will be extended to three times its original length by first repeating every color 20% lighter then each color 20% darker. This is intended to reduce the likelihood of reusing the same color when you have many slices, but you can set `false` to disable. Colors provided in the trace, using `marker.colors`, are never extended." - }, - "hiddenlabelssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hiddenlabels .", - "editType": "none" - } - } + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "plot" + }, + { + "valType": "any", + "editType": "plot" + } + ], + "editType": "plot", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" }, - "scatter3d": { - "meta": { - "hrName": "scatter_3d", - "description": "The data visualized as scatter point or lines in 3D dimension is set in `x`, `y`, `z`. Text (appearing either on the chart or on hover only) is via `text`. Bubble charts are achieved by setting `marker.size` and/or `marker.color` Projections are achieved via `projection`. Surface fills are achieved via `surfaceaxis`." - }, - "categories": [ - "gl3d", - "symbols", - "showLegend", - "scatter-like" - ], - "animatable": false, - "type": "scatter3d", - "attributes": { - "type": "scatter3d", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "x": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the x coordinates.", - "role": "data" - }, - "y": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the y coordinates.", - "role": "data" - }, - "z": { - "valType": "data_array", - "description": "Sets the z coordinates.", - "editType": "calc+clearAxisTypes", - "role": "data" - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets text elements associated with each (x,y,z) triplet. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y,z) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." - }, - "texttemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. ", - "arrayOk": true - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets text elements associated with each (x,y,z) triplet. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y,z) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "mode": { - "valType": "flaglist", - "flags": [ - "lines", - "markers", - "text" - ], - "extras": [ - "none" - ], - "role": "info", - "editType": "calc", - "description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover. If there are less than 20 points and the trace is not stacked then the default is *lines+markers*. Otherwise, *lines*.", - "dflt": "lines+markers" - }, - "surfaceaxis": { - "valType": "enumerated", - "role": "info", - "values": [ - -1, - 0, - 1, - 2 - ], - "dflt": -1, - "description": "If *-1*, the scatter points are not fill with a surface If *0*, *1*, *2*, the scatter points are filled with a Delaunay surface about the x, y, z respectively.", - "editType": "calc" - }, - "surfacecolor": { - "valType": "color", - "role": "style", - "description": "Sets the surface fill color.", - "editType": "calc" - }, - "projection": { - "x": { - "show": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Sets whether or not projections are shown along the x axis.", - "editType": "calc" - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "description": "Sets the projection color.", - "editType": "calc" - }, - "scale": { - "valType": "number", - "role": "style", - "min": 0, - "max": 10, - "dflt": 0.6666666666666666, - "description": "Sets the scale factor determining the size of the projection marker points.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "y": { - "show": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Sets whether or not projections are shown along the y axis.", - "editType": "calc" - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "description": "Sets the projection color.", - "editType": "calc" - }, - "scale": { - "valType": "number", - "role": "style", - "min": 0, - "max": 10, - "dflt": 0.6666666666666666, - "description": "Sets the scale factor determining the size of the projection marker points.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "z": { - "show": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Sets whether or not projections are shown along the z axis.", - "editType": "calc" - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "description": "Sets the projection color.", - "editType": "calc" - }, - "scale": { - "valType": "number", - "role": "style", - "min": 0, - "max": 10, - "dflt": 0.6666666666666666, - "description": "Sets the scale factor determining the size of the projection marker points.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "editType": "calc", - "role": "object" - }, - "connectgaps": { - "valType": "boolean", - "dflt": false, - "role": "info", - "editType": "calc", - "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected." - }, - "line": { - "width": { - "valType": "number", - "min": 0, - "dflt": 2, - "role": "style", - "editType": "calc", - "description": "Sets the line width (in px)." - }, - "dash": { - "valType": "enumerated", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ], - "dflt": "solid", - "role": "style", - "description": "Sets the dash style of the lines.", - "editType": "calc" - }, - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets thelinecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `line.cmin` and `line.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `line.color`) or the bounds set in `line.cmin` and `line.cmax` Has an effect only if in `line.color`is set to a numerical array. Defaults to `false` when `line.cmin` and `line.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `line.color`is set to a numerical array. Value should have the same units as in `line.color` and if set, `line.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `line.color`is set to a numerical array. Value should have the same units as in `line.color` and if set, `line.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `line.cmin` and/or `line.cmax` to be equidistant to this point. Has an effect only if in `line.color`is set to a numerical array. Value should have the same units as in `line.color`. Has no effect when `line.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`line.cmin` and `line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `line.colorscale`. Has an effect only if in `line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "calc", - "description": "Reverses the color mapping if true. Has an effect only if in `line.color`is set to a numerical array. If true, `line.cmin` will correspond to the last color in the array and `line.cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `line.color`is set to a numerical array." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "calc" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "calc" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "calc" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "calc" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "calc" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "calc" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "calc" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "calc" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "calc" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "calc" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "calc" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "calc" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "calc", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "calc" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "calc", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "calc", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Sets the color bar's tick label font", - "editType": "calc", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "calc", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "calc" - }, - { - "valType": "any", - "editType": "calc" - } - ], - "editType": "calc", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "calc", - "name": { - "valType": "string", - "role": "style", - "editType": "calc", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "calc", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "calc", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "calc", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "calc" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "calc", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "calc" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "calc" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "calc" - } - }, - "editType": "calc", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "editType": "calc", - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "marker": { - "symbol": { - "valType": "enumerated", - "values": [ - "circle", - "circle-open", - "square", - "square-open", - "diamond", - "diamond-open", - "cross", - "x" - ], - "role": "style", - "dflt": "circle", - "arrayOk": true, - "description": "Sets the marker symbol type.", - "editType": "calc" - }, - "size": { - "valType": "number", - "min": 0, - "dflt": 8, - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the marker size (in px)." - }, - "sizeref": { - "valType": "number", - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`." - }, - "sizemin": { - "valType": "number", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points." - }, - "sizemode": { - "valType": "enumerated", - "values": [ - "diameter", - "area" - ], - "dflt": "diameter", - "role": "info", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels." - }, - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "arrayOk": false, - "role": "style", - "editType": "calc", - "description": "Sets the marker opacity. Note that the marker opacity for scatter3d traces must be a scalar value for performance reasons. To set a blending opacity value (i.e. which is not transparent), set *marker.color* to an rgba color and use its alpha channel." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "calc" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "calc" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "calc" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "calc" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "calc" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "calc" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "calc" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "calc" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "calc" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "calc" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "calc" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "calc" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "calc", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "calc" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "calc", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "calc", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Sets the color bar's tick label font", - "editType": "calc", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "calc", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "calc" - }, - { - "valType": "any", - "editType": "calc" - } - ], - "editType": "calc", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "calc", - "name": { - "valType": "string", - "role": "style", - "editType": "calc", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "calc", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "calc", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "calc", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "calc" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "calc", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "calc" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "calc" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "calc" - } - }, - "editType": "calc", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "line": { - "width": { - "valType": "number", - "min": 0, - "arrayOk": false, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the lines bounding the marker points." - }, - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "calc", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "editType": "calc", - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "calc", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "editType": "calc", - "role": "object", - "symbolsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for symbol .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "textposition": { - "valType": "enumerated", - "values": [ - "top left", - "top center", - "top right", - "middle left", - "middle center", - "middle right", - "bottom left", - "bottom center", - "bottom right" - ], - "dflt": "top center", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates." - }, - "textfont": { - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc", - "arrayOk": true - }, - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": false - }, - "editType": "calc", - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - } - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "calc", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "error_x": { - "visible": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether or not this set of error bars is visible." - }, - "type": { - "valType": "enumerated", - "values": [ - "percent", - "constant", - "sqrt", - "data" - ], - "role": "info", - "editType": "calc", - "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`." - }, - "symmetric": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars." - }, - "array": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", - "role": "data" - }, - "arrayminus": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", - "role": "data" - }, - "value": { - "valType": "number", - "min": 0, - "dflt": 10, - "role": "info", - "editType": "calc", - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars." - }, - "valueminus": { - "valType": "number", - "min": 0, - "dflt": 10, - "role": "info", - "editType": "calc", - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars" - }, - "traceref": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc" - }, - "tracerefminus": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc" - }, - "copy_zstyle": { - "valType": "boolean", - "role": "style", - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the stoke color of the error bars." - }, - "thickness": { - "valType": "number", - "min": 0, - "dflt": 2, - "role": "style", - "editType": "calc", - "description": "Sets the thickness (in px) of the error bars." - }, - "width": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the cross-bar at both ends of the error bars." - }, - "editType": "calc", - "_deprecated": { - "opacity": { - "valType": "number", - "role": "style", - "editType": "calc", - "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." - } - }, - "role": "object", - "arraysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for array .", - "editType": "none" - }, - "arrayminussrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for arrayminus .", - "editType": "none" - } - }, - "error_y": { - "visible": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether or not this set of error bars is visible." - }, - "type": { - "valType": "enumerated", - "values": [ - "percent", - "constant", - "sqrt", - "data" - ], - "role": "info", - "editType": "calc", - "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`." - }, - "symmetric": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars." - }, - "array": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", - "role": "data" - }, - "arrayminus": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", - "role": "data" - }, - "value": { - "valType": "number", - "min": 0, - "dflt": 10, - "role": "info", - "editType": "calc", - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars." - }, - "valueminus": { - "valType": "number", - "min": 0, - "dflt": 10, - "role": "info", - "editType": "calc", - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars" - }, - "traceref": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc" - }, - "tracerefminus": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc" - }, - "copy_zstyle": { - "valType": "boolean", - "role": "style", - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the stoke color of the error bars." - }, - "thickness": { - "valType": "number", - "min": 0, - "dflt": 2, - "role": "style", - "editType": "calc", - "description": "Sets the thickness (in px) of the error bars." - }, - "width": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the cross-bar at both ends of the error bars." - }, - "editType": "calc", - "_deprecated": { - "opacity": { - "valType": "number", - "role": "style", - "editType": "calc", - "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." - } - }, - "role": "object", - "arraysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for array .", - "editType": "none" - }, - "arrayminussrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for arrayminus .", - "editType": "none" - } - }, - "error_z": { - "visible": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether or not this set of error bars is visible." - }, - "type": { - "valType": "enumerated", - "values": [ - "percent", - "constant", - "sqrt", - "data" - ], - "role": "info", - "editType": "calc", - "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`." - }, - "symmetric": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars." - }, - "array": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", - "role": "data" - }, - "arrayminus": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", - "role": "data" - }, - "value": { - "valType": "number", - "min": 0, - "dflt": 10, - "role": "info", - "editType": "calc", - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars." - }, - "valueminus": { - "valType": "number", - "min": 0, - "dflt": 10, - "role": "info", - "editType": "calc", - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars" - }, - "traceref": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc" - }, - "tracerefminus": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the stoke color of the error bars." - }, - "thickness": { - "valType": "number", - "min": 0, - "dflt": 2, - "role": "style", - "editType": "calc", - "description": "Sets the thickness (in px) of the error bars." - }, - "width": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the cross-bar at both ends of the error bars." - }, - "editType": "calc", - "_deprecated": { - "opacity": { - "valType": "number", - "role": "style", - "editType": "calc", - "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." - } - }, - "role": "object", - "arraysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for array .", - "editType": "none" - }, - "arrayminussrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for arrayminus .", - "editType": "none" - } - }, - "xcalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `x` date data." - }, - "ycalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `y` date data." - }, - "zcalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `z` date data." - }, - "scene": { - "valType": "subplotid", - "role": "info", - "dflt": "scene", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's 3D coordinate system and a 3D scene. If *scene* (the default value), the (x,y,z) coordinates refer to `layout.scene`. If *scene2*, the (x,y,z) coordinates refer to `layout.scene2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "ysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for y .", - "editType": "none" - }, - "zsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for z .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "texttemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - }, - "textpositionsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for textposition .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - } - } + "value": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" }, - "surface": { - "meta": { - "description": "The data the describes the coordinates of the surface is set in `z`. Data in `z` should be a {2D array}. Coordinates in `x` and `y` can either be 1D {arrays} or {2D arrays} (e.g. to graph parametric surfaces). If not provided in `x` and `y`, the x and y coordinates are assumed to be linear starting at 0 with a unit step. The color scale corresponds to the `z` values by default. For custom color scales, use `surfacecolor` which should be a {2D array}, where its bounds can be controlled using `cmin` and `cmax`." - }, - "categories": [ - "gl3d", - "2dMap", - "showLegend" - ], - "animatable": false, - "type": "surface", - "attributes": { - "type": "surface", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "z": { - "valType": "data_array", - "description": "Sets the z coordinates.", - "editType": "calc+clearAxisTypes", - "role": "data" - }, - "x": { - "valType": "data_array", - "description": "Sets the x coordinates.", - "editType": "calc+clearAxisTypes", - "role": "data" - }, - "y": { - "valType": "data_array", - "description": "Sets the y coordinates.", - "editType": "calc+clearAxisTypes", - "role": "data" - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "description": "Sets the text elements associated with each z value. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", - "editType": "calc" - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "description": "Same as `text`.", - "editType": "calc" - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "connectgaps": { - "valType": "boolean", - "dflt": false, - "role": "info", - "editType": "calc", - "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the `z` data are filled in." - }, - "surfacecolor": { - "valType": "data_array", - "description": "Sets the surface color values, used for setting a color scale independent of `z`.", - "editType": "calc", - "role": "data" - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here z or surfacecolor) or the bounds set in `cmin` and `cmax` Defaults to `false` when `cmin` and `cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Value should have the same units as z or surfacecolor and if set, `cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Value should have the same units as z or surfacecolor and if set, `cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `cmin` and/or `cmax` to be equidistant to this point. Value should have the same units as z or surfacecolor. Has no effect when `cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`cmin` and `cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "calc", - "description": "Reverses the color mapping if true. If true, `cmin` will correspond to the last color in the array and `cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "calc" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "calc" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "calc" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "calc" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "calc" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "calc" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "calc" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "calc" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "calc" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "calc" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "calc" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "calc" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "calc", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "calc" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "calc", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "calc", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Sets the color bar's tick label font", - "editType": "calc", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "calc", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "calc" - }, - { - "valType": "any", - "editType": "calc" - } - ], - "editType": "calc", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "calc", - "name": { - "valType": "string", - "role": "style", - "editType": "calc", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "calc", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "calc", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "calc", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "calc" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "calc", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "calc" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "calc" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "calc" - } - }, - "editType": "calc", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "contours": { - "x": { - "show": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Determines whether or not contour lines about the x dimension are drawn.", - "editType": "calc" - }, - "start": { - "valType": "number", - "dflt": null, - "role": "style", - "editType": "calc", - "description": "Sets the starting contour level value. Must be less than `contours.end`" - }, - "end": { - "valType": "number", - "dflt": null, - "role": "style", - "editType": "calc", - "description": "Sets the end contour level value. Must be more than `contours.start`" - }, - "size": { - "valType": "number", - "dflt": null, - "min": 0, - "role": "style", - "editType": "calc", - "description": "Sets the step between each contour level. Must be positive." - }, - "project": { - "x": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Determines whether or not these contour lines are projected on the x plane. If `highlight` is set to *true* (the default), the projected lines are shown on hover. If `show` is set to *true*, the projected lines are shown in permanence.", - "editType": "calc" - }, - "y": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Determines whether or not these contour lines are projected on the y plane. If `highlight` is set to *true* (the default), the projected lines are shown on hover. If `show` is set to *true*, the projected lines are shown in permanence.", - "editType": "calc" - }, - "z": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Determines whether or not these contour lines are projected on the z plane. If `highlight` is set to *true* (the default), the projected lines are shown on hover. If `show` is set to *true*, the projected lines are shown in permanence.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "color": { - "valType": "color", - "role": "style", - "dflt": "#444", - "description": "Sets the color of the contour lines.", - "editType": "calc" - }, - "usecolormap": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "An alternate to *color*. Determines whether or not the contour lines are colored using the trace *colorscale*.", - "editType": "calc" - }, - "width": { - "valType": "number", - "role": "style", - "min": 1, - "max": 16, - "dflt": 2, - "description": "Sets the width of the contour lines.", - "editType": "calc" - }, - "highlight": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Determines whether or not contour lines about the x dimension are highlighted on hover.", - "editType": "calc" - }, - "highlightcolor": { - "valType": "color", - "role": "style", - "dflt": "#444", - "description": "Sets the color of the highlighted contour lines.", - "editType": "calc" - }, - "highlightwidth": { - "valType": "number", - "role": "style", - "min": 1, - "max": 16, - "dflt": 2, - "description": "Sets the width of the highlighted contour lines.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "y": { - "show": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Determines whether or not contour lines about the y dimension are drawn.", - "editType": "calc" - }, - "start": { - "valType": "number", - "dflt": null, - "role": "style", - "editType": "calc", - "description": "Sets the starting contour level value. Must be less than `contours.end`" - }, - "end": { - "valType": "number", - "dflt": null, - "role": "style", - "editType": "calc", - "description": "Sets the end contour level value. Must be more than `contours.start`" - }, - "size": { - "valType": "number", - "dflt": null, - "min": 0, - "role": "style", - "editType": "calc", - "description": "Sets the step between each contour level. Must be positive." - }, - "project": { - "x": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Determines whether or not these contour lines are projected on the x plane. If `highlight` is set to *true* (the default), the projected lines are shown on hover. If `show` is set to *true*, the projected lines are shown in permanence.", - "editType": "calc" - }, - "y": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Determines whether or not these contour lines are projected on the y plane. If `highlight` is set to *true* (the default), the projected lines are shown on hover. If `show` is set to *true*, the projected lines are shown in permanence.", - "editType": "calc" - }, - "z": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Determines whether or not these contour lines are projected on the z plane. If `highlight` is set to *true* (the default), the projected lines are shown on hover. If `show` is set to *true*, the projected lines are shown in permanence.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "color": { - "valType": "color", - "role": "style", - "dflt": "#444", - "description": "Sets the color of the contour lines.", - "editType": "calc" - }, - "usecolormap": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "An alternate to *color*. Determines whether or not the contour lines are colored using the trace *colorscale*.", - "editType": "calc" - }, - "width": { - "valType": "number", - "role": "style", - "min": 1, - "max": 16, - "dflt": 2, - "description": "Sets the width of the contour lines.", - "editType": "calc" - }, - "highlight": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Determines whether or not contour lines about the y dimension are highlighted on hover.", - "editType": "calc" - }, - "highlightcolor": { - "valType": "color", - "role": "style", - "dflt": "#444", - "description": "Sets the color of the highlighted contour lines.", - "editType": "calc" - }, - "highlightwidth": { - "valType": "number", - "role": "style", - "min": 1, - "max": 16, - "dflt": 2, - "description": "Sets the width of the highlighted contour lines.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "z": { - "show": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Determines whether or not contour lines about the z dimension are drawn.", - "editType": "calc" - }, - "start": { - "valType": "number", - "dflt": null, - "role": "style", - "editType": "calc", - "description": "Sets the starting contour level value. Must be less than `contours.end`" - }, - "end": { - "valType": "number", - "dflt": null, - "role": "style", - "editType": "calc", - "description": "Sets the end contour level value. Must be more than `contours.start`" - }, - "size": { - "valType": "number", - "dflt": null, - "min": 0, - "role": "style", - "editType": "calc", - "description": "Sets the step between each contour level. Must be positive." - }, - "project": { - "x": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Determines whether or not these contour lines are projected on the x plane. If `highlight` is set to *true* (the default), the projected lines are shown on hover. If `show` is set to *true*, the projected lines are shown in permanence.", - "editType": "calc" - }, - "y": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Determines whether or not these contour lines are projected on the y plane. If `highlight` is set to *true* (the default), the projected lines are shown on hover. If `show` is set to *true*, the projected lines are shown in permanence.", - "editType": "calc" - }, - "z": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Determines whether or not these contour lines are projected on the z plane. If `highlight` is set to *true* (the default), the projected lines are shown on hover. If `show` is set to *true*, the projected lines are shown in permanence.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "color": { - "valType": "color", - "role": "style", - "dflt": "#444", - "description": "Sets the color of the contour lines.", - "editType": "calc" - }, - "usecolormap": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "An alternate to *color*. Determines whether or not the contour lines are colored using the trace *colorscale*.", - "editType": "calc" - }, - "width": { - "valType": "number", - "role": "style", - "min": 1, - "max": 16, - "dflt": 2, - "description": "Sets the width of the contour lines.", - "editType": "calc" - }, - "highlight": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Determines whether or not contour lines about the z dimension are highlighted on hover.", - "editType": "calc" - }, - "highlightcolor": { - "valType": "color", - "role": "style", - "dflt": "#444", - "description": "Sets the color of the highlighted contour lines.", - "editType": "calc" - }, - "highlightwidth": { - "valType": "number", - "role": "style", - "min": 1, - "max": 16, - "dflt": 2, - "description": "Sets the width of the highlighted contour lines.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "editType": "calc", - "role": "object" - }, - "hidesurface": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Determines whether or not a surface is drawn. For example, set `hidesurface` to *false* `contours.x.show` to *true* and `contours.y.show` to *true* to draw a wire frame plot.", - "editType": "calc" - }, - "lightposition": { - "x": { - "valType": "number", - "role": "style", - "min": -100000, - "max": 100000, - "dflt": 10, - "description": "Numeric vector, representing the X coordinate for each vertex.", - "editType": "calc" - }, - "y": { - "valType": "number", - "role": "style", - "min": -100000, - "max": 100000, - "dflt": 10000, - "description": "Numeric vector, representing the Y coordinate for each vertex.", - "editType": "calc" - }, - "z": { - "valType": "number", - "role": "style", - "min": -100000, - "max": 100000, - "dflt": 0, - "description": "Numeric vector, representing the Z coordinate for each vertex.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "lighting": { - "ambient": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0.8, - "description": "Ambient light increases overall color visibility but can wash out the image.", - "editType": "calc" - }, - "diffuse": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0.8, - "description": "Represents the extent that incident rays are reflected in a range of angles.", - "editType": "calc" - }, - "specular": { - "valType": "number", - "role": "style", - "min": 0, - "max": 2, - "dflt": 0.05, - "description": "Represents the level that incident rays are reflected in a single direction, causing shine.", - "editType": "calc" - }, - "roughness": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0.5, - "description": "Alters specular reflection; the rougher the surface, the wider and less contrasty the shine.", - "editType": "calc" - }, - "fresnel": { - "valType": "number", - "role": "style", - "min": 0, - "max": 5, - "dflt": 0.2, - "description": "Represents the reflectance as a dependency of the viewing angle; e.g. paper is reflective when viewing it from the edge of the paper (almost 90 degrees), causing shine.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "description": "Sets the opacity of the surface. Please note that in the case of using high `opacity` values for example a value greater than or equal to 0.5 on two surfaces (and 0.25 with four surfaces), an overlay of multiple transparent surfaces may not perfectly be sorted in depth by the webgl API. This behavior may be improved in the near future and is subject to change.", - "editType": "calc" - }, - "opacityscale": { - "valType": "any", - "role": "style", - "editType": "calc", - "description": "Sets the opacityscale. The opacityscale must be an array containing arrays mapping a normalized value to an opacity value. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 1], [0.5, 0.2], [1, 1]]` means that higher/lower values would have higher opacity values and those in the middle would be more transparent Alternatively, `opacityscale` may be a palette name string of the following list: 'min', 'max', 'extremes' and 'uniform'. The default is 'uniform'." - }, - "_deprecated": { - "zauto": { - "description": "Obsolete. Use `cauto` instead.", - "editType": "calc" - }, - "zmin": { - "description": "Obsolete. Use `cmin` instead.", - "editType": "calc" - }, - "zmax": { - "description": "Obsolete. Use `cmax` instead.", - "editType": "calc" - } - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "calc", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "calc", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "xcalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `x` date data." - }, - "ycalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `y` date data." - }, - "zcalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `z` date data." - }, - "scene": { - "valType": "subplotid", - "role": "info", - "dflt": "scene", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's 3D coordinate system and a 3D scene. If *scene* (the default value), the (x,y,z) coordinates refer to `layout.scene`. If *scene2*, the (x,y,z) coordinates refer to `layout.scene2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "zsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for z .", - "editType": "none" - }, - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "ysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for y .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - }, - "surfacecolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for surfacecolor .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - } - } + "editType": "plot", + "name": { + "valType": "string", + "editType": "plot", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." }, - "isosurface": { - "meta": { - "description": "Draws isosurfaces between iso-min and iso-max values with coordinates given by four 1-dimensional arrays containing the `value`, `x`, `y` and `z` of every vertex of a uniform or non-uniform 3-D grid. Horizontal or vertical slices, caps as well as spaceframe between iso-min and iso-max values could also be drawn using this trace." - }, - "categories": [ - "gl3d", - "showLegend" - ], - "animatable": false, - "type": "isosurface", - "attributes": { - "type": "isosurface", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "x": { - "valType": "data_array", - "role": "data", - "description": "Sets the X coordinates of the vertices on X axis.", - "editType": "calc+clearAxisTypes" - }, - "y": { - "valType": "data_array", - "role": "data", - "description": "Sets the Y coordinates of the vertices on Y axis.", - "editType": "calc+clearAxisTypes" - }, - "z": { - "valType": "data_array", - "role": "data", - "description": "Sets the Z coordinates of the vertices on Z axis.", - "editType": "calc+clearAxisTypes" - }, - "value": { - "valType": "data_array", - "role": "data", - "description": "Sets the 4th dimension (value) of the vertices.", - "editType": "calc+clearAxisTypes" - }, - "isomin": { - "valType": "number", - "role": "info", - "description": "Sets the minimum boundary for iso-surface plot.", - "editType": "calc" - }, - "isomax": { - "valType": "number", - "role": "info", - "description": "Sets the maximum boundary for iso-surface plot.", - "editType": "calc" - }, - "surface": { - "show": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Hides/displays surfaces between minimum and maximum iso-values.", - "editType": "calc" - }, - "count": { - "valType": "integer", - "role": "info", - "dflt": 2, - "min": 1, - "description": "Sets the number of iso-surfaces between minimum and maximum iso-values. By default this value is 2 meaning that only minimum and maximum surfaces would be drawn.", - "editType": "calc" - }, - "fill": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "description": "Sets the fill ratio of the iso-surface. The default fill value of the surface is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "editType": "calc" - }, - "pattern": { - "valType": "flaglist", - "flags": [ - "A", - "B", - "C", - "D", - "E" - ], - "extras": [ - "all", - "odd", - "even" - ], - "dflt": "all", - "role": "style", - "description": "Sets the surface pattern of the iso-surface 3-D sections. The default pattern of the surface is `all` meaning that the rest of surface elements would be shaded. The check options (either 1 or 2) could be used to draw half of the squares on the surface. Using various combinations of capital `A`, `B`, `C`, `D` and `E` may also be used to reduce the number of triangles on the iso-surfaces and creating other patterns of interest.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "spaceframe": { - "show": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Displays/hides tetrahedron shapes between minimum and maximum iso-values. Often useful when either caps or surfaces are disabled or filled with values less than 1.", - "editType": "calc" - }, - "fill": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0.15, - "description": "Sets the fill ratio of the `spaceframe` elements. The default fill value is 0.15 meaning that only 15% of the area of every faces of tetras would be shaded. Applying a greater `fill` ratio would allow the creation of stronger elements or could be sued to have entirely closed areas (in case of using 1).", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "slices": { - "x": { - "show": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Determines whether or not slice planes about the x dimension are drawn.", - "editType": "calc" - }, - "locations": { - "valType": "data_array", - "dflt": [], - "role": "data", - "description": "Specifies the location(s) of slices on the axis. When not specified slices would be created for all points of the axis x except start and end.", - "editType": "calc" - }, - "fill": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "description": "Sets the fill ratio of the `slices`. The default fill value of the `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "editType": "calc" - }, - "editType": "calc", - "role": "object", - "locationssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for locations .", - "editType": "none" - } - }, - "y": { - "show": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Determines whether or not slice planes about the y dimension are drawn.", - "editType": "calc" - }, - "locations": { - "valType": "data_array", - "dflt": [], - "role": "data", - "description": "Specifies the location(s) of slices on the axis. When not specified slices would be created for all points of the axis y except start and end.", - "editType": "calc" - }, - "fill": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "description": "Sets the fill ratio of the `slices`. The default fill value of the `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "editType": "calc" - }, - "editType": "calc", - "role": "object", - "locationssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for locations .", - "editType": "none" - } - }, - "z": { - "show": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Determines whether or not slice planes about the z dimension are drawn.", - "editType": "calc" - }, - "locations": { - "valType": "data_array", - "dflt": [], - "role": "data", - "description": "Specifies the location(s) of slices on the axis. When not specified slices would be created for all points of the axis z except start and end.", - "editType": "calc" - }, - "fill": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "description": "Sets the fill ratio of the `slices`. The default fill value of the `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "editType": "calc" - }, - "editType": "calc", - "role": "object", - "locationssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for locations .", - "editType": "none" - } - }, - "editType": "calc", - "role": "object" - }, - "caps": { - "x": { - "show": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Sets the fill ratio of the `slices`. The default fill value of the x `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "editType": "calc" - }, - "fill": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "description": "Sets the fill ratio of the `caps`. The default fill value of the `caps` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "y": { - "show": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Sets the fill ratio of the `slices`. The default fill value of the y `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "editType": "calc" - }, - "fill": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "description": "Sets the fill ratio of the `caps`. The default fill value of the `caps` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "z": { - "show": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Sets the fill ratio of the `slices`. The default fill value of the z `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "editType": "calc" - }, - "fill": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "description": "Sets the fill ratio of the `caps`. The default fill value of the `caps` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "editType": "calc", - "role": "object" - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "description": "Sets the text elements associated with the vertices. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", - "editType": "calc" - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "description": "Same as `text`.", - "editType": "calc" - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "calc", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here `value`) or the bounds set in `cmin` and `cmax` Defaults to `false` when `cmin` and `cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Value should have the same units as `value` and if set, `cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Value should have the same units as `value` and if set, `cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `cmin` and/or `cmax` to be equidistant to this point. Value should have the same units as `value`. Has no effect when `cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`cmin` and `cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "calc", - "description": "Reverses the color mapping if true. If true, `cmin` will correspond to the last color in the array and `cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "calc" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "calc" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "calc" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "calc" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "calc" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "calc" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "calc" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "calc" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "calc" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "calc" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "calc" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "calc" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "calc", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "calc" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "calc", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "calc", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Sets the color bar's tick label font", - "editType": "calc", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "calc", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "calc" - }, - { - "valType": "any", - "editType": "calc" - } - ], - "editType": "calc", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "calc", - "name": { - "valType": "string", - "role": "style", - "editType": "calc", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "calc", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "calc", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "calc", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "calc" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "calc", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "calc" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "calc" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "calc" - } - }, - "editType": "calc", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "description": "Sets the opacity of the surface. Please note that in the case of using high `opacity` values for example a value greater than or equal to 0.5 on two surfaces (and 0.25 with four surfaces), an overlay of multiple transparent surfaces may not perfectly be sorted in depth by the webgl API. This behavior may be improved in the near future and is subject to change.", - "editType": "calc" - }, - "lightposition": { - "x": { - "valType": "number", - "role": "style", - "min": -100000, - "max": 100000, - "dflt": 100000, - "description": "Numeric vector, representing the X coordinate for each vertex.", - "editType": "calc" - }, - "y": { - "valType": "number", - "role": "style", - "min": -100000, - "max": 100000, - "dflt": 100000, - "description": "Numeric vector, representing the Y coordinate for each vertex.", - "editType": "calc" - }, - "z": { - "valType": "number", - "role": "style", - "min": -100000, - "max": 100000, - "dflt": 0, - "description": "Numeric vector, representing the Z coordinate for each vertex.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "lighting": { - "vertexnormalsepsilon": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1e-12, - "editType": "calc", - "description": "Epsilon for vertex normals calculation avoids math issues arising from degenerate geometry." - }, - "facenormalsepsilon": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0, - "editType": "calc", - "description": "Epsilon for face normals calculation avoids math issues arising from degenerate geometry." - }, - "editType": "calc", - "ambient": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0.8, - "description": "Ambient light increases overall color visibility but can wash out the image.", - "editType": "calc" - }, - "diffuse": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0.8, - "description": "Represents the extent that incident rays are reflected in a range of angles.", - "editType": "calc" - }, - "specular": { - "valType": "number", - "role": "style", - "min": 0, - "max": 2, - "dflt": 0.05, - "description": "Represents the level that incident rays are reflected in a single direction, causing shine.", - "editType": "calc" - }, - "roughness": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0.5, - "description": "Alters specular reflection; the rougher the surface, the wider and less contrasty the shine.", - "editType": "calc" - }, - "fresnel": { - "valType": "number", - "role": "style", - "min": 0, - "max": 5, - "dflt": 0.2, - "description": "Represents the reflectance as a dependency of the viewing angle; e.g. paper is reflective when viewing it from the edge of the paper (almost 90 degrees), causing shine.", - "editType": "calc" - }, - "role": "object" - }, - "flatshading": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not normal smoothing is applied to the meshes, creating meshes with an angular, low-poly look via flat reflections." - }, - "contour": { - "show": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Sets whether or not dynamic contours are shown on hover", - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "dflt": "#444", - "description": "Sets the color of the contour lines.", - "editType": "calc" - }, - "width": { - "valType": "number", - "role": "style", - "min": 1, - "max": 16, - "dflt": 2, - "description": "Sets the width of the contour lines.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "calc", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "scene": { - "valType": "subplotid", - "role": "info", - "dflt": "scene", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's 3D coordinate system and a 3D scene. If *scene* (the default value), the (x,y,z) coordinates refer to `layout.scene`. If *scene2*, the (x,y,z) coordinates refer to `layout.scene2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "ysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for y .", - "editType": "none" - }, - "zsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for z .", - "editType": "none" - }, - "valuesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for value .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - } - } + "templateitemname": { + "valType": "string", + "editType": "plot", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." }, - "volume": { - "meta": { - "description": "Draws volume trace between iso-min and iso-max values with coordinates given by four 1-dimensional arrays containing the `value`, `x`, `y` and `z` of every vertex of a uniform or non-uniform 3-D grid. Horizontal or vertical slices, caps as well as spaceframe between iso-min and iso-max values could also be drawn using this trace." - }, - "categories": [ - "gl3d", - "showLegend" - ], - "animatable": false, - "type": "volume", - "attributes": { - "type": "volume", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "x": { - "valType": "data_array", - "role": "data", - "description": "Sets the X coordinates of the vertices on X axis.", - "editType": "calc+clearAxisTypes" - }, - "y": { - "valType": "data_array", - "role": "data", - "description": "Sets the Y coordinates of the vertices on Y axis.", - "editType": "calc+clearAxisTypes" - }, - "z": { - "valType": "data_array", - "role": "data", - "description": "Sets the Z coordinates of the vertices on Z axis.", - "editType": "calc+clearAxisTypes" - }, - "value": { - "valType": "data_array", - "role": "data", - "description": "Sets the 4th dimension (value) of the vertices.", - "editType": "calc+clearAxisTypes" - }, - "isomin": { - "valType": "number", - "role": "info", - "description": "Sets the minimum boundary for iso-surface plot.", - "editType": "calc" - }, - "isomax": { - "valType": "number", - "role": "info", - "description": "Sets the maximum boundary for iso-surface plot.", - "editType": "calc" - }, - "surface": { - "show": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Hides/displays surfaces between minimum and maximum iso-values.", - "editType": "calc" - }, - "count": { - "valType": "integer", - "role": "info", - "dflt": 2, - "min": 1, - "description": "Sets the number of iso-surfaces between minimum and maximum iso-values. By default this value is 2 meaning that only minimum and maximum surfaces would be drawn.", - "editType": "calc" - }, - "fill": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "description": "Sets the fill ratio of the iso-surface. The default fill value of the surface is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "editType": "calc" - }, - "pattern": { - "valType": "flaglist", - "flags": [ - "A", - "B", - "C", - "D", - "E" - ], - "extras": [ - "all", - "odd", - "even" - ], - "dflt": "all", - "role": "style", - "description": "Sets the surface pattern of the iso-surface 3-D sections. The default pattern of the surface is `all` meaning that the rest of surface elements would be shaded. The check options (either 1 or 2) could be used to draw half of the squares on the surface. Using various combinations of capital `A`, `B`, `C`, `D` and `E` may also be used to reduce the number of triangles on the iso-surfaces and creating other patterns of interest.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "spaceframe": { - "show": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Displays/hides tetrahedron shapes between minimum and maximum iso-values. Often useful when either caps or surfaces are disabled or filled with values less than 1.", - "editType": "calc" - }, - "fill": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "description": "Sets the fill ratio of the `spaceframe` elements. The default fill value is 1 meaning that they are entirely shaded. Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "slices": { - "x": { - "show": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Determines whether or not slice planes about the x dimension are drawn.", - "editType": "calc" - }, - "locations": { - "valType": "data_array", - "dflt": [], - "role": "data", - "description": "Specifies the location(s) of slices on the axis. When not specified slices would be created for all points of the axis x except start and end.", - "editType": "calc" - }, - "fill": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "description": "Sets the fill ratio of the `slices`. The default fill value of the `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "editType": "calc" - }, - "editType": "calc", - "role": "object", - "locationssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for locations .", - "editType": "none" - } - }, - "y": { - "show": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Determines whether or not slice planes about the y dimension are drawn.", - "editType": "calc" - }, - "locations": { - "valType": "data_array", - "dflt": [], - "role": "data", - "description": "Specifies the location(s) of slices on the axis. When not specified slices would be created for all points of the axis y except start and end.", - "editType": "calc" - }, - "fill": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "description": "Sets the fill ratio of the `slices`. The default fill value of the `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "editType": "calc" - }, - "editType": "calc", - "role": "object", - "locationssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for locations .", - "editType": "none" - } - }, - "z": { - "show": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Determines whether or not slice planes about the z dimension are drawn.", - "editType": "calc" - }, - "locations": { - "valType": "data_array", - "dflt": [], - "role": "data", - "description": "Specifies the location(s) of slices on the axis. When not specified slices would be created for all points of the axis z except start and end.", - "editType": "calc" - }, - "fill": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "description": "Sets the fill ratio of the `slices`. The default fill value of the `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "editType": "calc" - }, - "editType": "calc", - "role": "object", - "locationssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for locations .", - "editType": "none" - } - }, - "editType": "calc", - "role": "object" - }, - "caps": { - "x": { - "show": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Sets the fill ratio of the `slices`. The default fill value of the x `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "editType": "calc" - }, - "fill": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "description": "Sets the fill ratio of the `caps`. The default fill value of the `caps` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "y": { - "show": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Sets the fill ratio of the `slices`. The default fill value of the y `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "editType": "calc" - }, - "fill": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "description": "Sets the fill ratio of the `caps`. The default fill value of the `caps` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "z": { - "show": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Sets the fill ratio of the `slices`. The default fill value of the z `slices` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "editType": "calc" - }, - "fill": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "description": "Sets the fill ratio of the `caps`. The default fill value of the `caps` is 1 meaning that they are entirely shaded. On the other hand Applying a `fill` ratio less than one would allow the creation of openings parallel to the edges.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "editType": "calc", - "role": "object" - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "description": "Sets the text elements associated with the vertices. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels.", - "editType": "calc" - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "description": "Same as `text`.", - "editType": "calc" - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here `value`) or the bounds set in `cmin` and `cmax` Defaults to `false` when `cmin` and `cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Value should have the same units as `value` and if set, `cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Value should have the same units as `value` and if set, `cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `cmin` and/or `cmax` to be equidistant to this point. Value should have the same units as `value`. Has no effect when `cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`cmin` and `cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "calc", - "description": "Reverses the color mapping if true. If true, `cmin` will correspond to the last color in the array and `cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "calc" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "calc" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "calc" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "calc" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "calc" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "calc" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "calc" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "calc" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "calc" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "calc" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "calc" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "calc" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "calc", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "calc" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "calc", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "calc", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Sets the color bar's tick label font", - "editType": "calc", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "calc", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "calc" - }, - { - "valType": "any", - "editType": "calc" - } - ], - "editType": "calc", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "calc", - "name": { - "valType": "string", - "role": "style", - "editType": "calc", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "calc", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "calc", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "calc", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "calc" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "calc", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "calc" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "calc" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "calc" - } - }, - "editType": "calc", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "description": "Sets the opacity of the surface. Please note that in the case of using high `opacity` values for example a value greater than or equal to 0.5 on two surfaces (and 0.25 with four surfaces), an overlay of multiple transparent surfaces may not perfectly be sorted in depth by the webgl API. This behavior may be improved in the near future and is subject to change.", - "editType": "calc" - }, - "opacityscale": { - "valType": "any", - "role": "style", - "editType": "calc", - "description": "Sets the opacityscale. The opacityscale must be an array containing arrays mapping a normalized value to an opacity value. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 1], [0.5, 0.2], [1, 1]]` means that higher/lower values would have higher opacity values and those in the middle would be more transparent Alternatively, `opacityscale` may be a palette name string of the following list: 'min', 'max', 'extremes' and 'uniform'. The default is 'uniform'." - }, - "lightposition": { - "x": { - "valType": "number", - "role": "style", - "min": -100000, - "max": 100000, - "dflt": 100000, - "description": "Numeric vector, representing the X coordinate for each vertex.", - "editType": "calc" - }, - "y": { - "valType": "number", - "role": "style", - "min": -100000, - "max": 100000, - "dflt": 100000, - "description": "Numeric vector, representing the Y coordinate for each vertex.", - "editType": "calc" - }, - "z": { - "valType": "number", - "role": "style", - "min": -100000, - "max": 100000, - "dflt": 0, - "description": "Numeric vector, representing the Z coordinate for each vertex.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "lighting": { - "vertexnormalsepsilon": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1e-12, - "editType": "calc", - "description": "Epsilon for vertex normals calculation avoids math issues arising from degenerate geometry." - }, - "facenormalsepsilon": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0, - "editType": "calc", - "description": "Epsilon for face normals calculation avoids math issues arising from degenerate geometry." - }, - "editType": "calc", - "ambient": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0.8, - "description": "Ambient light increases overall color visibility but can wash out the image.", - "editType": "calc" - }, - "diffuse": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0.8, - "description": "Represents the extent that incident rays are reflected in a range of angles.", - "editType": "calc" - }, - "specular": { - "valType": "number", - "role": "style", - "min": 0, - "max": 2, - "dflt": 0.05, - "description": "Represents the level that incident rays are reflected in a single direction, causing shine.", - "editType": "calc" - }, - "roughness": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0.5, - "description": "Alters specular reflection; the rougher the surface, the wider and less contrasty the shine.", - "editType": "calc" - }, - "fresnel": { - "valType": "number", - "role": "style", - "min": 0, - "max": 5, - "dflt": 0.2, - "description": "Represents the reflectance as a dependency of the viewing angle; e.g. paper is reflective when viewing it from the edge of the paper (almost 90 degrees), causing shine.", - "editType": "calc" - }, - "role": "object" - }, - "flatshading": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not normal smoothing is applied to the meshes, creating meshes with an angular, low-poly look via flat reflections." - }, - "contour": { - "show": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Sets whether or not dynamic contours are shown on hover", - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "dflt": "#444", - "description": "Sets the color of the contour lines.", - "editType": "calc" - }, - "width": { - "valType": "number", - "role": "style", - "min": 1, - "max": 16, - "dflt": 2, - "description": "Sets the width of the contour lines.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "calc", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "calc", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "scene": { - "valType": "subplotid", - "role": "info", - "dflt": "scene", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's 3D coordinate system and a 3D scene. If *scene* (the default value), the (x,y,z) coordinates refer to `layout.scene`. If *scene2*, the (x,y,z) coordinates refer to `layout.scene2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "ysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for y .", - "editType": "none" - }, - "zsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for z .", - "editType": "none" - }, - "valuesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for value .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - } - } + "role": "object" + } + }, + "role": "object" + }, + "hoverformat": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "showline": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Determines whether or not a line bounding this axis is drawn." + }, + "linecolor": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the axis line color." + }, + "linewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the width (in px) of the axis line." + }, + "showgrid": { + "valType": "boolean", + "editType": "plot", + "description": "Determines whether or not grid lines are drawn. If *true*, the grid lines are drawn at every tick mark." + }, + "gridcolor": { + "valType": "color", + "dflt": "rgb(204, 204, 204)", + "editType": "plot", + "description": "Sets the color of the grid lines." + }, + "gridwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the width (in px) of the grid lines." + }, + "zeroline": { + "valType": "boolean", + "editType": "plot", + "description": "Determines whether or not a line is drawn at along the 0 value of this axis. If *true*, the zero line is drawn on top of the grid lines." + }, + "zerolinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the line color of the zero line." + }, + "zerolinewidth": { + "valType": "number", + "dflt": 1, + "editType": "plot", + "description": "Sets the width (in px) of the zero line." + }, + "_deprecated": { + "title": { + "valType": "string", + "editType": "plot", + "description": "Value of `title` is no longer a simple *string* but a set of sub-attributes. To set the axis' title, please use `title.text` now." + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Former `titlefont` is now the sub-attribute `font` of `title`. To customize title font properties, please use `title.font` now." + } + }, + "editType": "plot", + "calendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use for `range` and `tick0` if this is a date axis. This does not set the calendar for interpreting data on this axis, that's specified in the trace or via the global `layout.calendar`" + }, + "role": "object", + "categoryarraysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for categoryarray .", + "editType": "none" + }, + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "yaxis": { + "visible": { + "valType": "boolean", + "editType": "plot", + "description": "A single toggle to hide the axis while preserving interaction like dragging. Default is true when a cheater plot is present on the axis, otherwise false" + }, + "showspikes": { + "valType": "boolean", + "dflt": true, + "description": "Sets whether or not spikes starting from data points to this axis' wall are shown on hover.", + "editType": "plot" + }, + "spikesides": { + "valType": "boolean", + "dflt": true, + "description": "Sets whether or not spikes extending from the projection data points to this axis' wall boundaries are shown on hover.", + "editType": "plot" + }, + "spikethickness": { + "valType": "number", + "min": 0, + "dflt": 2, + "description": "Sets the thickness (in px) of the spikes.", + "editType": "plot" + }, + "spikecolor": { + "valType": "color", + "dflt": "#444", + "description": "Sets the color of the spikes.", + "editType": "plot" + }, + "showbackground": { + "valType": "boolean", + "dflt": false, + "description": "Sets whether or not this axis' wall has a background color.", + "editType": "plot" + }, + "backgroundcolor": { + "valType": "color", + "dflt": "rgba(204, 204, 204, 0.5)", + "description": "Sets the background color of this axis' wall.", + "editType": "plot" + }, + "showaxeslabels": { + "valType": "boolean", + "dflt": true, + "description": "Sets whether or not this axis is labeled", + "editType": "plot" + }, + "color": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." + }, + "categoryorder": { + "valType": "enumerated", + "values": [ + "trace", + "category ascending", + "category descending", + "array", + "total ascending", + "total descending", + "min ascending", + "min descending", + "max ascending", + "max descending", + "sum ascending", + "sum descending", + "mean ascending", + "mean descending", + "median ascending", + "median descending" + ], + "dflt": "trace", + "editType": "plot", + "description": "Specifies the ordering logic for the case of categorical variables. By default, plotly uses *trace*, which specifies the order that is present in the data supplied. Set `categoryorder` to *category ascending* or *category descending* if order should be determined by the alphanumerical order of the category names. Set `categoryorder` to *array* to derive the ordering from the attribute `categoryarray`. If a category is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to the *trace* mode. The unspecified categories will follow the categories in `categoryarray`. Set `categoryorder` to *total ascending* or *total descending* if order should be determined by the numerical order of the values. Similarly, the order can be determined by the min, max, sum, mean or median of all the values." + }, + "categoryarray": { + "valType": "data_array", + "editType": "plot", + "description": "Sets the order in which categories on this axis appear. Only has an effect if `categoryorder` is set to *array*. Used with `categoryorder`." + }, + "title": { + "text": { + "valType": "string", + "editType": "plot", + "description": "Sets the title of this axis. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Sets this axis' title font. Note that the title's font used to be customized by the now deprecated `titlefont` attribute.", + "role": "object" + }, + "editType": "plot", + "role": "object" + }, + "type": { + "valType": "enumerated", + "values": [ + "-", + "linear", + "log", + "date", + "category" + ], + "dflt": "-", + "editType": "plot", + "_noTemplating": true, + "description": "Sets the axis type. By default, plotly attempts to determined the axis type by looking into the data of the traces that referenced the axis in question." + }, + "autotypenumbers": { + "valType": "enumerated", + "values": [ + "convert types", + "strict" + ], + "dflt": "convert types", + "editType": "plot", + "description": "Using *strict* a numeric string in trace data is not converted to a number. Using *convert types* a numeric string in trace data may be treated as a number during automatic axis `type` detection. Defaults to layout.autotypenumbers." + }, + "autorange": { + "valType": "enumerated", + "values": [ + true, + false, + "reversed" + ], + "dflt": true, + "editType": "plot", + "impliedEdits": {}, + "description": "Determines whether or not the range of this axis is computed in relation to the input data. See `rangemode` for more info. If `range` is provided, then `autorange` is set to *false*." + }, + "rangemode": { + "valType": "enumerated", + "values": [ + "normal", + "tozero", + "nonnegative" + ], + "dflt": "normal", + "editType": "plot", + "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes." + }, + "range": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "^autorange": false + } + }, + { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "^autorange": false + } + } + ], + "editType": "plot", + "impliedEdits": { + "autorange": false + }, + "anim": false, + "description": "Sets the range of this axis. If the axis `type` is *log*, then you must take the log of your desired range (e.g. to set the range from 1 to 100, set the range from 0 to 2). If the axis `type` is *date*, it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is *category*, it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "plot", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "plot", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "plot", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "plot", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "plot", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines." + }, + "mirror": { + "valType": "enumerated", + "values": [ + true, + "ticks", + false, + "all", + "allticks" + ], + "dflt": false, + "editType": "plot", + "description": "Determines if the axis lines or/and ticks are mirrored to the opposite side of the plotting area. If *true*, the axis lines are mirrored. If *ticks*, the axis lines and ticks are mirrored. If *false*, mirroring is disable. If *all*, axis lines are mirrored on all shared-axes subplots. If *allticks*, axis lines and ticks are mirrored on all shared-axes subplots." + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "plot", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Sets the tick font.", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "plot", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "plot", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "plot", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "If \"true\", even 4-digit integers are separated" + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." }, - "mesh3d": { - "meta": { - "description": "Draws sets of triangles with coordinates given by three 1-dimensional arrays in `x`, `y`, `z` and (1) a sets of `i`, `j`, `k` indices (2) Delaunay triangulation or (3) the Alpha-shape algorithm or (4) the Convex-hull algorithm" - }, - "categories": [ - "gl3d", - "showLegend" - ], - "animatable": false, - "type": "mesh3d", - "attributes": { - "type": "mesh3d", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "x": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the X coordinates of the vertices. The nth element of vectors `x`, `y` and `z` jointly represent the X, Y and Z coordinates of the nth vertex.", - "role": "data" - }, - "y": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the Y coordinates of the vertices. The nth element of vectors `x`, `y` and `z` jointly represent the X, Y and Z coordinates of the nth vertex.", - "role": "data" - }, - "z": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the Z coordinates of the vertices. The nth element of vectors `x`, `y` and `z` jointly represent the X, Y and Z coordinates of the nth vertex.", - "role": "data" - }, - "i": { - "valType": "data_array", - "editType": "calc", - "description": "A vector of vertex indices, i.e. integer values between 0 and the length of the vertex vectors, representing the *first* vertex of a triangle. For example, `{i[m], j[m], k[m]}` together represent face m (triangle m) in the mesh, where `i[m] = n` points to the triplet `{x[n], y[n], z[n]}` in the vertex arrays. Therefore, each element in `i` represents a point in space, which is the first vertex of a triangle.", - "role": "data" - }, - "j": { - "valType": "data_array", - "editType": "calc", - "description": "A vector of vertex indices, i.e. integer values between 0 and the length of the vertex vectors, representing the *second* vertex of a triangle. For example, `{i[m], j[m], k[m]}` together represent face m (triangle m) in the mesh, where `j[m] = n` points to the triplet `{x[n], y[n], z[n]}` in the vertex arrays. Therefore, each element in `j` represents a point in space, which is the second vertex of a triangle.", - "role": "data" - }, - "k": { - "valType": "data_array", - "editType": "calc", - "description": "A vector of vertex indices, i.e. integer values between 0 and the length of the vertex vectors, representing the *third* vertex of a triangle. For example, `{i[m], j[m], k[m]}` together represent face m (triangle m) in the mesh, where `k[m] = n` points to the triplet `{x[n], y[n], z[n]}` in the vertex arrays. Therefore, each element in `k` represents a point in space, which is the third vertex of a triangle.", - "role": "data" - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets the text elements associated with the vertices. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Same as `text`." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "delaunayaxis": { - "valType": "enumerated", - "role": "info", - "values": [ - "x", - "y", - "z" - ], - "dflt": "z", - "editType": "calc", - "description": "Sets the Delaunay axis, which is the axis that is perpendicular to the surface of the Delaunay triangulation. It has an effect if `i`, `j`, `k` are not provided and `alphahull` is set to indicate Delaunay triangulation." - }, - "alphahull": { - "valType": "number", - "role": "style", - "dflt": -1, - "editType": "calc", - "description": "Determines how the mesh surface triangles are derived from the set of vertices (points) represented by the `x`, `y` and `z` arrays, if the `i`, `j`, `k` arrays are not supplied. For general use of `mesh3d` it is preferred that `i`, `j`, `k` are supplied. If *-1*, Delaunay triangulation is used, which is mainly suitable if the mesh is a single, more or less layer surface that is perpendicular to `delaunayaxis`. In case the `delaunayaxis` intersects the mesh surface at more than one point it will result triangles that are very long in the dimension of `delaunayaxis`. If *>0*, the alpha-shape algorithm is used. In this case, the positive `alphahull` value signals the use of the alpha-shape algorithm, _and_ its value acts as the parameter for the mesh fitting. If *0*, the convex-hull algorithm is used. It is suitable for convex bodies or if the intention is to enclose the `x`, `y` and `z` point set into a convex hull." - }, - "intensity": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the intensity values for vertices or cells as defined by `intensitymode`. It can be used for plotting fields on meshes.", - "role": "data" - }, - "intensitymode": { - "valType": "enumerated", - "values": [ - "vertex", - "cell" - ], - "dflt": "vertex", - "editType": "calc", - "role": "info", - "description": "Determines the source of `intensity` values." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the color of the whole mesh" - }, - "vertexcolor": { - "valType": "data_array", - "role": "data", - "editType": "calc", - "description": "Sets the color of each vertex Overrides *color*. While Red, green and blue colors are in the range of 0 and 255; in the case of having vertex color data in RGBA format, the alpha color should be normalized to be between 0 and 1." - }, - "facecolor": { - "valType": "data_array", - "role": "data", - "editType": "calc", - "description": "Sets the color of each face Overrides *color* and *vertexcolor*." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here `intensity`) or the bounds set in `cmin` and `cmax` Defaults to `false` when `cmin` and `cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Value should have the same units as `intensity` and if set, `cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Value should have the same units as `intensity` and if set, `cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `cmin` and/or `cmax` to be equidistant to this point. Value should have the same units as `intensity`. Has no effect when `cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`cmin` and `cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. If true, `cmin` will correspond to the last color in the array and `cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "colorbars" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "colorbars" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "colorbars" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "colorbars" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "colorbars" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "colorbars" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "colorbars" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "colorbars" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "colorbars" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "colorbars" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "colorbars", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "colorbars", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "colorbars", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "colorbars" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "colorbars", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "colorbars", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "colorbars", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "colorbars" - }, - { - "valType": "any", - "editType": "colorbars" - } - ], - "editType": "colorbars", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "colorbars", - "name": { - "valType": "string", - "role": "style", - "editType": "colorbars", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "colorbars", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "colorbars", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "colorbars", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "colorbars", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars" - }, - "editType": "colorbars", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "colorbars" - } - }, - "editType": "colorbars", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "description": "Sets the opacity of the surface. Please note that in the case of using high `opacity` values for example a value greater than or equal to 0.5 on two surfaces (and 0.25 with four surfaces), an overlay of multiple transparent surfaces may not perfectly be sorted in depth by the webgl API. This behavior may be improved in the near future and is subject to change.", - "editType": "calc" - }, - "flatshading": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "calc", - "description": "Determines whether or not normal smoothing is applied to the meshes, creating meshes with an angular, low-poly look via flat reflections." - }, - "contour": { - "show": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Sets whether or not dynamic contours are shown on hover", - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "dflt": "#444", - "description": "Sets the color of the contour lines.", - "editType": "calc" - }, - "width": { - "valType": "number", - "role": "style", - "min": 1, - "max": 16, - "dflt": 2, - "description": "Sets the width of the contour lines.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "lightposition": { - "x": { - "valType": "number", - "role": "style", - "min": -100000, - "max": 100000, - "dflt": 100000, - "description": "Numeric vector, representing the X coordinate for each vertex.", - "editType": "calc" - }, - "y": { - "valType": "number", - "role": "style", - "min": -100000, - "max": 100000, - "dflt": 100000, - "description": "Numeric vector, representing the Y coordinate for each vertex.", - "editType": "calc" - }, - "z": { - "valType": "number", - "role": "style", - "min": -100000, - "max": 100000, - "dflt": 0, - "description": "Numeric vector, representing the Z coordinate for each vertex.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "lighting": { - "vertexnormalsepsilon": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1e-12, - "editType": "calc", - "description": "Epsilon for vertex normals calculation avoids math issues arising from degenerate geometry." - }, - "facenormalsepsilon": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0.000001, - "editType": "calc", - "description": "Epsilon for face normals calculation avoids math issues arising from degenerate geometry." - }, - "editType": "calc", - "ambient": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0.8, - "description": "Ambient light increases overall color visibility but can wash out the image.", - "editType": "calc" - }, - "diffuse": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0.8, - "description": "Represents the extent that incident rays are reflected in a range of angles.", - "editType": "calc" - }, - "specular": { - "valType": "number", - "role": "style", - "min": 0, - "max": 2, - "dflt": 0.05, - "description": "Represents the level that incident rays are reflected in a single direction, causing shine.", - "editType": "calc" - }, - "roughness": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0.5, - "description": "Alters specular reflection; the rougher the surface, the wider and less contrasty the shine.", - "editType": "calc" - }, - "fresnel": { - "valType": "number", - "role": "style", - "min": 0, - "max": 5, - "dflt": 0.2, - "description": "Represents the reflectance as a dependency of the viewing angle; e.g. paper is reflective when viewing it from the edge of the paper (almost 90 degrees), causing shine.", - "editType": "calc" - }, - "role": "object" - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "calc", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "xcalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `x` date data." - }, - "ycalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `y` date data." - }, - "zcalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `z` date data." - }, - "scene": { - "valType": "subplotid", - "role": "info", - "dflt": "scene", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's 3D coordinate system and a 3D scene. If *scene* (the default value), the (x,y,z) coordinates refer to `layout.scene`. If *scene2*, the (x,y,z) coordinates refer to `layout.scene2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "ysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for y .", - "editType": "none" - }, - "zsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for z .", - "editType": "none" - }, - "isrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for i .", - "editType": "none" - }, - "jsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for j .", - "editType": "none" - }, - "ksrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for k .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - }, - "intensitysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for intensity .", - "editType": "none" - }, - "vertexcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for vertexcolor .", - "editType": "none" - }, - "facecolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for facecolor .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - } - } + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "plot" + }, + { + "valType": "any", + "editType": "plot" + } + ], + "editType": "plot", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" }, - "cone": { - "meta": { - "description": "Use cone traces to visualize vector fields. Specify a vector field using 6 1D arrays, 3 position arrays `x`, `y` and `z` and 3 vector component arrays `u`, `v`, `w`. The cones are drawn exactly at the positions given by `x`, `y` and `z`." - }, - "categories": [ - "gl3d", - "showLegend" - ], - "animatable": false, - "type": "cone", - "attributes": { - "type": "cone", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "x": { - "valType": "data_array", - "role": "data", - "editType": "calc+clearAxisTypes", - "description": "Sets the x coordinates of the vector field and of the displayed cones." - }, - "y": { - "valType": "data_array", - "role": "data", - "editType": "calc+clearAxisTypes", - "description": "Sets the y coordinates of the vector field and of the displayed cones." - }, - "z": { - "valType": "data_array", - "role": "data", - "editType": "calc+clearAxisTypes", - "description": "Sets the z coordinates of the vector field and of the displayed cones." - }, - "u": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the x components of the vector field.", - "role": "data" - }, - "v": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the y components of the vector field.", - "role": "data" - }, - "w": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the z components of the vector field.", - "role": "data" - }, - "sizemode": { - "valType": "enumerated", - "values": [ - "scaled", - "absolute" - ], - "role": "info", - "editType": "calc", - "dflt": "scaled", - "description": "Determines whether `sizeref` is set as a *scaled* (i.e unitless) scalar (normalized by the max u/v/w norm in the vector field) or as *absolute* value (in the same units as the vector field)." - }, - "sizeref": { - "valType": "number", - "role": "info", - "editType": "calc", - "min": 0, - "description": "Adjusts the cone size scaling. The size of the cones is determined by their u/v/w norm multiplied a factor and `sizeref`. This factor (computed internally) corresponds to the minimum \"time\" to travel across two successive x/y/z positions at the average velocity of those two successive positions. All cones in a given trace use the same factor. With `sizemode` set to *scaled*, `sizeref` is unitless, its default value is *0.5* With `sizemode` set to *absolute*, `sizeref` has the same units as the u/v/w vector field, its the default value is half the sample's maximum vector norm." - }, - "anchor": { - "valType": "enumerated", - "role": "info", - "editType": "calc", - "values": [ - "tip", - "tail", - "cm", - "center" - ], - "dflt": "cm", - "description": "Sets the cones' anchor with respect to their x/y/z positions. Note that *cm* denote the cone's center of mass which corresponds to 1/4 from the tail to tip." - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets the text elements associated with the cones. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Same as `text`." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variable `norm` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here u/v/w norm) or the bounds set in `cmin` and `cmax` Defaults to `false` when `cmin` and `cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Value should have the same units as u/v/w norm and if set, `cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Value should have the same units as u/v/w norm and if set, `cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `cmin` and/or `cmax` to be equidistant to this point. Value should have the same units as u/v/w norm. Has no effect when `cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`cmin` and `cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. If true, `cmin` will correspond to the last color in the array and `cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "colorbars" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "colorbars" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "colorbars" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "colorbars" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "colorbars" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "colorbars" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "colorbars" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "colorbars" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "colorbars" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "colorbars" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "colorbars", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "colorbars", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "colorbars", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "colorbars" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "colorbars", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "colorbars", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "colorbars", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "colorbars" - }, - { - "valType": "any", - "editType": "colorbars" - } - ], - "editType": "colorbars", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "colorbars", - "name": { - "valType": "string", - "role": "style", - "editType": "colorbars", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "colorbars", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "colorbars", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "colorbars", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "colorbars", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars" - }, - "editType": "colorbars", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "colorbars" - } - }, - "editType": "colorbars", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "description": "Sets the opacity of the surface. Please note that in the case of using high `opacity` values for example a value greater than or equal to 0.5 on two surfaces (and 0.25 with four surfaces), an overlay of multiple transparent surfaces may not perfectly be sorted in depth by the webgl API. This behavior may be improved in the near future and is subject to change.", - "editType": "calc" - }, - "lightposition": { - "x": { - "valType": "number", - "role": "style", - "min": -100000, - "max": 100000, - "dflt": 100000, - "description": "Numeric vector, representing the X coordinate for each vertex.", - "editType": "calc" - }, - "y": { - "valType": "number", - "role": "style", - "min": -100000, - "max": 100000, - "dflt": 100000, - "description": "Numeric vector, representing the Y coordinate for each vertex.", - "editType": "calc" - }, - "z": { - "valType": "number", - "role": "style", - "min": -100000, - "max": 100000, - "dflt": 0, - "description": "Numeric vector, representing the Z coordinate for each vertex.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "lighting": { - "vertexnormalsepsilon": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1e-12, - "editType": "calc", - "description": "Epsilon for vertex normals calculation avoids math issues arising from degenerate geometry." - }, - "facenormalsepsilon": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0.000001, - "editType": "calc", - "description": "Epsilon for face normals calculation avoids math issues arising from degenerate geometry." - }, - "editType": "calc", - "ambient": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0.8, - "description": "Ambient light increases overall color visibility but can wash out the image.", - "editType": "calc" - }, - "diffuse": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0.8, - "description": "Represents the extent that incident rays are reflected in a range of angles.", - "editType": "calc" - }, - "specular": { - "valType": "number", - "role": "style", - "min": 0, - "max": 2, - "dflt": 0.05, - "description": "Represents the level that incident rays are reflected in a single direction, causing shine.", - "editType": "calc" - }, - "roughness": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0.5, - "description": "Alters specular reflection; the rougher the surface, the wider and less contrasty the shine.", - "editType": "calc" - }, - "fresnel": { - "valType": "number", - "role": "style", - "min": 0, - "max": 5, - "dflt": 0.2, - "description": "Represents the reflectance as a dependency of the viewing angle; e.g. paper is reflective when viewing it from the edge of the paper (almost 90 degrees), causing shine.", - "editType": "calc" - }, - "role": "object" - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "u", - "v", - "w", - "norm", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "x+y+z+norm+text+name", - "editType": "calc", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "scene": { - "valType": "subplotid", - "role": "info", - "dflt": "scene", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's 3D coordinate system and a 3D scene. If *scene* (the default value), the (x,y,z) coordinates refer to `layout.scene`. If *scene2*, the (x,y,z) coordinates refer to `layout.scene2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "ysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for y .", - "editType": "none" - }, - "zsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for z .", - "editType": "none" - }, - "usrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for u .", - "editType": "none" - }, - "vsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for v .", - "editType": "none" - }, - "wsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for w .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - } - } + "value": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" }, - "streamtube": { - "meta": { - "description": "Use a streamtube trace to visualize flow in a vector field. Specify a vector field using 6 1D arrays of equal length, 3 position arrays `x`, `y` and `z` and 3 vector component arrays `u`, `v`, and `w`. By default, the tubes' starting positions will be cut from the vector field's x-z plane at its minimum y value. To specify your own starting position, use attributes `starts.x`, `starts.y` and `starts.z`. The color is encoded by the norm of (u, v, w), and the local radius by the divergence of (u, v, w)." - }, - "categories": [ - "gl3d", - "showLegend" - ], - "animatable": false, - "type": "streamtube", - "attributes": { - "type": "streamtube", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "x": { - "valType": "data_array", - "role": "data", - "editType": "calc+clearAxisTypes", - "description": "Sets the x coordinates of the vector field." - }, - "y": { - "valType": "data_array", - "role": "data", - "editType": "calc+clearAxisTypes", - "description": "Sets the y coordinates of the vector field." - }, - "z": { - "valType": "data_array", - "role": "data", - "editType": "calc+clearAxisTypes", - "description": "Sets the z coordinates of the vector field." - }, - "u": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the x components of the vector field.", - "role": "data" - }, - "v": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the y components of the vector field.", - "role": "data" - }, - "w": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the z components of the vector field.", - "role": "data" - }, - "starts": { - "x": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the x components of the starting position of the streamtubes", - "role": "data" - }, - "y": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the y components of the starting position of the streamtubes", - "role": "data" - }, - "z": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the z components of the starting position of the streamtubes", - "role": "data" - }, - "editType": "calc", - "role": "object", - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "ysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for y .", - "editType": "none" - }, - "zsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for z .", - "editType": "none" - } - }, - "maxdisplayed": { - "valType": "integer", - "min": 0, - "dflt": 1000, - "role": "info", - "editType": "calc", - "description": "The maximum number of displayed segments in a streamtube." - }, - "sizeref": { - "valType": "number", - "role": "info", - "editType": "calc", - "min": 0, - "dflt": 1, - "description": "The scaling factor for the streamtubes. The default is 1, which avoids two max divergence tubes from touching at adjacent starting positions." - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Sets a text element associated with this trace. If trace `hoverinfo` contains a *text* flag, this text element will be seen in all hover labels. Note that streamtube traces do not support array `text` values." - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Same as `text`." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `tubex`, `tubey`, `tubez`, `tubeu`, `tubev`, `tubew`, `norm` and `divergence`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here u/v/w norm) or the bounds set in `cmin` and `cmax` Defaults to `false` when `cmin` and `cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Value should have the same units as u/v/w norm and if set, `cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Value should have the same units as u/v/w norm and if set, `cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `cmin` and/or `cmax` to be equidistant to this point. Value should have the same units as u/v/w norm. Has no effect when `cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`cmin` and `cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. If true, `cmin` will correspond to the last color in the array and `cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "colorbars" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "colorbars" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "colorbars" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "colorbars" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "colorbars" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "colorbars" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "colorbars" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "colorbars" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "colorbars" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "colorbars" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "colorbars", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "colorbars", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "colorbars", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "colorbars" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "colorbars", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "colorbars", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "colorbars", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "colorbars" - }, - { - "valType": "any", - "editType": "colorbars" - } - ], - "editType": "colorbars", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "colorbars", - "name": { - "valType": "string", - "role": "style", - "editType": "colorbars", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "colorbars", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "colorbars", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "colorbars", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "colorbars", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars" - }, - "editType": "colorbars", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "colorbars" - } - }, - "editType": "colorbars", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "description": "Sets the opacity of the surface. Please note that in the case of using high `opacity` values for example a value greater than or equal to 0.5 on two surfaces (and 0.25 with four surfaces), an overlay of multiple transparent surfaces may not perfectly be sorted in depth by the webgl API. This behavior may be improved in the near future and is subject to change.", - "editType": "calc" - }, - "lightposition": { - "x": { - "valType": "number", - "role": "style", - "min": -100000, - "max": 100000, - "dflt": 100000, - "description": "Numeric vector, representing the X coordinate for each vertex.", - "editType": "calc" - }, - "y": { - "valType": "number", - "role": "style", - "min": -100000, - "max": 100000, - "dflt": 100000, - "description": "Numeric vector, representing the Y coordinate for each vertex.", - "editType": "calc" - }, - "z": { - "valType": "number", - "role": "style", - "min": -100000, - "max": 100000, - "dflt": 0, - "description": "Numeric vector, representing the Z coordinate for each vertex.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "lighting": { - "vertexnormalsepsilon": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1e-12, - "editType": "calc", - "description": "Epsilon for vertex normals calculation avoids math issues arising from degenerate geometry." - }, - "facenormalsepsilon": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0.000001, - "editType": "calc", - "description": "Epsilon for face normals calculation avoids math issues arising from degenerate geometry." - }, - "editType": "calc", - "ambient": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0.8, - "description": "Ambient light increases overall color visibility but can wash out the image.", - "editType": "calc" - }, - "diffuse": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0.8, - "description": "Represents the extent that incident rays are reflected in a range of angles.", - "editType": "calc" - }, - "specular": { - "valType": "number", - "role": "style", - "min": 0, - "max": 2, - "dflt": 0.05, - "description": "Represents the level that incident rays are reflected in a single direction, causing shine.", - "editType": "calc" - }, - "roughness": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 0.5, - "description": "Alters specular reflection; the rougher the surface, the wider and less contrasty the shine.", - "editType": "calc" - }, - "fresnel": { - "valType": "number", - "role": "style", - "min": 0, - "max": 5, - "dflt": 0.2, - "description": "Represents the reflectance as a dependency of the viewing angle; e.g. paper is reflective when viewing it from the edge of the paper (almost 90 degrees), causing shine.", - "editType": "calc" - }, - "role": "object" - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "u", - "v", - "w", - "norm", - "divergence", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "x+y+z+norm+text+name", - "editType": "calc", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "scene": { - "valType": "subplotid", - "role": "info", - "dflt": "scene", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's 3D coordinate system and a 3D scene. If *scene* (the default value), the (x,y,z) coordinates refer to `layout.scene`. If *scene2*, the (x,y,z) coordinates refer to `layout.scene2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "ysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for y .", - "editType": "none" - }, - "zsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for z .", - "editType": "none" - }, - "usrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for u .", - "editType": "none" - }, - "vsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for v .", - "editType": "none" - }, - "wsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for w .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - } - } + "editType": "plot", + "name": { + "valType": "string", + "editType": "plot", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." }, - "scattergeo": { - "meta": { - "hrName": "scatter_geo", - "description": "The data visualized as scatter point or lines on a geographic map is provided either by longitude/latitude pairs in `lon` and `lat` respectively or by geographic location IDs or names in `locations`." - }, - "categories": [ - "geo", - "symbols", - "showLegend", - "scatter-like" - ], - "animatable": false, - "type": "scattergeo", - "attributes": { - "type": "scattergeo", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "selectedpoints": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "lon": { - "valType": "data_array", - "description": "Sets the longitude coordinates (in degrees East).", - "editType": "calc", - "role": "data" - }, - "lat": { - "valType": "data_array", - "description": "Sets the latitude coordinates (in degrees North).", - "editType": "calc", - "role": "data" - }, - "locations": { - "valType": "data_array", - "description": "Sets the coordinates via location IDs or names. Coordinates correspond to the centroid of each location given. See `locationmode` for more info.", - "editType": "calc", - "role": "data" - }, - "locationmode": { - "valType": "enumerated", - "values": [ - "ISO-3", - "USA-states", - "country names", - "geojson-id" - ], - "role": "info", - "dflt": "ISO-3", - "description": "Determines the set of locations used to match entries in `locations` to regions on the map. Values *ISO-3*, *USA-states*, *country names* correspond to features on the base map and value *geojson-id* corresponds to features from a custom GeoJSON linked to the `geojson` attribute.", - "editType": "calc" - }, - "geojson": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Sets optional GeoJSON data associated with this trace. If not given, the features on the base map are used when `locations` is set. It can be set as a valid GeoJSON object or as a URL string. Note that we only accept GeoJSONs of type *FeatureCollection* or *Feature* with geometries of type *Polygon* or *MultiPolygon*." - }, - "featureidkey": { - "valType": "string", - "role": "info", - "editType": "calc", - "dflt": "id", - "description": "Sets the key in GeoJSON features which is used as id to match the items included in the `locations` array. Only has an effect when `geojson` is set. Support nested property, for example *properties.name*." - }, - "mode": { - "valType": "flaglist", - "flags": [ - "lines", - "markers", - "text" - ], - "extras": [ - "none" - ], - "role": "info", - "editType": "calc", - "description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover. If there are less than 20 points and the trace is not stacked then the default is *lines+markers*. Otherwise, *lines*.", - "dflt": "markers" - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets text elements associated with each (lon,lat) pair or item in `locations`. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (lon,lat) or `locations` coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." - }, - "texttemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `lat`, `lon`, `location` and `text`.", - "arrayOk": true - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets hover text elements associated with each (lon,lat) pair or item in `locations`. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (lon,lat) or `locations` coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." - }, - "textfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "arrayOk": true - }, - "editType": "calc", - "description": "Sets the text font.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "textposition": { - "valType": "enumerated", - "values": [ - "top left", - "top center", - "top right", - "middle left", - "middle center", - "middle right", - "bottom left", - "bottom center", - "bottom right" - ], - "dflt": "middle center", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates." - }, - "line": { - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the line color." - }, - "width": { - "valType": "number", - "min": 0, - "dflt": 2, - "role": "style", - "editType": "calc", - "description": "Sets the line width (in px)." - }, - "dash": { - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ], - "dflt": "solid", - "role": "style", - "editType": "calc", - "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." - }, - "editType": "calc", - "role": "object" - }, - "connectgaps": { - "valType": "boolean", - "dflt": false, - "role": "info", - "editType": "calc", - "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected." - }, - "marker": { - "symbol": { - "valType": "enumerated", - "values": [ - 0, - "0", - "circle", - 100, - "100", - "circle-open", - 200, - "200", - "circle-dot", - 300, - "300", - "circle-open-dot", - 1, - "1", - "square", - 101, - "101", - "square-open", - 201, - "201", - "square-dot", - 301, - "301", - "square-open-dot", - 2, - "2", - "diamond", - 102, - "102", - "diamond-open", - 202, - "202", - "diamond-dot", - 302, - "302", - "diamond-open-dot", - 3, - "3", - "cross", - 103, - "103", - "cross-open", - 203, - "203", - "cross-dot", - 303, - "303", - "cross-open-dot", - 4, - "4", - "x", - 104, - "104", - "x-open", - 204, - "204", - "x-dot", - 304, - "304", - "x-open-dot", - 5, - "5", - "triangle-up", - 105, - "105", - "triangle-up-open", - 205, - "205", - "triangle-up-dot", - 305, - "305", - "triangle-up-open-dot", - 6, - "6", - "triangle-down", - 106, - "106", - "triangle-down-open", - 206, - "206", - "triangle-down-dot", - 306, - "306", - "triangle-down-open-dot", - 7, - "7", - "triangle-left", - 107, - "107", - "triangle-left-open", - 207, - "207", - "triangle-left-dot", - 307, - "307", - "triangle-left-open-dot", - 8, - "8", - "triangle-right", - 108, - "108", - "triangle-right-open", - 208, - "208", - "triangle-right-dot", - 308, - "308", - "triangle-right-open-dot", - 9, - "9", - "triangle-ne", - 109, - "109", - "triangle-ne-open", - 209, - "209", - "triangle-ne-dot", - 309, - "309", - "triangle-ne-open-dot", - 10, - "10", - "triangle-se", - 110, - "110", - "triangle-se-open", - 210, - "210", - "triangle-se-dot", - 310, - "310", - "triangle-se-open-dot", - 11, - "11", - "triangle-sw", - 111, - "111", - "triangle-sw-open", - 211, - "211", - "triangle-sw-dot", - 311, - "311", - "triangle-sw-open-dot", - 12, - "12", - "triangle-nw", - 112, - "112", - "triangle-nw-open", - 212, - "212", - "triangle-nw-dot", - 312, - "312", - "triangle-nw-open-dot", - 13, - "13", - "pentagon", - 113, - "113", - "pentagon-open", - 213, - "213", - "pentagon-dot", - 313, - "313", - "pentagon-open-dot", - 14, - "14", - "hexagon", - 114, - "114", - "hexagon-open", - 214, - "214", - "hexagon-dot", - 314, - "314", - "hexagon-open-dot", - 15, - "15", - "hexagon2", - 115, - "115", - "hexagon2-open", - 215, - "215", - "hexagon2-dot", - 315, - "315", - "hexagon2-open-dot", - 16, - "16", - "octagon", - 116, - "116", - "octagon-open", - 216, - "216", - "octagon-dot", - 316, - "316", - "octagon-open-dot", - 17, - "17", - "star", - 117, - "117", - "star-open", - 217, - "217", - "star-dot", - 317, - "317", - "star-open-dot", - 18, - "18", - "hexagram", - 118, - "118", - "hexagram-open", - 218, - "218", - "hexagram-dot", - 318, - "318", - "hexagram-open-dot", - 19, - "19", - "star-triangle-up", - 119, - "119", - "star-triangle-up-open", - 219, - "219", - "star-triangle-up-dot", - 319, - "319", - "star-triangle-up-open-dot", - 20, - "20", - "star-triangle-down", - 120, - "120", - "star-triangle-down-open", - 220, - "220", - "star-triangle-down-dot", - 320, - "320", - "star-triangle-down-open-dot", - 21, - "21", - "star-square", - 121, - "121", - "star-square-open", - 221, - "221", - "star-square-dot", - 321, - "321", - "star-square-open-dot", - 22, - "22", - "star-diamond", - 122, - "122", - "star-diamond-open", - 222, - "222", - "star-diamond-dot", - 322, - "322", - "star-diamond-open-dot", - 23, - "23", - "diamond-tall", - 123, - "123", - "diamond-tall-open", - 223, - "223", - "diamond-tall-dot", - 323, - "323", - "diamond-tall-open-dot", - 24, - "24", - "diamond-wide", - 124, - "124", - "diamond-wide-open", - 224, - "224", - "diamond-wide-dot", - 324, - "324", - "diamond-wide-open-dot", - 25, - "25", - "hourglass", - 125, - "125", - "hourglass-open", - 26, - "26", - "bowtie", - 126, - "126", - "bowtie-open", - 27, - "27", - "circle-cross", - 127, - "127", - "circle-cross-open", - 28, - "28", - "circle-x", - 128, - "128", - "circle-x-open", - 29, - "29", - "square-cross", - 129, - "129", - "square-cross-open", - 30, - "30", - "square-x", - 130, - "130", - "square-x-open", - 31, - "31", - "diamond-cross", - 131, - "131", - "diamond-cross-open", - 32, - "32", - "diamond-x", - 132, - "132", - "diamond-x-open", - 33, - "33", - "cross-thin", - 133, - "133", - "cross-thin-open", - 34, - "34", - "x-thin", - 134, - "134", - "x-thin-open", - 35, - "35", - "asterisk", - 135, - "135", - "asterisk-open", - 36, - "36", - "hash", - 136, - "136", - "hash-open", - 236, - "236", - "hash-dot", - 336, - "336", - "hash-open-dot", - 37, - "37", - "y-up", - 137, - "137", - "y-up-open", - 38, - "38", - "y-down", - 138, - "138", - "y-down-open", - 39, - "39", - "y-left", - 139, - "139", - "y-left-open", - 40, - "40", - "y-right", - 140, - "140", - "y-right-open", - 41, - "41", - "line-ew", - 141, - "141", - "line-ew-open", - 42, - "42", - "line-ns", - 142, - "142", - "line-ns-open", - 43, - "43", - "line-ne", - 143, - "143", - "line-ne-open", - 44, - "44", - "line-nw", - 144, - "144", - "line-nw-open", - 45, - "45", - "arrow-up", - 145, - "145", - "arrow-up-open", - 46, - "46", - "arrow-down", - 146, - "146", - "arrow-down-open", - 47, - "47", - "arrow-left", - 147, - "147", - "arrow-left-open", - 48, - "48", - "arrow-right", - 148, - "148", - "arrow-right-open", - 49, - "49", - "arrow-bar-up", - 149, - "149", - "arrow-bar-up-open", - 50, - "50", - "arrow-bar-down", - 150, - "150", - "arrow-bar-down-open", - 51, - "51", - "arrow-bar-left", - 151, - "151", - "arrow-bar-left-open", - 52, - "52", - "arrow-bar-right", - 152, - "152", - "arrow-bar-right-open" - ], - "dflt": "circle", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name." - }, - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the marker opacity." - }, - "size": { - "valType": "number", - "min": 0, - "dflt": 6, - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the marker size (in px)." - }, - "sizeref": { - "valType": "number", - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`." - }, - "sizemin": { - "valType": "number", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points." - }, - "sizemode": { - "valType": "enumerated", - "values": [ - "diameter", - "area" - ], - "dflt": "diameter", - "role": "info", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "calc" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "calc" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "calc" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "calc" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "calc" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "calc" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "calc" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "calc" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "calc" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "calc" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "calc" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "calc" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "calc", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "calc" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "calc", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "calc", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Sets the color bar's tick label font", - "editType": "calc", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "calc", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "calc" - }, - { - "valType": "any", - "editType": "calc" - } - ], - "editType": "calc", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "calc", - "name": { - "valType": "string", - "role": "style", - "editType": "calc", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "calc", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "calc", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "calc", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "calc" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "calc", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "calc" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "calc" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "calc" - } - }, - "editType": "calc", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "line": { - "width": { - "valType": "number", - "min": 0, - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the lines bounding the marker points." - }, - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "calc", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "editType": "calc", - "role": "object", - "widthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for width .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "gradient": { - "type": { - "valType": "enumerated", - "values": [ - "radial", - "horizontal", - "vertical", - "none" - ], - "arrayOk": true, - "dflt": "none", - "role": "style", - "editType": "calc", - "description": "Sets the type of gradient used to fill the markers" - }, - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the final color of the gradient fill: the center color for radial, the right for horizontal, or the bottom for vertical." - }, - "editType": "calc", - "role": "object", - "typesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for type .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "calc", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "editType": "calc", - "role": "object", - "symbolsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for symbol .", - "editType": "none" - }, - "opacitysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for opacity .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "fill": { - "valType": "enumerated", - "values": [ - "none", - "toself" - ], - "dflt": "none", - "role": "style", - "description": "Sets the area to fill with a solid color. Use with `fillcolor` if not *none*. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape.", - "editType": "calc" - }, - "fillcolor": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." - }, - "selected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "calc", - "description": "Sets the marker opacity of selected points." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the marker color of selected points." - }, - "size": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "calc", - "description": "Sets the marker size of selected points." - }, - "editType": "calc", - "role": "object" - }, - "textfont": { - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the text font color of selected points." - }, - "editType": "calc", - "role": "object" - }, - "editType": "calc", - "role": "object" - }, - "unselected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "calc", - "description": "Sets the marker opacity of unselected points, applied only when a selection exists." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the marker color of unselected points, applied only when a selection exists." - }, - "size": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "calc", - "description": "Sets the marker size of unselected points, applied only when a selection exists." - }, - "editType": "calc", - "role": "object" - }, - "textfont": { - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the text font color of unselected points, applied only when a selection exists." - }, - "editType": "calc", - "role": "object" - }, - "editType": "calc", - "role": "object" - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "lon", - "lat", - "location", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "calc", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "geo": { - "valType": "subplotid", - "role": "info", - "dflt": "geo", - "editType": "calc", - "description": "Sets a reference between this trace's geospatial coordinates and a geographic map. If *geo* (the default value), the geospatial coordinates refer to `layout.geo`. If *geo2*, the geospatial coordinates refer to `layout.geo2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "lonsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for lon .", - "editType": "none" - }, - "latsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for lat .", - "editType": "none" - }, - "locationssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for locations .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "texttemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "textpositionsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for textposition .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - } - } + "templateitemname": { + "valType": "string", + "editType": "plot", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." }, - "choropleth": { - "meta": { - "description": "The data that describes the choropleth value-to-color mapping is set in `z`. The geographic locations corresponding to each value in `z` are set in `locations`." - }, - "categories": [ - "geo", - "noOpacity", - "showLegend" - ], - "animatable": false, - "type": "choropleth", - "attributes": { - "type": "choropleth", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "selectedpoints": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "locations": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the coordinates via location IDs or names. See `locationmode` for more info.", - "role": "data" - }, - "locationmode": { - "valType": "enumerated", - "values": [ - "ISO-3", - "USA-states", - "country names", - "geojson-id" - ], - "role": "info", - "dflt": "ISO-3", - "description": "Determines the set of locations used to match entries in `locations` to regions on the map. Values *ISO-3*, *USA-states*, *country names* correspond to features on the base map and value *geojson-id* corresponds to features from a custom GeoJSON linked to the `geojson` attribute.", - "editType": "calc" - }, - "z": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the color values.", - "role": "data" - }, - "geojson": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Sets optional GeoJSON data associated with this trace. If not given, the features on the base map are used. It can be set as a valid GeoJSON object or as a URL string. Note that we only accept GeoJSONs of type *FeatureCollection* or *Feature* with geometries of type *Polygon* or *MultiPolygon*." - }, - "featureidkey": { - "valType": "string", - "role": "info", - "editType": "calc", - "dflt": "id", - "description": "Sets the key in GeoJSON features which is used as id to match the items included in the `locations` array. Only has an effect when `geojson` is set. Support nested property, for example *properties.name*." - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets the text elements associated with each location." - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Same as `text`." - }, - "marker": { - "line": { - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set.", - "dflt": "#444" - }, - "width": { - "valType": "number", - "min": 0, - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the lines bounding the marker points.", - "dflt": 1 - }, - "editType": "calc", - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - }, - "widthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for width .", - "editType": "none" - } - }, - "opacity": { - "valType": "number", - "arrayOk": true, - "min": 0, - "max": 1, - "dflt": 1, - "role": "style", - "editType": "style", - "description": "Sets the opacity of the locations." - }, - "editType": "calc", - "role": "object", - "opacitysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for opacity .", - "editType": "none" - } - }, - "selected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "calc", - "description": "Sets the marker opacity of selected points." - }, - "editType": "plot", - "role": "object" - }, - "editType": "plot", - "role": "object" - }, - "unselected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "calc", - "description": "Sets the marker opacity of unselected points, applied only when a selection exists." - }, - "editType": "plot", - "role": "object" - }, - "editType": "plot", - "role": "object" - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "location", - "z", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "calc", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "zauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user." - }, - "zmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "zauto": false - }, - "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well." - }, - "zmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "zauto": false - }, - "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well." - }, - "zmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`zmin` and `zmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "colorbars" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "colorbars" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "colorbars" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "colorbars" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "colorbars" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "colorbars" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "colorbars" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "colorbars" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "colorbars" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "colorbars" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "colorbars", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "colorbars", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "colorbars", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "colorbars" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "colorbars", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "colorbars", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "colorbars", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "colorbars" - }, - { - "valType": "any", - "editType": "colorbars" - } - ], - "editType": "colorbars", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "colorbars", - "name": { - "valType": "string", - "role": "style", - "editType": "colorbars", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "colorbars", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "colorbars", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "colorbars", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "colorbars", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars" - }, - "editType": "colorbars", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "colorbars" - } - }, - "editType": "colorbars", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "geo": { - "valType": "subplotid", - "role": "info", - "dflt": "geo", - "editType": "calc", - "description": "Sets a reference between this trace's geospatial coordinates and a geographic map. If *geo* (the default value), the geospatial coordinates refer to `layout.geo`. If *geo2*, the geospatial coordinates refer to `layout.geo2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "locationssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for locations .", - "editType": "none" - }, - "zsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for z .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - } - } + "role": "object" + } + }, + "role": "object" + }, + "hoverformat": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "showline": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Determines whether or not a line bounding this axis is drawn." + }, + "linecolor": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the axis line color." + }, + "linewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the width (in px) of the axis line." + }, + "showgrid": { + "valType": "boolean", + "editType": "plot", + "description": "Determines whether or not grid lines are drawn. If *true*, the grid lines are drawn at every tick mark." + }, + "gridcolor": { + "valType": "color", + "dflt": "rgb(204, 204, 204)", + "editType": "plot", + "description": "Sets the color of the grid lines." + }, + "gridwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the width (in px) of the grid lines." + }, + "zeroline": { + "valType": "boolean", + "editType": "plot", + "description": "Determines whether or not a line is drawn at along the 0 value of this axis. If *true*, the zero line is drawn on top of the grid lines." + }, + "zerolinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the line color of the zero line." + }, + "zerolinewidth": { + "valType": "number", + "dflt": 1, + "editType": "plot", + "description": "Sets the width (in px) of the zero line." + }, + "_deprecated": { + "title": { + "valType": "string", + "editType": "plot", + "description": "Value of `title` is no longer a simple *string* but a set of sub-attributes. To set the axis' title, please use `title.text` now." + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Former `titlefont` is now the sub-attribute `font` of `title`. To customize title font properties, please use `title.font` now." + } + }, + "editType": "plot", + "calendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use for `range` and `tick0` if this is a date axis. This does not set the calendar for interpreting data on this axis, that's specified in the trace or via the global `layout.calendar`" + }, + "role": "object", + "categoryarraysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for categoryarray .", + "editType": "none" + }, + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "zaxis": { + "visible": { + "valType": "boolean", + "editType": "plot", + "description": "A single toggle to hide the axis while preserving interaction like dragging. Default is true when a cheater plot is present on the axis, otherwise false" + }, + "showspikes": { + "valType": "boolean", + "dflt": true, + "description": "Sets whether or not spikes starting from data points to this axis' wall are shown on hover.", + "editType": "plot" + }, + "spikesides": { + "valType": "boolean", + "dflt": true, + "description": "Sets whether or not spikes extending from the projection data points to this axis' wall boundaries are shown on hover.", + "editType": "plot" + }, + "spikethickness": { + "valType": "number", + "min": 0, + "dflt": 2, + "description": "Sets the thickness (in px) of the spikes.", + "editType": "plot" + }, + "spikecolor": { + "valType": "color", + "dflt": "#444", + "description": "Sets the color of the spikes.", + "editType": "plot" + }, + "showbackground": { + "valType": "boolean", + "dflt": false, + "description": "Sets whether or not this axis' wall has a background color.", + "editType": "plot" + }, + "backgroundcolor": { + "valType": "color", + "dflt": "rgba(204, 204, 204, 0.5)", + "description": "Sets the background color of this axis' wall.", + "editType": "plot" + }, + "showaxeslabels": { + "valType": "boolean", + "dflt": true, + "description": "Sets whether or not this axis is labeled", + "editType": "plot" + }, + "color": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." + }, + "categoryorder": { + "valType": "enumerated", + "values": [ + "trace", + "category ascending", + "category descending", + "array", + "total ascending", + "total descending", + "min ascending", + "min descending", + "max ascending", + "max descending", + "sum ascending", + "sum descending", + "mean ascending", + "mean descending", + "median ascending", + "median descending" + ], + "dflt": "trace", + "editType": "plot", + "description": "Specifies the ordering logic for the case of categorical variables. By default, plotly uses *trace*, which specifies the order that is present in the data supplied. Set `categoryorder` to *category ascending* or *category descending* if order should be determined by the alphanumerical order of the category names. Set `categoryorder` to *array* to derive the ordering from the attribute `categoryarray`. If a category is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to the *trace* mode. The unspecified categories will follow the categories in `categoryarray`. Set `categoryorder` to *total ascending* or *total descending* if order should be determined by the numerical order of the values. Similarly, the order can be determined by the min, max, sum, mean or median of all the values." + }, + "categoryarray": { + "valType": "data_array", + "editType": "plot", + "description": "Sets the order in which categories on this axis appear. Only has an effect if `categoryorder` is set to *array*. Used with `categoryorder`." + }, + "title": { + "text": { + "valType": "string", + "editType": "plot", + "description": "Sets the title of this axis. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Sets this axis' title font. Note that the title's font used to be customized by the now deprecated `titlefont` attribute.", + "role": "object" + }, + "editType": "plot", + "role": "object" + }, + "type": { + "valType": "enumerated", + "values": [ + "-", + "linear", + "log", + "date", + "category" + ], + "dflt": "-", + "editType": "plot", + "_noTemplating": true, + "description": "Sets the axis type. By default, plotly attempts to determined the axis type by looking into the data of the traces that referenced the axis in question." + }, + "autotypenumbers": { + "valType": "enumerated", + "values": [ + "convert types", + "strict" + ], + "dflt": "convert types", + "editType": "plot", + "description": "Using *strict* a numeric string in trace data is not converted to a number. Using *convert types* a numeric string in trace data may be treated as a number during automatic axis `type` detection. Defaults to layout.autotypenumbers." + }, + "autorange": { + "valType": "enumerated", + "values": [ + true, + false, + "reversed" + ], + "dflt": true, + "editType": "plot", + "impliedEdits": {}, + "description": "Determines whether or not the range of this axis is computed in relation to the input data. See `rangemode` for more info. If `range` is provided, then `autorange` is set to *false*." + }, + "rangemode": { + "valType": "enumerated", + "values": [ + "normal", + "tozero", + "nonnegative" + ], + "dflt": "normal", + "editType": "plot", + "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes." + }, + "range": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "^autorange": false + } + }, + { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "^autorange": false + } + } + ], + "editType": "plot", + "impliedEdits": { + "autorange": false + }, + "anim": false, + "description": "Sets the range of this axis. If the axis `type` is *log*, then you must take the log of your desired range (e.g. to set the range from 1 to 100, set the range from 0 to 2). If the axis `type` is *date*, it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is *category*, it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "plot", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "plot", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "plot", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "plot", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "plot", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines." + }, + "mirror": { + "valType": "enumerated", + "values": [ + true, + "ticks", + false, + "all", + "allticks" + ], + "dflt": false, + "editType": "plot", + "description": "Determines if the axis lines or/and ticks are mirrored to the opposite side of the plotting area. If *true*, the axis lines are mirrored. If *ticks*, the axis lines and ticks are mirrored. If *false*, mirroring is disable. If *all*, axis lines are mirrored on all shared-axes subplots. If *allticks*, axis lines and ticks are mirrored on all shared-axes subplots." + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "plot", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Sets the tick font.", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "plot", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "plot", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "plot", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "If \"true\", even 4-digit integers are separated" + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." }, - "scattergl": { - "meta": { - "hrName": "scatter_gl", - "description": "The data visualized as scatter point or lines is set in `x` and `y` using the WebGL plotting engine. Bubble charts are achieved by setting `marker.size` and/or `marker.color` to a numerical arrays." - }, - "categories": [ - "gl", - "regl", - "cartesian", - "symbols", - "errorBarsOK", - "showLegend", - "scatter-like" - ], - "animatable": false, - "type": "scattergl", - "attributes": { - "type": "scattergl", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "selectedpoints": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "x": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the x coordinates.", - "role": "data" - }, - "x0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step." - }, - "dx": { - "valType": "number", - "dflt": 1, - "role": "info", - "editType": "calc", - "description": "Sets the x coordinate step. See `x0` for more info." - }, - "y": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the y coordinates.", - "role": "data" - }, - "y0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step." - }, - "dy": { - "valType": "number", - "dflt": 1, - "role": "info", - "editType": "calc", - "description": "Sets the y coordinate step. See `y0` for more info." - }, - "xperiod": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." - }, - "yperiod": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the y axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." - }, - "xperiod0": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." - }, - "yperiod0": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the y0 axis. When `y0period` is round number of weeks, the `y0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." - }, - "xperiodalignment": { - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ], - "dflt": "middle", - "role": "style", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis." - }, - "yperiodalignment": { - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ], - "dflt": "middle", - "role": "style", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the y axis." - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets hover text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." - }, - "textposition": { - "valType": "enumerated", - "values": [ - "top left", - "top center", - "top right", - "middle left", - "middle center", - "middle right", - "bottom left", - "bottom center", - "bottom right" - ], - "dflt": "middle center", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates." - }, - "textfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "arrayOk": true - }, - "editType": "calc", - "description": "Sets the text font.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "mode": { - "valType": "flaglist", - "flags": [ - "lines", - "markers", - "text" - ], - "extras": [ - "none" - ], - "role": "info", - "description": "Determines the drawing mode for this scatter trace.", - "editType": "calc" - }, - "line": { - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the line color." - }, - "width": { - "valType": "number", - "min": 0, - "dflt": 2, - "role": "style", - "editType": "calc", - "description": "Sets the line width (in px)." - }, - "shape": { - "valType": "enumerated", - "values": [ - "linear", - "hv", - "vh", - "hvh", - "vhv" - ], - "dflt": "linear", - "role": "style", - "editType": "calc", - "description": "Determines the line shape. The values correspond to step-wise line shapes." - }, - "dash": { - "valType": "enumerated", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ], - "dflt": "solid", - "role": "style", - "description": "Sets the style of the lines.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "marker": { - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "calc", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "calc" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "calc" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "calc" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "calc" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "calc" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "calc" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "calc" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "calc" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "calc" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "calc" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "calc" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "calc" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "calc", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "calc" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "calc", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "calc", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Sets the color bar's tick label font", - "editType": "calc", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "calc", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "calc" - }, - { - "valType": "any", - "editType": "calc" - } - ], - "editType": "calc", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "calc", - "name": { - "valType": "string", - "role": "style", - "editType": "calc", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "calc", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "calc", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "calc", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "calc" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "calc", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "calc" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "calc" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "calc" - } - }, - "editType": "calc", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "symbol": { - "valType": "enumerated", - "values": [ - 0, - "0", - "circle", - 100, - "100", - "circle-open", - 200, - "200", - "circle-dot", - 300, - "300", - "circle-open-dot", - 1, - "1", - "square", - 101, - "101", - "square-open", - 201, - "201", - "square-dot", - 301, - "301", - "square-open-dot", - 2, - "2", - "diamond", - 102, - "102", - "diamond-open", - 202, - "202", - "diamond-dot", - 302, - "302", - "diamond-open-dot", - 3, - "3", - "cross", - 103, - "103", - "cross-open", - 203, - "203", - "cross-dot", - 303, - "303", - "cross-open-dot", - 4, - "4", - "x", - 104, - "104", - "x-open", - 204, - "204", - "x-dot", - 304, - "304", - "x-open-dot", - 5, - "5", - "triangle-up", - 105, - "105", - "triangle-up-open", - 205, - "205", - "triangle-up-dot", - 305, - "305", - "triangle-up-open-dot", - 6, - "6", - "triangle-down", - 106, - "106", - "triangle-down-open", - 206, - "206", - "triangle-down-dot", - 306, - "306", - "triangle-down-open-dot", - 7, - "7", - "triangle-left", - 107, - "107", - "triangle-left-open", - 207, - "207", - "triangle-left-dot", - 307, - "307", - "triangle-left-open-dot", - 8, - "8", - "triangle-right", - 108, - "108", - "triangle-right-open", - 208, - "208", - "triangle-right-dot", - 308, - "308", - "triangle-right-open-dot", - 9, - "9", - "triangle-ne", - 109, - "109", - "triangle-ne-open", - 209, - "209", - "triangle-ne-dot", - 309, - "309", - "triangle-ne-open-dot", - 10, - "10", - "triangle-se", - 110, - "110", - "triangle-se-open", - 210, - "210", - "triangle-se-dot", - 310, - "310", - "triangle-se-open-dot", - 11, - "11", - "triangle-sw", - 111, - "111", - "triangle-sw-open", - 211, - "211", - "triangle-sw-dot", - 311, - "311", - "triangle-sw-open-dot", - 12, - "12", - "triangle-nw", - 112, - "112", - "triangle-nw-open", - 212, - "212", - "triangle-nw-dot", - 312, - "312", - "triangle-nw-open-dot", - 13, - "13", - "pentagon", - 113, - "113", - "pentagon-open", - 213, - "213", - "pentagon-dot", - 313, - "313", - "pentagon-open-dot", - 14, - "14", - "hexagon", - 114, - "114", - "hexagon-open", - 214, - "214", - "hexagon-dot", - 314, - "314", - "hexagon-open-dot", - 15, - "15", - "hexagon2", - 115, - "115", - "hexagon2-open", - 215, - "215", - "hexagon2-dot", - 315, - "315", - "hexagon2-open-dot", - 16, - "16", - "octagon", - 116, - "116", - "octagon-open", - 216, - "216", - "octagon-dot", - 316, - "316", - "octagon-open-dot", - 17, - "17", - "star", - 117, - "117", - "star-open", - 217, - "217", - "star-dot", - 317, - "317", - "star-open-dot", - 18, - "18", - "hexagram", - 118, - "118", - "hexagram-open", - 218, - "218", - "hexagram-dot", - 318, - "318", - "hexagram-open-dot", - 19, - "19", - "star-triangle-up", - 119, - "119", - "star-triangle-up-open", - 219, - "219", - "star-triangle-up-dot", - 319, - "319", - "star-triangle-up-open-dot", - 20, - "20", - "star-triangle-down", - 120, - "120", - "star-triangle-down-open", - 220, - "220", - "star-triangle-down-dot", - 320, - "320", - "star-triangle-down-open-dot", - 21, - "21", - "star-square", - 121, - "121", - "star-square-open", - 221, - "221", - "star-square-dot", - 321, - "321", - "star-square-open-dot", - 22, - "22", - "star-diamond", - 122, - "122", - "star-diamond-open", - 222, - "222", - "star-diamond-dot", - 322, - "322", - "star-diamond-open-dot", - 23, - "23", - "diamond-tall", - 123, - "123", - "diamond-tall-open", - 223, - "223", - "diamond-tall-dot", - 323, - "323", - "diamond-tall-open-dot", - 24, - "24", - "diamond-wide", - 124, - "124", - "diamond-wide-open", - 224, - "224", - "diamond-wide-dot", - 324, - "324", - "diamond-wide-open-dot", - 25, - "25", - "hourglass", - 125, - "125", - "hourglass-open", - 26, - "26", - "bowtie", - 126, - "126", - "bowtie-open", - 27, - "27", - "circle-cross", - 127, - "127", - "circle-cross-open", - 28, - "28", - "circle-x", - 128, - "128", - "circle-x-open", - 29, - "29", - "square-cross", - 129, - "129", - "square-cross-open", - 30, - "30", - "square-x", - 130, - "130", - "square-x-open", - 31, - "31", - "diamond-cross", - 131, - "131", - "diamond-cross-open", - 32, - "32", - "diamond-x", - 132, - "132", - "diamond-x-open", - 33, - "33", - "cross-thin", - 133, - "133", - "cross-thin-open", - 34, - "34", - "x-thin", - 134, - "134", - "x-thin-open", - 35, - "35", - "asterisk", - 135, - "135", - "asterisk-open", - 36, - "36", - "hash", - 136, - "136", - "hash-open", - 236, - "236", - "hash-dot", - 336, - "336", - "hash-open-dot", - 37, - "37", - "y-up", - 137, - "137", - "y-up-open", - 38, - "38", - "y-down", - 138, - "138", - "y-down-open", - 39, - "39", - "y-left", - 139, - "139", - "y-left-open", - 40, - "40", - "y-right", - 140, - "140", - "y-right-open", - 41, - "41", - "line-ew", - 141, - "141", - "line-ew-open", - 42, - "42", - "line-ns", - 142, - "142", - "line-ns-open", - 43, - "43", - "line-ne", - 143, - "143", - "line-ne-open", - 44, - "44", - "line-nw", - 144, - "144", - "line-nw-open", - 45, - "45", - "arrow-up", - 145, - "145", - "arrow-up-open", - 46, - "46", - "arrow-down", - 146, - "146", - "arrow-down-open", - 47, - "47", - "arrow-left", - 147, - "147", - "arrow-left-open", - 48, - "48", - "arrow-right", - 148, - "148", - "arrow-right-open", - 49, - "49", - "arrow-bar-up", - 149, - "149", - "arrow-bar-up-open", - 50, - "50", - "arrow-bar-down", - 150, - "150", - "arrow-bar-down-open", - 51, - "51", - "arrow-bar-left", - 151, - "151", - "arrow-bar-left-open", - 52, - "52", - "arrow-bar-right", - 152, - "152", - "arrow-bar-right-open" - ], - "dflt": "circle", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name." - }, - "size": { - "valType": "number", - "min": 0, - "dflt": 6, - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the marker size (in px)." - }, - "sizeref": { - "valType": "number", - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`." - }, - "sizemin": { - "valType": "number", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points." - }, - "sizemode": { - "valType": "enumerated", - "values": [ - "diameter", - "area" - ], - "dflt": "diameter", - "role": "info", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels." - }, - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the marker opacity." - }, - "line": { - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "calc", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "width": { - "valType": "number", - "min": 0, - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the lines bounding the marker points." - }, - "editType": "calc", - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - }, - "widthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for width .", - "editType": "none" - } - }, - "editType": "calc", - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - }, - "symbolsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for symbol .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "opacitysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for opacity .", - "editType": "none" - } - }, - "connectgaps": { - "valType": "boolean", - "dflt": false, - "role": "info", - "editType": "calc", - "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected." - }, - "fill": { - "valType": "enumerated", - "values": [ - "none", - "tozeroy", - "tozerox", - "tonexty", - "tonextx", - "toself", - "tonext" - ], - "role": "style", - "editType": "calc", - "description": "Sets the area to fill with a solid color. Defaults to *none* unless this trace is stacked, then it gets *tonexty* (*tonextx*) if `orientation` is *v* (*h*) Use with `fillcolor` if not *none*. *tozerox* and *tozeroy* fill to x=0 and y=0 respectively. *tonextx* and *tonexty* fill between the endpoints of this trace and the endpoints of the trace before it, connecting those endpoints with straight lines (to make a stacked area graph); if there is no trace before it, they behave like *tozerox* and *tozeroy*. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape. *tonext* fills the space between two traces if one completely encloses the other (eg consecutive contour lines), and behaves like *toself* if there is no trace before it. *tonext* should not be used if one trace does not enclose the other. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order.", - "dflt": "none" - }, - "fillcolor": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." - }, - "selected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "calc", - "description": "Sets the marker opacity of selected points." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the marker color of selected points." - }, - "size": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "calc", - "description": "Sets the marker size of selected points." - }, - "editType": "calc", - "role": "object" - }, - "textfont": { - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the text font color of selected points." - }, - "editType": "calc", - "role": "object" - }, - "editType": "calc", - "role": "object" - }, - "unselected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "calc", - "description": "Sets the marker opacity of unselected points, applied only when a selection exists." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the marker color of unselected points, applied only when a selection exists." - }, - "size": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "calc", - "description": "Sets the marker size of unselected points, applied only when a selection exists." - }, - "editType": "calc", - "role": "object" - }, - "textfont": { - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the text font color of unselected points, applied only when a selection exists." - }, - "editType": "calc", - "role": "object" - }, - "editType": "calc", - "role": "object" - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "calc", - "description": "Sets the opacity of the trace." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "texttemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. ", - "arrayOk": true - }, - "error_x": { - "visible": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether or not this set of error bars is visible." - }, - "type": { - "valType": "enumerated", - "values": [ - "percent", - "constant", - "sqrt", - "data" - ], - "role": "info", - "editType": "calc", - "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`." - }, - "symmetric": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars." - }, - "array": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", - "role": "data" - }, - "arrayminus": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", - "role": "data" - }, - "value": { - "valType": "number", - "min": 0, - "dflt": 10, - "role": "info", - "editType": "calc", - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars." - }, - "valueminus": { - "valType": "number", - "min": 0, - "dflt": 10, - "role": "info", - "editType": "calc", - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars" - }, - "traceref": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc" - }, - "tracerefminus": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc" - }, - "copy_ystyle": { - "valType": "boolean", - "role": "style", - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the stoke color of the error bars." - }, - "thickness": { - "valType": "number", - "min": 0, - "dflt": 2, - "role": "style", - "editType": "calc", - "description": "Sets the thickness (in px) of the error bars." - }, - "width": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the cross-bar at both ends of the error bars." - }, - "editType": "calc", - "_deprecated": { - "opacity": { - "valType": "number", - "role": "style", - "editType": "calc", - "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." - } - }, - "role": "object", - "arraysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for array .", - "editType": "none" - }, - "arrayminussrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for arrayminus .", - "editType": "none" - } - }, - "error_y": { - "visible": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether or not this set of error bars is visible." - }, - "type": { - "valType": "enumerated", - "values": [ - "percent", - "constant", - "sqrt", - "data" - ], - "role": "info", - "editType": "calc", - "description": "Determines the rule used to generate the error bars. If *constant`, the bar lengths are of a constant value. Set this constant in `value`. If *percent*, the bar lengths correspond to a percentage of underlying data. Set this percentage in `value`. If *sqrt*, the bar lengths correspond to the square of the underlying data. If *data*, the bar lengths are set with data set `array`." - }, - "symmetric": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether or not the error bars have the same length in both direction (top/bottom for vertical bars, left/right for horizontal bars." - }, - "array": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the data corresponding the length of each error bar. Values are plotted relative to the underlying data.", - "role": "data" - }, - "arrayminus": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the data corresponding the length of each error bar in the bottom (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.", - "role": "data" - }, - "value": { - "valType": "number", - "min": 0, - "dflt": 10, - "role": "info", - "editType": "calc", - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars." - }, - "valueminus": { - "valType": "number", - "min": 0, - "dflt": 10, - "role": "info", - "editType": "calc", - "description": "Sets the value of either the percentage (if `type` is set to *percent*) or the constant (if `type` is set to *constant*) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars" - }, - "traceref": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc" - }, - "tracerefminus": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the stoke color of the error bars." - }, - "thickness": { - "valType": "number", - "min": 0, - "dflt": 2, - "role": "style", - "editType": "calc", - "description": "Sets the thickness (in px) of the error bars." - }, - "width": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the cross-bar at both ends of the error bars." - }, - "editType": "calc", - "_deprecated": { - "opacity": { - "valType": "number", - "role": "style", - "editType": "calc", - "description": "Obsolete. Use the alpha channel in error bar `color` to set the opacity." - } - }, - "role": "object", - "arraysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for array .", - "editType": "none" - }, - "arrayminussrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for arrayminus .", - "editType": "none" - } - }, - "xcalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `x` date data." - }, - "ycalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `y` date data." - }, - "xaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." - }, - "yaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "ysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for y .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "textpositionsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for textposition .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - }, - "texttemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", - "editType": "none" - } - } + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "plot" + }, + { + "valType": "any", + "editType": "plot" + } + ], + "editType": "plot", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" }, - "splom": { - "meta": { - "description": "Splom traces generate scatter plot matrix visualizations. Each splom `dimensions` items correspond to a generated axis. Values for each of those dimensions are set in `dimensions[i].values`. Splom traces support all `scattergl` marker style attributes. Specify `layout.grid` attributes and/or layout x-axis and y-axis attributes for more control over the axis positioning and style. " - }, - "categories": [ - "gl", - "regl", - "cartesian", - "symbols", - "showLegend", - "scatter-like" - ], - "animatable": false, - "type": "splom", - "attributes": { - "type": "splom", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "selectedpoints": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "dimensions": { - "items": { - "dimension": { - "visible": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this dimension is shown on the graph. Note that even visible false dimension contribute to the default grid generate by this splom trace." - }, - "label": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Sets the label corresponding to this splom dimension." - }, - "values": { - "valType": "data_array", - "role": "data", - "editType": "calc+clearAxisTypes", - "description": "Sets the dimension values to be plotted." - }, - "axis": { - "type": { - "valType": "enumerated", - "values": [ - "linear", - "log", - "date", - "category" - ], - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Sets the axis type for this dimension's generated x and y axes. Note that the axis `type` values set in layout take precedence over this attribute." - }, - "matches": { - "valType": "boolean", - "dflt": false, - "role": "info", - "editType": "calc", - "description": "Determines whether or not the x & y axes generated by this dimension match. Equivalent to setting the `matches` axis attribute in the layout with the correct axis id." - }, - "editType": "calc+clearAxisTypes", - "role": "object" - }, - "editType": "calc+clearAxisTypes", - "name": { - "valType": "string", - "role": "style", - "editType": "none", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object", - "valuessrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for values .", - "editType": "none" - } - } - }, - "role": "object" - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets text elements associated with each (x,y) pair to appear on hover. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates." - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Same as `text`." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "marker": { - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "style", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "style", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "colorbars" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "colorbars" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "colorbars" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "colorbars" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "colorbars" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "colorbars" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "colorbars" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "colorbars" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "colorbars" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "colorbars" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "colorbars", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "colorbars", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "colorbars", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "colorbars" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "colorbars", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "colorbars", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "colorbars", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "colorbars" - }, - { - "valType": "any", - "editType": "colorbars" - } - ], - "editType": "colorbars", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "colorbars", - "name": { - "valType": "string", - "role": "style", - "editType": "colorbars", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "colorbars", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "colorbars", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "colorbars", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "colorbars", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars" - }, - "editType": "colorbars", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "colorbars" - } - }, - "editType": "colorbars", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "symbol": { - "valType": "enumerated", - "values": [ - 0, - "0", - "circle", - 100, - "100", - "circle-open", - 200, - "200", - "circle-dot", - 300, - "300", - "circle-open-dot", - 1, - "1", - "square", - 101, - "101", - "square-open", - 201, - "201", - "square-dot", - 301, - "301", - "square-open-dot", - 2, - "2", - "diamond", - 102, - "102", - "diamond-open", - 202, - "202", - "diamond-dot", - 302, - "302", - "diamond-open-dot", - 3, - "3", - "cross", - 103, - "103", - "cross-open", - 203, - "203", - "cross-dot", - 303, - "303", - "cross-open-dot", - 4, - "4", - "x", - 104, - "104", - "x-open", - 204, - "204", - "x-dot", - 304, - "304", - "x-open-dot", - 5, - "5", - "triangle-up", - 105, - "105", - "triangle-up-open", - 205, - "205", - "triangle-up-dot", - 305, - "305", - "triangle-up-open-dot", - 6, - "6", - "triangle-down", - 106, - "106", - "triangle-down-open", - 206, - "206", - "triangle-down-dot", - 306, - "306", - "triangle-down-open-dot", - 7, - "7", - "triangle-left", - 107, - "107", - "triangle-left-open", - 207, - "207", - "triangle-left-dot", - 307, - "307", - "triangle-left-open-dot", - 8, - "8", - "triangle-right", - 108, - "108", - "triangle-right-open", - 208, - "208", - "triangle-right-dot", - 308, - "308", - "triangle-right-open-dot", - 9, - "9", - "triangle-ne", - 109, - "109", - "triangle-ne-open", - 209, - "209", - "triangle-ne-dot", - 309, - "309", - "triangle-ne-open-dot", - 10, - "10", - "triangle-se", - 110, - "110", - "triangle-se-open", - 210, - "210", - "triangle-se-dot", - 310, - "310", - "triangle-se-open-dot", - 11, - "11", - "triangle-sw", - 111, - "111", - "triangle-sw-open", - 211, - "211", - "triangle-sw-dot", - 311, - "311", - "triangle-sw-open-dot", - 12, - "12", - "triangle-nw", - 112, - "112", - "triangle-nw-open", - 212, - "212", - "triangle-nw-dot", - 312, - "312", - "triangle-nw-open-dot", - 13, - "13", - "pentagon", - 113, - "113", - "pentagon-open", - 213, - "213", - "pentagon-dot", - 313, - "313", - "pentagon-open-dot", - 14, - "14", - "hexagon", - 114, - "114", - "hexagon-open", - 214, - "214", - "hexagon-dot", - 314, - "314", - "hexagon-open-dot", - 15, - "15", - "hexagon2", - 115, - "115", - "hexagon2-open", - 215, - "215", - "hexagon2-dot", - 315, - "315", - "hexagon2-open-dot", - 16, - "16", - "octagon", - 116, - "116", - "octagon-open", - 216, - "216", - "octagon-dot", - 316, - "316", - "octagon-open-dot", - 17, - "17", - "star", - 117, - "117", - "star-open", - 217, - "217", - "star-dot", - 317, - "317", - "star-open-dot", - 18, - "18", - "hexagram", - 118, - "118", - "hexagram-open", - 218, - "218", - "hexagram-dot", - 318, - "318", - "hexagram-open-dot", - 19, - "19", - "star-triangle-up", - 119, - "119", - "star-triangle-up-open", - 219, - "219", - "star-triangle-up-dot", - 319, - "319", - "star-triangle-up-open-dot", - 20, - "20", - "star-triangle-down", - 120, - "120", - "star-triangle-down-open", - 220, - "220", - "star-triangle-down-dot", - 320, - "320", - "star-triangle-down-open-dot", - 21, - "21", - "star-square", - 121, - "121", - "star-square-open", - 221, - "221", - "star-square-dot", - 321, - "321", - "star-square-open-dot", - 22, - "22", - "star-diamond", - 122, - "122", - "star-diamond-open", - 222, - "222", - "star-diamond-dot", - 322, - "322", - "star-diamond-open-dot", - 23, - "23", - "diamond-tall", - 123, - "123", - "diamond-tall-open", - 223, - "223", - "diamond-tall-dot", - 323, - "323", - "diamond-tall-open-dot", - 24, - "24", - "diamond-wide", - 124, - "124", - "diamond-wide-open", - 224, - "224", - "diamond-wide-dot", - 324, - "324", - "diamond-wide-open-dot", - 25, - "25", - "hourglass", - 125, - "125", - "hourglass-open", - 26, - "26", - "bowtie", - 126, - "126", - "bowtie-open", - 27, - "27", - "circle-cross", - 127, - "127", - "circle-cross-open", - 28, - "28", - "circle-x", - 128, - "128", - "circle-x-open", - 29, - "29", - "square-cross", - 129, - "129", - "square-cross-open", - 30, - "30", - "square-x", - 130, - "130", - "square-x-open", - 31, - "31", - "diamond-cross", - 131, - "131", - "diamond-cross-open", - 32, - "32", - "diamond-x", - 132, - "132", - "diamond-x-open", - 33, - "33", - "cross-thin", - 133, - "133", - "cross-thin-open", - 34, - "34", - "x-thin", - 134, - "134", - "x-thin-open", - 35, - "35", - "asterisk", - 135, - "135", - "asterisk-open", - 36, - "36", - "hash", - 136, - "136", - "hash-open", - 236, - "236", - "hash-dot", - 336, - "336", - "hash-open-dot", - 37, - "37", - "y-up", - 137, - "137", - "y-up-open", - 38, - "38", - "y-down", - 138, - "138", - "y-down-open", - 39, - "39", - "y-left", - 139, - "139", - "y-left-open", - 40, - "40", - "y-right", - 140, - "140", - "y-right-open", - 41, - "41", - "line-ew", - 141, - "141", - "line-ew-open", - 42, - "42", - "line-ns", - 142, - "142", - "line-ns-open", - 43, - "43", - "line-ne", - 143, - "143", - "line-ne-open", - 44, - "44", - "line-nw", - 144, - "144", - "line-nw-open", - 45, - "45", - "arrow-up", - 145, - "145", - "arrow-up-open", - 46, - "46", - "arrow-down", - 146, - "146", - "arrow-down-open", - 47, - "47", - "arrow-left", - 147, - "147", - "arrow-left-open", - 48, - "48", - "arrow-right", - 148, - "148", - "arrow-right-open", - 49, - "49", - "arrow-bar-up", - 149, - "149", - "arrow-bar-up-open", - 50, - "50", - "arrow-bar-down", - 150, - "150", - "arrow-bar-down-open", - 51, - "51", - "arrow-bar-left", - 151, - "151", - "arrow-bar-left-open", - 52, - "52", - "arrow-bar-right", - 152, - "152", - "arrow-bar-right-open" - ], - "dflt": "circle", - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name." - }, - "size": { - "valType": "number", - "min": 0, - "dflt": 6, - "arrayOk": true, - "role": "style", - "editType": "markerSize", - "description": "Sets the marker size (in px)." - }, - "sizeref": { - "valType": "number", - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`." - }, - "sizemin": { - "valType": "number", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points." - }, - "sizemode": { - "valType": "enumerated", - "values": [ - "diameter", - "area" - ], - "dflt": "diameter", - "role": "info", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels." - }, - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity." - }, - "line": { - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "width": { - "valType": "number", - "min": 0, - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the lines bounding the marker points." - }, - "editType": "calc", - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - }, - "widthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for width .", - "editType": "none" - } - }, - "editType": "calc", - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - }, - "symbolsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for symbol .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "opacitysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for opacity .", - "editType": "none" - } - }, - "xaxes": { - "valType": "info_array", - "freeLength": true, - "role": "info", - "editType": "calc", - "items": { - "valType": "subplotid", - "regex": "/^x([2-9]|[1-9][0-9]+)?( domain)?$/", - "editType": "plot" - }, - "description": "Sets the list of x axes corresponding to dimensions of this splom trace. By default, a splom will match the first N xaxes where N is the number of input dimensions. Note that, in case where `diagonal.visible` is false and `showupperhalf` or `showlowerhalf` is false, this splom trace will generate one less x-axis and one less y-axis." - }, - "yaxes": { - "valType": "info_array", - "freeLength": true, - "role": "info", - "editType": "calc", - "items": { - "valType": "subplotid", - "regex": "/^y([2-9]|[1-9][0-9]+)?( domain)?$/", - "editType": "plot" - }, - "description": "Sets the list of y axes corresponding to dimensions of this splom trace. By default, a splom will match the first N yaxes where N is the number of input dimensions. Note that, in case where `diagonal.visible` is false and `showupperhalf` or `showlowerhalf` is false, this splom trace will generate one less x-axis and one less y-axis." - }, - "diagonal": { - "visible": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not subplots on the diagonal are displayed." - }, - "editType": "calc", - "role": "object" - }, - "showupperhalf": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not subplots on the upper half from the diagonal are displayed." - }, - "showlowerhalf": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not subplots on the lower half from the diagonal are displayed." - }, - "selected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "calc", - "description": "Sets the marker opacity of selected points." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the marker color of selected points." - }, - "size": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "calc", - "description": "Sets the marker size of selected points." - }, - "editType": "calc", - "role": "object" - }, - "editType": "calc", - "role": "object" - }, - "unselected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "calc", - "description": "Sets the marker opacity of unselected points, applied only when a selection exists." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the marker color of unselected points, applied only when a selection exists." - }, - "size": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "calc", - "description": "Sets the marker size of unselected points, applied only when a selection exists." - }, - "editType": "calc", - "role": "object" - }, - "editType": "calc", - "role": "object" - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "calc", - "description": "Sets the opacity of the trace." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - } - } + "value": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" }, - "pointcloud": { - "meta": { - "description": "The data visualized as a point cloud set in `x` and `y` using the WebGl plotting engine." - }, - "categories": [ - "gl", - "gl2d", - "showLegend" - ], - "animatable": false, - "type": "pointcloud", - "attributes": { - "type": "pointcloud", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "x": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the x coordinates.", - "role": "data" - }, - "y": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the y coordinates.", - "role": "data" - }, - "xy": { - "valType": "data_array", - "editType": "calc", - "description": "Faster alternative to specifying `x` and `y` separately. If supplied, it must be a typed `Float32Array` array that represents points such that `xy[i * 2] = x[i]` and `xy[i * 2 + 1] = y[i]`", - "role": "data" - }, - "indices": { - "valType": "data_array", - "editType": "calc", - "description": "A sequential value, 0..n, supply it to avoid creating this array inside plotting. If specified, it must be a typed `Int32Array` array. Its length must be equal to or greater than the number of points. For the best performance and memory use, create one large `indices` typed array that is guaranteed to be at least as long as the largest number of points during use, and reuse it on each `Plotly.restyle()` call.", - "role": "data" - }, - "xbounds": { - "valType": "data_array", - "editType": "calc", - "description": "Specify `xbounds` in the shape of `[xMin, xMax] to avoid looping through the `xy` typed array. Use it in conjunction with `xy` and `ybounds` for the performance benefits.", - "role": "data" - }, - "ybounds": { - "valType": "data_array", - "editType": "calc", - "description": "Specify `ybounds` in the shape of `[yMin, yMax] to avoid looping through the `xy` typed array. Use it in conjunction with `xy` and `xbounds` for the performance benefits.", - "role": "data" - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." - }, - "marker": { - "color": { - "valType": "color", - "arrayOk": false, - "role": "style", - "editType": "calc", - "description": "Sets the marker fill color. It accepts a specific color.If the color is not fully opaque and there are hundreds of thousandsof points, it may cause slower zooming and panning." - }, - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": 1, - "arrayOk": false, - "role": "style", - "editType": "calc", - "description": "Sets the marker opacity. The default value is `1` (fully opaque). If the markers are not fully opaque and there are hundreds of thousands of points, it may cause slower zooming and panning. Opacity fades the color even if `blend` is left on `false` even if there is no translucency effect in that case." - }, - "blend": { - "valType": "boolean", - "dflt": null, - "role": "style", - "editType": "calc", - "description": "Determines if colors are blended together for a translucency effect in case `opacity` is specified as a value less then `1`. Setting `blend` to `true` reduces zoom/pan speed if used with large numbers of points." - }, - "sizemin": { - "valType": "number", - "min": 0.1, - "max": 2, - "dflt": 0.5, - "role": "style", - "editType": "calc", - "description": "Sets the minimum size (in px) of the rendered marker points, effective when the `pointcloud` shows a million or more points." - }, - "sizemax": { - "valType": "number", - "min": 0.1, - "dflt": 20, - "role": "style", - "editType": "calc", - "description": "Sets the maximum size (in px) of the rendered marker points. Effective when the `pointcloud` shows only few points." - }, - "border": { - "color": { - "valType": "color", - "arrayOk": false, - "role": "style", - "editType": "calc", - "description": "Sets the stroke color. It accepts a specific color. If the color is not fully opaque and there are hundreds of thousands of points, it may cause slower zooming and panning." - }, - "arearatio": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Specifies what fraction of the marker area is covered with the border." - }, - "editType": "calc", - "role": "object" - }, - "editType": "calc", - "role": "object" - }, - "xaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." - }, - "yaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "ysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for y .", - "editType": "none" - }, - "xysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for xy .", - "editType": "none" - }, - "indicessrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for indices .", - "editType": "none" - }, - "xboundssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for xbounds .", - "editType": "none" - }, - "yboundssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ybounds .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - } - } + "editType": "plot", + "name": { + "valType": "string", + "editType": "plot", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." }, - "heatmapgl": { - "meta": { - "description": "WebGL version of the heatmap trace type." - }, - "categories": [ - "gl", - "gl2d", - "2dMap" - ], - "animatable": false, - "type": "heatmapgl", - "attributes": { - "type": "heatmapgl", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "z": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the z data.", - "role": "data" - }, - "x": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the x coordinates.", - "impliedEdits": { - "xtype": "array" - }, - "role": "data" - }, - "x0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step.", - "impliedEdits": { - "xtype": "scaled" - } - }, - "dx": { - "valType": "number", - "dflt": 1, - "role": "info", - "editType": "calc", - "description": "Sets the x coordinate step. See `x0` for more info.", - "impliedEdits": { - "xtype": "scaled" - } - }, - "y": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the y coordinates.", - "impliedEdits": { - "ytype": "array" - }, - "role": "data" - }, - "y0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step.", - "impliedEdits": { - "ytype": "scaled" - } - }, - "dy": { - "valType": "number", - "dflt": 1, - "role": "info", - "editType": "calc", - "description": "Sets the y coordinate step. See `y0` for more info.", - "impliedEdits": { - "ytype": "scaled" - } - }, - "text": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the text elements associated with each z value.", - "role": "data" - }, - "transpose": { - "valType": "boolean", - "dflt": false, - "role": "info", - "editType": "calc", - "description": "Transposes the z data." - }, - "xtype": { - "valType": "enumerated", - "values": [ - "array", - "scaled" - ], - "role": "info", - "editType": "calc", - "description": "If *array*, the heatmap's x coordinates are given by *x* (the default behavior when `x` is provided). If *scaled*, the heatmap's x coordinates are given by *x0* and *dx* (the default behavior when `x` is not provided)." - }, - "ytype": { - "valType": "enumerated", - "values": [ - "array", - "scaled" - ], - "role": "info", - "editType": "calc", - "description": "If *array*, the heatmap's y coordinates are given by *y* (the default behavior when `y` is provided) If *scaled*, the heatmap's y coordinates are given by *y0* and *dy* (the default behavior when `y` is not provided)" - }, - "zsmooth": { - "valType": "enumerated", - "values": [ - "fast", - false - ], - "dflt": "fast", - "role": "style", - "editType": "calc", - "description": "Picks a smoothing algorithm use to smooth `z` data." - }, - "zauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user." - }, - "zmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "zauto": false - }, - "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well." - }, - "zmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "zauto": false - }, - "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well." - }, - "zmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`zmin` and `zmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "calc", - "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "calc" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "calc" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "calc" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "calc" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "calc" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "calc" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "calc" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "calc" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "calc" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "calc" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "calc" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "calc" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "calc", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "calc" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "calc", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "calc", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Sets the color bar's tick label font", - "editType": "calc", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "calc", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "calc" - }, - { - "valType": "any", - "editType": "calc" - } - ], - "editType": "calc", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "calc", - "name": { - "valType": "string", - "role": "style", - "editType": "calc", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "calc", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "calc", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "calc", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "calc" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "calc", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "calc" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "calc" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "calc" - } - }, - "editType": "calc", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "xaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." - }, - "yaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "zsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for z .", - "editType": "none" - }, - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "ysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for y .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - } - } + "templateitemname": { + "valType": "string", + "editType": "plot", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." }, - "parcoords": { - "meta": { - "description": "Parallel coordinates for multidimensional exploratory data analysis. The samples are specified in `dimensions`. The colors are set in `line.color`." - }, - "categories": [ - "gl", - "regl", - "noOpacity", - "noHover" - ], - "animatable": false, - "type": "parcoords", - "attributes": { - "type": "parcoords", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "domain": { - "x": { - "valType": "info_array", - "role": "info", - "editType": "plot", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the horizontal domain of this parcoords trace (in plot fraction)." - }, - "y": { - "valType": "info_array", - "role": "info", - "editType": "plot", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the vertical domain of this parcoords trace (in plot fraction)." - }, - "editType": "plot", - "row": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "plot", - "description": "If there is a layout grid, use the domain for this row in the grid for this parcoords trace ." - }, - "column": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "plot", - "description": "If there is a layout grid, use the domain for this column in the grid for this parcoords trace ." - }, - "role": "object" - }, - "labelangle": { - "valType": "angle", - "dflt": 0, - "role": "info", - "editType": "plot", - "description": "Sets the angle of the labels with respect to the horizontal. For example, a `tickangle` of -90 draws the labels vertically. Tilted labels with *labelangle* may be positioned better inside margins when `labelposition` is set to *bottom*." - }, - "labelside": { - "valType": "enumerated", - "role": "info", - "values": [ - "top", - "bottom" - ], - "dflt": "top", - "editType": "plot", - "description": "Specifies the location of the `label`. *top* positions labels above, next to the title *bottom* positions labels below the graph Tilted labels with *labelangle* may be positioned better inside margins when `labelposition` is set to *bottom*." - }, - "labelfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Sets the font for the `dimension` labels.", - "role": "object" - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Sets the font for the `dimension` tick values.", - "role": "object" - }, - "rangefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Sets the font for the `dimension` range values.", - "role": "object" - }, - "dimensions": { - "items": { - "dimension": { - "label": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "The shown name of the dimension." - }, - "tickvals": { - "valType": "data_array", - "editType": "plot", - "description": "Sets the values at which ticks on this axis appear.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "plot", - "description": "Sets the text displayed at the ticks position via `tickvals`.", - "role": "data" - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "visible": { - "valType": "boolean", - "dflt": true, - "role": "info", - "editType": "plot", - "description": "Shows the dimension when set to `true` (the default). Hides the dimension for `false`." - }, - "range": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "number", - "editType": "plot" - }, - { - "valType": "number", - "editType": "plot" - } - ], - "editType": "plot", - "description": "The domain range that represents the full, shown axis extent. Defaults to the `values` extent. Must be an array of `[fromValue, toValue]` with finite numbers as elements." - }, - "constraintrange": { - "valType": "info_array", - "role": "info", - "freeLength": true, - "dimensions": "1-2", - "items": [ - { - "valType": "number", - "editType": "plot" - }, - { - "valType": "number", - "editType": "plot" - } - ], - "editType": "plot", - "description": "The domain range to which the filter on the dimension is constrained. Must be an array of `[fromValue, toValue]` with `fromValue <= toValue`, or if `multiselect` is not disabled, you may give an array of arrays, where each inner array is `[fromValue, toValue]`." - }, - "multiselect": { - "valType": "boolean", - "dflt": true, - "role": "info", - "editType": "plot", - "description": "Do we allow multiple selection ranges or just a single range?" - }, - "values": { - "valType": "data_array", - "role": "data", - "editType": "calc", - "description": "Dimension values. `values[n]` represents the value of the `n`th point in the dataset, therefore the `values` vector for all dimensions must be the same (longer vectors will be truncated). Each value must be a finite number." - }, - "editType": "calc", - "description": "The dimensions (variables) of the parallel coordinates chart. 2..60 dimensions are supported.", - "name": { - "valType": "string", - "role": "style", - "editType": "none", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - }, - "valuessrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for values .", - "editType": "none" - } - } - }, - "role": "object" - }, - "line": { - "editType": "calc", - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets thelinecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `line.cmin` and `line.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `line.color`) or the bounds set in `line.cmin` and `line.cmax` Has an effect only if in `line.color`is set to a numerical array. Defaults to `false` when `line.cmin` and `line.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `line.color`is set to a numerical array. Value should have the same units as in `line.color` and if set, `line.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `line.color`is set to a numerical array. Value should have the same units as in `line.color` and if set, `line.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `line.cmin` and/or `line.cmax` to be equidistant to this point. Has an effect only if in `line.color`is set to a numerical array. Value should have the same units as in `line.color`. Has no effect when `line.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": [ - [ - 0, - "#440154" - ], - [ - 0.06274509803921569, - "#48186a" - ], - [ - 0.12549019607843137, - "#472d7b" - ], - [ - 0.18823529411764706, - "#424086" - ], - [ - 0.25098039215686274, - "#3b528b" - ], - [ - 0.3137254901960784, - "#33638d" - ], - [ - 0.3764705882352941, - "#2c728e" - ], - [ - 0.4392156862745098, - "#26828e" - ], - [ - 0.5019607843137255, - "#21918c" - ], - [ - 0.5647058823529412, - "#1fa088" - ], - [ - 0.6274509803921569, - "#28ae80" - ], - [ - 0.6901960784313725, - "#3fbc73" - ], - [ - 0.7529411764705882, - "#5ec962" - ], - [ - 0.8156862745098039, - "#84d44b" - ], - [ - 0.8784313725490196, - "#addc30" - ], - [ - 0.9411764705882353, - "#d8e219" - ], - [ - 1, - "#fde725" - ] - ], - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`line.cmin` and `line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `line.colorscale`. Has an effect only if in `line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. Has an effect only if in `line.color`is set to a numerical array. If true, `line.cmin` will correspond to the last color in the array and `line.cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `line.color`is set to a numerical array." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "colorbars" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "colorbars" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "colorbars" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "colorbars" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "colorbars" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "colorbars" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "colorbars" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "colorbars" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "colorbars" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "colorbars" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "colorbars", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "colorbars", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "colorbars", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "colorbars" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "colorbars", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "colorbars", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "colorbars", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "colorbars" - }, - { - "valType": "any", - "editType": "colorbars" - } - ], - "editType": "colorbars", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "colorbars", - "name": { - "valType": "string", - "role": "style", - "editType": "colorbars", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "colorbars", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "colorbars", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "colorbars", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "colorbars", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars" - }, - "editType": "colorbars", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "colorbars" - } - }, - "editType": "colorbars", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - } - } + "role": "object" + } + }, + "role": "object" + }, + "hoverformat": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "showline": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Determines whether or not a line bounding this axis is drawn." + }, + "linecolor": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the axis line color." + }, + "linewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the width (in px) of the axis line." + }, + "showgrid": { + "valType": "boolean", + "editType": "plot", + "description": "Determines whether or not grid lines are drawn. If *true*, the grid lines are drawn at every tick mark." + }, + "gridcolor": { + "valType": "color", + "dflt": "rgb(204, 204, 204)", + "editType": "plot", + "description": "Sets the color of the grid lines." + }, + "gridwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the width (in px) of the grid lines." + }, + "zeroline": { + "valType": "boolean", + "editType": "plot", + "description": "Determines whether or not a line is drawn at along the 0 value of this axis. If *true*, the zero line is drawn on top of the grid lines." + }, + "zerolinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the line color of the zero line." + }, + "zerolinewidth": { + "valType": "number", + "dflt": 1, + "editType": "plot", + "description": "Sets the width (in px) of the zero line." + }, + "_deprecated": { + "title": { + "valType": "string", + "editType": "plot", + "description": "Value of `title` is no longer a simple *string* but a set of sub-attributes. To set the axis' title, please use `title.text` now." + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Former `titlefont` is now the sub-attribute `font` of `title`. To customize title font properties, please use `title.font` now." + } + }, + "editType": "plot", + "calendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use for `range` and `tick0` if this is a date axis. This does not set the calendar for interpreting data on this axis, that's specified in the trace or via the global `layout.calendar`" + }, + "role": "object", + "categoryarraysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for categoryarray .", + "editType": "none" + }, + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "dragmode": { + "valType": "enumerated", + "values": [ + "orbit", + "turntable", + "zoom", + "pan", + false + ], + "editType": "plot", + "description": "Determines the mode of drag interactions for this scene." + }, + "hovermode": { + "valType": "enumerated", + "values": [ + "closest", + false + ], + "dflt": "closest", + "editType": "modebar", + "description": "Determines the mode of hover interactions for this scene." + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of user-driven changes in camera attributes. Defaults to `layout.uirevision`." + }, + "editType": "plot", + "_deprecated": { + "cameraposition": { + "valType": "info_array", + "editType": "camera", + "description": "Obsolete. Use `camera` instead." + } + }, + "annotations": { + "items": { + "annotation": { + "visible": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not this annotation is visible." + }, + "x": { + "valType": "any", + "description": "Sets the annotation's x position.", + "editType": "calc" + }, + "y": { + "valType": "any", + "description": "Sets the annotation's y position.", + "editType": "calc" + }, + "z": { + "valType": "any", + "description": "Sets the annotation's z position.", + "editType": "calc" + }, + "ax": { + "valType": "number", + "description": "Sets the x component of the arrow tail about the arrow head (in pixels).", + "editType": "calc" + }, + "ay": { + "valType": "number", + "description": "Sets the y component of the arrow tail about the arrow head (in pixels).", + "editType": "calc" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "auto", + "left", + "center", + "right" + ], + "dflt": "auto", + "editType": "calc", + "description": "Sets the text box's horizontal position anchor This anchor binds the `x` position to the *left*, *center* or *right* of the annotation. For example, if `x` is set to 1, `xref` to *paper* and `xanchor` to *right* then the right-most portion of the annotation lines up with the right-most edge of the plotting area. If *auto*, the anchor is equivalent to *center* for data-referenced annotations or if there is an arrow, whereas for paper-referenced with no arrow, the anchor picked corresponds to the closest side." + }, + "xshift": { + "valType": "number", + "dflt": 0, + "editType": "calc", + "description": "Shifts the position of the whole annotation and arrow to the right (positive) or left (negative) by this many pixels." + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "auto", + "top", + "middle", + "bottom" + ], + "dflt": "auto", + "editType": "calc", + "description": "Sets the text box's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the annotation. For example, if `y` is set to 1, `yref` to *paper* and `yanchor` to *top* then the top-most portion of the annotation lines up with the top-most edge of the plotting area. If *auto*, the anchor is equivalent to *middle* for data-referenced annotations or if there is an arrow, whereas for paper-referenced with no arrow, the anchor picked corresponds to the closest side." + }, + "yshift": { + "valType": "number", + "dflt": 0, + "editType": "calc", + "description": "Shifts the position of the whole annotation and arrow up (positive) or down (negative) by this many pixels." + }, + "text": { + "valType": "string", + "editType": "calc", + "description": "Sets the text associated with this annotation. Plotly uses a subset of HTML tags to do things like newline (
    ), bold (), italics (), hyperlinks (). Tags , , are also supported." + }, + "textangle": { + "valType": "angle", + "dflt": 0, + "editType": "calc", + "description": "Sets the angle at which the `text` is drawn with respect to the horizontal." + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." }, - "parcats": { - "meta": { - "description": "Parallel categories diagram for multidimensional categorical data." - }, - "categories": [ - "noOpacity" - ], - "animatable": false, - "type": "parcats", - "attributes": { - "type": "parcats", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "domain": { - "x": { - "valType": "info_array", - "role": "info", - "editType": "calc", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the horizontal domain of this parcats trace (in plot fraction)." - }, - "y": { - "valType": "info_array", - "role": "info", - "editType": "calc", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the vertical domain of this parcats trace (in plot fraction)." - }, - "editType": "calc", - "row": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "If there is a layout grid, use the domain for this row in the grid for this parcats trace ." - }, - "column": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "If there is a layout grid, use the domain for this column in the grid for this parcats trace ." - }, - "role": "object" - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "count", - "probability" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": false, - "dflt": "all", - "editType": "plot", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hoveron": { - "valType": "enumerated", - "values": [ - "category", - "color", - "dimension" - ], - "dflt": "category", - "role": "info", - "editType": "plot", - "description": "Sets the hover interaction mode for the parcats diagram. If `category`, hover interaction take place per category. If `color`, hover interactions take place per color per category. If `dimension`, hover interactions take place across all categories per dimension." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "plot", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `count`, `probability`, `category`, `categorycount`, `colorcount` and `bandcolorcount`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``." - }, - "arrangement": { - "valType": "enumerated", - "values": [ - "perpendicular", - "freeform", - "fixed" - ], - "dflt": "perpendicular", - "role": "style", - "editType": "plot", - "description": "Sets the drag interaction mode for categories and dimensions. If `perpendicular`, the categories can only move along a line perpendicular to the paths. If `freeform`, the categories can freely move on the plane. If `fixed`, the categories and dimensions are stationary." - }, - "bundlecolors": { - "valType": "boolean", - "dflt": true, - "role": "info", - "editType": "plot", - "description": "Sort paths so that like colors are bundled together within each category." - }, - "sortpaths": { - "valType": "enumerated", - "values": [ - "forward", - "backward" - ], - "dflt": "forward", - "role": "info", - "editType": "plot", - "description": "Sets the path sorting algorithm. If `forward`, sort paths based on dimension categories from left to right. If `backward`, sort paths based on dimensions categories from right to left." - }, - "labelfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "editType": "calc", - "description": "Sets the font for the `dimension` labels.", - "role": "object" - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "editType": "calc", - "description": "Sets the font for the `category` labels.", - "role": "object" - }, - "dimensions": { - "items": { - "dimension": { - "label": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "The shown name of the dimension." - }, - "categoryorder": { - "valType": "enumerated", - "values": [ - "trace", - "category ascending", - "category descending", - "array" - ], - "dflt": "trace", - "role": "info", - "editType": "calc", - "description": "Specifies the ordering logic for the categories in the dimension. By default, plotly uses *trace*, which specifies the order that is present in the data supplied. Set `categoryorder` to *category ascending* or *category descending* if order should be determined by the alphanumerical order of the category names. Set `categoryorder` to *array* to derive the ordering from the attribute `categoryarray`. If a category is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to the *trace* mode. The unspecified categories will follow the categories in `categoryarray`." - }, - "categoryarray": { - "valType": "data_array", - "role": "data", - "editType": "calc", - "description": "Sets the order in which categories in this dimension appear. Only has an effect if `categoryorder` is set to *array*. Used with `categoryorder`." - }, - "ticktext": { - "valType": "data_array", - "role": "data", - "editType": "calc", - "description": "Sets alternative tick labels for the categories in this dimension. Only has an effect if `categoryorder` is set to *array*. Should be an array the same length as `categoryarray` Used with `categoryorder`." - }, - "values": { - "valType": "data_array", - "role": "data", - "dflt": [], - "editType": "calc", - "description": "Dimension values. `values[n]` represents the category value of the `n`th point in the dataset, therefore the `values` vector for all dimensions must be the same (longer vectors will be truncated)." - }, - "displayindex": { - "valType": "integer", - "role": "info", - "editType": "calc", - "description": "The display index of dimension, from left to right, zero indexed, defaults to dimension index." - }, - "editType": "calc", - "description": "The dimensions (variables) of the parallel categories diagram.", - "visible": { - "valType": "boolean", - "dflt": true, - "role": "info", - "editType": "calc", - "description": "Shows the dimension when set to `true` (the default). Hides the dimension for `false`." - }, - "role": "object", - "categoryarraysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for categoryarray .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - }, - "valuessrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for values .", - "editType": "none" - } - } - }, - "role": "object" - }, - "line": { - "editType": "calc", - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets thelinecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `line.cmin` and `line.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `line.color`) or the bounds set in `line.cmin` and `line.cmax` Has an effect only if in `line.color`is set to a numerical array. Defaults to `false` when `line.cmin` and `line.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `line.color`is set to a numerical array. Value should have the same units as in `line.color` and if set, `line.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `line.color`is set to a numerical array. Value should have the same units as in `line.color` and if set, `line.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `line.cmin` and/or `line.cmax` to be equidistant to this point. Has an effect only if in `line.color`is set to a numerical array. Value should have the same units as in `line.color`. Has no effect when `line.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`line.cmin` and `line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `line.colorscale`. Has an effect only if in `line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. Has an effect only if in `line.color`is set to a numerical array. If true, `line.cmin` will correspond to the last color in the array and `line.cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `line.color`is set to a numerical array." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "colorbars" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "colorbars" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "colorbars" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "colorbars" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "colorbars" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "colorbars" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "colorbars" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "colorbars" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "colorbars" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "colorbars" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "colorbars", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "colorbars", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "colorbars", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "colorbars" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "colorbars", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "colorbars", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "colorbars", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "colorbars" - }, - { - "valType": "any", - "editType": "colorbars" - } - ], - "editType": "colorbars", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "colorbars", - "name": { - "valType": "string", - "role": "style", - "editType": "colorbars", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "colorbars", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "colorbars", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "colorbars", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "colorbars", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars" - }, - "editType": "colorbars", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "colorbars" - } - }, - "editType": "colorbars", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "shape": { - "valType": "enumerated", - "values": [ - "linear", - "hspline" - ], - "dflt": "linear", - "role": "info", - "editType": "plot", - "description": "Sets the shape of the paths. If `linear`, paths are composed of straight lines. If `hspline`, paths are composed of horizontal curved splines" - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "plot", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `count` and `probability`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``." - }, - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "counts": { - "valType": "number", - "min": 0, - "dflt": 1, - "arrayOk": true, - "role": "info", - "editType": "calc", - "description": "The number of observations represented by each state. Defaults to 1 so that each state represents one observation" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "countssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for counts .", - "editType": "none" - } - } + "size": { + "valType": "number", + "min": 1, + "editType": "calc" }, - "scattermapbox": { - "meta": { - "hrName": "scatter_mapbox", - "description": "The data visualized as scatter point, lines or marker symbols on a Mapbox GL geographic map is provided by longitude/latitude pairs in `lon` and `lat`." - }, - "categories": [ - "mapbox", - "gl", - "symbols", - "showLegend", - "scatter-like" - ], - "animatable": false, - "type": "scattermapbox", - "attributes": { - "type": "scattermapbox", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "selectedpoints": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "lon": { - "valType": "data_array", - "description": "Sets the longitude coordinates (in degrees East).", - "editType": "calc", - "role": "data" - }, - "lat": { - "valType": "data_array", - "description": "Sets the latitude coordinates (in degrees North).", - "editType": "calc", - "role": "data" - }, - "mode": { - "valType": "flaglist", - "flags": [ - "lines", - "markers", - "text" - ], - "extras": [ - "none" - ], - "role": "info", - "editType": "calc", - "description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover.", - "dflt": "markers" - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets text elements associated with each (lon,lat) pair If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (lon,lat) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." - }, - "texttemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `lat`, `lon` and `text`.", - "arrayOk": true - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets hover text elements associated with each (lon,lat) pair If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (lon,lat) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." - }, - "line": { - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the line color." - }, - "width": { - "valType": "number", - "min": 0, - "dflt": 2, - "role": "style", - "editType": "calc", - "description": "Sets the line width (in px)." - }, - "editType": "calc", - "role": "object" - }, - "connectgaps": { - "valType": "boolean", - "dflt": false, - "role": "info", - "editType": "calc", - "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected." - }, - "marker": { - "symbol": { - "valType": "string", - "dflt": "circle", - "role": "style", - "arrayOk": true, - "description": "Sets the marker symbol. Full list: https://www.mapbox.com/maki-icons/ Note that the array `marker.color` and `marker.size` are only available for *circle* symbols.", - "editType": "calc" - }, - "angle": { - "valType": "number", - "dflt": "auto", - "role": "style", - "arrayOk": true, - "description": "Sets the marker orientation from true North, in degrees clockwise. When using the *auto* default, no rotation would be applied in perspective views which is different from using a zero angle.", - "editType": "calc" - }, - "allowoverlap": { - "valType": "boolean", - "dflt": false, - "role": "style", - "description": "Flag to draw all symbols, even if they overlap.", - "editType": "calc" - }, - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the marker opacity." - }, - "size": { - "valType": "number", - "min": 0, - "dflt": 6, - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the marker size (in px)." - }, - "sizeref": { - "valType": "number", - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`." - }, - "sizemin": { - "valType": "number", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points." - }, - "sizemode": { - "valType": "enumerated", - "values": [ - "diameter", - "area" - ], - "dflt": "diameter", - "role": "info", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels." - }, - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "calc", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "calc" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "calc" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "calc" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "calc" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "calc" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "calc" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "calc" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "calc" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "calc" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "calc" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "calc" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "calc" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "calc", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "calc" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "calc", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "calc", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Sets the color bar's tick label font", - "editType": "calc", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "calc", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "calc" - }, - { - "valType": "any", - "editType": "calc" - } - ], - "editType": "calc", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "calc", - "name": { - "valType": "string", - "role": "style", - "editType": "calc", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "calc", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "calc", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "calc", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "calc" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "calc", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "calc" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "calc" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "calc" - } - }, - "editType": "calc", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "editType": "calc", - "role": "object", - "symbolsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for symbol .", - "editType": "none" - }, - "anglesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for angle .", - "editType": "none" - }, - "opacitysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for opacity .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "fill": { - "valType": "enumerated", - "values": [ - "none", - "toself" - ], - "dflt": "none", - "role": "style", - "description": "Sets the area to fill with a solid color. Use with `fillcolor` if not *none*. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape.", - "editType": "calc" - }, - "fillcolor": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." - }, - "textfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "dflt": "Open Sans Regular, Arial Unicode MS Regular", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Sets the icon text font (color=mapbox.layer.paint.text-color, size=mapbox.layer.layout.text-size). Has an effect only when `type` is set to *symbol*.", - "editType": "calc", - "role": "object" - }, - "textposition": { - "valType": "enumerated", - "values": [ - "top left", - "top center", - "top right", - "middle left", - "middle center", - "middle right", - "bottom left", - "bottom center", - "bottom right" - ], - "dflt": "middle center", - "arrayOk": false, - "role": "style", - "editType": "calc", - "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates." - }, - "below": { - "valType": "string", - "role": "info", - "description": "Determines if this scattermapbox trace's layers are to be inserted before the layer with the specified ID. By default, scattermapbox layers are inserted above all the base layers. To place the scattermapbox layers above every other layer, set `below` to *''*.", - "editType": "calc" - }, - "selected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "calc", - "description": "Sets the marker opacity of selected points." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the marker color of selected points." - }, - "size": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "calc", - "description": "Sets the marker size of selected points." - }, - "editType": "calc", - "role": "object" - }, - "editType": "calc", - "role": "object" - }, - "unselected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "calc", - "description": "Sets the marker opacity of unselected points, applied only when a selection exists." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the marker color of unselected points, applied only when a selection exists." - }, - "size": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "calc", - "description": "Sets the marker size of unselected points, applied only when a selection exists." - }, - "editType": "calc", - "role": "object" - }, - "editType": "calc", - "role": "object" - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "lon", - "lat", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "calc", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "subplot": { - "valType": "subplotid", - "role": "info", - "dflt": "mapbox", - "editType": "calc", - "description": "Sets a reference between this trace's data coordinates and a mapbox subplot. If *mapbox* (the default value), the data refer to `layout.mapbox`. If *mapbox2*, the data refer to `layout.mapbox2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "lonsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for lon .", - "editType": "none" - }, - "latsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for lat .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "texttemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - } - } + "color": { + "valType": "color", + "editType": "calc" }, - "choroplethmapbox": { - "meta": { - "hr_name": "choropleth_mapbox", - "description": "GeoJSON features to be filled are set in `geojson` The data that describes the choropleth value-to-color mapping is set in `locations` and `z`." - }, - "categories": [ - "mapbox", - "gl", - "noOpacity", - "showLegend" - ], - "animatable": false, - "type": "choroplethmapbox", - "attributes": { - "type": "choroplethmapbox", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "selectedpoints": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "locations": { - "valType": "data_array", - "editType": "calc", - "description": "Sets which features found in *geojson* to plot using their feature `id` field.", - "role": "data" - }, - "z": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the color values.", - "role": "data" - }, - "geojson": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Sets the GeoJSON data associated with this trace. It can be set as a valid GeoJSON object or as a URL string. Note that we only accept GeoJSONs of type *FeatureCollection* or *Feature* with geometries of type *Polygon* or *MultiPolygon*." - }, - "featureidkey": { - "valType": "string", - "role": "info", - "editType": "calc", - "dflt": "id", - "description": "Sets the key in GeoJSON features which is used as id to match the items included in the `locations` array. Support nested property, for example *properties.name*." - }, - "below": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Determines if the choropleth polygons will be inserted before the layer with the specified ID. By default, choroplethmapbox traces are placed above the water layers. If set to '', the layer will be inserted above every existing layer." - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets the text elements associated with each location." - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Same as `text`." - }, - "marker": { - "line": { - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "plot", - "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set.", - "dflt": "#444" - }, - "width": { - "valType": "number", - "min": 0, - "arrayOk": true, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the lines bounding the marker points.", - "dflt": 1 - }, - "editType": "calc", - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - }, - "widthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for width .", - "editType": "none" - } - }, - "opacity": { - "valType": "number", - "arrayOk": true, - "min": 0, - "max": 1, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the opacity of the locations." - }, - "editType": "calc", - "role": "object", - "opacitysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for opacity .", - "editType": "none" - } - }, - "selected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "plot", - "description": "Sets the marker opacity of selected points." - }, - "editType": "plot", - "role": "object" - }, - "editType": "plot", - "role": "object" - }, - "unselected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "plot", - "description": "Sets the marker opacity of unselected points, applied only when a selection exists." - }, - "editType": "plot", - "role": "object" - }, - "editType": "plot", - "role": "object" - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "location", - "z", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "calc", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variable `properties` Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "zauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user." - }, - "zmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "zauto": false - }, - "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well." - }, - "zmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "zauto": false - }, - "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well." - }, - "zmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`zmin` and `zmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "colorbars" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "colorbars" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "colorbars" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "colorbars" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "colorbars" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "colorbars" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "colorbars" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "colorbars" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "colorbars" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "colorbars" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "colorbars", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "colorbars", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "colorbars", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "colorbars" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "colorbars", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "colorbars", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "colorbars", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "colorbars" - }, - { - "valType": "any", - "editType": "colorbars" - } - ], - "editType": "colorbars", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "colorbars", - "name": { - "valType": "string", - "role": "style", - "editType": "colorbars", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "colorbars", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "colorbars", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "colorbars", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "colorbars", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars" - }, - "editType": "colorbars", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "colorbars" - } - }, - "editType": "colorbars", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "subplot": { - "valType": "subplotid", - "role": "info", - "dflt": "mapbox", - "editType": "calc", - "description": "Sets a reference between this trace's data coordinates and a mapbox subplot. If *mapbox* (the default value), the data refer to `layout.mapbox`. If *mapbox2*, the data refer to `layout.mapbox2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "locationssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for locations .", - "editType": "none" - }, - "zsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for z .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - } - } + "editType": "calc", + "description": "Sets the annotation text font.", + "role": "object" + }, + "width": { + "valType": "number", + "min": 1, + "dflt": null, + "editType": "calc", + "description": "Sets an explicit width for the text box. null (default) lets the text set the box width. Wider text will be clipped. There is no automatic wrapping; use
    to start a new line." + }, + "height": { + "valType": "number", + "min": 1, + "dflt": null, + "editType": "calc", + "description": "Sets an explicit height for the text box. null (default) lets the text set the box height. Taller text will be clipped." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "calc", + "description": "Sets the opacity of the annotation (text + arrow)." + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "center", + "editType": "calc", + "description": "Sets the horizontal alignment of the `text` within the box. Has an effect only if `text` spans two or more lines (i.e. `text` contains one or more
    HTML tags) or if an explicit width is set to override the text width." + }, + "valign": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "editType": "calc", + "description": "Sets the vertical alignment of the `text` within the box. Has an effect only if an explicit height is set to override the text height." + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "editType": "calc", + "description": "Sets the background color of the annotation." + }, + "bordercolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "editType": "calc", + "description": "Sets the color of the border enclosing the annotation `text`." + }, + "borderpad": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the padding (in px) between the `text` and the enclosing border." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc", + "description": "Sets the width (in px) of the border enclosing the annotation `text`." + }, + "showarrow": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not the annotation is drawn with an arrow. If *true*, `text` is placed near the arrow's tail. If *false*, `text` lines up with the `x` and `y` provided." + }, + "arrowcolor": { + "valType": "color", + "editType": "calc", + "description": "Sets the color of the annotation arrow." + }, + "arrowhead": { + "valType": "integer", + "min": 0, + "max": 8, + "dflt": 1, + "editType": "calc", + "description": "Sets the end annotation arrow head style." + }, + "startarrowhead": { + "valType": "integer", + "min": 0, + "max": 8, + "dflt": 1, + "editType": "calc", + "description": "Sets the start annotation arrow head style." + }, + "arrowside": { + "valType": "flaglist", + "flags": [ + "end", + "start" + ], + "extras": [ + "none" + ], + "dflt": "end", + "editType": "calc", + "description": "Sets the annotation arrow head position." + }, + "arrowsize": { + "valType": "number", + "min": 0.3, + "dflt": 1, + "editType": "calc", + "description": "Sets the size of the end annotation arrow head, relative to `arrowwidth`. A value of 1 (default) gives a head about 3x as wide as the line." + }, + "startarrowsize": { + "valType": "number", + "min": 0.3, + "dflt": 1, + "editType": "calc", + "description": "Sets the size of the start annotation arrow head, relative to `arrowwidth`. A value of 1 (default) gives a head about 3x as wide as the line." + }, + "arrowwidth": { + "valType": "number", + "min": 0.1, + "editType": "calc", + "description": "Sets the width (in px) of annotation arrow line." + }, + "standoff": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Sets a distance, in pixels, to move the end arrowhead away from the position it is pointing at, for example to point at the edge of a marker independent of zoom. Note that this shortens the arrow from the `ax` / `ay` vector, in contrast to `xshift` / `yshift` which moves everything by this amount." + }, + "startstandoff": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "calc", + "description": "Sets a distance, in pixels, to move the start arrowhead away from the position it is pointing at, for example to point at the edge of a marker independent of zoom. Note that this shortens the arrow from the `ax` / `ay` vector, in contrast to `xshift` / `yshift` which moves everything by this amount." + }, + "hovertext": { + "valType": "string", + "editType": "calc", + "description": "Sets text to appear when hovering over this annotation. If omitted or blank, no hover label will appear." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "calc", + "description": "Sets the background color of the hover label. By default uses the annotation's `bgcolor` made opaque, or white if it was transparent." }, - "densitymapbox": { - "meta": { - "hr_name": "density_mapbox", - "description": "Draws a bivariate kernel density estimation with a Gaussian kernel from `lon` and `lat` coordinates and optional `z` values using a colorscale." - }, - "categories": [ - "mapbox", - "gl", - "showLegend" - ], - "animatable": false, - "type": "densitymapbox", - "attributes": { - "type": "densitymapbox", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "lon": { - "valType": "data_array", - "description": "Sets the longitude coordinates (in degrees East).", - "editType": "calc", - "role": "data" - }, - "lat": { - "valType": "data_array", - "description": "Sets the latitude coordinates (in degrees North).", - "editType": "calc", - "role": "data" - }, - "z": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the points' weight. For example, a value of 10 would be equivalent to having 10 points of weight 1 in the same spot", - "role": "data" - }, - "radius": { - "valType": "number", - "role": "info", - "editType": "plot", - "arrayOk": true, - "min": 1, - "dflt": 30, - "description": "Sets the radius of influence of one `lon` / `lat` point in pixels. Increasing the value makes the densitymapbox trace smoother, but less detailed." - }, - "below": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Determines if the densitymapbox trace will be inserted before the layer with the specified ID. By default, densitymapbox traces are placed below the first layer of type symbol If set to '', the layer will be inserted above every existing layer." - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets text elements associated with each (lon,lat) pair If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (lon,lat) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets hover text elements associated with each (lon,lat) pair If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (lon,lat) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "lon", - "lat", - "z", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "zauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user." - }, - "zmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "zauto": false - }, - "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well." - }, - "zmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "zauto": false - }, - "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well." - }, - "zmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`zmin` and `zmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "colorbars" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "colorbars" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "colorbars" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "colorbars" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "colorbars" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "colorbars" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "colorbars" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "colorbars" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "colorbars" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "colorbars" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "colorbars", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "colorbars", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "colorbars", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "colorbars" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "colorbars", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "colorbars", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "colorbars", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "colorbars" - }, - { - "valType": "any", - "editType": "colorbars" - } - ], - "editType": "colorbars", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "colorbars", - "name": { - "valType": "string", - "role": "style", - "editType": "colorbars", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "colorbars", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "colorbars", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "colorbars", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "colorbars", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars" - }, - "editType": "colorbars", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "colorbars" - } - }, - "editType": "colorbars", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "subplot": { - "valType": "subplotid", - "role": "info", - "dflt": "mapbox", - "editType": "calc", - "description": "Sets a reference between this trace's data coordinates and a mapbox subplot. If *mapbox* (the default value), the data refer to `layout.mapbox`. If *mapbox2*, the data refer to `layout.mapbox2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "lonsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for lon .", - "editType": "none" - }, - "latsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for lat .", - "editType": "none" - }, - "zsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for z .", - "editType": "none" - }, - "radiussrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for radius .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - } - } + "bordercolor": { + "valType": "color", + "editType": "calc", + "description": "Sets the border color of the hover label. By default uses either dark grey or white, for maximum contrast with `hoverlabel.bgcolor`." }, - "sankey": { - "meta": { - "description": "Sankey plots for network flow data analysis. The nodes are specified in `nodes` and the links between sources and targets in `links`. The colors are set in `nodes[i].color` and `links[i].color`, otherwise defaults are used." - }, - "categories": [ - "noOpacity" - ], - "animatable": false, - "type": "sankey", - "attributes": { - "type": "sankey", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "selectedpoints": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": false, - "dflt": "all", - "editType": "calc", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired. Note that this attribute is superseded by `node.hoverinfo` and `node.hoverinfo` for nodes and links respectively." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "arrayOk": true - }, - "editType": "calc", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "calc", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "calc", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "calc", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "domain": { - "x": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the horizontal domain of this sankey trace (in plot fraction).", - "editType": "calc" - }, - "y": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the vertical domain of this sankey trace (in plot fraction).", - "editType": "calc" - }, - "row": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "description": "If there is a layout grid, use the domain for this row in the grid for this sankey trace .", - "editType": "calc" - }, - "column": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "description": "If there is a layout grid, use the domain for this column in the grid for this sankey trace .", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "orientation": { - "valType": "enumerated", - "values": [ - "v", - "h" - ], - "dflt": "h", - "role": "style", - "description": "Sets the orientation of the Sankey diagram.", - "editType": "calc" - }, - "valueformat": { - "valType": "string", - "dflt": ".3s", - "role": "style", - "description": "Sets the value formatting rule using d3 formatting mini-language which is similar to those of Python. See https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format", - "editType": "calc" - }, - "valuesuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "description": "Adds a unit to follow the value in the hover tooltip. Add a space if a separation is necessary from the value.", - "editType": "calc" - }, - "arrangement": { - "valType": "enumerated", - "values": [ - "snap", - "perpendicular", - "freeform", - "fixed" - ], - "dflt": "snap", - "role": "style", - "description": "If value is `snap` (the default), the node arrangement is assisted by automatic snapping of elements to preserve space between nodes specified via `nodepad`. If value is `perpendicular`, the nodes can only move along a line perpendicular to the flow. If value is `freeform`, the nodes can freely move on the plane. If value is `fixed`, the nodes are stationary.", - "editType": "calc" - }, - "textfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Sets the font for node labels", - "editType": "calc", - "role": "object" - }, - "node": { - "label": { - "valType": "data_array", - "dflt": [], - "role": "data", - "description": "The shown name of the node.", - "editType": "calc" - }, - "groups": { - "valType": "info_array", - "impliedEdits": { - "x": [], - "y": [] - }, - "dimensions": 2, - "freeLength": true, - "dflt": [], - "items": { - "valType": "number", - "editType": "calc" - }, - "role": "info", - "description": "Groups of nodes. Each group is defined by an array with the indices of the nodes it contains. Multiple groups can be specified.", - "editType": "calc" - }, - "x": { - "valType": "data_array", - "dflt": [], - "role": "data", - "description": "The normalized horizontal position of the node.", - "editType": "calc" - }, - "y": { - "valType": "data_array", - "dflt": [], - "role": "data", - "description": "The normalized vertical position of the node.", - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "arrayOk": true, - "description": "Sets the `node` color. It can be a single value, or an array for specifying color for each `node`. If `node.color` is omitted, then the default `Plotly` color palette will be cycled through to have a variety of colors. These defaults are not fully opaque, to allow some visibility of what is beneath the node.", - "editType": "calc" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data to each node.", - "role": "data" - }, - "line": { - "color": { - "valType": "color", - "role": "style", - "dflt": "#444", - "arrayOk": true, - "description": "Sets the color of the `line` around each `node`.", - "editType": "calc" - }, - "width": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0.5, - "arrayOk": true, - "description": "Sets the width (in px) of the `line` around each `node`.", - "editType": "calc" - }, - "editType": "calc", - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - }, - "widthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for width .", - "editType": "none" - } - }, - "pad": { - "valType": "number", - "arrayOk": false, - "min": 0, - "dflt": 20, - "role": "style", - "description": "Sets the padding (in px) between the `nodes`.", - "editType": "calc" - }, - "thickness": { - "valType": "number", - "arrayOk": false, - "min": 1, - "dflt": 20, - "role": "style", - "description": "Sets the thickness (in px) of the `nodes`.", - "editType": "calc" - }, - "hoverinfo": { - "valType": "enumerated", - "values": [ - "all", - "none", - "skip" - ], - "dflt": "all", - "role": "info", - "description": "Determines which trace information appear when hovering nodes. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", - "editType": "calc" - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "arrayOk": true - }, - "editType": "calc", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "calc", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "calc", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "calc", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "description": "The nodes of the Sankey plot.", - "editType": "calc", - "role": "object", - "labelsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for label .", - "editType": "none" - }, - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "ysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for y .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - } - }, - "link": { - "label": { - "valType": "data_array", - "dflt": [], - "role": "data", - "description": "The shown name of the link.", - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "arrayOk": true, - "description": "Sets the `link` color. It can be a single value, or an array for specifying color for each `link`. If `link.color` is omitted, then by default, a translucent grey link will be used.", - "editType": "calc" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data to each link.", - "role": "data" - }, - "line": { - "color": { - "valType": "color", - "role": "style", - "dflt": "#444", - "arrayOk": true, - "description": "Sets the color of the `line` around each `link`.", - "editType": "calc" - }, - "width": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "arrayOk": true, - "description": "Sets the width (in px) of the `line` around each `link`.", - "editType": "calc" - }, - "editType": "calc", - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - }, - "widthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for width .", - "editType": "none" - } - }, - "source": { - "valType": "data_array", - "role": "data", - "dflt": [], - "description": "An integer number `[0..nodes.length - 1]` that represents the source node.", - "editType": "calc" - }, - "target": { - "valType": "data_array", - "role": "data", - "dflt": [], - "description": "An integer number `[0..nodes.length - 1]` that represents the target node.", - "editType": "calc" - }, - "value": { - "valType": "data_array", - "dflt": [], - "role": "data", - "description": "A numeric value representing the flow volume value.", - "editType": "calc" - }, - "hoverinfo": { - "valType": "enumerated", - "values": [ - "all", - "none", - "skip" - ], - "dflt": "all", - "role": "info", - "description": "Determines which trace information appear when hovering links. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired.", - "editType": "calc" - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "arrayOk": true - }, - "editType": "calc", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "calc", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "calc", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "calc", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "calc", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `value` and `label`. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "colorscales": { - "items": { - "concentrationscales": { - "editType": "calc", - "label": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "The label of the links to color based on their concentration within a flow.", - "dflt": "" - }, - "cmax": { - "valType": "number", - "role": "info", - "editType": "calc", - "dflt": 1, - "description": "Sets the upper bound of the color domain." - }, - "cmin": { - "valType": "number", - "role": "info", - "editType": "calc", - "dflt": 0, - "description": "Sets the lower bound of the color domain." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": [ - [ - 0, - "white" - ], - [ - 1, - "black" - ] - ], - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`cmin` and `cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "name": { - "valType": "string", - "role": "style", - "editType": "calc", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "description": "The links of the Sankey plot.", - "role": "object", - "editType": "calc", - "labelsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for label .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "sourcesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for source .", - "editType": "none" - }, - "targetsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for target .", - "editType": "none" - }, - "valuesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for value .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - } - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - } - } + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc" + }, + "color": { + "valType": "color", + "editType": "calc" + }, + "editType": "calc", + "description": "Sets the hover label text font. By default uses the global hover font and size, with color from `hoverlabel.bordercolor`.", + "role": "object" }, - "indicator": { - "meta": { - "description": "An indicator is used to visualize a single `value` along with some contextual information such as `steps` or a `threshold`, using a combination of three visual elements: a number, a delta, and/or a gauge. Deltas are taken with respect to a `reference`. Gauges can be either angular or bullet (aka linear) gauges." - }, - "categories": [ - "svg", - "noOpacity", - "noHover" - ], - "animatable": true, - "type": "indicator", - "attributes": { - "type": "indicator", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "anim": true, - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "anim": true, - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "mode": { - "valType": "flaglist", - "editType": "calc", - "role": "info", - "flags": [ - "number", - "delta", - "gauge" - ], - "dflt": "number", - "description": "Determines how the value is displayed on the graph. `number` displays the value numerically in text. `delta` displays the difference to a reference value in text. Finally, `gauge` displays the value graphically on an axis." - }, - "value": { - "valType": "number", - "editType": "calc", - "role": "info", - "anim": true, - "description": "Sets the number to be displayed." - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "role": "info", - "editType": "plot", - "description": "Sets the horizontal alignment of the `text` within the box. Note that this attribute has no effect if an angular gauge is displayed: in this case, it is always centered" - }, - "domain": { - "x": { - "valType": "info_array", - "role": "info", - "editType": "calc", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the horizontal domain of this indicator trace (in plot fraction)." - }, - "y": { - "valType": "info_array", - "role": "info", - "editType": "calc", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the vertical domain of this indicator trace (in plot fraction)." - }, - "editType": "calc", - "row": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "If there is a layout grid, use the domain for this row in the grid for this indicator trace ." - }, - "column": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "If there is a layout grid, use the domain for this column in the grid for this indicator trace ." - }, - "role": "object" - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Sets the title of this indicator." - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "role": "info", - "editType": "plot", - "description": "Sets the horizontal alignment of the title. It defaults to `center` except for bullet charts for which it defaults to right." - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Set the font used to display the title", - "role": "object" - }, - "editType": "plot", - "role": "object" - }, - "number": { - "valueformat": { - "valType": "string", - "dflt": "", - "role": "info", - "editType": "plot", - "description": "Sets the value formatting rule using d3 formatting mini-language which is similar to those of Python. See https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Set the font used to display main number", - "role": "object" - }, - "prefix": { - "valType": "string", - "dflt": "", - "role": "info", - "editType": "plot", - "description": "Sets a prefix appearing before the number." - }, - "suffix": { - "valType": "string", - "dflt": "", - "role": "info", - "editType": "plot", - "description": "Sets a suffix appearing next to the number." - }, - "editType": "plot", - "role": "object" - }, - "delta": { - "reference": { - "valType": "number", - "role": "info", - "editType": "calc", - "description": "Sets the reference value to compute the delta. By default, it is set to the current value." - }, - "position": { - "valType": "enumerated", - "values": [ - "top", - "bottom", - "left", - "right" - ], - "role": "info", - "dflt": "bottom", - "editType": "plot", - "description": "Sets the position of delta with respect to the number." - }, - "relative": { - "valType": "boolean", - "editType": "plot", - "role": "info", - "dflt": false, - "description": "Show relative change" - }, - "valueformat": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Sets the value formatting rule using d3 formatting mini-language which is similar to those of Python. See https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format" - }, - "increasing": { - "symbol": { - "valType": "string", - "role": "info", - "dflt": "▲", - "editType": "plot", - "description": "Sets the symbol to display for increasing value" - }, - "color": { - "valType": "color", - "role": "info", - "dflt": "#3D9970", - "editType": "plot", - "description": "Sets the color for increasing value." - }, - "editType": "plot", - "role": "object" - }, - "decreasing": { - "symbol": { - "valType": "string", - "role": "info", - "dflt": "▼", - "editType": "plot", - "description": "Sets the symbol to display for increasing value" - }, - "color": { - "valType": "color", - "role": "info", - "dflt": "#FF4136", - "editType": "plot", - "description": "Sets the color for increasing value." - }, - "editType": "plot", - "role": "object" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Set the font used to display the delta", - "role": "object" - }, - "editType": "calc", - "role": "object" - }, - "gauge": { - "shape": { - "valType": "enumerated", - "editType": "plot", - "role": "info", - "dflt": "angular", - "values": [ - "angular", - "bullet" - ], - "description": "Set the shape of the gauge" - }, - "bar": { - "color": { - "valType": "color", - "editType": "plot", - "role": "info", - "description": "Sets the background color of the arc.", - "dflt": "green" - }, - "line": { - "color": { - "valType": "color", - "role": "info", - "dflt": "#444", - "editType": "plot", - "description": "Sets the color of the line enclosing each sector." - }, - "width": { - "valType": "number", - "role": "info", - "min": 0, - "dflt": 0, - "editType": "plot", - "description": "Sets the width (in px) of the line enclosing each sector." - }, - "editType": "calc", - "role": "object" - }, - "thickness": { - "valType": "number", - "role": "info", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "plot", - "description": "Sets the thickness of the bar as a fraction of the total thickness of the gauge." - }, - "editType": "calc", - "description": "Set the appearance of the gauge's value", - "role": "object" - }, - "bgcolor": { - "valType": "color", - "role": "info", - "editType": "plot", - "description": "Sets the gauge background color." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "info", - "editType": "plot", - "description": "Sets the color of the border enclosing the gauge." - }, - "borderwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "info", - "editType": "plot", - "description": "Sets the width (in px) of the border enclosing the gauge." - }, - "axis": { - "range": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "number", - "editType": "plot" - }, - { - "valType": "number", - "editType": "plot" - } - ], - "editType": "plot", - "description": "Sets the range of this axis." - }, - "visible": { - "valType": "boolean", - "role": "info", - "editType": "plot", - "description": "A single toggle to hide the axis while preserving interaction like dragging. Default is true when a cheater plot is present on the axis, otherwise false", - "dflt": true - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "plot", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "plot", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "plot", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "plot", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "plot", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "plot", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "plot", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "outside" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "plot", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "plot", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "plot" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "description": "Sets the color bar's tick label font", - "editType": "plot", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "plot", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "plot", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "plot" - }, - { - "valType": "any", - "editType": "plot" - } - ], - "editType": "plot", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "plot", - "name": { - "valType": "string", - "role": "style", - "editType": "plot", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "plot", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "plot", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "plot", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "editType": "plot", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "steps": { - "items": { - "step": { - "color": { - "valType": "color", - "editType": "plot", - "role": "info", - "description": "Sets the background color of the arc." - }, - "line": { - "color": { - "valType": "color", - "role": "info", - "dflt": "#444", - "editType": "plot", - "description": "Sets the color of the line enclosing each sector." - }, - "width": { - "valType": "number", - "role": "info", - "min": 0, - "dflt": 0, - "editType": "plot", - "description": "Sets the width (in px) of the line enclosing each sector." - }, - "editType": "calc", - "role": "object" - }, - "thickness": { - "valType": "number", - "role": "info", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "plot", - "description": "Sets the thickness of the bar as a fraction of the total thickness of the gauge." - }, - "editType": "calc", - "range": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "number", - "editType": "plot" - }, - { - "valType": "number", - "editType": "plot" - } - ], - "editType": "plot", - "description": "Sets the range of this axis." - }, - "name": { - "valType": "string", - "role": "style", - "editType": "none", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "threshold": { - "line": { - "color": { - "valType": "color", - "role": "info", - "dflt": "#444", - "editType": "plot", - "description": "Sets the color of the threshold line." - }, - "width": { - "valType": "number", - "role": "info", - "min": 0, - "dflt": 1, - "editType": "plot", - "description": "Sets the width (in px) of the threshold line." - }, - "editType": "plot", - "role": "object" - }, - "thickness": { - "valType": "number", - "role": "info", - "min": 0, - "max": 1, - "dflt": 0.85, - "editType": "plot", - "description": "Sets the thickness of the threshold line as a fraction of the thickness of the gauge." - }, - "value": { - "valType": "number", - "editType": "calc", - "dflt": false, - "role": "info", - "description": "Sets a treshold value drawn as a line." - }, - "editType": "plot", - "role": "object" - }, - "description": "The gauge of the Indicator plot.", - "editType": "plot", - "role": "object" - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - } - } + "editType": "calc", + "role": "object" + }, + "captureevents": { + "valType": "boolean", + "editType": "calc", + "description": "Determines whether the annotation text box captures mouse move and click events, or allows those events to pass through to data points in the plot that may be behind the annotation. By default `captureevents` is *false* unless `hovertext` is provided. If you use the event `plotly_clickannotation` without `hovertext` you must explicitly enable `captureevents`." + }, + "name": { + "valType": "string", + "editType": "calc", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "calc", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "editType": "calc", + "role": "object" + } + }, + "role": "object" + }, + "_isSubplotObj": true, + "role": "object" + }, + "geo": { + "domain": { + "x": { + "valType": "info_array", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the horizontal domain of this geo subplot (in plot fraction). Note that geo subplots are constrained by domain. In general, when `projection.scale` is set to 1. a map will fit either its x or y domain, but not both.", + "editType": "plot" + }, + "y": { + "valType": "info_array", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the vertical domain of this geo subplot (in plot fraction). Note that geo subplots are constrained by domain. In general, when `projection.scale` is set to 1. a map will fit either its x or y domain, but not both.", + "editType": "plot" + }, + "row": { + "valType": "integer", + "min": 0, + "dflt": 0, + "description": "If there is a layout grid, use the domain for this row in the grid for this geo subplot . Note that geo subplots are constrained by domain. In general, when `projection.scale` is set to 1. a map will fit either its x or y domain, but not both.", + "editType": "plot" + }, + "column": { + "valType": "integer", + "min": 0, + "dflt": 0, + "description": "If there is a layout grid, use the domain for this column in the grid for this geo subplot . Note that geo subplots are constrained by domain. In general, when `projection.scale` is set to 1. a map will fit either its x or y domain, but not both.", + "editType": "plot" + }, + "editType": "plot", + "role": "object" + }, + "fitbounds": { + "valType": "enumerated", + "values": [ + false, + "locations", + "geojson" + ], + "dflt": false, + "editType": "plot", + "description": "Determines if this subplot's view settings are auto-computed to fit trace data. On scoped maps, setting `fitbounds` leads to `center.lon` and `center.lat` getting auto-filled. On maps with a non-clipped projection, setting `fitbounds` leads to `center.lon`, `center.lat`, and `projection.rotation.lon` getting auto-filled. On maps with a clipped projection, setting `fitbounds` leads to `center.lon`, `center.lat`, `projection.rotation.lon`, `projection.rotation.lat`, `lonaxis.range` and `lonaxis.range` getting auto-filled. If *locations*, only the trace's visible locations are considered in the `fitbounds` computations. If *geojson*, the entire trace input `geojson` (if provided) is considered in the `fitbounds` computations, Defaults to *false*." + }, + "resolution": { + "valType": "enumerated", + "values": [ + 110, + 50 + ], + "dflt": 110, + "coerceNumber": true, + "description": "Sets the resolution of the base layers. The values have units of km/mm e.g. 110 corresponds to a scale ratio of 1:110,000,000.", + "editType": "plot" + }, + "scope": { + "valType": "enumerated", + "values": [ + "world", + "usa", + "europe", + "asia", + "africa", + "north america", + "south america" + ], + "dflt": "world", + "description": "Set the scope of the map.", + "editType": "plot" + }, + "projection": { + "type": { + "valType": "enumerated", + "values": [ + "equirectangular", + "mercator", + "orthographic", + "natural earth", + "kavrayskiy7", + "miller", + "robinson", + "eckert4", + "azimuthal equal area", + "azimuthal equidistant", + "conic equal area", + "conic conformal", + "conic equidistant", + "gnomonic", + "stereographic", + "mollweide", + "hammer", + "transverse mercator", + "albers usa", + "winkel tripel", + "aitoff", + "sinusoidal" + ], + "description": "Sets the projection type.", + "editType": "plot" + }, + "rotation": { + "lon": { + "valType": "number", + "description": "Rotates the map along parallels (in degrees East). Defaults to the center of the `lonaxis.range` values.", + "editType": "plot" + }, + "lat": { + "valType": "number", + "description": "Rotates the map along meridians (in degrees North).", + "editType": "plot" + }, + "roll": { + "valType": "number", + "description": "Roll the map (in degrees) For example, a roll of *180* makes the map appear upside down.", + "editType": "plot" + }, + "editType": "plot", + "role": "object" + }, + "parallels": { + "valType": "info_array", + "items": [ + { + "valType": "number", + "editType": "plot" + }, + { + "valType": "number", + "editType": "plot" + } + ], + "description": "For conic projection types only. Sets the parallels (tangent, secant) where the cone intersects the sphere.", + "editType": "plot" + }, + "scale": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Zooms in or out on the map view. A scale of *1* corresponds to the largest zoom level that fits the map's lon and lat ranges. ", + "editType": "plot" + }, + "editType": "plot", + "role": "object" + }, + "center": { + "lon": { + "valType": "number", + "description": "Sets the longitude of the map's center. By default, the map's longitude center lies at the middle of the longitude range for scoped projection and above `projection.rotation.lon` otherwise.", + "editType": "plot" + }, + "lat": { + "valType": "number", + "description": "Sets the latitude of the map's center. For all projection types, the map's latitude center lies at the middle of the latitude range by default.", + "editType": "plot" + }, + "editType": "plot", + "role": "object" + }, + "visible": { + "valType": "boolean", + "dflt": true, + "description": "Sets the default visibility of the base layers.", + "editType": "plot" + }, + "showcoastlines": { + "valType": "boolean", + "description": "Sets whether or not the coastlines are drawn.", + "editType": "plot" + }, + "coastlinecolor": { + "valType": "color", + "dflt": "#444", + "description": "Sets the coastline color.", + "editType": "plot" + }, + "coastlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the coastline stroke width (in px).", + "editType": "plot" + }, + "showland": { + "valType": "boolean", + "dflt": false, + "description": "Sets whether or not land masses are filled in color.", + "editType": "plot" + }, + "landcolor": { + "valType": "color", + "dflt": "#F0DC82", + "description": "Sets the land mass color.", + "editType": "plot" + }, + "showocean": { + "valType": "boolean", + "dflt": false, + "description": "Sets whether or not oceans are filled in color.", + "editType": "plot" + }, + "oceancolor": { + "valType": "color", + "dflt": "#3399FF", + "description": "Sets the ocean color", + "editType": "plot" + }, + "showlakes": { + "valType": "boolean", + "dflt": false, + "description": "Sets whether or not lakes are drawn.", + "editType": "plot" + }, + "lakecolor": { + "valType": "color", + "dflt": "#3399FF", + "description": "Sets the color of the lakes.", + "editType": "plot" + }, + "showrivers": { + "valType": "boolean", + "dflt": false, + "description": "Sets whether or not rivers are drawn.", + "editType": "plot" + }, + "rivercolor": { + "valType": "color", + "dflt": "#3399FF", + "description": "Sets color of the rivers.", + "editType": "plot" + }, + "riverwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the stroke width (in px) of the rivers.", + "editType": "plot" + }, + "showcountries": { + "valType": "boolean", + "description": "Sets whether or not country boundaries are drawn.", + "editType": "plot" + }, + "countrycolor": { + "valType": "color", + "dflt": "#444", + "description": "Sets line color of the country boundaries.", + "editType": "plot" + }, + "countrywidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets line width (in px) of the country boundaries.", + "editType": "plot" + }, + "showsubunits": { + "valType": "boolean", + "description": "Sets whether or not boundaries of subunits within countries (e.g. states, provinces) are drawn.", + "editType": "plot" + }, + "subunitcolor": { + "valType": "color", + "dflt": "#444", + "description": "Sets the color of the subunits boundaries.", + "editType": "plot" + }, + "subunitwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the stroke width (in px) of the subunits boundaries.", + "editType": "plot" + }, + "showframe": { + "valType": "boolean", + "description": "Sets whether or not a frame is drawn around the map.", + "editType": "plot" + }, + "framecolor": { + "valType": "color", + "dflt": "#444", + "description": "Sets the color the frame.", + "editType": "plot" + }, + "framewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the stroke width (in px) of the frame.", + "editType": "plot" + }, + "bgcolor": { + "valType": "color", + "dflt": "#fff", + "description": "Set the background color of the map", + "editType": "plot" + }, + "lonaxis": { + "range": { + "valType": "info_array", + "items": [ + { + "valType": "number", + "editType": "plot" + }, + { + "valType": "number", + "editType": "plot" + } + ], + "description": "Sets the range of this axis (in degrees), sets the map's clipped coordinates.", + "editType": "plot" + }, + "showgrid": { + "valType": "boolean", + "dflt": false, + "description": "Sets whether or not graticule are shown on the map.", + "editType": "plot" + }, + "tick0": { + "valType": "number", + "dflt": 0, + "description": "Sets the graticule's starting tick longitude/latitude.", + "editType": "plot" + }, + "dtick": { + "valType": "number", + "description": "Sets the graticule's longitude/latitude tick step.", + "editType": "plot" + }, + "gridcolor": { + "valType": "color", + "dflt": "#eee", + "description": "Sets the graticule's stroke color.", + "editType": "plot" + }, + "gridwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the graticule's stroke width (in px).", + "editType": "plot" + }, + "editType": "plot", + "role": "object" + }, + "lataxis": { + "range": { + "valType": "info_array", + "items": [ + { + "valType": "number", + "editType": "plot" + }, + { + "valType": "number", + "editType": "plot" + } + ], + "description": "Sets the range of this axis (in degrees), sets the map's clipped coordinates.", + "editType": "plot" + }, + "showgrid": { + "valType": "boolean", + "dflt": false, + "description": "Sets whether or not graticule are shown on the map.", + "editType": "plot" + }, + "tick0": { + "valType": "number", + "dflt": 0, + "description": "Sets the graticule's starting tick longitude/latitude.", + "editType": "plot" + }, + "dtick": { + "valType": "number", + "description": "Sets the graticule's longitude/latitude tick step.", + "editType": "plot" + }, + "gridcolor": { + "valType": "color", + "dflt": "#eee", + "description": "Sets the graticule's stroke color.", + "editType": "plot" + }, + "gridwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the graticule's stroke width (in px).", + "editType": "plot" + }, + "editType": "plot", + "role": "object" + }, + "editType": "plot", + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of user-driven changes in the view (projection and center). Defaults to `layout.uirevision`." + }, + "_isSubplotObj": true, + "role": "object" + }, + "mapbox": { + "_arrayAttrRegexps": [ + {} + ], + "domain": { + "x": { + "valType": "info_array", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the horizontal domain of this mapbox subplot (in plot fraction).", + "editType": "plot" + }, + "y": { + "valType": "info_array", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the vertical domain of this mapbox subplot (in plot fraction).", + "editType": "plot" + }, + "row": { + "valType": "integer", + "min": 0, + "dflt": 0, + "description": "If there is a layout grid, use the domain for this row in the grid for this mapbox subplot .", + "editType": "plot" + }, + "column": { + "valType": "integer", + "min": 0, + "dflt": 0, + "description": "If there is a layout grid, use the domain for this column in the grid for this mapbox subplot .", + "editType": "plot" + }, + "editType": "plot", + "role": "object" + }, + "accesstoken": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "Sets the mapbox access token to be used for this mapbox map. Alternatively, the mapbox access token can be set in the configuration options under `mapboxAccessToken`. Note that accessToken are only required when `style` (e.g with values : basic, streets, outdoors, light, dark, satellite, satellite-streets ) and/or a layout layer references the Mapbox server.", + "editType": "plot" + }, + "style": { + "valType": "any", + "values": [ + "basic", + "streets", + "outdoors", + "light", + "dark", + "satellite", + "satellite-streets", + "open-street-map", + "white-bg", + "carto-positron", + "carto-darkmatter", + "stamen-terrain", + "stamen-toner", + "stamen-watercolor" + ], + "dflt": "basic", + "description": "Defines the map layers that are rendered by default below the trace layers defined in `data`, which are themselves by default rendered below the layers defined in `layout.mapbox.layers`. These layers can be defined either explicitly as a Mapbox Style object which can contain multiple layer definitions that load data from any public or private Tile Map Service (TMS or XYZ) or Web Map Service (WMS) or implicitly by using one of the built-in style objects which use WMSes which do not require any access tokens, or by using a default Mapbox style or custom Mapbox style URL, both of which require a Mapbox access token Note that Mapbox access token can be set in the `accesstoken` attribute or in the `mapboxAccessToken` config option. Mapbox Style objects are of the form described in the Mapbox GL JS documentation available at https://docs.mapbox.com/mapbox-gl-js/style-spec The built-in plotly.js styles objects are: open-street-map, white-bg, carto-positron, carto-darkmatter, stamen-terrain, stamen-toner, stamen-watercolor The built-in Mapbox styles are: basic, streets, outdoors, light, dark, satellite, satellite-streets Mapbox style URLs are of the form: mapbox://mapbox.mapbox--", + "editType": "plot" + }, + "center": { + "lon": { + "valType": "number", + "dflt": 0, + "description": "Sets the longitude of the center of the map (in degrees East).", + "editType": "plot" + }, + "lat": { + "valType": "number", + "dflt": 0, + "description": "Sets the latitude of the center of the map (in degrees North).", + "editType": "plot" + }, + "editType": "plot", + "role": "object" + }, + "zoom": { + "valType": "number", + "dflt": 1, + "description": "Sets the zoom level of the map (mapbox.zoom).", + "editType": "plot" + }, + "bearing": { + "valType": "number", + "dflt": 0, + "description": "Sets the bearing angle of the map in degrees counter-clockwise from North (mapbox.bearing).", + "editType": "plot" + }, + "pitch": { + "valType": "number", + "dflt": 0, + "description": "Sets the pitch angle of the map (in degrees, where *0* means perpendicular to the surface of the map) (mapbox.pitch).", + "editType": "plot" + }, + "layers": { + "items": { + "layer": { + "visible": { + "valType": "boolean", + "dflt": true, + "description": "Determines whether this layer is displayed", + "editType": "plot" + }, + "sourcetype": { + "valType": "enumerated", + "values": [ + "geojson", + "vector", + "raster", + "image" + ], + "dflt": "geojson", + "description": "Sets the source type for this layer, that is the type of the layer data.", + "editType": "plot" + }, + "source": { + "valType": "any", + "description": "Sets the source data for this layer (mapbox.layer.source). When `sourcetype` is set to *geojson*, `source` can be a URL to a GeoJSON or a GeoJSON object. When `sourcetype` is set to *vector* or *raster*, `source` can be a URL or an array of tile URLs. When `sourcetype` is set to *image*, `source` can be a URL to an image.", + "editType": "plot" + }, + "sourcelayer": { + "valType": "string", + "dflt": "", + "description": "Specifies the layer to use from a vector tile source (mapbox.layer.source-layer). Required for *vector* source type that supports multiple layers.", + "editType": "plot" + }, + "sourceattribution": { + "valType": "string", + "description": "Sets the attribution for this source.", + "editType": "plot" + }, + "type": { + "valType": "enumerated", + "values": [ + "circle", + "line", + "fill", + "symbol", + "raster" + ], + "dflt": "circle", + "description": "Sets the layer type, that is the how the layer data set in `source` will be rendered With `sourcetype` set to *geojson*, the following values are allowed: *circle*, *line*, *fill* and *symbol*. but note that *line* and *fill* are not compatible with Point GeoJSON geometries. With `sourcetype` set to *vector*, the following values are allowed: *circle*, *line*, *fill* and *symbol*. With `sourcetype` set to *raster* or `*image*`, only the *raster* value is allowed.", + "editType": "plot" + }, + "coordinates": { + "valType": "any", + "description": "Sets the coordinates array contains [longitude, latitude] pairs for the image corners listed in clockwise order: top left, top right, bottom right, bottom left. Only has an effect for *image* `sourcetype`.", + "editType": "plot" + }, + "below": { + "valType": "string", + "description": "Determines if the layer will be inserted before the layer with the specified ID. If omitted or set to '', the layer will be inserted above every existing layer.", + "editType": "plot" + }, + "color": { + "valType": "color", + "dflt": "#444", + "description": "Sets the primary layer color. If `type` is *circle*, color corresponds to the circle color (mapbox.layer.paint.circle-color) If `type` is *line*, color corresponds to the line color (mapbox.layer.paint.line-color) If `type` is *fill*, color corresponds to the fill color (mapbox.layer.paint.fill-color) If `type` is *symbol*, color corresponds to the icon color (mapbox.layer.paint.icon-color)", + "editType": "plot" + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "description": "Sets the opacity of the layer. If `type` is *circle*, opacity corresponds to the circle opacity (mapbox.layer.paint.circle-opacity) If `type` is *line*, opacity corresponds to the line opacity (mapbox.layer.paint.line-opacity) If `type` is *fill*, opacity corresponds to the fill opacity (mapbox.layer.paint.fill-opacity) If `type` is *symbol*, opacity corresponds to the icon/text opacity (mapbox.layer.paint.text-opacity)", + "editType": "plot" + }, + "minzoom": { + "valType": "number", + "min": 0, + "max": 24, + "dflt": 0, + "description": "Sets the minimum zoom level (mapbox.layer.minzoom). At zoom levels less than the minzoom, the layer will be hidden.", + "editType": "plot" + }, + "maxzoom": { + "valType": "number", + "min": 0, + "max": 24, + "dflt": 24, + "description": "Sets the maximum zoom level (mapbox.layer.maxzoom). At zoom levels equal to or greater than the maxzoom, the layer will be hidden.", + "editType": "plot" + }, + "circle": { + "radius": { + "valType": "number", + "dflt": 15, + "description": "Sets the circle radius (mapbox.layer.paint.circle-radius). Has an effect only when `type` is set to *circle*.", + "editType": "plot" }, - "table": { - "meta": { - "description": "Table view for detailed data viewing. The data are arranged in a grid of rows and columns. Most styling can be specified for columns, rows or individual cells. Table is using a column-major order, ie. the grid is represented as a vector of column vectors." - }, - "categories": [ - "noOpacity" - ], - "animatable": false, - "type": "table", - "attributes": { - "type": "table", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "domain": { - "x": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the horizontal domain of this table trace (in plot fraction).", - "editType": "calc" - }, - "y": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "calc" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the vertical domain of this table trace (in plot fraction).", - "editType": "calc" - }, - "row": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "description": "If there is a layout grid, use the domain for this row in the grid for this table trace .", - "editType": "calc" - }, - "column": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "description": "If there is a layout grid, use the domain for this column in the grid for this table trace .", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "columnwidth": { - "valType": "number", - "arrayOk": true, - "dflt": null, - "role": "style", - "description": "The width of columns expressed as a ratio. Columns fill the available width in proportion of their specified column widths.", - "editType": "calc" - }, - "columnorder": { - "valType": "data_array", - "role": "data", - "description": "Specifies the rendered order of the data columns; for example, a value `2` at position `0` means that column index `0` in the data will be rendered as the third column, as columns have an index base of zero.", - "editType": "calc" - }, - "header": { - "values": { - "valType": "data_array", - "role": "data", - "dflt": [], - "description": "Header cell values. `values[m][n]` represents the value of the `n`th point in column `m`, therefore the `values[m]` vector length for all columns must be the same (longer vectors will be truncated). Each value must be a finite number or a string.", - "editType": "calc" - }, - "format": { - "valType": "data_array", - "role": "data", - "dflt": [], - "description": "Sets the cell value formatting rule using d3 formatting mini-language which is similar to those of Python. See https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format", - "editType": "calc" - }, - "prefix": { - "valType": "string", - "arrayOk": true, - "dflt": null, - "role": "style", - "description": "Prefix for cell values.", - "editType": "calc" - }, - "suffix": { - "valType": "string", - "arrayOk": true, - "dflt": null, - "role": "style", - "description": "Suffix for cell values.", - "editType": "calc" - }, - "height": { - "valType": "number", - "dflt": 28, - "role": "style", - "description": "The height of cells.", - "editType": "calc" - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "center", - "role": "style", - "editType": "calc", - "description": "Sets the horizontal alignment of the `text` within the box. Has an effect only if `text` spans two or more lines (i.e. `text` contains one or more
    HTML tags) or if an explicit width is set to override the text width.", - "arrayOk": true - }, - "line": { - "width": { - "valType": "number", - "arrayOk": true, - "dflt": 1, - "role": "style", - "editType": "calc" - }, - "color": { - "valType": "color", - "arrayOk": true, - "dflt": "grey", - "role": "style", - "editType": "calc" - }, - "editType": "calc", - "role": "object", - "widthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for width .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "fill": { - "color": { - "valType": "color", - "arrayOk": true, - "dflt": "white", - "role": "style", - "description": "Sets the cell fill color. It accepts either a specific color or an array of colors or a 2D array of colors.", - "editType": "calc" - }, - "editType": "calc", - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true, - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "arrayOk": true, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "arrayOk": true, - "editType": "calc" - }, - "description": "", - "editType": "calc", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "editType": "calc", - "role": "object", - "valuessrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for values .", - "editType": "none" - }, - "formatsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for format .", - "editType": "none" - }, - "prefixsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for prefix .", - "editType": "none" - }, - "suffixsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for suffix .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - } - }, - "cells": { - "values": { - "valType": "data_array", - "role": "data", - "dflt": [], - "description": "Cell values. `values[m][n]` represents the value of the `n`th point in column `m`, therefore the `values[m]` vector length for all columns must be the same (longer vectors will be truncated). Each value must be a finite number or a string.", - "editType": "calc" - }, - "format": { - "valType": "data_array", - "role": "data", - "dflt": [], - "description": "Sets the cell value formatting rule using d3 formatting mini-language which is similar to those of Python. See https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format", - "editType": "calc" - }, - "prefix": { - "valType": "string", - "arrayOk": true, - "dflt": null, - "role": "style", - "description": "Prefix for cell values.", - "editType": "calc" - }, - "suffix": { - "valType": "string", - "arrayOk": true, - "dflt": null, - "role": "style", - "description": "Suffix for cell values.", - "editType": "calc" - }, - "height": { - "valType": "number", - "dflt": 20, - "role": "style", - "description": "The height of cells.", - "editType": "calc" - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "center", - "role": "style", - "editType": "calc", - "description": "Sets the horizontal alignment of the `text` within the box. Has an effect only if `text` spans two or more lines (i.e. `text` contains one or more
    HTML tags) or if an explicit width is set to override the text width.", - "arrayOk": true - }, - "line": { - "width": { - "valType": "number", - "arrayOk": true, - "dflt": 1, - "role": "style", - "editType": "calc" - }, - "color": { - "valType": "color", - "arrayOk": true, - "dflt": "grey", - "role": "style", - "editType": "calc" - }, - "editType": "calc", - "role": "object", - "widthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for width .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "fill": { - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "dflt": "white", - "description": "Sets the cell fill color. It accepts either a specific color or an array of colors or a 2D array of colors.", - "editType": "calc" - }, - "editType": "calc", - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true, - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "arrayOk": true, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "arrayOk": true, - "editType": "calc" - }, - "description": "", - "editType": "calc", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "editType": "calc", - "role": "object", - "valuessrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for values .", - "editType": "none" - }, - "formatsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for format .", - "editType": "none" - }, - "prefixsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for prefix .", - "editType": "none" - }, - "suffixsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for suffix .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - } - }, - "editType": "calc", - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "columnwidthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for columnwidth .", - "editType": "none" - }, - "columnordersrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for columnorder .", - "editType": "none" - } - } + "editType": "plot", + "role": "object" + }, + "line": { + "width": { + "valType": "number", + "dflt": 2, + "description": "Sets the line width (mapbox.layer.paint.line-width). Has an effect only when `type` is set to *line*.", + "editType": "plot" }, - "carpet": { - "meta": { - "description": "The data describing carpet axis layout is set in `y` and (optionally) also `x`. If only `y` is present, `x` the plot is interpreted as a cheater plot and is filled in using the `y` values. `x` and `y` may either be 2D arrays matching with each dimension matching that of `a` and `b`, or they may be 1D arrays with total length equal to that of `a` and `b`." - }, - "categories": [ - "cartesian", - "svg", - "carpet", - "carpetAxis", - "notLegendIsolatable", - "noMultiCategory", - "noHover", - "noSortingByValue" - ], - "animatable": true, - "type": "carpet", - "attributes": { - "type": "carpet", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "anim": true, - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "anim": true, - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "carpet": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "An identifier for this carpet, so that `scattercarpet` and `contourcarpet` traces can specify a carpet plot on which they lie" - }, - "x": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "A two dimensional array of x coordinates at each carpet point. If omitted, the plot is a cheater plot and the xaxis is hidden by default.", - "role": "data" - }, - "y": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "A two dimensional array of y coordinates at each carpet point.", - "role": "data" - }, - "a": { - "valType": "data_array", - "editType": "calc", - "description": "An array containing values of the first parameter value", - "role": "data" - }, - "a0": { - "valType": "number", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Alternate to `a`. Builds a linear space of a coordinates. Use with `da` where `a0` is the starting coordinate and `da` the step." - }, - "da": { - "valType": "number", - "dflt": 1, - "role": "info", - "editType": "calc", - "description": "Sets the a coordinate step. See `a0` for more info." - }, - "b": { - "valType": "data_array", - "editType": "calc", - "description": "A two dimensional array of y coordinates at each carpet point.", - "role": "data" - }, - "b0": { - "valType": "number", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Alternate to `b`. Builds a linear space of a coordinates. Use with `db` where `b0` is the starting coordinate and `db` the step." - }, - "db": { - "valType": "number", - "dflt": 1, - "role": "info", - "editType": "calc", - "description": "Sets the b coordinate step. See `b0` for more info." - }, - "cheaterslope": { - "valType": "number", - "role": "info", - "dflt": 1, - "editType": "calc", - "description": "The shift applied to each successive row of data in creating a cheater plot. Only used if `x` is been omitted." - }, - "aaxis": { - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." - }, - "smoothing": { - "valType": "number", - "dflt": 1, - "min": 0, - "max": 1.3, - "role": "info", - "editType": "calc" - }, - "title": { - "text": { - "valType": "string", - "dflt": "", - "role": "info", - "editType": "calc", - "description": "Sets the title of this axis. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "editType": "calc", - "description": "Sets this axis' title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "role": "object" - }, - "offset": { - "valType": "number", - "role": "info", - "dflt": 10, - "editType": "calc", - "description": "An additional amount by which to offset the title from the tick labels, given in pixels. Note that this used to be set by the now deprecated `titleoffset` attribute." - }, - "editType": "calc", - "role": "object" - }, - "type": { - "valType": "enumerated", - "values": [ - "-", - "linear", - "date", - "category" - ], - "dflt": "-", - "role": "info", - "editType": "calc", - "description": "Sets the axis type. By default, plotly attempts to determined the axis type by looking into the data of the traces that referenced the axis in question." - }, - "autotypenumbers": { - "valType": "enumerated", - "values": [ - "convert types", - "strict" - ], - "dflt": "convert types", - "role": "info", - "editType": "calc", - "description": "Using *strict* a numeric string in trace data is not converted to a number. Using *convert types* a numeric string in trace data may be treated as a number during automatic axis `type` detection. Defaults to layout.autotypenumbers." - }, - "autorange": { - "valType": "enumerated", - "values": [ - true, - false, - "reversed" - ], - "dflt": true, - "role": "style", - "editType": "calc", - "description": "Determines whether or not the range of this axis is computed in relation to the input data. See `rangemode` for more info. If `range` is provided, then `autorange` is set to *false*." - }, - "rangemode": { - "valType": "enumerated", - "values": [ - "normal", - "tozero", - "nonnegative" - ], - "dflt": "normal", - "role": "style", - "editType": "calc", - "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data." - }, - "range": { - "valType": "info_array", - "role": "info", - "editType": "calc", - "items": [ - { - "valType": "any", - "editType": "calc" - }, - { - "valType": "any", - "editType": "calc" - } - ], - "description": "Sets the range of this axis. If the axis `type` is *log*, then you must take the log of your desired range (e.g. to set the range from 1 to 100, set the range from 0 to 2). If the axis `type` is *date*, it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is *category*, it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "fixedrange": { - "valType": "boolean", - "dflt": false, - "role": "info", - "editType": "calc", - "description": "Determines whether or not this axis is zoom-able. If true, then zoom is disabled." - }, - "cheatertype": { - "valType": "enumerated", - "values": [ - "index", - "value" - ], - "dflt": "value", - "role": "info", - "editType": "calc" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "linear", - "array" - ], - "dflt": "array", - "role": "info", - "editType": "calc" - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tickvals": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "showticklabels": { - "valType": "enumerated", - "values": [ - "start", - "end", - "both", - "none" - ], - "dflt": "start", - "role": "style", - "editType": "calc", - "description": "Determines whether axis labels are drawn on the low side, the high side, both, or neither side of the axis." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "editType": "calc", - "description": "Sets the tick font.", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "calc", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "calc", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "calc", - "description": "Hide SI prefix for 10^n if |n| is below this number" - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "calc", - "description": "If \"true\", even 4-digit integers are separated" - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "calc" - }, - { - "valType": "any", - "editType": "calc" - } - ], - "editType": "calc", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "calc", - "name": { - "valType": "string", - "role": "style", - "editType": "calc", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "categoryorder": { - "valType": "enumerated", - "values": [ - "trace", - "category ascending", - "category descending", - "array" - ], - "dflt": "trace", - "role": "info", - "editType": "calc", - "description": "Specifies the ordering logic for the case of categorical variables. By default, plotly uses *trace*, which specifies the order that is present in the data supplied. Set `categoryorder` to *category ascending* or *category descending* if order should be determined by the alphanumerical order of the category names. Set `categoryorder` to *array* to derive the ordering from the attribute `categoryarray`. If a category is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to the *trace* mode. The unspecified categories will follow the categories in `categoryarray`." - }, - "categoryarray": { - "valType": "data_array", - "role": "data", - "editType": "calc", - "description": "Sets the order in which categories on this axis appear. Only has an effect if `categoryorder` is set to *array*. Used with `categoryorder`." - }, - "labelpadding": { - "valType": "integer", - "role": "style", - "dflt": 10, - "editType": "calc", - "description": "Extra padding between label and the axis" - }, - "labelprefix": { - "valType": "string", - "role": "style", - "editType": "calc", - "description": "Sets a axis label prefix." - }, - "labelsuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a axis label suffix." - }, - "showline": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "calc", - "description": "Determines whether or not a line bounding this axis is drawn." - }, - "linecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the axis line color." - }, - "linewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the axis line." - }, - "gridcolor": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the axis line color." - }, - "gridwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the axis line." - }, - "showgrid": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not grid lines are drawn. If *true*, the grid lines are drawn at every tick mark." - }, - "minorgridcount": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Sets the number of minor grid ticks per major grid tick" - }, - "minorgridwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the grid lines." - }, - "minorgridcolor": { - "valType": "color", - "dflt": "#eee", - "role": "style", - "editType": "calc", - "description": "Sets the color of the grid lines." - }, - "startline": { - "valType": "boolean", - "role": "style", - "editType": "calc", - "description": "Determines whether or not a line is drawn at along the starting value of this axis. If *true*, the start line is drawn on top of the grid lines." - }, - "startlinecolor": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the line color of the start line." - }, - "startlinewidth": { - "valType": "number", - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the start line." - }, - "endline": { - "valType": "boolean", - "role": "style", - "editType": "calc", - "description": "Determines whether or not a line is drawn at along the final value of this axis. If *true*, the end line is drawn on top of the grid lines." - }, - "endlinewidth": { - "valType": "number", - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the end line." - }, - "endlinecolor": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the line color of the end line." - }, - "tick0": { - "valType": "number", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "The starting index of grid lines along the axis" - }, - "dtick": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "info", - "editType": "calc", - "description": "The stride between grid lines along the axis" - }, - "arraytick0": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "The starting index of grid lines along the axis" - }, - "arraydtick": { - "valType": "integer", - "min": 1, - "dflt": 1, - "role": "info", - "editType": "calc", - "description": "The stride between grid lines along the axis" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Deprecated in favor of `title.text`. Note that value of `title` is no longer a simple *string* but a set of sub-attributes." - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "editType": "calc", - "description": "Deprecated in favor of `title.font`." - }, - "titleoffset": { - "valType": "number", - "role": "info", - "dflt": 10, - "editType": "calc", - "description": "Deprecated in favor of `title.offset`." - } - }, - "editType": "calc", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - }, - "categoryarraysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for categoryarray .", - "editType": "none" - } - }, - "baxis": { - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." - }, - "smoothing": { - "valType": "number", - "dflt": 1, - "min": 0, - "max": 1.3, - "role": "info", - "editType": "calc" - }, - "title": { - "text": { - "valType": "string", - "dflt": "", - "role": "info", - "editType": "calc", - "description": "Sets the title of this axis. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "editType": "calc", - "description": "Sets this axis' title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "role": "object" - }, - "offset": { - "valType": "number", - "role": "info", - "dflt": 10, - "editType": "calc", - "description": "An additional amount by which to offset the title from the tick labels, given in pixels. Note that this used to be set by the now deprecated `titleoffset` attribute." - }, - "editType": "calc", - "role": "object" - }, - "type": { - "valType": "enumerated", - "values": [ - "-", - "linear", - "date", - "category" - ], - "dflt": "-", - "role": "info", - "editType": "calc", - "description": "Sets the axis type. By default, plotly attempts to determined the axis type by looking into the data of the traces that referenced the axis in question." - }, - "autotypenumbers": { - "valType": "enumerated", - "values": [ - "convert types", - "strict" - ], - "dflt": "convert types", - "role": "info", - "editType": "calc", - "description": "Using *strict* a numeric string in trace data is not converted to a number. Using *convert types* a numeric string in trace data may be treated as a number during automatic axis `type` detection. Defaults to layout.autotypenumbers." - }, - "autorange": { - "valType": "enumerated", - "values": [ - true, - false, - "reversed" - ], - "dflt": true, - "role": "style", - "editType": "calc", - "description": "Determines whether or not the range of this axis is computed in relation to the input data. See `rangemode` for more info. If `range` is provided, then `autorange` is set to *false*." - }, - "rangemode": { - "valType": "enumerated", - "values": [ - "normal", - "tozero", - "nonnegative" - ], - "dflt": "normal", - "role": "style", - "editType": "calc", - "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data." - }, - "range": { - "valType": "info_array", - "role": "info", - "editType": "calc", - "items": [ - { - "valType": "any", - "editType": "calc" - }, - { - "valType": "any", - "editType": "calc" - } - ], - "description": "Sets the range of this axis. If the axis `type` is *log*, then you must take the log of your desired range (e.g. to set the range from 1 to 100, set the range from 0 to 2). If the axis `type` is *date*, it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is *category*, it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "fixedrange": { - "valType": "boolean", - "dflt": false, - "role": "info", - "editType": "calc", - "description": "Determines whether or not this axis is zoom-able. If true, then zoom is disabled." - }, - "cheatertype": { - "valType": "enumerated", - "values": [ - "index", - "value" - ], - "dflt": "value", - "role": "info", - "editType": "calc" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "linear", - "array" - ], - "dflt": "array", - "role": "info", - "editType": "calc" - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tickvals": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "showticklabels": { - "valType": "enumerated", - "values": [ - "start", - "end", - "both", - "none" - ], - "dflt": "start", - "role": "style", - "editType": "calc", - "description": "Determines whether axis labels are drawn on the low side, the high side, both, or neither side of the axis." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "editType": "calc", - "description": "Sets the tick font.", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "calc", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "calc", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "calc", - "description": "Hide SI prefix for 10^n if |n| is below this number" - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "calc", - "description": "If \"true\", even 4-digit integers are separated" - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "calc" - }, - { - "valType": "any", - "editType": "calc" - } - ], - "editType": "calc", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "calc", - "name": { - "valType": "string", - "role": "style", - "editType": "calc", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "categoryorder": { - "valType": "enumerated", - "values": [ - "trace", - "category ascending", - "category descending", - "array" - ], - "dflt": "trace", - "role": "info", - "editType": "calc", - "description": "Specifies the ordering logic for the case of categorical variables. By default, plotly uses *trace*, which specifies the order that is present in the data supplied. Set `categoryorder` to *category ascending* or *category descending* if order should be determined by the alphanumerical order of the category names. Set `categoryorder` to *array* to derive the ordering from the attribute `categoryarray`. If a category is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to the *trace* mode. The unspecified categories will follow the categories in `categoryarray`." - }, - "categoryarray": { - "valType": "data_array", - "role": "data", - "editType": "calc", - "description": "Sets the order in which categories on this axis appear. Only has an effect if `categoryorder` is set to *array*. Used with `categoryorder`." - }, - "labelpadding": { - "valType": "integer", - "role": "style", - "dflt": 10, - "editType": "calc", - "description": "Extra padding between label and the axis" - }, - "labelprefix": { - "valType": "string", - "role": "style", - "editType": "calc", - "description": "Sets a axis label prefix." - }, - "labelsuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a axis label suffix." - }, - "showline": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "calc", - "description": "Determines whether or not a line bounding this axis is drawn." - }, - "linecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the axis line color." - }, - "linewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the axis line." - }, - "gridcolor": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the axis line color." - }, - "gridwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the axis line." - }, - "showgrid": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not grid lines are drawn. If *true*, the grid lines are drawn at every tick mark." - }, - "minorgridcount": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Sets the number of minor grid ticks per major grid tick" - }, - "minorgridwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the grid lines." - }, - "minorgridcolor": { - "valType": "color", - "dflt": "#eee", - "role": "style", - "editType": "calc", - "description": "Sets the color of the grid lines." - }, - "startline": { - "valType": "boolean", - "role": "style", - "editType": "calc", - "description": "Determines whether or not a line is drawn at along the starting value of this axis. If *true*, the start line is drawn on top of the grid lines." - }, - "startlinecolor": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the line color of the start line." - }, - "startlinewidth": { - "valType": "number", - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the start line." - }, - "endline": { - "valType": "boolean", - "role": "style", - "editType": "calc", - "description": "Determines whether or not a line is drawn at along the final value of this axis. If *true*, the end line is drawn on top of the grid lines." - }, - "endlinewidth": { - "valType": "number", - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the end line." - }, - "endlinecolor": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the line color of the end line." - }, - "tick0": { - "valType": "number", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "The starting index of grid lines along the axis" - }, - "dtick": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "info", - "editType": "calc", - "description": "The stride between grid lines along the axis" - }, - "arraytick0": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "The starting index of grid lines along the axis" - }, - "arraydtick": { - "valType": "integer", - "min": 1, - "dflt": 1, - "role": "info", - "editType": "calc", - "description": "The stride between grid lines along the axis" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Deprecated in favor of `title.text`. Note that value of `title` is no longer a simple *string* but a set of sub-attributes." - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "editType": "calc", - "description": "Deprecated in favor of `title.font`." - }, - "titleoffset": { - "valType": "number", - "role": "info", - "dflt": 10, - "editType": "calc", - "description": "Deprecated in favor of `title.offset`." - } - }, - "editType": "calc", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - }, - "categoryarraysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for categoryarray .", - "editType": "none" - } - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "dflt": "\"Open Sans\", verdana, arial, sans-serif" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc", - "dflt": 12 - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "dflt": "#444" - }, - "editType": "calc", - "description": "The default font used for axis & tick labels on this carpet", - "role": "object" - }, - "color": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." - }, - "xaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." - }, - "yaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "ysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for y .", - "editType": "none" - }, - "asrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for a .", - "editType": "none" - }, - "bsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for b .", - "editType": "none" - } - } + "dash": { + "valType": "data_array", + "description": "Sets the length of dashes and gaps (mapbox.layer.paint.line-dasharray). Has an effect only when `type` is set to *line*.", + "editType": "plot" }, - "scattercarpet": { - "meta": { - "hrName": "scatter_carpet", - "description": "Plots a scatter trace on either the first carpet axis or the carpet axis with a matching `carpet` attribute." - }, - "categories": [ - "svg", - "carpet", - "symbols", - "showLegend", - "carpetDependent", - "zoomScale" - ], - "animatable": false, - "type": "scattercarpet", - "attributes": { - "type": "scattercarpet", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "selectedpoints": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "carpet": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "An identifier for this carpet, so that `scattercarpet` and `contourcarpet` traces can specify a carpet plot on which they lie" - }, - "a": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the a-axis coordinates.", - "role": "data" - }, - "b": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the b-axis coordinates.", - "role": "data" - }, - "mode": { - "valType": "flaglist", - "flags": [ - "lines", - "markers", - "text" - ], - "extras": [ - "none" - ], - "role": "info", - "editType": "calc", - "description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover. If there are less than 20 points and the trace is not stacked then the default is *lines+markers*. Otherwise, *lines*.", - "dflt": "markers" - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets text elements associated with each (a,b) point. If a single string, the same string appears over all the data points. If an array of strings, the items are mapped in order to the the data points in (a,b). If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." - }, - "texttemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "plot", - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `a`, `b` and `text`.", - "arrayOk": true - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "style", - "description": "Sets hover text elements associated with each (a,b) point. If a single string, the same string appears over all the data points. If an array of strings, the items are mapped in order to the the data points in (a,b). To be seen, trace `hoverinfo` must contain a *text* flag." - }, - "line": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the line color." - }, - "width": { - "valType": "number", - "min": 0, - "dflt": 2, - "role": "style", - "editType": "style", - "description": "Sets the line width (in px)." - }, - "dash": { - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ], - "dflt": "solid", - "role": "style", - "editType": "style", - "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." - }, - "shape": { - "valType": "enumerated", - "values": [ - "linear", - "spline" - ], - "dflt": "linear", - "role": "style", - "editType": "plot", - "description": "Determines the line shape. With *spline* the lines are drawn using spline interpolation. The other available values correspond to step-wise line shapes." - }, - "smoothing": { - "valType": "number", - "min": 0, - "max": 1.3, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Has an effect only if `shape` is set to *spline* Sets the amount of smoothing. *0* corresponds to no smoothing (equivalent to a *linear* shape)." - }, - "editType": "calc", - "role": "object" - }, - "connectgaps": { - "valType": "boolean", - "dflt": false, - "role": "info", - "editType": "calc", - "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected." - }, - "fill": { - "valType": "enumerated", - "values": [ - "none", - "toself", - "tonext" - ], - "role": "style", - "editType": "calc", - "description": "Sets the area to fill with a solid color. Use with `fillcolor` if not *none*. scatterternary has a subset of the options available to scatter. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape. *tonext* fills the space between two traces if one completely encloses the other (eg consecutive contour lines), and behaves like *toself* if there is no trace before it. *tonext* should not be used if one trace does not enclose the other.", - "dflt": "none" - }, - "fillcolor": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." - }, - "marker": { - "symbol": { - "valType": "enumerated", - "values": [ - 0, - "0", - "circle", - 100, - "100", - "circle-open", - 200, - "200", - "circle-dot", - 300, - "300", - "circle-open-dot", - 1, - "1", - "square", - 101, - "101", - "square-open", - 201, - "201", - "square-dot", - 301, - "301", - "square-open-dot", - 2, - "2", - "diamond", - 102, - "102", - "diamond-open", - 202, - "202", - "diamond-dot", - 302, - "302", - "diamond-open-dot", - 3, - "3", - "cross", - 103, - "103", - "cross-open", - 203, - "203", - "cross-dot", - 303, - "303", - "cross-open-dot", - 4, - "4", - "x", - 104, - "104", - "x-open", - 204, - "204", - "x-dot", - 304, - "304", - "x-open-dot", - 5, - "5", - "triangle-up", - 105, - "105", - "triangle-up-open", - 205, - "205", - "triangle-up-dot", - 305, - "305", - "triangle-up-open-dot", - 6, - "6", - "triangle-down", - 106, - "106", - "triangle-down-open", - 206, - "206", - "triangle-down-dot", - 306, - "306", - "triangle-down-open-dot", - 7, - "7", - "triangle-left", - 107, - "107", - "triangle-left-open", - 207, - "207", - "triangle-left-dot", - 307, - "307", - "triangle-left-open-dot", - 8, - "8", - "triangle-right", - 108, - "108", - "triangle-right-open", - 208, - "208", - "triangle-right-dot", - 308, - "308", - "triangle-right-open-dot", - 9, - "9", - "triangle-ne", - 109, - "109", - "triangle-ne-open", - 209, - "209", - "triangle-ne-dot", - 309, - "309", - "triangle-ne-open-dot", - 10, - "10", - "triangle-se", - 110, - "110", - "triangle-se-open", - 210, - "210", - "triangle-se-dot", - 310, - "310", - "triangle-se-open-dot", - 11, - "11", - "triangle-sw", - 111, - "111", - "triangle-sw-open", - 211, - "211", - "triangle-sw-dot", - 311, - "311", - "triangle-sw-open-dot", - 12, - "12", - "triangle-nw", - 112, - "112", - "triangle-nw-open", - 212, - "212", - "triangle-nw-dot", - 312, - "312", - "triangle-nw-open-dot", - 13, - "13", - "pentagon", - 113, - "113", - "pentagon-open", - 213, - "213", - "pentagon-dot", - 313, - "313", - "pentagon-open-dot", - 14, - "14", - "hexagon", - 114, - "114", - "hexagon-open", - 214, - "214", - "hexagon-dot", - 314, - "314", - "hexagon-open-dot", - 15, - "15", - "hexagon2", - 115, - "115", - "hexagon2-open", - 215, - "215", - "hexagon2-dot", - 315, - "315", - "hexagon2-open-dot", - 16, - "16", - "octagon", - 116, - "116", - "octagon-open", - 216, - "216", - "octagon-dot", - 316, - "316", - "octagon-open-dot", - 17, - "17", - "star", - 117, - "117", - "star-open", - 217, - "217", - "star-dot", - 317, - "317", - "star-open-dot", - 18, - "18", - "hexagram", - 118, - "118", - "hexagram-open", - 218, - "218", - "hexagram-dot", - 318, - "318", - "hexagram-open-dot", - 19, - "19", - "star-triangle-up", - 119, - "119", - "star-triangle-up-open", - 219, - "219", - "star-triangle-up-dot", - 319, - "319", - "star-triangle-up-open-dot", - 20, - "20", - "star-triangle-down", - 120, - "120", - "star-triangle-down-open", - 220, - "220", - "star-triangle-down-dot", - 320, - "320", - "star-triangle-down-open-dot", - 21, - "21", - "star-square", - 121, - "121", - "star-square-open", - 221, - "221", - "star-square-dot", - 321, - "321", - "star-square-open-dot", - 22, - "22", - "star-diamond", - 122, - "122", - "star-diamond-open", - 222, - "222", - "star-diamond-dot", - 322, - "322", - "star-diamond-open-dot", - 23, - "23", - "diamond-tall", - 123, - "123", - "diamond-tall-open", - 223, - "223", - "diamond-tall-dot", - 323, - "323", - "diamond-tall-open-dot", - 24, - "24", - "diamond-wide", - 124, - "124", - "diamond-wide-open", - 224, - "224", - "diamond-wide-dot", - 324, - "324", - "diamond-wide-open-dot", - 25, - "25", - "hourglass", - 125, - "125", - "hourglass-open", - 26, - "26", - "bowtie", - 126, - "126", - "bowtie-open", - 27, - "27", - "circle-cross", - 127, - "127", - "circle-cross-open", - 28, - "28", - "circle-x", - 128, - "128", - "circle-x-open", - 29, - "29", - "square-cross", - 129, - "129", - "square-cross-open", - 30, - "30", - "square-x", - 130, - "130", - "square-x-open", - 31, - "31", - "diamond-cross", - 131, - "131", - "diamond-cross-open", - 32, - "32", - "diamond-x", - 132, - "132", - "diamond-x-open", - 33, - "33", - "cross-thin", - 133, - "133", - "cross-thin-open", - 34, - "34", - "x-thin", - 134, - "134", - "x-thin-open", - 35, - "35", - "asterisk", - 135, - "135", - "asterisk-open", - 36, - "36", - "hash", - 136, - "136", - "hash-open", - 236, - "236", - "hash-dot", - 336, - "336", - "hash-open-dot", - 37, - "37", - "y-up", - 137, - "137", - "y-up-open", - 38, - "38", - "y-down", - 138, - "138", - "y-down-open", - 39, - "39", - "y-left", - 139, - "139", - "y-left-open", - 40, - "40", - "y-right", - 140, - "140", - "y-right-open", - 41, - "41", - "line-ew", - 141, - "141", - "line-ew-open", - 42, - "42", - "line-ns", - 142, - "142", - "line-ns-open", - 43, - "43", - "line-ne", - 143, - "143", - "line-ne-open", - 44, - "44", - "line-nw", - 144, - "144", - "line-nw-open", - 45, - "45", - "arrow-up", - 145, - "145", - "arrow-up-open", - 46, - "46", - "arrow-down", - 146, - "146", - "arrow-down-open", - 47, - "47", - "arrow-left", - 147, - "147", - "arrow-left-open", - 48, - "48", - "arrow-right", - 148, - "148", - "arrow-right-open", - 49, - "49", - "arrow-bar-up", - 149, - "149", - "arrow-bar-up-open", - 50, - "50", - "arrow-bar-down", - 150, - "150", - "arrow-bar-down-open", - 51, - "51", - "arrow-bar-left", - 151, - "151", - "arrow-bar-left-open", - 52, - "52", - "arrow-bar-right", - 152, - "152", - "arrow-bar-right-open" - ], - "dflt": "circle", - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name." - }, - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity." - }, - "maxdisplayed": { - "valType": "number", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "plot", - "description": "Sets a maximum number of points to be drawn on the graph. *0* corresponds to no limit." - }, - "size": { - "valType": "number", - "min": 0, - "dflt": 6, - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the marker size (in px)." - }, - "sizeref": { - "valType": "number", - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`." - }, - "sizemin": { - "valType": "number", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points." - }, - "sizemode": { - "valType": "enumerated", - "values": [ - "diameter", - "area" - ], - "dflt": "diameter", - "role": "info", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels." - }, - "line": { - "width": { - "valType": "number", - "min": 0, - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets the width (in px) of the lines bounding the marker points." - }, - "editType": "calc", - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "role": "object", - "widthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for width .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "gradient": { - "type": { - "valType": "enumerated", - "values": [ - "radial", - "horizontal", - "vertical", - "none" - ], - "arrayOk": true, - "dflt": "none", - "role": "style", - "editType": "calc", - "description": "Sets the type of gradient used to fill the markers" - }, - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the final color of the gradient fill: the center color for radial, the right for horizontal, or the bottom for vertical." - }, - "editType": "calc", - "role": "object", - "typesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for type .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "editType": "calc", - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "colorbars" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "colorbars" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "colorbars" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "colorbars" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "colorbars" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "colorbars" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "colorbars" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "colorbars" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "colorbars" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "colorbars" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "colorbars", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "colorbars", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "colorbars", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "colorbars" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "colorbars", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "colorbars", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "colorbars", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "colorbars" - }, - { - "valType": "any", - "editType": "colorbars" - } - ], - "editType": "colorbars", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "colorbars", - "name": { - "valType": "string", - "role": "style", - "editType": "colorbars", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "colorbars", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "colorbars", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "colorbars", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "colorbars", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars" - }, - "editType": "colorbars", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "colorbars" - } - }, - "editType": "colorbars", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "role": "object", - "symbolsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for symbol .", - "editType": "none" - }, - "opacitysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for opacity .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "textfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "arrayOk": true - }, - "editType": "calc", - "description": "Sets the text font.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "textposition": { - "valType": "enumerated", - "values": [ - "top left", - "top center", - "top right", - "middle left", - "middle center", - "middle right", - "bottom left", - "bottom center", - "bottom right" - ], - "dflt": "middle center", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates." - }, - "selected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity of selected points." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the marker color of selected points." - }, - "size": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "style", - "description": "Sets the marker size of selected points." - }, - "editType": "style", - "role": "object" - }, - "textfont": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the text font color of selected points." - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "unselected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity of unselected points, applied only when a selection exists." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the marker color of unselected points, applied only when a selection exists." - }, - "size": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "style", - "description": "Sets the marker size of unselected points, applied only when a selection exists." - }, - "editType": "style", - "role": "object" - }, - "textfont": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the text font color of unselected points, applied only when a selection exists." - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "a", - "b", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hoveron": { - "valType": "flaglist", - "flags": [ - "points", - "fills" - ], - "role": "info", - "editType": "style", - "description": "Do the hover effects highlight individual points (markers or line points) or do they highlight filled regions? If the fill is *toself* or *tonext* and there are no markers or text, then the default is *fills*, otherwise it is *points*." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "xaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." - }, - "yaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "asrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for a .", - "editType": "none" - }, - "bsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for b .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "texttemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "textpositionsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for textposition .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - } - } + "editType": "plot", + "role": "object", + "dashsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for dash .", + "editType": "none" + } + }, + "fill": { + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "description": "Sets the fill outline color (mapbox.layer.paint.fill-outline-color). Has an effect only when `type` is set to *fill*.", + "editType": "plot" }, - "contourcarpet": { - "meta": { - "hrName": "contour_carpet", - "description": "Plots contours on either the first carpet axis or the carpet axis with a matching `carpet` attribute. Data `z` is interpreted as matching that of the corresponding carpet axis." - }, - "categories": [ - "cartesian", - "svg", - "carpet", - "contour", - "symbols", - "showLegend", - "hasLines", - "carpetDependent", - "noHover", - "noSortingByValue" - ], - "animatable": false, - "type": "contourcarpet", - "attributes": { - "type": "contourcarpet", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "carpet": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "The `carpet` of the carpet axes on which this contour trace lies" - }, - "z": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the z data.", - "role": "data" - }, - "a": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the x coordinates.", - "impliedEdits": { - "xtype": "array" - }, - "role": "data" - }, - "a0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Alternate to `x`. Builds a linear space of x coordinates. Use with `dx` where `x0` is the starting coordinate and `dx` the step.", - "impliedEdits": { - "xtype": "scaled" - } - }, - "da": { - "valType": "number", - "dflt": 1, - "role": "info", - "editType": "calc", - "description": "Sets the x coordinate step. See `x0` for more info.", - "impliedEdits": { - "xtype": "scaled" - } - }, - "b": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the y coordinates.", - "impliedEdits": { - "ytype": "array" - }, - "role": "data" - }, - "b0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Alternate to `y`. Builds a linear space of y coordinates. Use with `dy` where `y0` is the starting coordinate and `dy` the step.", - "impliedEdits": { - "ytype": "scaled" - } - }, - "db": { - "valType": "number", - "dflt": 1, - "role": "info", - "editType": "calc", - "description": "Sets the y coordinate step. See `y0` for more info.", - "impliedEdits": { - "ytype": "scaled" - } - }, - "text": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the text elements associated with each z value.", - "role": "data" - }, - "hovertext": { - "valType": "data_array", - "editType": "calc", - "description": "Same as `text`.", - "role": "data" - }, - "transpose": { - "valType": "boolean", - "dflt": false, - "role": "info", - "editType": "calc", - "description": "Transposes the z data." - }, - "atype": { - "valType": "enumerated", - "values": [ - "array", - "scaled" - ], - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "If *array*, the heatmap's x coordinates are given by *x* (the default behavior when `x` is provided). If *scaled*, the heatmap's x coordinates are given by *x0* and *dx* (the default behavior when `x` is not provided)." - }, - "btype": { - "valType": "enumerated", - "values": [ - "array", - "scaled" - ], - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "If *array*, the heatmap's y coordinates are given by *y* (the default behavior when `y` is provided) If *scaled*, the heatmap's y coordinates are given by *y0* and *dy* (the default behavior when `y` is not provided)" - }, - "fillcolor": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the fill color if `contours.type` is *constraint*. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." - }, - "autocontour": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the contour level attributes are picked by an algorithm. If *true*, the number of contour levels can be set in `ncontours`. If *false*, set the contour level attributes in `contours`." - }, - "ncontours": { - "valType": "integer", - "dflt": 15, - "min": 1, - "role": "style", - "editType": "calc", - "description": "Sets the maximum number of contour levels. The actual number of contours will be chosen automatically to be less than or equal to the value of `ncontours`. Has an effect only if `autocontour` is *true* or if `contours.size` is missing." - }, - "contours": { - "type": { - "valType": "enumerated", - "values": [ - "levels", - "constraint" - ], - "dflt": "levels", - "role": "info", - "editType": "calc", - "description": "If `levels`, the data is represented as a contour plot with multiple levels displayed. If `constraint`, the data is represented as constraints with the invalid region shaded as specified by the `operation` and `value` parameters." - }, - "start": { - "valType": "number", - "dflt": null, - "role": "style", - "editType": "plot", - "impliedEdits": { - "^autocontour": false - }, - "description": "Sets the starting contour level value. Must be less than `contours.end`" - }, - "end": { - "valType": "number", - "dflt": null, - "role": "style", - "editType": "plot", - "impliedEdits": { - "^autocontour": false - }, - "description": "Sets the end contour level value. Must be more than `contours.start`" - }, - "size": { - "valType": "number", - "dflt": null, - "min": 0, - "role": "style", - "editType": "plot", - "impliedEdits": { - "^autocontour": false - }, - "description": "Sets the step between each contour level. Must be positive." - }, - "coloring": { - "valType": "enumerated", - "values": [ - "fill", - "lines", - "none" - ], - "dflt": "fill", - "role": "style", - "editType": "calc", - "description": "Determines the coloring method showing the contour values. If *fill*, coloring is done evenly between each contour level If *lines*, coloring is done on the contour lines. If *none*, no coloring is applied on this trace." - }, - "showlines": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "plot", - "description": "Determines whether or not the contour lines are drawn. Has an effect only if `contours.coloring` is set to *fill*." - }, - "showlabels": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "plot", - "description": "Determines whether to label the contour lines with their values." - }, - "labelfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style" - }, - "editType": "plot", - "description": "Sets the font used for labeling the contour levels. The default color comes from the lines, if shown. The default family and size come from `layout.font`.", - "role": "object" - }, - "labelformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets the contour label formatting rule using d3 formatting mini-language which is very similar to Python, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format" - }, - "operation": { - "valType": "enumerated", - "values": [ - "=", - "<", - ">=", - ">", - "<=", - "[]", - "()", - "[)", - "(]", - "][", - ")(", - "](", - ")[" - ], - "role": "info", - "dflt": "=", - "editType": "calc", - "description": "Sets the constraint operation. *=* keeps regions equal to `value` *<* and *<=* keep regions less than `value` *>* and *>=* keep regions greater than `value` *[]*, *()*, *[)*, and *(]* keep regions inside `value[0]` to `value[1]` *][*, *)(*, *](*, *)[* keep regions outside `value[0]` to value[1]` Open vs. closed intervals make no difference to constraint display, but all versions are allowed for consistency with filter transforms." - }, - "value": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Sets the value or values of the constraint boundary. When `operation` is set to one of the comparison values (=,<,>=,>,<=) *value* is expected to be a number. When `operation` is set to one of the interval values ([],(),[),(],][,)(,](,)[) *value* is expected to be an array of two numbers where the first is the lower bound and the second is the upper bound." - }, - "editType": "calc", - "impliedEdits": { - "autocontour": false, - "role": "object" - }, - "role": "object" - }, - "line": { - "color": { - "valType": "color", - "role": "style", - "editType": "style+colorbars", - "description": "Sets the color of the contour level. Has no effect if `contours.coloring` is set to *lines*." - }, - "width": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "style+colorbars", - "description": "Sets the contour line width in (in px) Defaults to *0.5* when `contours.type` is *levels*. Defaults to *2* when `contour.type` is *constraint*." - }, - "dash": { - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ], - "dflt": "solid", - "role": "style", - "editType": "style", - "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." - }, - "smoothing": { - "valType": "number", - "min": 0, - "max": 1.3, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the amount of smoothing for the contour lines, where *0* corresponds to no smoothing." - }, - "editType": "plot", - "role": "object" - }, - "zauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `z`) or the bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user." - }, - "zmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "zauto": false - }, - "description": "Sets the lower bound of the color domain. Value should have the same units as in `z` and if set, `zmax` must be set as well." - }, - "zmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "zauto": false - }, - "description": "Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must be set as well." - }, - "zmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `zmin` and/or `zmax` to be equidistant to this point. Value should have the same units as in `z`. Has no effect when `zauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`zmin` and `zmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. If true, `zmin` will correspond to the last color in the array and `zmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "colorbars" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "colorbars" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "colorbars" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "colorbars" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "colorbars" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "colorbars" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "colorbars" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "colorbars" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "colorbars" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "colorbars" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "colorbars", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "colorbars", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "colorbars", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "colorbars" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "colorbars", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "colorbars", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "colorbars", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "colorbars" - }, - { - "valType": "any", - "editType": "colorbars" - } - ], - "editType": "colorbars", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "colorbars", - "name": { - "valType": "string", - "role": "style", - "editType": "colorbars", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "colorbars", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "colorbars", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "colorbars", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "colorbars", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars" - }, - "editType": "colorbars", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "colorbars" - } - }, - "editType": "colorbars", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "xaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." - }, - "yaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "zsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for z .", - "editType": "none" - }, - "asrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for a .", - "editType": "none" - }, - "bsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for b .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - } - } + "editType": "plot", + "role": "object" + }, + "symbol": { + "icon": { + "valType": "string", + "dflt": "marker", + "description": "Sets the symbol icon image (mapbox.layer.layout.icon-image). Full list: https://www.mapbox.com/maki-icons/", + "editType": "plot" }, - "ohlc": { - "meta": { - "description": "The ohlc (short for Open-High-Low-Close) is a style of financial chart describing open, high, low and close for a given `x` coordinate (most likely time). The tip of the lines represent the `low` and `high` values and the horizontal segments represent the `open` and `close` values. Sample points where the close value is higher (lower) then the open value are called increasing (decreasing). By default, increasing items are drawn in green whereas decreasing are drawn in red." - }, - "categories": [ - "cartesian", - "svg", - "showLegend" - ], - "animatable": false, - "type": "ohlc", - "attributes": { - "type": "ohlc", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "selectedpoints": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "xperiod": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." - }, - "xperiod0": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." - }, - "xperiodalignment": { - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ], - "dflt": "middle", - "role": "style", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis." - }, - "x": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the x coordinates. If absent, linear coordinate will be generated.", - "role": "data" - }, - "open": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the open values.", - "role": "data" - }, - "high": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the high values.", - "role": "data" - }, - "low": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the low values.", - "role": "data" - }, - "close": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the close values.", - "role": "data" - }, - "line": { - "width": { - "valType": "number", - "min": 0, - "dflt": 2, - "role": "style", - "editType": "style", - "description": "[object Object] Note that this style setting can also be set per direction via `increasing.line.width` and `decreasing.line.width`." - }, - "dash": { - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ], - "dflt": "solid", - "role": "style", - "editType": "style", - "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*). Note that this style setting can also be set per direction via `increasing.line.dash` and `decreasing.line.dash`." - }, - "editType": "style", - "role": "object" - }, - "increasing": { - "line": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the line color.", - "dflt": "#3D9970" - }, - "width": { - "valType": "number", - "min": 0, - "dflt": 2, - "role": "style", - "editType": "style", - "description": "Sets the line width (in px)." - }, - "dash": { - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ], - "dflt": "solid", - "role": "style", - "editType": "style", - "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "decreasing": { - "line": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the line color.", - "dflt": "#FF4136" - }, - "width": { - "valType": "number", - "min": 0, - "dflt": 2, - "role": "style", - "editType": "style", - "description": "Sets the line width (in px)." - }, - "dash": { - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ], - "dflt": "solid", - "role": "style", - "editType": "style", - "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets hover text elements associated with each sample point. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to this trace's sample points." - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Same as `text`." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "max": 0.5, - "dflt": 0.3, - "role": "style", - "editType": "calc", - "description": "Sets the width of the open/close tick marks relative to the *x* minimal interval." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "split": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "style", - "description": "Show hover information (open, close, high, low) in separate labels." - }, - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "xcalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `x` date data." - }, - "xaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." - }, - "yaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "opensrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for open .", - "editType": "none" - }, - "highsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for high .", - "editType": "none" - }, - "lowsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for low .", - "editType": "none" - }, - "closesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for close .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - } - } + "iconsize": { + "valType": "number", + "dflt": 10, + "description": "Sets the symbol icon size (mapbox.layer.layout.icon-size). Has an effect only when `type` is set to *symbol*.", + "editType": "plot" }, - "candlestick": { - "meta": { - "description": "The candlestick is a style of financial chart describing open, high, low and close for a given `x` coordinate (most likely time). The boxes represent the spread between the `open` and `close` values and the lines represent the spread between the `low` and `high` values Sample points where the close value is higher (lower) then the open value are called increasing (decreasing). By default, increasing candles are drawn in green whereas decreasing are drawn in red." - }, - "categories": [ - "cartesian", - "svg", - "showLegend", - "candlestick", - "boxLayout" - ], - "animatable": false, - "type": "candlestick", - "attributes": { - "type": "candlestick", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "selectedpoints": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "xperiod": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the period positioning in milliseconds or *M* on the x axis. Special values in the form of *M* could be used to declare the number of months. In this case `n` must be a positive integer." - }, - "xperiod0": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the base for period positioning in milliseconds or date string on the x0 axis. When `x0period` is round number of weeks, the `x0period0` by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01." - }, - "xperiodalignment": { - "valType": "enumerated", - "values": [ - "start", - "middle", - "end" - ], - "dflt": "middle", - "role": "style", - "editType": "calc", - "description": "Only relevant when the axis `type` is *date*. Sets the alignment of data points on the x axis." - }, - "x": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the x coordinates. If absent, linear coordinate will be generated.", - "role": "data" - }, - "open": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the open values.", - "role": "data" - }, - "high": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the high values.", - "role": "data" - }, - "low": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the low values.", - "role": "data" - }, - "close": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the close values.", - "role": "data" - }, - "line": { - "width": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 2, - "editType": "style", - "description": "Sets the width (in px) of line bounding the box(es). Note that this style setting can also be set per direction via `increasing.line.width` and `decreasing.line.width`." - }, - "editType": "style", - "role": "object" - }, - "increasing": { - "line": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the color of line bounding the box(es).", - "dflt": "#3D9970" - }, - "width": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 2, - "editType": "style", - "description": "Sets the width (in px) of line bounding the box(es)." - }, - "editType": "style", - "role": "object" - }, - "fillcolor": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." - }, - "editType": "style", - "role": "object" - }, - "decreasing": { - "line": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the color of line bounding the box(es).", - "dflt": "#FF4136" - }, - "width": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 2, - "editType": "style", - "description": "Sets the width (in px) of line bounding the box(es)." - }, - "editType": "style", - "role": "object" - }, - "fillcolor": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." - }, - "editType": "style", - "role": "object" - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets hover text elements associated with each sample point. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to this trace's sample points." - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Same as `text`." - }, - "whiskerwidth": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Sets the width of the whiskers relative to the box' width. For example, with 1, the whiskers are as wide as the box(es)." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "split": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "style", - "description": "Show hover information (open, close, high, low) in separate labels." - }, - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "xcalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use with `x` date data." - }, - "xaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "x", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's x coordinates and a 2D cartesian x axis. If *x* (the default value), the x coordinates refer to `layout.xaxis`. If *x2*, the x coordinates refer to `layout.xaxis2`, and so on." - }, - "yaxis": { - "valType": "subplotid", - "role": "info", - "dflt": "y", - "editType": "calc+clearAxisTypes", - "description": "Sets a reference between this trace's y coordinates and a 2D cartesian y axis. If *y* (the default value), the y coordinates refer to `layout.yaxis`. If *y2*, the y coordinates refer to `layout.yaxis2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "xsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for x .", - "editType": "none" - }, - "opensrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for open .", - "editType": "none" - }, - "highsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for high .", - "editType": "none" - }, - "lowsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for low .", - "editType": "none" - }, - "closesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for close .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - } - }, - "layoutAttributes": { - "boxmode": { - "valType": "enumerated", - "values": [ - "group", - "overlay" - ], - "dflt": "overlay", - "role": "info", - "editType": "calc", - "description": "Determines how boxes at the same location coordinate are displayed on the graph. If *group*, the boxes are plotted next to one another centered around the shared location. If *overlay*, the boxes are plotted over one another, you might need to set *opacity* to see them multiple boxes. Has no effect on traces that have *width* set." - }, - "boxgap": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": 0.3, - "role": "style", - "editType": "calc", - "description": "Sets the gap (in plot fraction) between boxes of adjacent location coordinates. Has no effect on traces that have *width* set." - }, - "boxgroupgap": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": 0.3, - "role": "style", - "editType": "calc", - "description": "Sets the gap (in plot fraction) between boxes of the same location coordinate. Has no effect on traces that have *width* set." - } - } + "text": { + "valType": "string", + "dflt": "", + "description": "Sets the symbol text (mapbox.layer.layout.text-field).", + "editType": "plot" }, - "scatterpolar": { - "meta": { - "hrName": "scatter_polar", - "description": "The scatterpolar trace type encompasses line charts, scatter charts, text charts, and bubble charts in polar coordinates. The data visualized as scatter point or lines is set in `r` (radial) and `theta` (angular) coordinates Text (appearing either on the chart or on hover only) is via `text`. Bubble charts are achieved by setting `marker.size` and/or `marker.color` to numerical arrays." - }, - "categories": [ - "polar", - "symbols", - "showLegend", - "scatter-like" - ], - "animatable": false, - "type": "scatterpolar", - "attributes": { - "type": "scatterpolar", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "selectedpoints": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "mode": { - "valType": "flaglist", - "flags": [ - "lines", - "markers", - "text" - ], - "extras": [ - "none" - ], - "role": "info", - "editType": "calc", - "description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover. If there are less than 20 points and the trace is not stacked then the default is *lines+markers*. Otherwise, *lines*." - }, - "r": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the radial coordinates", - "role": "data" - }, - "theta": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the angular coordinates", - "role": "data" - }, - "r0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Alternate to `r`. Builds a linear space of r coordinates. Use with `dr` where `r0` is the starting coordinate and `dr` the step." - }, - "dr": { - "valType": "number", - "dflt": 1, - "role": "info", - "editType": "calc", - "description": "Sets the r coordinate step." - }, - "theta0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Alternate to `theta`. Builds a linear space of theta coordinates. Use with `dtheta` where `theta0` is the starting coordinate and `dtheta` the step." - }, - "dtheta": { - "valType": "number", - "role": "info", - "editType": "calc", - "description": "Sets the theta coordinate step. By default, the `dtheta` step equals the subplot's period divided by the length of the `r` coordinates." - }, - "thetaunit": { - "valType": "enumerated", - "values": [ - "radians", - "degrees", - "gradians" - ], - "dflt": "degrees", - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Sets the unit of input *theta* values. Has an effect only when on *linear* angular axes." - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." - }, - "texttemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "plot", - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `r`, `theta` and `text`.", - "arrayOk": true - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "style", - "description": "Sets hover text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." - }, - "line": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the line color." - }, - "width": { - "valType": "number", - "min": 0, - "dflt": 2, - "role": "style", - "editType": "style", - "description": "Sets the line width (in px)." - }, - "dash": { - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ], - "dflt": "solid", - "role": "style", - "editType": "style", - "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." - }, - "shape": { - "valType": "enumerated", - "values": [ - "linear", - "spline" - ], - "dflt": "linear", - "role": "style", - "editType": "plot", - "description": "Determines the line shape. With *spline* the lines are drawn using spline interpolation. The other available values correspond to step-wise line shapes." - }, - "smoothing": { - "valType": "number", - "min": 0, - "max": 1.3, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Has an effect only if `shape` is set to *spline* Sets the amount of smoothing. *0* corresponds to no smoothing (equivalent to a *linear* shape)." - }, - "editType": "calc", - "role": "object" - }, - "connectgaps": { - "valType": "boolean", - "dflt": false, - "role": "info", - "editType": "calc", - "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected." - }, - "marker": { - "symbol": { - "valType": "enumerated", - "values": [ - 0, - "0", - "circle", - 100, - "100", - "circle-open", - 200, - "200", - "circle-dot", - 300, - "300", - "circle-open-dot", - 1, - "1", - "square", - 101, - "101", - "square-open", - 201, - "201", - "square-dot", - 301, - "301", - "square-open-dot", - 2, - "2", - "diamond", - 102, - "102", - "diamond-open", - 202, - "202", - "diamond-dot", - 302, - "302", - "diamond-open-dot", - 3, - "3", - "cross", - 103, - "103", - "cross-open", - 203, - "203", - "cross-dot", - 303, - "303", - "cross-open-dot", - 4, - "4", - "x", - 104, - "104", - "x-open", - 204, - "204", - "x-dot", - 304, - "304", - "x-open-dot", - 5, - "5", - "triangle-up", - 105, - "105", - "triangle-up-open", - 205, - "205", - "triangle-up-dot", - 305, - "305", - "triangle-up-open-dot", - 6, - "6", - "triangle-down", - 106, - "106", - "triangle-down-open", - 206, - "206", - "triangle-down-dot", - 306, - "306", - "triangle-down-open-dot", - 7, - "7", - "triangle-left", - 107, - "107", - "triangle-left-open", - 207, - "207", - "triangle-left-dot", - 307, - "307", - "triangle-left-open-dot", - 8, - "8", - "triangle-right", - 108, - "108", - "triangle-right-open", - 208, - "208", - "triangle-right-dot", - 308, - "308", - "triangle-right-open-dot", - 9, - "9", - "triangle-ne", - 109, - "109", - "triangle-ne-open", - 209, - "209", - "triangle-ne-dot", - 309, - "309", - "triangle-ne-open-dot", - 10, - "10", - "triangle-se", - 110, - "110", - "triangle-se-open", - 210, - "210", - "triangle-se-dot", - 310, - "310", - "triangle-se-open-dot", - 11, - "11", - "triangle-sw", - 111, - "111", - "triangle-sw-open", - 211, - "211", - "triangle-sw-dot", - 311, - "311", - "triangle-sw-open-dot", - 12, - "12", - "triangle-nw", - 112, - "112", - "triangle-nw-open", - 212, - "212", - "triangle-nw-dot", - 312, - "312", - "triangle-nw-open-dot", - 13, - "13", - "pentagon", - 113, - "113", - "pentagon-open", - 213, - "213", - "pentagon-dot", - 313, - "313", - "pentagon-open-dot", - 14, - "14", - "hexagon", - 114, - "114", - "hexagon-open", - 214, - "214", - "hexagon-dot", - 314, - "314", - "hexagon-open-dot", - 15, - "15", - "hexagon2", - 115, - "115", - "hexagon2-open", - 215, - "215", - "hexagon2-dot", - 315, - "315", - "hexagon2-open-dot", - 16, - "16", - "octagon", - 116, - "116", - "octagon-open", - 216, - "216", - "octagon-dot", - 316, - "316", - "octagon-open-dot", - 17, - "17", - "star", - 117, - "117", - "star-open", - 217, - "217", - "star-dot", - 317, - "317", - "star-open-dot", - 18, - "18", - "hexagram", - 118, - "118", - "hexagram-open", - 218, - "218", - "hexagram-dot", - 318, - "318", - "hexagram-open-dot", - 19, - "19", - "star-triangle-up", - 119, - "119", - "star-triangle-up-open", - 219, - "219", - "star-triangle-up-dot", - 319, - "319", - "star-triangle-up-open-dot", - 20, - "20", - "star-triangle-down", - 120, - "120", - "star-triangle-down-open", - 220, - "220", - "star-triangle-down-dot", - 320, - "320", - "star-triangle-down-open-dot", - 21, - "21", - "star-square", - 121, - "121", - "star-square-open", - 221, - "221", - "star-square-dot", - 321, - "321", - "star-square-open-dot", - 22, - "22", - "star-diamond", - 122, - "122", - "star-diamond-open", - 222, - "222", - "star-diamond-dot", - 322, - "322", - "star-diamond-open-dot", - 23, - "23", - "diamond-tall", - 123, - "123", - "diamond-tall-open", - 223, - "223", - "diamond-tall-dot", - 323, - "323", - "diamond-tall-open-dot", - 24, - "24", - "diamond-wide", - 124, - "124", - "diamond-wide-open", - 224, - "224", - "diamond-wide-dot", - 324, - "324", - "diamond-wide-open-dot", - 25, - "25", - "hourglass", - 125, - "125", - "hourglass-open", - 26, - "26", - "bowtie", - 126, - "126", - "bowtie-open", - 27, - "27", - "circle-cross", - 127, - "127", - "circle-cross-open", - 28, - "28", - "circle-x", - 128, - "128", - "circle-x-open", - 29, - "29", - "square-cross", - 129, - "129", - "square-cross-open", - 30, - "30", - "square-x", - 130, - "130", - "square-x-open", - 31, - "31", - "diamond-cross", - 131, - "131", - "diamond-cross-open", - 32, - "32", - "diamond-x", - 132, - "132", - "diamond-x-open", - 33, - "33", - "cross-thin", - 133, - "133", - "cross-thin-open", - 34, - "34", - "x-thin", - 134, - "134", - "x-thin-open", - 35, - "35", - "asterisk", - 135, - "135", - "asterisk-open", - 36, - "36", - "hash", - 136, - "136", - "hash-open", - 236, - "236", - "hash-dot", - 336, - "336", - "hash-open-dot", - 37, - "37", - "y-up", - 137, - "137", - "y-up-open", - 38, - "38", - "y-down", - 138, - "138", - "y-down-open", - 39, - "39", - "y-left", - 139, - "139", - "y-left-open", - 40, - "40", - "y-right", - 140, - "140", - "y-right-open", - 41, - "41", - "line-ew", - 141, - "141", - "line-ew-open", - 42, - "42", - "line-ns", - 142, - "142", - "line-ns-open", - 43, - "43", - "line-ne", - 143, - "143", - "line-ne-open", - 44, - "44", - "line-nw", - 144, - "144", - "line-nw-open", - 45, - "45", - "arrow-up", - 145, - "145", - "arrow-up-open", - 46, - "46", - "arrow-down", - 146, - "146", - "arrow-down-open", - 47, - "47", - "arrow-left", - 147, - "147", - "arrow-left-open", - 48, - "48", - "arrow-right", - 148, - "148", - "arrow-right-open", - 49, - "49", - "arrow-bar-up", - 149, - "149", - "arrow-bar-up-open", - 50, - "50", - "arrow-bar-down", - 150, - "150", - "arrow-bar-down-open", - 51, - "51", - "arrow-bar-left", - 151, - "151", - "arrow-bar-left-open", - 52, - "52", - "arrow-bar-right", - 152, - "152", - "arrow-bar-right-open" - ], - "dflt": "circle", - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name." - }, - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity." - }, - "size": { - "valType": "number", - "min": 0, - "dflt": 6, - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the marker size (in px)." - }, - "maxdisplayed": { - "valType": "number", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "plot", - "description": "Sets a maximum number of points to be drawn on the graph. *0* corresponds to no limit." - }, - "sizeref": { - "valType": "number", - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`." - }, - "sizemin": { - "valType": "number", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points." - }, - "sizemode": { - "valType": "enumerated", - "values": [ - "diameter", - "area" - ], - "dflt": "diameter", - "role": "info", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels." - }, - "line": { - "width": { - "valType": "number", - "min": 0, - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets the width (in px) of the lines bounding the marker points." - }, - "editType": "calc", - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "role": "object", - "widthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for width .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "gradient": { - "type": { - "valType": "enumerated", - "values": [ - "radial", - "horizontal", - "vertical", - "none" - ], - "arrayOk": true, - "dflt": "none", - "role": "style", - "editType": "calc", - "description": "Sets the type of gradient used to fill the markers" - }, - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the final color of the gradient fill: the center color for radial, the right for horizontal, or the bottom for vertical." - }, - "editType": "calc", - "role": "object", - "typesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for type .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "editType": "calc", - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "colorbars" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "colorbars" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "colorbars" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "colorbars" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "colorbars" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "colorbars" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "colorbars" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "colorbars" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "colorbars" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "colorbars" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "colorbars", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "colorbars", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "colorbars", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "colorbars" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "colorbars", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "colorbars", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "colorbars", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "colorbars" - }, - { - "valType": "any", - "editType": "colorbars" - } - ], - "editType": "colorbars", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "colorbars", - "name": { - "valType": "string", - "role": "style", - "editType": "colorbars", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "colorbars", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "colorbars", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "colorbars", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "colorbars", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars" - }, - "editType": "colorbars", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "colorbars" - } - }, - "editType": "colorbars", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "role": "object", - "symbolsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for symbol .", - "editType": "none" - }, - "opacitysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for opacity .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "cliponaxis": { - "valType": "boolean", - "dflt": false, - "role": "info", - "editType": "plot", - "description": "Determines whether or not markers and text nodes are clipped about the subplot axes. To show markers and text nodes above axis lines and tick labels, make sure to set `xaxis.layer` and `yaxis.layer` to *below traces*." - }, - "textposition": { - "valType": "enumerated", - "values": [ - "top left", - "top center", - "top right", - "middle left", - "middle center", - "middle right", - "bottom left", - "bottom center", - "bottom right" - ], - "dflt": "middle center", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates." - }, - "textfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "arrayOk": true - }, - "editType": "calc", - "description": "Sets the text font.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "fill": { - "valType": "enumerated", - "values": [ - "none", - "toself", - "tonext" - ], - "role": "style", - "editType": "calc", - "description": "Sets the area to fill with a solid color. Use with `fillcolor` if not *none*. scatterpolar has a subset of the options available to scatter. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape. *tonext* fills the space between two traces if one completely encloses the other (eg consecutive contour lines), and behaves like *toself* if there is no trace before it. *tonext* should not be used if one trace does not enclose the other.", - "dflt": "none" - }, - "fillcolor": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "r", - "theta", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hoveron": { - "valType": "flaglist", - "flags": [ - "points", - "fills" - ], - "role": "info", - "editType": "style", - "description": "Do the hover effects highlight individual points (markers or line points) or do they highlight filled regions? If the fill is *toself* or *tonext* and there are no markers or text, then the default is *fills*, otherwise it is *points*." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "selected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity of selected points." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the marker color of selected points." - }, - "size": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "style", - "description": "Sets the marker size of selected points." - }, - "editType": "style", - "role": "object" - }, - "textfont": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the text font color of selected points." - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "unselected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity of unselected points, applied only when a selection exists." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the marker color of unselected points, applied only when a selection exists." - }, - "size": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "style", - "description": "Sets the marker size of unselected points, applied only when a selection exists." - }, - "editType": "style", - "role": "object" - }, - "textfont": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the text font color of unselected points, applied only when a selection exists." - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "subplot": { - "valType": "subplotid", - "role": "info", - "dflt": "polar", - "editType": "calc", - "description": "Sets a reference between this trace's data coordinates and a polar subplot. If *polar* (the default value), the data refer to `layout.polar`. If *polar2*, the data refer to `layout.polar2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "rsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for r .", - "editType": "none" - }, - "thetasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for theta .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "texttemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "textpositionsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for textposition .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - } - } + "placement": { + "valType": "enumerated", + "values": [ + "point", + "line", + "line-center" + ], + "dflt": "point", + "description": "Sets the symbol and/or text placement (mapbox.layer.layout.symbol-placement). If `placement` is *point*, the label is placed where the geometry is located If `placement` is *line*, the label is placed along the line of the geometry If `placement` is *line-center*, the label is placed on the center of the geometry", + "editType": "plot" }, - "scatterpolargl": { - "meta": { - "hrName": "scatter_polar_gl", - "description": "The scatterpolargl trace type encompasses line charts, scatter charts, and bubble charts in polar coordinates using the WebGL plotting engine. The data visualized as scatter point or lines is set in `r` (radial) and `theta` (angular) coordinates Bubble charts are achieved by setting `marker.size` and/or `marker.color` to numerical arrays." - }, - "categories": [ - "gl", - "regl", - "polar", - "symbols", - "showLegend", - "scatter-like" - ], - "animatable": false, - "type": "scatterpolargl", - "attributes": { - "type": "scatterpolargl", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "selectedpoints": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "mode": { - "valType": "flaglist", - "flags": [ - "lines", - "markers", - "text" - ], - "extras": [ - "none" - ], - "role": "info", - "editType": "calc", - "description": "Determines the drawing mode for this scatter trace. If the provided `mode` includes *text* then the `text` elements appear at the coordinates. Otherwise, the `text` elements appear on hover. If there are less than 20 points and the trace is not stacked then the default is *lines+markers*. Otherwise, *lines*." - }, - "r": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the radial coordinates", - "role": "data" - }, - "theta": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the angular coordinates", - "role": "data" - }, - "r0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Alternate to `r`. Builds a linear space of r coordinates. Use with `dr` where `r0` is the starting coordinate and `dr` the step." - }, - "dr": { - "valType": "number", - "dflt": 1, - "role": "info", - "editType": "calc", - "description": "Sets the r coordinate step." - }, - "theta0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Alternate to `theta`. Builds a linear space of theta coordinates. Use with `dtheta` where `theta0` is the starting coordinate and `dtheta` the step." - }, - "dtheta": { - "valType": "number", - "role": "info", - "editType": "calc", - "description": "Sets the theta coordinate step. By default, the `dtheta` step equals the subplot's period divided by the length of the `r` coordinates." - }, - "thetaunit": { - "valType": "enumerated", - "values": [ - "radians", - "degrees", - "gradians" - ], - "dflt": "degrees", - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Sets the unit of input *theta* values. Has an effect only when on *linear* angular axes." - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. If trace `hoverinfo` contains a *text* flag and *hovertext* is not set, these elements will be seen in the hover labels." - }, - "texttemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "plot", - "description": "Template string used for rendering the information text that appear on points. Note that this will override `textinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. Every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. variables `r`, `theta` and `text`.", - "arrayOk": true - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "style", - "description": "Sets hover text elements associated with each (x,y) pair. If a single string, the same string appears over all the data points. If an array of string, the items are mapped in order to the this trace's (x,y) coordinates. To be seen, trace `hoverinfo` must contain a *text* flag." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "line": { - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the line color." - }, - "width": { - "valType": "number", - "min": 0, - "dflt": 2, - "role": "style", - "editType": "calc", - "description": "Sets the line width (in px)." - }, - "shape": { - "valType": "enumerated", - "values": [ - "linear", - "hv", - "vh", - "hvh", - "vhv" - ], - "dflt": "linear", - "role": "style", - "editType": "calc", - "description": "Determines the line shape. The values correspond to step-wise line shapes." - }, - "dash": { - "valType": "enumerated", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ], - "dflt": "solid", - "role": "style", - "description": "Sets the style of the lines.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "connectgaps": { - "valType": "boolean", - "dflt": false, - "role": "info", - "editType": "calc", - "description": "Determines whether or not gaps (i.e. {nan} or missing values) in the provided data arrays are connected." - }, - "marker": { - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "calc", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "calc" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "calc" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "calc" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "calc" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "calc" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "calc" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "calc" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "calc" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "calc" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "calc" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "calc" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "calc" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "calc", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "calc", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "calc", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "calc" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "calc", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "calc", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "calc", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Sets the color bar's tick label font", - "editType": "calc", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "calc", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "calc" - }, - { - "valType": "any", - "editType": "calc" - } - ], - "editType": "calc", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "calc", - "name": { - "valType": "string", - "role": "style", - "editType": "calc", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "calc", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "calc", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "calc", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "calc", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "calc", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "calc" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "calc", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "calc" - }, - "editType": "calc", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "calc" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "calc" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "calc" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "calc" - } - }, - "editType": "calc", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "symbol": { - "valType": "enumerated", - "values": [ - 0, - "0", - "circle", - 100, - "100", - "circle-open", - 200, - "200", - "circle-dot", - 300, - "300", - "circle-open-dot", - 1, - "1", - "square", - 101, - "101", - "square-open", - 201, - "201", - "square-dot", - 301, - "301", - "square-open-dot", - 2, - "2", - "diamond", - 102, - "102", - "diamond-open", - 202, - "202", - "diamond-dot", - 302, - "302", - "diamond-open-dot", - 3, - "3", - "cross", - 103, - "103", - "cross-open", - 203, - "203", - "cross-dot", - 303, - "303", - "cross-open-dot", - 4, - "4", - "x", - 104, - "104", - "x-open", - 204, - "204", - "x-dot", - 304, - "304", - "x-open-dot", - 5, - "5", - "triangle-up", - 105, - "105", - "triangle-up-open", - 205, - "205", - "triangle-up-dot", - 305, - "305", - "triangle-up-open-dot", - 6, - "6", - "triangle-down", - 106, - "106", - "triangle-down-open", - 206, - "206", - "triangle-down-dot", - 306, - "306", - "triangle-down-open-dot", - 7, - "7", - "triangle-left", - 107, - "107", - "triangle-left-open", - 207, - "207", - "triangle-left-dot", - 307, - "307", - "triangle-left-open-dot", - 8, - "8", - "triangle-right", - 108, - "108", - "triangle-right-open", - 208, - "208", - "triangle-right-dot", - 308, - "308", - "triangle-right-open-dot", - 9, - "9", - "triangle-ne", - 109, - "109", - "triangle-ne-open", - 209, - "209", - "triangle-ne-dot", - 309, - "309", - "triangle-ne-open-dot", - 10, - "10", - "triangle-se", - 110, - "110", - "triangle-se-open", - 210, - "210", - "triangle-se-dot", - 310, - "310", - "triangle-se-open-dot", - 11, - "11", - "triangle-sw", - 111, - "111", - "triangle-sw-open", - 211, - "211", - "triangle-sw-dot", - 311, - "311", - "triangle-sw-open-dot", - 12, - "12", - "triangle-nw", - 112, - "112", - "triangle-nw-open", - 212, - "212", - "triangle-nw-dot", - 312, - "312", - "triangle-nw-open-dot", - 13, - "13", - "pentagon", - 113, - "113", - "pentagon-open", - 213, - "213", - "pentagon-dot", - 313, - "313", - "pentagon-open-dot", - 14, - "14", - "hexagon", - 114, - "114", - "hexagon-open", - 214, - "214", - "hexagon-dot", - 314, - "314", - "hexagon-open-dot", - 15, - "15", - "hexagon2", - 115, - "115", - "hexagon2-open", - 215, - "215", - "hexagon2-dot", - 315, - "315", - "hexagon2-open-dot", - 16, - "16", - "octagon", - 116, - "116", - "octagon-open", - 216, - "216", - "octagon-dot", - 316, - "316", - "octagon-open-dot", - 17, - "17", - "star", - 117, - "117", - "star-open", - 217, - "217", - "star-dot", - 317, - "317", - "star-open-dot", - 18, - "18", - "hexagram", - 118, - "118", - "hexagram-open", - 218, - "218", - "hexagram-dot", - 318, - "318", - "hexagram-open-dot", - 19, - "19", - "star-triangle-up", - 119, - "119", - "star-triangle-up-open", - 219, - "219", - "star-triangle-up-dot", - 319, - "319", - "star-triangle-up-open-dot", - 20, - "20", - "star-triangle-down", - 120, - "120", - "star-triangle-down-open", - 220, - "220", - "star-triangle-down-dot", - 320, - "320", - "star-triangle-down-open-dot", - 21, - "21", - "star-square", - 121, - "121", - "star-square-open", - 221, - "221", - "star-square-dot", - 321, - "321", - "star-square-open-dot", - 22, - "22", - "star-diamond", - 122, - "122", - "star-diamond-open", - 222, - "222", - "star-diamond-dot", - 322, - "322", - "star-diamond-open-dot", - 23, - "23", - "diamond-tall", - 123, - "123", - "diamond-tall-open", - 223, - "223", - "diamond-tall-dot", - 323, - "323", - "diamond-tall-open-dot", - 24, - "24", - "diamond-wide", - 124, - "124", - "diamond-wide-open", - 224, - "224", - "diamond-wide-dot", - 324, - "324", - "diamond-wide-open-dot", - 25, - "25", - "hourglass", - 125, - "125", - "hourglass-open", - 26, - "26", - "bowtie", - 126, - "126", - "bowtie-open", - 27, - "27", - "circle-cross", - 127, - "127", - "circle-cross-open", - 28, - "28", - "circle-x", - 128, - "128", - "circle-x-open", - 29, - "29", - "square-cross", - 129, - "129", - "square-cross-open", - 30, - "30", - "square-x", - 130, - "130", - "square-x-open", - 31, - "31", - "diamond-cross", - 131, - "131", - "diamond-cross-open", - 32, - "32", - "diamond-x", - 132, - "132", - "diamond-x-open", - 33, - "33", - "cross-thin", - 133, - "133", - "cross-thin-open", - 34, - "34", - "x-thin", - 134, - "134", - "x-thin-open", - 35, - "35", - "asterisk", - 135, - "135", - "asterisk-open", - 36, - "36", - "hash", - 136, - "136", - "hash-open", - 236, - "236", - "hash-dot", - 336, - "336", - "hash-open-dot", - 37, - "37", - "y-up", - 137, - "137", - "y-up-open", - 38, - "38", - "y-down", - 138, - "138", - "y-down-open", - 39, - "39", - "y-left", - 139, - "139", - "y-left-open", - 40, - "40", - "y-right", - 140, - "140", - "y-right-open", - 41, - "41", - "line-ew", - 141, - "141", - "line-ew-open", - 42, - "42", - "line-ns", - 142, - "142", - "line-ns-open", - 43, - "43", - "line-ne", - 143, - "143", - "line-ne-open", - 44, - "44", - "line-nw", - 144, - "144", - "line-nw-open", - 45, - "45", - "arrow-up", - 145, - "145", - "arrow-up-open", - 46, - "46", - "arrow-down", - 146, - "146", - "arrow-down-open", - 47, - "47", - "arrow-left", - 147, - "147", - "arrow-left-open", - 48, - "48", - "arrow-right", - 148, - "148", - "arrow-right-open", - 49, - "49", - "arrow-bar-up", - 149, - "149", - "arrow-bar-up-open", - 50, - "50", - "arrow-bar-down", - 150, - "150", - "arrow-bar-down-open", - 51, - "51", - "arrow-bar-left", - 151, - "151", - "arrow-bar-left-open", - 52, - "52", - "arrow-bar-right", - 152, - "152", - "arrow-bar-right-open" - ], - "dflt": "circle", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name." - }, - "size": { - "valType": "number", - "min": 0, - "dflt": 6, - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the marker size (in px)." - }, - "sizeref": { - "valType": "number", - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the scale factor used to determine the rendered size of marker points. Use with `sizemin` and `sizemode`." - }, - "sizemin": { - "valType": "number", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the minimum size (in px) of the rendered marker points." - }, - "sizemode": { - "valType": "enumerated", - "values": [ - "diameter", - "area" - ], - "dflt": "diameter", - "role": "info", - "editType": "calc", - "description": "Has an effect only if `marker.size` is set to a numerical array. Sets the rule for which the data in `size` is converted to pixels." - }, - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the marker opacity." - }, - "line": { - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "calc", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "width": { - "valType": "number", - "min": 0, - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the lines bounding the marker points." - }, - "editType": "calc", - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - }, - "widthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for width .", - "editType": "none" - } - }, - "editType": "calc", - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - }, - "symbolsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for symbol .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "opacitysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for opacity .", - "editType": "none" - } - }, - "fill": { - "valType": "enumerated", - "values": [ - "none", - "tozeroy", - "tozerox", - "tonexty", - "tonextx", - "toself", - "tonext" - ], - "role": "style", - "editType": "calc", - "description": "Sets the area to fill with a solid color. Defaults to *none* unless this trace is stacked, then it gets *tonexty* (*tonextx*) if `orientation` is *v* (*h*) Use with `fillcolor` if not *none*. *tozerox* and *tozeroy* fill to x=0 and y=0 respectively. *tonextx* and *tonexty* fill between the endpoints of this trace and the endpoints of the trace before it, connecting those endpoints with straight lines (to make a stacked area graph); if there is no trace before it, they behave like *tozerox* and *tozeroy*. *toself* connects the endpoints of the trace (or each segment of the trace if it has gaps) into a closed shape. *tonext* fills the space between two traces if one completely encloses the other (eg consecutive contour lines), and behaves like *toself* if there is no trace before it. *tonext* should not be used if one trace does not enclose the other. Traces in a `stackgroup` will only fill to (or be filled to) other traces in the same group. With multiple `stackgroup`s or some traces stacked and some not, if fill-linked traces are not already consecutive, the later ones will be pushed down in the drawing order.", - "dflt": "none" - }, - "fillcolor": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the fill color. Defaults to a half-transparent variant of the line color, marker color, or marker line color, whichever is available." - }, - "textposition": { - "valType": "enumerated", - "values": [ - "top left", - "top center", - "top right", - "middle left", - "middle center", - "middle right", - "bottom left", - "bottom center", - "bottom right" - ], - "dflt": "middle center", - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates." - }, - "textfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "arrayOk": true - }, - "editType": "calc", - "description": "Sets the text font.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "r", - "theta", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "selected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity of selected points." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the marker color of selected points." - }, - "size": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "style", - "description": "Sets the marker size of selected points." - }, - "editType": "style", - "role": "object" - }, - "textfont": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the text font color of selected points." - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "unselected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity of unselected points, applied only when a selection exists." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the marker color of unselected points, applied only when a selection exists." - }, - "size": { - "valType": "number", - "min": 0, - "role": "style", - "editType": "style", - "description": "Sets the marker size of unselected points, applied only when a selection exists." - }, - "editType": "style", - "role": "object" - }, - "textfont": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the text font color of unselected points, applied only when a selection exists." - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "subplot": { - "valType": "subplotid", - "role": "info", - "dflt": "polar", - "editType": "calc", - "description": "Sets a reference between this trace's data coordinates and a polar subplot. If *polar* (the default value), the data refer to `layout.polar`. If *polar2*, the data refer to `layout.polar2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "rsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for r .", - "editType": "none" - }, - "thetasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for theta .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "texttemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for texttemplate .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - }, - "textpositionsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for textposition .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - } - } + "textfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "dflt": "Open Sans Regular, Arial Unicode MS Regular", + "editType": "plot" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "description": "Sets the icon text font (color=mapbox.layer.paint.text-color, size=mapbox.layer.layout.text-size). Has an effect only when `type` is set to *symbol*.", + "editType": "plot", + "role": "object" }, - "barpolar": { - "meta": { - "hrName": "bar_polar", - "description": "The data visualized by the radial span of the bars is set in `r`" - }, - "categories": [ - "polar", - "bar", - "showLegend" - ], - "animatable": false, - "type": "barpolar", - "attributes": { - "type": "barpolar", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "selectedpoints": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Array containing integer indices of selected points. Has an effect only for traces that support selections. Note that an empty array means an empty selection where the `unselected` are turned on for all points, whereas, any other non-array values means no selection all where the `selected` and `unselected` styles have no effect." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "r": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the radial coordinates", - "role": "data" - }, - "theta": { - "valType": "data_array", - "editType": "calc+clearAxisTypes", - "description": "Sets the angular coordinates", - "role": "data" - }, - "r0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Alternate to `r`. Builds a linear space of r coordinates. Use with `dr` where `r0` is the starting coordinate and `dr` the step." - }, - "dr": { - "valType": "number", - "dflt": 1, - "role": "info", - "editType": "calc", - "description": "Sets the r coordinate step." - }, - "theta0": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Alternate to `theta`. Builds a linear space of theta coordinates. Use with `dtheta` where `theta0` is the starting coordinate and `dtheta` the step." - }, - "dtheta": { - "valType": "number", - "role": "info", - "editType": "calc", - "description": "Sets the theta coordinate step. By default, the `dtheta` step equals the subplot's period divided by the length of the `r` coordinates." - }, - "thetaunit": { - "valType": "enumerated", - "values": [ - "radians", - "degrees", - "gradians" - ], - "dflt": "degrees", - "role": "info", - "editType": "calc+clearAxisTypes", - "description": "Sets the unit of input *theta* values. Has an effect only when on *linear* angular axes." - }, - "base": { - "valType": "any", - "dflt": null, - "arrayOk": true, - "role": "info", - "editType": "calc", - "description": "Sets where the bar base is drawn (in radial axis units). In *stack* barmode, traces that set *base* will be excluded and drawn in *overlay* mode instead." - }, - "offset": { - "valType": "number", - "dflt": null, - "arrayOk": true, - "role": "info", - "editType": "calc", - "description": "Shifts the angular position where the bar is drawn (in *thetatunit* units)." - }, - "width": { - "valType": "number", - "dflt": null, - "min": 0, - "arrayOk": true, - "role": "info", - "editType": "calc", - "description": "Sets the bar angular width (in *thetaunit* units)." - }, - "text": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "calc", - "description": "Sets hover text elements associated with each bar. If a single string, the same string appears over all bars. If an array of string, the items are mapped in order to the this trace's coordinates." - }, - "hovertext": { - "valType": "string", - "role": "info", - "dflt": "", - "arrayOk": true, - "editType": "style", - "description": "Same as `text`." - }, - "marker": { - "line": { - "width": { - "valType": "number", - "min": 0, - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets the width (in px) of the lines bounding the marker points.", - "dflt": 0 - }, - "editType": "calc", - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets themarker.linecolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.line.cmin` and `marker.line.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.line.color`) or the bounds set in `marker.line.cmin` and `marker.line.cmax` Has an effect only if in `marker.line.color`is set to a numerical array. Defaults to `false` when `marker.line.cmin` and `marker.line.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color` and if set, `marker.line.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.line.cmin` and/or `marker.line.cmax` to be equidistant to this point. Has an effect only if in `marker.line.color`is set to a numerical array. Value should have the same units as in `marker.line.color`. Has no effect when `marker.line.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.line.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.line.cmin` and `marker.line.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.line.colorscale`. Has an effect only if in `marker.line.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.line.color`is set to a numerical array. If true, `marker.line.cmin` will correspond to the last color in the array and `marker.line.cmax` will correspond to the first color." - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "role": "object", - "widthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for width .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "editType": "calc", - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." - }, - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here in `marker.color`) or the bounds set in `marker.cmin` and `marker.cmax` Has an effect only if in `marker.color`is set to a numerical array. Defaults to `false` when `marker.cmin` and `marker.cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color` and if set, `marker.cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `marker.cmin` and/or `marker.cmax` to be equidistant to this point. Has an effect only if in `marker.color`is set to a numerical array. Value should have the same units as in `marker.color`. Has no effect when `marker.cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. Has an effect only if in `marker.color`is set to a numerical array. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`marker.cmin` and `marker.cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `marker.colorscale`. Has an effect only if in `marker.color`is set to a numerical array. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If true, `marker.cmin` will correspond to the last color in the array and `marker.cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace. Has an effect only if in `marker.color`is set to a numerical array." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "colorbars" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "colorbars" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "colorbars" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "colorbars" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "colorbars" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "colorbars" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "colorbars" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "colorbars" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "colorbars" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "colorbars" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "colorbars", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "colorbars", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "colorbars", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "colorbars" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "colorbars", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "colorbars", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "colorbars", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "colorbars" - }, - { - "valType": "any", - "editType": "colorbars" - } - ], - "editType": "colorbars", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "colorbars", - "name": { - "valType": "string", - "role": "style", - "editType": "colorbars", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "colorbars", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "colorbars", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "colorbars", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "colorbars", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars" - }, - "editType": "colorbars", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "colorbars" - } - }, - "editType": "colorbars", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "coloraxis": { - "valType": "subplotid", - "role": "info", - "regex": "/^coloraxis([2-9]|[1-9][0-9]+)?$/", - "dflt": null, - "editType": "calc", - "description": "Sets a reference to a shared color axis. References to these shared color axes are *coloraxis*, *coloraxis2*, *coloraxis3*, etc. Settings for these shared color axes are set in the layout, under `layout.coloraxis`, `layout.coloraxis2`, etc. Note that multiple color scales can be linked to the same color axis." - }, - "opacity": { - "valType": "number", - "arrayOk": true, - "dflt": 1, - "min": 0, - "max": 1, - "role": "style", - "editType": "style", - "description": "Sets the opacity of the bars." - }, - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - }, - "opacitysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for opacity .", - "editType": "none" - } - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "r", - "theta", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hovertemplate": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "none", - "description": "Template string used for rendering the information that appear on hover box. Note that this will override `hoverinfo`. Variables are inserted using %{variable}, for example \"y: %{y}\". Numbers are formatted using d3-format's syntax %{variable:d3-format}, for example \"Price: %{y:$.2f}\". https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format's syntax %{variable|d3-time-format}, for example \"Day: %{2019-01-01|%A}\". https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in `hovertemplate` are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are `arrayOk: true`) are available. Anything contained in tag `` is displayed in the secondary box, for example \"{fullData.name}\". To hide the secondary box completely, use an empty tag ``.", - "arrayOk": true - }, - "selected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity of selected points." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the marker color of selected points." - }, - "editType": "style", - "role": "object" - }, - "textfont": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the text font color of selected points." - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "unselected": { - "marker": { - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "role": "style", - "editType": "style", - "description": "Sets the marker opacity of unselected points, applied only when a selection exists." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the marker color of unselected points, applied only when a selection exists." - }, - "editType": "style", - "role": "object" - }, - "textfont": { - "color": { - "valType": "color", - "role": "style", - "editType": "style", - "description": "Sets the text font color of unselected points, applied only when a selection exists." - }, - "editType": "style", - "role": "object" - }, - "editType": "style", - "role": "object" - }, - "subplot": { - "valType": "subplotid", - "role": "info", - "dflt": "polar", - "editType": "calc", - "description": "Sets a reference between this trace's data coordinates and a polar subplot. If *polar* (the default value), the data refer to `layout.polar`. If *polar2*, the data refer to `layout.polar2`, and so on." - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "rsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for r .", - "editType": "none" - }, - "thetasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for theta .", - "editType": "none" - }, - "basesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for base .", - "editType": "none" - }, - "offsetsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for offset .", - "editType": "none" - }, - "widthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for width .", - "editType": "none" - }, - "textsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for text .", - "editType": "none" - }, - "hovertextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertext .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "hovertemplatesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hovertemplate .", - "editType": "none" - } - }, - "layoutAttributes": { - "barmode": { - "valType": "enumerated", - "values": [ - "stack", - "overlay" - ], - "dflt": "stack", - "role": "info", - "editType": "calc", - "description": "Determines how bars at the same location coordinate are displayed on the graph. With *stack*, the bars are stacked on top of one another With *overlay*, the bars are plotted over one another, you might need to an *opacity* to see multiple bars." - }, - "bargap": { - "valType": "number", - "dflt": 0.1, - "min": 0, - "max": 1, - "role": "style", - "editType": "calc", - "description": "Sets the gap between bars of adjacent location coordinates. Values are unitless, they represent fractions of the minimum difference in bar positions in the data." - } - } + "textposition": { + "valType": "enumerated", + "values": [ + "top left", + "top center", + "top right", + "middle left", + "middle center", + "middle right", + "bottom left", + "bottom center", + "bottom right" + ], + "dflt": "middle center", + "arrayOk": false, + "editType": "plot", + "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates." }, - "area": { - "meta": {}, - "categories": {}, - "animatable": false, - "type": "area", - "attributes": { - "type": "area", - "visible": { - "valType": "enumerated", - "values": [ - true, - false, - "legendonly" - ], - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this trace is visible. If *legendonly*, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "style", - "description": "Determines whether or not an item corresponding to this trace is shown in the legend." - }, - "legendgroup": { - "valType": "string", - "role": "info", - "dflt": "", - "editType": "style", - "description": "Sets the legend group for this trace. Traces part of the same legend group hide/show at the same time when toggling legend items." - }, - "opacity": { - "valType": "number", - "role": "style", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "style", - "description": "Sets the opacity of the trace." - }, - "name": { - "valType": "string", - "role": "info", - "editType": "style", - "description": "Sets the trace name. The trace name appear as the legend item and on hover." - }, - "uid": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions." - }, - "ids": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns id labels to each datum. These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.", - "role": "data" - }, - "customdata": { - "valType": "data_array", - "editType": "calc", - "description": "Assigns extra data each datum. This may be useful when listening to hover, click and selection events. Note that, *scatter* traces also appends customdata items in the markers DOM elements", - "role": "data" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information associated with this trace that can be used in various text attributes. Attributes such as trace `name`, graph, axis and colorbar `title.text`, annotation `text` `rangeselector`, `updatemenues` and `sliders` `label` text all support `meta`. To access the trace `meta` values in an attribute in the same trace, simply use `%{meta[i]}` where `i` is the index or key of the `meta` item in question. To access trace `meta` in layout attributes, use `%{data[n[.meta[i]}` where `i` is the index or key of the `meta` and `n` is the trace index." - }, - "hoverinfo": { - "valType": "flaglist", - "role": "info", - "flags": [ - "x", - "y", - "z", - "text", - "name" - ], - "extras": [ - "all", - "none", - "skip" - ], - "arrayOk": true, - "dflt": "all", - "editType": "none", - "description": "Determines which trace information appear on hover. If `none` or `skip` are set, no information is displayed upon hovering. But, if `none` is set, click and hover events are still fired." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of the hover labels for this trace", - "arrayOk": true - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of the hover labels for this trace.", - "arrayOk": true - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "arrayOk": true - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "arrayOk": true - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none", - "arrayOk": true - }, - "editType": "none", - "description": "Sets the font used in hover labels.", - "role": "object", - "familysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for family .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - } - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines", - "arrayOk": true - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis.", - "arrayOk": true - }, - "editType": "none", - "role": "object", - "bgcolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bgcolor .", - "editType": "none" - }, - "bordercolorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for bordercolor .", - "editType": "none" - }, - "alignsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for align .", - "editType": "none" - }, - "namelengthsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for namelength .", - "editType": "none" - } - }, - "stream": { - "token": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "editType": "calc", - "description": "The stream id number links a data trace on a plot with a stream. See https://chart-studio.plotly.com/settings for more details." - }, - "maxpoints": { - "valType": "number", - "min": 0, - "max": 10000, - "dflt": 500, - "role": "info", - "editType": "calc", - "description": "Sets the maximum number of points to keep on the plots from an incoming stream. If `maxpoints` is set to *50*, only the newest 50 points will be displayed on the plot." - }, - "editType": "calc", - "role": "object" - }, - "transforms": { - "items": { - "transform": { - "editType": "calc", - "description": "An array of operations that manipulate the trace data, for example filtering or sorting the data arrays.", - "role": "object" - } - }, - "role": "object" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of some user-driven changes to the trace: `constraintrange` in `parcoords` traces, as well as some `editable: true` modifications such as `name` and `colorbar.title`. Defaults to `layout.uirevision`. Note that other user-driven trace attribute changes are controlled by `layout` attributes: `trace.visible` is controlled by `layout.legend.uirevision`, `selectedpoints` is controlled by `layout.selectionrevision`, and `colorbar.(x|y)` (accessible with `config: {editable: true}`) is controlled by `layout.editrevision`. Trace changes are tracked by `uid`, which only falls back on trace index if no `uid` is provided. So if your app can add/remove traces before the end of the `data` array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a `uid` that stays with it as it moves." - }, - "r": { - "valType": "data_array", - "editType": "calc", - "description": "Area traces are deprecated! Please switch to the *barpolar* trace type. Sets the radial coordinates for legacy polar chart only.", - "role": "data" - }, - "t": { - "valType": "data_array", - "editType": "calc", - "description": "Area traces are deprecated! Please switch to the *barpolar* trace type. Sets the angular coordinates for legacy polar chart only.", - "role": "data" - }, - "marker": { - "color": { - "valType": "color", - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Area traces are deprecated! Please switch to the *barpolar* trace type. Sets themarkercolor. It accepts either a specific color or an array of numbers that are mapped to the colorscale relative to the max and min values of the array or relative to `marker.cmin` and `marker.cmax` if set." - }, - "size": { - "valType": "number", - "min": 0, - "dflt": 6, - "arrayOk": true, - "role": "style", - "editType": "calc", - "description": "Area traces are deprecated! Please switch to the *barpolar* trace type. Sets the marker size (in px)." - }, - "symbol": { - "valType": "enumerated", - "values": [ - 0, - "0", - "circle", - 100, - "100", - "circle-open", - 200, - "200", - "circle-dot", - 300, - "300", - "circle-open-dot", - 1, - "1", - "square", - 101, - "101", - "square-open", - 201, - "201", - "square-dot", - 301, - "301", - "square-open-dot", - 2, - "2", - "diamond", - 102, - "102", - "diamond-open", - 202, - "202", - "diamond-dot", - 302, - "302", - "diamond-open-dot", - 3, - "3", - "cross", - 103, - "103", - "cross-open", - 203, - "203", - "cross-dot", - 303, - "303", - "cross-open-dot", - 4, - "4", - "x", - 104, - "104", - "x-open", - 204, - "204", - "x-dot", - 304, - "304", - "x-open-dot", - 5, - "5", - "triangle-up", - 105, - "105", - "triangle-up-open", - 205, - "205", - "triangle-up-dot", - 305, - "305", - "triangle-up-open-dot", - 6, - "6", - "triangle-down", - 106, - "106", - "triangle-down-open", - 206, - "206", - "triangle-down-dot", - 306, - "306", - "triangle-down-open-dot", - 7, - "7", - "triangle-left", - 107, - "107", - "triangle-left-open", - 207, - "207", - "triangle-left-dot", - 307, - "307", - "triangle-left-open-dot", - 8, - "8", - "triangle-right", - 108, - "108", - "triangle-right-open", - 208, - "208", - "triangle-right-dot", - 308, - "308", - "triangle-right-open-dot", - 9, - "9", - "triangle-ne", - 109, - "109", - "triangle-ne-open", - 209, - "209", - "triangle-ne-dot", - 309, - "309", - "triangle-ne-open-dot", - 10, - "10", - "triangle-se", - 110, - "110", - "triangle-se-open", - 210, - "210", - "triangle-se-dot", - 310, - "310", - "triangle-se-open-dot", - 11, - "11", - "triangle-sw", - 111, - "111", - "triangle-sw-open", - 211, - "211", - "triangle-sw-dot", - 311, - "311", - "triangle-sw-open-dot", - 12, - "12", - "triangle-nw", - 112, - "112", - "triangle-nw-open", - 212, - "212", - "triangle-nw-dot", - 312, - "312", - "triangle-nw-open-dot", - 13, - "13", - "pentagon", - 113, - "113", - "pentagon-open", - 213, - "213", - "pentagon-dot", - 313, - "313", - "pentagon-open-dot", - 14, - "14", - "hexagon", - 114, - "114", - "hexagon-open", - 214, - "214", - "hexagon-dot", - 314, - "314", - "hexagon-open-dot", - 15, - "15", - "hexagon2", - 115, - "115", - "hexagon2-open", - 215, - "215", - "hexagon2-dot", - 315, - "315", - "hexagon2-open-dot", - 16, - "16", - "octagon", - 116, - "116", - "octagon-open", - 216, - "216", - "octagon-dot", - 316, - "316", - "octagon-open-dot", - 17, - "17", - "star", - 117, - "117", - "star-open", - 217, - "217", - "star-dot", - 317, - "317", - "star-open-dot", - 18, - "18", - "hexagram", - 118, - "118", - "hexagram-open", - 218, - "218", - "hexagram-dot", - 318, - "318", - "hexagram-open-dot", - 19, - "19", - "star-triangle-up", - 119, - "119", - "star-triangle-up-open", - 219, - "219", - "star-triangle-up-dot", - 319, - "319", - "star-triangle-up-open-dot", - 20, - "20", - "star-triangle-down", - 120, - "120", - "star-triangle-down-open", - 220, - "220", - "star-triangle-down-dot", - 320, - "320", - "star-triangle-down-open-dot", - 21, - "21", - "star-square", - 121, - "121", - "star-square-open", - 221, - "221", - "star-square-dot", - 321, - "321", - "star-square-open-dot", - 22, - "22", - "star-diamond", - 122, - "122", - "star-diamond-open", - 222, - "222", - "star-diamond-dot", - 322, - "322", - "star-diamond-open-dot", - 23, - "23", - "diamond-tall", - 123, - "123", - "diamond-tall-open", - 223, - "223", - "diamond-tall-dot", - 323, - "323", - "diamond-tall-open-dot", - 24, - "24", - "diamond-wide", - 124, - "124", - "diamond-wide-open", - 224, - "224", - "diamond-wide-dot", - 324, - "324", - "diamond-wide-open-dot", - 25, - "25", - "hourglass", - 125, - "125", - "hourglass-open", - 26, - "26", - "bowtie", - 126, - "126", - "bowtie-open", - 27, - "27", - "circle-cross", - 127, - "127", - "circle-cross-open", - 28, - "28", - "circle-x", - 128, - "128", - "circle-x-open", - 29, - "29", - "square-cross", - 129, - "129", - "square-cross-open", - 30, - "30", - "square-x", - 130, - "130", - "square-x-open", - 31, - "31", - "diamond-cross", - 131, - "131", - "diamond-cross-open", - 32, - "32", - "diamond-x", - 132, - "132", - "diamond-x-open", - 33, - "33", - "cross-thin", - 133, - "133", - "cross-thin-open", - 34, - "34", - "x-thin", - 134, - "134", - "x-thin-open", - 35, - "35", - "asterisk", - 135, - "135", - "asterisk-open", - 36, - "36", - "hash", - 136, - "136", - "hash-open", - 236, - "236", - "hash-dot", - 336, - "336", - "hash-open-dot", - 37, - "37", - "y-up", - 137, - "137", - "y-up-open", - 38, - "38", - "y-down", - 138, - "138", - "y-down-open", - 39, - "39", - "y-left", - 139, - "139", - "y-left-open", - 40, - "40", - "y-right", - 140, - "140", - "y-right-open", - 41, - "41", - "line-ew", - 141, - "141", - "line-ew-open", - 42, - "42", - "line-ns", - 142, - "142", - "line-ns-open", - 43, - "43", - "line-ne", - 143, - "143", - "line-ne-open", - 44, - "44", - "line-nw", - 144, - "144", - "line-nw-open", - 45, - "45", - "arrow-up", - 145, - "145", - "arrow-up-open", - 46, - "46", - "arrow-down", - 146, - "146", - "arrow-down-open", - 47, - "47", - "arrow-left", - 147, - "147", - "arrow-left-open", - 48, - "48", - "arrow-right", - 148, - "148", - "arrow-right-open", - 49, - "49", - "arrow-bar-up", - 149, - "149", - "arrow-bar-up-open", - 50, - "50", - "arrow-bar-down", - 150, - "150", - "arrow-bar-down-open", - 51, - "51", - "arrow-bar-left", - 151, - "151", - "arrow-bar-left-open", - 52, - "52", - "arrow-bar-right", - 152, - "152", - "arrow-bar-right-open" - ], - "dflt": "circle", - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Area traces are deprecated! Please switch to the *barpolar* trace type. Sets the marker symbol type. Adding 100 is equivalent to appending *-open* to a symbol name. Adding 200 is equivalent to appending *-dot* to a symbol name. Adding 300 is equivalent to appending *-open-dot* or *dot-open* to a symbol name." - }, - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "arrayOk": true, - "role": "style", - "editType": "style", - "description": "Area traces are deprecated! Please switch to the *barpolar* trace type. Sets the marker opacity." - }, - "editType": "calc", - "role": "object", - "colorsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for color .", - "editType": "none" - }, - "sizesrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for size .", - "editType": "none" - }, - "symbolsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for symbol .", - "editType": "none" - }, - "opacitysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for opacity .", - "editType": "none" - } - }, - "idssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ids .", - "editType": "none" - }, - "customdatasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for customdata .", - "editType": "none" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - }, - "hoverinfosrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for hoverinfo .", - "editType": "none" - }, - "rsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for r .", - "editType": "none" - }, - "tsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for t .", - "editType": "none" - } - } - } + "editType": "plot", + "role": "object" + }, + "name": { + "valType": "string", + "editType": "plot", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "plot", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "editType": "plot", + "role": "object" + } + }, + "role": "object" }, - "layout": { - "layoutAttributes": { - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "dflt": "\"Open Sans\", verdana, arial, sans-serif" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc", - "dflt": 12 - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc", - "dflt": "#444" - }, - "editType": "calc", - "description": "Sets the global font. Note that fonts used in traces and other layout components inherit from the global font.", - "role": "object" - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "editType": "layoutstyle", - "description": "Sets the plot's title. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "layoutstyle", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "layoutstyle" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "layoutstyle" - }, - "editType": "layoutstyle", - "description": "Sets the title font. Note that the title's font used to be customized by the now deprecated `titlefont` attribute.", - "role": "object" - }, - "xref": { - "valType": "enumerated", - "dflt": "container", - "values": [ - "container", - "paper" - ], - "role": "info", - "editType": "layoutstyle", - "description": "Sets the container `x` refers to. *container* spans the entire `width` of the plot. *paper* refers to the width of the plotting area only." - }, - "yref": { - "valType": "enumerated", - "dflt": "container", - "values": [ - "container", - "paper" - ], - "role": "info", - "editType": "layoutstyle", - "description": "Sets the container `y` refers to. *container* spans the entire `height` of the plot. *paper* refers to the height of the plotting area only." - }, - "x": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": 0.5, - "role": "style", - "editType": "layoutstyle", - "description": "Sets the x position with respect to `xref` in normalized coordinates from *0* (left) to *1* (right)." - }, - "y": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": "auto", - "role": "style", - "editType": "layoutstyle", - "description": "Sets the y position with respect to `yref` in normalized coordinates from *0* (bottom) to *1* (top). *auto* places the baseline of the title onto the vertical center of the top margin." - }, - "xanchor": { - "valType": "enumerated", - "dflt": "auto", - "values": [ - "auto", - "left", - "center", - "right" - ], - "role": "info", - "editType": "layoutstyle", - "description": "Sets the title's horizontal alignment with respect to its x position. *left* means that the title starts at x, *right* means that the title ends at x and *center* means that the title's center is at x. *auto* divides `xref` by three and calculates the `xanchor` value automatically based on the value of `x`." - }, - "yanchor": { - "valType": "enumerated", - "dflt": "auto", - "values": [ - "auto", - "top", - "middle", - "bottom" - ], - "role": "info", - "editType": "layoutstyle", - "description": "Sets the title's vertical alignment with respect to its y position. *top* means that the title's cap line is at y, *bottom* means that the title's baseline is at y and *middle* means that the title's midline is at y. *auto* divides `yref` by three and calculates the `yanchor` value automatically based on the value of `y`." - }, - "pad": { - "t": { - "valType": "number", - "dflt": 0, - "role": "style", - "editType": "layoutstyle", - "description": "The amount of padding (in px) along the top of the component." - }, - "r": { - "valType": "number", - "dflt": 0, - "role": "style", - "editType": "layoutstyle", - "description": "The amount of padding (in px) on the right side of the component." - }, - "b": { - "valType": "number", - "dflt": 0, - "role": "style", - "editType": "layoutstyle", - "description": "The amount of padding (in px) along the bottom of the component." - }, - "l": { - "valType": "number", - "dflt": 0, - "role": "style", - "editType": "layoutstyle", - "description": "The amount of padding (in px) on the left side of the component." - }, - "editType": "layoutstyle", - "description": "Sets the padding of the title. Each padding value only applies when the corresponding `xanchor`/`yanchor` value is set accordingly. E.g. for left padding to take effect, `xanchor` must be set to *left*. The same rule applies if `xanchor`/`yanchor` is determined automatically. Padding is muted if the respective anchor value is *middle*/*center*.", - "role": "object" - }, - "editType": "layoutstyle", - "role": "object" - }, - "uniformtext": { - "mode": { - "valType": "enumerated", - "values": [ - false, - "hide", - "show" - ], - "dflt": false, - "role": "info", - "editType": "plot", - "description": "Determines how the font size for various text elements are uniformed between each trace type. If the computed text sizes were smaller than the minimum size defined by `uniformtext.minsize` using *hide* option hides the text; and using *show* option shows the text without further downscaling. Please note that if the size defined by `minsize` is greater than the font size defined by trace, then the `minsize` is used." - }, - "minsize": { - "valType": "number", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "plot", - "description": "Sets the minimum text size between traces of the same type." - }, - "editType": "plot", - "role": "object" - }, - "autosize": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "none", - "description": "Determines whether or not a layout width or height that has been left undefined by the user is initialized on each relayout. Note that, regardless of this attribute, an undefined layout width or height is always initialized on the first call to plot." - }, - "width": { - "valType": "number", - "role": "info", - "min": 10, - "dflt": 700, - "editType": "plot", - "description": "Sets the plot's width (in px)." - }, - "height": { - "valType": "number", - "role": "info", - "min": 10, - "dflt": 450, - "editType": "plot", - "description": "Sets the plot's height (in px)." - }, - "margin": { - "l": { - "valType": "number", - "role": "info", - "min": 0, - "dflt": 80, - "editType": "plot", - "description": "Sets the left margin (in px)." - }, - "r": { - "valType": "number", - "role": "info", - "min": 0, - "dflt": 80, - "editType": "plot", - "description": "Sets the right margin (in px)." - }, - "t": { - "valType": "number", - "role": "info", - "min": 0, - "dflt": 100, - "editType": "plot", - "description": "Sets the top margin (in px)." - }, - "b": { - "valType": "number", - "role": "info", - "min": 0, - "dflt": 80, - "editType": "plot", - "description": "Sets the bottom margin (in px)." - }, - "pad": { - "valType": "number", - "role": "info", - "min": 0, - "dflt": 0, - "editType": "plot", - "description": "Sets the amount of padding (in px) between the plotting area and the axis lines" - }, - "autoexpand": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "plot", - "description": "Turns on/off margin expansion computations. Legends, colorbars, updatemenus, sliders, axis rangeselector and rangeslider are allowed to push the margins by defaults." - }, - "editType": "plot", - "role": "object" - }, - "computed": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Placeholder for exporting automargin-impacting values namely `margin.t`, `margin.b`, `margin.l` and `margin.r` in *full-json* mode." - }, - "paper_bgcolor": { - "valType": "color", - "role": "style", - "dflt": "#fff", - "editType": "plot", - "description": "Sets the background color of the paper where the graph is drawn." - }, - "plot_bgcolor": { - "valType": "color", - "role": "style", - "dflt": "#fff", - "editType": "layoutstyle", - "description": "Sets the background color of the plotting area in-between x and y axes." - }, - "autotypenumbers": { - "valType": "enumerated", - "values": [ - "convert types", - "strict" - ], - "dflt": "convert types", - "role": "info", - "editType": "calc", - "description": "Using *strict* a numeric string in trace data is not converted to a number. Using *convert types* a numeric string in trace data may be treated as a number during automatic axis `type` detection. This is the default value; however it could be overridden for individual axes." - }, - "separators": { - "valType": "string", - "role": "style", - "editType": "plot", - "description": "Sets the decimal and thousand separators. For example, *. * puts a '.' before decimals and a space between thousands. In English locales, dflt is *.,* but other locales may alter this default." - }, - "hidesources": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "plot", - "description": "Determines whether or not a text link citing the data source is placed at the bottom-right cored of the figure. Has only an effect only on graphs that have been generated via forked graphs from the Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise)." - }, - "showlegend": { - "valType": "boolean", - "role": "info", - "editType": "legend", - "description": "Determines whether or not a legend is drawn. Default is `true` if there is a trace to show and any of these: a) Two or more traces would by default be shown in the legend. b) One pie trace is shown in the legend. c) One trace is explicitly given with `showlegend: true`." - }, - "colorway": { - "valType": "colorlist", - "dflt": [ - "#1f77b4", - "#ff7f0e", - "#2ca02c", - "#d62728", - "#9467bd", - "#8c564b", - "#e377c2", - "#7f7f7f", - "#bcbd22", - "#17becf" - ], - "role": "style", - "editType": "calc", - "description": "Sets the default trace colors." - }, - "datarevision": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "If provided, a changed value tells `Plotly.react` that one or more data arrays has changed. This way you can modify arrays in-place rather than making a complete new copy for an incremental change. If NOT provided, `Plotly.react` assumes that data arrays are being treated as immutable, thus any data array with a different identity from its predecessor contains new data." - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Used to allow user interactions with the plot to persist after `Plotly.react` calls that are unaware of these interactions. If `uirevision` is omitted, or if it is given and it changed from the previous `Plotly.react` call, the exact new figure is used. If `uirevision` is truthy and did NOT change, any attribute that has been affected by user interactions and did not receive a different value in the new figure will keep the interaction value. `layout.uirevision` attribute serves as the default for `uirevision` attributes in various sub-containers. For finer control you can set these sub-attributes directly. For example, if your app separately controls the data on the x and y axes you might set `xaxis.uirevision=*time*` and `yaxis.uirevision=*cost*`. Then if only the y data is changed, you can update `yaxis.uirevision=*quantity*` and the y axis range will reset but the x axis range will retain any user-driven zoom." - }, - "editrevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of user-driven changes in `editable: true` configuration, other than trace names and axis titles. Defaults to `layout.uirevision`." - }, - "selectionrevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of user-driven changes in selected points from all traces." - }, - "template": { - "valType": "any", - "role": "info", - "editType": "calc", - "description": "Default attributes to be applied to the plot. Templates can be created from existing plots using `Plotly.makeTemplate`, or created manually. They should be objects with format: `{layout: layoutTemplate, data: {[type]: [traceTemplate, ...]}, ...}` `layoutTemplate` and `traceTemplate` are objects matching the attribute structure of `layout` and a data trace. Trace templates are applied cyclically to traces of each type. Container arrays (eg `annotations`) have special handling: An object ending in `defaults` (eg `annotationdefaults`) is applied to each array item. But if an item has a `templateitemname` key we look in the template array for an item with matching `name` and apply that instead. If no matching `name` is found we mark the item invisible. Any named template item not referenced is appended to the end of the array, so you can use this for a watermark annotation or a logo image, for example. To omit one of these items on the plot, make an item with matching `templateitemname` and `visible: false`." - }, - "modebar": { - "orientation": { - "valType": "enumerated", - "values": [ - "v", - "h" - ], - "dflt": "h", - "role": "info", - "editType": "modebar", - "description": "Sets the orientation of the modebar." - }, - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "modebar", - "description": "Sets the background color of the modebar." - }, - "color": { - "valType": "color", - "role": "style", - "editType": "modebar", - "description": "Sets the color of the icons in the modebar." - }, - "activecolor": { - "valType": "color", - "role": "style", - "editType": "modebar", - "description": "Sets the color of the active or hovered on icons in the modebar." - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of user-driven changes related to the modebar, including `hovermode`, `dragmode`, and `showspikes` at both the root level and inside subplots. Defaults to `layout.uirevision`." - }, - "editType": "modebar", - "role": "object" - }, - "newshape": { - "line": { - "color": { - "valType": "color", - "editType": "none", - "role": "info", - "description": "Sets the line color. By default uses either dark grey or white to increase contrast with background color." - }, - "width": { - "valType": "number", - "min": 0, - "dflt": 4, - "role": "info", - "editType": "none", - "description": "Sets the line width (in px)." - }, - "dash": { - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ], - "dflt": "solid", - "role": "style", - "editType": "none", - "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." - }, - "role": "object", - "editType": "none" - }, - "fillcolor": { - "valType": "color", - "dflt": "rgba(0,0,0,0)", - "role": "info", - "editType": "none", - "description": "Sets the color filling new shapes' interior. Please note that if using a fillcolor with alpha greater than half, drag inside the active shape starts moving the shape underneath, otherwise a new shape could be started over." - }, - "fillrule": { - "valType": "enumerated", - "values": [ - "evenodd", - "nonzero" - ], - "dflt": "evenodd", - "role": "info", - "editType": "none", - "description": "Determines the path's interior. For more info please visit https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill-rule" - }, - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": 1, - "role": "info", - "editType": "none", - "description": "Sets the opacity of new shapes." - }, - "layer": { - "valType": "enumerated", - "values": [ - "below", - "above" - ], - "dflt": "above", - "role": "info", - "editType": "none", - "description": "Specifies whether new shapes are drawn below or above traces." - }, - "drawdirection": { - "valType": "enumerated", - "role": "info", - "values": [ - "ortho", - "horizontal", - "vertical", - "diagonal" - ], - "dflt": "diagonal", - "editType": "none", - "description": "When `dragmode` is set to *drawrect*, *drawline* or *drawcircle* this limits the drag to be horizontal, vertical or diagonal. Using *diagonal* there is no limit e.g. in drawing lines in any direction. *ortho* limits the draw to be either horizontal or vertical. *horizontal* allows horizontal extend. *vertical* allows vertical extend." - }, - "editType": "none", - "role": "object" - }, - "activeshape": { - "fillcolor": { - "valType": "color", - "dflt": "rgb(255,0,255)", - "role": "style", - "editType": "none", - "description": "Sets the color filling the active shape' interior." - }, - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": 0.5, - "role": "info", - "editType": "none", - "description": "Sets the opacity of the active shape." - }, - "editType": "none", - "role": "object" - }, - "meta": { - "valType": "any", - "arrayOk": true, - "role": "info", - "editType": "plot", - "description": "Assigns extra meta information that can be used in various `text` attributes. Attributes such as the graph, axis and colorbar `title.text`, annotation `text` `trace.name` in legend items, `rangeselector`, `updatemenus` and `sliders` `label` text all support `meta`. One can access `meta` fields using template strings: `%{meta[i]}` where `i` is the index of the `meta` item in question. `meta` can also be an object for example `{key: value}` which can be accessed %{meta[key]}." - }, - "transition": { - "duration": { - "valType": "number", - "role": "info", - "min": 0, - "dflt": 500, - "editType": "none", - "description": "The duration of the transition, in milliseconds. If equal to zero, updates are synchronous." - }, - "easing": { - "valType": "enumerated", - "dflt": "cubic-in-out", - "values": [ - "linear", - "quad", - "cubic", - "sin", - "exp", - "circle", - "elastic", - "back", - "bounce", - "linear-in", - "quad-in", - "cubic-in", - "sin-in", - "exp-in", - "circle-in", - "elastic-in", - "back-in", - "bounce-in", - "linear-out", - "quad-out", - "cubic-out", - "sin-out", - "exp-out", - "circle-out", - "elastic-out", - "back-out", - "bounce-out", - "linear-in-out", - "quad-in-out", - "cubic-in-out", - "sin-in-out", - "exp-in-out", - "circle-in-out", - "elastic-in-out", - "back-in-out", - "bounce-in-out" - ], - "role": "info", - "editType": "none", - "description": "The easing function used for the transition" - }, - "ordering": { - "valType": "enumerated", - "values": [ - "layout first", - "traces first" - ], - "dflt": "layout first", - "role": "info", - "editType": "none", - "description": "Determines whether the figure's layout or traces smoothly transitions during updates that make both traces and layout change." - }, - "description": "Sets transition options used during Plotly.react updates.", - "editType": "none", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "editType": "layoutstyle", - "description": "Value of `title` is no longer a simple *string* but a set of sub-attributes. To set the contents of the title, please use `title.text` now." - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "layoutstyle", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "layoutstyle" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "layoutstyle" - }, - "editType": "layoutstyle", - "description": "Former `titlefont` is now the sub-attribute `font` of `title`. To customize title font properties, please use `title.font` now." - } - }, - "clickmode": { - "valType": "flaglist", - "role": "info", - "flags": [ - "event", - "select" - ], - "dflt": "event", - "editType": "plot", - "extras": [ - "none" - ], - "description": "Determines the mode of single click interactions. *event* is the default value and emits the `plotly_click` event. In addition this mode emits the `plotly_selected` event in drag modes *lasso* and *select*, but with no event data attached (kept for compatibility reasons). The *select* flag enables selecting single data points via click. This mode also supports persistent selections, meaning that pressing Shift while clicking, adds to / subtracts from an existing selection. *select* with `hovermode`: *x* can be confusing, consider explicitly setting `hovermode`: *closest* when using this feature. Selection events are sent accordingly as long as *event* flag is set as well. When the *event* flag is missing, `plotly_click` and `plotly_selected` events are not fired." - }, - "dragmode": { - "valType": "enumerated", - "role": "info", - "values": [ - "zoom", - "pan", - "select", - "lasso", - "drawclosedpath", - "drawopenpath", - "drawline", - "drawrect", - "drawcircle", - "orbit", - "turntable", - false - ], - "dflt": "zoom", - "editType": "modebar", - "description": "Determines the mode of drag interactions. *select* and *lasso* apply only to scatter traces with markers or text. *orbit* and *turntable* apply only to 3D scenes." - }, - "hovermode": { - "valType": "enumerated", - "role": "info", - "values": [ - "x", - "y", - "closest", - false, - "x unified", - "y unified" - ], - "editType": "modebar", - "description": "Determines the mode of hover interactions. If *closest*, a single hoverlabel will appear for the *closest* point within the `hoverdistance`. If *x* (or *y*), multiple hoverlabels will appear for multiple points at the *closest* x- (or y-) coordinate within the `hoverdistance`, with the caveat that no more than one hoverlabel will appear per trace. If *x unified* (or *y unified*), a single hoverlabel will appear multiple points at the closest x- (or y-) coordinate within the `hoverdistance` with the caveat that no more than one hoverlabel will appear per trace. In this mode, spikelines are enabled by default perpendicular to the specified axis. If false, hover interactions are disabled. If `clickmode` includes the *select* flag, `hovermode` defaults to *closest*. If `clickmode` lacks the *select* flag, it defaults to *x* or *y* (depending on the trace's `orientation` value) for plots based on cartesian coordinates. For anything else the default value is *closest*." - }, - "hoverdistance": { - "valType": "integer", - "min": -1, - "dflt": 20, - "role": "info", - "editType": "none", - "description": "Sets the default distance (in pixels) to look for data to add hover labels (-1 means no cutoff, 0 means no looking for data). This is only a real distance for hovering on point-like objects, like scatter points. For area-like objects (bars, scatter fills, etc) hovering is on inside the area and off outside, but these objects will not supersede hover on point-like objects in case of conflict." - }, - "spikedistance": { - "valType": "integer", - "min": -1, - "dflt": 20, - "role": "info", - "editType": "none", - "description": "Sets the default distance (in pixels) to look for data to draw spikelines to (-1 means no cutoff, 0 means no looking for data). As with hoverdistance, distance does not apply to area-like objects. In addition, some objects can be hovered on but will not generate spikelines, such as scatter fills." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the background color of all hover labels on graph" - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "none", - "description": "Sets the border color of all hover labels on graph." - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "none", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "dflt": "Arial, sans-serif" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "none", - "dflt": 13 - }, - "color": { - "valType": "color", - "role": "style", - "editType": "none" - }, - "editType": "none", - "description": "Sets the default hover label font used by all traces on the graph.", - "role": "object" - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "right", - "auto" - ], - "dflt": "auto", - "role": "style", - "editType": "none", - "description": "Sets the horizontal alignment of the text content within hover label box. Has an effect only if the hover label text spans more two or more lines" - }, - "namelength": { - "valType": "integer", - "min": -1, - "dflt": 15, - "role": "style", - "editType": "none", - "description": "Sets the default length (in number of characters) of the trace name in the hover labels for all traces. -1 shows the whole name regardless of length. 0-3 shows the first 0-3 characters, and an integer >3 will show the whole name if it is less than that many characters, but if it is longer, will truncate to `namelength - 3` characters and add an ellipsis." - }, - "editType": "none", - "role": "object" - }, - "selectdirection": { - "valType": "enumerated", - "role": "info", - "values": [ - "h", - "v", - "d", - "any" - ], - "dflt": "any", - "description": "When `dragmode` is set to *select*, this limits the selection of the drag to horizontal, vertical or diagonal. *h* only allows horizontal selection, *v* only vertical, *d* only diagonal and *any* sets no limit.", - "editType": "none" - }, - "grid": { - "rows": { - "valType": "integer", - "min": 1, - "role": "info", - "editType": "plot", - "description": "The number of rows in the grid. If you provide a 2D `subplots` array or a `yaxes` array, its length is used as the default. But it's also possible to have a different length, if you want to leave a row at the end for non-cartesian subplots." - }, - "roworder": { - "valType": "enumerated", - "values": [ - "top to bottom", - "bottom to top" - ], - "dflt": "top to bottom", - "role": "info", - "editType": "plot", - "description": "Is the first row the top or the bottom? Note that columns are always enumerated from left to right." - }, - "columns": { - "valType": "integer", - "min": 1, - "role": "info", - "editType": "plot", - "description": "The number of columns in the grid. If you provide a 2D `subplots` array, the length of its longest row is used as the default. If you give an `xaxes` array, its length is used as the default. But it's also possible to have a different length, if you want to leave a row at the end for non-cartesian subplots." - }, - "subplots": { - "valType": "info_array", - "freeLength": true, - "dimensions": 2, - "items": { - "valType": "enumerated", - "values": [ - "/^x([2-9]|[1-9][0-9]+)?y([2-9]|[1-9][0-9]+)?$/", - "" - ], - "editType": "plot" - }, - "role": "info", - "editType": "plot", - "description": "Used for freeform grids, where some axes may be shared across subplots but others are not. Each entry should be a cartesian subplot id, like *xy* or *x3y2*, or ** to leave that cell empty. You may reuse x axes within the same column, and y axes within the same row. Non-cartesian subplots and traces that support `domain` can place themselves in this grid separately using the `gridcell` attribute." - }, - "xaxes": { - "valType": "info_array", - "freeLength": true, - "items": { - "valType": "enumerated", - "values": [ - "/^x([2-9]|[1-9][0-9]+)?( domain)?$/", - "" - ], - "editType": "plot" - }, - "role": "info", - "editType": "plot", - "description": "Used with `yaxes` when the x and y axes are shared across columns and rows. Each entry should be an x axis id like *x*, *x2*, etc., or ** to not put an x axis in that column. Entries other than ** must be unique. Ignored if `subplots` is present. If missing but `yaxes` is present, will generate consecutive IDs." - }, - "yaxes": { - "valType": "info_array", - "freeLength": true, - "items": { - "valType": "enumerated", - "values": [ - "/^y([2-9]|[1-9][0-9]+)?( domain)?$/", - "" - ], - "editType": "plot" - }, - "role": "info", - "editType": "plot", - "description": "Used with `yaxes` when the x and y axes are shared across columns and rows. Each entry should be an y axis id like *y*, *y2*, etc., or ** to not put a y axis in that row. Entries other than ** must be unique. Ignored if `subplots` is present. If missing but `xaxes` is present, will generate consecutive IDs." - }, - "pattern": { - "valType": "enumerated", - "values": [ - "independent", - "coupled" - ], - "dflt": "coupled", - "role": "info", - "editType": "plot", - "description": "If no `subplots`, `xaxes`, or `yaxes` are given but we do have `rows` and `columns`, we can generate defaults using consecutive axis IDs, in two ways: *coupled* gives one x axis per column and one y axis per row. *independent* uses a new xy pair for each cell, left-to-right across each row then iterating rows according to `roworder`." - }, - "xgap": { - "valType": "number", - "min": 0, - "max": 1, - "role": "info", - "editType": "plot", - "description": "Horizontal space between grid cells, expressed as a fraction of the total width available to one cell. Defaults to 0.1 for coupled-axes grids and 0.2 for independent grids." - }, - "ygap": { - "valType": "number", - "min": 0, - "max": 1, - "role": "info", - "editType": "plot", - "description": "Vertical space between grid cells, expressed as a fraction of the total height available to one cell. Defaults to 0.1 for coupled-axes grids and 0.3 for independent grids." - }, - "domain": { - "x": { - "valType": "info_array", - "role": "info", - "editType": "plot", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the horizontal domain of this grid subplot (in plot fraction). The first and last cells end exactly at the domain edges, with no grout around the edges." - }, - "y": { - "valType": "info_array", - "role": "info", - "editType": "plot", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the vertical domain of this grid subplot (in plot fraction). The first and last cells end exactly at the domain edges, with no grout around the edges." - }, - "editType": "plot", - "role": "object" - }, - "xside": { - "valType": "enumerated", - "values": [ - "bottom", - "bottom plot", - "top plot", - "top" - ], - "dflt": "bottom plot", - "role": "info", - "editType": "plot", - "description": "Sets where the x axis labels and titles go. *bottom* means the very bottom of the grid. *bottom plot* is the lowest plot that each x axis is used in. *top* and *top plot* are similar." - }, - "yside": { - "valType": "enumerated", - "values": [ - "left", - "left plot", - "right plot", - "right" - ], - "dflt": "left plot", - "role": "info", - "editType": "plot", - "description": "Sets where the y axis labels and titles go. *left* means the very left edge of the grid. *left plot* is the leftmost plot that each y axis is used in. *right* and *right plot* are similar." - }, - "editType": "plot", - "role": "object" - }, - "calendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the default calendar system to use for interpreting and displaying dates throughout the plot." - }, - "xaxis": { - "visible": { - "valType": "boolean", - "role": "info", - "editType": "plot", - "description": "A single toggle to hide the axis while preserving interaction like dragging. Default is true when a cheater plot is present on the axis, otherwise false" - }, - "color": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "ticks", - "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "editType": "ticks", - "description": "Sets the title of this axis. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "ticks", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "ticks" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "ticks" - }, - "editType": "ticks", - "description": "Sets this axis' title font. Note that the title's font used to be customized by the now deprecated `titlefont` attribute.", - "role": "object" - }, - "standoff": { - "valType": "number", - "role": "info", - "min": 0, - "editType": "ticks", - "description": "Sets the standoff distance (in px) between the axis labels and the title text The default value is a function of the axis tick labels, the title `font.size` and the axis `linewidth`. Note that the axis title position is always constrained within the margins, so the actual standoff distance is always less than the set or default value. By setting `standoff` and turning on `automargin`, plotly.js will push the margins to fit the axis title at given standoff distance." - }, - "editType": "ticks", - "role": "object" - }, - "type": { - "valType": "enumerated", - "values": [ - "-", - "linear", - "log", - "date", - "category", - "multicategory" - ], - "dflt": "-", - "role": "info", - "editType": "calc", - "_noTemplating": true, - "description": "Sets the axis type. By default, plotly attempts to determined the axis type by looking into the data of the traces that referenced the axis in question." - }, - "autotypenumbers": { - "valType": "enumerated", - "values": [ - "convert types", - "strict" - ], - "dflt": "convert types", - "role": "info", - "editType": "calc", - "description": "Using *strict* a numeric string in trace data is not converted to a number. Using *convert types* a numeric string in trace data may be treated as a number during automatic axis `type` detection. Defaults to layout.autotypenumbers." - }, - "autorange": { - "valType": "enumerated", - "values": [ - true, - false, - "reversed" - ], - "dflt": true, - "role": "info", - "editType": "axrange", - "impliedEdits": {}, - "description": "Determines whether or not the range of this axis is computed in relation to the input data. See `rangemode` for more info. If `range` is provided, then `autorange` is set to *false*." - }, - "rangemode": { - "valType": "enumerated", - "values": [ - "normal", - "tozero", - "nonnegative" - ], - "dflt": "normal", - "role": "info", - "editType": "plot", - "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes." - }, - "range": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "axrange", - "impliedEdits": { - "^autorange": false - }, - "anim": true - }, - { - "valType": "any", - "editType": "axrange", - "impliedEdits": { - "^autorange": false - }, - "anim": true - } - ], - "editType": "axrange", - "impliedEdits": { - "autorange": false - }, - "anim": true, - "description": "Sets the range of this axis. If the axis `type` is *log*, then you must take the log of your desired range (e.g. to set the range from 1 to 100, set the range from 0 to 2). If the axis `type` is *date*, it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is *category*, it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "fixedrange": { - "valType": "boolean", - "dflt": false, - "role": "info", - "editType": "calc", - "description": "Determines whether or not this axis is zoom-able. If true, then zoom is disabled." - }, - "scaleanchor": { - "valType": "enumerated", - "values": [ - "/^x([2-9]|[1-9][0-9]+)?( domain)?$/", - "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" - ], - "role": "info", - "editType": "plot", - "description": "If set to another axis id (e.g. `x2`, `y`), the range of this axis changes together with the range of the corresponding axis such that the scale of pixels per unit is in a constant ratio. Both axes are still zoomable, but when you zoom one, the other will zoom the same amount, keeping a fixed midpoint. `constrain` and `constraintoward` determine how we enforce the constraint. You can chain these, ie `yaxis: {scaleanchor: *x*}, xaxis2: {scaleanchor: *y*}` but you can only link axes of the same `type`. The linked axis can have the opposite letter (to constrain the aspect ratio) or the same letter (to match scales across subplots). Loops (`yaxis: {scaleanchor: *x*}, xaxis: {scaleanchor: *y*}` or longer) are redundant and the last constraint encountered will be ignored to avoid possible inconsistent constraints via `scaleratio`. Note that setting axes simultaneously in both a `scaleanchor` and a `matches` constraint is currently forbidden." - }, - "scaleratio": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "info", - "editType": "plot", - "description": "If this axis is linked to another by `scaleanchor`, this determines the pixel to unit scale ratio. For example, if this value is 10, then every unit on this axis spans 10 times the number of pixels as a unit on the linked axis. Use this for example to create an elevation profile where the vertical scale is exaggerated a fixed amount with respect to the horizontal." - }, - "constrain": { - "valType": "enumerated", - "values": [ - "range", - "domain" - ], - "role": "info", - "editType": "plot", - "description": "If this axis needs to be compressed (either due to its own `scaleanchor` and `scaleratio` or those of the other axis), determines how that happens: by increasing the *range*, or by decreasing the *domain*. Default is *domain* for axes containing image traces, *range* otherwise." - }, - "constraintoward": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right", - "top", - "middle", - "bottom" - ], - "role": "info", - "editType": "plot", - "description": "If this axis needs to be compressed (either due to its own `scaleanchor` and `scaleratio` or those of the other axis), determines which direction we push the originally specified plot area. Options are *left*, *center* (default), and *right* for x axes, and *top*, *middle* (default), and *bottom* for y axes." - }, - "matches": { - "valType": "enumerated", - "values": [ - "/^x([2-9]|[1-9][0-9]+)?( domain)?$/", - "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" - ], - "role": "info", - "editType": "calc", - "description": "If set to another axis id (e.g. `x2`, `y`), the range of this axis will match the range of the corresponding axis in data-coordinates space. Moreover, matching axes share auto-range values, category lists and histogram auto-bins. Note that setting axes simultaneously in both a `scaleanchor` and a `matches` constraint is currently forbidden. Moreover, note that matching axes must have the same `type`." - }, - "rangebreaks": { - "items": { - "rangebreak": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether this axis rangebreak is enabled or disabled. Please note that `rangebreaks` only work for *date* axis type." - }, - "bounds": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "calc" - }, - { - "valType": "any", - "editType": "calc" - } - ], - "editType": "calc", - "description": "Sets the lower and upper bounds of this axis rangebreak. Can be used with `pattern`." - }, - "pattern": { - "valType": "enumerated", - "values": [ - "day of week", - "hour", - "" - ], - "role": "info", - "editType": "calc", - "description": "Determines a pattern on the time line that generates breaks. If *day of week* - days of the week in English e.g. 'Sunday' or `sun` (matching is case-insensitive and considers only the first three characters), as well as Sunday-based integers between 0 and 6. If *hour* - hour (24-hour clock) as decimal numbers between 0 and 24. for more info. Examples: - { pattern: 'day of week', bounds: [6, 1] } or simply { bounds: ['sat', 'mon'] } breaks from Saturday to Monday (i.e. skips the weekends). - { pattern: 'hour', bounds: [17, 8] } breaks from 5pm to 8am (i.e. skips non-work hours)." - }, - "values": { - "valType": "info_array", - "freeLength": true, - "role": "info", - "editType": "calc", - "items": { - "valType": "any", - "editType": "calc" - }, - "description": "Sets the coordinate values corresponding to the rangebreaks. An alternative to `bounds`. Use `dvalue` to set the size of the values along the axis." - }, - "dvalue": { - "valType": "number", - "role": "info", - "editType": "calc", - "min": 0, - "dflt": 86400000, - "description": "Sets the size of each `values` item. The default is one day in milliseconds." - }, - "editType": "calc", - "name": { - "valType": "string", - "role": "style", - "editType": "none", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "ticks", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "ticks", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "ticks", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "ticks", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "ticks", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "ticks", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "ticks", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines." - }, - "tickson": { - "valType": "enumerated", - "values": [ - "labels", - "boundaries" - ], - "role": "info", - "dflt": "labels", - "editType": "ticks", - "description": "Determines where ticks and grid lines are drawn with respect to their corresponding tick labels. Only has an effect for axes of `type` *category* or *multicategory*. When set to *boundaries*, ticks and grid lines are drawn half a category to the left/bottom of labels." - }, - "ticklabelmode": { - "valType": "enumerated", - "values": [ - "instant", - "period" - ], - "dflt": "instant", - "role": "info", - "editType": "ticks", - "description": "Determines where tick labels are drawn with respect to their corresponding ticks and grid lines. Only has an effect for axes of `type` *date* When set to *period*, tick labels are drawn in the middle of the period between ticks." - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside left", - "inside left", - "outside right", - "inside right", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "editType": "calc", - "description": "Determines where tick labels are drawn with respect to the axis Please note that top or bottom has no effect on x axes or when `ticklabelmode` is set to *period*. Similarly left or right has no effect on y axes or when `ticklabelmode` is set to *period*. Has no effect on *multicategory* axes or when `tickson` is set to *boundaries*. When used on axes linked by `matches` or `scaleanchor`, no extra padding for inside labels would be added by autorange, so that the scales could match." - }, - "mirror": { - "valType": "enumerated", - "values": [ - true, - "ticks", - false, - "all", - "allticks" - ], - "dflt": false, - "role": "style", - "editType": "ticks+layoutstyle", - "description": "Determines if the axis lines or/and ticks are mirrored to the opposite side of the plotting area. If *true*, the axis lines are mirrored. If *ticks*, the axis lines and ticks are mirrored. If *false*, mirroring is disable. If *all*, axis lines are mirrored on all shared-axes subplots. If *allticks*, axis lines and ticks are mirrored on all shared-axes subplots." - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "ticks", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "ticks", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "ticks", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "ticks", - "description": "Determines whether or not the tick labels are drawn." - }, - "automargin": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "ticks", - "description": "Determines whether long tick labels automatically grow the figure margins." - }, - "showspikes": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "modebar", - "description": "Determines whether or not spikes (aka droplines) are drawn for this axis. Note: This only takes affect when hovermode = closest" - }, - "spikecolor": { - "valType": "color", - "dflt": null, - "role": "style", - "editType": "none", - "description": "Sets the spike color. If undefined, will use the series color" - }, - "spikethickness": { - "valType": "number", - "dflt": 3, - "role": "style", - "editType": "none", - "description": "Sets the width (in px) of the zero line." - }, - "spikedash": { - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ], - "dflt": "dash", - "role": "style", - "editType": "none", - "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." - }, - "spikemode": { - "valType": "flaglist", - "flags": [ - "toaxis", - "across", - "marker" - ], - "role": "style", - "dflt": "toaxis", - "editType": "none", - "description": "Determines the drawing mode for the spike line If *toaxis*, the line is drawn from the data point to the axis the series is plotted on. If *across*, the line is drawn across the entire plot area, and supercedes *toaxis*. If *marker*, then a marker dot is drawn on the axis the series is plotted on" - }, - "spikesnap": { - "valType": "enumerated", - "values": [ - "data", - "cursor", - "hovered data" - ], - "dflt": "data", - "role": "style", - "editType": "none", - "description": "Determines whether spikelines are stuck to the cursor or to the closest datapoints." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "ticks", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "ticks" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "ticks" - }, - "editType": "ticks", - "description": "Sets the tick font.", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "ticks", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "ticks", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "ticks", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "ticks", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "ticks", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "ticks", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "ticks", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "ticks", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "ticks", - "description": "If \"true\", even 4-digit integers are separated" - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "ticks", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "ticks", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "ticks" - }, - { - "valType": "any", - "editType": "ticks" - } - ], - "editType": "ticks", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "ticks", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "ticks", - "name": { - "valType": "string", - "role": "style", - "editType": "none", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "hoverformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "none", - "description": "Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "showline": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "ticks+layoutstyle", - "description": "Determines whether or not a line bounding this axis is drawn." - }, - "linecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "layoutstyle", - "description": "Sets the axis line color." - }, - "linewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "ticks+layoutstyle", - "description": "Sets the width (in px) of the axis line." - }, - "showgrid": { - "valType": "boolean", - "role": "style", - "editType": "ticks", - "description": "Determines whether or not grid lines are drawn. If *true*, the grid lines are drawn at every tick mark." - }, - "gridcolor": { - "valType": "color", - "dflt": "#eee", - "role": "style", - "editType": "ticks", - "description": "Sets the color of the grid lines." - }, - "gridwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "ticks", - "description": "Sets the width (in px) of the grid lines." - }, - "zeroline": { - "valType": "boolean", - "role": "style", - "editType": "ticks", - "description": "Determines whether or not a line is drawn at along the 0 value of this axis. If *true*, the zero line is drawn on top of the grid lines." - }, - "zerolinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "ticks", - "description": "Sets the line color of the zero line." - }, - "zerolinewidth": { - "valType": "number", - "dflt": 1, - "role": "style", - "editType": "ticks", - "description": "Sets the width (in px) of the zero line." - }, - "showdividers": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "ticks", - "description": "Determines whether or not a dividers are drawn between the category levels of this axis. Only has an effect on *multicategory* axes." - }, - "dividercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "ticks", - "description": "Sets the color of the dividers Only has an effect on *multicategory* axes." - }, - "dividerwidth": { - "valType": "number", - "dflt": 1, - "role": "style", - "editType": "ticks", - "description": "Sets the width (in px) of the dividers Only has an effect on *multicategory* axes." - }, - "anchor": { - "valType": "enumerated", - "values": [ - "free", - "/^x([2-9]|[1-9][0-9]+)?( domain)?$/", - "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" - ], - "role": "info", - "editType": "plot", - "description": "If set to an opposite-letter axis id (e.g. `x2`, `y`), this axis is bound to the corresponding opposite-letter axis. If set to *free*, this axis' position is determined by `position`." - }, - "side": { - "valType": "enumerated", - "values": [ - "top", - "bottom", - "left", - "right" - ], - "role": "info", - "editType": "plot", - "description": "Determines whether a x (y) axis is positioned at the *bottom* (*left*) or *top* (*right*) of the plotting area." - }, - "overlaying": { - "valType": "enumerated", - "values": [ - "free", - "/^x([2-9]|[1-9][0-9]+)?( domain)?$/", - "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" - ], - "role": "info", - "editType": "plot", - "description": "If set a same-letter axis id, this axis is overlaid on top of the corresponding same-letter axis, with traces and axes visible for both axes. If *false*, this axis does not overlay any same-letter axes. In this case, for axes with overlapping domains only the highest-numbered axis will be visible." - }, - "layer": { - "valType": "enumerated", - "values": [ - "above traces", - "below traces" - ], - "dflt": "above traces", - "role": "info", - "editType": "plot", - "description": "Sets the layer on which this axis is displayed. If *above traces*, this axis is displayed above all the subplot's traces If *below traces*, this axis is displayed below all the subplot's traces, but above the grid lines. Useful when used together with scatter-like traces with `cliponaxis` set to *false* to show markers and/or text nodes above this axis." - }, - "domain": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - } - ], - "dflt": [ - 0, - 1 - ], - "editType": "plot", - "description": "Sets the domain of this axis (in plot fraction)." - }, - "position": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": 0, - "role": "style", - "editType": "plot", - "description": "Sets the position of this axis in the plotting space (in normalized coordinates). Only has an effect if `anchor` is set to *free*." - }, - "categoryorder": { - "valType": "enumerated", - "values": [ - "trace", - "category ascending", - "category descending", - "array", - "total ascending", - "total descending", - "min ascending", - "min descending", - "max ascending", - "max descending", - "sum ascending", - "sum descending", - "mean ascending", - "mean descending", - "median ascending", - "median descending" - ], - "dflt": "trace", - "role": "info", - "editType": "calc", - "description": "Specifies the ordering logic for the case of categorical variables. By default, plotly uses *trace*, which specifies the order that is present in the data supplied. Set `categoryorder` to *category ascending* or *category descending* if order should be determined by the alphanumerical order of the category names. Set `categoryorder` to *array* to derive the ordering from the attribute `categoryarray`. If a category is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to the *trace* mode. The unspecified categories will follow the categories in `categoryarray`. Set `categoryorder` to *total ascending* or *total descending* if order should be determined by the numerical order of the values. Similarly, the order can be determined by the min, max, sum, mean or median of all the values." - }, - "categoryarray": { - "valType": "data_array", - "role": "data", - "editType": "calc", - "description": "Sets the order in which categories on this axis appear. Only has an effect if `categoryorder` is set to *array*. Used with `categoryorder`." - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of user-driven changes in axis `range`, `autorange`, and `title` if in `editable: true` configuration. Defaults to `layout.uirevision`." - }, - "editType": "calc", - "_deprecated": { - "autotick": { - "valType": "boolean", - "role": "info", - "editType": "ticks", - "description": "Obsolete. Set `tickmode` to *auto* for old `autotick` *true* behavior. Set `tickmode` to *linear* for `autotick` *false*." - }, - "title": { - "valType": "string", - "role": "info", - "editType": "ticks", - "description": "Value of `title` is no longer a simple *string* but a set of sub-attributes. To set the axis' title, please use `title.text` now." - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "ticks", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "ticks" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "ticks" - }, - "editType": "ticks", - "description": "Former `titlefont` is now the sub-attribute `font` of `title`. To customize title font properties, please use `title.font` now." - } - }, - "rangeslider": { - "bgcolor": { - "valType": "color", - "dflt": "#fff", - "role": "style", - "editType": "plot", - "description": "Sets the background color of the range slider." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets the border color of the range slider." - }, - "borderwidth": { - "valType": "integer", - "dflt": 0, - "min": 0, - "role": "style", - "editType": "plot", - "description": "Sets the border width of the range slider." - }, - "autorange": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the range slider range is computed in relation to the input data. If `range` is provided, then `autorange` is set to *false*." - }, - "range": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "calc", - "impliedEdits": { - "^autorange": false - } - }, - { - "valType": "any", - "editType": "calc", - "impliedEdits": { - "^autorange": false - } - } - ], - "editType": "calc", - "impliedEdits": { - "autorange": false - }, - "description": "Sets the range of the range slider. If not set, defaults to the full xaxis range. If the axis `type` is *log*, then you must take the log of your desired range. If the axis `type` is *date*, it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is *category*, it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "thickness": { - "valType": "number", - "dflt": 0.15, - "min": 0, - "max": 1, - "role": "style", - "editType": "plot", - "description": "The height of the range slider as a fraction of the total plot area height." - }, - "visible": { - "valType": "boolean", - "dflt": true, - "role": "info", - "editType": "calc", - "description": "Determines whether or not the range slider will be visible. If visible, perpendicular axes will be set to `fixedrange`" - }, - "editType": "calc", - "yaxis": { - "_isSubplotObj": true, - "rangemode": { - "valType": "enumerated", - "values": [ - "auto", - "fixed", - "match" - ], - "dflt": "match", - "role": "style", - "editType": "calc", - "description": "Determines whether or not the range of this axis in the rangeslider use the same value than in the main plot when zooming in/out. If *auto*, the autorange will be used. If *fixed*, the `range` is used. If *match*, the current range of the corresponding y-axis on the main subplot is used." - }, - "range": { - "valType": "info_array", - "role": "style", - "items": [ - { - "valType": "any", - "editType": "plot" - }, - { - "valType": "any", - "editType": "plot" - } - ], - "editType": "plot", - "description": "Sets the range of this axis for the rangeslider." - }, - "editType": "calc", - "role": "object" - }, - "role": "object" - }, - "rangeselector": { - "visible": { - "valType": "boolean", - "role": "info", - "editType": "plot", - "description": "Determines whether or not this range selector is visible. Note that range selectors are only available for x axes of `type` set to or auto-typed to *date*." - }, - "buttons": { - "items": { - "button": { - "visible": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "plot", - "description": "Determines whether or not this button is visible." - }, - "step": { - "valType": "enumerated", - "role": "info", - "values": [ - "month", - "year", - "day", - "hour", - "minute", - "second", - "all" - ], - "dflt": "month", - "editType": "plot", - "description": "The unit of measurement that the `count` value will set the range by." - }, - "stepmode": { - "valType": "enumerated", - "role": "info", - "values": [ - "backward", - "todate" - ], - "dflt": "backward", - "editType": "plot", - "description": "Sets the range update mode. If *backward*, the range update shifts the start of range back *count* times *step* milliseconds. If *todate*, the range update shifts the start of range back to the first timestamp from *count* times *step* milliseconds back. For example, with `step` set to *year* and `count` set to *1* the range update shifts the start of the range back to January 01 of the current year. Month and year *todate* are currently available only for the built-in (Gregorian) calendar." - }, - "count": { - "valType": "number", - "role": "info", - "min": 0, - "dflt": 1, - "editType": "plot", - "description": "Sets the number of steps to take to update the range. Use with `step` to specify the update interval." - }, - "label": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Sets the text label to appear on the button." - }, - "editType": "plot", - "description": "Sets the specifications for each buttons. By default, a range selector comes with no buttons.", - "name": { - "valType": "string", - "role": "style", - "editType": "none", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "x": { - "valType": "number", - "min": -2, - "max": 3, - "role": "style", - "editType": "plot", - "description": "Sets the x position (in normalized coordinates) of the range selector." - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "auto", - "left", - "center", - "right" - ], - "dflt": "left", - "role": "info", - "editType": "plot", - "description": "Sets the range selector's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the range selector." - }, - "y": { - "valType": "number", - "min": -2, - "max": 3, - "role": "style", - "editType": "plot", - "description": "Sets the y position (in normalized coordinates) of the range selector." - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "auto", - "top", - "middle", - "bottom" - ], - "dflt": "bottom", - "role": "info", - "editType": "plot", - "description": "Sets the range selector's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the range selector." - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Sets the font of the range selector button text.", - "role": "object" - }, - "bgcolor": { - "valType": "color", - "dflt": "#eee", - "role": "style", - "editType": "plot", - "description": "Sets the background color of the range selector buttons." - }, - "activecolor": { - "valType": "color", - "role": "style", - "editType": "plot", - "description": "Sets the background color of the active range selector button." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets the color of the border enclosing the range selector." - }, - "borderwidth": { - "valType": "number", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the border enclosing the range selector." - }, - "editType": "plot", - "role": "object" - }, - "calendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use for `range` and `tick0` if this is a date axis. This does not set the calendar for interpreting data on this axis, that's specified in the trace or via the global `layout.calendar`" - }, - "_isSubplotObj": true, - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - }, - "categoryarraysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for categoryarray .", - "editType": "none" - } - }, - "yaxis": { - "visible": { - "valType": "boolean", - "role": "info", - "editType": "plot", - "description": "A single toggle to hide the axis while preserving interaction like dragging. Default is true when a cheater plot is present on the axis, otherwise false" - }, - "color": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "ticks", - "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "editType": "ticks", - "description": "Sets the title of this axis. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "ticks", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "ticks" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "ticks" - }, - "editType": "ticks", - "description": "Sets this axis' title font. Note that the title's font used to be customized by the now deprecated `titlefont` attribute.", - "role": "object" - }, - "standoff": { - "valType": "number", - "role": "info", - "min": 0, - "editType": "ticks", - "description": "Sets the standoff distance (in px) between the axis labels and the title text The default value is a function of the axis tick labels, the title `font.size` and the axis `linewidth`. Note that the axis title position is always constrained within the margins, so the actual standoff distance is always less than the set or default value. By setting `standoff` and turning on `automargin`, plotly.js will push the margins to fit the axis title at given standoff distance." - }, - "editType": "ticks", - "role": "object" - }, - "type": { - "valType": "enumerated", - "values": [ - "-", - "linear", - "log", - "date", - "category", - "multicategory" - ], - "dflt": "-", - "role": "info", - "editType": "calc", - "_noTemplating": true, - "description": "Sets the axis type. By default, plotly attempts to determined the axis type by looking into the data of the traces that referenced the axis in question." - }, - "autotypenumbers": { - "valType": "enumerated", - "values": [ - "convert types", - "strict" - ], - "dflt": "convert types", - "role": "info", - "editType": "calc", - "description": "Using *strict* a numeric string in trace data is not converted to a number. Using *convert types* a numeric string in trace data may be treated as a number during automatic axis `type` detection. Defaults to layout.autotypenumbers." - }, - "autorange": { - "valType": "enumerated", - "values": [ - true, - false, - "reversed" - ], - "dflt": true, - "role": "info", - "editType": "axrange", - "impliedEdits": {}, - "description": "Determines whether or not the range of this axis is computed in relation to the input data. See `rangemode` for more info. If `range` is provided, then `autorange` is set to *false*." - }, - "rangemode": { - "valType": "enumerated", - "values": [ - "normal", - "tozero", - "nonnegative" - ], - "dflt": "normal", - "role": "info", - "editType": "plot", - "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes." - }, - "range": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "axrange", - "impliedEdits": { - "^autorange": false - }, - "anim": true - }, - { - "valType": "any", - "editType": "axrange", - "impliedEdits": { - "^autorange": false - }, - "anim": true - } - ], - "editType": "axrange", - "impliedEdits": { - "autorange": false - }, - "anim": true, - "description": "Sets the range of this axis. If the axis `type` is *log*, then you must take the log of your desired range (e.g. to set the range from 1 to 100, set the range from 0 to 2). If the axis `type` is *date*, it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is *category*, it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "fixedrange": { - "valType": "boolean", - "dflt": false, - "role": "info", - "editType": "calc", - "description": "Determines whether or not this axis is zoom-able. If true, then zoom is disabled." - }, - "scaleanchor": { - "valType": "enumerated", - "values": [ - "/^x([2-9]|[1-9][0-9]+)?( domain)?$/", - "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" - ], - "role": "info", - "editType": "plot", - "description": "If set to another axis id (e.g. `x2`, `y`), the range of this axis changes together with the range of the corresponding axis such that the scale of pixels per unit is in a constant ratio. Both axes are still zoomable, but when you zoom one, the other will zoom the same amount, keeping a fixed midpoint. `constrain` and `constraintoward` determine how we enforce the constraint. You can chain these, ie `yaxis: {scaleanchor: *x*}, xaxis2: {scaleanchor: *y*}` but you can only link axes of the same `type`. The linked axis can have the opposite letter (to constrain the aspect ratio) or the same letter (to match scales across subplots). Loops (`yaxis: {scaleanchor: *x*}, xaxis: {scaleanchor: *y*}` or longer) are redundant and the last constraint encountered will be ignored to avoid possible inconsistent constraints via `scaleratio`. Note that setting axes simultaneously in both a `scaleanchor` and a `matches` constraint is currently forbidden." - }, - "scaleratio": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "info", - "editType": "plot", - "description": "If this axis is linked to another by `scaleanchor`, this determines the pixel to unit scale ratio. For example, if this value is 10, then every unit on this axis spans 10 times the number of pixels as a unit on the linked axis. Use this for example to create an elevation profile where the vertical scale is exaggerated a fixed amount with respect to the horizontal." - }, - "constrain": { - "valType": "enumerated", - "values": [ - "range", - "domain" - ], - "role": "info", - "editType": "plot", - "description": "If this axis needs to be compressed (either due to its own `scaleanchor` and `scaleratio` or those of the other axis), determines how that happens: by increasing the *range*, or by decreasing the *domain*. Default is *domain* for axes containing image traces, *range* otherwise." - }, - "constraintoward": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right", - "top", - "middle", - "bottom" - ], - "role": "info", - "editType": "plot", - "description": "If this axis needs to be compressed (either due to its own `scaleanchor` and `scaleratio` or those of the other axis), determines which direction we push the originally specified plot area. Options are *left*, *center* (default), and *right* for x axes, and *top*, *middle* (default), and *bottom* for y axes." - }, - "matches": { - "valType": "enumerated", - "values": [ - "/^x([2-9]|[1-9][0-9]+)?( domain)?$/", - "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" - ], - "role": "info", - "editType": "calc", - "description": "If set to another axis id (e.g. `x2`, `y`), the range of this axis will match the range of the corresponding axis in data-coordinates space. Moreover, matching axes share auto-range values, category lists and histogram auto-bins. Note that setting axes simultaneously in both a `scaleanchor` and a `matches` constraint is currently forbidden. Moreover, note that matching axes must have the same `type`." - }, - "rangebreaks": { - "items": { - "rangebreak": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether this axis rangebreak is enabled or disabled. Please note that `rangebreaks` only work for *date* axis type." - }, - "bounds": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "calc" - }, - { - "valType": "any", - "editType": "calc" - } - ], - "editType": "calc", - "description": "Sets the lower and upper bounds of this axis rangebreak. Can be used with `pattern`." - }, - "pattern": { - "valType": "enumerated", - "values": [ - "day of week", - "hour", - "" - ], - "role": "info", - "editType": "calc", - "description": "Determines a pattern on the time line that generates breaks. If *day of week* - days of the week in English e.g. 'Sunday' or `sun` (matching is case-insensitive and considers only the first three characters), as well as Sunday-based integers between 0 and 6. If *hour* - hour (24-hour clock) as decimal numbers between 0 and 24. for more info. Examples: - { pattern: 'day of week', bounds: [6, 1] } or simply { bounds: ['sat', 'mon'] } breaks from Saturday to Monday (i.e. skips the weekends). - { pattern: 'hour', bounds: [17, 8] } breaks from 5pm to 8am (i.e. skips non-work hours)." - }, - "values": { - "valType": "info_array", - "freeLength": true, - "role": "info", - "editType": "calc", - "items": { - "valType": "any", - "editType": "calc" - }, - "description": "Sets the coordinate values corresponding to the rangebreaks. An alternative to `bounds`. Use `dvalue` to set the size of the values along the axis." - }, - "dvalue": { - "valType": "number", - "role": "info", - "editType": "calc", - "min": 0, - "dflt": 86400000, - "description": "Sets the size of each `values` item. The default is one day in milliseconds." - }, - "editType": "calc", - "name": { - "valType": "string", - "role": "style", - "editType": "none", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "ticks", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "ticks", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "ticks", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "ticks", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "ticks", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "ticks", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "ticks", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines." - }, - "tickson": { - "valType": "enumerated", - "values": [ - "labels", - "boundaries" - ], - "role": "info", - "dflt": "labels", - "editType": "ticks", - "description": "Determines where ticks and grid lines are drawn with respect to their corresponding tick labels. Only has an effect for axes of `type` *category* or *multicategory*. When set to *boundaries*, ticks and grid lines are drawn half a category to the left/bottom of labels." - }, - "ticklabelmode": { - "valType": "enumerated", - "values": [ - "instant", - "period" - ], - "dflt": "instant", - "role": "info", - "editType": "ticks", - "description": "Determines where tick labels are drawn with respect to their corresponding ticks and grid lines. Only has an effect for axes of `type` *date* When set to *period*, tick labels are drawn in the middle of the period between ticks." - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside left", - "inside left", - "outside right", - "inside right", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "editType": "calc", - "description": "Determines where tick labels are drawn with respect to the axis Please note that top or bottom has no effect on x axes or when `ticklabelmode` is set to *period*. Similarly left or right has no effect on y axes or when `ticklabelmode` is set to *period*. Has no effect on *multicategory* axes or when `tickson` is set to *boundaries*. When used on axes linked by `matches` or `scaleanchor`, no extra padding for inside labels would be added by autorange, so that the scales could match." - }, - "mirror": { - "valType": "enumerated", - "values": [ - true, - "ticks", - false, - "all", - "allticks" - ], - "dflt": false, - "role": "style", - "editType": "ticks+layoutstyle", - "description": "Determines if the axis lines or/and ticks are mirrored to the opposite side of the plotting area. If *true*, the axis lines are mirrored. If *ticks*, the axis lines and ticks are mirrored. If *false*, mirroring is disable. If *all*, axis lines are mirrored on all shared-axes subplots. If *allticks*, axis lines and ticks are mirrored on all shared-axes subplots." - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "ticks", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "ticks", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "ticks", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "ticks", - "description": "Determines whether or not the tick labels are drawn." - }, - "automargin": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "ticks", - "description": "Determines whether long tick labels automatically grow the figure margins." - }, - "showspikes": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "modebar", - "description": "Determines whether or not spikes (aka droplines) are drawn for this axis. Note: This only takes affect when hovermode = closest" - }, - "spikecolor": { - "valType": "color", - "dflt": null, - "role": "style", - "editType": "none", - "description": "Sets the spike color. If undefined, will use the series color" - }, - "spikethickness": { - "valType": "number", - "dflt": 3, - "role": "style", - "editType": "none", - "description": "Sets the width (in px) of the zero line." - }, - "spikedash": { - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ], - "dflt": "dash", - "role": "style", - "editType": "none", - "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." - }, - "spikemode": { - "valType": "flaglist", - "flags": [ - "toaxis", - "across", - "marker" - ], - "role": "style", - "dflt": "toaxis", - "editType": "none", - "description": "Determines the drawing mode for the spike line If *toaxis*, the line is drawn from the data point to the axis the series is plotted on. If *across*, the line is drawn across the entire plot area, and supercedes *toaxis*. If *marker*, then a marker dot is drawn on the axis the series is plotted on" - }, - "spikesnap": { - "valType": "enumerated", - "values": [ - "data", - "cursor", - "hovered data" - ], - "dflt": "data", - "role": "style", - "editType": "none", - "description": "Determines whether spikelines are stuck to the cursor or to the closest datapoints." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "ticks", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "ticks" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "ticks" - }, - "editType": "ticks", - "description": "Sets the tick font.", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "ticks", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "ticks", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "ticks", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "ticks", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "ticks", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "ticks", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "ticks", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "ticks", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "ticks", - "description": "If \"true\", even 4-digit integers are separated" - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "ticks", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "ticks", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "ticks" - }, - { - "valType": "any", - "editType": "ticks" - } - ], - "editType": "ticks", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "ticks", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "ticks", - "name": { - "valType": "string", - "role": "style", - "editType": "none", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "hoverformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "none", - "description": "Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "showline": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "ticks+layoutstyle", - "description": "Determines whether or not a line bounding this axis is drawn." - }, - "linecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "layoutstyle", - "description": "Sets the axis line color." - }, - "linewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "ticks+layoutstyle", - "description": "Sets the width (in px) of the axis line." - }, - "showgrid": { - "valType": "boolean", - "role": "style", - "editType": "ticks", - "description": "Determines whether or not grid lines are drawn. If *true*, the grid lines are drawn at every tick mark." - }, - "gridcolor": { - "valType": "color", - "dflt": "#eee", - "role": "style", - "editType": "ticks", - "description": "Sets the color of the grid lines." - }, - "gridwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "ticks", - "description": "Sets the width (in px) of the grid lines." - }, - "zeroline": { - "valType": "boolean", - "role": "style", - "editType": "ticks", - "description": "Determines whether or not a line is drawn at along the 0 value of this axis. If *true*, the zero line is drawn on top of the grid lines." - }, - "zerolinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "ticks", - "description": "Sets the line color of the zero line." - }, - "zerolinewidth": { - "valType": "number", - "dflt": 1, - "role": "style", - "editType": "ticks", - "description": "Sets the width (in px) of the zero line." - }, - "showdividers": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "ticks", - "description": "Determines whether or not a dividers are drawn between the category levels of this axis. Only has an effect on *multicategory* axes." - }, - "dividercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "ticks", - "description": "Sets the color of the dividers Only has an effect on *multicategory* axes." - }, - "dividerwidth": { - "valType": "number", - "dflt": 1, - "role": "style", - "editType": "ticks", - "description": "Sets the width (in px) of the dividers Only has an effect on *multicategory* axes." - }, - "anchor": { - "valType": "enumerated", - "values": [ - "free", - "/^x([2-9]|[1-9][0-9]+)?( domain)?$/", - "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" - ], - "role": "info", - "editType": "plot", - "description": "If set to an opposite-letter axis id (e.g. `x2`, `y`), this axis is bound to the corresponding opposite-letter axis. If set to *free*, this axis' position is determined by `position`." - }, - "side": { - "valType": "enumerated", - "values": [ - "top", - "bottom", - "left", - "right" - ], - "role": "info", - "editType": "plot", - "description": "Determines whether a x (y) axis is positioned at the *bottom* (*left*) or *top* (*right*) of the plotting area." - }, - "overlaying": { - "valType": "enumerated", - "values": [ - "free", - "/^x([2-9]|[1-9][0-9]+)?( domain)?$/", - "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" - ], - "role": "info", - "editType": "plot", - "description": "If set a same-letter axis id, this axis is overlaid on top of the corresponding same-letter axis, with traces and axes visible for both axes. If *false*, this axis does not overlay any same-letter axes. In this case, for axes with overlapping domains only the highest-numbered axis will be visible." - }, - "layer": { - "valType": "enumerated", - "values": [ - "above traces", - "below traces" - ], - "dflt": "above traces", - "role": "info", - "editType": "plot", - "description": "Sets the layer on which this axis is displayed. If *above traces*, this axis is displayed above all the subplot's traces If *below traces*, this axis is displayed below all the subplot's traces, but above the grid lines. Useful when used together with scatter-like traces with `cliponaxis` set to *false* to show markers and/or text nodes above this axis." - }, - "domain": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - } - ], - "dflt": [ - 0, - 1 - ], - "editType": "plot", - "description": "Sets the domain of this axis (in plot fraction)." - }, - "position": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": 0, - "role": "style", - "editType": "plot", - "description": "Sets the position of this axis in the plotting space (in normalized coordinates). Only has an effect if `anchor` is set to *free*." - }, - "categoryorder": { - "valType": "enumerated", - "values": [ - "trace", - "category ascending", - "category descending", - "array", - "total ascending", - "total descending", - "min ascending", - "min descending", - "max ascending", - "max descending", - "sum ascending", - "sum descending", - "mean ascending", - "mean descending", - "median ascending", - "median descending" - ], - "dflt": "trace", - "role": "info", - "editType": "calc", - "description": "Specifies the ordering logic for the case of categorical variables. By default, plotly uses *trace*, which specifies the order that is present in the data supplied. Set `categoryorder` to *category ascending* or *category descending* if order should be determined by the alphanumerical order of the category names. Set `categoryorder` to *array* to derive the ordering from the attribute `categoryarray`. If a category is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to the *trace* mode. The unspecified categories will follow the categories in `categoryarray`. Set `categoryorder` to *total ascending* or *total descending* if order should be determined by the numerical order of the values. Similarly, the order can be determined by the min, max, sum, mean or median of all the values." - }, - "categoryarray": { - "valType": "data_array", - "role": "data", - "editType": "calc", - "description": "Sets the order in which categories on this axis appear. Only has an effect if `categoryorder` is set to *array*. Used with `categoryorder`." - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of user-driven changes in axis `range`, `autorange`, and `title` if in `editable: true` configuration. Defaults to `layout.uirevision`." - }, - "editType": "calc", - "_deprecated": { - "autotick": { - "valType": "boolean", - "role": "info", - "editType": "ticks", - "description": "Obsolete. Set `tickmode` to *auto* for old `autotick` *true* behavior. Set `tickmode` to *linear* for `autotick` *false*." - }, - "title": { - "valType": "string", - "role": "info", - "editType": "ticks", - "description": "Value of `title` is no longer a simple *string* but a set of sub-attributes. To set the axis' title, please use `title.text` now." - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "ticks", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "ticks" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "ticks" - }, - "editType": "ticks", - "description": "Former `titlefont` is now the sub-attribute `font` of `title`. To customize title font properties, please use `title.font` now." - } - }, - "calendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use for `range` and `tick0` if this is a date axis. This does not set the calendar for interpreting data on this axis, that's specified in the trace or via the global `layout.calendar`" - }, - "_isSubplotObj": true, - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - }, - "categoryarraysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for categoryarray .", - "editType": "none" - } - }, - "ternary": { - "domain": { - "x": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the horizontal domain of this ternary subplot (in plot fraction).", - "editType": "plot" - }, - "y": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the vertical domain of this ternary subplot (in plot fraction).", - "editType": "plot" - }, - "row": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "description": "If there is a layout grid, use the domain for this row in the grid for this ternary subplot .", - "editType": "plot" - }, - "column": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "description": "If there is a layout grid, use the domain for this column in the grid for this ternary subplot .", - "editType": "plot" - }, - "editType": "plot", - "role": "object" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "#fff", - "description": "Set the background color of the subplot", - "editType": "plot" - }, - "sum": { - "valType": "number", - "role": "info", - "dflt": 1, - "min": 0, - "description": "The number each triplet should sum to, and the maximum range of each axis", - "editType": "plot" - }, - "aaxis": { - "title": { - "text": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Sets the title of this axis. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Sets this axis' title font. Note that the title's font used to be customized by the now deprecated `titlefont` attribute.", - "role": "object" - }, - "editType": "plot", - "role": "object" - }, - "color": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "plot", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 1, - "dflt": 6, - "role": "style", - "editType": "plot", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "plot", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "plot", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "plot", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "plot", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "plot", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines." - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "plot", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "plot", - "description": "Determines whether or not the tick labels are drawn." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets a tick label prefix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets a tick label suffix." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "plot", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "plot", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "plot", - "description": "If \"true\", even 4-digit integers are separated" - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Sets the tick font.", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "plot", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "plot", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "plot" - }, - { - "valType": "any", - "editType": "plot" - } - ], - "editType": "plot", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "plot", - "name": { - "valType": "string", - "role": "style", - "editType": "plot", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "hoverformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "showline": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "plot", - "description": "Determines whether or not a line bounding this axis is drawn." - }, - "linecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets the axis line color." - }, - "linewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the axis line." - }, - "showgrid": { - "valType": "boolean", - "role": "style", - "editType": "plot", - "description": "Determines whether or not grid lines are drawn. If *true*, the grid lines are drawn at every tick mark.", - "dflt": true - }, - "gridcolor": { - "valType": "color", - "dflt": "#eee", - "role": "style", - "editType": "plot", - "description": "Sets the color of the grid lines." - }, - "gridwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the grid lines." - }, - "layer": { - "valType": "enumerated", - "values": [ - "above traces", - "below traces" - ], - "dflt": "above traces", - "role": "info", - "editType": "plot", - "description": "Sets the layer on which this axis is displayed. If *above traces*, this axis is displayed above all the subplot's traces If *below traces*, this axis is displayed below all the subplot's traces, but above the grid lines. Useful when used together with scatter-like traces with `cliponaxis` set to *false* to show markers and/or text nodes above this axis." - }, - "min": { - "valType": "number", - "dflt": 0, - "role": "info", - "min": 0, - "description": "The minimum value visible on this axis. The maximum is determined by the sum minus the minimum values of the other two axes. The full view corresponds to all the minima set to zero.", - "editType": "plot" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Value of `title` is no longer a simple *string* but a set of sub-attributes. To set the axis' title, please use `title.text` now." - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Former `titlefont` is now the sub-attribute `font` of `title`. To customize title font properties, please use `title.font` now." - } - }, - "editType": "plot", - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of user-driven changes in axis `min`, and `title` if in `editable: true` configuration. Defaults to `ternary.uirevision`." - }, - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "baxis": { - "title": { - "text": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Sets the title of this axis. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Sets this axis' title font. Note that the title's font used to be customized by the now deprecated `titlefont` attribute.", - "role": "object" - }, - "editType": "plot", - "role": "object" - }, - "color": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "plot", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 1, - "dflt": 6, - "role": "style", - "editType": "plot", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "plot", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "plot", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "plot", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "plot", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "plot", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines." - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "plot", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "plot", - "description": "Determines whether or not the tick labels are drawn." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets a tick label prefix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets a tick label suffix." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "plot", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "plot", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "plot", - "description": "If \"true\", even 4-digit integers are separated" - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Sets the tick font.", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "plot", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "plot", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "plot" - }, - { - "valType": "any", - "editType": "plot" - } - ], - "editType": "plot", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "plot", - "name": { - "valType": "string", - "role": "style", - "editType": "plot", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "hoverformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "showline": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "plot", - "description": "Determines whether or not a line bounding this axis is drawn." - }, - "linecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets the axis line color." - }, - "linewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the axis line." - }, - "showgrid": { - "valType": "boolean", - "role": "style", - "editType": "plot", - "description": "Determines whether or not grid lines are drawn. If *true*, the grid lines are drawn at every tick mark.", - "dflt": true - }, - "gridcolor": { - "valType": "color", - "dflt": "#eee", - "role": "style", - "editType": "plot", - "description": "Sets the color of the grid lines." - }, - "gridwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the grid lines." - }, - "layer": { - "valType": "enumerated", - "values": [ - "above traces", - "below traces" - ], - "dflt": "above traces", - "role": "info", - "editType": "plot", - "description": "Sets the layer on which this axis is displayed. If *above traces*, this axis is displayed above all the subplot's traces If *below traces*, this axis is displayed below all the subplot's traces, but above the grid lines. Useful when used together with scatter-like traces with `cliponaxis` set to *false* to show markers and/or text nodes above this axis." - }, - "min": { - "valType": "number", - "dflt": 0, - "role": "info", - "min": 0, - "description": "The minimum value visible on this axis. The maximum is determined by the sum minus the minimum values of the other two axes. The full view corresponds to all the minima set to zero.", - "editType": "plot" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Value of `title` is no longer a simple *string* but a set of sub-attributes. To set the axis' title, please use `title.text` now." - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Former `titlefont` is now the sub-attribute `font` of `title`. To customize title font properties, please use `title.font` now." - } - }, - "editType": "plot", - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of user-driven changes in axis `min`, and `title` if in `editable: true` configuration. Defaults to `ternary.uirevision`." - }, - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "caxis": { - "title": { - "text": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Sets the title of this axis. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Sets this axis' title font. Note that the title's font used to be customized by the now deprecated `titlefont` attribute.", - "role": "object" - }, - "editType": "plot", - "role": "object" - }, - "color": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "plot", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 1, - "dflt": 6, - "role": "style", - "editType": "plot", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "plot", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "plot", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "plot", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "plot", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "plot", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines." - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "plot", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "plot", - "description": "Determines whether or not the tick labels are drawn." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets a tick label prefix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets a tick label suffix." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "plot", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "plot", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "plot", - "description": "If \"true\", even 4-digit integers are separated" - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Sets the tick font.", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "plot", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "plot", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "plot" - }, - { - "valType": "any", - "editType": "plot" - } - ], - "editType": "plot", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "plot", - "name": { - "valType": "string", - "role": "style", - "editType": "plot", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "hoverformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "showline": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "plot", - "description": "Determines whether or not a line bounding this axis is drawn." - }, - "linecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets the axis line color." - }, - "linewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the axis line." - }, - "showgrid": { - "valType": "boolean", - "role": "style", - "editType": "plot", - "description": "Determines whether or not grid lines are drawn. If *true*, the grid lines are drawn at every tick mark.", - "dflt": true - }, - "gridcolor": { - "valType": "color", - "dflt": "#eee", - "role": "style", - "editType": "plot", - "description": "Sets the color of the grid lines." - }, - "gridwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the grid lines." - }, - "layer": { - "valType": "enumerated", - "values": [ - "above traces", - "below traces" - ], - "dflt": "above traces", - "role": "info", - "editType": "plot", - "description": "Sets the layer on which this axis is displayed. If *above traces*, this axis is displayed above all the subplot's traces If *below traces*, this axis is displayed below all the subplot's traces, but above the grid lines. Useful when used together with scatter-like traces with `cliponaxis` set to *false* to show markers and/or text nodes above this axis." - }, - "min": { - "valType": "number", - "dflt": 0, - "role": "info", - "min": 0, - "description": "The minimum value visible on this axis. The maximum is determined by the sum minus the minimum values of the other two axes. The full view corresponds to all the minima set to zero.", - "editType": "plot" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Value of `title` is no longer a simple *string* but a set of sub-attributes. To set the axis' title, please use `title.text` now." - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Former `titlefont` is now the sub-attribute `font` of `title`. To customize title font properties, please use `title.font` now." - } - }, - "editType": "plot", - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of user-driven changes in axis `min`, and `title` if in `editable: true` configuration. Defaults to `ternary.uirevision`." - }, - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "editType": "plot", - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of user-driven changes in axis `min` and `title`, if not overridden in the individual axes. Defaults to `layout.uirevision`." - }, - "_isSubplotObj": true, - "role": "object" - }, - "scene": { - "_arrayAttrRegexps": [ - {} - ], - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "editType": "plot" - }, - "camera": { - "up": { - "x": { - "valType": "number", - "role": "info", - "dflt": 0, - "editType": "camera" - }, - "y": { - "valType": "number", - "role": "info", - "dflt": 0, - "editType": "camera" - }, - "z": { - "valType": "number", - "role": "info", - "dflt": 1, - "editType": "camera" - }, - "editType": "camera", - "description": "Sets the (x,y,z) components of the 'up' camera vector. This vector determines the up direction of this scene with respect to the page. The default is *{x: 0, y: 0, z: 1}* which means that the z axis points up.", - "role": "object" - }, - "center": { - "x": { - "valType": "number", - "role": "info", - "dflt": 0, - "editType": "camera" - }, - "y": { - "valType": "number", - "role": "info", - "dflt": 0, - "editType": "camera" - }, - "z": { - "valType": "number", - "role": "info", - "dflt": 0, - "editType": "camera" - }, - "editType": "camera", - "description": "Sets the (x,y,z) components of the 'center' camera vector This vector determines the translation (x,y,z) space about the center of this scene. By default, there is no such translation.", - "role": "object" - }, - "eye": { - "x": { - "valType": "number", - "role": "info", - "dflt": 1.25, - "editType": "camera" - }, - "y": { - "valType": "number", - "role": "info", - "dflt": 1.25, - "editType": "camera" - }, - "z": { - "valType": "number", - "role": "info", - "dflt": 1.25, - "editType": "camera" - }, - "editType": "camera", - "description": "Sets the (x,y,z) components of the 'eye' camera vector. This vector determines the view point about the origin of this scene.", - "role": "object" - }, - "projection": { - "type": { - "valType": "enumerated", - "role": "info", - "values": [ - "perspective", - "orthographic" - ], - "dflt": "perspective", - "editType": "calc", - "description": "Sets the projection type. The projection type could be either *perspective* or *orthographic*. The default is *perspective*." - }, - "editType": "calc", - "role": "object" - }, - "editType": "camera", - "role": "object" - }, - "domain": { - "x": { - "valType": "info_array", - "role": "info", - "editType": "plot", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the horizontal domain of this scene subplot (in plot fraction)." - }, - "y": { - "valType": "info_array", - "role": "info", - "editType": "plot", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the vertical domain of this scene subplot (in plot fraction)." - }, - "editType": "plot", - "row": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "plot", - "description": "If there is a layout grid, use the domain for this row in the grid for this scene subplot ." - }, - "column": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "plot", - "description": "If there is a layout grid, use the domain for this column in the grid for this scene subplot ." - }, - "role": "object" - }, - "aspectmode": { - "valType": "enumerated", - "role": "info", - "values": [ - "auto", - "cube", - "data", - "manual" - ], - "dflt": "auto", - "editType": "plot", - "impliedEdits": {}, - "description": "If *cube*, this scene's axes are drawn as a cube, regardless of the axes' ranges. If *data*, this scene's axes are drawn in proportion with the axes' ranges. If *manual*, this scene's axes are drawn in proportion with the input of *aspectratio* (the default behavior if *aspectratio* is provided). If *auto*, this scene's axes are drawn using the results of *data* except when one axis is more than four times the size of the two others, where in that case the results of *cube* are used." - }, - "aspectratio": { - "x": { - "valType": "number", - "role": "info", - "min": 0, - "editType": "plot", - "impliedEdits": { - "^aspectmode": "manual" - } - }, - "y": { - "valType": "number", - "role": "info", - "min": 0, - "editType": "plot", - "impliedEdits": { - "^aspectmode": "manual" - } - }, - "z": { - "valType": "number", - "role": "info", - "min": 0, - "editType": "plot", - "impliedEdits": { - "^aspectmode": "manual" - } - }, - "editType": "plot", - "impliedEdits": { - "aspectmode": "manual", - "role": "object" - }, - "description": "Sets this scene's axis aspectratio.", - "role": "object" - }, - "xaxis": { - "visible": { - "valType": "boolean", - "role": "info", - "editType": "plot", - "description": "A single toggle to hide the axis while preserving interaction like dragging. Default is true when a cheater plot is present on the axis, otherwise false" - }, - "showspikes": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Sets whether or not spikes starting from data points to this axis' wall are shown on hover.", - "editType": "plot" - }, - "spikesides": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Sets whether or not spikes extending from the projection data points to this axis' wall boundaries are shown on hover.", - "editType": "plot" - }, - "spikethickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 2, - "description": "Sets the thickness (in px) of the spikes.", - "editType": "plot" - }, - "spikecolor": { - "valType": "color", - "role": "style", - "dflt": "#444", - "description": "Sets the color of the spikes.", - "editType": "plot" - }, - "showbackground": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Sets whether or not this axis' wall has a background color.", - "editType": "plot" - }, - "backgroundcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(204, 204, 204, 0.5)", - "description": "Sets the background color of this axis' wall.", - "editType": "plot" - }, - "showaxeslabels": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Sets whether or not this axis is labeled", - "editType": "plot" - }, - "color": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." - }, - "categoryorder": { - "valType": "enumerated", - "values": [ - "trace", - "category ascending", - "category descending", - "array", - "total ascending", - "total descending", - "min ascending", - "min descending", - "max ascending", - "max descending", - "sum ascending", - "sum descending", - "mean ascending", - "mean descending", - "median ascending", - "median descending" - ], - "dflt": "trace", - "role": "info", - "editType": "plot", - "description": "Specifies the ordering logic for the case of categorical variables. By default, plotly uses *trace*, which specifies the order that is present in the data supplied. Set `categoryorder` to *category ascending* or *category descending* if order should be determined by the alphanumerical order of the category names. Set `categoryorder` to *array* to derive the ordering from the attribute `categoryarray`. If a category is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to the *trace* mode. The unspecified categories will follow the categories in `categoryarray`. Set `categoryorder` to *total ascending* or *total descending* if order should be determined by the numerical order of the values. Similarly, the order can be determined by the min, max, sum, mean or median of all the values." - }, - "categoryarray": { - "valType": "data_array", - "role": "data", - "editType": "plot", - "description": "Sets the order in which categories on this axis appear. Only has an effect if `categoryorder` is set to *array*. Used with `categoryorder`." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Sets the title of this axis. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Sets this axis' title font. Note that the title's font used to be customized by the now deprecated `titlefont` attribute.", - "role": "object" - }, - "editType": "plot", - "role": "object" - }, - "type": { - "valType": "enumerated", - "values": [ - "-", - "linear", - "log", - "date", - "category" - ], - "dflt": "-", - "role": "info", - "editType": "plot", - "_noTemplating": true, - "description": "Sets the axis type. By default, plotly attempts to determined the axis type by looking into the data of the traces that referenced the axis in question." - }, - "autotypenumbers": { - "valType": "enumerated", - "values": [ - "convert types", - "strict" - ], - "dflt": "convert types", - "role": "info", - "editType": "plot", - "description": "Using *strict* a numeric string in trace data is not converted to a number. Using *convert types* a numeric string in trace data may be treated as a number during automatic axis `type` detection. Defaults to layout.autotypenumbers." - }, - "autorange": { - "valType": "enumerated", - "values": [ - true, - false, - "reversed" - ], - "dflt": true, - "role": "info", - "editType": "plot", - "impliedEdits": {}, - "description": "Determines whether or not the range of this axis is computed in relation to the input data. See `rangemode` for more info. If `range` is provided, then `autorange` is set to *false*." - }, - "rangemode": { - "valType": "enumerated", - "values": [ - "normal", - "tozero", - "nonnegative" - ], - "dflt": "normal", - "role": "info", - "editType": "plot", - "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes." - }, - "range": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "plot", - "impliedEdits": { - "^autorange": false - } - }, - { - "valType": "any", - "editType": "plot", - "impliedEdits": { - "^autorange": false - } - } - ], - "editType": "plot", - "impliedEdits": { - "autorange": false - }, - "anim": false, - "description": "Sets the range of this axis. If the axis `type` is *log*, then you must take the log of your desired range (e.g. to set the range from 1 to 100, set the range from 0 to 2). If the axis `type` is *date*, it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is *category*, it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "plot", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "plot", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "plot", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "plot", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "plot", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "plot", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "plot", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines." - }, - "mirror": { - "valType": "enumerated", - "values": [ - true, - "ticks", - false, - "all", - "allticks" - ], - "dflt": false, - "role": "style", - "editType": "plot", - "description": "Determines if the axis lines or/and ticks are mirrored to the opposite side of the plotting area. If *true*, the axis lines are mirrored. If *ticks*, the axis lines and ticks are mirrored. If *false*, mirroring is disable. If *all*, axis lines are mirrored on all shared-axes subplots. If *allticks*, axis lines and ticks are mirrored on all shared-axes subplots." - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "plot", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "plot", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Sets the tick font.", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "plot", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "plot", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "plot", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "plot", - "description": "If \"true\", even 4-digit integers are separated" - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "plot", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "plot" - }, - { - "valType": "any", - "editType": "plot" - } - ], - "editType": "plot", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "plot", - "name": { - "valType": "string", - "role": "style", - "editType": "plot", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "hoverformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "showline": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "plot", - "description": "Determines whether or not a line bounding this axis is drawn." - }, - "linecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets the axis line color." - }, - "linewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the axis line." - }, - "showgrid": { - "valType": "boolean", - "role": "style", - "editType": "plot", - "description": "Determines whether or not grid lines are drawn. If *true*, the grid lines are drawn at every tick mark." - }, - "gridcolor": { - "valType": "color", - "dflt": "rgb(204, 204, 204)", - "role": "style", - "editType": "plot", - "description": "Sets the color of the grid lines." - }, - "gridwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the grid lines." - }, - "zeroline": { - "valType": "boolean", - "role": "style", - "editType": "plot", - "description": "Determines whether or not a line is drawn at along the 0 value of this axis. If *true*, the zero line is drawn on top of the grid lines." - }, - "zerolinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets the line color of the zero line." - }, - "zerolinewidth": { - "valType": "number", - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the zero line." - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Value of `title` is no longer a simple *string* but a set of sub-attributes. To set the axis' title, please use `title.text` now." - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Former `titlefont` is now the sub-attribute `font` of `title`. To customize title font properties, please use `title.font` now." - } - }, - "editType": "plot", - "calendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use for `range` and `tick0` if this is a date axis. This does not set the calendar for interpreting data on this axis, that's specified in the trace or via the global `layout.calendar`" - }, - "role": "object", - "categoryarraysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for categoryarray .", - "editType": "none" - }, - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "yaxis": { - "visible": { - "valType": "boolean", - "role": "info", - "editType": "plot", - "description": "A single toggle to hide the axis while preserving interaction like dragging. Default is true when a cheater plot is present on the axis, otherwise false" - }, - "showspikes": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Sets whether or not spikes starting from data points to this axis' wall are shown on hover.", - "editType": "plot" - }, - "spikesides": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Sets whether or not spikes extending from the projection data points to this axis' wall boundaries are shown on hover.", - "editType": "plot" - }, - "spikethickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 2, - "description": "Sets the thickness (in px) of the spikes.", - "editType": "plot" - }, - "spikecolor": { - "valType": "color", - "role": "style", - "dflt": "#444", - "description": "Sets the color of the spikes.", - "editType": "plot" - }, - "showbackground": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Sets whether or not this axis' wall has a background color.", - "editType": "plot" - }, - "backgroundcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(204, 204, 204, 0.5)", - "description": "Sets the background color of this axis' wall.", - "editType": "plot" - }, - "showaxeslabels": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Sets whether or not this axis is labeled", - "editType": "plot" - }, - "color": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." - }, - "categoryorder": { - "valType": "enumerated", - "values": [ - "trace", - "category ascending", - "category descending", - "array", - "total ascending", - "total descending", - "min ascending", - "min descending", - "max ascending", - "max descending", - "sum ascending", - "sum descending", - "mean ascending", - "mean descending", - "median ascending", - "median descending" - ], - "dflt": "trace", - "role": "info", - "editType": "plot", - "description": "Specifies the ordering logic for the case of categorical variables. By default, plotly uses *trace*, which specifies the order that is present in the data supplied. Set `categoryorder` to *category ascending* or *category descending* if order should be determined by the alphanumerical order of the category names. Set `categoryorder` to *array* to derive the ordering from the attribute `categoryarray`. If a category is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to the *trace* mode. The unspecified categories will follow the categories in `categoryarray`. Set `categoryorder` to *total ascending* or *total descending* if order should be determined by the numerical order of the values. Similarly, the order can be determined by the min, max, sum, mean or median of all the values." - }, - "categoryarray": { - "valType": "data_array", - "role": "data", - "editType": "plot", - "description": "Sets the order in which categories on this axis appear. Only has an effect if `categoryorder` is set to *array*. Used with `categoryorder`." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Sets the title of this axis. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Sets this axis' title font. Note that the title's font used to be customized by the now deprecated `titlefont` attribute.", - "role": "object" - }, - "editType": "plot", - "role": "object" - }, - "type": { - "valType": "enumerated", - "values": [ - "-", - "linear", - "log", - "date", - "category" - ], - "dflt": "-", - "role": "info", - "editType": "plot", - "_noTemplating": true, - "description": "Sets the axis type. By default, plotly attempts to determined the axis type by looking into the data of the traces that referenced the axis in question." - }, - "autotypenumbers": { - "valType": "enumerated", - "values": [ - "convert types", - "strict" - ], - "dflt": "convert types", - "role": "info", - "editType": "plot", - "description": "Using *strict* a numeric string in trace data is not converted to a number. Using *convert types* a numeric string in trace data may be treated as a number during automatic axis `type` detection. Defaults to layout.autotypenumbers." - }, - "autorange": { - "valType": "enumerated", - "values": [ - true, - false, - "reversed" - ], - "dflt": true, - "role": "info", - "editType": "plot", - "impliedEdits": {}, - "description": "Determines whether or not the range of this axis is computed in relation to the input data. See `rangemode` for more info. If `range` is provided, then `autorange` is set to *false*." - }, - "rangemode": { - "valType": "enumerated", - "values": [ - "normal", - "tozero", - "nonnegative" - ], - "dflt": "normal", - "role": "info", - "editType": "plot", - "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes." - }, - "range": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "plot", - "impliedEdits": { - "^autorange": false - } - }, - { - "valType": "any", - "editType": "plot", - "impliedEdits": { - "^autorange": false - } - } - ], - "editType": "plot", - "impliedEdits": { - "autorange": false - }, - "anim": false, - "description": "Sets the range of this axis. If the axis `type` is *log*, then you must take the log of your desired range (e.g. to set the range from 1 to 100, set the range from 0 to 2). If the axis `type` is *date*, it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is *category*, it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "plot", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "plot", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "plot", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "plot", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "plot", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "plot", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "plot", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines." - }, - "mirror": { - "valType": "enumerated", - "values": [ - true, - "ticks", - false, - "all", - "allticks" - ], - "dflt": false, - "role": "style", - "editType": "plot", - "description": "Determines if the axis lines or/and ticks are mirrored to the opposite side of the plotting area. If *true*, the axis lines are mirrored. If *ticks*, the axis lines and ticks are mirrored. If *false*, mirroring is disable. If *all*, axis lines are mirrored on all shared-axes subplots. If *allticks*, axis lines and ticks are mirrored on all shared-axes subplots." - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "plot", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "plot", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Sets the tick font.", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "plot", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "plot", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "plot", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "plot", - "description": "If \"true\", even 4-digit integers are separated" - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "plot", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "plot" - }, - { - "valType": "any", - "editType": "plot" - } - ], - "editType": "plot", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "plot", - "name": { - "valType": "string", - "role": "style", - "editType": "plot", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "hoverformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "showline": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "plot", - "description": "Determines whether or not a line bounding this axis is drawn." - }, - "linecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets the axis line color." - }, - "linewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the axis line." - }, - "showgrid": { - "valType": "boolean", - "role": "style", - "editType": "plot", - "description": "Determines whether or not grid lines are drawn. If *true*, the grid lines are drawn at every tick mark." - }, - "gridcolor": { - "valType": "color", - "dflt": "rgb(204, 204, 204)", - "role": "style", - "editType": "plot", - "description": "Sets the color of the grid lines." - }, - "gridwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the grid lines." - }, - "zeroline": { - "valType": "boolean", - "role": "style", - "editType": "plot", - "description": "Determines whether or not a line is drawn at along the 0 value of this axis. If *true*, the zero line is drawn on top of the grid lines." - }, - "zerolinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets the line color of the zero line." - }, - "zerolinewidth": { - "valType": "number", - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the zero line." - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Value of `title` is no longer a simple *string* but a set of sub-attributes. To set the axis' title, please use `title.text` now." - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Former `titlefont` is now the sub-attribute `font` of `title`. To customize title font properties, please use `title.font` now." - } - }, - "editType": "plot", - "calendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use for `range` and `tick0` if this is a date axis. This does not set the calendar for interpreting data on this axis, that's specified in the trace or via the global `layout.calendar`" - }, - "role": "object", - "categoryarraysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for categoryarray .", - "editType": "none" - }, - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "zaxis": { - "visible": { - "valType": "boolean", - "role": "info", - "editType": "plot", - "description": "A single toggle to hide the axis while preserving interaction like dragging. Default is true when a cheater plot is present on the axis, otherwise false" - }, - "showspikes": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Sets whether or not spikes starting from data points to this axis' wall are shown on hover.", - "editType": "plot" - }, - "spikesides": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Sets whether or not spikes extending from the projection data points to this axis' wall boundaries are shown on hover.", - "editType": "plot" - }, - "spikethickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 2, - "description": "Sets the thickness (in px) of the spikes.", - "editType": "plot" - }, - "spikecolor": { - "valType": "color", - "role": "style", - "dflt": "#444", - "description": "Sets the color of the spikes.", - "editType": "plot" - }, - "showbackground": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Sets whether or not this axis' wall has a background color.", - "editType": "plot" - }, - "backgroundcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(204, 204, 204, 0.5)", - "description": "Sets the background color of this axis' wall.", - "editType": "plot" - }, - "showaxeslabels": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Sets whether or not this axis is labeled", - "editType": "plot" - }, - "color": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." - }, - "categoryorder": { - "valType": "enumerated", - "values": [ - "trace", - "category ascending", - "category descending", - "array", - "total ascending", - "total descending", - "min ascending", - "min descending", - "max ascending", - "max descending", - "sum ascending", - "sum descending", - "mean ascending", - "mean descending", - "median ascending", - "median descending" - ], - "dflt": "trace", - "role": "info", - "editType": "plot", - "description": "Specifies the ordering logic for the case of categorical variables. By default, plotly uses *trace*, which specifies the order that is present in the data supplied. Set `categoryorder` to *category ascending* or *category descending* if order should be determined by the alphanumerical order of the category names. Set `categoryorder` to *array* to derive the ordering from the attribute `categoryarray`. If a category is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to the *trace* mode. The unspecified categories will follow the categories in `categoryarray`. Set `categoryorder` to *total ascending* or *total descending* if order should be determined by the numerical order of the values. Similarly, the order can be determined by the min, max, sum, mean or median of all the values." - }, - "categoryarray": { - "valType": "data_array", - "role": "data", - "editType": "plot", - "description": "Sets the order in which categories on this axis appear. Only has an effect if `categoryorder` is set to *array*. Used with `categoryorder`." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Sets the title of this axis. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated." - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Sets this axis' title font. Note that the title's font used to be customized by the now deprecated `titlefont` attribute.", - "role": "object" - }, - "editType": "plot", - "role": "object" - }, - "type": { - "valType": "enumerated", - "values": [ - "-", - "linear", - "log", - "date", - "category" - ], - "dflt": "-", - "role": "info", - "editType": "plot", - "_noTemplating": true, - "description": "Sets the axis type. By default, plotly attempts to determined the axis type by looking into the data of the traces that referenced the axis in question." - }, - "autotypenumbers": { - "valType": "enumerated", - "values": [ - "convert types", - "strict" - ], - "dflt": "convert types", - "role": "info", - "editType": "plot", - "description": "Using *strict* a numeric string in trace data is not converted to a number. Using *convert types* a numeric string in trace data may be treated as a number during automatic axis `type` detection. Defaults to layout.autotypenumbers." - }, - "autorange": { - "valType": "enumerated", - "values": [ - true, - false, - "reversed" - ], - "dflt": true, - "role": "info", - "editType": "plot", - "impliedEdits": {}, - "description": "Determines whether or not the range of this axis is computed in relation to the input data. See `rangemode` for more info. If `range` is provided, then `autorange` is set to *false*." - }, - "rangemode": { - "valType": "enumerated", - "values": [ - "normal", - "tozero", - "nonnegative" - ], - "dflt": "normal", - "role": "info", - "editType": "plot", - "description": "If *normal*, the range is computed in relation to the extrema of the input data. If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. Applies only to linear axes." - }, - "range": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "plot", - "impliedEdits": { - "^autorange": false - } - }, - { - "valType": "any", - "editType": "plot", - "impliedEdits": { - "^autorange": false - } - } - ], - "editType": "plot", - "impliedEdits": { - "autorange": false - }, - "anim": false, - "description": "Sets the range of this axis. If the axis `type` is *log*, then you must take the log of your desired range (e.g. to set the range from 1 to 100, set the range from 0 to 2). If the axis `type` is *date*, it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is *category*, it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "plot", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "plot", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "plot", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "plot", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "plot", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "plot", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "plot", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines." - }, - "mirror": { - "valType": "enumerated", - "values": [ - true, - "ticks", - false, - "all", - "allticks" - ], - "dflt": false, - "role": "style", - "editType": "plot", - "description": "Determines if the axis lines or/and ticks are mirrored to the opposite side of the plotting area. If *true*, the axis lines are mirrored. If *ticks*, the axis lines and ticks are mirrored. If *false*, mirroring is disable. If *all*, axis lines are mirrored on all shared-axes subplots. If *allticks*, axis lines and ticks are mirrored on all shared-axes subplots." - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "plot", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "plot", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Sets the tick font.", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "plot", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "plot", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "plot", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "plot", - "description": "If \"true\", even 4-digit integers are separated" - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "plot", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "plot" - }, - { - "valType": "any", - "editType": "plot" - } - ], - "editType": "plot", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "plot", - "name": { - "valType": "string", - "role": "style", - "editType": "plot", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "hoverformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "showline": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "plot", - "description": "Determines whether or not a line bounding this axis is drawn." - }, - "linecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets the axis line color." - }, - "linewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the axis line." - }, - "showgrid": { - "valType": "boolean", - "role": "style", - "editType": "plot", - "description": "Determines whether or not grid lines are drawn. If *true*, the grid lines are drawn at every tick mark." - }, - "gridcolor": { - "valType": "color", - "dflt": "rgb(204, 204, 204)", - "role": "style", - "editType": "plot", - "description": "Sets the color of the grid lines." - }, - "gridwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the grid lines." - }, - "zeroline": { - "valType": "boolean", - "role": "style", - "editType": "plot", - "description": "Determines whether or not a line is drawn at along the 0 value of this axis. If *true*, the zero line is drawn on top of the grid lines." - }, - "zerolinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets the line color of the zero line." - }, - "zerolinewidth": { - "valType": "number", - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the zero line." - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Value of `title` is no longer a simple *string* but a set of sub-attributes. To set the axis' title, please use `title.text` now." - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Former `titlefont` is now the sub-attribute `font` of `title`. To customize title font properties, please use `title.font` now." - } - }, - "editType": "plot", - "calendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use for `range` and `tick0` if this is a date axis. This does not set the calendar for interpreting data on this axis, that's specified in the trace or via the global `layout.calendar`" - }, - "role": "object", - "categoryarraysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for categoryarray .", - "editType": "none" - }, - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "dragmode": { - "valType": "enumerated", - "role": "info", - "values": [ - "orbit", - "turntable", - "zoom", - "pan", - false - ], - "editType": "plot", - "description": "Determines the mode of drag interactions for this scene." - }, - "hovermode": { - "valType": "enumerated", - "role": "info", - "values": [ - "closest", - false - ], - "dflt": "closest", - "editType": "modebar", - "description": "Determines the mode of hover interactions for this scene." - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of user-driven changes in camera attributes. Defaults to `layout.uirevision`." - }, - "editType": "plot", - "_deprecated": { - "cameraposition": { - "valType": "info_array", - "role": "info", - "editType": "camera", - "description": "Obsolete. Use `camera` instead." - } - }, - "annotations": { - "items": { - "annotation": { - "visible": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not this annotation is visible." - }, - "x": { - "valType": "any", - "role": "info", - "description": "Sets the annotation's x position.", - "editType": "calc" - }, - "y": { - "valType": "any", - "role": "info", - "description": "Sets the annotation's y position.", - "editType": "calc" - }, - "z": { - "valType": "any", - "role": "info", - "description": "Sets the annotation's z position.", - "editType": "calc" - }, - "ax": { - "valType": "number", - "role": "info", - "description": "Sets the x component of the arrow tail about the arrow head (in pixels).", - "editType": "calc" - }, - "ay": { - "valType": "number", - "role": "info", - "description": "Sets the y component of the arrow tail about the arrow head (in pixels).", - "editType": "calc" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "auto", - "left", - "center", - "right" - ], - "dflt": "auto", - "role": "info", - "editType": "calc", - "description": "Sets the text box's horizontal position anchor This anchor binds the `x` position to the *left*, *center* or *right* of the annotation. For example, if `x` is set to 1, `xref` to *paper* and `xanchor` to *right* then the right-most portion of the annotation lines up with the right-most edge of the plotting area. If *auto*, the anchor is equivalent to *center* for data-referenced annotations or if there is an arrow, whereas for paper-referenced with no arrow, the anchor picked corresponds to the closest side." - }, - "xshift": { - "valType": "number", - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Shifts the position of the whole annotation and arrow to the right (positive) or left (negative) by this many pixels." - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "auto", - "top", - "middle", - "bottom" - ], - "dflt": "auto", - "role": "info", - "editType": "calc", - "description": "Sets the text box's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the annotation. For example, if `y` is set to 1, `yref` to *paper* and `yanchor` to *top* then the top-most portion of the annotation lines up with the top-most edge of the plotting area. If *auto*, the anchor is equivalent to *middle* for data-referenced annotations or if there is an arrow, whereas for paper-referenced with no arrow, the anchor picked corresponds to the closest side." - }, - "yshift": { - "valType": "number", - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Shifts the position of the whole annotation and arrow up (positive) or down (negative) by this many pixels." - }, - "text": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Sets the text associated with this annotation. Plotly uses a subset of HTML tags to do things like newline (
    ), bold (), italics (), hyperlinks (). Tags , , are also supported." - }, - "textangle": { - "valType": "angle", - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Sets the angle at which the `text` is drawn with respect to the horizontal." - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "editType": "calc", - "description": "Sets the annotation text font.", - "role": "object" - }, - "width": { - "valType": "number", - "min": 1, - "dflt": null, - "role": "style", - "editType": "calc", - "description": "Sets an explicit width for the text box. null (default) lets the text set the box width. Wider text will be clipped. There is no automatic wrapping; use
    to start a new line." - }, - "height": { - "valType": "number", - "min": 1, - "dflt": null, - "role": "style", - "editType": "calc", - "description": "Sets an explicit height for the text box. null (default) lets the text set the box height. Taller text will be clipped." - }, - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the opacity of the annotation (text + arrow)." - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "center", - "role": "style", - "editType": "calc", - "description": "Sets the horizontal alignment of the `text` within the box. Has an effect only if `text` spans two or more lines (i.e. `text` contains one or more
    HTML tags) or if an explicit width is set to override the text width." - }, - "valign": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "dflt": "middle", - "role": "style", - "editType": "calc", - "description": "Sets the vertical alignment of the `text` within the box. Has an effect only if an explicit height is set to override the text height." - }, - "bgcolor": { - "valType": "color", - "dflt": "rgba(0,0,0,0)", - "role": "style", - "editType": "calc", - "description": "Sets the background color of the annotation." - }, - "bordercolor": { - "valType": "color", - "dflt": "rgba(0,0,0,0)", - "role": "style", - "editType": "calc", - "description": "Sets the color of the border enclosing the annotation `text`." - }, - "borderpad": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the padding (in px) between the `text` and the enclosing border." - }, - "borderwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of the border enclosing the annotation `text`." - }, - "showarrow": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "calc", - "description": "Determines whether or not the annotation is drawn with an arrow. If *true*, `text` is placed near the arrow's tail. If *false*, `text` lines up with the `x` and `y` provided." - }, - "arrowcolor": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the color of the annotation arrow." - }, - "arrowhead": { - "valType": "integer", - "min": 0, - "max": 8, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the end annotation arrow head style." - }, - "startarrowhead": { - "valType": "integer", - "min": 0, - "max": 8, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the start annotation arrow head style." - }, - "arrowside": { - "valType": "flaglist", - "flags": [ - "end", - "start" - ], - "extras": [ - "none" - ], - "dflt": "end", - "role": "style", - "editType": "calc", - "description": "Sets the annotation arrow head position." - }, - "arrowsize": { - "valType": "number", - "min": 0.3, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the size of the end annotation arrow head, relative to `arrowwidth`. A value of 1 (default) gives a head about 3x as wide as the line." - }, - "startarrowsize": { - "valType": "number", - "min": 0.3, - "dflt": 1, - "role": "style", - "editType": "calc", - "description": "Sets the size of the start annotation arrow head, relative to `arrowwidth`. A value of 1 (default) gives a head about 3x as wide as the line." - }, - "arrowwidth": { - "valType": "number", - "min": 0.1, - "role": "style", - "editType": "calc", - "description": "Sets the width (in px) of annotation arrow line." - }, - "standoff": { - "valType": "number", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Sets a distance, in pixels, to move the end arrowhead away from the position it is pointing at, for example to point at the edge of a marker independent of zoom. Note that this shortens the arrow from the `ax` / `ay` vector, in contrast to `xshift` / `yshift` which moves everything by this amount." - }, - "startstandoff": { - "valType": "number", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc", - "description": "Sets a distance, in pixels, to move the start arrowhead away from the position it is pointing at, for example to point at the edge of a marker independent of zoom. Note that this shortens the arrow from the `ax` / `ay` vector, in contrast to `xshift` / `yshift` which moves everything by this amount." - }, - "hovertext": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Sets text to appear when hovering over this annotation. If omitted or blank, no hover label will appear." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the background color of the hover label. By default uses the annotation's `bgcolor` made opaque, or white if it was transparent." - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "calc", - "description": "Sets the border color of the hover label. By default uses either dark grey or white, for maximum contrast with `hoverlabel.bgcolor`." - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "calc" - }, - "editType": "calc", - "description": "Sets the hover label text font. By default uses the global hover font and size, with color from `hoverlabel.bordercolor`.", - "role": "object" - }, - "editType": "calc", - "role": "object" - }, - "captureevents": { - "valType": "boolean", - "role": "info", - "editType": "calc", - "description": "Determines whether the annotation text box captures mouse move and click events, or allows those events to pass through to data points in the plot that may be behind the annotation. By default `captureevents` is *false* unless `hovertext` is provided. If you use the event `plotly_clickannotation` without `hovertext` you must explicitly enable `captureevents`." - }, - "name": { - "valType": "string", - "role": "style", - "editType": "calc", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "editType": "calc", - "role": "object" - } - }, - "role": "object" - }, - "_isSubplotObj": true, - "role": "object" - }, - "geo": { - "domain": { - "x": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the horizontal domain of this geo subplot (in plot fraction). Note that geo subplots are constrained by domain. In general, when `projection.scale` is set to 1. a map will fit either its x or y domain, but not both.", - "editType": "plot" - }, - "y": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the vertical domain of this geo subplot (in plot fraction). Note that geo subplots are constrained by domain. In general, when `projection.scale` is set to 1. a map will fit either its x or y domain, but not both.", - "editType": "plot" - }, - "row": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "description": "If there is a layout grid, use the domain for this row in the grid for this geo subplot . Note that geo subplots are constrained by domain. In general, when `projection.scale` is set to 1. a map will fit either its x or y domain, but not both.", - "editType": "plot" - }, - "column": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "description": "If there is a layout grid, use the domain for this column in the grid for this geo subplot . Note that geo subplots are constrained by domain. In general, when `projection.scale` is set to 1. a map will fit either its x or y domain, but not both.", - "editType": "plot" - }, - "editType": "plot", - "role": "object" - }, - "fitbounds": { - "valType": "enumerated", - "values": [ - false, - "locations", - "geojson" - ], - "dflt": false, - "role": "info", - "editType": "plot", - "description": "Determines if this subplot's view settings are auto-computed to fit trace data. On scoped maps, setting `fitbounds` leads to `center.lon` and `center.lat` getting auto-filled. On maps with a non-clipped projection, setting `fitbounds` leads to `center.lon`, `center.lat`, and `projection.rotation.lon` getting auto-filled. On maps with a clipped projection, setting `fitbounds` leads to `center.lon`, `center.lat`, `projection.rotation.lon`, `projection.rotation.lat`, `lonaxis.range` and `lonaxis.range` getting auto-filled. If *locations*, only the trace's visible locations are considered in the `fitbounds` computations. If *geojson*, the entire trace input `geojson` (if provided) is considered in the `fitbounds` computations, Defaults to *false*." - }, - "resolution": { - "valType": "enumerated", - "values": [ - 110, - 50 - ], - "role": "info", - "dflt": 110, - "coerceNumber": true, - "description": "Sets the resolution of the base layers. The values have units of km/mm e.g. 110 corresponds to a scale ratio of 1:110,000,000.", - "editType": "plot" - }, - "scope": { - "valType": "enumerated", - "role": "info", - "values": [ - "world", - "usa", - "europe", - "asia", - "africa", - "north america", - "south america" - ], - "dflt": "world", - "description": "Set the scope of the map.", - "editType": "plot" - }, - "projection": { - "type": { - "valType": "enumerated", - "role": "info", - "values": [ - "equirectangular", - "mercator", - "orthographic", - "natural earth", - "kavrayskiy7", - "miller", - "robinson", - "eckert4", - "azimuthal equal area", - "azimuthal equidistant", - "conic equal area", - "conic conformal", - "conic equidistant", - "gnomonic", - "stereographic", - "mollweide", - "hammer", - "transverse mercator", - "albers usa", - "winkel tripel", - "aitoff", - "sinusoidal" - ], - "description": "Sets the projection type.", - "editType": "plot" - }, - "rotation": { - "lon": { - "valType": "number", - "role": "info", - "description": "Rotates the map along parallels (in degrees East). Defaults to the center of the `lonaxis.range` values.", - "editType": "plot" - }, - "lat": { - "valType": "number", - "role": "info", - "description": "Rotates the map along meridians (in degrees North).", - "editType": "plot" - }, - "roll": { - "valType": "number", - "role": "info", - "description": "Roll the map (in degrees) For example, a roll of *180* makes the map appear upside down.", - "editType": "plot" - }, - "editType": "plot", - "role": "object" - }, - "parallels": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "number", - "editType": "plot" - }, - { - "valType": "number", - "editType": "plot" - } - ], - "description": "For conic projection types only. Sets the parallels (tangent, secant) where the cone intersects the sphere.", - "editType": "plot" - }, - "scale": { - "valType": "number", - "role": "info", - "min": 0, - "dflt": 1, - "description": "Zooms in or out on the map view. A scale of *1* corresponds to the largest zoom level that fits the map's lon and lat ranges. ", - "editType": "plot" - }, - "editType": "plot", - "role": "object" - }, - "center": { - "lon": { - "valType": "number", - "role": "info", - "description": "Sets the longitude of the map's center. By default, the map's longitude center lies at the middle of the longitude range for scoped projection and above `projection.rotation.lon` otherwise.", - "editType": "plot" - }, - "lat": { - "valType": "number", - "role": "info", - "description": "Sets the latitude of the map's center. For all projection types, the map's latitude center lies at the middle of the latitude range by default.", - "editType": "plot" - }, - "editType": "plot", - "role": "object" - }, - "visible": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Sets the default visibility of the base layers.", - "editType": "plot" - }, - "showcoastlines": { - "valType": "boolean", - "role": "info", - "description": "Sets whether or not the coastlines are drawn.", - "editType": "plot" - }, - "coastlinecolor": { - "valType": "color", - "role": "style", - "dflt": "#444", - "description": "Sets the coastline color.", - "editType": "plot" - }, - "coastlinewidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 1, - "description": "Sets the coastline stroke width (in px).", - "editType": "plot" - }, - "showland": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Sets whether or not land masses are filled in color.", - "editType": "plot" - }, - "landcolor": { - "valType": "color", - "role": "style", - "dflt": "#F0DC82", - "description": "Sets the land mass color.", - "editType": "plot" - }, - "showocean": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Sets whether or not oceans are filled in color.", - "editType": "plot" - }, - "oceancolor": { - "valType": "color", - "role": "style", - "dflt": "#3399FF", - "description": "Sets the ocean color", - "editType": "plot" - }, - "showlakes": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Sets whether or not lakes are drawn.", - "editType": "plot" - }, - "lakecolor": { - "valType": "color", - "role": "style", - "dflt": "#3399FF", - "description": "Sets the color of the lakes.", - "editType": "plot" - }, - "showrivers": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Sets whether or not rivers are drawn.", - "editType": "plot" - }, - "rivercolor": { - "valType": "color", - "role": "style", - "dflt": "#3399FF", - "description": "Sets color of the rivers.", - "editType": "plot" - }, - "riverwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 1, - "description": "Sets the stroke width (in px) of the rivers.", - "editType": "plot" - }, - "showcountries": { - "valType": "boolean", - "role": "info", - "description": "Sets whether or not country boundaries are drawn.", - "editType": "plot" - }, - "countrycolor": { - "valType": "color", - "role": "style", - "dflt": "#444", - "description": "Sets line color of the country boundaries.", - "editType": "plot" - }, - "countrywidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 1, - "description": "Sets line width (in px) of the country boundaries.", - "editType": "plot" - }, - "showsubunits": { - "valType": "boolean", - "role": "info", - "description": "Sets whether or not boundaries of subunits within countries (e.g. states, provinces) are drawn.", - "editType": "plot" - }, - "subunitcolor": { - "valType": "color", - "role": "style", - "dflt": "#444", - "description": "Sets the color of the subunits boundaries.", - "editType": "plot" - }, - "subunitwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 1, - "description": "Sets the stroke width (in px) of the subunits boundaries.", - "editType": "plot" - }, - "showframe": { - "valType": "boolean", - "role": "info", - "description": "Sets whether or not a frame is drawn around the map.", - "editType": "plot" - }, - "framecolor": { - "valType": "color", - "role": "style", - "dflt": "#444", - "description": "Sets the color the frame.", - "editType": "plot" - }, - "framewidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 1, - "description": "Sets the stroke width (in px) of the frame.", - "editType": "plot" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "#fff", - "description": "Set the background color of the map", - "editType": "plot" - }, - "lonaxis": { - "range": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "number", - "editType": "plot" - }, - { - "valType": "number", - "editType": "plot" - } - ], - "description": "Sets the range of this axis (in degrees), sets the map's clipped coordinates.", - "editType": "plot" - }, - "showgrid": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Sets whether or not graticule are shown on the map.", - "editType": "plot" - }, - "tick0": { - "valType": "number", - "role": "info", - "dflt": 0, - "description": "Sets the graticule's starting tick longitude/latitude.", - "editType": "plot" - }, - "dtick": { - "valType": "number", - "role": "info", - "description": "Sets the graticule's longitude/latitude tick step.", - "editType": "plot" - }, - "gridcolor": { - "valType": "color", - "role": "style", - "dflt": "#eee", - "description": "Sets the graticule's stroke color.", - "editType": "plot" - }, - "gridwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 1, - "description": "Sets the graticule's stroke width (in px).", - "editType": "plot" - }, - "editType": "plot", - "role": "object" - }, - "lataxis": { - "range": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "number", - "editType": "plot" - }, - { - "valType": "number", - "editType": "plot" - } - ], - "description": "Sets the range of this axis (in degrees), sets the map's clipped coordinates.", - "editType": "plot" - }, - "showgrid": { - "valType": "boolean", - "role": "info", - "dflt": false, - "description": "Sets whether or not graticule are shown on the map.", - "editType": "plot" - }, - "tick0": { - "valType": "number", - "role": "info", - "dflt": 0, - "description": "Sets the graticule's starting tick longitude/latitude.", - "editType": "plot" - }, - "dtick": { - "valType": "number", - "role": "info", - "description": "Sets the graticule's longitude/latitude tick step.", - "editType": "plot" - }, - "gridcolor": { - "valType": "color", - "role": "style", - "dflt": "#eee", - "description": "Sets the graticule's stroke color.", - "editType": "plot" - }, - "gridwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 1, - "description": "Sets the graticule's stroke width (in px).", - "editType": "plot" - }, - "editType": "plot", - "role": "object" - }, - "editType": "plot", - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of user-driven changes in the view (projection and center). Defaults to `layout.uirevision`." - }, - "_isSubplotObj": true, - "role": "object" - }, - "mapbox": { - "_arrayAttrRegexps": [ - {} - ], - "domain": { - "x": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the horizontal domain of this mapbox subplot (in plot fraction).", - "editType": "plot" - }, - "y": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the vertical domain of this mapbox subplot (in plot fraction).", - "editType": "plot" - }, - "row": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "description": "If there is a layout grid, use the domain for this row in the grid for this mapbox subplot .", - "editType": "plot" - }, - "column": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "description": "If there is a layout grid, use the domain for this column in the grid for this mapbox subplot .", - "editType": "plot" - }, - "editType": "plot", - "role": "object" - }, - "accesstoken": { - "valType": "string", - "noBlank": true, - "strict": true, - "role": "info", - "description": "Sets the mapbox access token to be used for this mapbox map. Alternatively, the mapbox access token can be set in the configuration options under `mapboxAccessToken`. Note that accessToken are only required when `style` (e.g with values : basic, streets, outdoors, light, dark, satellite, satellite-streets ) and/or a layout layer references the Mapbox server.", - "editType": "plot" - }, - "style": { - "valType": "any", - "values": [ - "basic", - "streets", - "outdoors", - "light", - "dark", - "satellite", - "satellite-streets", - "open-street-map", - "white-bg", - "carto-positron", - "carto-darkmatter", - "stamen-terrain", - "stamen-toner", - "stamen-watercolor" - ], - "dflt": "basic", - "role": "style", - "description": "Defines the map layers that are rendered by default below the trace layers defined in `data`, which are themselves by default rendered below the layers defined in `layout.mapbox.layers`. These layers can be defined either explicitly as a Mapbox Style object which can contain multiple layer definitions that load data from any public or private Tile Map Service (TMS or XYZ) or Web Map Service (WMS) or implicitly by using one of the built-in style objects which use WMSes which do not require any access tokens, or by using a default Mapbox style or custom Mapbox style URL, both of which require a Mapbox access token Note that Mapbox access token can be set in the `accesstoken` attribute or in the `mapboxAccessToken` config option. Mapbox Style objects are of the form described in the Mapbox GL JS documentation available at https://docs.mapbox.com/mapbox-gl-js/style-spec The built-in plotly.js styles objects are: open-street-map, white-bg, carto-positron, carto-darkmatter, stamen-terrain, stamen-toner, stamen-watercolor The built-in Mapbox styles are: basic, streets, outdoors, light, dark, satellite, satellite-streets Mapbox style URLs are of the form: mapbox://mapbox.mapbox--", - "editType": "plot" - }, - "center": { - "lon": { - "valType": "number", - "dflt": 0, - "role": "info", - "description": "Sets the longitude of the center of the map (in degrees East).", - "editType": "plot" - }, - "lat": { - "valType": "number", - "dflt": 0, - "role": "info", - "description": "Sets the latitude of the center of the map (in degrees North).", - "editType": "plot" - }, - "editType": "plot", - "role": "object" - }, - "zoom": { - "valType": "number", - "dflt": 1, - "role": "info", - "description": "Sets the zoom level of the map (mapbox.zoom).", - "editType": "plot" - }, - "bearing": { - "valType": "number", - "dflt": 0, - "role": "info", - "description": "Sets the bearing angle of the map in degrees counter-clockwise from North (mapbox.bearing).", - "editType": "plot" - }, - "pitch": { - "valType": "number", - "dflt": 0, - "role": "info", - "description": "Sets the pitch angle of the map (in degrees, where *0* means perpendicular to the surface of the map) (mapbox.pitch).", - "editType": "plot" - }, - "layers": { - "items": { - "layer": { - "visible": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Determines whether this layer is displayed", - "editType": "plot" - }, - "sourcetype": { - "valType": "enumerated", - "values": [ - "geojson", - "vector", - "raster", - "image" - ], - "dflt": "geojson", - "role": "info", - "description": "Sets the source type for this layer, that is the type of the layer data.", - "editType": "plot" - }, - "source": { - "valType": "any", - "role": "info", - "description": "Sets the source data for this layer (mapbox.layer.source). When `sourcetype` is set to *geojson*, `source` can be a URL to a GeoJSON or a GeoJSON object. When `sourcetype` is set to *vector* or *raster*, `source` can be a URL or an array of tile URLs. When `sourcetype` is set to *image*, `source` can be a URL to an image.", - "editType": "plot" - }, - "sourcelayer": { - "valType": "string", - "dflt": "", - "role": "info", - "description": "Specifies the layer to use from a vector tile source (mapbox.layer.source-layer). Required for *vector* source type that supports multiple layers.", - "editType": "plot" - }, - "sourceattribution": { - "valType": "string", - "role": "info", - "description": "Sets the attribution for this source.", - "editType": "plot" - }, - "type": { - "valType": "enumerated", - "values": [ - "circle", - "line", - "fill", - "symbol", - "raster" - ], - "dflt": "circle", - "role": "info", - "description": "Sets the layer type, that is the how the layer data set in `source` will be rendered With `sourcetype` set to *geojson*, the following values are allowed: *circle*, *line*, *fill* and *symbol*. but note that *line* and *fill* are not compatible with Point GeoJSON geometries. With `sourcetype` set to *vector*, the following values are allowed: *circle*, *line*, *fill* and *symbol*. With `sourcetype` set to *raster* or `*image*`, only the *raster* value is allowed.", - "editType": "plot" - }, - "coordinates": { - "valType": "any", - "role": "info", - "description": "Sets the coordinates array contains [longitude, latitude] pairs for the image corners listed in clockwise order: top left, top right, bottom right, bottom left. Only has an effect for *image* `sourcetype`.", - "editType": "plot" - }, - "below": { - "valType": "string", - "role": "info", - "description": "Determines if the layer will be inserted before the layer with the specified ID. If omitted or set to '', the layer will be inserted above every existing layer.", - "editType": "plot" - }, - "color": { - "valType": "color", - "dflt": "#444", - "role": "style", - "description": "Sets the primary layer color. If `type` is *circle*, color corresponds to the circle color (mapbox.layer.paint.circle-color) If `type` is *line*, color corresponds to the line color (mapbox.layer.paint.line-color) If `type` is *fill*, color corresponds to the fill color (mapbox.layer.paint.fill-color) If `type` is *symbol*, color corresponds to the icon color (mapbox.layer.paint.icon-color)", - "editType": "plot" - }, - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": 1, - "role": "info", - "description": "Sets the opacity of the layer. If `type` is *circle*, opacity corresponds to the circle opacity (mapbox.layer.paint.circle-opacity) If `type` is *line*, opacity corresponds to the line opacity (mapbox.layer.paint.line-opacity) If `type` is *fill*, opacity corresponds to the fill opacity (mapbox.layer.paint.fill-opacity) If `type` is *symbol*, opacity corresponds to the icon/text opacity (mapbox.layer.paint.text-opacity)", - "editType": "plot" - }, - "minzoom": { - "valType": "number", - "min": 0, - "max": 24, - "dflt": 0, - "role": "info", - "description": "Sets the minimum zoom level (mapbox.layer.minzoom). At zoom levels less than the minzoom, the layer will be hidden.", - "editType": "plot" - }, - "maxzoom": { - "valType": "number", - "min": 0, - "max": 24, - "dflt": 24, - "role": "info", - "description": "Sets the maximum zoom level (mapbox.layer.maxzoom). At zoom levels equal to or greater than the maxzoom, the layer will be hidden.", - "editType": "plot" - }, - "circle": { - "radius": { - "valType": "number", - "dflt": 15, - "role": "style", - "description": "Sets the circle radius (mapbox.layer.paint.circle-radius). Has an effect only when `type` is set to *circle*.", - "editType": "plot" - }, - "editType": "plot", - "role": "object" - }, - "line": { - "width": { - "valType": "number", - "dflt": 2, - "role": "style", - "description": "Sets the line width (mapbox.layer.paint.line-width). Has an effect only when `type` is set to *line*.", - "editType": "plot" - }, - "dash": { - "valType": "data_array", - "role": "data", - "description": "Sets the length of dashes and gaps (mapbox.layer.paint.line-dasharray). Has an effect only when `type` is set to *line*.", - "editType": "plot" - }, - "editType": "plot", - "role": "object", - "dashsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for dash .", - "editType": "none" - } - }, - "fill": { - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "description": "Sets the fill outline color (mapbox.layer.paint.fill-outline-color). Has an effect only when `type` is set to *fill*.", - "editType": "plot" - }, - "editType": "plot", - "role": "object" - }, - "symbol": { - "icon": { - "valType": "string", - "dflt": "marker", - "role": "style", - "description": "Sets the symbol icon image (mapbox.layer.layout.icon-image). Full list: https://www.mapbox.com/maki-icons/", - "editType": "plot" - }, - "iconsize": { - "valType": "number", - "dflt": 10, - "role": "style", - "description": "Sets the symbol icon size (mapbox.layer.layout.icon-size). Has an effect only when `type` is set to *symbol*.", - "editType": "plot" - }, - "text": { - "valType": "string", - "dflt": "", - "role": "info", - "description": "Sets the symbol text (mapbox.layer.layout.text-field).", - "editType": "plot" - }, - "placement": { - "valType": "enumerated", - "values": [ - "point", - "line", - "line-center" - ], - "dflt": "point", - "role": "info", - "description": "Sets the symbol and/or text placement (mapbox.layer.layout.symbol-placement). If `placement` is *point*, the label is placed where the geometry is located If `placement` is *line*, the label is placed along the line of the geometry If `placement` is *line-center*, the label is placed on the center of the geometry", - "editType": "plot" - }, - "textfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "dflt": "Open Sans Regular, Arial Unicode MS Regular", - "editType": "plot" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "description": "Sets the icon text font (color=mapbox.layer.paint.text-color, size=mapbox.layer.layout.text-size). Has an effect only when `type` is set to *symbol*.", - "editType": "plot", - "role": "object" - }, - "textposition": { - "valType": "enumerated", - "values": [ - "top left", - "top center", - "top right", - "middle left", - "middle center", - "middle right", - "bottom left", - "bottom center", - "bottom right" - ], - "dflt": "middle center", - "arrayOk": false, - "role": "style", - "editType": "plot", - "description": "Sets the positions of the `text` elements with respects to the (x,y) coordinates." - }, - "editType": "plot", - "role": "object" - }, - "name": { - "valType": "string", - "role": "style", - "editType": "plot", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "editType": "plot", - "role": "object" - } - }, - "role": "object" - }, - "editType": "plot", - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of user-driven changes in the view: `center`, `zoom`, `bearing`, `pitch`. Defaults to `layout.uirevision`." - }, - "_isSubplotObj": true, - "role": "object" - }, - "polar": { - "domain": { - "x": { - "valType": "info_array", - "role": "info", - "editType": "plot", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the horizontal domain of this polar subplot (in plot fraction)." - }, - "y": { - "valType": "info_array", - "role": "info", - "editType": "plot", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - } - ], - "dflt": [ - 0, - 1 - ], - "description": "Sets the vertical domain of this polar subplot (in plot fraction)." - }, - "editType": "plot", - "row": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "plot", - "description": "If there is a layout grid, use the domain for this row in the grid for this polar subplot ." - }, - "column": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "info", - "editType": "plot", - "description": "If there is a layout grid, use the domain for this column in the grid for this polar subplot ." - }, - "role": "object" - }, - "sector": { - "valType": "info_array", - "items": [ - { - "valType": "number", - "editType": "plot" - }, - { - "valType": "number", - "editType": "plot" - } - ], - "dflt": [ - 0, - 360 - ], - "role": "info", - "editType": "plot", - "description": "Sets angular span of this polar subplot with two angles (in degrees). Sector are assumed to be spanned in the counterclockwise direction with *0* corresponding to rightmost limit of the polar subplot." - }, - "hole": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": 0, - "editType": "plot", - "role": "info", - "description": "Sets the fraction of the radius to cut out of the polar subplot." - }, - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "plot", - "dflt": "#fff", - "description": "Set the background color of the subplot" - }, - "radialaxis": { - "visible": { - "valType": "boolean", - "role": "info", - "editType": "plot", - "description": "A single toggle to hide the axis while preserving interaction like dragging. Default is true when a cheater plot is present on the axis, otherwise false", - "dflt": true - }, - "type": { - "valType": "enumerated", - "values": [ - "-", - "linear", - "log", - "date", - "category" - ], - "dflt": "-", - "role": "info", - "editType": "calc", - "_noTemplating": true, - "description": "Sets the axis type. By default, plotly attempts to determined the axis type by looking into the data of the traces that referenced the axis in question." - }, - "autotypenumbers": { - "valType": "enumerated", - "values": [ - "convert types", - "strict" - ], - "dflt": "convert types", - "role": "info", - "editType": "calc", - "description": "Using *strict* a numeric string in trace data is not converted to a number. Using *convert types* a numeric string in trace data may be treated as a number during automatic axis `type` detection. Defaults to layout.autotypenumbers." - }, - "autorange": { - "valType": "enumerated", - "values": [ - true, - false, - "reversed" - ], - "dflt": true, - "role": "info", - "editType": "plot", - "impliedEdits": {}, - "description": "Determines whether or not the range of this axis is computed in relation to the input data. See `rangemode` for more info. If `range` is provided, then `autorange` is set to *false*." - }, - "rangemode": { - "valType": "enumerated", - "values": [ - "tozero", - "nonnegative", - "normal" - ], - "dflt": "tozero", - "role": "style", - "editType": "calc", - "description": "If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. If *normal*, the range is computed in relation to the extrema of the input data (same behavior as for cartesian axes)." - }, - "range": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "plot", - "impliedEdits": { - "^autorange": false - } - }, - { - "valType": "any", - "editType": "plot", - "impliedEdits": { - "^autorange": false - } - } - ], - "editType": "plot", - "impliedEdits": { - "autorange": false - }, - "anim": true, - "description": "Sets the range of this axis. If the axis `type` is *log*, then you must take the log of your desired range (e.g. to set the range from 1 to 100, set the range from 0 to 2). If the axis `type` is *date*, it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is *category*, it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "categoryorder": { - "valType": "enumerated", - "values": [ - "trace", - "category ascending", - "category descending", - "array", - "total ascending", - "total descending", - "min ascending", - "min descending", - "max ascending", - "max descending", - "sum ascending", - "sum descending", - "mean ascending", - "mean descending", - "median ascending", - "median descending" - ], - "dflt": "trace", - "role": "info", - "editType": "calc", - "description": "Specifies the ordering logic for the case of categorical variables. By default, plotly uses *trace*, which specifies the order that is present in the data supplied. Set `categoryorder` to *category ascending* or *category descending* if order should be determined by the alphanumerical order of the category names. Set `categoryorder` to *array* to derive the ordering from the attribute `categoryarray`. If a category is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to the *trace* mode. The unspecified categories will follow the categories in `categoryarray`. Set `categoryorder` to *total ascending* or *total descending* if order should be determined by the numerical order of the values. Similarly, the order can be determined by the min, max, sum, mean or median of all the values." - }, - "categoryarray": { - "valType": "data_array", - "role": "data", - "editType": "calc", - "description": "Sets the order in which categories on this axis appear. Only has an effect if `categoryorder` is set to *array*. Used with `categoryorder`." - }, - "angle": { - "valType": "angle", - "editType": "plot", - "role": "info", - "description": "Sets the angle (in degrees) from which the radial axis is drawn. Note that by default, radial axis line on the theta=0 line corresponds to a line pointing right (like what mathematicians prefer). Defaults to the first `polar.sector` angle." - }, - "side": { - "valType": "enumerated", - "values": [ - "clockwise", - "counterclockwise" - ], - "dflt": "clockwise", - "editType": "plot", - "role": "info", - "description": "Determines on which side of radial axis line the tick and tick labels appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Sets the title of this axis. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "dflt": "" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "ticks", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "ticks" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "ticks" - }, - "editType": "plot", - "description": "Sets this axis' title font. Note that the title's font used to be customized by the now deprecated `titlefont` attribute.", - "role": "object" - }, - "editType": "plot", - "role": "object" - }, - "hoverformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "none", - "description": "Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of user-driven changes in axis `range`, `autorange`, `angle`, and `title` if in `editable: true` configuration. Defaults to `polar.uirevision`." - }, - "editType": "plot", - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "editType": "ticks", - "description": "Value of `title` is no longer a simple *string* but a set of sub-attributes. To set the axis' title, please use `title.text` now." - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "ticks", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "ticks" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "ticks" - }, - "editType": "ticks", - "description": "Former `titlefont` is now the sub-attribute `font` of `title`. To customize title font properties, please use `title.font` now." - } - }, - "color": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." - }, - "showline": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "plot", - "description": "Determines whether or not a line bounding this axis is drawn." - }, - "linecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets the axis line color." - }, - "linewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the axis line." - }, - "showgrid": { - "valType": "boolean", - "role": "style", - "editType": "plot", - "description": "Determines whether or not grid lines are drawn. If *true*, the grid lines are drawn at every tick mark.", - "dflt": true - }, - "gridcolor": { - "valType": "color", - "dflt": "#eee", - "role": "style", - "editType": "plot", - "description": "Sets the color of the grid lines." - }, - "gridwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the grid lines." - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "plot", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "plot", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "plot", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "plot", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "plot", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "plot", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "plot", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines." - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "plot", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "plot", - "description": "Determines whether or not the tick labels are drawn." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets a tick label prefix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets a tick label suffix." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "plot", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "plot", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "plot", - "description": "If \"true\", even 4-digit integers are separated" - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Sets the tick font.", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "plot", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "plot", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "plot" - }, - { - "valType": "any", - "editType": "plot" - } - ], - "editType": "plot", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "plot", - "name": { - "valType": "string", - "role": "style", - "editType": "plot", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "layer": { - "valType": "enumerated", - "values": [ - "above traces", - "below traces" - ], - "dflt": "above traces", - "role": "info", - "editType": "plot", - "description": "Sets the layer on which this axis is displayed. If *above traces*, this axis is displayed above all the subplot's traces If *below traces*, this axis is displayed below all the subplot's traces, but above the grid lines. Useful when used together with scatter-like traces with `cliponaxis` set to *false* to show markers and/or text nodes above this axis." - }, - "calendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use for `range` and `tick0` if this is a date axis. This does not set the calendar for interpreting data on this axis, that's specified in the trace or via the global `layout.calendar`" - }, - "role": "object", - "categoryarraysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for categoryarray .", - "editType": "none" - }, - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "angularaxis": { - "visible": { - "valType": "boolean", - "role": "info", - "editType": "plot", - "description": "A single toggle to hide the axis while preserving interaction like dragging. Default is true when a cheater plot is present on the axis, otherwise false", - "dflt": true - }, - "type": { - "valType": "enumerated", - "values": [ - "-", - "linear", - "category" - ], - "dflt": "-", - "role": "info", - "editType": "calc", - "_noTemplating": true, - "description": "Sets the angular axis type. If *linear*, set `thetaunit` to determine the unit in which axis value are shown. If *category, use `period` to set the number of integer coordinates around polar axis." - }, - "autotypenumbers": { - "valType": "enumerated", - "values": [ - "convert types", - "strict" - ], - "dflt": "convert types", - "role": "info", - "editType": "calc", - "description": "Using *strict* a numeric string in trace data is not converted to a number. Using *convert types* a numeric string in trace data may be treated as a number during automatic axis `type` detection. Defaults to layout.autotypenumbers." - }, - "categoryorder": { - "valType": "enumerated", - "values": [ - "trace", - "category ascending", - "category descending", - "array", - "total ascending", - "total descending", - "min ascending", - "min descending", - "max ascending", - "max descending", - "sum ascending", - "sum descending", - "mean ascending", - "mean descending", - "median ascending", - "median descending" - ], - "dflt": "trace", - "role": "info", - "editType": "calc", - "description": "Specifies the ordering logic for the case of categorical variables. By default, plotly uses *trace*, which specifies the order that is present in the data supplied. Set `categoryorder` to *category ascending* or *category descending* if order should be determined by the alphanumerical order of the category names. Set `categoryorder` to *array* to derive the ordering from the attribute `categoryarray`. If a category is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to the *trace* mode. The unspecified categories will follow the categories in `categoryarray`. Set `categoryorder` to *total ascending* or *total descending* if order should be determined by the numerical order of the values. Similarly, the order can be determined by the min, max, sum, mean or median of all the values." - }, - "categoryarray": { - "valType": "data_array", - "role": "data", - "editType": "calc", - "description": "Sets the order in which categories on this axis appear. Only has an effect if `categoryorder` is set to *array*. Used with `categoryorder`." - }, - "thetaunit": { - "valType": "enumerated", - "values": [ - "radians", - "degrees" - ], - "dflt": "degrees", - "role": "info", - "editType": "calc", - "description": "Sets the format unit of the formatted *theta* values. Has an effect only when `angularaxis.type` is *linear*." - }, - "period": { - "valType": "number", - "editType": "calc", - "min": 0, - "role": "info", - "description": "Set the angular period. Has an effect only when `angularaxis.type` is *category*." - }, - "direction": { - "valType": "enumerated", - "values": [ - "counterclockwise", - "clockwise" - ], - "dflt": "counterclockwise", - "role": "info", - "editType": "calc", - "description": "Sets the direction corresponding to positive angles." - }, - "rotation": { - "valType": "angle", - "editType": "calc", - "role": "info", - "description": "Sets that start position (in degrees) of the angular axis By default, polar subplots with `direction` set to *counterclockwise* get a `rotation` of *0* which corresponds to due East (like what mathematicians prefer). In turn, polar with `direction` set to *clockwise* get a rotation of *90* which corresponds to due North (like on a compass)," - }, - "hoverformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "none", - "description": "Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of user-driven changes in axis `rotation`. Defaults to `polar.uirevision`." - }, - "editType": "plot", - "color": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." - }, - "showline": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "plot", - "description": "Determines whether or not a line bounding this axis is drawn." - }, - "linecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets the axis line color." - }, - "linewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the axis line." - }, - "showgrid": { - "valType": "boolean", - "role": "style", - "editType": "plot", - "description": "Determines whether or not grid lines are drawn. If *true*, the grid lines are drawn at every tick mark.", - "dflt": true - }, - "gridcolor": { - "valType": "color", - "dflt": "#eee", - "role": "style", - "editType": "plot", - "description": "Sets the color of the grid lines." - }, - "gridwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the width (in px) of the grid lines." - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "plot", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "plot", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "plot", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "plot", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "plot", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "plot", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "plot", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines." - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "plot", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "plot", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "plot", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "plot", - "description": "Determines whether or not the tick labels are drawn." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets a tick label prefix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets a tick label suffix." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "plot", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "plot", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "plot", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "plot", - "description": "If \"true\", even 4-digit integers are separated" - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "plot", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "plot" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "plot" - }, - "editType": "plot", - "description": "Sets the tick font.", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "plot", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "plot", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "plot" - }, - { - "valType": "any", - "editType": "plot" - } - ], - "editType": "plot", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "plot", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "plot", - "name": { - "valType": "string", - "role": "style", - "editType": "plot", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "plot", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "layer": { - "valType": "enumerated", - "values": [ - "above traces", - "below traces" - ], - "dflt": "above traces", - "role": "info", - "editType": "plot", - "description": "Sets the layer on which this axis is displayed. If *above traces*, this axis is displayed above all the subplot's traces If *below traces*, this axis is displayed below all the subplot's traces, but above the grid lines. Useful when used together with scatter-like traces with `cliponaxis` set to *false* to show markers and/or text nodes above this axis." - }, - "role": "object", - "categoryarraysrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for categoryarray .", - "editType": "none" - }, - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "gridshape": { - "valType": "enumerated", - "values": [ - "circular", - "linear" - ], - "dflt": "circular", - "role": "style", - "editType": "plot", - "description": "Determines if the radial axis grid lines and angular axis line are drawn as *circular* sectors or as *linear* (polygon) sectors. Has an effect only when the angular axis has `type` *category*. Note that `radialaxis.angle` is snapped to the angle of the closest vertex when `gridshape` is *circular* (so that radial axis scale is the same as the data scale)." - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of user-driven changes in axis attributes, if not overridden in the individual axes. Defaults to `layout.uirevision`." - }, - "editType": "calc", - "_isSubplotObj": true, - "role": "object" - }, - "radialaxis": { - "range": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "number", - "editType": "plot" - }, - { - "valType": "number", - "editType": "plot" - } - ], - "description": "Legacy polar charts are deprecated! Please switch to *polar* subplots. Defines the start and end point of this radial axis.", - "editType": "plot" - }, - "domain": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - } - ], - "dflt": [ - 0, - 1 - ], - "editType": "plot", - "description": "Polar chart subplots are not supported yet. This key has currently no effect." - }, - "orientation": { - "valType": "number", - "role": "style", - "description": "Legacy polar charts are deprecated! Please switch to *polar* subplots. Sets the orientation (an angle with respect to the origin) of the radial axis.", - "editType": "plot" - }, - "showline": { - "valType": "boolean", - "role": "style", - "description": "Legacy polar charts are deprecated! Please switch to *polar* subplots. Determines whether or not the line bounding this radial axis will be shown on the figure.", - "editType": "plot" - }, - "showticklabels": { - "valType": "boolean", - "role": "style", - "description": "Legacy polar charts are deprecated! Please switch to *polar* subplots. Determines whether or not the radial axis ticks will feature tick labels.", - "editType": "plot" - }, - "tickorientation": { - "valType": "enumerated", - "values": [ - "horizontal", - "vertical" - ], - "role": "style", - "description": "Legacy polar charts are deprecated! Please switch to *polar* subplots. Sets the orientation (from the paper perspective) of the radial axis tick labels.", - "editType": "plot" - }, - "ticklen": { - "valType": "number", - "min": 0, - "role": "style", - "description": "Legacy polar charts are deprecated! Please switch to *polar* subplots. Sets the length of the tick lines on this radial axis.", - "editType": "plot" - }, - "tickcolor": { - "valType": "color", - "role": "style", - "description": "Legacy polar charts are deprecated! Please switch to *polar* subplots. Sets the color of the tick lines on this radial axis.", - "editType": "plot" - }, - "ticksuffix": { - "valType": "string", - "role": "style", - "description": "Legacy polar charts are deprecated! Please switch to *polar* subplots. Sets the length of the tick lines on this radial axis.", - "editType": "plot" - }, - "endpadding": { - "valType": "number", - "role": "style", - "description": "Legacy polar charts are deprecated! Please switch to *polar* subplots.", - "editType": "plot" - }, - "visible": { - "valType": "boolean", - "role": "info", - "description": "Legacy polar charts are deprecated! Please switch to *polar* subplots. Determines whether or not this axis will be visible.", - "editType": "plot" - }, - "editType": "plot", - "role": "object" - }, - "angularaxis": { - "range": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "number", - "dflt": 0, - "editType": "plot" - }, - { - "valType": "number", - "dflt": 360, - "editType": "plot" - } - ], - "description": "Legacy polar charts are deprecated! Please switch to *polar* subplots. Defines the start and end point of this angular axis.", - "editType": "plot" - }, - "domain": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - }, - { - "valType": "number", - "min": 0, - "max": 1, - "editType": "plot" - } - ], - "dflt": [ - 0, - 1 - ], - "editType": "plot", - "description": "Polar chart subplots are not supported yet. This key has currently no effect." - }, - "showline": { - "valType": "boolean", - "role": "style", - "description": "Legacy polar charts are deprecated! Please switch to *polar* subplots. Determines whether or not the line bounding this angular axis will be shown on the figure.", - "editType": "plot" - }, - "showticklabels": { - "valType": "boolean", - "role": "style", - "description": "Legacy polar charts are deprecated! Please switch to *polar* subplots. Determines whether or not the angular axis ticks will feature tick labels.", - "editType": "plot" - }, - "tickorientation": { - "valType": "enumerated", - "values": [ - "horizontal", - "vertical" - ], - "role": "style", - "description": "Legacy polar charts are deprecated! Please switch to *polar* subplots. Sets the orientation (from the paper perspective) of the angular axis tick labels.", - "editType": "plot" - }, - "ticklen": { - "valType": "number", - "min": 0, - "role": "style", - "description": "Legacy polar charts are deprecated! Please switch to *polar* subplots. Sets the length of the tick lines on this angular axis.", - "editType": "plot" - }, - "tickcolor": { - "valType": "color", - "role": "style", - "description": "Legacy polar charts are deprecated! Please switch to *polar* subplots. Sets the color of the tick lines on this angular axis.", - "editType": "plot" - }, - "ticksuffix": { - "valType": "string", - "role": "style", - "description": "Legacy polar charts are deprecated! Please switch to *polar* subplots. Sets the length of the tick lines on this angular axis.", - "editType": "plot" - }, - "endpadding": { - "valType": "number", - "role": "style", - "description": "Legacy polar charts are deprecated! Please switch to *polar* subplots.", - "editType": "plot" - }, - "visible": { - "valType": "boolean", - "role": "info", - "description": "Legacy polar charts are deprecated! Please switch to *polar* subplots. Determines whether or not this axis will be visible.", - "editType": "plot" - }, - "editType": "plot", - "role": "object" - }, - "direction": { - "valType": "enumerated", - "values": [ - "clockwise", - "counterclockwise" - ], - "role": "info", - "description": "Legacy polar charts are deprecated! Please switch to *polar* subplots. Sets the direction corresponding to positive angles in legacy polar charts.", - "editType": "plot" - }, - "orientation": { - "valType": "angle", - "role": "info", - "description": "Legacy polar charts are deprecated! Please switch to *polar* subplots. Rotates the entire polar by the given angle in legacy polar charts.", - "editType": "plot" - }, - "editType": "calc", - "legend": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "legend", - "description": "Sets the legend background color. Defaults to `layout.paper_bgcolor`." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "legend", - "description": "Sets the color of the border enclosing the legend." - }, - "borderwidth": { - "valType": "number", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "legend", - "description": "Sets the width (in px) of the border enclosing the legend." - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "legend", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "legend" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "legend" - }, - "editType": "legend", - "description": "Sets the font used to text the legend items.", - "role": "object" - }, - "orientation": { - "valType": "enumerated", - "values": [ - "v", - "h" - ], - "dflt": "v", - "role": "info", - "editType": "legend", - "description": "Sets the orientation of the legend." - }, - "traceorder": { - "valType": "flaglist", - "flags": [ - "reversed", - "grouped" - ], - "extras": [ - "normal" - ], - "role": "style", - "editType": "legend", - "description": "Determines the order at which the legend items are displayed. If *normal*, the items are displayed top-to-bottom in the same order as the input data. If *reversed*, the items are displayed in the opposite order as *normal*. If *grouped*, the items are displayed in groups (when a trace `legendgroup` is provided). if *grouped+reversed*, the items are displayed in the opposite order as *grouped*." - }, - "tracegroupgap": { - "valType": "number", - "min": 0, - "dflt": 10, - "role": "style", - "editType": "legend", - "description": "Sets the amount of vertical space (in px) between legend groups." - }, - "itemsizing": { - "valType": "enumerated", - "values": [ - "trace", - "constant" - ], - "dflt": "trace", - "role": "style", - "editType": "legend", - "description": "Determines if the legend items symbols scale with their corresponding *trace* attributes or remain *constant* independent of the symbol size on the graph." - }, - "itemwidth": { - "valType": "number", - "min": 30, - "dflt": 30, - "role": "style", - "editType": "legend", - "description": "Sets the width (in px) of the legend item symbols (the part other than the title.text)." - }, - "itemclick": { - "valType": "enumerated", - "values": [ - "toggle", - "toggleothers", - false - ], - "dflt": "toggle", - "role": "info", - "editType": "legend", - "description": "Determines the behavior on legend item click. *toggle* toggles the visibility of the item clicked on the graph. *toggleothers* makes the clicked item the sole visible item on the graph. *false* disable legend item click interactions." - }, - "itemdoubleclick": { - "valType": "enumerated", - "values": [ - "toggle", - "toggleothers", - false - ], - "dflt": "toggleothers", - "role": "info", - "editType": "legend", - "description": "Determines the behavior on legend item double-click. *toggle* toggles the visibility of the item clicked on the graph. *toggleothers* makes the clicked item the sole visible item on the graph. *false* disable legend item double-click interactions." - }, - "x": { - "valType": "number", - "min": -2, - "max": 3, - "role": "style", - "editType": "legend", - "description": "Sets the x position (in normalized coordinates) of the legend. Defaults to *1.02* for vertical legends and defaults to *0* for horizontal legends." - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "auto", - "left", - "center", - "right" - ], - "dflt": "left", - "role": "info", - "editType": "legend", - "description": "Sets the legend's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the legend. Value *auto* anchors legends to the right for `x` values greater than or equal to 2/3, anchors legends to the left for `x` values less than or equal to 1/3 and anchors legends with respect to their center otherwise." - }, - "y": { - "valType": "number", - "min": -2, - "max": 3, - "role": "style", - "editType": "legend", - "description": "Sets the y position (in normalized coordinates) of the legend. Defaults to *1* for vertical legends, defaults to *-0.1* for horizontal legends on graphs w/o range sliders and defaults to *1.1* for horizontal legends on graph with one or multiple range sliders." - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "auto", - "top", - "middle", - "bottom" - ], - "role": "info", - "editType": "legend", - "description": "Sets the legend's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the legend. Value *auto* anchors legends at their bottom for `y` values less than or equal to 1/3, anchors legends to at their top for `y` values greater than or equal to 2/3 and anchors legends with respect to their middle otherwise." - }, - "uirevision": { - "valType": "any", - "role": "info", - "editType": "none", - "description": "Controls persistence of legend-driven changes in trace and pie label visibility. Defaults to `layout.uirevision`." - }, - "valign": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "dflt": "middle", - "role": "style", - "editType": "legend", - "description": "Sets the vertical alignment of the symbols with respect to their associated text." - }, - "title": { - "text": { - "valType": "string", - "dflt": "", - "role": "info", - "editType": "legend", - "description": "Sets the title of the legend." - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "legend", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "legend" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "legend" - }, - "editType": "legend", - "description": "Sets this legend's title font.", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "top", - "left", - "top left" - ], - "role": "style", - "editType": "legend", - "description": "Determines the location of legend's title with respect to the legend items. Defaulted to *top* with `orientation` is *h*. Defaulted to *left* with `orientation` is *v*. The *top left* options could be used to expand legend area in both x and y sides." - }, - "editType": "legend", - "role": "object" - }, - "editType": "legend", - "role": "object" - }, - "annotations": { - "items": { - "annotation": { - "visible": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc+arraydraw", - "description": "Determines whether or not this annotation is visible." - }, - "text": { - "valType": "string", - "role": "info", - "editType": "calc+arraydraw", - "description": "Sets the text associated with this annotation. Plotly uses a subset of HTML tags to do things like newline (
    ), bold (), italics (), hyperlinks (). Tags , , are also supported." - }, - "textangle": { - "valType": "angle", - "dflt": 0, - "role": "style", - "editType": "calc+arraydraw", - "description": "Sets the angle at which the `text` is drawn with respect to the horizontal." - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "calc+arraydraw", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "calc+arraydraw" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "arraydraw" - }, - "editType": "calc+arraydraw", - "description": "Sets the annotation text font.", - "role": "object" - }, - "width": { - "valType": "number", - "min": 1, - "dflt": null, - "role": "style", - "editType": "calc+arraydraw", - "description": "Sets an explicit width for the text box. null (default) lets the text set the box width. Wider text will be clipped. There is no automatic wrapping; use
    to start a new line." - }, - "height": { - "valType": "number", - "min": 1, - "dflt": null, - "role": "style", - "editType": "calc+arraydraw", - "description": "Sets an explicit height for the text box. null (default) lets the text set the box height. Taller text will be clipped." - }, - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": 1, - "role": "style", - "editType": "arraydraw", - "description": "Sets the opacity of the annotation (text + arrow)." - }, - "align": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "center", - "role": "style", - "editType": "arraydraw", - "description": "Sets the horizontal alignment of the `text` within the box. Has an effect only if `text` spans two or more lines (i.e. `text` contains one or more
    HTML tags) or if an explicit width is set to override the text width." - }, - "valign": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "dflt": "middle", - "role": "style", - "editType": "arraydraw", - "description": "Sets the vertical alignment of the `text` within the box. Has an effect only if an explicit height is set to override the text height." - }, - "bgcolor": { - "valType": "color", - "dflt": "rgba(0,0,0,0)", - "role": "style", - "editType": "arraydraw", - "description": "Sets the background color of the annotation." - }, - "bordercolor": { - "valType": "color", - "dflt": "rgba(0,0,0,0)", - "role": "style", - "editType": "arraydraw", - "description": "Sets the color of the border enclosing the annotation `text`." - }, - "borderpad": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc+arraydraw", - "description": "Sets the padding (in px) between the `text` and the enclosing border." - }, - "borderwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "calc+arraydraw", - "description": "Sets the width (in px) of the border enclosing the annotation `text`." - }, - "showarrow": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "calc+arraydraw", - "description": "Determines whether or not the annotation is drawn with an arrow. If *true*, `text` is placed near the arrow's tail. If *false*, `text` lines up with the `x` and `y` provided." - }, - "arrowcolor": { - "valType": "color", - "role": "style", - "editType": "arraydraw", - "description": "Sets the color of the annotation arrow." - }, - "arrowhead": { - "valType": "integer", - "min": 0, - "max": 8, - "dflt": 1, - "role": "style", - "editType": "arraydraw", - "description": "Sets the end annotation arrow head style." - }, - "startarrowhead": { - "valType": "integer", - "min": 0, - "max": 8, - "dflt": 1, - "role": "style", - "editType": "arraydraw", - "description": "Sets the start annotation arrow head style." - }, - "arrowside": { - "valType": "flaglist", - "flags": [ - "end", - "start" - ], - "extras": [ - "none" - ], - "dflt": "end", - "role": "style", - "editType": "arraydraw", - "description": "Sets the annotation arrow head position." - }, - "arrowsize": { - "valType": "number", - "min": 0.3, - "dflt": 1, - "role": "style", - "editType": "calc+arraydraw", - "description": "Sets the size of the end annotation arrow head, relative to `arrowwidth`. A value of 1 (default) gives a head about 3x as wide as the line." - }, - "startarrowsize": { - "valType": "number", - "min": 0.3, - "dflt": 1, - "role": "style", - "editType": "calc+arraydraw", - "description": "Sets the size of the start annotation arrow head, relative to `arrowwidth`. A value of 1 (default) gives a head about 3x as wide as the line." - }, - "arrowwidth": { - "valType": "number", - "min": 0.1, - "role": "style", - "editType": "calc+arraydraw", - "description": "Sets the width (in px) of annotation arrow line." - }, - "standoff": { - "valType": "number", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc+arraydraw", - "description": "Sets a distance, in pixels, to move the end arrowhead away from the position it is pointing at, for example to point at the edge of a marker independent of zoom. Note that this shortens the arrow from the `ax` / `ay` vector, in contrast to `xshift` / `yshift` which moves everything by this amount." - }, - "startstandoff": { - "valType": "number", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "calc+arraydraw", - "description": "Sets a distance, in pixels, to move the start arrowhead away from the position it is pointing at, for example to point at the edge of a marker independent of zoom. Note that this shortens the arrow from the `ax` / `ay` vector, in contrast to `xshift` / `yshift` which moves everything by this amount." - }, - "ax": { - "valType": "any", - "role": "info", - "editType": "calc+arraydraw", - "description": "Sets the x component of the arrow tail about the arrow head. If `axref` is `pixel`, a positive (negative) component corresponds to an arrow pointing from right to left (left to right). If `axref` is not `pixel` and is exactly the same as `xref`, this is an absolute value on that axis, like `x`, specified in the same coordinates as `xref`." - }, - "ay": { - "valType": "any", - "role": "info", - "editType": "calc+arraydraw", - "description": "Sets the y component of the arrow tail about the arrow head. If `ayref` is `pixel`, a positive (negative) component corresponds to an arrow pointing from bottom to top (top to bottom). If `ayref` is not `pixel` and is exactly the same as `yref`, this is an absolute value on that axis, like `y`, specified in the same coordinates as `yref`." - }, - "axref": { - "valType": "enumerated", - "dflt": "pixel", - "values": [ - "pixel", - "/^x([2-9]|[1-9][0-9]+)?( domain)?$/" - ], - "role": "info", - "editType": "calc", - "description": "Indicates in what coordinates the tail of the annotation (ax,ay) is specified. If set to a ax axis id (e.g. *ax* or *ax2*), the `ax` position refers to a ax coordinate. If set to *paper*, the `ax` position refers to the distance from the left of the plotting area in normalized coordinates where *0* (*1*) corresponds to the left (right). If set to a ax axis ID followed by *domain* (separated by a space), the position behaves like for *paper*, but refers to the distance in fractions of the domain length from the left of the domain of that axis: e.g., *ax2 domain* refers to the domain of the second ax axis and a ax position of 0.5 refers to the point between the left and the right of the domain of the second ax axis. In order for absolute positioning of the arrow to work, *axref* must be exactly the same as *xref*, otherwise *axref* will revert to *pixel* (explained next). For relative positioning, *axref* can be set to *pixel*, in which case the *ax* value is specified in pixels relative to *x*. Absolute positioning is useful for trendline annotations which should continue to indicate the correct trend when zoomed. Relative positioning is useful for specifying the text offset for an annotated point." - }, - "ayref": { - "valType": "enumerated", - "dflt": "pixel", - "values": [ - "pixel", - "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" - ], - "role": "info", - "editType": "calc", - "description": "Indicates in what coordinates the tail of the annotation (ax,ay) is specified. If set to a ay axis id (e.g. *ay* or *ay2*), the `ay` position refers to a ay coordinate. If set to *paper*, the `ay` position refers to the distance from the bottom of the plotting area in normalized coordinates where *0* (*1*) corresponds to the bottom (top). If set to a ay axis ID followed by *domain* (separated by a space), the position behaves like for *paper*, but refers to the distance in fractions of the domain length from the bottom of the domain of that axis: e.g., *ay2 domain* refers to the domain of the second ay axis and a ay position of 0.5 refers to the point between the bottom and the top of the domain of the second ay axis. In order for absolute positioning of the arrow to work, *ayref* must be exactly the same as *yref*, otherwise *ayref* will revert to *pixel* (explained next). For relative positioning, *ayref* can be set to *pixel*, in which case the *ay* value is specified in pixels relative to *y*. Absolute positioning is useful for trendline annotations which should continue to indicate the correct trend when zoomed. Relative positioning is useful for specifying the text offset for an annotated point." - }, - "xref": { - "valType": "enumerated", - "values": [ - "paper", - "/^x([2-9]|[1-9][0-9]+)?( domain)?$/" - ], - "role": "info", - "editType": "calc", - "description": "Sets the annotation's x coordinate axis. If set to a x axis id (e.g. *x* or *x2*), the `x` position refers to a x coordinate. If set to *paper*, the `x` position refers to the distance from the left of the plotting area in normalized coordinates where *0* (*1*) corresponds to the left (right). If set to a x axis ID followed by *domain* (separated by a space), the position behaves like for *paper*, but refers to the distance in fractions of the domain length from the left of the domain of that axis: e.g., *x2 domain* refers to the domain of the second x axis and a x position of 0.5 refers to the point between the left and the right of the domain of the second x axis." - }, - "x": { - "valType": "any", - "role": "info", - "editType": "calc+arraydraw", - "description": "Sets the annotation's x position. If the axis `type` is *log*, then you must take the log of your desired range. If the axis `type` is *date*, it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is *category*, it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "auto", - "left", - "center", - "right" - ], - "dflt": "auto", - "role": "info", - "editType": "calc+arraydraw", - "description": "Sets the text box's horizontal position anchor This anchor binds the `x` position to the *left*, *center* or *right* of the annotation. For example, if `x` is set to 1, `xref` to *paper* and `xanchor` to *right* then the right-most portion of the annotation lines up with the right-most edge of the plotting area. If *auto*, the anchor is equivalent to *center* for data-referenced annotations or if there is an arrow, whereas for paper-referenced with no arrow, the anchor picked corresponds to the closest side." - }, - "xshift": { - "valType": "number", - "dflt": 0, - "role": "style", - "editType": "calc+arraydraw", - "description": "Shifts the position of the whole annotation and arrow to the right (positive) or left (negative) by this many pixels." - }, - "yref": { - "valType": "enumerated", - "values": [ - "paper", - "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" - ], - "role": "info", - "editType": "calc", - "description": "Sets the annotation's y coordinate axis. If set to a y axis id (e.g. *y* or *y2*), the `y` position refers to a y coordinate. If set to *paper*, the `y` position refers to the distance from the bottom of the plotting area in normalized coordinates where *0* (*1*) corresponds to the bottom (top). If set to a y axis ID followed by *domain* (separated by a space), the position behaves like for *paper*, but refers to the distance in fractions of the domain length from the bottom of the domain of that axis: e.g., *y2 domain* refers to the domain of the second y axis and a y position of 0.5 refers to the point between the bottom and the top of the domain of the second y axis." - }, - "y": { - "valType": "any", - "role": "info", - "editType": "calc+arraydraw", - "description": "Sets the annotation's y position. If the axis `type` is *log*, then you must take the log of your desired range. If the axis `type` is *date*, it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is *category*, it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "auto", - "top", - "middle", - "bottom" - ], - "dflt": "auto", - "role": "info", - "editType": "calc+arraydraw", - "description": "Sets the text box's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the annotation. For example, if `y` is set to 1, `yref` to *paper* and `yanchor` to *top* then the top-most portion of the annotation lines up with the top-most edge of the plotting area. If *auto*, the anchor is equivalent to *middle* for data-referenced annotations or if there is an arrow, whereas for paper-referenced with no arrow, the anchor picked corresponds to the closest side." - }, - "yshift": { - "valType": "number", - "dflt": 0, - "role": "style", - "editType": "calc+arraydraw", - "description": "Shifts the position of the whole annotation and arrow up (positive) or down (negative) by this many pixels." - }, - "clicktoshow": { - "valType": "enumerated", - "values": [ - false, - "onoff", - "onout" - ], - "dflt": false, - "role": "style", - "editType": "arraydraw", - "description": "Makes this annotation respond to clicks on the plot. If you click a data point that exactly matches the `x` and `y` values of this annotation, and it is hidden (visible: false), it will appear. In *onoff* mode, you must click the same point again to make it disappear, so if you click multiple points, you can show multiple annotations. In *onout* mode, a click anywhere else in the plot (on another data point or not) will hide this annotation. If you need to show/hide this annotation in response to different `x` or `y` values, you can set `xclick` and/or `yclick`. This is useful for example to label the side of a bar. To label markers though, `standoff` is preferred over `xclick` and `yclick`." - }, - "xclick": { - "valType": "any", - "role": "info", - "editType": "arraydraw", - "description": "Toggle this annotation when clicking a data point whose `x` value is `xclick` rather than the annotation's `x` value." - }, - "yclick": { - "valType": "any", - "role": "info", - "editType": "arraydraw", - "description": "Toggle this annotation when clicking a data point whose `y` value is `yclick` rather than the annotation's `y` value." - }, - "hovertext": { - "valType": "string", - "role": "info", - "editType": "arraydraw", - "description": "Sets text to appear when hovering over this annotation. If omitted or blank, no hover label will appear." - }, - "hoverlabel": { - "bgcolor": { - "valType": "color", - "role": "style", - "editType": "arraydraw", - "description": "Sets the background color of the hover label. By default uses the annotation's `bgcolor` made opaque, or white if it was transparent." - }, - "bordercolor": { - "valType": "color", - "role": "style", - "editType": "arraydraw", - "description": "Sets the border color of the hover label. By default uses either dark grey or white, for maximum contrast with `hoverlabel.bgcolor`." - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "editType": "arraydraw", - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "arraydraw" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "arraydraw" - }, - "editType": "arraydraw", - "description": "Sets the hover label text font. By default uses the global hover font and size, with color from `hoverlabel.bordercolor`.", - "role": "object" - }, - "editType": "arraydraw", - "role": "object" - }, - "captureevents": { - "valType": "boolean", - "role": "info", - "editType": "arraydraw", - "description": "Determines whether the annotation text box captures mouse move and click events, or allows those events to pass through to data points in the plot that may be behind the annotation. By default `captureevents` is *false* unless `hovertext` is provided. If you use the event `plotly_clickannotation` without `hovertext` you must explicitly enable `captureevents`." - }, - "editType": "calc", - "_deprecated": { - "ref": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Obsolete. Set `xref` and `yref` separately instead." - } - }, - "name": { - "valType": "string", - "role": "style", - "editType": "none", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "shapes": { - "items": { - "shape": { - "visible": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc+arraydraw", - "description": "Determines whether or not this shape is visible." - }, - "type": { - "valType": "enumerated", - "values": [ - "circle", - "rect", - "path", - "line" - ], - "role": "info", - "editType": "calc+arraydraw", - "description": "Specifies the shape type to be drawn. If *line*, a line is drawn from (`x0`,`y0`) to (`x1`,`y1`) with respect to the axes' sizing mode. If *circle*, a circle is drawn from ((`x0`+`x1`)/2, (`y0`+`y1`)/2)) with radius (|(`x0`+`x1`)/2 - `x0`|, |(`y0`+`y1`)/2 -`y0`)|) with respect to the axes' sizing mode. If *rect*, a rectangle is drawn linking (`x0`,`y0`), (`x1`,`y0`), (`x1`,`y1`), (`x0`,`y1`), (`x0`,`y0`) with respect to the axes' sizing mode. If *path*, draw a custom SVG path using `path`. with respect to the axes' sizing mode." - }, - "layer": { - "valType": "enumerated", - "values": [ - "below", - "above" - ], - "dflt": "above", - "role": "info", - "editType": "arraydraw", - "description": "Specifies whether shapes are drawn below or above traces." - }, - "xref": { - "valType": "enumerated", - "values": [ - "paper", - "/^x([2-9]|[1-9][0-9]+)?( domain)?$/" - ], - "role": "info", - "editType": "calc", - "description": "Sets the shape's x coordinate axis. If set to a x axis id (e.g. *x* or *x2*), the `x` position refers to a x coordinate. If set to *paper*, the `x` position refers to the distance from the left of the plotting area in normalized coordinates where *0* (*1*) corresponds to the left (right). If set to a x axis ID followed by *domain* (separated by a space), the position behaves like for *paper*, but refers to the distance in fractions of the domain length from the left of the domain of that axis: e.g., *x2 domain* refers to the domain of the second x axis and a x position of 0.5 refers to the point between the left and the right of the domain of the second x axis. If the axis `type` is *log*, then you must take the log of your desired range. If the axis `type` is *date*, then you must convert the date to unix time in milliseconds." - }, - "xsizemode": { - "valType": "enumerated", - "values": [ - "scaled", - "pixel" - ], - "dflt": "scaled", - "role": "info", - "editType": "calc+arraydraw", - "description": "Sets the shapes's sizing mode along the x axis. If set to *scaled*, `x0`, `x1` and x coordinates within `path` refer to data values on the x axis or a fraction of the plot area's width (`xref` set to *paper*). If set to *pixel*, `xanchor` specifies the x position in terms of data or plot fraction but `x0`, `x1` and x coordinates within `path` are pixels relative to `xanchor`. This way, the shape can have a fixed width while maintaining a position relative to data or plot fraction." - }, - "xanchor": { - "valType": "any", - "role": "info", - "editType": "calc+arraydraw", - "description": "Only relevant in conjunction with `xsizemode` set to *pixel*. Specifies the anchor point on the x axis to which `x0`, `x1` and x coordinates within `path` are relative to. E.g. useful to attach a pixel sized shape to a certain data value. No effect when `xsizemode` not set to *pixel*." - }, - "x0": { - "valType": "any", - "role": "info", - "editType": "calc+arraydraw", - "description": "Sets the shape's starting x position. See `type` and `xsizemode` for more info." - }, - "x1": { - "valType": "any", - "role": "info", - "editType": "calc+arraydraw", - "description": "Sets the shape's end x position. See `type` and `xsizemode` for more info." - }, - "yref": { - "valType": "enumerated", - "values": [ - "paper", - "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" - ], - "role": "info", - "editType": "calc", - "description": "Sets the annotation's y coordinate axis. If set to a y axis id (e.g. *y* or *y2*), the `y` position refers to a y coordinate. If set to *paper*, the `y` position refers to the distance from the bottom of the plotting area in normalized coordinates where *0* (*1*) corresponds to the bottom (top). If set to a y axis ID followed by *domain* (separated by a space), the position behaves like for *paper*, but refers to the distance in fractions of the domain length from the bottom of the domain of that axis: e.g., *y2 domain* refers to the domain of the second y axis and a y position of 0.5 refers to the point between the bottom and the top of the domain of the second y axis." - }, - "ysizemode": { - "valType": "enumerated", - "values": [ - "scaled", - "pixel" - ], - "dflt": "scaled", - "role": "info", - "editType": "calc+arraydraw", - "description": "Sets the shapes's sizing mode along the y axis. If set to *scaled*, `y0`, `y1` and y coordinates within `path` refer to data values on the y axis or a fraction of the plot area's height (`yref` set to *paper*). If set to *pixel*, `yanchor` specifies the y position in terms of data or plot fraction but `y0`, `y1` and y coordinates within `path` are pixels relative to `yanchor`. This way, the shape can have a fixed height while maintaining a position relative to data or plot fraction." - }, - "yanchor": { - "valType": "any", - "role": "info", - "editType": "calc+arraydraw", - "description": "Only relevant in conjunction with `ysizemode` set to *pixel*. Specifies the anchor point on the y axis to which `y0`, `y1` and y coordinates within `path` are relative to. E.g. useful to attach a pixel sized shape to a certain data value. No effect when `ysizemode` not set to *pixel*." - }, - "y0": { - "valType": "any", - "role": "info", - "editType": "calc+arraydraw", - "description": "Sets the shape's starting y position. See `type` and `ysizemode` for more info." - }, - "y1": { - "valType": "any", - "role": "info", - "editType": "calc+arraydraw", - "description": "Sets the shape's end y position. See `type` and `ysizemode` for more info." - }, - "path": { - "valType": "string", - "role": "info", - "editType": "calc+arraydraw", - "description": "For `type` *path* - a valid SVG path with the pixel values replaced by data values in `xsizemode`/`ysizemode` being *scaled* and taken unmodified as pixels relative to `xanchor` and `yanchor` in case of *pixel* size mode. There are a few restrictions / quirks only absolute instructions, not relative. So the allowed segments are: M, L, H, V, Q, C, T, S, and Z arcs (A) are not allowed because radius rx and ry are relative. In the future we could consider supporting relative commands, but we would have to decide on how to handle date and log axes. Note that even as is, Q and C Bezier paths that are smooth on linear axes may not be smooth on log, and vice versa. no chained \"polybezier\" commands - specify the segment type for each one. On category axes, values are numbers scaled to the serial numbers of categories because using the categories themselves there would be no way to describe fractional positions On data axes: because space and T are both normal components of path strings, we can't use either to separate date from time parts. Therefore we'll use underscore for this purpose: 2015-02-21_13:45:56.789" - }, - "opacity": { - "valType": "number", - "min": 0, - "max": 1, - "dflt": 1, - "role": "info", - "editType": "arraydraw", - "description": "Sets the opacity of the shape." - }, - "line": { - "color": { - "valType": "color", - "role": "style", - "editType": "arraydraw", - "anim": true, - "description": "Sets the line color." - }, - "width": { - "valType": "number", - "min": 0, - "dflt": 2, - "role": "style", - "editType": "calc+arraydraw", - "anim": true, - "description": "Sets the line width (in px)." - }, - "dash": { - "valType": "string", - "values": [ - "solid", - "dot", - "dash", - "longdash", - "dashdot", - "longdashdot" - ], - "dflt": "solid", - "role": "style", - "editType": "arraydraw", - "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." - }, - "role": "object", - "editType": "calc+arraydraw" - }, - "fillcolor": { - "valType": "color", - "dflt": "rgba(0,0,0,0)", - "role": "info", - "editType": "arraydraw", - "description": "Sets the color filling the shape's interior. Only applies to closed shapes." - }, - "fillrule": { - "valType": "enumerated", - "values": [ - "evenodd", - "nonzero" - ], - "dflt": "evenodd", - "role": "info", - "editType": "arraydraw", - "description": "Determines which regions of complex paths constitute the interior. For more info please visit https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill-rule" - }, - "editable": { - "valType": "boolean", - "role": "info", - "dflt": false, - "editType": "calc+arraydraw", - "description": "Determines whether the shape could be activated for edit or not. Has no effect when the older editable shapes mode is enabled via `config.editable` or `config.edits.shapePosition`." - }, - "editType": "arraydraw", - "name": { - "valType": "string", - "role": "style", - "editType": "none", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "images": { - "items": { - "image": { - "visible": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "arraydraw", - "description": "Determines whether or not this image is visible." - }, - "source": { - "valType": "string", - "role": "info", - "editType": "arraydraw", - "description": "Specifies the URL of the image to be used. The URL must be accessible from the domain where the plot code is run, and can be either relative or absolute." - }, - "layer": { - "valType": "enumerated", - "values": [ - "below", - "above" - ], - "dflt": "above", - "role": "info", - "editType": "arraydraw", - "description": "Specifies whether images are drawn below or above traces. When `xref` and `yref` are both set to `paper`, image is drawn below the entire plot area." - }, - "sizex": { - "valType": "number", - "role": "info", - "dflt": 0, - "editType": "arraydraw", - "description": "Sets the image container size horizontally. The image will be sized based on the `position` value. When `xref` is set to `paper`, units are sized relative to the plot width. When `xref` ends with ` domain`, units are sized relative to the axis width." - }, - "sizey": { - "valType": "number", - "role": "info", - "dflt": 0, - "editType": "arraydraw", - "description": "Sets the image container size vertically. The image will be sized based on the `position` value. When `yref` is set to `paper`, units are sized relative to the plot height. When `yref` ends with ` domain`, units are sized relative to the axis height." - }, - "sizing": { - "valType": "enumerated", - "values": [ - "fill", - "contain", - "stretch" - ], - "dflt": "contain", - "role": "info", - "editType": "arraydraw", - "description": "Specifies which dimension of the image to constrain." - }, - "opacity": { - "valType": "number", - "role": "info", - "min": 0, - "max": 1, - "dflt": 1, - "editType": "arraydraw", - "description": "Sets the opacity of the image." - }, - "x": { - "valType": "any", - "role": "info", - "dflt": 0, - "editType": "arraydraw", - "description": "Sets the image's x position. When `xref` is set to `paper`, units are sized relative to the plot height. See `xref` for more info" - }, - "y": { - "valType": "any", - "role": "info", - "dflt": 0, - "editType": "arraydraw", - "description": "Sets the image's y position. When `yref` is set to `paper`, units are sized relative to the plot height. See `yref` for more info" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "info", - "editType": "arraydraw", - "description": "Sets the anchor for the x position" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "dflt": "top", - "role": "info", - "editType": "arraydraw", - "description": "Sets the anchor for the y position." - }, - "xref": { - "valType": "enumerated", - "values": [ - "paper", - "/^x([2-9]|[1-9][0-9]+)?( domain)?$/" - ], - "dflt": "paper", - "role": "info", - "editType": "arraydraw", - "description": "Sets the images's x coordinate axis. If set to a x axis id (e.g. *x* or *x2*), the `x` position refers to a x coordinate. If set to *paper*, the `x` position refers to the distance from the left of the plotting area in normalized coordinates where *0* (*1*) corresponds to the left (right). If set to a x axis ID followed by *domain* (separated by a space), the position behaves like for *paper*, but refers to the distance in fractions of the domain length from the left of the domain of that axis: e.g., *x2 domain* refers to the domain of the second x axis and a x position of 0.5 refers to the point between the left and the right of the domain of the second x axis." - }, - "yref": { - "valType": "enumerated", - "values": [ - "paper", - "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" - ], - "dflt": "paper", - "role": "info", - "editType": "arraydraw", - "description": "Sets the images's y coordinate axis. If set to a y axis id (e.g. *y* or *y2*), the `y` position refers to a y coordinate. If set to *paper*, the `y` position refers to the distance from the bottom of the plotting area in normalized coordinates where *0* (*1*) corresponds to the bottom (top). If set to a y axis ID followed by *domain* (separated by a space), the position behaves like for *paper*, but refers to the distance in fractions of the domain length from the bottom of the domain of that axis: e.g., *y2 domain* refers to the domain of the second y axis and a y position of 0.5 refers to the point between the bottom and the top of the domain of the second y axis." - }, - "editType": "arraydraw", - "name": { - "valType": "string", - "role": "style", - "editType": "none", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "updatemenus": { - "items": { - "updatemenu": { - "_arrayAttrRegexps": [ - {} - ], - "visible": { - "valType": "boolean", - "role": "info", - "description": "Determines whether or not the update menu is visible.", - "editType": "arraydraw" - }, - "type": { - "valType": "enumerated", - "values": [ - "dropdown", - "buttons" - ], - "dflt": "dropdown", - "role": "info", - "description": "Determines whether the buttons are accessible via a dropdown menu or whether the buttons are stacked horizontally or vertically", - "editType": "arraydraw" - }, - "direction": { - "valType": "enumerated", - "values": [ - "left", - "right", - "up", - "down" - ], - "dflt": "down", - "role": "info", - "description": "Determines the direction in which the buttons are laid out, whether in a dropdown menu or a row/column of buttons. For `left` and `up`, the buttons will still appear in left-to-right or top-to-bottom order respectively.", - "editType": "arraydraw" - }, - "active": { - "valType": "integer", - "role": "info", - "min": -1, - "dflt": 0, - "description": "Determines which button (by index starting from 0) is considered active.", - "editType": "arraydraw" - }, - "showactive": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Highlights active dropdown item or active button if true.", - "editType": "arraydraw" - }, - "buttons": { - "items": { - "button": { - "visible": { - "valType": "boolean", - "role": "info", - "description": "Determines whether or not this button is visible.", - "editType": "arraydraw" - }, - "method": { - "valType": "enumerated", - "values": [ - "restyle", - "relayout", - "animate", - "update", - "skip" - ], - "dflt": "restyle", - "role": "info", - "description": "Sets the Plotly method to be called on click. If the `skip` method is used, the API updatemenu will function as normal but will perform no API calls and will not bind automatically to state updates. This may be used to create a component interface and attach to updatemenu events manually via JavaScript.", - "editType": "arraydraw" - }, - "args": { - "valType": "info_array", - "role": "info", - "freeLength": true, - "items": [ - { - "valType": "any", - "editType": "arraydraw" - }, - { - "valType": "any", - "editType": "arraydraw" - }, - { - "valType": "any", - "editType": "arraydraw" - } - ], - "description": "Sets the arguments values to be passed to the Plotly method set in `method` on click.", - "editType": "arraydraw" - }, - "args2": { - "valType": "info_array", - "role": "info", - "freeLength": true, - "items": [ - { - "valType": "any", - "editType": "arraydraw" - }, - { - "valType": "any", - "editType": "arraydraw" - }, - { - "valType": "any", - "editType": "arraydraw" - } - ], - "description": "Sets a 2nd set of `args`, these arguments values are passed to the Plotly method set in `method` when clicking this button while in the active state. Use this to create toggle buttons.", - "editType": "arraydraw" - }, - "label": { - "valType": "string", - "role": "info", - "dflt": "", - "description": "Sets the text label to appear on the button.", - "editType": "arraydraw" - }, - "execute": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "When true, the API method is executed. When false, all other behaviors are the same and command execution is skipped. This may be useful when hooking into, for example, the `plotly_buttonclicked` method and executing the API command manually without losing the benefit of the updatemenu automatically binding to the state of the plot through the specification of `method` and `args`.", - "editType": "arraydraw" - }, - "name": { - "valType": "string", - "role": "style", - "editType": "arraydraw", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "arraydraw", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "editType": "arraydraw", - "role": "object" - } - }, - "role": "object" - }, - "x": { - "valType": "number", - "min": -2, - "max": 3, - "dflt": -0.05, - "role": "style", - "description": "Sets the x position (in normalized coordinates) of the update menu.", - "editType": "arraydraw" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "auto", - "left", - "center", - "right" - ], - "dflt": "right", - "role": "info", - "description": "Sets the update menu's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the range selector.", - "editType": "arraydraw" - }, - "y": { - "valType": "number", - "min": -2, - "max": 3, - "dflt": 1, - "role": "style", - "description": "Sets the y position (in normalized coordinates) of the update menu.", - "editType": "arraydraw" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "auto", - "top", - "middle", - "bottom" - ], - "dflt": "top", - "role": "info", - "description": "Sets the update menu's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the range selector.", - "editType": "arraydraw" - }, - "pad": { - "t": { - "valType": "number", - "dflt": 0, - "role": "style", - "editType": "arraydraw", - "description": "The amount of padding (in px) along the top of the component." - }, - "r": { - "valType": "number", - "dflt": 0, - "role": "style", - "editType": "arraydraw", - "description": "The amount of padding (in px) on the right side of the component." - }, - "b": { - "valType": "number", - "dflt": 0, - "role": "style", - "editType": "arraydraw", - "description": "The amount of padding (in px) along the bottom of the component." - }, - "l": { - "valType": "number", - "dflt": 0, - "role": "style", - "editType": "arraydraw", - "description": "The amount of padding (in px) on the left side of the component." - }, - "editType": "arraydraw", - "description": "Sets the padding around the buttons or dropdown menu.", - "role": "object" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "arraydraw" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "arraydraw" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "arraydraw" - }, - "description": "Sets the font of the update menu button text.", - "editType": "arraydraw", - "role": "object" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "description": "Sets the background color of the update menu buttons.", - "editType": "arraydraw" - }, - "bordercolor": { - "valType": "color", - "dflt": "#BEC8D9", - "role": "style", - "description": "Sets the color of the border enclosing the update menu.", - "editType": "arraydraw" - }, - "borderwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "arraydraw", - "description": "Sets the width (in px) of the border enclosing the update menu." - }, - "name": { - "valType": "string", - "role": "style", - "editType": "arraydraw", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "arraydraw", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "editType": "arraydraw", - "role": "object" - } - }, - "role": "object" - }, - "sliders": { - "items": { - "slider": { - "visible": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Determines whether or not the slider is visible.", - "editType": "arraydraw" - }, - "active": { - "valType": "number", - "role": "info", - "min": 0, - "dflt": 0, - "description": "Determines which button (by index starting from 0) is considered active.", - "editType": "arraydraw" - }, - "steps": { - "items": { - "step": { - "visible": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Determines whether or not this step is included in the slider.", - "editType": "arraydraw" - }, - "method": { - "valType": "enumerated", - "values": [ - "restyle", - "relayout", - "animate", - "update", - "skip" - ], - "dflt": "restyle", - "role": "info", - "description": "Sets the Plotly method to be called when the slider value is changed. If the `skip` method is used, the API slider will function as normal but will perform no API calls and will not bind automatically to state updates. This may be used to create a component interface and attach to slider events manually via JavaScript.", - "editType": "arraydraw" - }, - "args": { - "valType": "info_array", - "role": "info", - "freeLength": true, - "items": [ - { - "valType": "any", - "editType": "arraydraw" - }, - { - "valType": "any", - "editType": "arraydraw" - }, - { - "valType": "any", - "editType": "arraydraw" - } - ], - "description": "Sets the arguments values to be passed to the Plotly method set in `method` on slide.", - "editType": "arraydraw" - }, - "label": { - "valType": "string", - "role": "info", - "description": "Sets the text label to appear on the slider", - "editType": "arraydraw" - }, - "value": { - "valType": "string", - "role": "info", - "description": "Sets the value of the slider step, used to refer to the step programatically. Defaults to the slider label if not provided.", - "editType": "arraydraw" - }, - "execute": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "When true, the API method is executed. When false, all other behaviors are the same and command execution is skipped. This may be useful when hooking into, for example, the `plotly_sliderchange` method and executing the API command manually without losing the benefit of the slider automatically binding to the state of the plot through the specification of `method` and `args`.", - "editType": "arraydraw" - }, - "name": { - "valType": "string", - "role": "style", - "editType": "arraydraw", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "arraydraw", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "editType": "arraydraw", - "role": "object" - } - }, - "role": "object" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this slider length is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "arraydraw" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the slider This measure excludes the padding of both ends. That is, the slider's length is this length minus the padding on both ends.", - "editType": "arraydraw" - }, - "x": { - "valType": "number", - "min": -2, - "max": 3, - "dflt": 0, - "role": "style", - "description": "Sets the x position (in normalized coordinates) of the slider.", - "editType": "arraydraw" - }, - "pad": { - "t": { - "valType": "number", - "dflt": 20, - "role": "style", - "editType": "arraydraw", - "description": "The amount of padding (in px) along the top of the component." - }, - "r": { - "valType": "number", - "dflt": 0, - "role": "style", - "editType": "arraydraw", - "description": "The amount of padding (in px) on the right side of the component." - }, - "b": { - "valType": "number", - "dflt": 0, - "role": "style", - "editType": "arraydraw", - "description": "The amount of padding (in px) along the bottom of the component." - }, - "l": { - "valType": "number", - "dflt": 0, - "role": "style", - "editType": "arraydraw", - "description": "The amount of padding (in px) on the left side of the component." - }, - "editType": "arraydraw", - "description": "Set the padding of the slider component along each side.", - "role": "object" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "auto", - "left", - "center", - "right" - ], - "dflt": "left", - "role": "info", - "description": "Sets the slider's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the range selector.", - "editType": "arraydraw" - }, - "y": { - "valType": "number", - "min": -2, - "max": 3, - "dflt": 0, - "role": "style", - "description": "Sets the y position (in normalized coordinates) of the slider.", - "editType": "arraydraw" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "auto", - "top", - "middle", - "bottom" - ], - "dflt": "top", - "role": "info", - "description": "Sets the slider's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the range selector.", - "editType": "arraydraw" - }, - "transition": { - "duration": { - "valType": "number", - "role": "info", - "min": 0, - "dflt": 150, - "description": "Sets the duration of the slider transition", - "editType": "arraydraw" - }, - "easing": { - "valType": "enumerated", - "values": [ - "linear", - "quad", - "cubic", - "sin", - "exp", - "circle", - "elastic", - "back", - "bounce", - "linear-in", - "quad-in", - "cubic-in", - "sin-in", - "exp-in", - "circle-in", - "elastic-in", - "back-in", - "bounce-in", - "linear-out", - "quad-out", - "cubic-out", - "sin-out", - "exp-out", - "circle-out", - "elastic-out", - "back-out", - "bounce-out", - "linear-in-out", - "quad-in-out", - "cubic-in-out", - "sin-in-out", - "exp-in-out", - "circle-in-out", - "elastic-in-out", - "back-in-out", - "bounce-in-out" - ], - "role": "info", - "dflt": "cubic-in-out", - "description": "Sets the easing function of the slider transition", - "editType": "arraydraw" - }, - "editType": "arraydraw", - "role": "object" - }, - "currentvalue": { - "visible": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Shows the currently-selected value above the slider.", - "editType": "arraydraw" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "info", - "description": "The alignment of the value readout relative to the length of the slider.", - "editType": "arraydraw" - }, - "offset": { - "valType": "number", - "dflt": 10, - "role": "info", - "description": "The amount of space, in pixels, between the current value label and the slider.", - "editType": "arraydraw" - }, - "prefix": { - "valType": "string", - "role": "info", - "description": "When currentvalue.visible is true, this sets the prefix of the label.", - "editType": "arraydraw" - }, - "suffix": { - "valType": "string", - "role": "info", - "description": "When currentvalue.visible is true, this sets the suffix of the label.", - "editType": "arraydraw" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "arraydraw" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "arraydraw" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "arraydraw" - }, - "description": "Sets the font of the current value label text.", - "editType": "arraydraw", - "role": "object" - }, - "editType": "arraydraw", - "role": "object" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "arraydraw" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "arraydraw" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "arraydraw" - }, - "description": "Sets the font of the slider step labels.", - "editType": "arraydraw", - "role": "object" - }, - "activebgcolor": { - "valType": "color", - "role": "style", - "dflt": "#dbdde0", - "description": "Sets the background color of the slider grip while dragging.", - "editType": "arraydraw" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "#f8fafc", - "description": "Sets the background color of the slider.", - "editType": "arraydraw" - }, - "bordercolor": { - "valType": "color", - "dflt": "#bec8d9", - "role": "style", - "description": "Sets the color of the border enclosing the slider.", - "editType": "arraydraw" - }, - "borderwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the width (in px) of the border enclosing the slider.", - "editType": "arraydraw" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 7, - "role": "style", - "description": "Sets the length in pixels of step tick marks", - "editType": "arraydraw" - }, - "tickcolor": { - "valType": "color", - "dflt": "#333", - "role": "style", - "description": "Sets the color of the border enclosing the slider.", - "editType": "arraydraw" - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the tick width (in px).", - "editType": "arraydraw" - }, - "minorticklen": { - "valType": "number", - "min": 0, - "dflt": 4, - "role": "style", - "description": "Sets the length in pixels of minor step tick marks", - "editType": "arraydraw" - }, - "name": { - "valType": "string", - "role": "style", - "editType": "arraydraw", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "arraydraw", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "editType": "arraydraw", - "role": "object" - } - }, - "role": "object" - }, - "colorscale": { - "editType": "calc", - "sequential": { - "valType": "colorscale", - "dflt": [ - [ - 0, - "rgb(220,220,220)" - ], - [ - 0.2, - "rgb(245,195,157)" - ], - [ - 0.4, - "rgb(245,160,105)" - ], - [ - 1, - "rgb(178,10,28)" - ] - ], - "role": "style", - "editType": "calc", - "description": "Sets the default sequential colorscale for positive values. Note that `autocolorscale` must be true for this attribute to work." - }, - "sequentialminus": { - "valType": "colorscale", - "dflt": [ - [ - 0, - "rgb(5,10,172)" - ], - [ - 0.35, - "rgb(40,60,190)" - ], - [ - 0.5, - "rgb(70,100,245)" - ], - [ - 0.6, - "rgb(90,120,245)" - ], - [ - 0.7, - "rgb(106,137,247)" - ], - [ - 1, - "rgb(220,220,220)" - ] - ], - "role": "style", - "editType": "calc", - "description": "Sets the default sequential colorscale for negative values. Note that `autocolorscale` must be true for this attribute to work." - }, - "diverging": { - "valType": "colorscale", - "dflt": [ - [ - 0, - "rgb(5,10,172)" - ], - [ - 0.35, - "rgb(106,137,247)" - ], - [ - 0.5, - "rgb(190,190,190)" - ], - [ - 0.6, - "rgb(220,170,132)" - ], - [ - 0.7, - "rgb(230,145,90)" - ], - [ - 1, - "rgb(178,10,28)" - ] - ], - "role": "style", - "editType": "calc", - "description": "Sets the default diverging colorscale. Note that `autocolorscale` must be true for this attribute to work." - }, - "role": "object" - }, - "coloraxis": { - "_isSubplotObj": true, - "editType": "calc", - "description": "", - "cauto": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether or not the color domain is computed with respect to the input data (here corresponding trace color array(s)) or the bounds set in `cmin` and `cmax` Defaults to `false` when `cmin` and `cmax` are set by the user." - }, - "cmin": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the lower bound of the color domain. Value should have the same units as corresponding trace color array(s) and if set, `cmax` must be set as well." - }, - "cmax": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "plot", - "impliedEdits": { - "cauto": false - }, - "description": "Sets the upper bound of the color domain. Value should have the same units as corresponding trace color array(s) and if set, `cmin` must be set as well." - }, - "cmid": { - "valType": "number", - "role": "info", - "dflt": null, - "editType": "calc", - "impliedEdits": {}, - "description": "Sets the mid-point of the color domain by scaling `cmin` and/or `cmax` to be equidistant to this point. Value should have the same units as corresponding trace color array(s). Has no effect when `cauto` is `false`." - }, - "colorscale": { - "valType": "colorscale", - "role": "style", - "editType": "calc", - "dflt": null, - "impliedEdits": { - "autocolorscale": false - }, - "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`cmin` and `cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." - }, - "autocolorscale": { - "valType": "boolean", - "role": "style", - "dflt": true, - "editType": "calc", - "impliedEdits": {}, - "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." - }, - "reversescale": { - "valType": "boolean", - "role": "style", - "dflt": false, - "editType": "plot", - "description": "Reverses the color mapping if true. If true, `cmin` will correspond to the last color in the array and `cmax` will correspond to the first color." - }, - "showscale": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "calc", - "description": "Determines whether or not a colorbar is displayed for this trace." - }, - "colorbar": { - "thicknessmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "style", - "dflt": "pixels", - "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", - "editType": "colorbars" - }, - "thickness": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 30, - "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", - "editType": "colorbars" - }, - "lenmode": { - "valType": "enumerated", - "values": [ - "fraction", - "pixels" - ], - "role": "info", - "dflt": "fraction", - "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", - "editType": "colorbars" - }, - "len": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", - "editType": "colorbars" - }, - "x": { - "valType": "number", - "dflt": 1.02, - "min": -2, - "max": 3, - "role": "style", - "description": "Sets the x position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "xanchor": { - "valType": "enumerated", - "values": [ - "left", - "center", - "right" - ], - "dflt": "left", - "role": "style", - "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", - "editType": "colorbars" - }, - "xpad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the x direction.", - "editType": "colorbars" - }, - "y": { - "valType": "number", - "role": "style", - "dflt": 0.5, - "min": -2, - "max": 3, - "description": "Sets the y position of the color bar (in plot fraction).", - "editType": "colorbars" - }, - "yanchor": { - "valType": "enumerated", - "values": [ - "top", - "middle", - "bottom" - ], - "role": "style", - "dflt": "middle", - "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", - "editType": "colorbars" - }, - "ypad": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 10, - "description": "Sets the amount of padding (in px) along the y direction.", - "editType": "colorbars" - }, - "outlinecolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "outlinewidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the width (in px) of the axis line." - }, - "bordercolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the axis line color." - }, - "borderwidth": { - "valType": "number", - "role": "style", - "min": 0, - "dflt": 0, - "description": "Sets the width (in px) or the border enclosing this color bar.", - "editType": "colorbars" - }, - "bgcolor": { - "valType": "color", - "role": "style", - "dflt": "rgba(0,0,0,0)", - "description": "Sets the color of padded area.", - "editType": "colorbars" - }, - "tickmode": { - "valType": "enumerated", - "values": [ - "auto", - "linear", - "array" - ], - "role": "info", - "editType": "colorbars", - "impliedEdits": {}, - "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." - }, - "nticks": { - "valType": "integer", - "min": 0, - "dflt": 0, - "role": "style", - "editType": "colorbars", - "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." - }, - "tick0": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." - }, - "dtick": { - "valType": "any", - "role": "style", - "editType": "colorbars", - "impliedEdits": { - "tickmode": "linear" - }, - "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" - }, - "tickvals": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`.", - "role": "data" - }, - "ticktext": { - "valType": "data_array", - "editType": "colorbars", - "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`.", - "role": "data" - }, - "ticks": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "" - ], - "role": "style", - "editType": "colorbars", - "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", - "dflt": "" - }, - "ticklabelposition": { - "valType": "enumerated", - "values": [ - "outside", - "inside", - "outside top", - "inside top", - "outside bottom", - "inside bottom" - ], - "dflt": "outside", - "role": "info", - "description": "Determines where tick labels are drawn.", - "editType": "colorbars" - }, - "ticklen": { - "valType": "number", - "min": 0, - "dflt": 5, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick length (in px)." - }, - "tickwidth": { - "valType": "number", - "min": 0, - "dflt": 1, - "role": "style", - "editType": "colorbars", - "description": "Sets the tick width (in px)." - }, - "tickcolor": { - "valType": "color", - "dflt": "#444", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick color." - }, - "showticklabels": { - "valType": "boolean", - "dflt": true, - "role": "style", - "editType": "colorbars", - "description": "Determines whether or not the tick labels are drawn." - }, - "tickfont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets the color bar's tick label font", - "editType": "colorbars", - "role": "object" - }, - "tickangle": { - "valType": "angle", - "dflt": "auto", - "role": "style", - "editType": "colorbars", - "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." - }, - "tickformat": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" - }, - "tickformatstops": { - "items": { - "tickformatstop": { - "enabled": { - "valType": "boolean", - "role": "info", - "dflt": true, - "editType": "colorbars", - "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." - }, - "dtickrange": { - "valType": "info_array", - "role": "info", - "items": [ - { - "valType": "any", - "editType": "colorbars" - }, - { - "valType": "any", - "editType": "colorbars" - } - ], - "editType": "colorbars", - "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" - }, - "value": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "string - dtickformat for described zoom level, the same as *tickformat*" - }, - "editType": "colorbars", - "name": { - "valType": "string", - "role": "style", - "editType": "colorbars", - "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." - }, - "templateitemname": { - "valType": "string", - "role": "info", - "editType": "colorbars", - "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." - }, - "role": "object" - } - }, - "role": "object" - }, - "tickprefix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label prefix." - }, - "showtickprefix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." - }, - "ticksuffix": { - "valType": "string", - "dflt": "", - "role": "style", - "editType": "colorbars", - "description": "Sets a tick label suffix." - }, - "showticksuffix": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "Same as `showtickprefix` but for tick suffixes." - }, - "separatethousands": { - "valType": "boolean", - "dflt": false, - "role": "style", - "editType": "colorbars", - "description": "If \"true\", even 4-digit integers are separated" - }, - "exponentformat": { - "valType": "enumerated", - "values": [ - "none", - "e", - "E", - "power", - "SI", - "B" - ], - "dflt": "B", - "role": "style", - "editType": "colorbars", - "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." - }, - "minexponent": { - "valType": "number", - "dflt": 3, - "min": 0, - "role": "style", - "editType": "colorbars", - "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." - }, - "showexponent": { - "valType": "enumerated", - "values": [ - "all", - "first", - "last", - "none" - ], - "dflt": "all", - "role": "style", - "editType": "colorbars", - "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." - }, - "title": { - "text": { - "valType": "string", - "role": "info", - "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", - "editType": "colorbars" - }, - "font": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", - "editType": "colorbars", - "role": "object" - }, - "side": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", - "editType": "colorbars" - }, - "editType": "colorbars", - "role": "object" - }, - "_deprecated": { - "title": { - "valType": "string", - "role": "info", - "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", - "editType": "colorbars" - }, - "titlefont": { - "family": { - "valType": "string", - "role": "style", - "noBlank": true, - "strict": true, - "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", - "editType": "colorbars" - }, - "size": { - "valType": "number", - "role": "style", - "min": 1, - "editType": "colorbars" - }, - "color": { - "valType": "color", - "role": "style", - "editType": "colorbars" - }, - "description": "Deprecated in favor of color bar's `title.font`.", - "editType": "colorbars" - }, - "titleside": { - "valType": "enumerated", - "values": [ - "right", - "top", - "bottom" - ], - "role": "style", - "dflt": "top", - "description": "Deprecated in favor of color bar's `title.side`.", - "editType": "colorbars" - } - }, - "editType": "colorbars", - "role": "object", - "tickvalssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for tickvals .", - "editType": "none" - }, - "ticktextsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for ticktext .", - "editType": "none" - } - }, - "role": "object" - }, - "metasrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for meta .", - "editType": "none" - } - } + "editType": "plot", + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of user-driven changes in the view: `center`, `zoom`, `bearing`, `pitch`. Defaults to `layout.uirevision`." }, - "transforms": { - "aggregate": { - "attributes": { - "enabled": { - "valType": "boolean", - "dflt": true, - "role": "info", - "editType": "calc", - "description": "Determines whether this aggregate transform is enabled or disabled." - }, - "groups": { - "valType": "string", - "strict": true, - "noBlank": true, - "arrayOk": true, - "dflt": "x", - "role": "info", - "editType": "calc", - "description": "Sets the grouping target to which the aggregation is applied. Data points with matching group values will be coalesced into one point, using the supplied aggregation functions to reduce data in other data arrays. If a string, `groups` is assumed to be a reference to a data array in the parent trace object. To aggregate by nested variables, use *.* to access them. For example, set `groups` to *marker.color* to aggregate about the marker color array. If an array, `groups` is itself the data array by which we aggregate." - }, - "aggregations": { - "items": { - "aggregation": { - "target": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "A reference to the data array in the parent trace to aggregate. To aggregate by nested variables, use *.* to access them. For example, set `groups` to *marker.color* to aggregate over the marker color array. The referenced array must already exist, unless `func` is *count*, and each array may only be referenced once." - }, - "func": { - "valType": "enumerated", - "values": [ - "count", - "sum", - "avg", - "median", - "mode", - "rms", - "stddev", - "min", - "max", - "first", - "last", - "change", - "range" - ], - "dflt": "first", - "role": "info", - "editType": "calc", - "description": "Sets the aggregation function. All values from the linked `target`, corresponding to the same value in the `groups` array, are collected and reduced by this function. *count* is simply the number of values in the `groups` array, so does not even require the linked array to exist. *first* (*last*) is just the first (last) linked value. Invalid values are ignored, so for example in *avg* they do not contribute to either the numerator or the denominator. Any data type (numeric, date, category) may be aggregated with any function, even though in certain cases it is unlikely to make sense, for example a sum of dates or average of categories. *median* will return the average of the two central values if there is an even count. *mode* will return the first value to reach the maximum count, in case of a tie. *change* will return the difference between the first and last linked values. *range* will return the difference between the min and max linked values." - }, - "funcmode": { - "valType": "enumerated", - "values": [ - "sample", - "population" - ], - "dflt": "sample", - "role": "info", - "editType": "calc", - "description": "*stddev* supports two formula variants: *sample* (normalize by N-1) and *population* (normalize by N)." - }, - "enabled": { - "valType": "boolean", - "dflt": true, - "role": "info", - "editType": "calc", - "description": "Determines whether this aggregation function is enabled or disabled." - }, - "editType": "calc", - "role": "object" - } - }, - "role": "object" - }, - "editType": "calc", - "groupssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for groups .", - "editType": "none" - } - } - }, - "filter": { - "attributes": { - "enabled": { - "valType": "boolean", - "dflt": true, - "role": "info", - "editType": "calc", - "description": "Determines whether this filter transform is enabled or disabled." - }, - "target": { - "valType": "string", - "strict": true, - "noBlank": true, - "arrayOk": true, - "dflt": "x", - "role": "info", - "editType": "calc", - "description": "Sets the filter target by which the filter is applied. If a string, `target` is assumed to be a reference to a data array in the parent trace object. To filter about nested variables, use *.* to access them. For example, set `target` to *marker.color* to filter about the marker color array. If an array, `target` is then the data array by which the filter is applied." - }, - "operation": { - "valType": "enumerated", - "values": [ - "=", - "!=", - "<", - ">=", - ">", - "<=", - "[]", - "()", - "[)", - "(]", - "][", - ")(", - "](", - ")[", - "{}", - "}{" - ], - "dflt": "=", - "role": "info", - "editType": "calc", - "description": "Sets the filter operation. *=* keeps items equal to `value` *!=* keeps items not equal to `value` *<* keeps items less than `value` *<=* keeps items less than or equal to `value` *>* keeps items greater than `value` *>=* keeps items greater than or equal to `value` *[]* keeps items inside `value[0]` to `value[1]` including both bounds *()* keeps items inside `value[0]` to `value[1]` excluding both bounds *[)* keeps items inside `value[0]` to `value[1]` including `value[0]` but excluding `value[1] *(]* keeps items inside `value[0]` to `value[1]` excluding `value[0]` but including `value[1] *][* keeps items outside `value[0]` to `value[1]` and equal to both bounds *)(* keeps items outside `value[0]` to `value[1]` *](* keeps items outside `value[0]` to `value[1]` and equal to `value[0]` *)[* keeps items outside `value[0]` to `value[1]` and equal to `value[1]` *{}* keeps items present in a set of values *}{* keeps items not present in a set of values" - }, - "value": { - "valType": "any", - "dflt": 0, - "role": "info", - "editType": "calc", - "description": "Sets the value or values by which to filter. Values are expected to be in the same type as the data linked to `target`. When `operation` is set to one of the comparison values (=,!=,<,>=,>,<=) `value` is expected to be a number or a string. When `operation` is set to one of the interval values ([],(),[),(],][,)(,](,)[) `value` is expected to be 2-item array where the first item is the lower bound and the second item is the upper bound. When `operation`, is set to one of the set values ({},}{) `value` is expected to be an array with as many items as the desired set elements." - }, - "preservegaps": { - "valType": "boolean", - "dflt": false, - "role": "info", - "editType": "calc", - "description": "Determines whether or not gaps in data arrays produced by the filter operation are preserved. Setting this to *true* might be useful when plotting a line chart with `connectgaps` set to *false*." - }, - "editType": "calc", - "valuecalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use for `value`, if it is a date." - }, - "targetcalendar": { - "valType": "enumerated", - "values": [ - "gregorian", - "chinese", - "coptic", - "discworld", - "ethiopian", - "hebrew", - "islamic", - "julian", - "mayan", - "nanakshahi", - "nepali", - "persian", - "jalali", - "taiwan", - "thai", - "ummalqura" - ], - "role": "info", - "editType": "calc", - "dflt": "gregorian", - "description": "Sets the calendar system to use for `target`, if it is an array of dates. If `target` is a string (eg *x*) we use the corresponding trace attribute (eg `xcalendar`) if it exists, even if `targetcalendar` is provided." - }, - "targetsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for target .", - "editType": "none" - } - } - }, - "groupby": { - "attributes": { - "enabled": { - "valType": "boolean", - "dflt": true, - "role": "info", - "editType": "calc", - "description": "Determines whether this group-by transform is enabled or disabled." - }, - "groups": { - "valType": "data_array", - "dflt": [], - "role": "data", - "editType": "calc", - "description": "Sets the groups in which the trace data will be split. For example, with `x` set to *[1, 2, 3, 4]* and `groups` set to *['a', 'b', 'a', 'b']*, the groupby transform with split in one trace with `x` [1, 3] and one trace with `x` [2, 4]." - }, - "nameformat": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "Pattern by which grouped traces are named. If only one trace is present, defaults to the group name (`\"%{group}\"`), otherwise defaults to the group name with trace name (`\"%{group} (%{trace})\"`). Available escape sequences are `%{group}`, which inserts the group name, and `%{trace}`, which inserts the trace name. If grouping GDP data by country when more than one trace is present, for example, the default \"%{group} (%{trace})\" would return \"Monaco (GDP per capita)\"." - }, - "styles": { - "items": { - "style": { - "target": { - "valType": "string", - "role": "info", - "editType": "calc", - "description": "The group value which receives these styles." - }, - "value": { - "valType": "any", - "role": "info", - "dflt": {}, - "editType": "calc", - "description": "Sets each group styles. For example, with `groups` set to *['a', 'b', 'a', 'b']* and `styles` set to *[{target: 'a', value: { marker: { color: 'red' } }}] marker points in group *'a'* will be drawn in red.", - "_compareAsJSON": true - }, - "editType": "calc", - "role": "object" - } - }, - "role": "object" - }, - "editType": "calc", - "groupssrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for groups .", - "editType": "none" - } - } - }, - "sort": { - "attributes": { - "enabled": { - "valType": "boolean", - "dflt": true, - "role": "info", - "editType": "calc", - "description": "Determines whether this sort transform is enabled or disabled." - }, - "target": { - "valType": "string", - "strict": true, - "noBlank": true, - "arrayOk": true, - "dflt": "x", - "role": "info", - "editType": "calc", - "description": "Sets the target by which the sort transform is applied. If a string, *target* is assumed to be a reference to a data array in the parent trace object. To sort about nested variables, use *.* to access them. For example, set `target` to *marker.size* to sort about the marker size array. If an array, *target* is then the data array by which the sort transform is applied." - }, - "order": { - "valType": "enumerated", - "values": [ - "ascending", - "descending" - ], - "dflt": "ascending", - "role": "info", - "editType": "calc", - "description": "Sets the sort transform order." - }, - "editType": "calc", - "targetsrc": { - "valType": "string", - "role": "info", - "description": "Sets the source reference on Chart Studio Cloud for target .", - "editType": "none" - } - } - } + "_isSubplotObj": true, + "role": "object" + }, + "polar": { + "domain": { + "x": { + "valType": "info_array", + "editType": "plot", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the horizontal domain of this polar subplot (in plot fraction)." + }, + "y": { + "valType": "info_array", + "editType": "plot", + "items": [ + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + }, + { + "valType": "number", + "min": 0, + "max": 1, + "editType": "plot" + } + ], + "dflt": [ + 0, + 1 + ], + "description": "Sets the vertical domain of this polar subplot (in plot fraction)." + }, + "editType": "plot", + "row": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "plot", + "description": "If there is a layout grid, use the domain for this row in the grid for this polar subplot ." + }, + "column": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "plot", + "description": "If there is a layout grid, use the domain for this column in the grid for this polar subplot ." + }, + "role": "object" }, - "frames": { - "items": { - "frames_entry": { - "group": { - "valType": "string", - "role": "info", - "description": "An identifier that specifies the group to which the frame belongs, used by animate to select a subset of frames." - }, - "name": { - "valType": "string", - "role": "info", - "description": "A label by which to identify the frame" - }, - "traces": { - "valType": "any", - "role": "info", - "description": "A list of trace indices that identify the respective traces in the data attribute" - }, - "baseframe": { - "valType": "string", - "role": "info", - "description": "The name of the frame into which this frame's properties are merged before applying. This is used to unify properties and avoid needing to specify the same values for the same properties in multiple frames." - }, - "data": { - "valType": "any", - "role": "object", - "description": "A list of traces this frame modifies. The format is identical to the normal trace definition." - }, - "layout": { - "valType": "any", - "role": "object", - "description": "Layout properties which this frame modifies. The format is identical to the normal layout definition." - }, - "role": "object" - } - }, - "role": "object" + "sector": { + "valType": "info_array", + "items": [ + { + "valType": "number", + "editType": "plot" + }, + { + "valType": "number", + "editType": "plot" + } + ], + "dflt": [ + 0, + 360 + ], + "editType": "plot", + "description": "Sets angular span of this polar subplot with two angles (in degrees). Sector are assumed to be spanned in the counterclockwise direction with *0* corresponding to rightmost limit of the polar subplot." }, - "animation": { - "mode": { - "valType": "enumerated", - "dflt": "afterall", - "role": "info", - "values": [ - "immediate", - "next", - "afterall" - ], - "description": "Describes how a new animate call interacts with currently-running animations. If `immediate`, current animations are interrupted and the new animation is started. If `next`, the current frame is allowed to complete, after which the new animation is started. If `afterall` all existing frames are animated to completion before the new animation is started." - }, - "direction": { - "valType": "enumerated", - "role": "info", - "values": [ - "forward", - "reverse" - ], - "dflt": "forward", - "description": "The direction in which to play the frames triggered by the animation call" - }, - "fromcurrent": { - "valType": "boolean", - "dflt": false, - "role": "info", - "description": "Play frames starting at the current frame instead of the beginning." - }, - "frame": { - "duration": { - "valType": "number", - "role": "info", - "min": 0, - "dflt": 500, - "description": "The duration in milliseconds of each frame. If greater than the frame duration, it will be limited to the frame duration." - }, - "redraw": { - "valType": "boolean", - "role": "info", - "dflt": true, - "description": "Redraw the plot at completion of the transition. This is desirable for transitions that include properties that cannot be transitioned, but may significantly slow down updates that do not require a full redraw of the plot" - }, - "role": "object" - }, - "transition": { - "duration": { - "valType": "number", - "role": "info", - "min": 0, - "dflt": 500, - "editType": "none", - "description": "The duration of the transition, in milliseconds. If equal to zero, updates are synchronous." - }, - "easing": { - "valType": "enumerated", - "dflt": "cubic-in-out", - "values": [ - "linear", - "quad", - "cubic", - "sin", - "exp", - "circle", - "elastic", - "back", - "bounce", - "linear-in", - "quad-in", - "cubic-in", - "sin-in", - "exp-in", - "circle-in", - "elastic-in", - "back-in", - "bounce-in", - "linear-out", - "quad-out", - "cubic-out", - "sin-out", - "exp-out", - "circle-out", - "elastic-out", - "back-out", - "bounce-out", - "linear-in-out", - "quad-in-out", - "cubic-in-out", - "sin-in-out", - "exp-in-out", - "circle-in-out", - "elastic-in-out", - "back-in-out", - "bounce-in-out" - ], - "role": "info", - "editType": "none", - "description": "The easing function used for the transition" - }, - "ordering": { - "valType": "enumerated", - "values": [ - "layout first", - "traces first" - ], - "dflt": "layout first", - "role": "info", - "editType": "none", - "description": "Determines whether the figure's layout or traces smoothly transitions during updates that make both traces and layout change." - }, - "role": "object" - } + "hole": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 0, + "editType": "plot", + "description": "Sets the fraction of the radius to cut out of the polar subplot." }, - "config": { - "staticPlot": { - "valType": "boolean", - "dflt": false, - "description": "Determines whether the graphs are interactive or not. If *false*, no interactivity, for export or image generation." - }, - "plotlyServerURL": { - "valType": "string", - "dflt": "", - "description": "When set it determines base URL for the 'Edit in Chart Studio' `showEditInChartStudio`/`showSendToCloud` mode bar button and the showLink/sendData on-graph link. To enable sending your data to Chart Studio Cloud, you need to set both `plotlyServerURL` to 'https://chart-studio.plotly.com' and also set `showSendToCloud` to true." - }, - "editable": { - "valType": "boolean", - "dflt": false, - "description": "Determines whether the graph is editable or not. Sets all pieces of `edits` unless a separate `edits` config item overrides individual parts." - }, - "edits": { - "annotationPosition": { - "valType": "boolean", - "dflt": false, - "description": "Determines if the main anchor of the annotation is editable. The main anchor corresponds to the text (if no arrow) or the arrow (which drags the whole thing leaving the arrow length & direction unchanged)." - }, - "annotationTail": { - "valType": "boolean", - "dflt": false, - "description": "Has only an effect for annotations with arrows. Enables changing the length and direction of the arrow." - }, - "annotationText": { - "valType": "boolean", - "dflt": false, - "description": "Enables editing annotation text." - }, - "axisTitleText": { - "valType": "boolean", - "dflt": false, - "description": "Enables editing axis title text." - }, - "colorbarPosition": { - "valType": "boolean", - "dflt": false, - "description": "Enables moving colorbars." - }, - "colorbarTitleText": { - "valType": "boolean", - "dflt": false, - "description": "Enables editing colorbar title text." - }, - "legendPosition": { - "valType": "boolean", - "dflt": false, - "description": "Enables moving the legend." - }, - "legendText": { - "valType": "boolean", - "dflt": false, - "description": "Enables editing the trace name fields from the legend" - }, - "shapePosition": { - "valType": "boolean", - "dflt": false, - "description": "Enables moving shapes." - }, - "titleText": { - "valType": "boolean", - "dflt": false, - "description": "Enables editing the global layout title." - }, - "role": "object" - }, - "autosizable": { - "valType": "boolean", - "dflt": false, - "description": "Determines whether the graphs are plotted with respect to layout.autosize:true and infer its container size." + "bgcolor": { + "valType": "color", + "editType": "plot", + "dflt": "#fff", + "description": "Set the background color of the subplot" + }, + "radialaxis": { + "visible": { + "valType": "boolean", + "editType": "plot", + "description": "A single toggle to hide the axis while preserving interaction like dragging. Default is true when a cheater plot is present on the axis, otherwise false", + "dflt": true + }, + "type": { + "valType": "enumerated", + "values": [ + "-", + "linear", + "log", + "date", + "category" + ], + "dflt": "-", + "editType": "calc", + "_noTemplating": true, + "description": "Sets the axis type. By default, plotly attempts to determined the axis type by looking into the data of the traces that referenced the axis in question." + }, + "autotypenumbers": { + "valType": "enumerated", + "values": [ + "convert types", + "strict" + ], + "dflt": "convert types", + "editType": "calc", + "description": "Using *strict* a numeric string in trace data is not converted to a number. Using *convert types* a numeric string in trace data may be treated as a number during automatic axis `type` detection. Defaults to layout.autotypenumbers." + }, + "autorange": { + "valType": "enumerated", + "values": [ + true, + false, + "reversed" + ], + "dflt": true, + "editType": "plot", + "impliedEdits": {}, + "description": "Determines whether or not the range of this axis is computed in relation to the input data. See `rangemode` for more info. If `range` is provided, then `autorange` is set to *false*." + }, + "rangemode": { + "valType": "enumerated", + "values": [ + "tozero", + "nonnegative", + "normal" + ], + "dflt": "tozero", + "editType": "calc", + "description": "If *tozero*`, the range extends to 0, regardless of the input data If *nonnegative*, the range is non-negative, regardless of the input data. If *normal*, the range is computed in relation to the extrema of the input data (same behavior as for cartesian axes)." + }, + "range": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "^autorange": false + } + }, + { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "^autorange": false + } + } + ], + "editType": "plot", + "impliedEdits": { + "autorange": false + }, + "anim": true, + "description": "Sets the range of this axis. If the axis `type` is *log*, then you must take the log of your desired range (e.g. to set the range from 1 to 100, set the range from 0 to 2). If the axis `type` is *date*, it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is *category*, it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "categoryorder": { + "valType": "enumerated", + "values": [ + "trace", + "category ascending", + "category descending", + "array", + "total ascending", + "total descending", + "min ascending", + "min descending", + "max ascending", + "max descending", + "sum ascending", + "sum descending", + "mean ascending", + "mean descending", + "median ascending", + "median descending" + ], + "dflt": "trace", + "editType": "calc", + "description": "Specifies the ordering logic for the case of categorical variables. By default, plotly uses *trace*, which specifies the order that is present in the data supplied. Set `categoryorder` to *category ascending* or *category descending* if order should be determined by the alphanumerical order of the category names. Set `categoryorder` to *array* to derive the ordering from the attribute `categoryarray`. If a category is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to the *trace* mode. The unspecified categories will follow the categories in `categoryarray`. Set `categoryorder` to *total ascending* or *total descending* if order should be determined by the numerical order of the values. Similarly, the order can be determined by the min, max, sum, mean or median of all the values." + }, + "categoryarray": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the order in which categories on this axis appear. Only has an effect if `categoryorder` is set to *array*. Used with `categoryorder`." + }, + "angle": { + "valType": "angle", + "editType": "plot", + "description": "Sets the angle (in degrees) from which the radial axis is drawn. Note that by default, radial axis line on the theta=0 line corresponds to a line pointing right (like what mathematicians prefer). Defaults to the first `polar.sector` angle." + }, + "side": { + "valType": "enumerated", + "values": [ + "clockwise", + "counterclockwise" + ], + "dflt": "clockwise", + "editType": "plot", + "description": "Determines on which side of radial axis line the tick and tick labels appear." + }, + "title": { + "text": { + "valType": "string", + "editType": "plot", + "description": "Sets the title of this axis. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "dflt": "" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "ticks", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "ticks" + }, + "color": { + "valType": "color", + "editType": "ticks" + }, + "editType": "plot", + "description": "Sets this axis' title font. Note that the title's font used to be customized by the now deprecated `titlefont` attribute.", + "role": "object" + }, + "editType": "plot", + "role": "object" + }, + "hoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of user-driven changes in axis `range`, `autorange`, `angle`, and `title` if in `editable: true` configuration. Defaults to `polar.uirevision`." + }, + "editType": "plot", + "_deprecated": { + "title": { + "valType": "string", + "editType": "ticks", + "description": "Value of `title` is no longer a simple *string* but a set of sub-attributes. To set the axis' title, please use `title.text` now." + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "ticks", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "ticks" + }, + "color": { + "valType": "color", + "editType": "ticks" + }, + "editType": "ticks", + "description": "Former `titlefont` is now the sub-attribute `font` of `title`. To customize title font properties, please use `title.font` now." + } + }, + "color": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." + }, + "showline": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not a line bounding this axis is drawn." + }, + "linecolor": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the axis line color." + }, + "linewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the width (in px) of the axis line." + }, + "showgrid": { + "valType": "boolean", + "editType": "plot", + "description": "Determines whether or not grid lines are drawn. If *true*, the grid lines are drawn at every tick mark.", + "dflt": true + }, + "gridcolor": { + "valType": "color", + "dflt": "#eee", + "editType": "plot", + "description": "Sets the color of the grid lines." + }, + "gridwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the width (in px) of the grid lines." + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "plot", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "plot", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "plot", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "plot", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "plot", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines." + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "plot", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not the tick labels are drawn." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets a tick label prefix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets a tick label suffix." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "plot", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "plot", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "If \"true\", even 4-digit integers are separated" + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Sets the tick font.", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "plot", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." }, - "responsive": { - "valType": "boolean", - "dflt": false, - "description": "Determines whether to change the layout size when window is resized. In v2, this option will be removed and will always be true." + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "plot" + }, + { + "valType": "any", + "editType": "plot" + } + ], + "editType": "plot", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" }, - "fillFrame": { - "valType": "boolean", - "dflt": false, - "description": "When `layout.autosize` is turned on, determines whether the graph fills the container (the default) or the screen (if set to *true*)." + "value": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" }, - "frameMargins": { - "valType": "number", - "dflt": 0, - "min": 0, - "max": 0.5, - "description": "When `layout.autosize` is turned on, set the frame margins in fraction of the graph size." + "editType": "plot", + "name": { + "valType": "string", + "editType": "plot", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." }, - "scrollZoom": { - "valType": "flaglist", - "flags": [ - "cartesian", - "gl3d", - "geo", - "mapbox" - ], - "extras": [ - true, - false - ], - "dflt": "gl3d+geo+mapbox", - "description": "Determines whether mouse wheel or two-finger scroll zooms is enable. Turned on by default for gl3d, geo and mapbox subplots (as these subplot types do not have zoombox via pan), but turned off by default for cartesian subplots. Set `scrollZoom` to *false* to disable scrolling for all subplots." + "templateitemname": { + "valType": "string", + "editType": "plot", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." }, - "doubleClick": { - "valType": "enumerated", - "values": [ - false, - "reset", - "autosize", - "reset+autosize" - ], - "dflt": "reset+autosize", - "description": "Sets the double click interaction mode. Has an effect only in cartesian plots. If *false*, double click is disable. If *reset*, double click resets the axis ranges to their initial values. If *autosize*, double click set the axis ranges to their autorange values. If *reset+autosize*, the odd double clicks resets the axis ranges to their initial values and even double clicks set the axis ranges to their autorange values." + "role": "object" + } + }, + "role": "object" + }, + "layer": { + "valType": "enumerated", + "values": [ + "above traces", + "below traces" + ], + "dflt": "above traces", + "editType": "plot", + "description": "Sets the layer on which this axis is displayed. If *above traces*, this axis is displayed above all the subplot's traces If *below traces*, this axis is displayed below all the subplot's traces, but above the grid lines. Useful when used together with scatter-like traces with `cliponaxis` set to *false* to show markers and/or text nodes above this axis." + }, + "calendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "Sets the calendar system to use for `range` and `tick0` if this is a date axis. This does not set the calendar for interpreting data on this axis, that's specified in the trace or via the global `layout.calendar`" + }, + "role": "object", + "categoryarraysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for categoryarray .", + "editType": "none" + }, + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "angularaxis": { + "visible": { + "valType": "boolean", + "editType": "plot", + "description": "A single toggle to hide the axis while preserving interaction like dragging. Default is true when a cheater plot is present on the axis, otherwise false", + "dflt": true + }, + "type": { + "valType": "enumerated", + "values": [ + "-", + "linear", + "category" + ], + "dflt": "-", + "editType": "calc", + "_noTemplating": true, + "description": "Sets the angular axis type. If *linear*, set `thetaunit` to determine the unit in which axis value are shown. If *category, use `period` to set the number of integer coordinates around polar axis." + }, + "autotypenumbers": { + "valType": "enumerated", + "values": [ + "convert types", + "strict" + ], + "dflt": "convert types", + "editType": "calc", + "description": "Using *strict* a numeric string in trace data is not converted to a number. Using *convert types* a numeric string in trace data may be treated as a number during automatic axis `type` detection. Defaults to layout.autotypenumbers." + }, + "categoryorder": { + "valType": "enumerated", + "values": [ + "trace", + "category ascending", + "category descending", + "array", + "total ascending", + "total descending", + "min ascending", + "min descending", + "max ascending", + "max descending", + "sum ascending", + "sum descending", + "mean ascending", + "mean descending", + "median ascending", + "median descending" + ], + "dflt": "trace", + "editType": "calc", + "description": "Specifies the ordering logic for the case of categorical variables. By default, plotly uses *trace*, which specifies the order that is present in the data supplied. Set `categoryorder` to *category ascending* or *category descending* if order should be determined by the alphanumerical order of the category names. Set `categoryorder` to *array* to derive the ordering from the attribute `categoryarray`. If a category is not found in the `categoryarray` array, the sorting behavior for that attribute will be identical to the *trace* mode. The unspecified categories will follow the categories in `categoryarray`. Set `categoryorder` to *total ascending* or *total descending* if order should be determined by the numerical order of the values. Similarly, the order can be determined by the min, max, sum, mean or median of all the values." + }, + "categoryarray": { + "valType": "data_array", + "editType": "calc", + "description": "Sets the order in which categories on this axis appear. Only has an effect if `categoryorder` is set to *array*. Used with `categoryorder`." + }, + "thetaunit": { + "valType": "enumerated", + "values": [ + "radians", + "degrees" + ], + "dflt": "degrees", + "editType": "calc", + "description": "Sets the format unit of the formatted *theta* values. Has an effect only when `angularaxis.type` is *linear*." + }, + "period": { + "valType": "number", + "editType": "calc", + "min": 0, + "description": "Set the angular period. Has an effect only when `angularaxis.type` is *category*." + }, + "direction": { + "valType": "enumerated", + "values": [ + "counterclockwise", + "clockwise" + ], + "dflt": "counterclockwise", + "editType": "calc", + "description": "Sets the direction corresponding to positive angles." + }, + "rotation": { + "valType": "angle", + "editType": "calc", + "description": "Sets that start position (in degrees) of the angular axis By default, polar subplots with `direction` set to *counterclockwise* get a `rotation` of *0* which corresponds to due East (like what mathematicians prefer). In turn, polar with `direction` set to *clockwise* get a rotation of *90* which corresponds to due North (like on a compass)," + }, + "hoverformat": { + "valType": "string", + "dflt": "", + "editType": "none", + "description": "Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of user-driven changes in axis `rotation`. Defaults to `polar.uirevision`." + }, + "editType": "plot", + "color": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets default for all colors associated with this axis all at once: line, font, tick, and grid colors. Grid color is lightened by blending this with the plot background Individual pieces can override this." + }, + "showline": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not a line bounding this axis is drawn." + }, + "linecolor": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the axis line color." + }, + "linewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the width (in px) of the axis line." + }, + "showgrid": { + "valType": "boolean", + "editType": "plot", + "description": "Determines whether or not grid lines are drawn. If *true*, the grid lines are drawn at every tick mark.", + "dflt": true + }, + "gridcolor": { + "valType": "color", + "dflt": "#eee", + "editType": "plot", + "description": "Sets the color of the grid lines." + }, + "gridwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the width (in px) of the grid lines." + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "plot", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "plot", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "plot", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "plot", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "plot", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "plot", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines." + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "plot", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "plot", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "plot", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not the tick labels are drawn." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets a tick label prefix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets a tick label suffix." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "plot", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "plot", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "plot", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "If \"true\", even 4-digit integers are separated" + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "plot", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "plot" + }, + "color": { + "valType": "color", + "editType": "plot" + }, + "editType": "plot", + "description": "Sets the tick font.", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "plot", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "plot", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." }, - "doubleClickDelay": { - "valType": "number", - "dflt": 300, - "min": 0, - "description": "Sets the delay for registering a double-click in ms. This is the time interval (in ms) between first mousedown and 2nd mouseup to constitute a double-click. This setting propagates to all on-subplot double clicks (except for geo and mapbox) and on-legend double clicks." + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "plot" + }, + { + "valType": "any", + "editType": "plot" + } + ], + "editType": "plot", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" }, - "showAxisDragHandles": { - "valType": "boolean", - "dflt": true, - "description": "Set to *false* to omit cartesian axis pan/zoom drag handles." + "value": { + "valType": "string", + "dflt": "", + "editType": "plot", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" }, - "showAxisRangeEntryBoxes": { - "valType": "boolean", - "dflt": true, - "description": "Set to *false* to omit direct range entry at the pan/zoom drag points, note that `showAxisDragHandles` must be enabled to have an effect." + "editType": "plot", + "name": { + "valType": "string", + "editType": "plot", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." }, - "showTips": { - "valType": "boolean", - "dflt": true, - "description": "Determines whether or not tips are shown while interacting with the resulting graphs." + "templateitemname": { + "valType": "string", + "editType": "plot", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." }, - "showLink": { - "valType": "boolean", - "dflt": false, - "description": "Determines whether a link to Chart Studio Cloud is displayed at the bottom right corner of resulting graphs. Use with `sendData` and `linkText`." + "role": "object" + } + }, + "role": "object" + }, + "layer": { + "valType": "enumerated", + "values": [ + "above traces", + "below traces" + ], + "dflt": "above traces", + "editType": "plot", + "description": "Sets the layer on which this axis is displayed. If *above traces*, this axis is displayed above all the subplot's traces If *below traces*, this axis is displayed below all the subplot's traces, but above the grid lines. Useful when used together with scatter-like traces with `cliponaxis` set to *false* to show markers and/or text nodes above this axis." + }, + "role": "object", + "categoryarraysrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for categoryarray .", + "editType": "none" + }, + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "gridshape": { + "valType": "enumerated", + "values": [ + "circular", + "linear" + ], + "dflt": "circular", + "editType": "plot", + "description": "Determines if the radial axis grid lines and angular axis line are drawn as *circular* sectors or as *linear* (polygon) sectors. Has an effect only when the angular axis has `type` *category*. Note that `radialaxis.angle` is snapped to the angle of the closest vertex when `gridshape` is *circular* (so that radial axis scale is the same as the data scale)." + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of user-driven changes in axis attributes, if not overridden in the individual axes. Defaults to `layout.uirevision`." + }, + "editType": "calc", + "_isSubplotObj": true, + "role": "object" + }, + "legend": { + "bgcolor": { + "valType": "color", + "editType": "legend", + "description": "Sets the legend background color. Defaults to `layout.paper_bgcolor`." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "legend", + "description": "Sets the color of the border enclosing the legend." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "legend", + "description": "Sets the width (in px) of the border enclosing the legend." + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "legend", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "legend" + }, + "color": { + "valType": "color", + "editType": "legend" + }, + "editType": "legend", + "description": "Sets the font used to text the legend items.", + "role": "object" + }, + "orientation": { + "valType": "enumerated", + "values": [ + "v", + "h" + ], + "dflt": "v", + "editType": "legend", + "description": "Sets the orientation of the legend." + }, + "traceorder": { + "valType": "flaglist", + "flags": [ + "reversed", + "grouped" + ], + "extras": [ + "normal" + ], + "editType": "legend", + "description": "Determines the order at which the legend items are displayed. If *normal*, the items are displayed top-to-bottom in the same order as the input data. If *reversed*, the items are displayed in the opposite order as *normal*. If *grouped*, the items are displayed in groups (when a trace `legendgroup` is provided). if *grouped+reversed*, the items are displayed in the opposite order as *grouped*." + }, + "tracegroupgap": { + "valType": "number", + "min": 0, + "dflt": 10, + "editType": "legend", + "description": "Sets the amount of vertical space (in px) between legend groups." + }, + "itemsizing": { + "valType": "enumerated", + "values": [ + "trace", + "constant" + ], + "dflt": "trace", + "editType": "legend", + "description": "Determines if the legend items symbols scale with their corresponding *trace* attributes or remain *constant* independent of the symbol size on the graph." + }, + "itemwidth": { + "valType": "number", + "min": 30, + "dflt": 30, + "editType": "legend", + "description": "Sets the width (in px) of the legend item symbols (the part other than the title.text)." + }, + "itemclick": { + "valType": "enumerated", + "values": [ + "toggle", + "toggleothers", + false + ], + "dflt": "toggle", + "editType": "legend", + "description": "Determines the behavior on legend item click. *toggle* toggles the visibility of the item clicked on the graph. *toggleothers* makes the clicked item the sole visible item on the graph. *false* disable legend item click interactions." + }, + "itemdoubleclick": { + "valType": "enumerated", + "values": [ + "toggle", + "toggleothers", + false + ], + "dflt": "toggleothers", + "editType": "legend", + "description": "Determines the behavior on legend item double-click. *toggle* toggles the visibility of the item clicked on the graph. *toggleothers* makes the clicked item the sole visible item on the graph. *false* disable legend item double-click interactions." + }, + "x": { + "valType": "number", + "min": -2, + "max": 3, + "editType": "legend", + "description": "Sets the x position (in normalized coordinates) of the legend. Defaults to *1.02* for vertical legends and defaults to *0* for horizontal legends." + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "auto", + "left", + "center", + "right" + ], + "dflt": "left", + "editType": "legend", + "description": "Sets the legend's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the legend. Value *auto* anchors legends to the right for `x` values greater than or equal to 2/3, anchors legends to the left for `x` values less than or equal to 1/3 and anchors legends with respect to their center otherwise." + }, + "y": { + "valType": "number", + "min": -2, + "max": 3, + "editType": "legend", + "description": "Sets the y position (in normalized coordinates) of the legend. Defaults to *1* for vertical legends, defaults to *-0.1* for horizontal legends on graphs w/o range sliders and defaults to *1.1* for horizontal legends on graph with one or multiple range sliders." + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "auto", + "top", + "middle", + "bottom" + ], + "editType": "legend", + "description": "Sets the legend's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the legend. Value *auto* anchors legends at their bottom for `y` values less than or equal to 1/3, anchors legends to at their top for `y` values greater than or equal to 2/3 and anchors legends with respect to their middle otherwise." + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of legend-driven changes in trace and pie label visibility. Defaults to `layout.uirevision`." + }, + "valign": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "editType": "legend", + "description": "Sets the vertical alignment of the symbols with respect to their associated text." + }, + "title": { + "text": { + "valType": "string", + "dflt": "", + "editType": "legend", + "description": "Sets the title of the legend." + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "legend", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "legend" + }, + "color": { + "valType": "color", + "editType": "legend" + }, + "editType": "legend", + "description": "Sets this legend's title font. Defaults to `legend.font` with its size increased about 20%.", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "top", + "left", + "top left" + ], + "editType": "legend", + "description": "Determines the location of legend's title with respect to the legend items. Defaulted to *top* with `orientation` is *h*. Defaulted to *left* with `orientation` is *v*. The *top left* options could be used to expand legend area in both x and y sides." + }, + "editType": "legend", + "role": "object" + }, + "editType": "legend", + "role": "object" + }, + "annotations": { + "items": { + "annotation": { + "visible": { + "valType": "boolean", + "dflt": true, + "editType": "calc+arraydraw", + "description": "Determines whether or not this annotation is visible." + }, + "text": { + "valType": "string", + "editType": "calc+arraydraw", + "description": "Sets the text associated with this annotation. Plotly uses a subset of HTML tags to do things like newline (
    ), bold (), italics (), hyperlinks (). Tags , , are also supported." + }, + "textangle": { + "valType": "angle", + "dflt": 0, + "editType": "calc+arraydraw", + "description": "Sets the angle at which the `text` is drawn with respect to the horizontal." + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "calc+arraydraw", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." + }, + "size": { + "valType": "number", + "min": 1, + "editType": "calc+arraydraw" + }, + "color": { + "valType": "color", + "editType": "arraydraw" + }, + "editType": "calc+arraydraw", + "description": "Sets the annotation text font.", + "role": "object" + }, + "width": { + "valType": "number", + "min": 1, + "dflt": null, + "editType": "calc+arraydraw", + "description": "Sets an explicit width for the text box. null (default) lets the text set the box width. Wider text will be clipped. There is no automatic wrapping; use
    to start a new line." + }, + "height": { + "valType": "number", + "min": 1, + "dflt": null, + "editType": "calc+arraydraw", + "description": "Sets an explicit height for the text box. null (default) lets the text set the box height. Taller text will be clipped." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "arraydraw", + "description": "Sets the opacity of the annotation (text + arrow)." + }, + "align": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "center", + "editType": "arraydraw", + "description": "Sets the horizontal alignment of the `text` within the box. Has an effect only if `text` spans two or more lines (i.e. `text` contains one or more
    HTML tags) or if an explicit width is set to override the text width." + }, + "valign": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "editType": "arraydraw", + "description": "Sets the vertical alignment of the `text` within the box. Has an effect only if an explicit height is set to override the text height." + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "editType": "arraydraw", + "description": "Sets the background color of the annotation." + }, + "bordercolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "editType": "arraydraw", + "description": "Sets the color of the border enclosing the annotation `text`." + }, + "borderpad": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc+arraydraw", + "description": "Sets the padding (in px) between the `text` and the enclosing border." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "calc+arraydraw", + "description": "Sets the width (in px) of the border enclosing the annotation `text`." + }, + "showarrow": { + "valType": "boolean", + "dflt": true, + "editType": "calc+arraydraw", + "description": "Determines whether or not the annotation is drawn with an arrow. If *true*, `text` is placed near the arrow's tail. If *false*, `text` lines up with the `x` and `y` provided." + }, + "arrowcolor": { + "valType": "color", + "editType": "arraydraw", + "description": "Sets the color of the annotation arrow." + }, + "arrowhead": { + "valType": "integer", + "min": 0, + "max": 8, + "dflt": 1, + "editType": "arraydraw", + "description": "Sets the end annotation arrow head style." + }, + "startarrowhead": { + "valType": "integer", + "min": 0, + "max": 8, + "dflt": 1, + "editType": "arraydraw", + "description": "Sets the start annotation arrow head style." + }, + "arrowside": { + "valType": "flaglist", + "flags": [ + "end", + "start" + ], + "extras": [ + "none" + ], + "dflt": "end", + "editType": "arraydraw", + "description": "Sets the annotation arrow head position." + }, + "arrowsize": { + "valType": "number", + "min": 0.3, + "dflt": 1, + "editType": "calc+arraydraw", + "description": "Sets the size of the end annotation arrow head, relative to `arrowwidth`. A value of 1 (default) gives a head about 3x as wide as the line." + }, + "startarrowsize": { + "valType": "number", + "min": 0.3, + "dflt": 1, + "editType": "calc+arraydraw", + "description": "Sets the size of the start annotation arrow head, relative to `arrowwidth`. A value of 1 (default) gives a head about 3x as wide as the line." + }, + "arrowwidth": { + "valType": "number", + "min": 0.1, + "editType": "calc+arraydraw", + "description": "Sets the width (in px) of annotation arrow line." + }, + "standoff": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "calc+arraydraw", + "description": "Sets a distance, in pixels, to move the end arrowhead away from the position it is pointing at, for example to point at the edge of a marker independent of zoom. Note that this shortens the arrow from the `ax` / `ay` vector, in contrast to `xshift` / `yshift` which moves everything by this amount." + }, + "startstandoff": { + "valType": "number", + "min": 0, + "dflt": 0, + "editType": "calc+arraydraw", + "description": "Sets a distance, in pixels, to move the start arrowhead away from the position it is pointing at, for example to point at the edge of a marker independent of zoom. Note that this shortens the arrow from the `ax` / `ay` vector, in contrast to `xshift` / `yshift` which moves everything by this amount." + }, + "ax": { + "valType": "any", + "editType": "calc+arraydraw", + "description": "Sets the x component of the arrow tail about the arrow head. If `axref` is `pixel`, a positive (negative) component corresponds to an arrow pointing from right to left (left to right). If `axref` is not `pixel` and is exactly the same as `xref`, this is an absolute value on that axis, like `x`, specified in the same coordinates as `xref`." + }, + "ay": { + "valType": "any", + "editType": "calc+arraydraw", + "description": "Sets the y component of the arrow tail about the arrow head. If `ayref` is `pixel`, a positive (negative) component corresponds to an arrow pointing from bottom to top (top to bottom). If `ayref` is not `pixel` and is exactly the same as `yref`, this is an absolute value on that axis, like `y`, specified in the same coordinates as `yref`." + }, + "axref": { + "valType": "enumerated", + "dflt": "pixel", + "values": [ + "pixel", + "/^x([2-9]|[1-9][0-9]+)?( domain)?$/" + ], + "editType": "calc", + "description": "Indicates in what coordinates the tail of the annotation (ax,ay) is specified. If set to a ax axis id (e.g. *ax* or *ax2*), the `ax` position refers to a ax coordinate. If set to *paper*, the `ax` position refers to the distance from the left of the plotting area in normalized coordinates where *0* (*1*) corresponds to the left (right). If set to a ax axis ID followed by *domain* (separated by a space), the position behaves like for *paper*, but refers to the distance in fractions of the domain length from the left of the domain of that axis: e.g., *ax2 domain* refers to the domain of the second ax axis and a ax position of 0.5 refers to the point between the left and the right of the domain of the second ax axis. In order for absolute positioning of the arrow to work, *axref* must be exactly the same as *xref*, otherwise *axref* will revert to *pixel* (explained next). For relative positioning, *axref* can be set to *pixel*, in which case the *ax* value is specified in pixels relative to *x*. Absolute positioning is useful for trendline annotations which should continue to indicate the correct trend when zoomed. Relative positioning is useful for specifying the text offset for an annotated point." + }, + "ayref": { + "valType": "enumerated", + "dflt": "pixel", + "values": [ + "pixel", + "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" + ], + "editType": "calc", + "description": "Indicates in what coordinates the tail of the annotation (ax,ay) is specified. If set to a ay axis id (e.g. *ay* or *ay2*), the `ay` position refers to a ay coordinate. If set to *paper*, the `ay` position refers to the distance from the bottom of the plotting area in normalized coordinates where *0* (*1*) corresponds to the bottom (top). If set to a ay axis ID followed by *domain* (separated by a space), the position behaves like for *paper*, but refers to the distance in fractions of the domain length from the bottom of the domain of that axis: e.g., *ay2 domain* refers to the domain of the second ay axis and a ay position of 0.5 refers to the point between the bottom and the top of the domain of the second ay axis. In order for absolute positioning of the arrow to work, *ayref* must be exactly the same as *yref*, otherwise *ayref* will revert to *pixel* (explained next). For relative positioning, *ayref* can be set to *pixel*, in which case the *ay* value is specified in pixels relative to *y*. Absolute positioning is useful for trendline annotations which should continue to indicate the correct trend when zoomed. Relative positioning is useful for specifying the text offset for an annotated point." + }, + "xref": { + "valType": "enumerated", + "values": [ + "paper", + "/^x([2-9]|[1-9][0-9]+)?( domain)?$/" + ], + "editType": "calc", + "description": "Sets the annotation's x coordinate axis. If set to a x axis id (e.g. *x* or *x2*), the `x` position refers to a x coordinate. If set to *paper*, the `x` position refers to the distance from the left of the plotting area in normalized coordinates where *0* (*1*) corresponds to the left (right). If set to a x axis ID followed by *domain* (separated by a space), the position behaves like for *paper*, but refers to the distance in fractions of the domain length from the left of the domain of that axis: e.g., *x2 domain* refers to the domain of the second x axis and a x position of 0.5 refers to the point between the left and the right of the domain of the second x axis." + }, + "x": { + "valType": "any", + "editType": "calc+arraydraw", + "description": "Sets the annotation's x position. If the axis `type` is *log*, then you must take the log of your desired range. If the axis `type` is *date*, it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is *category*, it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "auto", + "left", + "center", + "right" + ], + "dflt": "auto", + "editType": "calc+arraydraw", + "description": "Sets the text box's horizontal position anchor This anchor binds the `x` position to the *left*, *center* or *right* of the annotation. For example, if `x` is set to 1, `xref` to *paper* and `xanchor` to *right* then the right-most portion of the annotation lines up with the right-most edge of the plotting area. If *auto*, the anchor is equivalent to *center* for data-referenced annotations or if there is an arrow, whereas for paper-referenced with no arrow, the anchor picked corresponds to the closest side." + }, + "xshift": { + "valType": "number", + "dflt": 0, + "editType": "calc+arraydraw", + "description": "Shifts the position of the whole annotation and arrow to the right (positive) or left (negative) by this many pixels." + }, + "yref": { + "valType": "enumerated", + "values": [ + "paper", + "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" + ], + "editType": "calc", + "description": "Sets the annotation's y coordinate axis. If set to a y axis id (e.g. *y* or *y2*), the `y` position refers to a y coordinate. If set to *paper*, the `y` position refers to the distance from the bottom of the plotting area in normalized coordinates where *0* (*1*) corresponds to the bottom (top). If set to a y axis ID followed by *domain* (separated by a space), the position behaves like for *paper*, but refers to the distance in fractions of the domain length from the bottom of the domain of that axis: e.g., *y2 domain* refers to the domain of the second y axis and a y position of 0.5 refers to the point between the bottom and the top of the domain of the second y axis." + }, + "y": { + "valType": "any", + "editType": "calc+arraydraw", + "description": "Sets the annotation's y position. If the axis `type` is *log*, then you must take the log of your desired range. If the axis `type` is *date*, it should be date strings, like date data, though Date objects and unix milliseconds will be accepted and converted to strings. If the axis `type` is *category*, it should be numbers, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "auto", + "top", + "middle", + "bottom" + ], + "dflt": "auto", + "editType": "calc+arraydraw", + "description": "Sets the text box's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the annotation. For example, if `y` is set to 1, `yref` to *paper* and `yanchor` to *top* then the top-most portion of the annotation lines up with the top-most edge of the plotting area. If *auto*, the anchor is equivalent to *middle* for data-referenced annotations or if there is an arrow, whereas for paper-referenced with no arrow, the anchor picked corresponds to the closest side." + }, + "yshift": { + "valType": "number", + "dflt": 0, + "editType": "calc+arraydraw", + "description": "Shifts the position of the whole annotation and arrow up (positive) or down (negative) by this many pixels." + }, + "clicktoshow": { + "valType": "enumerated", + "values": [ + false, + "onoff", + "onout" + ], + "dflt": false, + "editType": "arraydraw", + "description": "Makes this annotation respond to clicks on the plot. If you click a data point that exactly matches the `x` and `y` values of this annotation, and it is hidden (visible: false), it will appear. In *onoff* mode, you must click the same point again to make it disappear, so if you click multiple points, you can show multiple annotations. In *onout* mode, a click anywhere else in the plot (on another data point or not) will hide this annotation. If you need to show/hide this annotation in response to different `x` or `y` values, you can set `xclick` and/or `yclick`. This is useful for example to label the side of a bar. To label markers though, `standoff` is preferred over `xclick` and `yclick`." + }, + "xclick": { + "valType": "any", + "editType": "arraydraw", + "description": "Toggle this annotation when clicking a data point whose `x` value is `xclick` rather than the annotation's `x` value." + }, + "yclick": { + "valType": "any", + "editType": "arraydraw", + "description": "Toggle this annotation when clicking a data point whose `y` value is `yclick` rather than the annotation's `y` value." + }, + "hovertext": { + "valType": "string", + "editType": "arraydraw", + "description": "Sets text to appear when hovering over this annotation. If omitted or blank, no hover label will appear." + }, + "hoverlabel": { + "bgcolor": { + "valType": "color", + "editType": "arraydraw", + "description": "Sets the background color of the hover label. By default uses the annotation's `bgcolor` made opaque, or white if it was transparent." + }, + "bordercolor": { + "valType": "color", + "editType": "arraydraw", + "description": "Sets the border color of the hover label. By default uses either dark grey or white, for maximum contrast with `hoverlabel.bgcolor`." + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "editType": "arraydraw", + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*." }, - "linkText": { - "valType": "string", - "dflt": "Edit chart", - "noBlank": true, - "description": "Sets the text appearing in the `showLink` link." + "size": { + "valType": "number", + "min": 1, + "editType": "arraydraw" }, - "sendData": { - "valType": "boolean", - "dflt": true, - "description": "If *showLink* is true, does it contain data just link to a Chart Studio Cloud file?" + "color": { + "valType": "color", + "editType": "arraydraw" }, - "showSources": { + "editType": "arraydraw", + "description": "Sets the hover label text font. By default uses the global hover font and size, with color from `hoverlabel.bordercolor`.", + "role": "object" + }, + "editType": "arraydraw", + "role": "object" + }, + "captureevents": { + "valType": "boolean", + "editType": "arraydraw", + "description": "Determines whether the annotation text box captures mouse move and click events, or allows those events to pass through to data points in the plot that may be behind the annotation. By default `captureevents` is *false* unless `hovertext` is provided. If you use the event `plotly_clickannotation` without `hovertext` you must explicitly enable `captureevents`." + }, + "editType": "calc", + "_deprecated": { + "ref": { + "valType": "string", + "editType": "calc", + "description": "Obsolete. Set `xref` and `yref` separately instead." + } + }, + "name": { + "valType": "string", + "editType": "none", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "calc", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "shapes": { + "items": { + "shape": { + "visible": { + "valType": "boolean", + "dflt": true, + "editType": "calc+arraydraw", + "description": "Determines whether or not this shape is visible." + }, + "type": { + "valType": "enumerated", + "values": [ + "circle", + "rect", + "path", + "line" + ], + "editType": "calc+arraydraw", + "description": "Specifies the shape type to be drawn. If *line*, a line is drawn from (`x0`,`y0`) to (`x1`,`y1`) with respect to the axes' sizing mode. If *circle*, a circle is drawn from ((`x0`+`x1`)/2, (`y0`+`y1`)/2)) with radius (|(`x0`+`x1`)/2 - `x0`|, |(`y0`+`y1`)/2 -`y0`)|) with respect to the axes' sizing mode. If *rect*, a rectangle is drawn linking (`x0`,`y0`), (`x1`,`y0`), (`x1`,`y1`), (`x0`,`y1`), (`x0`,`y0`) with respect to the axes' sizing mode. If *path*, draw a custom SVG path using `path`. with respect to the axes' sizing mode." + }, + "layer": { + "valType": "enumerated", + "values": [ + "below", + "above" + ], + "dflt": "above", + "editType": "arraydraw", + "description": "Specifies whether shapes are drawn below or above traces." + }, + "xref": { + "valType": "enumerated", + "values": [ + "paper", + "/^x([2-9]|[1-9][0-9]+)?( domain)?$/" + ], + "editType": "calc", + "description": "Sets the shape's x coordinate axis. If set to a x axis id (e.g. *x* or *x2*), the `x` position refers to a x coordinate. If set to *paper*, the `x` position refers to the distance from the left of the plotting area in normalized coordinates where *0* (*1*) corresponds to the left (right). If set to a x axis ID followed by *domain* (separated by a space), the position behaves like for *paper*, but refers to the distance in fractions of the domain length from the left of the domain of that axis: e.g., *x2 domain* refers to the domain of the second x axis and a x position of 0.5 refers to the point between the left and the right of the domain of the second x axis. If the axis `type` is *log*, then you must take the log of your desired range. If the axis `type` is *date*, then you must convert the date to unix time in milliseconds." + }, + "xsizemode": { + "valType": "enumerated", + "values": [ + "scaled", + "pixel" + ], + "dflt": "scaled", + "editType": "calc+arraydraw", + "description": "Sets the shapes's sizing mode along the x axis. If set to *scaled*, `x0`, `x1` and x coordinates within `path` refer to data values on the x axis or a fraction of the plot area's width (`xref` set to *paper*). If set to *pixel*, `xanchor` specifies the x position in terms of data or plot fraction but `x0`, `x1` and x coordinates within `path` are pixels relative to `xanchor`. This way, the shape can have a fixed width while maintaining a position relative to data or plot fraction." + }, + "xanchor": { + "valType": "any", + "editType": "calc+arraydraw", + "description": "Only relevant in conjunction with `xsizemode` set to *pixel*. Specifies the anchor point on the x axis to which `x0`, `x1` and x coordinates within `path` are relative to. E.g. useful to attach a pixel sized shape to a certain data value. No effect when `xsizemode` not set to *pixel*." + }, + "x0": { + "valType": "any", + "editType": "calc+arraydraw", + "description": "Sets the shape's starting x position. See `type` and `xsizemode` for more info." + }, + "x1": { + "valType": "any", + "editType": "calc+arraydraw", + "description": "Sets the shape's end x position. See `type` and `xsizemode` for more info." + }, + "yref": { + "valType": "enumerated", + "values": [ + "paper", + "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" + ], + "editType": "calc", + "description": "Sets the annotation's y coordinate axis. If set to a y axis id (e.g. *y* or *y2*), the `y` position refers to a y coordinate. If set to *paper*, the `y` position refers to the distance from the bottom of the plotting area in normalized coordinates where *0* (*1*) corresponds to the bottom (top). If set to a y axis ID followed by *domain* (separated by a space), the position behaves like for *paper*, but refers to the distance in fractions of the domain length from the bottom of the domain of that axis: e.g., *y2 domain* refers to the domain of the second y axis and a y position of 0.5 refers to the point between the bottom and the top of the domain of the second y axis." + }, + "ysizemode": { + "valType": "enumerated", + "values": [ + "scaled", + "pixel" + ], + "dflt": "scaled", + "editType": "calc+arraydraw", + "description": "Sets the shapes's sizing mode along the y axis. If set to *scaled*, `y0`, `y1` and y coordinates within `path` refer to data values on the y axis or a fraction of the plot area's height (`yref` set to *paper*). If set to *pixel*, `yanchor` specifies the y position in terms of data or plot fraction but `y0`, `y1` and y coordinates within `path` are pixels relative to `yanchor`. This way, the shape can have a fixed height while maintaining a position relative to data or plot fraction." + }, + "yanchor": { + "valType": "any", + "editType": "calc+arraydraw", + "description": "Only relevant in conjunction with `ysizemode` set to *pixel*. Specifies the anchor point on the y axis to which `y0`, `y1` and y coordinates within `path` are relative to. E.g. useful to attach a pixel sized shape to a certain data value. No effect when `ysizemode` not set to *pixel*." + }, + "y0": { + "valType": "any", + "editType": "calc+arraydraw", + "description": "Sets the shape's starting y position. See `type` and `ysizemode` for more info." + }, + "y1": { + "valType": "any", + "editType": "calc+arraydraw", + "description": "Sets the shape's end y position. See `type` and `ysizemode` for more info." + }, + "path": { + "valType": "string", + "editType": "calc+arraydraw", + "description": "For `type` *path* - a valid SVG path with the pixel values replaced by data values in `xsizemode`/`ysizemode` being *scaled* and taken unmodified as pixels relative to `xanchor` and `yanchor` in case of *pixel* size mode. There are a few restrictions / quirks only absolute instructions, not relative. So the allowed segments are: M, L, H, V, Q, C, T, S, and Z arcs (A) are not allowed because radius rx and ry are relative. In the future we could consider supporting relative commands, but we would have to decide on how to handle date and log axes. Note that even as is, Q and C Bezier paths that are smooth on linear axes may not be smooth on log, and vice versa. no chained \"polybezier\" commands - specify the segment type for each one. On category axes, values are numbers scaled to the serial numbers of categories because using the categories themselves there would be no way to describe fractional positions On data axes: because space and T are both normal components of path strings, we can't use either to separate date from time parts. Therefore we'll use underscore for this purpose: 2015-02-21_13:45:56.789" + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "arraydraw", + "description": "Sets the opacity of the shape." + }, + "line": { + "color": { + "valType": "color", + "editType": "arraydraw", + "anim": true, + "description": "Sets the line color." + }, + "width": { + "valType": "number", + "min": 0, + "dflt": 2, + "editType": "calc+arraydraw", + "anim": true, + "description": "Sets the line width (in px)." + }, + "dash": { + "valType": "string", + "values": [ + "solid", + "dot", + "dash", + "longdash", + "dashdot", + "longdashdot" + ], + "dflt": "solid", + "editType": "arraydraw", + "description": "Sets the dash style of lines. Set to a dash type string (*solid*, *dot*, *dash*, *longdash*, *dashdot*, or *longdashdot*) or a dash length list in px (eg *5px,10px,2px,2px*)." + }, + "editType": "calc+arraydraw", + "role": "object" + }, + "fillcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "editType": "arraydraw", + "description": "Sets the color filling the shape's interior. Only applies to closed shapes." + }, + "fillrule": { + "valType": "enumerated", + "values": [ + "evenodd", + "nonzero" + ], + "dflt": "evenodd", + "editType": "arraydraw", + "description": "Determines which regions of complex paths constitute the interior. For more info please visit https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill-rule" + }, + "editable": { + "valType": "boolean", + "dflt": false, + "editType": "calc+arraydraw", + "description": "Determines whether the shape could be activated for edit or not. Has no effect when the older editable shapes mode is enabled via `config.editable` or `config.edits.shapePosition`." + }, + "editType": "arraydraw", + "name": { + "valType": "string", + "editType": "none", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "calc", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "images": { + "items": { + "image": { + "visible": { + "valType": "boolean", + "dflt": true, + "editType": "arraydraw", + "description": "Determines whether or not this image is visible." + }, + "source": { + "valType": "string", + "editType": "arraydraw", + "description": "Specifies the URL of the image to be used. The URL must be accessible from the domain where the plot code is run, and can be either relative or absolute." + }, + "layer": { + "valType": "enumerated", + "values": [ + "below", + "above" + ], + "dflt": "above", + "editType": "arraydraw", + "description": "Specifies whether images are drawn below or above traces. When `xref` and `yref` are both set to `paper`, image is drawn below the entire plot area." + }, + "sizex": { + "valType": "number", + "dflt": 0, + "editType": "arraydraw", + "description": "Sets the image container size horizontally. The image will be sized based on the `position` value. When `xref` is set to `paper`, units are sized relative to the plot width. When `xref` ends with ` domain`, units are sized relative to the axis width." + }, + "sizey": { + "valType": "number", + "dflt": 0, + "editType": "arraydraw", + "description": "Sets the image container size vertically. The image will be sized based on the `position` value. When `yref` is set to `paper`, units are sized relative to the plot height. When `yref` ends with ` domain`, units are sized relative to the axis height." + }, + "sizing": { + "valType": "enumerated", + "values": [ + "fill", + "contain", + "stretch" + ], + "dflt": "contain", + "editType": "arraydraw", + "description": "Specifies which dimension of the image to constrain." + }, + "opacity": { + "valType": "number", + "min": 0, + "max": 1, + "dflt": 1, + "editType": "arraydraw", + "description": "Sets the opacity of the image." + }, + "x": { + "valType": "any", + "dflt": 0, + "editType": "arraydraw", + "description": "Sets the image's x position. When `xref` is set to `paper`, units are sized relative to the plot height. See `xref` for more info" + }, + "y": { + "valType": "any", + "dflt": 0, + "editType": "arraydraw", + "description": "Sets the image's y position. When `yref` is set to `paper`, units are sized relative to the plot height. See `yref` for more info" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "editType": "arraydraw", + "description": "Sets the anchor for the x position" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "top", + "editType": "arraydraw", + "description": "Sets the anchor for the y position." + }, + "xref": { + "valType": "enumerated", + "values": [ + "paper", + "/^x([2-9]|[1-9][0-9]+)?( domain)?$/" + ], + "dflt": "paper", + "editType": "arraydraw", + "description": "Sets the images's x coordinate axis. If set to a x axis id (e.g. *x* or *x2*), the `x` position refers to a x coordinate. If set to *paper*, the `x` position refers to the distance from the left of the plotting area in normalized coordinates where *0* (*1*) corresponds to the left (right). If set to a x axis ID followed by *domain* (separated by a space), the position behaves like for *paper*, but refers to the distance in fractions of the domain length from the left of the domain of that axis: e.g., *x2 domain* refers to the domain of the second x axis and a x position of 0.5 refers to the point between the left and the right of the domain of the second x axis." + }, + "yref": { + "valType": "enumerated", + "values": [ + "paper", + "/^y([2-9]|[1-9][0-9]+)?( domain)?$/" + ], + "dflt": "paper", + "editType": "arraydraw", + "description": "Sets the images's y coordinate axis. If set to a y axis id (e.g. *y* or *y2*), the `y` position refers to a y coordinate. If set to *paper*, the `y` position refers to the distance from the bottom of the plotting area in normalized coordinates where *0* (*1*) corresponds to the bottom (top). If set to a y axis ID followed by *domain* (separated by a space), the position behaves like for *paper*, but refers to the distance in fractions of the domain length from the bottom of the domain of that axis: e.g., *y2 domain* refers to the domain of the second y axis and a y position of 0.5 refers to the point between the bottom and the top of the domain of the second y axis." + }, + "editType": "arraydraw", + "name": { + "valType": "string", + "editType": "none", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "calc", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "role": "object" + } + }, + "role": "object" + }, + "updatemenus": { + "items": { + "updatemenu": { + "_arrayAttrRegexps": [ + {} + ], + "visible": { + "valType": "boolean", + "description": "Determines whether or not the update menu is visible.", + "editType": "arraydraw" + }, + "type": { + "valType": "enumerated", + "values": [ + "dropdown", + "buttons" + ], + "dflt": "dropdown", + "description": "Determines whether the buttons are accessible via a dropdown menu or whether the buttons are stacked horizontally or vertically", + "editType": "arraydraw" + }, + "direction": { + "valType": "enumerated", + "values": [ + "left", + "right", + "up", + "down" + ], + "dflt": "down", + "description": "Determines the direction in which the buttons are laid out, whether in a dropdown menu or a row/column of buttons. For `left` and `up`, the buttons will still appear in left-to-right or top-to-bottom order respectively.", + "editType": "arraydraw" + }, + "active": { + "valType": "integer", + "min": -1, + "dflt": 0, + "description": "Determines which button (by index starting from 0) is considered active.", + "editType": "arraydraw" + }, + "showactive": { + "valType": "boolean", + "dflt": true, + "description": "Highlights active dropdown item or active button if true.", + "editType": "arraydraw" + }, + "buttons": { + "items": { + "button": { + "visible": { + "valType": "boolean", + "description": "Determines whether or not this button is visible.", + "editType": "arraydraw" + }, + "method": { + "valType": "enumerated", + "values": [ + "restyle", + "relayout", + "animate", + "update", + "skip" + ], + "dflt": "restyle", + "description": "Sets the Plotly method to be called on click. If the `skip` method is used, the API updatemenu will function as normal but will perform no API calls and will not bind automatically to state updates. This may be used to create a component interface and attach to updatemenu events manually via JavaScript.", + "editType": "arraydraw" + }, + "args": { + "valType": "info_array", + "freeLength": true, + "items": [ + { "valType": "any", - "dflt": false, - "description": "Adds a source-displaying function to show sources on the resulting graphs." - }, - "displayModeBar": { - "valType": "enumerated", - "values": [ - "hover", - true, - false - ], - "dflt": "hover", - "description": "Determines the mode bar display mode. If *true*, the mode bar is always visible. If *false*, the mode bar is always hidden. If *hover*, the mode bar is visible while the mouse cursor is on the graph container." - }, - "showSendToCloud": { - "valType": "boolean", - "dflt": false, - "description": "Should we include a ModeBar button, labeled \"Edit in Chart Studio\", that sends this chart to chart-studio.plotly.com (formerly plot.ly) or another plotly server as specified by `plotlyServerURL` for editing, export, etc? Prior to version 1.43.0 this button was included by default, now it is opt-in using this flag. Note that this button can (depending on `plotlyServerURL` being set) send your data to an external server. However that server does not persist your data until you arrive at the Chart Studio and explicitly click \"Save\"." - }, - "showEditInChartStudio": { - "valType": "boolean", - "dflt": false, - "description": "Same as `showSendToCloud`, but use a pencil icon instead of a floppy-disk. Note that if both `showSendToCloud` and `showEditInChartStudio` are turned, only `showEditInChartStudio` will be honored." - }, - "modeBarButtonsToRemove": { + "editType": "arraydraw" + }, + { "valType": "any", - "dflt": [], - "description": "Remove mode bar buttons by name. See ./components/modebar/buttons.js for the list of names." - }, - "modeBarButtonsToAdd": { + "editType": "arraydraw" + }, + { "valType": "any", - "dflt": [], - "description": "Add mode bar button using config objects See ./components/modebar/buttons.js for list of arguments." - }, - "modeBarButtons": { + "editType": "arraydraw" + } + ], + "description": "Sets the arguments values to be passed to the Plotly method set in `method` on click.", + "editType": "arraydraw" + }, + "args2": { + "valType": "info_array", + "freeLength": true, + "items": [ + { "valType": "any", - "dflt": false, - "description": "Define fully custom mode bar buttons as nested array, where the outer arrays represents button groups, and the inner arrays have buttons config objects or names of default buttons See ./components/modebar/buttons.js for more info." - }, - "toImageButtonOptions": { + "editType": "arraydraw" + }, + { "valType": "any", - "dflt": {}, - "description": "Statically override options for toImage modebar button allowed keys are format, filename, width, height, scale see ../components/modebar/buttons.js" - }, - "displaylogo": { - "valType": "boolean", - "dflt": true, - "description": "Determines whether or not the plotly logo is displayed on the end of the mode bar." - }, - "watermark": { - "valType": "boolean", - "dflt": false, - "description": "watermark the images with the company's logo" - }, - "plotGlPixelRatio": { - "valType": "number", - "dflt": 2, - "min": 1, - "max": 4, - "description": "Set the pixel ratio during WebGL image export. This config option was formerly named `plot3dPixelRatio` which is now deprecated." - }, - "setBackground": { + "editType": "arraydraw" + }, + { + "valType": "any", + "editType": "arraydraw" + } + ], + "description": "Sets a 2nd set of `args`, these arguments values are passed to the Plotly method set in `method` when clicking this button while in the active state. Use this to create toggle buttons.", + "editType": "arraydraw" + }, + "label": { + "valType": "string", + "dflt": "", + "description": "Sets the text label to appear on the button.", + "editType": "arraydraw" + }, + "execute": { + "valType": "boolean", + "dflt": true, + "description": "When true, the API method is executed. When false, all other behaviors are the same and command execution is skipped. This may be useful when hooking into, for example, the `plotly_buttonclicked` method and executing the API command manually without losing the benefit of the updatemenu automatically binding to the state of the plot through the specification of `method` and `args`.", + "editType": "arraydraw" + }, + "name": { + "valType": "string", + "editType": "arraydraw", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "arraydraw", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "editType": "arraydraw", + "role": "object" + } + }, + "role": "object" + }, + "x": { + "valType": "number", + "min": -2, + "max": 3, + "dflt": -0.05, + "description": "Sets the x position (in normalized coordinates) of the update menu.", + "editType": "arraydraw" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "auto", + "left", + "center", + "right" + ], + "dflt": "right", + "description": "Sets the update menu's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the range selector.", + "editType": "arraydraw" + }, + "y": { + "valType": "number", + "min": -2, + "max": 3, + "dflt": 1, + "description": "Sets the y position (in normalized coordinates) of the update menu.", + "editType": "arraydraw" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "auto", + "top", + "middle", + "bottom" + ], + "dflt": "top", + "description": "Sets the update menu's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the range selector.", + "editType": "arraydraw" + }, + "pad": { + "t": { + "valType": "number", + "dflt": 0, + "editType": "arraydraw", + "description": "The amount of padding (in px) along the top of the component." + }, + "r": { + "valType": "number", + "dflt": 0, + "editType": "arraydraw", + "description": "The amount of padding (in px) on the right side of the component." + }, + "b": { + "valType": "number", + "dflt": 0, + "editType": "arraydraw", + "description": "The amount of padding (in px) along the bottom of the component." + }, + "l": { + "valType": "number", + "dflt": 0, + "editType": "arraydraw", + "description": "The amount of padding (in px) on the left side of the component." + }, + "editType": "arraydraw", + "description": "Sets the padding around the buttons or dropdown menu.", + "role": "object" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "arraydraw" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "arraydraw" + }, + "color": { + "valType": "color", + "editType": "arraydraw" + }, + "description": "Sets the font of the update menu button text.", + "editType": "arraydraw", + "role": "object" + }, + "bgcolor": { + "valType": "color", + "description": "Sets the background color of the update menu buttons.", + "editType": "arraydraw" + }, + "bordercolor": { + "valType": "color", + "dflt": "#BEC8D9", + "description": "Sets the color of the border enclosing the update menu.", + "editType": "arraydraw" + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "arraydraw", + "description": "Sets the width (in px) of the border enclosing the update menu." + }, + "name": { + "valType": "string", + "editType": "arraydraw", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "arraydraw", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "editType": "arraydraw", + "role": "object" + } + }, + "role": "object" + }, + "sliders": { + "items": { + "slider": { + "visible": { + "valType": "boolean", + "dflt": true, + "description": "Determines whether or not the slider is visible.", + "editType": "arraydraw" + }, + "active": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Determines which button (by index starting from 0) is considered active.", + "editType": "arraydraw" + }, + "steps": { + "items": { + "step": { + "visible": { + "valType": "boolean", + "dflt": true, + "description": "Determines whether or not this step is included in the slider.", + "editType": "arraydraw" + }, + "method": { + "valType": "enumerated", + "values": [ + "restyle", + "relayout", + "animate", + "update", + "skip" + ], + "dflt": "restyle", + "description": "Sets the Plotly method to be called when the slider value is changed. If the `skip` method is used, the API slider will function as normal but will perform no API calls and will not bind automatically to state updates. This may be used to create a component interface and attach to slider events manually via JavaScript.", + "editType": "arraydraw" + }, + "args": { + "valType": "info_array", + "freeLength": true, + "items": [ + { + "valType": "any", + "editType": "arraydraw" + }, + { + "valType": "any", + "editType": "arraydraw" + }, + { "valType": "any", - "dflt": "transparent", - "description": "Set function to add the background color (i.e. `layout.paper_color`) to a different container. This function take the graph div as first argument and the current background color as second argument. Alternatively, set to string *opaque* to ensure there is white behind it." + "editType": "arraydraw" + } + ], + "description": "Sets the arguments values to be passed to the Plotly method set in `method` on slide.", + "editType": "arraydraw" + }, + "label": { + "valType": "string", + "description": "Sets the text label to appear on the slider", + "editType": "arraydraw" + }, + "value": { + "valType": "string", + "description": "Sets the value of the slider step, used to refer to the step programatically. Defaults to the slider label if not provided.", + "editType": "arraydraw" + }, + "execute": { + "valType": "boolean", + "dflt": true, + "description": "When true, the API method is executed. When false, all other behaviors are the same and command execution is skipped. This may be useful when hooking into, for example, the `plotly_sliderchange` method and executing the API command manually without losing the benefit of the slider automatically binding to the state of the plot through the specification of `method` and `args`.", + "editType": "arraydraw" + }, + "name": { + "valType": "string", + "editType": "arraydraw", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "arraydraw", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "editType": "arraydraw", + "role": "object" + } + }, + "role": "object" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this slider length is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "arraydraw" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the slider This measure excludes the padding of both ends. That is, the slider's length is this length minus the padding on both ends.", + "editType": "arraydraw" + }, + "x": { + "valType": "number", + "min": -2, + "max": 3, + "dflt": 0, + "description": "Sets the x position (in normalized coordinates) of the slider.", + "editType": "arraydraw" + }, + "pad": { + "t": { + "valType": "number", + "dflt": 20, + "editType": "arraydraw", + "description": "The amount of padding (in px) along the top of the component." + }, + "r": { + "valType": "number", + "dflt": 0, + "editType": "arraydraw", + "description": "The amount of padding (in px) on the right side of the component." + }, + "b": { + "valType": "number", + "dflt": 0, + "editType": "arraydraw", + "description": "The amount of padding (in px) along the bottom of the component." + }, + "l": { + "valType": "number", + "dflt": 0, + "editType": "arraydraw", + "description": "The amount of padding (in px) on the left side of the component." + }, + "editType": "arraydraw", + "description": "Set the padding of the slider component along each side.", + "role": "object" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "auto", + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets the slider's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the range selector.", + "editType": "arraydraw" + }, + "y": { + "valType": "number", + "min": -2, + "max": 3, + "dflt": 0, + "description": "Sets the y position (in normalized coordinates) of the slider.", + "editType": "arraydraw" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "auto", + "top", + "middle", + "bottom" + ], + "dflt": "top", + "description": "Sets the slider's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the range selector.", + "editType": "arraydraw" + }, + "transition": { + "duration": { + "valType": "number", + "min": 0, + "dflt": 150, + "description": "Sets the duration of the slider transition", + "editType": "arraydraw" + }, + "easing": { + "valType": "enumerated", + "values": [ + "linear", + "quad", + "cubic", + "sin", + "exp", + "circle", + "elastic", + "back", + "bounce", + "linear-in", + "quad-in", + "cubic-in", + "sin-in", + "exp-in", + "circle-in", + "elastic-in", + "back-in", + "bounce-in", + "linear-out", + "quad-out", + "cubic-out", + "sin-out", + "exp-out", + "circle-out", + "elastic-out", + "back-out", + "bounce-out", + "linear-in-out", + "quad-in-out", + "cubic-in-out", + "sin-in-out", + "exp-in-out", + "circle-in-out", + "elastic-in-out", + "back-in-out", + "bounce-in-out" + ], + "dflt": "cubic-in-out", + "description": "Sets the easing function of the slider transition", + "editType": "arraydraw" + }, + "editType": "arraydraw", + "role": "object" + }, + "currentvalue": { + "visible": { + "valType": "boolean", + "dflt": true, + "description": "Shows the currently-selected value above the slider.", + "editType": "arraydraw" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "The alignment of the value readout relative to the length of the slider.", + "editType": "arraydraw" + }, + "offset": { + "valType": "number", + "dflt": 10, + "description": "The amount of space, in pixels, between the current value label and the slider.", + "editType": "arraydraw" + }, + "prefix": { + "valType": "string", + "description": "When currentvalue.visible is true, this sets the prefix of the label.", + "editType": "arraydraw" + }, + "suffix": { + "valType": "string", + "description": "When currentvalue.visible is true, this sets the suffix of the label.", + "editType": "arraydraw" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "arraydraw" }, - "topojsonURL": { - "valType": "string", - "noBlank": true, - "dflt": "https://cdn.plot.ly/", - "description": "Set the URL to topojson used in geo charts. By default, the topojson files are fetched from cdn.plot.ly. For example, set this option to: /dist/topojson/ to render geographical feature using the topojson files that ship with the plotly.js module." + "size": { + "valType": "number", + "min": 1, + "editType": "arraydraw" }, - "mapboxAccessToken": { - "valType": "string", - "dflt": null, - "description": "Mapbox access token (required to plot mapbox trace types) If using an Mapbox Atlas server, set this option to '' so that plotly.js won't attempt to authenticate to the public Mapbox server." + "color": { + "valType": "color", + "editType": "arraydraw" }, - "logging": { - "valType": "integer", - "min": 0, - "max": 2, - "dflt": 1, - "description": "Turn all console logging on or off (errors will be thrown) This should ONLY be set via Plotly.setPlotConfig Available levels: 0: no logs 1: warnings and errors, but not informational messages 2: verbose logs" + "description": "Sets the font of the current value label text.", + "editType": "arraydraw", + "role": "object" + }, + "editType": "arraydraw", + "role": "object" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "arraydraw" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "arraydraw" + }, + "color": { + "valType": "color", + "editType": "arraydraw" + }, + "description": "Sets the font of the slider step labels.", + "editType": "arraydraw", + "role": "object" + }, + "activebgcolor": { + "valType": "color", + "dflt": "#dbdde0", + "description": "Sets the background color of the slider grip while dragging.", + "editType": "arraydraw" + }, + "bgcolor": { + "valType": "color", + "dflt": "#f8fafc", + "description": "Sets the background color of the slider.", + "editType": "arraydraw" + }, + "bordercolor": { + "valType": "color", + "dflt": "#bec8d9", + "description": "Sets the color of the border enclosing the slider.", + "editType": "arraydraw" + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the width (in px) of the border enclosing the slider.", + "editType": "arraydraw" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 7, + "description": "Sets the length in pixels of step tick marks", + "editType": "arraydraw" + }, + "tickcolor": { + "valType": "color", + "dflt": "#333", + "description": "Sets the color of the border enclosing the slider.", + "editType": "arraydraw" + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the tick width (in px).", + "editType": "arraydraw" + }, + "minorticklen": { + "valType": "number", + "min": 0, + "dflt": 4, + "description": "Sets the length in pixels of minor step tick marks", + "editType": "arraydraw" + }, + "name": { + "valType": "string", + "editType": "arraydraw", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." + }, + "templateitemname": { + "valType": "string", + "editType": "arraydraw", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." + }, + "editType": "arraydraw", + "role": "object" + } + }, + "role": "object" + }, + "editType": "calc", + "colorscale": { + "editType": "calc", + "sequential": { + "valType": "colorscale", + "dflt": [ + [ + 0, + "rgb(220,220,220)" + ], + [ + 0.2, + "rgb(245,195,157)" + ], + [ + 0.4, + "rgb(245,160,105)" + ], + [ + 1, + "rgb(178,10,28)" + ] + ], + "editType": "calc", + "description": "Sets the default sequential colorscale for positive values. Note that `autocolorscale` must be true for this attribute to work." + }, + "sequentialminus": { + "valType": "colorscale", + "dflt": [ + [ + 0, + "rgb(5,10,172)" + ], + [ + 0.35, + "rgb(40,60,190)" + ], + [ + 0.5, + "rgb(70,100,245)" + ], + [ + 0.6, + "rgb(90,120,245)" + ], + [ + 0.7, + "rgb(106,137,247)" + ], + [ + 1, + "rgb(220,220,220)" + ] + ], + "editType": "calc", + "description": "Sets the default sequential colorscale for negative values. Note that `autocolorscale` must be true for this attribute to work." + }, + "diverging": { + "valType": "colorscale", + "dflt": [ + [ + 0, + "rgb(5,10,172)" + ], + [ + 0.35, + "rgb(106,137,247)" + ], + [ + 0.5, + "rgb(190,190,190)" + ], + [ + 0.6, + "rgb(220,170,132)" + ], + [ + 0.7, + "rgb(230,145,90)" + ], + [ + 1, + "rgb(178,10,28)" + ] + ], + "editType": "calc", + "description": "Sets the default diverging colorscale. Note that `autocolorscale` must be true for this attribute to work." + }, + "role": "object" + }, + "coloraxis": { + "_isSubplotObj": true, + "editType": "calc", + "description": "", + "cauto": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether or not the color domain is computed with respect to the input data (here corresponding trace color array(s)) or the bounds set in `cmin` and `cmax` Defaults to `false` when `cmin` and `cmax` are set by the user." + }, + "cmin": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the lower bound of the color domain. Value should have the same units as corresponding trace color array(s) and if set, `cmax` must be set as well." + }, + "cmax": { + "valType": "number", + "dflt": null, + "editType": "plot", + "impliedEdits": { + "cauto": false + }, + "description": "Sets the upper bound of the color domain. Value should have the same units as corresponding trace color array(s) and if set, `cmin` must be set as well." + }, + "cmid": { + "valType": "number", + "dflt": null, + "editType": "calc", + "impliedEdits": {}, + "description": "Sets the mid-point of the color domain by scaling `cmin` and/or `cmax` to be equidistant to this point. Value should have the same units as corresponding trace color array(s). Has no effect when `cauto` is `false`." + }, + "colorscale": { + "valType": "colorscale", + "editType": "calc", + "dflt": null, + "impliedEdits": { + "autocolorscale": false + }, + "description": "Sets the colorscale. The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, `[[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]`. To control the bounds of the colorscale in color space, use`cmin` and `cmax`. Alternatively, `colorscale` may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis." + }, + "autocolorscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "impliedEdits": {}, + "description": "Determines whether the colorscale is a default palette (`autocolorscale: true`) or the palette determined by `colorscale`. In case `colorscale` is unspecified or `autocolorscale` is true, the default palette will be chosen according to whether numbers in the `color` array are all positive, all negative or mixed." + }, + "reversescale": { + "valType": "boolean", + "dflt": false, + "editType": "plot", + "description": "Reverses the color mapping if true. If true, `cmin` will correspond to the last color in the array and `cmax` will correspond to the first color." + }, + "showscale": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether or not a colorbar is displayed for this trace." + }, + "colorbar": { + "thicknessmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "pixels", + "description": "Determines whether this color bar's thickness (i.e. the measure in the constant color direction) is set in units of plot *fraction* or in *pixels*. Use `thickness` to set the value.", + "editType": "colorbars" + }, + "thickness": { + "valType": "number", + "min": 0, + "dflt": 30, + "description": "Sets the thickness of the color bar This measure excludes the size of the padding, ticks and labels.", + "editType": "colorbars" + }, + "lenmode": { + "valType": "enumerated", + "values": [ + "fraction", + "pixels" + ], + "dflt": "fraction", + "description": "Determines whether this color bar's length (i.e. the measure in the color variation direction) is set in units of plot *fraction* or in *pixels. Use `len` to set the value.", + "editType": "colorbars" + }, + "len": { + "valType": "number", + "min": 0, + "dflt": 1, + "description": "Sets the length of the color bar This measure excludes the padding of both ends. That is, the color bar length is this length minus the padding on both ends.", + "editType": "colorbars" + }, + "x": { + "valType": "number", + "dflt": 1.02, + "min": -2, + "max": 3, + "description": "Sets the x position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "xanchor": { + "valType": "enumerated", + "values": [ + "left", + "center", + "right" + ], + "dflt": "left", + "description": "Sets this color bar's horizontal position anchor. This anchor binds the `x` position to the *left*, *center* or *right* of the color bar.", + "editType": "colorbars" + }, + "xpad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the x direction.", + "editType": "colorbars" + }, + "y": { + "valType": "number", + "dflt": 0.5, + "min": -2, + "max": 3, + "description": "Sets the y position of the color bar (in plot fraction).", + "editType": "colorbars" + }, + "yanchor": { + "valType": "enumerated", + "values": [ + "top", + "middle", + "bottom" + ], + "dflt": "middle", + "description": "Sets this color bar's vertical position anchor This anchor binds the `y` position to the *top*, *middle* or *bottom* of the color bar.", + "editType": "colorbars" + }, + "ypad": { + "valType": "number", + "min": 0, + "dflt": 10, + "description": "Sets the amount of padding (in px) along the y direction.", + "editType": "colorbars" + }, + "outlinecolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "outlinewidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the width (in px) of the axis line." + }, + "bordercolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the axis line color." + }, + "borderwidth": { + "valType": "number", + "min": 0, + "dflt": 0, + "description": "Sets the width (in px) or the border enclosing this color bar.", + "editType": "colorbars" + }, + "bgcolor": { + "valType": "color", + "dflt": "rgba(0,0,0,0)", + "description": "Sets the color of padded area.", + "editType": "colorbars" + }, + "tickmode": { + "valType": "enumerated", + "values": [ + "auto", + "linear", + "array" + ], + "editType": "colorbars", + "impliedEdits": {}, + "description": "Sets the tick mode for this axis. If *auto*, the number of ticks is set via `nticks`. If *linear*, the placement of the ticks is determined by a starting position `tick0` and a tick step `dtick` (*linear* is the default value if `tick0` and `dtick` are provided). If *array*, the placement of the ticks is set via `tickvals` and the tick text is `ticktext`. (*array* is the default value if `tickvals` is provided)." + }, + "nticks": { + "valType": "integer", + "min": 0, + "dflt": 0, + "editType": "colorbars", + "description": "Specifies the maximum number of ticks for the particular axis. The actual number of ticks will be chosen automatically to be less than or equal to `nticks`. Has an effect only if `tickmode` is set to *auto*." + }, + "tick0": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the placement of the first tick on this axis. Use with `dtick`. If the axis `type` is *log*, then you must take the log of your starting tick (e.g. to set the starting tick to 100, set the `tick0` to 2) except when `dtick`=*L* (see `dtick` for more info). If the axis `type` is *date*, it should be a date string, like date data. If the axis `type` is *category*, it should be a number, using the scale where each category is assigned a serial number from zero in the order it appears." + }, + "dtick": { + "valType": "any", + "editType": "colorbars", + "impliedEdits": { + "tickmode": "linear" + }, + "description": "Sets the step in-between ticks on this axis. Use with `tick0`. Must be a positive number, or special strings available to *log* and *date* axes. If the axis `type` is *log*, then ticks are set every 10^(n*dtick) where n is the tick number. For example, to set a tick mark at 1, 10, 100, 1000, ... set dtick to 1. To set tick marks at 1, 100, 10000, ... set dtick to 2. To set tick marks at 1, 5, 25, 125, 625, 3125, ... set dtick to log_10(5), or 0.69897000433. *log* has several special values; *L*, where `f` is a positive number, gives ticks linearly spaced in value (but not position). For example `tick0` = 0.1, `dtick` = *L0.5* will put ticks at 0.1, 0.6, 1.1, 1.6 etc. To show powers of 10 plus small digits between, use *D1* (all digits) or *D2* (only 2 and 5). `tick0` is ignored for *D1* and *D2*. If the axis `type` is *date*, then you must convert the time to milliseconds. For example, to set the interval between ticks to one day, set `dtick` to 86400000.0. *date* also has special values *M* gives ticks spaced by a number of months. `n` must be a positive integer. To set ticks on the 15th of every third month, set `tick0` to *2000-01-15* and `dtick` to *M3*. To set ticks every 4 years, set `dtick` to *M48*" + }, + "tickvals": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the values at which ticks on this axis appear. Only has an effect if `tickmode` is set to *array*. Used with `ticktext`." + }, + "ticktext": { + "valType": "data_array", + "editType": "colorbars", + "description": "Sets the text displayed at the ticks position via `tickvals`. Only has an effect if `tickmode` is set to *array*. Used with `tickvals`." + }, + "ticks": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "" + ], + "editType": "colorbars", + "description": "Determines whether ticks are drawn or not. If **, this axis' ticks are not drawn. If *outside* (*inside*), this axis' are drawn outside (inside) the axis lines.", + "dflt": "" + }, + "ticklabeloverflow": { + "valType": "enumerated", + "values": [ + "allow", + "hide past div", + "hide past domain" + ], + "editType": "colorbars", + "description": "Determines how we handle tick labels that would overflow either the graph div or the domain of the axis. The default value for inside tick labels is *hide past domain*. In other cases the default is *hide past div*." + }, + "ticklabelposition": { + "valType": "enumerated", + "values": [ + "outside", + "inside", + "outside top", + "inside top", + "outside bottom", + "inside bottom" + ], + "dflt": "outside", + "description": "Determines where tick labels are drawn.", + "editType": "colorbars" + }, + "ticklen": { + "valType": "number", + "min": 0, + "dflt": 5, + "editType": "colorbars", + "description": "Sets the tick length (in px)." + }, + "tickwidth": { + "valType": "number", + "min": 0, + "dflt": 1, + "editType": "colorbars", + "description": "Sets the tick width (in px)." + }, + "tickcolor": { + "valType": "color", + "dflt": "#444", + "editType": "colorbars", + "description": "Sets the tick color." + }, + "showticklabels": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not the tick labels are drawn." + }, + "tickfont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets the color bar's tick label font", + "editType": "colorbars", + "role": "object" + }, + "tickangle": { + "valType": "angle", + "dflt": "auto", + "editType": "colorbars", + "description": "Sets the angle of the tick labels with respect to the horizontal. For example, a `tickangle` of -90 draws the tick labels vertically." + }, + "tickformat": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets the tick label formatting rule using d3 formatting mini-languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format And for dates see: https://github.com/d3/d3-time-format#locale_format We add one item to d3's date formatter: *%{n}f* for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat *%H~%M~%S.%2f* would display *09~15~23.46*" + }, + "tickformatstops": { + "items": { + "tickformatstop": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "colorbars", + "description": "Determines whether or not this stop is used. If `false`, this stop is ignored even within its `dtickrange`." }, - "notifyOnLogging": { - "valType": "integer", - "min": 0, - "max": 2, - "dflt": 0, - "description": "Set on-graph logging (notifier) level This should ONLY be set via Plotly.setPlotConfig Available levels: 0: no on-graph logs 1: warnings and errors, but not informational messages 2: verbose logs" + "dtickrange": { + "valType": "info_array", + "items": [ + { + "valType": "any", + "editType": "colorbars" + }, + { + "valType": "any", + "editType": "colorbars" + } + ], + "editType": "colorbars", + "description": "range [*min*, *max*], where *min*, *max* - dtick values which describe some zoom level, it is possible to omit *min* or *max* value by passing *null*" }, - "queueLength": { - "valType": "integer", - "min": 0, - "dflt": 0, - "description": "Sets the length of the undo/redo queue." + "value": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "string - dtickformat for described zoom level, the same as *tickformat*" }, - "globalTransforms": { - "valType": "any", - "dflt": [], - "description": "Set global transform to be applied to all traces with no specification needed" + "editType": "colorbars", + "name": { + "valType": "string", + "editType": "colorbars", + "description": "When used in a template, named items are created in the output figure in addition to any items the figure already has in this array. You can modify these items in the output figure by making your own item with `templateitemname` matching this `name` alongside your modifications (including `visible: false` or `enabled: false` to hide it). Has no effect outside of a template." }, - "locale": { - "valType": "string", - "dflt": "en-US", - "description": "Which localization should we use? Should be a string like 'en' or 'en-US'." + "templateitemname": { + "valType": "string", + "editType": "colorbars", + "description": "Used to refer to a named item in this array in the template. Named items from the template will be created even without a matching item in the input figure, but you can modify one by making an item with `templateitemname` matching its `name`, alongside your modifications (including `visible: false` or `enabled: false` to hide it). If there is no template or no matching item, this item will be hidden unless you explicitly show it with `visible: true`." }, - "locales": { - "valType": "any", - "dflt": {}, - "description": "Localization definitions Locales can be provided either here (specific to one chart) or globally by registering them as modules. Should be an object of objects {locale: {dictionary: {...}, format: {...}}} { da: { dictionary: {'Reset axes': 'Nulstil aksler', ...}, format: {months: [...], shortMonths: [...]} }, ... } All parts are optional. When looking for translation or format fields, we look first for an exact match in a config locale, then in a registered module. If those fail, we strip off any regionalization ('en-US' -> 'en') and try each (config, registry) again. The final fallback for translation is untranslated (which is US English) and for formats is the base English (the only consequence being the last fallback date format %x is DD/MM/YYYY instead of MM/DD/YYYY). Currently `grouping` and `currency` are ignored for our automatic number formatting, but can be used in custom formats." - } + "role": "object" + } + }, + "role": "object" + }, + "tickprefix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label prefix." + }, + "showtickprefix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all tick labels are displayed with a prefix. If *first*, only the first tick is displayed with a prefix. If *last*, only the last tick is displayed with a suffix. If *none*, tick prefixes are hidden." + }, + "ticksuffix": { + "valType": "string", + "dflt": "", + "editType": "colorbars", + "description": "Sets a tick label suffix." + }, + "showticksuffix": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "Same as `showtickprefix` but for tick suffixes." + }, + "separatethousands": { + "valType": "boolean", + "dflt": false, + "editType": "colorbars", + "description": "If \"true\", even 4-digit integers are separated" + }, + "exponentformat": { + "valType": "enumerated", + "values": [ + "none", + "e", + "E", + "power", + "SI", + "B" + ], + "dflt": "B", + "editType": "colorbars", + "description": "Determines a formatting rule for the tick exponents. For example, consider the number 1,000,000,000. If *none*, it appears as 1,000,000,000. If *e*, 1e+9. If *E*, 1E+9. If *power*, 1x10^9 (with 9 in a super script). If *SI*, 1G. If *B*, 1B." + }, + "minexponent": { + "valType": "number", + "dflt": 3, + "min": 0, + "editType": "colorbars", + "description": "Hide SI prefix for 10^n if |n| is below this number. This only has an effect when `tickformat` is *SI* or *B*." + }, + "showexponent": { + "valType": "enumerated", + "values": [ + "all", + "first", + "last", + "none" + ], + "dflt": "all", + "editType": "colorbars", + "description": "If *all*, all exponents are shown besides their significands. If *first*, only the exponent of the first tick is shown. If *last*, only the exponent of the last tick is shown. If *none*, no exponents appear." + }, + "title": { + "text": { + "valType": "string", + "description": "Sets the title of the color bar. Note that before the existence of `title.text`, the title's contents used to be defined as the `title` attribute itself. This behavior has been deprecated.", + "editType": "colorbars" + }, + "font": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Sets this color bar's title font. Note that the title's font used to be set by the now deprecated `titlefont` attribute.", + "editType": "colorbars", + "role": "object" + }, + "side": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Determines the location of color bar's title with respect to the color bar. Note that the title's location used to be set by the now deprecated `titleside` attribute.", + "editType": "colorbars" + }, + "editType": "colorbars", + "role": "object" + }, + "_deprecated": { + "title": { + "valType": "string", + "description": "Deprecated in favor of color bar's `title.text`. Note that value of color bar's `title` is no longer a simple *string* but a set of sub-attributes.", + "editType": "colorbars" + }, + "titlefont": { + "family": { + "valType": "string", + "noBlank": true, + "strict": true, + "description": "HTML font family - the typeface that will be applied by the web browser. The web browser will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren't available on the system. The Chart Studio Cloud (at https://chart-studio.plotly.com or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include *Arial*, *Balto*, *Courier New*, *Droid Sans*,, *Droid Serif*, *Droid Sans Mono*, *Gravitas One*, *Old Standard TT*, *Open Sans*, *Overpass*, *PT Sans Narrow*, *Raleway*, *Times New Roman*.", + "editType": "colorbars" + }, + "size": { + "valType": "number", + "min": 1, + "editType": "colorbars" + }, + "color": { + "valType": "color", + "editType": "colorbars" + }, + "description": "Deprecated in favor of color bar's `title.font`.", + "editType": "colorbars" + }, + "titleside": { + "valType": "enumerated", + "values": [ + "right", + "top", + "bottom" + ], + "dflt": "top", + "description": "Deprecated in favor of color bar's `title.side`.", + "editType": "colorbars" + } + }, + "editType": "colorbars", + "role": "object", + "tickvalssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for tickvals .", + "editType": "none" + }, + "ticktextsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for ticktext .", + "editType": "none" + } + }, + "role": "object" + }, + "modebar": { + "editType": "modebar", + "orientation": { + "valType": "enumerated", + "values": [ + "v", + "h" + ], + "dflt": "h", + "editType": "modebar", + "description": "Sets the orientation of the modebar." + }, + "bgcolor": { + "valType": "color", + "editType": "modebar", + "description": "Sets the background color of the modebar." + }, + "color": { + "valType": "color", + "editType": "modebar", + "description": "Sets the color of the icons in the modebar." + }, + "activecolor": { + "valType": "color", + "editType": "modebar", + "description": "Sets the color of the active or hovered on icons in the modebar." + }, + "uirevision": { + "valType": "any", + "editType": "none", + "description": "Controls persistence of user-driven changes related to the modebar, including `hovermode`, `dragmode`, and `showspikes` at both the root level and inside subplots. Defaults to `layout.uirevision`." + }, + "add": { + "valType": "string", + "arrayOk": true, + "dflt": "", + "editType": "modebar", + "description": "Determines which predefined modebar buttons to add. Please note that these buttons will only be shown if they are compatible with all trace types used in a graph. Similar to `config.modeBarButtonsToAdd` option. This may include *v1hovermode*, *hoverclosest*, *hovercompare*, *togglehover*, *togglespikelines*, *drawline*, *drawopenpath*, *drawclosedpath*, *drawcircle*, *drawrect*, *eraseshape*." + }, + "remove": { + "valType": "string", + "arrayOk": true, + "dflt": "", + "editType": "modebar", + "description": "Determines which predefined modebar buttons to remove. Similar to `config.modeBarButtonsToRemove` option. This may include *autoScale2d*, *autoscale*, *editInChartStudio*, *editinchartstudio*, *hoverCompareCartesian*, *hovercompare*, *lasso*, *lasso2d*, *orbitRotation*, *orbitrotation*, *pan*, *pan2d*, *pan3d*, *reset*, *resetCameraDefault3d*, *resetCameraLastSave3d*, *resetGeo*, *resetSankeyGroup*, *resetScale2d*, *resetViewMapbox*, *resetViews*, *resetcameradefault*, *resetcameralastsave*, *resetsankeygroup*, *resetscale*, *resetview*, *resetviews*, *select*, *select2d*, *sendDataToCloud*, *senddatatocloud*, *tableRotation*, *tablerotation*, *toImage*, *toggleHover*, *toggleSpikelines*, *togglehover*, *togglespikelines*, *toimage*, *zoom*, *zoom2d*, *zoom3d*, *zoomIn2d*, *zoomInGeo*, *zoomInMapbox*, *zoomOut2d*, *zoomOutGeo*, *zoomOutMapbox*, *zoomin*, *zoomout*." + }, + "role": "object", + "addsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for add .", + "editType": "none" + }, + "removesrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for remove .", + "editType": "none" + } + }, + "metasrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for meta .", + "editType": "none" + } + } + }, + "transforms": { + "aggregate": { + "attributes": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether this aggregate transform is enabled or disabled." + }, + "groups": { + "valType": "string", + "strict": true, + "noBlank": true, + "arrayOk": true, + "dflt": "x", + "editType": "calc", + "description": "Sets the grouping target to which the aggregation is applied. Data points with matching group values will be coalesced into one point, using the supplied aggregation functions to reduce data in other data arrays. If a string, `groups` is assumed to be a reference to a data array in the parent trace object. To aggregate by nested variables, use *.* to access them. For example, set `groups` to *marker.color* to aggregate about the marker color array. If an array, `groups` is itself the data array by which we aggregate." + }, + "aggregations": { + "items": { + "aggregation": { + "target": { + "valType": "string", + "editType": "calc", + "description": "A reference to the data array in the parent trace to aggregate. To aggregate by nested variables, use *.* to access them. For example, set `groups` to *marker.color* to aggregate over the marker color array. The referenced array must already exist, unless `func` is *count*, and each array may only be referenced once." + }, + "func": { + "valType": "enumerated", + "values": [ + "count", + "sum", + "avg", + "median", + "mode", + "rms", + "stddev", + "min", + "max", + "first", + "last", + "change", + "range" + ], + "dflt": "first", + "editType": "calc", + "description": "Sets the aggregation function. All values from the linked `target`, corresponding to the same value in the `groups` array, are collected and reduced by this function. *count* is simply the number of values in the `groups` array, so does not even require the linked array to exist. *first* (*last*) is just the first (last) linked value. Invalid values are ignored, so for example in *avg* they do not contribute to either the numerator or the denominator. Any data type (numeric, date, category) may be aggregated with any function, even though in certain cases it is unlikely to make sense, for example a sum of dates or average of categories. *median* will return the average of the two central values if there is an even count. *mode* will return the first value to reach the maximum count, in case of a tie. *change* will return the difference between the first and last linked values. *range* will return the difference between the min and max linked values." + }, + "funcmode": { + "valType": "enumerated", + "values": [ + "sample", + "population" + ], + "dflt": "sample", + "editType": "calc", + "description": "*stddev* supports two formula variants: *sample* (normalize by N-1) and *population* (normalize by N)." + }, + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether this aggregation function is enabled or disabled." + }, + "editType": "calc", + "role": "object" + } + }, + "role": "object" + }, + "editType": "calc", + "groupssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for groups .", + "editType": "none" + } + } + }, + "filter": { + "attributes": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether this filter transform is enabled or disabled." + }, + "target": { + "valType": "string", + "strict": true, + "noBlank": true, + "arrayOk": true, + "dflt": "x", + "editType": "calc", + "description": "Sets the filter target by which the filter is applied. If a string, `target` is assumed to be a reference to a data array in the parent trace object. To filter about nested variables, use *.* to access them. For example, set `target` to *marker.color* to filter about the marker color array. If an array, `target` is then the data array by which the filter is applied." + }, + "operation": { + "valType": "enumerated", + "values": [ + "=", + "!=", + "<", + ">=", + ">", + "<=", + "[]", + "()", + "[)", + "(]", + "][", + ")(", + "](", + ")[", + "{}", + "}{" + ], + "dflt": "=", + "editType": "calc", + "description": "Sets the filter operation. *=* keeps items equal to `value` *!=* keeps items not equal to `value` *<* keeps items less than `value` *<=* keeps items less than or equal to `value` *>* keeps items greater than `value` *>=* keeps items greater than or equal to `value` *[]* keeps items inside `value[0]` to `value[1]` including both bounds *()* keeps items inside `value[0]` to `value[1]` excluding both bounds *[)* keeps items inside `value[0]` to `value[1]` including `value[0]` but excluding `value[1] *(]* keeps items inside `value[0]` to `value[1]` excluding `value[0]` but including `value[1] *][* keeps items outside `value[0]` to `value[1]` and equal to both bounds *)(* keeps items outside `value[0]` to `value[1]` *](* keeps items outside `value[0]` to `value[1]` and equal to `value[0]` *)[* keeps items outside `value[0]` to `value[1]` and equal to `value[1]` *{}* keeps items present in a set of values *}{* keeps items not present in a set of values" + }, + "value": { + "valType": "any", + "dflt": 0, + "editType": "calc", + "description": "Sets the value or values by which to filter. Values are expected to be in the same type as the data linked to `target`. When `operation` is set to one of the comparison values (=,!=,<,>=,>,<=) `value` is expected to be a number or a string. When `operation` is set to one of the interval values ([],(),[),(],][,)(,](,)[) `value` is expected to be 2-item array where the first item is the lower bound and the second item is the upper bound. When `operation`, is set to one of the set values ({},}{) `value` is expected to be an array with as many items as the desired set elements." + }, + "preservegaps": { + "valType": "boolean", + "dflt": false, + "editType": "calc", + "description": "Determines whether or not gaps in data arrays produced by the filter operation are preserved. Setting this to *true* might be useful when plotting a line chart with `connectgaps` set to *false*." + }, + "editType": "calc", + "valuecalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. Sets the calendar system to use for `value`, if it is a date." + }, + "targetcalendar": { + "valType": "enumerated", + "values": [ + "gregorian", + "chinese", + "coptic", + "discworld", + "ethiopian", + "hebrew", + "islamic", + "julian", + "mayan", + "nanakshahi", + "nepali", + "persian", + "jalali", + "taiwan", + "thai", + "ummalqura" + ], + "editType": "calc", + "dflt": "gregorian", + "description": "WARNING: All transforms are deprecated and may be removed from the API in next major version. Sets the calendar system to use for `target`, if it is an array of dates. If `target` is a string (eg *x*) we use the corresponding trace attribute (eg `xcalendar`) if it exists, even if `targetcalendar` is provided." + }, + "targetsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for target .", + "editType": "none" + } + } + }, + "groupby": { + "attributes": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether this group-by transform is enabled or disabled." + }, + "groups": { + "valType": "data_array", + "dflt": [], + "editType": "calc", + "description": "Sets the groups in which the trace data will be split. For example, with `x` set to *[1, 2, 3, 4]* and `groups` set to *['a', 'b', 'a', 'b']*, the groupby transform with split in one trace with `x` [1, 3] and one trace with `x` [2, 4]." + }, + "nameformat": { + "valType": "string", + "editType": "calc", + "description": "Pattern by which grouped traces are named. If only one trace is present, defaults to the group name (`\"%{group}\"`), otherwise defaults to the group name with trace name (`\"%{group} (%{trace})\"`). Available escape sequences are `%{group}`, which inserts the group name, and `%{trace}`, which inserts the trace name. If grouping GDP data by country when more than one trace is present, for example, the default \"%{group} (%{trace})\" would return \"Monaco (GDP per capita)\"." + }, + "styles": { + "items": { + "style": { + "target": { + "valType": "string", + "editType": "calc", + "description": "The group value which receives these styles." + }, + "value": { + "valType": "any", + "dflt": {}, + "editType": "calc", + "description": "Sets each group styles. For example, with `groups` set to *['a', 'b', 'a', 'b']* and `styles` set to *[{target: 'a', value: { marker: { color: 'red' } }}] marker points in group *'a'* will be drawn in red.", + "_compareAsJSON": true + }, + "editType": "calc", + "role": "object" + } + }, + "role": "object" + }, + "editType": "calc", + "groupssrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for groups .", + "editType": "none" + } + } + }, + "sort": { + "attributes": { + "enabled": { + "valType": "boolean", + "dflt": true, + "editType": "calc", + "description": "Determines whether this sort transform is enabled or disabled." + }, + "target": { + "valType": "string", + "strict": true, + "noBlank": true, + "arrayOk": true, + "dflt": "x", + "editType": "calc", + "description": "Sets the target by which the sort transform is applied. If a string, *target* is assumed to be a reference to a data array in the parent trace object. To sort about nested variables, use *.* to access them. For example, set `target` to *marker.size* to sort about the marker size array. If an array, *target* is then the data array by which the sort transform is applied." + }, + "order": { + "valType": "enumerated", + "values": [ + "ascending", + "descending" + ], + "dflt": "ascending", + "editType": "calc", + "description": "Sets the sort transform order." + }, + "editType": "calc", + "targetsrc": { + "valType": "string", + "description": "Sets the source reference on Chart Studio Cloud for target .", + "editType": "none" } + } + } + }, + "frames": { + "items": { + "frames_entry": { + "group": { + "valType": "string", + "description": "An identifier that specifies the group to which the frame belongs, used by animate to select a subset of frames." + }, + "name": { + "valType": "string", + "description": "A label by which to identify the frame" + }, + "traces": { + "valType": "any", + "description": "A list of trace indices that identify the respective traces in the data attribute" + }, + "baseframe": { + "valType": "string", + "description": "The name of the frame into which this frame's properties are merged before applying. This is used to unify properties and avoid needing to specify the same values for the same properties in multiple frames." + }, + "data": { + "valType": "any", + "description": "A list of traces this frame modifies. The format is identical to the normal trace definition." + }, + "layout": { + "valType": "any", + "description": "Layout properties which this frame modifies. The format is identical to the normal layout definition." + }, + "role": "object" + } + }, + "role": "object" + }, + "animation": { + "mode": { + "valType": "enumerated", + "dflt": "afterall", + "values": [ + "immediate", + "next", + "afterall" + ], + "description": "Describes how a new animate call interacts with currently-running animations. If `immediate`, current animations are interrupted and the new animation is started. If `next`, the current frame is allowed to complete, after which the new animation is started. If `afterall` all existing frames are animated to completion before the new animation is started." + }, + "direction": { + "valType": "enumerated", + "values": [ + "forward", + "reverse" + ], + "dflt": "forward", + "description": "The direction in which to play the frames triggered by the animation call" + }, + "fromcurrent": { + "valType": "boolean", + "dflt": false, + "description": "Play frames starting at the current frame instead of the beginning." + }, + "frame": { + "duration": { + "valType": "number", + "min": 0, + "dflt": 500, + "description": "The duration in milliseconds of each frame. If greater than the frame duration, it will be limited to the frame duration." + }, + "redraw": { + "valType": "boolean", + "dflt": true, + "description": "Redraw the plot at completion of the transition. This is desirable for transitions that include properties that cannot be transitioned, but may significantly slow down updates that do not require a full redraw of the plot" + }, + "role": "object" + }, + "transition": { + "duration": { + "valType": "number", + "min": 0, + "dflt": 500, + "editType": "none", + "description": "The duration of the transition, in milliseconds. If equal to zero, updates are synchronous." + }, + "easing": { + "valType": "enumerated", + "dflt": "cubic-in-out", + "values": [ + "linear", + "quad", + "cubic", + "sin", + "exp", + "circle", + "elastic", + "back", + "bounce", + "linear-in", + "quad-in", + "cubic-in", + "sin-in", + "exp-in", + "circle-in", + "elastic-in", + "back-in", + "bounce-in", + "linear-out", + "quad-out", + "cubic-out", + "sin-out", + "exp-out", + "circle-out", + "elastic-out", + "back-out", + "bounce-out", + "linear-in-out", + "quad-in-out", + "cubic-in-out", + "sin-in-out", + "exp-in-out", + "circle-in-out", + "elastic-in-out", + "back-in-out", + "bounce-in-out" + ], + "editType": "none", + "description": "The easing function used for the transition" + }, + "ordering": { + "valType": "enumerated", + "values": [ + "layout first", + "traces first" + ], + "dflt": "layout first", + "editType": "none", + "description": "Determines whether the figure's layout or traces smoothly transitions during updates that make both traces and layout change." + }, + "role": "object" + } + }, + "config": { + "staticPlot": { + "valType": "boolean", + "dflt": false, + "description": "Determines whether the graphs are interactive or not. If *false*, no interactivity, for export or image generation." + }, + "plotlyServerURL": { + "valType": "string", + "dflt": "", + "description": "When set it determines base URL for the 'Edit in Chart Studio' `showEditInChartStudio`/`showSendToCloud` mode bar button and the showLink/sendData on-graph link. To enable sending your data to Chart Studio Cloud, you need to set both `plotlyServerURL` to 'https://chart-studio.plotly.com' and also set `showSendToCloud` to true." + }, + "editable": { + "valType": "boolean", + "dflt": false, + "description": "Determines whether the graph is editable or not. Sets all pieces of `edits` unless a separate `edits` config item overrides individual parts." + }, + "edits": { + "annotationPosition": { + "valType": "boolean", + "dflt": false, + "description": "Determines if the main anchor of the annotation is editable. The main anchor corresponds to the text (if no arrow) or the arrow (which drags the whole thing leaving the arrow length & direction unchanged)." + }, + "annotationTail": { + "valType": "boolean", + "dflt": false, + "description": "Has only an effect for annotations with arrows. Enables changing the length and direction of the arrow." + }, + "annotationText": { + "valType": "boolean", + "dflt": false, + "description": "Enables editing annotation text." + }, + "axisTitleText": { + "valType": "boolean", + "dflt": false, + "description": "Enables editing axis title text." + }, + "colorbarPosition": { + "valType": "boolean", + "dflt": false, + "description": "Enables moving colorbars." + }, + "colorbarTitleText": { + "valType": "boolean", + "dflt": false, + "description": "Enables editing colorbar title text." + }, + "legendPosition": { + "valType": "boolean", + "dflt": false, + "description": "Enables moving the legend." + }, + "legendText": { + "valType": "boolean", + "dflt": false, + "description": "Enables editing the trace name fields from the legend" + }, + "shapePosition": { + "valType": "boolean", + "dflt": false, + "description": "Enables moving shapes." + }, + "titleText": { + "valType": "boolean", + "dflt": false, + "description": "Enables editing the global layout title." + }, + "role": "object" + }, + "autosizable": { + "valType": "boolean", + "dflt": false, + "description": "Determines whether the graphs are plotted with respect to layout.autosize:true and infer its container size." + }, + "responsive": { + "valType": "boolean", + "dflt": false, + "description": "Determines whether to change the layout size when window is resized. In v3, this option will be removed and will always be true." + }, + "fillFrame": { + "valType": "boolean", + "dflt": false, + "description": "When `layout.autosize` is turned on, determines whether the graph fills the container (the default) or the screen (if set to *true*)." + }, + "frameMargins": { + "valType": "number", + "dflt": 0, + "min": 0, + "max": 0.5, + "description": "When `layout.autosize` is turned on, set the frame margins in fraction of the graph size." + }, + "scrollZoom": { + "valType": "flaglist", + "flags": [ + "cartesian", + "gl3d", + "geo", + "mapbox" + ], + "extras": [ + true, + false + ], + "dflt": "gl3d+geo+mapbox", + "description": "Determines whether mouse wheel or two-finger scroll zooms is enable. Turned on by default for gl3d, geo and mapbox subplots (as these subplot types do not have zoombox via pan), but turned off by default for cartesian subplots. Set `scrollZoom` to *false* to disable scrolling for all subplots." + }, + "doubleClick": { + "valType": "enumerated", + "values": [ + false, + "reset", + "autosize", + "reset+autosize" + ], + "dflt": "reset+autosize", + "description": "Sets the double click interaction mode. Has an effect only in cartesian plots. If *false*, double click is disable. If *reset*, double click resets the axis ranges to their initial values. If *autosize*, double click set the axis ranges to their autorange values. If *reset+autosize*, the odd double clicks resets the axis ranges to their initial values and even double clicks set the axis ranges to their autorange values." + }, + "doubleClickDelay": { + "valType": "number", + "dflt": 300, + "min": 0, + "description": "Sets the delay for registering a double-click in ms. This is the time interval (in ms) between first mousedown and 2nd mouseup to constitute a double-click. This setting propagates to all on-subplot double clicks (except for geo and mapbox) and on-legend double clicks." + }, + "showAxisDragHandles": { + "valType": "boolean", + "dflt": true, + "description": "Set to *false* to omit cartesian axis pan/zoom drag handles." + }, + "showAxisRangeEntryBoxes": { + "valType": "boolean", + "dflt": true, + "description": "Set to *false* to omit direct range entry at the pan/zoom drag points, note that `showAxisDragHandles` must be enabled to have an effect." + }, + "showTips": { + "valType": "boolean", + "dflt": true, + "description": "Determines whether or not tips are shown while interacting with the resulting graphs." + }, + "showLink": { + "valType": "boolean", + "dflt": false, + "description": "Determines whether a link to Chart Studio Cloud is displayed at the bottom right corner of resulting graphs. Use with `sendData` and `linkText`." + }, + "linkText": { + "valType": "string", + "dflt": "Edit chart", + "noBlank": true, + "description": "Sets the text appearing in the `showLink` link." + }, + "sendData": { + "valType": "boolean", + "dflt": true, + "description": "If *showLink* is true, does it contain data just link to a Chart Studio Cloud file?" + }, + "showSources": { + "valType": "any", + "dflt": false, + "description": "Adds a source-displaying function to show sources on the resulting graphs." + }, + "displayModeBar": { + "valType": "enumerated", + "values": [ + "hover", + true, + false + ], + "dflt": "hover", + "description": "Determines the mode bar display mode. If *true*, the mode bar is always visible. If *false*, the mode bar is always hidden. If *hover*, the mode bar is visible while the mouse cursor is on the graph container." + }, + "showSendToCloud": { + "valType": "boolean", + "dflt": false, + "description": "Should we include a ModeBar button, labeled \"Edit in Chart Studio\", that sends this chart to chart-studio.plotly.com (formerly plot.ly) or another plotly server as specified by `plotlyServerURL` for editing, export, etc? Prior to version 1.43.0 this button was included by default, now it is opt-in using this flag. Note that this button can (depending on `plotlyServerURL` being set) send your data to an external server. However that server does not persist your data until you arrive at the Chart Studio and explicitly click \"Save\"." + }, + "showEditInChartStudio": { + "valType": "boolean", + "dflt": false, + "description": "Same as `showSendToCloud`, but use a pencil icon instead of a floppy-disk. Note that if both `showSendToCloud` and `showEditInChartStudio` are turned, only `showEditInChartStudio` will be honored." + }, + "modeBarButtonsToRemove": { + "valType": "any", + "dflt": [], + "description": "Remove mode bar buttons by name. See ./components/modebar/buttons.js for the list of names." + }, + "modeBarButtonsToAdd": { + "valType": "any", + "dflt": [], + "description": "Add mode bar button using config objects See ./components/modebar/buttons.js for list of arguments. To enable predefined modebar buttons e.g. shape drawing, hover and spikelines, simply provide their string name(s). This could include: *v1hovermode*, *hoverclosest*, *hovercompare*, *togglehover*, *togglespikelines*, *drawline*, *drawopenpath*, *drawclosedpath*, *drawcircle*, *drawrect* and *eraseshape*. Please note that these predefined buttons will only be shown if they are compatible with all trace types used in a graph." + }, + "modeBarButtons": { + "valType": "any", + "dflt": false, + "description": "Define fully custom mode bar buttons as nested array, where the outer arrays represents button groups, and the inner arrays have buttons config objects or names of default buttons See ./components/modebar/buttons.js for more info." + }, + "toImageButtonOptions": { + "valType": "any", + "dflt": {}, + "description": "Statically override options for toImage modebar button allowed keys are format, filename, width, height, scale see ../components/modebar/buttons.js" + }, + "displaylogo": { + "valType": "boolean", + "dflt": true, + "description": "Determines whether or not the plotly logo is displayed on the end of the mode bar." + }, + "watermark": { + "valType": "boolean", + "dflt": false, + "description": "watermark the images with the company's logo" + }, + "plotGlPixelRatio": { + "valType": "number", + "dflt": 2, + "min": 1, + "max": 4, + "description": "Set the pixel ratio during WebGL image export. This config option was formerly named `plot3dPixelRatio` which is now deprecated." + }, + "setBackground": { + "valType": "any", + "dflt": "transparent", + "description": "Set function to add the background color (i.e. `layout.paper_color`) to a different container. This function take the graph div as first argument and the current background color as second argument. Alternatively, set to string *opaque* to ensure there is white behind it." + }, + "topojsonURL": { + "valType": "string", + "noBlank": true, + "dflt": "https://cdn.plot.ly/", + "description": "Set the URL to topojson used in geo charts. By default, the topojson files are fetched from cdn.plot.ly. For example, set this option to: /dist/topojson/ to render geographical feature using the topojson files that ship with the plotly.js module." + }, + "mapboxAccessToken": { + "valType": "string", + "dflt": null, + "description": "Mapbox access token (required to plot mapbox trace types) If using an Mapbox Atlas server, set this option to '' so that plotly.js won't attempt to authenticate to the public Mapbox server." + }, + "logging": { + "valType": "integer", + "min": 0, + "max": 2, + "dflt": 1, + "description": "Turn all console logging on or off (errors will be thrown) This should ONLY be set via Plotly.setPlotConfig Available levels: 0: no logs 1: warnings and errors, but not informational messages 2: verbose logs" + }, + "notifyOnLogging": { + "valType": "integer", + "min": 0, + "max": 2, + "dflt": 0, + "description": "Set on-graph logging (notifier) level This should ONLY be set via Plotly.setPlotConfig Available levels: 0: no on-graph logs 1: warnings and errors, but not informational messages 2: verbose logs" + }, + "queueLength": { + "valType": "integer", + "min": 0, + "dflt": 0, + "description": "Sets the length of the undo/redo queue." + }, + "globalTransforms": { + "valType": "any", + "dflt": [], + "description": "Set global transform to be applied to all traces with no specification needed" + }, + "locale": { + "valType": "string", + "dflt": "en-US", + "description": "Which localization should we use? Should be a string like 'en' or 'en-US'." + }, + "locales": { + "valType": "any", + "dflt": {}, + "description": "Localization definitions Locales can be provided either here (specific to one chart) or globally by registering them as modules. Should be an object of objects {locale: {dictionary: {...}, format: {...}}} { da: { dictionary: {'Reset axes': 'Nulstil aksler', ...}, format: {months: [...], shortMonths: [...]} }, ... } All parts are optional. When looking for translation or format fields, we look first for an exact match in a config locale, then in a registered module. If those fail, we strip off any regionalization ('en-US' -> 'en') and try each (config, registry) again. The final fallback for translation is untranslated (which is US English) and for formats is the base English (the only consequence being the last fallback date format %x is DD/MM/YYYY instead of MM/DD/YYYY). Currently `grouping` and `currency` are ignored for our automatic number formatting, but can be used in custom formats." + } + } } \ No newline at end of file diff --git a/packages/python/plotly/plotly/graph_objects/__init__.py b/packages/python/plotly/plotly/graph_objects/__init__.py index cb52fcecac..140c814e1f 100644 --- a/packages/python/plotly/plotly/graph_objects/__init__.py +++ b/packages/python/plotly/plotly/graph_objects/__init__.py @@ -47,7 +47,6 @@ from ..graph_objs import Box from ..graph_objs import Barpolar from ..graph_objs import Bar - from ..graph_objs import Area from ..graph_objs import Layout from ..graph_objs import Frame from ..graph_objs import Figure @@ -122,7 +121,6 @@ from ..graph_objs import box from ..graph_objs import barpolar from ..graph_objs import bar - from ..graph_objs import area from ..graph_objs import layout else: from _plotly_utils.importers import relative_import @@ -176,7 +174,6 @@ "..graph_objs.box", "..graph_objs.barpolar", "..graph_objs.bar", - "..graph_objs.area", "..graph_objs.layout", ], [ @@ -226,7 +223,6 @@ "..graph_objs.Box", "..graph_objs.Barpolar", "..graph_objs.Bar", - "..graph_objs.Area", "..graph_objs.Layout", "..graph_objs.Frame", "..graph_objs.Figure", diff --git a/packages/python/plotly/plotly/graph_objs/__init__.py b/packages/python/plotly/plotly/graph_objs/__init__.py index e2861522c4..6e4f42ce62 100644 --- a/packages/python/plotly/plotly/graph_objs/__init__.py +++ b/packages/python/plotly/plotly/graph_objs/__init__.py @@ -1,7 +1,6 @@ import sys if sys.version_info < (3, 7): - from ._area import Area from ._bar import Bar from ._barpolar import Barpolar from ._box import Box @@ -76,7 +75,6 @@ from ._violin import Violin from ._volume import Volume from ._waterfall import Waterfall - from . import area from . import bar from . import barpolar from . import box @@ -130,7 +128,6 @@ __all__, __getattr__, __dir__ = relative_import( __name__, [ - ".area", ".bar", ".barpolar", ".box", @@ -180,7 +177,6 @@ ".waterfall", ], [ - "._area.Area", "._bar.Bar", "._barpolar.Barpolar", "._box.Box", diff --git a/packages/python/plotly/plotly/graph_objs/_area.py b/packages/python/plotly/plotly/graph_objs/_area.py deleted file mode 100644 index 00c8d29b4e..0000000000 --- a/packages/python/plotly/plotly/graph_objs/_area.py +++ /dev/null @@ -1,1003 +0,0 @@ -from plotly.basedatatypes import BaseTraceType as _BaseTraceType -import copy as _copy - - -class Area(_BaseTraceType): - - # class properties - # -------------------- - _parent_path_str = "" - _path_str = "area" - _valid_props = { - "customdata", - "customdatasrc", - "hoverinfo", - "hoverinfosrc", - "hoverlabel", - "ids", - "idssrc", - "legendgroup", - "marker", - "meta", - "metasrc", - "name", - "opacity", - "r", - "rsrc", - "showlegend", - "stream", - "t", - "tsrc", - "type", - "uid", - "uirevision", - "visible", - } - - # customdata - # ---------- - @property - def customdata(self): - """ - Assigns extra data each datum. This may be useful when - listening to hover, click and selection events. Note that, - "scatter" traces also appends customdata items in the markers - DOM elements - - The 'customdata' property is an array that may be specified as a tuple, - list, numpy array, or pandas Series - - Returns - ------- - numpy.ndarray - """ - return self["customdata"] - - @customdata.setter - def customdata(self, val): - self["customdata"] = val - - # customdatasrc - # ------------- - @property - def customdatasrc(self): - """ - Sets the source reference on Chart Studio Cloud for customdata - . - - The 'customdatasrc' property must be specified as a string or - as a plotly.grid_objs.Column object - - Returns - ------- - str - """ - return self["customdatasrc"] - - @customdatasrc.setter - def customdatasrc(self, val): - self["customdatasrc"] = val - - # hoverinfo - # --------- - @property - def hoverinfo(self): - """ - Determines which trace information appear on hover. If `none` - or `skip` are set, no information is displayed upon hovering. - But, if `none` is set, click and hover events are still fired. - - The 'hoverinfo' property is a flaglist and may be specified - as a string containing: - - Any combination of ['x', 'y', 'z', 'text', 'name'] joined with '+' characters - (e.g. 'x+y') - OR exactly one of ['all', 'none', 'skip'] (e.g. 'skip') - - A list or array of the above - - Returns - ------- - Any|numpy.ndarray - """ - return self["hoverinfo"] - - @hoverinfo.setter - def hoverinfo(self, val): - self["hoverinfo"] = val - - # hoverinfosrc - # ------------ - @property - def hoverinfosrc(self): - """ - Sets the source reference on Chart Studio Cloud for hoverinfo - . - - The 'hoverinfosrc' property must be specified as a string or - as a plotly.grid_objs.Column object - - Returns - ------- - str - """ - return self["hoverinfosrc"] - - @hoverinfosrc.setter - def hoverinfosrc(self, val): - self["hoverinfosrc"] = val - - # hoverlabel - # ---------- - @property - def hoverlabel(self): - """ - The 'hoverlabel' property is an instance of Hoverlabel - that may be specified as: - - An instance of :class:`plotly.graph_objs.area.Hoverlabel` - - A dict of string/value properties that will be passed - to the Hoverlabel constructor - - Supported dict properties: - - align - Sets the horizontal alignment of the text - content within hover label box. Has an effect - only if the hover label text spans more two or - more lines - alignsrc - Sets the source reference on Chart Studio Cloud - for align . - bgcolor - Sets the background color of the hover labels - for this trace - bgcolorsrc - Sets the source reference on Chart Studio Cloud - for bgcolor . - bordercolor - Sets the border color of the hover labels for - this trace. - bordercolorsrc - Sets the source reference on Chart Studio Cloud - for bordercolor . - font - Sets the font used in hover labels. - namelength - Sets the default length (in number of - characters) of the trace name in the hover - labels for all traces. -1 shows the whole name - regardless of length. 0-3 shows the first 0-3 - characters, and an integer >3 will show the - whole name if it is less than that many - characters, but if it is longer, will truncate - to `namelength - 3` characters and add an - ellipsis. - namelengthsrc - Sets the source reference on Chart Studio Cloud - for namelength . - - Returns - ------- - plotly.graph_objs.area.Hoverlabel - """ - return self["hoverlabel"] - - @hoverlabel.setter - def hoverlabel(self, val): - self["hoverlabel"] = val - - # ids - # --- - @property - def ids(self): - """ - Assigns id labels to each datum. These ids for object constancy - of data points during animation. Should be an array of strings, - not numbers or any other type. - - The 'ids' property is an array that may be specified as a tuple, - list, numpy array, or pandas Series - - Returns - ------- - numpy.ndarray - """ - return self["ids"] - - @ids.setter - def ids(self, val): - self["ids"] = val - - # idssrc - # ------ - @property - def idssrc(self): - """ - Sets the source reference on Chart Studio Cloud for ids . - - The 'idssrc' property must be specified as a string or - as a plotly.grid_objs.Column object - - Returns - ------- - str - """ - return self["idssrc"] - - @idssrc.setter - def idssrc(self, val): - self["idssrc"] = val - - # legendgroup - # ----------- - @property - def legendgroup(self): - """ - Sets the legend group for this trace. Traces part of the same - legend group hide/show at the same time when toggling legend - items. - - The 'legendgroup' property is a string and must be specified as: - - A string - - A number that will be converted to a string - - Returns - ------- - str - """ - return self["legendgroup"] - - @legendgroup.setter - def legendgroup(self, val): - self["legendgroup"] = val - - # marker - # ------ - @property - def marker(self): - """ - The 'marker' property is an instance of Marker - that may be specified as: - - An instance of :class:`plotly.graph_objs.area.Marker` - - A dict of string/value properties that will be passed - to the Marker constructor - - Supported dict properties: - - color - Area traces are deprecated! Please switch to - the "barpolar" trace type. Sets themarkercolor. - It accepts either a specific color or an array - of numbers that are mapped to the colorscale - relative to the max and min values of the array - or relative to `marker.cmin` and `marker.cmax` - if set. - colorsrc - Sets the source reference on Chart Studio Cloud - for color . - opacity - Area traces are deprecated! Please switch to - the "barpolar" trace type. Sets the marker - opacity. - opacitysrc - Sets the source reference on Chart Studio Cloud - for opacity . - size - Area traces are deprecated! Please switch to - the "barpolar" trace type. Sets the marker size - (in px). - sizesrc - Sets the source reference on Chart Studio Cloud - for size . - symbol - Area traces are deprecated! Please switch to - the "barpolar" trace type. Sets the marker - symbol type. Adding 100 is equivalent to - appending "-open" to a symbol name. Adding 200 - is equivalent to appending "-dot" to a symbol - name. Adding 300 is equivalent to appending - "-open-dot" or "dot-open" to a symbol name. - symbolsrc - Sets the source reference on Chart Studio Cloud - for symbol . - - Returns - ------- - plotly.graph_objs.area.Marker - """ - return self["marker"] - - @marker.setter - def marker(self, val): - self["marker"] = val - - # meta - # ---- - @property - def meta(self): - """ - Assigns extra meta information associated with this trace that - can be used in various text attributes. Attributes such as - trace `name`, graph, axis and colorbar `title.text`, annotation - `text` `rangeselector`, `updatemenues` and `sliders` `label` - text all support `meta`. To access the trace `meta` values in - an attribute in the same trace, simply use `%{meta[i]}` where - `i` is the index or key of the `meta` item in question. To - access trace `meta` in layout attributes, use - `%{data[n[.meta[i]}` where `i` is the index or key of the - `meta` and `n` is the trace index. - - The 'meta' property accepts values of any type - - Returns - ------- - Any|numpy.ndarray - """ - return self["meta"] - - @meta.setter - def meta(self, val): - self["meta"] = val - - # metasrc - # ------- - @property - def metasrc(self): - """ - Sets the source reference on Chart Studio Cloud for meta . - - The 'metasrc' property must be specified as a string or - as a plotly.grid_objs.Column object - - Returns - ------- - str - """ - return self["metasrc"] - - @metasrc.setter - def metasrc(self, val): - self["metasrc"] = val - - # name - # ---- - @property - def name(self): - """ - Sets the trace name. The trace name appear as the legend item - and on hover. - - The 'name' property is a string and must be specified as: - - A string - - A number that will be converted to a string - - Returns - ------- - str - """ - return self["name"] - - @name.setter - def name(self, val): - self["name"] = val - - # opacity - # ------- - @property - def opacity(self): - """ - Sets the opacity of the trace. - - The 'opacity' property is a number and may be specified as: - - An int or float in the interval [0, 1] - - Returns - ------- - int|float - """ - return self["opacity"] - - @opacity.setter - def opacity(self, val): - self["opacity"] = val - - # r - # - - @property - def r(self): - """ - Area traces are deprecated! Please switch to the "barpolar" - trace type. Sets the radial coordinates for legacy polar chart - only. - - The 'r' property is an array that may be specified as a tuple, - list, numpy array, or pandas Series - - Returns - ------- - numpy.ndarray - """ - return self["r"] - - @r.setter - def r(self, val): - self["r"] = val - - # rsrc - # ---- - @property - def rsrc(self): - """ - Sets the source reference on Chart Studio Cloud for r . - - The 'rsrc' property must be specified as a string or - as a plotly.grid_objs.Column object - - Returns - ------- - str - """ - return self["rsrc"] - - @rsrc.setter - def rsrc(self, val): - self["rsrc"] = val - - # showlegend - # ---------- - @property - def showlegend(self): - """ - Determines whether or not an item corresponding to this trace - is shown in the legend. - - The 'showlegend' property must be specified as a bool - (either True, or False) - - Returns - ------- - bool - """ - return self["showlegend"] - - @showlegend.setter - def showlegend(self, val): - self["showlegend"] = val - - # stream - # ------ - @property - def stream(self): - """ - The 'stream' property is an instance of Stream - that may be specified as: - - An instance of :class:`plotly.graph_objs.area.Stream` - - A dict of string/value properties that will be passed - to the Stream constructor - - Supported dict properties: - - maxpoints - Sets the maximum number of points to keep on - the plots from an incoming stream. If - `maxpoints` is set to 50, only the newest 50 - points will be displayed on the plot. - token - The stream id number links a data trace on a - plot with a stream. See https://chart- - studio.plotly.com/settings for more details. - - Returns - ------- - plotly.graph_objs.area.Stream - """ - return self["stream"] - - @stream.setter - def stream(self, val): - self["stream"] = val - - # t - # - - @property - def t(self): - """ - Area traces are deprecated! Please switch to the "barpolar" - trace type. Sets the angular coordinates for legacy polar chart - only. - - The 't' property is an array that may be specified as a tuple, - list, numpy array, or pandas Series - - Returns - ------- - numpy.ndarray - """ - return self["t"] - - @t.setter - def t(self, val): - self["t"] = val - - # tsrc - # ---- - @property - def tsrc(self): - """ - Sets the source reference on Chart Studio Cloud for t . - - The 'tsrc' property must be specified as a string or - as a plotly.grid_objs.Column object - - Returns - ------- - str - """ - return self["tsrc"] - - @tsrc.setter - def tsrc(self, val): - self["tsrc"] = val - - # uid - # --- - @property - def uid(self): - """ - Assign an id to this trace, Use this to provide object - constancy between traces during animations and transitions. - - The 'uid' property is a string and must be specified as: - - A string - - A number that will be converted to a string - - Returns - ------- - str - """ - return self["uid"] - - @uid.setter - def uid(self, val): - self["uid"] = val - - # uirevision - # ---------- - @property - def uirevision(self): - """ - Controls persistence of some user-driven changes to the trace: - `constraintrange` in `parcoords` traces, as well as some - `editable: true` modifications such as `name` and - `colorbar.title`. Defaults to `layout.uirevision`. Note that - other user-driven trace attribute changes are controlled by - `layout` attributes: `trace.visible` is controlled by - `layout.legend.uirevision`, `selectedpoints` is controlled by - `layout.selectionrevision`, and `colorbar.(x|y)` (accessible - with `config: {editable: true}`) is controlled by - `layout.editrevision`. Trace changes are tracked by `uid`, - which only falls back on trace index if no `uid` is provided. - So if your app can add/remove traces before the end of the - `data` array, such that the same trace has a different index, - you can still preserve user-driven changes if you give each - trace a `uid` that stays with it as it moves. - - The 'uirevision' property accepts values of any type - - Returns - ------- - Any - """ - return self["uirevision"] - - @uirevision.setter - def uirevision(self, val): - self["uirevision"] = val - - # visible - # ------- - @property - def visible(self): - """ - Determines whether or not this trace is visible. If - "legendonly", the trace is not drawn, but can appear as a - legend item (provided that the legend itself is visible). - - The 'visible' property is an enumeration that may be specified as: - - One of the following enumeration values: - [True, False, 'legendonly'] - - Returns - ------- - Any - """ - return self["visible"] - - @visible.setter - def visible(self, val): - self["visible"] = val - - # type - # ---- - @property - def type(self): - return self._props["type"] - - # Self properties description - # --------------------------- - @property - def _prop_descriptions(self): - return """\ - customdata - Assigns extra data each datum. This may be useful when - listening to hover, click and selection events. Note - that, "scatter" traces also appends customdata items in - the markers DOM elements - customdatasrc - Sets the source reference on Chart Studio Cloud for - customdata . - hoverinfo - Determines which trace information appear on hover. If - `none` or `skip` are set, no information is displayed - upon hovering. But, if `none` is set, click and hover - events are still fired. - hoverinfosrc - Sets the source reference on Chart Studio Cloud for - hoverinfo . - hoverlabel - :class:`plotly.graph_objects.area.Hoverlabel` instance - or dict with compatible properties - ids - Assigns id labels to each datum. These ids for object - constancy of data points during animation. Should be an - array of strings, not numbers or any other type. - idssrc - Sets the source reference on Chart Studio Cloud for - ids . - legendgroup - Sets the legend group for this trace. Traces part of - the same legend group hide/show at the same time when - toggling legend items. - marker - :class:`plotly.graph_objects.area.Marker` instance or - dict with compatible properties - meta - Assigns extra meta information associated with this - trace that can be used in various text attributes. - Attributes such as trace `name`, graph, axis and - colorbar `title.text`, annotation `text` - `rangeselector`, `updatemenues` and `sliders` `label` - text all support `meta`. To access the trace `meta` - values in an attribute in the same trace, simply use - `%{meta[i]}` where `i` is the index or key of the - `meta` item in question. To access trace `meta` in - layout attributes, use `%{data[n[.meta[i]}` where `i` - is the index or key of the `meta` and `n` is the trace - index. - metasrc - Sets the source reference on Chart Studio Cloud for - meta . - name - Sets the trace name. The trace name appear as the - legend item and on hover. - opacity - Sets the opacity of the trace. - r - Area traces are deprecated! Please switch to the - "barpolar" trace type. Sets the radial coordinates for - legacy polar chart only. - rsrc - Sets the source reference on Chart Studio Cloud for r - . - showlegend - Determines whether or not an item corresponding to this - trace is shown in the legend. - stream - :class:`plotly.graph_objects.area.Stream` instance or - dict with compatible properties - t - Area traces are deprecated! Please switch to the - "barpolar" trace type. Sets the angular coordinates for - legacy polar chart only. - tsrc - Sets the source reference on Chart Studio Cloud for t - . - uid - Assign an id to this trace, Use this to provide object - constancy between traces during animations and - transitions. - uirevision - Controls persistence of some user-driven changes to the - trace: `constraintrange` in `parcoords` traces, as well - as some `editable: true` modifications such as `name` - and `colorbar.title`. Defaults to `layout.uirevision`. - Note that other user-driven trace attribute changes are - controlled by `layout` attributes: `trace.visible` is - controlled by `layout.legend.uirevision`, - `selectedpoints` is controlled by - `layout.selectionrevision`, and `colorbar.(x|y)` - (accessible with `config: {editable: true}`) is - controlled by `layout.editrevision`. Trace changes are - tracked by `uid`, which only falls back on trace index - if no `uid` is provided. So if your app can add/remove - traces before the end of the `data` array, such that - the same trace has a different index, you can still - preserve user-driven changes if you give each trace a - `uid` that stays with it as it moves. - visible - Determines whether or not this trace is visible. If - "legendonly", the trace is not drawn, but can appear as - a legend item (provided that the legend itself is - visible). - """ - - def __init__( - self, - arg=None, - customdata=None, - customdatasrc=None, - hoverinfo=None, - hoverinfosrc=None, - hoverlabel=None, - ids=None, - idssrc=None, - legendgroup=None, - marker=None, - meta=None, - metasrc=None, - name=None, - opacity=None, - r=None, - rsrc=None, - showlegend=None, - stream=None, - t=None, - tsrc=None, - uid=None, - uirevision=None, - visible=None, - **kwargs - ): - """ - Construct a new Area object - - Parameters - ---------- - arg - dict of properties compatible with this constructor or - an instance of :class:`plotly.graph_objs.Area` - customdata - Assigns extra data each datum. This may be useful when - listening to hover, click and selection events. Note - that, "scatter" traces also appends customdata items in - the markers DOM elements - customdatasrc - Sets the source reference on Chart Studio Cloud for - customdata . - hoverinfo - Determines which trace information appear on hover. If - `none` or `skip` are set, no information is displayed - upon hovering. But, if `none` is set, click and hover - events are still fired. - hoverinfosrc - Sets the source reference on Chart Studio Cloud for - hoverinfo . - hoverlabel - :class:`plotly.graph_objects.area.Hoverlabel` instance - or dict with compatible properties - ids - Assigns id labels to each datum. These ids for object - constancy of data points during animation. Should be an - array of strings, not numbers or any other type. - idssrc - Sets the source reference on Chart Studio Cloud for - ids . - legendgroup - Sets the legend group for this trace. Traces part of - the same legend group hide/show at the same time when - toggling legend items. - marker - :class:`plotly.graph_objects.area.Marker` instance or - dict with compatible properties - meta - Assigns extra meta information associated with this - trace that can be used in various text attributes. - Attributes such as trace `name`, graph, axis and - colorbar `title.text`, annotation `text` - `rangeselector`, `updatemenues` and `sliders` `label` - text all support `meta`. To access the trace `meta` - values in an attribute in the same trace, simply use - `%{meta[i]}` where `i` is the index or key of the - `meta` item in question. To access trace `meta` in - layout attributes, use `%{data[n[.meta[i]}` where `i` - is the index or key of the `meta` and `n` is the trace - index. - metasrc - Sets the source reference on Chart Studio Cloud for - meta . - name - Sets the trace name. The trace name appear as the - legend item and on hover. - opacity - Sets the opacity of the trace. - r - Area traces are deprecated! Please switch to the - "barpolar" trace type. Sets the radial coordinates for - legacy polar chart only. - rsrc - Sets the source reference on Chart Studio Cloud for r - . - showlegend - Determines whether or not an item corresponding to this - trace is shown in the legend. - stream - :class:`plotly.graph_objects.area.Stream` instance or - dict with compatible properties - t - Area traces are deprecated! Please switch to the - "barpolar" trace type. Sets the angular coordinates for - legacy polar chart only. - tsrc - Sets the source reference on Chart Studio Cloud for t - . - uid - Assign an id to this trace, Use this to provide object - constancy between traces during animations and - transitions. - uirevision - Controls persistence of some user-driven changes to the - trace: `constraintrange` in `parcoords` traces, as well - as some `editable: true` modifications such as `name` - and `colorbar.title`. Defaults to `layout.uirevision`. - Note that other user-driven trace attribute changes are - controlled by `layout` attributes: `trace.visible` is - controlled by `layout.legend.uirevision`, - `selectedpoints` is controlled by - `layout.selectionrevision`, and `colorbar.(x|y)` - (accessible with `config: {editable: true}`) is - controlled by `layout.editrevision`. Trace changes are - tracked by `uid`, which only falls back on trace index - if no `uid` is provided. So if your app can add/remove - traces before the end of the `data` array, such that - the same trace has a different index, you can still - preserve user-driven changes if you give each trace a - `uid` that stays with it as it moves. - visible - Determines whether or not this trace is visible. If - "legendonly", the trace is not drawn, but can appear as - a legend item (provided that the legend itself is - visible). - - Returns - ------- - Area - """ - super(Area, self).__init__("area") - - if "_parent" in kwargs: - self._parent = kwargs["_parent"] - return - - # Validate arg - # ------------ - if arg is None: - arg = {} - elif isinstance(arg, self.__class__): - arg = arg.to_plotly_json() - elif isinstance(arg, dict): - arg = _copy.copy(arg) - else: - raise ValueError( - """\ -The first argument to the plotly.graph_objs.Area -constructor must be a dict or -an instance of :class:`plotly.graph_objs.Area`""" - ) - - # Handle skip_invalid - # ------------------- - self._skip_invalid = kwargs.pop("skip_invalid", False) - self._validate = kwargs.pop("_validate", True) - - # Populate data dict with properties - # ---------------------------------- - _v = arg.pop("customdata", None) - _v = customdata if customdata is not None else _v - if _v is not None: - self["customdata"] = _v - _v = arg.pop("customdatasrc", None) - _v = customdatasrc if customdatasrc is not None else _v - if _v is not None: - self["customdatasrc"] = _v - _v = arg.pop("hoverinfo", None) - _v = hoverinfo if hoverinfo is not None else _v - if _v is not None: - self["hoverinfo"] = _v - _v = arg.pop("hoverinfosrc", None) - _v = hoverinfosrc if hoverinfosrc is not None else _v - if _v is not None: - self["hoverinfosrc"] = _v - _v = arg.pop("hoverlabel", None) - _v = hoverlabel if hoverlabel is not None else _v - if _v is not None: - self["hoverlabel"] = _v - _v = arg.pop("ids", None) - _v = ids if ids is not None else _v - if _v is not None: - self["ids"] = _v - _v = arg.pop("idssrc", None) - _v = idssrc if idssrc is not None else _v - if _v is not None: - self["idssrc"] = _v - _v = arg.pop("legendgroup", None) - _v = legendgroup if legendgroup is not None else _v - if _v is not None: - self["legendgroup"] = _v - _v = arg.pop("marker", None) - _v = marker if marker is not None else _v - if _v is not None: - self["marker"] = _v - _v = arg.pop("meta", None) - _v = meta if meta is not None else _v - if _v is not None: - self["meta"] = _v - _v = arg.pop("metasrc", None) - _v = metasrc if metasrc is not None else _v - if _v is not None: - self["metasrc"] = _v - _v = arg.pop("name", None) - _v = name if name is not None else _v - if _v is not None: - self["name"] = _v - _v = arg.pop("opacity", None) - _v = opacity if opacity is not None else _v - if _v is not None: - self["opacity"] = _v - _v = arg.pop("r", None) - _v = r if r is not None else _v - if _v is not None: - self["r"] = _v - _v = arg.pop("rsrc", None) - _v = rsrc if rsrc is not None else _v - if _v is not None: - self["rsrc"] = _v - _v = arg.pop("showlegend", None) - _v = showlegend if showlegend is not None else _v - if _v is not None: - self["showlegend"] = _v - _v = arg.pop("stream", None) - _v = stream if stream is not None else _v - if _v is not None: - self["stream"] = _v - _v = arg.pop("t", None) - _v = t if t is not None else _v - if _v is not None: - self["t"] = _v - _v = arg.pop("tsrc", None) - _v = tsrc if tsrc is not None else _v - if _v is not None: - self["tsrc"] = _v - _v = arg.pop("uid", None) - _v = uid if uid is not None else _v - if _v is not None: - self["uid"] = _v - _v = arg.pop("uirevision", None) - _v = uirevision if uirevision is not None else _v - if _v is not None: - self["uirevision"] = _v - _v = arg.pop("visible", None) - _v = visible if visible is not None else _v - if _v is not None: - self["visible"] = _v - - # Read-only literals - # ------------------ - - self._props["type"] = "area" - arg.pop("type", None) - - # Process unknown kwargs - # ---------------------- - self._process_kwargs(**dict(arg, **kwargs)) - - # Reset skip_invalid - # ------------------ - self._skip_invalid = False diff --git a/packages/python/plotly/plotly/graph_objs/_bar.py b/packages/python/plotly/plotly/graph_objs/_bar.py index 3ab514327a..9325efbd28 100644 --- a/packages/python/plotly/plotly/graph_objs/_bar.py +++ b/packages/python/plotly/plotly/graph_objs/_bar.py @@ -42,13 +42,10 @@ class Bar(_BaseTraceType): "opacity", "orientation", "outsidetextfont", - "r", - "rsrc", "selected", "selectedpoints", "showlegend", "stream", - "t", "text", "textangle", "textfont", @@ -57,7 +54,6 @@ class Bar(_BaseTraceType): "textsrc", "texttemplate", "texttemplatesrc", - "tsrc", "type", "uid", "uirevision", @@ -69,6 +65,7 @@ class Bar(_BaseTraceType): "x0", "xaxis", "xcalendar", + "xhoverformat", "xperiod", "xperiod0", "xperiodalignment", @@ -77,6 +74,7 @@ class Bar(_BaseTraceType): "y0", "yaxis", "ycalendar", + "yhoverformat", "yperiod", "yperiod0", "yperiodalignment", @@ -890,6 +888,9 @@ def marker(self): opacitysrc Sets the source reference on Chart Studio Cloud for opacity . + pattern + :class:`plotly.graph_objects.bar.marker.Pattern + ` instance or dict with compatible properties reversescale Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a @@ -1146,48 +1147,6 @@ def outsidetextfont(self): def outsidetextfont(self, val): self["outsidetextfont"] = val - # r - # - - @property - def r(self): - """ - r coordinates in scatter traces are deprecated!Please switch to - the "scatterpolar" trace type.Sets the radial coordinatesfor - legacy polar chart only. - - The 'r' property is an array that may be specified as a tuple, - list, numpy array, or pandas Series - - Returns - ------- - numpy.ndarray - """ - return self["r"] - - @r.setter - def r(self, val): - self["r"] = val - - # rsrc - # ---- - @property - def rsrc(self): - """ - Sets the source reference on Chart Studio Cloud for r . - - The 'rsrc' property must be specified as a string or - as a plotly.grid_objs.Column object - - Returns - ------- - str - """ - return self["rsrc"] - - @rsrc.setter - def rsrc(self, val): - self["rsrc"] = val - # selected # -------- @property @@ -1297,28 +1256,6 @@ def stream(self): def stream(self, val): self["stream"] = val - # t - # - - @property - def t(self): - """ - t coordinates in scatter traces are deprecated!Please switch to - the "scatterpolar" trace type.Sets the angular coordinatesfor - legacy polar chart only. - - The 't' property is an array that may be specified as a tuple, - list, numpy array, or pandas Series - - Returns - ------- - numpy.ndarray - """ - return self["t"] - - @t.setter - def t(self, val): - self["t"] = val - # text # ---- @property @@ -1438,7 +1375,8 @@ def textposition(self): if needed), unless there is another bar stacked on this one, then the text gets pushed inside. "auto" tries to position `text` inside the bar, but if the bar is too small and no bar - is stacked on this one the text is moved outside. + is stacked on this one the text is moved outside. If "none", no + text appears. The 'textposition' property is an enumeration that may be specified as: - One of the following enumeration values: @@ -1552,26 +1490,6 @@ def texttemplatesrc(self): def texttemplatesrc(self, val): self["texttemplatesrc"] = val - # tsrc - # ---- - @property - def tsrc(self): - """ - Sets the source reference on Chart Studio Cloud for t . - - The 'tsrc' property must be specified as a string or - as a plotly.grid_objs.Column object - - Returns - ------- - str - """ - return self["tsrc"] - - @tsrc.setter - def tsrc(self, val): - self["tsrc"] = val - # uid # --- @property @@ -1813,6 +1731,32 @@ def xcalendar(self): def xcalendar(self, val): self["xcalendar"] = val + # xhoverformat + # ------------ + @property + def xhoverformat(self): + """ + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `xaxis.hoverformat`. + + The 'xhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["xhoverformat"] + + @xhoverformat.setter + def xhoverformat(self, val): + self["xhoverformat"] = val + # xperiod # ------- @property @@ -1990,6 +1934,32 @@ def ycalendar(self): def ycalendar(self, val): self["ycalendar"] = val + # yhoverformat + # ------------ + @property + def yhoverformat(self): + """ + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `yaxis.hoverformat`. + + The 'yhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["yhoverformat"] + + @yhoverformat.setter + def yhoverformat(self, val): + self["yhoverformat"] = val + # yperiod # ------- @property @@ -2232,13 +2202,6 @@ def _prop_descriptions(self): (horizontal). outsidetextfont Sets the font used for `text` lying outside the bar. - r - r coordinates in scatter traces are deprecated!Please - switch to the "scatterpolar" trace type.Sets the radial - coordinatesfor legacy polar chart only. - rsrc - Sets the source reference on Chart Studio Cloud for r - . selected :class:`plotly.graph_objects.bar.Selected` instance or dict with compatible properties @@ -2255,10 +2218,6 @@ def _prop_descriptions(self): stream :class:`plotly.graph_objects.bar.Stream` instance or dict with compatible properties - t - t coordinates in scatter traces are deprecated!Please - switch to the "scatterpolar" trace type.Sets the - angular coordinatesfor legacy polar chart only. text Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the @@ -2283,7 +2242,8 @@ def _prop_descriptions(self): there is another bar stacked on this one, then the text gets pushed inside. "auto" tries to position `text` inside the bar, but if the bar is too small and no bar - is stacked on this one the text is moved outside. + is stacked on this one the text is moved outside. If + "none", no text appears. textpositionsrc Sets the source reference on Chart Studio Cloud for textposition . @@ -2309,9 +2269,6 @@ def _prop_descriptions(self): texttemplatesrc Sets the source reference on Chart Studio Cloud for texttemplate . - tsrc - Sets the source reference on Chart Studio Cloud for t - . uid Assign an id to this trace, Use this to provide object constancy between traces during animations and @@ -2360,6 +2317,14 @@ def _prop_descriptions(self): coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -2392,6 +2357,14 @@ def _prop_descriptions(self): coordinates refer to `layout.yaxis2`, and so on. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -2449,13 +2422,10 @@ def __init__( opacity=None, orientation=None, outsidetextfont=None, - r=None, - rsrc=None, selected=None, selectedpoints=None, showlegend=None, stream=None, - t=None, text=None, textangle=None, textfont=None, @@ -2464,7 +2434,6 @@ def __init__( textsrc=None, texttemplate=None, texttemplatesrc=None, - tsrc=None, uid=None, uirevision=None, unselected=None, @@ -2475,6 +2444,7 @@ def __init__( x0=None, xaxis=None, xcalendar=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, @@ -2483,6 +2453,7 @@ def __init__( y0=None, yaxis=None, ycalendar=None, + yhoverformat=None, yperiod=None, yperiod0=None, yperiodalignment=None, @@ -2646,13 +2617,6 @@ def __init__( (horizontal). outsidetextfont Sets the font used for `text` lying outside the bar. - r - r coordinates in scatter traces are deprecated!Please - switch to the "scatterpolar" trace type.Sets the radial - coordinatesfor legacy polar chart only. - rsrc - Sets the source reference on Chart Studio Cloud for r - . selected :class:`plotly.graph_objects.bar.Selected` instance or dict with compatible properties @@ -2669,10 +2633,6 @@ def __init__( stream :class:`plotly.graph_objects.bar.Stream` instance or dict with compatible properties - t - t coordinates in scatter traces are deprecated!Please - switch to the "scatterpolar" trace type.Sets the - angular coordinatesfor legacy polar chart only. text Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the @@ -2697,7 +2657,8 @@ def __init__( there is another bar stacked on this one, then the text gets pushed inside. "auto" tries to position `text` inside the bar, but if the bar is too small and no bar - is stacked on this one the text is moved outside. + is stacked on this one the text is moved outside. If + "none", no text appears. textpositionsrc Sets the source reference on Chart Studio Cloud for textposition . @@ -2723,9 +2684,6 @@ def __init__( texttemplatesrc Sets the source reference on Chart Studio Cloud for texttemplate . - tsrc - Sets the source reference on Chart Studio Cloud for t - . uid Assign an id to this trace, Use this to provide object constancy between traces during animations and @@ -2774,6 +2732,14 @@ def __init__( coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -2806,6 +2772,14 @@ def __init__( coordinates refer to `layout.yaxis2`, and so on. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -2991,14 +2965,6 @@ def __init__( _v = outsidetextfont if outsidetextfont is not None else _v if _v is not None: self["outsidetextfont"] = _v - _v = arg.pop("r", None) - _v = r if r is not None else _v - if _v is not None: - self["r"] = _v - _v = arg.pop("rsrc", None) - _v = rsrc if rsrc is not None else _v - if _v is not None: - self["rsrc"] = _v _v = arg.pop("selected", None) _v = selected if selected is not None else _v if _v is not None: @@ -3015,10 +2981,6 @@ def __init__( _v = stream if stream is not None else _v if _v is not None: self["stream"] = _v - _v = arg.pop("t", None) - _v = t if t is not None else _v - if _v is not None: - self["t"] = _v _v = arg.pop("text", None) _v = text if text is not None else _v if _v is not None: @@ -3051,10 +3013,6 @@ def __init__( _v = texttemplatesrc if texttemplatesrc is not None else _v if _v is not None: self["texttemplatesrc"] = _v - _v = arg.pop("tsrc", None) - _v = tsrc if tsrc is not None else _v - if _v is not None: - self["tsrc"] = _v _v = arg.pop("uid", None) _v = uid if uid is not None else _v if _v is not None: @@ -3095,6 +3053,10 @@ def __init__( _v = xcalendar if xcalendar is not None else _v if _v is not None: self["xcalendar"] = _v + _v = arg.pop("xhoverformat", None) + _v = xhoverformat if xhoverformat is not None else _v + if _v is not None: + self["xhoverformat"] = _v _v = arg.pop("xperiod", None) _v = xperiod if xperiod is not None else _v if _v is not None: @@ -3127,6 +3089,10 @@ def __init__( _v = ycalendar if ycalendar is not None else _v if _v is not None: self["ycalendar"] = _v + _v = arg.pop("yhoverformat", None) + _v = yhoverformat if yhoverformat is not None else _v + if _v is not None: + self["yhoverformat"] = _v _v = arg.pop("yperiod", None) _v = yperiod if yperiod is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/_barpolar.py b/packages/python/plotly/plotly/graph_objs/_barpolar.py index 004639ced0..644fba5870 100644 --- a/packages/python/plotly/plotly/graph_objs/_barpolar.py +++ b/packages/python/plotly/plotly/graph_objs/_barpolar.py @@ -554,6 +554,10 @@ def marker(self): opacitysrc Sets the source reference on Chart Studio Cloud for opacity . + pattern + :class:`plotly.graph_objects.barpolar.marker.Pa + ttern` instance or dict with compatible + properties reversescale Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a diff --git a/packages/python/plotly/plotly/graph_objs/_box.py b/packages/python/plotly/plotly/graph_objs/_box.py index 0a0bb9073c..29d452f9f9 100644 --- a/packages/python/plotly/plotly/graph_objs/_box.py +++ b/packages/python/plotly/plotly/graph_objs/_box.py @@ -74,6 +74,7 @@ class Box(_BaseTraceType): "x0", "xaxis", "xcalendar", + "xhoverformat", "xperiod", "xperiod0", "xperiodalignment", @@ -82,6 +83,7 @@ class Box(_BaseTraceType): "y0", "yaxis", "ycalendar", + "yhoverformat", "yperiod", "yperiod0", "yperiodalignment", @@ -1687,6 +1689,32 @@ def xcalendar(self): def xcalendar(self, val): self["xcalendar"] = val + # xhoverformat + # ------------ + @property + def xhoverformat(self): + """ + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `xaxis.hoverformat`. + + The 'xhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["xhoverformat"] + + @xhoverformat.setter + def xhoverformat(self, val): + self["xhoverformat"] = val + # xperiod # ------- @property @@ -1865,6 +1893,32 @@ def ycalendar(self): def ycalendar(self, val): self["ycalendar"] = val + # yhoverformat + # ------------ + @property + def yhoverformat(self): + """ + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `yaxis.hoverformat`. + + The 'yhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["yhoverformat"] + + @yhoverformat.setter + def yhoverformat(self, val): + self["yhoverformat"] = val + # yperiod # ------- @property @@ -2282,6 +2336,14 @@ def _prop_descriptions(self): coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -2315,6 +2377,14 @@ def _prop_descriptions(self): coordinates refer to `layout.yaxis2`, and so on. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -2403,6 +2473,7 @@ def __init__( x0=None, xaxis=None, xcalendar=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, @@ -2411,6 +2482,7 @@ def __init__( y0=None, yaxis=None, ycalendar=None, + yhoverformat=None, yperiod=None, yperiod0=None, yperiodalignment=None, @@ -2769,6 +2841,14 @@ def __init__( coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -2802,6 +2882,14 @@ def __init__( coordinates refer to `layout.yaxis2`, and so on. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -3111,6 +3199,10 @@ def __init__( _v = xcalendar if xcalendar is not None else _v if _v is not None: self["xcalendar"] = _v + _v = arg.pop("xhoverformat", None) + _v = xhoverformat if xhoverformat is not None else _v + if _v is not None: + self["xhoverformat"] = _v _v = arg.pop("xperiod", None) _v = xperiod if xperiod is not None else _v if _v is not None: @@ -3143,6 +3235,10 @@ def __init__( _v = ycalendar if ycalendar is not None else _v if _v is not None: self["ycalendar"] = _v + _v = arg.pop("yhoverformat", None) + _v = yhoverformat if yhoverformat is not None else _v + if _v is not None: + self["yhoverformat"] = _v _v = arg.pop("yperiod", None) _v = yperiod if yperiod is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/_candlestick.py b/packages/python/plotly/plotly/graph_objs/_candlestick.py index e0913708aa..d69773f7e7 100644 --- a/packages/python/plotly/plotly/graph_objs/_candlestick.py +++ b/packages/python/plotly/plotly/graph_objs/_candlestick.py @@ -47,11 +47,13 @@ class Candlestick(_BaseTraceType): "x", "xaxis", "xcalendar", + "xhoverformat", "xperiod", "xperiod0", "xperiodalignment", "xsrc", "yaxis", + "yhoverformat", } # close @@ -953,6 +955,32 @@ def xcalendar(self): def xcalendar(self, val): self["xcalendar"] = val + # xhoverformat + # ------------ + @property + def xhoverformat(self): + """ + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `xaxis.hoverformat`. + + The 'xhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["xhoverformat"] + + @xhoverformat.setter + def xhoverformat(self, val): + self["xhoverformat"] = val + # xperiod # ------- @property @@ -1065,6 +1093,32 @@ def yaxis(self): def yaxis(self, val): self["yaxis"] = val + # yhoverformat + # ------------ + @property + def yhoverformat(self): + """ + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `yaxis.hoverformat`. + + The 'yhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["yhoverformat"] + + @yhoverformat.setter + def yhoverformat(self, val): + self["yhoverformat"] = val + # type # ---- @property @@ -1223,6 +1277,14 @@ def _prop_descriptions(self): coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -1247,6 +1309,14 @@ def _prop_descriptions(self): a 2D cartesian y axis. If "y" (the default value), the y coordinates refer to `layout.yaxis`. If "y2", the y coordinates refer to `layout.yaxis2`, and so on. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. """ def __init__( @@ -1289,11 +1359,13 @@ def __init__( x=None, xaxis=None, xcalendar=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, xsrc=None, yaxis=None, + yhoverformat=None, **kwargs ): """ @@ -1460,6 +1532,14 @@ def __init__( coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -1484,6 +1564,14 @@ def __init__( a 2D cartesian y axis. If "y" (the default value), the y coordinates refer to `layout.yaxis`. If "y2", the y coordinates refer to `layout.yaxis2`, and so on. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. Returns ------- @@ -1666,6 +1754,10 @@ def __init__( _v = xcalendar if xcalendar is not None else _v if _v is not None: self["xcalendar"] = _v + _v = arg.pop("xhoverformat", None) + _v = xhoverformat if xhoverformat is not None else _v + if _v is not None: + self["xhoverformat"] = _v _v = arg.pop("xperiod", None) _v = xperiod if xperiod is not None else _v if _v is not None: @@ -1686,6 +1778,10 @@ def __init__( _v = yaxis if yaxis is not None else _v if _v is not None: self["yaxis"] = _v + _v = arg.pop("yhoverformat", None) + _v = yhoverformat if yhoverformat is not None else _v + if _v is not None: + self["yhoverformat"] = _v # Read-only literals # ------------------ diff --git a/packages/python/plotly/plotly/graph_objs/_carpet.py b/packages/python/plotly/plotly/graph_objs/_carpet.py index 819304c4d0..962133c787 100644 --- a/packages/python/plotly/plotly/graph_objs/_carpet.py +++ b/packages/python/plotly/plotly/graph_objs/_carpet.py @@ -265,7 +265,9 @@ def aaxis(self): similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api- reference/blob/master/Formatting.md#d3_format - And for dates see: We add one item to d3's + And for dates see: + https://github.com/d3/d3-time- + format#locale_format We add one item to d3's date formatter: "%{n}f" for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat "%H~%M~%S.%2f" @@ -572,7 +574,9 @@ def baxis(self): similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api- reference/blob/master/Formatting.md#d3_format - And for dates see: We add one item to d3's + And for dates see: + https://github.com/d3/d3-time- + format#locale_format We add one item to d3's date formatter: "%{n}f" for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat "%H~%M~%S.%2f" diff --git a/packages/python/plotly/plotly/graph_objs/_choropleth.py b/packages/python/plotly/plotly/graph_objs/_choropleth.py index 4e9fafd4d4..78c634a9dc 100644 --- a/packages/python/plotly/plotly/graph_objs/_choropleth.py +++ b/packages/python/plotly/plotly/graph_objs/_choropleth.py @@ -258,6 +258,12 @@ def colorbar(self): a.choropleth.colorbar.tickformatstopdefaults), sets the default property values to use for elements of choropleth.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/graph_objs/_choroplethmapbox.py b/packages/python/plotly/plotly/graph_objs/_choroplethmapbox.py index 5da9acfe0a..297cacf681 100644 --- a/packages/python/plotly/plotly/graph_objs/_choroplethmapbox.py +++ b/packages/python/plotly/plotly/graph_objs/_choroplethmapbox.py @@ -283,6 +283,12 @@ def colorbar(self): lts), sets the default property values to use for elements of choroplethmapbox.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/graph_objs/_cone.py b/packages/python/plotly/plotly/graph_objs/_cone.py index db8b022ae4..76a2bf3d94 100644 --- a/packages/python/plotly/plotly/graph_objs/_cone.py +++ b/packages/python/plotly/plotly/graph_objs/_cone.py @@ -47,19 +47,25 @@ class Cone(_BaseTraceType): "textsrc", "type", "u", + "uhoverformat", "uid", "uirevision", "usrc", "v", + "vhoverformat", "visible", "vsrc", "w", + "whoverformat", "wsrc", "x", + "xhoverformat", "xsrc", "y", + "yhoverformat", "ysrc", "z", + "zhoverformat", "zsrc", } @@ -378,6 +384,12 @@ def colorbar(self): a.cone.colorbar.tickformatstopdefaults), sets the default property values to use for elements of cone.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1253,6 +1265,31 @@ def u(self): def u(self, val): self["u"] = val + # uhoverformat + # ------------ + @property + def uhoverformat(self): + """ + Sets the hover text formatting rule for `u` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By default the + values are formatted using generic number format. + + The 'uhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["uhoverformat"] + + @uhoverformat.setter + def uhoverformat(self, val): + self["uhoverformat"] = val + # uid # --- @property @@ -1348,6 +1385,31 @@ def v(self): def v(self, val): self["v"] = val + # vhoverformat + # ------------ + @property + def vhoverformat(self): + """ + Sets the hover text formatting rule for `v` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By default the + values are formatted using generic number format. + + The 'vhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["vhoverformat"] + + @vhoverformat.setter + def vhoverformat(self, val): + self["vhoverformat"] = val + # visible # ------- @property @@ -1411,6 +1473,31 @@ def w(self): def w(self, val): self["w"] = val + # whoverformat + # ------------ + @property + def whoverformat(self): + """ + Sets the hover text formatting rule for `w` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By default the + values are formatted using generic number format. + + The 'whoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["whoverformat"] + + @whoverformat.setter + def whoverformat(self, val): + self["whoverformat"] = val + # wsrc # ---- @property @@ -1452,6 +1539,32 @@ def x(self): def x(self, val): self["x"] = val + # xhoverformat + # ------------ + @property + def xhoverformat(self): + """ + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `xaxis.hoverformat`. + + The 'xhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["xhoverformat"] + + @xhoverformat.setter + def xhoverformat(self, val): + self["xhoverformat"] = val + # xsrc # ---- @property @@ -1493,6 +1606,32 @@ def y(self): def y(self, val): self["y"] = val + # yhoverformat + # ------------ + @property + def yhoverformat(self): + """ + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `yaxis.hoverformat`. + + The 'yhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["yhoverformat"] + + @yhoverformat.setter + def yhoverformat(self, val): + self["yhoverformat"] = val + # ysrc # ---- @property @@ -1534,6 +1673,32 @@ def z(self): def z(self, val): self["z"] = val + # zhoverformat + # ------------ + @property + def zhoverformat(self): + """ + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `zaxis.hoverformat`. + + The 'zhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["zhoverformat"] + + @zhoverformat.setter + def zhoverformat(self, val): + self["zhoverformat"] = val + # zsrc # ---- @property @@ -1756,6 +1921,13 @@ def _prop_descriptions(self): text . u Sets the x components of the vector field. + uhoverformat + Sets the hover text formatting rule for `u` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. uid Assign an id to this trace, Use this to provide object constancy between traces during animations and @@ -1783,6 +1955,13 @@ def _prop_descriptions(self): . v Sets the y components of the vector field. + vhoverformat + Sets the hover text formatting rule for `v` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. visible Determines whether or not this trace is visible. If "legendonly", the trace is not drawn, but can appear as @@ -1793,24 +1972,55 @@ def _prop_descriptions(self): . w Sets the z components of the vector field. + whoverformat + Sets the hover text formatting rule for `w` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. wsrc Sets the source reference on Chart Studio Cloud for w . x Sets the x coordinates of the vector field and of the displayed cones. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . y Sets the y coordinates of the vector field and of the displayed cones. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . z Sets the z coordinates of the vector field and of the displayed cones. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -1856,19 +2066,25 @@ def __init__( text=None, textsrc=None, u=None, + uhoverformat=None, uid=None, uirevision=None, usrc=None, v=None, + vhoverformat=None, visible=None, vsrc=None, w=None, + whoverformat=None, wsrc=None, x=None, + xhoverformat=None, xsrc=None, y=None, + yhoverformat=None, ysrc=None, z=None, + zhoverformat=None, zsrc=None, **kwargs ): @@ -2076,6 +2292,13 @@ def __init__( text . u Sets the x components of the vector field. + uhoverformat + Sets the hover text formatting rule for `u` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. uid Assign an id to this trace, Use this to provide object constancy between traces during animations and @@ -2103,6 +2326,13 @@ def __init__( . v Sets the y components of the vector field. + vhoverformat + Sets the hover text formatting rule for `v` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. visible Determines whether or not this trace is visible. If "legendonly", the trace is not drawn, but can appear as @@ -2113,24 +2343,55 @@ def __init__( . w Sets the z components of the vector field. + whoverformat + Sets the hover text formatting rule for `w` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. wsrc Sets the source reference on Chart Studio Cloud for w . x Sets the x coordinates of the vector field and of the displayed cones. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . y Sets the y coordinates of the vector field and of the displayed cones. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . z Sets the z coordinates of the vector field and of the displayed cones. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -2316,6 +2577,10 @@ def __init__( _v = u if u is not None else _v if _v is not None: self["u"] = _v + _v = arg.pop("uhoverformat", None) + _v = uhoverformat if uhoverformat is not None else _v + if _v is not None: + self["uhoverformat"] = _v _v = arg.pop("uid", None) _v = uid if uid is not None else _v if _v is not None: @@ -2332,6 +2597,10 @@ def __init__( _v = v if v is not None else _v if _v is not None: self["v"] = _v + _v = arg.pop("vhoverformat", None) + _v = vhoverformat if vhoverformat is not None else _v + if _v is not None: + self["vhoverformat"] = _v _v = arg.pop("visible", None) _v = visible if visible is not None else _v if _v is not None: @@ -2344,6 +2613,10 @@ def __init__( _v = w if w is not None else _v if _v is not None: self["w"] = _v + _v = arg.pop("whoverformat", None) + _v = whoverformat if whoverformat is not None else _v + if _v is not None: + self["whoverformat"] = _v _v = arg.pop("wsrc", None) _v = wsrc if wsrc is not None else _v if _v is not None: @@ -2352,6 +2625,10 @@ def __init__( _v = x if x is not None else _v if _v is not None: self["x"] = _v + _v = arg.pop("xhoverformat", None) + _v = xhoverformat if xhoverformat is not None else _v + if _v is not None: + self["xhoverformat"] = _v _v = arg.pop("xsrc", None) _v = xsrc if xsrc is not None else _v if _v is not None: @@ -2360,6 +2637,10 @@ def __init__( _v = y if y is not None else _v if _v is not None: self["y"] = _v + _v = arg.pop("yhoverformat", None) + _v = yhoverformat if yhoverformat is not None else _v + if _v is not None: + self["yhoverformat"] = _v _v = arg.pop("ysrc", None) _v = ysrc if ysrc is not None else _v if _v is not None: @@ -2368,6 +2649,10 @@ def __init__( _v = z if z is not None else _v if _v is not None: self["z"] = _v + _v = arg.pop("zhoverformat", None) + _v = zhoverformat if zhoverformat is not None else _v + if _v is not None: + self["zhoverformat"] = _v _v = arg.pop("zsrc", None) _v = zsrc if zsrc is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/_contour.py b/packages/python/plotly/plotly/graph_objs/_contour.py index eb8bbf47ba..ad3ac690d2 100644 --- a/packages/python/plotly/plotly/graph_objs/_contour.py +++ b/packages/python/plotly/plotly/graph_objs/_contour.py @@ -53,6 +53,7 @@ class Contour(_BaseTraceType): "x0", "xaxis", "xcalendar", + "xhoverformat", "xperiod", "xperiod0", "xperiodalignment", @@ -62,6 +63,7 @@ class Contour(_BaseTraceType): "y0", "yaxis", "ycalendar", + "yhoverformat", "yperiod", "yperiod0", "yperiodalignment", @@ -301,6 +303,12 @@ def colorbar(self): a.contour.colorbar.tickformatstopdefaults), sets the default property values to use for elements of contour.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1474,6 +1482,32 @@ def xcalendar(self): def xcalendar(self, val): self["xcalendar"] = val + # xhoverformat + # ------------ + @property + def xhoverformat(self): + """ + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `xaxis.hoverformat`. + + The 'xhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["xhoverformat"] + + @xhoverformat.setter + def xhoverformat(self, val): + self["xhoverformat"] = val + # xperiod # ------- @property @@ -1675,6 +1709,32 @@ def ycalendar(self): def ycalendar(self, val): self["ycalendar"] = val + # yhoverformat + # ------------ + @property + def yhoverformat(self): + """ + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `yaxis.hoverformat`. + + The 'yhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["yhoverformat"] + + @yhoverformat.setter + def yhoverformat(self, val): + self["yhoverformat"] = val + # yperiod # ------- @property @@ -1834,10 +1894,11 @@ def zauto(self, val): @property def zhoverformat(self): """ - Sets the hover text formatting rule using d3 formatting mini- - languages which are very similar to those in Python. See: - https://github.com/d3/d3-3.x-api- - reference/blob/master/Formatting.md#d3_format + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By default the + values are formatted using generic number format. The 'zhoverformat' property is a string and must be specified as: - A string @@ -2153,6 +2214,14 @@ def _prop_descriptions(self): coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -2191,6 +2260,14 @@ def _prop_descriptions(self): coordinates refer to `layout.yaxis2`, and so on. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -2224,10 +2301,12 @@ def _prop_descriptions(self): bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user. zhoverformat - Sets the hover text formatting rule using d3 formatting - mini-languages which are very similar to those in - Python. See: https://github.com/d3/d3-3.x-api- - reference/blob/master/Formatting.md#d3_format + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. zmax Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must @@ -2292,6 +2371,7 @@ def __init__( x0=None, xaxis=None, xcalendar=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, @@ -2301,6 +2381,7 @@ def __init__( y0=None, yaxis=None, ycalendar=None, + yhoverformat=None, yperiod=None, yperiod0=None, yperiodalignment=None, @@ -2536,6 +2617,14 @@ def __init__( coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -2574,6 +2663,14 @@ def __init__( coordinates refer to `layout.yaxis2`, and so on. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -2607,10 +2704,12 @@ def __init__( bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user. zhoverformat - Sets the hover text formatting rule using d3 formatting - mini-languages which are very similar to those in - Python. See: https://github.com/d3/d3-3.x-api- - reference/blob/master/Formatting.md#d3_format + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. zmax Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must @@ -2833,6 +2932,10 @@ def __init__( _v = xcalendar if xcalendar is not None else _v if _v is not None: self["xcalendar"] = _v + _v = arg.pop("xhoverformat", None) + _v = xhoverformat if xhoverformat is not None else _v + if _v is not None: + self["xhoverformat"] = _v _v = arg.pop("xperiod", None) _v = xperiod if xperiod is not None else _v if _v is not None: @@ -2869,6 +2972,10 @@ def __init__( _v = ycalendar if ycalendar is not None else _v if _v is not None: self["ycalendar"] = _v + _v = arg.pop("yhoverformat", None) + _v = yhoverformat if yhoverformat is not None else _v + if _v is not None: + self["yhoverformat"] = _v _v = arg.pop("yperiod", None) _v = yperiod if yperiod is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/_contourcarpet.py b/packages/python/plotly/plotly/graph_objs/_contourcarpet.py index 87eaba4d64..202de594d0 100644 --- a/packages/python/plotly/plotly/graph_objs/_contourcarpet.py +++ b/packages/python/plotly/plotly/graph_objs/_contourcarpet.py @@ -479,6 +479,12 @@ def colorbar(self): ), sets the default property values to use for elements of contourcarpet.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/graph_objs/_densitymapbox.py b/packages/python/plotly/plotly/graph_objs/_densitymapbox.py index c4588063a9..ae20ef2c57 100644 --- a/packages/python/plotly/plotly/graph_objs/_densitymapbox.py +++ b/packages/python/plotly/plotly/graph_objs/_densitymapbox.py @@ -282,6 +282,12 @@ def colorbar(self): ), sets the default property values to use for elements of densitymapbox.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/graph_objs/_figure.py b/packages/python/plotly/plotly/graph_objs/_figure.py index f4a3b94317..848890dae0 100644 --- a/packages/python/plotly/plotly/graph_objs/_figure.py +++ b/packages/python/plotly/plotly/graph_objs/_figure.py @@ -19,21 +19,20 @@ def __init__( (e.g. Scatter(...), Bar(...), etc.) - A list or tuple of dicts of string/value properties where: - The 'type' property specifies the trace type - One of: ['area', 'bar', 'barpolar', 'box', - 'candlestick', 'carpet', 'choropleth', - 'choroplethmapbox', 'cone', 'contour', - 'contourcarpet', 'densitymapbox', 'funnel', - 'funnelarea', 'heatmap', 'heatmapgl', - 'histogram', 'histogram2d', - 'histogram2dcontour', 'image', 'indicator', - 'isosurface', 'mesh3d', 'ohlc', 'parcats', - 'parcoords', 'pie', 'pointcloud', 'sankey', - 'scatter', 'scatter3d', 'scattercarpet', - 'scattergeo', 'scattergl', 'scattermapbox', - 'scatterpolar', 'scatterpolargl', - 'scatterternary', 'splom', 'streamtube', - 'sunburst', 'surface', 'table', 'treemap', - 'violin', 'volume', 'waterfall'] + One of: ['bar', 'barpolar', 'box', 'candlestick', + 'carpet', 'choropleth', 'choroplethmapbox', + 'cone', 'contour', 'contourcarpet', + 'densitymapbox', 'funnel', 'funnelarea', + 'heatmap', 'heatmapgl', 'histogram', + 'histogram2d', 'histogram2dcontour', 'image', + 'indicator', 'isosurface', 'mesh3d', 'ohlc', + 'parcats', 'parcoords', 'pie', 'pointcloud', + 'sankey', 'scatter', 'scatter3d', + 'scattercarpet', 'scattergeo', 'scattergl', + 'scattermapbox', 'scatterpolar', + 'scatterpolargl', 'scatterternary', 'splom', + 'streamtube', 'sunburst', 'surface', 'table', + 'treemap', 'violin', 'volume', 'waterfall'] - All remaining properties are passed to the constructor of the specified trace type @@ -52,9 +51,6 @@ def __init__( activeshape :class:`plotly.graph_objects.layout.Activeshape ` instance or dict with compatible properties - angularaxis - :class:`plotly.graph_objects.layout.AngularAxis - ` instance or dict with compatible properties annotations A tuple of :class:`plotly.graph_objects.layout.Annotation` @@ -165,11 +161,6 @@ def __init__( being treated as immutable, thus any data array with a different identity from its predecessor contains new data. - direction - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Sets the direction - corresponding to positive angles in legacy - polar charts. dragmode Determines the mode of drag interactions. "select" and "lasso" apply only to scatter @@ -301,13 +292,7 @@ def __init__( hoverlabel will appear per trace. In this mode, spikelines are enabled by default perpendicular to the specified axis. If false, hover - interactions are disabled. If `clickmode` - includes the "select" flag, `hovermode` - defaults to "closest". If `clickmode` lacks the - "select" flag, it defaults to "x" or "y" - (depending on the trace's `orientation` value) - for plots based on cartesian coordinates. For - anything else the default value is "closest". + interactions are disabled. images A tuple of :class:`plotly.graph_objects.layout.Image` @@ -347,11 +332,6 @@ def __init__( newshape :class:`plotly.graph_objects.layout.Newshape` instance or dict with compatible properties - orientation - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Rotates the entire - polar by the given angle in legacy polar - charts. paper_bgcolor Sets the background color of the paper where the graph is drawn. @@ -367,9 +347,6 @@ def __init__( polar :class:`plotly.graph_objects.layout.Polar` instance or dict with compatible properties - radialaxis - :class:`plotly.graph_objects.layout.RadialAxis` - instance or dict with compatible properties scene :class:`plotly.graph_objects.layout.Scene` instance or dict with compatible properties @@ -595,184 +572,6 @@ def __init__( """ super(Figure, self).__init__(data, layout, frames, skip_invalid, **kwargs) - def add_area( - self, - customdata=None, - customdatasrc=None, - hoverinfo=None, - hoverinfosrc=None, - hoverlabel=None, - ids=None, - idssrc=None, - legendgroup=None, - marker=None, - meta=None, - metasrc=None, - name=None, - opacity=None, - r=None, - rsrc=None, - showlegend=None, - stream=None, - t=None, - tsrc=None, - uid=None, - uirevision=None, - visible=None, - row=None, - col=None, - **kwargs - ): - """ - Add a new Area trace - - Parameters - ---------- - customdata - Assigns extra data each datum. This may be useful when - listening to hover, click and selection events. Note - that, "scatter" traces also appends customdata items in - the markers DOM elements - customdatasrc - Sets the source reference on Chart Studio Cloud for - customdata . - hoverinfo - Determines which trace information appear on hover. If - `none` or `skip` are set, no information is displayed - upon hovering. But, if `none` is set, click and hover - events are still fired. - hoverinfosrc - Sets the source reference on Chart Studio Cloud for - hoverinfo . - hoverlabel - :class:`plotly.graph_objects.area.Hoverlabel` instance - or dict with compatible properties - ids - Assigns id labels to each datum. These ids for object - constancy of data points during animation. Should be an - array of strings, not numbers or any other type. - idssrc - Sets the source reference on Chart Studio Cloud for - ids . - legendgroup - Sets the legend group for this trace. Traces part of - the same legend group hide/show at the same time when - toggling legend items. - marker - :class:`plotly.graph_objects.area.Marker` instance or - dict with compatible properties - meta - Assigns extra meta information associated with this - trace that can be used in various text attributes. - Attributes such as trace `name`, graph, axis and - colorbar `title.text`, annotation `text` - `rangeselector`, `updatemenues` and `sliders` `label` - text all support `meta`. To access the trace `meta` - values in an attribute in the same trace, simply use - `%{meta[i]}` where `i` is the index or key of the - `meta` item in question. To access trace `meta` in - layout attributes, use `%{data[n[.meta[i]}` where `i` - is the index or key of the `meta` and `n` is the trace - index. - metasrc - Sets the source reference on Chart Studio Cloud for - meta . - name - Sets the trace name. The trace name appear as the - legend item and on hover. - opacity - Sets the opacity of the trace. - r - Area traces are deprecated! Please switch to the - "barpolar" trace type. Sets the radial coordinates for - legacy polar chart only. - rsrc - Sets the source reference on Chart Studio Cloud for r - . - showlegend - Determines whether or not an item corresponding to this - trace is shown in the legend. - stream - :class:`plotly.graph_objects.area.Stream` instance or - dict with compatible properties - t - Area traces are deprecated! Please switch to the - "barpolar" trace type. Sets the angular coordinates for - legacy polar chart only. - tsrc - Sets the source reference on Chart Studio Cloud for t - . - uid - Assign an id to this trace, Use this to provide object - constancy between traces during animations and - transitions. - uirevision - Controls persistence of some user-driven changes to the - trace: `constraintrange` in `parcoords` traces, as well - as some `editable: true` modifications such as `name` - and `colorbar.title`. Defaults to `layout.uirevision`. - Note that other user-driven trace attribute changes are - controlled by `layout` attributes: `trace.visible` is - controlled by `layout.legend.uirevision`, - `selectedpoints` is controlled by - `layout.selectionrevision`, and `colorbar.(x|y)` - (accessible with `config: {editable: true}`) is - controlled by `layout.editrevision`. Trace changes are - tracked by `uid`, which only falls back on trace index - if no `uid` is provided. So if your app can add/remove - traces before the end of the `data` array, such that - the same trace has a different index, you can still - preserve user-driven changes if you give each trace a - `uid` that stays with it as it moves. - visible - Determines whether or not this trace is visible. If - "legendonly", the trace is not drawn, but can appear as - a legend item (provided that the legend itself is - visible). - row : 'all', int or None (default) - Subplot row index (starting from 1) for the trace to be - added. Only valid if figure was created using - `plotly.tools.make_subplots`.If 'all', addresses all - rows in the specified column(s). - col : 'all', int or None (default) - Subplot col index (starting from 1) for the trace to be - added. Only valid if figure was created using - `plotly.tools.make_subplots`.If 'all', addresses all - columns in the specified row(s). - - Returns - ------- - Figure - """ - from plotly.graph_objs import Area - - new_trace = Area( - customdata=customdata, - customdatasrc=customdatasrc, - hoverinfo=hoverinfo, - hoverinfosrc=hoverinfosrc, - hoverlabel=hoverlabel, - ids=ids, - idssrc=idssrc, - legendgroup=legendgroup, - marker=marker, - meta=meta, - metasrc=metasrc, - name=name, - opacity=opacity, - r=r, - rsrc=rsrc, - showlegend=showlegend, - stream=stream, - t=t, - tsrc=tsrc, - uid=uid, - uirevision=uirevision, - visible=visible, - **kwargs - ) - return self.add_trace(new_trace, row=row, col=col) - def add_bar( self, alignmentgroup=None, @@ -808,13 +607,10 @@ def add_bar( opacity=None, orientation=None, outsidetextfont=None, - r=None, - rsrc=None, selected=None, selectedpoints=None, showlegend=None, stream=None, - t=None, text=None, textangle=None, textfont=None, @@ -823,7 +619,6 @@ def add_bar( textsrc=None, texttemplate=None, texttemplatesrc=None, - tsrc=None, uid=None, uirevision=None, unselected=None, @@ -834,6 +629,7 @@ def add_bar( x0=None, xaxis=None, xcalendar=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, @@ -842,6 +638,7 @@ def add_bar( y0=None, yaxis=None, ycalendar=None, + yhoverformat=None, yperiod=None, yperiod0=None, yperiodalignment=None, @@ -1005,13 +802,6 @@ def add_bar( (horizontal). outsidetextfont Sets the font used for `text` lying outside the bar. - r - r coordinates in scatter traces are deprecated!Please - switch to the "scatterpolar" trace type.Sets the radial - coordinatesfor legacy polar chart only. - rsrc - Sets the source reference on Chart Studio Cloud for r - . selected :class:`plotly.graph_objects.bar.Selected` instance or dict with compatible properties @@ -1028,10 +818,6 @@ def add_bar( stream :class:`plotly.graph_objects.bar.Stream` instance or dict with compatible properties - t - t coordinates in scatter traces are deprecated!Please - switch to the "scatterpolar" trace type.Sets the - angular coordinatesfor legacy polar chart only. text Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the @@ -1056,7 +842,8 @@ def add_bar( there is another bar stacked on this one, then the text gets pushed inside. "auto" tries to position `text` inside the bar, but if the bar is too small and no bar - is stacked on this one the text is moved outside. + is stacked on this one the text is moved outside. If + "none", no text appears. textpositionsrc Sets the source reference on Chart Studio Cloud for textposition . @@ -1082,9 +869,6 @@ def add_bar( texttemplatesrc Sets the source reference on Chart Studio Cloud for texttemplate . - tsrc - Sets the source reference on Chart Studio Cloud for t - . uid Assign an id to this trace, Use this to provide object constancy between traces during animations and @@ -1133,6 +917,14 @@ def add_bar( coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -1165,6 +957,14 @@ def add_bar( coordinates refer to `layout.yaxis2`, and so on. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -1245,13 +1045,10 @@ def add_bar( opacity=opacity, orientation=orientation, outsidetextfont=outsidetextfont, - r=r, - rsrc=rsrc, selected=selected, selectedpoints=selectedpoints, showlegend=showlegend, stream=stream, - t=t, text=text, textangle=textangle, textfont=textfont, @@ -1260,7 +1057,6 @@ def add_bar( textsrc=textsrc, texttemplate=texttemplate, texttemplatesrc=texttemplatesrc, - tsrc=tsrc, uid=uid, uirevision=uirevision, unselected=unselected, @@ -1271,6 +1067,7 @@ def add_bar( x0=x0, xaxis=xaxis, xcalendar=xcalendar, + xhoverformat=xhoverformat, xperiod=xperiod, xperiod0=xperiod0, xperiodalignment=xperiodalignment, @@ -1279,6 +1076,7 @@ def add_bar( y0=y0, yaxis=yaxis, ycalendar=ycalendar, + yhoverformat=yhoverformat, yperiod=yperiod, yperiod0=yperiod0, yperiodalignment=yperiodalignment, @@ -1663,6 +1461,7 @@ def add_box( x0=None, xaxis=None, xcalendar=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, @@ -1671,6 +1470,7 @@ def add_box( y0=None, yaxis=None, ycalendar=None, + yhoverformat=None, yperiod=None, yperiod0=None, yperiodalignment=None, @@ -2029,6 +1829,14 @@ def add_box( coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -2062,6 +1870,14 @@ def add_box( coordinates refer to `layout.yaxis2`, and so on. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -2173,6 +1989,7 @@ def add_box( x0=x0, xaxis=xaxis, xcalendar=xcalendar, + xhoverformat=xhoverformat, xperiod=xperiod, xperiod0=xperiod0, xperiodalignment=xperiodalignment, @@ -2181,6 +1998,7 @@ def add_box( y0=y0, yaxis=yaxis, ycalendar=ycalendar, + yhoverformat=yhoverformat, yperiod=yperiod, yperiod0=yperiod0, yperiodalignment=yperiodalignment, @@ -2228,11 +2046,13 @@ def add_candlestick( x=None, xaxis=None, xcalendar=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, xsrc=None, yaxis=None, + yhoverformat=None, row=None, col=None, secondary_y=None, @@ -2399,6 +2219,14 @@ def add_candlestick( coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -2423,6 +2251,14 @@ def add_candlestick( a 2D cartesian y axis. If "y" (the default value), the y coordinates refer to `layout.yaxis`. If "y2", the y coordinates refer to `layout.yaxis2`, and so on. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. row : 'all', int or None (default) Subplot row index (starting from 1) for the trace to be added. Only valid if figure was created using @@ -2488,11 +2324,13 @@ def add_candlestick( x=x, xaxis=xaxis, xcalendar=xcalendar, + xhoverformat=xhoverformat, xperiod=xperiod, xperiod0=xperiod0, xperiodalignment=xperiodalignment, xsrc=xsrc, yaxis=yaxis, + yhoverformat=yhoverformat, **kwargs ) return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y) @@ -3478,19 +3316,25 @@ def add_cone( text=None, textsrc=None, u=None, + uhoverformat=None, uid=None, uirevision=None, usrc=None, v=None, + vhoverformat=None, visible=None, vsrc=None, w=None, + whoverformat=None, wsrc=None, x=None, + xhoverformat=None, xsrc=None, y=None, + yhoverformat=None, ysrc=None, z=None, + zhoverformat=None, zsrc=None, row=None, col=None, @@ -3697,6 +3541,13 @@ def add_cone( text . u Sets the x components of the vector field. + uhoverformat + Sets the hover text formatting rule for `u` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. uid Assign an id to this trace, Use this to provide object constancy between traces during animations and @@ -3724,6 +3575,13 @@ def add_cone( . v Sets the y components of the vector field. + vhoverformat + Sets the hover text formatting rule for `v` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. visible Determines whether or not this trace is visible. If "legendonly", the trace is not drawn, but can appear as @@ -3734,24 +3592,55 @@ def add_cone( . w Sets the z components of the vector field. + whoverformat + Sets the hover text formatting rule for `w` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. wsrc Sets the source reference on Chart Studio Cloud for w . x Sets the x coordinates of the vector field and of the displayed cones. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . y Sets the y coordinates of the vector field and of the displayed cones. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . z Sets the z coordinates of the vector field and of the displayed cones. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -3810,19 +3699,25 @@ def add_cone( text=text, textsrc=textsrc, u=u, + uhoverformat=uhoverformat, uid=uid, uirevision=uirevision, usrc=usrc, v=v, + vhoverformat=vhoverformat, visible=visible, vsrc=vsrc, w=w, + whoverformat=whoverformat, wsrc=wsrc, x=x, + xhoverformat=xhoverformat, xsrc=xsrc, y=y, + yhoverformat=yhoverformat, ysrc=ysrc, z=z, + zhoverformat=zhoverformat, zsrc=zsrc, **kwargs ) @@ -3873,6 +3768,7 @@ def add_contour( x0=None, xaxis=None, xcalendar=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, @@ -3882,6 +3778,7 @@ def add_contour( y0=None, yaxis=None, ycalendar=None, + yhoverformat=None, yperiod=None, yperiod0=None, yperiodalignment=None, @@ -4117,6 +4014,14 @@ def add_contour( coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -4155,6 +4060,14 @@ def add_contour( coordinates refer to `layout.yaxis2`, and so on. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -4188,10 +4101,12 @@ def add_contour( bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user. zhoverformat - Sets the hover text formatting rule using d3 formatting - mini-languages which are very similar to those in - Python. See: https://github.com/d3/d3-3.x-api- - reference/blob/master/Formatting.md#d3_format + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. zmax Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must @@ -4279,6 +4194,7 @@ def add_contour( x0=x0, xaxis=xaxis, xcalendar=xcalendar, + xhoverformat=xhoverformat, xperiod=xperiod, xperiod0=xperiod0, xperiodalignment=xperiodalignment, @@ -4288,6 +4204,7 @@ def add_contour( y0=y0, yaxis=yaxis, ycalendar=ycalendar, + yhoverformat=yhoverformat, yperiod=yperiod, yperiod0=yperiod0, yperiodalignment=yperiodalignment, @@ -5055,6 +4972,7 @@ def add_funnel( x=None, x0=None, xaxis=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, @@ -5062,6 +4980,7 @@ def add_funnel( y=None, y0=None, yaxis=None, + yhoverformat=None, yperiod=None, yperiod0=None, yperiodalignment=None, @@ -5259,7 +5178,8 @@ def add_funnel( there is another bar stacked on this one, then the text gets pushed inside. "auto" tries to position `text` inside the bar, but if the bar is too small and no bar - is stacked on this one the text is moved outside. + is stacked on this one the text is moved outside. If + "none", no text appears. textpositionsrc Sets the source reference on Chart Studio Cloud for textposition . @@ -5326,6 +5246,14 @@ def add_funnel( a 2D cartesian x axis. If "x" (the default value), the x coordinates refer to `layout.xaxis`. If "x2", the x coordinates refer to `layout.xaxis2`, and so on. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -5356,6 +5284,14 @@ def add_funnel( a 2D cartesian y axis. If "y" (the default value), the y coordinates refer to `layout.yaxis`. If "y2", the y coordinates refer to `layout.yaxis2`, and so on. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -5451,6 +5387,7 @@ def add_funnel( x=x, x0=x0, xaxis=xaxis, + xhoverformat=xhoverformat, xperiod=xperiod, xperiod0=xperiod0, xperiodalignment=xperiodalignment, @@ -5458,6 +5395,7 @@ def add_funnel( y=y, y0=y0, yaxis=yaxis, + yhoverformat=yhoverformat, yperiod=yperiod, yperiod0=yperiod0, yperiodalignment=yperiodalignment, @@ -5830,6 +5768,7 @@ def add_heatmap( xaxis=None, xcalendar=None, xgap=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, @@ -5840,6 +5779,7 @@ def add_heatmap( yaxis=None, ycalendar=None, ygap=None, + yhoverformat=None, yperiod=None, yperiod0=None, yperiodalignment=None, @@ -6066,6 +6006,14 @@ def add_heatmap( Sets the calendar system to use with `x` date data. xgap Sets the horizontal gap (in pixels) between bricks. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -6106,6 +6054,14 @@ def add_heatmap( Sets the calendar system to use with `y` date data. ygap Sets the vertical gap (in pixels) between bricks. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -6139,10 +6095,12 @@ def add_heatmap( bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user. zhoverformat - Sets the hover text formatting rule using d3 formatting - mini-languages which are very similar to those in - Python. See: https://github.com/d3/d3-3.x-api- - reference/blob/master/Formatting.md#d3_format + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. zmax Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must @@ -6228,6 +6186,7 @@ def add_heatmap( xaxis=xaxis, xcalendar=xcalendar, xgap=xgap, + xhoverformat=xhoverformat, xperiod=xperiod, xperiod0=xperiod0, xperiodalignment=xperiodalignment, @@ -6238,6 +6197,7 @@ def add_heatmap( yaxis=yaxis, ycalendar=ycalendar, ygap=ygap, + yhoverformat=yhoverformat, yperiod=yperiod, yperiod0=yperiod0, yperiodalignment=yperiodalignment, @@ -6308,7 +6268,11 @@ def add_heatmapgl( """ Add a new Heatmapgl trace - WebGL version of the heatmap trace type. + "heatmapgl" trace is deprecated! Please consider switching to + the "heatmap" or "image" trace types. Alternatively you could + contribute/sponsor rewriting this trace type based on cartesian + features and using regl framework. WebGL version of the heatmap + trace type. Parameters ---------- @@ -6622,11 +6586,13 @@ def add_histogram( xaxis=None, xbins=None, xcalendar=None, + xhoverformat=None, xsrc=None, y=None, yaxis=None, ybins=None, ycalendar=None, + yhoverformat=None, ysrc=None, row=None, col=None, @@ -6875,6 +6841,14 @@ def add_histogram( or dict with compatible properties xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -6890,6 +6864,14 @@ def add_histogram( or dict with compatible properties ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -6965,11 +6947,13 @@ def add_histogram( xaxis=xaxis, xbins=xbins, xcalendar=xcalendar, + xhoverformat=xhoverformat, xsrc=xsrc, y=y, yaxis=yaxis, ybins=ybins, ycalendar=ycalendar, + yhoverformat=yhoverformat, ysrc=ysrc, **kwargs ) @@ -7016,6 +7000,7 @@ def add_histogram2d( xbins=None, xcalendar=None, xgap=None, + xhoverformat=None, xsrc=None, y=None, yaxis=None, @@ -7023,6 +7008,7 @@ def add_histogram2d( ybins=None, ycalendar=None, ygap=None, + yhoverformat=None, ysrc=None, z=None, zauto=None, @@ -7273,6 +7259,14 @@ def add_histogram2d( Sets the calendar system to use with `x` date data. xgap Sets the horizontal gap (in pixels) between bricks. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -7297,6 +7291,14 @@ def add_histogram2d( Sets the calendar system to use with `y` date data. ygap Sets the vertical gap (in pixels) between bricks. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -7308,10 +7310,12 @@ def add_histogram2d( bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user. zhoverformat - Sets the hover text formatting rule using d3 formatting - mini-languages which are very similar to those in - Python. See: https://github.com/d3/d3-3.x-api- - reference/blob/master/Formatting.md#d3_format + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. zmax Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must @@ -7397,6 +7401,7 @@ def add_histogram2d( xbins=xbins, xcalendar=xcalendar, xgap=xgap, + xhoverformat=xhoverformat, xsrc=xsrc, y=y, yaxis=yaxis, @@ -7404,6 +7409,7 @@ def add_histogram2d( ybins=ybins, ycalendar=ycalendar, ygap=ygap, + yhoverformat=yhoverformat, ysrc=ysrc, z=z, zauto=zauto, @@ -7461,12 +7467,14 @@ def add_histogram2dcontour( xbingroup=None, xbins=None, xcalendar=None, + xhoverformat=None, xsrc=None, y=None, yaxis=None, ybingroup=None, ybins=None, ycalendar=None, + yhoverformat=None, ysrc=None, z=None, zauto=None, @@ -7731,6 +7739,14 @@ def add_histogram2dcontour( instance or dict with compatible properties xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -7753,6 +7769,14 @@ def add_histogram2dcontour( instance or dict with compatible properties ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -7764,10 +7788,12 @@ def add_histogram2dcontour( bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user. zhoverformat - Sets the hover text formatting rule using d3 formatting - mini-languages which are very similar to those in - Python. See: https://github.com/d3/d3-3.x-api- - reference/blob/master/Formatting.md#d3_format + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. zmax Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must @@ -7854,12 +7880,14 @@ def add_histogram2dcontour( xbingroup=xbingroup, xbins=xbins, xcalendar=xcalendar, + xhoverformat=xhoverformat, xsrc=xsrc, y=y, yaxis=yaxis, ybingroup=ybingroup, ybins=ybins, ycalendar=ycalendar, + yhoverformat=yhoverformat, ysrc=ysrc, z=z, zauto=zauto, @@ -7906,6 +7934,7 @@ def add_image( z=None, zmax=None, zmin=None, + zsmooth=None, zsrc=None, row=None, col=None, @@ -8084,6 +8113,10 @@ def add_image( the `rgba256` colormodel, it is [0, 0, 0, 0]. For the `hsl` colormodel, it is [0, 0, 0]. For the `hsla` colormodel, it is [0, 0, 0, 0]. + zsmooth + Picks a smoothing algorithm used to smooth `z` data. + This only applies for image traces that use the + `source` attribute. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -8147,6 +8180,7 @@ def add_image( z=z, zmax=zmax, zmin=zmin, + zsmooth=zsmooth, zsrc=zsrc, **kwargs ) @@ -8367,13 +8401,17 @@ def add_isosurface( uid=None, uirevision=None, value=None, + valuehoverformat=None, valuesrc=None, visible=None, x=None, + xhoverformat=None, xsrc=None, y=None, + yhoverformat=None, ysrc=None, z=None, + zhoverformat=None, zsrc=None, row=None, col=None, @@ -8605,6 +8643,13 @@ def add_isosurface( `uid` that stays with it as it moves. value Sets the 4th dimension (value) of the vertices. + valuehoverformat + Sets the hover text formatting rule for `value` using + d3 formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. valuesrc Sets the source reference on Chart Studio Cloud for value . @@ -8615,16 +8660,40 @@ def add_isosurface( visible). x Sets the X coordinates of the vertices on X axis. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . y Sets the Y coordinates of the vertices on Y axis. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . z Sets the Z coordinates of the vertices on Z axis. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -8690,13 +8759,17 @@ def add_isosurface( uid=uid, uirevision=uirevision, value=value, + valuehoverformat=valuehoverformat, valuesrc=valuesrc, visible=visible, x=x, + xhoverformat=xhoverformat, xsrc=xsrc, y=y, + yhoverformat=yhoverformat, ysrc=ysrc, z=z, + zhoverformat=zhoverformat, zsrc=zsrc, **kwargs ) @@ -8760,12 +8833,15 @@ def add_mesh3d( visible=None, x=None, xcalendar=None, + xhoverformat=None, xsrc=None, y=None, ycalendar=None, + yhoverformat=None, ysrc=None, z=None, zcalendar=None, + zhoverformat=None, zsrc=None, row=None, col=None, @@ -9075,6 +9151,14 @@ def add_mesh3d( and Z coordinates of the nth vertex. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -9084,6 +9168,14 @@ def add_mesh3d( and Z coordinates of the nth vertex. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -9093,6 +9185,14 @@ def add_mesh3d( and Z coordinates of the nth vertex. zcalendar Sets the calendar system to use with `z` date data. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -9170,12 +9270,15 @@ def add_mesh3d( visible=visible, x=x, xcalendar=xcalendar, + xhoverformat=xhoverformat, xsrc=xsrc, y=y, ycalendar=ycalendar, + yhoverformat=yhoverformat, ysrc=ysrc, z=z, zcalendar=zcalendar, + zhoverformat=zhoverformat, zsrc=zsrc, **kwargs ) @@ -9220,11 +9323,13 @@ def add_ohlc( x=None, xaxis=None, xcalendar=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, xsrc=None, yaxis=None, + yhoverformat=None, row=None, col=None, secondary_y=None, @@ -9390,6 +9495,14 @@ def add_ohlc( coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -9414,6 +9527,14 @@ def add_ohlc( a 2D cartesian y axis. If "y" (the default value), the y coordinates refer to `layout.yaxis`. If "y2", the y coordinates refer to `layout.yaxis2`, and so on. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. row : 'all', int or None (default) Subplot row index (starting from 1) for the trace to be added. Only valid if figure was created using @@ -9479,11 +9600,13 @@ def add_ohlc( x=x, xaxis=xaxis, xcalendar=xcalendar, + xhoverformat=xhoverformat, xperiod=xperiod, xperiod0=xperiod0, xperiodalignment=xperiodalignment, xsrc=xsrc, yaxis=yaxis, + yhoverformat=yhoverformat, **kwargs ) return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y) @@ -10287,8 +10410,9 @@ def add_pointcloud( """ Add a new Pointcloud trace - The data visualized as a point cloud set in `x` and `y` using - the WebGl plotting engine. + "pointcloud" trace is deprecated! Please consider switching to + the "scattergl" trace type. The data visualized as a point + cloud set in `x` and `y` using the WebGl plotting engine. Parameters ---------- @@ -10735,15 +10859,12 @@ def add_scatter( name=None, opacity=None, orientation=None, - r=None, - rsrc=None, selected=None, selectedpoints=None, showlegend=None, stackgaps=None, stackgroup=None, stream=None, - t=None, text=None, textfont=None, textposition=None, @@ -10751,7 +10872,6 @@ def add_scatter( textsrc=None, texttemplate=None, texttemplatesrc=None, - tsrc=None, uid=None, uirevision=None, unselected=None, @@ -10760,6 +10880,7 @@ def add_scatter( x0=None, xaxis=None, xcalendar=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, @@ -10768,6 +10889,7 @@ def add_scatter( y0=None, yaxis=None, ycalendar=None, + yhoverformat=None, yperiod=None, yperiod0=None, yperiodalignment=None, @@ -10958,13 +11080,6 @@ def add_scatter( if it is `false`. Sets the stacking direction. With "v" ("h"), the y (x) values of subsequent traces are added. Also affects the default value of `fill`. - r - r coordinates in scatter traces are deprecated!Please - switch to the "scatterpolar" trace type.Sets the radial - coordinatesfor legacy polar chart only. - rsrc - Sets the source reference on Chart Studio Cloud for r - . selected :class:`plotly.graph_objects.scatter.Selected` instance or dict with compatible properties @@ -11005,10 +11120,6 @@ def add_scatter( stream :class:`plotly.graph_objects.scatter.Stream` instance or dict with compatible properties - t - t coordinates in scatter traces are deprecated!Please - switch to the "scatterpolar" trace type.Sets the - angular coordinatesfor legacy polar chart only. text Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the @@ -11046,9 +11157,6 @@ def add_scatter( texttemplatesrc Sets the source reference on Chart Studio Cloud for texttemplate . - tsrc - Sets the source reference on Chart Studio Cloud for t - . uid Assign an id to this trace, Use this to provide object constancy between traces during animations and @@ -11092,6 +11200,14 @@ def add_scatter( coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -11124,6 +11240,14 @@ def add_scatter( coordinates refer to `layout.yaxis2`, and so on. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -11201,15 +11325,12 @@ def add_scatter( name=name, opacity=opacity, orientation=orientation, - r=r, - rsrc=rsrc, selected=selected, selectedpoints=selectedpoints, showlegend=showlegend, stackgaps=stackgaps, stackgroup=stackgroup, stream=stream, - t=t, text=text, textfont=textfont, textposition=textposition, @@ -11217,7 +11338,6 @@ def add_scatter( textsrc=textsrc, texttemplate=texttemplate, texttemplatesrc=texttemplatesrc, - tsrc=tsrc, uid=uid, uirevision=uirevision, unselected=unselected, @@ -11226,6 +11346,7 @@ def add_scatter( x0=x0, xaxis=xaxis, xcalendar=xcalendar, + xhoverformat=xhoverformat, xperiod=xperiod, xperiod0=xperiod0, xperiodalignment=xperiodalignment, @@ -11234,6 +11355,7 @@ def add_scatter( y0=y0, yaxis=yaxis, ycalendar=ycalendar, + yhoverformat=yhoverformat, yperiod=yperiod, yperiod0=yperiod0, yperiodalignment=yperiodalignment, @@ -11285,12 +11407,15 @@ def add_scatter3d( visible=None, x=None, xcalendar=None, + xhoverformat=None, xsrc=None, y=None, ycalendar=None, + yhoverformat=None, ysrc=None, z=None, zcalendar=None, + zhoverformat=None, zsrc=None, row=None, col=None, @@ -11509,6 +11634,14 @@ def add_scatter3d( Sets the x coordinates. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -11516,6 +11649,14 @@ def add_scatter3d( Sets the y coordinates. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -11523,6 +11664,14 @@ def add_scatter3d( Sets the z coordinates. zcalendar Sets the calendar system to use with `z` date data. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -11585,12 +11734,15 @@ def add_scatter3d( visible=visible, x=x, xcalendar=xcalendar, + xhoverformat=xhoverformat, xsrc=xsrc, y=y, ycalendar=ycalendar, + yhoverformat=yhoverformat, ysrc=ysrc, z=z, zcalendar=zcalendar, + zhoverformat=zhoverformat, zsrc=zsrc, **kwargs ) @@ -12381,6 +12533,7 @@ def add_scattergl( x0=None, xaxis=None, xcalendar=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, @@ -12389,6 +12542,7 @@ def add_scattergl( y0=None, yaxis=None, ycalendar=None, + yhoverformat=None, yperiod=None, yperiod0=None, yperiodalignment=None, @@ -12638,6 +12792,14 @@ def add_scattergl( coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -12670,6 +12832,14 @@ def add_scattergl( coordinates refer to `layout.yaxis2`, and so on. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -12762,6 +12932,7 @@ def add_scattergl( x0=x0, xaxis=xaxis, xcalendar=xcalendar, + xhoverformat=xhoverformat, xperiod=xperiod, xperiod0=xperiod0, xperiodalignment=xperiodalignment, @@ -12770,6 +12941,7 @@ def add_scattergl( y0=y0, yaxis=yaxis, ycalendar=ycalendar, + yhoverformat=yhoverformat, yperiod=yperiod, yperiod0=yperiod0, yperiodalignment=yperiodalignment, @@ -14293,7 +14465,9 @@ def add_splom( unselected=None, visible=None, xaxes=None, + xhoverformat=None, yaxes=None, + yhoverformat=None, row=None, col=None, **kwargs @@ -14476,6 +14650,14 @@ def add_splom( is false and `showupperhalf` or `showlowerhalf` is false, this splom trace will generate one less x-axis and one less y-axis. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. yaxes Sets the list of y axes corresponding to dimensions of this splom trace. By default, a splom will match the @@ -14484,6 +14666,14 @@ def add_splom( is false and `showupperhalf` or `showlowerhalf` is false, this splom trace will generate one less x-axis and one less y-axis. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. row : 'all', int or None (default) Subplot row index (starting from 1) for the trace to be added. Only valid if figure was created using @@ -14535,7 +14725,9 @@ def add_splom( unselected=unselected, visible=visible, xaxes=xaxes, + xhoverformat=xhoverformat, yaxes=yaxes, + yhoverformat=yhoverformat, **kwargs ) return self.add_trace(new_trace, row=row, col=col) @@ -14577,19 +14769,25 @@ def add_streamtube( stream=None, text=None, u=None, + uhoverformat=None, uid=None, uirevision=None, usrc=None, v=None, + vhoverformat=None, visible=None, vsrc=None, w=None, + whoverformat=None, wsrc=None, x=None, + xhoverformat=None, xsrc=None, y=None, + yhoverformat=None, ysrc=None, z=None, + zhoverformat=None, zsrc=None, row=None, col=None, @@ -14785,6 +14983,13 @@ def add_streamtube( streamtube traces do not support array `text` values. u Sets the x components of the vector field. + uhoverformat + Sets the hover text formatting rule for `u` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. uid Assign an id to this trace, Use this to provide object constancy between traces during animations and @@ -14812,6 +15017,13 @@ def add_streamtube( . v Sets the y components of the vector field. + vhoverformat + Sets the hover text formatting rule for `v` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. visible Determines whether or not this trace is visible. If "legendonly", the trace is not drawn, but can appear as @@ -14822,21 +15034,52 @@ def add_streamtube( . w Sets the z components of the vector field. + whoverformat + Sets the hover text formatting rule for `w` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. wsrc Sets the source reference on Chart Studio Cloud for w . x Sets the x coordinates of the vector field. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . y Sets the y coordinates of the vector field. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . z Sets the z coordinates of the vector field. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -14893,19 +15136,25 @@ def add_streamtube( stream=stream, text=text, u=u, + uhoverformat=uhoverformat, uid=uid, uirevision=uirevision, usrc=usrc, v=v, + vhoverformat=vhoverformat, visible=visible, vsrc=vsrc, w=w, + whoverformat=whoverformat, wsrc=wsrc, x=x, + xhoverformat=xhoverformat, xsrc=xsrc, y=y, + yhoverformat=yhoverformat, ysrc=ysrc, z=z, + zhoverformat=zhoverformat, zsrc=zsrc, **kwargs ) @@ -15309,12 +15558,15 @@ def add_surface( visible=None, x=None, xcalendar=None, + xhoverformat=None, xsrc=None, y=None, ycalendar=None, + yhoverformat=None, ysrc=None, z=None, zcalendar=None, + zhoverformat=None, zsrc=None, row=None, col=None, @@ -15561,6 +15813,14 @@ def add_surface( Sets the x coordinates. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -15568,6 +15828,14 @@ def add_surface( Sets the y coordinates. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -15575,6 +15843,14 @@ def add_surface( Sets the z coordinates. zcalendar Sets the calendar system to use with `z` date data. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -15640,12 +15916,15 @@ def add_surface( visible=visible, x=x, xcalendar=xcalendar, + xhoverformat=xhoverformat, xsrc=xsrc, y=y, ycalendar=ycalendar, + yhoverformat=yhoverformat, ysrc=ysrc, z=z, zcalendar=zcalendar, + zhoverformat=zhoverformat, zsrc=zsrc, **kwargs ) @@ -16226,10 +16505,12 @@ def add_violin( x=None, x0=None, xaxis=None, + xhoverformat=None, xsrc=None, y=None, y0=None, yaxis=None, + yhoverformat=None, ysrc=None, row=None, col=None, @@ -16498,6 +16779,14 @@ def add_violin( a 2D cartesian x axis. If "x" (the default value), the x coordinates refer to `layout.xaxis`. If "x2", the x coordinates refer to `layout.xaxis2`, and so on. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -16513,6 +16802,14 @@ def add_violin( a 2D cartesian y axis. If "y" (the default value), the y coordinates refer to `layout.yaxis`. If "y2", the y coordinates refer to `layout.yaxis2`, and so on. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -16592,10 +16889,12 @@ def add_violin( x=x, x0=x0, xaxis=xaxis, + xhoverformat=xhoverformat, xsrc=xsrc, y=y, y0=y0, yaxis=yaxis, + yhoverformat=yhoverformat, ysrc=ysrc, **kwargs ) @@ -16648,13 +16947,17 @@ def add_volume( uid=None, uirevision=None, value=None, + valuehoverformat=None, valuesrc=None, visible=None, x=None, + xhoverformat=None, xsrc=None, y=None, + yhoverformat=None, ysrc=None, z=None, + zhoverformat=None, zsrc=None, row=None, col=None, @@ -16897,6 +17200,13 @@ def add_volume( `uid` that stays with it as it moves. value Sets the 4th dimension (value) of the vertices. + valuehoverformat + Sets the hover text formatting rule for `value` using + d3 formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. valuesrc Sets the source reference on Chart Studio Cloud for value . @@ -16907,16 +17217,40 @@ def add_volume( visible). x Sets the X coordinates of the vertices on X axis. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . y Sets the Y coordinates of the vertices on Y axis. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . z Sets the Z coordinates of the vertices on Z axis. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -16983,13 +17317,17 @@ def add_volume( uid=uid, uirevision=uirevision, value=value, + valuehoverformat=valuehoverformat, valuesrc=valuesrc, visible=visible, x=x, + xhoverformat=xhoverformat, xsrc=xsrc, y=y, + yhoverformat=yhoverformat, ysrc=ysrc, z=z, + zhoverformat=zhoverformat, zsrc=zsrc, **kwargs ) @@ -17052,6 +17390,7 @@ def add_waterfall( x=None, x0=None, xaxis=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, @@ -17059,6 +17398,7 @@ def add_waterfall( y=None, y0=None, yaxis=None, + yhoverformat=None, yperiod=None, yperiod0=None, yperiodalignment=None, @@ -17269,7 +17609,8 @@ def add_waterfall( there is another bar stacked on this one, then the text gets pushed inside. "auto" tries to position `text` inside the bar, but if the bar is too small and no bar - is stacked on this one the text is moved outside. + is stacked on this one the text is moved outside. If + "none", no text appears. textpositionsrc Sets the source reference on Chart Studio Cloud for textposition . @@ -17341,6 +17682,14 @@ def add_waterfall( a 2D cartesian x axis. If "x" (the default value), the x coordinates refer to `layout.xaxis`. If "x2", the x coordinates refer to `layout.xaxis2`, and so on. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -17371,6 +17720,14 @@ def add_waterfall( a 2D cartesian y axis. If "y" (the default value), the y coordinates refer to `layout.yaxis`. If "y2", the y coordinates refer to `layout.yaxis2`, and so on. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -17473,6 +17830,7 @@ def add_waterfall( x=x, x0=x0, xaxis=xaxis, + xhoverformat=xhoverformat, xperiod=xperiod, xperiod0=xperiod0, xperiodalignment=xperiodalignment, @@ -17480,6 +17838,7 @@ def add_waterfall( y=y, y0=y0, yaxis=yaxis, + yhoverformat=yhoverformat, yperiod=yperiod, yperiod0=yperiod0, yperiodalignment=yperiodalignment, diff --git a/packages/python/plotly/plotly/graph_objs/_figurewidget.py b/packages/python/plotly/plotly/graph_objs/_figurewidget.py index ab8948a2ee..53f2524d52 100644 --- a/packages/python/plotly/plotly/graph_objs/_figurewidget.py +++ b/packages/python/plotly/plotly/graph_objs/_figurewidget.py @@ -19,21 +19,20 @@ def __init__( (e.g. Scatter(...), Bar(...), etc.) - A list or tuple of dicts of string/value properties where: - The 'type' property specifies the trace type - One of: ['area', 'bar', 'barpolar', 'box', - 'candlestick', 'carpet', 'choropleth', - 'choroplethmapbox', 'cone', 'contour', - 'contourcarpet', 'densitymapbox', 'funnel', - 'funnelarea', 'heatmap', 'heatmapgl', - 'histogram', 'histogram2d', - 'histogram2dcontour', 'image', 'indicator', - 'isosurface', 'mesh3d', 'ohlc', 'parcats', - 'parcoords', 'pie', 'pointcloud', 'sankey', - 'scatter', 'scatter3d', 'scattercarpet', - 'scattergeo', 'scattergl', 'scattermapbox', - 'scatterpolar', 'scatterpolargl', - 'scatterternary', 'splom', 'streamtube', - 'sunburst', 'surface', 'table', 'treemap', - 'violin', 'volume', 'waterfall'] + One of: ['bar', 'barpolar', 'box', 'candlestick', + 'carpet', 'choropleth', 'choroplethmapbox', + 'cone', 'contour', 'contourcarpet', + 'densitymapbox', 'funnel', 'funnelarea', + 'heatmap', 'heatmapgl', 'histogram', + 'histogram2d', 'histogram2dcontour', 'image', + 'indicator', 'isosurface', 'mesh3d', 'ohlc', + 'parcats', 'parcoords', 'pie', 'pointcloud', + 'sankey', 'scatter', 'scatter3d', + 'scattercarpet', 'scattergeo', 'scattergl', + 'scattermapbox', 'scatterpolar', + 'scatterpolargl', 'scatterternary', 'splom', + 'streamtube', 'sunburst', 'surface', 'table', + 'treemap', 'violin', 'volume', 'waterfall'] - All remaining properties are passed to the constructor of the specified trace type @@ -52,9 +51,6 @@ def __init__( activeshape :class:`plotly.graph_objects.layout.Activeshape ` instance or dict with compatible properties - angularaxis - :class:`plotly.graph_objects.layout.AngularAxis - ` instance or dict with compatible properties annotations A tuple of :class:`plotly.graph_objects.layout.Annotation` @@ -165,11 +161,6 @@ def __init__( being treated as immutable, thus any data array with a different identity from its predecessor contains new data. - direction - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Sets the direction - corresponding to positive angles in legacy - polar charts. dragmode Determines the mode of drag interactions. "select" and "lasso" apply only to scatter @@ -301,13 +292,7 @@ def __init__( hoverlabel will appear per trace. In this mode, spikelines are enabled by default perpendicular to the specified axis. If false, hover - interactions are disabled. If `clickmode` - includes the "select" flag, `hovermode` - defaults to "closest". If `clickmode` lacks the - "select" flag, it defaults to "x" or "y" - (depending on the trace's `orientation` value) - for plots based on cartesian coordinates. For - anything else the default value is "closest". + interactions are disabled. images A tuple of :class:`plotly.graph_objects.layout.Image` @@ -347,11 +332,6 @@ def __init__( newshape :class:`plotly.graph_objects.layout.Newshape` instance or dict with compatible properties - orientation - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Rotates the entire - polar by the given angle in legacy polar - charts. paper_bgcolor Sets the background color of the paper where the graph is drawn. @@ -367,9 +347,6 @@ def __init__( polar :class:`plotly.graph_objects.layout.Polar` instance or dict with compatible properties - radialaxis - :class:`plotly.graph_objects.layout.RadialAxis` - instance or dict with compatible properties scene :class:`plotly.graph_objects.layout.Scene` instance or dict with compatible properties @@ -595,184 +572,6 @@ def __init__( """ super(FigureWidget, self).__init__(data, layout, frames, skip_invalid, **kwargs) - def add_area( - self, - customdata=None, - customdatasrc=None, - hoverinfo=None, - hoverinfosrc=None, - hoverlabel=None, - ids=None, - idssrc=None, - legendgroup=None, - marker=None, - meta=None, - metasrc=None, - name=None, - opacity=None, - r=None, - rsrc=None, - showlegend=None, - stream=None, - t=None, - tsrc=None, - uid=None, - uirevision=None, - visible=None, - row=None, - col=None, - **kwargs - ): - """ - Add a new Area trace - - Parameters - ---------- - customdata - Assigns extra data each datum. This may be useful when - listening to hover, click and selection events. Note - that, "scatter" traces also appends customdata items in - the markers DOM elements - customdatasrc - Sets the source reference on Chart Studio Cloud for - customdata . - hoverinfo - Determines which trace information appear on hover. If - `none` or `skip` are set, no information is displayed - upon hovering. But, if `none` is set, click and hover - events are still fired. - hoverinfosrc - Sets the source reference on Chart Studio Cloud for - hoverinfo . - hoverlabel - :class:`plotly.graph_objects.area.Hoverlabel` instance - or dict with compatible properties - ids - Assigns id labels to each datum. These ids for object - constancy of data points during animation. Should be an - array of strings, not numbers or any other type. - idssrc - Sets the source reference on Chart Studio Cloud for - ids . - legendgroup - Sets the legend group for this trace. Traces part of - the same legend group hide/show at the same time when - toggling legend items. - marker - :class:`plotly.graph_objects.area.Marker` instance or - dict with compatible properties - meta - Assigns extra meta information associated with this - trace that can be used in various text attributes. - Attributes such as trace `name`, graph, axis and - colorbar `title.text`, annotation `text` - `rangeselector`, `updatemenues` and `sliders` `label` - text all support `meta`. To access the trace `meta` - values in an attribute in the same trace, simply use - `%{meta[i]}` where `i` is the index or key of the - `meta` item in question. To access trace `meta` in - layout attributes, use `%{data[n[.meta[i]}` where `i` - is the index or key of the `meta` and `n` is the trace - index. - metasrc - Sets the source reference on Chart Studio Cloud for - meta . - name - Sets the trace name. The trace name appear as the - legend item and on hover. - opacity - Sets the opacity of the trace. - r - Area traces are deprecated! Please switch to the - "barpolar" trace type. Sets the radial coordinates for - legacy polar chart only. - rsrc - Sets the source reference on Chart Studio Cloud for r - . - showlegend - Determines whether or not an item corresponding to this - trace is shown in the legend. - stream - :class:`plotly.graph_objects.area.Stream` instance or - dict with compatible properties - t - Area traces are deprecated! Please switch to the - "barpolar" trace type. Sets the angular coordinates for - legacy polar chart only. - tsrc - Sets the source reference on Chart Studio Cloud for t - . - uid - Assign an id to this trace, Use this to provide object - constancy between traces during animations and - transitions. - uirevision - Controls persistence of some user-driven changes to the - trace: `constraintrange` in `parcoords` traces, as well - as some `editable: true` modifications such as `name` - and `colorbar.title`. Defaults to `layout.uirevision`. - Note that other user-driven trace attribute changes are - controlled by `layout` attributes: `trace.visible` is - controlled by `layout.legend.uirevision`, - `selectedpoints` is controlled by - `layout.selectionrevision`, and `colorbar.(x|y)` - (accessible with `config: {editable: true}`) is - controlled by `layout.editrevision`. Trace changes are - tracked by `uid`, which only falls back on trace index - if no `uid` is provided. So if your app can add/remove - traces before the end of the `data` array, such that - the same trace has a different index, you can still - preserve user-driven changes if you give each trace a - `uid` that stays with it as it moves. - visible - Determines whether or not this trace is visible. If - "legendonly", the trace is not drawn, but can appear as - a legend item (provided that the legend itself is - visible). - row : 'all', int or None (default) - Subplot row index (starting from 1) for the trace to be - added. Only valid if figure was created using - `plotly.tools.make_subplots`.If 'all', addresses all - rows in the specified column(s). - col : 'all', int or None (default) - Subplot col index (starting from 1) for the trace to be - added. Only valid if figure was created using - `plotly.tools.make_subplots`.If 'all', addresses all - columns in the specified row(s). - - Returns - ------- - FigureWidget - """ - from plotly.graph_objs import Area - - new_trace = Area( - customdata=customdata, - customdatasrc=customdatasrc, - hoverinfo=hoverinfo, - hoverinfosrc=hoverinfosrc, - hoverlabel=hoverlabel, - ids=ids, - idssrc=idssrc, - legendgroup=legendgroup, - marker=marker, - meta=meta, - metasrc=metasrc, - name=name, - opacity=opacity, - r=r, - rsrc=rsrc, - showlegend=showlegend, - stream=stream, - t=t, - tsrc=tsrc, - uid=uid, - uirevision=uirevision, - visible=visible, - **kwargs - ) - return self.add_trace(new_trace, row=row, col=col) - def add_bar( self, alignmentgroup=None, @@ -808,13 +607,10 @@ def add_bar( opacity=None, orientation=None, outsidetextfont=None, - r=None, - rsrc=None, selected=None, selectedpoints=None, showlegend=None, stream=None, - t=None, text=None, textangle=None, textfont=None, @@ -823,7 +619,6 @@ def add_bar( textsrc=None, texttemplate=None, texttemplatesrc=None, - tsrc=None, uid=None, uirevision=None, unselected=None, @@ -834,6 +629,7 @@ def add_bar( x0=None, xaxis=None, xcalendar=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, @@ -842,6 +638,7 @@ def add_bar( y0=None, yaxis=None, ycalendar=None, + yhoverformat=None, yperiod=None, yperiod0=None, yperiodalignment=None, @@ -1005,13 +802,6 @@ def add_bar( (horizontal). outsidetextfont Sets the font used for `text` lying outside the bar. - r - r coordinates in scatter traces are deprecated!Please - switch to the "scatterpolar" trace type.Sets the radial - coordinatesfor legacy polar chart only. - rsrc - Sets the source reference on Chart Studio Cloud for r - . selected :class:`plotly.graph_objects.bar.Selected` instance or dict with compatible properties @@ -1028,10 +818,6 @@ def add_bar( stream :class:`plotly.graph_objects.bar.Stream` instance or dict with compatible properties - t - t coordinates in scatter traces are deprecated!Please - switch to the "scatterpolar" trace type.Sets the - angular coordinatesfor legacy polar chart only. text Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the @@ -1056,7 +842,8 @@ def add_bar( there is another bar stacked on this one, then the text gets pushed inside. "auto" tries to position `text` inside the bar, but if the bar is too small and no bar - is stacked on this one the text is moved outside. + is stacked on this one the text is moved outside. If + "none", no text appears. textpositionsrc Sets the source reference on Chart Studio Cloud for textposition . @@ -1082,9 +869,6 @@ def add_bar( texttemplatesrc Sets the source reference on Chart Studio Cloud for texttemplate . - tsrc - Sets the source reference on Chart Studio Cloud for t - . uid Assign an id to this trace, Use this to provide object constancy between traces during animations and @@ -1133,6 +917,14 @@ def add_bar( coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -1165,6 +957,14 @@ def add_bar( coordinates refer to `layout.yaxis2`, and so on. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -1245,13 +1045,10 @@ def add_bar( opacity=opacity, orientation=orientation, outsidetextfont=outsidetextfont, - r=r, - rsrc=rsrc, selected=selected, selectedpoints=selectedpoints, showlegend=showlegend, stream=stream, - t=t, text=text, textangle=textangle, textfont=textfont, @@ -1260,7 +1057,6 @@ def add_bar( textsrc=textsrc, texttemplate=texttemplate, texttemplatesrc=texttemplatesrc, - tsrc=tsrc, uid=uid, uirevision=uirevision, unselected=unselected, @@ -1271,6 +1067,7 @@ def add_bar( x0=x0, xaxis=xaxis, xcalendar=xcalendar, + xhoverformat=xhoverformat, xperiod=xperiod, xperiod0=xperiod0, xperiodalignment=xperiodalignment, @@ -1279,6 +1076,7 @@ def add_bar( y0=y0, yaxis=yaxis, ycalendar=ycalendar, + yhoverformat=yhoverformat, yperiod=yperiod, yperiod0=yperiod0, yperiodalignment=yperiodalignment, @@ -1663,6 +1461,7 @@ def add_box( x0=None, xaxis=None, xcalendar=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, @@ -1671,6 +1470,7 @@ def add_box( y0=None, yaxis=None, ycalendar=None, + yhoverformat=None, yperiod=None, yperiod0=None, yperiodalignment=None, @@ -2029,6 +1829,14 @@ def add_box( coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -2062,6 +1870,14 @@ def add_box( coordinates refer to `layout.yaxis2`, and so on. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -2173,6 +1989,7 @@ def add_box( x0=x0, xaxis=xaxis, xcalendar=xcalendar, + xhoverformat=xhoverformat, xperiod=xperiod, xperiod0=xperiod0, xperiodalignment=xperiodalignment, @@ -2181,6 +1998,7 @@ def add_box( y0=y0, yaxis=yaxis, ycalendar=ycalendar, + yhoverformat=yhoverformat, yperiod=yperiod, yperiod0=yperiod0, yperiodalignment=yperiodalignment, @@ -2228,11 +2046,13 @@ def add_candlestick( x=None, xaxis=None, xcalendar=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, xsrc=None, yaxis=None, + yhoverformat=None, row=None, col=None, secondary_y=None, @@ -2399,6 +2219,14 @@ def add_candlestick( coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -2423,6 +2251,14 @@ def add_candlestick( a 2D cartesian y axis. If "y" (the default value), the y coordinates refer to `layout.yaxis`. If "y2", the y coordinates refer to `layout.yaxis2`, and so on. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. row : 'all', int or None (default) Subplot row index (starting from 1) for the trace to be added. Only valid if figure was created using @@ -2488,11 +2324,13 @@ def add_candlestick( x=x, xaxis=xaxis, xcalendar=xcalendar, + xhoverformat=xhoverformat, xperiod=xperiod, xperiod0=xperiod0, xperiodalignment=xperiodalignment, xsrc=xsrc, yaxis=yaxis, + yhoverformat=yhoverformat, **kwargs ) return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y) @@ -3478,19 +3316,25 @@ def add_cone( text=None, textsrc=None, u=None, + uhoverformat=None, uid=None, uirevision=None, usrc=None, v=None, + vhoverformat=None, visible=None, vsrc=None, w=None, + whoverformat=None, wsrc=None, x=None, + xhoverformat=None, xsrc=None, y=None, + yhoverformat=None, ysrc=None, z=None, + zhoverformat=None, zsrc=None, row=None, col=None, @@ -3697,6 +3541,13 @@ def add_cone( text . u Sets the x components of the vector field. + uhoverformat + Sets the hover text formatting rule for `u` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. uid Assign an id to this trace, Use this to provide object constancy between traces during animations and @@ -3724,6 +3575,13 @@ def add_cone( . v Sets the y components of the vector field. + vhoverformat + Sets the hover text formatting rule for `v` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. visible Determines whether or not this trace is visible. If "legendonly", the trace is not drawn, but can appear as @@ -3734,24 +3592,55 @@ def add_cone( . w Sets the z components of the vector field. + whoverformat + Sets the hover text formatting rule for `w` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. wsrc Sets the source reference on Chart Studio Cloud for w . x Sets the x coordinates of the vector field and of the displayed cones. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . y Sets the y coordinates of the vector field and of the displayed cones. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . z Sets the z coordinates of the vector field and of the displayed cones. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -3810,19 +3699,25 @@ def add_cone( text=text, textsrc=textsrc, u=u, + uhoverformat=uhoverformat, uid=uid, uirevision=uirevision, usrc=usrc, v=v, + vhoverformat=vhoverformat, visible=visible, vsrc=vsrc, w=w, + whoverformat=whoverformat, wsrc=wsrc, x=x, + xhoverformat=xhoverformat, xsrc=xsrc, y=y, + yhoverformat=yhoverformat, ysrc=ysrc, z=z, + zhoverformat=zhoverformat, zsrc=zsrc, **kwargs ) @@ -3873,6 +3768,7 @@ def add_contour( x0=None, xaxis=None, xcalendar=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, @@ -3882,6 +3778,7 @@ def add_contour( y0=None, yaxis=None, ycalendar=None, + yhoverformat=None, yperiod=None, yperiod0=None, yperiodalignment=None, @@ -4117,6 +4014,14 @@ def add_contour( coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -4155,6 +4060,14 @@ def add_contour( coordinates refer to `layout.yaxis2`, and so on. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -4188,10 +4101,12 @@ def add_contour( bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user. zhoverformat - Sets the hover text formatting rule using d3 formatting - mini-languages which are very similar to those in - Python. See: https://github.com/d3/d3-3.x-api- - reference/blob/master/Formatting.md#d3_format + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. zmax Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must @@ -4279,6 +4194,7 @@ def add_contour( x0=x0, xaxis=xaxis, xcalendar=xcalendar, + xhoverformat=xhoverformat, xperiod=xperiod, xperiod0=xperiod0, xperiodalignment=xperiodalignment, @@ -4288,6 +4204,7 @@ def add_contour( y0=y0, yaxis=yaxis, ycalendar=ycalendar, + yhoverformat=yhoverformat, yperiod=yperiod, yperiod0=yperiod0, yperiodalignment=yperiodalignment, @@ -5055,6 +4972,7 @@ def add_funnel( x=None, x0=None, xaxis=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, @@ -5062,6 +4980,7 @@ def add_funnel( y=None, y0=None, yaxis=None, + yhoverformat=None, yperiod=None, yperiod0=None, yperiodalignment=None, @@ -5259,7 +5178,8 @@ def add_funnel( there is another bar stacked on this one, then the text gets pushed inside. "auto" tries to position `text` inside the bar, but if the bar is too small and no bar - is stacked on this one the text is moved outside. + is stacked on this one the text is moved outside. If + "none", no text appears. textpositionsrc Sets the source reference on Chart Studio Cloud for textposition . @@ -5326,6 +5246,14 @@ def add_funnel( a 2D cartesian x axis. If "x" (the default value), the x coordinates refer to `layout.xaxis`. If "x2", the x coordinates refer to `layout.xaxis2`, and so on. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -5356,6 +5284,14 @@ def add_funnel( a 2D cartesian y axis. If "y" (the default value), the y coordinates refer to `layout.yaxis`. If "y2", the y coordinates refer to `layout.yaxis2`, and so on. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -5451,6 +5387,7 @@ def add_funnel( x=x, x0=x0, xaxis=xaxis, + xhoverformat=xhoverformat, xperiod=xperiod, xperiod0=xperiod0, xperiodalignment=xperiodalignment, @@ -5458,6 +5395,7 @@ def add_funnel( y=y, y0=y0, yaxis=yaxis, + yhoverformat=yhoverformat, yperiod=yperiod, yperiod0=yperiod0, yperiodalignment=yperiodalignment, @@ -5830,6 +5768,7 @@ def add_heatmap( xaxis=None, xcalendar=None, xgap=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, @@ -5840,6 +5779,7 @@ def add_heatmap( yaxis=None, ycalendar=None, ygap=None, + yhoverformat=None, yperiod=None, yperiod0=None, yperiodalignment=None, @@ -6066,6 +6006,14 @@ def add_heatmap( Sets the calendar system to use with `x` date data. xgap Sets the horizontal gap (in pixels) between bricks. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -6106,6 +6054,14 @@ def add_heatmap( Sets the calendar system to use with `y` date data. ygap Sets the vertical gap (in pixels) between bricks. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -6139,10 +6095,12 @@ def add_heatmap( bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user. zhoverformat - Sets the hover text formatting rule using d3 formatting - mini-languages which are very similar to those in - Python. See: https://github.com/d3/d3-3.x-api- - reference/blob/master/Formatting.md#d3_format + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. zmax Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must @@ -6228,6 +6186,7 @@ def add_heatmap( xaxis=xaxis, xcalendar=xcalendar, xgap=xgap, + xhoverformat=xhoverformat, xperiod=xperiod, xperiod0=xperiod0, xperiodalignment=xperiodalignment, @@ -6238,6 +6197,7 @@ def add_heatmap( yaxis=yaxis, ycalendar=ycalendar, ygap=ygap, + yhoverformat=yhoverformat, yperiod=yperiod, yperiod0=yperiod0, yperiodalignment=yperiodalignment, @@ -6308,7 +6268,11 @@ def add_heatmapgl( """ Add a new Heatmapgl trace - WebGL version of the heatmap trace type. + "heatmapgl" trace is deprecated! Please consider switching to + the "heatmap" or "image" trace types. Alternatively you could + contribute/sponsor rewriting this trace type based on cartesian + features and using regl framework. WebGL version of the heatmap + trace type. Parameters ---------- @@ -6622,11 +6586,13 @@ def add_histogram( xaxis=None, xbins=None, xcalendar=None, + xhoverformat=None, xsrc=None, y=None, yaxis=None, ybins=None, ycalendar=None, + yhoverformat=None, ysrc=None, row=None, col=None, @@ -6875,6 +6841,14 @@ def add_histogram( or dict with compatible properties xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -6890,6 +6864,14 @@ def add_histogram( or dict with compatible properties ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -6965,11 +6947,13 @@ def add_histogram( xaxis=xaxis, xbins=xbins, xcalendar=xcalendar, + xhoverformat=xhoverformat, xsrc=xsrc, y=y, yaxis=yaxis, ybins=ybins, ycalendar=ycalendar, + yhoverformat=yhoverformat, ysrc=ysrc, **kwargs ) @@ -7016,6 +7000,7 @@ def add_histogram2d( xbins=None, xcalendar=None, xgap=None, + xhoverformat=None, xsrc=None, y=None, yaxis=None, @@ -7023,6 +7008,7 @@ def add_histogram2d( ybins=None, ycalendar=None, ygap=None, + yhoverformat=None, ysrc=None, z=None, zauto=None, @@ -7273,6 +7259,14 @@ def add_histogram2d( Sets the calendar system to use with `x` date data. xgap Sets the horizontal gap (in pixels) between bricks. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -7297,6 +7291,14 @@ def add_histogram2d( Sets the calendar system to use with `y` date data. ygap Sets the vertical gap (in pixels) between bricks. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -7308,10 +7310,12 @@ def add_histogram2d( bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user. zhoverformat - Sets the hover text formatting rule using d3 formatting - mini-languages which are very similar to those in - Python. See: https://github.com/d3/d3-3.x-api- - reference/blob/master/Formatting.md#d3_format + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. zmax Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must @@ -7397,6 +7401,7 @@ def add_histogram2d( xbins=xbins, xcalendar=xcalendar, xgap=xgap, + xhoverformat=xhoverformat, xsrc=xsrc, y=y, yaxis=yaxis, @@ -7404,6 +7409,7 @@ def add_histogram2d( ybins=ybins, ycalendar=ycalendar, ygap=ygap, + yhoverformat=yhoverformat, ysrc=ysrc, z=z, zauto=zauto, @@ -7461,12 +7467,14 @@ def add_histogram2dcontour( xbingroup=None, xbins=None, xcalendar=None, + xhoverformat=None, xsrc=None, y=None, yaxis=None, ybingroup=None, ybins=None, ycalendar=None, + yhoverformat=None, ysrc=None, z=None, zauto=None, @@ -7731,6 +7739,14 @@ def add_histogram2dcontour( instance or dict with compatible properties xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -7753,6 +7769,14 @@ def add_histogram2dcontour( instance or dict with compatible properties ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -7764,10 +7788,12 @@ def add_histogram2dcontour( bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user. zhoverformat - Sets the hover text formatting rule using d3 formatting - mini-languages which are very similar to those in - Python. See: https://github.com/d3/d3-3.x-api- - reference/blob/master/Formatting.md#d3_format + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. zmax Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must @@ -7854,12 +7880,14 @@ def add_histogram2dcontour( xbingroup=xbingroup, xbins=xbins, xcalendar=xcalendar, + xhoverformat=xhoverformat, xsrc=xsrc, y=y, yaxis=yaxis, ybingroup=ybingroup, ybins=ybins, ycalendar=ycalendar, + yhoverformat=yhoverformat, ysrc=ysrc, z=z, zauto=zauto, @@ -7906,6 +7934,7 @@ def add_image( z=None, zmax=None, zmin=None, + zsmooth=None, zsrc=None, row=None, col=None, @@ -8084,6 +8113,10 @@ def add_image( the `rgba256` colormodel, it is [0, 0, 0, 0]. For the `hsl` colormodel, it is [0, 0, 0]. For the `hsla` colormodel, it is [0, 0, 0, 0]. + zsmooth + Picks a smoothing algorithm used to smooth `z` data. + This only applies for image traces that use the + `source` attribute. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -8147,6 +8180,7 @@ def add_image( z=z, zmax=zmax, zmin=zmin, + zsmooth=zsmooth, zsrc=zsrc, **kwargs ) @@ -8367,13 +8401,17 @@ def add_isosurface( uid=None, uirevision=None, value=None, + valuehoverformat=None, valuesrc=None, visible=None, x=None, + xhoverformat=None, xsrc=None, y=None, + yhoverformat=None, ysrc=None, z=None, + zhoverformat=None, zsrc=None, row=None, col=None, @@ -8605,6 +8643,13 @@ def add_isosurface( `uid` that stays with it as it moves. value Sets the 4th dimension (value) of the vertices. + valuehoverformat + Sets the hover text formatting rule for `value` using + d3 formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. valuesrc Sets the source reference on Chart Studio Cloud for value . @@ -8615,16 +8660,40 @@ def add_isosurface( visible). x Sets the X coordinates of the vertices on X axis. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . y Sets the Y coordinates of the vertices on Y axis. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . z Sets the Z coordinates of the vertices on Z axis. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -8690,13 +8759,17 @@ def add_isosurface( uid=uid, uirevision=uirevision, value=value, + valuehoverformat=valuehoverformat, valuesrc=valuesrc, visible=visible, x=x, + xhoverformat=xhoverformat, xsrc=xsrc, y=y, + yhoverformat=yhoverformat, ysrc=ysrc, z=z, + zhoverformat=zhoverformat, zsrc=zsrc, **kwargs ) @@ -8760,12 +8833,15 @@ def add_mesh3d( visible=None, x=None, xcalendar=None, + xhoverformat=None, xsrc=None, y=None, ycalendar=None, + yhoverformat=None, ysrc=None, z=None, zcalendar=None, + zhoverformat=None, zsrc=None, row=None, col=None, @@ -9075,6 +9151,14 @@ def add_mesh3d( and Z coordinates of the nth vertex. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -9084,6 +9168,14 @@ def add_mesh3d( and Z coordinates of the nth vertex. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -9093,6 +9185,14 @@ def add_mesh3d( and Z coordinates of the nth vertex. zcalendar Sets the calendar system to use with `z` date data. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -9170,12 +9270,15 @@ def add_mesh3d( visible=visible, x=x, xcalendar=xcalendar, + xhoverformat=xhoverformat, xsrc=xsrc, y=y, ycalendar=ycalendar, + yhoverformat=yhoverformat, ysrc=ysrc, z=z, zcalendar=zcalendar, + zhoverformat=zhoverformat, zsrc=zsrc, **kwargs ) @@ -9220,11 +9323,13 @@ def add_ohlc( x=None, xaxis=None, xcalendar=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, xsrc=None, yaxis=None, + yhoverformat=None, row=None, col=None, secondary_y=None, @@ -9390,6 +9495,14 @@ def add_ohlc( coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -9414,6 +9527,14 @@ def add_ohlc( a 2D cartesian y axis. If "y" (the default value), the y coordinates refer to `layout.yaxis`. If "y2", the y coordinates refer to `layout.yaxis2`, and so on. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. row : 'all', int or None (default) Subplot row index (starting from 1) for the trace to be added. Only valid if figure was created using @@ -9479,11 +9600,13 @@ def add_ohlc( x=x, xaxis=xaxis, xcalendar=xcalendar, + xhoverformat=xhoverformat, xperiod=xperiod, xperiod0=xperiod0, xperiodalignment=xperiodalignment, xsrc=xsrc, yaxis=yaxis, + yhoverformat=yhoverformat, **kwargs ) return self.add_trace(new_trace, row=row, col=col, secondary_y=secondary_y) @@ -10287,8 +10410,9 @@ def add_pointcloud( """ Add a new Pointcloud trace - The data visualized as a point cloud set in `x` and `y` using - the WebGl plotting engine. + "pointcloud" trace is deprecated! Please consider switching to + the "scattergl" trace type. The data visualized as a point + cloud set in `x` and `y` using the WebGl plotting engine. Parameters ---------- @@ -10735,15 +10859,12 @@ def add_scatter( name=None, opacity=None, orientation=None, - r=None, - rsrc=None, selected=None, selectedpoints=None, showlegend=None, stackgaps=None, stackgroup=None, stream=None, - t=None, text=None, textfont=None, textposition=None, @@ -10751,7 +10872,6 @@ def add_scatter( textsrc=None, texttemplate=None, texttemplatesrc=None, - tsrc=None, uid=None, uirevision=None, unselected=None, @@ -10760,6 +10880,7 @@ def add_scatter( x0=None, xaxis=None, xcalendar=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, @@ -10768,6 +10889,7 @@ def add_scatter( y0=None, yaxis=None, ycalendar=None, + yhoverformat=None, yperiod=None, yperiod0=None, yperiodalignment=None, @@ -10958,13 +11080,6 @@ def add_scatter( if it is `false`. Sets the stacking direction. With "v" ("h"), the y (x) values of subsequent traces are added. Also affects the default value of `fill`. - r - r coordinates in scatter traces are deprecated!Please - switch to the "scatterpolar" trace type.Sets the radial - coordinatesfor legacy polar chart only. - rsrc - Sets the source reference on Chart Studio Cloud for r - . selected :class:`plotly.graph_objects.scatter.Selected` instance or dict with compatible properties @@ -11005,10 +11120,6 @@ def add_scatter( stream :class:`plotly.graph_objects.scatter.Stream` instance or dict with compatible properties - t - t coordinates in scatter traces are deprecated!Please - switch to the "scatterpolar" trace type.Sets the - angular coordinatesfor legacy polar chart only. text Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the @@ -11046,9 +11157,6 @@ def add_scatter( texttemplatesrc Sets the source reference on Chart Studio Cloud for texttemplate . - tsrc - Sets the source reference on Chart Studio Cloud for t - . uid Assign an id to this trace, Use this to provide object constancy between traces during animations and @@ -11092,6 +11200,14 @@ def add_scatter( coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -11124,6 +11240,14 @@ def add_scatter( coordinates refer to `layout.yaxis2`, and so on. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -11201,15 +11325,12 @@ def add_scatter( name=name, opacity=opacity, orientation=orientation, - r=r, - rsrc=rsrc, selected=selected, selectedpoints=selectedpoints, showlegend=showlegend, stackgaps=stackgaps, stackgroup=stackgroup, stream=stream, - t=t, text=text, textfont=textfont, textposition=textposition, @@ -11217,7 +11338,6 @@ def add_scatter( textsrc=textsrc, texttemplate=texttemplate, texttemplatesrc=texttemplatesrc, - tsrc=tsrc, uid=uid, uirevision=uirevision, unselected=unselected, @@ -11226,6 +11346,7 @@ def add_scatter( x0=x0, xaxis=xaxis, xcalendar=xcalendar, + xhoverformat=xhoverformat, xperiod=xperiod, xperiod0=xperiod0, xperiodalignment=xperiodalignment, @@ -11234,6 +11355,7 @@ def add_scatter( y0=y0, yaxis=yaxis, ycalendar=ycalendar, + yhoverformat=yhoverformat, yperiod=yperiod, yperiod0=yperiod0, yperiodalignment=yperiodalignment, @@ -11285,12 +11407,15 @@ def add_scatter3d( visible=None, x=None, xcalendar=None, + xhoverformat=None, xsrc=None, y=None, ycalendar=None, + yhoverformat=None, ysrc=None, z=None, zcalendar=None, + zhoverformat=None, zsrc=None, row=None, col=None, @@ -11509,6 +11634,14 @@ def add_scatter3d( Sets the x coordinates. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -11516,6 +11649,14 @@ def add_scatter3d( Sets the y coordinates. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -11523,6 +11664,14 @@ def add_scatter3d( Sets the z coordinates. zcalendar Sets the calendar system to use with `z` date data. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -11585,12 +11734,15 @@ def add_scatter3d( visible=visible, x=x, xcalendar=xcalendar, + xhoverformat=xhoverformat, xsrc=xsrc, y=y, ycalendar=ycalendar, + yhoverformat=yhoverformat, ysrc=ysrc, z=z, zcalendar=zcalendar, + zhoverformat=zhoverformat, zsrc=zsrc, **kwargs ) @@ -12381,6 +12533,7 @@ def add_scattergl( x0=None, xaxis=None, xcalendar=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, @@ -12389,6 +12542,7 @@ def add_scattergl( y0=None, yaxis=None, ycalendar=None, + yhoverformat=None, yperiod=None, yperiod0=None, yperiodalignment=None, @@ -12638,6 +12792,14 @@ def add_scattergl( coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -12670,6 +12832,14 @@ def add_scattergl( coordinates refer to `layout.yaxis2`, and so on. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -12762,6 +12932,7 @@ def add_scattergl( x0=x0, xaxis=xaxis, xcalendar=xcalendar, + xhoverformat=xhoverformat, xperiod=xperiod, xperiod0=xperiod0, xperiodalignment=xperiodalignment, @@ -12770,6 +12941,7 @@ def add_scattergl( y0=y0, yaxis=yaxis, ycalendar=ycalendar, + yhoverformat=yhoverformat, yperiod=yperiod, yperiod0=yperiod0, yperiodalignment=yperiodalignment, @@ -14293,7 +14465,9 @@ def add_splom( unselected=None, visible=None, xaxes=None, + xhoverformat=None, yaxes=None, + yhoverformat=None, row=None, col=None, **kwargs @@ -14476,6 +14650,14 @@ def add_splom( is false and `showupperhalf` or `showlowerhalf` is false, this splom trace will generate one less x-axis and one less y-axis. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. yaxes Sets the list of y axes corresponding to dimensions of this splom trace. By default, a splom will match the @@ -14484,6 +14666,14 @@ def add_splom( is false and `showupperhalf` or `showlowerhalf` is false, this splom trace will generate one less x-axis and one less y-axis. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. row : 'all', int or None (default) Subplot row index (starting from 1) for the trace to be added. Only valid if figure was created using @@ -14535,7 +14725,9 @@ def add_splom( unselected=unselected, visible=visible, xaxes=xaxes, + xhoverformat=xhoverformat, yaxes=yaxes, + yhoverformat=yhoverformat, **kwargs ) return self.add_trace(new_trace, row=row, col=col) @@ -14577,19 +14769,25 @@ def add_streamtube( stream=None, text=None, u=None, + uhoverformat=None, uid=None, uirevision=None, usrc=None, v=None, + vhoverformat=None, visible=None, vsrc=None, w=None, + whoverformat=None, wsrc=None, x=None, + xhoverformat=None, xsrc=None, y=None, + yhoverformat=None, ysrc=None, z=None, + zhoverformat=None, zsrc=None, row=None, col=None, @@ -14785,6 +14983,13 @@ def add_streamtube( streamtube traces do not support array `text` values. u Sets the x components of the vector field. + uhoverformat + Sets the hover text formatting rule for `u` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. uid Assign an id to this trace, Use this to provide object constancy between traces during animations and @@ -14812,6 +15017,13 @@ def add_streamtube( . v Sets the y components of the vector field. + vhoverformat + Sets the hover text formatting rule for `v` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. visible Determines whether or not this trace is visible. If "legendonly", the trace is not drawn, but can appear as @@ -14822,21 +15034,52 @@ def add_streamtube( . w Sets the z components of the vector field. + whoverformat + Sets the hover text formatting rule for `w` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. wsrc Sets the source reference on Chart Studio Cloud for w . x Sets the x coordinates of the vector field. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . y Sets the y coordinates of the vector field. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . z Sets the z coordinates of the vector field. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -14893,19 +15136,25 @@ def add_streamtube( stream=stream, text=text, u=u, + uhoverformat=uhoverformat, uid=uid, uirevision=uirevision, usrc=usrc, v=v, + vhoverformat=vhoverformat, visible=visible, vsrc=vsrc, w=w, + whoverformat=whoverformat, wsrc=wsrc, x=x, + xhoverformat=xhoverformat, xsrc=xsrc, y=y, + yhoverformat=yhoverformat, ysrc=ysrc, z=z, + zhoverformat=zhoverformat, zsrc=zsrc, **kwargs ) @@ -15309,12 +15558,15 @@ def add_surface( visible=None, x=None, xcalendar=None, + xhoverformat=None, xsrc=None, y=None, ycalendar=None, + yhoverformat=None, ysrc=None, z=None, zcalendar=None, + zhoverformat=None, zsrc=None, row=None, col=None, @@ -15561,6 +15813,14 @@ def add_surface( Sets the x coordinates. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -15568,6 +15828,14 @@ def add_surface( Sets the y coordinates. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -15575,6 +15843,14 @@ def add_surface( Sets the z coordinates. zcalendar Sets the calendar system to use with `z` date data. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -15640,12 +15916,15 @@ def add_surface( visible=visible, x=x, xcalendar=xcalendar, + xhoverformat=xhoverformat, xsrc=xsrc, y=y, ycalendar=ycalendar, + yhoverformat=yhoverformat, ysrc=ysrc, z=z, zcalendar=zcalendar, + zhoverformat=zhoverformat, zsrc=zsrc, **kwargs ) @@ -16226,10 +16505,12 @@ def add_violin( x=None, x0=None, xaxis=None, + xhoverformat=None, xsrc=None, y=None, y0=None, yaxis=None, + yhoverformat=None, ysrc=None, row=None, col=None, @@ -16498,6 +16779,14 @@ def add_violin( a 2D cartesian x axis. If "x" (the default value), the x coordinates refer to `layout.xaxis`. If "x2", the x coordinates refer to `layout.xaxis2`, and so on. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -16513,6 +16802,14 @@ def add_violin( a 2D cartesian y axis. If "y" (the default value), the y coordinates refer to `layout.yaxis`. If "y2", the y coordinates refer to `layout.yaxis2`, and so on. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -16592,10 +16889,12 @@ def add_violin( x=x, x0=x0, xaxis=xaxis, + xhoverformat=xhoverformat, xsrc=xsrc, y=y, y0=y0, yaxis=yaxis, + yhoverformat=yhoverformat, ysrc=ysrc, **kwargs ) @@ -16648,13 +16947,17 @@ def add_volume( uid=None, uirevision=None, value=None, + valuehoverformat=None, valuesrc=None, visible=None, x=None, + xhoverformat=None, xsrc=None, y=None, + yhoverformat=None, ysrc=None, z=None, + zhoverformat=None, zsrc=None, row=None, col=None, @@ -16897,6 +17200,13 @@ def add_volume( `uid` that stays with it as it moves. value Sets the 4th dimension (value) of the vertices. + valuehoverformat + Sets the hover text formatting rule for `value` using + d3 formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. valuesrc Sets the source reference on Chart Studio Cloud for value . @@ -16907,16 +17217,40 @@ def add_volume( visible). x Sets the X coordinates of the vertices on X axis. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . y Sets the Y coordinates of the vertices on Y axis. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . z Sets the Z coordinates of the vertices on Z axis. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -16983,13 +17317,17 @@ def add_volume( uid=uid, uirevision=uirevision, value=value, + valuehoverformat=valuehoverformat, valuesrc=valuesrc, visible=visible, x=x, + xhoverformat=xhoverformat, xsrc=xsrc, y=y, + yhoverformat=yhoverformat, ysrc=ysrc, z=z, + zhoverformat=zhoverformat, zsrc=zsrc, **kwargs ) @@ -17052,6 +17390,7 @@ def add_waterfall( x=None, x0=None, xaxis=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, @@ -17059,6 +17398,7 @@ def add_waterfall( y=None, y0=None, yaxis=None, + yhoverformat=None, yperiod=None, yperiod0=None, yperiodalignment=None, @@ -17269,7 +17609,8 @@ def add_waterfall( there is another bar stacked on this one, then the text gets pushed inside. "auto" tries to position `text` inside the bar, but if the bar is too small and no bar - is stacked on this one the text is moved outside. + is stacked on this one the text is moved outside. If + "none", no text appears. textpositionsrc Sets the source reference on Chart Studio Cloud for textposition . @@ -17341,6 +17682,14 @@ def add_waterfall( a 2D cartesian x axis. If "x" (the default value), the x coordinates refer to `layout.xaxis`. If "x2", the x coordinates refer to `layout.xaxis2`, and so on. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -17371,6 +17720,14 @@ def add_waterfall( a 2D cartesian y axis. If "y" (the default value), the y coordinates refer to `layout.yaxis`. If "y2", the y coordinates refer to `layout.yaxis2`, and so on. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -17473,6 +17830,7 @@ def add_waterfall( x=x, x0=x0, xaxis=xaxis, + xhoverformat=xhoverformat, xperiod=xperiod, xperiod0=xperiod0, xperiodalignment=xperiodalignment, @@ -17480,6 +17838,7 @@ def add_waterfall( y=y, y0=y0, yaxis=yaxis, + yhoverformat=yhoverformat, yperiod=yperiod, yperiod0=yperiod0, yperiodalignment=yperiodalignment, diff --git a/packages/python/plotly/plotly/graph_objs/_funnel.py b/packages/python/plotly/plotly/graph_objs/_funnel.py index 6cb6abf76d..c985cc02e4 100644 --- a/packages/python/plotly/plotly/graph_objs/_funnel.py +++ b/packages/python/plotly/plotly/graph_objs/_funnel.py @@ -58,6 +58,7 @@ class Funnel(_BaseTraceType): "x", "x0", "xaxis", + "xhoverformat", "xperiod", "xperiod0", "xperiodalignment", @@ -65,6 +66,7 @@ class Funnel(_BaseTraceType): "y", "y0", "yaxis", + "yhoverformat", "yperiod", "yperiod0", "yperiodalignment", @@ -1173,7 +1175,8 @@ def textposition(self): if needed), unless there is another bar stacked on this one, then the text gets pushed inside. "auto" tries to position `text` inside the bar, but if the bar is too small and no bar - is stacked on this one the text is moved outside. + is stacked on this one the text is moved outside. If "none", no + text appears. The 'textposition' property is an enumeration that may be specified as: - One of the following enumeration values: @@ -1451,6 +1454,32 @@ def xaxis(self): def xaxis(self, val): self["xaxis"] = val + # xhoverformat + # ------------ + @property + def xhoverformat(self): + """ + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `xaxis.hoverformat`. + + The 'xhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["xhoverformat"] + + @xhoverformat.setter + def xhoverformat(self, val): + self["xhoverformat"] = val + # xperiod # ------- @property @@ -1604,6 +1633,32 @@ def yaxis(self): def yaxis(self, val): self["yaxis"] = val + # yhoverformat + # ------------ + @property + def yhoverformat(self): + """ + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `yaxis.hoverformat`. + + The 'yhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["yhoverformat"] + + @yhoverformat.setter + def yhoverformat(self, val): + self["yhoverformat"] = val + # yperiod # ------- @property @@ -1878,7 +1933,8 @@ def _prop_descriptions(self): there is another bar stacked on this one, then the text gets pushed inside. "auto" tries to position `text` inside the bar, but if the bar is too small and no bar - is stacked on this one the text is moved outside. + is stacked on this one the text is moved outside. If + "none", no text appears. textpositionsrc Sets the source reference on Chart Studio Cloud for textposition . @@ -1945,6 +2001,14 @@ def _prop_descriptions(self): a 2D cartesian x axis. If "x" (the default value), the x coordinates refer to `layout.xaxis`. If "x2", the x coordinates refer to `layout.xaxis2`, and so on. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -1975,6 +2039,14 @@ def _prop_descriptions(self): a 2D cartesian y axis. If "y" (the default value), the y coordinates refer to `layout.yaxis`. If "y2", the y coordinates refer to `layout.yaxis2`, and so on. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -2047,6 +2119,7 @@ def __init__( x=None, x0=None, xaxis=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, @@ -2054,6 +2127,7 @@ def __init__( y=None, y0=None, yaxis=None, + yhoverformat=None, yperiod=None, yperiod0=None, yperiodalignment=None, @@ -2251,7 +2325,8 @@ def __init__( there is another bar stacked on this one, then the text gets pushed inside. "auto" tries to position `text` inside the bar, but if the bar is too small and no bar - is stacked on this one the text is moved outside. + is stacked on this one the text is moved outside. If + "none", no text appears. textpositionsrc Sets the source reference on Chart Studio Cloud for textposition . @@ -2318,6 +2393,14 @@ def __init__( a 2D cartesian x axis. If "x" (the default value), the x coordinates refer to `layout.xaxis`. If "x2", the x coordinates refer to `layout.xaxis2`, and so on. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -2348,6 +2431,14 @@ def __init__( a 2D cartesian y axis. If "y" (the default value), the y coordinates refer to `layout.yaxis`. If "y2", the y coordinates refer to `layout.yaxis2`, and so on. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -2593,6 +2684,10 @@ def __init__( _v = xaxis if xaxis is not None else _v if _v is not None: self["xaxis"] = _v + _v = arg.pop("xhoverformat", None) + _v = xhoverformat if xhoverformat is not None else _v + if _v is not None: + self["xhoverformat"] = _v _v = arg.pop("xperiod", None) _v = xperiod if xperiod is not None else _v if _v is not None: @@ -2621,6 +2716,10 @@ def __init__( _v = yaxis if yaxis is not None else _v if _v is not None: self["yaxis"] = _v + _v = arg.pop("yhoverformat", None) + _v = yhoverformat if yhoverformat is not None else _v + if _v is not None: + self["yhoverformat"] = _v _v = arg.pop("yperiod", None) _v = yperiod if yperiod is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/_heatmap.py b/packages/python/plotly/plotly/graph_objs/_heatmap.py index 0b26fb5ce7..c94a93fecc 100644 --- a/packages/python/plotly/plotly/graph_objs/_heatmap.py +++ b/packages/python/plotly/plotly/graph_objs/_heatmap.py @@ -49,6 +49,7 @@ class Heatmap(_BaseTraceType): "xaxis", "xcalendar", "xgap", + "xhoverformat", "xperiod", "xperiod0", "xperiodalignment", @@ -59,6 +60,7 @@ class Heatmap(_BaseTraceType): "yaxis", "ycalendar", "ygap", + "yhoverformat", "yperiod", "yperiod0", "yperiodalignment", @@ -276,6 +278,12 @@ def colorbar(self): a.heatmap.colorbar.tickformatstopdefaults), sets the default property values to use for elements of heatmap.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1255,6 +1263,32 @@ def xgap(self): def xgap(self, val): self["xgap"] = val + # xhoverformat + # ------------ + @property + def xhoverformat(self): + """ + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `xaxis.hoverformat`. + + The 'xhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["xhoverformat"] + + @xhoverformat.setter + def xhoverformat(self, val): + self["xhoverformat"] = val + # xperiod # ------- @property @@ -1476,6 +1510,32 @@ def ygap(self): def ygap(self, val): self["ygap"] = val + # yhoverformat + # ------------ + @property + def yhoverformat(self): + """ + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `yaxis.hoverformat`. + + The 'yhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["yhoverformat"] + + @yhoverformat.setter + def yhoverformat(self, val): + self["yhoverformat"] = val + # yperiod # ------- @property @@ -1635,10 +1695,11 @@ def zauto(self, val): @property def zhoverformat(self): """ - Sets the hover text formatting rule using d3 formatting mini- - languages which are very similar to those in Python. See: - https://github.com/d3/d3-3.x-api- - reference/blob/master/Formatting.md#d3_format + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By default the + values are formatted using generic number format. The 'zhoverformat' property is a string and must be specified as: - A string @@ -1955,6 +2016,14 @@ def _prop_descriptions(self): Sets the calendar system to use with `x` date data. xgap Sets the horizontal gap (in pixels) between bricks. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -1995,6 +2064,14 @@ def _prop_descriptions(self): Sets the calendar system to use with `y` date data. ygap Sets the vertical gap (in pixels) between bricks. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -2028,10 +2105,12 @@ def _prop_descriptions(self): bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user. zhoverformat - Sets the hover text formatting rule using d3 formatting - mini-languages which are very similar to those in - Python. See: https://github.com/d3/d3-3.x-api- - reference/blob/master/Formatting.md#d3_format + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. zmax Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must @@ -2094,6 +2173,7 @@ def __init__( xaxis=None, xcalendar=None, xgap=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, @@ -2104,6 +2184,7 @@ def __init__( yaxis=None, ycalendar=None, ygap=None, + yhoverformat=None, yperiod=None, yperiod0=None, yperiodalignment=None, @@ -2330,6 +2411,14 @@ def __init__( Sets the calendar system to use with `x` date data. xgap Sets the horizontal gap (in pixels) between bricks. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -2370,6 +2459,14 @@ def __init__( Sets the calendar system to use with `y` date data. ygap Sets the vertical gap (in pixels) between bricks. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -2403,10 +2500,12 @@ def __init__( bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user. zhoverformat - Sets the hover text formatting rule using d3 formatting - mini-languages which are very similar to those in - Python. See: https://github.com/d3/d3-3.x-api- - reference/blob/master/Formatting.md#d3_format + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. zmax Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must @@ -2615,6 +2714,10 @@ def __init__( _v = xgap if xgap is not None else _v if _v is not None: self["xgap"] = _v + _v = arg.pop("xhoverformat", None) + _v = xhoverformat if xhoverformat is not None else _v + if _v is not None: + self["xhoverformat"] = _v _v = arg.pop("xperiod", None) _v = xperiod if xperiod is not None else _v if _v is not None: @@ -2655,6 +2758,10 @@ def __init__( _v = ygap if ygap is not None else _v if _v is not None: self["ygap"] = _v + _v = arg.pop("yhoverformat", None) + _v = yhoverformat if yhoverformat is not None else _v + if _v is not None: + self["yhoverformat"] = _v _v = arg.pop("yperiod", None) _v = yperiod if yperiod is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/_heatmapgl.py b/packages/python/plotly/plotly/graph_objs/_heatmapgl.py index 2ec5ff43e2..e8195f6cfb 100644 --- a/packages/python/plotly/plotly/graph_objs/_heatmapgl.py +++ b/packages/python/plotly/plotly/graph_objs/_heatmapgl.py @@ -257,6 +257,12 @@ def colorbar(self): a.heatmapgl.colorbar.tickformatstopdefaults), sets the default property values to use for elements of heatmapgl.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1557,7 +1563,11 @@ def __init__( """ Construct a new Heatmapgl object - WebGL version of the heatmap trace type. + "heatmapgl" trace is deprecated! Please consider switching to + the "heatmap" or "image" trace types. Alternatively you could + contribute/sponsor rewriting this trace type based on cartesian + features and using regl framework. WebGL version of the heatmap + trace type. Parameters ---------- diff --git a/packages/python/plotly/plotly/graph_objs/_histogram.py b/packages/python/plotly/plotly/graph_objs/_histogram.py index 3744f15891..d6953c40cb 100644 --- a/packages/python/plotly/plotly/graph_objs/_histogram.py +++ b/packages/python/plotly/plotly/graph_objs/_histogram.py @@ -54,11 +54,13 @@ class Histogram(_BaseTraceType): "xaxis", "xbins", "xcalendar", + "xhoverformat", "xsrc", "y", "yaxis", "ybins", "ycalendar", + "yhoverformat", "ysrc", } @@ -846,6 +848,10 @@ def marker(self): opacitysrc Sets the source reference on Chart Studio Cloud for opacity . + pattern + :class:`plotly.graph_objects.histogram.marker.P + attern` instance or dict with compatible + properties reversescale Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a @@ -1453,6 +1459,32 @@ def xcalendar(self): def xcalendar(self, val): self["xcalendar"] = val + # xhoverformat + # ------------ + @property + def xhoverformat(self): + """ + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `xaxis.hoverformat`. + + The 'xhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["xhoverformat"] + + @xhoverformat.setter + def xhoverformat(self, val): + self["xhoverformat"] = val + # xsrc # ---- @property @@ -1610,6 +1642,32 @@ def ycalendar(self): def ycalendar(self, val): self["ycalendar"] = val + # yhoverformat + # ------------ + @property + def yhoverformat(self): + """ + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `yaxis.hoverformat`. + + The 'yhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["yhoverformat"] + + @yhoverformat.setter + def yhoverformat(self, val): + self["yhoverformat"] = val + # ysrc # ---- @property @@ -1872,6 +1930,14 @@ def _prop_descriptions(self): or dict with compatible properties xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -1887,6 +1953,14 @@ def _prop_descriptions(self): or dict with compatible properties ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -1939,11 +2013,13 @@ def __init__( xaxis=None, xbins=None, xcalendar=None, + xhoverformat=None, xsrc=None, y=None, yaxis=None, ybins=None, ycalendar=None, + yhoverformat=None, ysrc=None, **kwargs ): @@ -2192,6 +2268,14 @@ def __init__( or dict with compatible properties xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -2207,6 +2291,14 @@ def __init__( or dict with compatible properties ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -2420,6 +2512,10 @@ def __init__( _v = xcalendar if xcalendar is not None else _v if _v is not None: self["xcalendar"] = _v + _v = arg.pop("xhoverformat", None) + _v = xhoverformat if xhoverformat is not None else _v + if _v is not None: + self["xhoverformat"] = _v _v = arg.pop("xsrc", None) _v = xsrc if xsrc is not None else _v if _v is not None: @@ -2440,6 +2536,10 @@ def __init__( _v = ycalendar if ycalendar is not None else _v if _v is not None: self["ycalendar"] = _v + _v = arg.pop("yhoverformat", None) + _v = yhoverformat if yhoverformat is not None else _v + if _v is not None: + self["yhoverformat"] = _v _v = arg.pop("ysrc", None) _v = ysrc if ysrc is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/_histogram2d.py b/packages/python/plotly/plotly/graph_objs/_histogram2d.py index efd6e6b113..af09931c7e 100644 --- a/packages/python/plotly/plotly/graph_objs/_histogram2d.py +++ b/packages/python/plotly/plotly/graph_objs/_histogram2d.py @@ -49,6 +49,7 @@ class Histogram2d(_BaseTraceType): "xbins", "xcalendar", "xgap", + "xhoverformat", "xsrc", "y", "yaxis", @@ -56,6 +57,7 @@ class Histogram2d(_BaseTraceType): "ybins", "ycalendar", "ygap", + "yhoverformat", "ysrc", "z", "zauto", @@ -339,6 +341,12 @@ def colorbar(self): sets the default property values to use for elements of histogram2d.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1333,6 +1341,32 @@ def xgap(self): def xgap(self, val): self["xgap"] = val + # xhoverformat + # ------------ + @property + def xhoverformat(self): + """ + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `xaxis.hoverformat`. + + The 'xhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["xhoverformat"] + + @xhoverformat.setter + def xhoverformat(self, val): + self["xhoverformat"] = val + # xsrc # ---- @property @@ -1525,6 +1559,32 @@ def ygap(self): def ygap(self, val): self["ygap"] = val + # yhoverformat + # ------------ + @property + def yhoverformat(self): + """ + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `yaxis.hoverformat`. + + The 'yhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["yhoverformat"] + + @yhoverformat.setter + def yhoverformat(self, val): + self["yhoverformat"] = val + # ysrc # ---- @property @@ -1593,10 +1653,11 @@ def zauto(self, val): @property def zhoverformat(self): """ - Sets the hover text formatting rule using d3 formatting mini- - languages which are very similar to those in Python. See: - https://github.com/d3/d3-3.x-api- - reference/blob/master/Formatting.md#d3_format + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By default the + values are formatted using generic number format. The 'zhoverformat' property is a string and must be specified as: - A string @@ -1952,6 +2013,14 @@ def _prop_descriptions(self): Sets the calendar system to use with `x` date data. xgap Sets the horizontal gap (in pixels) between bricks. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -1976,6 +2045,14 @@ def _prop_descriptions(self): Sets the calendar system to use with `y` date data. ygap Sets the vertical gap (in pixels) between bricks. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -1987,10 +2064,12 @@ def _prop_descriptions(self): bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user. zhoverformat - Sets the hover text formatting rule using d3 formatting - mini-languages which are very similar to those in - Python. See: https://github.com/d3/d3-3.x-api- - reference/blob/master/Formatting.md#d3_format + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. zmax Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must @@ -2053,6 +2132,7 @@ def __init__( xbins=None, xcalendar=None, xgap=None, + xhoverformat=None, xsrc=None, y=None, yaxis=None, @@ -2060,6 +2140,7 @@ def __init__( ybins=None, ycalendar=None, ygap=None, + yhoverformat=None, ysrc=None, z=None, zauto=None, @@ -2310,6 +2391,14 @@ def __init__( Sets the calendar system to use with `x` date data. xgap Sets the horizontal gap (in pixels) between bricks. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -2334,6 +2423,14 @@ def __init__( Sets the calendar system to use with `y` date data. ygap Sets the vertical gap (in pixels) between bricks. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -2345,10 +2442,12 @@ def __init__( bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user. zhoverformat - Sets the hover text formatting rule using d3 formatting - mini-languages which are very similar to those in - Python. See: https://github.com/d3/d3-3.x-api- - reference/blob/master/Formatting.md#d3_format + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. zmax Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must @@ -2557,6 +2656,10 @@ def __init__( _v = xgap if xgap is not None else _v if _v is not None: self["xgap"] = _v + _v = arg.pop("xhoverformat", None) + _v = xhoverformat if xhoverformat is not None else _v + if _v is not None: + self["xhoverformat"] = _v _v = arg.pop("xsrc", None) _v = xsrc if xsrc is not None else _v if _v is not None: @@ -2585,6 +2688,10 @@ def __init__( _v = ygap if ygap is not None else _v if _v is not None: self["ygap"] = _v + _v = arg.pop("yhoverformat", None) + _v = yhoverformat if yhoverformat is not None else _v + if _v is not None: + self["yhoverformat"] = _v _v = arg.pop("ysrc", None) _v = ysrc if ysrc is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/_histogram2dcontour.py b/packages/python/plotly/plotly/graph_objs/_histogram2dcontour.py index ecc79cba66..292c7b9942 100644 --- a/packages/python/plotly/plotly/graph_objs/_histogram2dcontour.py +++ b/packages/python/plotly/plotly/graph_objs/_histogram2dcontour.py @@ -52,12 +52,14 @@ class Histogram2dContour(_BaseTraceType): "xbingroup", "xbins", "xcalendar", + "xhoverformat", "xsrc", "y", "yaxis", "ybingroup", "ybins", "ycalendar", + "yhoverformat", "ysrc", "z", "zauto", @@ -363,6 +365,12 @@ def colorbar(self): aults), sets the default property values to use for elements of histogram2dcontour.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1486,6 +1494,32 @@ def xcalendar(self): def xcalendar(self, val): self["xcalendar"] = val + # xhoverformat + # ------------ + @property + def xhoverformat(self): + """ + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `xaxis.hoverformat`. + + The 'xhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["xhoverformat"] + + @xhoverformat.setter + def xhoverformat(self, val): + self["xhoverformat"] = val + # xsrc # ---- @property @@ -1658,6 +1692,32 @@ def ycalendar(self): def ycalendar(self, val): self["ycalendar"] = val + # yhoverformat + # ------------ + @property + def yhoverformat(self): + """ + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `yaxis.hoverformat`. + + The 'yhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["yhoverformat"] + + @yhoverformat.setter + def yhoverformat(self, val): + self["yhoverformat"] = val + # ysrc # ---- @property @@ -1726,10 +1786,11 @@ def zauto(self, val): @property def zhoverformat(self): """ - Sets the hover text formatting rule using d3 formatting mini- - languages which are very similar to those in Python. See: - https://github.com/d3/d3-3.x-api- - reference/blob/master/Formatting.md#d3_format + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By default the + values are formatted using generic number format. The 'zhoverformat' property is a string and must be specified as: - A string @@ -2079,6 +2140,14 @@ def _prop_descriptions(self): instance or dict with compatible properties xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -2101,6 +2170,14 @@ def _prop_descriptions(self): instance or dict with compatible properties ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -2112,10 +2189,12 @@ def _prop_descriptions(self): bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user. zhoverformat - Sets the hover text formatting rule using d3 formatting - mini-languages which are very similar to those in - Python. See: https://github.com/d3/d3-3.x-api- - reference/blob/master/Formatting.md#d3_format + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. zmax Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must @@ -2179,12 +2258,14 @@ def __init__( xbingroup=None, xbins=None, xcalendar=None, + xhoverformat=None, xsrc=None, y=None, yaxis=None, ybingroup=None, ybins=None, ycalendar=None, + yhoverformat=None, ysrc=None, z=None, zauto=None, @@ -2450,6 +2531,14 @@ def __init__( instance or dict with compatible properties xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -2472,6 +2561,14 @@ def __init__( instance or dict with compatible properties ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -2483,10 +2580,12 @@ def __init__( bounds set in `zmin` and `zmax` Defaults to `false` when `zmin` and `zmax` are set by the user. zhoverformat - Sets the hover text formatting rule using d3 formatting - mini-languages which are very similar to those in - Python. See: https://github.com/d3/d3-3.x-api- - reference/blob/master/Formatting.md#d3_format + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. zmax Sets the upper bound of the color domain. Value should have the same units as in `z` and if set, `zmin` must @@ -2705,6 +2804,10 @@ def __init__( _v = xcalendar if xcalendar is not None else _v if _v is not None: self["xcalendar"] = _v + _v = arg.pop("xhoverformat", None) + _v = xhoverformat if xhoverformat is not None else _v + if _v is not None: + self["xhoverformat"] = _v _v = arg.pop("xsrc", None) _v = xsrc if xsrc is not None else _v if _v is not None: @@ -2729,6 +2832,10 @@ def __init__( _v = ycalendar if ycalendar is not None else _v if _v is not None: self["ycalendar"] = _v + _v = arg.pop("yhoverformat", None) + _v = yhoverformat if yhoverformat is not None else _v + if _v is not None: + self["yhoverformat"] = _v _v = arg.pop("ysrc", None) _v = ysrc if ysrc is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/_image.py b/packages/python/plotly/plotly/graph_objs/_image.py index 602115a6a8..5fa4020e9d 100644 --- a/packages/python/plotly/plotly/graph_objs/_image.py +++ b/packages/python/plotly/plotly/graph_objs/_image.py @@ -42,6 +42,7 @@ class Image(_BaseTraceType): "z", "zmax", "zmin", + "zsmooth", "zsrc", } @@ -845,6 +846,28 @@ def zmin(self): def zmin(self, val): self["zmin"] = val + # zsmooth + # ------- + @property + def zsmooth(self): + """ + Picks a smoothing algorithm used to smooth `z` data. This only + applies for image traces that use the `source` attribute. + + The 'zsmooth' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['fast', False] + + Returns + ------- + Any + """ + return self["zsmooth"] + + @zsmooth.setter + def zsmooth(self, val): + self["zsmooth"] = val + # zsrc # ---- @property @@ -1036,6 +1059,10 @@ def _prop_descriptions(self): the `rgba256` colormodel, it is [0, 0, 0, 0]. For the `hsl` colormodel, it is [0, 0, 0]. For the `hsla` colormodel, it is [0, 0, 0, 0]. + zsmooth + Picks a smoothing algorithm used to smooth `z` data. + This only applies for image traces that use the + `source` attribute. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -1076,6 +1103,7 @@ def __init__( z=None, zmax=None, zmin=None, + zsmooth=None, zsrc=None, **kwargs ): @@ -1254,6 +1282,10 @@ def __init__( the `rgba256` colormodel, it is [0, 0, 0, 0]. For the `hsl` colormodel, it is [0, 0, 0]. For the `hsla` colormodel, it is [0, 0, 0, 0]. + zsmooth + Picks a smoothing algorithm used to smooth `z` data. + This only applies for image traces that use the + `source` attribute. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -1419,6 +1451,10 @@ def __init__( _v = zmin if zmin is not None else _v if _v is not None: self["zmin"] = _v + _v = arg.pop("zsmooth", None) + _v = zsmooth if zsmooth is not None else _v + if _v is not None: + self["zsmooth"] = _v _v = arg.pop("zsrc", None) _v = zsrc if zsrc is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/_isosurface.py b/packages/python/plotly/plotly/graph_objs/_isosurface.py index 1684e7051d..ac012cf061 100644 --- a/packages/python/plotly/plotly/graph_objs/_isosurface.py +++ b/packages/python/plotly/plotly/graph_objs/_isosurface.py @@ -54,13 +54,17 @@ class Isosurface(_BaseTraceType): "uid", "uirevision", "value", + "valuehoverformat", "valuesrc", "visible", "x", + "xhoverformat", "xsrc", "y", + "yhoverformat", "ysrc", "z", + "zhoverformat", "zsrc", } @@ -386,6 +390,12 @@ def colorbar(self): a.isosurface.colorbar.tickformatstopdefaults), sets the default property values to use for elements of isosurface.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1478,6 +1488,31 @@ def value(self): def value(self, val): self["value"] = val + # valuehoverformat + # ---------------- + @property + def valuehoverformat(self): + """ + Sets the hover text formatting rule for `value` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By default the + values are formatted using generic number format. + + The 'valuehoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["valuehoverformat"] + + @valuehoverformat.setter + def valuehoverformat(self, val): + self["valuehoverformat"] = val + # valuesrc # -------- @property @@ -1541,6 +1576,32 @@ def x(self): def x(self, val): self["x"] = val + # xhoverformat + # ------------ + @property + def xhoverformat(self): + """ + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `xaxis.hoverformat`. + + The 'xhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["xhoverformat"] + + @xhoverformat.setter + def xhoverformat(self, val): + self["xhoverformat"] = val + # xsrc # ---- @property @@ -1581,6 +1642,32 @@ def y(self): def y(self, val): self["y"] = val + # yhoverformat + # ------------ + @property + def yhoverformat(self): + """ + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `yaxis.hoverformat`. + + The 'yhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["yhoverformat"] + + @yhoverformat.setter + def yhoverformat(self, val): + self["yhoverformat"] = val + # ysrc # ---- @property @@ -1621,6 +1708,32 @@ def z(self): def z(self, val): self["z"] = val + # zhoverformat + # ------------ + @property + def zhoverformat(self): + """ + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `zaxis.hoverformat`. + + The 'zhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["zhoverformat"] + + @zhoverformat.setter + def zhoverformat(self, val): + self["zhoverformat"] = val + # zsrc # ---- @property @@ -1866,6 +1979,13 @@ def _prop_descriptions(self): `uid` that stays with it as it moves. value Sets the 4th dimension (value) of the vertices. + valuehoverformat + Sets the hover text formatting rule for `value` using + d3 formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. valuesrc Sets the source reference on Chart Studio Cloud for value . @@ -1876,16 +1996,40 @@ def _prop_descriptions(self): visible). x Sets the X coordinates of the vertices on X axis. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . y Sets the Y coordinates of the vertices on Y axis. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . z Sets the Z coordinates of the vertices on Z axis. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -1938,13 +2082,17 @@ def __init__( uid=None, uirevision=None, value=None, + valuehoverformat=None, valuesrc=None, visible=None, x=None, + xhoverformat=None, xsrc=None, y=None, + yhoverformat=None, ysrc=None, z=None, + zhoverformat=None, zsrc=None, **kwargs ): @@ -2177,6 +2325,13 @@ def __init__( `uid` that stays with it as it moves. value Sets the 4th dimension (value) of the vertices. + valuehoverformat + Sets the hover text formatting rule for `value` using + d3 formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. valuesrc Sets the source reference on Chart Studio Cloud for value . @@ -2187,16 +2342,40 @@ def __init__( visible). x Sets the X coordinates of the vertices on X axis. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . y Sets the Y coordinates of the vertices on Y axis. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . z Sets the Z coordinates of the vertices on Z axis. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -2410,6 +2589,10 @@ def __init__( _v = value if value is not None else _v if _v is not None: self["value"] = _v + _v = arg.pop("valuehoverformat", None) + _v = valuehoverformat if valuehoverformat is not None else _v + if _v is not None: + self["valuehoverformat"] = _v _v = arg.pop("valuesrc", None) _v = valuesrc if valuesrc is not None else _v if _v is not None: @@ -2422,6 +2605,10 @@ def __init__( _v = x if x is not None else _v if _v is not None: self["x"] = _v + _v = arg.pop("xhoverformat", None) + _v = xhoverformat if xhoverformat is not None else _v + if _v is not None: + self["xhoverformat"] = _v _v = arg.pop("xsrc", None) _v = xsrc if xsrc is not None else _v if _v is not None: @@ -2430,6 +2617,10 @@ def __init__( _v = y if y is not None else _v if _v is not None: self["y"] = _v + _v = arg.pop("yhoverformat", None) + _v = yhoverformat if yhoverformat is not None else _v + if _v is not None: + self["yhoverformat"] = _v _v = arg.pop("ysrc", None) _v = ysrc if ysrc is not None else _v if _v is not None: @@ -2438,6 +2629,10 @@ def __init__( _v = z if z is not None else _v if _v is not None: self["z"] = _v + _v = arg.pop("zhoverformat", None) + _v = zhoverformat if zhoverformat is not None else _v + if _v is not None: + self["zhoverformat"] = _v _v = arg.pop("zsrc", None) _v = zsrc if zsrc is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/_layout.py b/packages/python/plotly/plotly/graph_objs/_layout.py index 59d93124f6..bccf420a9d 100644 --- a/packages/python/plotly/plotly/graph_objs/_layout.py +++ b/packages/python/plotly/plotly/graph_objs/_layout.py @@ -59,7 +59,6 @@ def _subplot_re_match(self, prop): _path_str = "layout" _valid_props = { "activeshape", - "angularaxis", "annotationdefaults", "annotations", "autosize", @@ -78,7 +77,6 @@ def _subplot_re_match(self, prop): "colorway", "computed", "datarevision", - "direction", "dragmode", "editrevision", "extendfunnelareacolors", @@ -108,12 +106,10 @@ def _subplot_re_match(self, prop): "metasrc", "modebar", "newshape", - "orientation", "paper_bgcolor", "piecolorway", "plot_bgcolor", "polar", - "radialaxis", "scene", "selectdirection", "selectionrevision", @@ -175,71 +171,6 @@ def activeshape(self): def activeshape(self, val): self["activeshape"] = val - # angularaxis - # ----------- - @property - def angularaxis(self): - """ - The 'angularaxis' property is an instance of AngularAxis - that may be specified as: - - An instance of :class:`plotly.graph_objs.layout.AngularAxis` - - A dict of string/value properties that will be passed - to the AngularAxis constructor - - Supported dict properties: - - domain - Polar chart subplots are not supported yet. - This key has currently no effect. - endpadding - Legacy polar charts are deprecated! Please - switch to "polar" subplots. - range - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Defines the start - and end point of this angular axis. - showline - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Determines whether - or not the line bounding this angular axis will - be shown on the figure. - showticklabels - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Determines whether - or not the angular axis ticks will feature tick - labels. - tickcolor - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Sets the color of - the tick lines on this angular axis. - ticklen - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Sets the length of - the tick lines on this angular axis. - tickorientation - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Sets the - orientation (from the paper perspective) of the - angular axis tick labels. - ticksuffix - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Sets the length of - the tick lines on this angular axis. - visible - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Determines whether - or not this axis will be visible. - - Returns - ------- - plotly.graph_objs.layout.AngularAxis - """ - return self["angularaxis"] - - @angularaxis.setter - def angularaxis(self, val): - self["angularaxis"] = val - # annotations # ----------- @property @@ -1066,29 +997,6 @@ def datarevision(self): def datarevision(self, val): self["datarevision"] = val - # direction - # --------- - @property - def direction(self): - """ - Legacy polar charts are deprecated! Please switch to "polar" - subplots. Sets the direction corresponding to positive angles - in legacy polar charts. - - The 'direction' property is an enumeration that may be specified as: - - One of the following enumeration values: - ['clockwise', 'counterclockwise'] - - Returns - ------- - Any - """ - return self["direction"] - - @direction.setter - def direction(self, val): - self["direction"] = val - # dragmode # -------- @property @@ -1784,12 +1692,7 @@ def hovermode(self): `hoverdistance` with the caveat that no more than one hoverlabel will appear per trace. In this mode, spikelines are enabled by default perpendicular to the specified axis. If - false, hover interactions are disabled. If `clickmode` includes - the "select" flag, `hovermode` defaults to "closest". If - `clickmode` lacks the "select" flag, it defaults to "x" or "y" - (depending on the trace's `orientation` value) for plots based - on cartesian coordinates. For anything else the default value - is "closest". + false, hover interactions are disabled. The 'hovermode' property is an enumeration that may be specified as: - One of the following enumeration values: @@ -2257,12 +2160,53 @@ def modebar(self): activecolor Sets the color of the active or hovered on icons in the modebar. + add + Determines which predefined modebar buttons to + add. Please note that these buttons will only + be shown if they are compatible with all trace + types used in a graph. Similar to + `config.modeBarButtonsToAdd` option. This may + include "v1hovermode", "hoverclosest", + "hovercompare", "togglehover", + "togglespikelines", "drawline", "drawopenpath", + "drawclosedpath", "drawcircle", "drawrect", + "eraseshape". + addsrc + Sets the source reference on Chart Studio Cloud + for add . bgcolor Sets the background color of the modebar. color Sets the color of the icons in the modebar. orientation Sets the orientation of the modebar. + remove + Determines which predefined modebar buttons to + remove. Similar to + `config.modeBarButtonsToRemove` option. This + may include "autoScale2d", "autoscale", + "editInChartStudio", "editinchartstudio", + "hoverCompareCartesian", "hovercompare", + "lasso", "lasso2d", "orbitRotation", + "orbitrotation", "pan", "pan2d", "pan3d", + "reset", "resetCameraDefault3d", + "resetCameraLastSave3d", "resetGeo", + "resetSankeyGroup", "resetScale2d", + "resetViewMapbox", "resetViews", + "resetcameradefault", "resetcameralastsave", + "resetsankeygroup", "resetscale", "resetview", + "resetviews", "select", "select2d", + "sendDataToCloud", "senddatatocloud", + "tableRotation", "tablerotation", "toImage", + "toggleHover", "toggleSpikelines", + "togglehover", "togglespikelines", "toimage", + "zoom", "zoom2d", "zoom3d", "zoomIn2d", + "zoomInGeo", "zoomInMapbox", "zoomOut2d", + "zoomOutGeo", "zoomOutMapbox", "zoomin", + "zoomout". + removesrc + Sets the source reference on Chart Studio Cloud + for remove . uirevision Controls persistence of user-driven changes related to the modebar, including `hovermode`, @@ -2331,30 +2275,6 @@ def newshape(self): def newshape(self, val): self["newshape"] = val - # orientation - # ----------- - @property - def orientation(self): - """ - Legacy polar charts are deprecated! Please switch to "polar" - subplots. Rotates the entire polar by the given angle in legacy - polar charts. - - The 'orientation' property is a angle (in degrees) that may be - specified as a number between -180 and 180. Numeric values outside this - range are converted to the equivalent value - (e.g. 270 is converted to -90). - - Returns - ------- - int|float - """ - return self["orientation"] - - @orientation.setter - def orientation(self, val): - self["orientation"] = val - # paper_bgcolor # ------------- @property @@ -2571,76 +2491,6 @@ def polar(self): def polar(self, val): self["polar"] = val - # radialaxis - # ---------- - @property - def radialaxis(self): - """ - The 'radialaxis' property is an instance of RadialAxis - that may be specified as: - - An instance of :class:`plotly.graph_objs.layout.RadialAxis` - - A dict of string/value properties that will be passed - to the RadialAxis constructor - - Supported dict properties: - - domain - Polar chart subplots are not supported yet. - This key has currently no effect. - endpadding - Legacy polar charts are deprecated! Please - switch to "polar" subplots. - orientation - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Sets the - orientation (an angle with respect to the - origin) of the radial axis. - range - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Defines the start - and end point of this radial axis. - showline - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Determines whether - or not the line bounding this radial axis will - be shown on the figure. - showticklabels - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Determines whether - or not the radial axis ticks will feature tick - labels. - tickcolor - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Sets the color of - the tick lines on this radial axis. - ticklen - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Sets the length of - the tick lines on this radial axis. - tickorientation - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Sets the - orientation (from the paper perspective) of the - radial axis tick labels. - ticksuffix - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Sets the length of - the tick lines on this radial axis. - visible - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Determines whether - or not this axis will be visible. - - Returns - ------- - plotly.graph_objs.layout.RadialAxis - """ - return self["radialaxis"] - - @radialaxis.setter - def radialaxis(self, val): - self["radialaxis"] = val - # scene # ----- @property @@ -4262,6 +4112,14 @@ def xaxis(self): "date" When set to "period", tick labels are drawn in the middle of the period between ticks. + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. Otherwise on + "category" and "multicategory" axes the default + is "allow". In other cases the default is *hide + past div*. ticklabelposition Determines where tick labels are drawn with respect to the axis Please note that top or @@ -4737,6 +4595,14 @@ def yaxis(self): "date" When set to "period", tick labels are drawn in the middle of the period between ticks. + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. Otherwise on + "category" and "multicategory" axes the default + is "allow". In other cases the default is *hide + past div*. ticklabelposition Determines where tick labels are drawn with respect to the axis Please note that top or @@ -4845,9 +4711,6 @@ def _prop_descriptions(self): activeshape :class:`plotly.graph_objects.layout.Activeshape` instance or dict with compatible properties - angularaxis - :class:`plotly.graph_objects.layout.AngularAxis` - instance or dict with compatible properties annotations A tuple of :class:`plotly.graph_objects.layout.Annotation` @@ -4948,10 +4811,6 @@ def _prop_descriptions(self): treated as immutable, thus any data array with a different identity from its predecessor contains new data. - direction - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Sets the direction corresponding to - positive angles in legacy polar charts. dragmode Determines the mode of drag interactions. "select" and "lasso" apply only to scatter traces with markers or @@ -5069,12 +4928,7 @@ def _prop_descriptions(self): than one hoverlabel will appear per trace. In this mode, spikelines are enabled by default perpendicular to the specified axis. If false, hover interactions are - disabled. If `clickmode` includes the "select" flag, - `hovermode` defaults to "closest". If `clickmode` lacks - the "select" flag, it defaults to "x" or "y" (depending - on the trace's `orientation` value) for plots based on - cartesian coordinates. For anything else the default - value is "closest". + disabled. images A tuple of :class:`plotly.graph_objects.layout.Image` instances or dicts with compatible properties @@ -5111,10 +4965,6 @@ def _prop_descriptions(self): newshape :class:`plotly.graph_objects.layout.Newshape` instance or dict with compatible properties - orientation - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Rotates the entire polar by the given - angle in legacy polar charts. paper_bgcolor Sets the background color of the paper where the graph is drawn. @@ -5129,9 +4979,6 @@ def _prop_descriptions(self): polar :class:`plotly.graph_objects.layout.Polar` instance or dict with compatible properties - radialaxis - :class:`plotly.graph_objects.layout.RadialAxis` - instance or dict with compatible properties scene :class:`plotly.graph_objects.layout.Scene` instance or dict with compatible properties @@ -5299,7 +5146,6 @@ def __init__( self, arg=None, activeshape=None, - angularaxis=None, annotations=None, annotationdefaults=None, autosize=None, @@ -5318,7 +5164,6 @@ def __init__( colorway=None, computed=None, datarevision=None, - direction=None, dragmode=None, editrevision=None, extendfunnelareacolors=None, @@ -5348,12 +5193,10 @@ def __init__( metasrc=None, modebar=None, newshape=None, - orientation=None, paper_bgcolor=None, piecolorway=None, plot_bgcolor=None, polar=None, - radialaxis=None, scene=None, selectdirection=None, selectionrevision=None, @@ -5397,9 +5240,6 @@ def __init__( activeshape :class:`plotly.graph_objects.layout.Activeshape` instance or dict with compatible properties - angularaxis - :class:`plotly.graph_objects.layout.AngularAxis` - instance or dict with compatible properties annotations A tuple of :class:`plotly.graph_objects.layout.Annotation` @@ -5500,10 +5340,6 @@ def __init__( treated as immutable, thus any data array with a different identity from its predecessor contains new data. - direction - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Sets the direction corresponding to - positive angles in legacy polar charts. dragmode Determines the mode of drag interactions. "select" and "lasso" apply only to scatter traces with markers or @@ -5621,12 +5457,7 @@ def __init__( than one hoverlabel will appear per trace. In this mode, spikelines are enabled by default perpendicular to the specified axis. If false, hover interactions are - disabled. If `clickmode` includes the "select" flag, - `hovermode` defaults to "closest". If `clickmode` lacks - the "select" flag, it defaults to "x" or "y" (depending - on the trace's `orientation` value) for plots based on - cartesian coordinates. For anything else the default - value is "closest". + disabled. images A tuple of :class:`plotly.graph_objects.layout.Image` instances or dicts with compatible properties @@ -5663,10 +5494,6 @@ def __init__( newshape :class:`plotly.graph_objects.layout.Newshape` instance or dict with compatible properties - orientation - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Rotates the entire polar by the given - angle in legacy polar charts. paper_bgcolor Sets the background color of the paper where the graph is drawn. @@ -5681,9 +5508,6 @@ def __init__( polar :class:`plotly.graph_objects.layout.Polar` instance or dict with compatible properties - radialaxis - :class:`plotly.graph_objects.layout.RadialAxis` - instance or dict with compatible properties scene :class:`plotly.graph_objects.layout.Scene` instance or dict with compatible properties @@ -5858,7 +5682,6 @@ def __init__( # to support subplot properties (e.g. xaxis2) self._valid_props = { "activeshape", - "angularaxis", "annotationdefaults", "annotations", "autosize", @@ -5877,7 +5700,6 @@ def __init__( "colorway", "computed", "datarevision", - "direction", "dragmode", "editrevision", "extendfunnelareacolors", @@ -5907,12 +5729,10 @@ def __init__( "metasrc", "modebar", "newshape", - "orientation", "paper_bgcolor", "piecolorway", "plot_bgcolor", "polar", - "radialaxis", "scene", "selectdirection", "selectionrevision", @@ -5972,10 +5792,6 @@ def __init__( _v = activeshape if activeshape is not None else _v if _v is not None: self["activeshape"] = _v - _v = arg.pop("angularaxis", None) - _v = angularaxis if angularaxis is not None else _v - if _v is not None: - self["angularaxis"] = _v _v = arg.pop("annotations", None) _v = annotations if annotations is not None else _v if _v is not None: @@ -6048,10 +5864,6 @@ def __init__( _v = datarevision if datarevision is not None else _v if _v is not None: self["datarevision"] = _v - _v = arg.pop("direction", None) - _v = direction if direction is not None else _v - if _v is not None: - self["direction"] = _v _v = arg.pop("dragmode", None) _v = dragmode if dragmode is not None else _v if _v is not None: @@ -6168,10 +5980,6 @@ def __init__( _v = newshape if newshape is not None else _v if _v is not None: self["newshape"] = _v - _v = arg.pop("orientation", None) - _v = orientation if orientation is not None else _v - if _v is not None: - self["orientation"] = _v _v = arg.pop("paper_bgcolor", None) _v = paper_bgcolor if paper_bgcolor is not None else _v if _v is not None: @@ -6188,10 +5996,6 @@ def __init__( _v = polar if polar is not None else _v if _v is not None: self["polar"] = _v - _v = arg.pop("radialaxis", None) - _v = radialaxis if radialaxis is not None else _v - if _v is not None: - self["radialaxis"] = _v _v = arg.pop("scene", None) _v = scene if scene is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/_mesh3d.py b/packages/python/plotly/plotly/graph_objs/_mesh3d.py index 1cab79b91c..42c05b95e7 100644 --- a/packages/python/plotly/plotly/graph_objs/_mesh3d.py +++ b/packages/python/plotly/plotly/graph_objs/_mesh3d.py @@ -66,12 +66,15 @@ class Mesh3d(_BaseTraceType): "visible", "x", "xcalendar", + "xhoverformat", "xsrc", "y", "ycalendar", + "yhoverformat", "ysrc", "z", "zcalendar", + "zhoverformat", "zsrc", } @@ -463,6 +466,12 @@ def colorbar(self): a.mesh3d.colorbar.tickformatstopdefaults), sets the default property values to use for elements of mesh3d.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1755,6 +1764,32 @@ def xcalendar(self): def xcalendar(self, val): self["xcalendar"] = val + # xhoverformat + # ------------ + @property + def xhoverformat(self): + """ + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `xaxis.hoverformat`. + + The 'xhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["xhoverformat"] + + @xhoverformat.setter + def xhoverformat(self, val): + self["xhoverformat"] = val + # xsrc # ---- @property @@ -1821,6 +1856,32 @@ def ycalendar(self): def ycalendar(self, val): self["ycalendar"] = val + # yhoverformat + # ------------ + @property + def yhoverformat(self): + """ + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `yaxis.hoverformat`. + + The 'yhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["yhoverformat"] + + @yhoverformat.setter + def yhoverformat(self, val): + self["yhoverformat"] = val + # ysrc # ---- @property @@ -1887,6 +1948,32 @@ def zcalendar(self): def zcalendar(self, val): self["zcalendar"] = val + # zhoverformat + # ------------ + @property + def zhoverformat(self): + """ + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `zaxis.hoverformat`. + + The 'zhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["zhoverformat"] + + @zhoverformat.setter + def zhoverformat(self, val): + self["zhoverformat"] = val + # zsrc # ---- @property @@ -2212,6 +2299,14 @@ def _prop_descriptions(self): and Z coordinates of the nth vertex. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -2221,6 +2316,14 @@ def _prop_descriptions(self): and Z coordinates of the nth vertex. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -2230,6 +2333,14 @@ def _prop_descriptions(self): and Z coordinates of the nth vertex. zcalendar Sets the calendar system to use with `z` date data. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -2294,12 +2405,15 @@ def __init__( visible=None, x=None, xcalendar=None, + xhoverformat=None, xsrc=None, y=None, ycalendar=None, + yhoverformat=None, ysrc=None, z=None, zcalendar=None, + zhoverformat=None, zsrc=None, **kwargs ): @@ -2610,6 +2724,14 @@ def __init__( and Z coordinates of the nth vertex. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -2619,6 +2741,14 @@ def __init__( and Z coordinates of the nth vertex. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -2628,6 +2758,14 @@ def __init__( and Z coordinates of the nth vertex. zcalendar Sets the calendar system to use with `z` date data. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -2889,6 +3027,10 @@ def __init__( _v = xcalendar if xcalendar is not None else _v if _v is not None: self["xcalendar"] = _v + _v = arg.pop("xhoverformat", None) + _v = xhoverformat if xhoverformat is not None else _v + if _v is not None: + self["xhoverformat"] = _v _v = arg.pop("xsrc", None) _v = xsrc if xsrc is not None else _v if _v is not None: @@ -2901,6 +3043,10 @@ def __init__( _v = ycalendar if ycalendar is not None else _v if _v is not None: self["ycalendar"] = _v + _v = arg.pop("yhoverformat", None) + _v = yhoverformat if yhoverformat is not None else _v + if _v is not None: + self["yhoverformat"] = _v _v = arg.pop("ysrc", None) _v = ysrc if ysrc is not None else _v if _v is not None: @@ -2913,6 +3059,10 @@ def __init__( _v = zcalendar if zcalendar is not None else _v if _v is not None: self["zcalendar"] = _v + _v = arg.pop("zhoverformat", None) + _v = zhoverformat if zhoverformat is not None else _v + if _v is not None: + self["zhoverformat"] = _v _v = arg.pop("zsrc", None) _v = zsrc if zsrc is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/_ohlc.py b/packages/python/plotly/plotly/graph_objs/_ohlc.py index d687b3ea61..fce4168f33 100644 --- a/packages/python/plotly/plotly/graph_objs/_ohlc.py +++ b/packages/python/plotly/plotly/graph_objs/_ohlc.py @@ -47,11 +47,13 @@ class Ohlc(_BaseTraceType): "x", "xaxis", "xcalendar", + "xhoverformat", "xperiod", "xperiod0", "xperiodalignment", "xsrc", "yaxis", + "yhoverformat", } # close @@ -948,6 +950,32 @@ def xcalendar(self): def xcalendar(self, val): self["xcalendar"] = val + # xhoverformat + # ------------ + @property + def xhoverformat(self): + """ + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `xaxis.hoverformat`. + + The 'xhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["xhoverformat"] + + @xhoverformat.setter + def xhoverformat(self, val): + self["xhoverformat"] = val + # xperiod # ------- @property @@ -1060,6 +1088,32 @@ def yaxis(self): def yaxis(self, val): self["yaxis"] = val + # yhoverformat + # ------------ + @property + def yhoverformat(self): + """ + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `yaxis.hoverformat`. + + The 'yhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["yhoverformat"] + + @yhoverformat.setter + def yhoverformat(self, val): + self["yhoverformat"] = val + # type # ---- @property @@ -1217,6 +1271,14 @@ def _prop_descriptions(self): coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -1241,6 +1303,14 @@ def _prop_descriptions(self): a 2D cartesian y axis. If "y" (the default value), the y coordinates refer to `layout.yaxis`. If "y2", the y coordinates refer to `layout.yaxis2`, and so on. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. """ def __init__( @@ -1283,11 +1353,13 @@ def __init__( x=None, xaxis=None, xcalendar=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, xsrc=None, yaxis=None, + yhoverformat=None, **kwargs ): """ @@ -1453,6 +1525,14 @@ def __init__( coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -1477,6 +1557,14 @@ def __init__( a 2D cartesian y axis. If "y" (the default value), the y coordinates refer to `layout.yaxis`. If "y2", the y coordinates refer to `layout.yaxis2`, and so on. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. Returns ------- @@ -1659,6 +1747,10 @@ def __init__( _v = xcalendar if xcalendar is not None else _v if _v is not None: self["xcalendar"] = _v + _v = arg.pop("xhoverformat", None) + _v = xhoverformat if xhoverformat is not None else _v + if _v is not None: + self["xhoverformat"] = _v _v = arg.pop("xperiod", None) _v = xperiod if xperiod is not None else _v if _v is not None: @@ -1679,6 +1771,10 @@ def __init__( _v = yaxis if yaxis is not None else _v if _v is not None: self["yaxis"] = _v + _v = arg.pop("yhoverformat", None) + _v = yhoverformat if yhoverformat is not None else _v + if _v is not None: + self["yhoverformat"] = _v # Read-only literals # ------------------ diff --git a/packages/python/plotly/plotly/graph_objs/_pointcloud.py b/packages/python/plotly/plotly/graph_objs/_pointcloud.py index d6cacdd080..a7bcd15b88 100644 --- a/packages/python/plotly/plotly/graph_objs/_pointcloud.py +++ b/packages/python/plotly/plotly/graph_objs/_pointcloud.py @@ -1097,8 +1097,9 @@ def __init__( """ Construct a new Pointcloud object - The data visualized as a point cloud set in `x` and `y` using - the WebGl plotting engine. + "pointcloud" trace is deprecated! Please consider switching to + the "scattergl" trace type. The data visualized as a point + cloud set in `x` and `y` using the WebGl plotting engine. Parameters ---------- diff --git a/packages/python/plotly/plotly/graph_objs/_scatter.py b/packages/python/plotly/plotly/graph_objs/_scatter.py index 9254d9b9e2..a7bd2b994d 100644 --- a/packages/python/plotly/plotly/graph_objs/_scatter.py +++ b/packages/python/plotly/plotly/graph_objs/_scatter.py @@ -39,15 +39,12 @@ class Scatter(_BaseTraceType): "name", "opacity", "orientation", - "r", - "rsrc", "selected", "selectedpoints", "showlegend", "stackgaps", "stackgroup", "stream", - "t", "text", "textfont", "textposition", @@ -55,7 +52,6 @@ class Scatter(_BaseTraceType): "textsrc", "texttemplate", "texttemplatesrc", - "tsrc", "type", "uid", "uirevision", @@ -65,6 +61,7 @@ class Scatter(_BaseTraceType): "x0", "xaxis", "xcalendar", + "xhoverformat", "xperiod", "xperiod0", "xperiodalignment", @@ -73,6 +70,7 @@ class Scatter(_BaseTraceType): "y0", "yaxis", "ycalendar", + "yhoverformat", "yperiod", "yperiod0", "yperiodalignment", @@ -1148,48 +1146,6 @@ def orientation(self): def orientation(self, val): self["orientation"] = val - # r - # - - @property - def r(self): - """ - r coordinates in scatter traces are deprecated!Please switch to - the "scatterpolar" trace type.Sets the radial coordinatesfor - legacy polar chart only. - - The 'r' property is an array that may be specified as a tuple, - list, numpy array, or pandas Series - - Returns - ------- - numpy.ndarray - """ - return self["r"] - - @r.setter - def r(self, val): - self["r"] = val - - # rsrc - # ---- - @property - def rsrc(self): - """ - Sets the source reference on Chart Studio Cloud for r . - - The 'rsrc' property must be specified as a string or - as a plotly.grid_objs.Column object - - Returns - ------- - str - """ - return self["rsrc"] - - @rsrc.setter - def rsrc(self, val): - self["rsrc"] = val - # selected # -------- @property @@ -1360,28 +1316,6 @@ def stream(self): def stream(self, val): self["stream"] = val - # t - # - - @property - def t(self): - """ - t coordinates in scatter traces are deprecated!Please switch to - the "scatterpolar" trace type.Sets the angular coordinatesfor - legacy polar chart only. - - The 't' property is an array that may be specified as a tuple, - list, numpy array, or pandas Series - - Returns - ------- - numpy.ndarray - """ - return self["t"] - - @t.setter - def t(self, val): - self["t"] = val - # text # ---- @property @@ -1586,26 +1520,6 @@ def texttemplatesrc(self): def texttemplatesrc(self, val): self["texttemplatesrc"] = val - # tsrc - # ---- - @property - def tsrc(self): - """ - Sets the source reference on Chart Studio Cloud for t . - - The 'tsrc' property must be specified as a string or - as a plotly.grid_objs.Column object - - Returns - ------- - str - """ - return self["tsrc"] - - @tsrc.setter - def tsrc(self, val): - self["tsrc"] = val - # uid # --- @property @@ -1806,6 +1720,32 @@ def xcalendar(self): def xcalendar(self, val): self["xcalendar"] = val + # xhoverformat + # ------------ + @property + def xhoverformat(self): + """ + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `xaxis.hoverformat`. + + The 'xhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["xhoverformat"] + + @xhoverformat.setter + def xhoverformat(self, val): + self["xhoverformat"] = val + # xperiod # ------- @property @@ -1983,6 +1923,32 @@ def ycalendar(self): def ycalendar(self, val): self["ycalendar"] = val + # yhoverformat + # ------------ + @property + def yhoverformat(self): + """ + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `yaxis.hoverformat`. + + The 'yhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["yhoverformat"] + + @yhoverformat.setter + def yhoverformat(self, val): + self["yhoverformat"] = val + # yperiod # ------- @property @@ -2250,13 +2216,6 @@ def _prop_descriptions(self): if it is `false`. Sets the stacking direction. With "v" ("h"), the y (x) values of subsequent traces are added. Also affects the default value of `fill`. - r - r coordinates in scatter traces are deprecated!Please - switch to the "scatterpolar" trace type.Sets the radial - coordinatesfor legacy polar chart only. - rsrc - Sets the source reference on Chart Studio Cloud for r - . selected :class:`plotly.graph_objects.scatter.Selected` instance or dict with compatible properties @@ -2297,10 +2256,6 @@ def _prop_descriptions(self): stream :class:`plotly.graph_objects.scatter.Stream` instance or dict with compatible properties - t - t coordinates in scatter traces are deprecated!Please - switch to the "scatterpolar" trace type.Sets the - angular coordinatesfor legacy polar chart only. text Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the @@ -2338,9 +2293,6 @@ def _prop_descriptions(self): texttemplatesrc Sets the source reference on Chart Studio Cloud for texttemplate . - tsrc - Sets the source reference on Chart Studio Cloud for t - . uid Assign an id to this trace, Use this to provide object constancy between traces during animations and @@ -2384,6 +2336,14 @@ def _prop_descriptions(self): coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -2416,6 +2376,14 @@ def _prop_descriptions(self): coordinates refer to `layout.yaxis2`, and so on. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -2470,15 +2438,12 @@ def __init__( name=None, opacity=None, orientation=None, - r=None, - rsrc=None, selected=None, selectedpoints=None, showlegend=None, stackgaps=None, stackgroup=None, stream=None, - t=None, text=None, textfont=None, textposition=None, @@ -2486,7 +2451,6 @@ def __init__( textsrc=None, texttemplate=None, texttemplatesrc=None, - tsrc=None, uid=None, uirevision=None, unselected=None, @@ -2495,6 +2459,7 @@ def __init__( x0=None, xaxis=None, xcalendar=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, @@ -2503,6 +2468,7 @@ def __init__( y0=None, yaxis=None, ycalendar=None, + yhoverformat=None, yperiod=None, yperiod0=None, yperiodalignment=None, @@ -2693,13 +2659,6 @@ def __init__( if it is `false`. Sets the stacking direction. With "v" ("h"), the y (x) values of subsequent traces are added. Also affects the default value of `fill`. - r - r coordinates in scatter traces are deprecated!Please - switch to the "scatterpolar" trace type.Sets the radial - coordinatesfor legacy polar chart only. - rsrc - Sets the source reference on Chart Studio Cloud for r - . selected :class:`plotly.graph_objects.scatter.Selected` instance or dict with compatible properties @@ -2740,10 +2699,6 @@ def __init__( stream :class:`plotly.graph_objects.scatter.Stream` instance or dict with compatible properties - t - t coordinates in scatter traces are deprecated!Please - switch to the "scatterpolar" trace type.Sets the - angular coordinatesfor legacy polar chart only. text Sets text elements associated with each (x,y) pair. If a single string, the same string appears over all the @@ -2781,9 +2736,6 @@ def __init__( texttemplatesrc Sets the source reference on Chart Studio Cloud for texttemplate . - tsrc - Sets the source reference on Chart Studio Cloud for t - . uid Assign an id to this trace, Use this to provide object constancy between traces during animations and @@ -2827,6 +2779,14 @@ def __init__( coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -2859,6 +2819,14 @@ def __init__( coordinates refer to `layout.yaxis2`, and so on. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -3032,14 +3000,6 @@ def __init__( _v = orientation if orientation is not None else _v if _v is not None: self["orientation"] = _v - _v = arg.pop("r", None) - _v = r if r is not None else _v - if _v is not None: - self["r"] = _v - _v = arg.pop("rsrc", None) - _v = rsrc if rsrc is not None else _v - if _v is not None: - self["rsrc"] = _v _v = arg.pop("selected", None) _v = selected if selected is not None else _v if _v is not None: @@ -3064,10 +3024,6 @@ def __init__( _v = stream if stream is not None else _v if _v is not None: self["stream"] = _v - _v = arg.pop("t", None) - _v = t if t is not None else _v - if _v is not None: - self["t"] = _v _v = arg.pop("text", None) _v = text if text is not None else _v if _v is not None: @@ -3096,10 +3052,6 @@ def __init__( _v = texttemplatesrc if texttemplatesrc is not None else _v if _v is not None: self["texttemplatesrc"] = _v - _v = arg.pop("tsrc", None) - _v = tsrc if tsrc is not None else _v - if _v is not None: - self["tsrc"] = _v _v = arg.pop("uid", None) _v = uid if uid is not None else _v if _v is not None: @@ -3132,6 +3084,10 @@ def __init__( _v = xcalendar if xcalendar is not None else _v if _v is not None: self["xcalendar"] = _v + _v = arg.pop("xhoverformat", None) + _v = xhoverformat if xhoverformat is not None else _v + if _v is not None: + self["xhoverformat"] = _v _v = arg.pop("xperiod", None) _v = xperiod if xperiod is not None else _v if _v is not None: @@ -3164,6 +3120,10 @@ def __init__( _v = ycalendar if ycalendar is not None else _v if _v is not None: self["ycalendar"] = _v + _v = arg.pop("yhoverformat", None) + _v = yhoverformat if yhoverformat is not None else _v + if _v is not None: + self["yhoverformat"] = _v _v = arg.pop("yperiod", None) _v = yperiod if yperiod is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/_scatter3d.py b/packages/python/plotly/plotly/graph_objs/_scatter3d.py index 28d6c52f1f..4171a532fe 100644 --- a/packages/python/plotly/plotly/graph_objs/_scatter3d.py +++ b/packages/python/plotly/plotly/graph_objs/_scatter3d.py @@ -51,12 +51,15 @@ class Scatter3d(_BaseTraceType): "visible", "x", "xcalendar", + "xhoverformat", "xsrc", "y", "ycalendar", + "yhoverformat", "ysrc", "z", "zcalendar", + "zhoverformat", "zsrc", } @@ -1540,6 +1543,32 @@ def xcalendar(self): def xcalendar(self, val): self["xcalendar"] = val + # xhoverformat + # ------------ + @property + def xhoverformat(self): + """ + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `xaxis.hoverformat`. + + The 'xhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["xhoverformat"] + + @xhoverformat.setter + def xhoverformat(self, val): + self["xhoverformat"] = val + # xsrc # ---- @property @@ -1604,6 +1633,32 @@ def ycalendar(self): def ycalendar(self, val): self["ycalendar"] = val + # yhoverformat + # ------------ + @property + def yhoverformat(self): + """ + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `yaxis.hoverformat`. + + The 'yhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["yhoverformat"] + + @yhoverformat.setter + def yhoverformat(self, val): + self["yhoverformat"] = val + # ysrc # ---- @property @@ -1668,6 +1723,32 @@ def zcalendar(self): def zcalendar(self, val): self["zcalendar"] = val + # zhoverformat + # ------------ + @property + def zhoverformat(self): + """ + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `zaxis.hoverformat`. + + The 'zhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["zhoverformat"] + + @zhoverformat.setter + def zhoverformat(self, val): + self["zhoverformat"] = val + # zsrc # ---- @property @@ -1900,6 +1981,14 @@ def _prop_descriptions(self): Sets the x coordinates. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -1907,6 +1996,14 @@ def _prop_descriptions(self): Sets the y coordinates. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -1914,6 +2011,14 @@ def _prop_descriptions(self): Sets the z coordinates. zcalendar Sets the calendar system to use with `z` date data. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -1963,12 +2068,15 @@ def __init__( visible=None, x=None, xcalendar=None, + xhoverformat=None, xsrc=None, y=None, ycalendar=None, + yhoverformat=None, ysrc=None, z=None, zcalendar=None, + zhoverformat=None, zsrc=None, **kwargs ): @@ -2188,6 +2296,14 @@ def __init__( Sets the x coordinates. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -2195,6 +2311,14 @@ def __init__( Sets the y coordinates. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -2202,6 +2326,14 @@ def __init__( Sets the z coordinates. zcalendar Sets the calendar system to use with `z` date data. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -2403,6 +2535,10 @@ def __init__( _v = xcalendar if xcalendar is not None else _v if _v is not None: self["xcalendar"] = _v + _v = arg.pop("xhoverformat", None) + _v = xhoverformat if xhoverformat is not None else _v + if _v is not None: + self["xhoverformat"] = _v _v = arg.pop("xsrc", None) _v = xsrc if xsrc is not None else _v if _v is not None: @@ -2415,6 +2551,10 @@ def __init__( _v = ycalendar if ycalendar is not None else _v if _v is not None: self["ycalendar"] = _v + _v = arg.pop("yhoverformat", None) + _v = yhoverformat if yhoverformat is not None else _v + if _v is not None: + self["yhoverformat"] = _v _v = arg.pop("ysrc", None) _v = ysrc if ysrc is not None else _v if _v is not None: @@ -2427,6 +2567,10 @@ def __init__( _v = zcalendar if zcalendar is not None else _v if _v is not None: self["zcalendar"] = _v + _v = arg.pop("zhoverformat", None) + _v = zhoverformat if zhoverformat is not None else _v + if _v is not None: + self["zhoverformat"] = _v _v = arg.pop("zsrc", None) _v = zsrc if zsrc is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/_scattergl.py b/packages/python/plotly/plotly/graph_objs/_scattergl.py index d366689874..e4a28cf865 100644 --- a/packages/python/plotly/plotly/graph_objs/_scattergl.py +++ b/packages/python/plotly/plotly/graph_objs/_scattergl.py @@ -55,6 +55,7 @@ class Scattergl(_BaseTraceType): "x0", "xaxis", "xcalendar", + "xhoverformat", "xperiod", "xperiod0", "xperiodalignment", @@ -63,6 +64,7 @@ class Scattergl(_BaseTraceType): "y0", "yaxis", "ycalendar", + "yhoverformat", "yperiod", "yperiod0", "yperiodalignment", @@ -1522,6 +1524,32 @@ def xcalendar(self): def xcalendar(self, val): self["xcalendar"] = val + # xhoverformat + # ------------ + @property + def xhoverformat(self): + """ + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `xaxis.hoverformat`. + + The 'xhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["xhoverformat"] + + @xhoverformat.setter + def xhoverformat(self, val): + self["xhoverformat"] = val + # xperiod # ------- @property @@ -1699,6 +1727,32 @@ def ycalendar(self): def ycalendar(self, val): self["ycalendar"] = val + # yhoverformat + # ------------ + @property + def yhoverformat(self): + """ + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `yaxis.hoverformat`. + + The 'yhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["yhoverformat"] + + @yhoverformat.setter + def yhoverformat(self, val): + self["yhoverformat"] = val + # yperiod # ------- @property @@ -2027,6 +2081,14 @@ def _prop_descriptions(self): coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -2059,6 +2121,14 @@ def _prop_descriptions(self): coordinates refer to `layout.yaxis2`, and so on. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -2128,6 +2198,7 @@ def __init__( x0=None, xaxis=None, xcalendar=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, @@ -2136,6 +2207,7 @@ def __init__( y0=None, yaxis=None, ycalendar=None, + yhoverformat=None, yperiod=None, yperiod0=None, yperiodalignment=None, @@ -2385,6 +2457,14 @@ def __init__( coordinates refer to `layout.xaxis2`, and so on. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -2417,6 +2497,14 @@ def __init__( coordinates refer to `layout.yaxis2`, and so on. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -2650,6 +2738,10 @@ def __init__( _v = xcalendar if xcalendar is not None else _v if _v is not None: self["xcalendar"] = _v + _v = arg.pop("xhoverformat", None) + _v = xhoverformat if xhoverformat is not None else _v + if _v is not None: + self["xhoverformat"] = _v _v = arg.pop("xperiod", None) _v = xperiod if xperiod is not None else _v if _v is not None: @@ -2682,6 +2774,10 @@ def __init__( _v = ycalendar if ycalendar is not None else _v if _v is not None: self["ycalendar"] = _v + _v = arg.pop("yhoverformat", None) + _v = yhoverformat if yhoverformat is not None else _v + if _v is not None: + self["yhoverformat"] = _v _v = arg.pop("yperiod", None) _v = yperiod if yperiod is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/_splom.py b/packages/python/plotly/plotly/graph_objs/_splom.py index f3eace3293..0feb55087d 100644 --- a/packages/python/plotly/plotly/graph_objs/_splom.py +++ b/packages/python/plotly/plotly/graph_objs/_splom.py @@ -43,7 +43,9 @@ class Splom(_BaseTraceType): "unselected", "visible", "xaxes", + "xhoverformat", "yaxes", + "yhoverformat", } # customdata @@ -1045,6 +1047,32 @@ def xaxes(self): def xaxes(self, val): self["xaxes"] = val + # xhoverformat + # ------------ + @property + def xhoverformat(self): + """ + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `xaxis.hoverformat`. + + The 'xhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["xhoverformat"] + + @xhoverformat.setter + def xhoverformat(self, val): + self["xhoverformat"] = val + # yaxes # ----- @property @@ -1074,6 +1102,32 @@ def yaxes(self): def yaxes(self, val): self["yaxes"] = val + # yhoverformat + # ------------ + @property + def yhoverformat(self): + """ + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `yaxis.hoverformat`. + + The 'yhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["yhoverformat"] + + @yhoverformat.setter + def yhoverformat(self, val): + self["yhoverformat"] = val + # type # ---- @property @@ -1250,6 +1304,14 @@ def _prop_descriptions(self): is false and `showupperhalf` or `showlowerhalf` is false, this splom trace will generate one less x-axis and one less y-axis. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. yaxes Sets the list of y axes corresponding to dimensions of this splom trace. By default, a splom will match the @@ -1258,6 +1320,14 @@ def _prop_descriptions(self): is false and `showupperhalf` or `showlowerhalf` is false, this splom trace will generate one less x-axis and one less y-axis. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. """ def __init__( @@ -1296,7 +1366,9 @@ def __init__( unselected=None, visible=None, xaxes=None, + xhoverformat=None, yaxes=None, + yhoverformat=None, **kwargs ): """ @@ -1480,6 +1552,14 @@ def __init__( is false and `showupperhalf` or `showlowerhalf` is false, this splom trace will generate one less x-axis and one less y-axis. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. yaxes Sets the list of y axes corresponding to dimensions of this splom trace. By default, a splom will match the @@ -1488,6 +1568,14 @@ def __init__( is false and `showupperhalf` or `showlowerhalf` is false, this splom trace will generate one less x-axis and one less y-axis. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. Returns ------- @@ -1654,10 +1742,18 @@ def __init__( _v = xaxes if xaxes is not None else _v if _v is not None: self["xaxes"] = _v + _v = arg.pop("xhoverformat", None) + _v = xhoverformat if xhoverformat is not None else _v + if _v is not None: + self["xhoverformat"] = _v _v = arg.pop("yaxes", None) _v = yaxes if yaxes is not None else _v if _v is not None: self["yaxes"] = _v + _v = arg.pop("yhoverformat", None) + _v = yhoverformat if yhoverformat is not None else _v + if _v is not None: + self["yhoverformat"] = _v # Read-only literals # ------------------ diff --git a/packages/python/plotly/plotly/graph_objs/_streamtube.py b/packages/python/plotly/plotly/graph_objs/_streamtube.py index b5bff809dc..804be0f8c7 100644 --- a/packages/python/plotly/plotly/graph_objs/_streamtube.py +++ b/packages/python/plotly/plotly/graph_objs/_streamtube.py @@ -45,19 +45,25 @@ class Streamtube(_BaseTraceType): "text", "type", "u", + "uhoverformat", "uid", "uirevision", "usrc", "v", + "vhoverformat", "visible", "vsrc", "w", + "whoverformat", "wsrc", "x", + "xhoverformat", "xsrc", "y", + "yhoverformat", "ysrc", "z", + "zhoverformat", "zsrc", } @@ -353,6 +359,12 @@ def colorbar(self): a.streamtube.colorbar.tickformatstopdefaults), sets the default property values to use for elements of streamtube.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1222,6 +1234,31 @@ def u(self): def u(self, val): self["u"] = val + # uhoverformat + # ------------ + @property + def uhoverformat(self): + """ + Sets the hover text formatting rule for `u` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By default the + values are formatted using generic number format. + + The 'uhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["uhoverformat"] + + @uhoverformat.setter + def uhoverformat(self, val): + self["uhoverformat"] = val + # uid # --- @property @@ -1317,6 +1354,31 @@ def v(self): def v(self, val): self["v"] = val + # vhoverformat + # ------------ + @property + def vhoverformat(self): + """ + Sets the hover text formatting rule for `v` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By default the + values are formatted using generic number format. + + The 'vhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["vhoverformat"] + + @vhoverformat.setter + def vhoverformat(self, val): + self["vhoverformat"] = val + # visible # ------- @property @@ -1380,6 +1442,31 @@ def w(self): def w(self, val): self["w"] = val + # whoverformat + # ------------ + @property + def whoverformat(self): + """ + Sets the hover text formatting rule for `w` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By default the + values are formatted using generic number format. + + The 'whoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["whoverformat"] + + @whoverformat.setter + def whoverformat(self, val): + self["whoverformat"] = val + # wsrc # ---- @property @@ -1420,6 +1507,32 @@ def x(self): def x(self, val): self["x"] = val + # xhoverformat + # ------------ + @property + def xhoverformat(self): + """ + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `xaxis.hoverformat`. + + The 'xhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["xhoverformat"] + + @xhoverformat.setter + def xhoverformat(self, val): + self["xhoverformat"] = val + # xsrc # ---- @property @@ -1460,6 +1573,32 @@ def y(self): def y(self, val): self["y"] = val + # yhoverformat + # ------------ + @property + def yhoverformat(self): + """ + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `yaxis.hoverformat`. + + The 'yhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["yhoverformat"] + + @yhoverformat.setter + def yhoverformat(self, val): + self["yhoverformat"] = val + # ysrc # ---- @property @@ -1500,6 +1639,32 @@ def z(self): def z(self, val): self["z"] = val + # zhoverformat + # ------------ + @property + def zhoverformat(self): + """ + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `zaxis.hoverformat`. + + The 'zhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["zhoverformat"] + + @zhoverformat.setter + def zhoverformat(self, val): + self["zhoverformat"] = val + # zsrc # ---- @property @@ -1706,6 +1871,13 @@ def _prop_descriptions(self): streamtube traces do not support array `text` values. u Sets the x components of the vector field. + uhoverformat + Sets the hover text formatting rule for `u` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. uid Assign an id to this trace, Use this to provide object constancy between traces during animations and @@ -1733,6 +1905,13 @@ def _prop_descriptions(self): . v Sets the y components of the vector field. + vhoverformat + Sets the hover text formatting rule for `v` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. visible Determines whether or not this trace is visible. If "legendonly", the trace is not drawn, but can appear as @@ -1743,21 +1922,52 @@ def _prop_descriptions(self): . w Sets the z components of the vector field. + whoverformat + Sets the hover text formatting rule for `w` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. wsrc Sets the source reference on Chart Studio Cloud for w . x Sets the x coordinates of the vector field. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . y Sets the y coordinates of the vector field. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . z Sets the z coordinates of the vector field. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -1801,19 +2011,25 @@ def __init__( stream=None, text=None, u=None, + uhoverformat=None, uid=None, uirevision=None, usrc=None, v=None, + vhoverformat=None, visible=None, vsrc=None, w=None, + whoverformat=None, wsrc=None, x=None, + xhoverformat=None, xsrc=None, y=None, + yhoverformat=None, ysrc=None, z=None, + zhoverformat=None, zsrc=None, **kwargs ): @@ -2010,6 +2226,13 @@ def __init__( streamtube traces do not support array `text` values. u Sets the x components of the vector field. + uhoverformat + Sets the hover text formatting rule for `u` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. uid Assign an id to this trace, Use this to provide object constancy between traces during animations and @@ -2037,6 +2260,13 @@ def __init__( . v Sets the y components of the vector field. + vhoverformat + Sets the hover text formatting rule for `v` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. visible Determines whether or not this trace is visible. If "legendonly", the trace is not drawn, but can appear as @@ -2047,21 +2277,52 @@ def __init__( . w Sets the z components of the vector field. + whoverformat + Sets the hover text formatting rule for `w` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. wsrc Sets the source reference on Chart Studio Cloud for w . x Sets the x coordinates of the vector field. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . y Sets the y coordinates of the vector field. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . z Sets the z coordinates of the vector field. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -2239,6 +2500,10 @@ def __init__( _v = u if u is not None else _v if _v is not None: self["u"] = _v + _v = arg.pop("uhoverformat", None) + _v = uhoverformat if uhoverformat is not None else _v + if _v is not None: + self["uhoverformat"] = _v _v = arg.pop("uid", None) _v = uid if uid is not None else _v if _v is not None: @@ -2255,6 +2520,10 @@ def __init__( _v = v if v is not None else _v if _v is not None: self["v"] = _v + _v = arg.pop("vhoverformat", None) + _v = vhoverformat if vhoverformat is not None else _v + if _v is not None: + self["vhoverformat"] = _v _v = arg.pop("visible", None) _v = visible if visible is not None else _v if _v is not None: @@ -2267,6 +2536,10 @@ def __init__( _v = w if w is not None else _v if _v is not None: self["w"] = _v + _v = arg.pop("whoverformat", None) + _v = whoverformat if whoverformat is not None else _v + if _v is not None: + self["whoverformat"] = _v _v = arg.pop("wsrc", None) _v = wsrc if wsrc is not None else _v if _v is not None: @@ -2275,6 +2548,10 @@ def __init__( _v = x if x is not None else _v if _v is not None: self["x"] = _v + _v = arg.pop("xhoverformat", None) + _v = xhoverformat if xhoverformat is not None else _v + if _v is not None: + self["xhoverformat"] = _v _v = arg.pop("xsrc", None) _v = xsrc if xsrc is not None else _v if _v is not None: @@ -2283,6 +2560,10 @@ def __init__( _v = y if y is not None else _v if _v is not None: self["y"] = _v + _v = arg.pop("yhoverformat", None) + _v = yhoverformat if yhoverformat is not None else _v + if _v is not None: + self["yhoverformat"] = _v _v = arg.pop("ysrc", None) _v = ysrc if ysrc is not None else _v if _v is not None: @@ -2291,6 +2572,10 @@ def __init__( _v = z if z is not None else _v if _v is not None: self["z"] = _v + _v = arg.pop("zhoverformat", None) + _v = zhoverformat if zhoverformat is not None else _v + if _v is not None: + self["zhoverformat"] = _v _v = arg.pop("zsrc", None) _v = zsrc if zsrc is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/_surface.py b/packages/python/plotly/plotly/graph_objs/_surface.py index da0f625cdf..916e7cdee8 100644 --- a/packages/python/plotly/plotly/graph_objs/_surface.py +++ b/packages/python/plotly/plotly/graph_objs/_surface.py @@ -54,12 +54,15 @@ class Surface(_BaseTraceType): "visible", "x", "xcalendar", + "xhoverformat", "xsrc", "y", "ycalendar", + "yhoverformat", "ysrc", "z", "zcalendar", + "zhoverformat", "zsrc", } @@ -355,6 +358,12 @@ def colorbar(self): a.surface.colorbar.tickformatstopdefaults), sets the default property values to use for elements of surface.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1420,6 +1429,32 @@ def xcalendar(self): def xcalendar(self, val): self["xcalendar"] = val + # xhoverformat + # ------------ + @property + def xhoverformat(self): + """ + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `xaxis.hoverformat`. + + The 'xhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["xhoverformat"] + + @xhoverformat.setter + def xhoverformat(self, val): + self["xhoverformat"] = val + # xsrc # ---- @property @@ -1484,6 +1519,32 @@ def ycalendar(self): def ycalendar(self, val): self["ycalendar"] = val + # yhoverformat + # ------------ + @property + def yhoverformat(self): + """ + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `yaxis.hoverformat`. + + The 'yhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["yhoverformat"] + + @yhoverformat.setter + def yhoverformat(self, val): + self["yhoverformat"] = val + # ysrc # ---- @property @@ -1548,6 +1609,32 @@ def zcalendar(self): def zcalendar(self, val): self["zcalendar"] = val + # zhoverformat + # ------------ + @property + def zhoverformat(self): + """ + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `zaxis.hoverformat`. + + The 'zhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["zhoverformat"] + + @zhoverformat.setter + def zhoverformat(self, val): + self["zhoverformat"] = val + # zsrc # ---- @property @@ -1805,6 +1892,14 @@ def _prop_descriptions(self): Sets the x coordinates. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -1812,6 +1907,14 @@ def _prop_descriptions(self): Sets the y coordinates. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -1819,6 +1922,14 @@ def _prop_descriptions(self): Sets the z coordinates. zcalendar Sets the calendar system to use with `z` date data. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -1871,12 +1982,15 @@ def __init__( visible=None, x=None, xcalendar=None, + xhoverformat=None, xsrc=None, y=None, ycalendar=None, + yhoverformat=None, ysrc=None, z=None, zcalendar=None, + zhoverformat=None, zsrc=None, **kwargs ): @@ -2124,6 +2238,14 @@ def __init__( Sets the x coordinates. xcalendar Sets the calendar system to use with `x` date data. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -2131,6 +2253,14 @@ def __init__( Sets the y coordinates. ycalendar Sets the calendar system to use with `y` date data. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -2138,6 +2268,14 @@ def __init__( Sets the z coordinates. zcalendar Sets the calendar system to use with `z` date data. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -2351,6 +2489,10 @@ def __init__( _v = xcalendar if xcalendar is not None else _v if _v is not None: self["xcalendar"] = _v + _v = arg.pop("xhoverformat", None) + _v = xhoverformat if xhoverformat is not None else _v + if _v is not None: + self["xhoverformat"] = _v _v = arg.pop("xsrc", None) _v = xsrc if xsrc is not None else _v if _v is not None: @@ -2363,6 +2505,10 @@ def __init__( _v = ycalendar if ycalendar is not None else _v if _v is not None: self["ycalendar"] = _v + _v = arg.pop("yhoverformat", None) + _v = yhoverformat if yhoverformat is not None else _v + if _v is not None: + self["yhoverformat"] = _v _v = arg.pop("ysrc", None) _v = ysrc if ysrc is not None else _v if _v is not None: @@ -2375,6 +2521,10 @@ def __init__( _v = zcalendar if zcalendar is not None else _v if _v is not None: self["zcalendar"] = _v + _v = arg.pop("zhoverformat", None) + _v = zhoverformat if zhoverformat is not None else _v + if _v is not None: + self["zhoverformat"] = _v _v = arg.pop("zsrc", None) _v = zsrc if zsrc is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/_violin.py b/packages/python/plotly/plotly/graph_objs/_violin.py index 991597cba5..ea4cb7cb0d 100644 --- a/packages/python/plotly/plotly/graph_objs/_violin.py +++ b/packages/python/plotly/plotly/graph_objs/_violin.py @@ -58,10 +58,12 @@ class Violin(_BaseTraceType): "x", "x0", "xaxis", + "xhoverformat", "xsrc", "y", "y0", "yaxis", + "yhoverformat", "ysrc", } @@ -1349,6 +1351,32 @@ def xaxis(self): def xaxis(self, val): self["xaxis"] = val + # xhoverformat + # ------------ + @property + def xhoverformat(self): + """ + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `xaxis.hoverformat`. + + The 'xhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["xhoverformat"] + + @xhoverformat.setter + def xhoverformat(self, val): + self["xhoverformat"] = val + # xsrc # ---- @property @@ -1436,6 +1464,32 @@ def yaxis(self): def yaxis(self, val): self["yaxis"] = val + # yhoverformat + # ------------ + @property + def yhoverformat(self): + """ + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `yaxis.hoverformat`. + + The 'yhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["yhoverformat"] + + @yhoverformat.setter + def yhoverformat(self, val): + self["yhoverformat"] = val + # ysrc # ---- @property @@ -1717,6 +1771,14 @@ def _prop_descriptions(self): a 2D cartesian x axis. If "x" (the default value), the x coordinates refer to `layout.xaxis`. If "x2", the x coordinates refer to `layout.xaxis2`, and so on. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -1732,6 +1794,14 @@ def _prop_descriptions(self): a 2D cartesian y axis. If "y" (the default value), the y coordinates refer to `layout.yaxis`. If "y2", the y coordinates refer to `layout.yaxis2`, and so on. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -1788,10 +1858,12 @@ def __init__( x=None, x0=None, xaxis=None, + xhoverformat=None, xsrc=None, y=None, y0=None, yaxis=None, + yhoverformat=None, ysrc=None, **kwargs ): @@ -2060,6 +2132,14 @@ def __init__( a 2D cartesian x axis. If "x" (the default value), the x coordinates refer to `layout.xaxis`. If "x2", the x coordinates refer to `layout.xaxis2`, and so on. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . @@ -2075,6 +2155,14 @@ def __init__( a 2D cartesian y axis. If "y" (the default value), the y coordinates refer to `layout.yaxis`. If "y2", the y coordinates refer to `layout.yaxis2`, and so on. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . @@ -2304,6 +2392,10 @@ def __init__( _v = xaxis if xaxis is not None else _v if _v is not None: self["xaxis"] = _v + _v = arg.pop("xhoverformat", None) + _v = xhoverformat if xhoverformat is not None else _v + if _v is not None: + self["xhoverformat"] = _v _v = arg.pop("xsrc", None) _v = xsrc if xsrc is not None else _v if _v is not None: @@ -2320,6 +2412,10 @@ def __init__( _v = yaxis if yaxis is not None else _v if _v is not None: self["yaxis"] = _v + _v = arg.pop("yhoverformat", None) + _v = yhoverformat if yhoverformat is not None else _v + if _v is not None: + self["yhoverformat"] = _v _v = arg.pop("ysrc", None) _v = ysrc if ysrc is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/_volume.py b/packages/python/plotly/plotly/graph_objs/_volume.py index 90ae93200d..6ec8e08d64 100644 --- a/packages/python/plotly/plotly/graph_objs/_volume.py +++ b/packages/python/plotly/plotly/graph_objs/_volume.py @@ -55,13 +55,17 @@ class Volume(_BaseTraceType): "uid", "uirevision", "value", + "valuehoverformat", "valuesrc", "visible", "x", + "xhoverformat", "xsrc", "y", + "yhoverformat", "ysrc", "z", + "zhoverformat", "zsrc", } @@ -387,6 +391,12 @@ def colorbar(self): a.volume.colorbar.tickformatstopdefaults), sets the default property values to use for elements of volume.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1504,6 +1514,31 @@ def value(self): def value(self, val): self["value"] = val + # valuehoverformat + # ---------------- + @property + def valuehoverformat(self): + """ + Sets the hover text formatting rule for `value` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By default the + values are formatted using generic number format. + + The 'valuehoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["valuehoverformat"] + + @valuehoverformat.setter + def valuehoverformat(self, val): + self["valuehoverformat"] = val + # valuesrc # -------- @property @@ -1567,6 +1602,32 @@ def x(self): def x(self, val): self["x"] = val + # xhoverformat + # ------------ + @property + def xhoverformat(self): + """ + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `xaxis.hoverformat`. + + The 'xhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["xhoverformat"] + + @xhoverformat.setter + def xhoverformat(self, val): + self["xhoverformat"] = val + # xsrc # ---- @property @@ -1607,6 +1668,32 @@ def y(self): def y(self, val): self["y"] = val + # yhoverformat + # ------------ + @property + def yhoverformat(self): + """ + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `yaxis.hoverformat`. + + The 'yhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["yhoverformat"] + + @yhoverformat.setter + def yhoverformat(self, val): + self["yhoverformat"] = val + # ysrc # ---- @property @@ -1647,6 +1734,32 @@ def z(self): def z(self, val): self["z"] = val + # zhoverformat + # ------------ + @property + def zhoverformat(self): + """ + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `zaxis.hoverformat`. + + The 'zhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["zhoverformat"] + + @zhoverformat.setter + def zhoverformat(self, val): + self["zhoverformat"] = val + # zsrc # ---- @property @@ -1903,6 +2016,13 @@ def _prop_descriptions(self): `uid` that stays with it as it moves. value Sets the 4th dimension (value) of the vertices. + valuehoverformat + Sets the hover text formatting rule for `value` using + d3 formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. valuesrc Sets the source reference on Chart Studio Cloud for value . @@ -1913,16 +2033,40 @@ def _prop_descriptions(self): visible). x Sets the X coordinates of the vertices on X axis. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . y Sets the Y coordinates of the vertices on Y axis. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . z Sets the Z coordinates of the vertices on Z axis. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -1976,13 +2120,17 @@ def __init__( uid=None, uirevision=None, value=None, + valuehoverformat=None, valuesrc=None, visible=None, x=None, + xhoverformat=None, xsrc=None, y=None, + yhoverformat=None, ysrc=None, z=None, + zhoverformat=None, zsrc=None, **kwargs ): @@ -2226,6 +2374,13 @@ def __init__( `uid` that stays with it as it moves. value Sets the 4th dimension (value) of the vertices. + valuehoverformat + Sets the hover text formatting rule for `value` using + d3 formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format By + default the values are formatted using generic number + format. valuesrc Sets the source reference on Chart Studio Cloud for value . @@ -2236,16 +2391,40 @@ def __init__( visible). x Sets the X coordinates of the vertices on X axis. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xsrc Sets the source reference on Chart Studio Cloud for x . y Sets the Y coordinates of the vertices on Y axis. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. ysrc Sets the source reference on Chart Studio Cloud for y . z Sets the Z coordinates of the vertices on Z axis. + zhoverformat + Sets the hover text formatting rule for `z` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `zaxis.hoverformat`. zsrc Sets the source reference on Chart Studio Cloud for z . @@ -2463,6 +2642,10 @@ def __init__( _v = value if value is not None else _v if _v is not None: self["value"] = _v + _v = arg.pop("valuehoverformat", None) + _v = valuehoverformat if valuehoverformat is not None else _v + if _v is not None: + self["valuehoverformat"] = _v _v = arg.pop("valuesrc", None) _v = valuesrc if valuesrc is not None else _v if _v is not None: @@ -2475,6 +2658,10 @@ def __init__( _v = x if x is not None else _v if _v is not None: self["x"] = _v + _v = arg.pop("xhoverformat", None) + _v = xhoverformat if xhoverformat is not None else _v + if _v is not None: + self["xhoverformat"] = _v _v = arg.pop("xsrc", None) _v = xsrc if xsrc is not None else _v if _v is not None: @@ -2483,6 +2670,10 @@ def __init__( _v = y if y is not None else _v if _v is not None: self["y"] = _v + _v = arg.pop("yhoverformat", None) + _v = yhoverformat if yhoverformat is not None else _v + if _v is not None: + self["yhoverformat"] = _v _v = arg.pop("ysrc", None) _v = ysrc if ysrc is not None else _v if _v is not None: @@ -2491,6 +2682,10 @@ def __init__( _v = z if z is not None else _v if _v is not None: self["z"] = _v + _v = arg.pop("zhoverformat", None) + _v = zhoverformat if zhoverformat is not None else _v + if _v is not None: + self["zhoverformat"] = _v _v = arg.pop("zsrc", None) _v = zsrc if zsrc is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/_waterfall.py b/packages/python/plotly/plotly/graph_objs/_waterfall.py index 3e3df97d8a..72b670bd70 100644 --- a/packages/python/plotly/plotly/graph_objs/_waterfall.py +++ b/packages/python/plotly/plotly/graph_objs/_waterfall.py @@ -65,6 +65,7 @@ class Waterfall(_BaseTraceType): "x", "x0", "xaxis", + "xhoverformat", "xperiod", "xperiod0", "xperiodalignment", @@ -72,6 +73,7 @@ class Waterfall(_BaseTraceType): "y", "y0", "yaxis", + "yhoverformat", "yperiod", "yperiod0", "yperiodalignment", @@ -1196,7 +1198,8 @@ def textposition(self): if needed), unless there is another bar stacked on this one, then the text gets pushed inside. "auto" tries to position `text` inside the bar, but if the bar is too small and no bar - is stacked on this one the text is moved outside. + is stacked on this one the text is moved outside. If "none", no + text appears. The 'textposition' property is an enumeration that may be specified as: - One of the following enumeration values: @@ -1523,6 +1526,32 @@ def xaxis(self): def xaxis(self, val): self["xaxis"] = val + # xhoverformat + # ------------ + @property + def xhoverformat(self): + """ + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `xaxis.hoverformat`. + + The 'xhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["xhoverformat"] + + @xhoverformat.setter + def xhoverformat(self, val): + self["xhoverformat"] = val + # xperiod # ------- @property @@ -1676,6 +1705,32 @@ def yaxis(self): def yaxis(self, val): self["yaxis"] = val + # yhoverformat + # ------------ + @property + def yhoverformat(self): + """ + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to those in + Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for dates + see: https://github.com/d3/d3-time-format#locale_format By + default the values are formatted using `yaxis.hoverformat`. + + The 'yhoverformat' property is a string and must be specified as: + - A string + - A number that will be converted to a string + + Returns + ------- + str + """ + return self["yhoverformat"] + + @yhoverformat.setter + def yhoverformat(self, val): + self["yhoverformat"] = val + # yperiod # ------- @property @@ -1963,7 +2018,8 @@ def _prop_descriptions(self): there is another bar stacked on this one, then the text gets pushed inside. "auto" tries to position `text` inside the bar, but if the bar is too small and no bar - is stacked on this one the text is moved outside. + is stacked on this one the text is moved outside. If + "none", no text appears. textpositionsrc Sets the source reference on Chart Studio Cloud for textposition . @@ -2035,6 +2091,14 @@ def _prop_descriptions(self): a 2D cartesian x axis. If "x" (the default value), the x coordinates refer to `layout.xaxis`. If "x2", the x coordinates refer to `layout.xaxis2`, and so on. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -2065,6 +2129,14 @@ def _prop_descriptions(self): a 2D cartesian y axis. If "y" (the default value), the y coordinates refer to `layout.yaxis`. If "y2", the y coordinates refer to `layout.yaxis2`, and so on. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -2144,6 +2216,7 @@ def __init__( x=None, x0=None, xaxis=None, + xhoverformat=None, xperiod=None, xperiod0=None, xperiodalignment=None, @@ -2151,6 +2224,7 @@ def __init__( y=None, y0=None, yaxis=None, + yhoverformat=None, yperiod=None, yperiod0=None, yperiodalignment=None, @@ -2361,7 +2435,8 @@ def __init__( there is another bar stacked on this one, then the text gets pushed inside. "auto" tries to position `text` inside the bar, but if the bar is too small and no bar - is stacked on this one the text is moved outside. + is stacked on this one the text is moved outside. If + "none", no text appears. textpositionsrc Sets the source reference on Chart Studio Cloud for textposition . @@ -2433,6 +2508,14 @@ def __init__( a 2D cartesian x axis. If "x" (the default value), the x coordinates refer to `layout.xaxis`. If "x2", the x coordinates refer to `layout.xaxis2`, and so on. + xhoverformat + Sets the hover text formatting rule for `x` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `xaxis.hoverformat`. xperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the x @@ -2463,6 +2546,14 @@ def __init__( a 2D cartesian y axis. If "y" (the default value), the y coordinates refer to `layout.yaxis`. If "y2", the y coordinates refer to `layout.yaxis2`, and so on. + yhoverformat + Sets the hover text formatting rule for `y` using d3 + formatting mini-languages which are very similar to + those in Python. See: https://github.com/d3/d3-3.x-api- + reference/blob/master/Formatting.md#d3_format And for + dates see: https://github.com/d3/d3-time- + format#locale_format By default the values are + formatted using `yaxis.hoverformat`. yperiod Only relevant when the axis `type` is "date". Sets the period positioning in milliseconds or "M" on the y @@ -2736,6 +2827,10 @@ def __init__( _v = xaxis if xaxis is not None else _v if _v is not None: self["xaxis"] = _v + _v = arg.pop("xhoverformat", None) + _v = xhoverformat if xhoverformat is not None else _v + if _v is not None: + self["xhoverformat"] = _v _v = arg.pop("xperiod", None) _v = xperiod if xperiod is not None else _v if _v is not None: @@ -2764,6 +2859,10 @@ def __init__( _v = yaxis if yaxis is not None else _v if _v is not None: self["yaxis"] = _v + _v = arg.pop("yhoverformat", None) + _v = yhoverformat if yhoverformat is not None else _v + if _v is not None: + self["yhoverformat"] = _v _v = arg.pop("yperiod", None) _v = yperiod if yperiod is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/area/__init__.py b/packages/python/plotly/plotly/graph_objs/area/__init__.py deleted file mode 100644 index 73b29682ae..0000000000 --- a/packages/python/plotly/plotly/graph_objs/area/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -import sys - -if sys.version_info < (3, 7): - from ._hoverlabel import Hoverlabel - from ._marker import Marker - from ._stream import Stream - from . import hoverlabel -else: - from _plotly_utils.importers import relative_import - - __all__, __getattr__, __dir__ = relative_import( - __name__, - [".hoverlabel"], - ["._hoverlabel.Hoverlabel", "._marker.Marker", "._stream.Stream"], - ) diff --git a/packages/python/plotly/plotly/graph_objs/area/_hoverlabel.py b/packages/python/plotly/plotly/graph_objs/area/_hoverlabel.py deleted file mode 100644 index 771205196f..0000000000 --- a/packages/python/plotly/plotly/graph_objs/area/_hoverlabel.py +++ /dev/null @@ -1,503 +0,0 @@ -from plotly.basedatatypes import BaseTraceHierarchyType as _BaseTraceHierarchyType -import copy as _copy - - -class Hoverlabel(_BaseTraceHierarchyType): - - # class properties - # -------------------- - _parent_path_str = "area" - _path_str = "area.hoverlabel" - _valid_props = { - "align", - "alignsrc", - "bgcolor", - "bgcolorsrc", - "bordercolor", - "bordercolorsrc", - "font", - "namelength", - "namelengthsrc", - } - - # align - # ----- - @property - def align(self): - """ - Sets the horizontal alignment of the text content within hover - label box. Has an effect only if the hover label text spans - more two or more lines - - The 'align' property is an enumeration that may be specified as: - - One of the following enumeration values: - ['left', 'right', 'auto'] - - A tuple, list, or one-dimensional numpy array of the above - - Returns - ------- - Any|numpy.ndarray - """ - return self["align"] - - @align.setter - def align(self, val): - self["align"] = val - - # alignsrc - # -------- - @property - def alignsrc(self): - """ - Sets the source reference on Chart Studio Cloud for align . - - The 'alignsrc' property must be specified as a string or - as a plotly.grid_objs.Column object - - Returns - ------- - str - """ - return self["alignsrc"] - - @alignsrc.setter - def alignsrc(self, val): - self["alignsrc"] = val - - # bgcolor - # ------- - @property - def bgcolor(self): - """ - Sets the background color of the hover labels for this trace - - The 'bgcolor' property is a color and may be specified as: - - A hex string (e.g. '#ff0000') - - An rgb/rgba string (e.g. 'rgb(255,0,0)') - - An hsl/hsla string (e.g. 'hsl(0,100%,50%)') - - An hsv/hsva string (e.g. 'hsv(0,100%,100%)') - - A named CSS color: - aliceblue, antiquewhite, aqua, aquamarine, azure, - beige, bisque, black, blanchedalmond, blue, - blueviolet, brown, burlywood, cadetblue, - chartreuse, chocolate, coral, cornflowerblue, - cornsilk, crimson, cyan, darkblue, darkcyan, - darkgoldenrod, darkgray, darkgrey, darkgreen, - darkkhaki, darkmagenta, darkolivegreen, darkorange, - darkorchid, darkred, darksalmon, darkseagreen, - darkslateblue, darkslategray, darkslategrey, - darkturquoise, darkviolet, deeppink, deepskyblue, - dimgray, dimgrey, dodgerblue, firebrick, - floralwhite, forestgreen, fuchsia, gainsboro, - ghostwhite, gold, goldenrod, gray, grey, green, - greenyellow, honeydew, hotpink, indianred, indigo, - ivory, khaki, lavender, lavenderblush, lawngreen, - lemonchiffon, lightblue, lightcoral, lightcyan, - lightgoldenrodyellow, lightgray, lightgrey, - lightgreen, lightpink, lightsalmon, lightseagreen, - lightskyblue, lightslategray, lightslategrey, - lightsteelblue, lightyellow, lime, limegreen, - linen, magenta, maroon, mediumaquamarine, - mediumblue, mediumorchid, mediumpurple, - mediumseagreen, mediumslateblue, mediumspringgreen, - mediumturquoise, mediumvioletred, midnightblue, - mintcream, mistyrose, moccasin, navajowhite, navy, - oldlace, olive, olivedrab, orange, orangered, - orchid, palegoldenrod, palegreen, paleturquoise, - palevioletred, papayawhip, peachpuff, peru, pink, - plum, powderblue, purple, red, rosybrown, - royalblue, rebeccapurple, saddlebrown, salmon, - sandybrown, seagreen, seashell, sienna, silver, - skyblue, slateblue, slategray, slategrey, snow, - springgreen, steelblue, tan, teal, thistle, tomato, - turquoise, violet, wheat, white, whitesmoke, - yellow, yellowgreen - - A list or array of any of the above - - Returns - ------- - str|numpy.ndarray - """ - return self["bgcolor"] - - @bgcolor.setter - def bgcolor(self, val): - self["bgcolor"] = val - - # bgcolorsrc - # ---------- - @property - def bgcolorsrc(self): - """ - Sets the source reference on Chart Studio Cloud for bgcolor . - - The 'bgcolorsrc' property must be specified as a string or - as a plotly.grid_objs.Column object - - Returns - ------- - str - """ - return self["bgcolorsrc"] - - @bgcolorsrc.setter - def bgcolorsrc(self, val): - self["bgcolorsrc"] = val - - # bordercolor - # ----------- - @property - def bordercolor(self): - """ - Sets the border color of the hover labels for this trace. - - The 'bordercolor' property is a color and may be specified as: - - A hex string (e.g. '#ff0000') - - An rgb/rgba string (e.g. 'rgb(255,0,0)') - - An hsl/hsla string (e.g. 'hsl(0,100%,50%)') - - An hsv/hsva string (e.g. 'hsv(0,100%,100%)') - - A named CSS color: - aliceblue, antiquewhite, aqua, aquamarine, azure, - beige, bisque, black, blanchedalmond, blue, - blueviolet, brown, burlywood, cadetblue, - chartreuse, chocolate, coral, cornflowerblue, - cornsilk, crimson, cyan, darkblue, darkcyan, - darkgoldenrod, darkgray, darkgrey, darkgreen, - darkkhaki, darkmagenta, darkolivegreen, darkorange, - darkorchid, darkred, darksalmon, darkseagreen, - darkslateblue, darkslategray, darkslategrey, - darkturquoise, darkviolet, deeppink, deepskyblue, - dimgray, dimgrey, dodgerblue, firebrick, - floralwhite, forestgreen, fuchsia, gainsboro, - ghostwhite, gold, goldenrod, gray, grey, green, - greenyellow, honeydew, hotpink, indianred, indigo, - ivory, khaki, lavender, lavenderblush, lawngreen, - lemonchiffon, lightblue, lightcoral, lightcyan, - lightgoldenrodyellow, lightgray, lightgrey, - lightgreen, lightpink, lightsalmon, lightseagreen, - lightskyblue, lightslategray, lightslategrey, - lightsteelblue, lightyellow, lime, limegreen, - linen, magenta, maroon, mediumaquamarine, - mediumblue, mediumorchid, mediumpurple, - mediumseagreen, mediumslateblue, mediumspringgreen, - mediumturquoise, mediumvioletred, midnightblue, - mintcream, mistyrose, moccasin, navajowhite, navy, - oldlace, olive, olivedrab, orange, orangered, - orchid, palegoldenrod, palegreen, paleturquoise, - palevioletred, papayawhip, peachpuff, peru, pink, - plum, powderblue, purple, red, rosybrown, - royalblue, rebeccapurple, saddlebrown, salmon, - sandybrown, seagreen, seashell, sienna, silver, - skyblue, slateblue, slategray, slategrey, snow, - springgreen, steelblue, tan, teal, thistle, tomato, - turquoise, violet, wheat, white, whitesmoke, - yellow, yellowgreen - - A list or array of any of the above - - Returns - ------- - str|numpy.ndarray - """ - return self["bordercolor"] - - @bordercolor.setter - def bordercolor(self, val): - self["bordercolor"] = val - - # bordercolorsrc - # -------------- - @property - def bordercolorsrc(self): - """ - Sets the source reference on Chart Studio Cloud for - bordercolor . - - The 'bordercolorsrc' property must be specified as a string or - as a plotly.grid_objs.Column object - - Returns - ------- - str - """ - return self["bordercolorsrc"] - - @bordercolorsrc.setter - def bordercolorsrc(self, val): - self["bordercolorsrc"] = val - - # font - # ---- - @property - def font(self): - """ - Sets the font used in hover labels. - - The 'font' property is an instance of Font - that may be specified as: - - An instance of :class:`plotly.graph_objs.area.hoverlabel.Font` - - A dict of string/value properties that will be passed - to the Font constructor - - Supported dict properties: - - color - - colorsrc - Sets the source reference on Chart Studio Cloud - for color . - family - HTML font family - the typeface that will be - applied by the web browser. The web browser - will only be able to apply a font if it is - available on the system which it operates. - Provide multiple font families, separated by - commas, to indicate the preference in which to - apply fonts if they aren't available on the - system. The Chart Studio Cloud (at - https://chart-studio.plotly.com or on-premise) - generates images on a server, where only a - select number of fonts are installed and - supported. These include "Arial", "Balto", - "Courier New", "Droid Sans",, "Droid Serif", - "Droid Sans Mono", "Gravitas One", "Old - Standard TT", "Open Sans", "Overpass", "PT Sans - Narrow", "Raleway", "Times New Roman". - familysrc - Sets the source reference on Chart Studio Cloud - for family . - size - - sizesrc - Sets the source reference on Chart Studio Cloud - for size . - - Returns - ------- - plotly.graph_objs.area.hoverlabel.Font - """ - return self["font"] - - @font.setter - def font(self, val): - self["font"] = val - - # namelength - # ---------- - @property - def namelength(self): - """ - Sets the default length (in number of characters) of the trace - name in the hover labels for all traces. -1 shows the whole - name regardless of length. 0-3 shows the first 0-3 characters, - and an integer >3 will show the whole name if it is less than - that many characters, but if it is longer, will truncate to - `namelength - 3` characters and add an ellipsis. - - The 'namelength' property is a integer and may be specified as: - - An int (or float that will be cast to an int) - in the interval [-1, 9223372036854775807] - - A tuple, list, or one-dimensional numpy array of the above - - Returns - ------- - int|numpy.ndarray - """ - return self["namelength"] - - @namelength.setter - def namelength(self, val): - self["namelength"] = val - - # namelengthsrc - # ------------- - @property - def namelengthsrc(self): - """ - Sets the source reference on Chart Studio Cloud for namelength - . - - The 'namelengthsrc' property must be specified as a string or - as a plotly.grid_objs.Column object - - Returns - ------- - str - """ - return self["namelengthsrc"] - - @namelengthsrc.setter - def namelengthsrc(self, val): - self["namelengthsrc"] = val - - # Self properties description - # --------------------------- - @property - def _prop_descriptions(self): - return """\ - align - Sets the horizontal alignment of the text content - within hover label box. Has an effect only if the hover - label text spans more two or more lines - alignsrc - Sets the source reference on Chart Studio Cloud for - align . - bgcolor - Sets the background color of the hover labels for this - trace - bgcolorsrc - Sets the source reference on Chart Studio Cloud for - bgcolor . - bordercolor - Sets the border color of the hover labels for this - trace. - bordercolorsrc - Sets the source reference on Chart Studio Cloud for - bordercolor . - font - Sets the font used in hover labels. - namelength - Sets the default length (in number of characters) of - the trace name in the hover labels for all traces. -1 - shows the whole name regardless of length. 0-3 shows - the first 0-3 characters, and an integer >3 will show - the whole name if it is less than that many characters, - but if it is longer, will truncate to `namelength - 3` - characters and add an ellipsis. - namelengthsrc - Sets the source reference on Chart Studio Cloud for - namelength . - """ - - def __init__( - self, - arg=None, - align=None, - alignsrc=None, - bgcolor=None, - bgcolorsrc=None, - bordercolor=None, - bordercolorsrc=None, - font=None, - namelength=None, - namelengthsrc=None, - **kwargs - ): - """ - Construct a new Hoverlabel object - - Parameters - ---------- - arg - dict of properties compatible with this constructor or - an instance of - :class:`plotly.graph_objs.area.Hoverlabel` - align - Sets the horizontal alignment of the text content - within hover label box. Has an effect only if the hover - label text spans more two or more lines - alignsrc - Sets the source reference on Chart Studio Cloud for - align . - bgcolor - Sets the background color of the hover labels for this - trace - bgcolorsrc - Sets the source reference on Chart Studio Cloud for - bgcolor . - bordercolor - Sets the border color of the hover labels for this - trace. - bordercolorsrc - Sets the source reference on Chart Studio Cloud for - bordercolor . - font - Sets the font used in hover labels. - namelength - Sets the default length (in number of characters) of - the trace name in the hover labels for all traces. -1 - shows the whole name regardless of length. 0-3 shows - the first 0-3 characters, and an integer >3 will show - the whole name if it is less than that many characters, - but if it is longer, will truncate to `namelength - 3` - characters and add an ellipsis. - namelengthsrc - Sets the source reference on Chart Studio Cloud for - namelength . - - Returns - ------- - Hoverlabel - """ - super(Hoverlabel, self).__init__("hoverlabel") - - if "_parent" in kwargs: - self._parent = kwargs["_parent"] - return - - # Validate arg - # ------------ - if arg is None: - arg = {} - elif isinstance(arg, self.__class__): - arg = arg.to_plotly_json() - elif isinstance(arg, dict): - arg = _copy.copy(arg) - else: - raise ValueError( - """\ -The first argument to the plotly.graph_objs.area.Hoverlabel -constructor must be a dict or -an instance of :class:`plotly.graph_objs.area.Hoverlabel`""" - ) - - # Handle skip_invalid - # ------------------- - self._skip_invalid = kwargs.pop("skip_invalid", False) - self._validate = kwargs.pop("_validate", True) - - # Populate data dict with properties - # ---------------------------------- - _v = arg.pop("align", None) - _v = align if align is not None else _v - if _v is not None: - self["align"] = _v - _v = arg.pop("alignsrc", None) - _v = alignsrc if alignsrc is not None else _v - if _v is not None: - self["alignsrc"] = _v - _v = arg.pop("bgcolor", None) - _v = bgcolor if bgcolor is not None else _v - if _v is not None: - self["bgcolor"] = _v - _v = arg.pop("bgcolorsrc", None) - _v = bgcolorsrc if bgcolorsrc is not None else _v - if _v is not None: - self["bgcolorsrc"] = _v - _v = arg.pop("bordercolor", None) - _v = bordercolor if bordercolor is not None else _v - if _v is not None: - self["bordercolor"] = _v - _v = arg.pop("bordercolorsrc", None) - _v = bordercolorsrc if bordercolorsrc is not None else _v - if _v is not None: - self["bordercolorsrc"] = _v - _v = arg.pop("font", None) - _v = font if font is not None else _v - if _v is not None: - self["font"] = _v - _v = arg.pop("namelength", None) - _v = namelength if namelength is not None else _v - if _v is not None: - self["namelength"] = _v - _v = arg.pop("namelengthsrc", None) - _v = namelengthsrc if namelengthsrc is not None else _v - if _v is not None: - self["namelengthsrc"] = _v - - # Process unknown kwargs - # ---------------------- - self._process_kwargs(**dict(arg, **kwargs)) - - # Reset skip_invalid - # ------------------ - self._skip_invalid = False diff --git a/packages/python/plotly/plotly/graph_objs/area/_marker.py b/packages/python/plotly/plotly/graph_objs/area/_marker.py deleted file mode 100644 index 88ac2610d6..0000000000 --- a/packages/python/plotly/plotly/graph_objs/area/_marker.py +++ /dev/null @@ -1,488 +0,0 @@ -from plotly.basedatatypes import BaseTraceHierarchyType as _BaseTraceHierarchyType -import copy as _copy - - -class Marker(_BaseTraceHierarchyType): - - # class properties - # -------------------- - _parent_path_str = "area" - _path_str = "area.marker" - _valid_props = { - "color", - "colorsrc", - "opacity", - "opacitysrc", - "size", - "sizesrc", - "symbol", - "symbolsrc", - } - - # color - # ----- - @property - def color(self): - """ - Area traces are deprecated! Please switch to the "barpolar" - trace type. Sets themarkercolor. It accepts either a specific - color or an array of numbers that are mapped to the colorscale - relative to the max and min values of the array or relative to - `marker.cmin` and `marker.cmax` if set. - - The 'color' property is a color and may be specified as: - - A hex string (e.g. '#ff0000') - - An rgb/rgba string (e.g. 'rgb(255,0,0)') - - An hsl/hsla string (e.g. 'hsl(0,100%,50%)') - - An hsv/hsva string (e.g. 'hsv(0,100%,100%)') - - A named CSS color: - aliceblue, antiquewhite, aqua, aquamarine, azure, - beige, bisque, black, blanchedalmond, blue, - blueviolet, brown, burlywood, cadetblue, - chartreuse, chocolate, coral, cornflowerblue, - cornsilk, crimson, cyan, darkblue, darkcyan, - darkgoldenrod, darkgray, darkgrey, darkgreen, - darkkhaki, darkmagenta, darkolivegreen, darkorange, - darkorchid, darkred, darksalmon, darkseagreen, - darkslateblue, darkslategray, darkslategrey, - darkturquoise, darkviolet, deeppink, deepskyblue, - dimgray, dimgrey, dodgerblue, firebrick, - floralwhite, forestgreen, fuchsia, gainsboro, - ghostwhite, gold, goldenrod, gray, grey, green, - greenyellow, honeydew, hotpink, indianred, indigo, - ivory, khaki, lavender, lavenderblush, lawngreen, - lemonchiffon, lightblue, lightcoral, lightcyan, - lightgoldenrodyellow, lightgray, lightgrey, - lightgreen, lightpink, lightsalmon, lightseagreen, - lightskyblue, lightslategray, lightslategrey, - lightsteelblue, lightyellow, lime, limegreen, - linen, magenta, maroon, mediumaquamarine, - mediumblue, mediumorchid, mediumpurple, - mediumseagreen, mediumslateblue, mediumspringgreen, - mediumturquoise, mediumvioletred, midnightblue, - mintcream, mistyrose, moccasin, navajowhite, navy, - oldlace, olive, olivedrab, orange, orangered, - orchid, palegoldenrod, palegreen, paleturquoise, - palevioletred, papayawhip, peachpuff, peru, pink, - plum, powderblue, purple, red, rosybrown, - royalblue, rebeccapurple, saddlebrown, salmon, - sandybrown, seagreen, seashell, sienna, silver, - skyblue, slateblue, slategray, slategrey, snow, - springgreen, steelblue, tan, teal, thistle, tomato, - turquoise, violet, wheat, white, whitesmoke, - yellow, yellowgreen - - A list or array of any of the above - - Returns - ------- - str|numpy.ndarray - """ - return self["color"] - - @color.setter - def color(self, val): - self["color"] = val - - # colorsrc - # -------- - @property - def colorsrc(self): - """ - Sets the source reference on Chart Studio Cloud for color . - - The 'colorsrc' property must be specified as a string or - as a plotly.grid_objs.Column object - - Returns - ------- - str - """ - return self["colorsrc"] - - @colorsrc.setter - def colorsrc(self, val): - self["colorsrc"] = val - - # opacity - # ------- - @property - def opacity(self): - """ - Area traces are deprecated! Please switch to the "barpolar" - trace type. Sets the marker opacity. - - The 'opacity' property is a number and may be specified as: - - An int or float in the interval [0, 1] - - A tuple, list, or one-dimensional numpy array of the above - - Returns - ------- - int|float|numpy.ndarray - """ - return self["opacity"] - - @opacity.setter - def opacity(self, val): - self["opacity"] = val - - # opacitysrc - # ---------- - @property - def opacitysrc(self): - """ - Sets the source reference on Chart Studio Cloud for opacity . - - The 'opacitysrc' property must be specified as a string or - as a plotly.grid_objs.Column object - - Returns - ------- - str - """ - return self["opacitysrc"] - - @opacitysrc.setter - def opacitysrc(self, val): - self["opacitysrc"] = val - - # size - # ---- - @property - def size(self): - """ - Area traces are deprecated! Please switch to the "barpolar" - trace type. Sets the marker size (in px). - - The 'size' property is a number and may be specified as: - - An int or float in the interval [0, inf] - - A tuple, list, or one-dimensional numpy array of the above - - Returns - ------- - int|float|numpy.ndarray - """ - return self["size"] - - @size.setter - def size(self, val): - self["size"] = val - - # sizesrc - # ------- - @property - def sizesrc(self): - """ - Sets the source reference on Chart Studio Cloud for size . - - The 'sizesrc' property must be specified as a string or - as a plotly.grid_objs.Column object - - Returns - ------- - str - """ - return self["sizesrc"] - - @sizesrc.setter - def sizesrc(self, val): - self["sizesrc"] = val - - # symbol - # ------ - @property - def symbol(self): - """ - Area traces are deprecated! Please switch to the "barpolar" - trace type. Sets the marker symbol type. Adding 100 is - equivalent to appending "-open" to a symbol name. Adding 200 is - equivalent to appending "-dot" to a symbol name. Adding 300 is - equivalent to appending "-open-dot" or "dot-open" to a symbol - name. - - The 'symbol' property is an enumeration that may be specified as: - - One of the following enumeration values: - [0, '0', 'circle', 100, '100', 'circle-open', 200, '200', - 'circle-dot', 300, '300', 'circle-open-dot', 1, '1', - 'square', 101, '101', 'square-open', 201, '201', - 'square-dot', 301, '301', 'square-open-dot', 2, '2', - 'diamond', 102, '102', 'diamond-open', 202, '202', - 'diamond-dot', 302, '302', 'diamond-open-dot', 3, '3', - 'cross', 103, '103', 'cross-open', 203, '203', - 'cross-dot', 303, '303', 'cross-open-dot', 4, '4', 'x', - 104, '104', 'x-open', 204, '204', 'x-dot', 304, '304', - 'x-open-dot', 5, '5', 'triangle-up', 105, '105', - 'triangle-up-open', 205, '205', 'triangle-up-dot', 305, - '305', 'triangle-up-open-dot', 6, '6', 'triangle-down', - 106, '106', 'triangle-down-open', 206, '206', - 'triangle-down-dot', 306, '306', 'triangle-down-open-dot', - 7, '7', 'triangle-left', 107, '107', 'triangle-left-open', - 207, '207', 'triangle-left-dot', 307, '307', - 'triangle-left-open-dot', 8, '8', 'triangle-right', 108, - '108', 'triangle-right-open', 208, '208', - 'triangle-right-dot', 308, '308', - 'triangle-right-open-dot', 9, '9', 'triangle-ne', 109, - '109', 'triangle-ne-open', 209, '209', 'triangle-ne-dot', - 309, '309', 'triangle-ne-open-dot', 10, '10', - 'triangle-se', 110, '110', 'triangle-se-open', 210, '210', - 'triangle-se-dot', 310, '310', 'triangle-se-open-dot', 11, - '11', 'triangle-sw', 111, '111', 'triangle-sw-open', 211, - '211', 'triangle-sw-dot', 311, '311', - 'triangle-sw-open-dot', 12, '12', 'triangle-nw', 112, - '112', 'triangle-nw-open', 212, '212', 'triangle-nw-dot', - 312, '312', 'triangle-nw-open-dot', 13, '13', 'pentagon', - 113, '113', 'pentagon-open', 213, '213', 'pentagon-dot', - 313, '313', 'pentagon-open-dot', 14, '14', 'hexagon', 114, - '114', 'hexagon-open', 214, '214', 'hexagon-dot', 314, - '314', 'hexagon-open-dot', 15, '15', 'hexagon2', 115, - '115', 'hexagon2-open', 215, '215', 'hexagon2-dot', 315, - '315', 'hexagon2-open-dot', 16, '16', 'octagon', 116, - '116', 'octagon-open', 216, '216', 'octagon-dot', 316, - '316', 'octagon-open-dot', 17, '17', 'star', 117, '117', - 'star-open', 217, '217', 'star-dot', 317, '317', - 'star-open-dot', 18, '18', 'hexagram', 118, '118', - 'hexagram-open', 218, '218', 'hexagram-dot', 318, '318', - 'hexagram-open-dot', 19, '19', 'star-triangle-up', 119, - '119', 'star-triangle-up-open', 219, '219', - 'star-triangle-up-dot', 319, '319', - 'star-triangle-up-open-dot', 20, '20', - 'star-triangle-down', 120, '120', - 'star-triangle-down-open', 220, '220', - 'star-triangle-down-dot', 320, '320', - 'star-triangle-down-open-dot', 21, '21', 'star-square', - 121, '121', 'star-square-open', 221, '221', - 'star-square-dot', 321, '321', 'star-square-open-dot', 22, - '22', 'star-diamond', 122, '122', 'star-diamond-open', - 222, '222', 'star-diamond-dot', 322, '322', - 'star-diamond-open-dot', 23, '23', 'diamond-tall', 123, - '123', 'diamond-tall-open', 223, '223', - 'diamond-tall-dot', 323, '323', 'diamond-tall-open-dot', - 24, '24', 'diamond-wide', 124, '124', 'diamond-wide-open', - 224, '224', 'diamond-wide-dot', 324, '324', - 'diamond-wide-open-dot', 25, '25', 'hourglass', 125, - '125', 'hourglass-open', 26, '26', 'bowtie', 126, '126', - 'bowtie-open', 27, '27', 'circle-cross', 127, '127', - 'circle-cross-open', 28, '28', 'circle-x', 128, '128', - 'circle-x-open', 29, '29', 'square-cross', 129, '129', - 'square-cross-open', 30, '30', 'square-x', 130, '130', - 'square-x-open', 31, '31', 'diamond-cross', 131, '131', - 'diamond-cross-open', 32, '32', 'diamond-x', 132, '132', - 'diamond-x-open', 33, '33', 'cross-thin', 133, '133', - 'cross-thin-open', 34, '34', 'x-thin', 134, '134', - 'x-thin-open', 35, '35', 'asterisk', 135, '135', - 'asterisk-open', 36, '36', 'hash', 136, '136', - 'hash-open', 236, '236', 'hash-dot', 336, '336', - 'hash-open-dot', 37, '37', 'y-up', 137, '137', - 'y-up-open', 38, '38', 'y-down', 138, '138', - 'y-down-open', 39, '39', 'y-left', 139, '139', - 'y-left-open', 40, '40', 'y-right', 140, '140', - 'y-right-open', 41, '41', 'line-ew', 141, '141', - 'line-ew-open', 42, '42', 'line-ns', 142, '142', - 'line-ns-open', 43, '43', 'line-ne', 143, '143', - 'line-ne-open', 44, '44', 'line-nw', 144, '144', - 'line-nw-open', 45, '45', 'arrow-up', 145, '145', - 'arrow-up-open', 46, '46', 'arrow-down', 146, '146', - 'arrow-down-open', 47, '47', 'arrow-left', 147, '147', - 'arrow-left-open', 48, '48', 'arrow-right', 148, '148', - 'arrow-right-open', 49, '49', 'arrow-bar-up', 149, '149', - 'arrow-bar-up-open', 50, '50', 'arrow-bar-down', 150, - '150', 'arrow-bar-down-open', 51, '51', 'arrow-bar-left', - 151, '151', 'arrow-bar-left-open', 52, '52', - 'arrow-bar-right', 152, '152', 'arrow-bar-right-open'] - - A tuple, list, or one-dimensional numpy array of the above - - Returns - ------- - Any|numpy.ndarray - """ - return self["symbol"] - - @symbol.setter - def symbol(self, val): - self["symbol"] = val - - # symbolsrc - # --------- - @property - def symbolsrc(self): - """ - Sets the source reference on Chart Studio Cloud for symbol . - - The 'symbolsrc' property must be specified as a string or - as a plotly.grid_objs.Column object - - Returns - ------- - str - """ - return self["symbolsrc"] - - @symbolsrc.setter - def symbolsrc(self, val): - self["symbolsrc"] = val - - # Self properties description - # --------------------------- - @property - def _prop_descriptions(self): - return """\ - color - Area traces are deprecated! Please switch to the - "barpolar" trace type. Sets themarkercolor. It accepts - either a specific color or an array of numbers that are - mapped to the colorscale relative to the max and min - values of the array or relative to `marker.cmin` and - `marker.cmax` if set. - colorsrc - Sets the source reference on Chart Studio Cloud for - color . - opacity - Area traces are deprecated! Please switch to the - "barpolar" trace type. Sets the marker opacity. - opacitysrc - Sets the source reference on Chart Studio Cloud for - opacity . - size - Area traces are deprecated! Please switch to the - "barpolar" trace type. Sets the marker size (in px). - sizesrc - Sets the source reference on Chart Studio Cloud for - size . - symbol - Area traces are deprecated! Please switch to the - "barpolar" trace type. Sets the marker symbol type. - Adding 100 is equivalent to appending "-open" to a - symbol name. Adding 200 is equivalent to appending - "-dot" to a symbol name. Adding 300 is equivalent to - appending "-open-dot" or "dot-open" to a symbol name. - symbolsrc - Sets the source reference on Chart Studio Cloud for - symbol . - """ - - def __init__( - self, - arg=None, - color=None, - colorsrc=None, - opacity=None, - opacitysrc=None, - size=None, - sizesrc=None, - symbol=None, - symbolsrc=None, - **kwargs - ): - """ - Construct a new Marker object - - Parameters - ---------- - arg - dict of properties compatible with this constructor or - an instance of :class:`plotly.graph_objs.area.Marker` - color - Area traces are deprecated! Please switch to the - "barpolar" trace type. Sets themarkercolor. It accepts - either a specific color or an array of numbers that are - mapped to the colorscale relative to the max and min - values of the array or relative to `marker.cmin` and - `marker.cmax` if set. - colorsrc - Sets the source reference on Chart Studio Cloud for - color . - opacity - Area traces are deprecated! Please switch to the - "barpolar" trace type. Sets the marker opacity. - opacitysrc - Sets the source reference on Chart Studio Cloud for - opacity . - size - Area traces are deprecated! Please switch to the - "barpolar" trace type. Sets the marker size (in px). - sizesrc - Sets the source reference on Chart Studio Cloud for - size . - symbol - Area traces are deprecated! Please switch to the - "barpolar" trace type. Sets the marker symbol type. - Adding 100 is equivalent to appending "-open" to a - symbol name. Adding 200 is equivalent to appending - "-dot" to a symbol name. Adding 300 is equivalent to - appending "-open-dot" or "dot-open" to a symbol name. - symbolsrc - Sets the source reference on Chart Studio Cloud for - symbol . - - Returns - ------- - Marker - """ - super(Marker, self).__init__("marker") - - if "_parent" in kwargs: - self._parent = kwargs["_parent"] - return - - # Validate arg - # ------------ - if arg is None: - arg = {} - elif isinstance(arg, self.__class__): - arg = arg.to_plotly_json() - elif isinstance(arg, dict): - arg = _copy.copy(arg) - else: - raise ValueError( - """\ -The first argument to the plotly.graph_objs.area.Marker -constructor must be a dict or -an instance of :class:`plotly.graph_objs.area.Marker`""" - ) - - # Handle skip_invalid - # ------------------- - self._skip_invalid = kwargs.pop("skip_invalid", False) - self._validate = kwargs.pop("_validate", True) - - # Populate data dict with properties - # ---------------------------------- - _v = arg.pop("color", None) - _v = color if color is not None else _v - if _v is not None: - self["color"] = _v - _v = arg.pop("colorsrc", None) - _v = colorsrc if colorsrc is not None else _v - if _v is not None: - self["colorsrc"] = _v - _v = arg.pop("opacity", None) - _v = opacity if opacity is not None else _v - if _v is not None: - self["opacity"] = _v - _v = arg.pop("opacitysrc", None) - _v = opacitysrc if opacitysrc is not None else _v - if _v is not None: - self["opacitysrc"] = _v - _v = arg.pop("size", None) - _v = size if size is not None else _v - if _v is not None: - self["size"] = _v - _v = arg.pop("sizesrc", None) - _v = sizesrc if sizesrc is not None else _v - if _v is not None: - self["sizesrc"] = _v - _v = arg.pop("symbol", None) - _v = symbol if symbol is not None else _v - if _v is not None: - self["symbol"] = _v - _v = arg.pop("symbolsrc", None) - _v = symbolsrc if symbolsrc is not None else _v - if _v is not None: - self["symbolsrc"] = _v - - # Process unknown kwargs - # ---------------------- - self._process_kwargs(**dict(arg, **kwargs)) - - # Reset skip_invalid - # ------------------ - self._skip_invalid = False diff --git a/packages/python/plotly/plotly/graph_objs/area/_stream.py b/packages/python/plotly/plotly/graph_objs/area/_stream.py deleted file mode 100644 index 2a8e884632..0000000000 --- a/packages/python/plotly/plotly/graph_objs/area/_stream.py +++ /dev/null @@ -1,140 +0,0 @@ -from plotly.basedatatypes import BaseTraceHierarchyType as _BaseTraceHierarchyType -import copy as _copy - - -class Stream(_BaseTraceHierarchyType): - - # class properties - # -------------------- - _parent_path_str = "area" - _path_str = "area.stream" - _valid_props = {"maxpoints", "token"} - - # maxpoints - # --------- - @property - def maxpoints(self): - """ - Sets the maximum number of points to keep on the plots from an - incoming stream. If `maxpoints` is set to 50, only the newest - 50 points will be displayed on the plot. - - The 'maxpoints' property is a number and may be specified as: - - An int or float in the interval [0, 10000] - - Returns - ------- - int|float - """ - return self["maxpoints"] - - @maxpoints.setter - def maxpoints(self, val): - self["maxpoints"] = val - - # token - # ----- - @property - def token(self): - """ - The stream id number links a data trace on a plot with a - stream. See https://chart-studio.plotly.com/settings for more - details. - - The 'token' property is a string and must be specified as: - - A non-empty string - - Returns - ------- - str - """ - return self["token"] - - @token.setter - def token(self, val): - self["token"] = val - - # Self properties description - # --------------------------- - @property - def _prop_descriptions(self): - return """\ - maxpoints - Sets the maximum number of points to keep on the plots - from an incoming stream. If `maxpoints` is set to 50, - only the newest 50 points will be displayed on the - plot. - token - The stream id number links a data trace on a plot with - a stream. See https://chart-studio.plotly.com/settings - for more details. - """ - - def __init__(self, arg=None, maxpoints=None, token=None, **kwargs): - """ - Construct a new Stream object - - Parameters - ---------- - arg - dict of properties compatible with this constructor or - an instance of :class:`plotly.graph_objs.area.Stream` - maxpoints - Sets the maximum number of points to keep on the plots - from an incoming stream. If `maxpoints` is set to 50, - only the newest 50 points will be displayed on the - plot. - token - The stream id number links a data trace on a plot with - a stream. See https://chart-studio.plotly.com/settings - for more details. - - Returns - ------- - Stream - """ - super(Stream, self).__init__("stream") - - if "_parent" in kwargs: - self._parent = kwargs["_parent"] - return - - # Validate arg - # ------------ - if arg is None: - arg = {} - elif isinstance(arg, self.__class__): - arg = arg.to_plotly_json() - elif isinstance(arg, dict): - arg = _copy.copy(arg) - else: - raise ValueError( - """\ -The first argument to the plotly.graph_objs.area.Stream -constructor must be a dict or -an instance of :class:`plotly.graph_objs.area.Stream`""" - ) - - # Handle skip_invalid - # ------------------- - self._skip_invalid = kwargs.pop("skip_invalid", False) - self._validate = kwargs.pop("_validate", True) - - # Populate data dict with properties - # ---------------------------------- - _v = arg.pop("maxpoints", None) - _v = maxpoints if maxpoints is not None else _v - if _v is not None: - self["maxpoints"] = _v - _v = arg.pop("token", None) - _v = token if token is not None else _v - if _v is not None: - self["token"] = _v - - # Process unknown kwargs - # ---------------------- - self._process_kwargs(**dict(arg, **kwargs)) - - # Reset skip_invalid - # ------------------ - self._skip_invalid = False diff --git a/packages/python/plotly/plotly/graph_objs/area/hoverlabel/__init__.py b/packages/python/plotly/plotly/graph_objs/area/hoverlabel/__init__.py deleted file mode 100644 index 5830914f97..0000000000 --- a/packages/python/plotly/plotly/graph_objs/area/hoverlabel/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -import sys - -if sys.version_info < (3, 7): - from ._font import Font -else: - from _plotly_utils.importers import relative_import - - __all__, __getattr__, __dir__ = relative_import(__name__, [], ["._font.Font"]) diff --git a/packages/python/plotly/plotly/graph_objs/bar/_marker.py b/packages/python/plotly/plotly/graph_objs/bar/_marker.py index 9f48e6f349..cc5f778c1d 100644 --- a/packages/python/plotly/plotly/graph_objs/bar/_marker.py +++ b/packages/python/plotly/plotly/graph_objs/bar/_marker.py @@ -22,6 +22,7 @@ class Marker(_BaseTraceHierarchyType): "line", "opacity", "opacitysrc", + "pattern", "reversescale", "showscale", } @@ -389,6 +390,12 @@ def colorbar(self): a.bar.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of bar.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -706,6 +713,59 @@ def opacitysrc(self): def opacitysrc(self, val): self["opacitysrc"] = val + # pattern + # ------- + @property + def pattern(self): + """ + The 'pattern' property is an instance of Pattern + that may be specified as: + - An instance of :class:`plotly.graph_objs.bar.marker.Pattern` + - A dict of string/value properties that will be passed + to the Pattern constructor + + Supported dict properties: + + bgcolor + Sets the background color of the pattern fill. + Defaults to a transparent background. + bgcolorsrc + Sets the source reference on Chart Studio Cloud + for bgcolor . + shape + Sets the shape of the pattern fill. By default, + no pattern is used for filling the area. + shapesrc + Sets the source reference on Chart Studio Cloud + for shape . + size + Sets the size of unit squares of the pattern + fill in pixels, which corresponds to the + interval of repetition of the pattern. + sizesrc + Sets the source reference on Chart Studio Cloud + for size . + solidity + Sets the solidity of the pattern fill. Solidity + is roughly the fraction of the area filled by + the pattern. Solidity of 0 shows only the + background color without pattern and solidty of + 1 shows only the foreground color without + pattern. + soliditysrc + Sets the source reference on Chart Studio Cloud + for solidity . + + Returns + ------- + plotly.graph_objs.bar.marker.Pattern + """ + return self["pattern"] + + @pattern.setter + def pattern(self, val): + self["pattern"] = val + # reversescale # ------------ @property @@ -830,6 +890,9 @@ def _prop_descriptions(self): opacitysrc Sets the source reference on Chart Studio Cloud for opacity . + pattern + :class:`plotly.graph_objects.bar.marker.Pattern` + instance or dict with compatible properties reversescale Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If @@ -858,6 +921,7 @@ def __init__( line=None, opacity=None, opacitysrc=None, + pattern=None, reversescale=None, showscale=None, **kwargs @@ -944,6 +1008,9 @@ def __init__( opacitysrc Sets the source reference on Chart Studio Cloud for opacity . + pattern + :class:`plotly.graph_objects.bar.marker.Pattern` + instance or dict with compatible properties reversescale Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If @@ -1040,6 +1107,10 @@ def __init__( _v = opacitysrc if opacitysrc is not None else _v if _v is not None: self["opacitysrc"] = _v + _v = arg.pop("pattern", None) + _v = pattern if pattern is not None else _v + if _v is not None: + self["pattern"] = _v _v = arg.pop("reversescale", None) _v = reversescale if reversescale is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/bar/marker/__init__.py b/packages/python/plotly/plotly/graph_objs/bar/marker/__init__.py index 27669de18b..737a4a87b8 100644 --- a/packages/python/plotly/plotly/graph_objs/bar/marker/__init__.py +++ b/packages/python/plotly/plotly/graph_objs/bar/marker/__init__.py @@ -3,10 +3,13 @@ if sys.version_info < (3, 7): from ._colorbar import ColorBar from ._line import Line + from ._pattern import Pattern from . import colorbar else: from _plotly_utils.importers import relative_import __all__, __getattr__, __dir__ = relative_import( - __name__, [".colorbar"], ["._colorbar.ColorBar", "._line.Line"] + __name__, + [".colorbar"], + ["._colorbar.ColorBar", "._line.Line", "._pattern.Pattern"], ) diff --git a/packages/python/plotly/plotly/graph_objs/bar/marker/_colorbar.py b/packages/python/plotly/plotly/graph_objs/bar/marker/_colorbar.py index a5d0909d68..4fa879ad86 100644 --- a/packages/python/plotly/plotly/graph_objs/bar/marker/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/bar/marker/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -847,6 +848,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1449,6 +1474,12 @@ def _prop_descriptions(self): rker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of bar.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1555,6 +1586,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1709,6 +1741,12 @@ def __init__( rker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of bar.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1914,6 +1952,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/area/hoverlabel/_font.py b/packages/python/plotly/plotly/graph_objs/bar/marker/_pattern.py similarity index 50% rename from packages/python/plotly/plotly/graph_objs/area/hoverlabel/_font.py rename to packages/python/plotly/plotly/graph_objs/bar/marker/_pattern.py index dc29a473c8..2811a665a9 100644 --- a/packages/python/plotly/plotly/graph_objs/area/hoverlabel/_font.py +++ b/packages/python/plotly/plotly/graph_objs/bar/marker/_pattern.py @@ -2,20 +2,32 @@ import copy as _copy -class Font(_BaseTraceHierarchyType): +class Pattern(_BaseTraceHierarchyType): # class properties # -------------------- - _parent_path_str = "area.hoverlabel" - _path_str = "area.hoverlabel.font" - _valid_props = {"color", "colorsrc", "family", "familysrc", "size", "sizesrc"} - - # color - # ----- + _parent_path_str = "bar.marker" + _path_str = "bar.marker.pattern" + _valid_props = { + "bgcolor", + "bgcolorsrc", + "shape", + "shapesrc", + "size", + "sizesrc", + "solidity", + "soliditysrc", + } + + # bgcolor + # ------- @property - def color(self): + def bgcolor(self): """ - The 'color' property is a color and may be specified as: + Sets the background color of the pattern fill. Defaults to a + transparent background. + + The 'bgcolor' property is a color and may be specified as: - A hex string (e.g. '#ff0000') - An rgb/rgba string (e.g. 'rgb(255,0,0)') - An hsl/hsla string (e.g. 'hsl(0,100%,50%)') @@ -62,91 +74,87 @@ def color(self): ------- str|numpy.ndarray """ - return self["color"] + return self["bgcolor"] - @color.setter - def color(self, val): - self["color"] = val + @bgcolor.setter + def bgcolor(self, val): + self["bgcolor"] = val - # colorsrc - # -------- + # bgcolorsrc + # ---------- @property - def colorsrc(self): + def bgcolorsrc(self): """ - Sets the source reference on Chart Studio Cloud for color . + Sets the source reference on Chart Studio Cloud for bgcolor . - The 'colorsrc' property must be specified as a string or + The 'bgcolorsrc' property must be specified as a string or as a plotly.grid_objs.Column object Returns ------- str """ - return self["colorsrc"] + return self["bgcolorsrc"] - @colorsrc.setter - def colorsrc(self, val): - self["colorsrc"] = val + @bgcolorsrc.setter + def bgcolorsrc(self, val): + self["bgcolorsrc"] = val - # family - # ------ + # shape + # ----- @property - def family(self): + def shape(self): """ - HTML font family - the typeface that will be applied by the web - browser. The web browser will only be able to apply a font if - it is available on the system which it operates. Provide - multiple font families, separated by commas, to indicate the - preference in which to apply fonts if they aren't available on - the system. The Chart Studio Cloud (at https://chart- - studio.plotly.com or on-premise) generates images on a server, - where only a select number of fonts are installed and - supported. These include "Arial", "Balto", "Courier New", - "Droid Sans",, "Droid Serif", "Droid Sans Mono", "Gravitas - One", "Old Standard TT", "Open Sans", "Overpass", "PT Sans - Narrow", "Raleway", "Times New Roman". + Sets the shape of the pattern fill. By default, no pattern is + used for filling the area. - The 'family' property is a string and must be specified as: - - A non-empty string + The 'shape' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['', '\\', 'x', '-', '|', '+', '.'] + - A string that matches one of the following regular expressions: + [''] - A tuple, list, or one-dimensional numpy array of the above Returns ------- - str|numpy.ndarray + Any|numpy.ndarray """ - return self["family"] + return self["shape"] - @family.setter - def family(self, val): - self["family"] = val + @shape.setter + def shape(self, val): + self["shape"] = val - # familysrc - # --------- + # shapesrc + # -------- @property - def familysrc(self): + def shapesrc(self): """ - Sets the source reference on Chart Studio Cloud for family . + Sets the source reference on Chart Studio Cloud for shape . - The 'familysrc' property must be specified as a string or + The 'shapesrc' property must be specified as a string or as a plotly.grid_objs.Column object Returns ------- str """ - return self["familysrc"] + return self["shapesrc"] - @familysrc.setter - def familysrc(self, val): - self["familysrc"] = val + @shapesrc.setter + def shapesrc(self, val): + self["shapesrc"] = val # size # ---- @property def size(self): """ + Sets the size of unit squares of the pattern fill in pixels, + which corresponds to the interval of repetition of the pattern. + The 'size' property is a number and may be specified as: - - An int or float in the interval [1, inf] + - An int or float in the interval [0, inf] - A tuple, list, or one-dimensional numpy array of the above Returns @@ -179,95 +187,141 @@ def sizesrc(self): def sizesrc(self, val): self["sizesrc"] = val + # solidity + # -------- + @property + def solidity(self): + """ + Sets the solidity of the pattern fill. Solidity is roughly the + fraction of the area filled by the pattern. Solidity of 0 shows + only the background color without pattern and solidty of 1 + shows only the foreground color without pattern. + + The 'solidity' property is a number and may be specified as: + - An int or float in the interval [0, 1] + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + int|float|numpy.ndarray + """ + return self["solidity"] + + @solidity.setter + def solidity(self, val): + self["solidity"] = val + + # soliditysrc + # ----------- + @property + def soliditysrc(self): + """ + Sets the source reference on Chart Studio Cloud for solidity . + + The 'soliditysrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["soliditysrc"] + + @soliditysrc.setter + def soliditysrc(self, val): + self["soliditysrc"] = val + # Self properties description # --------------------------- @property def _prop_descriptions(self): return """\ - color - - colorsrc + bgcolor + Sets the background color of the pattern fill. Defaults + to a transparent background. + bgcolorsrc Sets the source reference on Chart Studio Cloud for - color . - family - HTML font family - the typeface that will be applied by - the web browser. The web browser will only be able to - apply a font if it is available on the system which it - operates. Provide multiple font families, separated by - commas, to indicate the preference in which to apply - fonts if they aren't available on the system. The Chart - Studio Cloud (at https://chart-studio.plotly.com or on- - premise) generates images on a server, where only a - select number of fonts are installed and supported. - These include "Arial", "Balto", "Courier New", "Droid - Sans",, "Droid Serif", "Droid Sans Mono", "Gravitas - One", "Old Standard TT", "Open Sans", "Overpass", "PT - Sans Narrow", "Raleway", "Times New Roman". - familysrc + bgcolor . + shape + Sets the shape of the pattern fill. By default, no + pattern is used for filling the area. + shapesrc Sets the source reference on Chart Studio Cloud for - family . + shape . size - + Sets the size of unit squares of the pattern fill in + pixels, which corresponds to the interval of repetition + of the pattern. sizesrc Sets the source reference on Chart Studio Cloud for size . + solidity + Sets the solidity of the pattern fill. Solidity is + roughly the fraction of the area filled by the pattern. + Solidity of 0 shows only the background color without + pattern and solidty of 1 shows only the foreground + color without pattern. + soliditysrc + Sets the source reference on Chart Studio Cloud for + solidity . """ def __init__( self, arg=None, - color=None, - colorsrc=None, - family=None, - familysrc=None, + bgcolor=None, + bgcolorsrc=None, + shape=None, + shapesrc=None, size=None, sizesrc=None, + solidity=None, + soliditysrc=None, **kwargs ): """ - Construct a new Font object + Construct a new Pattern object - Sets the font used in hover labels. - Parameters ---------- arg dict of properties compatible with this constructor or an instance of - :class:`plotly.graph_objs.area.hoverlabel.Font` - color - - colorsrc + :class:`plotly.graph_objs.bar.marker.Pattern` + bgcolor + Sets the background color of the pattern fill. Defaults + to a transparent background. + bgcolorsrc Sets the source reference on Chart Studio Cloud for - color . - family - HTML font family - the typeface that will be applied by - the web browser. The web browser will only be able to - apply a font if it is available on the system which it - operates. Provide multiple font families, separated by - commas, to indicate the preference in which to apply - fonts if they aren't available on the system. The Chart - Studio Cloud (at https://chart-studio.plotly.com or on- - premise) generates images on a server, where only a - select number of fonts are installed and supported. - These include "Arial", "Balto", "Courier New", "Droid - Sans",, "Droid Serif", "Droid Sans Mono", "Gravitas - One", "Old Standard TT", "Open Sans", "Overpass", "PT - Sans Narrow", "Raleway", "Times New Roman". - familysrc + bgcolor . + shape + Sets the shape of the pattern fill. By default, no + pattern is used for filling the area. + shapesrc Sets the source reference on Chart Studio Cloud for - family . + shape . size - + Sets the size of unit squares of the pattern fill in + pixels, which corresponds to the interval of repetition + of the pattern. sizesrc Sets the source reference on Chart Studio Cloud for size . + solidity + Sets the solidity of the pattern fill. Solidity is + roughly the fraction of the area filled by the pattern. + Solidity of 0 shows only the background color without + pattern and solidty of 1 shows only the foreground + color without pattern. + soliditysrc + Sets the source reference on Chart Studio Cloud for + solidity . Returns ------- - Font + Pattern """ - super(Font, self).__init__("font") + super(Pattern, self).__init__("pattern") if "_parent" in kwargs: self._parent = kwargs["_parent"] @@ -284,9 +338,9 @@ def __init__( else: raise ValueError( """\ -The first argument to the plotly.graph_objs.area.hoverlabel.Font +The first argument to the plotly.graph_objs.bar.marker.Pattern constructor must be a dict or -an instance of :class:`plotly.graph_objs.area.hoverlabel.Font`""" +an instance of :class:`plotly.graph_objs.bar.marker.Pattern`""" ) # Handle skip_invalid @@ -296,22 +350,22 @@ def __init__( # Populate data dict with properties # ---------------------------------- - _v = arg.pop("color", None) - _v = color if color is not None else _v + _v = arg.pop("bgcolor", None) + _v = bgcolor if bgcolor is not None else _v if _v is not None: - self["color"] = _v - _v = arg.pop("colorsrc", None) - _v = colorsrc if colorsrc is not None else _v + self["bgcolor"] = _v + _v = arg.pop("bgcolorsrc", None) + _v = bgcolorsrc if bgcolorsrc is not None else _v if _v is not None: - self["colorsrc"] = _v - _v = arg.pop("family", None) - _v = family if family is not None else _v + self["bgcolorsrc"] = _v + _v = arg.pop("shape", None) + _v = shape if shape is not None else _v if _v is not None: - self["family"] = _v - _v = arg.pop("familysrc", None) - _v = familysrc if familysrc is not None else _v + self["shape"] = _v + _v = arg.pop("shapesrc", None) + _v = shapesrc if shapesrc is not None else _v if _v is not None: - self["familysrc"] = _v + self["shapesrc"] = _v _v = arg.pop("size", None) _v = size if size is not None else _v if _v is not None: @@ -320,6 +374,14 @@ def __init__( _v = sizesrc if sizesrc is not None else _v if _v is not None: self["sizesrc"] = _v + _v = arg.pop("solidity", None) + _v = solidity if solidity is not None else _v + if _v is not None: + self["solidity"] = _v + _v = arg.pop("soliditysrc", None) + _v = soliditysrc if soliditysrc is not None else _v + if _v is not None: + self["soliditysrc"] = _v # Process unknown kwargs # ---------------------- diff --git a/packages/python/plotly/plotly/graph_objs/barpolar/_marker.py b/packages/python/plotly/plotly/graph_objs/barpolar/_marker.py index 0e201f7510..684725ae64 100644 --- a/packages/python/plotly/plotly/graph_objs/barpolar/_marker.py +++ b/packages/python/plotly/plotly/graph_objs/barpolar/_marker.py @@ -22,6 +22,7 @@ class Marker(_BaseTraceHierarchyType): "line", "opacity", "opacitysrc", + "pattern", "reversescale", "showscale", } @@ -390,6 +391,12 @@ def colorbar(self): ts), sets the default property values to use for elements of barpolar.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -707,6 +714,59 @@ def opacitysrc(self): def opacitysrc(self, val): self["opacitysrc"] = val + # pattern + # ------- + @property + def pattern(self): + """ + The 'pattern' property is an instance of Pattern + that may be specified as: + - An instance of :class:`plotly.graph_objs.barpolar.marker.Pattern` + - A dict of string/value properties that will be passed + to the Pattern constructor + + Supported dict properties: + + bgcolor + Sets the background color of the pattern fill. + Defaults to a transparent background. + bgcolorsrc + Sets the source reference on Chart Studio Cloud + for bgcolor . + shape + Sets the shape of the pattern fill. By default, + no pattern is used for filling the area. + shapesrc + Sets the source reference on Chart Studio Cloud + for shape . + size + Sets the size of unit squares of the pattern + fill in pixels, which corresponds to the + interval of repetition of the pattern. + sizesrc + Sets the source reference on Chart Studio Cloud + for size . + solidity + Sets the solidity of the pattern fill. Solidity + is roughly the fraction of the area filled by + the pattern. Solidity of 0 shows only the + background color without pattern and solidty of + 1 shows only the foreground color without + pattern. + soliditysrc + Sets the source reference on Chart Studio Cloud + for solidity . + + Returns + ------- + plotly.graph_objs.barpolar.marker.Pattern + """ + return self["pattern"] + + @pattern.setter + def pattern(self, val): + self["pattern"] = val + # reversescale # ------------ @property @@ -831,6 +891,9 @@ def _prop_descriptions(self): opacitysrc Sets the source reference on Chart Studio Cloud for opacity . + pattern + :class:`plotly.graph_objects.barpolar.marker.Pattern` + instance or dict with compatible properties reversescale Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If @@ -859,6 +922,7 @@ def __init__( line=None, opacity=None, opacitysrc=None, + pattern=None, reversescale=None, showscale=None, **kwargs @@ -946,6 +1010,9 @@ def __init__( opacitysrc Sets the source reference on Chart Studio Cloud for opacity . + pattern + :class:`plotly.graph_objects.barpolar.marker.Pattern` + instance or dict with compatible properties reversescale Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If @@ -1042,6 +1109,10 @@ def __init__( _v = opacitysrc if opacitysrc is not None else _v if _v is not None: self["opacitysrc"] = _v + _v = arg.pop("pattern", None) + _v = pattern if pattern is not None else _v + if _v is not None: + self["pattern"] = _v _v = arg.pop("reversescale", None) _v = reversescale if reversescale is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/barpolar/marker/__init__.py b/packages/python/plotly/plotly/graph_objs/barpolar/marker/__init__.py index 27669de18b..737a4a87b8 100644 --- a/packages/python/plotly/plotly/graph_objs/barpolar/marker/__init__.py +++ b/packages/python/plotly/plotly/graph_objs/barpolar/marker/__init__.py @@ -3,10 +3,13 @@ if sys.version_info < (3, 7): from ._colorbar import ColorBar from ._line import Line + from ._pattern import Pattern from . import colorbar else: from _plotly_utils.importers import relative_import __all__, __getattr__, __dir__ = relative_import( - __name__, [".colorbar"], ["._colorbar.ColorBar", "._line.Line"] + __name__, + [".colorbar"], + ["._colorbar.ColorBar", "._line.Line", "._pattern.Pattern"], ) diff --git a/packages/python/plotly/plotly/graph_objs/barpolar/marker/_colorbar.py b/packages/python/plotly/plotly/graph_objs/barpolar/marker/_colorbar.py index 2bcfbbf7d9..e55d433327 100644 --- a/packages/python/plotly/plotly/graph_objs/barpolar/marker/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/barpolar/marker/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1451,6 +1476,12 @@ def _prop_descriptions(self): ar.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of barpolar.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1557,6 +1588,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1711,6 +1743,12 @@ def __init__( ar.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of barpolar.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1916,6 +1954,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/barpolar/marker/_pattern.py b/packages/python/plotly/plotly/graph_objs/barpolar/marker/_pattern.py new file mode 100644 index 0000000000..610182710d --- /dev/null +++ b/packages/python/plotly/plotly/graph_objs/barpolar/marker/_pattern.py @@ -0,0 +1,392 @@ +from plotly.basedatatypes import BaseTraceHierarchyType as _BaseTraceHierarchyType +import copy as _copy + + +class Pattern(_BaseTraceHierarchyType): + + # class properties + # -------------------- + _parent_path_str = "barpolar.marker" + _path_str = "barpolar.marker.pattern" + _valid_props = { + "bgcolor", + "bgcolorsrc", + "shape", + "shapesrc", + "size", + "sizesrc", + "solidity", + "soliditysrc", + } + + # bgcolor + # ------- + @property + def bgcolor(self): + """ + Sets the background color of the pattern fill. Defaults to a + transparent background. + + The 'bgcolor' property is a color and may be specified as: + - A hex string (e.g. '#ff0000') + - An rgb/rgba string (e.g. 'rgb(255,0,0)') + - An hsl/hsla string (e.g. 'hsl(0,100%,50%)') + - An hsv/hsva string (e.g. 'hsv(0,100%,100%)') + - A named CSS color: + aliceblue, antiquewhite, aqua, aquamarine, azure, + beige, bisque, black, blanchedalmond, blue, + blueviolet, brown, burlywood, cadetblue, + chartreuse, chocolate, coral, cornflowerblue, + cornsilk, crimson, cyan, darkblue, darkcyan, + darkgoldenrod, darkgray, darkgrey, darkgreen, + darkkhaki, darkmagenta, darkolivegreen, darkorange, + darkorchid, darkred, darksalmon, darkseagreen, + darkslateblue, darkslategray, darkslategrey, + darkturquoise, darkviolet, deeppink, deepskyblue, + dimgray, dimgrey, dodgerblue, firebrick, + floralwhite, forestgreen, fuchsia, gainsboro, + ghostwhite, gold, goldenrod, gray, grey, green, + greenyellow, honeydew, hotpink, indianred, indigo, + ivory, khaki, lavender, lavenderblush, lawngreen, + lemonchiffon, lightblue, lightcoral, lightcyan, + lightgoldenrodyellow, lightgray, lightgrey, + lightgreen, lightpink, lightsalmon, lightseagreen, + lightskyblue, lightslategray, lightslategrey, + lightsteelblue, lightyellow, lime, limegreen, + linen, magenta, maroon, mediumaquamarine, + mediumblue, mediumorchid, mediumpurple, + mediumseagreen, mediumslateblue, mediumspringgreen, + mediumturquoise, mediumvioletred, midnightblue, + mintcream, mistyrose, moccasin, navajowhite, navy, + oldlace, olive, olivedrab, orange, orangered, + orchid, palegoldenrod, palegreen, paleturquoise, + palevioletred, papayawhip, peachpuff, peru, pink, + plum, powderblue, purple, red, rosybrown, + royalblue, rebeccapurple, saddlebrown, salmon, + sandybrown, seagreen, seashell, sienna, silver, + skyblue, slateblue, slategray, slategrey, snow, + springgreen, steelblue, tan, teal, thistle, tomato, + turquoise, violet, wheat, white, whitesmoke, + yellow, yellowgreen + - A list or array of any of the above + + Returns + ------- + str|numpy.ndarray + """ + return self["bgcolor"] + + @bgcolor.setter + def bgcolor(self, val): + self["bgcolor"] = val + + # bgcolorsrc + # ---------- + @property + def bgcolorsrc(self): + """ + Sets the source reference on Chart Studio Cloud for bgcolor . + + The 'bgcolorsrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["bgcolorsrc"] + + @bgcolorsrc.setter + def bgcolorsrc(self, val): + self["bgcolorsrc"] = val + + # shape + # ----- + @property + def shape(self): + """ + Sets the shape of the pattern fill. By default, no pattern is + used for filling the area. + + The 'shape' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['', '\\', 'x', '-', '|', '+', '.'] + - A string that matches one of the following regular expressions: + [''] + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + Any|numpy.ndarray + """ + return self["shape"] + + @shape.setter + def shape(self, val): + self["shape"] = val + + # shapesrc + # -------- + @property + def shapesrc(self): + """ + Sets the source reference on Chart Studio Cloud for shape . + + The 'shapesrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["shapesrc"] + + @shapesrc.setter + def shapesrc(self, val): + self["shapesrc"] = val + + # size + # ---- + @property + def size(self): + """ + Sets the size of unit squares of the pattern fill in pixels, + which corresponds to the interval of repetition of the pattern. + + The 'size' property is a number and may be specified as: + - An int or float in the interval [0, inf] + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + int|float|numpy.ndarray + """ + return self["size"] + + @size.setter + def size(self, val): + self["size"] = val + + # sizesrc + # ------- + @property + def sizesrc(self): + """ + Sets the source reference on Chart Studio Cloud for size . + + The 'sizesrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["sizesrc"] + + @sizesrc.setter + def sizesrc(self, val): + self["sizesrc"] = val + + # solidity + # -------- + @property + def solidity(self): + """ + Sets the solidity of the pattern fill. Solidity is roughly the + fraction of the area filled by the pattern. Solidity of 0 shows + only the background color without pattern and solidty of 1 + shows only the foreground color without pattern. + + The 'solidity' property is a number and may be specified as: + - An int or float in the interval [0, 1] + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + int|float|numpy.ndarray + """ + return self["solidity"] + + @solidity.setter + def solidity(self, val): + self["solidity"] = val + + # soliditysrc + # ----------- + @property + def soliditysrc(self): + """ + Sets the source reference on Chart Studio Cloud for solidity . + + The 'soliditysrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["soliditysrc"] + + @soliditysrc.setter + def soliditysrc(self, val): + self["soliditysrc"] = val + + # Self properties description + # --------------------------- + @property + def _prop_descriptions(self): + return """\ + bgcolor + Sets the background color of the pattern fill. Defaults + to a transparent background. + bgcolorsrc + Sets the source reference on Chart Studio Cloud for + bgcolor . + shape + Sets the shape of the pattern fill. By default, no + pattern is used for filling the area. + shapesrc + Sets the source reference on Chart Studio Cloud for + shape . + size + Sets the size of unit squares of the pattern fill in + pixels, which corresponds to the interval of repetition + of the pattern. + sizesrc + Sets the source reference on Chart Studio Cloud for + size . + solidity + Sets the solidity of the pattern fill. Solidity is + roughly the fraction of the area filled by the pattern. + Solidity of 0 shows only the background color without + pattern and solidty of 1 shows only the foreground + color without pattern. + soliditysrc + Sets the source reference on Chart Studio Cloud for + solidity . + """ + + def __init__( + self, + arg=None, + bgcolor=None, + bgcolorsrc=None, + shape=None, + shapesrc=None, + size=None, + sizesrc=None, + solidity=None, + soliditysrc=None, + **kwargs + ): + """ + Construct a new Pattern object + + Parameters + ---------- + arg + dict of properties compatible with this constructor or + an instance of + :class:`plotly.graph_objs.barpolar.marker.Pattern` + bgcolor + Sets the background color of the pattern fill. Defaults + to a transparent background. + bgcolorsrc + Sets the source reference on Chart Studio Cloud for + bgcolor . + shape + Sets the shape of the pattern fill. By default, no + pattern is used for filling the area. + shapesrc + Sets the source reference on Chart Studio Cloud for + shape . + size + Sets the size of unit squares of the pattern fill in + pixels, which corresponds to the interval of repetition + of the pattern. + sizesrc + Sets the source reference on Chart Studio Cloud for + size . + solidity + Sets the solidity of the pattern fill. Solidity is + roughly the fraction of the area filled by the pattern. + Solidity of 0 shows only the background color without + pattern and solidty of 1 shows only the foreground + color without pattern. + soliditysrc + Sets the source reference on Chart Studio Cloud for + solidity . + + Returns + ------- + Pattern + """ + super(Pattern, self).__init__("pattern") + + if "_parent" in kwargs: + self._parent = kwargs["_parent"] + return + + # Validate arg + # ------------ + if arg is None: + arg = {} + elif isinstance(arg, self.__class__): + arg = arg.to_plotly_json() + elif isinstance(arg, dict): + arg = _copy.copy(arg) + else: + raise ValueError( + """\ +The first argument to the plotly.graph_objs.barpolar.marker.Pattern +constructor must be a dict or +an instance of :class:`plotly.graph_objs.barpolar.marker.Pattern`""" + ) + + # Handle skip_invalid + # ------------------- + self._skip_invalid = kwargs.pop("skip_invalid", False) + self._validate = kwargs.pop("_validate", True) + + # Populate data dict with properties + # ---------------------------------- + _v = arg.pop("bgcolor", None) + _v = bgcolor if bgcolor is not None else _v + if _v is not None: + self["bgcolor"] = _v + _v = arg.pop("bgcolorsrc", None) + _v = bgcolorsrc if bgcolorsrc is not None else _v + if _v is not None: + self["bgcolorsrc"] = _v + _v = arg.pop("shape", None) + _v = shape if shape is not None else _v + if _v is not None: + self["shape"] = _v + _v = arg.pop("shapesrc", None) + _v = shapesrc if shapesrc is not None else _v + if _v is not None: + self["shapesrc"] = _v + _v = arg.pop("size", None) + _v = size if size is not None else _v + if _v is not None: + self["size"] = _v + _v = arg.pop("sizesrc", None) + _v = sizesrc if sizesrc is not None else _v + if _v is not None: + self["sizesrc"] = _v + _v = arg.pop("solidity", None) + _v = solidity if solidity is not None else _v + if _v is not None: + self["solidity"] = _v + _v = arg.pop("soliditysrc", None) + _v = soliditysrc if soliditysrc is not None else _v + if _v is not None: + self["soliditysrc"] = _v + + # Process unknown kwargs + # ---------------------- + self._process_kwargs(**dict(arg, **kwargs)) + + # Reset skip_invalid + # ------------------ + self._skip_invalid = False diff --git a/packages/python/plotly/plotly/graph_objs/carpet/_aaxis.py b/packages/python/plotly/plotly/graph_objs/carpet/_aaxis.py index 5f6fe538e8..ef108a4857 100644 --- a/packages/python/plotly/plotly/graph_objs/carpet/_aaxis.py +++ b/packages/python/plotly/plotly/graph_objs/carpet/_aaxis.py @@ -1268,10 +1268,10 @@ def tickformat(self): languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api- reference/blob/master/Formatting.md#d3_format And for dates - see: We add one item to d3's date formatter: "%{n}f" for - fractional seconds with n digits. For example, *2016-10-13 - 09:15:23.456* with tickformat "%H~%M~%S.%2f" would display - "09~15~23.46" + see: https://github.com/d3/d3-time-format#locale_format We add + one item to d3's date formatter: "%{n}f" for fractional seconds + with n digits. For example, *2016-10-13 09:15:23.456* with + tickformat "%H~%M~%S.%2f" would display "09~15~23.46" The 'tickformat' property is a string and must be specified as: - A string @@ -1807,10 +1807,11 @@ def _prop_descriptions(self): Python. For numbers, see: https://github.com/d3/d3-3.x-api- reference/blob/master/Formatting.md#d3_format And for - dates see: We add one item to d3's date formatter: - "%{n}f" for fractional seconds with n digits. For - example, *2016-10-13 09:15:23.456* with tickformat - "%H~%M~%S.%2f" would display "09~15~23.46" + dates see: https://github.com/d3/d3-time- + format#locale_format We add one item to d3's date + formatter: "%{n}f" for fractional seconds with n + digits. For example, *2016-10-13 09:15:23.456* with + tickformat "%H~%M~%S.%2f" would display "09~15~23.46" tickformatstops A tuple of :class:`plotly.graph_objects.carpet.aaxis.Ti ckformatstop` instances or dicts with compatible @@ -2088,10 +2089,11 @@ def __init__( Python. For numbers, see: https://github.com/d3/d3-3.x-api- reference/blob/master/Formatting.md#d3_format And for - dates see: We add one item to d3's date formatter: - "%{n}f" for fractional seconds with n digits. For - example, *2016-10-13 09:15:23.456* with tickformat - "%H~%M~%S.%2f" would display "09~15~23.46" + dates see: https://github.com/d3/d3-time- + format#locale_format We add one item to d3's date + formatter: "%{n}f" for fractional seconds with n + digits. For example, *2016-10-13 09:15:23.456* with + tickformat "%H~%M~%S.%2f" would display "09~15~23.46" tickformatstops A tuple of :class:`plotly.graph_objects.carpet.aaxis.Ti ckformatstop` instances or dicts with compatible diff --git a/packages/python/plotly/plotly/graph_objs/carpet/_baxis.py b/packages/python/plotly/plotly/graph_objs/carpet/_baxis.py index 76166e6775..60986977f3 100644 --- a/packages/python/plotly/plotly/graph_objs/carpet/_baxis.py +++ b/packages/python/plotly/plotly/graph_objs/carpet/_baxis.py @@ -1268,10 +1268,10 @@ def tickformat(self): languages which are very similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api- reference/blob/master/Formatting.md#d3_format And for dates - see: We add one item to d3's date formatter: "%{n}f" for - fractional seconds with n digits. For example, *2016-10-13 - 09:15:23.456* with tickformat "%H~%M~%S.%2f" would display - "09~15~23.46" + see: https://github.com/d3/d3-time-format#locale_format We add + one item to d3's date formatter: "%{n}f" for fractional seconds + with n digits. For example, *2016-10-13 09:15:23.456* with + tickformat "%H~%M~%S.%2f" would display "09~15~23.46" The 'tickformat' property is a string and must be specified as: - A string @@ -1807,10 +1807,11 @@ def _prop_descriptions(self): Python. For numbers, see: https://github.com/d3/d3-3.x-api- reference/blob/master/Formatting.md#d3_format And for - dates see: We add one item to d3's date formatter: - "%{n}f" for fractional seconds with n digits. For - example, *2016-10-13 09:15:23.456* with tickformat - "%H~%M~%S.%2f" would display "09~15~23.46" + dates see: https://github.com/d3/d3-time- + format#locale_format We add one item to d3's date + formatter: "%{n}f" for fractional seconds with n + digits. For example, *2016-10-13 09:15:23.456* with + tickformat "%H~%M~%S.%2f" would display "09~15~23.46" tickformatstops A tuple of :class:`plotly.graph_objects.carpet.baxis.Ti ckformatstop` instances or dicts with compatible @@ -2088,10 +2089,11 @@ def __init__( Python. For numbers, see: https://github.com/d3/d3-3.x-api- reference/blob/master/Formatting.md#d3_format And for - dates see: We add one item to d3's date formatter: - "%{n}f" for fractional seconds with n digits. For - example, *2016-10-13 09:15:23.456* with tickformat - "%H~%M~%S.%2f" would display "09~15~23.46" + dates see: https://github.com/d3/d3-time- + format#locale_format We add one item to d3's date + formatter: "%{n}f" for fractional seconds with n + digits. For example, *2016-10-13 09:15:23.456* with + tickformat "%H~%M~%S.%2f" would display "09~15~23.46" tickformatstops A tuple of :class:`plotly.graph_objects.carpet.baxis.Ti ckformatstop` instances or dicts with compatible diff --git a/packages/python/plotly/plotly/graph_objs/choropleth/_colorbar.py b/packages/python/plotly/plotly/graph_objs/choropleth/_colorbar.py index da005d980c..5aa08e330a 100644 --- a/packages/python/plotly/plotly/graph_objs/choropleth/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/choropleth/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -847,6 +848,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1449,6 +1474,12 @@ def _prop_descriptions(self): leth.colorbar.tickformatstopdefaults), sets the default property values to use for elements of choropleth.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1555,6 +1586,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1709,6 +1741,12 @@ def __init__( leth.colorbar.tickformatstopdefaults), sets the default property values to use for elements of choropleth.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1914,6 +1952,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/choroplethmapbox/_colorbar.py b/packages/python/plotly/plotly/graph_objs/choroplethmapbox/_colorbar.py index c08612cd2c..c60a4c3fd9 100644 --- a/packages/python/plotly/plotly/graph_objs/choroplethmapbox/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/choroplethmapbox/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1451,6 +1476,12 @@ def _prop_descriptions(self): lethmapbox.colorbar.tickformatstopdefaults), sets the default property values to use for elements of choroplethmapbox.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1558,6 +1589,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1712,6 +1744,12 @@ def __init__( lethmapbox.colorbar.tickformatstopdefaults), sets the default property values to use for elements of choroplethmapbox.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1918,6 +1956,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/cone/_colorbar.py b/packages/python/plotly/plotly/graph_objs/cone/_colorbar.py index 656159fa37..4432c79f6e 100644 --- a/packages/python/plotly/plotly/graph_objs/cone/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/cone/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1450,6 +1475,12 @@ def _prop_descriptions(self): olorbar.tickformatstopdefaults), sets the default property values to use for elements of cone.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1556,6 +1587,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1709,6 +1741,12 @@ def __init__( olorbar.tickformatstopdefaults), sets the default property values to use for elements of cone.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1914,6 +1952,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/contour/_colorbar.py b/packages/python/plotly/plotly/graph_objs/contour/_colorbar.py index 804d60b5a1..27bac264ac 100644 --- a/packages/python/plotly/plotly/graph_objs/contour/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/contour/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1450,6 +1475,12 @@ def _prop_descriptions(self): r.colorbar.tickformatstopdefaults), sets the default property values to use for elements of contour.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1556,6 +1587,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1710,6 +1742,12 @@ def __init__( r.colorbar.tickformatstopdefaults), sets the default property values to use for elements of contour.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1915,6 +1953,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/contourcarpet/_colorbar.py b/packages/python/plotly/plotly/graph_objs/contourcarpet/_colorbar.py index c8209a6ea2..89867aca28 100644 --- a/packages/python/plotly/plotly/graph_objs/contourcarpet/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/contourcarpet/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1451,6 +1476,12 @@ def _prop_descriptions(self): rcarpet.colorbar.tickformatstopdefaults), sets the default property values to use for elements of contourcarpet.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1557,6 +1588,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1711,6 +1743,12 @@ def __init__( rcarpet.colorbar.tickformatstopdefaults), sets the default property values to use for elements of contourcarpet.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1916,6 +1954,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/densitymapbox/_colorbar.py b/packages/python/plotly/plotly/graph_objs/densitymapbox/_colorbar.py index f7bea0b981..2b2efd41ad 100644 --- a/packages/python/plotly/plotly/graph_objs/densitymapbox/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/densitymapbox/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1451,6 +1476,12 @@ def _prop_descriptions(self): ymapbox.colorbar.tickformatstopdefaults), sets the default property values to use for elements of densitymapbox.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1557,6 +1588,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1711,6 +1743,12 @@ def __init__( ymapbox.colorbar.tickformatstopdefaults), sets the default property values to use for elements of densitymapbox.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1916,6 +1954,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/funnel/_marker.py b/packages/python/plotly/plotly/graph_objs/funnel/_marker.py index 743d8be860..5b52fa41f4 100644 --- a/packages/python/plotly/plotly/graph_objs/funnel/_marker.py +++ b/packages/python/plotly/plotly/graph_objs/funnel/_marker.py @@ -390,6 +390,12 @@ def colorbar(self): ), sets the default property values to use for elements of funnel.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/graph_objs/funnel/marker/_colorbar.py b/packages/python/plotly/plotly/graph_objs/funnel/marker/_colorbar.py index ae342ce823..f886807eae 100644 --- a/packages/python/plotly/plotly/graph_objs/funnel/marker/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/funnel/marker/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1451,6 +1476,12 @@ def _prop_descriptions(self): .marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of funnel.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1557,6 +1588,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1711,6 +1743,12 @@ def __init__( .marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of funnel.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1916,6 +1954,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/heatmap/_colorbar.py b/packages/python/plotly/plotly/graph_objs/heatmap/_colorbar.py index c12bee41db..1b593443eb 100644 --- a/packages/python/plotly/plotly/graph_objs/heatmap/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/heatmap/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1450,6 +1475,12 @@ def _prop_descriptions(self): p.colorbar.tickformatstopdefaults), sets the default property values to use for elements of heatmap.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1556,6 +1587,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1710,6 +1742,12 @@ def __init__( p.colorbar.tickformatstopdefaults), sets the default property values to use for elements of heatmap.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1915,6 +1953,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/heatmapgl/_colorbar.py b/packages/python/plotly/plotly/graph_objs/heatmapgl/_colorbar.py index 53127f628f..52cdf0dbad 100644 --- a/packages/python/plotly/plotly/graph_objs/heatmapgl/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/heatmapgl/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -847,6 +848,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1449,6 +1474,12 @@ def _prop_descriptions(self): pgl.colorbar.tickformatstopdefaults), sets the default property values to use for elements of heatmapgl.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1555,6 +1586,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1709,6 +1741,12 @@ def __init__( pgl.colorbar.tickformatstopdefaults), sets the default property values to use for elements of heatmapgl.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1914,6 +1952,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/histogram/_marker.py b/packages/python/plotly/plotly/graph_objs/histogram/_marker.py index 9d1846b3e6..0b2592e080 100644 --- a/packages/python/plotly/plotly/graph_objs/histogram/_marker.py +++ b/packages/python/plotly/plotly/graph_objs/histogram/_marker.py @@ -22,6 +22,7 @@ class Marker(_BaseTraceHierarchyType): "line", "opacity", "opacitysrc", + "pattern", "reversescale", "showscale", } @@ -390,6 +391,12 @@ def colorbar(self): lts), sets the default property values to use for elements of histogram.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -707,6 +714,59 @@ def opacitysrc(self): def opacitysrc(self, val): self["opacitysrc"] = val + # pattern + # ------- + @property + def pattern(self): + """ + The 'pattern' property is an instance of Pattern + that may be specified as: + - An instance of :class:`plotly.graph_objs.histogram.marker.Pattern` + - A dict of string/value properties that will be passed + to the Pattern constructor + + Supported dict properties: + + bgcolor + Sets the background color of the pattern fill. + Defaults to a transparent background. + bgcolorsrc + Sets the source reference on Chart Studio Cloud + for bgcolor . + shape + Sets the shape of the pattern fill. By default, + no pattern is used for filling the area. + shapesrc + Sets the source reference on Chart Studio Cloud + for shape . + size + Sets the size of unit squares of the pattern + fill in pixels, which corresponds to the + interval of repetition of the pattern. + sizesrc + Sets the source reference on Chart Studio Cloud + for size . + solidity + Sets the solidity of the pattern fill. Solidity + is roughly the fraction of the area filled by + the pattern. Solidity of 0 shows only the + background color without pattern and solidty of + 1 shows only the foreground color without + pattern. + soliditysrc + Sets the source reference on Chart Studio Cloud + for solidity . + + Returns + ------- + plotly.graph_objs.histogram.marker.Pattern + """ + return self["pattern"] + + @pattern.setter + def pattern(self, val): + self["pattern"] = val + # reversescale # ------------ @property @@ -831,6 +891,9 @@ def _prop_descriptions(self): opacitysrc Sets the source reference on Chart Studio Cloud for opacity . + pattern + :class:`plotly.graph_objects.histogram.marker.Pattern` + instance or dict with compatible properties reversescale Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If @@ -859,6 +922,7 @@ def __init__( line=None, opacity=None, opacitysrc=None, + pattern=None, reversescale=None, showscale=None, **kwargs @@ -946,6 +1010,9 @@ def __init__( opacitysrc Sets the source reference on Chart Studio Cloud for opacity . + pattern + :class:`plotly.graph_objects.histogram.marker.Pattern` + instance or dict with compatible properties reversescale Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a numerical array. If @@ -1042,6 +1109,10 @@ def __init__( _v = opacitysrc if opacitysrc is not None else _v if _v is not None: self["opacitysrc"] = _v + _v = arg.pop("pattern", None) + _v = pattern if pattern is not None else _v + if _v is not None: + self["pattern"] = _v _v = arg.pop("reversescale", None) _v = reversescale if reversescale is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/histogram/marker/__init__.py b/packages/python/plotly/plotly/graph_objs/histogram/marker/__init__.py index 27669de18b..737a4a87b8 100644 --- a/packages/python/plotly/plotly/graph_objs/histogram/marker/__init__.py +++ b/packages/python/plotly/plotly/graph_objs/histogram/marker/__init__.py @@ -3,10 +3,13 @@ if sys.version_info < (3, 7): from ._colorbar import ColorBar from ._line import Line + from ._pattern import Pattern from . import colorbar else: from _plotly_utils.importers import relative_import __all__, __getattr__, __dir__ = relative_import( - __name__, [".colorbar"], ["._colorbar.ColorBar", "._line.Line"] + __name__, + [".colorbar"], + ["._colorbar.ColorBar", "._line.Line", "._pattern.Pattern"], ) diff --git a/packages/python/plotly/plotly/graph_objs/histogram/marker/_colorbar.py b/packages/python/plotly/plotly/graph_objs/histogram/marker/_colorbar.py index 35d5f23f19..9bc510422d 100644 --- a/packages/python/plotly/plotly/graph_objs/histogram/marker/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/histogram/marker/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1451,6 +1476,12 @@ def _prop_descriptions(self): ram.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of histogram.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1558,6 +1589,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1712,6 +1744,12 @@ def __init__( ram.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of histogram.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1918,6 +1956,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/histogram/marker/_pattern.py b/packages/python/plotly/plotly/graph_objs/histogram/marker/_pattern.py new file mode 100644 index 0000000000..13bff5198f --- /dev/null +++ b/packages/python/plotly/plotly/graph_objs/histogram/marker/_pattern.py @@ -0,0 +1,392 @@ +from plotly.basedatatypes import BaseTraceHierarchyType as _BaseTraceHierarchyType +import copy as _copy + + +class Pattern(_BaseTraceHierarchyType): + + # class properties + # -------------------- + _parent_path_str = "histogram.marker" + _path_str = "histogram.marker.pattern" + _valid_props = { + "bgcolor", + "bgcolorsrc", + "shape", + "shapesrc", + "size", + "sizesrc", + "solidity", + "soliditysrc", + } + + # bgcolor + # ------- + @property + def bgcolor(self): + """ + Sets the background color of the pattern fill. Defaults to a + transparent background. + + The 'bgcolor' property is a color and may be specified as: + - A hex string (e.g. '#ff0000') + - An rgb/rgba string (e.g. 'rgb(255,0,0)') + - An hsl/hsla string (e.g. 'hsl(0,100%,50%)') + - An hsv/hsva string (e.g. 'hsv(0,100%,100%)') + - A named CSS color: + aliceblue, antiquewhite, aqua, aquamarine, azure, + beige, bisque, black, blanchedalmond, blue, + blueviolet, brown, burlywood, cadetblue, + chartreuse, chocolate, coral, cornflowerblue, + cornsilk, crimson, cyan, darkblue, darkcyan, + darkgoldenrod, darkgray, darkgrey, darkgreen, + darkkhaki, darkmagenta, darkolivegreen, darkorange, + darkorchid, darkred, darksalmon, darkseagreen, + darkslateblue, darkslategray, darkslategrey, + darkturquoise, darkviolet, deeppink, deepskyblue, + dimgray, dimgrey, dodgerblue, firebrick, + floralwhite, forestgreen, fuchsia, gainsboro, + ghostwhite, gold, goldenrod, gray, grey, green, + greenyellow, honeydew, hotpink, indianred, indigo, + ivory, khaki, lavender, lavenderblush, lawngreen, + lemonchiffon, lightblue, lightcoral, lightcyan, + lightgoldenrodyellow, lightgray, lightgrey, + lightgreen, lightpink, lightsalmon, lightseagreen, + lightskyblue, lightslategray, lightslategrey, + lightsteelblue, lightyellow, lime, limegreen, + linen, magenta, maroon, mediumaquamarine, + mediumblue, mediumorchid, mediumpurple, + mediumseagreen, mediumslateblue, mediumspringgreen, + mediumturquoise, mediumvioletred, midnightblue, + mintcream, mistyrose, moccasin, navajowhite, navy, + oldlace, olive, olivedrab, orange, orangered, + orchid, palegoldenrod, palegreen, paleturquoise, + palevioletred, papayawhip, peachpuff, peru, pink, + plum, powderblue, purple, red, rosybrown, + royalblue, rebeccapurple, saddlebrown, salmon, + sandybrown, seagreen, seashell, sienna, silver, + skyblue, slateblue, slategray, slategrey, snow, + springgreen, steelblue, tan, teal, thistle, tomato, + turquoise, violet, wheat, white, whitesmoke, + yellow, yellowgreen + - A list or array of any of the above + + Returns + ------- + str|numpy.ndarray + """ + return self["bgcolor"] + + @bgcolor.setter + def bgcolor(self, val): + self["bgcolor"] = val + + # bgcolorsrc + # ---------- + @property + def bgcolorsrc(self): + """ + Sets the source reference on Chart Studio Cloud for bgcolor . + + The 'bgcolorsrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["bgcolorsrc"] + + @bgcolorsrc.setter + def bgcolorsrc(self, val): + self["bgcolorsrc"] = val + + # shape + # ----- + @property + def shape(self): + """ + Sets the shape of the pattern fill. By default, no pattern is + used for filling the area. + + The 'shape' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['', '\\', 'x', '-', '|', '+', '.'] + - A string that matches one of the following regular expressions: + [''] + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + Any|numpy.ndarray + """ + return self["shape"] + + @shape.setter + def shape(self, val): + self["shape"] = val + + # shapesrc + # -------- + @property + def shapesrc(self): + """ + Sets the source reference on Chart Studio Cloud for shape . + + The 'shapesrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["shapesrc"] + + @shapesrc.setter + def shapesrc(self, val): + self["shapesrc"] = val + + # size + # ---- + @property + def size(self): + """ + Sets the size of unit squares of the pattern fill in pixels, + which corresponds to the interval of repetition of the pattern. + + The 'size' property is a number and may be specified as: + - An int or float in the interval [0, inf] + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + int|float|numpy.ndarray + """ + return self["size"] + + @size.setter + def size(self, val): + self["size"] = val + + # sizesrc + # ------- + @property + def sizesrc(self): + """ + Sets the source reference on Chart Studio Cloud for size . + + The 'sizesrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["sizesrc"] + + @sizesrc.setter + def sizesrc(self, val): + self["sizesrc"] = val + + # solidity + # -------- + @property + def solidity(self): + """ + Sets the solidity of the pattern fill. Solidity is roughly the + fraction of the area filled by the pattern. Solidity of 0 shows + only the background color without pattern and solidty of 1 + shows only the foreground color without pattern. + + The 'solidity' property is a number and may be specified as: + - An int or float in the interval [0, 1] + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + int|float|numpy.ndarray + """ + return self["solidity"] + + @solidity.setter + def solidity(self, val): + self["solidity"] = val + + # soliditysrc + # ----------- + @property + def soliditysrc(self): + """ + Sets the source reference on Chart Studio Cloud for solidity . + + The 'soliditysrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["soliditysrc"] + + @soliditysrc.setter + def soliditysrc(self, val): + self["soliditysrc"] = val + + # Self properties description + # --------------------------- + @property + def _prop_descriptions(self): + return """\ + bgcolor + Sets the background color of the pattern fill. Defaults + to a transparent background. + bgcolorsrc + Sets the source reference on Chart Studio Cloud for + bgcolor . + shape + Sets the shape of the pattern fill. By default, no + pattern is used for filling the area. + shapesrc + Sets the source reference on Chart Studio Cloud for + shape . + size + Sets the size of unit squares of the pattern fill in + pixels, which corresponds to the interval of repetition + of the pattern. + sizesrc + Sets the source reference on Chart Studio Cloud for + size . + solidity + Sets the solidity of the pattern fill. Solidity is + roughly the fraction of the area filled by the pattern. + Solidity of 0 shows only the background color without + pattern and solidty of 1 shows only the foreground + color without pattern. + soliditysrc + Sets the source reference on Chart Studio Cloud for + solidity . + """ + + def __init__( + self, + arg=None, + bgcolor=None, + bgcolorsrc=None, + shape=None, + shapesrc=None, + size=None, + sizesrc=None, + solidity=None, + soliditysrc=None, + **kwargs + ): + """ + Construct a new Pattern object + + Parameters + ---------- + arg + dict of properties compatible with this constructor or + an instance of + :class:`plotly.graph_objs.histogram.marker.Pattern` + bgcolor + Sets the background color of the pattern fill. Defaults + to a transparent background. + bgcolorsrc + Sets the source reference on Chart Studio Cloud for + bgcolor . + shape + Sets the shape of the pattern fill. By default, no + pattern is used for filling the area. + shapesrc + Sets the source reference on Chart Studio Cloud for + shape . + size + Sets the size of unit squares of the pattern fill in + pixels, which corresponds to the interval of repetition + of the pattern. + sizesrc + Sets the source reference on Chart Studio Cloud for + size . + solidity + Sets the solidity of the pattern fill. Solidity is + roughly the fraction of the area filled by the pattern. + Solidity of 0 shows only the background color without + pattern and solidty of 1 shows only the foreground + color without pattern. + soliditysrc + Sets the source reference on Chart Studio Cloud for + solidity . + + Returns + ------- + Pattern + """ + super(Pattern, self).__init__("pattern") + + if "_parent" in kwargs: + self._parent = kwargs["_parent"] + return + + # Validate arg + # ------------ + if arg is None: + arg = {} + elif isinstance(arg, self.__class__): + arg = arg.to_plotly_json() + elif isinstance(arg, dict): + arg = _copy.copy(arg) + else: + raise ValueError( + """\ +The first argument to the plotly.graph_objs.histogram.marker.Pattern +constructor must be a dict or +an instance of :class:`plotly.graph_objs.histogram.marker.Pattern`""" + ) + + # Handle skip_invalid + # ------------------- + self._skip_invalid = kwargs.pop("skip_invalid", False) + self._validate = kwargs.pop("_validate", True) + + # Populate data dict with properties + # ---------------------------------- + _v = arg.pop("bgcolor", None) + _v = bgcolor if bgcolor is not None else _v + if _v is not None: + self["bgcolor"] = _v + _v = arg.pop("bgcolorsrc", None) + _v = bgcolorsrc if bgcolorsrc is not None else _v + if _v is not None: + self["bgcolorsrc"] = _v + _v = arg.pop("shape", None) + _v = shape if shape is not None else _v + if _v is not None: + self["shape"] = _v + _v = arg.pop("shapesrc", None) + _v = shapesrc if shapesrc is not None else _v + if _v is not None: + self["shapesrc"] = _v + _v = arg.pop("size", None) + _v = size if size is not None else _v + if _v is not None: + self["size"] = _v + _v = arg.pop("sizesrc", None) + _v = sizesrc if sizesrc is not None else _v + if _v is not None: + self["sizesrc"] = _v + _v = arg.pop("solidity", None) + _v = solidity if solidity is not None else _v + if _v is not None: + self["solidity"] = _v + _v = arg.pop("soliditysrc", None) + _v = soliditysrc if soliditysrc is not None else _v + if _v is not None: + self["soliditysrc"] = _v + + # Process unknown kwargs + # ---------------------- + self._process_kwargs(**dict(arg, **kwargs)) + + # Reset skip_invalid + # ------------------ + self._skip_invalid = False diff --git a/packages/python/plotly/plotly/graph_objs/histogram2d/_colorbar.py b/packages/python/plotly/plotly/graph_objs/histogram2d/_colorbar.py index d481b84d06..6f429434b7 100644 --- a/packages/python/plotly/plotly/graph_objs/histogram2d/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/histogram2d/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1450,6 +1475,12 @@ def _prop_descriptions(self): ram2d.colorbar.tickformatstopdefaults), sets the default property values to use for elements of histogram2d.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1556,6 +1587,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1710,6 +1742,12 @@ def __init__( ram2d.colorbar.tickformatstopdefaults), sets the default property values to use for elements of histogram2d.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1915,6 +1953,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/histogram2dcontour/_colorbar.py b/packages/python/plotly/plotly/graph_objs/histogram2dcontour/_colorbar.py index 4feb048796..d788908d80 100644 --- a/packages/python/plotly/plotly/graph_objs/histogram2dcontour/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/histogram2dcontour/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1451,6 +1476,12 @@ def _prop_descriptions(self): ram2dcontour.colorbar.tickformatstopdefaults), sets the default property values to use for elements of histogram2dcontour.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1559,6 +1590,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1713,6 +1745,12 @@ def __init__( ram2dcontour.colorbar.tickformatstopdefaults), sets the default property values to use for elements of histogram2dcontour.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1920,6 +1958,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/isosurface/_colorbar.py b/packages/python/plotly/plotly/graph_objs/isosurface/_colorbar.py index 73cc1c4eb8..3e261aa37b 100644 --- a/packages/python/plotly/plotly/graph_objs/isosurface/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/isosurface/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -847,6 +848,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1449,6 +1474,12 @@ def _prop_descriptions(self): face.colorbar.tickformatstopdefaults), sets the default property values to use for elements of isosurface.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1555,6 +1586,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1709,6 +1741,12 @@ def __init__( face.colorbar.tickformatstopdefaults), sets the default property values to use for elements of isosurface.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1914,6 +1952,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/layout/__init__.py b/packages/python/plotly/plotly/graph_objs/layout/__init__.py index 4a19321fda..52e6bef09a 100644 --- a/packages/python/plotly/plotly/graph_objs/layout/__init__.py +++ b/packages/python/plotly/plotly/graph_objs/layout/__init__.py @@ -2,7 +2,6 @@ if sys.version_info < (3, 7): from ._activeshape import Activeshape - from ._angularaxis import AngularAxis from ._annotation import Annotation from ._coloraxis import Coloraxis from ._colorscale import Colorscale @@ -17,7 +16,6 @@ from ._modebar import Modebar from ._newshape import Newshape from ._polar import Polar - from ._radialaxis import RadialAxis from ._scene import Scene from ._shape import Shape from ._slider import Slider @@ -74,7 +72,6 @@ ], [ "._activeshape.Activeshape", - "._angularaxis.AngularAxis", "._annotation.Annotation", "._coloraxis.Coloraxis", "._colorscale.Colorscale", @@ -89,7 +86,6 @@ "._modebar.Modebar", "._newshape.Newshape", "._polar.Polar", - "._radialaxis.RadialAxis", "._scene.Scene", "._shape.Shape", "._slider.Slider", diff --git a/packages/python/plotly/plotly/graph_objs/layout/_angularaxis.py b/packages/python/plotly/plotly/graph_objs/layout/_angularaxis.py deleted file mode 100644 index 22192e5ff2..0000000000 --- a/packages/python/plotly/plotly/graph_objs/layout/_angularaxis.py +++ /dev/null @@ -1,479 +0,0 @@ -from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType -import copy as _copy - - -class AngularAxis(_BaseLayoutHierarchyType): - - # class properties - # -------------------- - _parent_path_str = "layout" - _path_str = "layout.angularaxis" - _valid_props = { - "domain", - "endpadding", - "range", - "showline", - "showticklabels", - "tickcolor", - "ticklen", - "tickorientation", - "ticksuffix", - "visible", - } - - # domain - # ------ - @property - def domain(self): - """ - Polar chart subplots are not supported yet. This key has - currently no effect. - - The 'domain' property is an info array that may be specified as: - - * a list or tuple of 2 elements where: - (0) The 'domain[0]' property is a number and may be specified as: - - An int or float in the interval [0, 1] - (1) The 'domain[1]' property is a number and may be specified as: - - An int or float in the interval [0, 1] - - Returns - ------- - list - """ - return self["domain"] - - @domain.setter - def domain(self, val): - self["domain"] = val - - # endpadding - # ---------- - @property - def endpadding(self): - """ - Legacy polar charts are deprecated! Please switch to "polar" - subplots. - - The 'endpadding' property is a number and may be specified as: - - An int or float - - Returns - ------- - int|float - """ - return self["endpadding"] - - @endpadding.setter - def endpadding(self, val): - self["endpadding"] = val - - # range - # ----- - @property - def range(self): - """ - Legacy polar charts are deprecated! Please switch to "polar" - subplots. Defines the start and end point of this angular axis. - - The 'range' property is an info array that may be specified as: - - * a list or tuple of 2 elements where: - (0) The 'range[0]' property is a number and may be specified as: - - An int or float - (1) The 'range[1]' property is a number and may be specified as: - - An int or float - - Returns - ------- - list - """ - return self["range"] - - @range.setter - def range(self, val): - self["range"] = val - - # showline - # -------- - @property - def showline(self): - """ - Legacy polar charts are deprecated! Please switch to "polar" - subplots. Determines whether or not the line bounding this - angular axis will be shown on the figure. - - The 'showline' property must be specified as a bool - (either True, or False) - - Returns - ------- - bool - """ - return self["showline"] - - @showline.setter - def showline(self, val): - self["showline"] = val - - # showticklabels - # -------------- - @property - def showticklabels(self): - """ - Legacy polar charts are deprecated! Please switch to "polar" - subplots. Determines whether or not the angular axis ticks will - feature tick labels. - - The 'showticklabels' property must be specified as a bool - (either True, or False) - - Returns - ------- - bool - """ - return self["showticklabels"] - - @showticklabels.setter - def showticklabels(self, val): - self["showticklabels"] = val - - # tickcolor - # --------- - @property - def tickcolor(self): - """ - Legacy polar charts are deprecated! Please switch to "polar" - subplots. Sets the color of the tick lines on this angular - axis. - - The 'tickcolor' property is a color and may be specified as: - - A hex string (e.g. '#ff0000') - - An rgb/rgba string (e.g. 'rgb(255,0,0)') - - An hsl/hsla string (e.g. 'hsl(0,100%,50%)') - - An hsv/hsva string (e.g. 'hsv(0,100%,100%)') - - A named CSS color: - aliceblue, antiquewhite, aqua, aquamarine, azure, - beige, bisque, black, blanchedalmond, blue, - blueviolet, brown, burlywood, cadetblue, - chartreuse, chocolate, coral, cornflowerblue, - cornsilk, crimson, cyan, darkblue, darkcyan, - darkgoldenrod, darkgray, darkgrey, darkgreen, - darkkhaki, darkmagenta, darkolivegreen, darkorange, - darkorchid, darkred, darksalmon, darkseagreen, - darkslateblue, darkslategray, darkslategrey, - darkturquoise, darkviolet, deeppink, deepskyblue, - dimgray, dimgrey, dodgerblue, firebrick, - floralwhite, forestgreen, fuchsia, gainsboro, - ghostwhite, gold, goldenrod, gray, grey, green, - greenyellow, honeydew, hotpink, indianred, indigo, - ivory, khaki, lavender, lavenderblush, lawngreen, - lemonchiffon, lightblue, lightcoral, lightcyan, - lightgoldenrodyellow, lightgray, lightgrey, - lightgreen, lightpink, lightsalmon, lightseagreen, - lightskyblue, lightslategray, lightslategrey, - lightsteelblue, lightyellow, lime, limegreen, - linen, magenta, maroon, mediumaquamarine, - mediumblue, mediumorchid, mediumpurple, - mediumseagreen, mediumslateblue, mediumspringgreen, - mediumturquoise, mediumvioletred, midnightblue, - mintcream, mistyrose, moccasin, navajowhite, navy, - oldlace, olive, olivedrab, orange, orangered, - orchid, palegoldenrod, palegreen, paleturquoise, - palevioletred, papayawhip, peachpuff, peru, pink, - plum, powderblue, purple, red, rosybrown, - royalblue, rebeccapurple, saddlebrown, salmon, - sandybrown, seagreen, seashell, sienna, silver, - skyblue, slateblue, slategray, slategrey, snow, - springgreen, steelblue, tan, teal, thistle, tomato, - turquoise, violet, wheat, white, whitesmoke, - yellow, yellowgreen - - Returns - ------- - str - """ - return self["tickcolor"] - - @tickcolor.setter - def tickcolor(self, val): - self["tickcolor"] = val - - # ticklen - # ------- - @property - def ticklen(self): - """ - Legacy polar charts are deprecated! Please switch to "polar" - subplots. Sets the length of the tick lines on this angular - axis. - - The 'ticklen' property is a number and may be specified as: - - An int or float in the interval [0, inf] - - Returns - ------- - int|float - """ - return self["ticklen"] - - @ticklen.setter - def ticklen(self, val): - self["ticklen"] = val - - # tickorientation - # --------------- - @property - def tickorientation(self): - """ - Legacy polar charts are deprecated! Please switch to "polar" - subplots. Sets the orientation (from the paper perspective) of - the angular axis tick labels. - - The 'tickorientation' property is an enumeration that may be specified as: - - One of the following enumeration values: - ['horizontal', 'vertical'] - - Returns - ------- - Any - """ - return self["tickorientation"] - - @tickorientation.setter - def tickorientation(self, val): - self["tickorientation"] = val - - # ticksuffix - # ---------- - @property - def ticksuffix(self): - """ - Legacy polar charts are deprecated! Please switch to "polar" - subplots. Sets the length of the tick lines on this angular - axis. - - The 'ticksuffix' property is a string and must be specified as: - - A string - - A number that will be converted to a string - - Returns - ------- - str - """ - return self["ticksuffix"] - - @ticksuffix.setter - def ticksuffix(self, val): - self["ticksuffix"] = val - - # visible - # ------- - @property - def visible(self): - """ - Legacy polar charts are deprecated! Please switch to "polar" - subplots. Determines whether or not this axis will be visible. - - The 'visible' property must be specified as a bool - (either True, or False) - - Returns - ------- - bool - """ - return self["visible"] - - @visible.setter - def visible(self, val): - self["visible"] = val - - # Self properties description - # --------------------------- - @property - def _prop_descriptions(self): - return """\ - domain - Polar chart subplots are not supported yet. This key - has currently no effect. - endpadding - Legacy polar charts are deprecated! Please switch to - "polar" subplots. - range - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Defines the start and end point of - this angular axis. - showline - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Determines whether or not the line - bounding this angular axis will be shown on the figure. - showticklabels - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Determines whether or not the angular - axis ticks will feature tick labels. - tickcolor - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Sets the color of the tick lines on - this angular axis. - ticklen - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Sets the length of the tick lines on - this angular axis. - tickorientation - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Sets the orientation (from the paper - perspective) of the angular axis tick labels. - ticksuffix - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Sets the length of the tick lines on - this angular axis. - visible - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Determines whether or not this axis - will be visible. - """ - - def __init__( - self, - arg=None, - domain=None, - endpadding=None, - range=None, - showline=None, - showticklabels=None, - tickcolor=None, - ticklen=None, - tickorientation=None, - ticksuffix=None, - visible=None, - **kwargs - ): - """ - Construct a new AngularAxis object - - Parameters - ---------- - arg - dict of properties compatible with this constructor or - an instance of - :class:`plotly.graph_objs.layout.AngularAxis` - domain - Polar chart subplots are not supported yet. This key - has currently no effect. - endpadding - Legacy polar charts are deprecated! Please switch to - "polar" subplots. - range - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Defines the start and end point of - this angular axis. - showline - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Determines whether or not the line - bounding this angular axis will be shown on the figure. - showticklabels - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Determines whether or not the angular - axis ticks will feature tick labels. - tickcolor - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Sets the color of the tick lines on - this angular axis. - ticklen - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Sets the length of the tick lines on - this angular axis. - tickorientation - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Sets the orientation (from the paper - perspective) of the angular axis tick labels. - ticksuffix - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Sets the length of the tick lines on - this angular axis. - visible - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Determines whether or not this axis - will be visible. - - Returns - ------- - AngularAxis - """ - super(AngularAxis, self).__init__("angularaxis") - - if "_parent" in kwargs: - self._parent = kwargs["_parent"] - return - - # Validate arg - # ------------ - if arg is None: - arg = {} - elif isinstance(arg, self.__class__): - arg = arg.to_plotly_json() - elif isinstance(arg, dict): - arg = _copy.copy(arg) - else: - raise ValueError( - """\ -The first argument to the plotly.graph_objs.layout.AngularAxis -constructor must be a dict or -an instance of :class:`plotly.graph_objs.layout.AngularAxis`""" - ) - - # Handle skip_invalid - # ------------------- - self._skip_invalid = kwargs.pop("skip_invalid", False) - self._validate = kwargs.pop("_validate", True) - - # Populate data dict with properties - # ---------------------------------- - _v = arg.pop("domain", None) - _v = domain if domain is not None else _v - if _v is not None: - self["domain"] = _v - _v = arg.pop("endpadding", None) - _v = endpadding if endpadding is not None else _v - if _v is not None: - self["endpadding"] = _v - _v = arg.pop("range", None) - _v = range if range is not None else _v - if _v is not None: - self["range"] = _v - _v = arg.pop("showline", None) - _v = showline if showline is not None else _v - if _v is not None: - self["showline"] = _v - _v = arg.pop("showticklabels", None) - _v = showticklabels if showticklabels is not None else _v - if _v is not None: - self["showticklabels"] = _v - _v = arg.pop("tickcolor", None) - _v = tickcolor if tickcolor is not None else _v - if _v is not None: - self["tickcolor"] = _v - _v = arg.pop("ticklen", None) - _v = ticklen if ticklen is not None else _v - if _v is not None: - self["ticklen"] = _v - _v = arg.pop("tickorientation", None) - _v = tickorientation if tickorientation is not None else _v - if _v is not None: - self["tickorientation"] = _v - _v = arg.pop("ticksuffix", None) - _v = ticksuffix if ticksuffix is not None else _v - if _v is not None: - self["ticksuffix"] = _v - _v = arg.pop("visible", None) - _v = visible if visible is not None else _v - if _v is not None: - self["visible"] = _v - - # Process unknown kwargs - # ---------------------- - self._process_kwargs(**dict(arg, **kwargs)) - - # Reset skip_invalid - # ------------------ - self._skip_invalid = False diff --git a/packages/python/plotly/plotly/graph_objs/layout/_coloraxis.py b/packages/python/plotly/plotly/graph_objs/layout/_coloraxis.py index 4cf08b54d7..039bd0d935 100644 --- a/packages/python/plotly/plotly/graph_objs/layout/_coloraxis.py +++ b/packages/python/plotly/plotly/graph_objs/layout/_coloraxis.py @@ -286,6 +286,12 @@ def colorbar(self): sets the default property values to use for elements of layout.coloraxis.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/graph_objs/layout/_legend.py b/packages/python/plotly/plotly/graph_objs/layout/_legend.py index 579894cf20..47c29465d4 100644 --- a/packages/python/plotly/plotly/graph_objs/layout/_legend.py +++ b/packages/python/plotly/plotly/graph_objs/layout/_legend.py @@ -341,7 +341,9 @@ def title(self): Supported dict properties: font - Sets this legend's title font. + Sets this legend's title font. Defaults to + `legend.font` with its size increased about + 20%. side Determines the location of legend's title with respect to the legend items. Defaulted to "top" diff --git a/packages/python/plotly/plotly/graph_objs/layout/_modebar.py b/packages/python/plotly/plotly/graph_objs/layout/_modebar.py index 3bf8c3d213..e5185a1dcc 100644 --- a/packages/python/plotly/plotly/graph_objs/layout/_modebar.py +++ b/packages/python/plotly/plotly/graph_objs/layout/_modebar.py @@ -8,7 +8,17 @@ class Modebar(_BaseLayoutHierarchyType): # -------------------- _parent_path_str = "layout" _path_str = "layout.modebar" - _valid_props = {"activecolor", "bgcolor", "color", "orientation", "uirevision"} + _valid_props = { + "activecolor", + "add", + "addsrc", + "bgcolor", + "color", + "orientation", + "remove", + "removesrc", + "uirevision", + } # activecolor # ----------- @@ -70,6 +80,54 @@ def activecolor(self): def activecolor(self, val): self["activecolor"] = val + # add + # --- + @property + def add(self): + """ + Determines which predefined modebar buttons to add. Please note + that these buttons will only be shown if they are compatible + with all trace types used in a graph. Similar to + `config.modeBarButtonsToAdd` option. This may include + "v1hovermode", "hoverclosest", "hovercompare", "togglehover", + "togglespikelines", "drawline", "drawopenpath", + "drawclosedpath", "drawcircle", "drawrect", "eraseshape". + + The 'add' property is a string and must be specified as: + - A string + - A number that will be converted to a string + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + str|numpy.ndarray + """ + return self["add"] + + @add.setter + def add(self, val): + self["add"] = val + + # addsrc + # ------ + @property + def addsrc(self): + """ + Sets the source reference on Chart Studio Cloud for add . + + The 'addsrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["addsrc"] + + @addsrc.setter + def addsrc(self, val): + self["addsrc"] = val + # bgcolor # ------- @property @@ -209,6 +267,63 @@ def orientation(self): def orientation(self, val): self["orientation"] = val + # remove + # ------ + @property + def remove(self): + """ + Determines which predefined modebar buttons to remove. Similar + to `config.modeBarButtonsToRemove` option. This may include + "autoScale2d", "autoscale", "editInChartStudio", + "editinchartstudio", "hoverCompareCartesian", "hovercompare", + "lasso", "lasso2d", "orbitRotation", "orbitrotation", "pan", + "pan2d", "pan3d", "reset", "resetCameraDefault3d", + "resetCameraLastSave3d", "resetGeo", "resetSankeyGroup", + "resetScale2d", "resetViewMapbox", "resetViews", + "resetcameradefault", "resetcameralastsave", + "resetsankeygroup", "resetscale", "resetview", "resetviews", + "select", "select2d", "sendDataToCloud", "senddatatocloud", + "tableRotation", "tablerotation", "toImage", "toggleHover", + "toggleSpikelines", "togglehover", "togglespikelines", + "toimage", "zoom", "zoom2d", "zoom3d", "zoomIn2d", "zoomInGeo", + "zoomInMapbox", "zoomOut2d", "zoomOutGeo", "zoomOutMapbox", + "zoomin", "zoomout". + + The 'remove' property is a string and must be specified as: + - A string + - A number that will be converted to a string + - A tuple, list, or one-dimensional numpy array of the above + + Returns + ------- + str|numpy.ndarray + """ + return self["remove"] + + @remove.setter + def remove(self, val): + self["remove"] = val + + # removesrc + # --------- + @property + def removesrc(self): + """ + Sets the source reference on Chart Studio Cloud for remove . + + The 'removesrc' property must be specified as a string or + as a plotly.grid_objs.Column object + + Returns + ------- + str + """ + return self["removesrc"] + + @removesrc.setter + def removesrc(self, val): + self["removesrc"] = val + # uirevision # ---------- @property @@ -239,12 +354,47 @@ def _prop_descriptions(self): activecolor Sets the color of the active or hovered on icons in the modebar. + add + Determines which predefined modebar buttons to add. + Please note that these buttons will only be shown if + they are compatible with all trace types used in a + graph. Similar to `config.modeBarButtonsToAdd` option. + This may include "v1hovermode", "hoverclosest", + "hovercompare", "togglehover", "togglespikelines", + "drawline", "drawopenpath", "drawclosedpath", + "drawcircle", "drawrect", "eraseshape". + addsrc + Sets the source reference on Chart Studio Cloud for + add . bgcolor Sets the background color of the modebar. color Sets the color of the icons in the modebar. orientation Sets the orientation of the modebar. + remove + Determines which predefined modebar buttons to remove. + Similar to `config.modeBarButtonsToRemove` option. This + may include "autoScale2d", "autoscale", + "editInChartStudio", "editinchartstudio", + "hoverCompareCartesian", "hovercompare", "lasso", + "lasso2d", "orbitRotation", "orbitrotation", "pan", + "pan2d", "pan3d", "reset", "resetCameraDefault3d", + "resetCameraLastSave3d", "resetGeo", + "resetSankeyGroup", "resetScale2d", "resetViewMapbox", + "resetViews", "resetcameradefault", + "resetcameralastsave", "resetsankeygroup", + "resetscale", "resetview", "resetviews", "select", + "select2d", "sendDataToCloud", "senddatatocloud", + "tableRotation", "tablerotation", "toImage", + "toggleHover", "toggleSpikelines", "togglehover", + "togglespikelines", "toimage", "zoom", "zoom2d", + "zoom3d", "zoomIn2d", "zoomInGeo", "zoomInMapbox", + "zoomOut2d", "zoomOutGeo", "zoomOutMapbox", "zoomin", + "zoomout". + removesrc + Sets the source reference on Chart Studio Cloud for + remove . uirevision Controls persistence of user-driven changes related to the modebar, including `hovermode`, `dragmode`, and @@ -256,9 +406,13 @@ def __init__( self, arg=None, activecolor=None, + add=None, + addsrc=None, bgcolor=None, color=None, orientation=None, + remove=None, + removesrc=None, uirevision=None, **kwargs ): @@ -274,12 +428,47 @@ def __init__( activecolor Sets the color of the active or hovered on icons in the modebar. + add + Determines which predefined modebar buttons to add. + Please note that these buttons will only be shown if + they are compatible with all trace types used in a + graph. Similar to `config.modeBarButtonsToAdd` option. + This may include "v1hovermode", "hoverclosest", + "hovercompare", "togglehover", "togglespikelines", + "drawline", "drawopenpath", "drawclosedpath", + "drawcircle", "drawrect", "eraseshape". + addsrc + Sets the source reference on Chart Studio Cloud for + add . bgcolor Sets the background color of the modebar. color Sets the color of the icons in the modebar. orientation Sets the orientation of the modebar. + remove + Determines which predefined modebar buttons to remove. + Similar to `config.modeBarButtonsToRemove` option. This + may include "autoScale2d", "autoscale", + "editInChartStudio", "editinchartstudio", + "hoverCompareCartesian", "hovercompare", "lasso", + "lasso2d", "orbitRotation", "orbitrotation", "pan", + "pan2d", "pan3d", "reset", "resetCameraDefault3d", + "resetCameraLastSave3d", "resetGeo", + "resetSankeyGroup", "resetScale2d", "resetViewMapbox", + "resetViews", "resetcameradefault", + "resetcameralastsave", "resetsankeygroup", + "resetscale", "resetview", "resetviews", "select", + "select2d", "sendDataToCloud", "senddatatocloud", + "tableRotation", "tablerotation", "toImage", + "toggleHover", "toggleSpikelines", "togglehover", + "togglespikelines", "toimage", "zoom", "zoom2d", + "zoom3d", "zoomIn2d", "zoomInGeo", "zoomInMapbox", + "zoomOut2d", "zoomOutGeo", "zoomOutMapbox", "zoomin", + "zoomout". + removesrc + Sets the source reference on Chart Studio Cloud for + remove . uirevision Controls persistence of user-driven changes related to the modebar, including `hovermode`, `dragmode`, and @@ -323,6 +512,14 @@ def __init__( _v = activecolor if activecolor is not None else _v if _v is not None: self["activecolor"] = _v + _v = arg.pop("add", None) + _v = add if add is not None else _v + if _v is not None: + self["add"] = _v + _v = arg.pop("addsrc", None) + _v = addsrc if addsrc is not None else _v + if _v is not None: + self["addsrc"] = _v _v = arg.pop("bgcolor", None) _v = bgcolor if bgcolor is not None else _v if _v is not None: @@ -335,6 +532,14 @@ def __init__( _v = orientation if orientation is not None else _v if _v is not None: self["orientation"] = _v + _v = arg.pop("remove", None) + _v = remove if remove is not None else _v + if _v is not None: + self["remove"] = _v + _v = arg.pop("removesrc", None) + _v = removesrc if removesrc is not None else _v + if _v is not None: + self["removesrc"] = _v _v = arg.pop("uirevision", None) _v = uirevision if uirevision is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/layout/_radialaxis.py b/packages/python/plotly/plotly/graph_objs/layout/_radialaxis.py deleted file mode 100644 index fa32796a2a..0000000000 --- a/packages/python/plotly/plotly/graph_objs/layout/_radialaxis.py +++ /dev/null @@ -1,514 +0,0 @@ -from plotly.basedatatypes import BaseLayoutHierarchyType as _BaseLayoutHierarchyType -import copy as _copy - - -class RadialAxis(_BaseLayoutHierarchyType): - - # class properties - # -------------------- - _parent_path_str = "layout" - _path_str = "layout.radialaxis" - _valid_props = { - "domain", - "endpadding", - "orientation", - "range", - "showline", - "showticklabels", - "tickcolor", - "ticklen", - "tickorientation", - "ticksuffix", - "visible", - } - - # domain - # ------ - @property - def domain(self): - """ - Polar chart subplots are not supported yet. This key has - currently no effect. - - The 'domain' property is an info array that may be specified as: - - * a list or tuple of 2 elements where: - (0) The 'domain[0]' property is a number and may be specified as: - - An int or float in the interval [0, 1] - (1) The 'domain[1]' property is a number and may be specified as: - - An int or float in the interval [0, 1] - - Returns - ------- - list - """ - return self["domain"] - - @domain.setter - def domain(self, val): - self["domain"] = val - - # endpadding - # ---------- - @property - def endpadding(self): - """ - Legacy polar charts are deprecated! Please switch to "polar" - subplots. - - The 'endpadding' property is a number and may be specified as: - - An int or float - - Returns - ------- - int|float - """ - return self["endpadding"] - - @endpadding.setter - def endpadding(self, val): - self["endpadding"] = val - - # orientation - # ----------- - @property - def orientation(self): - """ - Legacy polar charts are deprecated! Please switch to "polar" - subplots. Sets the orientation (an angle with respect to the - origin) of the radial axis. - - The 'orientation' property is a number and may be specified as: - - An int or float - - Returns - ------- - int|float - """ - return self["orientation"] - - @orientation.setter - def orientation(self, val): - self["orientation"] = val - - # range - # ----- - @property - def range(self): - """ - Legacy polar charts are deprecated! Please switch to "polar" - subplots. Defines the start and end point of this radial axis. - - The 'range' property is an info array that may be specified as: - - * a list or tuple of 2 elements where: - (0) The 'range[0]' property is a number and may be specified as: - - An int or float - (1) The 'range[1]' property is a number and may be specified as: - - An int or float - - Returns - ------- - list - """ - return self["range"] - - @range.setter - def range(self, val): - self["range"] = val - - # showline - # -------- - @property - def showline(self): - """ - Legacy polar charts are deprecated! Please switch to "polar" - subplots. Determines whether or not the line bounding this - radial axis will be shown on the figure. - - The 'showline' property must be specified as a bool - (either True, or False) - - Returns - ------- - bool - """ - return self["showline"] - - @showline.setter - def showline(self, val): - self["showline"] = val - - # showticklabels - # -------------- - @property - def showticklabels(self): - """ - Legacy polar charts are deprecated! Please switch to "polar" - subplots. Determines whether or not the radial axis ticks will - feature tick labels. - - The 'showticklabels' property must be specified as a bool - (either True, or False) - - Returns - ------- - bool - """ - return self["showticklabels"] - - @showticklabels.setter - def showticklabels(self, val): - self["showticklabels"] = val - - # tickcolor - # --------- - @property - def tickcolor(self): - """ - Legacy polar charts are deprecated! Please switch to "polar" - subplots. Sets the color of the tick lines on this radial axis. - - The 'tickcolor' property is a color and may be specified as: - - A hex string (e.g. '#ff0000') - - An rgb/rgba string (e.g. 'rgb(255,0,0)') - - An hsl/hsla string (e.g. 'hsl(0,100%,50%)') - - An hsv/hsva string (e.g. 'hsv(0,100%,100%)') - - A named CSS color: - aliceblue, antiquewhite, aqua, aquamarine, azure, - beige, bisque, black, blanchedalmond, blue, - blueviolet, brown, burlywood, cadetblue, - chartreuse, chocolate, coral, cornflowerblue, - cornsilk, crimson, cyan, darkblue, darkcyan, - darkgoldenrod, darkgray, darkgrey, darkgreen, - darkkhaki, darkmagenta, darkolivegreen, darkorange, - darkorchid, darkred, darksalmon, darkseagreen, - darkslateblue, darkslategray, darkslategrey, - darkturquoise, darkviolet, deeppink, deepskyblue, - dimgray, dimgrey, dodgerblue, firebrick, - floralwhite, forestgreen, fuchsia, gainsboro, - ghostwhite, gold, goldenrod, gray, grey, green, - greenyellow, honeydew, hotpink, indianred, indigo, - ivory, khaki, lavender, lavenderblush, lawngreen, - lemonchiffon, lightblue, lightcoral, lightcyan, - lightgoldenrodyellow, lightgray, lightgrey, - lightgreen, lightpink, lightsalmon, lightseagreen, - lightskyblue, lightslategray, lightslategrey, - lightsteelblue, lightyellow, lime, limegreen, - linen, magenta, maroon, mediumaquamarine, - mediumblue, mediumorchid, mediumpurple, - mediumseagreen, mediumslateblue, mediumspringgreen, - mediumturquoise, mediumvioletred, midnightblue, - mintcream, mistyrose, moccasin, navajowhite, navy, - oldlace, olive, olivedrab, orange, orangered, - orchid, palegoldenrod, palegreen, paleturquoise, - palevioletred, papayawhip, peachpuff, peru, pink, - plum, powderblue, purple, red, rosybrown, - royalblue, rebeccapurple, saddlebrown, salmon, - sandybrown, seagreen, seashell, sienna, silver, - skyblue, slateblue, slategray, slategrey, snow, - springgreen, steelblue, tan, teal, thistle, tomato, - turquoise, violet, wheat, white, whitesmoke, - yellow, yellowgreen - - Returns - ------- - str - """ - return self["tickcolor"] - - @tickcolor.setter - def tickcolor(self, val): - self["tickcolor"] = val - - # ticklen - # ------- - @property - def ticklen(self): - """ - Legacy polar charts are deprecated! Please switch to "polar" - subplots. Sets the length of the tick lines on this radial - axis. - - The 'ticklen' property is a number and may be specified as: - - An int or float in the interval [0, inf] - - Returns - ------- - int|float - """ - return self["ticklen"] - - @ticklen.setter - def ticklen(self, val): - self["ticklen"] = val - - # tickorientation - # --------------- - @property - def tickorientation(self): - """ - Legacy polar charts are deprecated! Please switch to "polar" - subplots. Sets the orientation (from the paper perspective) of - the radial axis tick labels. - - The 'tickorientation' property is an enumeration that may be specified as: - - One of the following enumeration values: - ['horizontal', 'vertical'] - - Returns - ------- - Any - """ - return self["tickorientation"] - - @tickorientation.setter - def tickorientation(self, val): - self["tickorientation"] = val - - # ticksuffix - # ---------- - @property - def ticksuffix(self): - """ - Legacy polar charts are deprecated! Please switch to "polar" - subplots. Sets the length of the tick lines on this radial - axis. - - The 'ticksuffix' property is a string and must be specified as: - - A string - - A number that will be converted to a string - - Returns - ------- - str - """ - return self["ticksuffix"] - - @ticksuffix.setter - def ticksuffix(self, val): - self["ticksuffix"] = val - - # visible - # ------- - @property - def visible(self): - """ - Legacy polar charts are deprecated! Please switch to "polar" - subplots. Determines whether or not this axis will be visible. - - The 'visible' property must be specified as a bool - (either True, or False) - - Returns - ------- - bool - """ - return self["visible"] - - @visible.setter - def visible(self, val): - self["visible"] = val - - # Self properties description - # --------------------------- - @property - def _prop_descriptions(self): - return """\ - domain - Polar chart subplots are not supported yet. This key - has currently no effect. - endpadding - Legacy polar charts are deprecated! Please switch to - "polar" subplots. - orientation - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Sets the orientation (an angle with - respect to the origin) of the radial axis. - range - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Defines the start and end point of - this radial axis. - showline - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Determines whether or not the line - bounding this radial axis will be shown on the figure. - showticklabels - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Determines whether or not the radial - axis ticks will feature tick labels. - tickcolor - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Sets the color of the tick lines on - this radial axis. - ticklen - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Sets the length of the tick lines on - this radial axis. - tickorientation - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Sets the orientation (from the paper - perspective) of the radial axis tick labels. - ticksuffix - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Sets the length of the tick lines on - this radial axis. - visible - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Determines whether or not this axis - will be visible. - """ - - def __init__( - self, - arg=None, - domain=None, - endpadding=None, - orientation=None, - range=None, - showline=None, - showticklabels=None, - tickcolor=None, - ticklen=None, - tickorientation=None, - ticksuffix=None, - visible=None, - **kwargs - ): - """ - Construct a new RadialAxis object - - Parameters - ---------- - arg - dict of properties compatible with this constructor or - an instance of - :class:`plotly.graph_objs.layout.RadialAxis` - domain - Polar chart subplots are not supported yet. This key - has currently no effect. - endpadding - Legacy polar charts are deprecated! Please switch to - "polar" subplots. - orientation - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Sets the orientation (an angle with - respect to the origin) of the radial axis. - range - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Defines the start and end point of - this radial axis. - showline - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Determines whether or not the line - bounding this radial axis will be shown on the figure. - showticklabels - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Determines whether or not the radial - axis ticks will feature tick labels. - tickcolor - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Sets the color of the tick lines on - this radial axis. - ticklen - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Sets the length of the tick lines on - this radial axis. - tickorientation - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Sets the orientation (from the paper - perspective) of the radial axis tick labels. - ticksuffix - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Sets the length of the tick lines on - this radial axis. - visible - Legacy polar charts are deprecated! Please switch to - "polar" subplots. Determines whether or not this axis - will be visible. - - Returns - ------- - RadialAxis - """ - super(RadialAxis, self).__init__("radialaxis") - - if "_parent" in kwargs: - self._parent = kwargs["_parent"] - return - - # Validate arg - # ------------ - if arg is None: - arg = {} - elif isinstance(arg, self.__class__): - arg = arg.to_plotly_json() - elif isinstance(arg, dict): - arg = _copy.copy(arg) - else: - raise ValueError( - """\ -The first argument to the plotly.graph_objs.layout.RadialAxis -constructor must be a dict or -an instance of :class:`plotly.graph_objs.layout.RadialAxis`""" - ) - - # Handle skip_invalid - # ------------------- - self._skip_invalid = kwargs.pop("skip_invalid", False) - self._validate = kwargs.pop("_validate", True) - - # Populate data dict with properties - # ---------------------------------- - _v = arg.pop("domain", None) - _v = domain if domain is not None else _v - if _v is not None: - self["domain"] = _v - _v = arg.pop("endpadding", None) - _v = endpadding if endpadding is not None else _v - if _v is not None: - self["endpadding"] = _v - _v = arg.pop("orientation", None) - _v = orientation if orientation is not None else _v - if _v is not None: - self["orientation"] = _v - _v = arg.pop("range", None) - _v = range if range is not None else _v - if _v is not None: - self["range"] = _v - _v = arg.pop("showline", None) - _v = showline if showline is not None else _v - if _v is not None: - self["showline"] = _v - _v = arg.pop("showticklabels", None) - _v = showticklabels if showticklabels is not None else _v - if _v is not None: - self["showticklabels"] = _v - _v = arg.pop("tickcolor", None) - _v = tickcolor if tickcolor is not None else _v - if _v is not None: - self["tickcolor"] = _v - _v = arg.pop("ticklen", None) - _v = ticklen if ticklen is not None else _v - if _v is not None: - self["ticklen"] = _v - _v = arg.pop("tickorientation", None) - _v = tickorientation if tickorientation is not None else _v - if _v is not None: - self["tickorientation"] = _v - _v = arg.pop("ticksuffix", None) - _v = ticksuffix if ticksuffix is not None else _v - if _v is not None: - self["ticksuffix"] = _v - _v = arg.pop("visible", None) - _v = visible if visible is not None else _v - if _v is not None: - self["visible"] = _v - - # Process unknown kwargs - # ---------------------- - self._process_kwargs(**dict(arg, **kwargs)) - - # Reset skip_invalid - # ------------------ - self._skip_invalid = False diff --git a/packages/python/plotly/plotly/graph_objs/layout/_template.py b/packages/python/plotly/plotly/graph_objs/layout/_template.py index 83c9b684da..9e48a1bbad 100644 --- a/packages/python/plotly/plotly/graph_objs/layout/_template.py +++ b/packages/python/plotly/plotly/graph_objs/layout/_template.py @@ -23,9 +23,6 @@ def data(self): Supported dict properties: - area - A tuple of :class:`plotly.graph_objects.Area` - instances or dicts with compatible properties barpolar A tuple of :class:`plotly.graph_objects.Barpolar` diff --git a/packages/python/plotly/plotly/graph_objs/layout/_xaxis.py b/packages/python/plotly/plotly/graph_objs/layout/_xaxis.py index 783b8f10bc..6d9c6610f7 100644 --- a/packages/python/plotly/plotly/graph_objs/layout/_xaxis.py +++ b/packages/python/plotly/plotly/graph_objs/layout/_xaxis.py @@ -69,6 +69,7 @@ class XAxis(_BaseLayoutHierarchyType): "tickformatstopdefaults", "tickformatstops", "ticklabelmode", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -1968,6 +1969,31 @@ def ticklabelmode(self): def ticklabelmode(self, val): self["ticklabelmode"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. Otherwise on + "category" and "multicategory" axes the default is "allow". In + other cases the default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -2838,6 +2864,13 @@ def _prop_descriptions(self): effect for axes of `type` "date" When set to "period", tick labels are drawn in the middle of the period between ticks. + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. Otherwise on "category" and + "multicategory" axes the default is "allow". In other + cases the default is *hide past div*. ticklabelposition Determines where tick labels are drawn with respect to the axis Please note that top or bottom has no effect @@ -2985,6 +3018,7 @@ def __init__( tickformatstops=None, tickformatstopdefaults=None, ticklabelmode=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -3348,6 +3382,13 @@ def __init__( effect for axes of `type` "date" When set to "period", tick labels are drawn in the middle of the period between ticks. + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. Otherwise on "category" and + "multicategory" axes the default is "allow". In other + cases the default is *hide past div*. ticklabelposition Determines where tick labels are drawn with respect to the axis Please note that top or bottom has no effect @@ -3702,6 +3743,10 @@ def __init__( _v = ticklabelmode if ticklabelmode is not None else _v if _v is not None: self["ticklabelmode"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/layout/_yaxis.py b/packages/python/plotly/plotly/graph_objs/layout/_yaxis.py index e491a21007..c65a760483 100644 --- a/packages/python/plotly/plotly/graph_objs/layout/_yaxis.py +++ b/packages/python/plotly/plotly/graph_objs/layout/_yaxis.py @@ -67,6 +67,7 @@ class YAxis(_BaseLayoutHierarchyType): "tickformatstopdefaults", "tickformatstops", "ticklabelmode", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -1839,6 +1840,31 @@ def ticklabelmode(self): def ticklabelmode(self, val): self["ticklabelmode"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. Otherwise on + "category" and "multicategory" axes the default is "allow". In + other cases the default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -2703,6 +2729,13 @@ def _prop_descriptions(self): effect for axes of `type` "date" When set to "period", tick labels are drawn in the middle of the period between ticks. + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. Otherwise on "category" and + "multicategory" axes the default is "allow". In other + cases the default is *hide past div*. ticklabelposition Determines where tick labels are drawn with respect to the axis Please note that top or bottom has no effect @@ -2848,6 +2881,7 @@ def __init__( tickformatstops=None, tickformatstopdefaults=None, ticklabelmode=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -3205,6 +3239,13 @@ def __init__( effect for axes of `type` "date" When set to "period", tick labels are drawn in the middle of the period between ticks. + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. Otherwise on "category" and + "multicategory" axes the default is "allow". In other + cases the default is *hide past div*. ticklabelposition Determines where tick labels are drawn with respect to the axis Please note that top or bottom has no effect @@ -3551,6 +3592,10 @@ def __init__( _v = ticklabelmode if ticklabelmode is not None else _v if _v is not None: self["ticklabelmode"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/layout/coloraxis/_colorbar.py b/packages/python/plotly/plotly/graph_objs/layout/coloraxis/_colorbar.py index 7fd932281e..dbac2a089c 100644 --- a/packages/python/plotly/plotly/graph_objs/layout/coloraxis/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/layout/coloraxis/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseLayoutHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1451,6 +1476,12 @@ def _prop_descriptions(self): raxis.colorbar.tickformatstopdefaults), sets the default property values to use for elements of layout.coloraxis.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1558,6 +1589,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1712,6 +1744,12 @@ def __init__( raxis.colorbar.tickformatstopdefaults), sets the default property values to use for elements of layout.coloraxis.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1918,6 +1956,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/layout/legend/_title.py b/packages/python/plotly/plotly/graph_objs/layout/legend/_title.py index 1f10724431..a510b419c3 100644 --- a/packages/python/plotly/plotly/graph_objs/layout/legend/_title.py +++ b/packages/python/plotly/plotly/graph_objs/layout/legend/_title.py @@ -15,7 +15,8 @@ class Title(_BaseLayoutHierarchyType): @property def font(self): """ - Sets this legend's title font. + Sets this legend's title font. Defaults to `legend.font` with + its size increased about 20%. The 'font' property is an instance of Font that may be specified as: @@ -108,7 +109,8 @@ def text(self, val): def _prop_descriptions(self): return """\ font - Sets this legend's title font. + Sets this legend's title font. Defaults to + `legend.font` with its size increased about 20%. side Determines the location of legend's title with respect to the legend items. Defaulted to "top" with @@ -130,7 +132,8 @@ def __init__(self, arg=None, font=None, side=None, text=None, **kwargs): an instance of :class:`plotly.graph_objs.layout.legend.Title` font - Sets this legend's title font. + Sets this legend's title font. Defaults to + `legend.font` with its size increased about 20%. side Determines the location of legend's title with respect to the legend items. Defaulted to "top" with diff --git a/packages/python/plotly/plotly/graph_objs/layout/legend/title/_font.py b/packages/python/plotly/plotly/graph_objs/layout/legend/title/_font.py index b8792eda17..46cc7a5b73 100644 --- a/packages/python/plotly/plotly/graph_objs/layout/legend/title/_font.py +++ b/packages/python/plotly/plotly/graph_objs/layout/legend/title/_font.py @@ -145,7 +145,8 @@ def __init__(self, arg=None, color=None, family=None, size=None, **kwargs): """ Construct a new Font object - Sets this legend's title font. + Sets this legend's title font. Defaults to `legend.font` with + its size increased about 20%. Parameters ---------- diff --git a/packages/python/plotly/plotly/graph_objs/layout/template/_data.py b/packages/python/plotly/plotly/graph_objs/layout/template/_data.py index fdd76a97d0..52a433b97c 100644 --- a/packages/python/plotly/plotly/graph_objs/layout/template/_data.py +++ b/packages/python/plotly/plotly/graph_objs/layout/template/_data.py @@ -9,7 +9,6 @@ class Data(_BaseLayoutHierarchyType): _parent_path_str = "layout.template" _path_str = "layout.template.data" _valid_props = { - "area", "bar", "barpolar", "box", @@ -58,29 +57,6 @@ class Data(_BaseLayoutHierarchyType): "waterfall", } - # area - # ---- - @property - def area(self): - """ - The 'area' property is a tuple of instances of - Area that may be specified as: - - A list or tuple of instances of plotly.graph_objs.layout.template.data.Area - - A list or tuple of dicts of string/value properties that - will be passed to the Area constructor - - Supported dict properties: - - Returns - ------- - tuple[plotly.graph_objs.layout.template.data.Area] - """ - return self["area"] - - @area.setter - def area(self, val): - self["area"] = val - # barpolar # -------- @property @@ -1144,9 +1120,6 @@ def waterfall(self, val): @property def _prop_descriptions(self): return """\ - area - A tuple of :class:`plotly.graph_objects.Area` instances - or dicts with compatible properties barpolar A tuple of :class:`plotly.graph_objects.Barpolar` instances or dicts with compatible properties @@ -1292,7 +1265,6 @@ def _prop_descriptions(self): def __init__( self, arg=None, - area=None, barpolar=None, bar=None, box=None, @@ -1350,9 +1322,6 @@ def __init__( dict of properties compatible with this constructor or an instance of :class:`plotly.graph_objs.layout.template.Data` - area - A tuple of :class:`plotly.graph_objects.Area` instances - or dicts with compatible properties barpolar A tuple of :class:`plotly.graph_objects.Barpolar` instances or dicts with compatible properties @@ -1527,10 +1496,6 @@ def __init__( # Populate data dict with properties # ---------------------------------- - _v = arg.pop("area", None) - _v = area if area is not None else _v - if _v is not None: - self["area"] = _v _v = arg.pop("barpolar", None) _v = barpolar if barpolar is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/layout/template/data/__init__.py b/packages/python/plotly/plotly/graph_objs/layout/template/data/__init__.py index 25c64601df..c7700a24fd 100644 --- a/packages/python/plotly/plotly/graph_objs/layout/template/data/__init__.py +++ b/packages/python/plotly/plotly/graph_objs/layout/template/data/__init__.py @@ -1,7 +1,6 @@ import sys if sys.version_info < (3, 7): - from ._area import Area from ._bar import Bar from ._barpolar import Barpolar from ._box import Box @@ -55,7 +54,6 @@ __name__, [], [ - "._area.Area", "._bar.Bar", "._barpolar.Barpolar", "._box.Box", diff --git a/packages/python/plotly/plotly/graph_objs/layout/template/data/_area.py b/packages/python/plotly/plotly/graph_objs/layout/template/data/_area.py deleted file mode 100644 index ad21bdf3e8..0000000000 --- a/packages/python/plotly/plotly/graph_objs/layout/template/data/_area.py +++ /dev/null @@ -1 +0,0 @@ -from plotly.graph_objs import Area diff --git a/packages/python/plotly/plotly/graph_objs/mesh3d/_colorbar.py b/packages/python/plotly/plotly/graph_objs/mesh3d/_colorbar.py index 998c2d968a..2fdad649e8 100644 --- a/packages/python/plotly/plotly/graph_objs/mesh3d/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/mesh3d/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1450,6 +1475,12 @@ def _prop_descriptions(self): .colorbar.tickformatstopdefaults), sets the default property values to use for elements of mesh3d.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1556,6 +1587,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1710,6 +1742,12 @@ def __init__( .colorbar.tickformatstopdefaults), sets the default property values to use for elements of mesh3d.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1915,6 +1953,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/parcats/_line.py b/packages/python/plotly/plotly/graph_objs/parcats/_line.py index 118f478a95..f96d47cdf6 100644 --- a/packages/python/plotly/plotly/graph_objs/parcats/_line.py +++ b/packages/python/plotly/plotly/graph_objs/parcats/_line.py @@ -388,6 +388,12 @@ def colorbar(self): , sets the default property values to use for elements of parcats.line.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/graph_objs/parcats/line/_colorbar.py b/packages/python/plotly/plotly/graph_objs/parcats/line/_colorbar.py index 560ae2491c..bbad45df6c 100644 --- a/packages/python/plotly/plotly/graph_objs/parcats/line/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/parcats/line/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1451,6 +1476,12 @@ def _prop_descriptions(self): s.line.colorbar.tickformatstopdefaults), sets the default property values to use for elements of parcats.line.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1557,6 +1588,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1711,6 +1743,12 @@ def __init__( s.line.colorbar.tickformatstopdefaults), sets the default property values to use for elements of parcats.line.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1916,6 +1954,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/parcoords/_line.py b/packages/python/plotly/plotly/graph_objs/parcoords/_line.py index 02c34df8d4..943a53b4c0 100644 --- a/packages/python/plotly/plotly/graph_objs/parcoords/_line.py +++ b/packages/python/plotly/plotly/graph_objs/parcoords/_line.py @@ -386,6 +386,12 @@ def colorbar(self): s), sets the default property values to use for elements of parcoords.line.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/graph_objs/parcoords/line/_colorbar.py b/packages/python/plotly/plotly/graph_objs/parcoords/line/_colorbar.py index ff129d5e18..4f16b29d5d 100644 --- a/packages/python/plotly/plotly/graph_objs/parcoords/line/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/parcoords/line/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1451,6 +1476,12 @@ def _prop_descriptions(self): rds.line.colorbar.tickformatstopdefaults), sets the default property values to use for elements of parcoords.line.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1557,6 +1588,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1711,6 +1743,12 @@ def __init__( rds.line.colorbar.tickformatstopdefaults), sets the default property values to use for elements of parcoords.line.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1916,6 +1954,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/scatter/_marker.py b/packages/python/plotly/plotly/graph_objs/scatter/_marker.py index b56cd97e02..723e6bfe76 100644 --- a/packages/python/plotly/plotly/graph_objs/scatter/_marker.py +++ b/packages/python/plotly/plotly/graph_objs/scatter/_marker.py @@ -399,6 +399,12 @@ def colorbar(self): s), sets the default property values to use for elements of scatter.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/graph_objs/scatter/marker/_colorbar.py b/packages/python/plotly/plotly/graph_objs/scatter/marker/_colorbar.py index 15ee1388ca..f53182f8ca 100644 --- a/packages/python/plotly/plotly/graph_objs/scatter/marker/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/scatter/marker/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1451,6 +1476,12 @@ def _prop_descriptions(self): r.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of scatter.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1557,6 +1588,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1711,6 +1743,12 @@ def __init__( r.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of scatter.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1916,6 +1954,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/scatter3d/_line.py b/packages/python/plotly/plotly/graph_objs/scatter3d/_line.py index 7078d401a3..772fd872c0 100644 --- a/packages/python/plotly/plotly/graph_objs/scatter3d/_line.py +++ b/packages/python/plotly/plotly/graph_objs/scatter3d/_line.py @@ -388,6 +388,12 @@ def colorbar(self): s), sets the default property values to use for elements of scatter3d.line.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/graph_objs/scatter3d/_marker.py b/packages/python/plotly/plotly/graph_objs/scatter3d/_marker.py index 53cd674f55..45cd6c0cc9 100644 --- a/packages/python/plotly/plotly/graph_objs/scatter3d/_marker.py +++ b/packages/python/plotly/plotly/graph_objs/scatter3d/_marker.py @@ -396,6 +396,12 @@ def colorbar(self): lts), sets the default property values to use for elements of scatter3d.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/graph_objs/scatter3d/line/_colorbar.py b/packages/python/plotly/plotly/graph_objs/scatter3d/line/_colorbar.py index b98ac4b37f..30b9d1a3fc 100644 --- a/packages/python/plotly/plotly/graph_objs/scatter3d/line/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/scatter3d/line/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1451,6 +1476,12 @@ def _prop_descriptions(self): r3d.line.colorbar.tickformatstopdefaults), sets the default property values to use for elements of scatter3d.line.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1557,6 +1588,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1711,6 +1743,12 @@ def __init__( r3d.line.colorbar.tickformatstopdefaults), sets the default property values to use for elements of scatter3d.line.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1916,6 +1954,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/scatter3d/marker/_colorbar.py b/packages/python/plotly/plotly/graph_objs/scatter3d/marker/_colorbar.py index 18209e7342..248226a158 100644 --- a/packages/python/plotly/plotly/graph_objs/scatter3d/marker/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/scatter3d/marker/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1451,6 +1476,12 @@ def _prop_descriptions(self): r3d.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of scatter3d.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1558,6 +1589,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1712,6 +1744,12 @@ def __init__( r3d.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of scatter3d.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1918,6 +1956,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/scattercarpet/_marker.py b/packages/python/plotly/plotly/graph_objs/scattercarpet/_marker.py index 81164bb9d8..1dc7cbe6ef 100644 --- a/packages/python/plotly/plotly/graph_objs/scattercarpet/_marker.py +++ b/packages/python/plotly/plotly/graph_objs/scattercarpet/_marker.py @@ -399,6 +399,12 @@ def colorbar(self): efaults), sets the default property values to use for elements of scattercarpet.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/graph_objs/scattercarpet/marker/_colorbar.py b/packages/python/plotly/plotly/graph_objs/scattercarpet/marker/_colorbar.py index 5844a363a9..a4591d346c 100644 --- a/packages/python/plotly/plotly/graph_objs/scattercarpet/marker/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/scattercarpet/marker/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1451,6 +1476,12 @@ def _prop_descriptions(self): rcarpet.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of scattercarpet.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1559,6 +1590,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1713,6 +1745,12 @@ def __init__( rcarpet.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of scattercarpet.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1920,6 +1958,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/scattergeo/_marker.py b/packages/python/plotly/plotly/graph_objs/scattergeo/_marker.py index 1daa538b20..5b2e5d3cb1 100644 --- a/packages/python/plotly/plotly/graph_objs/scattergeo/_marker.py +++ b/packages/python/plotly/plotly/graph_objs/scattergeo/_marker.py @@ -398,6 +398,12 @@ def colorbar(self): ults), sets the default property values to use for elements of scattergeo.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/graph_objs/scattergeo/marker/_colorbar.py b/packages/python/plotly/plotly/graph_objs/scattergeo/marker/_colorbar.py index 631b21ca86..b43f087bf1 100644 --- a/packages/python/plotly/plotly/graph_objs/scattergeo/marker/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/scattergeo/marker/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1451,6 +1476,12 @@ def _prop_descriptions(self): rgeo.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of scattergeo.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1559,6 +1590,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1713,6 +1745,12 @@ def __init__( rgeo.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of scattergeo.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1920,6 +1958,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/scattergl/_marker.py b/packages/python/plotly/plotly/graph_objs/scattergl/_marker.py index 480f0b3748..ef41869df3 100644 --- a/packages/python/plotly/plotly/graph_objs/scattergl/_marker.py +++ b/packages/python/plotly/plotly/graph_objs/scattergl/_marker.py @@ -397,6 +397,12 @@ def colorbar(self): lts), sets the default property values to use for elements of scattergl.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/graph_objs/scattergl/marker/_colorbar.py b/packages/python/plotly/plotly/graph_objs/scattergl/marker/_colorbar.py index 728280c655..b80c8f81e5 100644 --- a/packages/python/plotly/plotly/graph_objs/scattergl/marker/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/scattergl/marker/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1451,6 +1476,12 @@ def _prop_descriptions(self): rgl.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of scattergl.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1558,6 +1589,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1712,6 +1744,12 @@ def __init__( rgl.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of scattergl.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1918,6 +1956,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/scattermapbox/_marker.py b/packages/python/plotly/plotly/graph_objs/scattermapbox/_marker.py index f790c890c8..67af5a51dc 100644 --- a/packages/python/plotly/plotly/graph_objs/scattermapbox/_marker.py +++ b/packages/python/plotly/plotly/graph_objs/scattermapbox/_marker.py @@ -463,6 +463,12 @@ def colorbar(self): efaults), sets the default property values to use for elements of scattermapbox.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/graph_objs/scattermapbox/marker/_colorbar.py b/packages/python/plotly/plotly/graph_objs/scattermapbox/marker/_colorbar.py index 84d87935d3..bdcb2d209a 100644 --- a/packages/python/plotly/plotly/graph_objs/scattermapbox/marker/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/scattermapbox/marker/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1451,6 +1476,12 @@ def _prop_descriptions(self): rmapbox.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of scattermapbox.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1559,6 +1590,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1713,6 +1745,12 @@ def __init__( rmapbox.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of scattermapbox.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1920,6 +1958,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/scatterpolar/_marker.py b/packages/python/plotly/plotly/graph_objs/scatterpolar/_marker.py index 7113c56e48..0e865fe319 100644 --- a/packages/python/plotly/plotly/graph_objs/scatterpolar/_marker.py +++ b/packages/python/plotly/plotly/graph_objs/scatterpolar/_marker.py @@ -399,6 +399,12 @@ def colorbar(self): faults), sets the default property values to use for elements of scatterpolar.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/graph_objs/scatterpolar/marker/_colorbar.py b/packages/python/plotly/plotly/graph_objs/scatterpolar/marker/_colorbar.py index 02f2caec3c..f0d66bcf33 100644 --- a/packages/python/plotly/plotly/graph_objs/scatterpolar/marker/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/scatterpolar/marker/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1451,6 +1476,12 @@ def _prop_descriptions(self): rpolar.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of scatterpolar.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1559,6 +1590,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1713,6 +1745,12 @@ def __init__( rpolar.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of scatterpolar.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1920,6 +1958,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/scatterpolargl/_marker.py b/packages/python/plotly/plotly/graph_objs/scatterpolargl/_marker.py index e5e39e93ea..9ae3aa7d4a 100644 --- a/packages/python/plotly/plotly/graph_objs/scatterpolargl/_marker.py +++ b/packages/python/plotly/plotly/graph_objs/scatterpolargl/_marker.py @@ -397,6 +397,12 @@ def colorbar(self): defaults), sets the default property values to use for elements of scatterpolargl.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/graph_objs/scatterpolargl/marker/_colorbar.py b/packages/python/plotly/plotly/graph_objs/scatterpolargl/marker/_colorbar.py index 5cb738e3aa..a80c180011 100644 --- a/packages/python/plotly/plotly/graph_objs/scatterpolargl/marker/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/scatterpolargl/marker/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1452,6 +1477,12 @@ def _prop_descriptions(self): rpolargl.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of scatterpolargl.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1560,6 +1591,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1714,6 +1746,12 @@ def __init__( rpolargl.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of scatterpolargl.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1921,6 +1959,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/scatterternary/_marker.py b/packages/python/plotly/plotly/graph_objs/scatterternary/_marker.py index 8f9a819e1d..c18eacbb46 100644 --- a/packages/python/plotly/plotly/graph_objs/scatterternary/_marker.py +++ b/packages/python/plotly/plotly/graph_objs/scatterternary/_marker.py @@ -399,6 +399,12 @@ def colorbar(self): defaults), sets the default property values to use for elements of scatterternary.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/graph_objs/scatterternary/marker/_colorbar.py b/packages/python/plotly/plotly/graph_objs/scatterternary/marker/_colorbar.py index 62190f6d05..6fdff7c58e 100644 --- a/packages/python/plotly/plotly/graph_objs/scatterternary/marker/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/scatterternary/marker/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1452,6 +1477,12 @@ def _prop_descriptions(self): rternary.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of scatterternary.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1560,6 +1591,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1714,6 +1746,12 @@ def __init__( rternary.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of scatterternary.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1921,6 +1959,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/splom/_marker.py b/packages/python/plotly/plotly/graph_objs/splom/_marker.py index 3feaf32107..c009e821a9 100644 --- a/packages/python/plotly/plotly/graph_objs/splom/_marker.py +++ b/packages/python/plotly/plotly/graph_objs/splom/_marker.py @@ -397,6 +397,12 @@ def colorbar(self): , sets the default property values to use for elements of splom.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/graph_objs/splom/marker/_colorbar.py b/packages/python/plotly/plotly/graph_objs/splom/marker/_colorbar.py index ad08219632..c98281e3af 100644 --- a/packages/python/plotly/plotly/graph_objs/splom/marker/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/splom/marker/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1451,6 +1476,12 @@ def _prop_descriptions(self): marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of splom.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1557,6 +1588,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1711,6 +1743,12 @@ def __init__( marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of splom.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1916,6 +1954,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/streamtube/_colorbar.py b/packages/python/plotly/plotly/graph_objs/streamtube/_colorbar.py index 6697391680..73aacefa59 100644 --- a/packages/python/plotly/plotly/graph_objs/streamtube/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/streamtube/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -847,6 +848,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1449,6 +1474,12 @@ def _prop_descriptions(self): tube.colorbar.tickformatstopdefaults), sets the default property values to use for elements of streamtube.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1555,6 +1586,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1709,6 +1741,12 @@ def __init__( tube.colorbar.tickformatstopdefaults), sets the default property values to use for elements of streamtube.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1914,6 +1952,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/sunburst/_marker.py b/packages/python/plotly/plotly/graph_objs/sunburst/_marker.py index 324bee7859..7b243d7d71 100644 --- a/packages/python/plotly/plotly/graph_objs/sunburst/_marker.py +++ b/packages/python/plotly/plotly/graph_objs/sunburst/_marker.py @@ -320,6 +320,12 @@ def colorbar(self): ts), sets the default property values to use for elements of sunburst.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/graph_objs/sunburst/marker/_colorbar.py b/packages/python/plotly/plotly/graph_objs/sunburst/marker/_colorbar.py index bed37b9677..b6f29df6d1 100644 --- a/packages/python/plotly/plotly/graph_objs/sunburst/marker/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/sunburst/marker/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1451,6 +1476,12 @@ def _prop_descriptions(self): st.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of sunburst.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1557,6 +1588,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1711,6 +1743,12 @@ def __init__( st.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of sunburst.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1916,6 +1954,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/surface/_colorbar.py b/packages/python/plotly/plotly/graph_objs/surface/_colorbar.py index bbf423d66d..fac16099e1 100644 --- a/packages/python/plotly/plotly/graph_objs/surface/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/surface/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1450,6 +1475,12 @@ def _prop_descriptions(self): e.colorbar.tickformatstopdefaults), sets the default property values to use for elements of surface.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1556,6 +1587,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1710,6 +1742,12 @@ def __init__( e.colorbar.tickformatstopdefaults), sets the default property values to use for elements of surface.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1915,6 +1953,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/treemap/_marker.py b/packages/python/plotly/plotly/graph_objs/treemap/_marker.py index 379dd7e03b..067267bd9e 100644 --- a/packages/python/plotly/plotly/graph_objs/treemap/_marker.py +++ b/packages/python/plotly/plotly/graph_objs/treemap/_marker.py @@ -322,6 +322,12 @@ def colorbar(self): s), sets the default property values to use for elements of treemap.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/graph_objs/treemap/marker/_colorbar.py b/packages/python/plotly/plotly/graph_objs/treemap/marker/_colorbar.py index e75a5b3a15..8cc9b487dd 100644 --- a/packages/python/plotly/plotly/graph_objs/treemap/marker/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/treemap/marker/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1451,6 +1476,12 @@ def _prop_descriptions(self): p.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of treemap.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1557,6 +1588,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1711,6 +1743,12 @@ def __init__( p.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of treemap.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1916,6 +1954,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/graph_objs/volume/_colorbar.py b/packages/python/plotly/plotly/graph_objs/volume/_colorbar.py index 5de71a1a54..bca9a8d345 100644 --- a/packages/python/plotly/plotly/graph_objs/volume/_colorbar.py +++ b/packages/python/plotly/plotly/graph_objs/volume/_colorbar.py @@ -34,6 +34,7 @@ class ColorBar(_BaseTraceHierarchyType): "tickformat", "tickformatstopdefaults", "tickformatstops", + "ticklabeloverflow", "ticklabelposition", "ticklen", "tickmode", @@ -848,6 +849,30 @@ def tickformatstopdefaults(self): def tickformatstopdefaults(self, val): self["tickformatstopdefaults"] = val + # ticklabeloverflow + # ----------------- + @property + def ticklabeloverflow(self): + """ + Determines how we handle tick labels that would overflow either + the graph div or the domain of the axis. The default value for + inside tick labels is *hide past domain*. In other cases the + default is *hide past div*. + + The 'ticklabeloverflow' property is an enumeration that may be specified as: + - One of the following enumeration values: + ['allow', 'hide past div', 'hide past domain'] + + Returns + ------- + Any + """ + return self["ticklabeloverflow"] + + @ticklabeloverflow.setter + def ticklabeloverflow(self, val): + self["ticklabeloverflow"] = val + # ticklabelposition # ----------------- @property @@ -1450,6 +1475,12 @@ def _prop_descriptions(self): .colorbar.tickformatstopdefaults), sets the default property values to use for elements of volume.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1556,6 +1587,7 @@ def __init__( tickformat=None, tickformatstops=None, tickformatstopdefaults=None, + ticklabeloverflow=None, ticklabelposition=None, ticklen=None, tickmode=None, @@ -1710,6 +1742,12 @@ def __init__( .colorbar.tickformatstopdefaults), sets the default property values to use for elements of volume.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of the + axis. The default value for inside tick labels is *hide + past domain*. In other cases the default is *hide past + div*. ticklabelposition Determines where tick labels are drawn. ticklen @@ -1915,6 +1953,10 @@ def __init__( _v = tickformatstopdefaults if tickformatstopdefaults is not None else _v if _v is not None: self["tickformatstopdefaults"] = _v + _v = arg.pop("ticklabeloverflow", None) + _v = ticklabeloverflow if ticklabeloverflow is not None else _v + if _v is not None: + self["ticklabeloverflow"] = _v _v = arg.pop("ticklabelposition", None) _v = ticklabelposition if ticklabelposition is not None else _v if _v is not None: diff --git a/packages/python/plotly/plotly/offline/_plotlyjs_version.py b/packages/python/plotly/plotly/offline/_plotlyjs_version.py index 8637a60d31..a412c5d656 100644 --- a/packages/python/plotly/plotly/offline/_plotlyjs_version.py +++ b/packages/python/plotly/plotly/offline/_plotlyjs_version.py @@ -1,3 +1,3 @@ # DO NOT EDIT # This file is generated by the updatebundle setup.py command -__plotlyjs_version__ = "1.58.4" +__plotlyjs_version__ = "2.0.0-rc.2" diff --git a/packages/python/plotly/plotly/package_data/plotly.min.js b/packages/python/plotly/plotly/package_data/plotly.min.js index 060cc2fe7e..696c274979 100644 --- a/packages/python/plotly/plotly/package_data/plotly.min.js +++ b/packages/python/plotly/plotly/package_data/plotly.min.js @@ -1,61 +1,58 @@ /** -* plotly.js v1.58.4 -* Copyright 2012-2020, Plotly, Inc. +* plotly.js v2.0.0-rc.2 +* Copyright 2012-2021, Plotly, Inc. * All rights reserved. * Licensed under the MIT license */ -!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Plotly=t()}}((function(){return function t(e,r,n){function i(o,s){if(!r[o]){if(!e[o]){var l="function"==typeof require&&require;if(!s&&l)return l(o,!0);if(a)return a(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var u=r[o]={exports:{}};e[o][0].call(u.exports,(function(t){return i(e[o][1][t]||t)}),u,u.exports,t,e,r,n)}return r[o].exports}for(var a="function"==typeof require&&require,o=0;o:not(.watermark)":"opacity:0;-webkit-transition:opacity 0.3s ease 0s;-moz-transition:opacity 0.3s ease 0s;-ms-transition:opacity 0.3s ease 0s;-o-transition:opacity 0.3s ease 0s;transition:opacity 0.3s ease 0s;","X:hover .modebar--hover .modebar-group":"opacity:1;","X .modebar-group":"float:left;display:inline-block;box-sizing:border-box;padding-left:8px;position:relative;vertical-align:middle;white-space:nowrap;","X .modebar-btn":"position:relative;font-size:16px;padding:3px 4px;height:22px;cursor:pointer;line-height:normal;box-sizing:border-box;","X .modebar-btn svg":"position:relative;top:2px;","X .modebar.vertical":"display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-end;max-height:100%;","X .modebar.vertical svg":"top:-1px;","X .modebar.vertical .modebar-group":"display:block;float:none;padding-left:0px;padding-bottom:8px;","X .modebar.vertical .modebar-group .modebar-btn":"display:block;text-align:center;","X [data-title]:before,X [data-title]:after":"position:absolute;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);display:none;opacity:0;z-index:1001;pointer-events:none;top:110%;right:50%;","X [data-title]:hover:before,X [data-title]:hover:after":"display:block;opacity:1;","X [data-title]:before":"content:'';position:absolute;background:transparent;border:6px solid transparent;z-index:1002;margin-top:-12px;border-bottom-color:#69738a;margin-right:-6px;","X [data-title]:after":"content:attr(data-title);background:#69738a;color:white;padding:8px 10px;font-size:12px;line-height:12px;white-space:nowrap;margin-right:-18px;border-radius:2px;","X .vertical [data-title]:before,X .vertical [data-title]:after":"top:0%;right:200%;","X .vertical [data-title]:before":"border:6px solid transparent;border-left-color:#69738a;margin-top:8px;margin-right:-30px;","X .select-outline":"fill:none;stroke-width:1;shape-rendering:crispEdges;","X .select-outline-1":"stroke:white;","X .select-outline-2":"stroke:black;stroke-dasharray:2px 2px;",Y:"font-family:'Open Sans', verdana, arial, sans-serif;position:fixed;top:50px;right:20px;z-index:10000;font-size:10pt;max-width:180px;","Y p":"margin:0;","Y .notifier-note":"min-width:180px;max-width:250px;border:1px solid #fff;z-index:3000;margin:0;background-color:#8c97af;background-color:rgba(140,151,175,0.9);color:#fff;padding:10px;overflow-wrap:break-word;word-wrap:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;","Y .notifier-close":"color:#fff;opacity:0.8;float:right;padding:0 5px;background:none;border:none;font-size:20px;font-weight:bold;line-height:20px;","Y .notifier-close:hover":"color:#444;text-decoration:none;cursor:pointer;"};for(var a in i){var o=a.replace(/^,/," ,").replace(/X/g,".js-plotly-plot .plotly").replace(/Y/g,".plotly-notifier");n.addStyleRule(o,i[a])}},{"../src/lib":778}],2:[function(t,e,r){"use strict";e.exports=t("../src/transforms/aggregate")},{"../src/transforms/aggregate":1365}],3:[function(t,e,r){"use strict";e.exports=t("../src/traces/bar")},{"../src/traces/bar":929}],4:[function(t,e,r){"use strict";e.exports=t("../src/traces/barpolar")},{"../src/traces/barpolar":942}],5:[function(t,e,r){"use strict";e.exports=t("../src/traces/box")},{"../src/traces/box":952}],6:[function(t,e,r){"use strict";e.exports=t("../src/components/calendars")},{"../src/components/calendars":641}],7:[function(t,e,r){"use strict";e.exports=t("../src/traces/candlestick")},{"../src/traces/candlestick":961}],8:[function(t,e,r){"use strict";e.exports=t("../src/traces/carpet")},{"../src/traces/carpet":980}],9:[function(t,e,r){"use strict";e.exports=t("../src/traces/choropleth")},{"../src/traces/choropleth":994}],10:[function(t,e,r){"use strict";e.exports=t("../src/traces/choroplethmapbox")},{"../src/traces/choroplethmapbox":1001}],11:[function(t,e,r){"use strict";e.exports=t("../src/traces/cone")},{"../src/traces/cone":1007}],12:[function(t,e,r){"use strict";e.exports=t("../src/traces/contour")},{"../src/traces/contour":1022}],13:[function(t,e,r){"use strict";e.exports=t("../src/traces/contourcarpet")},{"../src/traces/contourcarpet":1033}],14:[function(t,e,r){"use strict";e.exports=t("../src/core")},{"../src/core":755}],15:[function(t,e,r){"use strict";e.exports=t("../src/traces/densitymapbox")},{"../src/traces/densitymapbox":1041}],16:[function(t,e,r){"use strict";e.exports=t("../src/transforms/filter")},{"../src/transforms/filter":1366}],17:[function(t,e,r){"use strict";e.exports=t("../src/traces/funnel")},{"../src/traces/funnel":1051}],18:[function(t,e,r){"use strict";e.exports=t("../src/traces/funnelarea")},{"../src/traces/funnelarea":1060}],19:[function(t,e,r){"use strict";e.exports=t("../src/transforms/groupby")},{"../src/transforms/groupby":1367}],20:[function(t,e,r){"use strict";e.exports=t("../src/traces/heatmap")},{"../src/traces/heatmap":1073}],21:[function(t,e,r){"use strict";e.exports=t("../src/traces/heatmapgl")},{"../src/traces/heatmapgl":1083}],22:[function(t,e,r){"use strict";e.exports=t("../src/traces/histogram")},{"../src/traces/histogram":1095}],23:[function(t,e,r){"use strict";e.exports=t("../src/traces/histogram2d")},{"../src/traces/histogram2d":1101}],24:[function(t,e,r){"use strict";e.exports=t("../src/traces/histogram2dcontour")},{"../src/traces/histogram2dcontour":1105}],25:[function(t,e,r){"use strict";e.exports=t("../src/traces/image")},{"../src/traces/image":1113}],26:[function(t,e,r){"use strict";var n=t("./core");n.register([t("./bar"),t("./box"),t("./heatmap"),t("./histogram"),t("./histogram2d"),t("./histogram2dcontour"),t("./contour"),t("./scatterternary"),t("./violin"),t("./funnel"),t("./waterfall"),t("./image"),t("./pie"),t("./sunburst"),t("./treemap"),t("./funnelarea"),t("./scatter3d"),t("./surface"),t("./isosurface"),t("./volume"),t("./mesh3d"),t("./cone"),t("./streamtube"),t("./scattergeo"),t("./choropleth"),t("./scattergl"),t("./splom"),t("./pointcloud"),t("./heatmapgl"),t("./parcoords"),t("./parcats"),t("./scattermapbox"),t("./choroplethmapbox"),t("./densitymapbox"),t("./sankey"),t("./indicator"),t("./table"),t("./carpet"),t("./scattercarpet"),t("./contourcarpet"),t("./ohlc"),t("./candlestick"),t("./scatterpolar"),t("./scatterpolargl"),t("./barpolar")]),n.register([t("./aggregate"),t("./filter"),t("./groupby"),t("./sort")]),n.register([t("./calendars")]),e.exports=n},{"./aggregate":2,"./bar":3,"./barpolar":4,"./box":5,"./calendars":6,"./candlestick":7,"./carpet":8,"./choropleth":9,"./choroplethmapbox":10,"./cone":11,"./contour":12,"./contourcarpet":13,"./core":14,"./densitymapbox":15,"./filter":16,"./funnel":17,"./funnelarea":18,"./groupby":19,"./heatmap":20,"./heatmapgl":21,"./histogram":22,"./histogram2d":23,"./histogram2dcontour":24,"./image":25,"./indicator":27,"./isosurface":28,"./mesh3d":29,"./ohlc":30,"./parcats":31,"./parcoords":32,"./pie":33,"./pointcloud":34,"./sankey":35,"./scatter3d":36,"./scattercarpet":37,"./scattergeo":38,"./scattergl":39,"./scattermapbox":40,"./scatterpolar":41,"./scatterpolargl":42,"./scatterternary":43,"./sort":44,"./splom":45,"./streamtube":46,"./sunburst":47,"./surface":48,"./table":49,"./treemap":50,"./violin":51,"./volume":52,"./waterfall":53}],27:[function(t,e,r){"use strict";e.exports=t("../src/traces/indicator")},{"../src/traces/indicator":1121}],28:[function(t,e,r){"use strict";e.exports=t("../src/traces/isosurface")},{"../src/traces/isosurface":1127}],29:[function(t,e,r){"use strict";e.exports=t("../src/traces/mesh3d")},{"../src/traces/mesh3d":1132}],30:[function(t,e,r){"use strict";e.exports=t("../src/traces/ohlc")},{"../src/traces/ohlc":1137}],31:[function(t,e,r){"use strict";e.exports=t("../src/traces/parcats")},{"../src/traces/parcats":1146}],32:[function(t,e,r){"use strict";e.exports=t("../src/traces/parcoords")},{"../src/traces/parcoords":1156}],33:[function(t,e,r){"use strict";e.exports=t("../src/traces/pie")},{"../src/traces/pie":1167}],34:[function(t,e,r){"use strict";e.exports=t("../src/traces/pointcloud")},{"../src/traces/pointcloud":1176}],35:[function(t,e,r){"use strict";e.exports=t("../src/traces/sankey")},{"../src/traces/sankey":1182}],36:[function(t,e,r){"use strict";e.exports=t("../src/traces/scatter3d")},{"../src/traces/scatter3d":1220}],37:[function(t,e,r){"use strict";e.exports=t("../src/traces/scattercarpet")},{"../src/traces/scattercarpet":1227}],38:[function(t,e,r){"use strict";e.exports=t("../src/traces/scattergeo")},{"../src/traces/scattergeo":1235}],39:[function(t,e,r){"use strict";e.exports=t("../src/traces/scattergl")},{"../src/traces/scattergl":1248}],40:[function(t,e,r){"use strict";e.exports=t("../src/traces/scattermapbox")},{"../src/traces/scattermapbox":1258}],41:[function(t,e,r){"use strict";e.exports=t("../src/traces/scatterpolar")},{"../src/traces/scatterpolar":1266}],42:[function(t,e,r){"use strict";e.exports=t("../src/traces/scatterpolargl")},{"../src/traces/scatterpolargl":1273}],43:[function(t,e,r){"use strict";e.exports=t("../src/traces/scatterternary")},{"../src/traces/scatterternary":1281}],44:[function(t,e,r){"use strict";e.exports=t("../src/transforms/sort")},{"../src/transforms/sort":1369}],45:[function(t,e,r){"use strict";e.exports=t("../src/traces/splom")},{"../src/traces/splom":1290}],46:[function(t,e,r){"use strict";e.exports=t("../src/traces/streamtube")},{"../src/traces/streamtube":1298}],47:[function(t,e,r){"use strict";e.exports=t("../src/traces/sunburst")},{"../src/traces/sunburst":1306}],48:[function(t,e,r){"use strict";e.exports=t("../src/traces/surface")},{"../src/traces/surface":1315}],49:[function(t,e,r){"use strict";e.exports=t("../src/traces/table")},{"../src/traces/table":1323}],50:[function(t,e,r){"use strict";e.exports=t("../src/traces/treemap")},{"../src/traces/treemap":1332}],51:[function(t,e,r){"use strict";e.exports=t("../src/traces/violin")},{"../src/traces/violin":1344}],52:[function(t,e,r){"use strict";e.exports=t("../src/traces/volume")},{"../src/traces/volume":1352}],53:[function(t,e,r){"use strict";e.exports=t("../src/traces/waterfall")},{"../src/traces/waterfall":1360}],54:[function(t,e,r){"use strict";e.exports=function(t){var e=(t=t||{}).eye||[0,0,1],r=t.center||[0,0,0],s=t.up||[0,1,0],l=t.distanceLimits||[0,1/0],c=t.mode||"turntable",u=n(),f=i(),h=a();return u.setDistanceLimits(l[0],l[1]),u.lookAt(0,e,r,s),f.setDistanceLimits(l[0],l[1]),f.lookAt(0,e,r,s),h.setDistanceLimits(l[0],l[1]),h.lookAt(0,e,r,s),new o({turntable:u,orbit:f,matrix:h},c)};var n=t("turntable-camera-controller"),i=t("orbit-camera-controller"),a=t("matrix-camera-controller");function o(t,e){this._controllerNames=Object.keys(t),this._controllerList=this._controllerNames.map((function(e){return t[e]})),this._mode=e,this._active=t[e],this._active||(this._mode="turntable",this._active=t.turntable),this.modes=this._controllerNames,this.computedMatrix=this._active.computedMatrix,this.computedEye=this._active.computedEye,this.computedUp=this._active.computedUp,this.computedCenter=this._active.computedCenter,this.computedRadius=this._active.computedRadius}var s=o.prototype;[["flush",1],["idle",1],["lookAt",4],["rotate",4],["pan",4],["translate",4],["setMatrix",2],["setDistanceLimits",2],["setDistance",2]].forEach((function(t){for(var e=t[0],r=[],n=0;n1||i>1)}function A(t,e,r){return t.sort(E),t.forEach((function(n,i){var a,o,s=0;if(H(n,r)&&M(n))n.circularPathData.verticalBuffer=s+n.width/2;else{for(var l=0;lo.source.column)){var c=t[l].circularPathData.verticalBuffer+t[l].width/2+e;s=c>s?c:s}n.circularPathData.verticalBuffer=s+n.width/2}})),t}function S(t,r,i,a){var o=e.min(t.links,(function(t){return t.source.y0}));t.links.forEach((function(t){t.circular&&(t.circularPathData={})})),A(t.links.filter((function(t){return"top"==t.circularLinkType})),r,a),A(t.links.filter((function(t){return"bottom"==t.circularLinkType})),r,a),t.links.forEach((function(e){if(e.circular){if(e.circularPathData.arcRadius=e.width+10,e.circularPathData.leftNodeBuffer=5,e.circularPathData.rightNodeBuffer=5,e.circularPathData.sourceWidth=e.source.x1-e.source.x0,e.circularPathData.sourceX=e.source.x0+e.circularPathData.sourceWidth,e.circularPathData.targetX=e.target.x0,e.circularPathData.sourceY=e.y0,e.circularPathData.targetY=e.y1,H(e,a)&&M(e))e.circularPathData.leftSmallArcRadius=10+e.width/2,e.circularPathData.leftLargeArcRadius=10+e.width/2,e.circularPathData.rightSmallArcRadius=10+e.width/2,e.circularPathData.rightLargeArcRadius=10+e.width/2,"bottom"==e.circularLinkType?(e.circularPathData.verticalFullExtent=e.source.y1+25+e.circularPathData.verticalBuffer,e.circularPathData.verticalLeftInnerExtent=e.circularPathData.verticalFullExtent-e.circularPathData.leftLargeArcRadius,e.circularPathData.verticalRightInnerExtent=e.circularPathData.verticalFullExtent-e.circularPathData.rightLargeArcRadius):(e.circularPathData.verticalFullExtent=e.source.y0-25-e.circularPathData.verticalBuffer,e.circularPathData.verticalLeftInnerExtent=e.circularPathData.verticalFullExtent+e.circularPathData.leftLargeArcRadius,e.circularPathData.verticalRightInnerExtent=e.circularPathData.verticalFullExtent+e.circularPathData.rightLargeArcRadius);else{var s=e.source.column,l=e.circularLinkType,c=t.links.filter((function(t){return t.source.column==s&&t.circularLinkType==l}));"bottom"==e.circularLinkType?c.sort(L):c.sort(C);var u=0;c.forEach((function(t,n){t.circularLinkID==e.circularLinkID&&(e.circularPathData.leftSmallArcRadius=10+e.width/2+u,e.circularPathData.leftLargeArcRadius=10+e.width/2+n*r+u),u+=t.width})),s=e.target.column,c=t.links.filter((function(t){return t.target.column==s&&t.circularLinkType==l})),"bottom"==e.circularLinkType?c.sort(P):c.sort(I),u=0,c.forEach((function(t,n){t.circularLinkID==e.circularLinkID&&(e.circularPathData.rightSmallArcRadius=10+e.width/2+u,e.circularPathData.rightLargeArcRadius=10+e.width/2+n*r+u),u+=t.width})),"bottom"==e.circularLinkType?(e.circularPathData.verticalFullExtent=Math.max(i,e.source.y1,e.target.y1)+25+e.circularPathData.verticalBuffer,e.circularPathData.verticalLeftInnerExtent=e.circularPathData.verticalFullExtent-e.circularPathData.leftLargeArcRadius,e.circularPathData.verticalRightInnerExtent=e.circularPathData.verticalFullExtent-e.circularPathData.rightLargeArcRadius):(e.circularPathData.verticalFullExtent=o-25-e.circularPathData.verticalBuffer,e.circularPathData.verticalLeftInnerExtent=e.circularPathData.verticalFullExtent+e.circularPathData.leftLargeArcRadius,e.circularPathData.verticalRightInnerExtent=e.circularPathData.verticalFullExtent+e.circularPathData.rightLargeArcRadius)}e.circularPathData.leftInnerExtent=e.circularPathData.sourceX+e.circularPathData.leftNodeBuffer,e.circularPathData.rightInnerExtent=e.circularPathData.targetX-e.circularPathData.rightNodeBuffer,e.circularPathData.leftFullExtent=e.circularPathData.sourceX+e.circularPathData.leftLargeArcRadius+e.circularPathData.leftNodeBuffer,e.circularPathData.rightFullExtent=e.circularPathData.targetX-e.circularPathData.rightLargeArcRadius-e.circularPathData.rightNodeBuffer}if(e.circular)e.path=function(t){var e="";e="top"==t.circularLinkType?"M"+t.circularPathData.sourceX+" "+t.circularPathData.sourceY+" L"+t.circularPathData.leftInnerExtent+" "+t.circularPathData.sourceY+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftSmallArcRadius+" 0 0 0 "+t.circularPathData.leftFullExtent+" "+(t.circularPathData.sourceY-t.circularPathData.leftSmallArcRadius)+" L"+t.circularPathData.leftFullExtent+" "+t.circularPathData.verticalLeftInnerExtent+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftLargeArcRadius+" 0 0 0 "+t.circularPathData.leftInnerExtent+" "+t.circularPathData.verticalFullExtent+" L"+t.circularPathData.rightInnerExtent+" "+t.circularPathData.verticalFullExtent+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightLargeArcRadius+" 0 0 0 "+t.circularPathData.rightFullExtent+" "+t.circularPathData.verticalRightInnerExtent+" L"+t.circularPathData.rightFullExtent+" "+(t.circularPathData.targetY-t.circularPathData.rightSmallArcRadius)+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightSmallArcRadius+" 0 0 0 "+t.circularPathData.rightInnerExtent+" "+t.circularPathData.targetY+" L"+t.circularPathData.targetX+" "+t.circularPathData.targetY:"M"+t.circularPathData.sourceX+" "+t.circularPathData.sourceY+" L"+t.circularPathData.leftInnerExtent+" "+t.circularPathData.sourceY+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftSmallArcRadius+" 0 0 1 "+t.circularPathData.leftFullExtent+" "+(t.circularPathData.sourceY+t.circularPathData.leftSmallArcRadius)+" L"+t.circularPathData.leftFullExtent+" "+t.circularPathData.verticalLeftInnerExtent+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftLargeArcRadius+" 0 0 1 "+t.circularPathData.leftInnerExtent+" "+t.circularPathData.verticalFullExtent+" L"+t.circularPathData.rightInnerExtent+" "+t.circularPathData.verticalFullExtent+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightLargeArcRadius+" 0 0 1 "+t.circularPathData.rightFullExtent+" "+t.circularPathData.verticalRightInnerExtent+" L"+t.circularPathData.rightFullExtent+" "+(t.circularPathData.targetY+t.circularPathData.rightSmallArcRadius)+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightSmallArcRadius+" 0 0 1 "+t.circularPathData.rightInnerExtent+" "+t.circularPathData.targetY+" L"+t.circularPathData.targetX+" "+t.circularPathData.targetY;return e}(e);else{var f=n.linkHorizontal().source((function(t){return[t.source.x0+(t.source.x1-t.source.x0),t.y0]})).target((function(t){return[t.target.x0,t.y1]}));e.path=f(e)}}))}function E(t,e){return z(t)==z(e)?"bottom"==t.circularLinkType?L(t,e):C(t,e):z(e)-z(t)}function C(t,e){return t.y0-e.y0}function L(t,e){return e.y0-t.y0}function I(t,e){return t.y1-e.y1}function P(t,e){return e.y1-t.y1}function z(t){return t.target.column-t.source.column}function O(t){return t.target.x0-t.source.x1}function D(t,e){var r=T(t),n=O(e)/Math.tan(r);return"up"==q(t)?t.y1+n:t.y1-n}function R(t,e){var r=T(t),n=O(e)/Math.tan(r);return"up"==q(t)?t.y1-n:t.y1+n}function F(t,e,r,n){t.links.forEach((function(i){if(!i.circular&&i.target.column-i.source.column>1){var a=i.source.column+1,o=i.target.column-1,s=1,l=o-a+1;for(s=1;a<=o;a++,s++)t.nodes.forEach((function(o){if(o.column==a){var c,u=s/(l+1),f=Math.pow(1-u,3),h=3*u*Math.pow(1-u,2),p=3*Math.pow(u,2)*(1-u),d=Math.pow(u,3),g=f*i.y0+h*i.y0+p*i.y1+d*i.y1,m=g-i.width/2,v=g+i.width/2;m>o.y0&&mo.y0&&vo.y1)&&(c=v-o.y0+10,o=N(o,c,e,r),t.nodes.forEach((function(t){b(t,n)!=b(o,n)&&t.column==o.column&&t.y0o.y1&&N(t,c,e,r)})))}}))}}))}function B(t,e){return t.y0>e.y0&&t.y0e.y0&&t.y1e.y1)}function N(t,e,r,n){return t.y0+e>=r&&t.y1+e<=n&&(t.y0=t.y0+e,t.y1=t.y1+e,t.targetLinks.forEach((function(t){t.y1=t.y1+e})),t.sourceLinks.forEach((function(t){t.y0=t.y0+e}))),t}function j(t,e,r,n){t.nodes.forEach((function(i){n&&i.y+(i.y1-i.y0)>e&&(i.y=i.y-(i.y+(i.y1-i.y0)-e));var a=t.links.filter((function(t){return b(t.source,r)==b(i,r)})),o=a.length;o>1&&a.sort((function(t,e){if(!t.circular&&!e.circular){if(t.target.column==e.target.column)return t.y1-e.y1;if(!V(t,e))return t.y1-e.y1;if(t.target.column>e.target.column){var r=R(e,t);return t.y1-r}if(e.target.column>t.target.column)return R(t,e)-e.y1}return t.circular&&!e.circular?"top"==t.circularLinkType?-1:1:e.circular&&!t.circular?"top"==e.circularLinkType?1:-1:t.circular&&e.circular?t.circularLinkType===e.circularLinkType&&"top"==t.circularLinkType?t.target.column===e.target.column?t.target.y1-e.target.y1:e.target.column-t.target.column:t.circularLinkType===e.circularLinkType&&"bottom"==t.circularLinkType?t.target.column===e.target.column?e.target.y1-t.target.y1:t.target.column-e.target.column:"top"==t.circularLinkType?-1:1:void 0}));var s=i.y0;a.forEach((function(t){t.y0=s+t.width/2,s+=t.width})),a.forEach((function(t,e){if("bottom"==t.circularLinkType){for(var r=e+1,n=0;r1&&n.sort((function(t,e){if(!t.circular&&!e.circular){if(t.source.column==e.source.column)return t.y0-e.y0;if(!V(t,e))return t.y0-e.y0;if(e.source.column0?"up":"down"}function H(t,e){return b(t.source,e)==b(t.target,e)}function G(t,r,n){var i=t.nodes,a=t.links,o=!1,s=!1;if(a.forEach((function(t){"top"==t.circularLinkType?o=!0:"bottom"==t.circularLinkType&&(s=!0)})),0==o||0==s){var l=e.min(i,(function(t){return t.y0})),c=(n-r)/(e.max(i,(function(t){return t.y1}))-l);i.forEach((function(t){var e=(t.y1-t.y0)*c;t.y0=(t.y0-l)*c,t.y1=t.y0+e})),a.forEach((function(t){t.y0=(t.y0-l)*c,t.y1=(t.y1-l)*c,t.width=t.width*c}))}}t.sankeyCircular=function(){var t,n,i=0,a=0,b=1,T=1,M=24,A=m,E=o,C=v,L=y,I=32,P=2,z=null;function O(){var t={nodes:C.apply(null,arguments),links:L.apply(null,arguments)};D(t),_(t,A,z),R(t),B(t),w(t,A),N(t,I,A),V(t);for(var e=4,r=0;r0?r+25+10:r,bottom:n=n>0?n+25+10:n,left:a=a>0?a+25+10:a,right:i=i>0?i+25+10:i}}(o),f=function(t,r){var n=e.max(t.nodes,(function(t){return t.column})),o=b-i,s=T-a,l=o/(o+r.right+r.left),c=s/(s+r.top+r.bottom);return i=i*l+r.left,b=0==r.right?b:b*l,a=a*c+r.top,T*=c,t.nodes.forEach((function(t){t.x0=i+t.column*((b-i-M)/n),t.x1=t.x0+M})),c}(o,u);l*=f,o.links.forEach((function(t){t.width=t.value*l})),c.forEach((function(t){var e=t.length;t.forEach((function(t,n){t.depth==c.length-1&&1==e||0==t.depth&&1==e?(t.y0=T/2-t.value*l,t.y1=t.y0+t.value*l):t.partOfCycle?0==k(t,r)?(t.y0=T/2+n,t.y1=t.y0+t.value*l):"top"==t.circularLinkType?(t.y0=a+n,t.y1=t.y0+t.value*l):(t.y0=T-t.value*l-n,t.y1=t.y0+t.value*l):0==u.top||0==u.bottom?(t.y0=(T-a)/e*n,t.y1=t.y0+t.value*l):(t.y0=(T-a)/2-e/2+n,t.y1=t.y0+t.value*l)}))}))}(l),y();for(var u=1,m=s;m>0;--m)v(u*=.99,l),y();function v(t,r){var n=c.length;c.forEach((function(i){var a=i.length,o=i[0].depth;i.forEach((function(i){var s;if(i.sourceLinks.length||i.targetLinks.length)if(i.partOfCycle&&k(i,r)>0);else if(0==o&&1==a)s=i.y1-i.y0,i.y0=T/2-s/2,i.y1=T/2+s/2;else if(o==n-1&&1==a)s=i.y1-i.y0,i.y0=T/2-s/2,i.y1=T/2+s/2;else{var l=e.mean(i.sourceLinks,g),c=e.mean(i.targetLinks,d),u=((l&&c?(l+c)/2:l||c)-p(i))*t;i.y0+=u,i.y1+=u}}))}))}function y(){c.forEach((function(e){var r,n,i,o=a,s=e.length;for(e.sort(f),i=0;i0&&(r.y0+=n,r.y1+=n),o=r.y1+t;if((n=o-t-T)>0)for(o=r.y0-=n,r.y1-=n,i=s-2;i>=0;--i)(n=(r=e[i]).y1+t-o)>0&&(r.y0-=n,r.y1-=n),o=r.y0}))}}function V(t){t.nodes.forEach((function(t){t.sourceLinks.sort(u),t.targetLinks.sort(c)})),t.nodes.forEach((function(t){var e=t.y0,r=e,n=t.y1,i=n;t.sourceLinks.forEach((function(t){t.circular?(t.y0=n-t.width/2,n-=t.width):(t.y0=e+t.width/2,e+=t.width)})),t.targetLinks.forEach((function(t){t.circular?(t.y1=i-t.width/2,i-=t.width):(t.y1=r+t.width/2,r+=t.width)}))}))}return O.nodeId=function(t){return arguments.length?(A="function"==typeof t?t:s(t),O):A},O.nodeAlign=function(t){return arguments.length?(E="function"==typeof t?t:s(t),O):E},O.nodeWidth=function(t){return arguments.length?(M=+t,O):M},O.nodePadding=function(e){return arguments.length?(t=+e,O):t},O.nodes=function(t){return arguments.length?(C="function"==typeof t?t:s(t),O):C},O.links=function(t){return arguments.length?(L="function"==typeof t?t:s(t),O):L},O.size=function(t){return arguments.length?(i=a=0,b=+t[0],T=+t[1],O):[b-i,T-a]},O.extent=function(t){return arguments.length?(i=+t[0][0],b=+t[1][0],a=+t[0][1],T=+t[1][1],O):[[i,a],[b,T]]},O.iterations=function(t){return arguments.length?(I=+t,O):I},O.circularLinkGap=function(t){return arguments.length?(P=+t,O):P},O.nodePaddingRatio=function(t){return arguments.length?(n=+t,O):n},O.sortNodes=function(t){return arguments.length?(z=t,O):z},O.update=function(t){return w(t,A),V(t),t.links.forEach((function(t){t.circular&&(t.circularLinkType=t.y0+t.y1a&&(b=a);var o=e.min(i,(function(t){return(y-n-(t.length-1)*b)/e.sum(t,u)}));i.forEach((function(t){t.forEach((function(t,e){t.y1=(t.y0=e)+t.value*o}))})),t.links.forEach((function(t){t.width=t.value*o}))}(),d();for(var a=1,o=M;o>0;--o)l(a*=.99),d(),s(a),d();function s(t){i.forEach((function(r){r.forEach((function(r){if(r.targetLinks.length){var n=(e.sum(r.targetLinks,h)/e.sum(r.targetLinks,u)-f(r))*t;r.y0+=n,r.y1+=n}}))}))}function l(t){i.slice().reverse().forEach((function(r){r.forEach((function(r){if(r.sourceLinks.length){var n=(e.sum(r.sourceLinks,p)/e.sum(r.sourceLinks,u)-f(r))*t;r.y0+=n,r.y1+=n}}))}))}function d(){i.forEach((function(t){var e,r,i,a=n,o=t.length;for(t.sort(c),i=0;i0&&(e.y0+=r,e.y1+=r),a=e.y1+b;if((r=a-b-y)>0)for(a=e.y0-=r,e.y1-=r,i=o-2;i>=0;--i)(r=(e=t[i]).y1+b-a)>0&&(e.y0-=r,e.y1-=r),a=e.y0}))}}function I(t){t.nodes.forEach((function(t){t.sourceLinks.sort(l),t.targetLinks.sort(s)})),t.nodes.forEach((function(t){var e=t.y0,r=e;t.sourceLinks.forEach((function(t){t.y0=e+t.width/2,e+=t.width})),t.targetLinks.forEach((function(t){t.y1=r+t.width/2,r+=t.width}))}))}return A.update=function(t){return I(t),t},A.nodeId=function(t){return arguments.length?(_="function"==typeof t?t:o(t),A):_},A.nodeAlign=function(t){return arguments.length?(w="function"==typeof t?t:o(t),A):w},A.nodeWidth=function(t){return arguments.length?(x=+t,A):x},A.nodePadding=function(t){return arguments.length?(b=+t,A):b},A.nodes=function(t){return arguments.length?(T="function"==typeof t?t:o(t),A):T},A.links=function(t){return arguments.length?(k="function"==typeof t?t:o(t),A):k},A.size=function(e){return arguments.length?(t=n=0,i=+e[0],y=+e[1],A):[i-t,y-n]},A.extent=function(e){return arguments.length?(t=+e[0][0],i=+e[1][0],n=+e[0][1],y=+e[1][1],A):[[t,n],[i,y]]},A.iterations=function(t){return arguments.length?(M=+t,A):M},A},t.sankeyCenter=function(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?e.min(t.sourceLinks,i)-1:0},t.sankeyLeft=function(t){return t.depth},t.sankeyRight=function(t,e){return e-1-t.height},t.sankeyJustify=a,t.sankeyLinkHorizontal=function(){return n.linkHorizontal().source(y).target(x)},Object.defineProperty(t,"__esModule",{value:!0})}))},{"d3-array":156,"d3-collection":157,"d3-shape":165}],57:[function(t,e,r){"use strict";e.exports=t("./quad")},{"./quad":58}],58:[function(t,e,r){"use strict";var n=t("binary-search-bounds"),i=t("clamp"),a=t("parse-rect"),o=t("array-bounds"),s=t("pick-by-alias"),l=t("defined"),c=t("flatten-vertex-data"),u=t("is-obj"),f=t("dtype"),h=t("math-log2");function p(t,e){for(var r=e[0],n=e[1],a=1/(e[2]-r),o=1/(e[3]-n),s=new Array(t.length),l=0,c=t.length/2;l>>1;e.dtype||(e.dtype="array"),"string"==typeof e.dtype?d=new(f(e.dtype))(m):e.dtype&&(d=e.dtype,Array.isArray(d)&&(d.length=m));for(var v=0;vr||s>1073741824){for(var h=0;he+n||w>r+n||T=M||a===o)){var s=y[i];void 0===o&&(o=s.length);for(var l=a;l=d&&u<=m&&f>=g&&f<=v&&S.push(c)}var h=x[i],p=h[4*a+0],b=h[4*a+1],A=h[4*a+2],E=h[4*a+3],I=L(h,a+1),P=.5*n,z=i+1;C(e,r,P,z,p,b||A||E||I),C(e,r+P,P,z,b,A||E||I),C(e+P,r,P,z,A,E||I),C(e+P,r+P,P,z,E,I)}}function L(t,e){for(var r=null,n=0;null===r;)if(r=t[4*e+n],++n>t.length)return null;return r}return C(0,0,1,0,0,1),S},d;function E(t,e,r,i,a){for(var o=[],s=0;s0){e+=Math.abs(a(t[0]));for(var r=1;r2){for(s=0;st[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]=0))throw new Error("precision must be a positive number");var r=Math.pow(10,e||0);return Math.round(t*r)/r},r.radiansToLength=f,r.lengthToRadians=h,r.lengthToDegrees=function(t,e){return p(h(t,e))},r.bearingToAzimuth=function(t){var e=t%360;return e<0&&(e+=360),e},r.radiansToDegrees=p,r.degreesToRadians=function(t){return t%360*Math.PI/180},r.convertLength=function(t,e,r){if(void 0===e&&(e="kilometers"),void 0===r&&(r="kilometers"),!(t>=0))throw new Error("length must be a positive number");return f(h(t,e),r)},r.convertArea=function(t,e,n){if(void 0===e&&(e="meters"),void 0===n&&(n="kilometers"),!(t>=0))throw new Error("area must be a positive number");var i=r.areaFactors[e];if(!i)throw new Error("invalid original units");var a=r.areaFactors[n];if(!a)throw new Error("invalid final units");return t/i*a},r.isNumber=d,r.isObject=function(t){return!!t&&t.constructor===Object},r.validateBBox=function(t){if(!t)throw new Error("bbox is required");if(!Array.isArray(t))throw new Error("bbox must be an Array");if(4!==t.length&&6!==t.length)throw new Error("bbox must be an Array of 4 or 6 numbers");t.forEach((function(t){if(!d(t))throw new Error("bbox must only contain numbers")}))},r.validateId=function(t){if(!t)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof t))throw new Error("id must be a number or a string")},r.radians2degrees=function(){throw new Error("method has been renamed to `radiansToDegrees`")},r.degrees2radians=function(){throw new Error("method has been renamed to `degreesToRadians`")},r.distanceToDegrees=function(){throw new Error("method has been renamed to `lengthToDegrees`")},r.distanceToRadians=function(){throw new Error("method has been renamed to `lengthToRadians`")},r.radiansToDistance=function(){throw new Error("method has been renamed to `radiansToLength`")},r.bearingToAngle=function(){throw new Error("method has been renamed to `bearingToAzimuth`")},r.convertDistance=function(){throw new Error("method has been renamed to `convertLength`")}},{}],63:[function(t,e,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=t("@turf/helpers");function i(t,e,r){if(null!==t)for(var n,a,o,s,l,c,u,f,h=0,p=0,d=t.type,g="FeatureCollection"===d,m="Feature"===d,v=g?t.features.length:1,y=0;yc||p>u||d>f)return l=i,c=r,u=p,f=d,void(o=0);var g=n.lineString([l,i],t.properties);if(!1===e(g,r,a,d,o))return!1;o++,l=i}))&&void 0}}}))}function u(t,e){if(!t)throw new Error("geojson is required");l(t,(function(t,r,i){if(null!==t.geometry){var a=t.geometry.type,o=t.geometry.coordinates;switch(a){case"LineString":if(!1===e(t,r,i,0,0))return!1;break;case"Polygon":for(var s=0;si&&(i=t[o]),t[o]:not(.watermark)":"opacity:0;-webkit-transition:opacity 0.3s ease 0s;-moz-transition:opacity 0.3s ease 0s;-ms-transition:opacity 0.3s ease 0s;-o-transition:opacity 0.3s ease 0s;transition:opacity 0.3s ease 0s;","X:hover .modebar--hover .modebar-group":"opacity:1;","X .modebar-group":"float:left;display:inline-block;box-sizing:border-box;padding-left:8px;position:relative;vertical-align:middle;white-space:nowrap;","X .modebar-btn":"position:relative;font-size:16px;padding:3px 4px;height:22px;cursor:pointer;line-height:normal;box-sizing:border-box;","X .modebar-btn svg":"position:relative;top:2px;","X .modebar.vertical":"display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-end;max-height:100%;","X .modebar.vertical svg":"top:-1px;","X .modebar.vertical .modebar-group":"display:block;float:none;padding-left:0px;padding-bottom:8px;","X .modebar.vertical .modebar-group .modebar-btn":"display:block;text-align:center;","X [data-title]:before,X [data-title]:after":"position:absolute;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);display:none;opacity:0;z-index:1001;pointer-events:none;top:110%;right:50%;","X [data-title]:hover:before,X [data-title]:hover:after":"display:block;opacity:1;","X [data-title]:before":"content:'';position:absolute;background:transparent;border:6px solid transparent;z-index:1002;margin-top:-12px;border-bottom-color:#69738a;margin-right:-6px;","X [data-title]:after":"content:attr(data-title);background:#69738a;color:white;padding:8px 10px;font-size:12px;line-height:12px;white-space:nowrap;margin-right:-18px;border-radius:2px;","X .vertical [data-title]:before,X .vertical [data-title]:after":"top:0%;right:200%;","X .vertical [data-title]:before":"border:6px solid transparent;border-left-color:#69738a;margin-top:8px;margin-right:-30px;","X .select-outline":"fill:none;stroke-width:1;shape-rendering:crispEdges;","X .select-outline-1":"stroke:white;","X .select-outline-2":"stroke:black;stroke-dasharray:2px 2px;",Y:"font-family:'Open Sans', verdana, arial, sans-serif;position:fixed;top:50px;right:20px;z-index:10000;font-size:10pt;max-width:180px;","Y p":"margin:0;","Y .notifier-note":"min-width:180px;max-width:250px;border:1px solid #fff;z-index:3000;margin:0;background-color:#8c97af;background-color:rgba(140,151,175,0.9);color:#fff;padding:10px;overflow-wrap:break-word;word-wrap:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;","Y .notifier-close":"color:#fff;opacity:0.8;float:right;padding:0 5px;background:none;border:none;font-size:20px;font-weight:bold;line-height:20px;","Y .notifier-close:hover":"color:#444;text-decoration:none;cursor:pointer;"};for(var a in i){var o=a.replace(/^,/," ,").replace(/X/g,".js-plotly-plot .plotly").replace(/Y/g,".plotly-notifier");n.addStyleRule(o,i[a])}},{"../src/lib":795}],2:[function(t,e,r){"use strict";e.exports=t("../src/transforms/aggregate")},{"../src/transforms/aggregate":1377}],3:[function(t,e,r){"use strict";e.exports=t("../src/traces/bar")},{"../src/traces/bar":941}],4:[function(t,e,r){"use strict";e.exports=t("../src/traces/barpolar")},{"../src/traces/barpolar":954}],5:[function(t,e,r){"use strict";e.exports=t("../src/traces/box")},{"../src/traces/box":964}],6:[function(t,e,r){"use strict";e.exports=t("../src/components/calendars")},{"../src/components/calendars":656}],7:[function(t,e,r){"use strict";e.exports=t("../src/traces/candlestick")},{"../src/traces/candlestick":973}],8:[function(t,e,r){"use strict";e.exports=t("../src/traces/carpet")},{"../src/traces/carpet":992}],9:[function(t,e,r){"use strict";e.exports=t("../src/traces/choropleth")},{"../src/traces/choropleth":1006}],10:[function(t,e,r){"use strict";e.exports=t("../src/traces/choroplethmapbox")},{"../src/traces/choroplethmapbox":1013}],11:[function(t,e,r){"use strict";e.exports=t("../src/traces/cone")},{"../src/traces/cone":1019}],12:[function(t,e,r){"use strict";e.exports=t("../src/traces/contour")},{"../src/traces/contour":1034}],13:[function(t,e,r){"use strict";e.exports=t("../src/traces/contourcarpet")},{"../src/traces/contourcarpet":1045}],14:[function(t,e,r){"use strict";e.exports=t("../src/core")},{"../src/core":773}],15:[function(t,e,r){"use strict";e.exports=t("../src/traces/densitymapbox")},{"../src/traces/densitymapbox":1053}],16:[function(t,e,r){"use strict";e.exports=t("../src/transforms/filter")},{"../src/transforms/filter":1378}],17:[function(t,e,r){"use strict";e.exports=t("../src/traces/funnel")},{"../src/traces/funnel":1063}],18:[function(t,e,r){"use strict";e.exports=t("../src/traces/funnelarea")},{"../src/traces/funnelarea":1072}],19:[function(t,e,r){"use strict";e.exports=t("../src/transforms/groupby")},{"../src/transforms/groupby":1379}],20:[function(t,e,r){"use strict";e.exports=t("../src/traces/heatmap")},{"../src/traces/heatmap":1085}],21:[function(t,e,r){"use strict";e.exports=t("../src/traces/heatmapgl")},{"../src/traces/heatmapgl":1095}],22:[function(t,e,r){"use strict";e.exports=t("../src/traces/histogram")},{"../src/traces/histogram":1107}],23:[function(t,e,r){"use strict";e.exports=t("../src/traces/histogram2d")},{"../src/traces/histogram2d":1113}],24:[function(t,e,r){"use strict";e.exports=t("../src/traces/histogram2dcontour")},{"../src/traces/histogram2dcontour":1117}],25:[function(t,e,r){"use strict";e.exports=t("../src/traces/image")},{"../src/traces/image":1125}],26:[function(t,e,r){"use strict";var n=t("./core");n.register([t("./bar"),t("./box"),t("./heatmap"),t("./histogram"),t("./histogram2d"),t("./histogram2dcontour"),t("./contour"),t("./scatterternary"),t("./violin"),t("./funnel"),t("./waterfall"),t("./image"),t("./pie"),t("./sunburst"),t("./treemap"),t("./funnelarea"),t("./scatter3d"),t("./surface"),t("./isosurface"),t("./volume"),t("./mesh3d"),t("./cone"),t("./streamtube"),t("./scattergeo"),t("./choropleth"),t("./scattergl"),t("./splom"),t("./pointcloud"),t("./heatmapgl"),t("./parcoords"),t("./parcats"),t("./scattermapbox"),t("./choroplethmapbox"),t("./densitymapbox"),t("./sankey"),t("./indicator"),t("./table"),t("./carpet"),t("./scattercarpet"),t("./contourcarpet"),t("./ohlc"),t("./candlestick"),t("./scatterpolar"),t("./scatterpolargl"),t("./barpolar"),t("./aggregate"),t("./filter"),t("./groupby"),t("./sort"),t("./calendars")]),e.exports=n},{"./aggregate":2,"./bar":3,"./barpolar":4,"./box":5,"./calendars":6,"./candlestick":7,"./carpet":8,"./choropleth":9,"./choroplethmapbox":10,"./cone":11,"./contour":12,"./contourcarpet":13,"./core":14,"./densitymapbox":15,"./filter":16,"./funnel":17,"./funnelarea":18,"./groupby":19,"./heatmap":20,"./heatmapgl":21,"./histogram":22,"./histogram2d":23,"./histogram2dcontour":24,"./image":25,"./indicator":27,"./isosurface":28,"./mesh3d":29,"./ohlc":30,"./parcats":31,"./parcoords":32,"./pie":33,"./pointcloud":34,"./sankey":35,"./scatter3d":36,"./scattercarpet":37,"./scattergeo":38,"./scattergl":39,"./scattermapbox":40,"./scatterpolar":41,"./scatterpolargl":42,"./scatterternary":43,"./sort":44,"./splom":45,"./streamtube":46,"./sunburst":47,"./surface":48,"./table":49,"./treemap":50,"./violin":51,"./volume":52,"./waterfall":53}],27:[function(t,e,r){"use strict";e.exports=t("../src/traces/indicator")},{"../src/traces/indicator":1133}],28:[function(t,e,r){"use strict";e.exports=t("../src/traces/isosurface")},{"../src/traces/isosurface":1139}],29:[function(t,e,r){"use strict";e.exports=t("../src/traces/mesh3d")},{"../src/traces/mesh3d":1144}],30:[function(t,e,r){"use strict";e.exports=t("../src/traces/ohlc")},{"../src/traces/ohlc":1149}],31:[function(t,e,r){"use strict";e.exports=t("../src/traces/parcats")},{"../src/traces/parcats":1158}],32:[function(t,e,r){"use strict";e.exports=t("../src/traces/parcoords")},{"../src/traces/parcoords":1168}],33:[function(t,e,r){"use strict";e.exports=t("../src/traces/pie")},{"../src/traces/pie":1179}],34:[function(t,e,r){"use strict";e.exports=t("../src/traces/pointcloud")},{"../src/traces/pointcloud":1188}],35:[function(t,e,r){"use strict";e.exports=t("../src/traces/sankey")},{"../src/traces/sankey":1194}],36:[function(t,e,r){"use strict";e.exports=t("../src/traces/scatter3d")},{"../src/traces/scatter3d":1232}],37:[function(t,e,r){"use strict";e.exports=t("../src/traces/scattercarpet")},{"../src/traces/scattercarpet":1239}],38:[function(t,e,r){"use strict";e.exports=t("../src/traces/scattergeo")},{"../src/traces/scattergeo":1247}],39:[function(t,e,r){"use strict";e.exports=t("../src/traces/scattergl")},{"../src/traces/scattergl":1260}],40:[function(t,e,r){"use strict";e.exports=t("../src/traces/scattermapbox")},{"../src/traces/scattermapbox":1270}],41:[function(t,e,r){"use strict";e.exports=t("../src/traces/scatterpolar")},{"../src/traces/scatterpolar":1278}],42:[function(t,e,r){"use strict";e.exports=t("../src/traces/scatterpolargl")},{"../src/traces/scatterpolargl":1285}],43:[function(t,e,r){"use strict";e.exports=t("../src/traces/scatterternary")},{"../src/traces/scatterternary":1293}],44:[function(t,e,r){"use strict";e.exports=t("../src/transforms/sort")},{"../src/transforms/sort":1381}],45:[function(t,e,r){"use strict";e.exports=t("../src/traces/splom")},{"../src/traces/splom":1302}],46:[function(t,e,r){"use strict";e.exports=t("../src/traces/streamtube")},{"../src/traces/streamtube":1310}],47:[function(t,e,r){"use strict";e.exports=t("../src/traces/sunburst")},{"../src/traces/sunburst":1318}],48:[function(t,e,r){"use strict";e.exports=t("../src/traces/surface")},{"../src/traces/surface":1327}],49:[function(t,e,r){"use strict";e.exports=t("../src/traces/table")},{"../src/traces/table":1335}],50:[function(t,e,r){"use strict";e.exports=t("../src/traces/treemap")},{"../src/traces/treemap":1344}],51:[function(t,e,r){"use strict";e.exports=t("../src/traces/violin")},{"../src/traces/violin":1356}],52:[function(t,e,r){"use strict";e.exports=t("../src/traces/volume")},{"../src/traces/volume":1364}],53:[function(t,e,r){"use strict";e.exports=t("../src/traces/waterfall")},{"../src/traces/waterfall":1372}],54:[function(t,e,r){"use strict";e.exports=function(t){var e=(t=t||{}).eye||[0,0,1],r=t.center||[0,0,0],s=t.up||[0,1,0],l=t.distanceLimits||[0,1/0],c=t.mode||"turntable",u=n(),f=i(),h=a();return u.setDistanceLimits(l[0],l[1]),u.lookAt(0,e,r,s),f.setDistanceLimits(l[0],l[1]),f.lookAt(0,e,r,s),h.setDistanceLimits(l[0],l[1]),h.lookAt(0,e,r,s),new o({turntable:u,orbit:f,matrix:h},c)};var n=t("turntable-camera-controller"),i=t("orbit-camera-controller"),a=t("matrix-camera-controller");function o(t,e){this._controllerNames=Object.keys(t),this._controllerList=this._controllerNames.map((function(e){return t[e]})),this._mode=e,this._active=t[e],this._active||(this._mode="turntable",this._active=t.turntable),this.modes=this._controllerNames,this.computedMatrix=this._active.computedMatrix,this.computedEye=this._active.computedEye,this.computedUp=this._active.computedUp,this.computedCenter=this._active.computedCenter,this.computedRadius=this._active.computedRadius}var s=o.prototype;[["flush",1],["idle",1],["lookAt",4],["rotate",4],["pan",4],["translate",4],["setMatrix",2],["setDistanceLimits",2],["setDistance",2]].forEach((function(t){for(var e=t[0],r=[],n=0;n1||i>1)}function A(t,e,r){return t.sort(E),t.forEach((function(n,i){var a,o,s=0;if(H(n,r)&&M(n))n.circularPathData.verticalBuffer=s+n.width/2;else{for(var l=0;lo.source.column)){var c=t[l].circularPathData.verticalBuffer+t[l].width/2+e;s=c>s?c:s}n.circularPathData.verticalBuffer=s+n.width/2}})),t}function S(t,r,i,a){var o=e.min(t.links,(function(t){return t.source.y0}));t.links.forEach((function(t){t.circular&&(t.circularPathData={})})),A(t.links.filter((function(t){return"top"==t.circularLinkType})),r,a),A(t.links.filter((function(t){return"bottom"==t.circularLinkType})),r,a),t.links.forEach((function(e){if(e.circular){if(e.circularPathData.arcRadius=e.width+10,e.circularPathData.leftNodeBuffer=5,e.circularPathData.rightNodeBuffer=5,e.circularPathData.sourceWidth=e.source.x1-e.source.x0,e.circularPathData.sourceX=e.source.x0+e.circularPathData.sourceWidth,e.circularPathData.targetX=e.target.x0,e.circularPathData.sourceY=e.y0,e.circularPathData.targetY=e.y1,H(e,a)&&M(e))e.circularPathData.leftSmallArcRadius=10+e.width/2,e.circularPathData.leftLargeArcRadius=10+e.width/2,e.circularPathData.rightSmallArcRadius=10+e.width/2,e.circularPathData.rightLargeArcRadius=10+e.width/2,"bottom"==e.circularLinkType?(e.circularPathData.verticalFullExtent=e.source.y1+25+e.circularPathData.verticalBuffer,e.circularPathData.verticalLeftInnerExtent=e.circularPathData.verticalFullExtent-e.circularPathData.leftLargeArcRadius,e.circularPathData.verticalRightInnerExtent=e.circularPathData.verticalFullExtent-e.circularPathData.rightLargeArcRadius):(e.circularPathData.verticalFullExtent=e.source.y0-25-e.circularPathData.verticalBuffer,e.circularPathData.verticalLeftInnerExtent=e.circularPathData.verticalFullExtent+e.circularPathData.leftLargeArcRadius,e.circularPathData.verticalRightInnerExtent=e.circularPathData.verticalFullExtent+e.circularPathData.rightLargeArcRadius);else{var s=e.source.column,l=e.circularLinkType,c=t.links.filter((function(t){return t.source.column==s&&t.circularLinkType==l}));"bottom"==e.circularLinkType?c.sort(C):c.sort(L);var u=0;c.forEach((function(t,n){t.circularLinkID==e.circularLinkID&&(e.circularPathData.leftSmallArcRadius=10+e.width/2+u,e.circularPathData.leftLargeArcRadius=10+e.width/2+n*r+u),u+=t.width})),s=e.target.column,c=t.links.filter((function(t){return t.target.column==s&&t.circularLinkType==l})),"bottom"==e.circularLinkType?c.sort(I):c.sort(P),u=0,c.forEach((function(t,n){t.circularLinkID==e.circularLinkID&&(e.circularPathData.rightSmallArcRadius=10+e.width/2+u,e.circularPathData.rightLargeArcRadius=10+e.width/2+n*r+u),u+=t.width})),"bottom"==e.circularLinkType?(e.circularPathData.verticalFullExtent=Math.max(i,e.source.y1,e.target.y1)+25+e.circularPathData.verticalBuffer,e.circularPathData.verticalLeftInnerExtent=e.circularPathData.verticalFullExtent-e.circularPathData.leftLargeArcRadius,e.circularPathData.verticalRightInnerExtent=e.circularPathData.verticalFullExtent-e.circularPathData.rightLargeArcRadius):(e.circularPathData.verticalFullExtent=o-25-e.circularPathData.verticalBuffer,e.circularPathData.verticalLeftInnerExtent=e.circularPathData.verticalFullExtent+e.circularPathData.leftLargeArcRadius,e.circularPathData.verticalRightInnerExtent=e.circularPathData.verticalFullExtent+e.circularPathData.rightLargeArcRadius)}e.circularPathData.leftInnerExtent=e.circularPathData.sourceX+e.circularPathData.leftNodeBuffer,e.circularPathData.rightInnerExtent=e.circularPathData.targetX-e.circularPathData.rightNodeBuffer,e.circularPathData.leftFullExtent=e.circularPathData.sourceX+e.circularPathData.leftLargeArcRadius+e.circularPathData.leftNodeBuffer,e.circularPathData.rightFullExtent=e.circularPathData.targetX-e.circularPathData.rightLargeArcRadius-e.circularPathData.rightNodeBuffer}if(e.circular)e.path=function(t){var e="";e="top"==t.circularLinkType?"M"+t.circularPathData.sourceX+" "+t.circularPathData.sourceY+" L"+t.circularPathData.leftInnerExtent+" "+t.circularPathData.sourceY+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftSmallArcRadius+" 0 0 0 "+t.circularPathData.leftFullExtent+" "+(t.circularPathData.sourceY-t.circularPathData.leftSmallArcRadius)+" L"+t.circularPathData.leftFullExtent+" "+t.circularPathData.verticalLeftInnerExtent+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftLargeArcRadius+" 0 0 0 "+t.circularPathData.leftInnerExtent+" "+t.circularPathData.verticalFullExtent+" L"+t.circularPathData.rightInnerExtent+" "+t.circularPathData.verticalFullExtent+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightLargeArcRadius+" 0 0 0 "+t.circularPathData.rightFullExtent+" "+t.circularPathData.verticalRightInnerExtent+" L"+t.circularPathData.rightFullExtent+" "+(t.circularPathData.targetY-t.circularPathData.rightSmallArcRadius)+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightSmallArcRadius+" 0 0 0 "+t.circularPathData.rightInnerExtent+" "+t.circularPathData.targetY+" L"+t.circularPathData.targetX+" "+t.circularPathData.targetY:"M"+t.circularPathData.sourceX+" "+t.circularPathData.sourceY+" L"+t.circularPathData.leftInnerExtent+" "+t.circularPathData.sourceY+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftSmallArcRadius+" 0 0 1 "+t.circularPathData.leftFullExtent+" "+(t.circularPathData.sourceY+t.circularPathData.leftSmallArcRadius)+" L"+t.circularPathData.leftFullExtent+" "+t.circularPathData.verticalLeftInnerExtent+" A"+t.circularPathData.leftLargeArcRadius+" "+t.circularPathData.leftLargeArcRadius+" 0 0 1 "+t.circularPathData.leftInnerExtent+" "+t.circularPathData.verticalFullExtent+" L"+t.circularPathData.rightInnerExtent+" "+t.circularPathData.verticalFullExtent+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightLargeArcRadius+" 0 0 1 "+t.circularPathData.rightFullExtent+" "+t.circularPathData.verticalRightInnerExtent+" L"+t.circularPathData.rightFullExtent+" "+(t.circularPathData.targetY+t.circularPathData.rightSmallArcRadius)+" A"+t.circularPathData.rightLargeArcRadius+" "+t.circularPathData.rightSmallArcRadius+" 0 0 1 "+t.circularPathData.rightInnerExtent+" "+t.circularPathData.targetY+" L"+t.circularPathData.targetX+" "+t.circularPathData.targetY;return e}(e);else{var f=n.linkHorizontal().source((function(t){return[t.source.x0+(t.source.x1-t.source.x0),t.y0]})).target((function(t){return[t.target.x0,t.y1]}));e.path=f(e)}}))}function E(t,e){return O(t)==O(e)?"bottom"==t.circularLinkType?C(t,e):L(t,e):O(e)-O(t)}function L(t,e){return t.y0-e.y0}function C(t,e){return e.y0-t.y0}function P(t,e){return t.y1-e.y1}function I(t,e){return e.y1-t.y1}function O(t){return t.target.column-t.source.column}function z(t){return t.target.x0-t.source.x1}function D(t,e){var r=T(t),n=z(e)/Math.tan(r);return"up"==q(t)?t.y1+n:t.y1-n}function R(t,e){var r=T(t),n=z(e)/Math.tan(r);return"up"==q(t)?t.y1-n:t.y1+n}function F(t,e,r,n){t.links.forEach((function(i){if(!i.circular&&i.target.column-i.source.column>1){var a=i.source.column+1,o=i.target.column-1,s=1,l=o-a+1;for(s=1;a<=o;a++,s++)t.nodes.forEach((function(o){if(o.column==a){var c,u=s/(l+1),f=Math.pow(1-u,3),h=3*u*Math.pow(1-u,2),p=3*Math.pow(u,2)*(1-u),d=Math.pow(u,3),m=f*i.y0+h*i.y0+p*i.y1+d*i.y1,g=m-i.width/2,v=m+i.width/2;g>o.y0&&go.y0&&vo.y1)&&(c=v-o.y0+10,o=N(o,c,e,r),t.nodes.forEach((function(t){b(t,n)!=b(o,n)&&t.column==o.column&&t.y0o.y1&&N(t,c,e,r)})))}}))}}))}function B(t,e){return t.y0>e.y0&&t.y0e.y0&&t.y1e.y1)}function N(t,e,r,n){return t.y0+e>=r&&t.y1+e<=n&&(t.y0=t.y0+e,t.y1=t.y1+e,t.targetLinks.forEach((function(t){t.y1=t.y1+e})),t.sourceLinks.forEach((function(t){t.y0=t.y0+e}))),t}function j(t,e,r,n){t.nodes.forEach((function(i){n&&i.y+(i.y1-i.y0)>e&&(i.y=i.y-(i.y+(i.y1-i.y0)-e));var a=t.links.filter((function(t){return b(t.source,r)==b(i,r)})),o=a.length;o>1&&a.sort((function(t,e){if(!t.circular&&!e.circular){if(t.target.column==e.target.column)return t.y1-e.y1;if(!V(t,e))return t.y1-e.y1;if(t.target.column>e.target.column){var r=R(e,t);return t.y1-r}if(e.target.column>t.target.column)return R(t,e)-e.y1}return t.circular&&!e.circular?"top"==t.circularLinkType?-1:1:e.circular&&!t.circular?"top"==e.circularLinkType?1:-1:t.circular&&e.circular?t.circularLinkType===e.circularLinkType&&"top"==t.circularLinkType?t.target.column===e.target.column?t.target.y1-e.target.y1:e.target.column-t.target.column:t.circularLinkType===e.circularLinkType&&"bottom"==t.circularLinkType?t.target.column===e.target.column?e.target.y1-t.target.y1:t.target.column-e.target.column:"top"==t.circularLinkType?-1:1:void 0}));var s=i.y0;a.forEach((function(t){t.y0=s+t.width/2,s+=t.width})),a.forEach((function(t,e){if("bottom"==t.circularLinkType){for(var r=e+1,n=0;r1&&n.sort((function(t,e){if(!t.circular&&!e.circular){if(t.source.column==e.source.column)return t.y0-e.y0;if(!V(t,e))return t.y0-e.y0;if(e.source.column0?"up":"down"}function H(t,e){return b(t.source,e)==b(t.target,e)}function G(t,r,n){var i=t.nodes,a=t.links,o=!1,s=!1;if(a.forEach((function(t){"top"==t.circularLinkType?o=!0:"bottom"==t.circularLinkType&&(s=!0)})),0==o||0==s){var l=e.min(i,(function(t){return t.y0})),c=(n-r)/(e.max(i,(function(t){return t.y1}))-l);i.forEach((function(t){var e=(t.y1-t.y0)*c;t.y0=(t.y0-l)*c,t.y1=t.y0+e})),a.forEach((function(t){t.y0=(t.y0-l)*c,t.y1=(t.y1-l)*c,t.width=t.width*c}))}}t.sankeyCircular=function(){var t,n,i=0,a=0,b=1,T=1,M=24,A=g,E=o,L=v,C=y,P=32,I=2,O=null;function z(){var t={nodes:L.apply(null,arguments),links:C.apply(null,arguments)};D(t),_(t,A,O),R(t),B(t),w(t,A),N(t,P,A),V(t);for(var e=4,r=0;r0?r+25+10:r,bottom:n=n>0?n+25+10:n,left:a=a>0?a+25+10:a,right:i=i>0?i+25+10:i}}(o),f=function(t,r){var n=e.max(t.nodes,(function(t){return t.column})),o=b-i,s=T-a,l=o/(o+r.right+r.left),c=s/(s+r.top+r.bottom);return i=i*l+r.left,b=0==r.right?b:b*l,a=a*c+r.top,T*=c,t.nodes.forEach((function(t){t.x0=i+t.column*((b-i-M)/n),t.x1=t.x0+M})),c}(o,u);l*=f,o.links.forEach((function(t){t.width=t.value*l})),c.forEach((function(t){var e=t.length;t.forEach((function(t,n){t.depth==c.length-1&&1==e||0==t.depth&&1==e?(t.y0=T/2-t.value*l,t.y1=t.y0+t.value*l):t.partOfCycle?0==k(t,r)?(t.y0=T/2+n,t.y1=t.y0+t.value*l):"top"==t.circularLinkType?(t.y0=a+n,t.y1=t.y0+t.value*l):(t.y0=T-t.value*l-n,t.y1=t.y0+t.value*l):0==u.top||0==u.bottom?(t.y0=(T-a)/e*n,t.y1=t.y0+t.value*l):(t.y0=(T-a)/2-e/2+n,t.y1=t.y0+t.value*l)}))}))}(l),y();for(var u=1,g=s;g>0;--g)v(u*=.99,l),y();function v(t,r){var n=c.length;c.forEach((function(i){var a=i.length,o=i[0].depth;i.forEach((function(i){var s;if(i.sourceLinks.length||i.targetLinks.length)if(i.partOfCycle&&k(i,r)>0);else if(0==o&&1==a)s=i.y1-i.y0,i.y0=T/2-s/2,i.y1=T/2+s/2;else if(o==n-1&&1==a)s=i.y1-i.y0,i.y0=T/2-s/2,i.y1=T/2+s/2;else{var l=e.mean(i.sourceLinks,m),c=e.mean(i.targetLinks,d),u=((l&&c?(l+c)/2:l||c)-p(i))*t;i.y0+=u,i.y1+=u}}))}))}function y(){c.forEach((function(e){var r,n,i,o=a,s=e.length;for(e.sort(f),i=0;i0&&(r.y0+=n,r.y1+=n),o=r.y1+t;if((n=o-t-T)>0)for(o=r.y0-=n,r.y1-=n,i=s-2;i>=0;--i)(n=(r=e[i]).y1+t-o)>0&&(r.y0-=n,r.y1-=n),o=r.y0}))}}function V(t){t.nodes.forEach((function(t){t.sourceLinks.sort(u),t.targetLinks.sort(c)})),t.nodes.forEach((function(t){var e=t.y0,r=e,n=t.y1,i=n;t.sourceLinks.forEach((function(t){t.circular?(t.y0=n-t.width/2,n-=t.width):(t.y0=e+t.width/2,e+=t.width)})),t.targetLinks.forEach((function(t){t.circular?(t.y1=i-t.width/2,i-=t.width):(t.y1=r+t.width/2,r+=t.width)}))}))}return z.nodeId=function(t){return arguments.length?(A="function"==typeof t?t:s(t),z):A},z.nodeAlign=function(t){return arguments.length?(E="function"==typeof t?t:s(t),z):E},z.nodeWidth=function(t){return arguments.length?(M=+t,z):M},z.nodePadding=function(e){return arguments.length?(t=+e,z):t},z.nodes=function(t){return arguments.length?(L="function"==typeof t?t:s(t),z):L},z.links=function(t){return arguments.length?(C="function"==typeof t?t:s(t),z):C},z.size=function(t){return arguments.length?(i=a=0,b=+t[0],T=+t[1],z):[b-i,T-a]},z.extent=function(t){return arguments.length?(i=+t[0][0],b=+t[1][0],a=+t[0][1],T=+t[1][1],z):[[i,a],[b,T]]},z.iterations=function(t){return arguments.length?(P=+t,z):P},z.circularLinkGap=function(t){return arguments.length?(I=+t,z):I},z.nodePaddingRatio=function(t){return arguments.length?(n=+t,z):n},z.sortNodes=function(t){return arguments.length?(O=t,z):O},z.update=function(t){return w(t,A),V(t),t.links.forEach((function(t){t.circular&&(t.circularLinkType=t.y0+t.y1a&&(b=a);var o=e.min(i,(function(t){return(y-n-(t.length-1)*b)/e.sum(t,u)}));i.forEach((function(t){t.forEach((function(t,e){t.y1=(t.y0=e)+t.value*o}))})),t.links.forEach((function(t){t.width=t.value*o}))}(),d();for(var a=1,o=M;o>0;--o)l(a*=.99),d(),s(a),d();function s(t){i.forEach((function(r){r.forEach((function(r){if(r.targetLinks.length){var n=(e.sum(r.targetLinks,h)/e.sum(r.targetLinks,u)-f(r))*t;r.y0+=n,r.y1+=n}}))}))}function l(t){i.slice().reverse().forEach((function(r){r.forEach((function(r){if(r.sourceLinks.length){var n=(e.sum(r.sourceLinks,p)/e.sum(r.sourceLinks,u)-f(r))*t;r.y0+=n,r.y1+=n}}))}))}function d(){i.forEach((function(t){var e,r,i,a=n,o=t.length;for(t.sort(c),i=0;i0&&(e.y0+=r,e.y1+=r),a=e.y1+b;if((r=a-b-y)>0)for(a=e.y0-=r,e.y1-=r,i=o-2;i>=0;--i)(r=(e=t[i]).y1+b-a)>0&&(e.y0-=r,e.y1-=r),a=e.y0}))}}function P(t){t.nodes.forEach((function(t){t.sourceLinks.sort(l),t.targetLinks.sort(s)})),t.nodes.forEach((function(t){var e=t.y0,r=e;t.sourceLinks.forEach((function(t){t.y0=e+t.width/2,e+=t.width})),t.targetLinks.forEach((function(t){t.y1=r+t.width/2,r+=t.width}))}))}return A.update=function(t){return P(t),t},A.nodeId=function(t){return arguments.length?(_="function"==typeof t?t:o(t),A):_},A.nodeAlign=function(t){return arguments.length?(w="function"==typeof t?t:o(t),A):w},A.nodeWidth=function(t){return arguments.length?(x=+t,A):x},A.nodePadding=function(t){return arguments.length?(b=+t,A):b},A.nodes=function(t){return arguments.length?(T="function"==typeof t?t:o(t),A):T},A.links=function(t){return arguments.length?(k="function"==typeof t?t:o(t),A):k},A.size=function(e){return arguments.length?(t=n=0,i=+e[0],y=+e[1],A):[i-t,y-n]},A.extent=function(e){return arguments.length?(t=+e[0][0],i=+e[1][0],n=+e[0][1],y=+e[1][1],A):[[t,n],[i,y]]},A.iterations=function(t){return arguments.length?(M=+t,A):M},A},t.sankeyCenter=function(t){return t.targetLinks.length?t.depth:t.sourceLinks.length?e.min(t.sourceLinks,i)-1:0},t.sankeyLeft=function(t){return t.depth},t.sankeyRight=function(t,e){return e-1-t.height},t.sankeyJustify=a,t.sankeyLinkHorizontal=function(){return n.linkHorizontal().source(y).target(x)},Object.defineProperty(t,"__esModule",{value:!0})}))},{"d3-array":157,"d3-collection":158,"d3-shape":166}],57:[function(t,e,r){!function(){var t={version:"3.5.18"},r=[].slice,n=function(t){return r.call(t)},i=this.document;function a(t){return t&&(t.ownerDocument||t.document||t).documentElement}function o(t){return t&&(t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView)}if(i)try{n(i.documentElement.childNodes)[0].nodeType}catch(t){n=function(t){for(var e=t.length,r=new Array(e);e--;)r[e]=t[e];return r}}if(Date.now||(Date.now=function(){return+new Date}),i)try{i.createElement("DIV").style.setProperty("opacity",0,"")}catch(t){var s=this.Element.prototype,l=s.setAttribute,c=s.setAttributeNS,u=this.CSSStyleDeclaration.prototype,f=u.setProperty;s.setAttribute=function(t,e){l.call(this,t,e+"")},s.setAttributeNS=function(t,e,r){c.call(this,t,e,r+"")},u.setProperty=function(t,e,r){f.call(this,t,e+"",r)}}function h(t,e){return te?1:t>=e?0:NaN}function p(t){return null===t?NaN:+t}function d(t){return!isNaN(t)}function m(t){return{left:function(e,r,n,i){for(arguments.length<3&&(n=0),arguments.length<4&&(i=e.length);n>>1;t(e[a],r)<0?n=a+1:i=a}return n},right:function(e,r,n,i){for(arguments.length<3&&(n=0),arguments.length<4&&(i=e.length);n>>1;t(e[a],r)>0?i=a:n=a+1}return n}}}t.ascending=h,t.descending=function(t,e){return et?1:e>=t?0:NaN},t.min=function(t,e){var r,n,i=-1,a=t.length;if(1===arguments.length){for(;++i=n){r=n;break}for(;++in&&(r=n)}else{for(;++i=n){r=n;break}for(;++in&&(r=n)}return r},t.max=function(t,e){var r,n,i=-1,a=t.length;if(1===arguments.length){for(;++i=n){r=n;break}for(;++ir&&(r=n)}else{for(;++i=n){r=n;break}for(;++ir&&(r=n)}return r},t.extent=function(t,e){var r,n,i,a=-1,o=t.length;if(1===arguments.length){for(;++a=n){r=i=n;break}for(;++an&&(r=n),i=n){r=i=n;break}for(;++an&&(r=n),i1)return o/(l-1)},t.deviation=function(){var e=t.variance.apply(this,arguments);return e?Math.sqrt(e):e};var g=m(h);function v(t){return t.length}t.bisectLeft=g.left,t.bisect=t.bisectRight=g.right,t.bisector=function(t){return m(1===t.length?function(e,r){return h(t(e),r)}:t)},t.shuffle=function(t,e,r){(a=arguments.length)<3&&(r=t.length,a<2&&(e=0));for(var n,i,a=r-e;a;)i=Math.random()*a--|0,n=t[a+e],t[a+e]=t[i+e],t[i+e]=n;return t},t.permute=function(t,e){for(var r=e.length,n=new Array(r);r--;)n[r]=t[e[r]];return n},t.pairs=function(t){for(var e=0,r=t.length-1,n=t[0],i=new Array(r<0?0:r);e=0;)for(e=(n=t[i]).length;--e>=0;)r[--o]=n[e];return r};var y=Math.abs;function x(t){for(var e=1;t*e%1;)e*=10;return e}function b(t,e){for(var r in e)Object.defineProperty(t.prototype,r,{value:e[r],enumerable:!1})}function _(){this._=Object.create(null)}t.range=function(t,e,r){if(arguments.length<3&&(r=1,arguments.length<2&&(e=t,t=0)),(e-t)/r==1/0)throw new Error("infinite range");var n,i=[],a=x(y(r)),o=-1;if(t*=a,e*=a,(r*=a)<0)for(;(n=t+r*++o)>e;)i.push(n/a);else for(;(n=t+r*++o)=i.length)return r?r.call(n,a):e?a.sort(e):a;for(var l,c,u,f,h=-1,p=a.length,d=i[s++],m=new _;++h=i.length)return e;var n=[],o=a[r++];return e.forEach((function(e,i){n.push({key:e,values:t(i,r)})})),o?n.sort((function(t,e){return o(t.key,e.key)})):n}(o(t.map,e,0),0)},n.key=function(t){return i.push(t),n},n.sortKeys=function(t){return a[i.length-1]=t,n},n.sortValues=function(t){return e=t,n},n.rollup=function(t){return r=t,n},n},t.set=function(t){var e=new L;if(t)for(var r=0,n=t.length;r=0&&(n=t.slice(r+1),t=t.slice(0,r)),t)return arguments.length<2?this[t].on(n):this[t].on(n,e);if(2===arguments.length){if(null==e)for(t in this)this.hasOwnProperty(t)&&this[t].on(n,null);return this}},t.event=null,t.requote=function(t){return t.replace(j,"\\$&")};var j=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,U={}.__proto__?function(t,e){t.__proto__=e}:function(t,e){for(var r in e)t[r]=e[r]};function V(t){return U(t,Y),t}var q=function(t,e){return e.querySelector(t)},H=function(t,e){return e.querySelectorAll(t)},G=function(t,e){var r=t.matches||t[I(t,"matchesSelector")];return(G=function(t,e){return r.call(t,e)})(t,e)};"function"==typeof Sizzle&&(q=function(t,e){return Sizzle(t,e)[0]||null},H=Sizzle,G=Sizzle.matchesSelector),t.selection=function(){return t.select(i.documentElement)};var Y=t.selection.prototype=[];function W(t){return"function"==typeof t?t:function(){return q(t,this)}}function X(t){return"function"==typeof t?t:function(){return H(t,this)}}Y.select=function(t){var e,r,n,i,a=[];t=W(t);for(var o=-1,s=this.length;++o=0&&"xmlns"!==(r=t.slice(0,e))&&(t=t.slice(e+1)),J.hasOwnProperty(r)?{space:J[r],local:t}:t}},Y.attr=function(e,r){if(arguments.length<2){if("string"==typeof e){var n=this.node();return(e=t.ns.qualify(e)).local?n.getAttributeNS(e.space,e.local):n.getAttribute(e)}for(r in e)this.each(K(r,e[r]));return this}return this.each(K(e,r))},Y.classed=function(t,e){if(arguments.length<2){if("string"==typeof t){var r=this.node(),n=(t=tt(t)).length,i=-1;if(e=r.classList){for(;++i=0;)(r=n[i])&&(a&&a!==r.nextSibling&&a.parentNode.insertBefore(r,a),a=r);return this},Y.sort=function(t){t=ct.apply(this,arguments);for(var e=-1,r=this.length;++e=e&&(e=i+1);!(o=s[e])&&++e0&&(e=e.slice(0,o));var l=mt.get(e);function c(){var t=this[a];t&&(this.removeEventListener(e,t,t.$),delete this[a])}return l&&(e=l,s=vt),o?r?function(){var t=s(r,n(arguments));c.call(this),this.addEventListener(e,this[a]=t,t.$=i),t._=r}:c:r?z:function(){var r,n=new RegExp("^__on([^.]+)"+t.requote(e)+"$");for(var i in this)if(r=i.match(n)){var a=this[i];this.removeEventListener(r[1],a,a.$),delete this[i]}}}t.selection.enter=ft,t.selection.enter.prototype=ht,ht.append=Y.append,ht.empty=Y.empty,ht.node=Y.node,ht.call=Y.call,ht.size=Y.size,ht.select=function(t){for(var e,r,n,i,a,o=[],s=-1,l=this.length;++s0?1:t<0?-1:0}function Ot(t,e,r){return(e[0]-t[0])*(r[1]-t[1])-(e[1]-t[1])*(r[0]-t[0])}function zt(t){return t>1?0:t<-1?At:Math.acos(t)}function Dt(t){return t>1?Lt:t<-1?-Lt:Math.asin(t)}function Rt(t){return((t=Math.exp(t))+1/t)/2}function Ft(t){return(t=Math.sin(t/2))*t}var Bt=Math.SQRT2;t.interpolateZoom=function(t,e){var r,n,i=t[0],a=t[1],o=t[2],s=e[0],l=e[1],c=e[2],u=s-i,f=l-a,h=u*u+f*f;if(h0&&(e=e.transition().duration(m)),e.call(w.event)}function S(){c&&c.domain(l.range().map((function(t){return(t-h.x)/h.k})).map(l.invert)),f&&f.domain(u.range().map((function(t){return(t-h.y)/h.k})).map(u.invert))}function E(t){g++||t({type:"zoomstart"})}function L(t){S(),t({type:"zoom",scale:h.k,translate:[h.x,h.y]})}function C(t){--g||(t({type:"zoomend"}),r=null)}function P(){var e=this,r=_.of(e,arguments),n=0,i=t.select(o(e)).on(y,l).on(x,c),a=T(t.mouse(e)),s=bt(e);function l(){n=1,M(t.mouse(e),a),L(r)}function c(){i.on(y,null).on(x,null),s(n),C(r)}vs.call(e),E(r)}function I(){var e,r=this,n=_.of(r,arguments),i={},a=0,o=".zoom-"+t.event.changedTouches[0].identifier,l="touchmove"+o,c="touchend"+o,u=[],f=t.select(r),p=bt(r);function d(){var n=t.touches(r);return e=h.k,n.forEach((function(t){t.identifier in i&&(i[t.identifier]=T(t))})),n}function m(){var e=t.event.target;t.select(e).on(l,g).on(c,y),u.push(e);for(var n=t.event.changedTouches,o=0,f=n.length;o1){v=p[0];var x=p[1],b=v[0]-x[0],_=v[1]-x[1];a=b*b+_*_}}function g(){var o,l,c,u,f=t.touches(r);vs.call(r);for(var h=0,p=f.length;h360?t-=360:t<0&&(t+=360),t<60?n+(i-n)*t/60:t<180?i:t<240?n+(i-n)*(240-t)/60:n}(t))}return t=isNaN(t)?0:(t%=360)<0?t+360:t,e=isNaN(e)||e<0?0:e>1?1:e,n=2*(r=r<0?0:r>1?1:r)-(i=r<=.5?r*(1+e):r+e-r*e),new ne(a(t+120),a(t),a(t-120))}function Yt(e,r,n){return this instanceof Yt?(this.h=+e,this.c=+r,void(this.l=+n)):arguments.length<2?e instanceof Yt?new Yt(e.h,e.c,e.l):$t(e instanceof Zt?e.l:(e=ue((e=t.rgb(e)).r,e.g,e.b)).l,e.a,e.b):new Yt(e,r,n)}Ht.brighter=function(t){return t=Math.pow(.7,arguments.length?t:1),new qt(this.h,this.s,this.l/t)},Ht.darker=function(t){return t=Math.pow(.7,arguments.length?t:1),new qt(this.h,this.s,t*this.l)},Ht.rgb=function(){return Gt(this.h,this.s,this.l)},t.hcl=Yt;var Wt=Yt.prototype=new Vt;function Xt(t,e,r){return isNaN(t)&&(t=0),isNaN(e)&&(e=0),new Zt(r,Math.cos(t*=Ct)*e,Math.sin(t)*e)}function Zt(t,e,r){return this instanceof Zt?(this.l=+t,this.a=+e,void(this.b=+r)):arguments.length<2?t instanceof Zt?new Zt(t.l,t.a,t.b):t instanceof Yt?Xt(t.h,t.c,t.l):ue((t=ne(t)).r,t.g,t.b):new Zt(t,e,r)}Wt.brighter=function(t){return new Yt(this.h,this.c,Math.min(100,this.l+Jt*(arguments.length?t:1)))},Wt.darker=function(t){return new Yt(this.h,this.c,Math.max(0,this.l-Jt*(arguments.length?t:1)))},Wt.rgb=function(){return Xt(this.h,this.c,this.l).rgb()},t.lab=Zt;var Jt=18,Kt=Zt.prototype=new Vt;function Qt(t,e,r){var n=(t+16)/116,i=n+e/500,a=n-r/200;return new ne(re(3.2404542*(i=.95047*te(i))-1.5371385*(n=1*te(n))-.4985314*(a=1.08883*te(a))),re(-.969266*i+1.8760108*n+.041556*a),re(.0556434*i-.2040259*n+1.0572252*a))}function $t(t,e,r){return t>0?new Yt(Math.atan2(r,e)*Pt,Math.sqrt(e*e+r*r),t):new Yt(NaN,NaN,t)}function te(t){return t>.206893034?t*t*t:(t-4/29)/7.787037}function ee(t){return t>.008856?Math.pow(t,1/3):7.787037*t+4/29}function re(t){return Math.round(255*(t<=.00304?12.92*t:1.055*Math.pow(t,1/2.4)-.055))}function ne(t,e,r){return this instanceof ne?(this.r=~~t,this.g=~~e,void(this.b=~~r)):arguments.length<2?t instanceof ne?new ne(t.r,t.g,t.b):le(""+t,ne,Gt):new ne(t,e,r)}function ie(t){return new ne(t>>16,t>>8&255,255&t)}function ae(t){return ie(t)+""}Kt.brighter=function(t){return new Zt(Math.min(100,this.l+Jt*(arguments.length?t:1)),this.a,this.b)},Kt.darker=function(t){return new Zt(Math.max(0,this.l-Jt*(arguments.length?t:1)),this.a,this.b)},Kt.rgb=function(){return Qt(this.l,this.a,this.b)},t.rgb=ne;var oe=ne.prototype=new Vt;function se(t){return t<16?"0"+Math.max(0,t).toString(16):Math.min(255,t).toString(16)}function le(t,e,r){var n,i,a,o=0,s=0,l=0;if(n=/([a-z]+)\((.*)\)/.exec(t=t.toLowerCase()))switch(i=n[2].split(","),n[1]){case"hsl":return r(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return e(he(i[0]),he(i[1]),he(i[2]))}return(a=pe.get(t))?e(a.r,a.g,a.b):(null==t||"#"!==t.charAt(0)||isNaN(a=parseInt(t.slice(1),16))||(4===t.length?(o=(3840&a)>>4,o|=o>>4,s=240&a,s|=s>>4,l=15&a,l|=l<<4):7===t.length&&(o=(16711680&a)>>16,s=(65280&a)>>8,l=255&a)),e(o,s,l))}function ce(t,e,r){var n,i,a=Math.min(t/=255,e/=255,r/=255),o=Math.max(t,e,r),s=o-a,l=(o+a)/2;return s?(i=l<.5?s/(o+a):s/(2-o-a),n=t==o?(e-r)/s+(e0&&l<1?0:n),new qt(n,i,l)}function ue(t,e,r){var n=ee((.4124564*(t=fe(t))+.3575761*(e=fe(e))+.1804375*(r=fe(r)))/.95047),i=ee((.2126729*t+.7151522*e+.072175*r)/1);return Zt(116*i-16,500*(n-i),200*(i-ee((.0193339*t+.119192*e+.9503041*r)/1.08883)))}function fe(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function he(t){var e=parseFloat(t);return"%"===t.charAt(t.length-1)?Math.round(2.55*e):e}oe.brighter=function(t){t=Math.pow(.7,arguments.length?t:1);var e=this.r,r=this.g,n=this.b,i=30;return e||r||n?(e&&e=200&&e<300||304===e){try{t=i.call(o,c)}catch(t){return void s.error.call(o,t)}s.load.call(o,t)}else s.error.call(o,c)}return this.XDomainRequest&&!("withCredentials"in c)&&/^(http(s)?:)?\/\//.test(e)&&(c=new XDomainRequest),"onload"in c?c.onload=c.onerror=f:c.onreadystatechange=function(){c.readyState>3&&f()},c.onprogress=function(e){var r=t.event;t.event=e;try{s.progress.call(o,c)}finally{t.event=r}},o.header=function(t,e){return t=(t+"").toLowerCase(),arguments.length<2?l[t]:(null==e?delete l[t]:l[t]=e+"",o)},o.mimeType=function(t){return arguments.length?(r=null==t?null:t+"",o):r},o.responseType=function(t){return arguments.length?(u=t,o):u},o.response=function(t){return i=t,o},["get","post"].forEach((function(t){o[t]=function(){return o.send.apply(o,[t].concat(n(arguments)))}})),o.send=function(t,n,i){if(2===arguments.length&&"function"==typeof n&&(i=n,n=null),c.open(t,e,!0),null==r||"accept"in l||(l.accept=r+",*/*"),c.setRequestHeader)for(var a in l)c.setRequestHeader(a,l[a]);return null!=r&&c.overrideMimeType&&c.overrideMimeType(r),null!=u&&(c.responseType=u),null!=i&&o.on("error",i).on("load",(function(t){i(null,t)})),s.beforesend.call(o,c),c.send(null==n?null:n),o},o.abort=function(){return c.abort(),o},t.rebind(o,s,"on"),null==a?o:o.get(function(t){return 1===t.length?function(e,r){t(null==e?r:null)}:t}(a))}pe.forEach((function(t,e){pe.set(t,ie(e))})),t.functor=de,t.xhr=me(C),t.dsv=function(t,e){var r=new RegExp('["'+t+"\n]"),n=t.charCodeAt(0);function i(t,r,n){arguments.length<3&&(n=r,r=null);var i=ge(t,e,null==r?a:o(r),n);return i.row=function(t){return arguments.length?i.response(null==(r=t)?a:o(t)):r},i}function a(t){return i.parse(t.responseText)}function o(t){return function(e){return i.parse(e.responseText,t)}}function s(e){return e.map(l).join(t)}function l(t){return r.test(t)?'"'+t.replace(/\"/g,'""')+'"':t}return i.parse=function(t,e){var r;return i.parseRows(t,(function(t,n){if(r)return r(t,n-1);var i=function(e){for(var r={},n=t.length,i=0;i=l)return o;if(i)return i=!1,a;var e=c;if(34===t.charCodeAt(e)){for(var r=e;r++24?(isFinite(e)&&(clearTimeout(be),be=setTimeout(Te,e)),xe=0):(xe=1,_e(Te))}function ke(){for(var t=Date.now(),e=ve;e;)t>=e.t&&e.c(t-e.t)&&(e.c=null),e=e.n;return t}function Me(){for(var t,e=ve,r=1/0;e;)e.c?(e.t8?function(t){return t/r}:function(t){return t*r},symbol:t}}));function Ee(e){var r=e.decimal,n=e.thousands,i=e.grouping,a=e.currency,o=i&&n?function(t,e){for(var r=t.length,a=[],o=0,s=i[0],l=0;r>0&&s>0&&(l+s+1>e&&(s=Math.max(1,e-l)),a.push(t.substring(r-=s,r+s)),!((l+=s+1)>e));)s=i[o=(o+1)%i.length];return a.reverse().join(n)}:C;return function(e){var n=Le.exec(e),i=n[1]||" ",s=n[2]||">",l=n[3]||"-",c=n[4]||"",u=n[5],f=+n[6],h=n[7],p=n[8],d=n[9],m=1,g="",v="",y=!1,x=!0;switch(p&&(p=+p.substring(1)),(u||"0"===i&&"="===s)&&(u=i="0",s="="),d){case"n":h=!0,d="g";break;case"%":m=100,v="%",d="f";break;case"p":m=100,v="%",d="r";break;case"b":case"o":case"x":case"X":"#"===c&&(g="0"+d.toLowerCase());case"c":x=!1;case"d":y=!0,p=0;break;case"s":m=-1,d="r"}"$"===c&&(g=a[0],v=a[1]),"r"!=d||p||(d="g"),null!=p&&("g"==d?p=Math.max(1,Math.min(21,p)):"e"!=d&&"f"!=d||(p=Math.max(0,Math.min(20,p)))),d=Ce.get(d)||Pe;var b=u&&h;return function(e){var n=v;if(y&&e%1)return"";var a=e<0||0===e&&1/e<0?(e=-e,"-"):"-"===l?"":l;if(m<0){var c=t.formatPrefix(e,p);e=c.scale(e),n=c.symbol+v}else e*=m;var _,w,T=(e=d(e,p)).lastIndexOf(".");if(T<0){var k=x?e.lastIndexOf("e"):-1;k<0?(_=e,w=""):(_=e.substring(0,k),w=e.substring(k))}else _=e.substring(0,T),w=r+e.substring(T+1);!u&&h&&(_=o(_,1/0));var M=g.length+_.length+w.length+(b?0:a.length),A=M"===s?A+a+e:"^"===s?A.substring(0,M>>=1)+a+e+A.substring(M):a+(b?e:A+e))+n}}}t.formatPrefix=function(e,r){var n=0;return(e=+e)&&(e<0&&(e*=-1),r&&(e=t.round(e,Ae(e,r))),n=1+Math.floor(1e-12+Math.log(e)/Math.LN10),n=Math.max(-24,Math.min(24,3*Math.floor((n-1)/3)))),Se[8+n/3]};var Le=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,Ce=t.map({b:function(t){return t.toString(2)},c:function(t){return String.fromCharCode(t)},o:function(t){return t.toString(8)},x:function(t){return t.toString(16)},X:function(t){return t.toString(16).toUpperCase()},g:function(t,e){return t.toPrecision(e)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},r:function(e,r){return(e=t.round(e,Ae(e,r))).toFixed(Math.max(0,Math.min(20,Ae(e*(1+1e-15),r))))}});function Pe(t){return t+""}var Ie=t.time={},Oe=Date;function ze(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}ze.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){De.setUTCDate.apply(this._,arguments)},setDay:function(){De.setUTCDay.apply(this._,arguments)},setFullYear:function(){De.setUTCFullYear.apply(this._,arguments)},setHours:function(){De.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){De.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){De.setUTCMinutes.apply(this._,arguments)},setMonth:function(){De.setUTCMonth.apply(this._,arguments)},setSeconds:function(){De.setUTCSeconds.apply(this._,arguments)},setTime:function(){De.setTime.apply(this._,arguments)}};var De=Date.prototype;function Re(t,e,r){function n(e){var r=t(e),n=a(r,1);return e-r1)for(;o=c)return-1;if(37===(i=e.charCodeAt(s++))){if(o=e.charAt(s++),!(a=w[o in Ne?e.charAt(s++):o])||(n=a(t,r,n))<0)return-1}else if(i!=r.charCodeAt(n++))return-1}return n}u.utc=function(t){var e=u(t);function r(t){try{var r=new(Oe=ze);return r._=t,e(r)}finally{Oe=Date}}return r.parse=function(t){try{Oe=ze;var r=e.parse(t);return r&&r._}finally{Oe=Date}},r.toString=e.toString,r},u.multi=u.utc.multi=or;var h=t.map(),p=qe(o),d=He(o),m=qe(s),g=He(s),v=qe(l),y=He(l),x=qe(c),b=He(c);a.forEach((function(t,e){h.set(t.toLowerCase(),e)}));var _={a:function(t){return s[t.getDay()]},A:function(t){return o[t.getDay()]},b:function(t){return c[t.getMonth()]},B:function(t){return l[t.getMonth()]},c:u(r),d:function(t,e){return Ve(t.getDate(),e,2)},e:function(t,e){return Ve(t.getDate(),e,2)},H:function(t,e){return Ve(t.getHours(),e,2)},I:function(t,e){return Ve(t.getHours()%12||12,e,2)},j:function(t,e){return Ve(1+Ie.dayOfYear(t),e,3)},L:function(t,e){return Ve(t.getMilliseconds(),e,3)},m:function(t,e){return Ve(t.getMonth()+1,e,2)},M:function(t,e){return Ve(t.getMinutes(),e,2)},p:function(t){return a[+(t.getHours()>=12)]},S:function(t,e){return Ve(t.getSeconds(),e,2)},U:function(t,e){return Ve(Ie.sundayOfYear(t),e,2)},w:function(t){return t.getDay()},W:function(t,e){return Ve(Ie.mondayOfYear(t),e,2)},x:u(n),X:u(i),y:function(t,e){return Ve(t.getFullYear()%100,e,2)},Y:function(t,e){return Ve(t.getFullYear()%1e4,e,4)},Z:ir,"%":function(){return"%"}},w={a:function(t,e,r){m.lastIndex=0;var n=m.exec(e.slice(r));return n?(t.w=g.get(n[0].toLowerCase()),r+n[0].length):-1},A:function(t,e,r){p.lastIndex=0;var n=p.exec(e.slice(r));return n?(t.w=d.get(n[0].toLowerCase()),r+n[0].length):-1},b:function(t,e,r){x.lastIndex=0;var n=x.exec(e.slice(r));return n?(t.m=b.get(n[0].toLowerCase()),r+n[0].length):-1},B:function(t,e,r){v.lastIndex=0;var n=v.exec(e.slice(r));return n?(t.m=y.get(n[0].toLowerCase()),r+n[0].length):-1},c:function(t,e,r){return f(t,_.c.toString(),e,r)},d:Qe,e:Qe,H:tr,I:tr,j:$e,L:nr,m:Ke,M:er,p:function(t,e,r){var n=h.get(e.slice(r,r+=2).toLowerCase());return null==n?-1:(t.p=n,r)},S:rr,U:Ye,w:Ge,W:We,x:function(t,e,r){return f(t,_.x.toString(),e,r)},X:function(t,e,r){return f(t,_.X.toString(),e,r)},y:Ze,Y:Xe,Z:Je,"%":ar};return u}Ie.year=Re((function(t){return(t=Ie.day(t)).setMonth(0,1),t}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t){return t.getFullYear()})),Ie.years=Ie.year.range,Ie.years.utc=Ie.year.utc.range,Ie.day=Re((function(t){var e=new Oe(2e3,0);return e.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),e}),(function(t,e){t.setDate(t.getDate()+e)}),(function(t){return t.getDate()-1})),Ie.days=Ie.day.range,Ie.days.utc=Ie.day.utc.range,Ie.dayOfYear=function(t){var e=Ie.year(t);return Math.floor((t-e-6e4*(t.getTimezoneOffset()-e.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach((function(t,e){e=7-e;var r=Ie[t]=Re((function(t){return(t=Ie.day(t)).setDate(t.getDate()-(t.getDay()+e)%7),t}),(function(t,e){t.setDate(t.getDate()+7*Math.floor(e))}),(function(t){var r=Ie.year(t).getDay();return Math.floor((Ie.dayOfYear(t)+(r+e)%7)/7)-(r!==e)}));Ie[t+"s"]=r.range,Ie[t+"s"].utc=r.utc.range,Ie[t+"OfYear"]=function(t){var r=Ie.year(t).getDay();return Math.floor((Ie.dayOfYear(t)+(r+e)%7)/7)}})),Ie.week=Ie.sunday,Ie.weeks=Ie.sunday.range,Ie.weeks.utc=Ie.sunday.utc.range,Ie.weekOfYear=Ie.sundayOfYear;var Ne={"-":"",_:" ",0:"0"},je=/^\s*\d+/,Ue=/^%/;function Ve(t,e,r){var n=t<0?"-":"",i=(n?-t:t)+"",a=i.length;return n+(a68?1900:2e3),r+i[0].length):-1}function Je(t,e,r){return/^[+-]\d{4}$/.test(e=e.slice(r,r+5))?(t.Z=-e,r+5):-1}function Ke(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function Qe(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function $e(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+3));return n?(t.j=+n[0],r+n[0].length):-1}function tr(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function er(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function rr(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function nr(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function ir(t){var e=t.getTimezoneOffset(),r=e>0?"-":"+",n=y(e)/60|0,i=y(e)%60;return r+Ve(n,"0",2)+Ve(i,"0",2)}function ar(t,e,r){Ue.lastIndex=0;var n=Ue.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function or(t){for(var e=t.length,r=-1;++r=0?1:-1,s=o*a,l=Math.cos(e),c=Math.sin(e),u=i*c,f=n*l+u*Math.cos(s),h=u*o*Math.sin(s);Er.add(Math.atan2(h,f)),r=t,n=l,i=c}Lr.point=function(o,s){Lr.point=a,r=(t=o)*Ct,n=Math.cos(s=(e=s)*Ct/2+At/4),i=Math.sin(s)},Lr.lineEnd=function(){a(t,e)}}function Pr(t){var e=t[0],r=t[1],n=Math.cos(r);return[n*Math.cos(e),n*Math.sin(e),Math.sin(r)]}function Ir(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Or(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function zr(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function Dr(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function Rr(t){var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}function Fr(t){return[Math.atan2(t[1],t[0]),Dt(t[2])]}function Br(t,e){return y(t[0]-e[0])kt?i=90:c<-kt&&(r=-90),f[0]=e,f[1]=n}};function p(t,a){u.push(f=[e=t,n=t]),ai&&(i=a)}function d(t,o){var s=Pr([t*Ct,o*Ct]);if(l){var c=Or(l,s),u=Or([c[1],-c[0],0],c);Rr(u),u=Fr(u);var f=t-a,h=f>0?1:-1,d=u[0]*Pt*h,m=y(f)>180;if(m^(h*ai&&(i=g);else if(m^(h*a<(d=(d+360)%360-180)&&di&&(i=o);m?t_(e,n)&&(n=t):_(t,n)>_(e,n)&&(e=t):n>=e?(tn&&(n=t)):t>a?_(e,t)>_(e,n)&&(n=t):_(t,n)>_(e,n)&&(e=t)}else p(t,o);l=s,a=t}function m(){h.point=d}function g(){f[0]=e,f[1]=n,h.point=p,l=null}function v(t,e){if(l){var r=t-a;c+=y(r)>180?r+(r>0?360:-360):r}else o=t,s=e;Lr.point(t,e),d(t,e)}function x(){Lr.lineStart()}function b(){v(o,s),Lr.lineEnd(),y(c)>kt&&(e=-(n=180)),f[0]=e,f[1]=n,l=null}function _(t,e){return(e-=t)<0?e+360:e}function w(t,e){return t[0]-e[0]}function T(t,e){return e[0]<=e[1]?e[0]<=t&&t<=e[1]:t_(m[0],m[1])&&(m[1]=p[1]),_(p[0],m[1])>_(m[0],m[1])&&(m[0]=p[0])):s.push(m=p);for(var l,c,p,d=-1/0,m=(o=0,s[c=s.length-1]);o<=c;m=p,++o)p=s[o],(l=_(m[1],p[0]))>d&&(d=l,e=p[0],n=m[1])}return u=f=null,e===1/0||r===1/0?[[NaN,NaN],[NaN,NaN]]:[[e,r],[n,i]]}}(),t.geo.centroid=function(e){vr=yr=xr=br=_r=wr=Tr=kr=Mr=Ar=Sr=0,t.geo.stream(e,Nr);var r=Mr,n=Ar,i=Sr,a=r*r+n*n+i*i;return a=0;--s)i.point((f=u[s])[0],f[1]);else n(p.x,p.p.x,-1,i);p=p.p}u=(p=p.o).z,d=!d}while(!p.v);i.lineEnd()}}}function Xr(t){if(e=t.length){for(var e,r,n=0,i=t[0];++n=0?1:-1,T=w*_,k=T>At,M=d*x;if(Er.add(Math.atan2(M*w*Math.sin(T),m*b+M*Math.cos(T))),a+=k?_+w*St:_,k^h>=r^v>=r){var A=Or(Pr(f),Pr(t));Rr(A);var S=Or(i,A);Rr(S);var E=(k^_>=0?-1:1)*Dt(S[2]);(n>E||n===E&&(A[0]||A[1]))&&(o+=k^_>=0?1:-1)}if(!g++)break;h=v,d=x,m=b,f=t}}return(a<-kt||a0){for(x||(o.polygonStart(),x=!0),o.lineStart();++a1&&2&e&&r.push(r.pop().concat(r.shift())),s.push(r.filter(Kr))}return u}}function Kr(t){return t.length>1}function Qr(){var t,e=[];return{lineStart:function(){e.push(t=[])},point:function(e,r){t.push([e,r])},lineEnd:z,buffer:function(){var r=e;return e=[],t=null,r},rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))}}}function $r(t,e){return((t=t.x)[0]<0?t[1]-Lt-kt:Lt-t[1])-((e=e.x)[0]<0?e[1]-Lt-kt:Lt-e[1])}var tn=Jr(Yr,(function(t){var e,r=NaN,n=NaN,i=NaN;return{lineStart:function(){t.lineStart(),e=1},point:function(a,o){var s=a>0?At:-At,l=y(a-r);y(l-At)0?Lt:-Lt),t.point(i,n),t.lineEnd(),t.lineStart(),t.point(s,n),t.point(a,n),e=0):i!==s&&l>=At&&(y(r-i)kt?Math.atan((Math.sin(e)*(a=Math.cos(n))*Math.sin(r)-Math.sin(n)*(i=Math.cos(e))*Math.sin(t))/(i*a*o)):(e+n)/2}(r,n,a,o),t.point(i,n),t.lineEnd(),t.lineStart(),t.point(s,n),e=0),t.point(r=a,n=o),i=s},lineEnd:function(){t.lineEnd(),r=n=NaN},clean:function(){return 2-e}}}),(function(t,e,r,n){var i;if(null==t)i=r*Lt,n.point(-At,i),n.point(0,i),n.point(At,i),n.point(At,0),n.point(At,-i),n.point(0,-i),n.point(-At,-i),n.point(-At,0),n.point(-At,i);else if(y(t[0]-e[0])>kt){var a=t[0]0,n=y(e)>kt;return Jr(i,(function(t){var e,s,l,c,u;return{lineStart:function(){c=l=!1,u=1},point:function(f,h){var p,d=[f,h],m=i(f,h),g=r?m?0:o(f,h):m?o(f+(f<0?At:-At),h):0;if(!e&&(c=l=m)&&t.lineStart(),m!==l&&(p=a(e,d),(Br(e,p)||Br(d,p))&&(d[0]+=kt,d[1]+=kt,m=i(d[0],d[1]))),m!==l)u=0,m?(t.lineStart(),p=a(d,e),t.point(p[0],p[1])):(p=a(e,d),t.point(p[0],p[1]),t.lineEnd()),e=p;else if(n&&e&&r^m){var v;g&s||!(v=a(d,e,!0))||(u=0,r?(t.lineStart(),t.point(v[0][0],v[0][1]),t.point(v[1][0],v[1][1]),t.lineEnd()):(t.point(v[1][0],v[1][1]),t.lineEnd(),t.lineStart(),t.point(v[0][0],v[0][1])))}!m||e&&Br(e,d)||t.point(d[0],d[1]),e=d,l=m,s=g},lineEnd:function(){l&&t.lineEnd(),e=null},clean:function(){return u|(c&&l)<<1}}}),Bn(t,6*Ct),r?[0,-t]:[-At,t-At]);function i(t,r){return Math.cos(t)*Math.cos(r)>e}function a(t,r,n){var i=[1,0,0],a=Or(Pr(t),Pr(r)),o=Ir(a,a),s=a[0],l=o-s*s;if(!l)return!n&&t;var c=e*o/l,u=-e*s/l,f=Or(i,a),h=Dr(i,c);zr(h,Dr(a,u));var p=f,d=Ir(h,p),m=Ir(p,p),g=d*d-m*(Ir(h,h)-1);if(!(g<0)){var v=Math.sqrt(g),x=Dr(p,(-d-v)/m);if(zr(x,h),x=Fr(x),!n)return x;var b,_=t[0],w=r[0],T=t[1],k=r[1];w<_&&(b=_,_=w,w=b);var M=w-_,A=y(M-At)0^x[1]<(y(x[0]-_)At^(_<=x[0]&&x[0]<=w)){var S=Dr(p,(-d+v)/m);return zr(S,h),[x,Fr(S)]}}}function o(e,n){var i=r?t:At-t,a=0;return e<-i?a|=1:e>i&&(a|=2),n<-i?a|=4:n>i&&(a|=8),a}}function rn(t,e,r,n){return function(i){var a,o=i.a,s=i.b,l=o.x,c=o.y,u=0,f=1,h=s.x-l,p=s.y-c;if(a=t-l,h||!(a>0)){if(a/=h,h<0){if(a0){if(a>f)return;a>u&&(u=a)}if(a=r-l,h||!(a<0)){if(a/=h,h<0){if(a>f)return;a>u&&(u=a)}else if(h>0){if(a0)){if(a/=p,p<0){if(a0){if(a>f)return;a>u&&(u=a)}if(a=n-c,p||!(a<0)){if(a/=p,p<0){if(a>f)return;a>u&&(u=a)}else if(p>0){if(a0&&(i.a={x:l+u*h,y:c+u*p}),f<1&&(i.b={x:l+f*h,y:c+f*p}),i}}}}}}function nn(e,r,n,i){return function(l){var c,u,f,h,p,d,m,g,v,y,x,b=l,_=Qr(),w=rn(e,r,n,i),T={point:A,lineStart:function(){T.point=S,u&&u.push(f=[]);y=!0,v=!1,m=g=NaN},lineEnd:function(){c&&(S(h,p),d&&v&&_.rejoin(),c.push(_.buffer()));T.point=A,v&&l.lineEnd()},polygonStart:function(){l=_,c=[],u=[],x=!0},polygonEnd:function(){l=b,c=t.merge(c);var r=function(t){for(var e=0,r=u.length,n=t[1],i=0;in&&Ot(c,a,t)>0&&++e:a[1]<=n&&Ot(c,a,t)<0&&--e,c=a;return 0!==e}([e,i]),n=x&&r,a=c.length;(n||a)&&(l.polygonStart(),n&&(l.lineStart(),k(null,null,1,l),l.lineEnd()),a&&Wr(c,o,r,k,l),l.polygonEnd()),c=u=f=null}};function k(t,o,l,c){var u=0,f=0;if(null==t||(u=a(t,l))!==(f=a(o,l))||s(t,o)<0^l>0)do{c.point(0===u||3===u?e:n,u>1?i:r)}while((u=(u+l+4)%4)!==f);else c.point(o[0],o[1])}function M(t,a){return e<=t&&t<=n&&r<=a&&a<=i}function A(t,e){M(t,e)&&l.point(t,e)}function S(t,e){var r=M(t=Math.max(-1e9,Math.min(1e9,t)),e=Math.max(-1e9,Math.min(1e9,e)));if(u&&f.push([t,e]),y)h=t,p=e,d=r,y=!1,r&&(l.lineStart(),l.point(t,e));else if(r&&v)l.point(t,e);else{var n={a:{x:m,y:g},b:{x:t,y:e}};w(n)?(v||(l.lineStart(),l.point(n.a.x,n.a.y)),l.point(n.b.x,n.b.y),r||l.lineEnd(),x=!1):r&&(l.lineStart(),l.point(t,e),x=!1)}m=t,g=e,v=r}return T};function a(t,i){return y(t[0]-e)0?0:3:y(t[0]-n)0?2:1:y(t[1]-r)0?1:0:i>0?3:2}function o(t,e){return s(t.x,e.x)}function s(t,e){var r=a(t,1),n=a(e,1);return r!==n?r-n:0===r?e[1]-t[1]:1===r?t[0]-e[0]:2===r?t[1]-e[1]:e[0]-t[0]}}function an(t){var e=0,r=At/3,n=Cn(t),i=n(e,r);return i.parallels=function(t){return arguments.length?n(e=t[0]*At/180,r=t[1]*At/180):[e/At*180,r/At*180]},i}function on(t,e){var r=Math.sin(t),n=(r+Math.sin(e))/2,i=1+r*(2*n-r),a=Math.sqrt(i)/n;function o(t,e){var r=Math.sqrt(i-2*n*Math.sin(e))/n;return[r*Math.sin(t*=n),a-r*Math.cos(t)]}return o.invert=function(t,e){var r=a-e;return[Math.atan2(t,r)/n,Dt((i-(t*t+r*r)*n*n)/(2*n))]},o}t.geo.clipExtent=function(){var t,e,r,n,i,a,o={stream:function(t){return i&&(i.valid=!1),(i=a(t)).valid=!0,i},extent:function(s){return arguments.length?(a=nn(t=+s[0][0],e=+s[0][1],r=+s[1][0],n=+s[1][1]),i&&(i.valid=!1,i=null),o):[[t,e],[r,n]]}};return o.extent([[0,0],[960,500]])},(t.geo.conicEqualArea=function(){return an(on)}).raw=on,t.geo.albers=function(){return t.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},t.geo.albersUsa=function(){var e,r,n,i,a=t.geo.albers(),o=t.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),s=t.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(t,r){e=[t,r]}};function c(t){var a=t[0],o=t[1];return e=null,r(a,o),e||(n(a,o),e)||i(a,o),e}return c.invert=function(t){var e=a.scale(),r=a.translate(),n=(t[0]-r[0])/e,i=(t[1]-r[1])/e;return(i>=.12&&i<.234&&n>=-.425&&n<-.214?o:i>=.166&&i<.234&&n>=-.214&&n<-.115?s:a).invert(t)},c.stream=function(t){var e=a.stream(t),r=o.stream(t),n=s.stream(t);return{point:function(t,i){e.point(t,i),r.point(t,i),n.point(t,i)},sphere:function(){e.sphere(),r.sphere(),n.sphere()},lineStart:function(){e.lineStart(),r.lineStart(),n.lineStart()},lineEnd:function(){e.lineEnd(),r.lineEnd(),n.lineEnd()},polygonStart:function(){e.polygonStart(),r.polygonStart(),n.polygonStart()},polygonEnd:function(){e.polygonEnd(),r.polygonEnd(),n.polygonEnd()}}},c.precision=function(t){return arguments.length?(a.precision(t),o.precision(t),s.precision(t),c):a.precision()},c.scale=function(t){return arguments.length?(a.scale(t),o.scale(.35*t),s.scale(t),c.translate(a.translate())):a.scale()},c.translate=function(t){if(!arguments.length)return a.translate();var e=a.scale(),u=+t[0],f=+t[1];return r=a.translate(t).clipExtent([[u-.455*e,f-.238*e],[u+.455*e,f+.238*e]]).stream(l).point,n=o.translate([u-.307*e,f+.201*e]).clipExtent([[u-.425*e+kt,f+.12*e+kt],[u-.214*e-kt,f+.234*e-kt]]).stream(l).point,i=s.translate([u-.205*e,f+.212*e]).clipExtent([[u-.214*e+kt,f+.166*e+kt],[u-.115*e-kt,f+.234*e-kt]]).stream(l).point,c},c.scale(1070)};var sn,ln,cn,un,fn,hn,pn={point:z,lineStart:z,lineEnd:z,polygonStart:function(){ln=0,pn.lineStart=dn},polygonEnd:function(){pn.lineStart=pn.lineEnd=pn.point=z,sn+=y(ln/2)}};function dn(){var t,e,r,n;function i(t,e){ln+=n*t-r*e,r=t,n=e}pn.point=function(a,o){pn.point=i,t=r=a,e=n=o},pn.lineEnd=function(){i(t,e)}}var mn={point:function(t,e){tfn&&(fn=t);ehn&&(hn=e)},lineStart:z,lineEnd:z,polygonStart:z,polygonEnd:z};function gn(){var t=vn(4.5),e=[],r={point:n,lineStart:function(){r.point=i},lineEnd:o,polygonStart:function(){r.lineEnd=s},polygonEnd:function(){r.lineEnd=o,r.point=n},pointRadius:function(e){return t=vn(e),r},result:function(){if(e.length){var t=e.join("");return e=[],t}}};function n(r,n){e.push("M",r,",",n,t)}function i(t,n){e.push("M",t,",",n),r.point=a}function a(t,r){e.push("L",t,",",r)}function o(){r.point=n}function s(){e.push("Z")}return r}function vn(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}var yn,xn={point:bn,lineStart:_n,lineEnd:wn,polygonStart:function(){xn.lineStart=Tn},polygonEnd:function(){xn.point=bn,xn.lineStart=_n,xn.lineEnd=wn}};function bn(t,e){xr+=t,br+=e,++_r}function _n(){var t,e;function r(r,n){var i=r-t,a=n-e,o=Math.sqrt(i*i+a*a);wr+=o*(t+r)/2,Tr+=o*(e+n)/2,kr+=o,bn(t=r,e=n)}xn.point=function(n,i){xn.point=r,bn(t=n,e=i)}}function wn(){xn.point=bn}function Tn(){var t,e,r,n;function i(t,e){var i=t-r,a=e-n,o=Math.sqrt(i*i+a*a);wr+=o*(r+t)/2,Tr+=o*(n+e)/2,kr+=o,Mr+=(o=n*t-r*e)*(r+t),Ar+=o*(n+e),Sr+=3*o,bn(r=t,n=e)}xn.point=function(a,o){xn.point=i,bn(t=r=a,e=n=o)},xn.lineEnd=function(){i(t,e)}}function kn(t){var e=4.5,r={point:n,lineStart:function(){r.point=i},lineEnd:o,polygonStart:function(){r.lineEnd=s},polygonEnd:function(){r.lineEnd=o,r.point=n},pointRadius:function(t){return e=t,r},result:z};function n(r,n){t.moveTo(r+e,n),t.arc(r,n,e,0,St)}function i(e,n){t.moveTo(e,n),r.point=a}function a(e,r){t.lineTo(e,r)}function o(){r.point=n}function s(){t.closePath()}return r}function Mn(t){var e=.5,r=Math.cos(30*Ct),n=16;function i(t){return(n?o:a)(t)}function a(e){return En(e,(function(r,n){r=t(r,n),e.point(r[0],r[1])}))}function o(e){var r,i,a,o,l,c,u,f,h,p,d,m,g={point:v,lineStart:y,lineEnd:b,polygonStart:function(){e.polygonStart(),g.lineStart=_},polygonEnd:function(){e.polygonEnd(),g.lineStart=y}};function v(r,n){r=t(r,n),e.point(r[0],r[1])}function y(){f=NaN,g.point=x,e.lineStart()}function x(r,i){var a=Pr([r,i]),o=t(r,i);s(f,h,u,p,d,m,f=o[0],h=o[1],u=r,p=a[0],d=a[1],m=a[2],n,e),e.point(f,h)}function b(){g.point=v,e.lineEnd()}function _(){y(),g.point=w,g.lineEnd=T}function w(t,e){x(r=t,e),i=f,a=h,o=p,l=d,c=m,g.point=x}function T(){s(f,h,u,p,d,m,i,a,r,o,l,c,n,e),g.lineEnd=b,b()}return g}function s(n,i,a,o,l,c,u,f,h,p,d,m,g,v){var x=u-n,b=f-i,_=x*x+b*b;if(_>4*e&&g--){var w=o+p,T=l+d,k=c+m,M=Math.sqrt(w*w+T*T+k*k),A=Math.asin(k/=M),S=y(y(k)-1)e||y((x*P+b*I)/_-.5)>.3||o*p+l*d+c*m0&&16,i):Math.sqrt(e)},i}function An(t){var e=Mn((function(e,r){return t([e*Pt,r*Pt])}));return function(t){return Pn(e(t))}}function Sn(t){this.stream=t}function En(t,e){return{point:e,sphere:function(){t.sphere()},lineStart:function(){t.lineStart()},lineEnd:function(){t.lineEnd()},polygonStart:function(){t.polygonStart()},polygonEnd:function(){t.polygonEnd()}}}function Ln(t){return Cn((function(){return t}))()}function Cn(e){var r,n,i,a,o,s,l=Mn((function(t,e){return[(t=r(t,e))[0]*c+a,o-t[1]*c]})),c=150,u=480,f=250,h=0,p=0,d=0,m=0,g=0,v=tn,y=C,x=null,b=null;function _(t){return[(t=i(t[0]*Ct,t[1]*Ct))[0]*c+a,o-t[1]*c]}function w(t){return(t=i.invert((t[0]-a)/c,(o-t[1])/c))&&[t[0]*Pt,t[1]*Pt]}function T(){i=Gr(n=zn(d,m,g),r);var t=r(h,p);return a=u-t[0]*c,o=f+t[1]*c,k()}function k(){return s&&(s.valid=!1,s=null),_}return _.stream=function(t){return s&&(s.valid=!1),(s=Pn(v(n,l(y(t))))).valid=!0,s},_.clipAngle=function(t){return arguments.length?(v=null==t?(x=t,tn):en((x=+t)*Ct),k()):x},_.clipExtent=function(t){return arguments.length?(b=t,y=t?nn(t[0][0],t[0][1],t[1][0],t[1][1]):C,k()):b},_.scale=function(t){return arguments.length?(c=+t,T()):c},_.translate=function(t){return arguments.length?(u=+t[0],f=+t[1],T()):[u,f]},_.center=function(t){return arguments.length?(h=t[0]%360*Ct,p=t[1]%360*Ct,T()):[h*Pt,p*Pt]},_.rotate=function(t){return arguments.length?(d=t[0]%360*Ct,m=t[1]%360*Ct,g=t.length>2?t[2]%360*Ct:0,T()):[d*Pt,m*Pt,g*Pt]},t.rebind(_,l,"precision"),function(){return r=e.apply(this,arguments),_.invert=r.invert&&w,T()}}function Pn(t){return En(t,(function(e,r){t.point(e*Ct,r*Ct)}))}function In(t,e){return[t,e]}function On(t,e){return[t>At?t-St:t<-At?t+St:t,e]}function zn(t,e,r){return t?e||r?Gr(Rn(t),Fn(e,r)):Rn(t):e||r?Fn(e,r):On}function Dn(t){return function(e,r){return[(e+=t)>At?e-St:e<-At?e+St:e,r]}}function Rn(t){var e=Dn(t);return e.invert=Dn(-t),e}function Fn(t,e){var r=Math.cos(t),n=Math.sin(t),i=Math.cos(e),a=Math.sin(e);function o(t,e){var o=Math.cos(e),s=Math.cos(t)*o,l=Math.sin(t)*o,c=Math.sin(e),u=c*r+s*n;return[Math.atan2(l*i-u*a,s*r-c*n),Dt(u*i+l*a)]}return o.invert=function(t,e){var o=Math.cos(e),s=Math.cos(t)*o,l=Math.sin(t)*o,c=Math.sin(e),u=c*i-l*a;return[Math.atan2(l*i+c*a,s*r+u*n),Dt(u*r-s*n)]},o}function Bn(t,e){var r=Math.cos(t),n=Math.sin(t);return function(i,a,o,s){var l=o*e;null!=i?(i=Nn(r,i),a=Nn(r,a),(o>0?ia)&&(i+=o*St)):(i=t+o*St,a=t-.5*l);for(var c,u=i;o>0?u>a:u2?t[2]*Ct:0),e.invert=function(e){return(e=t.invert(e[0]*Ct,e[1]*Ct))[0]*=Pt,e[1]*=Pt,e},e},On.invert=In,t.geo.circle=function(){var t,e,r=[0,0],n=6;function i(){var t="function"==typeof r?r.apply(this,arguments):r,n=zn(-t[0]*Ct,-t[1]*Ct,0).invert,i=[];return e(null,null,1,{point:function(t,e){i.push(t=n(t,e)),t[0]*=Pt,t[1]*=Pt}}),{type:"Polygon",coordinates:[i]}}return i.origin=function(t){return arguments.length?(r=t,i):r},i.angle=function(r){return arguments.length?(e=Bn((t=+r)*Ct,n*Ct),i):t},i.precision=function(r){return arguments.length?(e=Bn(t*Ct,(n=+r)*Ct),i):n},i.angle(90)},t.geo.distance=function(t,e){var r,n=(e[0]-t[0])*Ct,i=t[1]*Ct,a=e[1]*Ct,o=Math.sin(n),s=Math.cos(n),l=Math.sin(i),c=Math.cos(i),u=Math.sin(a),f=Math.cos(a);return Math.atan2(Math.sqrt((r=f*o)*r+(r=c*u-l*f*s)*r),l*u+c*f*s)},t.geo.graticule=function(){var e,r,n,i,a,o,s,l,c,u,f,h,p=10,d=p,m=90,g=360,v=2.5;function x(){return{type:"MultiLineString",coordinates:b()}}function b(){return t.range(Math.ceil(i/m)*m,n,m).map(f).concat(t.range(Math.ceil(l/g)*g,s,g).map(h)).concat(t.range(Math.ceil(r/p)*p,e,p).filter((function(t){return y(t%m)>kt})).map(c)).concat(t.range(Math.ceil(o/d)*d,a,d).filter((function(t){return y(t%g)>kt})).map(u))}return x.lines=function(){return b().map((function(t){return{type:"LineString",coordinates:t}}))},x.outline=function(){return{type:"Polygon",coordinates:[f(i).concat(h(s).slice(1),f(n).reverse().slice(1),h(l).reverse().slice(1))]}},x.extent=function(t){return arguments.length?x.majorExtent(t).minorExtent(t):x.minorExtent()},x.majorExtent=function(t){return arguments.length?(i=+t[0][0],n=+t[1][0],l=+t[0][1],s=+t[1][1],i>n&&(t=i,i=n,n=t),l>s&&(t=l,l=s,s=t),x.precision(v)):[[i,l],[n,s]]},x.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],o=+t[0][1],a=+t[1][1],r>e&&(t=r,r=e,e=t),o>a&&(t=o,o=a,a=t),x.precision(v)):[[r,o],[e,a]]},x.step=function(t){return arguments.length?x.majorStep(t).minorStep(t):x.minorStep()},x.majorStep=function(t){return arguments.length?(m=+t[0],g=+t[1],x):[m,g]},x.minorStep=function(t){return arguments.length?(p=+t[0],d=+t[1],x):[p,d]},x.precision=function(t){return arguments.length?(v=+t,c=jn(o,a,90),u=Un(r,e,v),f=jn(l,s,90),h=Un(i,n,v),x):v},x.majorExtent([[-180,-90+kt],[180,90-kt]]).minorExtent([[-180,-80-kt],[180,80+kt]])},t.geo.greatArc=function(){var e,r,n=Vn,i=qn;function a(){return{type:"LineString",coordinates:[e||n.apply(this,arguments),r||i.apply(this,arguments)]}}return a.distance=function(){return t.geo.distance(e||n.apply(this,arguments),r||i.apply(this,arguments))},a.source=function(t){return arguments.length?(n=t,e="function"==typeof t?null:t,a):n},a.target=function(t){return arguments.length?(i=t,r="function"==typeof t?null:t,a):i},a.precision=function(){return arguments.length?a:0},a},t.geo.interpolate=function(t,e){return r=t[0]*Ct,n=t[1]*Ct,i=e[0]*Ct,a=e[1]*Ct,o=Math.cos(n),s=Math.sin(n),l=Math.cos(a),c=Math.sin(a),u=o*Math.cos(r),f=o*Math.sin(r),h=l*Math.cos(i),p=l*Math.sin(i),d=2*Math.asin(Math.sqrt(Ft(a-n)+o*l*Ft(i-r))),m=1/Math.sin(d),(g=d?function(t){var e=Math.sin(t*=d)*m,r=Math.sin(d-t)*m,n=r*u+e*h,i=r*f+e*p,a=r*s+e*c;return[Math.atan2(i,n)*Pt,Math.atan2(a,Math.sqrt(n*n+i*i))*Pt]}:function(){return[r*Pt,n*Pt]}).distance=d,g;var r,n,i,a,o,s,l,c,u,f,h,p,d,m,g},t.geo.length=function(e){return yn=0,t.geo.stream(e,Hn),yn};var Hn={sphere:z,point:z,lineStart:function(){var t,e,r;function n(n,i){var a=Math.sin(i*=Ct),o=Math.cos(i),s=y((n*=Ct)-t),l=Math.cos(s);yn+=Math.atan2(Math.sqrt((s=o*Math.sin(s))*s+(s=r*a-e*o*l)*s),e*a+r*o*l),t=n,e=a,r=o}Hn.point=function(i,a){t=i*Ct,e=Math.sin(a*=Ct),r=Math.cos(a),Hn.point=n},Hn.lineEnd=function(){Hn.point=Hn.lineEnd=z}},lineEnd:z,polygonStart:z,polygonEnd:z};function Gn(t,e){function r(e,r){var n=Math.cos(e),i=Math.cos(r),a=t(n*i);return[a*i*Math.sin(e),a*Math.sin(r)]}return r.invert=function(t,r){var n=Math.sqrt(t*t+r*r),i=e(n),a=Math.sin(i),o=Math.cos(i);return[Math.atan2(t*a,n*o),Math.asin(n&&r*a/n)]},r}var Yn=Gn((function(t){return Math.sqrt(2/(1+t))}),(function(t){return 2*Math.asin(t/2)}));(t.geo.azimuthalEqualArea=function(){return Ln(Yn)}).raw=Yn;var Wn=Gn((function(t){var e=Math.acos(t);return e&&e/Math.sin(e)}),C);function Xn(t,e){var r=Math.cos(t),n=function(t){return Math.tan(At/4+t/2)},i=t===e?Math.sin(t):Math.log(r/Math.cos(e))/Math.log(n(e)/n(t)),a=r*Math.pow(n(t),i)/i;if(!i)return Kn;function o(t,e){a>0?e<-Lt+kt&&(e=-Lt+kt):e>Lt-kt&&(e=Lt-kt);var r=a/Math.pow(n(e),i);return[r*Math.sin(i*t),a-r*Math.cos(i*t)]}return o.invert=function(t,e){var r=a-e,n=It(i)*Math.sqrt(t*t+r*r);return[Math.atan2(t,r)/i,2*Math.atan(Math.pow(a/n,1/i))-Lt]},o}function Zn(t,e){var r=Math.cos(t),n=t===e?Math.sin(t):(r-Math.cos(e))/(e-t),i=r/n+t;if(y(n)1&&Ot(t[r[n-2]],t[r[n-1]],t[i])<=0;)--n;r[n++]=i}return r.slice(0,n)}function ai(t,e){return t[0]-e[0]||t[1]-e[1]}(t.geo.stereographic=function(){return Ln(ti)}).raw=ti,ei.invert=function(t,e){return[-e,2*Math.atan(Math.exp(t))-Lt]},(t.geo.transverseMercator=function(){var t=Qn(ei),e=t.center,r=t.rotate;return t.center=function(t){return t?e([-t[1],t[0]]):[(t=e())[1],-t[0]]},t.rotate=function(t){return t?r([t[0],t[1],t.length>2?t[2]+90:90]):[(t=r())[0],t[1],t[2]-90]},r([0,0,90])}).raw=ei,t.geom={},t.geom.hull=function(t){var e=ri,r=ni;if(arguments.length)return n(t);function n(t){if(t.length<3)return[];var n,i=de(e),a=de(r),o=t.length,s=[],l=[];for(n=0;n=0;--n)p.push(t[s[c[n]][2]]);for(n=+f;nkt)s=s.L;else{if(!((i=a-Ti(s,o))>kt)){n>-kt?(e=s.P,r=s):i>-kt?(e=s,r=s.N):e=r=s;break}if(!s.R){e=s;break}s=s.R}var l=yi(t);if(hi.insert(e,l),e||r){if(e===r)return Ei(e),r=yi(e.site),hi.insert(l,r),l.edge=r.edge=Pi(e.site,l.site),Si(e),void Si(r);if(r){Ei(e),Ei(r);var c=e.site,u=c.x,f=c.y,h=t.x-u,p=t.y-f,d=r.site,m=d.x-u,g=d.y-f,v=2*(h*g-p*m),y=h*h+p*p,x=m*m+g*g,b={x:(g*y-p*x)/v+u,y:(h*x-m*y)/v+f};Oi(r.edge,c,d,b),l.edge=Pi(c,t,null,b),r.edge=Pi(t,d,null,b),Si(e),Si(r)}else l.edge=Pi(e.site,l.site)}}function wi(t,e){var r=t.site,n=r.x,i=r.y,a=i-e;if(!a)return n;var o=t.P;if(!o)return-1/0;var s=(r=o.site).x,l=r.y,c=l-e;if(!c)return s;var u=s-n,f=1/a-1/c,h=u/c;return f?(-h+Math.sqrt(h*h-2*f*(u*u/(-2*c)-l+c/2+i-a/2)))/f+n:(n+s)/2}function Ti(t,e){var r=t.N;if(r)return wi(r,e);var n=t.site;return n.y===e?n.x:1/0}function ki(t){this.site=t,this.edges=[]}function Mi(t,e){return e.angle-t.angle}function Ai(){Ri(this),this.x=this.y=this.arc=this.site=this.cy=null}function Si(t){var e=t.P,r=t.N;if(e&&r){var n=e.site,i=t.site,a=r.site;if(n!==a){var o=i.x,s=i.y,l=n.x-o,c=n.y-s,u=a.x-o,f=2*(l*(g=a.y-s)-c*u);if(!(f>=-Mt)){var h=l*l+c*c,p=u*u+g*g,d=(g*h-c*p)/f,m=(l*p-u*h)/f,g=m+s,v=gi.pop()||new Ai;v.arc=t,v.site=i,v.x=d+o,v.y=g+Math.sqrt(d*d+m*m),v.cy=g,t.circle=v;for(var y=null,x=di._;x;)if(v.y=s)return;if(h>d){if(a){if(a.y>=c)return}else a={x:g,y:l};r={x:g,y:c}}else{if(a){if(a.y1)if(h>d){if(a){if(a.y>=c)return}else a={x:(l-i)/n,y:l};r={x:(c-i)/n,y:c}}else{if(a){if(a.y=s)return}else a={x:o,y:n*o+i};r={x:s,y:n*s+i}}else{if(a){if(a.xkt||y(i-r)>kt)&&(s.splice(o,0,new zi(Ii(a.site,u,y(n-f)kt?{x:f,y:y(e-f)kt?{x:y(r-d)kt?{x:h,y:y(e-h)kt?{x:y(r-p)=r&&c.x<=i&&c.y>=n&&c.y<=o?[[r,o],[i,o],[i,n],[r,n]]:[]).point=t[s]})),e}function s(t){return t.map((function(t,e){return{x:Math.round(n(t,e)/kt)*kt,y:Math.round(i(t,e)/kt)*kt,i:e}}))}return o.links=function(t){return ji(s(t)).edges.filter((function(t){return t.l&&t.r})).map((function(e){return{source:t[e.l.i],target:t[e.r.i]}}))},o.triangles=function(t){var e=[];return ji(s(t)).cells.forEach((function(r,n){for(var i,a,o,s,l=r.site,c=r.edges.sort(Mi),u=-1,f=c.length,h=c[f-1].edge,p=h.l===l?h.r:h.l;++ua||f>o||h=_)<<1|e>=b,T=w+4;wa&&(i=e.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(r=r[0])===(n=n[0])?s[o]?s[o]+=n:s[++o]=n:(s[++o]=null,l.push({i:o,x:Zi(r,n)})),a=Qi.lastIndex;return am&&(m=l.x),l.y>g&&(g=l.y),c.push(l.x),u.push(l.y);else for(f=0;fm&&(m=b),_>g&&(g=_),c.push(b),u.push(_)}var w=m-p,T=g-d;function k(t,e,r,n,i,a,o,s){if(!isNaN(r)&&!isNaN(n))if(t.leaf){var l=t.x,c=t.y;if(null!=l)if(y(l-r)+y(c-n)<.01)M(t,e,r,n,i,a,o,s);else{var u=t.point;t.x=t.y=t.point=null,M(t,u,l,c,i,a,o,s),M(t,e,r,n,i,a,o,s)}else t.x=r,t.y=n,t.point=e}else M(t,e,r,n,i,a,o,s)}function M(t,e,r,n,i,a,o,s){var l=.5*(i+o),c=.5*(a+s),u=r>=l,f=n>=c,h=f<<1|u;t.leaf=!1,u?i=l:o=l,f?a=c:s=c,k(t=t.nodes[h]||(t.nodes[h]={leaf:!0,nodes:[],point:null,x:null,y:null}),e,r,n,i,a,o,s)}w>T?g=d+w:m=p+T;var A={leaf:!0,nodes:[],point:null,x:null,y:null,add:function(t){k(A,t,+v(t,++f),+x(t,f),p,d,m,g)},visit:function(t){Gi(t,A,p,d,m,g)},find:function(t){return Yi(A,t[0],t[1],p,d,m,g)}};if(f=-1,null==e){for(;++f=0&&!(n=t.interpolators[i](e,r)););return n}function ta(t,e){var r,n=[],i=[],a=t.length,o=e.length,s=Math.min(t.length,e.length);for(r=0;r=1?1:t(e)}}function aa(t){return function(e){return 1-t(1-e)}}function oa(t){return function(e){return.5*(e<.5?t(2*e):2-t(2-2*e))}}function sa(t){return t*t}function la(t){return t*t*t}function ca(t){if(t<=0)return 0;if(t>=1)return 1;var e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)}function ua(t){return 1-Math.cos(t*Lt)}function fa(t){return Math.pow(2,10*(t-1))}function ha(t){return 1-Math.sqrt(1-t*t)}function pa(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}function da(t,e){return e-=t,function(r){return Math.round(t+e*r)}}function ma(t){var e,r,n,i=[t.a,t.b],a=[t.c,t.d],o=va(i),s=ga(i,a),l=va(((e=a)[0]+=(n=-s)*(r=i)[0],e[1]+=n*r[1],e))||0;i[0]*a[1]=0?t.slice(0,e):t,i=e>=0?t.slice(e+1):"in";return n=ra.get(n)||ea,ia((i=na.get(i)||C)(n.apply(null,r.call(arguments,1))))},t.interpolateHcl=function(e,r){e=t.hcl(e),r=t.hcl(r);var n=e.h,i=e.c,a=e.l,o=r.h-n,s=r.c-i,l=r.l-a;isNaN(s)&&(s=0,i=isNaN(i)?r.c:i);isNaN(o)?(o=0,n=isNaN(n)?r.h:n):o>180?o-=360:o<-180&&(o+=360);return function(t){return Xt(n+o*t,i+s*t,a+l*t)+""}},t.interpolateHsl=function(e,r){e=t.hsl(e),r=t.hsl(r);var n=e.h,i=e.s,a=e.l,o=r.h-n,s=r.s-i,l=r.l-a;isNaN(s)&&(s=0,i=isNaN(i)?r.s:i);isNaN(o)?(o=0,n=isNaN(n)?r.h:n):o>180?o-=360:o<-180&&(o+=360);return function(t){return Gt(n+o*t,i+s*t,a+l*t)+""}},t.interpolateLab=function(e,r){e=t.lab(e),r=t.lab(r);var n=e.l,i=e.a,a=e.b,o=r.l-n,s=r.a-i,l=r.b-a;return function(t){return Qt(n+o*t,i+s*t,a+l*t)+""}},t.interpolateRound=da,t.transform=function(e){var r=i.createElementNS(t.ns.prefix.svg,"g");return(t.transform=function(t){if(null!=t){r.setAttribute("transform",t);var e=r.transform.baseVal.consolidate()}return new ma(e?e.matrix:ya)})(e)},ma.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var ya={a:1,b:0,c:0,d:1,e:0,f:0};function xa(t){return t.length?t.pop()+",":""}function ba(e,r){var n=[],i=[];return e=t.transform(e),r=t.transform(r),function(t,e,r,n){if(t[0]!==e[0]||t[1]!==e[1]){var i=r.push("translate(",null,",",null,")");n.push({i:i-4,x:Zi(t[0],e[0])},{i:i-2,x:Zi(t[1],e[1])})}else(e[0]||e[1])&&r.push("translate("+e+")")}(e.translate,r.translate,n,i),function(t,e,r,n){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),n.push({i:r.push(xa(r)+"rotate(",null,")")-2,x:Zi(t,e)})):e&&r.push(xa(r)+"rotate("+e+")")}(e.rotate,r.rotate,n,i),function(t,e,r,n){t!==e?n.push({i:r.push(xa(r)+"skewX(",null,")")-2,x:Zi(t,e)}):e&&r.push(xa(r)+"skewX("+e+")")}(e.skew,r.skew,n,i),function(t,e,r,n){if(t[0]!==e[0]||t[1]!==e[1]){var i=r.push(xa(r)+"scale(",null,",",null,")");n.push({i:i-4,x:Zi(t[0],e[0])},{i:i-2,x:Zi(t[1],e[1])})}else 1===e[0]&&1===e[1]||r.push(xa(r)+"scale("+e+")")}(e.scale,r.scale,n,i),e=r=null,function(t){for(var e,r=-1,a=i.length;++r0?n=t:(e.c=null,e.t=NaN,e=null,l.end({type:"end",alpha:n=0})):t>0&&(l.start({type:"start",alpha:n=t}),e=we(s.tick)),s):n},s.start=function(){var t,e,r,n=v.length,l=y.length,u=c[0],d=c[1];for(t=0;t=0;)r.push(i[n])}function za(t,e){for(var r=[t],n=[];null!=(t=r.pop());)if(n.push(t),(a=t.children)&&(i=a.length))for(var i,a,o=-1;++o=0;)o.push(u=c[l]),u.parent=a,u.depth=a.depth+1;r&&(a.value=0),a.children=c}else r&&(a.value=+r.call(n,a,a.depth)||0),delete a.children;return za(i,(function(e){var n,i;t&&(n=e.children)&&n.sort(t),r&&(i=e.parent)&&(i.value+=e.value)})),s}return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(Oa(t,(function(t){t.children&&(t.value=0)})),za(t,(function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)}))),t},n},t.layout.partition=function(){var e=t.layout.hierarchy(),r=[1,1];function n(t,n){var i=e.call(this,t,n);return function t(e,r,n,i){var a=e.children;if(e.x=r,e.y=e.depth*i,e.dx=n,e.dy=i,a&&(o=a.length)){var o,s,l,c=-1;for(n=e.value?n/e.value:0;++cs&&(s=n),o.push(n)}for(r=0;ri&&(n=r,i=e);return n}function Xa(t){return t.reduce(Za,0)}function Za(t,e){return t+e[1]}function Ja(t,e){return Ka(t,Math.ceil(Math.log(e.length)/Math.LN2+1))}function Ka(t,e){for(var r=-1,n=+t[0],i=(t[1]-n)/e,a=[];++r<=e;)a[r]=i*r+n;return a}function Qa(e){return[t.min(e),t.max(e)]}function $a(t,e){return t.value-e.value}function to(t,e){var r=t._pack_next;t._pack_next=e,e._pack_prev=t,e._pack_next=r,r._pack_prev=e}function eo(t,e){t._pack_next=e,e._pack_prev=t}function ro(t,e){var r=e.x-t.x,n=e.y-t.y,i=t.r+e.r;return.999*i*i>r*r+n*n}function no(t){if((e=t.children)&&(l=e.length)){var e,r,n,i,a,o,s,l,c=1/0,u=-1/0,f=1/0,h=-1/0;if(e.forEach(io),(r=e[0]).x=-r.r,r.y=0,x(r),l>1&&((n=e[1]).x=n.r,n.y=0,x(n),l>2))for(oo(r,n,i=e[2]),x(i),to(r,i),r._pack_prev=i,to(i,n),n=r._pack_next,a=3;a0)for(o=-1;++o=f[0]&&l<=f[1]&&((s=c[t.bisect(h,l,1,d)-1]).y+=m,s.push(a[o]));return c}return a.value=function(t){return arguments.length?(r=t,a):r},a.range=function(t){return arguments.length?(n=de(t),a):n},a.bins=function(t){return arguments.length?(i="number"==typeof t?function(e){return Ka(e,t)}:de(t),a):i},a.frequency=function(t){return arguments.length?(e=!!t,a):e},a},t.layout.pack=function(){var e,r=t.layout.hierarchy().sort($a),n=0,i=[1,1];function a(t,a){var o=r.call(this,t,a),s=o[0],l=i[0],c=i[1],u=null==e?Math.sqrt:"function"==typeof e?e:function(){return e};if(s.x=s.y=0,za(s,(function(t){t.r=+u(t.value)})),za(s,no),n){var f=n*(e?1:Math.max(2*s.r/l,2*s.r/c))/2;za(s,(function(t){t.r+=f})),za(s,no),za(s,(function(t){t.r-=f}))}return function t(e,r,n,i){var a=e.children;if(e.x=r+=i*e.x,e.y=n+=i*e.y,e.r*=i,a)for(var o=-1,s=a.length;++op.x&&(p=t),t.depth>d.depth&&(d=t)}));var m=r(h,p)/2-h.x,g=n[0]/(p.x+r(p,h)/2+m),v=n[1]/(d.depth||1);Oa(u,(function(t){t.x=(t.x+m)*g,t.y=t.depth*v}))}return c}function o(t){var e=t.children,n=t.parent.children,i=t.i?n[t.i-1]:null;if(e.length){!function(t){var e,r=0,n=0,i=t.children,a=i.length;for(;--a>=0;)(e=i[a]).z+=r,e.m+=r,r+=e.s+(n+=e.c)}(t);var a=(e[0].z+e[e.length-1].z)/2;i?(t.z=i.z+r(t._,i._),t.m=t.z-a):t.z=a}else i&&(t.z=i.z+r(t._,i._));t.parent.A=function(t,e,n){if(e){for(var i,a=t,o=t,s=e,l=a.parent.children[0],c=a.m,u=o.m,f=s.m,h=l.m;s=co(s),a=lo(a),s&&a;)l=lo(l),(o=co(o)).a=t,(i=s.z+f-a.z-c+r(s._,a._))>0&&(uo(fo(s,t,n),t,i),c+=i,u+=i),f+=s.m,c+=a.m,h+=l.m,u+=o.m;s&&!co(o)&&(o.t=s,o.m+=f-u),a&&!lo(l)&&(l.t=a,l.m+=c-h,n=t)}return n}(t,i,t.parent.A||n[0])}function s(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function l(t){t.x*=n[0],t.y=t.depth*n[1]}return a.separation=function(t){return arguments.length?(r=t,a):r},a.size=function(t){return arguments.length?(i=null==(n=t)?l:null,a):i?null:n},a.nodeSize=function(t){return arguments.length?(i=null==(n=t)?null:l,a):i?n:null},Ia(a,e)},t.layout.cluster=function(){var e=t.layout.hierarchy().sort(null).value(null),r=so,n=[1,1],i=!1;function a(a,o){var s,l=e.call(this,a,o),c=l[0],u=0;za(c,(function(e){var n=e.children;n&&n.length?(e.x=function(t){return t.reduce((function(t,e){return t+e.x}),0)/t.length}(n),e.y=function(e){return 1+t.max(e,(function(t){return t.y}))}(n)):(e.x=s?u+=r(e,s):0,e.y=0,s=e)}));var f=function t(e){var r=e.children;return r&&r.length?t(r[0]):e}(c),h=function t(e){var r,n=e.children;return n&&(r=n.length)?t(n[r-1]):e}(c),p=f.x-r(f,h)/2,d=h.x+r(h,f)/2;return za(c,i?function(t){t.x=(t.x-c.x)*n[0],t.y=(c.y-t.y)*n[1]}:function(t){t.x=(t.x-p)/(d-p)*n[0],t.y=(1-(c.y?t.y/c.y:1))*n[1]}),l}return a.separation=function(t){return arguments.length?(r=t,a):r},a.size=function(t){return arguments.length?(i=null==(n=t),a):i?null:n},a.nodeSize=function(t){return arguments.length?(i=null!=(n=t),a):i?n:null},Ia(a,e)},t.layout.treemap=function(){var e,r=t.layout.hierarchy(),n=Math.round,i=[1,1],a=null,o=ho,s=!1,l="squarify",c=.5*(1+Math.sqrt(5));function u(t,e){for(var r,n,i=-1,a=t.length;++i0;)s.push(r=c[i-1]),s.area+=r.area,"squarify"!==l||(n=p(s,m))<=h?(c.pop(),h=n):(s.area-=s.pop().area,d(s,m,a,!1),m=Math.min(a.dx,a.dy),s.length=s.area=0,h=1/0);s.length&&(d(s,m,a,!0),s.length=s.area=0),e.forEach(f)}}function h(t){var e=t.children;if(e&&e.length){var r,n=o(t),i=e.slice(),a=[];for(u(i,n.dx*n.dy/t.value),a.area=0;r=i.pop();)a.push(r),a.area+=r.area,null!=r.z&&(d(a,r.z?n.dx:n.dy,n,!i.length),a.length=a.area=0);e.forEach(h)}}function p(t,e){for(var r,n=t.area,i=0,a=1/0,o=-1,s=t.length;++oi&&(i=r));return e*=e,(n*=n)?Math.max(e*i*c/n,n/(e*a*c)):1/0}function d(t,e,r,i){var a,o=-1,s=t.length,l=r.x,c=r.y,u=e?n(t.area/e):0;if(e==r.dx){for((i||u>r.dy)&&(u=r.dy);++or.dx)&&(u=r.dx);++o1);return t+e*r*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var e=t.random.normal.apply(t,arguments);return function(){return Math.exp(e())}},bates:function(e){var r=t.random.irwinHall(e);return function(){return r()/e}},irwinHall:function(t){return function(){for(var e=0,r=0;r2?_o:vo,s=i?wa:_a;return a=t(e,r,s,n),o=t(r,e,s,$i),l}function l(t){return a(t)}return l.invert=function(t){return o(t)},l.domain=function(t){return arguments.length?(e=t.map(Number),s()):e},l.range=function(t){return arguments.length?(r=t,s()):r},l.rangeRound=function(t){return l.range(t).interpolate(da)},l.clamp=function(t){return arguments.length?(i=t,s()):i},l.interpolate=function(t){return arguments.length?(n=t,s()):n},l.ticks=function(t){return Mo(e,t)},l.tickFormat=function(t,r){return Ao(e,t,r)},l.nice=function(t){return To(e,t),s()},l.copy=function(){return t(e,r,n,i)},s()}([0,1],[0,1],$i,!1)};var So={s:1,g:1,p:1,r:1,e:1};function Eo(t){return-Math.floor(Math.log(t)/Math.LN10+.01)}t.scale.log=function(){return function e(r,n,i,a){function o(t){return(i?Math.log(t<0?0:t):-Math.log(t>0?0:-t))/Math.log(n)}function s(t){return i?Math.pow(n,t):-Math.pow(n,-t)}function l(t){return r(o(t))}return l.invert=function(t){return s(r.invert(t))},l.domain=function(t){return arguments.length?(i=t[0]>=0,r.domain((a=t.map(Number)).map(o)),l):a},l.base=function(t){return arguments.length?(n=+t,r.domain(a.map(o)),l):n},l.nice=function(){var t=yo(a.map(o),i?Math:Co);return r.domain(t),a=t.map(s),l},l.ticks=function(){var t=mo(a),e=[],r=t[0],l=t[1],c=Math.floor(o(r)),u=Math.ceil(o(l)),f=n%1?2:n;if(isFinite(u-c)){if(i){for(;c0;h--)e.push(s(c)*h);for(c=0;e[c]l;u--);e=e.slice(c,u)}return e},l.tickFormat=function(e,r){if(!arguments.length)return Lo;arguments.length<2?r=Lo:"function"!=typeof r&&(r=t.format(r));var i=Math.max(1,n*e/l.ticks().length);return function(t){var e=t/s(Math.round(o(t)));return e*n0?i[t-1]:r[0],tf?0:1;if(c=Et)return l(c,p)+(s?l(s,1-p):"")+"Z";var d,m,g,v,y,x,b,_,w,T,k,M,A=0,S=0,E=[];if((v=(+o.apply(this,arguments)||0)/2)&&(g=n===Fo?Math.sqrt(s*s+c*c):+n.apply(this,arguments),p||(S*=-1),c&&(S=Dt(g/c*Math.sin(v))),s&&(A=Dt(g/s*Math.sin(v)))),c){y=c*Math.cos(u+S),x=c*Math.sin(u+S),b=c*Math.cos(f-S),_=c*Math.sin(f-S);var L=Math.abs(f-u-2*S)<=At?0:1;if(S&&qo(y,x,b,_)===p^L){var C=(u+f)/2;y=c*Math.cos(C),x=c*Math.sin(C),b=_=null}}else y=x=0;if(s){w=s*Math.cos(f-A),T=s*Math.sin(f-A),k=s*Math.cos(u+A),M=s*Math.sin(u+A);var P=Math.abs(u-f+2*A)<=At?0:1;if(A&&qo(w,T,k,M)===1-p^P){var I=(u+f)/2;w=s*Math.cos(I),T=s*Math.sin(I),k=M=null}}else w=T=0;if(h>kt&&(d=Math.min(Math.abs(c-s)/2,+r.apply(this,arguments)))>.001){m=s0?0:1}function Ho(t,e,r,n,i){var a=t[0]-e[0],o=t[1]-e[1],s=(i?n:-n)/Math.sqrt(a*a+o*o),l=s*o,c=-s*a,u=t[0]+l,f=t[1]+c,h=e[0]+l,p=e[1]+c,d=(u+h)/2,m=(f+p)/2,g=h-u,v=p-f,y=g*g+v*v,x=r-n,b=u*p-h*f,_=(v<0?-1:1)*Math.sqrt(Math.max(0,x*x*y-b*b)),w=(b*v-g*_)/y,T=(-b*g-v*_)/y,k=(b*v+g*_)/y,M=(-b*g+v*_)/y,A=w-d,S=T-m,E=k-d,L=M-m;return A*A+S*S>E*E+L*L&&(w=k,T=M),[[w-l,T-c],[w*r/x,T*r/x]]}function Go(t){var e=ri,r=ni,n=Yr,i=Wo,a=i.key,o=.7;function s(a){var s,l=[],c=[],u=-1,f=a.length,h=de(e),p=de(r);function d(){l.push("M",i(t(c),o))}for(;++u1&&i.push("H",n[0]);return i.join("")},"step-before":Zo,"step-after":Jo,basis:$o,"basis-open":function(t){if(t.length<4)return Wo(t);var e,r=[],n=-1,i=t.length,a=[0],o=[0];for(;++n<3;)e=t[n],a.push(e[0]),o.push(e[1]);r.push(ts(ns,a)+","+ts(ns,o)),--n;for(;++n9&&(i=3*e/Math.sqrt(i),o[s]=i*r,o[s+1]=i*n));s=-1;for(;++s<=l;)i=(t[Math.min(l,s+1)][0]-t[Math.max(0,s-1)][0])/(6*(1+o[s]*o[s])),a.push([i||0,o[s]*i||0]);return a}(t))}});function Wo(t){return t.length>1?t.join("L"):t+"Z"}function Xo(t){return t.join("L")+"Z"}function Zo(t){for(var e=0,r=t.length,n=t[0],i=[n[0],",",n[1]];++e1){s=e[1],a=t[l],l++,n+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(a[0]-s[0])+","+(a[1]-s[1])+","+a[0]+","+a[1];for(var c=2;cAt)+",1 "+e}function l(t,e,r,n){return"Q 0,0 "+n}return a.radius=function(t){return arguments.length?(r=de(t),a):r},a.source=function(e){return arguments.length?(t=de(e),a):t},a.target=function(t){return arguments.length?(e=de(t),a):e},a.startAngle=function(t){return arguments.length?(n=de(t),a):n},a.endAngle=function(t){return arguments.length?(i=de(t),a):i},a},t.svg.diagonal=function(){var t=Vn,e=qn,r=cs;function n(n,i){var a=t.call(this,n,i),o=e.call(this,n,i),s=(a.y+o.y)/2,l=[a,{x:a.x,y:s},{x:o.x,y:s},o];return"M"+(l=l.map(r))[0]+"C"+l[1]+" "+l[2]+" "+l[3]}return n.source=function(e){return arguments.length?(t=de(e),n):t},n.target=function(t){return arguments.length?(e=de(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},t.svg.diagonal.radial=function(){var e=t.svg.diagonal(),r=cs,n=e.projection;return e.projection=function(t){return arguments.length?n(us(r=t)):r},e},t.svg.symbol=function(){var t=hs,e=fs;function r(r,n){return(ds.get(t.call(this,r,n))||ps)(e.call(this,r,n))}return r.type=function(e){return arguments.length?(t=de(e),r):t},r.size=function(t){return arguments.length?(e=de(t),r):e},r};var ds=t.map({circle:ps,cross:function(t){var e=Math.sqrt(t/5)/2;return"M"+-3*e+","+-e+"H"+-e+"V"+-3*e+"H"+e+"V"+-e+"H"+3*e+"V"+e+"H"+e+"V"+3*e+"H"+-e+"V"+e+"H"+-3*e+"Z"},diamond:function(t){var e=Math.sqrt(t/(2*gs)),r=e*gs;return"M0,"+-e+"L"+r+",0 0,"+e+" "+-r+",0Z"},square:function(t){var e=Math.sqrt(t)/2;return"M"+-e+","+-e+"L"+e+","+-e+" "+e+","+e+" "+-e+","+e+"Z"},"triangle-down":function(t){var e=Math.sqrt(t/ms),r=e*ms/2;return"M0,"+r+"L"+e+","+-r+" "+-e+","+-r+"Z"},"triangle-up":function(t){var e=Math.sqrt(t/ms),r=e*ms/2;return"M0,"+-r+"L"+e+","+r+" "+-e+","+r+"Z"}});t.svg.symbolTypes=ds.keys();var ms=Math.sqrt(3),gs=Math.tan(30*Ct);Y.transition=function(t){for(var e,r,n=bs||++Ts,i=As(t),a=[],o=_s||{time:Date.now(),ease:ca,delay:0,duration:250},s=-1,l=this.length;++s0;)c[--h].call(t,o);if(a>=1)return f.event&&f.event.end.call(t,t.__data__,e),--u.count?delete u[n]:delete t[r],1}f||(a=i.time,o=we((function(t){var e=f.delay;if(o.t=e+a,e<=t)return h(t-e);o.c=h}),0,a),f=u[n]={tween:new _,time:a,timer:o,delay:i.delay,duration:i.duration,ease:i.ease,index:e},i=null,++u.count)}ws.call=Y.call,ws.empty=Y.empty,ws.node=Y.node,ws.size=Y.size,t.transition=function(e,r){return e&&e.transition?bs?e.transition(r):e:t.selection().transition(e)},t.transition.prototype=ws,ws.select=function(t){var e,r,n,i=this.id,a=this.namespace,o=[];t=W(t);for(var s=-1,l=this.length;++srect,.s>rect").attr("width",s[1]-s[0])}function m(t){t.select(".extent").attr("y",l[0]),t.selectAll(".extent,.e>rect,.w>rect").attr("height",l[1]-l[0])}function g(){var f,g,v=this,y=t.select(t.event.target),x=n.of(v,arguments),b=t.select(v),_=y.datum(),w=!/^(n|s)$/.test(_)&&i,T=!/^(e|w)$/.test(_)&&a,k=y.classed("extent"),M=bt(v),A=t.mouse(v),S=t.select(o(v)).on("keydown.brush",C).on("keyup.brush",P);if(t.event.changedTouches?S.on("touchmove.brush",I).on("touchend.brush",z):S.on("mousemove.brush",I).on("mouseup.brush",z),b.interrupt().selectAll("*").interrupt(),k)A[0]=s[0]-A[0],A[1]=l[0]-A[1];else if(_){var E=+/w$/.test(_),L=+/^n/.test(_);g=[s[1-E]-A[0],l[1-L]-A[1]],A[0]=s[E],A[1]=l[L]}else t.event.altKey&&(f=A.slice());function C(){32==t.event.keyCode&&(k||(f=null,A[0]-=s[1],A[1]-=l[1],k=2),F())}function P(){32==t.event.keyCode&&2==k&&(A[0]+=s[1],A[1]+=l[1],k=0,F())}function I(){var e=t.mouse(v),r=!1;g&&(e[0]+=g[0],e[1]+=g[1]),k||(t.event.altKey?(f||(f=[(s[0]+s[1])/2,(l[0]+l[1])/2]),A[0]=s[+(e[0]1?{floor:function(e){for(;s(e=t.floor(e));)e=Ns(e-1);return e},ceil:function(e){for(;s(e=t.ceil(e));)e=Ns(+e+1);return e}}:t))},i.ticks=function(t,e){var r=mo(i.domain()),n=null==t?a(r,10):"number"==typeof t?a(r,t):!t.range&&[{range:t},e];return n&&(t=n[0],e=n[1]),t.range(r[0],Ns(+r[1]+1),e<1?1:e)},i.tickFormat=function(){return n},i.copy=function(){return Bs(e.copy(),r,n)},wo(i,e)}function Ns(t){return new Date(t)}zs.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Fs:Rs,Fs.parse=function(t){var e=new Date(t);return isNaN(e)?null:e},Fs.toString=Rs.toString,Ie.second=Re((function(t){return new Oe(1e3*Math.floor(t/1e3))}),(function(t,e){t.setTime(t.getTime()+1e3*Math.floor(e))}),(function(t){return t.getSeconds()})),Ie.seconds=Ie.second.range,Ie.seconds.utc=Ie.second.utc.range,Ie.minute=Re((function(t){return new Oe(6e4*Math.floor(t/6e4))}),(function(t,e){t.setTime(t.getTime()+6e4*Math.floor(e))}),(function(t){return t.getMinutes()})),Ie.minutes=Ie.minute.range,Ie.minutes.utc=Ie.minute.utc.range,Ie.hour=Re((function(t){var e=t.getTimezoneOffset()/60;return new Oe(36e5*(Math.floor(t/36e5-e)+e))}),(function(t,e){t.setTime(t.getTime()+36e5*Math.floor(e))}),(function(t){return t.getHours()})),Ie.hours=Ie.hour.range,Ie.hours.utc=Ie.hour.utc.range,Ie.month=Re((function(t){return(t=Ie.day(t)).setDate(1),t}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t){return t.getMonth()})),Ie.months=Ie.month.range,Ie.months.utc=Ie.month.utc.range;var js=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Us=[[Ie.second,1],[Ie.second,5],[Ie.second,15],[Ie.second,30],[Ie.minute,1],[Ie.minute,5],[Ie.minute,15],[Ie.minute,30],[Ie.hour,1],[Ie.hour,3],[Ie.hour,6],[Ie.hour,12],[Ie.day,1],[Ie.day,2],[Ie.week,1],[Ie.month,1],[Ie.month,3],[Ie.year,1]],Vs=zs.multi([[".%L",function(t){return t.getMilliseconds()}],[":%S",function(t){return t.getSeconds()}],["%I:%M",function(t){return t.getMinutes()}],["%I %p",function(t){return t.getHours()}],["%a %d",function(t){return t.getDay()&&1!=t.getDate()}],["%b %d",function(t){return 1!=t.getDate()}],["%B",function(t){return t.getMonth()}],["%Y",Yr]]),qs={range:function(e,r,n){return t.range(Math.ceil(e/n)*n,+r,n).map(Ns)},floor:C,ceil:C};Us.year=Ie.year,Ie.scale=function(){return Bs(t.scale.linear(),Us,Vs)};var Hs=Us.map((function(t){return[t[0].utc,t[1]]})),Gs=Ds.multi([[".%L",function(t){return t.getUTCMilliseconds()}],[":%S",function(t){return t.getUTCSeconds()}],["%I:%M",function(t){return t.getUTCMinutes()}],["%I %p",function(t){return t.getUTCHours()}],["%a %d",function(t){return t.getUTCDay()&&1!=t.getUTCDate()}],["%b %d",function(t){return 1!=t.getUTCDate()}],["%B",function(t){return t.getUTCMonth()}],["%Y",Yr]]);function Ys(t){return JSON.parse(t.responseText)}function Ws(t){var e=i.createRange();return e.selectNode(i.body),e.createContextualFragment(t.responseText)}Hs.year=Ie.year.utc,Ie.scale.utc=function(){return Bs(t.scale.linear(),Hs,Gs)},t.text=me((function(t){return t.responseText})),t.json=function(t,e){return ge(t,"application/json",Ys,e)},t.html=function(t,e){return ge(t,"text/html",Ws,e)},t.xml=me((function(t){return t.responseXML})),"object"==typeof e&&e.exports?e.exports=t:this.d3=t}()},{}],58:[function(t,e,r){"use strict";e.exports=t("./quad")},{"./quad":59}],59:[function(t,e,r){"use strict";var n=t("binary-search-bounds"),i=t("clamp"),a=t("parse-rect"),o=t("array-bounds"),s=t("pick-by-alias"),l=t("defined"),c=t("flatten-vertex-data"),u=t("is-obj"),f=t("dtype"),h=t("math-log2");function p(t,e){for(var r=e[0],n=e[1],a=1/(e[2]-r),o=1/(e[3]-n),s=new Array(t.length),l=0,c=t.length/2;l>>1;e.dtype||(e.dtype="array"),"string"==typeof e.dtype?d=new(f(e.dtype))(g):e.dtype&&(d=e.dtype,Array.isArray(d)&&(d.length=g));for(var v=0;vr||s>1073741824){for(var h=0;he+n||w>r+n||T=M||a===o)){var s=y[i];void 0===o&&(o=s.length);for(var l=a;l=d&&u<=g&&f>=m&&f<=v&&S.push(c)}var h=x[i],p=h[4*a+0],b=h[4*a+1],A=h[4*a+2],E=h[4*a+3],P=C(h,a+1),I=.5*n,O=i+1;L(e,r,I,O,p,b||A||E||P),L(e,r+I,I,O,b,A||E||P),L(e+I,r,I,O,A,E||P),L(e+I,r+I,I,O,E,P)}}function C(t,e){for(var r=null,n=0;null===r;)if(r=t[4*e+n],++n>t.length)return null;return r}return L(0,0,1,0,0,1),S},d;function E(t,e,r,i,a){for(var o=[],s=0;s0){e+=Math.abs(a(t[0]));for(var r=1;r2){for(s=0;st[0]&&(e[0]=t[0]),e[1]>t[1]&&(e[1]=t[1]),e[2]=0))throw new Error("precision must be a positive number");var r=Math.pow(10,e||0);return Math.round(t*r)/r},r.radiansToLength=f,r.lengthToRadians=h,r.lengthToDegrees=function(t,e){return p(h(t,e))},r.bearingToAzimuth=function(t){var e=t%360;return e<0&&(e+=360),e},r.radiansToDegrees=p,r.degreesToRadians=function(t){return t%360*Math.PI/180},r.convertLength=function(t,e,r){if(void 0===e&&(e="kilometers"),void 0===r&&(r="kilometers"),!(t>=0))throw new Error("length must be a positive number");return f(h(t,e),r)},r.convertArea=function(t,e,n){if(void 0===e&&(e="meters"),void 0===n&&(n="kilometers"),!(t>=0))throw new Error("area must be a positive number");var i=r.areaFactors[e];if(!i)throw new Error("invalid original units");var a=r.areaFactors[n];if(!a)throw new Error("invalid final units");return t/i*a},r.isNumber=d,r.isObject=function(t){return!!t&&t.constructor===Object},r.validateBBox=function(t){if(!t)throw new Error("bbox is required");if(!Array.isArray(t))throw new Error("bbox must be an Array");if(4!==t.length&&6!==t.length)throw new Error("bbox must be an Array of 4 or 6 numbers");t.forEach((function(t){if(!d(t))throw new Error("bbox must only contain numbers")}))},r.validateId=function(t){if(!t)throw new Error("id is required");if(-1===["string","number"].indexOf(typeof t))throw new Error("id must be a number or a string")},r.radians2degrees=function(){throw new Error("method has been renamed to `radiansToDegrees`")},r.degrees2radians=function(){throw new Error("method has been renamed to `degreesToRadians`")},r.distanceToDegrees=function(){throw new Error("method has been renamed to `lengthToDegrees`")},r.distanceToRadians=function(){throw new Error("method has been renamed to `lengthToRadians`")},r.radiansToDistance=function(){throw new Error("method has been renamed to `radiansToLength`")},r.bearingToAngle=function(){throw new Error("method has been renamed to `bearingToAzimuth`")},r.convertDistance=function(){throw new Error("method has been renamed to `convertLength`")}},{}],64:[function(t,e,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n=t("@turf/helpers");function i(t,e,r){if(null!==t)for(var n,a,o,s,l,c,u,f,h=0,p=0,d=t.type,m="FeatureCollection"===d,g="Feature"===d,v=m?t.features.length:1,y=0;yc||p>u||d>f)return l=i,c=r,u=p,f=d,void(o=0);var m=n.lineString([l,i],t.properties);if(!1===e(m,r,a,d,o))return!1;o++,l=i}))&&void 0}}}))}function u(t,e){if(!t)throw new Error("geojson is required");l(t,(function(t,r,i){if(null!==t.geometry){var a=t.geometry.type,o=t.geometry.coordinates;switch(a){case"LineString":if(!1===e(t,r,i,0,0))return!1;break;case"Polygon":for(var s=0;si&&(i=t[o]),t[o] * @license MIT - */function i(t,e){if(t===e)return 0;for(var r=t.length,n=e.length,i=0,a=Math.min(r,n);i=0;c--)if(u[c]!==f[c])return!1;for(c=u.length-1;c>=0;c--)if(s=u[c],!x(t[s],e[s],r,n))return!1;return!0}(t,e,r,n))}return r?t===e:t==e}function b(t){return"[object Arguments]"==Object.prototype.toString.call(t)}function _(t,e){if(!t||!e)return!1;if("[object RegExp]"==Object.prototype.toString.call(e))return e.test(t);try{if(t instanceof e)return!0}catch(t){}return!Error.isPrototypeOf(e)&&!0===e.call({},t)}function w(t,e,r,n){var i;if("function"!=typeof e)throw new TypeError('"block" argument must be a function');"string"==typeof r&&(n=r,r=null),i=function(t){var e;try{t()}catch(t){e=t}return e}(e),n=(r&&r.name?" ("+r.name+").":".")+(n?" "+n:"."),t&&!i&&v(i,r,"Missing expected exception"+n);var a="string"==typeof n,s=!t&&i&&!r;if((!t&&o.isError(i)&&a&&_(i,r)||s)&&v(i,r,"Got unwanted exception"+n),t&&i&&r&&!_(i,r)||!t&&i)throw i}h.AssertionError=function(t){this.name="AssertionError",this.actual=t.actual,this.expected=t.expected,this.operator=t.operator,t.message?(this.message=t.message,this.generatedMessage=!1):(this.message=function(t){return g(m(t.actual),128)+" "+t.operator+" "+g(m(t.expected),128)}(this),this.generatedMessage=!0);var e=t.stackStartFunction||v;if(Error.captureStackTrace)Error.captureStackTrace(this,e);else{var r=new Error;if(r.stack){var n=r.stack,i=d(e),a=n.indexOf("\n"+i);if(a>=0){var o=n.indexOf("\n",a+1);n=n.substring(o+1)}this.stack=n}}},o.inherits(h.AssertionError,Error),h.fail=v,h.ok=y,h.equal=function(t,e,r){t!=e&&v(t,e,r,"==",h.equal)},h.notEqual=function(t,e,r){t==e&&v(t,e,r,"!=",h.notEqual)},h.deepEqual=function(t,e,r){x(t,e,!1)||v(t,e,r,"deepEqual",h.deepEqual)},h.deepStrictEqual=function(t,e,r){x(t,e,!0)||v(t,e,r,"deepStrictEqual",h.deepStrictEqual)},h.notDeepEqual=function(t,e,r){x(t,e,!1)&&v(t,e,r,"notDeepEqual",h.notDeepEqual)},h.notDeepStrictEqual=function t(e,r,n){x(e,r,!0)&&v(e,r,n,"notDeepStrictEqual",t)},h.strictEqual=function(t,e,r){t!==e&&v(t,e,r,"===",h.strictEqual)},h.notStrictEqual=function(t,e,r){t===e&&v(t,e,r,"!==",h.notStrictEqual)},h.throws=function(t,e,r){w(!0,t,e,r)},h.doesNotThrow=function(t,e,r){w(!1,t,e,r)},h.ifError=function(t){if(t)throw t},h.strict=n((function t(e,r){e||v(e,!0,r,"==",t)}),h,{equal:h.strictEqual,deepEqual:h.deepStrictEqual,notEqual:h.notStrictEqual,notDeepEqual:h.notDeepStrictEqual}),h.strict.strict=h.strict;var T=Object.keys||function(t){var e=[];for(var r in t)s.call(t,r)&&e.push(r);return e}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"object-assign":499,"util/":76}],74:[function(t,e,r){"function"==typeof Object.create?e.exports=function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}},{}],75:[function(t,e,r){e.exports=function(t){return t&&"object"==typeof t&&"function"==typeof t.copy&&"function"==typeof t.fill&&"function"==typeof t.readUInt8}},{}],76:[function(t,e,r){(function(e,n){(function(){var i=/%[sdj%]/g;r.format=function(t){if(!v(t)){for(var e=[],r=0;r=a)return t;switch(t){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(t){return"[Circular]"}default:return t}})),l=n[r];r=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),d(e)?n.showHidden=e:e&&r._extend(n,e),y(n.showHidden)&&(n.showHidden=!1),y(n.depth)&&(n.depth=2),y(n.colors)&&(n.colors=!1),y(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=l),u(n,t,n.depth)}function l(t,e){var r=s.styles[e];return r?"\x1b["+s.colors[r][0]+"m"+t+"\x1b["+s.colors[r][1]+"m":t}function c(t,e){return t}function u(t,e,n){if(t.customInspect&&e&&T(e.inspect)&&e.inspect!==r.inspect&&(!e.constructor||e.constructor.prototype!==e)){var i=e.inspect(n,t);return v(i)||(i=u(t,i,n)),i}var a=function(t,e){if(y(e))return t.stylize("undefined","undefined");if(v(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}if(m(e))return t.stylize(""+e,"number");if(d(e))return t.stylize(""+e,"boolean");if(g(e))return t.stylize("null","null")}(t,e);if(a)return a;var o=Object.keys(e),s=function(t){var e={};return t.forEach((function(t,r){e[t]=!0})),e}(o);if(t.showHidden&&(o=Object.getOwnPropertyNames(e)),w(e)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return f(e);if(0===o.length){if(T(e)){var l=e.name?": "+e.name:"";return t.stylize("[Function"+l+"]","special")}if(x(e))return t.stylize(RegExp.prototype.toString.call(e),"regexp");if(_(e))return t.stylize(Date.prototype.toString.call(e),"date");if(w(e))return f(e)}var c,b="",k=!1,M=["{","}"];(p(e)&&(k=!0,M=["[","]"]),T(e))&&(b=" [Function"+(e.name?": "+e.name:"")+"]");return x(e)&&(b=" "+RegExp.prototype.toString.call(e)),_(e)&&(b=" "+Date.prototype.toUTCString.call(e)),w(e)&&(b=" "+f(e)),0!==o.length||k&&0!=e.length?n<0?x(e)?t.stylize(RegExp.prototype.toString.call(e),"regexp"):t.stylize("[Object]","special"):(t.seen.push(e),c=k?function(t,e,r,n,i){for(var a=[],o=0,s=e.length;o=0&&0,t+e.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+r[1];return r[0]+e+" "+t.join(", ")+" "+r[1]}(c,b,M)):M[0]+b+M[1]}function f(t){return"["+Error.prototype.toString.call(t)+"]"}function h(t,e,r,n,i,a){var o,s,l;if((l=Object.getOwnPropertyDescriptor(e,i)||{value:e[i]}).get?s=l.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):l.set&&(s=t.stylize("[Setter]","special")),E(n,i)||(o="["+i+"]"),s||(t.seen.indexOf(l.value)<0?(s=g(r)?u(t,l.value,null):u(t,l.value,r-1)).indexOf("\n")>-1&&(s=a?s.split("\n").map((function(t){return" "+t})).join("\n").substr(2):"\n"+s.split("\n").map((function(t){return" "+t})).join("\n")):s=t.stylize("[Circular]","special")),y(o)){if(a&&i.match(/^\d+$/))return s;(o=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=t.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=t.stylize(o,"string"))}return o+": "+s}function p(t){return Array.isArray(t)}function d(t){return"boolean"==typeof t}function g(t){return null===t}function m(t){return"number"==typeof t}function v(t){return"string"==typeof t}function y(t){return void 0===t}function x(t){return b(t)&&"[object RegExp]"===k(t)}function b(t){return"object"==typeof t&&null!==t}function _(t){return b(t)&&"[object Date]"===k(t)}function w(t){return b(t)&&("[object Error]"===k(t)||t instanceof Error)}function T(t){return"function"==typeof t}function k(t){return Object.prototype.toString.call(t)}function M(t){return t<10?"0"+t.toString(10):t.toString(10)}r.debuglog=function(t){if(y(a)&&(a=e.env.NODE_DEBUG||""),t=t.toUpperCase(),!o[t])if(new RegExp("\\b"+t+"\\b","i").test(a)){var n=e.pid;o[t]=function(){var e=r.format.apply(r,arguments);console.error("%s %d: %s",t,n,e)}}else o[t]=function(){};return o[t]},r.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},r.isArray=p,r.isBoolean=d,r.isNull=g,r.isNullOrUndefined=function(t){return null==t},r.isNumber=m,r.isString=v,r.isSymbol=function(t){return"symbol"==typeof t},r.isUndefined=y,r.isRegExp=x,r.isObject=b,r.isDate=_,r.isError=w,r.isFunction=T,r.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||"undefined"==typeof t},r.isBuffer=t("./support/isBuffer");var A=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function S(){var t=new Date,e=[M(t.getHours()),M(t.getMinutes()),M(t.getSeconds())].join(":");return[t.getDate(),A[t.getMonth()],e].join(" ")}function E(t,e){return Object.prototype.hasOwnProperty.call(t,e)}r.log=function(){console.log("%s - %s",S(),r.format.apply(r,arguments))},r.inherits=t("inherits"),r._extend=function(t,e){if(!e||!b(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t}}).call(this)}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":75,_process:526,inherits:74}],77:[function(t,e,r){e.exports=function(t){return atob(t)}},{}],78:[function(t,e,r){"use strict";e.exports=function(t,e){for(var r=e.length,a=new Array(r+1),o=0;o0?o-4:o;for(r=0;r>16&255,l[u++]=e>>8&255,l[u++]=255&e;2===s&&(e=i[t.charCodeAt(r)]<<2|i[t.charCodeAt(r+1)]>>4,l[u++]=255&e);1===s&&(e=i[t.charCodeAt(r)]<<10|i[t.charCodeAt(r+1)]<<4|i[t.charCodeAt(r+2)]>>2,l[u++]=e>>8&255,l[u++]=255&e);return l},r.fromByteArray=function(t){for(var e,r=t.length,i=r%3,a=[],o=0,s=r-i;os?s:o+16383));1===i?(e=t[r-1],a.push(n[e>>2]+n[e<<4&63]+"==")):2===i&&(e=(t[r-2]<<8)+t[r-1],a.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"="));return a.join("")};for(var n=[],i=[],a="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,l=o.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function u(t,e,r){for(var i,a,o=[],s=e;s>18&63]+n[a>>12&63]+n[a>>6&63]+n[63&a]);return o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},{}],80:[function(t,e,r){"use strict";var n=t("./lib/rationalize");e.exports=function(t,e){return n(t[0].mul(e[1]).add(e[0].mul(t[1])),t[1].mul(e[1]))}},{"./lib/rationalize":90}],81:[function(t,e,r){"use strict";e.exports=function(t,e){return t[0].mul(e[1]).cmp(e[0].mul(t[1]))}},{}],82:[function(t,e,r){"use strict";var n=t("./lib/rationalize");e.exports=function(t,e){return n(t[0].mul(e[1]),t[1].mul(e[0]))}},{"./lib/rationalize":90}],83:[function(t,e,r){"use strict";var n=t("./is-rat"),i=t("./lib/is-bn"),a=t("./lib/num-to-bn"),o=t("./lib/str-to-bn"),s=t("./lib/rationalize"),l=t("./div");e.exports=function t(e,r){if(n(e))return r?l(e,t(r)):[e[0].clone(),e[1].clone()];var c,u,f=0;if(i(e))c=e.clone();else if("string"==typeof e)c=o(e);else{if(0===e)return[a(0),a(1)];if(e===Math.floor(e))c=a(e);else{for(;e!==Math.floor(e);)e*=Math.pow(2,256),f-=256;c=a(e)}}if(n(r))c.mul(r[1]),u=r[0].clone();else if(i(r))u=r.clone();else if("string"==typeof r)u=o(r);else if(r)if(r===Math.floor(r))u=a(r);else{for(;r!==Math.floor(r);)r*=Math.pow(2,256),f+=256;u=a(r)}else u=a(1);f>0?c=c.ushln(f):f<0&&(u=u.ushln(-f));return s(c,u)}},{"./div":82,"./is-rat":84,"./lib/is-bn":88,"./lib/num-to-bn":89,"./lib/rationalize":90,"./lib/str-to-bn":91}],84:[function(t,e,r){"use strict";var n=t("./lib/is-bn");e.exports=function(t){return Array.isArray(t)&&2===t.length&&n(t[0])&&n(t[1])}},{"./lib/is-bn":88}],85:[function(t,e,r){"use strict";var n=t("bn.js");e.exports=function(t){return t.cmp(new n(0))}},{"bn.js":99}],86:[function(t,e,r){"use strict";var n=t("./bn-sign");e.exports=function(t){var e=t.length,r=t.words,i=0;if(1===e)i=r[0];else if(2===e)i=r[0]+67108864*r[1];else for(var a=0;a20)return 52;return r+32}},{"bit-twiddle":97,"double-bits":173}],88:[function(t,e,r){"use strict";t("bn.js");e.exports=function(t){return t&&"object"==typeof t&&Boolean(t.words)}},{"bn.js":99}],89:[function(t,e,r){"use strict";var n=t("bn.js"),i=t("double-bits");e.exports=function(t){var e=i.exponent(t);return e<52?new n(t):new n(t*Math.pow(2,52-e)).ushln(e-52)}},{"bn.js":99,"double-bits":173}],90:[function(t,e,r){"use strict";var n=t("./num-to-bn"),i=t("./bn-sign");e.exports=function(t,e){var r=i(t),a=i(e);if(0===r)return[n(0),n(1)];if(0===a)return[n(0),n(0)];a<0&&(t=t.neg(),e=e.neg());var o=t.gcd(e);if(o.cmpn(1))return[t.div(o),e.div(o)];return[t,e]}},{"./bn-sign":85,"./num-to-bn":89}],91:[function(t,e,r){"use strict";var n=t("bn.js");e.exports=function(t){return new n(t)}},{"bn.js":99}],92:[function(t,e,r){"use strict";var n=t("./lib/rationalize");e.exports=function(t,e){return n(t[0].mul(e[0]),t[1].mul(e[1]))}},{"./lib/rationalize":90}],93:[function(t,e,r){"use strict";var n=t("./lib/bn-sign");e.exports=function(t){return n(t[0])*n(t[1])}},{"./lib/bn-sign":85}],94:[function(t,e,r){"use strict";var n=t("./lib/rationalize");e.exports=function(t,e){return n(t[0].mul(e[1]).sub(t[1].mul(e[0])),t[1].mul(e[1]))}},{"./lib/rationalize":90}],95:[function(t,e,r){"use strict";var n=t("./lib/bn-to-num"),i=t("./lib/ctz");e.exports=function(t){var e=t[0],r=t[1];if(0===e.cmpn(0))return 0;var a=e.abs().divmod(r.abs()),o=a.div,s=n(o),l=a.mod,c=e.negative!==r.negative?-1:1;if(0===l.cmpn(0))return c*s;if(s){var u=i(s)+4,f=n(l.ushln(u).divRound(r));return c*(s+f*Math.pow(2,-u))}var h=r.bitLength()-l.bitLength()+53;f=n(l.ushln(h).divRound(r));return h<1023?c*f*Math.pow(2,-h):(f*=Math.pow(2,-1023),c*f*Math.pow(2,1023-h))}},{"./lib/bn-to-num":86,"./lib/ctz":87}],96:[function(t,e,r){"use strict";function n(t,e,r,n,i){var a=["function ",t,"(a,l,h,",n.join(","),"){",i?"":"var i=",r?"l-1":"h+1",";while(l<=h){var m=(l+h)>>>1,x=a[m]"];return i?e.indexOf("c")<0?a.push(";if(x===y){return m}else if(x<=y){"):a.push(";var p=c(x,y);if(p===0){return m}else if(p<=0){"):a.push(";if(",e,"){i=m;"),r?a.push("l=m+1}else{h=m-1}"):a.push("h=m-1}else{l=m+1}"),a.push("}"),i?a.push("return -1};"):a.push("return i};"),a.join("")}function i(t,e,r,i){return new Function([n("A","x"+t+"y",e,["y"],i),n("P","c(x,y)"+t+"0",e,["y","c"],i),"function dispatchBsearch",r,"(a,y,c,l,h){if(typeof(c)==='function'){return P(a,(l===void 0)?0:l|0,(h===void 0)?a.length-1:h|0,y,c)}else{return A(a,(c===void 0)?0:c|0,(l===void 0)?a.length-1:l|0,y)}}return dispatchBsearch",r].join(""))()}e.exports={ge:i(">=",!1,"GE"),gt:i(">",!1,"GT"),lt:i("<",!0,"LT"),le:i("<=",!0,"LE"),eq:i("-",!0,"EQ",!0)}},{}],97:[function(t,e,r){"use strict";function n(t){var e=32;return(t&=-t)&&e--,65535&t&&(e-=16),16711935&t&&(e-=8),252645135&t&&(e-=4),858993459&t&&(e-=2),1431655765&t&&(e-=1),e}r.INT_BITS=32,r.INT_MAX=2147483647,r.INT_MIN=-1<<31,r.sign=function(t){return(t>0)-(t<0)},r.abs=function(t){var e=t>>31;return(t^e)-e},r.min=function(t,e){return e^(t^e)&-(t65535)<<4,e|=r=((t>>>=e)>255)<<3,e|=r=((t>>>=r)>15)<<2,(e|=r=((t>>>=r)>3)<<1)|(t>>>=r)>>1},r.log10=function(t){return t>=1e9?9:t>=1e8?8:t>=1e7?7:t>=1e6?6:t>=1e5?5:t>=1e4?4:t>=1e3?3:t>=100?2:t>=10?1:0},r.popCount=function(t){return 16843009*((t=(858993459&(t-=t>>>1&1431655765))+(t>>>2&858993459))+(t>>>4)&252645135)>>>24},r.countTrailingZeros=n,r.nextPow2=function(t){return t+=0===t,--t,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)+1},r.prevPow2=function(t){return t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)-(t>>>1)},r.parity=function(t){return t^=t>>>16,t^=t>>>8,t^=t>>>4,27030>>>(t&=15)&1};var i=new Array(256);!function(t){for(var e=0;e<256;++e){var r=e,n=e,i=7;for(r>>>=1;r;r>>>=1)n<<=1,n|=1&r,--i;t[e]=n<>>8&255]<<16|i[t>>>16&255]<<8|i[t>>>24&255]},r.interleave2=function(t,e){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t&=65535)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e&=65535)|e<<8))|e<<4))|e<<2))|e<<1))<<1},r.deinterleave2=function(t,e){return(t=65535&((t=16711935&((t=252645135&((t=858993459&((t=t>>>e&1431655765)|t>>>1))|t>>>2))|t>>>4))|t>>>16))<<16>>16},r.interleave3=function(t,e,r){return t=1227133513&((t=3272356035&((t=251719695&((t=4278190335&((t&=1023)|t<<16))|t<<8))|t<<4))|t<<2),(t|=(e=1227133513&((e=3272356035&((e=251719695&((e=4278190335&((e&=1023)|e<<16))|e<<8))|e<<4))|e<<2))<<1)|(r=1227133513&((r=3272356035&((r=251719695&((r=4278190335&((r&=1023)|r<<16))|r<<8))|r<<4))|r<<2))<<2},r.deinterleave3=function(t,e){return(t=1023&((t=4278190335&((t=251719695&((t=3272356035&((t=t>>>e&1227133513)|t>>>2))|t>>>4))|t>>>8))|t>>>16))<<22>>22},r.nextCombination=function(t){var e=t|t-1;return e+1|(~e&-~e)-1>>>n(t)+1}},{}],98:[function(t,e,r){"use strict";var n=t("clamp");e.exports=function(t,e){e||(e={});var r,o,s,l,c,u,f,h,p,d,g,m=null==e.cutoff?.25:e.cutoff,v=null==e.radius?8:e.radius,y=e.channel||0;if(ArrayBuffer.isView(t)||Array.isArray(t)){if(!e.width||!e.height)throw Error("For raw data width and height should be provided by options");r=e.width,o=e.height,l=t,u=e.stride?e.stride:Math.floor(t.length/r/o)}else window.HTMLCanvasElement&&t instanceof window.HTMLCanvasElement?(f=(h=t).getContext("2d"),r=h.width,o=h.height,p=f.getImageData(0,0,r,o),l=p.data,u=4):window.CanvasRenderingContext2D&&t instanceof window.CanvasRenderingContext2D?(h=t.canvas,f=t,r=h.width,o=h.height,p=f.getImageData(0,0,r,o),l=p.data,u=4):window.ImageData&&t instanceof window.ImageData&&(p=t,r=t.width,o=t.height,l=p.data,u=4);if(s=Math.max(r,o),window.Uint8ClampedArray&&l instanceof window.Uint8ClampedArray||window.Uint8Array&&l instanceof window.Uint8Array)for(c=l,l=Array(r*o),d=0,g=c.length;d=49&&o<=54?o-49+10:o>=17&&o<=22?o-17+10:15&o}return n}function l(t,e,r,n){for(var i=0,a=Math.min(t.length,r),o=e;o=49?s-49+10:s>=17?s-17+10:s}return i}a.isBN=function(t){return t instanceof a||null!==t&&"object"==typeof t&&t.constructor.wordSize===a.wordSize&&Array.isArray(t.words)},a.max=function(t,e){return t.cmp(e)>0?t:e},a.min=function(t,e){return t.cmp(e)<0?t:e},a.prototype._init=function(t,e,r){if("number"==typeof t)return this._initNumber(t,e,r);if("object"==typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},a.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},a.prototype._initArray=function(t,e,r){if(n("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i=0;i-=3)o=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[a]|=o<>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);else if("le"===r)for(i=0,a=0;i>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);return this.strip()},a.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=s(t,r,r+6),this.words[n]|=i<>>26-a&4194303,(a+=24)>=26&&(a-=26,n++);r+6!==e&&(i=s(t,e,r+6),this.words[n]|=i<>>26-a&4194303),this.strip()},a.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var a=t.length-r,o=a%n,s=Math.min(a,a-o)+r,c=0,u=r;u1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},a.prototype.inspect=function(){return(this.red?""};var c=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],u=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function h(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],a=0|e.words[0],o=i*a,s=67108863&o,l=o/67108864|0;r.words[0]=s;for(var c=1;c>>26,f=67108863&l,h=Math.min(c,e.length-1),p=Math.max(0,c-t.length+1);p<=h;p++){var d=c-p|0;u+=(o=(i=0|t.words[d])*(a=0|e.words[p])+f)/67108864|0,f=67108863&o}r.words[c]=0|f,l=0|u}return 0!==l?r.words[c]=0|l:r.length--,r.strip()}a.prototype.toString=function(t,e){var r;if(e=0|e||1,16===(t=t||10)||"hex"===t){r="";for(var i=0,a=0,o=0;o>>24-i&16777215)||o!==this.length-1?c[6-l.length]+l+r:l+r,(i+=2)>=26&&(i-=26,o--)}for(0!==a&&(r=a.toString(16)+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var h=u[t],p=f[t];r="";var d=this.clone();for(d.negative=0;!d.isZero();){var g=d.modn(p).toString(t);r=(d=d.idivn(p)).isZero()?g+r:c[h-g.length]+g+r}for(this.isZero()&&(r="0"+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},a.prototype.toJSON=function(){return this.toString(16)},a.prototype.toBuffer=function(t,e){return n("undefined"!=typeof o),this.toArrayLike(o,t,e)},a.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},a.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),a=r||Math.max(1,i);n(i<=a,"byte array longer than desired length"),n(a>0,"Requested array length <= 0"),this.strip();var o,s,l="le"===e,c=new t(a),u=this.clone();if(l){for(s=0;!u.isZero();s++)o=u.andln(255),u.iushrn(8),c[s]=o;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},a.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},a.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},a.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},a.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},a.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},a.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},a.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},a.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},a.prototype.notn=function(t){return this.clone().inotn(t)},a.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,a=0;a>>26;for(;0!==i&&a>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;at.length?this.clone().iadd(t):t.clone().iadd(this)},a.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var a=0,o=0;o>26,this.words[o]=67108863&e;for(;0!==a&&o>26,this.words[o]=67108863&e;if(0===a&&o>>13,p=0|o[1],d=8191&p,g=p>>>13,m=0|o[2],v=8191&m,y=m>>>13,x=0|o[3],b=8191&x,_=x>>>13,w=0|o[4],T=8191&w,k=w>>>13,M=0|o[5],A=8191&M,S=M>>>13,E=0|o[6],C=8191&E,L=E>>>13,I=0|o[7],P=8191&I,z=I>>>13,O=0|o[8],D=8191&O,R=O>>>13,F=0|o[9],B=8191&F,N=F>>>13,j=0|s[0],U=8191&j,V=j>>>13,q=0|s[1],H=8191&q,G=q>>>13,Y=0|s[2],W=8191&Y,X=Y>>>13,Z=0|s[3],J=8191&Z,K=Z>>>13,Q=0|s[4],$=8191&Q,tt=Q>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],at=8191&it,ot=it>>>13,st=0|s[7],lt=8191&st,ct=st>>>13,ut=0|s[8],ft=8191&ut,ht=ut>>>13,pt=0|s[9],dt=8191&pt,gt=pt>>>13;r.negative=t.negative^e.negative,r.length=19;var mt=(c+(n=Math.imul(f,U))|0)+((8191&(i=(i=Math.imul(f,V))+Math.imul(h,U)|0))<<13)|0;c=((a=Math.imul(h,V))+(i>>>13)|0)+(mt>>>26)|0,mt&=67108863,n=Math.imul(d,U),i=(i=Math.imul(d,V))+Math.imul(g,U)|0,a=Math.imul(g,V);var vt=(c+(n=n+Math.imul(f,H)|0)|0)+((8191&(i=(i=i+Math.imul(f,G)|0)+Math.imul(h,H)|0))<<13)|0;c=((a=a+Math.imul(h,G)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(v,U),i=(i=Math.imul(v,V))+Math.imul(y,U)|0,a=Math.imul(y,V),n=n+Math.imul(d,H)|0,i=(i=i+Math.imul(d,G)|0)+Math.imul(g,H)|0,a=a+Math.imul(g,G)|0;var yt=(c+(n=n+Math.imul(f,W)|0)|0)+((8191&(i=(i=i+Math.imul(f,X)|0)+Math.imul(h,W)|0))<<13)|0;c=((a=a+Math.imul(h,X)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(b,U),i=(i=Math.imul(b,V))+Math.imul(_,U)|0,a=Math.imul(_,V),n=n+Math.imul(v,H)|0,i=(i=i+Math.imul(v,G)|0)+Math.imul(y,H)|0,a=a+Math.imul(y,G)|0,n=n+Math.imul(d,W)|0,i=(i=i+Math.imul(d,X)|0)+Math.imul(g,W)|0,a=a+Math.imul(g,X)|0;var xt=(c+(n=n+Math.imul(f,J)|0)|0)+((8191&(i=(i=i+Math.imul(f,K)|0)+Math.imul(h,J)|0))<<13)|0;c=((a=a+Math.imul(h,K)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(T,U),i=(i=Math.imul(T,V))+Math.imul(k,U)|0,a=Math.imul(k,V),n=n+Math.imul(b,H)|0,i=(i=i+Math.imul(b,G)|0)+Math.imul(_,H)|0,a=a+Math.imul(_,G)|0,n=n+Math.imul(v,W)|0,i=(i=i+Math.imul(v,X)|0)+Math.imul(y,W)|0,a=a+Math.imul(y,X)|0,n=n+Math.imul(d,J)|0,i=(i=i+Math.imul(d,K)|0)+Math.imul(g,J)|0,a=a+Math.imul(g,K)|0;var bt=(c+(n=n+Math.imul(f,$)|0)|0)+((8191&(i=(i=i+Math.imul(f,tt)|0)+Math.imul(h,$)|0))<<13)|0;c=((a=a+Math.imul(h,tt)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(A,U),i=(i=Math.imul(A,V))+Math.imul(S,U)|0,a=Math.imul(S,V),n=n+Math.imul(T,H)|0,i=(i=i+Math.imul(T,G)|0)+Math.imul(k,H)|0,a=a+Math.imul(k,G)|0,n=n+Math.imul(b,W)|0,i=(i=i+Math.imul(b,X)|0)+Math.imul(_,W)|0,a=a+Math.imul(_,X)|0,n=n+Math.imul(v,J)|0,i=(i=i+Math.imul(v,K)|0)+Math.imul(y,J)|0,a=a+Math.imul(y,K)|0,n=n+Math.imul(d,$)|0,i=(i=i+Math.imul(d,tt)|0)+Math.imul(g,$)|0,a=a+Math.imul(g,tt)|0;var _t=(c+(n=n+Math.imul(f,rt)|0)|0)+((8191&(i=(i=i+Math.imul(f,nt)|0)+Math.imul(h,rt)|0))<<13)|0;c=((a=a+Math.imul(h,nt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(C,U),i=(i=Math.imul(C,V))+Math.imul(L,U)|0,a=Math.imul(L,V),n=n+Math.imul(A,H)|0,i=(i=i+Math.imul(A,G)|0)+Math.imul(S,H)|0,a=a+Math.imul(S,G)|0,n=n+Math.imul(T,W)|0,i=(i=i+Math.imul(T,X)|0)+Math.imul(k,W)|0,a=a+Math.imul(k,X)|0,n=n+Math.imul(b,J)|0,i=(i=i+Math.imul(b,K)|0)+Math.imul(_,J)|0,a=a+Math.imul(_,K)|0,n=n+Math.imul(v,$)|0,i=(i=i+Math.imul(v,tt)|0)+Math.imul(y,$)|0,a=a+Math.imul(y,tt)|0,n=n+Math.imul(d,rt)|0,i=(i=i+Math.imul(d,nt)|0)+Math.imul(g,rt)|0,a=a+Math.imul(g,nt)|0;var wt=(c+(n=n+Math.imul(f,at)|0)|0)+((8191&(i=(i=i+Math.imul(f,ot)|0)+Math.imul(h,at)|0))<<13)|0;c=((a=a+Math.imul(h,ot)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(P,U),i=(i=Math.imul(P,V))+Math.imul(z,U)|0,a=Math.imul(z,V),n=n+Math.imul(C,H)|0,i=(i=i+Math.imul(C,G)|0)+Math.imul(L,H)|0,a=a+Math.imul(L,G)|0,n=n+Math.imul(A,W)|0,i=(i=i+Math.imul(A,X)|0)+Math.imul(S,W)|0,a=a+Math.imul(S,X)|0,n=n+Math.imul(T,J)|0,i=(i=i+Math.imul(T,K)|0)+Math.imul(k,J)|0,a=a+Math.imul(k,K)|0,n=n+Math.imul(b,$)|0,i=(i=i+Math.imul(b,tt)|0)+Math.imul(_,$)|0,a=a+Math.imul(_,tt)|0,n=n+Math.imul(v,rt)|0,i=(i=i+Math.imul(v,nt)|0)+Math.imul(y,rt)|0,a=a+Math.imul(y,nt)|0,n=n+Math.imul(d,at)|0,i=(i=i+Math.imul(d,ot)|0)+Math.imul(g,at)|0,a=a+Math.imul(g,ot)|0;var Tt=(c+(n=n+Math.imul(f,lt)|0)|0)+((8191&(i=(i=i+Math.imul(f,ct)|0)+Math.imul(h,lt)|0))<<13)|0;c=((a=a+Math.imul(h,ct)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(D,U),i=(i=Math.imul(D,V))+Math.imul(R,U)|0,a=Math.imul(R,V),n=n+Math.imul(P,H)|0,i=(i=i+Math.imul(P,G)|0)+Math.imul(z,H)|0,a=a+Math.imul(z,G)|0,n=n+Math.imul(C,W)|0,i=(i=i+Math.imul(C,X)|0)+Math.imul(L,W)|0,a=a+Math.imul(L,X)|0,n=n+Math.imul(A,J)|0,i=(i=i+Math.imul(A,K)|0)+Math.imul(S,J)|0,a=a+Math.imul(S,K)|0,n=n+Math.imul(T,$)|0,i=(i=i+Math.imul(T,tt)|0)+Math.imul(k,$)|0,a=a+Math.imul(k,tt)|0,n=n+Math.imul(b,rt)|0,i=(i=i+Math.imul(b,nt)|0)+Math.imul(_,rt)|0,a=a+Math.imul(_,nt)|0,n=n+Math.imul(v,at)|0,i=(i=i+Math.imul(v,ot)|0)+Math.imul(y,at)|0,a=a+Math.imul(y,ot)|0,n=n+Math.imul(d,lt)|0,i=(i=i+Math.imul(d,ct)|0)+Math.imul(g,lt)|0,a=a+Math.imul(g,ct)|0;var kt=(c+(n=n+Math.imul(f,ft)|0)|0)+((8191&(i=(i=i+Math.imul(f,ht)|0)+Math.imul(h,ft)|0))<<13)|0;c=((a=a+Math.imul(h,ht)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(B,U),i=(i=Math.imul(B,V))+Math.imul(N,U)|0,a=Math.imul(N,V),n=n+Math.imul(D,H)|0,i=(i=i+Math.imul(D,G)|0)+Math.imul(R,H)|0,a=a+Math.imul(R,G)|0,n=n+Math.imul(P,W)|0,i=(i=i+Math.imul(P,X)|0)+Math.imul(z,W)|0,a=a+Math.imul(z,X)|0,n=n+Math.imul(C,J)|0,i=(i=i+Math.imul(C,K)|0)+Math.imul(L,J)|0,a=a+Math.imul(L,K)|0,n=n+Math.imul(A,$)|0,i=(i=i+Math.imul(A,tt)|0)+Math.imul(S,$)|0,a=a+Math.imul(S,tt)|0,n=n+Math.imul(T,rt)|0,i=(i=i+Math.imul(T,nt)|0)+Math.imul(k,rt)|0,a=a+Math.imul(k,nt)|0,n=n+Math.imul(b,at)|0,i=(i=i+Math.imul(b,ot)|0)+Math.imul(_,at)|0,a=a+Math.imul(_,ot)|0,n=n+Math.imul(v,lt)|0,i=(i=i+Math.imul(v,ct)|0)+Math.imul(y,lt)|0,a=a+Math.imul(y,ct)|0,n=n+Math.imul(d,ft)|0,i=(i=i+Math.imul(d,ht)|0)+Math.imul(g,ft)|0,a=a+Math.imul(g,ht)|0;var Mt=(c+(n=n+Math.imul(f,dt)|0)|0)+((8191&(i=(i=i+Math.imul(f,gt)|0)+Math.imul(h,dt)|0))<<13)|0;c=((a=a+Math.imul(h,gt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(B,H),i=(i=Math.imul(B,G))+Math.imul(N,H)|0,a=Math.imul(N,G),n=n+Math.imul(D,W)|0,i=(i=i+Math.imul(D,X)|0)+Math.imul(R,W)|0,a=a+Math.imul(R,X)|0,n=n+Math.imul(P,J)|0,i=(i=i+Math.imul(P,K)|0)+Math.imul(z,J)|0,a=a+Math.imul(z,K)|0,n=n+Math.imul(C,$)|0,i=(i=i+Math.imul(C,tt)|0)+Math.imul(L,$)|0,a=a+Math.imul(L,tt)|0,n=n+Math.imul(A,rt)|0,i=(i=i+Math.imul(A,nt)|0)+Math.imul(S,rt)|0,a=a+Math.imul(S,nt)|0,n=n+Math.imul(T,at)|0,i=(i=i+Math.imul(T,ot)|0)+Math.imul(k,at)|0,a=a+Math.imul(k,ot)|0,n=n+Math.imul(b,lt)|0,i=(i=i+Math.imul(b,ct)|0)+Math.imul(_,lt)|0,a=a+Math.imul(_,ct)|0,n=n+Math.imul(v,ft)|0,i=(i=i+Math.imul(v,ht)|0)+Math.imul(y,ft)|0,a=a+Math.imul(y,ht)|0;var At=(c+(n=n+Math.imul(d,dt)|0)|0)+((8191&(i=(i=i+Math.imul(d,gt)|0)+Math.imul(g,dt)|0))<<13)|0;c=((a=a+Math.imul(g,gt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(B,W),i=(i=Math.imul(B,X))+Math.imul(N,W)|0,a=Math.imul(N,X),n=n+Math.imul(D,J)|0,i=(i=i+Math.imul(D,K)|0)+Math.imul(R,J)|0,a=a+Math.imul(R,K)|0,n=n+Math.imul(P,$)|0,i=(i=i+Math.imul(P,tt)|0)+Math.imul(z,$)|0,a=a+Math.imul(z,tt)|0,n=n+Math.imul(C,rt)|0,i=(i=i+Math.imul(C,nt)|0)+Math.imul(L,rt)|0,a=a+Math.imul(L,nt)|0,n=n+Math.imul(A,at)|0,i=(i=i+Math.imul(A,ot)|0)+Math.imul(S,at)|0,a=a+Math.imul(S,ot)|0,n=n+Math.imul(T,lt)|0,i=(i=i+Math.imul(T,ct)|0)+Math.imul(k,lt)|0,a=a+Math.imul(k,ct)|0,n=n+Math.imul(b,ft)|0,i=(i=i+Math.imul(b,ht)|0)+Math.imul(_,ft)|0,a=a+Math.imul(_,ht)|0;var St=(c+(n=n+Math.imul(v,dt)|0)|0)+((8191&(i=(i=i+Math.imul(v,gt)|0)+Math.imul(y,dt)|0))<<13)|0;c=((a=a+Math.imul(y,gt)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(B,J),i=(i=Math.imul(B,K))+Math.imul(N,J)|0,a=Math.imul(N,K),n=n+Math.imul(D,$)|0,i=(i=i+Math.imul(D,tt)|0)+Math.imul(R,$)|0,a=a+Math.imul(R,tt)|0,n=n+Math.imul(P,rt)|0,i=(i=i+Math.imul(P,nt)|0)+Math.imul(z,rt)|0,a=a+Math.imul(z,nt)|0,n=n+Math.imul(C,at)|0,i=(i=i+Math.imul(C,ot)|0)+Math.imul(L,at)|0,a=a+Math.imul(L,ot)|0,n=n+Math.imul(A,lt)|0,i=(i=i+Math.imul(A,ct)|0)+Math.imul(S,lt)|0,a=a+Math.imul(S,ct)|0,n=n+Math.imul(T,ft)|0,i=(i=i+Math.imul(T,ht)|0)+Math.imul(k,ft)|0,a=a+Math.imul(k,ht)|0;var Et=(c+(n=n+Math.imul(b,dt)|0)|0)+((8191&(i=(i=i+Math.imul(b,gt)|0)+Math.imul(_,dt)|0))<<13)|0;c=((a=a+Math.imul(_,gt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(B,$),i=(i=Math.imul(B,tt))+Math.imul(N,$)|0,a=Math.imul(N,tt),n=n+Math.imul(D,rt)|0,i=(i=i+Math.imul(D,nt)|0)+Math.imul(R,rt)|0,a=a+Math.imul(R,nt)|0,n=n+Math.imul(P,at)|0,i=(i=i+Math.imul(P,ot)|0)+Math.imul(z,at)|0,a=a+Math.imul(z,ot)|0,n=n+Math.imul(C,lt)|0,i=(i=i+Math.imul(C,ct)|0)+Math.imul(L,lt)|0,a=a+Math.imul(L,ct)|0,n=n+Math.imul(A,ft)|0,i=(i=i+Math.imul(A,ht)|0)+Math.imul(S,ft)|0,a=a+Math.imul(S,ht)|0;var Ct=(c+(n=n+Math.imul(T,dt)|0)|0)+((8191&(i=(i=i+Math.imul(T,gt)|0)+Math.imul(k,dt)|0))<<13)|0;c=((a=a+Math.imul(k,gt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(B,rt),i=(i=Math.imul(B,nt))+Math.imul(N,rt)|0,a=Math.imul(N,nt),n=n+Math.imul(D,at)|0,i=(i=i+Math.imul(D,ot)|0)+Math.imul(R,at)|0,a=a+Math.imul(R,ot)|0,n=n+Math.imul(P,lt)|0,i=(i=i+Math.imul(P,ct)|0)+Math.imul(z,lt)|0,a=a+Math.imul(z,ct)|0,n=n+Math.imul(C,ft)|0,i=(i=i+Math.imul(C,ht)|0)+Math.imul(L,ft)|0,a=a+Math.imul(L,ht)|0;var Lt=(c+(n=n+Math.imul(A,dt)|0)|0)+((8191&(i=(i=i+Math.imul(A,gt)|0)+Math.imul(S,dt)|0))<<13)|0;c=((a=a+Math.imul(S,gt)|0)+(i>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,n=Math.imul(B,at),i=(i=Math.imul(B,ot))+Math.imul(N,at)|0,a=Math.imul(N,ot),n=n+Math.imul(D,lt)|0,i=(i=i+Math.imul(D,ct)|0)+Math.imul(R,lt)|0,a=a+Math.imul(R,ct)|0,n=n+Math.imul(P,ft)|0,i=(i=i+Math.imul(P,ht)|0)+Math.imul(z,ft)|0,a=a+Math.imul(z,ht)|0;var It=(c+(n=n+Math.imul(C,dt)|0)|0)+((8191&(i=(i=i+Math.imul(C,gt)|0)+Math.imul(L,dt)|0))<<13)|0;c=((a=a+Math.imul(L,gt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(B,lt),i=(i=Math.imul(B,ct))+Math.imul(N,lt)|0,a=Math.imul(N,ct),n=n+Math.imul(D,ft)|0,i=(i=i+Math.imul(D,ht)|0)+Math.imul(R,ft)|0,a=a+Math.imul(R,ht)|0;var Pt=(c+(n=n+Math.imul(P,dt)|0)|0)+((8191&(i=(i=i+Math.imul(P,gt)|0)+Math.imul(z,dt)|0))<<13)|0;c=((a=a+Math.imul(z,gt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(B,ft),i=(i=Math.imul(B,ht))+Math.imul(N,ft)|0,a=Math.imul(N,ht);var zt=(c+(n=n+Math.imul(D,dt)|0)|0)+((8191&(i=(i=i+Math.imul(D,gt)|0)+Math.imul(R,dt)|0))<<13)|0;c=((a=a+Math.imul(R,gt)|0)+(i>>>13)|0)+(zt>>>26)|0,zt&=67108863;var Ot=(c+(n=Math.imul(B,dt))|0)+((8191&(i=(i=Math.imul(B,gt))+Math.imul(N,dt)|0))<<13)|0;return c=((a=Math.imul(N,gt))+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863,l[0]=mt,l[1]=vt,l[2]=yt,l[3]=xt,l[4]=bt,l[5]=_t,l[6]=wt,l[7]=Tt,l[8]=kt,l[9]=Mt,l[10]=At,l[11]=St,l[12]=Et,l[13]=Ct,l[14]=Lt,l[15]=It,l[16]=Pt,l[17]=zt,l[18]=Ot,0!==c&&(l[19]=c,r.length++),r};function d(t,e,r){return(new g).mulp(t,e,r)}function g(t,e){this.x=t,this.y=e}Math.imul||(p=h),a.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?p(this,t,e):r<63?h(this,t,e):r<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,a=0;a>>26)|0)>>>26,o&=67108863}r.words[a]=s,n=o,o=i}return 0!==n?r.words[a]=n:r.length--,r.strip()}(this,t,e):d(this,t,e)},g.prototype.makeRBT=function(t){for(var e=new Array(t),r=a.prototype._countBits(t)-1,n=0;n>=1;return n},g.prototype.permute=function(t,e,r,n,i,a){for(var o=0;o>>=1)i++;return 1<>>=13,r[2*o+1]=8191&a,a>>>=13;for(o=2*e;o>=26,e+=i/67108864|0,e+=a>>>26,this.words[r]=67108863&a}return 0!==e&&(this.words[r]=e,this.length++),this},a.prototype.muln=function(t){return this.clone().imuln(t)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}(t);if(0===e.length)return new a(1);for(var r=this,n=0;n=0);var e,r=t%26,i=(t-r)/26,a=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(e=0;e>>26-r}o&&(this.words[e]=o,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e=0),i=e?(e-e%26)/26:0;var a=t%26,o=Math.min((t-a)/26,this.length),s=67108863^67108863>>>a<o)for(this.length-=o,c=0;c=0&&(0!==u||c>=i);c--){var f=0|this.words[c];this.words[c]=u<<26-a|f>>>a,u=f&s}return l&&0!==u&&(l.words[l.length++]=u),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},a.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},a.prototype.shln=function(t){return this.clone().ishln(t)},a.prototype.ushln=function(t){return this.clone().iushln(t)},a.prototype.shrn=function(t){return this.clone().ishrn(t)},a.prototype.ushrn=function(t){return this.clone().iushrn(t)},a.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},a.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(l/67108864|0),this.words[i+r]=67108863&a}for(;i>26,this.words[i+r]=67108863&a;if(0===s)return this.strip();for(n(-1===s),s=0,i=0;i>26,this.words[i]=67108863&a;return this.negative=1,this.strip()},a.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,o=0|i.words[i.length-1];0!==(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var s,l=n.length-i.length;if("mod"!==e){(s=new a(null)).length=l+1,s.words=new Array(s.length);for(var c=0;c=0;f--){var h=67108864*(0|n.words[i.length+f])+(0|n.words[i.length+f-1]);for(h=Math.min(h/o|0,67108863),n._ishlnsubmul(i,h,f);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(i,1,f),n.isZero()||(n.negative^=1);s&&(s.words[f]=h)}return s&&s.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},a.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(i=s.div.neg()),"div"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(t)),{div:i,mod:o}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(i=s.div.neg()),{div:i,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(t)),{div:s.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new a(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new a(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new a(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,o,s},a.prototype.div=function(t){return this.divmod(t,"div",!1).div},a.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},a.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},a.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),a=r.cmp(n);return a<0||1===i&&0===a?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},a.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},a.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},a.prototype.divn=function(t){return this.clone().idivn(t)},a.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new a(1),o=new a(0),s=new a(0),l=new a(1),c=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++c;for(var u=r.clone(),f=e.clone();!e.isZero();){for(var h=0,p=1;0==(e.words[0]&p)&&h<26;++h,p<<=1);if(h>0)for(e.iushrn(h);h-- >0;)(i.isOdd()||o.isOdd())&&(i.iadd(u),o.isub(f)),i.iushrn(1),o.iushrn(1);for(var d=0,g=1;0==(r.words[0]&g)&&d<26;++d,g<<=1);if(d>0)for(r.iushrn(d);d-- >0;)(s.isOdd()||l.isOdd())&&(s.iadd(u),l.isub(f)),s.iushrn(1),l.iushrn(1);e.cmp(r)>=0?(e.isub(r),i.isub(s),o.isub(l)):(r.isub(e),s.isub(i),l.isub(o))}return{a:s,b:l,gcd:r.iushln(c)}},a.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i,o=new a(1),s=new a(0),l=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,u=1;0==(e.words[0]&u)&&c<26;++c,u<<=1);if(c>0)for(e.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(l),o.iushrn(1);for(var f=0,h=1;0==(r.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(r.iushrn(f);f-- >0;)s.isOdd()&&s.iadd(l),s.iushrn(1);e.cmp(r)>=0?(e.isub(r),o.isub(s)):(r.isub(e),s.isub(o))}return(i=0===e.cmpn(1)?o:s).cmpn(0)<0&&i.iadd(t),i},a.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var a=e;e=r,r=a}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},a.prototype.invm=function(t){return this.egcd(t).a.umod(t)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(t){return this.words[0]&t},a.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,r=(t-e)/26,i=1<>>26,s&=67108863,this.words[o]=s}return 0!==a&&(this.words[o]=a,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:it.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},a.prototype.gtn=function(t){return 1===this.cmpn(t)},a.prototype.gt=function(t){return 1===this.cmp(t)},a.prototype.gten=function(t){return this.cmpn(t)>=0},a.prototype.gte=function(t){return this.cmp(t)>=0},a.prototype.ltn=function(t){return-1===this.cmpn(t)},a.prototype.lt=function(t){return-1===this.cmp(t)},a.prototype.lten=function(t){return this.cmpn(t)<=0},a.prototype.lte=function(t){return this.cmp(t)<=0},a.prototype.eqn=function(t){return 0===this.cmpn(t)},a.prototype.eq=function(t){return 0===this.cmp(t)},a.red=function(t){return new w(t)},a.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},a.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(t){return this.red=t,this},a.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},a.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},a.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},a.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},a.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},a.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},a.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},a.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},a.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var m={k256:null,p224:null,p192:null,p25519:null};function v(t,e){this.name=t,this.p=new a(e,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function y(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function x(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function b(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function _(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function w(t){if("string"==typeof t){var e=a._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function T(t){w.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var t=new a(null);return t.words=new Array(Math.ceil(this.n/13)),t},v.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?r.isub(this.p):r.strip(),r},v.prototype.split=function(t,e){t.iushrn(this.n,0,e)},v.prototype.imulK=function(t){return t.imul(this.k)},i(y,v),y.prototype.split=function(t,e){for(var r=Math.min(t.length,9),n=0;n>>22,i=a}i>>>=22,t.words[n-10]=i,0===i&&t.length>10?t.length-=10:t.length-=9},y.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},a._prime=function(t){if(m[t])return m[t];var e;if("k256"===t)e=new y;else if("p224"===t)e=new x;else if("p192"===t)e=new b;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new _}return m[t]=e,e},w.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},w.prototype._verify2=function(t,e){n(0==(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},w.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},w.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},w.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},w.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},w.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},w.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},w.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},w.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},w.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},w.prototype.isqr=function(t){return this.imul(t,t.clone())},w.prototype.sqr=function(t){return this.mul(t,t)},w.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var r=this.m.add(new a(1)).iushrn(2);return this.pow(t,r)}for(var i=this.m.subn(1),o=0;!i.isZero()&&0===i.andln(1);)o++,i.iushrn(1);n(!i.isZero());var s=new a(1).toRed(this),l=s.redNeg(),c=this.m.subn(1).iushrn(1),u=this.m.bitLength();for(u=new a(2*u*u).toRed(this);0!==this.pow(u,c).cmp(l);)u.redIAdd(l);for(var f=this.pow(u,i),h=this.pow(t,i.addn(1).iushrn(1)),p=this.pow(t,i),d=o;0!==p.cmp(s);){for(var g=p,m=0;0!==g.cmp(s);m++)g=g.redSqr();n(m=0;n--){for(var c=e.words[n],u=l-1;u>=0;u--){var f=c>>u&1;i!==r[0]&&(i=this.sqr(i)),0!==f||0!==o?(o<<=1,o|=f,(4===++s||0===n&&0===u)&&(i=this.mul(i,r[o]),s=0,o=0)):s=0}l=26}return i},w.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},w.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},a.mont=function(t){return new T(t)},i(T,w),T.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},T.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},T.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},T.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new a(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},T.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}("undefined"==typeof e||e,this)},{buffer:108}],100:[function(t,e,r){"use strict";e.exports=function(t){var e,r,n,i=t.length,a=0;for(e=0;e>>1;if(!(u<=0)){var f,h=i.mallocDouble(2*u*s),p=i.mallocInt32(s);if((s=l(t,u,h,p))>0){if(1===u&&n)a.init(s),f=a.sweepComplete(u,r,0,s,h,p,0,s,h,p);else{var d=i.mallocDouble(2*u*c),g=i.mallocInt32(c);(c=l(e,u,d,g))>0&&(a.init(s+c),f=1===u?a.sweepBipartite(u,r,0,s,h,p,0,c,d,g):o(u,r,n,s,h,p,c,d,g),i.free(d),i.free(g))}i.free(h),i.free(p)}return f}}}function u(t,e){n.push([t,e])}function f(t){return n=[],c(t,t,u,!0),n}function h(t,e){return n=[],c(t,e,u,!1),n}},{"./lib/intersect":103,"./lib/sweep":107,"typedarray-pool":595}],102:[function(t,e,r){"use strict";var n=["d","ax","vv","rs","re","rb","ri","bs","be","bb","bi"];function i(t){var e="bruteForce"+(t?"Full":"Partial"),r=[],i=n.slice();t||i.splice(3,0,"fp");var a=["function "+e+"("+i.join()+"){"];function o(e,i){var o=function(t,e,r){var i="bruteForce"+(t?"Red":"Blue")+(e?"Flip":"")+(r?"Full":""),a=["function ",i,"(",n.join(),"){","var ","es","=2*","d",";"],o="for(var i=rs,rp=es*rs;ibe-bs){"),t?(o(!0,!1),a.push("}else{"),o(!1,!1)):(a.push("if(fp){"),o(!0,!0),a.push("}else{"),o(!0,!1),a.push("}}else{if(fp){"),o(!1,!0),a.push("}else{"),o(!1,!1),a.push("}")),a.push("}}return "+e);var s=r.join("")+a.join("");return new Function(s)()}r.partial=i(!1),r.full=i(!0)},{}],103:[function(t,e,r){"use strict";e.exports=function(t,e,r,a,u,w,T,k,M){!function(t,e){var r=8*i.log2(e+1)*(t+1)|0,a=i.nextPow2(6*r);v.length0;){var C=6*(S-=1),L=v[C],I=v[C+1],P=v[C+2],z=v[C+3],O=v[C+4],D=v[C+5],R=2*S,F=y[R],B=y[R+1],N=1&D,j=!!(16&D),U=u,V=w,q=k,H=M;if(N&&(U=k,V=M,q=u,H=w),!(2&D&&(P=p(t,L,I,P,U,V,B),I>=P)||4&D&&(I=d(t,L,I,P,U,V,F))>=P)){var G=P-I,Y=O-z;if(j){if(t*G*(G+Y)<1<<22){if(void 0!==(A=l.scanComplete(t,L,e,I,P,U,V,z,O,q,H)))return A;continue}}else{if(t*Math.min(G,Y)<128){if(void 0!==(A=o(t,L,e,N,I,P,U,V,z,O,q,H)))return A;continue}if(t*G*Y<1<<22){if(void 0!==(A=l.scanBipartite(t,L,e,N,I,P,U,V,z,O,q,H)))return A;continue}}var W=f(t,L,I,P,U,V,F,B);if(I=p0)&&!(p1>=hi)",["p0","p1"]),h=u("lo===p0",["p0"]),p=u("lo>>1,f=2*t,h=u,p=o[f*u+e];for(;l=y?(h=v,p=y):m>=b?(h=g,p=m):(h=x,p=b):y>=b?(h=v,p=y):b>=m?(h=g,p=m):(h=x,p=b);for(var _=f*(c-1),w=f*h,T=0;Tr&&i[f+e]>c;--u,f-=o){for(var h=f,p=f+o,d=0;d=0&&n.push("lo=e[k+n]");t.indexOf("hi")>=0&&n.push("hi=e[k+o]");return r.push("for(var j=2*a,k=j*c,l=k,m=c,n=b,o=a+b,p=c;d>p;++p,k+=j){var _;if($)if(m===p)m+=1,l+=j;else{for(var s=0;j>s;++s){var t=e[k+s];e[k+s]=e[l],e[l++]=t}var u=f[p];f[p]=f[m],f[m++]=u}}return m".replace("_",n.join()).replace("$",t)),Function.apply(void 0,r)}},{}],106:[function(t,e,r){"use strict";e.exports=function(t,e){e<=128?n(0,e-1,t):function t(e,r,u){var f=(r-e+1)/6|0,h=e+f,p=r-f,d=e+r>>1,g=d-f,m=d+f,v=h,y=g,x=d,b=m,_=p,w=e+1,T=r-1,k=0;l(v,y,u)&&(k=v,v=y,y=k);l(b,_,u)&&(k=b,b=_,_=k);l(v,x,u)&&(k=v,v=x,x=k);l(y,x,u)&&(k=y,y=x,x=k);l(v,b,u)&&(k=v,v=b,b=k);l(x,b,u)&&(k=x,x=b,b=k);l(y,_,u)&&(k=y,y=_,_=k);l(y,x,u)&&(k=y,y=x,x=k);l(b,_,u)&&(k=b,b=_,_=k);for(var M=u[2*y],A=u[2*y+1],S=u[2*b],E=u[2*b+1],C=2*v,L=2*x,I=2*_,P=2*h,z=2*d,O=2*p,D=0;D<2;++D){var R=u[C+D],F=u[L+D],B=u[I+D];u[P+D]=R,u[z+D]=F,u[O+D]=B}a(g,e,u),a(m,r,u);for(var N=w;N<=T;++N)if(c(N,M,A,u))N!==w&&i(N,w,u),++w;else if(!c(N,S,E,u))for(;;){if(c(T,S,E,u)){c(T,M,A,u)?(o(N,w,T,u),++w,--T):(i(N,T,u),--T);break}if(--Tt;){var c=r[l-2],u=r[l-1];if(cr[e+1])}function c(t,e,r,n){var i=n[t*=2];return i>>1;a(h,A);var S=0,E=0;for(w=0;w=1<<28)p(l,c,E--,C=C-(1<<28)|0);else if(C>=0)p(o,s,S--,C);else if(C<=-(1<<28)){C=-C-(1<<28)|0;for(var L=0;L>>1;a(h,E);var C=0,L=0,I=0;for(k=0;k>1==h[2*k+3]>>1&&(z=2,k+=1),P<0){for(var O=-(P>>1)-1,D=0;D>1)-1;0===z?p(o,s,C--,O):1===z?p(l,c,L--,O):2===z&&p(u,f,I--,O)}}},scanBipartite:function(t,e,r,n,i,l,c,u,f,g,m,v){var y=0,x=2*t,b=e,_=e+t,w=1,T=1;n?T=1<<28:w=1<<28;for(var k=i;k>>1;a(h,E);var C=0;for(k=0;k=1<<28?(I=!n,M-=1<<28):(I=!!n,M-=1),I)d(o,s,C++,M);else{var P=v[M],z=x*M,O=m[z+e+1],D=m[z+e+1+t];t:for(var R=0;R>>1;a(h,w);var T=0;for(y=0;y=1<<28)o[T++]=x-(1<<28);else{var M=p[x-=1],A=g*x,S=f[A+e+1],E=f[A+e+1+t];t:for(var C=0;C=0;--C)if(o[C]===x){for(z=C+1;z0&&o.length>i&&!o.warned){o.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=t,l.type=e,l.count=o.length,s=l,console&&console.warn&&console.warn(s)}return t}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},i=h.bind(n);return i.listener=r,n.wrapFn=i,i}function d(t,e,r){var n=t._events;if(void 0===n)return[];var i=n[e];return void 0===i?[]:"function"==typeof i?r?[i.listener||i]:[i]:r?function(t){for(var e=new Array(t.length),r=0;r0&&(o=e[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var l=i[t];if(void 0===l)return!1;if("function"==typeof l)a(l,this,e);else{var c=l.length,u=m(l,c);for(r=0;r=0;a--)if(r[a]===e||r[a].listener===e){o=r[a].listener,i=a;break}if(i<0)return this;0===i?r.shift():function(t,e){for(;e+1=0;n--)this.removeListener(t,e[n]);return this},s.prototype.listeners=function(t){return d(this,t,!0)},s.prototype.rawListeners=function(t){return d(this,t,!1)},s.listenerCount=function(t,e){return"function"==typeof t.listenerCount?t.listenerCount(e):g.call(t,e)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},{}],111:[function(t,e,r){(function(e){(function(){ + */function i(t,e){if(t===e)return 0;for(var r=t.length,n=e.length,i=0,a=Math.min(r,n);i=0;c--)if(u[c]!==f[c])return!1;for(c=u.length-1;c>=0;c--)if(s=u[c],!x(t[s],e[s],r,n))return!1;return!0}(t,e,r,n))}return r?t===e:t==e}function b(t){return"[object Arguments]"==Object.prototype.toString.call(t)}function _(t,e){if(!t||!e)return!1;if("[object RegExp]"==Object.prototype.toString.call(e))return e.test(t);try{if(t instanceof e)return!0}catch(t){}return!Error.isPrototypeOf(e)&&!0===e.call({},t)}function w(t,e,r,n){var i;if("function"!=typeof e)throw new TypeError('"block" argument must be a function');"string"==typeof r&&(n=r,r=null),i=function(t){var e;try{t()}catch(t){e=t}return e}(e),n=(r&&r.name?" ("+r.name+").":".")+(n?" "+n:"."),t&&!i&&v(i,r,"Missing expected exception"+n);var a="string"==typeof n,s=!t&&i&&!r;if((!t&&o.isError(i)&&a&&_(i,r)||s)&&v(i,r,"Got unwanted exception"+n),t&&i&&r&&!_(i,r)||!t&&i)throw i}h.AssertionError=function(t){this.name="AssertionError",this.actual=t.actual,this.expected=t.expected,this.operator=t.operator,t.message?(this.message=t.message,this.generatedMessage=!1):(this.message=function(t){return m(g(t.actual),128)+" "+t.operator+" "+m(g(t.expected),128)}(this),this.generatedMessage=!0);var e=t.stackStartFunction||v;if(Error.captureStackTrace)Error.captureStackTrace(this,e);else{var r=new Error;if(r.stack){var n=r.stack,i=d(e),a=n.indexOf("\n"+i);if(a>=0){var o=n.indexOf("\n",a+1);n=n.substring(o+1)}this.stack=n}}},o.inherits(h.AssertionError,Error),h.fail=v,h.ok=y,h.equal=function(t,e,r){t!=e&&v(t,e,r,"==",h.equal)},h.notEqual=function(t,e,r){t==e&&v(t,e,r,"!=",h.notEqual)},h.deepEqual=function(t,e,r){x(t,e,!1)||v(t,e,r,"deepEqual",h.deepEqual)},h.deepStrictEqual=function(t,e,r){x(t,e,!0)||v(t,e,r,"deepStrictEqual",h.deepStrictEqual)},h.notDeepEqual=function(t,e,r){x(t,e,!1)&&v(t,e,r,"notDeepEqual",h.notDeepEqual)},h.notDeepStrictEqual=function t(e,r,n){x(e,r,!0)&&v(e,r,n,"notDeepStrictEqual",t)},h.strictEqual=function(t,e,r){t!==e&&v(t,e,r,"===",h.strictEqual)},h.notStrictEqual=function(t,e,r){t===e&&v(t,e,r,"!==",h.notStrictEqual)},h.throws=function(t,e,r){w(!0,t,e,r)},h.doesNotThrow=function(t,e,r){w(!1,t,e,r)},h.ifError=function(t){if(t)throw t},h.strict=n((function t(e,r){e||v(e,!0,r,"==",t)}),h,{equal:h.strictEqual,deepEqual:h.deepStrictEqual,notEqual:h.notStrictEqual,notDeepEqual:h.notDeepStrictEqual}),h.strict.strict=h.strict;var T=Object.keys||function(t){var e=[];for(var r in t)s.call(t,r)&&e.push(r);return e}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"object-assign":479,"util/":78}],76:[function(t,e,r){"function"==typeof Object.create?e.exports=function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(t,e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}},{}],77:[function(t,e,r){e.exports=function(t){return t&&"object"==typeof t&&"function"==typeof t.copy&&"function"==typeof t.fill&&"function"==typeof t.readUInt8}},{}],78:[function(t,e,r){(function(e,n){(function(){var i=/%[sdj%]/g;r.format=function(t){if(!v(t)){for(var e=[],r=0;r=a)return t;switch(t){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(t){return"[Circular]"}default:return t}})),l=n[r];r=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),d(e)?n.showHidden=e:e&&r._extend(n,e),y(n.showHidden)&&(n.showHidden=!1),y(n.depth)&&(n.depth=2),y(n.colors)&&(n.colors=!1),y(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=l),u(n,t,n.depth)}function l(t,e){var r=s.styles[e];return r?"\x1b["+s.colors[r][0]+"m"+t+"\x1b["+s.colors[r][1]+"m":t}function c(t,e){return t}function u(t,e,n){if(t.customInspect&&e&&T(e.inspect)&&e.inspect!==r.inspect&&(!e.constructor||e.constructor.prototype!==e)){var i=e.inspect(n,t);return v(i)||(i=u(t,i,n)),i}var a=function(t,e){if(y(e))return t.stylize("undefined","undefined");if(v(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}if(g(e))return t.stylize(""+e,"number");if(d(e))return t.stylize(""+e,"boolean");if(m(e))return t.stylize("null","null")}(t,e);if(a)return a;var o=Object.keys(e),s=function(t){var e={};return t.forEach((function(t,r){e[t]=!0})),e}(o);if(t.showHidden&&(o=Object.getOwnPropertyNames(e)),w(e)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return f(e);if(0===o.length){if(T(e)){var l=e.name?": "+e.name:"";return t.stylize("[Function"+l+"]","special")}if(x(e))return t.stylize(RegExp.prototype.toString.call(e),"regexp");if(_(e))return t.stylize(Date.prototype.toString.call(e),"date");if(w(e))return f(e)}var c,b="",k=!1,M=["{","}"];(p(e)&&(k=!0,M=["[","]"]),T(e))&&(b=" [Function"+(e.name?": "+e.name:"")+"]");return x(e)&&(b=" "+RegExp.prototype.toString.call(e)),_(e)&&(b=" "+Date.prototype.toUTCString.call(e)),w(e)&&(b=" "+f(e)),0!==o.length||k&&0!=e.length?n<0?x(e)?t.stylize(RegExp.prototype.toString.call(e),"regexp"):t.stylize("[Object]","special"):(t.seen.push(e),c=k?function(t,e,r,n,i){for(var a=[],o=0,s=e.length;o=0&&0,t+e.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+r[1];return r[0]+e+" "+t.join(", ")+" "+r[1]}(c,b,M)):M[0]+b+M[1]}function f(t){return"["+Error.prototype.toString.call(t)+"]"}function h(t,e,r,n,i,a){var o,s,l;if((l=Object.getOwnPropertyDescriptor(e,i)||{value:e[i]}).get?s=l.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):l.set&&(s=t.stylize("[Setter]","special")),E(n,i)||(o="["+i+"]"),s||(t.seen.indexOf(l.value)<0?(s=m(r)?u(t,l.value,null):u(t,l.value,r-1)).indexOf("\n")>-1&&(s=a?s.split("\n").map((function(t){return" "+t})).join("\n").substr(2):"\n"+s.split("\n").map((function(t){return" "+t})).join("\n")):s=t.stylize("[Circular]","special")),y(o)){if(a&&i.match(/^\d+$/))return s;(o=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=t.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=t.stylize(o,"string"))}return o+": "+s}function p(t){return Array.isArray(t)}function d(t){return"boolean"==typeof t}function m(t){return null===t}function g(t){return"number"==typeof t}function v(t){return"string"==typeof t}function y(t){return void 0===t}function x(t){return b(t)&&"[object RegExp]"===k(t)}function b(t){return"object"==typeof t&&null!==t}function _(t){return b(t)&&"[object Date]"===k(t)}function w(t){return b(t)&&("[object Error]"===k(t)||t instanceof Error)}function T(t){return"function"==typeof t}function k(t){return Object.prototype.toString.call(t)}function M(t){return t<10?"0"+t.toString(10):t.toString(10)}r.debuglog=function(t){if(y(a)&&(a=e.env.NODE_DEBUG||""),t=t.toUpperCase(),!o[t])if(new RegExp("\\b"+t+"\\b","i").test(a)){var n=e.pid;o[t]=function(){var e=r.format.apply(r,arguments);console.error("%s %d: %s",t,n,e)}}else o[t]=function(){};return o[t]},r.inspect=s,s.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},s.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},r.isArray=p,r.isBoolean=d,r.isNull=m,r.isNullOrUndefined=function(t){return null==t},r.isNumber=g,r.isString=v,r.isSymbol=function(t){return"symbol"==typeof t},r.isUndefined=y,r.isRegExp=x,r.isObject=b,r.isDate=_,r.isError=w,r.isFunction=T,r.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t},r.isBuffer=t("./support/isBuffer");var A=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function S(){var t=new Date,e=[M(t.getHours()),M(t.getMinutes()),M(t.getSeconds())].join(":");return[t.getDate(),A[t.getMonth()],e].join(" ")}function E(t,e){return Object.prototype.hasOwnProperty.call(t,e)}r.log=function(){console.log("%s - %s",S(),r.format.apply(r,arguments))},r.inherits=t("inherits"),r._extend=function(t,e){if(!e||!b(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t}}).call(this)}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":77,_process:520,inherits:76}],79:[function(t,e,r){e.exports=function(t){return atob(t)}},{}],80:[function(t,e,r){"use strict";e.exports=function(t,e){for(var r=e.length,a=new Array(r+1),o=0;o0?o-4:o;for(r=0;r>16&255,l[u++]=e>>8&255,l[u++]=255&e;2===s&&(e=i[t.charCodeAt(r)]<<2|i[t.charCodeAt(r+1)]>>4,l[u++]=255&e);1===s&&(e=i[t.charCodeAt(r)]<<10|i[t.charCodeAt(r+1)]<<4|i[t.charCodeAt(r+2)]>>2,l[u++]=e>>8&255,l[u++]=255&e);return l},r.fromByteArray=function(t){for(var e,r=t.length,i=r%3,a=[],o=0,s=r-i;os?s:o+16383));1===i?(e=t[r-1],a.push(n[e>>2]+n[e<<4&63]+"==")):2===i&&(e=(t[r-2]<<8)+t[r-1],a.push(n[e>>10]+n[e>>4&63]+n[e<<2&63]+"="));return a.join("")};for(var n=[],i=[],a="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,l=o.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function u(t,e,r){for(var i,a,o=[],s=e;s>18&63]+n[a>>12&63]+n[a>>6&63]+n[63&a]);return o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},{}],82:[function(t,e,r){"use strict";var n=t("./lib/rationalize");e.exports=function(t,e){return n(t[0].mul(e[1]).add(e[0].mul(t[1])),t[1].mul(e[1]))}},{"./lib/rationalize":92}],83:[function(t,e,r){"use strict";e.exports=function(t,e){return t[0].mul(e[1]).cmp(e[0].mul(t[1]))}},{}],84:[function(t,e,r){"use strict";var n=t("./lib/rationalize");e.exports=function(t,e){return n(t[0].mul(e[1]),t[1].mul(e[0]))}},{"./lib/rationalize":92}],85:[function(t,e,r){"use strict";var n=t("./is-rat"),i=t("./lib/is-bn"),a=t("./lib/num-to-bn"),o=t("./lib/str-to-bn"),s=t("./lib/rationalize"),l=t("./div");e.exports=function t(e,r){if(n(e))return r?l(e,t(r)):[e[0].clone(),e[1].clone()];var c,u,f=0;if(i(e))c=e.clone();else if("string"==typeof e)c=o(e);else{if(0===e)return[a(0),a(1)];if(e===Math.floor(e))c=a(e);else{for(;e!==Math.floor(e);)e*=Math.pow(2,256),f-=256;c=a(e)}}if(n(r))c.mul(r[1]),u=r[0].clone();else if(i(r))u=r.clone();else if("string"==typeof r)u=o(r);else if(r)if(r===Math.floor(r))u=a(r);else{for(;r!==Math.floor(r);)r*=Math.pow(2,256),f+=256;u=a(r)}else u=a(1);f>0?c=c.ushln(f):f<0&&(u=u.ushln(-f));return s(c,u)}},{"./div":84,"./is-rat":86,"./lib/is-bn":90,"./lib/num-to-bn":91,"./lib/rationalize":92,"./lib/str-to-bn":93}],86:[function(t,e,r){"use strict";var n=t("./lib/is-bn");e.exports=function(t){return Array.isArray(t)&&2===t.length&&n(t[0])&&n(t[1])}},{"./lib/is-bn":90}],87:[function(t,e,r){"use strict";var n=t("bn.js");e.exports=function(t){return t.cmp(new n(0))}},{"bn.js":101}],88:[function(t,e,r){"use strict";var n=t("./bn-sign");e.exports=function(t){var e=t.length,r=t.words,i=0;if(1===e)i=r[0];else if(2===e)i=r[0]+67108864*r[1];else for(var a=0;a20)return 52;return r+32}},{"bit-twiddle":99,"double-bits":173}],90:[function(t,e,r){"use strict";t("bn.js");e.exports=function(t){return t&&"object"==typeof t&&Boolean(t.words)}},{"bn.js":101}],91:[function(t,e,r){"use strict";var n=t("bn.js"),i=t("double-bits");e.exports=function(t){var e=i.exponent(t);return e<52?new n(t):new n(t*Math.pow(2,52-e)).ushln(e-52)}},{"bn.js":101,"double-bits":173}],92:[function(t,e,r){"use strict";var n=t("./num-to-bn"),i=t("./bn-sign");e.exports=function(t,e){var r=i(t),a=i(e);if(0===r)return[n(0),n(1)];if(0===a)return[n(0),n(0)];a<0&&(t=t.neg(),e=e.neg());var o=t.gcd(e);if(o.cmpn(1))return[t.div(o),e.div(o)];return[t,e]}},{"./bn-sign":87,"./num-to-bn":91}],93:[function(t,e,r){"use strict";var n=t("bn.js");e.exports=function(t){return new n(t)}},{"bn.js":101}],94:[function(t,e,r){"use strict";var n=t("./lib/rationalize");e.exports=function(t,e){return n(t[0].mul(e[0]),t[1].mul(e[1]))}},{"./lib/rationalize":92}],95:[function(t,e,r){"use strict";var n=t("./lib/bn-sign");e.exports=function(t){return n(t[0])*n(t[1])}},{"./lib/bn-sign":87}],96:[function(t,e,r){"use strict";var n=t("./lib/rationalize");e.exports=function(t,e){return n(t[0].mul(e[1]).sub(t[1].mul(e[0])),t[1].mul(e[1]))}},{"./lib/rationalize":92}],97:[function(t,e,r){"use strict";var n=t("./lib/bn-to-num"),i=t("./lib/ctz");e.exports=function(t){var e=t[0],r=t[1];if(0===e.cmpn(0))return 0;var a=e.abs().divmod(r.abs()),o=a.div,s=n(o),l=a.mod,c=e.negative!==r.negative?-1:1;if(0===l.cmpn(0))return c*s;if(s){var u=i(s)+4,f=n(l.ushln(u).divRound(r));return c*(s+f*Math.pow(2,-u))}var h=r.bitLength()-l.bitLength()+53;f=n(l.ushln(h).divRound(r));return h<1023?c*f*Math.pow(2,-h):(f*=Math.pow(2,-1023),c*f*Math.pow(2,1023-h))}},{"./lib/bn-to-num":88,"./lib/ctz":89}],98:[function(t,e,r){"use strict";function n(t,e,r,n,i){for(var a=i+1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)>=0?(a=o,i=o-1):n=o+1}return a}function i(t,e,r,n,i){for(var a=i+1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)>0?(a=o,i=o-1):n=o+1}return a}function a(t,e,r,n,i){for(var a=n-1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)<0?(a=o,n=o+1):i=o-1}return a}function o(t,e,r,n,i){for(var a=n-1;n<=i;){var o=n+i>>>1,s=t[o];(void 0!==r?r(s,e):s-e)<=0?(a=o,n=o+1):i=o-1}return a}function s(t,e,r,n,i){for(;n<=i;){var a=n+i>>>1,o=t[a],s=void 0!==r?r(o,e):o-e;if(0===s)return a;s<=0?n=a+1:i=a-1}return-1}function l(t,e,r,n,i,a){return"function"==typeof r?a(t,e,r,void 0===n?0:0|n,void 0===i?t.length-1:0|i):a(t,e,void 0,void 0===r?0:0|r,void 0===n?t.length-1:0|n)}e.exports={ge:function(t,e,r,i,a){return l(t,e,r,i,a,n)},gt:function(t,e,r,n,a){return l(t,e,r,n,a,i)},lt:function(t,e,r,n,i){return l(t,e,r,n,i,a)},le:function(t,e,r,n,i){return l(t,e,r,n,i,o)},eq:function(t,e,r,n,i){return l(t,e,r,n,i,s)}}},{}],99:[function(t,e,r){"use strict";function n(t){var e=32;return(t&=-t)&&e--,65535&t&&(e-=16),16711935&t&&(e-=8),252645135&t&&(e-=4),858993459&t&&(e-=2),1431655765&t&&(e-=1),e}r.INT_BITS=32,r.INT_MAX=2147483647,r.INT_MIN=-1<<31,r.sign=function(t){return(t>0)-(t<0)},r.abs=function(t){var e=t>>31;return(t^e)-e},r.min=function(t,e){return e^(t^e)&-(t65535)<<4,e|=r=((t>>>=e)>255)<<3,e|=r=((t>>>=r)>15)<<2,(e|=r=((t>>>=r)>3)<<1)|(t>>>=r)>>1},r.log10=function(t){return t>=1e9?9:t>=1e8?8:t>=1e7?7:t>=1e6?6:t>=1e5?5:t>=1e4?4:t>=1e3?3:t>=100?2:t>=10?1:0},r.popCount=function(t){return 16843009*((t=(858993459&(t-=t>>>1&1431655765))+(t>>>2&858993459))+(t>>>4)&252645135)>>>24},r.countTrailingZeros=n,r.nextPow2=function(t){return t+=0===t,--t,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)+1},r.prevPow2=function(t){return t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,(t|=t>>>16)-(t>>>1)},r.parity=function(t){return t^=t>>>16,t^=t>>>8,t^=t>>>4,27030>>>(t&=15)&1};var i=new Array(256);!function(t){for(var e=0;e<256;++e){var r=e,n=e,i=7;for(r>>>=1;r;r>>>=1)n<<=1,n|=1&r,--i;t[e]=n<>>8&255]<<16|i[t>>>16&255]<<8|i[t>>>24&255]},r.interleave2=function(t,e){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t&=65535)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e&=65535)|e<<8))|e<<4))|e<<2))|e<<1))<<1},r.deinterleave2=function(t,e){return(t=65535&((t=16711935&((t=252645135&((t=858993459&((t=t>>>e&1431655765)|t>>>1))|t>>>2))|t>>>4))|t>>>16))<<16>>16},r.interleave3=function(t,e,r){return t=1227133513&((t=3272356035&((t=251719695&((t=4278190335&((t&=1023)|t<<16))|t<<8))|t<<4))|t<<2),(t|=(e=1227133513&((e=3272356035&((e=251719695&((e=4278190335&((e&=1023)|e<<16))|e<<8))|e<<4))|e<<2))<<1)|(r=1227133513&((r=3272356035&((r=251719695&((r=4278190335&((r&=1023)|r<<16))|r<<8))|r<<4))|r<<2))<<2},r.deinterleave3=function(t,e){return(t=1023&((t=4278190335&((t=251719695&((t=3272356035&((t=t>>>e&1227133513)|t>>>2))|t>>>4))|t>>>8))|t>>>16))<<22>>22},r.nextCombination=function(t){var e=t|t-1;return e+1|(~e&-~e)-1>>>n(t)+1}},{}],100:[function(t,e,r){"use strict";var n=t("clamp");e.exports=function(t,e){e||(e={});var r,o,s,l,c,u,f,h,p,d,m,g=null==e.cutoff?.25:e.cutoff,v=null==e.radius?8:e.radius,y=e.channel||0;if(ArrayBuffer.isView(t)||Array.isArray(t)){if(!e.width||!e.height)throw Error("For raw data width and height should be provided by options");r=e.width,o=e.height,l=t,u=e.stride?e.stride:Math.floor(t.length/r/o)}else window.HTMLCanvasElement&&t instanceof window.HTMLCanvasElement?(f=(h=t).getContext("2d"),r=h.width,o=h.height,p=f.getImageData(0,0,r,o),l=p.data,u=4):window.CanvasRenderingContext2D&&t instanceof window.CanvasRenderingContext2D?(h=t.canvas,f=t,r=h.width,o=h.height,p=f.getImageData(0,0,r,o),l=p.data,u=4):window.ImageData&&t instanceof window.ImageData&&(p=t,r=t.width,o=t.height,l=p.data,u=4);if(s=Math.max(r,o),window.Uint8ClampedArray&&l instanceof window.Uint8ClampedArray||window.Uint8Array&&l instanceof window.Uint8Array)for(c=l,l=Array(r*o),d=0,m=c.length;d=49&&o<=54?o-49+10:o>=17&&o<=22?o-17+10:15&o}return n}function l(t,e,r,n){for(var i=0,a=Math.min(t.length,r),o=e;o=49?s-49+10:s>=17?s-17+10:s}return i}a.isBN=function(t){return t instanceof a||null!==t&&"object"==typeof t&&t.constructor.wordSize===a.wordSize&&Array.isArray(t.words)},a.max=function(t,e){return t.cmp(e)>0?t:e},a.min=function(t,e){return t.cmp(e)<0?t:e},a.prototype._init=function(t,e,r){if("number"==typeof t)return this._initNumber(t,e,r);if("object"==typeof t)return this._initArray(t,e,r);"hex"===e&&(e=16),n(e===(0|e)&&e>=2&&e<=36);var i=0;"-"===(t=t.toString().replace(/\s+/g,""))[0]&&i++,16===e?this._parseHex(t,i):this._parseBase(t,e,i),"-"===t[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),e,r)},a.prototype._initNumber=function(t,e,r){t<0&&(this.negative=1,t=-t),t<67108864?(this.words=[67108863&t],this.length=1):t<4503599627370496?(this.words=[67108863&t,t/67108864&67108863],this.length=2):(n(t<9007199254740992),this.words=[67108863&t,t/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),e,r)},a.prototype._initArray=function(t,e,r){if(n("number"==typeof t.length),t.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(t.length/3),this.words=new Array(this.length);for(var i=0;i=0;i-=3)o=t[i]|t[i-1]<<8|t[i-2]<<16,this.words[a]|=o<>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);else if("le"===r)for(i=0,a=0;i>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);return this.strip()},a.prototype._parseHex=function(t,e){this.length=Math.ceil((t.length-e)/6),this.words=new Array(this.length);for(var r=0;r=e;r-=6)i=s(t,r,r+6),this.words[n]|=i<>>26-a&4194303,(a+=24)>=26&&(a-=26,n++);r+6!==e&&(i=s(t,e,r+6),this.words[n]|=i<>>26-a&4194303),this.strip()},a.prototype._parseBase=function(t,e,r){this.words=[0],this.length=1;for(var n=0,i=1;i<=67108863;i*=e)n++;n--,i=i/e|0;for(var a=t.length-r,o=a%n,s=Math.min(a,a-o)+r,c=0,u=r;u1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},a.prototype.inspect=function(){return(this.red?""};var c=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],u=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function h(t,e,r){r.negative=e.negative^t.negative;var n=t.length+e.length|0;r.length=n,n=n-1|0;var i=0|t.words[0],a=0|e.words[0],o=i*a,s=67108863&o,l=o/67108864|0;r.words[0]=s;for(var c=1;c>>26,f=67108863&l,h=Math.min(c,e.length-1),p=Math.max(0,c-t.length+1);p<=h;p++){var d=c-p|0;u+=(o=(i=0|t.words[d])*(a=0|e.words[p])+f)/67108864|0,f=67108863&o}r.words[c]=0|f,l=0|u}return 0!==l?r.words[c]=0|l:r.length--,r.strip()}a.prototype.toString=function(t,e){var r;if(e=0|e||1,16===(t=t||10)||"hex"===t){r="";for(var i=0,a=0,o=0;o>>24-i&16777215)||o!==this.length-1?c[6-l.length]+l+r:l+r,(i+=2)>=26&&(i-=26,o--)}for(0!==a&&(r=a.toString(16)+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(t===(0|t)&&t>=2&&t<=36){var h=u[t],p=f[t];r="";var d=this.clone();for(d.negative=0;!d.isZero();){var m=d.modn(p).toString(t);r=(d=d.idivn(p)).isZero()?m+r:c[h-m.length]+m+r}for(this.isZero()&&(r="0"+r);r.length%e!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var t=this.words[0];return 2===this.length?t+=67108864*this.words[1]:3===this.length&&1===this.words[2]?t+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-t:t},a.prototype.toJSON=function(){return this.toString(16)},a.prototype.toBuffer=function(t,e){return n(void 0!==o),this.toArrayLike(o,t,e)},a.prototype.toArray=function(t,e){return this.toArrayLike(Array,t,e)},a.prototype.toArrayLike=function(t,e,r){var i=this.byteLength(),a=r||Math.max(1,i);n(i<=a,"byte array longer than desired length"),n(a>0,"Requested array length <= 0"),this.strip();var o,s,l="le"===e,c=new t(a),u=this.clone();if(l){for(s=0;!u.isZero();s++)o=u.andln(255),u.iushrn(8),c[s]=o;for(;s=4096&&(r+=13,e>>>=13),e>=64&&(r+=7,e>>>=7),e>=8&&(r+=4,e>>>=4),e>=2&&(r+=2,e>>>=2),r+e},a.prototype._zeroBits=function(t){if(0===t)return 26;var e=t,r=0;return 0==(8191&e)&&(r+=13,e>>>=13),0==(127&e)&&(r+=7,e>>>=7),0==(15&e)&&(r+=4,e>>>=4),0==(3&e)&&(r+=2,e>>>=2),0==(1&e)&&r++,r},a.prototype.bitLength=function(){var t=this.words[this.length-1],e=this._countBits(t);return 26*(this.length-1)+e},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var t=0,e=0;et.length?this.clone().ior(t):t.clone().ior(this)},a.prototype.uor=function(t){return this.length>t.length?this.clone().iuor(t):t.clone().iuor(this)},a.prototype.iuand=function(t){var e;e=this.length>t.length?t:this;for(var r=0;rt.length?this.clone().iand(t):t.clone().iand(this)},a.prototype.uand=function(t){return this.length>t.length?this.clone().iuand(t):t.clone().iuand(this)},a.prototype.iuxor=function(t){var e,r;this.length>t.length?(e=this,r=t):(e=t,r=this);for(var n=0;nt.length?this.clone().ixor(t):t.clone().ixor(this)},a.prototype.uxor=function(t){return this.length>t.length?this.clone().iuxor(t):t.clone().iuxor(this)},a.prototype.inotn=function(t){n("number"==typeof t&&t>=0);var e=0|Math.ceil(t/26),r=t%26;this._expand(e),r>0&&e--;for(var i=0;i0&&(this.words[i]=~this.words[i]&67108863>>26-r),this.strip()},a.prototype.notn=function(t){return this.clone().inotn(t)},a.prototype.setn=function(t,e){n("number"==typeof t&&t>=0);var r=t/26|0,i=t%26;return this._expand(r+1),this.words[r]=e?this.words[r]|1<t.length?(r=this,n=t):(r=t,n=this);for(var i=0,a=0;a>>26;for(;0!==i&&a>>26;if(this.length=r.length,0!==i)this.words[this.length]=i,this.length++;else if(r!==this)for(;at.length?this.clone().iadd(t):t.clone().iadd(this)},a.prototype.isub=function(t){if(0!==t.negative){t.negative=0;var e=this.iadd(t);return t.negative=1,e._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(t),this.negative=1,this._normSign();var r,n,i=this.cmp(t);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(r=this,n=t):(r=t,n=this);for(var a=0,o=0;o>26,this.words[o]=67108863&e;for(;0!==a&&o>26,this.words[o]=67108863&e;if(0===a&&o>>13,p=0|o[1],d=8191&p,m=p>>>13,g=0|o[2],v=8191&g,y=g>>>13,x=0|o[3],b=8191&x,_=x>>>13,w=0|o[4],T=8191&w,k=w>>>13,M=0|o[5],A=8191&M,S=M>>>13,E=0|o[6],L=8191&E,C=E>>>13,P=0|o[7],I=8191&P,O=P>>>13,z=0|o[8],D=8191&z,R=z>>>13,F=0|o[9],B=8191&F,N=F>>>13,j=0|s[0],U=8191&j,V=j>>>13,q=0|s[1],H=8191&q,G=q>>>13,Y=0|s[2],W=8191&Y,X=Y>>>13,Z=0|s[3],J=8191&Z,K=Z>>>13,Q=0|s[4],$=8191&Q,tt=Q>>>13,et=0|s[5],rt=8191&et,nt=et>>>13,it=0|s[6],at=8191&it,ot=it>>>13,st=0|s[7],lt=8191&st,ct=st>>>13,ut=0|s[8],ft=8191&ut,ht=ut>>>13,pt=0|s[9],dt=8191&pt,mt=pt>>>13;r.negative=t.negative^e.negative,r.length=19;var gt=(c+(n=Math.imul(f,U))|0)+((8191&(i=(i=Math.imul(f,V))+Math.imul(h,U)|0))<<13)|0;c=((a=Math.imul(h,V))+(i>>>13)|0)+(gt>>>26)|0,gt&=67108863,n=Math.imul(d,U),i=(i=Math.imul(d,V))+Math.imul(m,U)|0,a=Math.imul(m,V);var vt=(c+(n=n+Math.imul(f,H)|0)|0)+((8191&(i=(i=i+Math.imul(f,G)|0)+Math.imul(h,H)|0))<<13)|0;c=((a=a+Math.imul(h,G)|0)+(i>>>13)|0)+(vt>>>26)|0,vt&=67108863,n=Math.imul(v,U),i=(i=Math.imul(v,V))+Math.imul(y,U)|0,a=Math.imul(y,V),n=n+Math.imul(d,H)|0,i=(i=i+Math.imul(d,G)|0)+Math.imul(m,H)|0,a=a+Math.imul(m,G)|0;var yt=(c+(n=n+Math.imul(f,W)|0)|0)+((8191&(i=(i=i+Math.imul(f,X)|0)+Math.imul(h,W)|0))<<13)|0;c=((a=a+Math.imul(h,X)|0)+(i>>>13)|0)+(yt>>>26)|0,yt&=67108863,n=Math.imul(b,U),i=(i=Math.imul(b,V))+Math.imul(_,U)|0,a=Math.imul(_,V),n=n+Math.imul(v,H)|0,i=(i=i+Math.imul(v,G)|0)+Math.imul(y,H)|0,a=a+Math.imul(y,G)|0,n=n+Math.imul(d,W)|0,i=(i=i+Math.imul(d,X)|0)+Math.imul(m,W)|0,a=a+Math.imul(m,X)|0;var xt=(c+(n=n+Math.imul(f,J)|0)|0)+((8191&(i=(i=i+Math.imul(f,K)|0)+Math.imul(h,J)|0))<<13)|0;c=((a=a+Math.imul(h,K)|0)+(i>>>13)|0)+(xt>>>26)|0,xt&=67108863,n=Math.imul(T,U),i=(i=Math.imul(T,V))+Math.imul(k,U)|0,a=Math.imul(k,V),n=n+Math.imul(b,H)|0,i=(i=i+Math.imul(b,G)|0)+Math.imul(_,H)|0,a=a+Math.imul(_,G)|0,n=n+Math.imul(v,W)|0,i=(i=i+Math.imul(v,X)|0)+Math.imul(y,W)|0,a=a+Math.imul(y,X)|0,n=n+Math.imul(d,J)|0,i=(i=i+Math.imul(d,K)|0)+Math.imul(m,J)|0,a=a+Math.imul(m,K)|0;var bt=(c+(n=n+Math.imul(f,$)|0)|0)+((8191&(i=(i=i+Math.imul(f,tt)|0)+Math.imul(h,$)|0))<<13)|0;c=((a=a+Math.imul(h,tt)|0)+(i>>>13)|0)+(bt>>>26)|0,bt&=67108863,n=Math.imul(A,U),i=(i=Math.imul(A,V))+Math.imul(S,U)|0,a=Math.imul(S,V),n=n+Math.imul(T,H)|0,i=(i=i+Math.imul(T,G)|0)+Math.imul(k,H)|0,a=a+Math.imul(k,G)|0,n=n+Math.imul(b,W)|0,i=(i=i+Math.imul(b,X)|0)+Math.imul(_,W)|0,a=a+Math.imul(_,X)|0,n=n+Math.imul(v,J)|0,i=(i=i+Math.imul(v,K)|0)+Math.imul(y,J)|0,a=a+Math.imul(y,K)|0,n=n+Math.imul(d,$)|0,i=(i=i+Math.imul(d,tt)|0)+Math.imul(m,$)|0,a=a+Math.imul(m,tt)|0;var _t=(c+(n=n+Math.imul(f,rt)|0)|0)+((8191&(i=(i=i+Math.imul(f,nt)|0)+Math.imul(h,rt)|0))<<13)|0;c=((a=a+Math.imul(h,nt)|0)+(i>>>13)|0)+(_t>>>26)|0,_t&=67108863,n=Math.imul(L,U),i=(i=Math.imul(L,V))+Math.imul(C,U)|0,a=Math.imul(C,V),n=n+Math.imul(A,H)|0,i=(i=i+Math.imul(A,G)|0)+Math.imul(S,H)|0,a=a+Math.imul(S,G)|0,n=n+Math.imul(T,W)|0,i=(i=i+Math.imul(T,X)|0)+Math.imul(k,W)|0,a=a+Math.imul(k,X)|0,n=n+Math.imul(b,J)|0,i=(i=i+Math.imul(b,K)|0)+Math.imul(_,J)|0,a=a+Math.imul(_,K)|0,n=n+Math.imul(v,$)|0,i=(i=i+Math.imul(v,tt)|0)+Math.imul(y,$)|0,a=a+Math.imul(y,tt)|0,n=n+Math.imul(d,rt)|0,i=(i=i+Math.imul(d,nt)|0)+Math.imul(m,rt)|0,a=a+Math.imul(m,nt)|0;var wt=(c+(n=n+Math.imul(f,at)|0)|0)+((8191&(i=(i=i+Math.imul(f,ot)|0)+Math.imul(h,at)|0))<<13)|0;c=((a=a+Math.imul(h,ot)|0)+(i>>>13)|0)+(wt>>>26)|0,wt&=67108863,n=Math.imul(I,U),i=(i=Math.imul(I,V))+Math.imul(O,U)|0,a=Math.imul(O,V),n=n+Math.imul(L,H)|0,i=(i=i+Math.imul(L,G)|0)+Math.imul(C,H)|0,a=a+Math.imul(C,G)|0,n=n+Math.imul(A,W)|0,i=(i=i+Math.imul(A,X)|0)+Math.imul(S,W)|0,a=a+Math.imul(S,X)|0,n=n+Math.imul(T,J)|0,i=(i=i+Math.imul(T,K)|0)+Math.imul(k,J)|0,a=a+Math.imul(k,K)|0,n=n+Math.imul(b,$)|0,i=(i=i+Math.imul(b,tt)|0)+Math.imul(_,$)|0,a=a+Math.imul(_,tt)|0,n=n+Math.imul(v,rt)|0,i=(i=i+Math.imul(v,nt)|0)+Math.imul(y,rt)|0,a=a+Math.imul(y,nt)|0,n=n+Math.imul(d,at)|0,i=(i=i+Math.imul(d,ot)|0)+Math.imul(m,at)|0,a=a+Math.imul(m,ot)|0;var Tt=(c+(n=n+Math.imul(f,lt)|0)|0)+((8191&(i=(i=i+Math.imul(f,ct)|0)+Math.imul(h,lt)|0))<<13)|0;c=((a=a+Math.imul(h,ct)|0)+(i>>>13)|0)+(Tt>>>26)|0,Tt&=67108863,n=Math.imul(D,U),i=(i=Math.imul(D,V))+Math.imul(R,U)|0,a=Math.imul(R,V),n=n+Math.imul(I,H)|0,i=(i=i+Math.imul(I,G)|0)+Math.imul(O,H)|0,a=a+Math.imul(O,G)|0,n=n+Math.imul(L,W)|0,i=(i=i+Math.imul(L,X)|0)+Math.imul(C,W)|0,a=a+Math.imul(C,X)|0,n=n+Math.imul(A,J)|0,i=(i=i+Math.imul(A,K)|0)+Math.imul(S,J)|0,a=a+Math.imul(S,K)|0,n=n+Math.imul(T,$)|0,i=(i=i+Math.imul(T,tt)|0)+Math.imul(k,$)|0,a=a+Math.imul(k,tt)|0,n=n+Math.imul(b,rt)|0,i=(i=i+Math.imul(b,nt)|0)+Math.imul(_,rt)|0,a=a+Math.imul(_,nt)|0,n=n+Math.imul(v,at)|0,i=(i=i+Math.imul(v,ot)|0)+Math.imul(y,at)|0,a=a+Math.imul(y,ot)|0,n=n+Math.imul(d,lt)|0,i=(i=i+Math.imul(d,ct)|0)+Math.imul(m,lt)|0,a=a+Math.imul(m,ct)|0;var kt=(c+(n=n+Math.imul(f,ft)|0)|0)+((8191&(i=(i=i+Math.imul(f,ht)|0)+Math.imul(h,ft)|0))<<13)|0;c=((a=a+Math.imul(h,ht)|0)+(i>>>13)|0)+(kt>>>26)|0,kt&=67108863,n=Math.imul(B,U),i=(i=Math.imul(B,V))+Math.imul(N,U)|0,a=Math.imul(N,V),n=n+Math.imul(D,H)|0,i=(i=i+Math.imul(D,G)|0)+Math.imul(R,H)|0,a=a+Math.imul(R,G)|0,n=n+Math.imul(I,W)|0,i=(i=i+Math.imul(I,X)|0)+Math.imul(O,W)|0,a=a+Math.imul(O,X)|0,n=n+Math.imul(L,J)|0,i=(i=i+Math.imul(L,K)|0)+Math.imul(C,J)|0,a=a+Math.imul(C,K)|0,n=n+Math.imul(A,$)|0,i=(i=i+Math.imul(A,tt)|0)+Math.imul(S,$)|0,a=a+Math.imul(S,tt)|0,n=n+Math.imul(T,rt)|0,i=(i=i+Math.imul(T,nt)|0)+Math.imul(k,rt)|0,a=a+Math.imul(k,nt)|0,n=n+Math.imul(b,at)|0,i=(i=i+Math.imul(b,ot)|0)+Math.imul(_,at)|0,a=a+Math.imul(_,ot)|0,n=n+Math.imul(v,lt)|0,i=(i=i+Math.imul(v,ct)|0)+Math.imul(y,lt)|0,a=a+Math.imul(y,ct)|0,n=n+Math.imul(d,ft)|0,i=(i=i+Math.imul(d,ht)|0)+Math.imul(m,ft)|0,a=a+Math.imul(m,ht)|0;var Mt=(c+(n=n+Math.imul(f,dt)|0)|0)+((8191&(i=(i=i+Math.imul(f,mt)|0)+Math.imul(h,dt)|0))<<13)|0;c=((a=a+Math.imul(h,mt)|0)+(i>>>13)|0)+(Mt>>>26)|0,Mt&=67108863,n=Math.imul(B,H),i=(i=Math.imul(B,G))+Math.imul(N,H)|0,a=Math.imul(N,G),n=n+Math.imul(D,W)|0,i=(i=i+Math.imul(D,X)|0)+Math.imul(R,W)|0,a=a+Math.imul(R,X)|0,n=n+Math.imul(I,J)|0,i=(i=i+Math.imul(I,K)|0)+Math.imul(O,J)|0,a=a+Math.imul(O,K)|0,n=n+Math.imul(L,$)|0,i=(i=i+Math.imul(L,tt)|0)+Math.imul(C,$)|0,a=a+Math.imul(C,tt)|0,n=n+Math.imul(A,rt)|0,i=(i=i+Math.imul(A,nt)|0)+Math.imul(S,rt)|0,a=a+Math.imul(S,nt)|0,n=n+Math.imul(T,at)|0,i=(i=i+Math.imul(T,ot)|0)+Math.imul(k,at)|0,a=a+Math.imul(k,ot)|0,n=n+Math.imul(b,lt)|0,i=(i=i+Math.imul(b,ct)|0)+Math.imul(_,lt)|0,a=a+Math.imul(_,ct)|0,n=n+Math.imul(v,ft)|0,i=(i=i+Math.imul(v,ht)|0)+Math.imul(y,ft)|0,a=a+Math.imul(y,ht)|0;var At=(c+(n=n+Math.imul(d,dt)|0)|0)+((8191&(i=(i=i+Math.imul(d,mt)|0)+Math.imul(m,dt)|0))<<13)|0;c=((a=a+Math.imul(m,mt)|0)+(i>>>13)|0)+(At>>>26)|0,At&=67108863,n=Math.imul(B,W),i=(i=Math.imul(B,X))+Math.imul(N,W)|0,a=Math.imul(N,X),n=n+Math.imul(D,J)|0,i=(i=i+Math.imul(D,K)|0)+Math.imul(R,J)|0,a=a+Math.imul(R,K)|0,n=n+Math.imul(I,$)|0,i=(i=i+Math.imul(I,tt)|0)+Math.imul(O,$)|0,a=a+Math.imul(O,tt)|0,n=n+Math.imul(L,rt)|0,i=(i=i+Math.imul(L,nt)|0)+Math.imul(C,rt)|0,a=a+Math.imul(C,nt)|0,n=n+Math.imul(A,at)|0,i=(i=i+Math.imul(A,ot)|0)+Math.imul(S,at)|0,a=a+Math.imul(S,ot)|0,n=n+Math.imul(T,lt)|0,i=(i=i+Math.imul(T,ct)|0)+Math.imul(k,lt)|0,a=a+Math.imul(k,ct)|0,n=n+Math.imul(b,ft)|0,i=(i=i+Math.imul(b,ht)|0)+Math.imul(_,ft)|0,a=a+Math.imul(_,ht)|0;var St=(c+(n=n+Math.imul(v,dt)|0)|0)+((8191&(i=(i=i+Math.imul(v,mt)|0)+Math.imul(y,dt)|0))<<13)|0;c=((a=a+Math.imul(y,mt)|0)+(i>>>13)|0)+(St>>>26)|0,St&=67108863,n=Math.imul(B,J),i=(i=Math.imul(B,K))+Math.imul(N,J)|0,a=Math.imul(N,K),n=n+Math.imul(D,$)|0,i=(i=i+Math.imul(D,tt)|0)+Math.imul(R,$)|0,a=a+Math.imul(R,tt)|0,n=n+Math.imul(I,rt)|0,i=(i=i+Math.imul(I,nt)|0)+Math.imul(O,rt)|0,a=a+Math.imul(O,nt)|0,n=n+Math.imul(L,at)|0,i=(i=i+Math.imul(L,ot)|0)+Math.imul(C,at)|0,a=a+Math.imul(C,ot)|0,n=n+Math.imul(A,lt)|0,i=(i=i+Math.imul(A,ct)|0)+Math.imul(S,lt)|0,a=a+Math.imul(S,ct)|0,n=n+Math.imul(T,ft)|0,i=(i=i+Math.imul(T,ht)|0)+Math.imul(k,ft)|0,a=a+Math.imul(k,ht)|0;var Et=(c+(n=n+Math.imul(b,dt)|0)|0)+((8191&(i=(i=i+Math.imul(b,mt)|0)+Math.imul(_,dt)|0))<<13)|0;c=((a=a+Math.imul(_,mt)|0)+(i>>>13)|0)+(Et>>>26)|0,Et&=67108863,n=Math.imul(B,$),i=(i=Math.imul(B,tt))+Math.imul(N,$)|0,a=Math.imul(N,tt),n=n+Math.imul(D,rt)|0,i=(i=i+Math.imul(D,nt)|0)+Math.imul(R,rt)|0,a=a+Math.imul(R,nt)|0,n=n+Math.imul(I,at)|0,i=(i=i+Math.imul(I,ot)|0)+Math.imul(O,at)|0,a=a+Math.imul(O,ot)|0,n=n+Math.imul(L,lt)|0,i=(i=i+Math.imul(L,ct)|0)+Math.imul(C,lt)|0,a=a+Math.imul(C,ct)|0,n=n+Math.imul(A,ft)|0,i=(i=i+Math.imul(A,ht)|0)+Math.imul(S,ft)|0,a=a+Math.imul(S,ht)|0;var Lt=(c+(n=n+Math.imul(T,dt)|0)|0)+((8191&(i=(i=i+Math.imul(T,mt)|0)+Math.imul(k,dt)|0))<<13)|0;c=((a=a+Math.imul(k,mt)|0)+(i>>>13)|0)+(Lt>>>26)|0,Lt&=67108863,n=Math.imul(B,rt),i=(i=Math.imul(B,nt))+Math.imul(N,rt)|0,a=Math.imul(N,nt),n=n+Math.imul(D,at)|0,i=(i=i+Math.imul(D,ot)|0)+Math.imul(R,at)|0,a=a+Math.imul(R,ot)|0,n=n+Math.imul(I,lt)|0,i=(i=i+Math.imul(I,ct)|0)+Math.imul(O,lt)|0,a=a+Math.imul(O,ct)|0,n=n+Math.imul(L,ft)|0,i=(i=i+Math.imul(L,ht)|0)+Math.imul(C,ft)|0,a=a+Math.imul(C,ht)|0;var Ct=(c+(n=n+Math.imul(A,dt)|0)|0)+((8191&(i=(i=i+Math.imul(A,mt)|0)+Math.imul(S,dt)|0))<<13)|0;c=((a=a+Math.imul(S,mt)|0)+(i>>>13)|0)+(Ct>>>26)|0,Ct&=67108863,n=Math.imul(B,at),i=(i=Math.imul(B,ot))+Math.imul(N,at)|0,a=Math.imul(N,ot),n=n+Math.imul(D,lt)|0,i=(i=i+Math.imul(D,ct)|0)+Math.imul(R,lt)|0,a=a+Math.imul(R,ct)|0,n=n+Math.imul(I,ft)|0,i=(i=i+Math.imul(I,ht)|0)+Math.imul(O,ft)|0,a=a+Math.imul(O,ht)|0;var Pt=(c+(n=n+Math.imul(L,dt)|0)|0)+((8191&(i=(i=i+Math.imul(L,mt)|0)+Math.imul(C,dt)|0))<<13)|0;c=((a=a+Math.imul(C,mt)|0)+(i>>>13)|0)+(Pt>>>26)|0,Pt&=67108863,n=Math.imul(B,lt),i=(i=Math.imul(B,ct))+Math.imul(N,lt)|0,a=Math.imul(N,ct),n=n+Math.imul(D,ft)|0,i=(i=i+Math.imul(D,ht)|0)+Math.imul(R,ft)|0,a=a+Math.imul(R,ht)|0;var It=(c+(n=n+Math.imul(I,dt)|0)|0)+((8191&(i=(i=i+Math.imul(I,mt)|0)+Math.imul(O,dt)|0))<<13)|0;c=((a=a+Math.imul(O,mt)|0)+(i>>>13)|0)+(It>>>26)|0,It&=67108863,n=Math.imul(B,ft),i=(i=Math.imul(B,ht))+Math.imul(N,ft)|0,a=Math.imul(N,ht);var Ot=(c+(n=n+Math.imul(D,dt)|0)|0)+((8191&(i=(i=i+Math.imul(D,mt)|0)+Math.imul(R,dt)|0))<<13)|0;c=((a=a+Math.imul(R,mt)|0)+(i>>>13)|0)+(Ot>>>26)|0,Ot&=67108863;var zt=(c+(n=Math.imul(B,dt))|0)+((8191&(i=(i=Math.imul(B,mt))+Math.imul(N,dt)|0))<<13)|0;return c=((a=Math.imul(N,mt))+(i>>>13)|0)+(zt>>>26)|0,zt&=67108863,l[0]=gt,l[1]=vt,l[2]=yt,l[3]=xt,l[4]=bt,l[5]=_t,l[6]=wt,l[7]=Tt,l[8]=kt,l[9]=Mt,l[10]=At,l[11]=St,l[12]=Et,l[13]=Lt,l[14]=Ct,l[15]=Pt,l[16]=It,l[17]=Ot,l[18]=zt,0!==c&&(l[19]=c,r.length++),r};function d(t,e,r){return(new m).mulp(t,e,r)}function m(t,e){this.x=t,this.y=e}Math.imul||(p=h),a.prototype.mulTo=function(t,e){var r=this.length+t.length;return 10===this.length&&10===t.length?p(this,t,e):r<63?h(this,t,e):r<1024?function(t,e,r){r.negative=e.negative^t.negative,r.length=t.length+e.length;for(var n=0,i=0,a=0;a>>26)|0)>>>26,o&=67108863}r.words[a]=s,n=o,o=i}return 0!==n?r.words[a]=n:r.length--,r.strip()}(this,t,e):d(this,t,e)},m.prototype.makeRBT=function(t){for(var e=new Array(t),r=a.prototype._countBits(t)-1,n=0;n>=1;return n},m.prototype.permute=function(t,e,r,n,i,a){for(var o=0;o>>=1)i++;return 1<>>=13,r[2*o+1]=8191&a,a>>>=13;for(o=2*e;o>=26,e+=i/67108864|0,e+=a>>>26,this.words[r]=67108863&a}return 0!==e&&(this.words[r]=e,this.length++),this},a.prototype.muln=function(t){return this.clone().imuln(t)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(t){var e=function(t){for(var e=new Array(t.bitLength()),r=0;r>>i}return e}(t);if(0===e.length)return new a(1);for(var r=this,n=0;n=0);var e,r=t%26,i=(t-r)/26,a=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(e=0;e>>26-r}o&&(this.words[e]=o,this.length++)}if(0!==i){for(e=this.length-1;e>=0;e--)this.words[e+i]=this.words[e];for(e=0;e=0),i=e?(e-e%26)/26:0;var a=t%26,o=Math.min((t-a)/26,this.length),s=67108863^67108863>>>a<o)for(this.length-=o,c=0;c=0&&(0!==u||c>=i);c--){var f=0|this.words[c];this.words[c]=u<<26-a|f>>>a,u=f&s}return l&&0!==u&&(l.words[l.length++]=u),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},a.prototype.ishrn=function(t,e,r){return n(0===this.negative),this.iushrn(t,e,r)},a.prototype.shln=function(t){return this.clone().ishln(t)},a.prototype.ushln=function(t){return this.clone().iushln(t)},a.prototype.shrn=function(t){return this.clone().ishrn(t)},a.prototype.ushrn=function(t){return this.clone().iushrn(t)},a.prototype.testn=function(t){n("number"==typeof t&&t>=0);var e=t%26,r=(t-e)/26,i=1<=0);var e=t%26,r=(t-e)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==e&&r++,this.length=Math.min(r,this.length),0!==e){var i=67108863^67108863>>>e<=67108864;e++)this.words[e]-=67108864,e===this.length-1?this.words[e+1]=1:this.words[e+1]++;return this.length=Math.max(this.length,e+1),this},a.prototype.isubn=function(t){if(n("number"==typeof t),n(t<67108864),t<0)return this.iaddn(-t);if(0!==this.negative)return this.negative=0,this.iaddn(t),this.negative=1,this;if(this.words[0]-=t,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var e=0;e>26)-(l/67108864|0),this.words[i+r]=67108863&a}for(;i>26,this.words[i+r]=67108863&a;if(0===s)return this.strip();for(n(-1===s),s=0,i=0;i>26,this.words[i]=67108863&a;return this.negative=1,this.strip()},a.prototype._wordDiv=function(t,e){var r=(this.length,t.length),n=this.clone(),i=t,o=0|i.words[i.length-1];0!==(r=26-this._countBits(o))&&(i=i.ushln(r),n.iushln(r),o=0|i.words[i.length-1]);var s,l=n.length-i.length;if("mod"!==e){(s=new a(null)).length=l+1,s.words=new Array(s.length);for(var c=0;c=0;f--){var h=67108864*(0|n.words[i.length+f])+(0|n.words[i.length+f-1]);for(h=Math.min(h/o|0,67108863),n._ishlnsubmul(i,h,f);0!==n.negative;)h--,n.negative=0,n._ishlnsubmul(i,1,f),n.isZero()||(n.negative^=1);s&&(s.words[f]=h)}return s&&s.strip(),n.strip(),"div"!==e&&0!==r&&n.iushrn(r),{div:s||null,mod:n}},a.prototype.divmod=function(t,e,r){return n(!t.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===t.negative?(s=this.neg().divmod(t,e),"mod"!==e&&(i=s.div.neg()),"div"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(t)),{div:i,mod:o}):0===this.negative&&0!==t.negative?(s=this.divmod(t.neg(),e),"mod"!==e&&(i=s.div.neg()),{div:i,mod:s.mod}):0!=(this.negative&t.negative)?(s=this.neg().divmod(t.neg(),e),"div"!==e&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(t)),{div:s.div,mod:o}):t.length>this.length||this.cmp(t)<0?{div:new a(0),mod:this}:1===t.length?"div"===e?{div:this.divn(t.words[0]),mod:null}:"mod"===e?{div:null,mod:new a(this.modn(t.words[0]))}:{div:this.divn(t.words[0]),mod:new a(this.modn(t.words[0]))}:this._wordDiv(t,e);var i,o,s},a.prototype.div=function(t){return this.divmod(t,"div",!1).div},a.prototype.mod=function(t){return this.divmod(t,"mod",!1).mod},a.prototype.umod=function(t){return this.divmod(t,"mod",!0).mod},a.prototype.divRound=function(t){var e=this.divmod(t);if(e.mod.isZero())return e.div;var r=0!==e.div.negative?e.mod.isub(t):e.mod,n=t.ushrn(1),i=t.andln(1),a=r.cmp(n);return a<0||1===i&&0===a?e.div:0!==e.div.negative?e.div.isubn(1):e.div.iaddn(1)},a.prototype.modn=function(t){n(t<=67108863);for(var e=(1<<26)%t,r=0,i=this.length-1;i>=0;i--)r=(e*r+(0|this.words[i]))%t;return r},a.prototype.idivn=function(t){n(t<=67108863);for(var e=0,r=this.length-1;r>=0;r--){var i=(0|this.words[r])+67108864*e;this.words[r]=i/t|0,e=i%t}return this.strip()},a.prototype.divn=function(t){return this.clone().idivn(t)},a.prototype.egcd=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i=new a(1),o=new a(0),s=new a(0),l=new a(1),c=0;e.isEven()&&r.isEven();)e.iushrn(1),r.iushrn(1),++c;for(var u=r.clone(),f=e.clone();!e.isZero();){for(var h=0,p=1;0==(e.words[0]&p)&&h<26;++h,p<<=1);if(h>0)for(e.iushrn(h);h-- >0;)(i.isOdd()||o.isOdd())&&(i.iadd(u),o.isub(f)),i.iushrn(1),o.iushrn(1);for(var d=0,m=1;0==(r.words[0]&m)&&d<26;++d,m<<=1);if(d>0)for(r.iushrn(d);d-- >0;)(s.isOdd()||l.isOdd())&&(s.iadd(u),l.isub(f)),s.iushrn(1),l.iushrn(1);e.cmp(r)>=0?(e.isub(r),i.isub(s),o.isub(l)):(r.isub(e),s.isub(i),l.isub(o))}return{a:s,b:l,gcd:r.iushln(c)}},a.prototype._invmp=function(t){n(0===t.negative),n(!t.isZero());var e=this,r=t.clone();e=0!==e.negative?e.umod(t):e.clone();for(var i,o=new a(1),s=new a(0),l=r.clone();e.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,u=1;0==(e.words[0]&u)&&c<26;++c,u<<=1);if(c>0)for(e.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(l),o.iushrn(1);for(var f=0,h=1;0==(r.words[0]&h)&&f<26;++f,h<<=1);if(f>0)for(r.iushrn(f);f-- >0;)s.isOdd()&&s.iadd(l),s.iushrn(1);e.cmp(r)>=0?(e.isub(r),o.isub(s)):(r.isub(e),s.isub(o))}return(i=0===e.cmpn(1)?o:s).cmpn(0)<0&&i.iadd(t),i},a.prototype.gcd=function(t){if(this.isZero())return t.abs();if(t.isZero())return this.abs();var e=this.clone(),r=t.clone();e.negative=0,r.negative=0;for(var n=0;e.isEven()&&r.isEven();n++)e.iushrn(1),r.iushrn(1);for(;;){for(;e.isEven();)e.iushrn(1);for(;r.isEven();)r.iushrn(1);var i=e.cmp(r);if(i<0){var a=e;e=r,r=a}else if(0===i||0===r.cmpn(1))break;e.isub(r)}return r.iushln(n)},a.prototype.invm=function(t){return this.egcd(t).a.umod(t)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(t){return this.words[0]&t},a.prototype.bincn=function(t){n("number"==typeof t);var e=t%26,r=(t-e)/26,i=1<>>26,s&=67108863,this.words[o]=s}return 0!==a&&(this.words[o]=a,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(t){var e,r=t<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this.strip(),this.length>1)e=1;else{r&&(t=-t),n(t<=67108863,"Number is too big");var i=0|this.words[0];e=i===t?0:it.length)return 1;if(this.length=0;r--){var n=0|this.words[r],i=0|t.words[r];if(n!==i){ni&&(e=1);break}}return e},a.prototype.gtn=function(t){return 1===this.cmpn(t)},a.prototype.gt=function(t){return 1===this.cmp(t)},a.prototype.gten=function(t){return this.cmpn(t)>=0},a.prototype.gte=function(t){return this.cmp(t)>=0},a.prototype.ltn=function(t){return-1===this.cmpn(t)},a.prototype.lt=function(t){return-1===this.cmp(t)},a.prototype.lten=function(t){return this.cmpn(t)<=0},a.prototype.lte=function(t){return this.cmp(t)<=0},a.prototype.eqn=function(t){return 0===this.cmpn(t)},a.prototype.eq=function(t){return 0===this.cmp(t)},a.red=function(t){return new w(t)},a.prototype.toRed=function(t){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),t.convertTo(this)._forceRed(t)},a.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(t){return this.red=t,this},a.prototype.forceRed=function(t){return n(!this.red,"Already a number in reduction context"),this._forceRed(t)},a.prototype.redAdd=function(t){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,t)},a.prototype.redIAdd=function(t){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,t)},a.prototype.redSub=function(t){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,t)},a.prototype.redISub=function(t){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,t)},a.prototype.redShl=function(t){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,t)},a.prototype.redMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.mul(this,t)},a.prototype.redIMul=function(t){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,t),this.red.imul(this,t)},a.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(t){return n(this.red&&!t.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,t)};var g={k256:null,p224:null,p192:null,p25519:null};function v(t,e){this.name=t,this.p=new a(e,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function y(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function x(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function b(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function _(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function w(t){if("string"==typeof t){var e=a._prime(t);this.m=e.p,this.prime=e}else n(t.gtn(1),"modulus must be greater than 1"),this.m=t,this.prime=null}function T(t){w.call(this,t),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var t=new a(null);return t.words=new Array(Math.ceil(this.n/13)),t},v.prototype.ireduce=function(t){var e,r=t;do{this.split(r,this.tmp),e=(r=(r=this.imulK(r)).iadd(this.tmp)).bitLength()}while(e>this.n);var n=e0?r.isub(this.p):r.strip(),r},v.prototype.split=function(t,e){t.iushrn(this.n,0,e)},v.prototype.imulK=function(t){return t.imul(this.k)},i(y,v),y.prototype.split=function(t,e){for(var r=Math.min(t.length,9),n=0;n>>22,i=a}i>>>=22,t.words[n-10]=i,0===i&&t.length>10?t.length-=10:t.length-=9},y.prototype.imulK=function(t){t.words[t.length]=0,t.words[t.length+1]=0,t.length+=2;for(var e=0,r=0;r>>=26,t.words[r]=i,e=n}return 0!==e&&(t.words[t.length++]=e),t},a._prime=function(t){if(g[t])return g[t];var e;if("k256"===t)e=new y;else if("p224"===t)e=new x;else if("p192"===t)e=new b;else{if("p25519"!==t)throw new Error("Unknown prime "+t);e=new _}return g[t]=e,e},w.prototype._verify1=function(t){n(0===t.negative,"red works only with positives"),n(t.red,"red works only with red numbers")},w.prototype._verify2=function(t,e){n(0==(t.negative|e.negative),"red works only with positives"),n(t.red&&t.red===e.red,"red works only with red numbers")},w.prototype.imod=function(t){return this.prime?this.prime.ireduce(t)._forceRed(this):t.umod(this.m)._forceRed(this)},w.prototype.neg=function(t){return t.isZero()?t.clone():this.m.sub(t)._forceRed(this)},w.prototype.add=function(t,e){this._verify2(t,e);var r=t.add(e);return r.cmp(this.m)>=0&&r.isub(this.m),r._forceRed(this)},w.prototype.iadd=function(t,e){this._verify2(t,e);var r=t.iadd(e);return r.cmp(this.m)>=0&&r.isub(this.m),r},w.prototype.sub=function(t,e){this._verify2(t,e);var r=t.sub(e);return r.cmpn(0)<0&&r.iadd(this.m),r._forceRed(this)},w.prototype.isub=function(t,e){this._verify2(t,e);var r=t.isub(e);return r.cmpn(0)<0&&r.iadd(this.m),r},w.prototype.shl=function(t,e){return this._verify1(t),this.imod(t.ushln(e))},w.prototype.imul=function(t,e){return this._verify2(t,e),this.imod(t.imul(e))},w.prototype.mul=function(t,e){return this._verify2(t,e),this.imod(t.mul(e))},w.prototype.isqr=function(t){return this.imul(t,t.clone())},w.prototype.sqr=function(t){return this.mul(t,t)},w.prototype.sqrt=function(t){if(t.isZero())return t.clone();var e=this.m.andln(3);if(n(e%2==1),3===e){var r=this.m.add(new a(1)).iushrn(2);return this.pow(t,r)}for(var i=this.m.subn(1),o=0;!i.isZero()&&0===i.andln(1);)o++,i.iushrn(1);n(!i.isZero());var s=new a(1).toRed(this),l=s.redNeg(),c=this.m.subn(1).iushrn(1),u=this.m.bitLength();for(u=new a(2*u*u).toRed(this);0!==this.pow(u,c).cmp(l);)u.redIAdd(l);for(var f=this.pow(u,i),h=this.pow(t,i.addn(1).iushrn(1)),p=this.pow(t,i),d=o;0!==p.cmp(s);){for(var m=p,g=0;0!==m.cmp(s);g++)m=m.redSqr();n(g=0;n--){for(var c=e.words[n],u=l-1;u>=0;u--){var f=c>>u&1;i!==r[0]&&(i=this.sqr(i)),0!==f||0!==o?(o<<=1,o|=f,(4===++s||0===n&&0===u)&&(i=this.mul(i,r[o]),s=0,o=0)):s=0}l=26}return i},w.prototype.convertTo=function(t){var e=t.umod(this.m);return e===t?e.clone():e},w.prototype.convertFrom=function(t){var e=t.clone();return e.red=null,e},a.mont=function(t){return new T(t)},i(T,w),T.prototype.convertTo=function(t){return this.imod(t.ushln(this.shift))},T.prototype.convertFrom=function(t){var e=this.imod(t.mul(this.rinv));return e.red=null,e},T.prototype.imul=function(t,e){if(t.isZero()||e.isZero())return t.words[0]=0,t.length=1,t;var r=t.imul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},T.prototype.mul=function(t,e){if(t.isZero()||e.isZero())return new a(0)._forceRed(this);var r=t.mul(e),n=r.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=r.isub(n).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},T.prototype.invm=function(t){return this.imod(t._invmp(this.m).mul(this.r2))._forceRed(this)}}(void 0===e||e,this)},{buffer:110}],102:[function(t,e,r){"use strict";e.exports=function(t){var e,r,n,i=t.length,a=0;for(e=0;e>>1;if(!(u<=0)){var f,h=i.mallocDouble(2*u*s),p=i.mallocInt32(s);if((s=l(t,u,h,p))>0){if(1===u&&n)a.init(s),f=a.sweepComplete(u,r,0,s,h,p,0,s,h,p);else{var d=i.mallocDouble(2*u*c),m=i.mallocInt32(c);(c=l(e,u,d,m))>0&&(a.init(s+c),f=1===u?a.sweepBipartite(u,r,0,s,h,p,0,c,d,m):o(u,r,n,s,h,p,c,d,m),i.free(d),i.free(m))}i.free(h),i.free(p)}return f}}}function u(t,e){n.push([t,e])}function f(t){return n=[],c(t,t,u,!0),n}function h(t,e){return n=[],c(t,e,u,!1),n}},{"./lib/intersect":105,"./lib/sweep":109,"typedarray-pool":609}],104:[function(t,e,r){"use strict";var n=["d","ax","vv","rs","re","rb","ri","bs","be","bb","bi"];function i(t){var e="bruteForce"+(t?"Full":"Partial"),r=[],i=n.slice();t||i.splice(3,0,"fp");var a=["function "+e+"("+i.join()+"){"];function o(e,i){var o=function(t,e,r){var i="bruteForce"+(t?"Red":"Blue")+(e?"Flip":"")+(r?"Full":""),a=["function ",i,"(",n.join(),"){","var ","es","=2*","d",";"],o="for(var i=rs,rp=es*rs;ibe-bs){"),t?(o(!0,!1),a.push("}else{"),o(!1,!1)):(a.push("if(fp){"),o(!0,!0),a.push("}else{"),o(!0,!1),a.push("}}else{if(fp){"),o(!1,!0),a.push("}else{"),o(!1,!1),a.push("}")),a.push("}}return "+e);var s=r.join("")+a.join("");return new Function(s)()}r.partial=i(!1),r.full=i(!0)},{}],105:[function(t,e,r){"use strict";e.exports=function(t,e,r,a,u,w,T,k,M){!function(t,e){var r=8*i.log2(e+1)*(t+1)|0,a=i.nextPow2(6*r);v.length0;){var L=6*(S-=1),C=v[L],P=v[L+1],I=v[L+2],O=v[L+3],z=v[L+4],D=v[L+5],R=2*S,F=y[R],B=y[R+1],N=1&D,j=!!(16&D),U=u,V=w,q=k,H=M;if(N&&(U=k,V=M,q=u,H=w),!(2&D&&(I=p(t,C,P,I,U,V,B),P>=I)||4&D&&(P=d(t,C,P,I,U,V,F))>=I)){var G=I-P,Y=z-O;if(j){if(t*G*(G+Y)<1<<22){if(void 0!==(A=l.scanComplete(t,C,e,P,I,U,V,O,z,q,H)))return A;continue}}else{if(t*Math.min(G,Y)<128){if(void 0!==(A=o(t,C,e,N,P,I,U,V,O,z,q,H)))return A;continue}if(t*G*Y<1<<22){if(void 0!==(A=l.scanBipartite(t,C,e,N,P,I,U,V,O,z,q,H)))return A;continue}}var W=f(t,C,P,I,U,V,F,B);if(P=p0)&&!(p1>=hi)",["p0","p1"]),h=u("lo===p0",["p0"]),p=u("lo>>1,f=2*t,h=u,p=o[f*u+e];for(;l=y?(h=v,p=y):g>=b?(h=m,p=g):(h=x,p=b):y>=b?(h=v,p=y):b>=g?(h=m,p=g):(h=x,p=b);for(var _=f*(c-1),w=f*h,T=0;Tr&&i[f+e]>c;--u,f-=o){for(var h=f,p=f+o,d=0;d=0&&n.push("lo=e[k+n]");t.indexOf("hi")>=0&&n.push("hi=e[k+o]");return r.push("for(var j=2*a,k=j*c,l=k,m=c,n=b,o=a+b,p=c;d>p;++p,k+=j){var _;if($)if(m===p)m+=1,l+=j;else{for(var s=0;j>s;++s){var t=e[k+s];e[k+s]=e[l],e[l++]=t}var u=f[p];f[p]=f[m],f[m++]=u}}return m".replace("_",n.join()).replace("$",t)),Function.apply(void 0,r)}},{}],108:[function(t,e,r){"use strict";e.exports=function(t,e){e<=128?n(0,e-1,t):function t(e,r,u){var f=(r-e+1)/6|0,h=e+f,p=r-f,d=e+r>>1,m=d-f,g=d+f,v=h,y=m,x=d,b=g,_=p,w=e+1,T=r-1,k=0;l(v,y,u)&&(k=v,v=y,y=k);l(b,_,u)&&(k=b,b=_,_=k);l(v,x,u)&&(k=v,v=x,x=k);l(y,x,u)&&(k=y,y=x,x=k);l(v,b,u)&&(k=v,v=b,b=k);l(x,b,u)&&(k=x,x=b,b=k);l(y,_,u)&&(k=y,y=_,_=k);l(y,x,u)&&(k=y,y=x,x=k);l(b,_,u)&&(k=b,b=_,_=k);for(var M=u[2*y],A=u[2*y+1],S=u[2*b],E=u[2*b+1],L=2*v,C=2*x,P=2*_,I=2*h,O=2*d,z=2*p,D=0;D<2;++D){var R=u[L+D],F=u[C+D],B=u[P+D];u[I+D]=R,u[O+D]=F,u[z+D]=B}a(m,e,u),a(g,r,u);for(var N=w;N<=T;++N)if(c(N,M,A,u))N!==w&&i(N,w,u),++w;else if(!c(N,S,E,u))for(;;){if(c(T,S,E,u)){c(T,M,A,u)?(o(N,w,T,u),++w,--T):(i(N,T,u),--T);break}if(--Tt;){var c=r[l-2],u=r[l-1];if(cr[e+1])}function c(t,e,r,n){var i=n[t*=2];return i>>1;a(h,A);var S=0,E=0;for(w=0;w=1<<28)p(l,c,E--,L=L-(1<<28)|0);else if(L>=0)p(o,s,S--,L);else if(L<=-(1<<28)){L=-L-(1<<28)|0;for(var C=0;C>>1;a(h,E);var L=0,C=0,P=0;for(k=0;k>1==h[2*k+3]>>1&&(O=2,k+=1),I<0){for(var z=-(I>>1)-1,D=0;D>1)-1;0===O?p(o,s,L--,z):1===O?p(l,c,C--,z):2===O&&p(u,f,P--,z)}}},scanBipartite:function(t,e,r,n,i,l,c,u,f,m,g,v){var y=0,x=2*t,b=e,_=e+t,w=1,T=1;n?T=1<<28:w=1<<28;for(var k=i;k>>1;a(h,E);var L=0;for(k=0;k=1<<28?(P=!n,M-=1<<28):(P=!!n,M-=1),P)d(o,s,L++,M);else{var I=v[M],O=x*M,z=g[O+e+1],D=g[O+e+1+t];t:for(var R=0;R>>1;a(h,w);var T=0;for(y=0;y=1<<28)o[T++]=x-(1<<28);else{var M=p[x-=1],A=m*x,S=f[A+e+1],E=f[A+e+1+t];t:for(var L=0;L=0;--L)if(o[L]===x){for(O=L+1;O0&&o.length>i&&!o.warned){o.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=t,l.type=e,l.count=o.length,s=l,console&&console.warn&&console.warn(s)}return t}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},i=h.bind(n);return i.listener=r,n.wrapFn=i,i}function d(t,e,r){var n=t._events;if(void 0===n)return[];var i=n[e];return void 0===i?[]:"function"==typeof i?r?[i.listener||i]:[i]:r?function(t){for(var e=new Array(t.length),r=0;r0&&(o=e[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var l=i[t];if(void 0===l)return!1;if("function"==typeof l)a(l,this,e);else{var c=l.length,u=g(l,c);for(r=0;r=0;a--)if(r[a]===e||r[a].listener===e){o=r[a].listener,i=a;break}if(i<0)return this;0===i?r.shift():function(t,e){for(;e+1=0;n--)this.removeListener(t,e[n]);return this},s.prototype.listeners=function(t){return d(this,t,!0)},s.prototype.rawListeners=function(t){return d(this,t,!1)},s.listenerCount=function(t,e){return"function"==typeof t.listenerCount?t.listenerCount(e):m.call(t,e)},s.prototype.listenerCount=m,s.prototype.eventNames=function(){return this._eventsCount>0?n(this._events):[]}},{}],112:[function(t,e,r){(function(e){(function(){ /*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT */ -"use strict";var e=t("base64-js"),n=t("ieee754");r.Buffer=a,r.SlowBuffer=function(t){+t!=t&&(t=0);return a.alloc(+t)},r.INSPECT_MAX_BYTES=50;function i(t){if(t>2147483647)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return e.__proto__=a.prototype,e}function a(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return l(t)}return o(t,e,r)}function o(t,e,r){if("string"==typeof t)return function(t,e){"string"==typeof e&&""!==e||(e="utf8");if(!a.isEncoding(e))throw new TypeError("Unknown encoding: "+e);var r=0|f(t,e),n=i(r),o=n.write(t,e);o!==r&&(n=n.slice(0,o));return n}(t,e);if(ArrayBuffer.isView(t))return c(t);if(null==t)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(B(t,ArrayBuffer)||t&&B(t.buffer,ArrayBuffer))return function(t,e,r){if(e<0||t.byteLength=2147483647)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+2147483647..toString(16)+" bytes");return 0|t}function f(t,e){if(a.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||B(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var r=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;for(var i=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return D(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return R(t).length;default:if(i)return n?-1:D(t).length;e=(""+e).toLowerCase(),i=!0}}function h(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return A(this,e,r);case"utf8":case"utf-8":return T(this,e,r);case"ascii":return k(this,e,r);case"latin1":case"binary":return M(this,e,r);case"base64":return w(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function p(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function d(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),N(r=+r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=a.from(e,n)),a.isBuffer(e))return 0===e.length?-1:g(t,e,r,n,i);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):g(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function g(t,e,r,n,i){var a,o=1,s=t.length,l=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;o=2,s/=2,l/=2,r/=2}function c(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}if(i){var u=-1;for(a=r;as&&(r=s-l),a=r;a>=0;a--){for(var f=!0,h=0;hi&&(n=i):n=i;var a=e.length;n>a/2&&(n=a/2);for(var o=0;o>8,i=r%256,a.push(i),a.push(n);return a}(e,t.length-r),t,r,n)}function w(t,r,n){return 0===r&&n===t.length?e.fromByteArray(t):e.fromByteArray(t.slice(r,n))}function T(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:c>223?3:c>191?2:1;if(i+f<=r)switch(f){case 1:c<128&&(u=c);break;case 2:128==(192&(a=t[i+1]))&&(l=(31&c)<<6|63&a)>127&&(u=l);break;case 3:a=t[i+1],o=t[i+2],128==(192&a)&&128==(192&o)&&(l=(15&c)<<12|(63&a)<<6|63&o)>2047&&(l<55296||l>57343)&&(u=l);break;case 4:a=t[i+1],o=t[i+2],s=t[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&(l=(15&c)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&l<1114112&&(u=l)}null===u?(u=65533,f=1):u>65535&&(u-=65536,n.push(u>>>10&1023|55296),u=56320|1023&u),n.push(u),i+=f}return function(t){var e=t.length;if(e<=4096)return String.fromCharCode.apply(String,t);var r="",n=0;for(;ne&&(t+=" ... "),""},a.prototype.compare=function(t,e,r,n,i){if(B(t,Uint8Array)&&(t=a.from(t,t.offset,t.byteLength)),!a.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var o=(i>>>=0)-(n>>>=0),s=(r>>>=0)-(e>>>=0),l=Math.min(o,s),c=this.slice(n,i),u=t.slice(e,r),f=0;f>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var a=!1;;)switch(n){case"hex":return m(this,t,e,r);case"utf8":case"utf-8":return v(this,t,e,r);case"ascii":return y(this,t,e,r);case"latin1":case"binary":return x(this,t,e,r);case"base64":return b(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _(this,t,e,r);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function k(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i="",a=e;ar)throw new RangeError("Trying to access beyond buffer length")}function C(t,e,r,n,i,o){if(!a.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function L(t,e,r,n,i,a){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function I(t,e,r,i,a){return e=+e,r>>>=0,a||L(t,0,r,4),n.write(t,e,r,i,23,4),r+4}function P(t,e,r,i,a){return e=+e,r>>>=0,a||L(t,0,r,8),n.write(t,e,r,i,52,8),r+8}a.prototype.slice=function(t,e){var r=this.length;(t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e>>=0,e>>>=0,r||E(t,e,this.length);for(var n=this[t],i=1,a=0;++a>>=0,e>>>=0,r||E(t,e,this.length);for(var n=this[t+--e],i=1;e>0&&(i*=256);)n+=this[t+--e]*i;return n},a.prototype.readUInt8=function(t,e){return t>>>=0,e||E(t,1,this.length),this[t]},a.prototype.readUInt16LE=function(t,e){return t>>>=0,e||E(t,2,this.length),this[t]|this[t+1]<<8},a.prototype.readUInt16BE=function(t,e){return t>>>=0,e||E(t,2,this.length),this[t]<<8|this[t+1]},a.prototype.readUInt32LE=function(t,e){return t>>>=0,e||E(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},a.prototype.readUInt32BE=function(t,e){return t>>>=0,e||E(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},a.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||E(t,e,this.length);for(var n=this[t],i=1,a=0;++a=(i*=128)&&(n-=Math.pow(2,8*e)),n},a.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||E(t,e,this.length);for(var n=e,i=1,a=this[t+--n];n>0&&(i*=256);)a+=this[t+--n]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*e)),a},a.prototype.readInt8=function(t,e){return t>>>=0,e||E(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},a.prototype.readInt16LE=function(t,e){t>>>=0,e||E(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt16BE=function(t,e){t>>>=0,e||E(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt32LE=function(t,e){return t>>>=0,e||E(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},a.prototype.readInt32BE=function(t,e){return t>>>=0,e||E(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},a.prototype.readFloatLE=function(t,e){return t>>>=0,e||E(t,4,this.length),n.read(this,t,!0,23,4)},a.prototype.readFloatBE=function(t,e){return t>>>=0,e||E(t,4,this.length),n.read(this,t,!1,23,4)},a.prototype.readDoubleLE=function(t,e){return t>>>=0,e||E(t,8,this.length),n.read(this,t,!0,52,8)},a.prototype.readDoubleBE=function(t,e){return t>>>=0,e||E(t,8,this.length),n.read(this,t,!1,52,8)},a.prototype.writeUIntLE=function(t,e,r,n){(t=+t,e>>>=0,r>>>=0,n)||C(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,a=0;for(this[e]=255&t;++a>>=0,r>>>=0,n)||C(this,t,e,r,Math.pow(2,8*r)-1,0);var i=r-1,a=1;for(this[e+i]=255&t;--i>=0&&(a*=256);)this[e+i]=t/a&255;return e+r},a.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,1,255,0),this[e]=255&t,e+1},a.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},a.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},a.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},a.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},a.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);C(this,t,e,r,i-1,-i)}var a=0,o=1,s=0;for(this[e]=255&t;++a>0)-s&255;return e+r},a.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);C(this,t,e,r,i-1,-i)}var a=r-1,o=1,s=0;for(this[e+a]=255&t;--a>=0&&(o*=256);)t<0&&0===s&&0!==this[e+a+1]&&(s=1),this[e+a]=(t/o>>0)-s&255;return e+r},a.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},a.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},a.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},a.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},a.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||C(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},a.prototype.writeFloatLE=function(t,e,r){return I(this,t,e,!0,r)},a.prototype.writeFloatBE=function(t,e,r){return I(this,t,e,!1,r)},a.prototype.writeDoubleLE=function(t,e,r){return P(this,t,e,!0,r)},a.prototype.writeDoubleBE=function(t,e,r){return P(this,t,e,!1,r)},a.prototype.copy=function(t,e,r,n){if(!a.isBuffer(t))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--o)t[o+e]=this[o+r];else Uint8Array.prototype.set.call(t,this.subarray(r,n),e);return i},a.prototype.fill=function(t,e,r,n){if("string"==typeof t){if("string"==typeof e?(n=e,e=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!a.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(1===t.length){var i=t.charCodeAt(0);("utf8"===n&&i<128||"latin1"===n)&&(t=i)}}else"number"==typeof t&&(t&=255);if(e<0||this.length>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(o=e;o55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&a.push(239,191,189);continue}if(o+1===n){(e-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&a.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;a.push(r)}else if(r<2048){if((e-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function R(t){return e.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(z,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function F(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function B(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function N(t){return t!=t}}).call(this)}).call(this,t("buffer").Buffer)},{"base64-js":79,buffer:111,ieee754:442}],112:[function(t,e,r){"use strict";var n=t("./lib/monotone"),i=t("./lib/triangulation"),a=t("./lib/delaunay"),o=t("./lib/filter");function s(t){return[Math.min(t[0],t[1]),Math.max(t[0],t[1])]}function l(t,e){return t[0]-e[0]||t[1]-e[1]}function c(t,e,r){return e in t?t[e]:r}e.exports=function(t,e,r){Array.isArray(e)?(r=r||{},e=e||[]):(r=e||{},e=[]);var u=!!c(r,"delaunay",!0),f=!!c(r,"interior",!0),h=!!c(r,"exterior",!0),p=!!c(r,"infinity",!1);if(!f&&!h||0===t.length)return[];var d=n(t,e);if(u||f!==h||p){for(var g=i(t.length,function(t){return t.map(s).sort(l)}(e)),m=0;m0;){for(var p=r.pop(),d=(s=r.pop(),u=-1,f=-1,l=o[s],1);d=0||(e.flip(s,p),i(t,e,r,u,s,f),i(t,e,r,s,f,u),i(t,e,r,f,p,u),i(t,e,r,p,u,f)))}}},{"binary-search-bounds":96,"robust-in-sphere":546}],114:[function(t,e,r){"use strict";var n,i=t("binary-search-bounds");function a(t,e,r,n,i,a,o){this.cells=t,this.neighbor=e,this.flags=n,this.constraint=r,this.active=i,this.next=a,this.boundary=o}function o(t,e){return t[0]-e[0]||t[1]-e[1]||t[2]-e[2]}e.exports=function(t,e,r){var n=function(t,e){for(var r=t.cells(),n=r.length,i=0;i0||l.length>0;){for(;s.length>0;){var p=s.pop();if(c[p]!==-i){c[p]=i;u[p];for(var d=0;d<3;++d){var g=h[3*p+d];g>=0&&0===c[g]&&(f[3*p+d]?l.push(g):(s.push(g),c[g]=i))}}}var m=l;l=s,s=m,l.length=0,i=-i}var v=function(t,e,r){for(var n=0,i=0;i1&&i(r[h[p-2]],r[h[p-1]],a)>0;)t.push([h[p-1],h[p-2],o]),p-=1;h.length=p,h.push(o);var d=f.upperIds;for(p=d.length;p>1&&i(r[d[p-2]],r[d[p-1]],a)<0;)t.push([d[p-2],d[p-1],o]),p-=1;d.length=p,d.push(o)}}function u(t,e){var r;return(r=t.a[0]d[0]&&i.push(new o(d,p,2,l),new o(p,d,1,l))}i.sort(s);for(var g=i[0].a[0]-(1+Math.abs(i[0].a[0]))*Math.pow(2,-52),m=[new a([g,1],[g,0],-1,[],[],[],[])],v=[],y=(l=0,i.length);l=0}}(),a.removeTriangle=function(t,e,r){var n=this.stars;o(n[t],e,r),o(n[e],r,t),o(n[r],t,e)},a.addTriangle=function(t,e,r){var n=this.stars;n[t].push(e,r),n[e].push(r,t),n[r].push(t,e)},a.opposite=function(t,e){for(var r=this.stars[e],n=1,i=r.length;nr?r:t:te?e:t}},{}],121:[function(t,e,r){"use strict";e.exports=function(t,e,r){var n;if(r){n=e;for(var i=new Array(e.length),a=0;ae[2]?1:0)}function v(t,e,r){if(0!==t.length){if(e)for(var n=0;n=0;--a){var x=e[u=(S=n[a])[0]],b=x[0],_=x[1],w=t[b],T=t[_];if((w[0]-T[0]||w[1]-T[1])<0){var k=b;b=_,_=k}x[0]=b;var M,A=x[1]=S[1];for(i&&(M=x[2]);a>0&&n[a-1][0]===u;){var S,E=(S=n[--a])[1];i?e.push([A,E,M]):e.push([A,E]),A=E}i?e.push([A,_,M]):e.push([A,_])}return h}(t,e,h,m,r));return v(e,y,r),!!y||(h.length>0||m.length>0)}},{"./lib/rat-seg-intersect":122,"big-rat":83,"big-rat/cmp":81,"big-rat/to-float":95,"box-intersect":101,nextafter:496,"rat-vec":530,"robust-segment-intersect":551,"union-find":596}],122:[function(t,e,r){"use strict";e.exports=function(t,e,r,n){var a=s(e,t),f=s(n,r),h=u(a,f);if(0===o(h))return null;var p=s(t,r),d=u(f,p),g=i(d,h),m=c(a,g);return l(t,m)};var n=t("big-rat/mul"),i=t("big-rat/div"),a=t("big-rat/sub"),o=t("big-rat/sign"),s=t("rat-vec/sub"),l=t("rat-vec/add"),c=t("rat-vec/muls");function u(t,e){return a(n(t[0],e[1]),n(t[1],e[0]))}},{"big-rat/div":82,"big-rat/mul":92,"big-rat/sign":93,"big-rat/sub":94,"rat-vec/add":529,"rat-vec/muls":531,"rat-vec/sub":532}],123:[function(t,e,r){"use strict";var n=t("clamp");function i(t,e){null==e&&(e=!0);var r=t[0],i=t[1],a=t[2],o=t[3];return null==o&&(o=e?1:255),e&&(r*=255,i*=255,a*=255,o*=255),16777216*(r=255&n(r,0,255))+((i=255&n(i,0,255))<<16)+((a=255&n(a,0,255))<<8)+(o=255&n(o,0,255))}e.exports=i,e.exports.to=i,e.exports.from=function(t,e){var r=(t=+t)>>>24,n=(16711680&t)>>>16,i=(65280&t)>>>8,a=255&t;return!1===e?[r,n,i,a]:[r/255,n/255,i/255,a/255]}},{clamp:120}],124:[function(t,e,r){"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},{}],125:[function(t,e,r){"use strict";var n=t("color-rgba"),i=t("clamp"),a=t("dtype");e.exports=function(t,e){"float"!==e&&e||(e="array"),"uint"===e&&(e="uint8"),"uint_clamped"===e&&(e="uint8_clamped");var r=new(a(e))(4),o="uint8"!==e&&"uint8_clamped"!==e;return t.length&&"string"!=typeof t||((t=n(t))[0]/=255,t[1]/=255,t[2]/=255),function(t){return t instanceof Uint8Array||t instanceof Uint8ClampedArray||!!(Array.isArray(t)&&(t[0]>1||0===t[0])&&(t[1]>1||0===t[1])&&(t[2]>1||0===t[2])&&(!t[3]||t[3]>1))}(t)?(r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=null!=t[3]?t[3]:255,o&&(r[0]/=255,r[1]/=255,r[2]/=255,r[3]/=255),r):(o?(r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=null!=t[3]?t[3]:1):(r[0]=i(Math.floor(255*t[0]),0,255),r[1]=i(Math.floor(255*t[1]),0,255),r[2]=i(Math.floor(255*t[2]),0,255),r[3]=null==t[3]?255:i(Math.floor(255*t[3]),0,255)),r)}},{clamp:120,"color-rgba":127,dtype:175}],126:[function(t,e,r){(function(r){(function(){"use strict";var n=t("color-name"),i=t("is-plain-obj"),a=t("defined");e.exports=function(t){var e,s,l=[],c=1;if("string"==typeof t)if(n[t])l=n[t].slice(),s="rgb";else if("transparent"===t)c=0,s="rgb",l=[0,0,0];else if(/^#[A-Fa-f0-9]+$/.test(t)){var u=(p=t.slice(1)).length;c=1,u<=4?(l=[parseInt(p[0]+p[0],16),parseInt(p[1]+p[1],16),parseInt(p[2]+p[2],16)],4===u&&(c=parseInt(p[3]+p[3],16)/255)):(l=[parseInt(p[0]+p[1],16),parseInt(p[2]+p[3],16),parseInt(p[4]+p[5],16)],8===u&&(c=parseInt(p[6]+p[7],16)/255)),l[0]||(l[0]=0),l[1]||(l[1]=0),l[2]||(l[2]=0),s="rgb"}else if(e=/^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\s*\(([^\)]*)\)/.exec(t)){var f=e[1],h="rgb"===f,p=f.replace(/a$/,"");s=p;u="cmyk"===p?4:"gray"===p?1:3;l=e[2].trim().split(/\s*,\s*/).map((function(t,e){if(/%$/.test(t))return e===u?parseFloat(t)/100:"rgb"===p?255*parseFloat(t)/100:parseFloat(t);if("h"===p[e]){if(/deg$/.test(t))return parseFloat(t);if(void 0!==o[t])return o[t]}return parseFloat(t)})),f===p&&l.push(1),c=h||void 0===l[u]?1:l[u],l=l.slice(0,u)}else t.length>10&&/[0-9](?:\s|\/)/.test(t)&&(l=t.match(/([0-9]+)/g).map((function(t){return parseFloat(t)})),s=t.match(/([a-z])/gi).join("").toLowerCase());else if(isNaN(t))if(i(t)){var d=a(t.r,t.red,t.R,null);null!==d?(s="rgb",l=[d,a(t.g,t.green,t.G),a(t.b,t.blue,t.B)]):(s="hsl",l=[a(t.h,t.hue,t.H),a(t.s,t.saturation,t.S),a(t.l,t.lightness,t.L,t.b,t.brightness)]),c=a(t.a,t.alpha,t.opacity,1),null!=t.opacity&&(c/=100)}else(Array.isArray(t)||r.ArrayBuffer&&ArrayBuffer.isView&&ArrayBuffer.isView(t))&&(l=[t[0],t[1],t[2]],s="rgb",c=4===t.length?t[3]:1);else s="rgb",l=[t>>>16,(65280&t)>>>8,255&t];return{space:s,values:l,alpha:c}};var o={red:0,orange:60,yellow:120,green:180,blue:240,purple:300}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"color-name":124,defined:170,"is-plain-obj":469}],127:[function(t,e,r){"use strict";var n=t("color-parse"),i=t("color-space/hsl"),a=t("clamp");e.exports=function(t){var e,r=n(t);return r.space?((e=Array(3))[0]=a(r.values[0],0,255),e[1]=a(r.values[1],0,255),e[2]=a(r.values[2],0,255),"h"===r.space[0]&&(e=i.rgb(e)),e.push(a(r.alpha,0,1)),e):[]}},{clamp:120,"color-parse":126,"color-space/hsl":128}],128:[function(t,e,r){"use strict";var n=t("./rgb");e.exports={name:"hsl",min:[0,0,0],max:[360,100,100],channel:["hue","saturation","lightness"],alias:["HSL"],rgb:function(t){var e,r,n,i,a,o=t[0]/360,s=t[1]/100,l=t[2]/100;if(0===s)return[a=255*l,a,a];e=2*l-(r=l<.5?l*(1+s):l+s-l*s),i=[0,0,0];for(var c=0;c<3;c++)(n=o+1/3*-(c-1))<0?n++:n>1&&n--,a=6*n<1?e+6*(r-e)*n:2*n<1?r:3*n<2?e+(r-e)*(2/3-n)*6:e,i[c]=255*a;return i}},n.hsl=function(t){var e,r,n=t[0]/255,i=t[1]/255,a=t[2]/255,o=Math.min(n,i,a),s=Math.max(n,i,a),l=s-o;return s===o?e=0:n===s?e=(i-a)/l:i===s?e=2+(a-n)/l:a===s&&(e=4+(n-i)/l),(e=Math.min(60*e,360))<0&&(e+=360),r=(o+s)/2,[e,100*(s===o?0:r<=.5?l/(s+o):l/(2-s-o)),100*r]}},{"./rgb":129}],129:[function(t,e,r){"use strict";e.exports={name:"rgb",min:[0,0,0],max:[255,255,255],channel:["red","green","blue"],alias:["RGB"]}},{}],130:[function(t,e,r){e.exports={jet:[{index:0,rgb:[0,0,131]},{index:.125,rgb:[0,60,170]},{index:.375,rgb:[5,255,255]},{index:.625,rgb:[255,255,0]},{index:.875,rgb:[250,0,0]},{index:1,rgb:[128,0,0]}],hsv:[{index:0,rgb:[255,0,0]},{index:.169,rgb:[253,255,2]},{index:.173,rgb:[247,255,2]},{index:.337,rgb:[0,252,4]},{index:.341,rgb:[0,252,10]},{index:.506,rgb:[1,249,255]},{index:.671,rgb:[2,0,253]},{index:.675,rgb:[8,0,253]},{index:.839,rgb:[255,0,251]},{index:.843,rgb:[255,0,245]},{index:1,rgb:[255,0,6]}],hot:[{index:0,rgb:[0,0,0]},{index:.3,rgb:[230,0,0]},{index:.6,rgb:[255,210,0]},{index:1,rgb:[255,255,255]}],cool:[{index:0,rgb:[0,255,255]},{index:1,rgb:[255,0,255]}],spring:[{index:0,rgb:[255,0,255]},{index:1,rgb:[255,255,0]}],summer:[{index:0,rgb:[0,128,102]},{index:1,rgb:[255,255,102]}],autumn:[{index:0,rgb:[255,0,0]},{index:1,rgb:[255,255,0]}],winter:[{index:0,rgb:[0,0,255]},{index:1,rgb:[0,255,128]}],bone:[{index:0,rgb:[0,0,0]},{index:.376,rgb:[84,84,116]},{index:.753,rgb:[169,200,200]},{index:1,rgb:[255,255,255]}],copper:[{index:0,rgb:[0,0,0]},{index:.804,rgb:[255,160,102]},{index:1,rgb:[255,199,127]}],greys:[{index:0,rgb:[0,0,0]},{index:1,rgb:[255,255,255]}],yignbu:[{index:0,rgb:[8,29,88]},{index:.125,rgb:[37,52,148]},{index:.25,rgb:[34,94,168]},{index:.375,rgb:[29,145,192]},{index:.5,rgb:[65,182,196]},{index:.625,rgb:[127,205,187]},{index:.75,rgb:[199,233,180]},{index:.875,rgb:[237,248,217]},{index:1,rgb:[255,255,217]}],greens:[{index:0,rgb:[0,68,27]},{index:.125,rgb:[0,109,44]},{index:.25,rgb:[35,139,69]},{index:.375,rgb:[65,171,93]},{index:.5,rgb:[116,196,118]},{index:.625,rgb:[161,217,155]},{index:.75,rgb:[199,233,192]},{index:.875,rgb:[229,245,224]},{index:1,rgb:[247,252,245]}],yiorrd:[{index:0,rgb:[128,0,38]},{index:.125,rgb:[189,0,38]},{index:.25,rgb:[227,26,28]},{index:.375,rgb:[252,78,42]},{index:.5,rgb:[253,141,60]},{index:.625,rgb:[254,178,76]},{index:.75,rgb:[254,217,118]},{index:.875,rgb:[255,237,160]},{index:1,rgb:[255,255,204]}],bluered:[{index:0,rgb:[0,0,255]},{index:1,rgb:[255,0,0]}],rdbu:[{index:0,rgb:[5,10,172]},{index:.35,rgb:[106,137,247]},{index:.5,rgb:[190,190,190]},{index:.6,rgb:[220,170,132]},{index:.7,rgb:[230,145,90]},{index:1,rgb:[178,10,28]}],picnic:[{index:0,rgb:[0,0,255]},{index:.1,rgb:[51,153,255]},{index:.2,rgb:[102,204,255]},{index:.3,rgb:[153,204,255]},{index:.4,rgb:[204,204,255]},{index:.5,rgb:[255,255,255]},{index:.6,rgb:[255,204,255]},{index:.7,rgb:[255,153,255]},{index:.8,rgb:[255,102,204]},{index:.9,rgb:[255,102,102]},{index:1,rgb:[255,0,0]}],rainbow:[{index:0,rgb:[150,0,90]},{index:.125,rgb:[0,0,200]},{index:.25,rgb:[0,25,255]},{index:.375,rgb:[0,152,255]},{index:.5,rgb:[44,255,150]},{index:.625,rgb:[151,255,0]},{index:.75,rgb:[255,234,0]},{index:.875,rgb:[255,111,0]},{index:1,rgb:[255,0,0]}],portland:[{index:0,rgb:[12,51,131]},{index:.25,rgb:[10,136,186]},{index:.5,rgb:[242,211,56]},{index:.75,rgb:[242,143,56]},{index:1,rgb:[217,30,30]}],blackbody:[{index:0,rgb:[0,0,0]},{index:.2,rgb:[230,0,0]},{index:.4,rgb:[230,210,0]},{index:.7,rgb:[255,255,255]},{index:1,rgb:[160,200,255]}],earth:[{index:0,rgb:[0,0,130]},{index:.1,rgb:[0,180,180]},{index:.2,rgb:[40,210,40]},{index:.4,rgb:[230,230,50]},{index:.6,rgb:[120,70,20]},{index:1,rgb:[255,255,255]}],electric:[{index:0,rgb:[0,0,0]},{index:.15,rgb:[30,0,100]},{index:.4,rgb:[120,0,100]},{index:.6,rgb:[160,90,0]},{index:.8,rgb:[230,200,0]},{index:1,rgb:[255,250,220]}],alpha:[{index:0,rgb:[255,255,255,0]},{index:1,rgb:[255,255,255,1]}],viridis:[{index:0,rgb:[68,1,84]},{index:.13,rgb:[71,44,122]},{index:.25,rgb:[59,81,139]},{index:.38,rgb:[44,113,142]},{index:.5,rgb:[33,144,141]},{index:.63,rgb:[39,173,129]},{index:.75,rgb:[92,200,99]},{index:.88,rgb:[170,220,50]},{index:1,rgb:[253,231,37]}],inferno:[{index:0,rgb:[0,0,4]},{index:.13,rgb:[31,12,72]},{index:.25,rgb:[85,15,109]},{index:.38,rgb:[136,34,106]},{index:.5,rgb:[186,54,85]},{index:.63,rgb:[227,89,51]},{index:.75,rgb:[249,140,10]},{index:.88,rgb:[249,201,50]},{index:1,rgb:[252,255,164]}],magma:[{index:0,rgb:[0,0,4]},{index:.13,rgb:[28,16,68]},{index:.25,rgb:[79,18,123]},{index:.38,rgb:[129,37,129]},{index:.5,rgb:[181,54,122]},{index:.63,rgb:[229,80,100]},{index:.75,rgb:[251,135,97]},{index:.88,rgb:[254,194,135]},{index:1,rgb:[252,253,191]}],plasma:[{index:0,rgb:[13,8,135]},{index:.13,rgb:[75,3,161]},{index:.25,rgb:[125,3,168]},{index:.38,rgb:[168,34,150]},{index:.5,rgb:[203,70,121]},{index:.63,rgb:[229,107,93]},{index:.75,rgb:[248,148,65]},{index:.88,rgb:[253,195,40]},{index:1,rgb:[240,249,33]}],warm:[{index:0,rgb:[125,0,179]},{index:.13,rgb:[172,0,187]},{index:.25,rgb:[219,0,170]},{index:.38,rgb:[255,0,130]},{index:.5,rgb:[255,63,74]},{index:.63,rgb:[255,123,0]},{index:.75,rgb:[234,176,0]},{index:.88,rgb:[190,228,0]},{index:1,rgb:[147,255,0]}],cool:[{index:0,rgb:[125,0,179]},{index:.13,rgb:[116,0,218]},{index:.25,rgb:[98,74,237]},{index:.38,rgb:[68,146,231]},{index:.5,rgb:[0,204,197]},{index:.63,rgb:[0,247,146]},{index:.75,rgb:[0,255,88]},{index:.88,rgb:[40,255,8]},{index:1,rgb:[147,255,0]}],"rainbow-soft":[{index:0,rgb:[125,0,179]},{index:.1,rgb:[199,0,180]},{index:.2,rgb:[255,0,121]},{index:.3,rgb:[255,108,0]},{index:.4,rgb:[222,194,0]},{index:.5,rgb:[150,255,0]},{index:.6,rgb:[0,255,55]},{index:.7,rgb:[0,246,150]},{index:.8,rgb:[50,167,222]},{index:.9,rgb:[103,51,235]},{index:1,rgb:[124,0,186]}],bathymetry:[{index:0,rgb:[40,26,44]},{index:.13,rgb:[59,49,90]},{index:.25,rgb:[64,76,139]},{index:.38,rgb:[63,110,151]},{index:.5,rgb:[72,142,158]},{index:.63,rgb:[85,174,163]},{index:.75,rgb:[120,206,163]},{index:.88,rgb:[187,230,172]},{index:1,rgb:[253,254,204]}],cdom:[{index:0,rgb:[47,15,62]},{index:.13,rgb:[87,23,86]},{index:.25,rgb:[130,28,99]},{index:.38,rgb:[171,41,96]},{index:.5,rgb:[206,67,86]},{index:.63,rgb:[230,106,84]},{index:.75,rgb:[242,149,103]},{index:.88,rgb:[249,193,135]},{index:1,rgb:[254,237,176]}],chlorophyll:[{index:0,rgb:[18,36,20]},{index:.13,rgb:[25,63,41]},{index:.25,rgb:[24,91,59]},{index:.38,rgb:[13,119,72]},{index:.5,rgb:[18,148,80]},{index:.63,rgb:[80,173,89]},{index:.75,rgb:[132,196,122]},{index:.88,rgb:[175,221,162]},{index:1,rgb:[215,249,208]}],density:[{index:0,rgb:[54,14,36]},{index:.13,rgb:[89,23,80]},{index:.25,rgb:[110,45,132]},{index:.38,rgb:[120,77,178]},{index:.5,rgb:[120,113,213]},{index:.63,rgb:[115,151,228]},{index:.75,rgb:[134,185,227]},{index:.88,rgb:[177,214,227]},{index:1,rgb:[230,241,241]}],"freesurface-blue":[{index:0,rgb:[30,4,110]},{index:.13,rgb:[47,14,176]},{index:.25,rgb:[41,45,236]},{index:.38,rgb:[25,99,212]},{index:.5,rgb:[68,131,200]},{index:.63,rgb:[114,156,197]},{index:.75,rgb:[157,181,203]},{index:.88,rgb:[200,208,216]},{index:1,rgb:[241,237,236]}],"freesurface-red":[{index:0,rgb:[60,9,18]},{index:.13,rgb:[100,17,27]},{index:.25,rgb:[142,20,29]},{index:.38,rgb:[177,43,27]},{index:.5,rgb:[192,87,63]},{index:.63,rgb:[205,125,105]},{index:.75,rgb:[216,162,148]},{index:.88,rgb:[227,199,193]},{index:1,rgb:[241,237,236]}],oxygen:[{index:0,rgb:[64,5,5]},{index:.13,rgb:[106,6,15]},{index:.25,rgb:[144,26,7]},{index:.38,rgb:[168,64,3]},{index:.5,rgb:[188,100,4]},{index:.63,rgb:[206,136,11]},{index:.75,rgb:[220,174,25]},{index:.88,rgb:[231,215,44]},{index:1,rgb:[248,254,105]}],par:[{index:0,rgb:[51,20,24]},{index:.13,rgb:[90,32,35]},{index:.25,rgb:[129,44,34]},{index:.38,rgb:[159,68,25]},{index:.5,rgb:[182,99,19]},{index:.63,rgb:[199,134,22]},{index:.75,rgb:[212,171,35]},{index:.88,rgb:[221,210,54]},{index:1,rgb:[225,253,75]}],phase:[{index:0,rgb:[145,105,18]},{index:.13,rgb:[184,71,38]},{index:.25,rgb:[186,58,115]},{index:.38,rgb:[160,71,185]},{index:.5,rgb:[110,97,218]},{index:.63,rgb:[50,123,164]},{index:.75,rgb:[31,131,110]},{index:.88,rgb:[77,129,34]},{index:1,rgb:[145,105,18]}],salinity:[{index:0,rgb:[42,24,108]},{index:.13,rgb:[33,50,162]},{index:.25,rgb:[15,90,145]},{index:.38,rgb:[40,118,137]},{index:.5,rgb:[59,146,135]},{index:.63,rgb:[79,175,126]},{index:.75,rgb:[120,203,104]},{index:.88,rgb:[193,221,100]},{index:1,rgb:[253,239,154]}],temperature:[{index:0,rgb:[4,35,51]},{index:.13,rgb:[23,51,122]},{index:.25,rgb:[85,59,157]},{index:.38,rgb:[129,79,143]},{index:.5,rgb:[175,95,130]},{index:.63,rgb:[222,112,101]},{index:.75,rgb:[249,146,66]},{index:.88,rgb:[249,196,65]},{index:1,rgb:[232,250,91]}],turbidity:[{index:0,rgb:[34,31,27]},{index:.13,rgb:[65,50,41]},{index:.25,rgb:[98,69,52]},{index:.38,rgb:[131,89,57]},{index:.5,rgb:[161,112,59]},{index:.63,rgb:[185,140,66]},{index:.75,rgb:[202,174,88]},{index:.88,rgb:[216,209,126]},{index:1,rgb:[233,246,171]}],"velocity-blue":[{index:0,rgb:[17,32,64]},{index:.13,rgb:[35,52,116]},{index:.25,rgb:[29,81,156]},{index:.38,rgb:[31,113,162]},{index:.5,rgb:[50,144,169]},{index:.63,rgb:[87,173,176]},{index:.75,rgb:[149,196,189]},{index:.88,rgb:[203,221,211]},{index:1,rgb:[254,251,230]}],"velocity-green":[{index:0,rgb:[23,35,19]},{index:.13,rgb:[24,64,38]},{index:.25,rgb:[11,95,45]},{index:.38,rgb:[39,123,35]},{index:.5,rgb:[95,146,12]},{index:.63,rgb:[152,165,18]},{index:.75,rgb:[201,186,69]},{index:.88,rgb:[233,216,137]},{index:1,rgb:[255,253,205]}],cubehelix:[{index:0,rgb:[0,0,0]},{index:.07,rgb:[22,5,59]},{index:.13,rgb:[60,4,105]},{index:.2,rgb:[109,1,135]},{index:.27,rgb:[161,0,147]},{index:.33,rgb:[210,2,142]},{index:.4,rgb:[251,11,123]},{index:.47,rgb:[255,29,97]},{index:.53,rgb:[255,54,69]},{index:.6,rgb:[255,85,46]},{index:.67,rgb:[255,120,34]},{index:.73,rgb:[255,157,37]},{index:.8,rgb:[241,191,57]},{index:.87,rgb:[224,220,93]},{index:.93,rgb:[218,241,142]},{index:1,rgb:[227,253,198]}]}},{}],131:[function(t,e,r){"use strict";var n=t("./colorScale"),i=t("lerp");function a(t){return[t[0]/255,t[1]/255,t[2]/255,t[3]]}function o(t){for(var e,r="#",n=0;n<3;++n)r+=("00"+(e=(e=t[n]).toString(16))).substr(e.length);return r}function s(t){return"rgba("+t.join(",")+")"}e.exports=function(t){var e,r,l,c,u,f,h,p,d,g;t||(t={});p=(t.nshades||72)-1,h=t.format||"hex",(f=t.colormap)||(f="jet");if("string"==typeof f){if(f=f.toLowerCase(),!n[f])throw Error(f+" not a supported colorscale");u=n[f]}else{if(!Array.isArray(f))throw Error("unsupported colormap option",f);u=f.slice()}if(u.length>p+1)throw new Error(f+" map requires nshades to be at least size "+u.length);d=Array.isArray(t.alpha)?2!==t.alpha.length?[1,1]:t.alpha.slice():"number"==typeof t.alpha?[t.alpha,t.alpha]:[1,1];e=u.map((function(t){return Math.round(t.index*p)})),d[0]=Math.min(Math.max(d[0],0),1),d[1]=Math.min(Math.max(d[1],0),1);var m=u.map((function(t,e){var r=u[e].index,n=u[e].rgb.slice();return 4===n.length&&n[3]>=0&&n[3]<=1||(n[3]=d[0]+(d[1]-d[0])*r),n})),v=[];for(g=0;g0||l(t,e,a)?-1:1:0===s?c>0||l(t,e,r)?1:-1:i(c-s)}var h=n(t,e,r);return h>0?o>0&&n(t,e,a)>0?1:-1:h<0?o>0||n(t,e,a)>0?1:-1:n(t,e,a)>0||l(t,e,r)?1:-1};var n=t("robust-orientation"),i=t("signum"),a=t("two-sum"),o=t("robust-product"),s=t("robust-sum");function l(t,e,r){var n=a(t[0],-e[0]),i=a(t[1],-e[1]),l=a(r[0],-e[0]),c=a(r[1],-e[1]),u=s(o(n,l),o(i,c));return u[u.length-1]>=0}},{"robust-orientation":548,"robust-product":549,"robust-sum":553,signum:554,"two-sum":583}],133:[function(t,e,r){e.exports=function(t,e){var r=t.length,a=t.length-e.length;if(a)return a;switch(r){case 0:return 0;case 1:return t[0]-e[0];case 2:return t[0]+t[1]-e[0]-e[1]||n(t[0],t[1])-n(e[0],e[1]);case 3:var o=t[0]+t[1],s=e[0]+e[1];if(a=o+t[2]-(s+e[2]))return a;var l=n(t[0],t[1]),c=n(e[0],e[1]);return n(l,t[2])-n(c,e[2])||n(l+t[2],o)-n(c+e[2],s);case 4:var u=t[0],f=t[1],h=t[2],p=t[3],d=e[0],g=e[1],m=e[2],v=e[3];return u+f+h+p-(d+g+m+v)||n(u,f,h,p)-n(d,g,m,v,d)||n(u+f,u+h,u+p,f+h,f+p,h+p)-n(d+g,d+m,d+v,g+m,g+v,m+v)||n(u+f+h,u+f+p,u+h+p,f+h+p)-n(d+g+m,d+g+v,d+m+v,g+m+v);default:for(var y=t.slice().sort(i),x=e.slice().sort(i),b=0;bt[r][0]&&(r=n);return er?[[r],[e]]:[[e]]}},{}],137:[function(t,e,r){"use strict";e.exports=function(t){var e=n(t),r=e.length;if(r<=2)return[];for(var i=new Array(r),a=e[r-1],o=0;o=e[l]&&(s+=1);a[o]=s}}return t}(n(a,!0),r)}};var n=t("incremental-convex-hull"),i=t("affine-hull")},{"affine-hull":67,"incremental-convex-hull":459}],139:[function(t,e,r){e.exports={AFG:"afghan",ALA:"\\b\\wland",ALB:"albania",DZA:"algeria",ASM:"^(?=.*americ).*samoa",AND:"andorra",AGO:"angola",AIA:"anguill?a",ATA:"antarctica",ATG:"antigua",ARG:"argentin",ARM:"armenia",ABW:"^(?!.*bonaire).*\\baruba",AUS:"australia",AUT:"^(?!.*hungary).*austria|\\baustri.*\\bemp",AZE:"azerbaijan",BHS:"bahamas",BHR:"bahrain",BGD:"bangladesh|^(?=.*east).*paki?stan",BRB:"barbados",BLR:"belarus|byelo",BEL:"^(?!.*luxem).*belgium",BLZ:"belize|^(?=.*british).*honduras",BEN:"benin|dahome",BMU:"bermuda",BTN:"bhutan",BOL:"bolivia",BES:"^(?=.*bonaire).*eustatius|^(?=.*carib).*netherlands|\\bbes.?islands",BIH:"herzegovina|bosnia",BWA:"botswana|bechuana",BVT:"bouvet",BRA:"brazil",IOT:"british.?indian.?ocean",BRN:"brunei",BGR:"bulgaria",BFA:"burkina|\\bfaso|upper.?volta",BDI:"burundi",CPV:"verde",KHM:"cambodia|kampuchea|khmer",CMR:"cameroon",CAN:"canada",CYM:"cayman",CAF:"\\bcentral.african.republic",TCD:"\\bchad",CHL:"\\bchile",CHN:"^(?!.*\\bmac)(?!.*\\bhong)(?!.*\\btai)(?!.*\\brep).*china|^(?=.*peo)(?=.*rep).*china",CXR:"christmas",CCK:"\\bcocos|keeling",COL:"colombia",COM:"comoro",COG:"^(?!.*\\bdem)(?!.*\\bd[\\.]?r)(?!.*kinshasa)(?!.*zaire)(?!.*belg)(?!.*l.opoldville)(?!.*free).*\\bcongo",COK:"\\bcook",CRI:"costa.?rica",CIV:"ivoire|ivory",HRV:"croatia",CUB:"\\bcuba",CUW:"^(?!.*bonaire).*\\bcura(c|\xe7)ao",CYP:"cyprus",CSK:"czechoslovakia",CZE:"^(?=.*rep).*czech|czechia|bohemia",COD:"\\bdem.*congo|congo.*\\bdem|congo.*\\bd[\\.]?r|\\bd[\\.]?r.*congo|belgian.?congo|congo.?free.?state|kinshasa|zaire|l.opoldville|drc|droc|rdc",DNK:"denmark",DJI:"djibouti",DMA:"dominica(?!n)",DOM:"dominican.rep",ECU:"ecuador",EGY:"egypt",SLV:"el.?salvador",GNQ:"guine.*eq|eq.*guine|^(?=.*span).*guinea",ERI:"eritrea",EST:"estonia",ETH:"ethiopia|abyssinia",FLK:"falkland|malvinas",FRO:"faroe|faeroe",FJI:"fiji",FIN:"finland",FRA:"^(?!.*\\bdep)(?!.*martinique).*france|french.?republic|\\bgaul",GUF:"^(?=.*french).*guiana",PYF:"french.?polynesia|tahiti",ATF:"french.?southern",GAB:"gabon",GMB:"gambia",GEO:"^(?!.*south).*georgia",DDR:"german.?democratic.?republic|democratic.?republic.*germany|east.germany",DEU:"^(?!.*east).*germany|^(?=.*\\bfed.*\\brep).*german",GHA:"ghana|gold.?coast",GIB:"gibraltar",GRC:"greece|hellenic|hellas",GRL:"greenland",GRD:"grenada",GLP:"guadeloupe",GUM:"\\bguam",GTM:"guatemala",GGY:"guernsey",GIN:"^(?!.*eq)(?!.*span)(?!.*bissau)(?!.*portu)(?!.*new).*guinea",GNB:"bissau|^(?=.*portu).*guinea",GUY:"guyana|british.?guiana",HTI:"haiti",HMD:"heard.*mcdonald",VAT:"holy.?see|vatican|papal.?st",HND:"^(?!.*brit).*honduras",HKG:"hong.?kong",HUN:"^(?!.*austr).*hungary",ISL:"iceland",IND:"india(?!.*ocea)",IDN:"indonesia",IRN:"\\biran|persia",IRQ:"\\biraq|mesopotamia",IRL:"(^ireland)|(^republic.*ireland)",IMN:"^(?=.*isle).*\\bman",ISR:"israel",ITA:"italy",JAM:"jamaica",JPN:"japan",JEY:"jersey",JOR:"jordan",KAZ:"kazak",KEN:"kenya|british.?east.?africa|east.?africa.?prot",KIR:"kiribati",PRK:"^(?=.*democrat|people|north|d.*p.*.r).*\\bkorea|dprk|korea.*(d.*p.*r)",KWT:"kuwait",KGZ:"kyrgyz|kirghiz",LAO:"\\blaos?\\b",LVA:"latvia",LBN:"lebanon",LSO:"lesotho|basuto",LBR:"liberia",LBY:"libya",LIE:"liechtenstein",LTU:"lithuania",LUX:"^(?!.*belg).*luxem",MAC:"maca(o|u)",MDG:"madagascar|malagasy",MWI:"malawi|nyasa",MYS:"malaysia",MDV:"maldive",MLI:"\\bmali\\b",MLT:"\\bmalta",MHL:"marshall",MTQ:"martinique",MRT:"mauritania",MUS:"mauritius",MYT:"\\bmayotte",MEX:"\\bmexic",FSM:"fed.*micronesia|micronesia.*fed",MCO:"monaco",MNG:"mongolia",MNE:"^(?!.*serbia).*montenegro",MSR:"montserrat",MAR:"morocco|\\bmaroc",MOZ:"mozambique",MMR:"myanmar|burma",NAM:"namibia",NRU:"nauru",NPL:"nepal",NLD:"^(?!.*\\bant)(?!.*\\bcarib).*netherlands",ANT:"^(?=.*\\bant).*(nether|dutch)",NCL:"new.?caledonia",NZL:"new.?zealand",NIC:"nicaragua",NER:"\\bniger(?!ia)",NGA:"nigeria",NIU:"niue",NFK:"norfolk",MNP:"mariana",NOR:"norway",OMN:"\\boman|trucial",PAK:"^(?!.*east).*paki?stan",PLW:"palau",PSE:"palestin|\\bgaza|west.?bank",PAN:"panama",PNG:"papua|new.?guinea",PRY:"paraguay",PER:"peru",PHL:"philippines",PCN:"pitcairn",POL:"poland",PRT:"portugal",PRI:"puerto.?rico",QAT:"qatar",KOR:"^(?!.*d.*p.*r)(?!.*democrat)(?!.*people)(?!.*north).*\\bkorea(?!.*d.*p.*r)",MDA:"moldov|b(a|e)ssarabia",REU:"r(e|\xe9)union",ROU:"r(o|u|ou)mania",RUS:"\\brussia|soviet.?union|u\\.?s\\.?s\\.?r|socialist.?republics",RWA:"rwanda",BLM:"barth(e|\xe9)lemy",SHN:"helena",KNA:"kitts|\\bnevis",LCA:"\\blucia",MAF:"^(?=.*collectivity).*martin|^(?=.*france).*martin(?!ique)|^(?=.*french).*martin(?!ique)",SPM:"miquelon",VCT:"vincent",WSM:"^(?!.*amer).*samoa",SMR:"san.?marino",STP:"\\bs(a|\xe3)o.?tom(e|\xe9)",SAU:"\\bsa\\w*.?arabia",SEN:"senegal",SRB:"^(?!.*monte).*serbia",SYC:"seychell",SLE:"sierra",SGP:"singapore",SXM:"^(?!.*martin)(?!.*saba).*maarten",SVK:"^(?!.*cze).*slovak",SVN:"slovenia",SLB:"solomon",SOM:"somali",ZAF:"south.africa|s\\\\..?africa",SGS:"south.?georgia|sandwich",SSD:"\\bs\\w*.?sudan",ESP:"spain",LKA:"sri.?lanka|ceylon",SDN:"^(?!.*\\bs(?!u)).*sudan",SUR:"surinam|dutch.?guiana",SJM:"svalbard",SWZ:"swaziland",SWE:"sweden",CHE:"switz|swiss",SYR:"syria",TWN:"taiwan|taipei|formosa|^(?!.*peo)(?=.*rep).*china",TJK:"tajik",THA:"thailand|\\bsiam",MKD:"macedonia|fyrom",TLS:"^(?=.*leste).*timor|^(?=.*east).*timor",TGO:"togo",TKL:"tokelau",TON:"tonga",TTO:"trinidad|tobago",TUN:"tunisia",TUR:"turkey",TKM:"turkmen",TCA:"turks",TUV:"tuvalu",UGA:"uganda",UKR:"ukrain",ARE:"emirates|^u\\.?a\\.?e\\.?$|united.?arab.?em",GBR:"united.?kingdom|britain|^u\\.?k\\.?$",TZA:"tanzania",USA:"united.?states\\b(?!.*islands)|\\bu\\.?s\\.?a\\.?\\b|^\\s*u\\.?s\\.?\\b(?!.*islands)",UMI:"minor.?outlying.?is",URY:"uruguay",UZB:"uzbek",VUT:"vanuatu|new.?hebrides",VEN:"venezuela",VNM:"^(?!.*republic).*viet.?nam|^(?=.*socialist).*viet.?nam",VGB:"^(?=.*\\bu\\.?\\s?k).*virgin|^(?=.*brit).*virgin|^(?=.*kingdom).*virgin",VIR:"^(?=.*\\bu\\.?\\s?s).*virgin|^(?=.*states).*virgin",WLF:"futuna|wallis",ESH:"western.sahara",YEM:"^(?!.*arab)(?!.*north)(?!.*sana)(?!.*peo)(?!.*dem)(?!.*south)(?!.*aden)(?!.*\\bp\\.?d\\.?r).*yemen",YMD:"^(?=.*peo).*yemen|^(?!.*rep)(?=.*dem).*yemen|^(?=.*south).*yemen|^(?=.*aden).*yemen|^(?=.*\\bp\\.?d\\.?r).*yemen",YUG:"yugoslavia",ZMB:"zambia|northern.?rhodesia",EAZ:"zanzibar",ZWE:"zimbabwe|^(?!.*northern).*rhodesia"}},{}],140:[function(t,e,r){e.exports=["xx-small","x-small","small","medium","large","x-large","xx-large","larger","smaller"]},{}],141:[function(t,e,r){e.exports=["normal","condensed","semi-condensed","extra-condensed","ultra-condensed","expanded","semi-expanded","extra-expanded","ultra-expanded"]},{}],142:[function(t,e,r){e.exports=["normal","italic","oblique"]},{}],143:[function(t,e,r){e.exports=["normal","bold","bolder","lighter","100","200","300","400","500","600","700","800","900"]},{}],144:[function(t,e,r){"use strict";e.exports={parse:t("./parse"),stringify:t("./stringify")}},{"./parse":146,"./stringify":147}],145:[function(t,e,r){"use strict";var n=t("css-font-size-keywords");e.exports={isSize:function(t){return/^[\d\.]/.test(t)||-1!==t.indexOf("/")||-1!==n.indexOf(t)}}},{"css-font-size-keywords":140}],146:[function(t,e,r){"use strict";var n=t("unquote"),i=t("css-global-keywords"),a=t("css-system-font-keywords"),o=t("css-font-weight-keywords"),s=t("css-font-style-keywords"),l=t("css-font-stretch-keywords"),c=t("string-split-by"),u=t("./lib/util").isSize;e.exports=h;var f=h.cache={};function h(t){if("string"!=typeof t)throw new Error("Font argument must be a string.");if(f[t])return f[t];if(""===t)throw new Error("Cannot parse an empty string.");if(-1!==a.indexOf(t))return f[t]={system:t};for(var e,r={style:"normal",variant:"normal",weight:"normal",stretch:"normal",lineHeight:"normal",size:"1rem",family:["serif"]},h=c(t,/\s+/);e=h.shift();){if(-1!==i.indexOf(e))return["style","variant","weight","stretch"].forEach((function(t){r[t]=e})),f[t]=r;if(-1===s.indexOf(e))if("normal"!==e&&"small-caps"!==e)if(-1===l.indexOf(e)){if(-1===o.indexOf(e)){if(u(e)){var d=c(e,"/");if(r.size=d[0],null!=d[1]?r.lineHeight=p(d[1]):"/"===h[0]&&(h.shift(),r.lineHeight=p(h.shift())),!h.length)throw new Error("Missing required font-family.");return r.family=c(h.join(" "),/\s*,\s*/).map(n),f[t]=r}throw new Error("Unknown or unsupported font token: "+e)}r.weight=e}else r.stretch=e;else r.variant=e;else r.style=e}throw new Error("Missing required font-size.")}function p(t){var e=parseFloat(t);return e.toString()===t?e:t}},{"./lib/util":145,"css-font-stretch-keywords":141,"css-font-style-keywords":142,"css-font-weight-keywords":143,"css-global-keywords":148,"css-system-font-keywords":149,"string-split-by":568,unquote:598}],147:[function(t,e,r){"use strict";var n=t("pick-by-alias"),i=t("./lib/util").isSize,a=g(t("css-global-keywords")),o=g(t("css-system-font-keywords")),s=g(t("css-font-weight-keywords")),l=g(t("css-font-style-keywords")),c=g(t("css-font-stretch-keywords")),u={normal:1,"small-caps":1},f={serif:1,"sans-serif":1,monospace:1,cursive:1,fantasy:1,"system-ui":1},h="1rem",p="serif";function d(t,e){if(t&&!e[t]&&!a[t])throw Error("Unknown keyword `"+t+"`");return t}function g(t){for(var e={},r=0;r=0;--p)a[p]=c*t[p]+u*e[p]+f*r[p]+h*n[p];return a}return c*t+u*e+f*r+h*n},e.exports.derivative=function(t,e,r,n,i,a){var o=6*i*i-6*i,s=3*i*i-4*i+1,l=-6*i*i+6*i,c=3*i*i-2*i;if(t.length){a||(a=new Array(t.length));for(var u=t.length-1;u>=0;--u)a[u]=o*t[u]+s*e[u]+l*r[u]+c*n[u];return a}return o*t+s*e+l*r[u]+c*n}},{}],151:[function(t,e,r){"use strict";var n=t("./lib/thunk.js");function i(){this.argTypes=[],this.shimArgs=[],this.arrayArgs=[],this.arrayBlockIndices=[],this.scalarArgs=[],this.offsetArgs=[],this.offsetArgIndex=[],this.indexArgs=[],this.shapeArgs=[],this.funcName="",this.pre=null,this.body=null,this.post=null,this.debug=!1}e.exports=function(t){var e=new i;e.pre=t.pre,e.body=t.body,e.post=t.post;var r=t.args.slice(0);e.argTypes=r;for(var a=0;a0)throw new Error("cwise: pre() block may not reference array args");if(a0)throw new Error("cwise: post() block may not reference array args")}else if("scalar"===o)e.scalarArgs.push(a),e.shimArgs.push("scalar"+a);else if("index"===o){if(e.indexArgs.push(a),a0)throw new Error("cwise: pre() block may not reference array index");if(a0)throw new Error("cwise: post() block may not reference array index")}else if("shape"===o){if(e.shapeArgs.push(a),ar.length)throw new Error("cwise: Too many arguments in pre() block");if(e.body.args.length>r.length)throw new Error("cwise: Too many arguments in body() block");if(e.post.args.length>r.length)throw new Error("cwise: Too many arguments in post() block");return e.debug=!!t.printCode||!!t.debug,e.funcName=t.funcName||"cwise",e.blockSize=t.blockSize||64,n(e)}},{"./lib/thunk.js":153}],152:[function(t,e,r){"use strict";var n=t("uniq");function i(t,e,r){var n,i,a=t.length,o=e.arrayArgs.length,s=e.indexArgs.length>0,l=[],c=[],u=0,f=0;for(n=0;n0&&l.push("var "+c.join(",")),n=a-1;n>=0;--n)u=t[n],l.push(["for(i",n,"=0;i",n,"0&&l.push(["index[",f,"]-=s",f].join("")),l.push(["++index[",u,"]"].join(""))),l.push("}")}return l.join("\n")}function a(t,e,r){for(var n=t.body,i=[],a=[],o=0;o0&&(r=r&&e[n]===e[n-1])}return r?e[0]:e.join("")}e.exports=function(t,e){for(var r=e[1].length-Math.abs(t.arrayBlockIndices[0])|0,s=new Array(t.arrayArgs.length),l=new Array(t.arrayArgs.length),c=0;c0&&x.push("shape=SS.slice(0)"),t.indexArgs.length>0){var b=new Array(r);for(c=0;c0&&y.push("var "+x.join(",")),c=0;c3&&y.push(a(t.pre,t,l));var k=a(t.body,t,l),M=function(t){for(var e=0,r=t[0].length;e0,c=[],u=0;u0;){"].join("")),c.push(["if(j",u,"<",s,"){"].join("")),c.push(["s",e[u],"=j",u].join("")),c.push(["j",u,"=0"].join("")),c.push(["}else{s",e[u],"=",s].join("")),c.push(["j",u,"-=",s,"}"].join("")),l&&c.push(["index[",e[u],"]=j",u].join(""));for(u=0;u3&&y.push(a(t.post,t,l)),t.debug&&console.log("-----Generated cwise routine for ",e,":\n"+y.join("\n")+"\n----------");var A=[t.funcName||"unnamed","_cwise_loop_",s[0].join("s"),"m",M,o(l)].join("");return new Function(["function ",A,"(",v.join(","),"){",y.join("\n"),"} return ",A].join(""))()}},{uniq:597}],153:[function(t,e,r){"use strict";var n=t("./compile.js");e.exports=function(t){var e=["'use strict'","var CACHED={}"],r=[],i=t.funcName+"_cwise_thunk";e.push(["return function ",i,"(",t.shimArgs.join(","),"){"].join(""));for(var a=[],o=[],s=[["array",t.arrayArgs[0],".shape.slice(",Math.max(0,t.arrayBlockIndices[0]),t.arrayBlockIndices[0]<0?","+t.arrayBlockIndices[0]+")":")"].join("")],l=[],c=[],u=0;u0&&(l.push("array"+t.arrayArgs[0]+".shape.length===array"+f+".shape.length+"+(Math.abs(t.arrayBlockIndices[0])-Math.abs(t.arrayBlockIndices[u]))),c.push("array"+t.arrayArgs[0]+".shape[shapeIndex+"+Math.max(0,t.arrayBlockIndices[0])+"]===array"+f+".shape[shapeIndex+"+Math.max(0,t.arrayBlockIndices[u])+"]"))}for(t.arrayArgs.length>1&&(e.push("if (!("+l.join(" && ")+")) throw new Error('cwise: Arrays do not all have the same dimensionality!')"),e.push("for(var shapeIndex=array"+t.arrayArgs[0]+".shape.length-"+Math.abs(t.arrayBlockIndices[0])+"; shapeIndex--\x3e0;) {"),e.push("if (!("+c.join(" && ")+")) throw new Error('cwise: Arrays do not all have the same shape!')"),e.push("}")),u=0;ue?1:t>=e?0:NaN}function r(t){var r;return 1===t.length&&(r=t,t=function(t,n){return e(r(t),n)}),{left:function(e,r,n,i){for(null==n&&(n=0),null==i&&(i=e.length);n>>1;t(e[a],r)<0?n=a+1:i=a}return n},right:function(e,r,n,i){for(null==n&&(n=0),null==i&&(i=e.length);n>>1;t(e[a],r)>0?i=a:n=a+1}return n}}}var n=r(e),i=n.right,a=n.left;function o(t,e){return[t,e]}function s(t){return null===t?NaN:+t}function l(t,e){var r,n,i=t.length,a=0,o=-1,l=0,c=0;if(null==e)for(;++o1)return c/(a-1)}function c(t,e){var r=l(t,e);return r?Math.sqrt(r):r}function u(t,e){var r,n,i,a=t.length,o=-1;if(null==e){for(;++o=r)for(n=i=r;++or&&(n=r),i=r)for(n=i=r;++or&&(n=r),i=0?(a>=v?10:a>=y?5:a>=x?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=v?10:a>=y?5:a>=x?2:1)}function _(t,e,r){var n=Math.abs(e-t)/Math.max(0,r),i=Math.pow(10,Math.floor(Math.log(n)/Math.LN10)),a=n/i;return a>=v?i*=10:a>=y?i*=5:a>=x&&(i*=2),e=1)return+r(t[n-1],n-1,t);var n,i=(n-1)*e,a=Math.floor(i),o=+r(t[a],a,t);return o+(+r(t[a+1],a+1,t)-o)*(i-a)}}function k(t,e){var r,n,i=t.length,a=-1;if(null==e){for(;++a=r)for(n=r;++ar&&(n=r)}else for(;++a=r)for(n=r;++ar&&(n=r);return n}function M(t){if(!(i=t.length))return[];for(var e=-1,r=k(t,A),n=new Array(r);++et?1:e>=t?0:NaN},t.deviation=c,t.extent=u,t.histogram=function(){var t=g,e=u,r=w;function n(n){var a,o,s=n.length,l=new Array(s);for(a=0;af;)h.pop(),--p;var d,g=new Array(p+1);for(a=0;a<=p;++a)(d=g[a]=[]).x0=a>0?h[a-1]:u,d.x1=a=r)for(n=r;++an&&(n=r)}else for(;++a=r)for(n=r;++an&&(n=r);return n},t.mean=function(t,e){var r,n=t.length,i=n,a=-1,o=0;if(null==e)for(;++a=0;)for(e=(n=t[i]).length;--e>=0;)r[--o]=n[e];return r},t.min=k,t.pairs=function(t,e){null==e&&(e=o);for(var r=0,n=t.length-1,i=t[0],a=new Array(n<0?0:n);r0)return[t];if((n=e0)for(t=Math.ceil(t/o),e=Math.floor(e/o),a=new Array(i=Math.ceil(e-t+1));++s=l.length)return null!=t&&n.sort(t),null!=e?e(n):n;for(var s,c,f,h=-1,p=n.length,d=l[i++],g=r(),m=a();++hl.length)return r;var i,a=c[n-1];return null!=e&&n>=l.length?i=r.entries():(i=[],r.each((function(e,r){i.push({key:r,values:t(e,n)})}))),null!=a?i.sort((function(t,e){return a(t.key,e.key)})):i}(u(t,0,a,o),0)},key:function(t){return l.push(t),s},sortKeys:function(t){return c[l.length-1]=t,s},sortValues:function(e){return t=e,s},rollup:function(t){return e=t,s}}},t.set=c,t.map=r,t.keys=function(t){var e=[];for(var r in t)e.push(r);return e},t.values=function(t){var e=[];for(var r in t)e.push(t[r]);return e},t.entries=function(t){var e=[];for(var r in t)e.push({key:r,value:t[r]});return e},Object.defineProperty(t,"__esModule",{value:!0})}))},{}],158:[function(t,e,r){!function(t,n){"object"==typeof r&&"undefined"!=typeof e?n(r):n((t=t||self).d3=t.d3||{})}(this,(function(t){"use strict";function e(t,e,r){t.prototype=e.prototype=r,r.constructor=t}function r(t,e){var r=Object.create(t.prototype);for(var n in e)r[n]=e[n];return r}function n(){}var i="\\s*([+-]?\\d+)\\s*",a="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",o="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",s=/^#([0-9a-f]{3,8})$/,l=new RegExp("^rgb\\("+[i,i,i]+"\\)$"),c=new RegExp("^rgb\\("+[o,o,o]+"\\)$"),u=new RegExp("^rgba\\("+[i,i,i,a]+"\\)$"),f=new RegExp("^rgba\\("+[o,o,o,a]+"\\)$"),h=new RegExp("^hsl\\("+[a,o,o]+"\\)$"),p=new RegExp("^hsla\\("+[a,o,o,a]+"\\)$"),d={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function g(){return this.rgb().formatHex()}function m(){return this.rgb().formatRgb()}function v(t){var e,r;return t=(t+"").trim().toLowerCase(),(e=s.exec(t))?(r=e[1].length,e=parseInt(e[1],16),6===r?y(e):3===r?new w(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===r?x(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===r?x(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=l.exec(t))?new w(e[1],e[2],e[3],1):(e=c.exec(t))?new w(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=u.exec(t))?x(e[1],e[2],e[3],e[4]):(e=f.exec(t))?x(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=h.exec(t))?A(e[1],e[2]/100,e[3]/100,1):(e=p.exec(t))?A(e[1],e[2]/100,e[3]/100,e[4]):d.hasOwnProperty(t)?y(d[t]):"transparent"===t?new w(NaN,NaN,NaN,0):null}function y(t){return new w(t>>16&255,t>>8&255,255&t,1)}function x(t,e,r,n){return n<=0&&(t=e=r=NaN),new w(t,e,r,n)}function b(t){return t instanceof n||(t=v(t)),t?new w((t=t.rgb()).r,t.g,t.b,t.opacity):new w}function _(t,e,r,n){return 1===arguments.length?b(t):new w(t,e,r,null==n?1:n)}function w(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}function T(){return"#"+M(this.r)+M(this.g)+M(this.b)}function k(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function M(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function A(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new C(t,e,r,n)}function S(t){if(t instanceof C)return new C(t.h,t.s,t.l,t.opacity);if(t instanceof n||(t=v(t)),!t)return new C;if(t instanceof C)return t;var e=(t=t.rgb()).r/255,r=t.g/255,i=t.b/255,a=Math.min(e,r,i),o=Math.max(e,r,i),s=NaN,l=o-a,c=(o+a)/2;return l?(s=e===o?(r-i)/l+6*(r0&&c<1?0:s,new C(s,l,c,t.opacity)}function E(t,e,r,n){return 1===arguments.length?S(t):new C(t,e,r,null==n?1:n)}function C(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}function L(t,e,r){return 255*(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)}e(n,v,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:g,formatHex:g,formatHsl:function(){return S(this).formatHsl()},formatRgb:m,toString:m}),e(w,_,r(n,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new w(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new w(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:T,formatHex:T,formatRgb:k,toString:k})),e(C,E,r(n,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new C(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new C(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new w(L(t>=240?t-240:t+120,i,n),L(t,i,n),L(t<120?t+240:t-120,i,n),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));var I=Math.PI/180,P=180/Math.PI,z=6/29,O=3*z*z;function D(t){if(t instanceof F)return new F(t.l,t.a,t.b,t.opacity);if(t instanceof H)return G(t);t instanceof w||(t=b(t));var e,r,n=U(t.r),i=U(t.g),a=U(t.b),o=B((.2225045*n+.7168786*i+.0606169*a)/1);return n===i&&i===a?e=r=o:(e=B((.4360747*n+.3850649*i+.1430804*a)/.96422),r=B((.0139322*n+.0971045*i+.7141733*a)/.82521)),new F(116*o-16,500*(e-o),200*(o-r),t.opacity)}function R(t,e,r,n){return 1===arguments.length?D(t):new F(t,e,r,null==n?1:n)}function F(t,e,r,n){this.l=+t,this.a=+e,this.b=+r,this.opacity=+n}function B(t){return t>.008856451679035631?Math.pow(t,1/3):t/O+4/29}function N(t){return t>z?t*t*t:O*(t-4/29)}function j(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function U(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function V(t){if(t instanceof H)return new H(t.h,t.c,t.l,t.opacity);if(t instanceof F||(t=D(t)),0===t.a&&0===t.b)return new H(NaN,0=0&&(r=t.slice(n+1),t=t.slice(0,n)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:r}}))}function a(t,e){for(var r,n=0,i=t.length;n0)for(var r,n,i=new Array(r),a=0;ah+c||np+c||au.index){var f=h-s.x-s.vx,m=p-s.y-s.vy,v=f*f+m*m;vt.r&&(t.r=t[e].r)}function h(){if(r){var e,i,a=r.length;for(n=new Array(a),e=0;e=c)){(t.data!==r||t.next)&&(0===f&&(d+=(f=o())*f),0===h&&(d+=(h=o())*h),d1?(null==r?u.remove(t):u.set(t,v(r)),e):u.get(t)},find:function(e,r,n){var i,a,o,s,l,c=0,u=t.length;for(null==n?n=1/0:n*=n,c=0;c1?(h.on(t,r),e):h.on(t)}}},t.forceX=function(t){var e,r,n,i=a(.1);function o(t){for(var i,a=0,o=e.length;a=0;)e+=r[n].value;else e=1;t.value=e}function a(t,e){var r,n,i,a,s,u=new c(t),f=+t.value&&(u.value=t.value),h=[u];for(null==e&&(e=o);r=h.pop();)if(f&&(r.value=+r.data.value),(i=e(r.data))&&(s=i.length))for(r.children=new Array(s),a=s-1;a>=0;--a)h.push(n=r.children[a]=new c(i[a])),n.parent=r,n.depth=r.depth+1;return u.eachBefore(l)}function o(t){return t.children}function s(t){t.data=t.data.data}function l(t){var e=0;do{t.height=e}while((t=t.parent)&&t.height<++e)}function c(t){this.data=t,this.depth=this.height=0,this.parent=null}c.prototype=a.prototype={constructor:c,count:function(){return this.eachAfter(i)},each:function(t){var e,r,n,i,a=this,o=[a];do{for(e=o.reverse(),o=[];a=e.pop();)if(t(a),r=a.children)for(n=0,i=r.length;n=0;--r)i.push(e[r]);return this},sum:function(t){return this.eachAfter((function(e){for(var r=+t(e.data)||0,n=e.children,i=n&&n.length;--i>=0;)r+=n[i].value;e.value=r}))},sort:function(t){return this.eachBefore((function(e){e.children&&e.children.sort(t)}))},path:function(t){for(var e=this,r=function(t,e){if(t===e)return t;var r=t.ancestors(),n=e.ancestors(),i=null;t=r.pop(),e=n.pop();for(;t===e;)i=t,t=r.pop(),e=n.pop();return i}(e,t),n=[e];e!==r;)e=e.parent,n.push(e);for(var i=n.length;t!==r;)n.splice(i,0,t),t=t.parent;return n},ancestors:function(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e},descendants:function(){var t=[];return this.each((function(e){t.push(e)})),t},leaves:function(){var t=[];return this.eachBefore((function(e){e.children||t.push(e)})),t},links:function(){var t=this,e=[];return t.each((function(r){r!==t&&e.push({source:r.parent,target:r})})),e},copy:function(){return a(this).eachBefore(s)}};var u=Array.prototype.slice;function f(t){for(var e,r,n=0,i=(t=function(t){for(var e,r,n=t.length;n;)r=Math.random()*n--|0,e=t[n],t[n]=t[r],t[r]=e;return t}(u.call(t))).length,a=[];n0&&r*r>n*n+i*i}function g(t,e){for(var r=0;r(o*=o)?(n=(c+o-i)/(2*c),a=Math.sqrt(Math.max(0,o/c-n*n)),r.x=t.x-n*s-a*l,r.y=t.y-n*l+a*s):(n=(c+i-o)/(2*c),a=Math.sqrt(Math.max(0,i/c-n*n)),r.x=e.x+n*s-a*l,r.y=e.y+n*l+a*s)):(r.x=e.x+r.r,r.y=e.y)}function b(t,e){var r=t.r+e.r-1e-6,n=e.x-t.x,i=e.y-t.y;return r>0&&r*r>n*n+i*i}function _(t){var e=t._,r=t.next._,n=e.r+r.r,i=(e.x*r.r+r.x*e.r)/n,a=(e.y*r.r+r.y*e.r)/n;return i*i+a*a}function w(t){this._=t,this.next=null,this.previous=null}function T(t){if(!(i=t.length))return 0;var e,r,n,i,a,o,s,l,c,u,h;if((e=t[0]).x=0,e.y=0,!(i>1))return e.r;if(r=t[1],e.x=-r.r,r.x=e.r,r.y=0,!(i>2))return e.r+r.r;x(r,e,n=t[2]),e=new w(e),r=new w(r),n=new w(n),e.next=n.previous=r,r.next=e.previous=n,n.next=r.previous=e;t:for(s=3;sh&&(h=s),m=u*u*g,(p=Math.max(h/m,m/f))>d){u-=s;break}d=p}v.push(o={value:u,dice:l1?e:1)},r}(G);var X=function t(e){function r(t,r,n,i,a){if((o=t._squarify)&&o.ratio===e)for(var o,s,l,c,u,f=-1,h=o.length,p=t.value;++f1?e:1)},r}(G);t.cluster=function(){var t=e,i=1,a=1,o=!1;function s(e){var s,l=0;e.eachAfter((function(e){var i=e.children;i?(e.x=function(t){return t.reduce(r,0)/t.length}(i),e.y=function(t){return 1+t.reduce(n,0)}(i)):(e.x=s?l+=t(e,s):0,e.y=0,s=e)}));var c=function(t){for(var e;e=t.children;)t=e[0];return t}(e),u=function(t){for(var e;e=t.children;)t=e[e.length-1];return t}(e),f=c.x-t(c,u)/2,h=u.x+t(u,c)/2;return e.eachAfter(o?function(t){t.x=(t.x-e.x)*i,t.y=(e.y-t.y)*a}:function(t){t.x=(t.x-f)/(h-f)*i,t.y=(1-(e.y?t.y/e.y:1))*a})}return s.separation=function(e){return arguments.length?(t=e,s):t},s.size=function(t){return arguments.length?(o=!1,i=+t[0],a=+t[1],s):o?null:[i,a]},s.nodeSize=function(t){return arguments.length?(o=!0,i=+t[0],a=+t[1],s):o?[i,a]:null},s},t.hierarchy=a,t.pack=function(){var t=null,e=1,r=1,n=A;function i(i){return i.x=e/2,i.y=r/2,t?i.eachBefore(C(t)).eachAfter(L(n,.5)).eachBefore(I(1)):i.eachBefore(C(E)).eachAfter(L(A,1)).eachAfter(L(n,i.r/Math.min(e,r))).eachBefore(I(Math.min(e,r)/(2*i.r))),i}return i.radius=function(e){return arguments.length?(t=k(e),i):t},i.size=function(t){return arguments.length?(e=+t[0],r=+t[1],i):[e,r]},i.padding=function(t){return arguments.length?(n="function"==typeof t?t:S(+t),i):n},i},t.packEnclose=f,t.packSiblings=function(t){return T(t),t},t.partition=function(){var t=1,e=1,r=0,n=!1;function i(i){var a=i.height+1;return i.x0=i.y0=r,i.x1=t,i.y1=e/a,i.eachBefore(function(t,e){return function(n){n.children&&z(n,n.x0,t*(n.depth+1)/e,n.x1,t*(n.depth+2)/e);var i=n.x0,a=n.y0,o=n.x1-r,s=n.y1-r;o0)throw new Error("cycle");return a}return r.id=function(e){return arguments.length?(t=M(e),r):t},r.parentId=function(t){return arguments.length?(e=M(t),r):e},r},t.tree=function(){var t=B,e=1,r=1,n=null;function i(i){var l=function(t){for(var e,r,n,i,a,o=new q(t,0),s=[o];e=s.pop();)if(n=e._.children)for(e.children=new Array(a=n.length),i=a-1;i>=0;--i)s.push(r=e.children[i]=new q(n[i],i)),r.parent=e;return(o.parent=new q(null,0)).children=[o],o}(i);if(l.eachAfter(a),l.parent.m=-l.z,l.eachBefore(o),n)i.eachBefore(s);else{var c=i,u=i,f=i;i.eachBefore((function(t){t.xu.x&&(u=t),t.depth>f.depth&&(f=t)}));var h=c===u?1:t(c,u)/2,p=h-c.x,d=e/(u.x+h+p),g=r/(f.depth||1);i.eachBefore((function(t){t.x=(t.x+p)*d,t.y=t.depth*g}))}return i}function a(e){var r=e.children,n=e.parent.children,i=e.i?n[e.i-1]:null;if(r){!function(t){for(var e,r=0,n=0,i=t.children,a=i.length;--a>=0;)(e=i[a]).z+=r,e.m+=r,r+=e.s+(n+=e.c)}(e);var a=(r[0].z+r[r.length-1].z)/2;i?(e.z=i.z+t(e._,i._),e.m=e.z-a):e.z=a}else i&&(e.z=i.z+t(e._,i._));e.parent.A=function(e,r,n){if(r){for(var i,a=e,o=e,s=r,l=a.parent.children[0],c=a.m,u=o.m,f=s.m,h=l.m;s=j(s),a=N(a),s&&a;)l=N(l),(o=j(o)).a=e,(i=s.z+f-a.z-c+t(s._,a._))>0&&(U(V(s,e,n),e,i),c+=i,u+=i),f+=s.m,c+=a.m,h+=l.m,u+=o.m;s&&!j(o)&&(o.t=s,o.m+=f-u),a&&!N(l)&&(l.t=a,l.m+=c-h,n=e)}return n}(e,i,e.parent.A||n[0])}function o(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function s(t){t.x*=e,t.y=t.depth*r}return i.separation=function(e){return arguments.length?(t=e,i):t},i.size=function(t){return arguments.length?(n=!1,e=+t[0],r=+t[1],i):n?null:[e,r]},i.nodeSize=function(t){return arguments.length?(n=!0,e=+t[0],r=+t[1],i):n?[e,r]:null},i},t.treemap=function(){var t=W,e=!1,r=1,n=1,i=[0],a=A,o=A,s=A,l=A,c=A;function u(t){return t.x0=t.y0=0,t.x1=r,t.y1=n,t.eachBefore(f),i=[0],e&&t.eachBefore(P),t}function f(e){var r=i[e.depth],n=e.x0+r,u=e.y0+r,f=e.x1-r,h=e.y1-r;f=r-1){var u=s[e];return u.x0=i,u.y0=a,u.x1=o,void(u.y1=l)}var f=c[e],h=n/2+f,p=e+1,d=r-1;for(;p>>1;c[g]l-a){var y=(i*v+o*m)/n;t(e,p,m,i,a,y,l),t(p,r,v,y,a,o,l)}else{var x=(a*v+l*m)/n;t(e,p,m,i,a,o,x),t(p,r,v,i,x,o,l)}}(0,l,t.value,e,r,n,i)},t.treemapDice=z,t.treemapResquarify=X,t.treemapSlice=H,t.treemapSliceDice=function(t,e,r,n,i){(1&t.depth?H:z)(t,e,r,n,i)},t.treemapSquarify=W,Object.defineProperty(t,"__esModule",{value:!0})}))},{}],162:[function(t,e,r){!function(n,i){"object"==typeof r&&"undefined"!=typeof e?i(r,t("d3-color")):i((n=n||self).d3=n.d3||{},n.d3)}(this,(function(t,e){"use strict";function r(t,e,r,n,i){var a=t*t,o=a*t;return((1-3*t+3*a-o)*e+(4-6*a+3*o)*r+(1+3*t+3*a-3*o)*n+o*i)/6}function n(t){var e=t.length-1;return function(n){var i=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),a=t[i],o=t[i+1],s=i>0?t[i-1]:2*a-o,l=i180||r<-180?r-360*Math.round(r/360):r):a(isNaN(t)?e:t)}function l(t){return 1==(t=+t)?c:function(e,r){return r-e?function(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}(e,r,t):a(isNaN(e)?r:e)}}function c(t,e){var r=e-t;return r?o(t,r):a(isNaN(t)?e:t)}var u=function t(r){var n=l(r);function i(t,r){var i=n((t=e.rgb(t)).r,(r=e.rgb(r)).r),a=n(t.g,r.g),o=n(t.b,r.b),s=c(t.opacity,r.opacity);return function(e){return t.r=i(e),t.g=a(e),t.b=o(e),t.opacity=s(e),t+""}}return i.gamma=t,i}(1);function f(t){return function(r){var n,i,a=r.length,o=new Array(a),s=new Array(a),l=new Array(a);for(n=0;na&&(i=e.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(r=r[0])===(n=n[0])?s[o]?s[o]+=n:s[++o]=n:(s[++o]=null,l.push({i:o,x:y(r,n)})),a=_.lastIndex;return a180?e+=360:e-t>180&&(t+=360),a.push({i:r.push(i(r)+"rotate(",null,n)-2,x:y(t,e)})):e&&r.push(i(r)+"rotate("+e+n)}(a.rotate,o.rotate,s,l),function(t,e,r,a){t!==e?a.push({i:r.push(i(r)+"skewX(",null,n)-2,x:y(t,e)}):e&&r.push(i(r)+"skewX("+e+n)}(a.skewX,o.skewX,s,l),function(t,e,r,n,a,o){if(t!==r||e!==n){var s=a.push(i(a)+"scale(",null,",",null,")");o.push({i:s-4,x:y(t,r)},{i:s-2,x:y(e,n)})}else 1===r&&1===n||a.push(i(a)+"scale("+r+","+n+")")}(a.scaleX,a.scaleY,o.scaleX,o.scaleY,s,l),a=o=null,function(t){for(var e,r=-1,n=l.length;++r1e-6)if(Math.abs(f*l-c*u)>1e-6&&a){var p=n-o,d=i-s,g=l*l+c*c,m=p*p+d*d,v=Math.sqrt(g),y=Math.sqrt(h),x=a*Math.tan((e-Math.acos((g+h-m)/(2*v*y)))/2),b=x/y,_=x/v;Math.abs(b-1)>1e-6&&(this._+="L"+(t+b*u)+","+(r+b*f)),this._+="A"+a+","+a+",0,0,"+ +(f*p>u*d)+","+(this._x1=t+_*l)+","+(this._y1=r+_*c)}else this._+="L"+(this._x1=t)+","+(this._y1=r);else;},arc:function(t,i,a,o,s,l){t=+t,i=+i,l=!!l;var c=(a=+a)*Math.cos(o),u=a*Math.sin(o),f=t+c,h=i+u,p=1^l,d=l?o-s:s-o;if(a<0)throw new Error("negative radius: "+a);null===this._x1?this._+="M"+f+","+h:(Math.abs(this._x1-f)>1e-6||Math.abs(this._y1-h)>1e-6)&&(this._+="L"+f+","+h),a&&(d<0&&(d=d%r+r),d>n?this._+="A"+a+","+a+",0,1,"+p+","+(t-c)+","+(i-u)+"A"+a+","+a+",0,1,"+p+","+(this._x1=f)+","+(this._y1=h):d>1e-6&&(this._+="A"+a+","+a+",0,"+ +(d>=e)+","+p+","+(this._x1=t+a*Math.cos(s))+","+(this._y1=i+a*Math.sin(s))))},rect:function(t,e,r,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +r+"v"+ +n+"h"+-r+"Z"},toString:function(){return this._}},t.path=a,Object.defineProperty(t,"__esModule",{value:!0})}))},{}],164:[function(t,e,r){!function(t,n){"object"==typeof r&&"undefined"!=typeof e?n(r):n((t=t||self).d3=t.d3||{})}(this,(function(t){"use strict";function e(t,e,r,n){if(isNaN(e)||isNaN(r))return t;var i,a,o,s,l,c,u,f,h,p=t._root,d={data:n},g=t._x0,m=t._y0,v=t._x1,y=t._y1;if(!p)return t._root=d,t;for(;p.length;)if((c=e>=(a=(g+v)/2))?g=a:v=a,(u=r>=(o=(m+y)/2))?m=o:y=o,i=p,!(p=p[f=u<<1|c]))return i[f]=d,t;if(s=+t._x.call(null,p.data),l=+t._y.call(null,p.data),e===s&&r===l)return d.next=p,i?i[f]=d:t._root=d,t;do{i=i?i[f]=new Array(4):t._root=new Array(4),(c=e>=(a=(g+v)/2))?g=a:v=a,(u=r>=(o=(m+y)/2))?m=o:y=o}while((f=u<<1|c)==(h=(l>=o)<<1|s>=a));return i[h]=p,i[f]=d,t}function r(t,e,r,n,i){this.node=t,this.x0=e,this.y0=r,this.x1=n,this.y1=i}function n(t){return t[0]}function i(t){return t[1]}function a(t,e,r){var a=new o(null==e?n:e,null==r?i:r,NaN,NaN,NaN,NaN);return null==t?a:a.addAll(t)}function o(t,e,r,n,i,a){this._x=t,this._y=e,this._x0=r,this._y0=n,this._x1=i,this._y1=a,this._root=void 0}function s(t){for(var e={data:t.data},r=e;t=t.next;)r=r.next={data:t.data};return e}var l=a.prototype=o.prototype;l.copy=function(){var t,e,r=new o(this._x,this._y,this._x0,this._y0,this._x1,this._y1),n=this._root;if(!n)return r;if(!n.length)return r._root=s(n),r;for(t=[{source:n,target:r._root=new Array(4)}];n=t.pop();)for(var i=0;i<4;++i)(e=n.source[i])&&(e.length?t.push({source:e,target:n.target[i]=new Array(4)}):n.target[i]=s(e));return r},l.add=function(t){var r=+this._x.call(null,t),n=+this._y.call(null,t);return e(this.cover(r,n),r,n,t)},l.addAll=function(t){var r,n,i,a,o=t.length,s=new Array(o),l=new Array(o),c=1/0,u=1/0,f=-1/0,h=-1/0;for(n=0;nf&&(f=i),ah&&(h=a));if(c>f||u>h)return this;for(this.cover(c,u).cover(f,h),n=0;nt||t>=i||n>e||e>=a;)switch(s=(ep||(o=c.y0)>d||(s=c.x1)=y)<<1|t>=v)&&(c=g[g.length-1],g[g.length-1]=g[g.length-1-u],g[g.length-1-u]=c)}else{var x=t-+this._x.call(null,m.data),b=e-+this._y.call(null,m.data),_=x*x+b*b;if(_=(s=(d+m)/2))?d=s:m=s,(u=o>=(l=(g+v)/2))?g=l:v=l,e=p,!(p=p[f=u<<1|c]))return this;if(!p.length)break;(e[f+1&3]||e[f+2&3]||e[f+3&3])&&(r=e,h=f)}for(;p.data!==t;)if(n=p,!(p=p.next))return this;return(i=p.next)&&delete p.next,n?(i?n.next=i:delete n.next,this):e?(i?e[f]=i:delete e[f],(p=e[0]||e[1]||e[2]||e[3])&&p===(e[3]||e[2]||e[1]||e[0])&&!p.length&&(r?r[h]=p:this._root=p),this):(this._root=i,this)},l.removeAll=function(t){for(var e=0,r=t.length;e1?0:t<-1?u:Math.acos(t)}function d(t){return t>=1?f:t<=-1?-f:Math.asin(t)}function g(t){return t.innerRadius}function m(t){return t.outerRadius}function v(t){return t.startAngle}function y(t){return t.endAngle}function x(t){return t&&t.padAngle}function b(t,e,r,n,i,a,o,s){var l=r-t,c=n-e,u=o-i,f=s-a,h=f*l-u*c;if(!(h*h<1e-12))return[t+(h=(u*(e-a)-f*(t-i))/h)*l,e+h*c]}function _(t,e,r,n,i,a,s){var l=t-r,u=e-n,f=(s?a:-a)/c(l*l+u*u),h=f*u,p=-f*l,d=t+h,g=e+p,m=r+h,v=n+p,y=(d+m)/2,x=(g+v)/2,b=m-d,_=v-g,w=b*b+_*_,T=i-a,k=d*v-m*g,M=(_<0?-1:1)*c(o(0,T*T*w-k*k)),A=(k*_-b*M)/w,S=(-k*b-_*M)/w,E=(k*_+b*M)/w,C=(-k*b+_*M)/w,L=A-y,I=S-x,P=E-y,z=C-x;return L*L+I*I>P*P+z*z&&(A=E,S=C),{cx:A,cy:S,x01:-h,y01:-p,x11:A*(i/T-1),y11:S*(i/T-1)}}function w(t){this._context=t}function T(t){return new w(t)}function k(t){return t[0]}function M(t){return t[1]}function A(){var t=k,n=M,i=r(!0),a=null,o=T,s=null;function l(r){var l,c,u,f=r.length,h=!1;for(null==a&&(s=o(u=e.path())),l=0;l<=f;++l)!(l=f;--h)c.point(v[h],y[h]);c.lineEnd(),c.areaEnd()}m&&(v[u]=+t(p,u,r),y[u]=+i(p,u,r),c.point(n?+n(p,u,r):v[u],a?+a(p,u,r):y[u]))}if(d)return c=null,d+""||null}function f(){return A().defined(o).curve(l).context(s)}return u.x=function(e){return arguments.length?(t="function"==typeof e?e:r(+e),n=null,u):t},u.x0=function(e){return arguments.length?(t="function"==typeof e?e:r(+e),u):t},u.x1=function(t){return arguments.length?(n=null==t?null:"function"==typeof t?t:r(+t),u):n},u.y=function(t){return arguments.length?(i="function"==typeof t?t:r(+t),a=null,u):i},u.y0=function(t){return arguments.length?(i="function"==typeof t?t:r(+t),u):i},u.y1=function(t){return arguments.length?(a=null==t?null:"function"==typeof t?t:r(+t),u):a},u.lineX0=u.lineY0=function(){return f().x(t).y(i)},u.lineY1=function(){return f().x(t).y(a)},u.lineX1=function(){return f().x(n).y(i)},u.defined=function(t){return arguments.length?(o="function"==typeof t?t:r(!!t),u):o},u.curve=function(t){return arguments.length?(l=t,null!=s&&(c=l(s)),u):l},u.context=function(t){return arguments.length?(null==t?s=c=null:c=l(s=t),u):s},u}function E(t,e){return et?1:e>=t?0:NaN}function C(t){return t}w.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}}};var L=P(T);function I(t){this._curve=t}function P(t){function e(e){return new I(t(e))}return e._curve=t,e}function z(t){var e=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?e(P(t)):e()._curve},t}function O(){return z(A().curve(L))}function D(){var t=S().curve(L),e=t.curve,r=t.lineX0,n=t.lineX1,i=t.lineY0,a=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return z(r())},delete t.lineX0,t.lineEndAngle=function(){return z(n())},delete t.lineX1,t.lineInnerRadius=function(){return z(i())},delete t.lineY0,t.lineOuterRadius=function(){return z(a())},delete t.lineY1,t.curve=function(t){return arguments.length?e(P(t)):e()._curve},t}function R(t,e){return[(e=+e)*Math.cos(t-=Math.PI/2),e*Math.sin(t)]}I.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,e){this._curve.point(e*Math.sin(t),e*-Math.cos(t))}};var F=Array.prototype.slice;function B(t){return t.source}function N(t){return t.target}function j(t){var n=B,i=N,a=k,o=M,s=null;function l(){var r,l=F.call(arguments),c=n.apply(this,l),u=i.apply(this,l);if(s||(s=r=e.path()),t(s,+a.apply(this,(l[0]=c,l)),+o.apply(this,l),+a.apply(this,(l[0]=u,l)),+o.apply(this,l)),r)return s=null,r+""||null}return l.source=function(t){return arguments.length?(n=t,l):n},l.target=function(t){return arguments.length?(i=t,l):i},l.x=function(t){return arguments.length?(a="function"==typeof t?t:r(+t),l):a},l.y=function(t){return arguments.length?(o="function"==typeof t?t:r(+t),l):o},l.context=function(t){return arguments.length?(s=null==t?null:t,l):s},l}function U(t,e,r,n,i){t.moveTo(e,r),t.bezierCurveTo(e=(e+n)/2,r,e,i,n,i)}function V(t,e,r,n,i){t.moveTo(e,r),t.bezierCurveTo(e,r=(r+i)/2,n,r,n,i)}function q(t,e,r,n,i){var a=R(e,r),o=R(e,r=(r+i)/2),s=R(n,r),l=R(n,i);t.moveTo(a[0],a[1]),t.bezierCurveTo(o[0],o[1],s[0],s[1],l[0],l[1])}var H={draw:function(t,e){var r=Math.sqrt(e/u);t.moveTo(r,0),t.arc(0,0,r,0,h)}},G={draw:function(t,e){var r=Math.sqrt(e/5)/2;t.moveTo(-3*r,-r),t.lineTo(-r,-r),t.lineTo(-r,-3*r),t.lineTo(r,-3*r),t.lineTo(r,-r),t.lineTo(3*r,-r),t.lineTo(3*r,r),t.lineTo(r,r),t.lineTo(r,3*r),t.lineTo(-r,3*r),t.lineTo(-r,r),t.lineTo(-3*r,r),t.closePath()}},Y=Math.sqrt(1/3),W=2*Y,X={draw:function(t,e){var r=Math.sqrt(e/W),n=r*Y;t.moveTo(0,-r),t.lineTo(n,0),t.lineTo(0,r),t.lineTo(-n,0),t.closePath()}},Z=Math.sin(u/10)/Math.sin(7*u/10),J=Math.sin(h/10)*Z,K=-Math.cos(h/10)*Z,Q={draw:function(t,e){var r=Math.sqrt(.8908130915292852*e),n=J*r,i=K*r;t.moveTo(0,-r),t.lineTo(n,i);for(var a=1;a<5;++a){var o=h*a/5,s=Math.cos(o),l=Math.sin(o);t.lineTo(l*r,-s*r),t.lineTo(s*n-l*i,l*n+s*i)}t.closePath()}},$={draw:function(t,e){var r=Math.sqrt(e),n=-r/2;t.rect(n,n,r,r)}},tt=Math.sqrt(3),et={draw:function(t,e){var r=-Math.sqrt(e/(3*tt));t.moveTo(0,2*r),t.lineTo(-tt*r,-r),t.lineTo(tt*r,-r),t.closePath()}},rt=-.5,nt=Math.sqrt(3)/2,it=1/Math.sqrt(12),at=3*(it/2+1),ot={draw:function(t,e){var r=Math.sqrt(e/at),n=r/2,i=r*it,a=n,o=r*it+r,s=-a,l=o;t.moveTo(n,i),t.lineTo(a,o),t.lineTo(s,l),t.lineTo(rt*n-nt*i,nt*n+rt*i),t.lineTo(rt*a-nt*o,nt*a+rt*o),t.lineTo(rt*s-nt*l,nt*s+rt*l),t.lineTo(rt*n+nt*i,rt*i-nt*n),t.lineTo(rt*a+nt*o,rt*o-nt*a),t.lineTo(rt*s+nt*l,rt*l-nt*s),t.closePath()}},st=[H,G,X,$,Q,et,ot];function lt(){}function ct(t,e,r){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+r)/6)}function ut(t){this._context=t}function ft(t){this._context=t}function ht(t){this._context=t}function pt(t,e){this._basis=new ut(t),this._beta=e}ut.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:ct(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:ct(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},ft.prototype={areaStart:lt,areaEnd:lt,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:ct(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},ht.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+t)/6,n=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:ct(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},pt.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,r=t.length-1;if(r>0)for(var n,i=t[0],a=e[0],o=t[r]-i,s=e[r]-a,l=-1;++l<=r;)n=l/r,this._basis.point(this._beta*t[l]+(1-this._beta)*(i+n*o),this._beta*e[l]+(1-this._beta)*(a+n*s));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};var dt=function t(e){function r(t){return 1===e?new ut(t):new pt(t,e)}return r.beta=function(e){return t(+e)},r}(.85);function gt(t,e,r){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-r),t._x2,t._y2)}function mt(t,e){this._context=t,this._k=(1-e)/6}mt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:gt(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:gt(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var vt=function t(e){function r(t){return new mt(t,e)}return r.tension=function(e){return t(+e)},r}(0);function yt(t,e){this._context=t,this._k=(1-e)/6}yt.prototype={areaStart:lt,areaEnd:lt,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:gt(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var xt=function t(e){function r(t){return new yt(t,e)}return r.tension=function(e){return t(+e)},r}(0);function bt(t,e){this._context=t,this._k=(1-e)/6}bt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:gt(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var _t=function t(e){function r(t){return new bt(t,e)}return r.tension=function(e){return t(+e)},r}(0);function wt(t,e,r){var n=t._x1,i=t._y1,a=t._x2,o=t._y2;if(t._l01_a>1e-12){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,l=3*t._l01_a*(t._l01_a+t._l12_a);n=(n*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/l,i=(i*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/l}if(t._l23_a>1e-12){var c=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,u=3*t._l23_a*(t._l23_a+t._l12_a);a=(a*c+t._x1*t._l23_2a-e*t._l12_2a)/u,o=(o*c+t._y1*t._l23_2a-r*t._l12_2a)/u}t._context.bezierCurveTo(n,i,a,o,t._x2,t._y2)}function Tt(t,e){this._context=t,this._alpha=e}Tt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:wt(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var kt=function t(e){function r(t){return e?new Tt(t,e):new mt(t,0)}return r.alpha=function(e){return t(+e)},r}(.5);function Mt(t,e){this._context=t,this._alpha=e}Mt.prototype={areaStart:lt,areaEnd:lt,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:wt(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var At=function t(e){function r(t){return e?new Mt(t,e):new yt(t,0)}return r.alpha=function(e){return t(+e)},r}(.5);function St(t,e){this._context=t,this._alpha=e}St.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:wt(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Et=function t(e){function r(t){return e?new St(t,e):new bt(t,0)}return r.alpha=function(e){return t(+e)},r}(.5);function Ct(t){this._context=t}function Lt(t){return t<0?-1:1}function It(t,e,r){var n=t._x1-t._x0,i=e-t._x1,a=(t._y1-t._y0)/(n||i<0&&-0),o=(r-t._y1)/(i||n<0&&-0),s=(a*i+o*n)/(n+i);return(Lt(a)+Lt(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(s))||0}function Pt(t,e){var r=t._x1-t._x0;return r?(3*(t._y1-t._y0)/r-e)/2:e}function zt(t,e,r){var n=t._x0,i=t._y0,a=t._x1,o=t._y1,s=(a-n)/3;t._context.bezierCurveTo(n+s,i+s*e,a-s,o-s*r,a,o)}function Ot(t){this._context=t}function Dt(t){this._context=new Rt(t)}function Rt(t){this._context=t}function Ft(t){this._context=t}function Bt(t){var e,r,n=t.length-1,i=new Array(n),a=new Array(n),o=new Array(n);for(i[0]=0,a[0]=2,o[0]=t[0]+2*t[1],e=1;e=0;--e)i[e]=(o[e]-i[e+1])/a[e];for(a[n-1]=(t[n]+i[n-1])/2,e=0;e1)for(var r,n,i,a=1,o=t[e[0]],s=o.length;a=0;)r[e]=e;return r}function Vt(t,e){return t[e]}function qt(t){var e=t.map(Ht);return Ut(t).sort((function(t,r){return e[t]-e[r]}))}function Ht(t){for(var e,r=-1,n=0,i=t.length,a=-1/0;++ra&&(a=e,n=r);return n}function Gt(t){var e=t.map(Yt);return Ut(t).sort((function(t,r){return e[t]-e[r]}))}function Yt(t){for(var e,r=0,n=-1,i=t.length;++n=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var r=this._x*(1-this._t)+t*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,e)}}this._x=t,this._y=e}},t.arc=function(){var t=g,o=m,w=r(0),T=null,k=v,M=y,A=x,S=null;function E(){var r,g,m=+t.apply(this,arguments),v=+o.apply(this,arguments),y=k.apply(this,arguments)-f,x=M.apply(this,arguments)-f,E=n(x-y),C=x>y;if(S||(S=r=e.path()),v1e-12)if(E>h-1e-12)S.moveTo(v*a(y),v*l(y)),S.arc(0,0,v,y,x,!C),m>1e-12&&(S.moveTo(m*a(x),m*l(x)),S.arc(0,0,m,x,y,C));else{var L,I,P=y,z=x,O=y,D=x,R=E,F=E,B=A.apply(this,arguments)/2,N=B>1e-12&&(T?+T.apply(this,arguments):c(m*m+v*v)),j=s(n(v-m)/2,+w.apply(this,arguments)),U=j,V=j;if(N>1e-12){var q=d(N/m*l(B)),H=d(N/v*l(B));(R-=2*q)>1e-12?(O+=q*=C?1:-1,D-=q):(R=0,O=D=(y+x)/2),(F-=2*H)>1e-12?(P+=H*=C?1:-1,z-=H):(F=0,P=z=(y+x)/2)}var G=v*a(P),Y=v*l(P),W=m*a(D),X=m*l(D);if(j>1e-12){var Z,J=v*a(z),K=v*l(z),Q=m*a(O),$=m*l(O);if(E1e-12?V>1e-12?(L=_(Q,$,G,Y,v,V,C),I=_(J,K,W,X,v,V,C),S.moveTo(L.cx+L.x01,L.cy+L.y01),V1e-12&&R>1e-12?U>1e-12?(L=_(W,X,J,K,m,-U,C),I=_(G,Y,Q,$,m,-U,C),S.lineTo(L.cx+L.x01,L.cy+L.y01),U0&&(d+=f);for(null!=e?g.sort((function(t,r){return e(m[t],m[r])})):null!=n&&g.sort((function(t,e){return n(r[t],r[e])})),s=0,c=d?(y-p*b)/d:0;s0?f*c:0)+b,m[l]={data:r[l],index:s,value:f,startAngle:v,endAngle:u,padAngle:x};return m}return s.value=function(e){return arguments.length?(t="function"==typeof e?e:r(+e),s):t},s.sortValues=function(t){return arguments.length?(e=t,n=null,s):e},s.sort=function(t){return arguments.length?(n=t,e=null,s):n},s.startAngle=function(t){return arguments.length?(i="function"==typeof t?t:r(+t),s):i},s.endAngle=function(t){return arguments.length?(a="function"==typeof t?t:r(+t),s):a},s.padAngle=function(t){return arguments.length?(o="function"==typeof t?t:r(+t),s):o},s},t.pointRadial=R,t.radialArea=D,t.radialLine=O,t.stack=function(){var t=r([]),e=Ut,n=jt,i=Vt;function a(r){var a,o,s=t.apply(this,arguments),l=r.length,c=s.length,u=new Array(c);for(a=0;a0)for(var r,n,i,a,o,s,l=0,c=t[e[0]].length;l0?(n[0]=a,n[1]=a+=i):i<0?(n[1]=o,n[0]=o+=i):(n[0]=0,n[1]=i)},t.stackOffsetExpand=function(t,e){if((n=t.length)>0){for(var r,n,i,a=0,o=t[0].length;a0){for(var r,n=0,i=t[e[0]],a=i.length;n0&&(n=(r=t[e[0]]).length)>0){for(var r,n,i,a=0,o=1;o=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:mt,s:vt,S:q,u:H,U:G,V:Y,w:W,W:X,x:null,X:null,y:Z,Y:J,Z:K,"%":gt},Lt={a:function(t){return f[t.getUTCDay()]},A:function(t){return u[t.getUTCDay()]},b:function(t){return yt[t.getUTCMonth()]},B:function(t){return h[t.getUTCMonth()]},c:null,d:Q,e:Q,f:nt,H:$,I:tt,j:et,L:rt,m:it,M:at,p:function(t){return c[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:mt,s:vt,S:ot,u:st,U:lt,V:ct,w:ut,W:ft,x:null,X:null,y:ht,Y:pt,Z:dt,"%":gt},It={a:function(t,e,r){var n=Tt.exec(e.slice(r));return n?(t.w=kt[n[0].toLowerCase()],r+n[0].length):-1},A:function(t,e,r){var n=_t.exec(e.slice(r));return n?(t.w=wt[n[0].toLowerCase()],r+n[0].length):-1},b:function(t,e,r){var n=St.exec(e.slice(r));return n?(t.m=Et[n[0].toLowerCase()],r+n[0].length):-1},B:function(t,e,r){var n=Mt.exec(e.slice(r));return n?(t.m=At[n[0].toLowerCase()],r+n[0].length):-1},c:function(t,e,r){return Ot(t,a,e,r)},d:M,e:M,f:I,H:S,I:S,j:A,L:L,m:k,M:E,p:function(t,e,r){var n=xt.exec(e.slice(r));return n?(t.p=bt[n[0].toLowerCase()],r+n[0].length):-1},q:T,Q:z,s:O,S:C,u:m,U:v,V:y,w:g,W:x,x:function(t,e,r){return Ot(t,o,e,r)},X:function(t,e,r){return Ot(t,l,e,r)},y:_,Y:b,Z:w,"%":P};function Pt(t,e){return function(r){var n,i,a,o=[],l=-1,c=0,u=t.length;for(r instanceof Date||(r=new Date(+r));++l53)return null;"w"in c||(c.w=1),"Z"in c?(l=(s=n(i(c.y,0,1))).getUTCDay(),s=l>4||0===l?e.utcMonday.ceil(s):e.utcMonday(s),s=e.utcDay.offset(s,7*(c.V-1)),c.y=s.getUTCFullYear(),c.m=s.getUTCMonth(),c.d=s.getUTCDate()+(c.w+6)%7):(l=(s=r(i(c.y,0,1))).getDay(),s=l>4||0===l?e.timeMonday.ceil(s):e.timeMonday(s),s=e.timeDay.offset(s,7*(c.V-1)),c.y=s.getFullYear(),c.m=s.getMonth(),c.d=s.getDate()+(c.w+6)%7)}else("W"in c||"U"in c)&&("w"in c||(c.w="u"in c?c.u%7:"W"in c?1:0),l="Z"in c?n(i(c.y,0,1)).getUTCDay():r(i(c.y,0,1)).getDay(),c.m=0,c.d="W"in c?(c.w+6)%7+7*c.W-(l+5)%7:c.w+7*c.U-(l+6)%7);return"Z"in c?(c.H+=c.Z/100|0,c.M+=c.Z%100,n(c)):r(c)}}function Ot(t,e,r,n){for(var i,a,o=0,l=e.length,c=r.length;o=c)return-1;if(37===(i=e.charCodeAt(o++))){if(i=e.charAt(o++),!(a=It[i in s?e.charAt(o++):i])||(n=a(t,r,n))<0)return-1}else if(i!=r.charCodeAt(n++))return-1}return n}return Ct.x=Pt(o,Ct),Ct.X=Pt(l,Ct),Ct.c=Pt(a,Ct),Lt.x=Pt(o,Lt),Lt.X=Pt(l,Lt),Lt.c=Pt(a,Lt),{format:function(t){var e=Pt(t+="",Ct);return e.toString=function(){return t},e},parse:function(t){var e=zt(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=Pt(t+="",Lt);return e.toString=function(){return t},e},utcParse:function(t){var e=zt(t+="",!0);return e.toString=function(){return t},e}}}var o,s={"-":"",_:" ",0:"0"},l=/^\s*\d+/,c=/^%/,u=/[\\^$*+?|[\]().{}]/g;function f(t,e,r){var n=t<0?"-":"",i=(n?-t:t)+"",a=i.length;return n+(a68?1900:2e3),r+n[0].length):-1}function w(t,e,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return n?(t.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function T(t,e,r){var n=l.exec(e.slice(r,r+1));return n?(t.q=3*n[0]-3,r+n[0].length):-1}function k(t,e,r){var n=l.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function M(t,e,r){var n=l.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function A(t,e,r){var n=l.exec(e.slice(r,r+3));return n?(t.m=0,t.d=+n[0],r+n[0].length):-1}function S(t,e,r){var n=l.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function E(t,e,r){var n=l.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function C(t,e,r){var n=l.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function L(t,e,r){var n=l.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function I(t,e,r){var n=l.exec(e.slice(r,r+6));return n?(t.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function P(t,e,r){var n=c.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function z(t,e,r){var n=l.exec(e.slice(r));return n?(t.Q=+n[0],r+n[0].length):-1}function O(t,e,r){var n=l.exec(e.slice(r));return n?(t.s=+n[0],r+n[0].length):-1}function D(t,e){return f(t.getDate(),e,2)}function R(t,e){return f(t.getHours(),e,2)}function F(t,e){return f(t.getHours()%12||12,e,2)}function B(t,r){return f(1+e.timeDay.count(e.timeYear(t),t),r,3)}function N(t,e){return f(t.getMilliseconds(),e,3)}function j(t,e){return N(t,e)+"000"}function U(t,e){return f(t.getMonth()+1,e,2)}function V(t,e){return f(t.getMinutes(),e,2)}function q(t,e){return f(t.getSeconds(),e,2)}function H(t){var e=t.getDay();return 0===e?7:e}function G(t,r){return f(e.timeSunday.count(e.timeYear(t)-1,t),r,2)}function Y(t,r){var n=t.getDay();return t=n>=4||0===n?e.timeThursday(t):e.timeThursday.ceil(t),f(e.timeThursday.count(e.timeYear(t),t)+(4===e.timeYear(t).getDay()),r,2)}function W(t){return t.getDay()}function X(t,r){return f(e.timeMonday.count(e.timeYear(t)-1,t),r,2)}function Z(t,e){return f(t.getFullYear()%100,e,2)}function J(t,e){return f(t.getFullYear()%1e4,e,4)}function K(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+f(e/60|0,"0",2)+f(e%60,"0",2)}function Q(t,e){return f(t.getUTCDate(),e,2)}function $(t,e){return f(t.getUTCHours(),e,2)}function tt(t,e){return f(t.getUTCHours()%12||12,e,2)}function et(t,r){return f(1+e.utcDay.count(e.utcYear(t),t),r,3)}function rt(t,e){return f(t.getUTCMilliseconds(),e,3)}function nt(t,e){return rt(t,e)+"000"}function it(t,e){return f(t.getUTCMonth()+1,e,2)}function at(t,e){return f(t.getUTCMinutes(),e,2)}function ot(t,e){return f(t.getUTCSeconds(),e,2)}function st(t){var e=t.getUTCDay();return 0===e?7:e}function lt(t,r){return f(e.utcSunday.count(e.utcYear(t)-1,t),r,2)}function ct(t,r){var n=t.getUTCDay();return t=n>=4||0===n?e.utcThursday(t):e.utcThursday.ceil(t),f(e.utcThursday.count(e.utcYear(t),t)+(4===e.utcYear(t).getUTCDay()),r,2)}function ut(t){return t.getUTCDay()}function ft(t,r){return f(e.utcMonday.count(e.utcYear(t)-1,t),r,2)}function ht(t,e){return f(t.getUTCFullYear()%100,e,2)}function pt(t,e){return f(t.getUTCFullYear()%1e4,e,4)}function dt(){return"+0000"}function gt(){return"%"}function mt(t){return+t}function vt(t){return Math.floor(+t/1e3)}function yt(e){return o=a(e),t.timeFormat=o.format,t.timeParse=o.parse,t.utcFormat=o.utcFormat,t.utcParse=o.utcParse,o}yt({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var xt=Date.prototype.toISOString?function(t){return t.toISOString()}:t.utcFormat("%Y-%m-%dT%H:%M:%S.%LZ");var bt=+new Date("2000-01-01T00:00:00.000Z")?function(t){var e=new Date(t);return isNaN(e)?null:e}:t.utcParse("%Y-%m-%dT%H:%M:%S.%LZ");t.isoFormat=xt,t.isoParse=bt,t.timeFormatDefaultLocale=yt,t.timeFormatLocale=a,Object.defineProperty(t,"__esModule",{value:!0})}))},{"d3-time":167}],167:[function(t,e,r){!function(t,n){"object"==typeof r&&"undefined"!=typeof e?n(r):n((t=t||self).d3=t.d3||{})}(this,(function(t){"use strict";var e=new Date,r=new Date;function n(t,i,a,o){function s(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return s.floor=function(e){return t(e=new Date(+e)),e},s.ceil=function(e){return t(e=new Date(e-1)),i(e,1),t(e),e},s.round=function(t){var e=s(t),r=s.ceil(t);return t-e0))return o;do{o.push(a=new Date(+e)),i(e,n),t(e)}while(a=r)for(;t(r),!e(r);)r.setTime(r-1)}),(function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;i(t,-1),!e(t););else for(;--r>=0;)for(;i(t,1),!e(t););}))},a&&(s.count=function(n,i){return e.setTime(+n),r.setTime(+i),t(e),t(r),Math.floor(a(e,r))},s.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?s.filter(o?function(e){return o(e)%t==0}:function(e){return s.count(0,e)%t==0}):s:null}),s}var i=n((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?n((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,r){e.setTime(+e+r*t)}),(function(e,r){return(r-e)/t})):i:null};var a=i.range,o=n((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,e){t.setTime(+t+1e3*e)}),(function(t,e){return(e-t)/1e3}),(function(t){return t.getUTCSeconds()})),s=o.range,l=n((function(t){t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds())}),(function(t,e){t.setTime(+t+6e4*e)}),(function(t,e){return(e-t)/6e4}),(function(t){return t.getMinutes()})),c=l.range,u=n((function(t){t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds()-6e4*t.getMinutes())}),(function(t,e){t.setTime(+t+36e5*e)}),(function(t,e){return(e-t)/36e5}),(function(t){return t.getHours()})),f=u.range,h=n((function(t){t.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+e)}),(function(t,e){return(e-t-6e4*(e.getTimezoneOffset()-t.getTimezoneOffset()))/864e5}),(function(t){return t.getDate()-1})),p=h.range;function d(t){return n((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+7*e)}),(function(t,e){return(e-t-6e4*(e.getTimezoneOffset()-t.getTimezoneOffset()))/6048e5}))}var g=d(0),m=d(1),v=d(2),y=d(3),x=d(4),b=d(5),_=d(6),w=g.range,T=m.range,k=v.range,M=y.range,A=x.range,S=b.range,E=_.range,C=n((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()})),L=C.range,I=n((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));I.every=function(t){return isFinite(t=Math.floor(t))&&t>0?n((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,r){e.setFullYear(e.getFullYear()+r*t)})):null};var P=I.range,z=n((function(t){t.setUTCSeconds(0,0)}),(function(t,e){t.setTime(+t+6e4*e)}),(function(t,e){return(e-t)/6e4}),(function(t){return t.getUTCMinutes()})),O=z.range,D=n((function(t){t.setUTCMinutes(0,0,0)}),(function(t,e){t.setTime(+t+36e5*e)}),(function(t,e){return(e-t)/36e5}),(function(t){return t.getUTCHours()})),R=D.range,F=n((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/864e5}),(function(t){return t.getUTCDate()-1})),B=F.range;function N(t){return n((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+7*e)}),(function(t,e){return(e-t)/6048e5}))}var j=N(0),U=N(1),V=N(2),q=N(3),H=N(4),G=N(5),Y=N(6),W=j.range,X=U.range,Z=V.range,J=q.range,K=H.range,Q=G.range,$=Y.range,tt=n((function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCMonth(t.getUTCMonth()+e)}),(function(t,e){return e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())}),(function(t){return t.getUTCMonth()})),et=tt.range,rt=n((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));rt.every=function(t){return isFinite(t=Math.floor(t))&&t>0?n((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,r){e.setUTCFullYear(e.getUTCFullYear()+r*t)})):null};var nt=rt.range;t.timeDay=h,t.timeDays=p,t.timeFriday=b,t.timeFridays=S,t.timeHour=u,t.timeHours=f,t.timeInterval=n,t.timeMillisecond=i,t.timeMilliseconds=a,t.timeMinute=l,t.timeMinutes=c,t.timeMonday=m,t.timeMondays=T,t.timeMonth=C,t.timeMonths=L,t.timeSaturday=_,t.timeSaturdays=E,t.timeSecond=o,t.timeSeconds=s,t.timeSunday=g,t.timeSundays=w,t.timeThursday=x,t.timeThursdays=A,t.timeTuesday=v,t.timeTuesdays=k,t.timeWednesday=y,t.timeWednesdays=M,t.timeWeek=g,t.timeWeeks=w,t.timeYear=I,t.timeYears=P,t.utcDay=F,t.utcDays=B,t.utcFriday=G,t.utcFridays=Q,t.utcHour=D,t.utcHours=R,t.utcMillisecond=i,t.utcMilliseconds=a,t.utcMinute=z,t.utcMinutes=O,t.utcMonday=U,t.utcMondays=X,t.utcMonth=tt,t.utcMonths=et,t.utcSaturday=Y,t.utcSaturdays=$,t.utcSecond=o,t.utcSeconds=s,t.utcSunday=j,t.utcSundays=W,t.utcThursday=H,t.utcThursdays=K,t.utcTuesday=V,t.utcTuesdays=Z,t.utcWednesday=q,t.utcWednesdays=J,t.utcWeek=j,t.utcWeeks=W,t.utcYear=rt,t.utcYears=nt,Object.defineProperty(t,"__esModule",{value:!0})}))},{}],168:[function(t,e,r){!function(t,n){"object"==typeof r&&"undefined"!=typeof e?n(r):n((t=t||self).d3=t.d3||{})}(this,(function(t){"use strict";var e,r,n=0,i=0,a=0,o=0,s=0,l=0,c="object"==typeof performance&&performance.now?performance:Date,u="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function f(){return s||(u(h),s=c.now()+l)}function h(){s=0}function p(){this._call=this._time=this._next=null}function d(t,e,r){var n=new p;return n.restart(t,e,r),n}function g(){f(),++n;for(var t,r=e;r;)(t=s-r._time)>=0&&r._call.call(null,t),r=r._next;--n}function m(){s=(o=c.now())+l,n=i=0;try{g()}finally{n=0,function(){var t,n,i=e,a=1/0;for(;i;)i._call?(a>i._time&&(a=i._time),t=i,i=i._next):(n=i._next,i._next=null,i=t?t._next=n:e=n);r=t,y(a)}(),s=0}}function v(){var t=c.now(),e=t-o;e>1e3&&(l-=e,o=t)}function y(t){n||(i&&(i=clearTimeout(i)),t-s>24?(t<1/0&&(i=setTimeout(m,t-c.now()-l)),a&&(a=clearInterval(a))):(a||(o=c.now(),a=setInterval(v,1e3)),n=1,u(m)))}p.prototype=d.prototype={constructor:p,restart:function(t,n,i){if("function"!=typeof t)throw new TypeError("callback is not a function");i=(null==i?f():+i)+(null==n?0:+n),this._next||r===this||(r?r._next=this:e=this,r=this),this._call=t,this._time=i,y()},stop:function(){this._call&&(this._call=null,this._time=1/0,y())}},t.interval=function(t,e,r){var n=new p,i=e;return null==e?(n.restart(t,e,r),n):(e=+e,r=null==r?f():+r,n.restart((function a(o){o+=i,n.restart(a,i+=e,r),t(o)}),e,r),n)},t.now=f,t.timeout=function(t,e,r){var n=new p;return e=null==e?0:+e,n.restart((function(r){n.stop(),t(r+e)}),e,r),n},t.timer=d,t.timerFlush=g,Object.defineProperty(t,"__esModule",{value:!0})}))},{}],169:[function(t,e,r){!function(){var t={version:"3.5.17"},r=[].slice,n=function(t){return r.call(t)},i=this.document;function a(t){return t&&(t.ownerDocument||t.document||t).documentElement}function o(t){return t&&(t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView)}if(i)try{n(i.documentElement.childNodes)[0].nodeType}catch(t){n=function(t){for(var e=t.length,r=new Array(e);e--;)r[e]=t[e];return r}}if(Date.now||(Date.now=function(){return+new Date}),i)try{i.createElement("DIV").style.setProperty("opacity",0,"")}catch(t){var s=this.Element.prototype,l=s.setAttribute,c=s.setAttributeNS,u=this.CSSStyleDeclaration.prototype,f=u.setProperty;s.setAttribute=function(t,e){l.call(this,t,e+"")},s.setAttributeNS=function(t,e,r){c.call(this,t,e,r+"")},u.setProperty=function(t,e,r){f.call(this,t,e+"",r)}}function h(t,e){return te?1:t>=e?0:NaN}function p(t){return null===t?NaN:+t}function d(t){return!isNaN(t)}function g(t){return{left:function(e,r,n,i){for(arguments.length<3&&(n=0),arguments.length<4&&(i=e.length);n>>1;t(e[a],r)<0?n=a+1:i=a}return n},right:function(e,r,n,i){for(arguments.length<3&&(n=0),arguments.length<4&&(i=e.length);n>>1;t(e[a],r)>0?i=a:n=a+1}return n}}}t.ascending=h,t.descending=function(t,e){return et?1:e>=t?0:NaN},t.min=function(t,e){var r,n,i=-1,a=t.length;if(1===arguments.length){for(;++i=n){r=n;break}for(;++in&&(r=n)}else{for(;++i=n){r=n;break}for(;++in&&(r=n)}return r},t.max=function(t,e){var r,n,i=-1,a=t.length;if(1===arguments.length){for(;++i=n){r=n;break}for(;++ir&&(r=n)}else{for(;++i=n){r=n;break}for(;++ir&&(r=n)}return r},t.extent=function(t,e){var r,n,i,a=-1,o=t.length;if(1===arguments.length){for(;++a=n){r=i=n;break}for(;++an&&(r=n),i=n){r=i=n;break}for(;++an&&(r=n),i1)return o/(l-1)},t.deviation=function(){var e=t.variance.apply(this,arguments);return e?Math.sqrt(e):e};var m=g(h);function v(t){return t.length}t.bisectLeft=m.left,t.bisect=t.bisectRight=m.right,t.bisector=function(t){return g(1===t.length?function(e,r){return h(t(e),r)}:t)},t.shuffle=function(t,e,r){(a=arguments.length)<3&&(r=t.length,a<2&&(e=0));for(var n,i,a=r-e;a;)i=Math.random()*a--|0,n=t[a+e],t[a+e]=t[i+e],t[i+e]=n;return t},t.permute=function(t,e){for(var r=e.length,n=new Array(r);r--;)n[r]=t[e[r]];return n},t.pairs=function(t){for(var e=0,r=t.length-1,n=t[0],i=new Array(r<0?0:r);e=0;)for(e=(n=t[i]).length;--e>=0;)r[--o]=n[e];return r};var y=Math.abs;function x(t){for(var e=1;t*e%1;)e*=10;return e}function b(t,e){for(var r in e)Object.defineProperty(t.prototype,r,{value:e[r],enumerable:!1})}function _(){this._=Object.create(null)}t.range=function(t,e,r){if(arguments.length<3&&(r=1,arguments.length<2&&(e=t,t=0)),(e-t)/r==1/0)throw new Error("infinite range");var n,i=[],a=x(y(r)),o=-1;if(t*=a,e*=a,(r*=a)<0)for(;(n=t+r*++o)>e;)i.push(n/a);else for(;(n=t+r*++o)=i.length)return r?r.call(n,a):e?a.sort(e):a;for(var l,c,u,f,h=-1,p=a.length,d=i[s++],g=new _;++h=i.length)return e;var n=[],o=a[r++];return e.forEach((function(e,i){n.push({key:e,values:t(i,r)})})),o?n.sort((function(t,e){return o(t.key,e.key)})):n}(o(t.map,e,0),0)},n.key=function(t){return i.push(t),n},n.sortKeys=function(t){return a[i.length-1]=t,n},n.sortValues=function(t){return e=t,n},n.rollup=function(t){return r=t,n},n},t.set=function(t){var e=new C;if(t)for(var r=0,n=t.length;r=0&&(n=t.slice(r+1),t=t.slice(0,r)),t)return arguments.length<2?this[t].on(n):this[t].on(n,e);if(2===arguments.length){if(null==e)for(t in this)this.hasOwnProperty(t)&&this[t].on(n,null);return this}},t.event=null,t.requote=function(t){return t.replace(j,"\\$&")};var j=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,U={}.__proto__?function(t,e){t.__proto__=e}:function(t,e){for(var r in e)t[r]=e[r]};function V(t){return U(t,Y),t}var q=function(t,e){return e.querySelector(t)},H=function(t,e){return e.querySelectorAll(t)},G=function(t,e){var r=t.matches||t[P(t,"matchesSelector")];return(G=function(t,e){return r.call(t,e)})(t,e)};"function"==typeof Sizzle&&(q=function(t,e){return Sizzle(t,e)[0]||null},H=Sizzle,G=Sizzle.matchesSelector),t.selection=function(){return t.select(i.documentElement)};var Y=t.selection.prototype=[];function W(t){return"function"==typeof t?t:function(){return q(t,this)}}function X(t){return"function"==typeof t?t:function(){return H(t,this)}}Y.select=function(t){var e,r,n,i,a=[];t=W(t);for(var o=-1,s=this.length;++o=0&&"xmlns"!==(r=t.slice(0,e))&&(t=t.slice(e+1)),J.hasOwnProperty(r)?{space:J[r],local:t}:t}},Y.attr=function(e,r){if(arguments.length<2){if("string"==typeof e){var n=this.node();return(e=t.ns.qualify(e)).local?n.getAttributeNS(e.space,e.local):n.getAttribute(e)}for(r in e)this.each(K(r,e[r]));return this}return this.each(K(e,r))},Y.classed=function(t,e){if(arguments.length<2){if("string"==typeof t){var r=this.node(),n=(t=tt(t)).length,i=-1;if(e=r.classList){for(;++i=0;)(r=n[i])&&(a&&a!==r.nextSibling&&a.parentNode.insertBefore(r,a),a=r);return this},Y.sort=function(t){t=ct.apply(this,arguments);for(var e=-1,r=this.length;++e=e&&(e=i+1);!(o=s[e])&&++e0&&(e=e.slice(0,o));var l=gt.get(e);function c(){var t=this[a];t&&(this.removeEventListener(e,t,t.$),delete this[a])}return l&&(e=l,s=vt),o?r?function(){var t=s(r,n(arguments));c.call(this),this.addEventListener(e,this[a]=t,t.$=i),t._=r}:c:r?O:function(){var r,n=new RegExp("^__on([^.]+)"+t.requote(e)+"$");for(var i in this)if(r=i.match(n)){var a=this[i];this.removeEventListener(r[1],a,a.$),delete this[i]}}}t.selection.enter=ft,t.selection.enter.prototype=ht,ht.append=Y.append,ht.empty=Y.empty,ht.node=Y.node,ht.call=Y.call,ht.size=Y.size,ht.select=function(t){for(var e,r,n,i,a,o=[],s=-1,l=this.length;++s0?1:t<0?-1:0}function zt(t,e,r){return(e[0]-t[0])*(r[1]-t[1])-(e[1]-t[1])*(r[0]-t[0])}function Ot(t){return t>1?0:t<-1?At:Math.acos(t)}function Dt(t){return t>1?Ct:t<-1?-Ct:Math.asin(t)}function Rt(t){return((t=Math.exp(t))+1/t)/2}function Ft(t){return(t=Math.sin(t/2))*t}var Bt=Math.SQRT2;t.interpolateZoom=function(t,e){var r,n,i=t[0],a=t[1],o=t[2],s=e[0],l=e[1],c=e[2],u=s-i,f=l-a,h=u*u+f*f;if(h0&&(e=e.transition().duration(g)),e.call(w.event)}function S(){c&&c.domain(l.range().map((function(t){return(t-h.x)/h.k})).map(l.invert)),f&&f.domain(u.range().map((function(t){return(t-h.y)/h.k})).map(u.invert))}function E(t){m++||t({type:"zoomstart"})}function C(t){S(),t({type:"zoom",scale:h.k,translate:[h.x,h.y]})}function L(t){--m||(t({type:"zoomend"}),r=null)}function I(){var e=this,r=_.of(e,arguments),n=0,i=t.select(o(e)).on(y,l).on(x,c),a=T(t.mouse(e)),s=bt(e);function l(){n=1,M(t.mouse(e),a),C(r)}function c(){i.on(y,null).on(x,null),s(n),L(r)}vs.call(e),E(r)}function P(){var e,r=this,n=_.of(r,arguments),i={},a=0,o=".zoom-"+t.event.changedTouches[0].identifier,l="touchmove"+o,c="touchend"+o,u=[],f=t.select(r),p=bt(r);function d(){var n=t.touches(r);return e=h.k,n.forEach((function(t){t.identifier in i&&(i[t.identifier]=T(t))})),n}function g(){var e=t.event.target;t.select(e).on(l,m).on(c,y),u.push(e);for(var n=t.event.changedTouches,o=0,f=n.length;o1){v=p[0];var x=p[1],b=v[0]-x[0],_=v[1]-x[1];a=b*b+_*_}}function m(){var o,l,c,u,f=t.touches(r);vs.call(r);for(var h=0,p=f.length;h360?t-=360:t<0&&(t+=360),t<60?n+(i-n)*t/60:t<180?i:t<240?n+(i-n)*(240-t)/60:n}(t))}return t=isNaN(t)?0:(t%=360)<0?t+360:t,e=isNaN(e)||e<0?0:e>1?1:e,n=2*(r=r<0?0:r>1?1:r)-(i=r<=.5?r*(1+e):r+e-r*e),new ne(a(t+120),a(t),a(t-120))}function Yt(e,r,n){return this instanceof Yt?(this.h=+e,this.c=+r,void(this.l=+n)):arguments.length<2?e instanceof Yt?new Yt(e.h,e.c,e.l):$t(e instanceof Zt?e.l:(e=ue((e=t.rgb(e)).r,e.g,e.b)).l,e.a,e.b):new Yt(e,r,n)}Ht.brighter=function(t){return t=Math.pow(.7,arguments.length?t:1),new qt(this.h,this.s,this.l/t)},Ht.darker=function(t){return t=Math.pow(.7,arguments.length?t:1),new qt(this.h,this.s,t*this.l)},Ht.rgb=function(){return Gt(this.h,this.s,this.l)},t.hcl=Yt;var Wt=Yt.prototype=new Vt;function Xt(t,e,r){return isNaN(t)&&(t=0),isNaN(e)&&(e=0),new Zt(r,Math.cos(t*=Lt)*e,Math.sin(t)*e)}function Zt(t,e,r){return this instanceof Zt?(this.l=+t,this.a=+e,void(this.b=+r)):arguments.length<2?t instanceof Zt?new Zt(t.l,t.a,t.b):t instanceof Yt?Xt(t.h,t.c,t.l):ue((t=ne(t)).r,t.g,t.b):new Zt(t,e,r)}Wt.brighter=function(t){return new Yt(this.h,this.c,Math.min(100,this.l+Jt*(arguments.length?t:1)))},Wt.darker=function(t){return new Yt(this.h,this.c,Math.max(0,this.l-Jt*(arguments.length?t:1)))},Wt.rgb=function(){return Xt(this.h,this.c,this.l).rgb()},t.lab=Zt;var Jt=18,Kt=Zt.prototype=new Vt;function Qt(t,e,r){var n=(t+16)/116,i=n+e/500,a=n-r/200;return new ne(re(3.2404542*(i=.95047*te(i))-1.5371385*(n=1*te(n))-.4985314*(a=1.08883*te(a))),re(-.969266*i+1.8760108*n+.041556*a),re(.0556434*i-.2040259*n+1.0572252*a))}function $t(t,e,r){return t>0?new Yt(Math.atan2(r,e)*It,Math.sqrt(e*e+r*r),t):new Yt(NaN,NaN,t)}function te(t){return t>.206893034?t*t*t:(t-4/29)/7.787037}function ee(t){return t>.008856?Math.pow(t,1/3):7.787037*t+4/29}function re(t){return Math.round(255*(t<=.00304?12.92*t:1.055*Math.pow(t,1/2.4)-.055))}function ne(t,e,r){return this instanceof ne?(this.r=~~t,this.g=~~e,void(this.b=~~r)):arguments.length<2?t instanceof ne?new ne(t.r,t.g,t.b):le(""+t,ne,Gt):new ne(t,e,r)}function ie(t){return new ne(t>>16,t>>8&255,255&t)}function ae(t){return ie(t)+""}Kt.brighter=function(t){return new Zt(Math.min(100,this.l+Jt*(arguments.length?t:1)),this.a,this.b)},Kt.darker=function(t){return new Zt(Math.max(0,this.l-Jt*(arguments.length?t:1)),this.a,this.b)},Kt.rgb=function(){return Qt(this.l,this.a,this.b)},t.rgb=ne;var oe=ne.prototype=new Vt;function se(t){return t<16?"0"+Math.max(0,t).toString(16):Math.min(255,t).toString(16)}function le(t,e,r){var n,i,a,o=0,s=0,l=0;if(n=/([a-z]+)\((.*)\)/.exec(t=t.toLowerCase()))switch(i=n[2].split(","),n[1]){case"hsl":return r(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return e(he(i[0]),he(i[1]),he(i[2]))}return(a=pe.get(t))?e(a.r,a.g,a.b):(null==t||"#"!==t.charAt(0)||isNaN(a=parseInt(t.slice(1),16))||(4===t.length?(o=(3840&a)>>4,o|=o>>4,s=240&a,s|=s>>4,l=15&a,l|=l<<4):7===t.length&&(o=(16711680&a)>>16,s=(65280&a)>>8,l=255&a)),e(o,s,l))}function ce(t,e,r){var n,i,a=Math.min(t/=255,e/=255,r/=255),o=Math.max(t,e,r),s=o-a,l=(o+a)/2;return s?(i=l<.5?s/(o+a):s/(2-o-a),n=t==o?(e-r)/s+(e0&&l<1?0:n),new qt(n,i,l)}function ue(t,e,r){var n=ee((.4124564*(t=fe(t))+.3575761*(e=fe(e))+.1804375*(r=fe(r)))/.95047),i=ee((.2126729*t+.7151522*e+.072175*r)/1);return Zt(116*i-16,500*(n-i),200*(i-ee((.0193339*t+.119192*e+.9503041*r)/1.08883)))}function fe(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function he(t){var e=parseFloat(t);return"%"===t.charAt(t.length-1)?Math.round(2.55*e):e}oe.brighter=function(t){t=Math.pow(.7,arguments.length?t:1);var e=this.r,r=this.g,n=this.b,i=30;return e||r||n?(e&&e=200&&e<300||304===e){try{t=i.call(o,c)}catch(t){return void s.error.call(o,t)}s.load.call(o,t)}else s.error.call(o,c)}return this.XDomainRequest&&!("withCredentials"in c)&&/^(http(s)?:)?\/\//.test(e)&&(c=new XDomainRequest),"onload"in c?c.onload=c.onerror=f:c.onreadystatechange=function(){c.readyState>3&&f()},c.onprogress=function(e){var r=t.event;t.event=e;try{s.progress.call(o,c)}finally{t.event=r}},o.header=function(t,e){return t=(t+"").toLowerCase(),arguments.length<2?l[t]:(null==e?delete l[t]:l[t]=e+"",o)},o.mimeType=function(t){return arguments.length?(r=null==t?null:t+"",o):r},o.responseType=function(t){return arguments.length?(u=t,o):u},o.response=function(t){return i=t,o},["get","post"].forEach((function(t){o[t]=function(){return o.send.apply(o,[t].concat(n(arguments)))}})),o.send=function(t,n,i){if(2===arguments.length&&"function"==typeof n&&(i=n,n=null),c.open(t,e,!0),null==r||"accept"in l||(l.accept=r+",*/*"),c.setRequestHeader)for(var a in l)c.setRequestHeader(a,l[a]);return null!=r&&c.overrideMimeType&&c.overrideMimeType(r),null!=u&&(c.responseType=u),null!=i&&o.on("error",i).on("load",(function(t){i(null,t)})),s.beforesend.call(o,c),c.send(null==n?null:n),o},o.abort=function(){return c.abort(),o},t.rebind(o,s,"on"),null==a?o:o.get(function(t){return 1===t.length?function(e,r){t(null==e?r:null)}:t}(a))}pe.forEach((function(t,e){pe.set(t,ie(e))})),t.functor=de,t.xhr=ge(L),t.dsv=function(t,e){var r=new RegExp('["'+t+"\n]"),n=t.charCodeAt(0);function i(t,r,n){arguments.length<3&&(n=r,r=null);var i=me(t,e,null==r?a:o(r),n);return i.row=function(t){return arguments.length?i.response(null==(r=t)?a:o(t)):r},i}function a(t){return i.parse(t.responseText)}function o(t){return function(e){return i.parse(e.responseText,t)}}function s(e){return e.map(l).join(t)}function l(t){return r.test(t)?'"'+t.replace(/\"/g,'""')+'"':t}return i.parse=function(t,e){var r;return i.parseRows(t,(function(t,n){if(r)return r(t,n-1);var i=new Function("d","return {"+t.map((function(t,e){return JSON.stringify(t)+": d["+e+"]"})).join(",")+"}");r=e?function(t,r){return e(i(t),r)}:i}))},i.parseRows=function(t,e){var r,i,a={},o={},s=[],l=t.length,c=0,u=0;function f(){if(c>=l)return o;if(i)return i=!1,a;var e=c;if(34===t.charCodeAt(e)){for(var r=e;r++24?(isFinite(e)&&(clearTimeout(be),be=setTimeout(Te,e)),xe=0):(xe=1,_e(Te))}function ke(){for(var t=Date.now(),e=ve;e;)t>=e.t&&e.c(t-e.t)&&(e.c=null),e=e.n;return t}function Me(){for(var t,e=ve,r=1/0;e;)e.c?(e.t8?function(t){return t/r}:function(t){return t*r},symbol:t}}));function Ee(e){var r=e.decimal,n=e.thousands,i=e.grouping,a=e.currency,o=i&&n?function(t,e){for(var r=t.length,a=[],o=0,s=i[0],l=0;r>0&&s>0&&(l+s+1>e&&(s=Math.max(1,e-l)),a.push(t.substring(r-=s,r+s)),!((l+=s+1)>e));)s=i[o=(o+1)%i.length];return a.reverse().join(n)}:L;return function(e){var n=Ce.exec(e),i=n[1]||" ",s=n[2]||">",l=n[3]||"-",c=n[4]||"",u=n[5],f=+n[6],h=n[7],p=n[8],d=n[9],g=1,m="",v="",y=!1,x=!0;switch(p&&(p=+p.substring(1)),(u||"0"===i&&"="===s)&&(u=i="0",s="="),d){case"n":h=!0,d="g";break;case"%":g=100,v="%",d="f";break;case"p":g=100,v="%",d="r";break;case"b":case"o":case"x":case"X":"#"===c&&(m="0"+d.toLowerCase());case"c":x=!1;case"d":y=!0,p=0;break;case"s":g=-1,d="r"}"$"===c&&(m=a[0],v=a[1]),"r"!=d||p||(d="g"),null!=p&&("g"==d?p=Math.max(1,Math.min(21,p)):"e"!=d&&"f"!=d||(p=Math.max(0,Math.min(20,p)))),d=Le.get(d)||Ie;var b=u&&h;return function(e){var n=v;if(y&&e%1)return"";var a=e<0||0===e&&1/e<0?(e=-e,"-"):"-"===l?"":l;if(g<0){var c=t.formatPrefix(e,p);e=c.scale(e),n=c.symbol+v}else e*=g;var _,w,T=(e=d(e,p)).lastIndexOf(".");if(T<0){var k=x?e.lastIndexOf("e"):-1;k<0?(_=e,w=""):(_=e.substring(0,k),w=e.substring(k))}else _=e.substring(0,T),w=r+e.substring(T+1);!u&&h&&(_=o(_,1/0));var M=m.length+_.length+w.length+(b?0:a.length),A=M"===s?A+a+e:"^"===s?A.substring(0,M>>=1)+a+e+A.substring(M):a+(b?e:A+e))+n}}}t.formatPrefix=function(e,r){var n=0;return(e=+e)&&(e<0&&(e*=-1),r&&(e=t.round(e,Ae(e,r))),n=1+Math.floor(1e-12+Math.log(e)/Math.LN10),n=Math.max(-24,Math.min(24,3*Math.floor((n-1)/3)))),Se[8+n/3]};var Ce=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,Le=t.map({b:function(t){return t.toString(2)},c:function(t){return String.fromCharCode(t)},o:function(t){return t.toString(8)},x:function(t){return t.toString(16)},X:function(t){return t.toString(16).toUpperCase()},g:function(t,e){return t.toPrecision(e)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},r:function(e,r){return(e=t.round(e,Ae(e,r))).toFixed(Math.max(0,Math.min(20,Ae(e*(1+1e-15),r))))}});function Ie(t){return t+""}var Pe=t.time={},ze=Date;function Oe(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}Oe.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){De.setUTCDate.apply(this._,arguments)},setDay:function(){De.setUTCDay.apply(this._,arguments)},setFullYear:function(){De.setUTCFullYear.apply(this._,arguments)},setHours:function(){De.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){De.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){De.setUTCMinutes.apply(this._,arguments)},setMonth:function(){De.setUTCMonth.apply(this._,arguments)},setSeconds:function(){De.setUTCSeconds.apply(this._,arguments)},setTime:function(){De.setTime.apply(this._,arguments)}};var De=Date.prototype;function Re(t,e,r){function n(e){var r=t(e),n=a(r,1);return e-r1)for(;o=c)return-1;if(37===(i=e.charCodeAt(s++))){if(o=e.charAt(s++),!(a=w[o in Ne?e.charAt(s++):o])||(n=a(t,r,n))<0)return-1}else if(i!=r.charCodeAt(n++))return-1}return n}u.utc=function(t){var e=u(t);function r(t){try{var r=new(ze=Oe);return r._=t,e(r)}finally{ze=Date}}return r.parse=function(t){try{ze=Oe;var r=e.parse(t);return r&&r._}finally{ze=Date}},r.toString=e.toString,r},u.multi=u.utc.multi=or;var h=t.map(),p=qe(o),d=He(o),g=qe(s),m=He(s),v=qe(l),y=He(l),x=qe(c),b=He(c);a.forEach((function(t,e){h.set(t.toLowerCase(),e)}));var _={a:function(t){return s[t.getDay()]},A:function(t){return o[t.getDay()]},b:function(t){return c[t.getMonth()]},B:function(t){return l[t.getMonth()]},c:u(r),d:function(t,e){return Ve(t.getDate(),e,2)},e:function(t,e){return Ve(t.getDate(),e,2)},H:function(t,e){return Ve(t.getHours(),e,2)},I:function(t,e){return Ve(t.getHours()%12||12,e,2)},j:function(t,e){return Ve(1+Pe.dayOfYear(t),e,3)},L:function(t,e){return Ve(t.getMilliseconds(),e,3)},m:function(t,e){return Ve(t.getMonth()+1,e,2)},M:function(t,e){return Ve(t.getMinutes(),e,2)},p:function(t){return a[+(t.getHours()>=12)]},S:function(t,e){return Ve(t.getSeconds(),e,2)},U:function(t,e){return Ve(Pe.sundayOfYear(t),e,2)},w:function(t){return t.getDay()},W:function(t,e){return Ve(Pe.mondayOfYear(t),e,2)},x:u(n),X:u(i),y:function(t,e){return Ve(t.getFullYear()%100,e,2)},Y:function(t,e){return Ve(t.getFullYear()%1e4,e,4)},Z:ir,"%":function(){return"%"}},w={a:function(t,e,r){g.lastIndex=0;var n=g.exec(e.slice(r));return n?(t.w=m.get(n[0].toLowerCase()),r+n[0].length):-1},A:function(t,e,r){p.lastIndex=0;var n=p.exec(e.slice(r));return n?(t.w=d.get(n[0].toLowerCase()),r+n[0].length):-1},b:function(t,e,r){x.lastIndex=0;var n=x.exec(e.slice(r));return n?(t.m=b.get(n[0].toLowerCase()),r+n[0].length):-1},B:function(t,e,r){v.lastIndex=0;var n=v.exec(e.slice(r));return n?(t.m=y.get(n[0].toLowerCase()),r+n[0].length):-1},c:function(t,e,r){return f(t,_.c.toString(),e,r)},d:Qe,e:Qe,H:tr,I:tr,j:$e,L:nr,m:Ke,M:er,p:function(t,e,r){var n=h.get(e.slice(r,r+=2).toLowerCase());return null==n?-1:(t.p=n,r)},S:rr,U:Ye,w:Ge,W:We,x:function(t,e,r){return f(t,_.x.toString(),e,r)},X:function(t,e,r){return f(t,_.X.toString(),e,r)},y:Ze,Y:Xe,Z:Je,"%":ar};return u}Pe.year=Re((function(t){return(t=Pe.day(t)).setMonth(0,1),t}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t){return t.getFullYear()})),Pe.years=Pe.year.range,Pe.years.utc=Pe.year.utc.range,Pe.day=Re((function(t){var e=new ze(2e3,0);return e.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),e}),(function(t,e){t.setDate(t.getDate()+e)}),(function(t){return t.getDate()-1})),Pe.days=Pe.day.range,Pe.days.utc=Pe.day.utc.range,Pe.dayOfYear=function(t){var e=Pe.year(t);return Math.floor((t-e-6e4*(t.getTimezoneOffset()-e.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach((function(t,e){e=7-e;var r=Pe[t]=Re((function(t){return(t=Pe.day(t)).setDate(t.getDate()-(t.getDay()+e)%7),t}),(function(t,e){t.setDate(t.getDate()+7*Math.floor(e))}),(function(t){var r=Pe.year(t).getDay();return Math.floor((Pe.dayOfYear(t)+(r+e)%7)/7)-(r!==e)}));Pe[t+"s"]=r.range,Pe[t+"s"].utc=r.utc.range,Pe[t+"OfYear"]=function(t){var r=Pe.year(t).getDay();return Math.floor((Pe.dayOfYear(t)+(r+e)%7)/7)}})),Pe.week=Pe.sunday,Pe.weeks=Pe.sunday.range,Pe.weeks.utc=Pe.sunday.utc.range,Pe.weekOfYear=Pe.sundayOfYear;var Ne={"-":"",_:" ",0:"0"},je=/^\s*\d+/,Ue=/^%/;function Ve(t,e,r){var n=t<0?"-":"",i=(n?-t:t)+"",a=i.length;return n+(a68?1900:2e3),r+i[0].length):-1}function Je(t,e,r){return/^[+-]\d{4}$/.test(e=e.slice(r,r+5))?(t.Z=-e,r+5):-1}function Ke(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function Qe(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function $e(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+3));return n?(t.j=+n[0],r+n[0].length):-1}function tr(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function er(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function rr(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function nr(t,e,r){je.lastIndex=0;var n=je.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function ir(t){var e=t.getTimezoneOffset(),r=e>0?"-":"+",n=y(e)/60|0,i=y(e)%60;return r+Ve(n,"0",2)+Ve(i,"0",2)}function ar(t,e,r){Ue.lastIndex=0;var n=Ue.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function or(t){for(var e=t.length,r=-1;++r=0?1:-1,s=o*a,l=Math.cos(e),c=Math.sin(e),u=i*c,f=n*l+u*Math.cos(s),h=u*o*Math.sin(s);Er.add(Math.atan2(h,f)),r=t,n=l,i=c}Cr.point=function(o,s){Cr.point=a,r=(t=o)*Lt,n=Math.cos(s=(e=s)*Lt/2+At/4),i=Math.sin(s)},Cr.lineEnd=function(){a(t,e)}}function Ir(t){var e=t[0],r=t[1],n=Math.cos(r);return[n*Math.cos(e),n*Math.sin(e),Math.sin(r)]}function Pr(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function zr(t,e){return[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]]}function Or(t,e){t[0]+=e[0],t[1]+=e[1],t[2]+=e[2]}function Dr(t,e){return[t[0]*e,t[1]*e,t[2]*e]}function Rr(t){var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=e,t[1]/=e,t[2]/=e}function Fr(t){return[Math.atan2(t[1],t[0]),Dt(t[2])]}function Br(t,e){return y(t[0]-e[0])kt?i=90:c<-kt&&(r=-90),f[0]=e,f[1]=n}};function p(t,a){u.push(f=[e=t,n=t]),ai&&(i=a)}function d(t,o){var s=Ir([t*Lt,o*Lt]);if(l){var c=zr(l,s),u=zr([c[1],-c[0],0],c);Rr(u),u=Fr(u);var f=t-a,h=f>0?1:-1,d=u[0]*It*h,g=y(f)>180;if(g^(h*ai&&(i=m);else if(g^(h*a<(d=(d+360)%360-180)&&di&&(i=o);g?t_(e,n)&&(n=t):_(t,n)>_(e,n)&&(e=t):n>=e?(tn&&(n=t)):t>a?_(e,t)>_(e,n)&&(n=t):_(t,n)>_(e,n)&&(e=t)}else p(t,o);l=s,a=t}function g(){h.point=d}function m(){f[0]=e,f[1]=n,h.point=p,l=null}function v(t,e){if(l){var r=t-a;c+=y(r)>180?r+(r>0?360:-360):r}else o=t,s=e;Cr.point(t,e),d(t,e)}function x(){Cr.lineStart()}function b(){v(o,s),Cr.lineEnd(),y(c)>kt&&(e=-(n=180)),f[0]=e,f[1]=n,l=null}function _(t,e){return(e-=t)<0?e+360:e}function w(t,e){return t[0]-e[0]}function T(t,e){return e[0]<=e[1]?e[0]<=t&&t<=e[1]:t_(g[0],g[1])&&(g[1]=p[1]),_(p[0],g[1])>_(g[0],g[1])&&(g[0]=p[0])):s.push(g=p);for(var l,c,p,d=-1/0,g=(o=0,s[c=s.length-1]);o<=c;g=p,++o)p=s[o],(l=_(g[1],p[0]))>d&&(d=l,e=p[0],n=g[1])}return u=f=null,e===1/0||r===1/0?[[NaN,NaN],[NaN,NaN]]:[[e,r],[n,i]]}}(),t.geo.centroid=function(e){vr=yr=xr=br=_r=wr=Tr=kr=Mr=Ar=Sr=0,t.geo.stream(e,Nr);var r=Mr,n=Ar,i=Sr,a=r*r+n*n+i*i;return a=0;--s)i.point((f=u[s])[0],f[1]);else n(p.x,p.p.x,-1,i);p=p.p}u=(p=p.o).z,d=!d}while(!p.v);i.lineEnd()}}}function Xr(t){if(e=t.length){for(var e,r,n=0,i=t[0];++n=0?1:-1,T=w*_,k=T>At,M=d*x;if(Er.add(Math.atan2(M*w*Math.sin(T),g*b+M*Math.cos(T))),a+=k?_+w*St:_,k^h>=r^v>=r){var A=zr(Ir(f),Ir(t));Rr(A);var S=zr(i,A);Rr(S);var E=(k^_>=0?-1:1)*Dt(S[2]);(n>E||n===E&&(A[0]||A[1]))&&(o+=k^_>=0?1:-1)}if(!m++)break;h=v,d=x,g=b,f=t}}return(a<-kt||a0){for(x||(o.polygonStart(),x=!0),o.lineStart();++a1&&2&e&&r.push(r.pop().concat(r.shift())),s.push(r.filter(Kr))}return u}}function Kr(t){return t.length>1}function Qr(){var t,e=[];return{lineStart:function(){e.push(t=[])},point:function(e,r){t.push([e,r])},lineEnd:O,buffer:function(){var r=e;return e=[],t=null,r},rejoin:function(){e.length>1&&e.push(e.pop().concat(e.shift()))}}}function $r(t,e){return((t=t.x)[0]<0?t[1]-Ct-kt:Ct-t[1])-((e=e.x)[0]<0?e[1]-Ct-kt:Ct-e[1])}var tn=Jr(Yr,(function(t){var e,r=NaN,n=NaN,i=NaN;return{lineStart:function(){t.lineStart(),e=1},point:function(a,o){var s=a>0?At:-At,l=y(a-r);y(l-At)0?Ct:-Ct),t.point(i,n),t.lineEnd(),t.lineStart(),t.point(s,n),t.point(a,n),e=0):i!==s&&l>=At&&(y(r-i)kt?Math.atan((Math.sin(e)*(a=Math.cos(n))*Math.sin(r)-Math.sin(n)*(i=Math.cos(e))*Math.sin(t))/(i*a*o)):(e+n)/2}(r,n,a,o),t.point(i,n),t.lineEnd(),t.lineStart(),t.point(s,n),e=0),t.point(r=a,n=o),i=s},lineEnd:function(){t.lineEnd(),r=n=NaN},clean:function(){return 2-e}}}),(function(t,e,r,n){var i;if(null==t)i=r*Ct,n.point(-At,i),n.point(0,i),n.point(At,i),n.point(At,0),n.point(At,-i),n.point(0,-i),n.point(-At,-i),n.point(-At,0),n.point(-At,i);else if(y(t[0]-e[0])>kt){var a=t[0]0,n=y(e)>kt;return Jr(i,(function(t){var e,s,l,c,u;return{lineStart:function(){c=l=!1,u=1},point:function(f,h){var p,d=[f,h],g=i(f,h),m=r?g?0:o(f,h):g?o(f+(f<0?At:-At),h):0;if(!e&&(c=l=g)&&t.lineStart(),g!==l&&(p=a(e,d),(Br(e,p)||Br(d,p))&&(d[0]+=kt,d[1]+=kt,g=i(d[0],d[1]))),g!==l)u=0,g?(t.lineStart(),p=a(d,e),t.point(p[0],p[1])):(p=a(e,d),t.point(p[0],p[1]),t.lineEnd()),e=p;else if(n&&e&&r^g){var v;m&s||!(v=a(d,e,!0))||(u=0,r?(t.lineStart(),t.point(v[0][0],v[0][1]),t.point(v[1][0],v[1][1]),t.lineEnd()):(t.point(v[1][0],v[1][1]),t.lineEnd(),t.lineStart(),t.point(v[0][0],v[0][1])))}!g||e&&Br(e,d)||t.point(d[0],d[1]),e=d,l=g,s=m},lineEnd:function(){l&&t.lineEnd(),e=null},clean:function(){return u|(c&&l)<<1}}}),Bn(t,6*Lt),r?[0,-t]:[-At,t-At]);function i(t,r){return Math.cos(t)*Math.cos(r)>e}function a(t,r,n){var i=[1,0,0],a=zr(Ir(t),Ir(r)),o=Pr(a,a),s=a[0],l=o-s*s;if(!l)return!n&&t;var c=e*o/l,u=-e*s/l,f=zr(i,a),h=Dr(i,c);Or(h,Dr(a,u));var p=f,d=Pr(h,p),g=Pr(p,p),m=d*d-g*(Pr(h,h)-1);if(!(m<0)){var v=Math.sqrt(m),x=Dr(p,(-d-v)/g);if(Or(x,h),x=Fr(x),!n)return x;var b,_=t[0],w=r[0],T=t[1],k=r[1];w<_&&(b=_,_=w,w=b);var M=w-_,A=y(M-At)0^x[1]<(y(x[0]-_)At^(_<=x[0]&&x[0]<=w)){var S=Dr(p,(-d+v)/g);return Or(S,h),[x,Fr(S)]}}}function o(e,n){var i=r?t:At-t,a=0;return e<-i?a|=1:e>i&&(a|=2),n<-i?a|=4:n>i&&(a|=8),a}}function rn(t,e,r,n){return function(i){var a,o=i.a,s=i.b,l=o.x,c=o.y,u=0,f=1,h=s.x-l,p=s.y-c;if(a=t-l,h||!(a>0)){if(a/=h,h<0){if(a0){if(a>f)return;a>u&&(u=a)}if(a=r-l,h||!(a<0)){if(a/=h,h<0){if(a>f)return;a>u&&(u=a)}else if(h>0){if(a0)){if(a/=p,p<0){if(a0){if(a>f)return;a>u&&(u=a)}if(a=n-c,p||!(a<0)){if(a/=p,p<0){if(a>f)return;a>u&&(u=a)}else if(p>0){if(a0&&(i.a={x:l+u*h,y:c+u*p}),f<1&&(i.b={x:l+f*h,y:c+f*p}),i}}}}}}function nn(e,r,n,i){return function(l){var c,u,f,h,p,d,g,m,v,y,x,b=l,_=Qr(),w=rn(e,r,n,i),T={point:A,lineStart:function(){T.point=S,u&&u.push(f=[]);y=!0,v=!1,g=m=NaN},lineEnd:function(){c&&(S(h,p),d&&v&&_.rejoin(),c.push(_.buffer()));T.point=A,v&&l.lineEnd()},polygonStart:function(){l=_,c=[],u=[],x=!0},polygonEnd:function(){l=b,c=t.merge(c);var r=function(t){for(var e=0,r=u.length,n=t[1],i=0;in&&zt(c,a,t)>0&&++e:a[1]<=n&&zt(c,a,t)<0&&--e,c=a;return 0!==e}([e,i]),n=x&&r,a=c.length;(n||a)&&(l.polygonStart(),n&&(l.lineStart(),k(null,null,1,l),l.lineEnd()),a&&Wr(c,o,r,k,l),l.polygonEnd()),c=u=f=null}};function k(t,o,l,c){var u=0,f=0;if(null==t||(u=a(t,l))!==(f=a(o,l))||s(t,o)<0^l>0)do{c.point(0===u||3===u?e:n,u>1?i:r)}while((u=(u+l+4)%4)!==f);else c.point(o[0],o[1])}function M(t,a){return e<=t&&t<=n&&r<=a&&a<=i}function A(t,e){M(t,e)&&l.point(t,e)}function S(t,e){var r=M(t=Math.max(-1e9,Math.min(1e9,t)),e=Math.max(-1e9,Math.min(1e9,e)));if(u&&f.push([t,e]),y)h=t,p=e,d=r,y=!1,r&&(l.lineStart(),l.point(t,e));else if(r&&v)l.point(t,e);else{var n={a:{x:g,y:m},b:{x:t,y:e}};w(n)?(v||(l.lineStart(),l.point(n.a.x,n.a.y)),l.point(n.b.x,n.b.y),r||l.lineEnd(),x=!1):r&&(l.lineStart(),l.point(t,e),x=!1)}g=t,m=e,v=r}return T};function a(t,i){return y(t[0]-e)0?0:3:y(t[0]-n)0?2:1:y(t[1]-r)0?1:0:i>0?3:2}function o(t,e){return s(t.x,e.x)}function s(t,e){var r=a(t,1),n=a(e,1);return r!==n?r-n:0===r?e[1]-t[1]:1===r?t[0]-e[0]:2===r?t[1]-e[1]:e[0]-t[0]}}function an(t){var e=0,r=At/3,n=Ln(t),i=n(e,r);return i.parallels=function(t){return arguments.length?n(e=t[0]*At/180,r=t[1]*At/180):[e/At*180,r/At*180]},i}function on(t,e){var r=Math.sin(t),n=(r+Math.sin(e))/2,i=1+r*(2*n-r),a=Math.sqrt(i)/n;function o(t,e){var r=Math.sqrt(i-2*n*Math.sin(e))/n;return[r*Math.sin(t*=n),a-r*Math.cos(t)]}return o.invert=function(t,e){var r=a-e;return[Math.atan2(t,r)/n,Dt((i-(t*t+r*r)*n*n)/(2*n))]},o}t.geo.clipExtent=function(){var t,e,r,n,i,a,o={stream:function(t){return i&&(i.valid=!1),(i=a(t)).valid=!0,i},extent:function(s){return arguments.length?(a=nn(t=+s[0][0],e=+s[0][1],r=+s[1][0],n=+s[1][1]),i&&(i.valid=!1,i=null),o):[[t,e],[r,n]]}};return o.extent([[0,0],[960,500]])},(t.geo.conicEqualArea=function(){return an(on)}).raw=on,t.geo.albers=function(){return t.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},t.geo.albersUsa=function(){var e,r,n,i,a=t.geo.albers(),o=t.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),s=t.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(t,r){e=[t,r]}};function c(t){var a=t[0],o=t[1];return e=null,r(a,o),e||(n(a,o),e)||i(a,o),e}return c.invert=function(t){var e=a.scale(),r=a.translate(),n=(t[0]-r[0])/e,i=(t[1]-r[1])/e;return(i>=.12&&i<.234&&n>=-.425&&n<-.214?o:i>=.166&&i<.234&&n>=-.214&&n<-.115?s:a).invert(t)},c.stream=function(t){var e=a.stream(t),r=o.stream(t),n=s.stream(t);return{point:function(t,i){e.point(t,i),r.point(t,i),n.point(t,i)},sphere:function(){e.sphere(),r.sphere(),n.sphere()},lineStart:function(){e.lineStart(),r.lineStart(),n.lineStart()},lineEnd:function(){e.lineEnd(),r.lineEnd(),n.lineEnd()},polygonStart:function(){e.polygonStart(),r.polygonStart(),n.polygonStart()},polygonEnd:function(){e.polygonEnd(),r.polygonEnd(),n.polygonEnd()}}},c.precision=function(t){return arguments.length?(a.precision(t),o.precision(t),s.precision(t),c):a.precision()},c.scale=function(t){return arguments.length?(a.scale(t),o.scale(.35*t),s.scale(t),c.translate(a.translate())):a.scale()},c.translate=function(t){if(!arguments.length)return a.translate();var e=a.scale(),u=+t[0],f=+t[1];return r=a.translate(t).clipExtent([[u-.455*e,f-.238*e],[u+.455*e,f+.238*e]]).stream(l).point,n=o.translate([u-.307*e,f+.201*e]).clipExtent([[u-.425*e+kt,f+.12*e+kt],[u-.214*e-kt,f+.234*e-kt]]).stream(l).point,i=s.translate([u-.205*e,f+.212*e]).clipExtent([[u-.214*e+kt,f+.166*e+kt],[u-.115*e-kt,f+.234*e-kt]]).stream(l).point,c},c.scale(1070)};var sn,ln,cn,un,fn,hn,pn={point:O,lineStart:O,lineEnd:O,polygonStart:function(){ln=0,pn.lineStart=dn},polygonEnd:function(){pn.lineStart=pn.lineEnd=pn.point=O,sn+=y(ln/2)}};function dn(){var t,e,r,n;function i(t,e){ln+=n*t-r*e,r=t,n=e}pn.point=function(a,o){pn.point=i,t=r=a,e=n=o},pn.lineEnd=function(){i(t,e)}}var gn={point:function(t,e){tfn&&(fn=t);ehn&&(hn=e)},lineStart:O,lineEnd:O,polygonStart:O,polygonEnd:O};function mn(){var t=vn(4.5),e=[],r={point:n,lineStart:function(){r.point=i},lineEnd:o,polygonStart:function(){r.lineEnd=s},polygonEnd:function(){r.lineEnd=o,r.point=n},pointRadius:function(e){return t=vn(e),r},result:function(){if(e.length){var t=e.join("");return e=[],t}}};function n(r,n){e.push("M",r,",",n,t)}function i(t,n){e.push("M",t,",",n),r.point=a}function a(t,r){e.push("L",t,",",r)}function o(){r.point=n}function s(){e.push("Z")}return r}function vn(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}var yn,xn={point:bn,lineStart:_n,lineEnd:wn,polygonStart:function(){xn.lineStart=Tn},polygonEnd:function(){xn.point=bn,xn.lineStart=_n,xn.lineEnd=wn}};function bn(t,e){xr+=t,br+=e,++_r}function _n(){var t,e;function r(r,n){var i=r-t,a=n-e,o=Math.sqrt(i*i+a*a);wr+=o*(t+r)/2,Tr+=o*(e+n)/2,kr+=o,bn(t=r,e=n)}xn.point=function(n,i){xn.point=r,bn(t=n,e=i)}}function wn(){xn.point=bn}function Tn(){var t,e,r,n;function i(t,e){var i=t-r,a=e-n,o=Math.sqrt(i*i+a*a);wr+=o*(r+t)/2,Tr+=o*(n+e)/2,kr+=o,Mr+=(o=n*t-r*e)*(r+t),Ar+=o*(n+e),Sr+=3*o,bn(r=t,n=e)}xn.point=function(a,o){xn.point=i,bn(t=r=a,e=n=o)},xn.lineEnd=function(){i(t,e)}}function kn(t){var e=4.5,r={point:n,lineStart:function(){r.point=i},lineEnd:o,polygonStart:function(){r.lineEnd=s},polygonEnd:function(){r.lineEnd=o,r.point=n},pointRadius:function(t){return e=t,r},result:O};function n(r,n){t.moveTo(r+e,n),t.arc(r,n,e,0,St)}function i(e,n){t.moveTo(e,n),r.point=a}function a(e,r){t.lineTo(e,r)}function o(){r.point=n}function s(){t.closePath()}return r}function Mn(t){var e=.5,r=Math.cos(30*Lt),n=16;function i(t){return(n?o:a)(t)}function a(e){return En(e,(function(r,n){r=t(r,n),e.point(r[0],r[1])}))}function o(e){var r,i,a,o,l,c,u,f,h,p,d,g,m={point:v,lineStart:y,lineEnd:b,polygonStart:function(){e.polygonStart(),m.lineStart=_},polygonEnd:function(){e.polygonEnd(),m.lineStart=y}};function v(r,n){r=t(r,n),e.point(r[0],r[1])}function y(){f=NaN,m.point=x,e.lineStart()}function x(r,i){var a=Ir([r,i]),o=t(r,i);s(f,h,u,p,d,g,f=o[0],h=o[1],u=r,p=a[0],d=a[1],g=a[2],n,e),e.point(f,h)}function b(){m.point=v,e.lineEnd()}function _(){y(),m.point=w,m.lineEnd=T}function w(t,e){x(r=t,e),i=f,a=h,o=p,l=d,c=g,m.point=x}function T(){s(f,h,u,p,d,g,i,a,r,o,l,c,n,e),m.lineEnd=b,b()}return m}function s(n,i,a,o,l,c,u,f,h,p,d,g,m,v){var x=u-n,b=f-i,_=x*x+b*b;if(_>4*e&&m--){var w=o+p,T=l+d,k=c+g,M=Math.sqrt(w*w+T*T+k*k),A=Math.asin(k/=M),S=y(y(k)-1)e||y((x*I+b*P)/_-.5)>.3||o*p+l*d+c*g0&&16,i):Math.sqrt(e)},i}function An(t){var e=Mn((function(e,r){return t([e*It,r*It])}));return function(t){return In(e(t))}}function Sn(t){this.stream=t}function En(t,e){return{point:e,sphere:function(){t.sphere()},lineStart:function(){t.lineStart()},lineEnd:function(){t.lineEnd()},polygonStart:function(){t.polygonStart()},polygonEnd:function(){t.polygonEnd()}}}function Cn(t){return Ln((function(){return t}))()}function Ln(e){var r,n,i,a,o,s,l=Mn((function(t,e){return[(t=r(t,e))[0]*c+a,o-t[1]*c]})),c=150,u=480,f=250,h=0,p=0,d=0,g=0,m=0,v=tn,y=L,x=null,b=null;function _(t){return[(t=i(t[0]*Lt,t[1]*Lt))[0]*c+a,o-t[1]*c]}function w(t){return(t=i.invert((t[0]-a)/c,(o-t[1])/c))&&[t[0]*It,t[1]*It]}function T(){i=Gr(n=On(d,g,m),r);var t=r(h,p);return a=u-t[0]*c,o=f+t[1]*c,k()}function k(){return s&&(s.valid=!1,s=null),_}return _.stream=function(t){return s&&(s.valid=!1),(s=In(v(n,l(y(t))))).valid=!0,s},_.clipAngle=function(t){return arguments.length?(v=null==t?(x=t,tn):en((x=+t)*Lt),k()):x},_.clipExtent=function(t){return arguments.length?(b=t,y=t?nn(t[0][0],t[0][1],t[1][0],t[1][1]):L,k()):b},_.scale=function(t){return arguments.length?(c=+t,T()):c},_.translate=function(t){return arguments.length?(u=+t[0],f=+t[1],T()):[u,f]},_.center=function(t){return arguments.length?(h=t[0]%360*Lt,p=t[1]%360*Lt,T()):[h*It,p*It]},_.rotate=function(t){return arguments.length?(d=t[0]%360*Lt,g=t[1]%360*Lt,m=t.length>2?t[2]%360*Lt:0,T()):[d*It,g*It,m*It]},t.rebind(_,l,"precision"),function(){return r=e.apply(this,arguments),_.invert=r.invert&&w,T()}}function In(t){return En(t,(function(e,r){t.point(e*Lt,r*Lt)}))}function Pn(t,e){return[t,e]}function zn(t,e){return[t>At?t-St:t<-At?t+St:t,e]}function On(t,e,r){return t?e||r?Gr(Rn(t),Fn(e,r)):Rn(t):e||r?Fn(e,r):zn}function Dn(t){return function(e,r){return[(e+=t)>At?e-St:e<-At?e+St:e,r]}}function Rn(t){var e=Dn(t);return e.invert=Dn(-t),e}function Fn(t,e){var r=Math.cos(t),n=Math.sin(t),i=Math.cos(e),a=Math.sin(e);function o(t,e){var o=Math.cos(e),s=Math.cos(t)*o,l=Math.sin(t)*o,c=Math.sin(e),u=c*r+s*n;return[Math.atan2(l*i-u*a,s*r-c*n),Dt(u*i+l*a)]}return o.invert=function(t,e){var o=Math.cos(e),s=Math.cos(t)*o,l=Math.sin(t)*o,c=Math.sin(e),u=c*i-l*a;return[Math.atan2(l*i+c*a,s*r+u*n),Dt(u*r-s*n)]},o}function Bn(t,e){var r=Math.cos(t),n=Math.sin(t);return function(i,a,o,s){var l=o*e;null!=i?(i=Nn(r,i),a=Nn(r,a),(o>0?ia)&&(i+=o*St)):(i=t+o*St,a=t-.5*l);for(var c,u=i;o>0?u>a:u2?t[2]*Lt:0),e.invert=function(e){return(e=t.invert(e[0]*Lt,e[1]*Lt))[0]*=It,e[1]*=It,e},e},zn.invert=Pn,t.geo.circle=function(){var t,e,r=[0,0],n=6;function i(){var t="function"==typeof r?r.apply(this,arguments):r,n=On(-t[0]*Lt,-t[1]*Lt,0).invert,i=[];return e(null,null,1,{point:function(t,e){i.push(t=n(t,e)),t[0]*=It,t[1]*=It}}),{type:"Polygon",coordinates:[i]}}return i.origin=function(t){return arguments.length?(r=t,i):r},i.angle=function(r){return arguments.length?(e=Bn((t=+r)*Lt,n*Lt),i):t},i.precision=function(r){return arguments.length?(e=Bn(t*Lt,(n=+r)*Lt),i):n},i.angle(90)},t.geo.distance=function(t,e){var r,n=(e[0]-t[0])*Lt,i=t[1]*Lt,a=e[1]*Lt,o=Math.sin(n),s=Math.cos(n),l=Math.sin(i),c=Math.cos(i),u=Math.sin(a),f=Math.cos(a);return Math.atan2(Math.sqrt((r=f*o)*r+(r=c*u-l*f*s)*r),l*u+c*f*s)},t.geo.graticule=function(){var e,r,n,i,a,o,s,l,c,u,f,h,p=10,d=p,g=90,m=360,v=2.5;function x(){return{type:"MultiLineString",coordinates:b()}}function b(){return t.range(Math.ceil(i/g)*g,n,g).map(f).concat(t.range(Math.ceil(l/m)*m,s,m).map(h)).concat(t.range(Math.ceil(r/p)*p,e,p).filter((function(t){return y(t%g)>kt})).map(c)).concat(t.range(Math.ceil(o/d)*d,a,d).filter((function(t){return y(t%m)>kt})).map(u))}return x.lines=function(){return b().map((function(t){return{type:"LineString",coordinates:t}}))},x.outline=function(){return{type:"Polygon",coordinates:[f(i).concat(h(s).slice(1),f(n).reverse().slice(1),h(l).reverse().slice(1))]}},x.extent=function(t){return arguments.length?x.majorExtent(t).minorExtent(t):x.minorExtent()},x.majorExtent=function(t){return arguments.length?(i=+t[0][0],n=+t[1][0],l=+t[0][1],s=+t[1][1],i>n&&(t=i,i=n,n=t),l>s&&(t=l,l=s,s=t),x.precision(v)):[[i,l],[n,s]]},x.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],o=+t[0][1],a=+t[1][1],r>e&&(t=r,r=e,e=t),o>a&&(t=o,o=a,a=t),x.precision(v)):[[r,o],[e,a]]},x.step=function(t){return arguments.length?x.majorStep(t).minorStep(t):x.minorStep()},x.majorStep=function(t){return arguments.length?(g=+t[0],m=+t[1],x):[g,m]},x.minorStep=function(t){return arguments.length?(p=+t[0],d=+t[1],x):[p,d]},x.precision=function(t){return arguments.length?(v=+t,c=jn(o,a,90),u=Un(r,e,v),f=jn(l,s,90),h=Un(i,n,v),x):v},x.majorExtent([[-180,-90+kt],[180,90-kt]]).minorExtent([[-180,-80-kt],[180,80+kt]])},t.geo.greatArc=function(){var e,r,n=Vn,i=qn;function a(){return{type:"LineString",coordinates:[e||n.apply(this,arguments),r||i.apply(this,arguments)]}}return a.distance=function(){return t.geo.distance(e||n.apply(this,arguments),r||i.apply(this,arguments))},a.source=function(t){return arguments.length?(n=t,e="function"==typeof t?null:t,a):n},a.target=function(t){return arguments.length?(i=t,r="function"==typeof t?null:t,a):i},a.precision=function(){return arguments.length?a:0},a},t.geo.interpolate=function(t,e){return r=t[0]*Lt,n=t[1]*Lt,i=e[0]*Lt,a=e[1]*Lt,o=Math.cos(n),s=Math.sin(n),l=Math.cos(a),c=Math.sin(a),u=o*Math.cos(r),f=o*Math.sin(r),h=l*Math.cos(i),p=l*Math.sin(i),d=2*Math.asin(Math.sqrt(Ft(a-n)+o*l*Ft(i-r))),g=1/Math.sin(d),(m=d?function(t){var e=Math.sin(t*=d)*g,r=Math.sin(d-t)*g,n=r*u+e*h,i=r*f+e*p,a=r*s+e*c;return[Math.atan2(i,n)*It,Math.atan2(a,Math.sqrt(n*n+i*i))*It]}:function(){return[r*It,n*It]}).distance=d,m;var r,n,i,a,o,s,l,c,u,f,h,p,d,g,m},t.geo.length=function(e){return yn=0,t.geo.stream(e,Hn),yn};var Hn={sphere:O,point:O,lineStart:function(){var t,e,r;function n(n,i){var a=Math.sin(i*=Lt),o=Math.cos(i),s=y((n*=Lt)-t),l=Math.cos(s);yn+=Math.atan2(Math.sqrt((s=o*Math.sin(s))*s+(s=r*a-e*o*l)*s),e*a+r*o*l),t=n,e=a,r=o}Hn.point=function(i,a){t=i*Lt,e=Math.sin(a*=Lt),r=Math.cos(a),Hn.point=n},Hn.lineEnd=function(){Hn.point=Hn.lineEnd=O}},lineEnd:O,polygonStart:O,polygonEnd:O};function Gn(t,e){function r(e,r){var n=Math.cos(e),i=Math.cos(r),a=t(n*i);return[a*i*Math.sin(e),a*Math.sin(r)]}return r.invert=function(t,r){var n=Math.sqrt(t*t+r*r),i=e(n),a=Math.sin(i),o=Math.cos(i);return[Math.atan2(t*a,n*o),Math.asin(n&&r*a/n)]},r}var Yn=Gn((function(t){return Math.sqrt(2/(1+t))}),(function(t){return 2*Math.asin(t/2)}));(t.geo.azimuthalEqualArea=function(){return Cn(Yn)}).raw=Yn;var Wn=Gn((function(t){var e=Math.acos(t);return e&&e/Math.sin(e)}),L);function Xn(t,e){var r=Math.cos(t),n=function(t){return Math.tan(At/4+t/2)},i=t===e?Math.sin(t):Math.log(r/Math.cos(e))/Math.log(n(e)/n(t)),a=r*Math.pow(n(t),i)/i;if(!i)return Kn;function o(t,e){a>0?e<-Ct+kt&&(e=-Ct+kt):e>Ct-kt&&(e=Ct-kt);var r=a/Math.pow(n(e),i);return[r*Math.sin(i*t),a-r*Math.cos(i*t)]}return o.invert=function(t,e){var r=a-e,n=Pt(i)*Math.sqrt(t*t+r*r);return[Math.atan2(t,r)/i,2*Math.atan(Math.pow(a/n,1/i))-Ct]},o}function Zn(t,e){var r=Math.cos(t),n=t===e?Math.sin(t):(r-Math.cos(e))/(e-t),i=r/n+t;if(y(n)1&&zt(t[r[n-2]],t[r[n-1]],t[i])<=0;)--n;r[n++]=i}return r.slice(0,n)}function ai(t,e){return t[0]-e[0]||t[1]-e[1]}(t.geo.stereographic=function(){return Cn(ti)}).raw=ti,ei.invert=function(t,e){return[-e,2*Math.atan(Math.exp(t))-Ct]},(t.geo.transverseMercator=function(){var t=Qn(ei),e=t.center,r=t.rotate;return t.center=function(t){return t?e([-t[1],t[0]]):[(t=e())[1],-t[0]]},t.rotate=function(t){return t?r([t[0],t[1],t.length>2?t[2]+90:90]):[(t=r())[0],t[1],t[2]-90]},r([0,0,90])}).raw=ei,t.geom={},t.geom.hull=function(t){var e=ri,r=ni;if(arguments.length)return n(t);function n(t){if(t.length<3)return[];var n,i=de(e),a=de(r),o=t.length,s=[],l=[];for(n=0;n=0;--n)p.push(t[s[c[n]][2]]);for(n=+f;nkt)s=s.L;else{if(!((i=a-Ti(s,o))>kt)){n>-kt?(e=s.P,r=s):i>-kt?(e=s,r=s.N):e=r=s;break}if(!s.R){e=s;break}s=s.R}var l=yi(t);if(hi.insert(e,l),e||r){if(e===r)return Ei(e),r=yi(e.site),hi.insert(l,r),l.edge=r.edge=Ii(e.site,l.site),Si(e),void Si(r);if(r){Ei(e),Ei(r);var c=e.site,u=c.x,f=c.y,h=t.x-u,p=t.y-f,d=r.site,g=d.x-u,m=d.y-f,v=2*(h*m-p*g),y=h*h+p*p,x=g*g+m*m,b={x:(m*y-p*x)/v+u,y:(h*x-g*y)/v+f};zi(r.edge,c,d,b),l.edge=Ii(c,t,null,b),r.edge=Ii(t,d,null,b),Si(e),Si(r)}else l.edge=Ii(e.site,l.site)}}function wi(t,e){var r=t.site,n=r.x,i=r.y,a=i-e;if(!a)return n;var o=t.P;if(!o)return-1/0;var s=(r=o.site).x,l=r.y,c=l-e;if(!c)return s;var u=s-n,f=1/a-1/c,h=u/c;return f?(-h+Math.sqrt(h*h-2*f*(u*u/(-2*c)-l+c/2+i-a/2)))/f+n:(n+s)/2}function Ti(t,e){var r=t.N;if(r)return wi(r,e);var n=t.site;return n.y===e?n.x:1/0}function ki(t){this.site=t,this.edges=[]}function Mi(t,e){return e.angle-t.angle}function Ai(){Ri(this),this.x=this.y=this.arc=this.site=this.cy=null}function Si(t){var e=t.P,r=t.N;if(e&&r){var n=e.site,i=t.site,a=r.site;if(n!==a){var o=i.x,s=i.y,l=n.x-o,c=n.y-s,u=a.x-o,f=2*(l*(m=a.y-s)-c*u);if(!(f>=-Mt)){var h=l*l+c*c,p=u*u+m*m,d=(m*h-c*p)/f,g=(l*p-u*h)/f,m=g+s,v=mi.pop()||new Ai;v.arc=t,v.site=i,v.x=d+o,v.y=m+Math.sqrt(d*d+g*g),v.cy=m,t.circle=v;for(var y=null,x=di._;x;)if(v.y=s)return;if(h>d){if(a){if(a.y>=c)return}else a={x:m,y:l};r={x:m,y:c}}else{if(a){if(a.y1)if(h>d){if(a){if(a.y>=c)return}else a={x:(l-i)/n,y:l};r={x:(c-i)/n,y:c}}else{if(a){if(a.y=s)return}else a={x:o,y:n*o+i};r={x:s,y:n*s+i}}else{if(a){if(a.xkt||y(i-r)>kt)&&(s.splice(o,0,new Oi(Pi(a.site,u,y(n-f)kt?{x:f,y:y(e-f)kt?{x:y(r-d)kt?{x:h,y:y(e-h)kt?{x:y(r-p)=r&&c.x<=i&&c.y>=n&&c.y<=o?[[r,o],[i,o],[i,n],[r,n]]:[]).point=t[s]})),e}function s(t){return t.map((function(t,e){return{x:Math.round(n(t,e)/kt)*kt,y:Math.round(i(t,e)/kt)*kt,i:e}}))}return o.links=function(t){return ji(s(t)).edges.filter((function(t){return t.l&&t.r})).map((function(e){return{source:t[e.l.i],target:t[e.r.i]}}))},o.triangles=function(t){var e=[];return ji(s(t)).cells.forEach((function(r,n){for(var i,a,o,s,l=r.site,c=r.edges.sort(Mi),u=-1,f=c.length,h=c[f-1].edge,p=h.l===l?h.r:h.l;++ua||f>o||h=_)<<1|e>=b,T=w+4;wa&&(i=e.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(r=r[0])===(n=n[0])?s[o]?s[o]+=n:s[++o]=n:(s[++o]=null,l.push({i:o,x:Zi(r,n)})),a=Qi.lastIndex;return ag&&(g=l.x),l.y>m&&(m=l.y),c.push(l.x),u.push(l.y);else for(f=0;fg&&(g=b),_>m&&(m=_),c.push(b),u.push(_)}var w=g-p,T=m-d;function k(t,e,r,n,i,a,o,s){if(!isNaN(r)&&!isNaN(n))if(t.leaf){var l=t.x,c=t.y;if(null!=l)if(y(l-r)+y(c-n)<.01)M(t,e,r,n,i,a,o,s);else{var u=t.point;t.x=t.y=t.point=null,M(t,u,l,c,i,a,o,s),M(t,e,r,n,i,a,o,s)}else t.x=r,t.y=n,t.point=e}else M(t,e,r,n,i,a,o,s)}function M(t,e,r,n,i,a,o,s){var l=.5*(i+o),c=.5*(a+s),u=r>=l,f=n>=c,h=f<<1|u;t.leaf=!1,u?i=l:o=l,f?a=c:s=c,k(t=t.nodes[h]||(t.nodes[h]={leaf:!0,nodes:[],point:null,x:null,y:null}),e,r,n,i,a,o,s)}w>T?m=d+w:g=p+T;var A={leaf:!0,nodes:[],point:null,x:null,y:null,add:function(t){k(A,t,+v(t,++f),+x(t,f),p,d,g,m)},visit:function(t){Gi(t,A,p,d,g,m)},find:function(t){return Yi(A,t[0],t[1],p,d,g,m)}};if(f=-1,null==e){for(;++f=0&&!(n=t.interpolators[i](e,r)););return n}function ta(t,e){var r,n=[],i=[],a=t.length,o=e.length,s=Math.min(t.length,e.length);for(r=0;r=1?1:t(e)}}function aa(t){return function(e){return 1-t(1-e)}}function oa(t){return function(e){return.5*(e<.5?t(2*e):2-t(2-2*e))}}function sa(t){return t*t}function la(t){return t*t*t}function ca(t){if(t<=0)return 0;if(t>=1)return 1;var e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)}function ua(t){return 1-Math.cos(t*Ct)}function fa(t){return Math.pow(2,10*(t-1))}function ha(t){return 1-Math.sqrt(1-t*t)}function pa(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}function da(t,e){return e-=t,function(r){return Math.round(t+e*r)}}function ga(t){var e,r,n,i=[t.a,t.b],a=[t.c,t.d],o=va(i),s=ma(i,a),l=va(((e=a)[0]+=(n=-s)*(r=i)[0],e[1]+=n*r[1],e))||0;i[0]*a[1]=0?t.slice(0,e):t,i=e>=0?t.slice(e+1):"in";return n=ra.get(n)||ea,ia((i=na.get(i)||L)(n.apply(null,r.call(arguments,1))))},t.interpolateHcl=function(e,r){e=t.hcl(e),r=t.hcl(r);var n=e.h,i=e.c,a=e.l,o=r.h-n,s=r.c-i,l=r.l-a;isNaN(s)&&(s=0,i=isNaN(i)?r.c:i);isNaN(o)?(o=0,n=isNaN(n)?r.h:n):o>180?o-=360:o<-180&&(o+=360);return function(t){return Xt(n+o*t,i+s*t,a+l*t)+""}},t.interpolateHsl=function(e,r){e=t.hsl(e),r=t.hsl(r);var n=e.h,i=e.s,a=e.l,o=r.h-n,s=r.s-i,l=r.l-a;isNaN(s)&&(s=0,i=isNaN(i)?r.s:i);isNaN(o)?(o=0,n=isNaN(n)?r.h:n):o>180?o-=360:o<-180&&(o+=360);return function(t){return Gt(n+o*t,i+s*t,a+l*t)+""}},t.interpolateLab=function(e,r){e=t.lab(e),r=t.lab(r);var n=e.l,i=e.a,a=e.b,o=r.l-n,s=r.a-i,l=r.b-a;return function(t){return Qt(n+o*t,i+s*t,a+l*t)+""}},t.interpolateRound=da,t.transform=function(e){var r=i.createElementNS(t.ns.prefix.svg,"g");return(t.transform=function(t){if(null!=t){r.setAttribute("transform",t);var e=r.transform.baseVal.consolidate()}return new ga(e?e.matrix:ya)})(e)},ga.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var ya={a:1,b:0,c:0,d:1,e:0,f:0};function xa(t){return t.length?t.pop()+",":""}function ba(e,r){var n=[],i=[];return e=t.transform(e),r=t.transform(r),function(t,e,r,n){if(t[0]!==e[0]||t[1]!==e[1]){var i=r.push("translate(",null,",",null,")");n.push({i:i-4,x:Zi(t[0],e[0])},{i:i-2,x:Zi(t[1],e[1])})}else(e[0]||e[1])&&r.push("translate("+e+")")}(e.translate,r.translate,n,i),function(t,e,r,n){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),n.push({i:r.push(xa(r)+"rotate(",null,")")-2,x:Zi(t,e)})):e&&r.push(xa(r)+"rotate("+e+")")}(e.rotate,r.rotate,n,i),function(t,e,r,n){t!==e?n.push({i:r.push(xa(r)+"skewX(",null,")")-2,x:Zi(t,e)}):e&&r.push(xa(r)+"skewX("+e+")")}(e.skew,r.skew,n,i),function(t,e,r,n){if(t[0]!==e[0]||t[1]!==e[1]){var i=r.push(xa(r)+"scale(",null,",",null,")");n.push({i:i-4,x:Zi(t[0],e[0])},{i:i-2,x:Zi(t[1],e[1])})}else 1===e[0]&&1===e[1]||r.push(xa(r)+"scale("+e+")")}(e.scale,r.scale,n,i),e=r=null,function(t){for(var e,r=-1,a=i.length;++r0?n=t:(e.c=null,e.t=NaN,e=null,l.end({type:"end",alpha:n=0})):t>0&&(l.start({type:"start",alpha:n=t}),e=we(s.tick)),s):n},s.start=function(){var t,e,r,n=v.length,l=y.length,u=c[0],d=c[1];for(t=0;t=0;)r.push(i[n])}function Oa(t,e){for(var r=[t],n=[];null!=(t=r.pop());)if(n.push(t),(a=t.children)&&(i=a.length))for(var i,a,o=-1;++o=0;)o.push(u=c[l]),u.parent=a,u.depth=a.depth+1;r&&(a.value=0),a.children=c}else r&&(a.value=+r.call(n,a,a.depth)||0),delete a.children;return Oa(i,(function(e){var n,i;t&&(n=e.children)&&n.sort(t),r&&(i=e.parent)&&(i.value+=e.value)})),s}return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(za(t,(function(t){t.children&&(t.value=0)})),Oa(t,(function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)}))),t},n},t.layout.partition=function(){var e=t.layout.hierarchy(),r=[1,1];function n(t,n){var i=e.call(this,t,n);return function t(e,r,n,i){var a=e.children;if(e.x=r,e.y=e.depth*i,e.dx=n,e.dy=i,a&&(o=a.length)){var o,s,l,c=-1;for(n=e.value?n/e.value:0;++cs&&(s=n),o.push(n)}for(r=0;ri&&(n=r,i=e);return n}function Xa(t){return t.reduce(Za,0)}function Za(t,e){return t+e[1]}function Ja(t,e){return Ka(t,Math.ceil(Math.log(e.length)/Math.LN2+1))}function Ka(t,e){for(var r=-1,n=+t[0],i=(t[1]-n)/e,a=[];++r<=e;)a[r]=i*r+n;return a}function Qa(e){return[t.min(e),t.max(e)]}function $a(t,e){return t.value-e.value}function to(t,e){var r=t._pack_next;t._pack_next=e,e._pack_prev=t,e._pack_next=r,r._pack_prev=e}function eo(t,e){t._pack_next=e,e._pack_prev=t}function ro(t,e){var r=e.x-t.x,n=e.y-t.y,i=t.r+e.r;return.999*i*i>r*r+n*n}function no(t){if((e=t.children)&&(l=e.length)){var e,r,n,i,a,o,s,l,c=1/0,u=-1/0,f=1/0,h=-1/0;if(e.forEach(io),(r=e[0]).x=-r.r,r.y=0,x(r),l>1&&((n=e[1]).x=n.r,n.y=0,x(n),l>2))for(oo(r,n,i=e[2]),x(i),to(r,i),r._pack_prev=i,to(i,n),n=r._pack_next,a=3;a0)for(o=-1;++o=f[0]&&l<=f[1]&&((s=c[t.bisect(h,l,1,d)-1]).y+=g,s.push(a[o]));return c}return a.value=function(t){return arguments.length?(r=t,a):r},a.range=function(t){return arguments.length?(n=de(t),a):n},a.bins=function(t){return arguments.length?(i="number"==typeof t?function(e){return Ka(e,t)}:de(t),a):i},a.frequency=function(t){return arguments.length?(e=!!t,a):e},a},t.layout.pack=function(){var e,r=t.layout.hierarchy().sort($a),n=0,i=[1,1];function a(t,a){var o=r.call(this,t,a),s=o[0],l=i[0],c=i[1],u=null==e?Math.sqrt:"function"==typeof e?e:function(){return e};if(s.x=s.y=0,Oa(s,(function(t){t.r=+u(t.value)})),Oa(s,no),n){var f=n*(e?1:Math.max(2*s.r/l,2*s.r/c))/2;Oa(s,(function(t){t.r+=f})),Oa(s,no),Oa(s,(function(t){t.r-=f}))}return function t(e,r,n,i){var a=e.children;if(e.x=r+=i*e.x,e.y=n+=i*e.y,e.r*=i,a)for(var o=-1,s=a.length;++op.x&&(p=t),t.depth>d.depth&&(d=t)}));var g=r(h,p)/2-h.x,m=n[0]/(p.x+r(p,h)/2+g),v=n[1]/(d.depth||1);za(u,(function(t){t.x=(t.x+g)*m,t.y=t.depth*v}))}return c}function o(t){var e=t.children,n=t.parent.children,i=t.i?n[t.i-1]:null;if(e.length){!function(t){var e,r=0,n=0,i=t.children,a=i.length;for(;--a>=0;)(e=i[a]).z+=r,e.m+=r,r+=e.s+(n+=e.c)}(t);var a=(e[0].z+e[e.length-1].z)/2;i?(t.z=i.z+r(t._,i._),t.m=t.z-a):t.z=a}else i&&(t.z=i.z+r(t._,i._));t.parent.A=function(t,e,n){if(e){for(var i,a=t,o=t,s=e,l=a.parent.children[0],c=a.m,u=o.m,f=s.m,h=l.m;s=co(s),a=lo(a),s&&a;)l=lo(l),(o=co(o)).a=t,(i=s.z+f-a.z-c+r(s._,a._))>0&&(uo(fo(s,t,n),t,i),c+=i,u+=i),f+=s.m,c+=a.m,h+=l.m,u+=o.m;s&&!co(o)&&(o.t=s,o.m+=f-u),a&&!lo(l)&&(l.t=a,l.m+=c-h,n=t)}return n}(t,i,t.parent.A||n[0])}function s(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function l(t){t.x*=n[0],t.y=t.depth*n[1]}return a.separation=function(t){return arguments.length?(r=t,a):r},a.size=function(t){return arguments.length?(i=null==(n=t)?l:null,a):i?null:n},a.nodeSize=function(t){return arguments.length?(i=null==(n=t)?null:l,a):i?n:null},Pa(a,e)},t.layout.cluster=function(){var e=t.layout.hierarchy().sort(null).value(null),r=so,n=[1,1],i=!1;function a(a,o){var s,l=e.call(this,a,o),c=l[0],u=0;Oa(c,(function(e){var n=e.children;n&&n.length?(e.x=function(t){return t.reduce((function(t,e){return t+e.x}),0)/t.length}(n),e.y=function(e){return 1+t.max(e,(function(t){return t.y}))}(n)):(e.x=s?u+=r(e,s):0,e.y=0,s=e)}));var f=function t(e){var r=e.children;return r&&r.length?t(r[0]):e}(c),h=function t(e){var r,n=e.children;return n&&(r=n.length)?t(n[r-1]):e}(c),p=f.x-r(f,h)/2,d=h.x+r(h,f)/2;return Oa(c,i?function(t){t.x=(t.x-c.x)*n[0],t.y=(c.y-t.y)*n[1]}:function(t){t.x=(t.x-p)/(d-p)*n[0],t.y=(1-(c.y?t.y/c.y:1))*n[1]}),l}return a.separation=function(t){return arguments.length?(r=t,a):r},a.size=function(t){return arguments.length?(i=null==(n=t),a):i?null:n},a.nodeSize=function(t){return arguments.length?(i=null!=(n=t),a):i?n:null},Pa(a,e)},t.layout.treemap=function(){var e,r=t.layout.hierarchy(),n=Math.round,i=[1,1],a=null,o=ho,s=!1,l="squarify",c=.5*(1+Math.sqrt(5));function u(t,e){for(var r,n,i=-1,a=t.length;++i0;)s.push(r=c[i-1]),s.area+=r.area,"squarify"!==l||(n=p(s,g))<=h?(c.pop(),h=n):(s.area-=s.pop().area,d(s,g,a,!1),g=Math.min(a.dx,a.dy),s.length=s.area=0,h=1/0);s.length&&(d(s,g,a,!0),s.length=s.area=0),e.forEach(f)}}function h(t){var e=t.children;if(e&&e.length){var r,n=o(t),i=e.slice(),a=[];for(u(i,n.dx*n.dy/t.value),a.area=0;r=i.pop();)a.push(r),a.area+=r.area,null!=r.z&&(d(a,r.z?n.dx:n.dy,n,!i.length),a.length=a.area=0);e.forEach(h)}}function p(t,e){for(var r,n=t.area,i=0,a=1/0,o=-1,s=t.length;++oi&&(i=r));return e*=e,(n*=n)?Math.max(e*i*c/n,n/(e*a*c)):1/0}function d(t,e,r,i){var a,o=-1,s=t.length,l=r.x,c=r.y,u=e?n(t.area/e):0;if(e==r.dx){for((i||u>r.dy)&&(u=r.dy);++or.dx)&&(u=r.dx);++o1);return t+e*r*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var e=t.random.normal.apply(t,arguments);return function(){return Math.exp(e())}},bates:function(e){var r=t.random.irwinHall(e);return function(){return r()/e}},irwinHall:function(t){return function(){for(var e=0,r=0;r2?_o:vo,s=i?wa:_a;return a=t(e,r,s,n),o=t(r,e,s,$i),l}function l(t){return a(t)}return l.invert=function(t){return o(t)},l.domain=function(t){return arguments.length?(e=t.map(Number),s()):e},l.range=function(t){return arguments.length?(r=t,s()):r},l.rangeRound=function(t){return l.range(t).interpolate(da)},l.clamp=function(t){return arguments.length?(i=t,s()):i},l.interpolate=function(t){return arguments.length?(n=t,s()):n},l.ticks=function(t){return Mo(e,t)},l.tickFormat=function(t,r){return Ao(e,t,r)},l.nice=function(t){return To(e,t),s()},l.copy=function(){return t(e,r,n,i)},s()}([0,1],[0,1],$i,!1)};var So={s:1,g:1,p:1,r:1,e:1};function Eo(t){return-Math.floor(Math.log(t)/Math.LN10+.01)}t.scale.log=function(){return function e(r,n,i,a){function o(t){return(i?Math.log(t<0?0:t):-Math.log(t>0?0:-t))/Math.log(n)}function s(t){return i?Math.pow(n,t):-Math.pow(n,-t)}function l(t){return r(o(t))}return l.invert=function(t){return s(r.invert(t))},l.domain=function(t){return arguments.length?(i=t[0]>=0,r.domain((a=t.map(Number)).map(o)),l):a},l.base=function(t){return arguments.length?(n=+t,r.domain(a.map(o)),l):n},l.nice=function(){var t=yo(a.map(o),i?Math:Lo);return r.domain(t),a=t.map(s),l},l.ticks=function(){var t=go(a),e=[],r=t[0],l=t[1],c=Math.floor(o(r)),u=Math.ceil(o(l)),f=n%1?2:n;if(isFinite(u-c)){if(i){for(;c0;h--)e.push(s(c)*h);for(c=0;e[c]l;u--);e=e.slice(c,u)}return e},l.tickFormat=function(e,r){if(!arguments.length)return Co;arguments.length<2?r=Co:"function"!=typeof r&&(r=t.format(r));var i=Math.max(1,n*e/l.ticks().length);return function(t){var e=t/s(Math.round(o(t)));return e*n0?i[t-1]:r[0],tf?0:1;if(c=Et)return l(c,p)+(s?l(s,1-p):"")+"Z";var d,g,m,v,y,x,b,_,w,T,k,M,A=0,S=0,E=[];if((v=(+o.apply(this,arguments)||0)/2)&&(m=n===Fo?Math.sqrt(s*s+c*c):+n.apply(this,arguments),p||(S*=-1),c&&(S=Dt(m/c*Math.sin(v))),s&&(A=Dt(m/s*Math.sin(v)))),c){y=c*Math.cos(u+S),x=c*Math.sin(u+S),b=c*Math.cos(f-S),_=c*Math.sin(f-S);var C=Math.abs(f-u-2*S)<=At?0:1;if(S&&qo(y,x,b,_)===p^C){var L=(u+f)/2;y=c*Math.cos(L),x=c*Math.sin(L),b=_=null}}else y=x=0;if(s){w=s*Math.cos(f-A),T=s*Math.sin(f-A),k=s*Math.cos(u+A),M=s*Math.sin(u+A);var I=Math.abs(u-f+2*A)<=At?0:1;if(A&&qo(w,T,k,M)===1-p^I){var P=(u+f)/2;w=s*Math.cos(P),T=s*Math.sin(P),k=M=null}}else w=T=0;if(h>kt&&(d=Math.min(Math.abs(c-s)/2,+r.apply(this,arguments)))>.001){g=s0?0:1}function Ho(t,e,r,n,i){var a=t[0]-e[0],o=t[1]-e[1],s=(i?n:-n)/Math.sqrt(a*a+o*o),l=s*o,c=-s*a,u=t[0]+l,f=t[1]+c,h=e[0]+l,p=e[1]+c,d=(u+h)/2,g=(f+p)/2,m=h-u,v=p-f,y=m*m+v*v,x=r-n,b=u*p-h*f,_=(v<0?-1:1)*Math.sqrt(Math.max(0,x*x*y-b*b)),w=(b*v-m*_)/y,T=(-b*m-v*_)/y,k=(b*v+m*_)/y,M=(-b*m+v*_)/y,A=w-d,S=T-g,E=k-d,C=M-g;return A*A+S*S>E*E+C*C&&(w=k,T=M),[[w-l,T-c],[w*r/x,T*r/x]]}function Go(t){var e=ri,r=ni,n=Yr,i=Wo,a=i.key,o=.7;function s(a){var s,l=[],c=[],u=-1,f=a.length,h=de(e),p=de(r);function d(){l.push("M",i(t(c),o))}for(;++u1&&i.push("H",n[0]);return i.join("")},"step-before":Zo,"step-after":Jo,basis:$o,"basis-open":function(t){if(t.length<4)return Wo(t);var e,r=[],n=-1,i=t.length,a=[0],o=[0];for(;++n<3;)e=t[n],a.push(e[0]),o.push(e[1]);r.push(ts(ns,a)+","+ts(ns,o)),--n;for(;++n9&&(i=3*e/Math.sqrt(i),o[s]=i*r,o[s+1]=i*n));s=-1;for(;++s<=l;)i=(t[Math.min(l,s+1)][0]-t[Math.max(0,s-1)][0])/(6*(1+o[s]*o[s])),a.push([i||0,o[s]*i||0]);return a}(t))}});function Wo(t){return t.length>1?t.join("L"):t+"Z"}function Xo(t){return t.join("L")+"Z"}function Zo(t){for(var e=0,r=t.length,n=t[0],i=[n[0],",",n[1]];++e1){s=e[1],a=t[l],l++,n+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(a[0]-s[0])+","+(a[1]-s[1])+","+a[0]+","+a[1];for(var c=2;cAt)+",1 "+e}function l(t,e,r,n){return"Q 0,0 "+n}return a.radius=function(t){return arguments.length?(r=de(t),a):r},a.source=function(e){return arguments.length?(t=de(e),a):t},a.target=function(t){return arguments.length?(e=de(t),a):e},a.startAngle=function(t){return arguments.length?(n=de(t),a):n},a.endAngle=function(t){return arguments.length?(i=de(t),a):i},a},t.svg.diagonal=function(){var t=Vn,e=qn,r=cs;function n(n,i){var a=t.call(this,n,i),o=e.call(this,n,i),s=(a.y+o.y)/2,l=[a,{x:a.x,y:s},{x:o.x,y:s},o];return"M"+(l=l.map(r))[0]+"C"+l[1]+" "+l[2]+" "+l[3]}return n.source=function(e){return arguments.length?(t=de(e),n):t},n.target=function(t){return arguments.length?(e=de(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},t.svg.diagonal.radial=function(){var e=t.svg.diagonal(),r=cs,n=e.projection;return e.projection=function(t){return arguments.length?n(us(r=t)):r},e},t.svg.symbol=function(){var t=hs,e=fs;function r(r,n){return(ds.get(t.call(this,r,n))||ps)(e.call(this,r,n))}return r.type=function(e){return arguments.length?(t=de(e),r):t},r.size=function(t){return arguments.length?(e=de(t),r):e},r};var ds=t.map({circle:ps,cross:function(t){var e=Math.sqrt(t/5)/2;return"M"+-3*e+","+-e+"H"+-e+"V"+-3*e+"H"+e+"V"+-e+"H"+3*e+"V"+e+"H"+e+"V"+3*e+"H"+-e+"V"+e+"H"+-3*e+"Z"},diamond:function(t){var e=Math.sqrt(t/(2*ms)),r=e*ms;return"M0,"+-e+"L"+r+",0 0,"+e+" "+-r+",0Z"},square:function(t){var e=Math.sqrt(t)/2;return"M"+-e+","+-e+"L"+e+","+-e+" "+e+","+e+" "+-e+","+e+"Z"},"triangle-down":function(t){var e=Math.sqrt(t/gs),r=e*gs/2;return"M0,"+r+"L"+e+","+-r+" "+-e+","+-r+"Z"},"triangle-up":function(t){var e=Math.sqrt(t/gs),r=e*gs/2;return"M0,"+-r+"L"+e+","+r+" "+-e+","+r+"Z"}});t.svg.symbolTypes=ds.keys();var gs=Math.sqrt(3),ms=Math.tan(30*Lt);Y.transition=function(t){for(var e,r,n=bs||++Ts,i=As(t),a=[],o=_s||{time:Date.now(),ease:ca,delay:0,duration:250},s=-1,l=this.length;++s0;)c[--h].call(t,o);if(a>=1)return f.event&&f.event.end.call(t,t.__data__,e),--u.count?delete u[n]:delete t[r],1}f||(a=i.time,o=we((function(t){var e=f.delay;if(o.t=e+a,e<=t)return h(t-e);o.c=h}),0,a),f=u[n]={tween:new _,time:a,timer:o,delay:i.delay,duration:i.duration,ease:i.ease,index:e},i=null,++u.count)}ws.call=Y.call,ws.empty=Y.empty,ws.node=Y.node,ws.size=Y.size,t.transition=function(e,r){return e&&e.transition?bs?e.transition(r):e:t.selection().transition(e)},t.transition.prototype=ws,ws.select=function(t){var e,r,n,i=this.id,a=this.namespace,o=[];t=W(t);for(var s=-1,l=this.length;++srect,.s>rect").attr("width",s[1]-s[0])}function g(t){t.select(".extent").attr("y",l[0]),t.selectAll(".extent,.e>rect,.w>rect").attr("height",l[1]-l[0])}function m(){var f,m,v=this,y=t.select(t.event.target),x=n.of(v,arguments),b=t.select(v),_=y.datum(),w=!/^(n|s)$/.test(_)&&i,T=!/^(e|w)$/.test(_)&&a,k=y.classed("extent"),M=bt(v),A=t.mouse(v),S=t.select(o(v)).on("keydown.brush",L).on("keyup.brush",I);if(t.event.changedTouches?S.on("touchmove.brush",P).on("touchend.brush",O):S.on("mousemove.brush",P).on("mouseup.brush",O),b.interrupt().selectAll("*").interrupt(),k)A[0]=s[0]-A[0],A[1]=l[0]-A[1];else if(_){var E=+/w$/.test(_),C=+/^n/.test(_);m=[s[1-E]-A[0],l[1-C]-A[1]],A[0]=s[E],A[1]=l[C]}else t.event.altKey&&(f=A.slice());function L(){32==t.event.keyCode&&(k||(f=null,A[0]-=s[1],A[1]-=l[1],k=2),F())}function I(){32==t.event.keyCode&&2==k&&(A[0]+=s[1],A[1]+=l[1],k=0,F())}function P(){var e=t.mouse(v),r=!1;m&&(e[0]+=m[0],e[1]+=m[1]),k||(t.event.altKey?(f||(f=[(s[0]+s[1])/2,(l[0]+l[1])/2]),A[0]=s[+(e[0]1?{floor:function(e){for(;s(e=t.floor(e));)e=Ns(e-1);return e},ceil:function(e){for(;s(e=t.ceil(e));)e=Ns(+e+1);return e}}:t))},i.ticks=function(t,e){var r=go(i.domain()),n=null==t?a(r,10):"number"==typeof t?a(r,t):!t.range&&[{range:t},e];return n&&(t=n[0],e=n[1]),t.range(r[0],Ns(+r[1]+1),e<1?1:e)},i.tickFormat=function(){return n},i.copy=function(){return Bs(e.copy(),r,n)},wo(i,e)}function Ns(t){return new Date(t)}Os.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Fs:Rs,Fs.parse=function(t){var e=new Date(t);return isNaN(e)?null:e},Fs.toString=Rs.toString,Pe.second=Re((function(t){return new ze(1e3*Math.floor(t/1e3))}),(function(t,e){t.setTime(t.getTime()+1e3*Math.floor(e))}),(function(t){return t.getSeconds()})),Pe.seconds=Pe.second.range,Pe.seconds.utc=Pe.second.utc.range,Pe.minute=Re((function(t){return new ze(6e4*Math.floor(t/6e4))}),(function(t,e){t.setTime(t.getTime()+6e4*Math.floor(e))}),(function(t){return t.getMinutes()})),Pe.minutes=Pe.minute.range,Pe.minutes.utc=Pe.minute.utc.range,Pe.hour=Re((function(t){var e=t.getTimezoneOffset()/60;return new ze(36e5*(Math.floor(t/36e5-e)+e))}),(function(t,e){t.setTime(t.getTime()+36e5*Math.floor(e))}),(function(t){return t.getHours()})),Pe.hours=Pe.hour.range,Pe.hours.utc=Pe.hour.utc.range,Pe.month=Re((function(t){return(t=Pe.day(t)).setDate(1),t}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t){return t.getMonth()})),Pe.months=Pe.month.range,Pe.months.utc=Pe.month.utc.range;var js=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Us=[[Pe.second,1],[Pe.second,5],[Pe.second,15],[Pe.second,30],[Pe.minute,1],[Pe.minute,5],[Pe.minute,15],[Pe.minute,30],[Pe.hour,1],[Pe.hour,3],[Pe.hour,6],[Pe.hour,12],[Pe.day,1],[Pe.day,2],[Pe.week,1],[Pe.month,1],[Pe.month,3],[Pe.year,1]],Vs=Os.multi([[".%L",function(t){return t.getMilliseconds()}],[":%S",function(t){return t.getSeconds()}],["%I:%M",function(t){return t.getMinutes()}],["%I %p",function(t){return t.getHours()}],["%a %d",function(t){return t.getDay()&&1!=t.getDate()}],["%b %d",function(t){return 1!=t.getDate()}],["%B",function(t){return t.getMonth()}],["%Y",Yr]]),qs={range:function(e,r,n){return t.range(Math.ceil(e/n)*n,+r,n).map(Ns)},floor:L,ceil:L};Us.year=Pe.year,Pe.scale=function(){return Bs(t.scale.linear(),Us,Vs)};var Hs=Us.map((function(t){return[t[0].utc,t[1]]})),Gs=Ds.multi([[".%L",function(t){return t.getUTCMilliseconds()}],[":%S",function(t){return t.getUTCSeconds()}],["%I:%M",function(t){return t.getUTCMinutes()}],["%I %p",function(t){return t.getUTCHours()}],["%a %d",function(t){return t.getUTCDay()&&1!=t.getUTCDate()}],["%b %d",function(t){return 1!=t.getUTCDate()}],["%B",function(t){return t.getUTCMonth()}],["%Y",Yr]]);function Ys(t){return JSON.parse(t.responseText)}function Ws(t){var e=i.createRange();return e.selectNode(i.body),e.createContextualFragment(t.responseText)}Hs.year=Pe.year.utc,Pe.scale.utc=function(){return Bs(t.scale.linear(),Hs,Gs)},t.text=ge((function(t){return t.responseText})),t.json=function(t,e){return me(t,"application/json",Ys,e)},t.html=function(t,e){return me(t,"text/html",Ws,e)},t.xml=ge((function(t){return t.responseXML})),"object"==typeof e&&e.exports?e.exports=t:this.d3=t}()},{}],170:[function(t,e,r){e.exports=function(){for(var t=0;t=2)return!1;t[r]=n}return!0})):_.filter((function(t){for(var e=0;e<=s;++e){var r=v[t[e]];if(r<0)return!1;t[e]=r}return!0}));if(1&s)for(u=0;u<_.length;++u){h=(b=_[u])[0];b[0]=b[1],b[1]=h}return _}},{"incremental-convex-hull":459,uniq:597}],172:[function(t,e,r){"use strict";e.exports=a;var n=(a.canvas=document.createElement("canvas")).getContext("2d"),i=o([32,126]);function a(t,e){Array.isArray(t)&&(t=t.join(", "));var r,a={},s=16,l=.05;e&&(2===e.length&&"number"==typeof e[0]?r=o(e):Array.isArray(e)?r=e:(e.o?r=o(e.o):e.pairs&&(r=e.pairs),e.fontSize&&(s=e.fontSize),null!=e.threshold&&(l=e.threshold))),r||(r=i),n.font=s+"px "+t;for(var c=0;cs*l){var p=(h-f)/s;a[u]=1e3*p}}return a}function o(t){for(var e=[],r=t[0];r<=t[1];r++)for(var n=String.fromCharCode(r),i=t[0];i>>31},e.exports.exponent=function(t){return(e.exports.hi(t)<<1>>>21)-1023},e.exports.fraction=function(t){var r=e.exports.lo(t),n=e.exports.hi(t),i=1048575&n;return 2146435072&n&&(i+=1<<20),[r,i]},e.exports.denormalized=function(t){return!(2146435072&e.exports.hi(t))}}).call(this)}).call(this,t("buffer").Buffer)},{buffer:111}],174:[function(t,e,r){var n=t("abs-svg-path"),i=t("normalize-svg-path"),a={M:"moveTo",C:"bezierCurveTo"};e.exports=function(t,e){t.beginPath(),i(n(e)).forEach((function(e){var r=e[0],n=e.slice(1);t[a[r]].apply(t,n)})),t.closePath()}},{"abs-svg-path":65,"normalize-svg-path":497}],175:[function(t,e,r){e.exports=function(t){switch(t){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}}},{}],176:[function(t,e,r){"use strict";e.exports=function(t,e){switch("undefined"==typeof e&&(e=0),typeof t){case"number":if(t>0)return function(t,e){var r,n;for(r=new Array(t),n=0;n80*r){n=l=t[0],s=c=t[1];for(var b=r;bl&&(l=u),p>c&&(c=p);d=0!==(d=Math.max(l-n,c-s))?1/d:0}return o(y,x,r,n,s,d),x}function i(t,e,r,n,i){var a,o;if(i===E(t,e,r,n)>0)for(a=e;a=e;a-=n)o=M(a,t[a],t[a+1],o);return o&&x(o,o.next)&&(A(o),o=o.next),o}function a(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!x(n,n.next)&&0!==y(n.prev,n,n.next))n=n.next;else{if(A(n),(n=e=n.prev)===n.next)break;r=!0}}while(r||n!==e);return e}function o(t,e,r,n,i,f,h){if(t){!h&&f&&function(t,e,r,n){var i=t;do{null===i.z&&(i.z=d(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,r,n,i,a,o,s,l,c=1;do{for(r=t,t=null,a=null,o=0;r;){for(o++,n=r,s=0,e=0;e0||l>0&&n;)0!==s&&(0===l||!n||r.z<=n.z)?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,l--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;r=n}a.nextZ=null,c*=2}while(o>1)}(i)}(t,n,i,f);for(var p,g,m=t;t.prev!==t.next;)if(p=t.prev,g=t.next,f?l(t,n,i,f):s(t))e.push(p.i/r),e.push(t.i/r),e.push(g.i/r),A(t),t=g.next,m=g.next;else if((t=g)===m){h?1===h?o(t=c(a(t),e,r),e,r,n,i,f,2):2===h&&u(t,e,r,n,i,f):o(a(t),e,r,n,i,f,1);break}}}function s(t){var e=t.prev,r=t,n=t.next;if(y(e,r,n)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(m(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&y(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function l(t,e,r,n){var i=t.prev,a=t,o=t.next;if(y(i,a,o)>=0)return!1;for(var s=i.xa.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,u=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=d(s,l,e,r,n),h=d(c,u,e,r,n),p=t.prevZ,g=t.nextZ;p&&p.z>=f&&g&&g.z<=h;){if(p!==t.prev&&p!==t.next&&m(i.x,i.y,a.x,a.y,o.x,o.y,p.x,p.y)&&y(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,g!==t.prev&&g!==t.next&&m(i.x,i.y,a.x,a.y,o.x,o.y,g.x,g.y)&&y(g.prev,g,g.next)>=0)return!1;g=g.nextZ}for(;p&&p.z>=f;){if(p!==t.prev&&p!==t.next&&m(i.x,i.y,a.x,a.y,o.x,o.y,p.x,p.y)&&y(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;g&&g.z<=h;){if(g!==t.prev&&g!==t.next&&m(i.x,i.y,a.x,a.y,o.x,o.y,g.x,g.y)&&y(g.prev,g,g.next)>=0)return!1;g=g.nextZ}return!0}function c(t,e,r){var n=t;do{var i=n.prev,o=n.next.next;!x(i,o)&&b(i,n,n.next,o)&&T(i,o)&&T(o,i)&&(e.push(i.i/r),e.push(n.i/r),e.push(o.i/r),A(n),A(n.next),n=t=o),n=n.next}while(n!==t);return a(n)}function u(t,e,r,n,i,s){var l=t;do{for(var c=l.next.next;c!==l.prev;){if(l.i!==c.i&&v(l,c)){var u=k(l,c);return l=a(l,l.next),u=a(u,u.next),o(l,e,r,n,i,s),void o(u,e,r,n,i,s)}c=c.next}l=l.next}while(l!==t)}function f(t,e){return t.x-e.x}function h(t,e){if(e=function(t,e){var r,n=e,i=t.x,a=t.y,o=-1/0;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){var s=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=i&&s>o){if(o=s,s===i){if(a===n.y)return n;if(a===n.next.y)return n.next}r=n.x=n.x&&n.x>=u&&i!==n.x&&m(ar.x||n.x===r.x&&p(r,n)))&&(r=n,h=l)),n=n.next}while(n!==c);return r}(t,e)){var r=k(e,t);a(e,e.next),a(r,r.next)}}function p(t,e){return y(t.prev,t,e.prev)<0&&y(e.next,t,t.next)<0}function d(t,e,r,n,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function g(t){var e=t,r=t;do{(e.x=0&&(t-o)*(n-s)-(r-o)*(e-s)>=0&&(r-o)*(a-s)-(i-o)*(n-s)>=0}function v(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&b(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}(t,e)&&(T(t,e)&&T(e,t)&&function(t,e){var r=t,n=!1,i=(t.x+e.x)/2,a=(t.y+e.y)/2;do{r.y>a!=r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==t);return n}(t,e)&&(y(t.prev,t,e.prev)||y(t,e.prev,e))||x(t,e)&&y(t.prev,t,t.next)>0&&y(e.prev,e,e.next)>0)}function y(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function x(t,e){return t.x===e.x&&t.y===e.y}function b(t,e,r,n){var i=w(y(t,e,r)),a=w(y(t,e,n)),o=w(y(r,n,t)),s=w(y(r,n,e));return i!==a&&o!==s||(!(0!==i||!_(t,r,e))||(!(0!==a||!_(t,n,e))||(!(0!==o||!_(r,t,n))||!(0!==s||!_(r,e,n)))))}function _(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function w(t){return t>0?1:t<0?-1:0}function T(t,e){return y(t.prev,t,t.next)<0?y(t,e,t.next)>=0&&y(t,t.prev,e)>=0:y(t,e,t.prev)<0||y(t,t.next,e)<0}function k(t,e){var r=new S(t.i,t.x,t.y),n=new S(e.i,e.x,e.y),i=t.next,a=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function M(t,e,r,n){var i=new S(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function A(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function S(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function E(t,e,r,n){for(var i=0,a=e,o=r-n;a0&&(n+=t[i-1].length,r.holes.push(n))}return r}},{}],178:[function(t,e,r){"use strict";e.exports=function(t,e){var r=t.length;if("number"!=typeof e){e=0;for(var i=0;i=e}))}(e);for(var r,i=n(t).components.filter((function(t){return t.length>1})),a=1/0,o=0;o=55296&&y<=56319&&(w+=t[++r]),w=T?h.call(T,k,w,g):w,e?(p.value=w,d(m,g,p)):m[g]=w,++g;v=g}if(void 0===v)for(v=o(t.length),e&&(m=new e(v)),r=0;r0?1:-1}},{}],190:[function(t,e,r){"use strict";var n=t("../math/sign"),i=Math.abs,a=Math.floor;e.exports=function(t){return isNaN(t)?0:0!==(t=Number(t))&&isFinite(t)?n(t)*a(i(t)):t}},{"../math/sign":187}],191:[function(t,e,r){"use strict";var n=t("./to-integer"),i=Math.max;e.exports=function(t){return i(0,n(t))}},{"./to-integer":190}],192:[function(t,e,r){"use strict";var n=t("./valid-callable"),i=t("./valid-value"),a=Function.prototype.bind,o=Function.prototype.call,s=Object.keys,l=Object.prototype.propertyIsEnumerable;e.exports=function(t,e){return function(r,c){var u,f=arguments[2],h=arguments[3];return r=Object(i(r)),n(c),u=s(r),h&&u.sort("function"==typeof h?a.call(h,r):void 0),"function"!=typeof t&&(t=u[t]),o.call(t,u,(function(t,n){return l.call(r,t)?o.call(c,f,r[t],t,r,n):e}))}}},{"./valid-callable":209,"./valid-value":211}],193:[function(t,e,r){"use strict";e.exports=t("./is-implemented")()?Object.assign:t("./shim")},{"./is-implemented":194,"./shim":195}],194:[function(t,e,r){"use strict";e.exports=function(){var t,e=Object.assign;return"function"==typeof e&&(e(t={foo:"raz"},{bar:"dwa"},{trzy:"trzy"}),t.foo+t.bar+t.trzy==="razdwatrzy")}},{}],195:[function(t,e,r){"use strict";var n=t("../keys"),i=t("../valid-value"),a=Math.max;e.exports=function(t,e){var r,o,s,l=a(arguments.length,2);for(t=Object(i(t)),s=function(n){try{t[n]=e[n]}catch(t){r||(r=t)}},o=1;o-1}},{}],215:[function(t,e,r){"use strict";var n=Object.prototype.toString,i=n.call("");e.exports=function(t){return"string"==typeof t||t&&"object"==typeof t&&(t instanceof String||n.call(t)===i)||!1}},{}],216:[function(t,e,r){"use strict";var n=Object.create(null),i=Math.random;e.exports=function(){var t;do{t=i().toString(36).slice(2)}while(n[t]);return t}},{}],217:[function(t,e,r){"use strict";var n,i=t("es5-ext/object/set-prototype-of"),a=t("es5-ext/string/#/contains"),o=t("d"),s=t("es6-symbol"),l=t("./"),c=Object.defineProperty;n=e.exports=function(t,e){if(!(this instanceof n))throw new TypeError("Constructor requires 'new'");l.call(this,t),e=e?a.call(e,"key+value")?"key+value":a.call(e,"key")?"key":"value":"value",c(this,"__kind__",o("",e))},i&&i(n,l),delete n.prototype.constructor,n.prototype=Object.create(l.prototype,{_resolve:o((function(t){return"value"===this.__kind__?this.__list__[t]:"key+value"===this.__kind__?[t,this.__list__[t]]:t}))}),c(n.prototype,s.toStringTag,o("c","Array Iterator"))},{"./":220,d:155,"es5-ext/object/set-prototype-of":206,"es5-ext/string/#/contains":212,"es6-symbol":225}],218:[function(t,e,r){"use strict";var n=t("es5-ext/function/is-arguments"),i=t("es5-ext/object/valid-callable"),a=t("es5-ext/string/is-string"),o=t("./get"),s=Array.isArray,l=Function.prototype.call,c=Array.prototype.some;e.exports=function(t,e){var r,u,f,h,p,d,g,m,v=arguments[2];if(s(t)||n(t)?r="array":a(t)?r="string":t=o(t),i(e),f=function(){h=!0},"array"!==r)if("string"!==r)for(u=t.next();!u.done;){if(l.call(e,v,u.value,f),h)return;u=t.next()}else for(d=t.length,p=0;p=55296&&m<=56319&&(g+=t[++p]),l.call(e,v,g,f),!h);++p);else c.call(t,(function(t){return l.call(e,v,t,f),h}))}},{"./get":219,"es5-ext/function/is-arguments":184,"es5-ext/object/valid-callable":209,"es5-ext/string/is-string":215}],219:[function(t,e,r){"use strict";var n=t("es5-ext/function/is-arguments"),i=t("es5-ext/string/is-string"),a=t("./array"),o=t("./string"),s=t("./valid-iterable"),l=t("es6-symbol").iterator;e.exports=function(t){return"function"==typeof s(t)[l]?t[l]():n(t)?new a(t):i(t)?new o(t):new a(t)}},{"./array":217,"./string":222,"./valid-iterable":223,"es5-ext/function/is-arguments":184,"es5-ext/string/is-string":215,"es6-symbol":225}],220:[function(t,e,r){"use strict";var n,i=t("es5-ext/array/#/clear"),a=t("es5-ext/object/assign"),o=t("es5-ext/object/valid-callable"),s=t("es5-ext/object/valid-value"),l=t("d"),c=t("d/auto-bind"),u=t("es6-symbol"),f=Object.defineProperty,h=Object.defineProperties;e.exports=n=function(t,e){if(!(this instanceof n))throw new TypeError("Constructor requires 'new'");h(this,{__list__:l("w",s(t)),__context__:l("w",e),__nextIndex__:l("w",0)}),e&&(o(e.on),e.on("_add",this._onAdd),e.on("_delete",this._onDelete),e.on("_clear",this._onClear))},delete n.prototype.constructor,h(n.prototype,a({_next:l((function(){var t;if(this.__list__)return this.__redo__&&void 0!==(t=this.__redo__.shift())?t:this.__nextIndex__=this.__nextIndex__||(++this.__nextIndex__,this.__redo__?(this.__redo__.forEach((function(e,r){e>=t&&(this.__redo__[r]=++e)}),this),this.__redo__.push(t)):f(this,"__redo__",l("c",[t])))})),_onDelete:l((function(t){var e;t>=this.__nextIndex__||(--this.__nextIndex__,this.__redo__&&(-1!==(e=this.__redo__.indexOf(t))&&this.__redo__.splice(e,1),this.__redo__.forEach((function(e,r){e>t&&(this.__redo__[r]=--e)}),this)))})),_onClear:l((function(){this.__redo__&&i.call(this.__redo__),this.__nextIndex__=0}))}))),f(n.prototype,u.iterator,l((function(){return this})))},{d:155,"d/auto-bind":154,"es5-ext/array/#/clear":180,"es5-ext/object/assign":193,"es5-ext/object/valid-callable":209,"es5-ext/object/valid-value":211,"es6-symbol":225}],221:[function(t,e,r){"use strict";var n=t("es5-ext/function/is-arguments"),i=t("es5-ext/object/is-value"),a=t("es5-ext/string/is-string"),o=t("es6-symbol").iterator,s=Array.isArray;e.exports=function(t){return!!i(t)&&(!!s(t)||(!!a(t)||(!!n(t)||"function"==typeof t[o])))}},{"es5-ext/function/is-arguments":184,"es5-ext/object/is-value":200,"es5-ext/string/is-string":215,"es6-symbol":225}],222:[function(t,e,r){"use strict";var n,i=t("es5-ext/object/set-prototype-of"),a=t("d"),o=t("es6-symbol"),s=t("./"),l=Object.defineProperty;n=e.exports=function(t){if(!(this instanceof n))throw new TypeError("Constructor requires 'new'");t=String(t),s.call(this,t),l(this,"__length__",a("",t.length))},i&&i(n,s),delete n.prototype.constructor,n.prototype=Object.create(s.prototype,{_next:a((function(){if(this.__list__)return this.__nextIndex__=55296&&e<=56319?r+this.__list__[this.__nextIndex__++]:r}))}),l(n.prototype,o.toStringTag,a("c","String Iterator"))},{"./":220,d:155,"es5-ext/object/set-prototype-of":206,"es6-symbol":225}],223:[function(t,e,r){"use strict";var n=t("./is-iterable");e.exports=function(t){if(!n(t))throw new TypeError(t+" is not iterable");return t}},{"./is-iterable":221}],224:[function(t,e,r){(function(n,i){(function(){ -/*! - * @overview es6-promise - a tiny implementation of Promises/A+. - * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) - * @license Licensed under MIT license - * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE - * @version v4.2.8+1e68dce6 - */ -!function(t,n){"object"==typeof r&&"undefined"!=typeof e?e.exports=n():t.ES6Promise=n()}(this,(function(){"use strict";function e(t){return"function"==typeof t}var r=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},a=0,o=void 0,s=void 0,l=function(t,e){g[a]=t,g[a+1]=e,2===(a+=2)&&(s?s(m):_())};var c="undefined"!=typeof window?window:void 0,u=c||{},f=u.MutationObserver||u.WebKitMutationObserver,h="undefined"==typeof self&&"undefined"!=typeof n&&"[object process]"==={}.toString.call(n),p="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function d(){var t=setTimeout;return function(){return t(m,1)}}var g=new Array(1e3);function m(){for(var t=0;t=r-1){h=l.length-1;var d=t-e[r-1];for(p=0;p=r-1)for(var u=s.length-1,f=(e[r-1],0);f=0;--r)if(t[--e])return!1;return!0},s.jump=function(t){var e=this.lastT(),r=this.dimension;if(!(t0;--f)n.push(a(l[f-1],c[f-1],arguments[f])),i.push(0)}},s.push=function(t){var e=this.lastT(),r=this.dimension;if(!(t1e-6?1/s:0;this._time.push(t);for(var h=r;h>0;--h){var p=a(c[h-1],u[h-1],arguments[h]);n.push(p),i.push((p-n[o++])*f)}}},s.set=function(t){var e=this.dimension;if(!(t0;--l)r.push(a(o[l-1],s[l-1],arguments[l])),n.push(0)}},s.move=function(t){var e=this.lastT(),r=this.dimension;if(!(t<=e||arguments.length!==r+1)){var n=this._state,i=this._velocity,o=n.length-this.dimension,s=this.bounds,l=s[0],c=s[1],u=t-e,f=u>1e-6?1/u:0;this._time.push(t);for(var h=r;h>0;--h){var p=arguments[h];n.push(a(l[h-1],c[h-1],n[o++]+p)),i.push(p*f)}}},s.idle=function(t){var e=this.lastT();if(!(t=0;--f)n.push(a(l[f],c[f],n[o]+u*i[o])),i.push(0),o+=1}}},{"binary-search-bounds":243,"cubic-hermite":150}],243:[function(t,e,r){"use strict";function n(t,e,r,n,i,a){var o=["function ",t,"(a,l,h,",n.join(","),"){",a?"":"var i=",r?"l-1":"h+1",";while(l<=h){var m=(l+h)>>>1,x=a",i?".get(m)":"[m]"];return a?e.indexOf("c")<0?o.push(";if(x===y){return m}else if(x<=y){"):o.push(";var p=c(x,y);if(p===0){return m}else if(p<=0){"):o.push(";if(",e,"){i=m;"),r?o.push("l=m+1}else{h=m-1}"):o.push("h=m-1}else{l=m+1}"),o.push("}"),a?o.push("return -1};"):o.push("return i};"),o.join("")}function i(t,e,r,i){return new Function([n("A","x"+t+"y",e,["y"],!1,i),n("B","x"+t+"y",e,["y"],!0,i),n("P","c(x,y)"+t+"0",e,["y","c"],!1,i),n("Q","c(x,y)"+t+"0",e,["y","c"],!0,i),"function dispatchBsearch",r,"(a,y,c,l,h){if(a.shape){if(typeof(c)==='function'){return Q(a,(l===undefined)?0:l|0,(h===undefined)?a.shape[0]-1:h|0,y,c)}else{return B(a,(c===undefined)?0:c|0,(l===undefined)?a.shape[0]-1:l|0,y)}}else{if(typeof(c)==='function'){return P(a,(l===undefined)?0:l|0,(h===undefined)?a.length-1:h|0,y,c)}else{return A(a,(c===undefined)?0:c|0,(l===undefined)?a.length-1:l|0,y)}}}return dispatchBsearch",r].join(""))()}e.exports={ge:i(">=",!1,"GE"),gt:i(">",!1,"GT"),lt:i("<",!0,"LT"),le:i("<=",!0,"LE"),eq:i("-",!0,"EQ",!0)}},{}],244:[function(t,e,r){var n=t("dtype");e.exports=function(t,e,r){if(!t)throw new TypeError("must specify data as first parameter");if(r=0|+(r||0),Array.isArray(t)&&t[0]&&"number"==typeof t[0][0]){var i,a,o,s,l=t[0].length,c=t.length*l;e&&"string"!=typeof e||(e=new(n(e||"float32"))(c+r));var u=e.length-r;if(c!==u)throw new Error("source length "+c+" ("+l+"x"+t.length+") does not match destination length "+u);for(i=0,o=r;ie[0]-o[0]/2&&(h=o[0]/2,p+=o[1]);return r}},{"css-font/stringify":147}],246:[function(t,e,r){"use strict";function n(t,e){e||(e={}),("string"==typeof t||Array.isArray(t))&&(e.family=t);var r=Array.isArray(e.family)?e.family.join(", "):e.family;if(!r)throw Error("`family` must be defined");var s=e.size||e.fontSize||e.em||48,l=e.weight||e.fontWeight||"",c=(t=[e.style||e.fontStyle||"",l,s].join(" ")+"px "+r,e.origin||"top");if(n.cache[r]&&s<=n.cache[r].em)return i(n.cache[r],c);var u=e.canvas||n.canvas,f=u.getContext("2d"),h={upper:void 0!==e.upper?e.upper:"H",lower:void 0!==e.lower?e.lower:"x",descent:void 0!==e.descent?e.descent:"p",ascent:void 0!==e.ascent?e.ascent:"h",tittle:void 0!==e.tittle?e.tittle:"i",overshoot:void 0!==e.overshoot?e.overshoot:"O"},p=Math.ceil(1.5*s);u.height=p,u.width=.5*p,f.font=t;var d={top:0};f.clearRect(0,0,p,p),f.textBaseline="top",f.fillStyle="black",f.fillText("H",0,0);var g=a(f.getImageData(0,0,p,p));f.clearRect(0,0,p,p),f.textBaseline="bottom",f.fillText("H",0,p);var m=a(f.getImageData(0,0,p,p));d.lineHeight=d.bottom=p-m+g,f.clearRect(0,0,p,p),f.textBaseline="alphabetic",f.fillText("H",0,p);var v=p-a(f.getImageData(0,0,p,p))-1+g;d.baseline=d.alphabetic=v,f.clearRect(0,0,p,p),f.textBaseline="middle",f.fillText("H",0,.5*p);var y=a(f.getImageData(0,0,p,p));d.median=d.middle=p-y-1+g-.5*p,f.clearRect(0,0,p,p),f.textBaseline="hanging",f.fillText("H",0,.5*p);var x=a(f.getImageData(0,0,p,p));d.hanging=p-x-1+g-.5*p,f.clearRect(0,0,p,p),f.textBaseline="ideographic",f.fillText("H",0,p);var b=a(f.getImageData(0,0,p,p));if(d.ideographic=p-b-1+g,h.upper&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.upper,0,0),d.upper=a(f.getImageData(0,0,p,p)),d.capHeight=d.baseline-d.upper),h.lower&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.lower,0,0),d.lower=a(f.getImageData(0,0,p,p)),d.xHeight=d.baseline-d.lower),h.tittle&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.tittle,0,0),d.tittle=a(f.getImageData(0,0,p,p))),h.ascent&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.ascent,0,0),d.ascent=a(f.getImageData(0,0,p,p))),h.descent&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.descent,0,0),d.descent=o(f.getImageData(0,0,p,p))),h.overshoot){f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.overshoot,0,0);var _=o(f.getImageData(0,0,p,p));d.overshoot=_-v}for(var w in d)d[w]/=s;return d.em=s,n.cache[r]=d,i(d,c)}function i(t,e){var r={};for(var n in"string"==typeof e&&(e=t[e]),t)"em"!==n&&(r[n]=t[n]-e);return r}function a(t){for(var e=t.height,r=t.data,n=3;n0;n-=4)if(0!==r[n])return Math.floor(.25*(n-3)/e)}e.exports=n,n.canvas=document.createElement("canvas"),n.cache={}},{}],247:[function(t,e,r){"use strict";e.exports=function(t){return new s(t||g,null)};function n(t,e,r,n,i,a){this._color=t,this.key=e,this.value=r,this.left=n,this.right=i,this._count=a}function i(t){return new n(t._color,t.key,t.value,t.left,t.right,t._count)}function a(t,e){return new n(t,e.key,e.value,e.left,e.right,e._count)}function o(t){t._count=1+(t.left?t.left._count:0)+(t.right?t.right._count:0)}function s(t,e){this._compare=t,this.root=e}var l=s.prototype;function c(t,e){var r;if(e.left&&(r=c(t,e.left)))return r;return(r=t(e.key,e.value))||(e.right?c(t,e.right):void 0)}function u(t,e,r,n){if(e(t,n.key)<=0){var i;if(n.left)if(i=u(t,e,r,n.left))return i;if(i=r(n.key,n.value))return i}if(n.right)return u(t,e,r,n.right)}function f(t,e,r,n,i){var a,o=r(t,i.key),s=r(e,i.key);if(o<=0){if(i.left&&(a=f(t,e,r,n,i.left)))return a;if(s>0&&(a=n(i.key,i.value)))return a}if(s>0&&i.right)return f(t,e,r,n,i.right)}function h(t,e){this.tree=t,this._stack=e}Object.defineProperty(l,"keys",{get:function(){var t=[];return this.forEach((function(e,r){t.push(e)})),t}}),Object.defineProperty(l,"values",{get:function(){var t=[];return this.forEach((function(e,r){t.push(r)})),t}}),Object.defineProperty(l,"length",{get:function(){return this.root?this.root._count:0}}),l.insert=function(t,e){for(var r=this._compare,i=this.root,l=[],c=[];i;){var u=r(t,i.key);l.push(i),c.push(u),i=u<=0?i.left:i.right}l.push(new n(0,t,e,null,null,1));for(var f=l.length-2;f>=0;--f){i=l[f];c[f]<=0?l[f]=new n(i._color,i.key,i.value,l[f+1],i.right,i._count+1):l[f]=new n(i._color,i.key,i.value,i.left,l[f+1],i._count+1)}for(f=l.length-1;f>1;--f){var h=l[f-1];i=l[f];if(1===h._color||1===i._color)break;var p=l[f-2];if(p.left===h)if(h.left===i){if(!(d=p.right)||0!==d._color){if(p._color=0,p.left=h.right,h._color=1,h.right=p,l[f-2]=h,l[f-1]=i,o(p),o(h),f>=3)(g=l[f-3]).left===p?g.left=h:g.right=h;break}h._color=1,p.right=a(1,d),p._color=0,f-=1}else{if(!(d=p.right)||0!==d._color){if(h.right=i.left,p._color=0,p.left=i.right,i._color=1,i.left=h,i.right=p,l[f-2]=i,l[f-1]=h,o(p),o(h),o(i),f>=3)(g=l[f-3]).left===p?g.left=i:g.right=i;break}h._color=1,p.right=a(1,d),p._color=0,f-=1}else if(h.right===i){if(!(d=p.left)||0!==d._color){if(p._color=0,p.right=h.left,h._color=1,h.left=p,l[f-2]=h,l[f-1]=i,o(p),o(h),f>=3)(g=l[f-3]).right===p?g.right=h:g.left=h;break}h._color=1,p.left=a(1,d),p._color=0,f-=1}else{var d;if(!(d=p.left)||0!==d._color){var g;if(h.left=i.right,p._color=0,p.right=i.left,i._color=1,i.right=h,i.left=p,l[f-2]=i,l[f-1]=h,o(p),o(h),o(i),f>=3)(g=l[f-3]).right===p?g.right=i:g.left=i;break}h._color=1,p.left=a(1,d),p._color=0,f-=1}}return l[0]._color=1,new s(r,l[0])},l.forEach=function(t,e,r){if(this.root)switch(arguments.length){case 1:return c(t,this.root);case 2:return u(e,this._compare,t,this.root);case 3:if(this._compare(e,r)>=0)return;return f(e,r,this._compare,t,this.root)}},Object.defineProperty(l,"begin",{get:function(){for(var t=[],e=this.root;e;)t.push(e),e=e.left;return new h(this,t)}}),Object.defineProperty(l,"end",{get:function(){for(var t=[],e=this.root;e;)t.push(e),e=e.right;return new h(this,t)}}),l.at=function(t){if(t<0)return new h(this,[]);for(var e=this.root,r=[];;){if(r.push(e),e.left){if(t=e.right._count)break;e=e.right}return new h(this,[])},l.ge=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a<=0&&(i=n.length),r=a<=0?r.left:r.right}return n.length=i,new h(this,n)},l.gt=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a<0&&(i=n.length),r=a<0?r.left:r.right}return n.length=i,new h(this,n)},l.lt=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a>0&&(i=n.length),r=a<=0?r.left:r.right}return n.length=i,new h(this,n)},l.le=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a>=0&&(i=n.length),r=a<0?r.left:r.right}return n.length=i,new h(this,n)},l.find=function(t){for(var e=this._compare,r=this.root,n=[];r;){var i=e(t,r.key);if(n.push(r),0===i)return new h(this,n);r=i<=0?r.left:r.right}return new h(this,[])},l.remove=function(t){var e=this.find(t);return e?e.remove():this},l.get=function(t){for(var e=this._compare,r=this.root;r;){var n=e(t,r.key);if(0===n)return r.value;r=n<=0?r.left:r.right}};var p=h.prototype;function d(t,e){t.key=e.key,t.value=e.value,t.left=e.left,t.right=e.right,t._color=e._color,t._count=e._count}function g(t,e){return te?1:0}Object.defineProperty(p,"valid",{get:function(){return this._stack.length>0}}),Object.defineProperty(p,"node",{get:function(){return this._stack.length>0?this._stack[this._stack.length-1]:null},enumerable:!0}),p.clone=function(){return new h(this.tree,this._stack.slice())},p.remove=function(){var t=this._stack;if(0===t.length)return this.tree;var e=new Array(t.length),r=t[t.length-1];e[e.length-1]=new n(r._color,r.key,r.value,r.left,r.right,r._count);for(var l=t.length-2;l>=0;--l){(r=t[l]).left===t[l+1]?e[l]=new n(r._color,r.key,r.value,e[l+1],r.right,r._count):e[l]=new n(r._color,r.key,r.value,r.left,e[l+1],r._count)}if((r=e[e.length-1]).left&&r.right){var c=e.length;for(r=r.left;r.right;)e.push(r),r=r.right;var u=e[c-1];e.push(new n(r._color,u.key,u.value,r.left,r.right,r._count)),e[c-1].key=r.key,e[c-1].value=r.value;for(l=e.length-2;l>=c;--l)r=e[l],e[l]=new n(r._color,r.key,r.value,r.left,e[l+1],r._count);e[c-1].left=e[c]}if(0===(r=e[e.length-1])._color){var f=e[e.length-2];f.left===r?f.left=null:f.right===r&&(f.right=null),e.pop();for(l=0;l=0;--l){if(e=t[l],0===l)return void(e._color=1);if((r=t[l-1]).left===e){if((n=r.right).right&&0===n.right._color){if(s=(n=r.right=i(n)).right=i(n.right),r.right=n.left,n.left=r,n.right=s,n._color=r._color,e._color=1,r._color=1,s._color=1,o(r),o(n),l>1)(c=t[l-2]).left===r?c.left=n:c.right=n;return void(t[l-1]=n)}if(n.left&&0===n.left._color){if(s=(n=r.right=i(n)).left=i(n.left),r.right=s.left,n.left=s.right,s.left=r,s.right=n,s._color=r._color,r._color=1,n._color=1,e._color=1,o(r),o(n),o(s),l>1)(c=t[l-2]).left===r?c.left=s:c.right=s;return void(t[l-1]=s)}if(1===n._color){if(0===r._color)return r._color=1,void(r.right=a(0,n));r.right=a(0,n);continue}n=i(n),r.right=n.left,n.left=r,n._color=r._color,r._color=0,o(r),o(n),l>1&&((c=t[l-2]).left===r?c.left=n:c.right=n),t[l-1]=n,t[l]=r,l+11)(c=t[l-2]).right===r?c.right=n:c.left=n;return void(t[l-1]=n)}if(n.right&&0===n.right._color){if(s=(n=r.left=i(n)).right=i(n.right),r.left=s.right,n.right=s.left,s.right=r,s.left=n,s._color=r._color,r._color=1,n._color=1,e._color=1,o(r),o(n),o(s),l>1)(c=t[l-2]).right===r?c.right=s:c.left=s;return void(t[l-1]=s)}if(1===n._color){if(0===r._color)return r._color=1,void(r.left=a(0,n));r.left=a(0,n);continue}var c;n=i(n),r.left=n.right,n.right=r,n._color=r._color,r._color=0,o(r),o(n),l>1&&((c=t[l-2]).right===r?c.right=n:c.left=n),t[l-1]=n,t[l]=r,l+10)return this._stack[this._stack.length-1].key},enumerable:!0}),Object.defineProperty(p,"value",{get:function(){if(this._stack.length>0)return this._stack[this._stack.length-1].value},enumerable:!0}),Object.defineProperty(p,"index",{get:function(){var t=0,e=this._stack;if(0===e.length){var r=this.tree.root;return r?r._count:0}e[e.length-1].left&&(t=e[e.length-1].left._count);for(var n=e.length-2;n>=0;--n)e[n+1]===e[n].right&&(++t,e[n].left&&(t+=e[n].left._count));return t},enumerable:!0}),p.next=function(){var t=this._stack;if(0!==t.length){var e=t[t.length-1];if(e.right)for(e=e.right;e;)t.push(e),e=e.left;else for(t.pop();t.length>0&&t[t.length-1].right===e;)e=t[t.length-1],t.pop()}},Object.defineProperty(p,"hasNext",{get:function(){var t=this._stack;if(0===t.length)return!1;if(t[t.length-1].right)return!0;for(var e=t.length-1;e>0;--e)if(t[e-1].left===t[e])return!0;return!1}}),p.update=function(t){var e=this._stack;if(0===e.length)throw new Error("Can't update empty node!");var r=new Array(e.length),i=e[e.length-1];r[r.length-1]=new n(i._color,i.key,t,i.left,i.right,i._count);for(var a=e.length-2;a>=0;--a)(i=e[a]).left===e[a+1]?r[a]=new n(i._color,i.key,i.value,r[a+1],i.right,i._count):r[a]=new n(i._color,i.key,i.value,i.left,r[a+1],i._count);return new s(this.tree._compare,r[0])},p.prev=function(){var t=this._stack;if(0!==t.length){var e=t[t.length-1];if(e.left)for(e=e.left;e;)t.push(e),e=e.right;else for(t.pop();t.length>0&&t[t.length-1].left===e;)e=t[t.length-1],t.pop()}},Object.defineProperty(p,"hasPrev",{get:function(){var t=this._stack;if(0===t.length)return!1;if(t[t.length-1].left)return!0;for(var e=t.length-1;e>0;--e)if(t[e-1].right===t[e])return!0;return!1}})},{}],248:[function(t,e,r){var n=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,1.5056327351493116e-7],i=[.9999999999999971,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22];function a(t){if(t<0)return Number("0/0");for(var e=i[0],r=i.length-1;r>0;--r)e+=i[r]/(t+r);var n=t+607/128+.5;return.5*Math.log(2*Math.PI)+(t+.5)*Math.log(n)-n+Math.log(e)-Math.log(t)}e.exports=function t(e){if(e<.5)return Math.PI/(Math.sin(Math.PI*e)*t(1-e));if(e>100)return Math.exp(a(e));e-=1;for(var r=n[0],i=1;i<9;i++)r+=n[i]/(e+i);var o=e+7+.5;return Math.sqrt(2*Math.PI)*Math.pow(o,e+.5)*Math.exp(-o)*r},e.exports.log=a},{}],249:[function(t,e,r){e.exports=function(t,e){if("string"!=typeof t)throw new TypeError("must specify type string");if(e=e||{},"undefined"==typeof document&&!e.canvas)return null;var r=e.canvas||document.createElement("canvas");"number"==typeof e.width&&(r.width=e.width);"number"==typeof e.height&&(r.height=e.height);var n,i=e;try{var a=[t];0===t.indexOf("webgl")&&a.push("experimental-"+t);for(var o=0;o0?(p[u]=-1,d[u]=0):(p[u]=0,d[u]=1)}}var g=[0,0,0],m={model:l,view:l,projection:l,_ortho:!1};f.isOpaque=function(){return!0},f.isTransparent=function(){return!1},f.drawTransparent=function(t){};var v=[0,0,0],y=[0,0,0],x=[0,0,0];f.draw=function(t){t=t||m;for(var e=this.gl,r=t.model||l,n=t.view||l,i=t.projection||l,a=this.bounds,s=t._ortho||!1,u=o(r,n,i,a,s),f=u.cubeEdges,h=u.axis,b=n[12],_=n[13],w=n[14],T=n[15],k=(s?2:1)*this.pixelRatio*(i[3]*b+i[7]*_+i[11]*w+i[15]*T)/e.drawingBufferHeight,M=0;M<3;++M)this.lastCubeProps.cubeEdges[M]=f[M],this.lastCubeProps.axis[M]=h[M];var A=p;for(M=0;M<3;++M)d(p[M],M,this.bounds,f,h);e=this.gl;var S,E=g;for(M=0;M<3;++M)this.backgroundEnable[M]?E[M]=h[M]:E[M]=0;this._background.draw(r,n,i,a,E,this.backgroundColor),this._lines.bind(r,n,i,this);for(M=0;M<3;++M){var C=[0,0,0];h[M]>0?C[M]=a[1][M]:C[M]=a[0][M];for(var L=0;L<2;++L){var I=(M+1+L)%3,P=(M+1+(1^L))%3;this.gridEnable[I]&&this._lines.drawGrid(I,P,this.bounds,C,this.gridColor[I],this.gridWidth[I]*this.pixelRatio)}for(L=0;L<2;++L){I=(M+1+L)%3,P=(M+1+(1^L))%3;this.zeroEnable[P]&&Math.min(a[0][P],a[1][P])<=0&&Math.max(a[0][P],a[1][P])>=0&&this._lines.drawZero(I,P,this.bounds,C,this.zeroLineColor[P],this.zeroLineWidth[P]*this.pixelRatio)}}for(M=0;M<3;++M){this.lineEnable[M]&&this._lines.drawAxisLine(M,this.bounds,A[M].primalOffset,this.lineColor[M],this.lineWidth[M]*this.pixelRatio),this.lineMirror[M]&&this._lines.drawAxisLine(M,this.bounds,A[M].mirrorOffset,this.lineColor[M],this.lineWidth[M]*this.pixelRatio);var z=c(v,A[M].primalMinor),O=c(y,A[M].mirrorMinor),D=this.lineTickLength;for(L=0;L<3;++L){var R=k/r[5*L];z[L]*=D[L]*R,O[L]*=D[L]*R}this.lineTickEnable[M]&&this._lines.drawAxisTicks(M,A[M].primalOffset,z,this.lineTickColor[M],this.lineTickWidth[M]*this.pixelRatio),this.lineTickMirror[M]&&this._lines.drawAxisTicks(M,A[M].mirrorOffset,O,this.lineTickColor[M],this.lineTickWidth[M]*this.pixelRatio)}this._lines.unbind(),this._text.bind(r,n,i,this.pixelRatio);var F,B;function N(t){(B=[0,0,0])[t]=1}function j(t,e,r){var n=(t+1)%3,i=(t+2)%3,a=e[n],o=e[i],s=r[n],l=r[i];a>0&&l>0||a>0&&l<0||a<0&&l>0||a<0&&l<0?N(n):(o>0&&s>0||o>0&&s<0||o<0&&s>0||o<0&&s<0)&&N(i)}for(M=0;M<3;++M){var U=A[M].primalMinor,V=A[M].mirrorMinor,q=c(x,A[M].primalOffset);for(L=0;L<3;++L)this.lineTickEnable[M]&&(q[L]+=k*U[L]*Math.max(this.lineTickLength[L],0)/r[5*L]);var H=[0,0,0];if(H[M]=1,this.tickEnable[M]){-3600===this.tickAngle[M]?(this.tickAngle[M]=0,this.tickAlign[M]="auto"):this.tickAlign[M]=-1,F=1,"auto"===(S=[this.tickAlign[M],.5,F])[0]?S[0]=0:S[0]=parseInt(""+S[0]),B=[0,0,0],j(M,U,V);for(L=0;L<3;++L)q[L]+=k*U[L]*this.tickPad[L]/r[5*L];this._text.drawTicks(M,this.tickSize[M],this.tickAngle[M],q,this.tickColor[M],H,B,S)}if(this.labelEnable[M]){F=0,B=[0,0,0],this.labels[M].length>4&&(N(M),F=1),"auto"===(S=[this.labelAlign[M],.5,F])[0]?S[0]=0:S[0]=parseInt(""+S[0]);for(L=0;L<3;++L)q[L]+=k*U[L]*this.labelPad[L]/r[5*L];q[M]+=.5*(a[0][M]+a[1][M]),this._text.drawLabel(M,this.labelSize[M],this.labelAngle[M],q,this.labelColor[M],[0,0,0],B,S)}}this._text.unbind()},f.dispose=function(){this._text.dispose(),this._lines.dispose(),this._background.dispose(),this._lines=null,this._text=null,this._background=null,this.gl=null}},{"./lib/background.js":251,"./lib/cube.js":252,"./lib/lines.js":253,"./lib/text.js":255,"./lib/ticks.js":256}],251:[function(t,e,r){"use strict";e.exports=function(t){for(var e=[],r=[],s=0,l=0;l<3;++l)for(var c=(l+1)%3,u=(l+2)%3,f=[0,0,0],h=[0,0,0],p=-1;p<=1;p+=2){r.push(s,s+2,s+1,s+1,s+2,s+3),f[l]=p,h[l]=p;for(var d=-1;d<=1;d+=2){f[c]=d;for(var g=-1;g<=1;g+=2)f[u]=g,e.push(f[0],f[1],f[2],h[0],h[1],h[2]),s+=1}var m=c;c=u,u=m}var v=n(t,new Float32Array(e)),y=n(t,new Uint16Array(r),t.ELEMENT_ARRAY_BUFFER),x=i(t,[{buffer:v,type:t.FLOAT,size:3,offset:0,stride:24},{buffer:v,type:t.FLOAT,size:3,offset:12,stride:24}],y),b=a(t);return b.attributes.position.location=0,b.attributes.normal.location=1,new o(t,v,x,b)};var n=t("gl-buffer"),i=t("gl-vao"),a=t("./shaders").bg;function o(t,e,r,n){this.gl=t,this.buffer=e,this.vao=r,this.shader=n}var s=o.prototype;s.draw=function(t,e,r,n,i,a){for(var o=!1,s=0;s<3;++s)o=o||i[s];if(o){var l=this.gl;l.enable(l.POLYGON_OFFSET_FILL),l.polygonOffset(1,2),this.shader.bind(),this.shader.uniforms={model:t,view:e,projection:r,bounds:n,enable:i,colors:a},this.vao.bind(),this.vao.draw(this.gl.TRIANGLES,36),this.vao.unbind(),l.disable(l.POLYGON_OFFSET_FILL)}},s.dispose=function(){this.vao.dispose(),this.buffer.dispose(),this.shader.dispose()}},{"./shaders":254,"gl-buffer":259,"gl-vao":358}],252:[function(t,e,r){"use strict";e.exports=function(t,e,r,a,p){i(s,e,t),i(s,r,s);for(var y=0,x=0;x<2;++x){u[2]=a[x][2];for(var b=0;b<2;++b){u[1]=a[b][1];for(var _=0;_<2;++_)u[0]=a[_][0],h(l[y],u,s),y+=1}}var w=-1;for(x=0;x<8;++x){for(var T=l[x][3],k=0;k<3;++k)c[x][k]=l[x][k]/T;p&&(c[x][2]*=-1),T<0&&(w<0||c[x][2]E&&(w|=1<E&&(w|=1<c[x][1])&&(R=x);var F=-1;for(x=0;x<3;++x){if((N=R^1<c[B][0]&&(B=N)}var j=g;j[0]=j[1]=j[2]=0,j[n.log2(F^R)]=R&F,j[n.log2(R^B)]=R&B;var U=7^B;U===w||U===D?(U=7^F,j[n.log2(B^U)]=U&B):j[n.log2(F^U)]=U&F;var V=m,q=w;for(M=0;M<3;++M)V[M]=q&1< HALF_PI) && (b <= ONE_AND_HALF_PI)) ?\n b - PI :\n b;\n}\n\nfloat look_horizontal_or_vertical(float a, float ratio) {\n // ratio controls the ratio between being horizontal to (vertical + horizontal)\n // if ratio is set to 0.5 then it is 50%, 50%.\n // when using a higher ratio e.g. 0.75 the result would\n // likely be more horizontal than vertical.\n\n float b = positive_angle(a);\n\n return\n (b < ( ratio) * HALF_PI) ? 0.0 :\n (b < (2.0 - ratio) * HALF_PI) ? -HALF_PI :\n (b < (2.0 + ratio) * HALF_PI) ? 0.0 :\n (b < (4.0 - ratio) * HALF_PI) ? HALF_PI :\n 0.0;\n}\n\nfloat roundTo(float a, float b) {\n return float(b * floor((a + 0.5 * b) / b));\n}\n\nfloat look_round_n_directions(float a, int n) {\n float b = positive_angle(a);\n float div = TWO_PI / float(n);\n float c = roundTo(b, div);\n return look_upwards(c);\n}\n\nfloat applyAlignOption(float rawAngle, float delta) {\n return\n (option > 2) ? look_round_n_directions(rawAngle + delta, option) : // option 3-n: round to n directions\n (option == 2) ? look_horizontal_or_vertical(rawAngle + delta, hv_ratio) : // horizontal or vertical\n (option == 1) ? rawAngle + delta : // use free angle, and flip to align with one direction of the axis\n (option == 0) ? look_upwards(rawAngle) : // use free angle, and stay upwards\n (option ==-1) ? 0.0 : // useful for backward compatibility, all texts remains horizontal\n rawAngle; // otherwise return back raw input angle\n}\n\nbool isAxisTitle = (axis.x == 0.0) &&\n (axis.y == 0.0) &&\n (axis.z == 0.0);\n\nvoid main() {\n //Compute world offset\n float axisDistance = position.z;\n vec3 dataPosition = axisDistance * axis + offset;\n\n float beta = angle; // i.e. user defined attributes for each tick\n\n float axisAngle;\n float clipAngle;\n float flip;\n\n if (enableAlign) {\n axisAngle = (isAxisTitle) ? HALF_PI :\n computeViewAngle(dataPosition, dataPosition + axis);\n clipAngle = computeViewAngle(dataPosition, dataPosition + alignDir);\n\n axisAngle += (sin(axisAngle) < 0.0) ? PI : 0.0;\n clipAngle += (sin(clipAngle) < 0.0) ? PI : 0.0;\n\n flip = (dot(vec2(cos(axisAngle), sin(axisAngle)),\n vec2(sin(clipAngle),-cos(clipAngle))) > 0.0) ? 1.0 : 0.0;\n\n beta += applyAlignOption(clipAngle, flip * PI);\n }\n\n //Compute plane offset\n vec2 planeCoord = position.xy * pixelScale;\n\n mat2 planeXform = scale * mat2(\n cos(beta), sin(beta),\n -sin(beta), cos(beta)\n );\n\n vec2 viewOffset = 2.0 * planeXform * planeCoord / resolution;\n\n //Compute clip position\n vec3 clipPosition = project(dataPosition);\n\n //Apply text offset in clip coordinates\n clipPosition += vec3(viewOffset, 0.0);\n\n //Done\n gl_Position = vec4(clipPosition, 1.0);\n}"]),l=n(["precision highp float;\n#define GLSLIFY 1\n\nuniform vec4 color;\nvoid main() {\n gl_FragColor = color;\n}"]);r.text=function(t){return i(t,s,l,null,[{name:"position",type:"vec3"}])};var c=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\nattribute vec3 normal;\n\nuniform mat4 model, view, projection;\nuniform vec3 enable;\nuniform vec3 bounds[2];\n\nvarying vec3 colorChannel;\n\nvoid main() {\n\n vec3 signAxis = sign(bounds[1] - bounds[0]);\n\n vec3 realNormal = signAxis * normal;\n\n if(dot(realNormal, enable) > 0.0) {\n vec3 minRange = min(bounds[0], bounds[1]);\n vec3 maxRange = max(bounds[0], bounds[1]);\n vec3 nPosition = mix(minRange, maxRange, 0.5 * (position + 1.0));\n gl_Position = projection * view * model * vec4(nPosition, 1.0);\n } else {\n gl_Position = vec4(0,0,0,0);\n }\n\n colorChannel = abs(realNormal);\n}"]),u=n(["precision highp float;\n#define GLSLIFY 1\n\nuniform vec4 colors[3];\n\nvarying vec3 colorChannel;\n\nvoid main() {\n gl_FragColor = colorChannel.x * colors[0] +\n colorChannel.y * colors[1] +\n colorChannel.z * colors[2];\n}"]);r.bg=function(t){return i(t,c,u,null,[{name:"position",type:"vec3"},{name:"normal",type:"vec3"}])}},{"gl-shader":335,glslify:257}],255:[function(t,e,r){(function(r){(function(){"use strict";e.exports=function(t,e,r,a,s,l){var u=n(t),f=i(t,[{buffer:u,size:3}]),h=o(t);h.attributes.position.location=0;var p=new c(t,h,u,f);return p.update(e,r,a,s,l),p};var n=t("gl-buffer"),i=t("gl-vao"),a=t("vectorize-text"),o=t("./shaders").text,s=window||r.global||{},l=s.__TEXT_CACHE||{};s.__TEXT_CACHE={};function c(t,e,r,n){this.gl=t,this.shader=e,this.buffer=r,this.vao=n,this.tickOffset=this.tickCount=this.labelOffset=this.labelCount=null}var u=c.prototype,f=[0,0];u.bind=function(t,e,r,n){this.vao.bind(),this.shader.bind();var i=this.shader.uniforms;i.model=t,i.view=e,i.projection=r,i.pixelScale=n,f[0]=this.gl.drawingBufferWidth,f[1]=this.gl.drawingBufferHeight,this.shader.uniforms.resolution=f},u.unbind=function(){this.vao.unbind()},u.update=function(t,e,r,n,i){var o=[];function s(t,e,r,n,i,s){var c=l[r];c||(c=l[r]={});var u=c[e];u||(u=c[e]=function(t,e){try{return a(t,e)}catch(e){return console.warn('error vectorizing text:"'+t+'" error:',e),{cells:[],positions:[]}}}(e,{triangles:!0,font:r,textAlign:"center",textBaseline:"middle",lineSpacing:i,styletags:s}));for(var f=(n||12)/12,h=u.positions,p=u.cells,d=0,g=p.length;d=0;--v){var y=h[m[v]];o.push(f*y[0],-f*y[1],t)}}for(var c=[0,0,0],u=[0,0,0],f=[0,0,0],h=[0,0,0],p={breaklines:!0,bolds:!0,italics:!0,subscripts:!0,superscripts:!0},d=0;d<3;++d){f[d]=o.length/3|0,s(.5*(t[0][d]+t[1][d]),e[d],r[d],12,1.25,p),h[d]=(o.length/3|0)-f[d],c[d]=o.length/3|0;for(var g=0;g=0&&(i=r.length-n-1);var a=Math.pow(10,i),o=Math.round(t*e*a),s=o+"";if(s.indexOf("e")>=0)return s;var l=o/a,c=o%a;o<0?(l=0|-Math.ceil(l),c=0|-c):(l=0|Math.floor(l),c|=0);var u=""+l;if(o<0&&(u="-"+u),i){for(var f=""+c;f.length=t[0][i];--o)a.push({x:o*e[i],text:n(e[i],o)});r.push(a)}return r},r.equal=function(t,e){for(var r=0;r<3;++r){if(t[r].length!==e[r].length)return!1;for(var n=0;nr)throw new Error("gl-buffer: If resizing buffer, must not specify offset");return t.bufferSubData(e,a,i),r}function u(t,e){for(var r=n.malloc(t.length,e),i=t.length,a=0;a=0;--n){if(e[n]!==r)return!1;r*=t[n]}return!0}(t.shape,t.stride))0===t.offset&&t.data.length===t.shape[0]?this.length=c(this.gl,this.type,this.length,this.usage,t.data,e):this.length=c(this.gl,this.type,this.length,this.usage,t.data.subarray(t.offset,t.shape[0]),e);else{var s=n.malloc(t.size,r),l=a(s,t.shape);i.assign(l,t),this.length=c(this.gl,this.type,this.length,this.usage,e<0?s:s.subarray(0,t.size),e),n.free(s)}}else if(Array.isArray(t)){var f;f=this.type===this.gl.ELEMENT_ARRAY_BUFFER?u(t,"uint16"):u(t,"float32"),this.length=c(this.gl,this.type,this.length,this.usage,e<0?f:f.subarray(0,t.length),e),n.free(f)}else if("object"==typeof t&&"number"==typeof t.length)this.length=c(this.gl,this.type,this.length,this.usage,t,e);else{if("number"!=typeof t&&void 0!==t)throw new Error("gl-buffer: Invalid data type");if(e>=0)throw new Error("gl-buffer: Cannot specify offset when resizing buffer");(t|=0)<=0&&(t=1),this.gl.bufferData(this.type,0|t,this.usage),this.length=t}},e.exports=function(t,e,r,n){if(r=r||t.ARRAY_BUFFER,n=n||t.DYNAMIC_DRAW,r!==t.ARRAY_BUFFER&&r!==t.ELEMENT_ARRAY_BUFFER)throw new Error("gl-buffer: Invalid type for webgl buffer, must be either gl.ARRAY_BUFFER or gl.ELEMENT_ARRAY_BUFFER");if(n!==t.DYNAMIC_DRAW&&n!==t.STATIC_DRAW&&n!==t.STREAM_DRAW)throw new Error("gl-buffer: Invalid usage for buffer, must be either gl.DYNAMIC_DRAW, gl.STATIC_DRAW or gl.STREAM_DRAW");var i=t.createBuffer(),a=new s(t,r,i,0,n);return a.update(e),a}},{ndarray:495,"ndarray-ops":490,"typedarray-pool":595}],260:[function(t,e,r){"use strict";var n=t("gl-vec3");e.exports=function(t,e){var r=t.positions,i=t.vectors,a={positions:[],vertexIntensity:[],vertexIntensityBounds:t.vertexIntensityBounds,vectors:[],cells:[],coneOffset:t.coneOffset,colormap:t.colormap};if(0===t.positions.length)return e&&(e[0]=[0,0,0],e[1]=[0,0,0]),a;for(var o=0,s=1/0,l=-1/0,c=1/0,u=-1/0,f=1/0,h=-1/0,p=null,d=null,g=[],m=1/0,v=!1,y=0;yo&&(o=n.length(b)),y){var _=2*n.distance(p,x)/(n.length(d)+n.length(b));_?(m=Math.min(m,_),v=!1):v=!0}v||(p=x,d=b),g.push(b)}var w=[s,c,f],T=[l,u,h];e&&(e[0]=w,e[1]=T),0===o&&(o=1);var k=1/o;isFinite(m)||(m=1),a.vectorScale=m;var M=t.coneSize||.5;t.absoluteConeSize&&(M=t.absoluteConeSize*k),a.coneScale=M;y=0;for(var A=0;y=1},p.isTransparent=function(){return this.opacity<1},p.pickSlots=1,p.setPickBase=function(t){this.pickId=t},p.update=function(t){t=t||{};var e=this.gl;this.dirty=!0,"lightPosition"in t&&(this.lightPosition=t.lightPosition),"opacity"in t&&(this.opacity=t.opacity),"ambient"in t&&(this.ambientLight=t.ambient),"diffuse"in t&&(this.diffuseLight=t.diffuse),"specular"in t&&(this.specularLight=t.specular),"roughness"in t&&(this.roughness=t.roughness),"fresnel"in t&&(this.fresnel=t.fresnel),void 0!==t.tubeScale&&(this.tubeScale=t.tubeScale),void 0!==t.vectorScale&&(this.vectorScale=t.vectorScale),void 0!==t.coneScale&&(this.coneScale=t.coneScale),void 0!==t.coneOffset&&(this.coneOffset=t.coneOffset),t.colormap&&(this.texture.shape=[256,256],this.texture.minFilter=e.LINEAR_MIPMAP_LINEAR,this.texture.magFilter=e.LINEAR,this.texture.setPixels(function(t){for(var e=u({colormap:t,nshades:256,format:"rgba"}),r=new Uint8Array(1024),n=0;n<256;++n){for(var i=e[n],a=0;a<3;++a)r[4*n+a]=i[a];r[4*n+3]=255*i[3]}return c(r,[256,256,4],[4,0,1])}(t.colormap)),this.texture.generateMipmap());var r=t.cells,n=t.positions,i=t.vectors;if(n&&r&&i){var a=[],o=[],s=[],l=[],f=[];this.cells=r,this.positions=n,this.vectors=i;var h=t.meshColor||[1,1,1,1],p=t.vertexIntensity,d=1/0,g=-1/0;if(p)if(t.vertexIntensityBounds)d=+t.vertexIntensityBounds[0],g=+t.vertexIntensityBounds[1];else for(var m=0;m0){var g=this.triShader;g.bind(),g.uniforms=c,this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()}},p.drawPick=function(t){t=t||{};for(var e=this.gl,r=t.model||f,n=t.view||f,i=t.projection||f,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);this._model=[].slice.call(r),this._view=[].slice.call(n),this._projection=[].slice.call(i),this._resolution=[e.drawingBufferWidth,e.drawingBufferHeight];var s={model:r,view:n,projection:i,clipBounds:a,tubeScale:this.tubeScale,vectorScale:this.vectorScale,coneScale:this.coneScale,coneOffset:this.coneOffset,pickId:this.pickId/255},l=this.pickShader;l.bind(),l.uniforms=s,this.triangleCount>0&&(this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind())},p.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;var e=t.value[0]+256*t.value[1]+65536*t.value[2],r=this.cells[e],n=this.positions[r[1]].slice(0,3),i={position:n,dataCoordinate:n,index:Math.floor(r[1]/48)};return"cone"===this.traceType?i.index=Math.floor(r[1]/48):"streamtube"===this.traceType&&(i.intensity=this.intensity[r[1]],i.velocity=this.vectors[r[1]].slice(0,3),i.divergence=this.vectors[r[1]][3],i.index=e),i},p.dispose=function(){this.texture.dispose(),this.triShader.dispose(),this.pickShader.dispose(),this.triangleVAO.dispose(),this.trianglePositions.dispose(),this.triangleVectors.dispose(),this.triangleColors.dispose(),this.triangleUVs.dispose(),this.triangleIds.dispose()},e.exports=function(t,e,r){var n=r.shaders;1===arguments.length&&(t=(e=t).gl);var s=d(t,n),l=g(t,n),u=o(t,c(new Uint8Array([255,255,255,255]),[1,1,4]));u.generateMipmap(),u.minFilter=t.LINEAR_MIPMAP_LINEAR,u.magFilter=t.LINEAR;var f=i(t),p=i(t),m=i(t),v=i(t),y=i(t),x=a(t,[{buffer:f,type:t.FLOAT,size:4},{buffer:y,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:m,type:t.FLOAT,size:4},{buffer:v,type:t.FLOAT,size:2},{buffer:p,type:t.FLOAT,size:4}]),b=new h(t,u,s,l,f,p,y,m,v,x,r.traceType||"cone");return b.update(e),b}},{colormap:131,"gl-buffer":259,"gl-mat4/invert":293,"gl-mat4/multiply":295,"gl-shader":335,"gl-texture2d":353,"gl-vao":358,ndarray:495}],262:[function(t,e,r){var n=t("glslify"),i=n(["precision highp float;\n\nprecision highp float;\n#define GLSLIFY 1\n\nvec3 getOrthogonalVector(vec3 v) {\n // Return up-vector for only-z vector.\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\n // Assign z = 0, x = -b, y = a:\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\n return normalize(vec3(-v.y, v.x, 0.0));\n } else {\n return normalize(vec3(0.0, v.z, -v.y));\n }\n}\n\n// Calculate the cone vertex and normal at the given index.\n//\n// The returned vertex is for a cone with its top at origin and height of 1.0,\n// pointing in the direction of the vector attribute.\n//\n// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices.\n// These vertices are used to make up the triangles of the cone by the following:\n// segment + 0 top vertex\n// segment + 1 perimeter vertex a+1\n// segment + 2 perimeter vertex a\n// segment + 3 center base vertex\n// segment + 4 perimeter vertex a\n// segment + 5 perimeter vertex a+1\n// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment.\n// To go from index to segment, floor(index / 6)\n// To go from segment to angle, 2*pi * (segment/segmentCount)\n// To go from index to segment index, index - (segment*6)\n//\nvec3 getConePosition(vec3 d, float rawIndex, float coneOffset, out vec3 normal) {\n\n const float segmentCount = 8.0;\n\n float index = rawIndex - floor(rawIndex /\n (segmentCount * 6.0)) *\n (segmentCount * 6.0);\n\n float segment = floor(0.001 + index/6.0);\n float segmentIndex = index - (segment*6.0);\n\n normal = -normalize(d);\n\n if (segmentIndex > 2.99 && segmentIndex < 3.01) {\n return mix(vec3(0.0), -d, coneOffset);\n }\n\n float nextAngle = (\n (segmentIndex > 0.99 && segmentIndex < 1.01) ||\n (segmentIndex > 4.99 && segmentIndex < 5.01)\n ) ? 1.0 : 0.0;\n float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount);\n\n vec3 v1 = mix(d, vec3(0.0), coneOffset);\n vec3 v2 = v1 - d;\n\n vec3 u = getOrthogonalVector(d);\n vec3 v = normalize(cross(u, d));\n\n vec3 x = u * cos(angle) * length(d)*0.25;\n vec3 y = v * sin(angle) * length(d)*0.25;\n vec3 v3 = v2 + x + y;\n if (segmentIndex < 3.0) {\n vec3 tx = u * sin(angle);\n vec3 ty = v * -cos(angle);\n vec3 tangent = tx + ty;\n normal = normalize(cross(v3 - v1, tangent));\n }\n\n if (segmentIndex == 0.0) {\n return mix(d, vec3(0.0), coneOffset);\n }\n return v3;\n}\n\nattribute vec3 vector;\nattribute vec4 color, position;\nattribute vec2 uv;\n\nuniform float vectorScale, coneScale, coneOffset;\nuniform mat4 model, view, projection, inverseModel;\nuniform vec3 eyePosition, lightPosition;\n\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n // Scale the vector magnitude to stay constant with\n // model & view changes.\n vec3 normal;\n vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector), position.w, coneOffset, normal);\n vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\n\n //Lighting geometry parameters\n vec4 cameraCoordinate = view * conePosition;\n cameraCoordinate.xyz /= cameraCoordinate.w;\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\n\n // vec4 m_position = model * vec4(conePosition, 1.0);\n vec4 t_position = view * conePosition;\n gl_Position = projection * t_position;\n\n f_color = color;\n f_data = conePosition.xyz;\n f_position = position.xyz;\n f_uv = uv;\n}\n"]),a=n(["#extension GL_OES_standard_derivatives : enable\n\nprecision highp float;\n#define GLSLIFY 1\n\nfloat beckmannDistribution(float x, float roughness) {\n float NdotH = max(x, 0.0001);\n float cos2Alpha = NdotH * NdotH;\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\n float roughness2 = roughness * roughness;\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\n return exp(tan2Alpha / roughness2) / denom;\n}\n\nfloat cookTorranceSpecular(\n vec3 lightDirection,\n vec3 viewDirection,\n vec3 surfaceNormal,\n float roughness,\n float fresnel) {\n\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\n\n //Half angle vector\n vec3 H = normalize(lightDirection + viewDirection);\n\n //Geometric term\n float NdotH = max(dot(surfaceNormal, H), 0.0);\n float VdotH = max(dot(viewDirection, H), 0.000001);\n float LdotH = max(dot(lightDirection, H), 0.000001);\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\n float G = min(1.0, min(G1, G2));\n \n //Distribution term\n float D = beckmannDistribution(NdotH, roughness);\n\n //Fresnel term\n float F = pow(1.0 - VdotN, fresnel);\n\n //Multiply terms and done\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\n}\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\nuniform sampler2D texture;\n\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n vec3 N = normalize(f_normal);\n vec3 L = normalize(f_lightDirection);\n vec3 V = normalize(f_eyeDirection);\n\n if(gl_FrontFacing) {\n N = -N;\n }\n\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\n\n vec4 surfaceColor = f_color * texture2D(texture, f_uv);\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\n\n gl_FragColor = litColor * opacity;\n}\n"]),o=n(["precision highp float;\n\nprecision highp float;\n#define GLSLIFY 1\n\nvec3 getOrthogonalVector(vec3 v) {\n // Return up-vector for only-z vector.\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\n // Assign z = 0, x = -b, y = a:\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\n return normalize(vec3(-v.y, v.x, 0.0));\n } else {\n return normalize(vec3(0.0, v.z, -v.y));\n }\n}\n\n// Calculate the cone vertex and normal at the given index.\n//\n// The returned vertex is for a cone with its top at origin and height of 1.0,\n// pointing in the direction of the vector attribute.\n//\n// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices.\n// These vertices are used to make up the triangles of the cone by the following:\n// segment + 0 top vertex\n// segment + 1 perimeter vertex a+1\n// segment + 2 perimeter vertex a\n// segment + 3 center base vertex\n// segment + 4 perimeter vertex a\n// segment + 5 perimeter vertex a+1\n// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment.\n// To go from index to segment, floor(index / 6)\n// To go from segment to angle, 2*pi * (segment/segmentCount)\n// To go from index to segment index, index - (segment*6)\n//\nvec3 getConePosition(vec3 d, float rawIndex, float coneOffset, out vec3 normal) {\n\n const float segmentCount = 8.0;\n\n float index = rawIndex - floor(rawIndex /\n (segmentCount * 6.0)) *\n (segmentCount * 6.0);\n\n float segment = floor(0.001 + index/6.0);\n float segmentIndex = index - (segment*6.0);\n\n normal = -normalize(d);\n\n if (segmentIndex > 2.99 && segmentIndex < 3.01) {\n return mix(vec3(0.0), -d, coneOffset);\n }\n\n float nextAngle = (\n (segmentIndex > 0.99 && segmentIndex < 1.01) ||\n (segmentIndex > 4.99 && segmentIndex < 5.01)\n ) ? 1.0 : 0.0;\n float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount);\n\n vec3 v1 = mix(d, vec3(0.0), coneOffset);\n vec3 v2 = v1 - d;\n\n vec3 u = getOrthogonalVector(d);\n vec3 v = normalize(cross(u, d));\n\n vec3 x = u * cos(angle) * length(d)*0.25;\n vec3 y = v * sin(angle) * length(d)*0.25;\n vec3 v3 = v2 + x + y;\n if (segmentIndex < 3.0) {\n vec3 tx = u * sin(angle);\n vec3 ty = v * -cos(angle);\n vec3 tangent = tx + ty;\n normal = normalize(cross(v3 - v1, tangent));\n }\n\n if (segmentIndex == 0.0) {\n return mix(d, vec3(0.0), coneOffset);\n }\n return v3;\n}\n\nattribute vec4 vector;\nattribute vec4 position;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\nuniform float vectorScale, coneScale, coneOffset;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n vec3 normal;\n vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector.xyz), position.w, coneOffset, normal);\n vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\n gl_Position = projection * view * conePosition;\n f_id = id;\n f_position = position.xyz;\n}\n"]),s=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float pickId;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n\n gl_FragColor = vec4(pickId, f_id.xyz);\n}"]);r.meshShader={vertex:i,fragment:a,attributes:[{name:"position",type:"vec4"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"},{name:"vector",type:"vec3"}]},r.pickShader={vertex:o,fragment:s,attributes:[{name:"position",type:"vec4"},{name:"id",type:"vec4"},{name:"vector",type:"vec3"}]}},{glslify:263}],263:[function(t,e,r){arguments[4][257][0].apply(r,arguments)},{dup:257}],264:[function(t,e,r){e.exports={0:"NONE",1:"ONE",2:"LINE_LOOP",3:"LINE_STRIP",4:"TRIANGLES",5:"TRIANGLE_STRIP",6:"TRIANGLE_FAN",256:"DEPTH_BUFFER_BIT",512:"NEVER",513:"LESS",514:"EQUAL",515:"LEQUAL",516:"GREATER",517:"NOTEQUAL",518:"GEQUAL",519:"ALWAYS",768:"SRC_COLOR",769:"ONE_MINUS_SRC_COLOR",770:"SRC_ALPHA",771:"ONE_MINUS_SRC_ALPHA",772:"DST_ALPHA",773:"ONE_MINUS_DST_ALPHA",774:"DST_COLOR",775:"ONE_MINUS_DST_COLOR",776:"SRC_ALPHA_SATURATE",1024:"STENCIL_BUFFER_BIT",1028:"FRONT",1029:"BACK",1032:"FRONT_AND_BACK",1280:"INVALID_ENUM",1281:"INVALID_VALUE",1282:"INVALID_OPERATION",1285:"OUT_OF_MEMORY",1286:"INVALID_FRAMEBUFFER_OPERATION",2304:"CW",2305:"CCW",2849:"LINE_WIDTH",2884:"CULL_FACE",2885:"CULL_FACE_MODE",2886:"FRONT_FACE",2928:"DEPTH_RANGE",2929:"DEPTH_TEST",2930:"DEPTH_WRITEMASK",2931:"DEPTH_CLEAR_VALUE",2932:"DEPTH_FUNC",2960:"STENCIL_TEST",2961:"STENCIL_CLEAR_VALUE",2962:"STENCIL_FUNC",2963:"STENCIL_VALUE_MASK",2964:"STENCIL_FAIL",2965:"STENCIL_PASS_DEPTH_FAIL",2966:"STENCIL_PASS_DEPTH_PASS",2967:"STENCIL_REF",2968:"STENCIL_WRITEMASK",2978:"VIEWPORT",3024:"DITHER",3042:"BLEND",3088:"SCISSOR_BOX",3089:"SCISSOR_TEST",3106:"COLOR_CLEAR_VALUE",3107:"COLOR_WRITEMASK",3317:"UNPACK_ALIGNMENT",3333:"PACK_ALIGNMENT",3379:"MAX_TEXTURE_SIZE",3386:"MAX_VIEWPORT_DIMS",3408:"SUBPIXEL_BITS",3410:"RED_BITS",3411:"GREEN_BITS",3412:"BLUE_BITS",3413:"ALPHA_BITS",3414:"DEPTH_BITS",3415:"STENCIL_BITS",3553:"TEXTURE_2D",4352:"DONT_CARE",4353:"FASTEST",4354:"NICEST",5120:"BYTE",5121:"UNSIGNED_BYTE",5122:"SHORT",5123:"UNSIGNED_SHORT",5124:"INT",5125:"UNSIGNED_INT",5126:"FLOAT",5386:"INVERT",5890:"TEXTURE",6401:"STENCIL_INDEX",6402:"DEPTH_COMPONENT",6406:"ALPHA",6407:"RGB",6408:"RGBA",6409:"LUMINANCE",6410:"LUMINANCE_ALPHA",7680:"KEEP",7681:"REPLACE",7682:"INCR",7683:"DECR",7936:"VENDOR",7937:"RENDERER",7938:"VERSION",9728:"NEAREST",9729:"LINEAR",9984:"NEAREST_MIPMAP_NEAREST",9985:"LINEAR_MIPMAP_NEAREST",9986:"NEAREST_MIPMAP_LINEAR",9987:"LINEAR_MIPMAP_LINEAR",10240:"TEXTURE_MAG_FILTER",10241:"TEXTURE_MIN_FILTER",10242:"TEXTURE_WRAP_S",10243:"TEXTURE_WRAP_T",10497:"REPEAT",10752:"POLYGON_OFFSET_UNITS",16384:"COLOR_BUFFER_BIT",32769:"CONSTANT_COLOR",32770:"ONE_MINUS_CONSTANT_COLOR",32771:"CONSTANT_ALPHA",32772:"ONE_MINUS_CONSTANT_ALPHA",32773:"BLEND_COLOR",32774:"FUNC_ADD",32777:"BLEND_EQUATION_RGB",32778:"FUNC_SUBTRACT",32779:"FUNC_REVERSE_SUBTRACT",32819:"UNSIGNED_SHORT_4_4_4_4",32820:"UNSIGNED_SHORT_5_5_5_1",32823:"POLYGON_OFFSET_FILL",32824:"POLYGON_OFFSET_FACTOR",32854:"RGBA4",32855:"RGB5_A1",32873:"TEXTURE_BINDING_2D",32926:"SAMPLE_ALPHA_TO_COVERAGE",32928:"SAMPLE_COVERAGE",32936:"SAMPLE_BUFFERS",32937:"SAMPLES",32938:"SAMPLE_COVERAGE_VALUE",32939:"SAMPLE_COVERAGE_INVERT",32968:"BLEND_DST_RGB",32969:"BLEND_SRC_RGB",32970:"BLEND_DST_ALPHA",32971:"BLEND_SRC_ALPHA",33071:"CLAMP_TO_EDGE",33170:"GENERATE_MIPMAP_HINT",33189:"DEPTH_COMPONENT16",33306:"DEPTH_STENCIL_ATTACHMENT",33635:"UNSIGNED_SHORT_5_6_5",33648:"MIRRORED_REPEAT",33901:"ALIASED_POINT_SIZE_RANGE",33902:"ALIASED_LINE_WIDTH_RANGE",33984:"TEXTURE0",33985:"TEXTURE1",33986:"TEXTURE2",33987:"TEXTURE3",33988:"TEXTURE4",33989:"TEXTURE5",33990:"TEXTURE6",33991:"TEXTURE7",33992:"TEXTURE8",33993:"TEXTURE9",33994:"TEXTURE10",33995:"TEXTURE11",33996:"TEXTURE12",33997:"TEXTURE13",33998:"TEXTURE14",33999:"TEXTURE15",34e3:"TEXTURE16",34001:"TEXTURE17",34002:"TEXTURE18",34003:"TEXTURE19",34004:"TEXTURE20",34005:"TEXTURE21",34006:"TEXTURE22",34007:"TEXTURE23",34008:"TEXTURE24",34009:"TEXTURE25",34010:"TEXTURE26",34011:"TEXTURE27",34012:"TEXTURE28",34013:"TEXTURE29",34014:"TEXTURE30",34015:"TEXTURE31",34016:"ACTIVE_TEXTURE",34024:"MAX_RENDERBUFFER_SIZE",34041:"DEPTH_STENCIL",34055:"INCR_WRAP",34056:"DECR_WRAP",34067:"TEXTURE_CUBE_MAP",34068:"TEXTURE_BINDING_CUBE_MAP",34069:"TEXTURE_CUBE_MAP_POSITIVE_X",34070:"TEXTURE_CUBE_MAP_NEGATIVE_X",34071:"TEXTURE_CUBE_MAP_POSITIVE_Y",34072:"TEXTURE_CUBE_MAP_NEGATIVE_Y",34073:"TEXTURE_CUBE_MAP_POSITIVE_Z",34074:"TEXTURE_CUBE_MAP_NEGATIVE_Z",34076:"MAX_CUBE_MAP_TEXTURE_SIZE",34338:"VERTEX_ATTRIB_ARRAY_ENABLED",34339:"VERTEX_ATTRIB_ARRAY_SIZE",34340:"VERTEX_ATTRIB_ARRAY_STRIDE",34341:"VERTEX_ATTRIB_ARRAY_TYPE",34342:"CURRENT_VERTEX_ATTRIB",34373:"VERTEX_ATTRIB_ARRAY_POINTER",34466:"NUM_COMPRESSED_TEXTURE_FORMATS",34467:"COMPRESSED_TEXTURE_FORMATS",34660:"BUFFER_SIZE",34661:"BUFFER_USAGE",34816:"STENCIL_BACK_FUNC",34817:"STENCIL_BACK_FAIL",34818:"STENCIL_BACK_PASS_DEPTH_FAIL",34819:"STENCIL_BACK_PASS_DEPTH_PASS",34877:"BLEND_EQUATION_ALPHA",34921:"MAX_VERTEX_ATTRIBS",34922:"VERTEX_ATTRIB_ARRAY_NORMALIZED",34930:"MAX_TEXTURE_IMAGE_UNITS",34962:"ARRAY_BUFFER",34963:"ELEMENT_ARRAY_BUFFER",34964:"ARRAY_BUFFER_BINDING",34965:"ELEMENT_ARRAY_BUFFER_BINDING",34975:"VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",35040:"STREAM_DRAW",35044:"STATIC_DRAW",35048:"DYNAMIC_DRAW",35632:"FRAGMENT_SHADER",35633:"VERTEX_SHADER",35660:"MAX_VERTEX_TEXTURE_IMAGE_UNITS",35661:"MAX_COMBINED_TEXTURE_IMAGE_UNITS",35663:"SHADER_TYPE",35664:"FLOAT_VEC2",35665:"FLOAT_VEC3",35666:"FLOAT_VEC4",35667:"INT_VEC2",35668:"INT_VEC3",35669:"INT_VEC4",35670:"BOOL",35671:"BOOL_VEC2",35672:"BOOL_VEC3",35673:"BOOL_VEC4",35674:"FLOAT_MAT2",35675:"FLOAT_MAT3",35676:"FLOAT_MAT4",35678:"SAMPLER_2D",35680:"SAMPLER_CUBE",35712:"DELETE_STATUS",35713:"COMPILE_STATUS",35714:"LINK_STATUS",35715:"VALIDATE_STATUS",35716:"INFO_LOG_LENGTH",35717:"ATTACHED_SHADERS",35718:"ACTIVE_UNIFORMS",35719:"ACTIVE_UNIFORM_MAX_LENGTH",35720:"SHADER_SOURCE_LENGTH",35721:"ACTIVE_ATTRIBUTES",35722:"ACTIVE_ATTRIBUTE_MAX_LENGTH",35724:"SHADING_LANGUAGE_VERSION",35725:"CURRENT_PROGRAM",36003:"STENCIL_BACK_REF",36004:"STENCIL_BACK_VALUE_MASK",36005:"STENCIL_BACK_WRITEMASK",36006:"FRAMEBUFFER_BINDING",36007:"RENDERBUFFER_BINDING",36048:"FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",36049:"FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",36050:"FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",36051:"FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",36053:"FRAMEBUFFER_COMPLETE",36054:"FRAMEBUFFER_INCOMPLETE_ATTACHMENT",36055:"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",36057:"FRAMEBUFFER_INCOMPLETE_DIMENSIONS",36061:"FRAMEBUFFER_UNSUPPORTED",36064:"COLOR_ATTACHMENT0",36096:"DEPTH_ATTACHMENT",36128:"STENCIL_ATTACHMENT",36160:"FRAMEBUFFER",36161:"RENDERBUFFER",36162:"RENDERBUFFER_WIDTH",36163:"RENDERBUFFER_HEIGHT",36164:"RENDERBUFFER_INTERNAL_FORMAT",36168:"STENCIL_INDEX8",36176:"RENDERBUFFER_RED_SIZE",36177:"RENDERBUFFER_GREEN_SIZE",36178:"RENDERBUFFER_BLUE_SIZE",36179:"RENDERBUFFER_ALPHA_SIZE",36180:"RENDERBUFFER_DEPTH_SIZE",36181:"RENDERBUFFER_STENCIL_SIZE",36194:"RGB565",36336:"LOW_FLOAT",36337:"MEDIUM_FLOAT",36338:"HIGH_FLOAT",36339:"LOW_INT",36340:"MEDIUM_INT",36341:"HIGH_INT",36346:"SHADER_COMPILER",36347:"MAX_VERTEX_UNIFORM_VECTORS",36348:"MAX_VARYING_VECTORS",36349:"MAX_FRAGMENT_UNIFORM_VECTORS",37440:"UNPACK_FLIP_Y_WEBGL",37441:"UNPACK_PREMULTIPLY_ALPHA_WEBGL",37442:"CONTEXT_LOST_WEBGL",37443:"UNPACK_COLORSPACE_CONVERSION_WEBGL",37444:"BROWSER_DEFAULT_WEBGL"}},{}],265:[function(t,e,r){var n=t("./1.0/numbers");e.exports=function(t){return n[t]}},{"./1.0/numbers":264}],266:[function(t,e,r){"use strict";e.exports=function(t){var e=t.gl,r=n(e),o=i(e,[{buffer:r,type:e.FLOAT,size:3,offset:0,stride:40},{buffer:r,type:e.FLOAT,size:4,offset:12,stride:40},{buffer:r,type:e.FLOAT,size:3,offset:28,stride:40}]),l=a(e);l.attributes.position.location=0,l.attributes.color.location=1,l.attributes.offset.location=2;var c=new s(e,r,o,l);return c.update(t),c};var n=t("gl-buffer"),i=t("gl-vao"),a=t("./shaders/index"),o=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function s(t,e,r,n){this.gl=t,this.shader=n,this.buffer=e,this.vao=r,this.pixelRatio=1,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.lineWidth=[1,1,1],this.capSize=[10,10,10],this.lineCount=[0,0,0],this.lineOffset=[0,0,0],this.opacity=1,this.hasAlpha=!1}var l=s.prototype;function c(t,e){for(var r=0;r<3;++r)t[0][r]=Math.min(t[0][r],e[r]),t[1][r]=Math.max(t[1][r],e[r])}l.isOpaque=function(){return!this.hasAlpha},l.isTransparent=function(){return this.hasAlpha},l.drawTransparent=l.draw=function(t){var e=this.gl,r=this.shader.uniforms;this.shader.bind();var n=r.view=t.view||o,i=r.projection=t.projection||o;r.model=t.model||o,r.clipBounds=this.clipBounds,r.opacity=this.opacity;var a=n[12],s=n[13],l=n[14],c=n[15],u=(t._ortho||!1?2:1)*this.pixelRatio*(i[3]*a+i[7]*s+i[11]*l+i[15]*c)/e.drawingBufferHeight;this.vao.bind();for(var f=0;f<3;++f)e.lineWidth(this.lineWidth[f]*this.pixelRatio),r.capSize=this.capSize[f]*u,this.lineCount[f]&&e.drawArrays(e.LINES,this.lineOffset[f],this.lineCount[f]);this.vao.unbind()};var u=function(){for(var t=new Array(3),e=0;e<3;++e){for(var r=[],n=1;n<=2;++n)for(var i=-1;i<=1;i+=2){var a=[0,0,0];a[(n+e)%3]=i,r.push(a)}t[e]=r}return t}();function f(t,e,r,n){for(var i=u[n],a=0;a0)(g=u.slice())[s]+=p[1][s],i.push(u[0],u[1],u[2],d[0],d[1],d[2],d[3],0,0,0,g[0],g[1],g[2],d[0],d[1],d[2],d[3],0,0,0),c(this.bounds,g),o+=2+f(i,g,d,s)}}this.lineCount[s]=o-this.lineOffset[s]}this.buffer.update(i)}},l.dispose=function(){this.shader.dispose(),this.buffer.dispose(),this.vao.dispose()}},{"./shaders/index":268,"gl-buffer":259,"gl-vao":358}],267:[function(t,e,r){arguments[4][257][0].apply(r,arguments)},{dup:257}],268:[function(t,e,r){"use strict";var n=t("glslify"),i=t("gl-shader"),a=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position, offset;\nattribute vec4 color;\nuniform mat4 model, view, projection;\nuniform float capSize;\nvarying vec4 fragColor;\nvarying vec3 fragPosition;\n\nvoid main() {\n vec4 worldPosition = model * vec4(position, 1.0);\n worldPosition = (worldPosition / worldPosition.w) + vec4(capSize * offset, 0.0);\n gl_Position = projection * view * worldPosition;\n fragColor = color;\n fragPosition = position;\n}"]),o=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float opacity;\nvarying vec3 fragPosition;\nvarying vec4 fragColor;\n\nvoid main() {\n if (\n outOfRange(clipBounds[0], clipBounds[1], fragPosition) ||\n fragColor.a * opacity == 0.\n ) discard;\n\n gl_FragColor = opacity * fragColor;\n}"]);e.exports=function(t){return i(t,a,o,null,[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"offset",type:"vec3"}])}},{"gl-shader":335,glslify:267}],269:[function(t,e,r){"use strict";var n=t("gl-texture2d");e.exports=function(t,e,r,n){i||(i=t.FRAMEBUFFER_UNSUPPORTED,a=t.FRAMEBUFFER_INCOMPLETE_ATTACHMENT,o=t.FRAMEBUFFER_INCOMPLETE_DIMENSIONS,s=t.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT);var c=t.getExtension("WEBGL_draw_buffers");!l&&c&&function(t,e){var r=t.getParameter(e.MAX_COLOR_ATTACHMENTS_WEBGL);l=new Array(r+1);for(var n=0;n<=r;++n){for(var i=new Array(r),a=0;au||r<0||r>u)throw new Error("gl-fbo: Parameters are too large for FBO");var f=1;if("color"in(n=n||{})){if((f=Math.max(0|n.color,0))<0)throw new Error("gl-fbo: Must specify a nonnegative number of colors");if(f>1){if(!c)throw new Error("gl-fbo: Multiple draw buffer extension not supported");if(f>t.getParameter(c.MAX_COLOR_ATTACHMENTS_WEBGL))throw new Error("gl-fbo: Context does not support "+f+" draw buffers")}}var h=t.UNSIGNED_BYTE,p=t.getExtension("OES_texture_float");if(n.float&&f>0){if(!p)throw new Error("gl-fbo: Context does not support floating point textures");h=t.FLOAT}else n.preferFloat&&f>0&&p&&(h=t.FLOAT);var g=!0;"depth"in n&&(g=!!n.depth);var m=!1;"stencil"in n&&(m=!!n.stencil);return new d(t,e,r,h,f,g,m,c)};var i,a,o,s,l=null;function c(t){return[t.getParameter(t.FRAMEBUFFER_BINDING),t.getParameter(t.RENDERBUFFER_BINDING),t.getParameter(t.TEXTURE_BINDING_2D)]}function u(t,e){t.bindFramebuffer(t.FRAMEBUFFER,e[0]),t.bindRenderbuffer(t.RENDERBUFFER,e[1]),t.bindTexture(t.TEXTURE_2D,e[2])}function f(t){switch(t){case i:throw new Error("gl-fbo: Framebuffer unsupported");case a:throw new Error("gl-fbo: Framebuffer incomplete attachment");case o:throw new Error("gl-fbo: Framebuffer incomplete dimensions");case s:throw new Error("gl-fbo: Framebuffer incomplete missing attachment");default:throw new Error("gl-fbo: Framebuffer failed for unspecified reason")}}function h(t,e,r,i,a,o){if(!i)return null;var s=n(t,e,r,a,i);return s.magFilter=t.NEAREST,s.minFilter=t.NEAREST,s.mipSamples=1,s.bind(),t.framebufferTexture2D(t.FRAMEBUFFER,o,t.TEXTURE_2D,s.handle,0),s}function p(t,e,r,n,i){var a=t.createRenderbuffer();return t.bindRenderbuffer(t.RENDERBUFFER,a),t.renderbufferStorage(t.RENDERBUFFER,n,e,r),t.framebufferRenderbuffer(t.FRAMEBUFFER,i,t.RENDERBUFFER,a),a}function d(t,e,r,n,i,a,o,s){this.gl=t,this._shape=[0|e,0|r],this._destroyed=!1,this._ext=s,this.color=new Array(i);for(var d=0;d1&&s.drawBuffersWEBGL(l[o]);var y=r.getExtension("WEBGL_depth_texture");y?d?t.depth=h(r,i,a,y.UNSIGNED_INT_24_8_WEBGL,r.DEPTH_STENCIL,r.DEPTH_STENCIL_ATTACHMENT):g&&(t.depth=h(r,i,a,r.UNSIGNED_SHORT,r.DEPTH_COMPONENT,r.DEPTH_ATTACHMENT)):g&&d?t._depth_rb=p(r,i,a,r.DEPTH_STENCIL,r.DEPTH_STENCIL_ATTACHMENT):g?t._depth_rb=p(r,i,a,r.DEPTH_COMPONENT16,r.DEPTH_ATTACHMENT):d&&(t._depth_rb=p(r,i,a,r.STENCIL_INDEX,r.STENCIL_ATTACHMENT));var x=r.checkFramebufferStatus(r.FRAMEBUFFER);if(x!==r.FRAMEBUFFER_COMPLETE){t._destroyed=!0,r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteFramebuffer(t.handle),t.handle=null,t.depth&&(t.depth.dispose(),t.depth=null),t._depth_rb&&(r.deleteRenderbuffer(t._depth_rb),t._depth_rb=null);for(v=0;vi||r<0||r>i)throw new Error("gl-fbo: Can't resize FBO, invalid dimensions");t._shape[0]=e,t._shape[1]=r;for(var a=c(n),o=0;o>8*p&255;this.pickOffset=r,i.bind();var d=i.uniforms;d.viewTransform=t,d.pickOffset=e,d.shape=this.shape;var g=i.attributes;return this.positionBuffer.bind(),g.position.pointer(),this.weightBuffer.bind(),g.weight.pointer(s.UNSIGNED_BYTE,!1),this.idBuffer.bind(),g.pickId.pointer(s.UNSIGNED_BYTE,!1),s.drawArrays(s.TRIANGLES,0,o),r+this.shape[0]*this.shape[1]}}}(),f.pick=function(t,e,r){var n=this.pickOffset,i=this.shape[0]*this.shape[1];if(r=n+i)return null;var a=r-n,o=this.xData,s=this.yData;return{object:this,pointId:a,dataCoord:[o[a%this.shape[0]],s[a/this.shape[0]|0]]}},f.update=function(t){var e=(t=t||{}).shape||[0,0],r=t.x||i(e[0]),o=t.y||i(e[1]),s=t.z||new Float32Array(e[0]*e[1]),l=!1!==t.zsmooth;this.xData=r,this.yData=o;var c,u,f,p,d=t.colorLevels||[0],g=t.colorValues||[0,0,0,1],m=d.length,v=this.bounds;l?(c=v[0]=r[0],u=v[1]=o[0],f=v[2]=r[r.length-1],p=v[3]=o[o.length-1]):(c=v[0]=r[0]+(r[1]-r[0])/2,u=v[1]=o[0]+(o[1]-o[0])/2,f=v[2]=r[r.length-1]+(r[r.length-1]-r[r.length-2])/2,p=v[3]=o[o.length-1]+(o[o.length-1]-o[o.length-2])/2);var y=1/(f-c),x=1/(p-u),b=e[0],_=e[1];this.shape=[b,_];var w=(l?(b-1)*(_-1):b*_)*(h.length>>>1);this.numVertices=w;for(var T=a.mallocUint8(4*w),k=a.mallocFloat32(2*w),M=a.mallocUint8(2*w),A=a.mallocUint32(w),S=0,E=l?b-1:b,C=l?_-1:_,L=0;L max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform sampler2D dashTexture;\nuniform float dashScale;\nuniform float opacity;\n\nvarying vec3 worldPosition;\nvarying float pixelArcLength;\nvarying vec4 fragColor;\n\nvoid main() {\n if (\n outOfRange(clipBounds[0], clipBounds[1], worldPosition) ||\n fragColor.a * opacity == 0.\n ) discard;\n\n float dashWeight = texture2D(dashTexture, vec2(dashScale * pixelArcLength, 0)).r;\n if(dashWeight < 0.5) {\n discard;\n }\n gl_FragColor = fragColor * opacity;\n}\n"]),s=n(["precision highp float;\n#define GLSLIFY 1\n\n#define FLOAT_MAX 1.70141184e38\n#define FLOAT_MIN 1.17549435e-38\n\n// https://github.com/mikolalysenko/glsl-read-float/blob/master/index.glsl\nvec4 packFloat(float v) {\n float av = abs(v);\n\n //Handle special cases\n if(av < FLOAT_MIN) {\n return vec4(0.0, 0.0, 0.0, 0.0);\n } else if(v > FLOAT_MAX) {\n return vec4(127.0, 128.0, 0.0, 0.0) / 255.0;\n } else if(v < -FLOAT_MAX) {\n return vec4(255.0, 128.0, 0.0, 0.0) / 255.0;\n }\n\n vec4 c = vec4(0,0,0,0);\n\n //Compute exponent and mantissa\n float e = floor(log2(av));\n float m = av * pow(2.0, -e) - 1.0;\n\n //Unpack mantissa\n c[1] = floor(128.0 * m);\n m -= c[1] / 128.0;\n c[2] = floor(32768.0 * m);\n m -= c[2] / 32768.0;\n c[3] = floor(8388608.0 * m);\n\n //Unpack exponent\n float ebias = e + 127.0;\n c[0] = floor(ebias / 2.0);\n ebias -= c[0] * 2.0;\n c[1] += floor(ebias) * 128.0;\n\n //Unpack sign bit\n c[0] += 128.0 * step(0.0, -v);\n\n //Scale back to range\n return c / 255.0;\n}\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform float pickId;\nuniform vec3 clipBounds[2];\n\nvarying vec3 worldPosition;\nvarying float pixelArcLength;\nvarying vec4 fragColor;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], worldPosition)) discard;\n\n gl_FragColor = vec4(pickId/255.0, packFloat(pixelArcLength).xyz);\n}"]),l=[{name:"position",type:"vec3"},{name:"nextPosition",type:"vec3"},{name:"arcLength",type:"float"},{name:"lineWidth",type:"float"},{name:"color",type:"vec4"}];r.createShader=function(t){return i(t,a,o,null,l)},r.createPickShader=function(t){return i(t,a,s,null,l)}},{"gl-shader":335,glslify:276}],275:[function(t,e,r){"use strict";e.exports=function(t){var e=t.gl||t.scene&&t.scene.gl,r=f(e);r.attributes.position.location=0,r.attributes.nextPosition.location=1,r.attributes.arcLength.location=2,r.attributes.lineWidth.location=3,r.attributes.color.location=4;var o=h(e);o.attributes.position.location=0,o.attributes.nextPosition.location=1,o.attributes.arcLength.location=2,o.attributes.lineWidth.location=3,o.attributes.color.location=4;for(var s=n(e),l=i(e,[{buffer:s,size:3,offset:0,stride:48},{buffer:s,size:3,offset:12,stride:48},{buffer:s,size:1,offset:24,stride:48},{buffer:s,size:1,offset:28,stride:48},{buffer:s,size:4,offset:32,stride:48}]),u=c(new Array(1024),[256,1,4]),p=0;p<1024;++p)u.data[p]=255;var d=a(e,u);d.wrap=e.REPEAT;var g=new v(e,r,o,s,l,d);return g.update(t),g};var n=t("gl-buffer"),i=t("gl-vao"),a=t("gl-texture2d"),o=new Uint8Array(4),s=new Float32Array(o.buffer);var l=t("binary-search-bounds"),c=t("ndarray"),u=t("./lib/shaders"),f=u.createShader,h=u.createPickShader,p=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function d(t,e){for(var r=0,n=0;n<3;++n){var i=t[n]-e[n];r+=i*i}return Math.sqrt(r)}function g(t){for(var e=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],r=0;r<3;++r)e[0][r]=Math.max(t[0][r],e[0][r]),e[1][r]=Math.min(t[1][r],e[1][r]);return e}function m(t,e,r,n){this.arcLength=t,this.position=e,this.index=r,this.dataCoordinate=n}function v(t,e,r,n,i,a){this.gl=t,this.shader=e,this.pickShader=r,this.buffer=n,this.vao=i,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.points=[],this.arcLength=[],this.vertexCount=0,this.bounds=[[0,0,0],[0,0,0]],this.pickId=0,this.lineWidth=1,this.texture=a,this.dashScale=1,this.opacity=1,this.hasAlpha=!1,this.dirty=!0,this.pixelRatio=1}var y=v.prototype;y.isTransparent=function(){return this.hasAlpha},y.isOpaque=function(){return!this.hasAlpha},y.pickSlots=1,y.setPickBase=function(t){this.pickId=t},y.drawTransparent=y.draw=function(t){if(this.vertexCount){var e=this.gl,r=this.shader,n=this.vao;r.bind(),r.uniforms={model:t.model||p,view:t.view||p,projection:t.projection||p,clipBounds:g(this.clipBounds),dashTexture:this.texture.bind(),dashScale:this.dashScale/this.arcLength[this.arcLength.length-1],opacity:this.opacity,screenShape:[e.drawingBufferWidth,e.drawingBufferHeight],pixelRatio:this.pixelRatio},n.bind(),n.draw(e.TRIANGLE_STRIP,this.vertexCount),n.unbind()}},y.drawPick=function(t){if(this.vertexCount){var e=this.gl,r=this.pickShader,n=this.vao;r.bind(),r.uniforms={model:t.model||p,view:t.view||p,projection:t.projection||p,pickId:this.pickId,clipBounds:g(this.clipBounds),screenShape:[e.drawingBufferWidth,e.drawingBufferHeight],pixelRatio:this.pixelRatio},n.bind(),n.draw(e.TRIANGLE_STRIP,this.vertexCount),n.unbind()}},y.update=function(t){var e,r;this.dirty=!0;var n=!!t.connectGaps;"dashScale"in t&&(this.dashScale=t.dashScale),this.hasAlpha=!1,"opacity"in t&&(this.opacity=+t.opacity,this.opacity<1&&(this.hasAlpha=!0));var i=[],a=[],o=[],s=0,u=0,f=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],h=t.position||t.positions;if(h){var p=t.color||t.colors||[0,0,0,1],g=t.lineWidth||1,m=!1;t:for(e=1;e0){for(var w=0;w<24;++w)i.push(i[i.length-12]);u+=2,m=!0}continue t}f[0][r]=Math.min(f[0][r],b[r],_[r]),f[1][r]=Math.max(f[1][r],b[r],_[r])}Array.isArray(p[0])?(v=p.length>e-1?p[e-1]:p.length>0?p[p.length-1]:[0,0,0,1],y=p.length>e?p[e]:p.length>0?p[p.length-1]:[0,0,0,1]):v=y=p,3===v.length&&(v=[v[0],v[1],v[2],1]),3===y.length&&(y=[y[0],y[1],y[2],1]),!this.hasAlpha&&v[3]<1&&(this.hasAlpha=!0),x=Array.isArray(g)?g.length>e-1?g[e-1]:g.length>0?g[g.length-1]:[0,0,0,1]:g;var T=s;if(s+=d(b,_),m){for(r=0;r<2;++r)i.push(b[0],b[1],b[2],_[0],_[1],_[2],T,x,v[0],v[1],v[2],v[3]);u+=2,m=!1}i.push(b[0],b[1],b[2],_[0],_[1],_[2],T,x,v[0],v[1],v[2],v[3],b[0],b[1],b[2],_[0],_[1],_[2],T,-x,v[0],v[1],v[2],v[3],_[0],_[1],_[2],b[0],b[1],b[2],s,-x,y[0],y[1],y[2],y[3],_[0],_[1],_[2],b[0],b[1],b[2],s,x,y[0],y[1],y[2],y[3]),u+=4}}if(this.buffer.update(i),a.push(s),o.push(h[h.length-1].slice()),this.bounds=f,this.vertexCount=u,this.points=o,this.arcLength=a,"dashes"in t){var k=t.dashes.slice();for(k.unshift(0),e=1;e1.0001)return null;v+=m[f]}if(Math.abs(v-1)>.001)return null;return[h,s(t,m),m]}},{barycentric:78,"polytope-closest-point/lib/closest_point_2d.js":525}],308:[function(t,e,r){var n=t("glslify"),i=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position, normal;\nattribute vec4 color;\nattribute vec2 uv;\n\nuniform mat4 model\n , view\n , projection\n , inverseModel;\nuniform vec3 eyePosition\n , lightPosition;\n\nvarying vec3 f_normal\n , f_lightDirection\n , f_eyeDirection\n , f_data;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvec4 project(vec3 p) {\n return projection * view * model * vec4(p, 1.0);\n}\n\nvoid main() {\n gl_Position = project(position);\n\n //Lighting geometry parameters\n vec4 cameraCoordinate = view * vec4(position , 1.0);\n cameraCoordinate.xyz /= cameraCoordinate.w;\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\n\n f_color = color;\n f_data = position;\n f_uv = uv;\n}\n"]),a=n(["#extension GL_OES_standard_derivatives : enable\n\nprecision highp float;\n#define GLSLIFY 1\n\nfloat beckmannDistribution(float x, float roughness) {\n float NdotH = max(x, 0.0001);\n float cos2Alpha = NdotH * NdotH;\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\n float roughness2 = roughness * roughness;\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\n return exp(tan2Alpha / roughness2) / denom;\n}\n\nfloat cookTorranceSpecular(\n vec3 lightDirection,\n vec3 viewDirection,\n vec3 surfaceNormal,\n float roughness,\n float fresnel) {\n\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\n\n //Half angle vector\n vec3 H = normalize(lightDirection + viewDirection);\n\n //Geometric term\n float NdotH = max(dot(surfaceNormal, H), 0.0);\n float VdotH = max(dot(viewDirection, H), 0.000001);\n float LdotH = max(dot(lightDirection, H), 0.000001);\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\n float G = min(1.0, min(G1, G2));\n \n //Distribution term\n float D = beckmannDistribution(NdotH, roughness);\n\n //Fresnel term\n float F = pow(1.0 - VdotN, fresnel);\n\n //Multiply terms and done\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\n}\n\n//#pragma glslify: beckmann = require(glsl-specular-beckmann) // used in gl-surface3d\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float roughness\n , fresnel\n , kambient\n , kdiffuse\n , kspecular;\nuniform sampler2D texture;\n\nvarying vec3 f_normal\n , f_lightDirection\n , f_eyeDirection\n , f_data;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n if (f_color.a == 0.0 ||\n outOfRange(clipBounds[0], clipBounds[1], f_data)\n ) discard;\n\n vec3 N = normalize(f_normal);\n vec3 L = normalize(f_lightDirection);\n vec3 V = normalize(f_eyeDirection);\n\n if(gl_FrontFacing) {\n N = -N;\n }\n\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\n //float specular = max(0.0, beckmann(L, V, N, roughness)); // used in gl-surface3d\n\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\n\n vec4 surfaceColor = vec4(f_color.rgb, 1.0) * texture2D(texture, f_uv);\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\n\n gl_FragColor = litColor * f_color.a;\n}\n"]),o=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 uv;\n\nuniform mat4 model, view, projection;\n\nvarying vec4 f_color;\nvarying vec3 f_data;\nvarying vec2 f_uv;\n\nvoid main() {\n gl_Position = projection * view * model * vec4(position, 1.0);\n f_color = color;\n f_data = position;\n f_uv = uv;\n}"]),s=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform sampler2D texture;\nuniform float opacity;\n\nvarying vec4 f_color;\nvarying vec3 f_data;\nvarying vec2 f_uv;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_data)) discard;\n\n gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\n}"]),l=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 uv;\nattribute float pointSize;\n\nuniform mat4 model, view, projection;\nuniform vec3 clipBounds[2];\n\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n gl_Position = vec4(0.0, 0.0 ,0.0 ,0.0);\n } else {\n gl_Position = projection * view * model * vec4(position, 1.0);\n }\n gl_PointSize = pointSize;\n f_color = color;\n f_uv = uv;\n}"]),c=n(["precision highp float;\n#define GLSLIFY 1\n\nuniform sampler2D texture;\nuniform float opacity;\n\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n vec2 pointR = gl_PointCoord.xy - vec2(0.5, 0.5);\n if(dot(pointR, pointR) > 0.25) {\n discard;\n }\n gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\n}"]),u=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n gl_Position = projection * view * model * vec4(position, 1.0);\n f_id = id;\n f_position = position;\n}"]),f=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float pickId;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n\n gl_FragColor = vec4(pickId, f_id.xyz);\n}"]),h=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute float pointSize;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\nuniform vec3 clipBounds[2];\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n gl_Position = vec4(0.0, 0.0, 0.0, 0.0);\n } else {\n gl_Position = projection * view * model * vec4(position, 1.0);\n gl_PointSize = pointSize;\n }\n f_id = id;\n f_position = position;\n}"]),p=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\n\nuniform mat4 model, view, projection;\n\nvoid main() {\n gl_Position = projection * view * model * vec4(position, 1.0);\n}"]),d=n(["precision highp float;\n#define GLSLIFY 1\n\nuniform vec3 contourColor;\n\nvoid main() {\n gl_FragColor = vec4(contourColor, 1.0);\n}\n"]);r.meshShader={vertex:i,fragment:a,attributes:[{name:"position",type:"vec3"},{name:"normal",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"}]},r.wireShader={vertex:o,fragment:s,attributes:[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"}]},r.pointShader={vertex:l,fragment:c,attributes:[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"},{name:"pointSize",type:"float"}]},r.pickShader={vertex:u,fragment:f,attributes:[{name:"position",type:"vec3"},{name:"id",type:"vec4"}]},r.pointPickShader={vertex:h,fragment:f,attributes:[{name:"position",type:"vec3"},{name:"pointSize",type:"float"},{name:"id",type:"vec4"}]},r.contourShader={vertex:p,fragment:d,attributes:[{name:"position",type:"vec3"}]}},{glslify:310}],309:[function(t,e,r){"use strict";var n=t("gl-shader"),i=t("gl-buffer"),a=t("gl-vao"),o=t("gl-texture2d"),s=t("normals"),l=t("gl-mat4/multiply"),c=t("gl-mat4/invert"),u=t("ndarray"),f=t("colormap"),h=t("simplicial-complex-contour"),p=t("typedarray-pool"),d=t("./lib/shaders"),g=t("./lib/closest-point"),m=d.meshShader,v=d.wireShader,y=d.pointShader,x=d.pickShader,b=d.pointPickShader,_=d.contourShader,w=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function T(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g,m,v,y,x,b,_,T,k,M,A,S){this.gl=t,this.pixelRatio=1,this.cells=[],this.positions=[],this.intensity=[],this.texture=e,this.dirty=!0,this.triShader=r,this.lineShader=n,this.pointShader=i,this.pickShader=a,this.pointPickShader=o,this.contourShader=s,this.trianglePositions=l,this.triangleColors=u,this.triangleNormals=h,this.triangleUVs=f,this.triangleIds=c,this.triangleVAO=p,this.triangleCount=0,this.lineWidth=1,this.edgePositions=d,this.edgeColors=m,this.edgeUVs=v,this.edgeIds=g,this.edgeVAO=y,this.edgeCount=0,this.pointPositions=x,this.pointColors=_,this.pointUVs=T,this.pointSizes=k,this.pointIds=b,this.pointVAO=M,this.pointCount=0,this.contourLineWidth=1,this.contourPositions=A,this.contourVAO=S,this.contourCount=0,this.contourColor=[0,0,0],this.contourEnable=!0,this.pickVertex=!0,this.pickId=1,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.lightPosition=[1e5,1e5,0],this.ambientLight=.8,this.diffuseLight=.8,this.specularLight=2,this.roughness=.5,this.fresnel=1.5,this.opacity=1,this.hasAlpha=!1,this.opacityscale=!1,this._model=w,this._view=w,this._projection=w,this._resolution=[1,1]}var k=T.prototype;function M(t,e){if(!e)return 1;if(!e.length)return 1;for(var r=0;rt&&r>0){var n=(e[r][0]-t)/(e[r][0]-e[r-1][0]);return e[r][1]*(1-n)+n*e[r-1][1]}}return 1}function A(t){var e=n(t,m.vertex,m.fragment);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e.attributes.normal.location=4,e}function S(t){var e=n(t,v.vertex,v.fragment);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e}function E(t){var e=n(t,y.vertex,y.fragment);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e.attributes.pointSize.location=4,e}function C(t){var e=n(t,x.vertex,x.fragment);return e.attributes.position.location=0,e.attributes.id.location=1,e}function L(t){var e=n(t,b.vertex,b.fragment);return e.attributes.position.location=0,e.attributes.id.location=1,e.attributes.pointSize.location=4,e}function I(t){var e=n(t,_.vertex,_.fragment);return e.attributes.position.location=0,e}k.isOpaque=function(){return!this.hasAlpha},k.isTransparent=function(){return this.hasAlpha},k.pickSlots=1,k.setPickBase=function(t){this.pickId=t},k.highlight=function(t){if(t&&this.contourEnable){for(var e=h(this.cells,this.intensity,t.intensity),r=e.cells,n=e.vertexIds,i=e.vertexWeights,a=r.length,o=p.mallocFloat32(6*a),s=0,l=0;l0&&((f=this.triShader).bind(),f.uniforms=s,this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind());this.edgeCount>0&&this.lineWidth>0&&((f=this.lineShader).bind(),f.uniforms=s,this.edgeVAO.bind(),e.lineWidth(this.lineWidth*this.pixelRatio),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind());this.pointCount>0&&((f=this.pointShader).bind(),f.uniforms=s,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind());this.contourEnable&&this.contourCount>0&&this.contourLineWidth>0&&((f=this.contourShader).bind(),f.uniforms=s,this.contourVAO.bind(),e.drawArrays(e.LINES,0,this.contourCount),this.contourVAO.unbind())},k.drawPick=function(t){t=t||{};for(var e=this.gl,r=t.model||w,n=t.view||w,i=t.projection||w,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);this._model=[].slice.call(r),this._view=[].slice.call(n),this._projection=[].slice.call(i),this._resolution=[e.drawingBufferWidth,e.drawingBufferHeight];var s,l={model:r,view:n,projection:i,clipBounds:a,pickId:this.pickId/255};((s=this.pickShader).bind(),s.uniforms=l,this.triangleCount>0&&(this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()),this.edgeCount>0&&(this.edgeVAO.bind(),e.lineWidth(this.lineWidth*this.pixelRatio),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind()),this.pointCount>0)&&((s=this.pointPickShader).bind(),s.uniforms=l,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind())},k.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;for(var e=t.value[0]+256*t.value[1]+65536*t.value[2],r=this.cells[e],n=this.positions,i=new Array(r.length),a=0;ai[k]&&(r.uniforms.dataAxis=c,r.uniforms.screenOffset=u,r.uniforms.color=m[t],r.uniforms.angle=v[t],a.drawArrays(a.TRIANGLES,i[k],i[M]-i[k]))),y[t]&&T&&(u[1^t]-=A*p*x[t],r.uniforms.dataAxis=f,r.uniforms.screenOffset=u,r.uniforms.color=b[t],r.uniforms.angle=_[t],a.drawArrays(a.TRIANGLES,w,T)),u[1^t]=A*s[2+(1^t)]-1,d[t+2]&&(u[1^t]+=A*p*g[t+2],ki[k]&&(r.uniforms.dataAxis=c,r.uniforms.screenOffset=u,r.uniforms.color=m[t+2],r.uniforms.angle=v[t+2],a.drawArrays(a.TRIANGLES,i[k],i[M]-i[k]))),y[t+2]&&T&&(u[1^t]+=A*p*x[t+2],r.uniforms.dataAxis=f,r.uniforms.screenOffset=u,r.uniforms.color=b[t+2],r.uniforms.angle=_[t+2],a.drawArrays(a.TRIANGLES,w,T))}),g.drawTitle=function(){var t=[0,0],e=[0,0];return function(){var r=this.plot,n=this.shader,i=r.gl,a=r.screenBox,o=r.titleCenter,s=r.titleAngle,l=r.titleColor,c=r.pixelRatio;if(this.titleCount){for(var u=0;u<2;++u)e[u]=2*(o[u]*c-a[u])/(a[2+u]-a[u])-1;n.bind(),n.uniforms.dataAxis=t,n.uniforms.screenOffset=e,n.uniforms.angle=s,n.uniforms.color=l,i.drawArrays(i.TRIANGLES,this.titleOffset,this.titleCount)}}}(),g.bind=(h=[0,0],p=[0,0],d=[0,0],function(){var t=this.plot,e=this.shader,r=t._tickBounds,n=t.dataBox,i=t.screenBox,a=t.viewBox;e.bind();for(var o=0;o<2;++o){var s=r[o],l=r[o+2]-s,c=.5*(n[o+2]+n[o]),u=n[o+2]-n[o],f=a[o],g=a[o+2]-f,m=i[o],v=i[o+2]-m;p[o]=2*l/u*g/v,h[o]=2*(s-c)/u*g/v}d[1]=2*t.pixelRatio/(i[3]-i[1]),d[0]=d[1]*(i[3]-i[1])/(i[2]-i[0]),e.uniforms.dataScale=p,e.uniforms.dataShift=h,e.uniforms.textScale=d,this.vbo.bind(),e.attributes.textCoordinate.pointer()}),g.update=function(t){var e,r,n,i,o,s=[],l=t.ticks,c=t.bounds;for(o=0;o<2;++o){var u=[Math.floor(s.length/3)],f=[-1/0],h=l[o];for(e=0;e=0){var g=e[d]-n[d]*(e[d+2]-e[d])/(n[d+2]-n[d]);0===d?o.drawLine(g,e[1],g,e[3],p[d],h[d]):o.drawLine(e[0],g,e[2],g,p[d],h[d])}}for(d=0;d=0;--t)this.objects[t].dispose();this.objects.length=0;for(t=this.overlays.length-1;t>=0;--t)this.overlays[t].dispose();this.overlays.length=0,this.gl=null},c.addObject=function(t){this.objects.indexOf(t)<0&&(this.objects.push(t),this.setDirty())},c.removeObject=function(t){for(var e=this.objects,r=0;rMath.abs(e))c.rotate(a,0,0,-t*r*Math.PI*d.rotateSpeed/window.innerWidth);else if(!d._ortho){var o=-d.zoomSpeed*i*e/window.innerHeight*(a-c.lastT())/20;c.pan(a,0,0,f*(Math.exp(o)-1))}}}),!0)},d.enableMouseListeners(),d};var n=t("right-now"),i=t("3d-view"),a=t("mouse-change"),o=t("mouse-wheel"),s=t("mouse-event-offset"),l=t("has-passive-events")},{"3d-view":54,"has-passive-events":441,"mouse-change":483,"mouse-event-offset":484,"mouse-wheel":486,"right-now":542}],319:[function(t,e,r){var n=t("glslify"),i=t("gl-shader"),a=n(["precision mediump float;\n#define GLSLIFY 1\nattribute vec2 position;\nvarying vec2 uv;\nvoid main() {\n uv = position;\n gl_Position = vec4(position, 0, 1);\n}"]),o=n(["precision mediump float;\n#define GLSLIFY 1\n\nuniform sampler2D accumBuffer;\nvarying vec2 uv;\n\nvoid main() {\n vec4 accum = texture2D(accumBuffer, 0.5 * (uv + 1.0));\n gl_FragColor = min(vec4(1,1,1,1), accum);\n}"]);e.exports=function(t){return i(t,a,o,null,[{name:"position",type:"vec2"}])}},{"gl-shader":335,glslify:320}],320:[function(t,e,r){arguments[4][257][0].apply(r,arguments)},{dup:257}],321:[function(t,e,r){"use strict";var n=t("./camera.js"),i=t("gl-axes3d"),a=t("gl-axes3d/properties"),o=t("gl-spikes3d"),s=t("gl-select-static"),l=t("gl-fbo"),c=t("a-big-triangle"),u=t("mouse-change"),f=t("gl-mat4/perspective"),h=t("gl-mat4/ortho"),p=t("./lib/shader"),d=t("is-mobile")({tablet:!0,featureDetect:!0});function g(){this.mouse=[-1,-1],this.screen=null,this.distance=1/0,this.index=null,this.dataCoordinate=null,this.dataPosition=null,this.object=null,this.data=null}function m(t){var e=Math.round(Math.log(Math.abs(t))/Math.log(10));if(e<0){var r=Math.round(Math.pow(10,-e));return Math.ceil(t*r)/r}if(e>0){r=Math.round(Math.pow(10,e));return Math.ceil(t/r)*r}return Math.ceil(t)}function v(t){return"boolean"!=typeof t||t}e.exports={createScene:function(t){(t=t||{}).camera=t.camera||{};var e=t.canvas;if(!e){if(e=document.createElement("canvas"),t.container)t.container.appendChild(e);else document.body.appendChild(e)}var r=t.gl;r||(t.glOptions&&(d=!!t.glOptions.preserveDrawingBuffer),r=function(t,e){var r=null;try{(r=t.getContext("webgl",e))||(r=t.getContext("experimental-webgl",e))}catch(t){return null}return r}(e,t.glOptions||{premultipliedAlpha:!0,antialias:!0,preserveDrawingBuffer:d}));if(!r)throw new Error("webgl not supported");var y=t.bounds||[[-10,-10,-10],[10,10,10]],x=new g,b=l(r,r.drawingBufferWidth,r.drawingBufferHeight,{preferFloat:!d}),_=p(r),w=t.cameraObject&&!0===t.cameraObject._ortho||t.camera.projection&&"orthographic"===t.camera.projection.type||!1,T={eye:t.camera.eye||[2,0,0],center:t.camera.center||[0,0,0],up:t.camera.up||[0,1,0],zoomMin:t.camera.zoomMax||.1,zoomMax:t.camera.zoomMin||100,mode:t.camera.mode||"turntable",_ortho:w},k=t.axes||{},M=i(r,k);M.enable=!k.disable;var A=t.spikes||{},S=o(r,A),E=[],C=[],L=[],I=[],P=!0,z=!0,O=new Array(16),D=new Array(16),R={view:null,projection:O,model:D,_ortho:!1},F=(z=!0,[r.drawingBufferWidth,r.drawingBufferHeight]),B=t.cameraObject||n(e,T),N={gl:r,contextLost:!1,pixelRatio:t.pixelRatio||1,canvas:e,selection:x,camera:B,axes:M,axesPixels:null,spikes:S,bounds:y,objects:E,shape:F,aspect:t.aspectRatio||[1,1,1],pickRadius:t.pickRadius||10,zNear:t.zNear||.01,zFar:t.zFar||1e3,fovy:t.fovy||Math.PI/4,clearColor:t.clearColor||[0,0,0,0],autoResize:v(t.autoResize),autoBounds:v(t.autoBounds),autoScale:!!t.autoScale,autoCenter:v(t.autoCenter),clipToBounds:v(t.clipToBounds),snapToData:!!t.snapToData,onselect:t.onselect||null,onrender:t.onrender||null,onclick:t.onclick||null,cameraParams:R,oncontextloss:null,mouseListener:null,_stopped:!1,getAspectratio:function(){return{x:this.aspect[0],y:this.aspect[1],z:this.aspect[2]}},setAspectratio:function(t){this.aspect[0]=t.x,this.aspect[1]=t.y,this.aspect[2]=t.z,z=!0},setBounds:function(t,e){this.bounds[0][t]=e.min,this.bounds[1][t]=e.max},setClearColor:function(t){this.clearColor=t},clearRGBA:function(){this.gl.clearColor(this.clearColor[0],this.clearColor[1],this.clearColor[2],this.clearColor[3]),this.gl.clear(this.gl.COLOR_BUFFER_BIT|this.gl.DEPTH_BUFFER_BIT)}},j=[r.drawingBufferWidth/N.pixelRatio|0,r.drawingBufferHeight/N.pixelRatio|0];function U(){if(!N._stopped&&N.autoResize){var t=e.parentNode,r=1,n=1;t&&t!==document.body?(r=t.clientWidth,n=t.clientHeight):(r=window.innerWidth,n=window.innerHeight);var i=0|Math.ceil(r*N.pixelRatio),a=0|Math.ceil(n*N.pixelRatio);if(i!==e.width||a!==e.height){e.width=i,e.height=a;var o=e.style;o.position=o.position||"absolute",o.left="0px",o.top="0px",o.width=r+"px",o.height=n+"px",P=!0}}}N.autoResize&&U();function V(){for(var t=E.length,e=I.length,n=0;n0&&0===L[e-1];)L.pop(),I.pop().dispose()}function q(){if(N.contextLost)return!0;r.isContextLost()&&(N.contextLost=!0,N.mouseListener.enabled=!1,N.selection.object=null,N.oncontextloss&&N.oncontextloss())}window.addEventListener("resize",U),N.update=function(t){N._stopped||(t=t||{},P=!0,z=!0)},N.add=function(t){N._stopped||(t.axes=M,E.push(t),C.push(-1),P=!0,z=!0,V())},N.remove=function(t){if(!N._stopped){var e=E.indexOf(t);e<0||(E.splice(e,1),C.pop(),P=!0,z=!0,V())}},N.dispose=function(){if(!N._stopped&&(N._stopped=!0,window.removeEventListener("resize",U),e.removeEventListener("webglcontextlost",q),N.mouseListener.enabled=!1,!N.contextLost)){M.dispose(),S.dispose();for(var t=0;tx.distance)continue;for(var c=0;c 1.0) {\n discard;\n }\n baseColor = mix(borderColor, color, step(radius, centerFraction));\n gl_FragColor = vec4(baseColor.rgb * baseColor.a, baseColor.a);\n }\n}\n"]),r.pickVertex=n(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec2 position;\nattribute vec4 pickId;\n\nuniform mat3 matrix;\nuniform float pointSize;\nuniform vec4 pickOffset;\n\nvarying vec4 fragId;\n\nvoid main() {\n vec3 hgPosition = matrix * vec3(position, 1);\n gl_Position = vec4(hgPosition.xy, 0, hgPosition.z);\n gl_PointSize = pointSize;\n\n vec4 id = pickId + pickOffset;\n id.y += floor(id.x / 256.0);\n id.x -= floor(id.x / 256.0) * 256.0;\n\n id.z += floor(id.y / 256.0);\n id.y -= floor(id.y / 256.0) * 256.0;\n\n id.w += floor(id.z / 256.0);\n id.z -= floor(id.z / 256.0) * 256.0;\n\n fragId = id;\n}\n"]),r.pickFragment=n(["precision mediump float;\n#define GLSLIFY 1\n\nvarying vec4 fragId;\n\nvoid main() {\n float radius = length(2.0 * gl_PointCoord.xy - 1.0);\n if(radius > 1.0) {\n discard;\n }\n gl_FragColor = fragId / 255.0;\n}\n"])},{glslify:323}],323:[function(t,e,r){arguments[4][257][0].apply(r,arguments)},{dup:257}],324:[function(t,e,r){"use strict";var n=t("gl-shader"),i=t("gl-buffer"),a=t("typedarray-pool"),o=t("./lib/shader");function s(t,e,r,n,i){this.plot=t,this.offsetBuffer=e,this.pickBuffer=r,this.shader=n,this.pickShader=i,this.sizeMin=.5,this.sizeMinCap=2,this.sizeMax=20,this.areaRatio=1,this.pointCount=0,this.color=[1,0,0,1],this.borderColor=[0,0,0,1],this.blend=!1,this.pickOffset=0,this.points=null}e.exports=function(t,e){var r=t.gl,a=i(r),l=i(r),c=n(r,o.pointVertex,o.pointFragment),u=n(r,o.pickVertex,o.pickFragment),f=new s(t,a,l,c,u);return f.update(e),t.addObject(f),f};var l,c,u=s.prototype;u.dispose=function(){this.shader.dispose(),this.pickShader.dispose(),this.offsetBuffer.dispose(),this.pickBuffer.dispose(),this.plot.removeObject(this)},u.update=function(t){var e;function r(e,r){return e in t?t[e]:r}t=t||{},this.sizeMin=r("sizeMin",.5),this.sizeMax=r("sizeMax",20),this.color=r("color",[1,0,0,1]).slice(),this.areaRatio=r("areaRatio",1),this.borderColor=r("borderColor",[0,0,0,1]).slice(),this.blend=r("blend",!1);var n=t.positions.length>>>1,i=t.positions instanceof Float32Array,o=t.idToIndex instanceof Int32Array&&t.idToIndex.length>=n,s=t.positions,l=i?s:a.mallocFloat32(s.length),c=o?t.idToIndex:a.mallocInt32(n);if(i||l.set(s),!o)for(l.set(s),e=0;e>>1;for(r=0;r=e[0]&&a<=e[2]&&o>=e[1]&&o<=e[3]&&n++}return n}(this.points,i),u=this.plot.pickPixelRatio*Math.max(Math.min(this.sizeMinCap,this.sizeMin),Math.min(this.sizeMax,this.sizeMax/Math.pow(s,.33333)));l[0]=2/a,l[4]=2/o,l[6]=-2*i[0]/a-1,l[7]=-2*i[1]/o-1,this.offsetBuffer.bind(),r.bind(),r.attributes.position.pointer(),r.uniforms.matrix=l,r.uniforms.color=this.color,r.uniforms.borderColor=this.borderColor,r.uniforms.pointCloud=u<5,r.uniforms.pointSize=u,r.uniforms.centerFraction=Math.min(1,Math.max(0,Math.sqrt(1-this.areaRatio))),e&&(c[0]=255&t,c[1]=t>>8&255,c[2]=t>>16&255,c[3]=t>>24&255,this.pickBuffer.bind(),r.attributes.pickId.pointer(n.UNSIGNED_BYTE),r.uniforms.pickOffset=c,this.pickOffset=t);var f=n.getParameter(n.BLEND),h=n.getParameter(n.DITHER);return f&&!this.blend&&n.disable(n.BLEND),h&&n.disable(n.DITHER),n.drawArrays(n.POINTS,0,this.pointCount),f&&!this.blend&&n.enable(n.BLEND),h&&n.enable(n.DITHER),t+this.pointCount}),u.draw=u.unifiedDraw,u.drawPick=u.unifiedDraw,u.pick=function(t,e,r){var n=this.pickOffset,i=this.pointCount;if(r=n+i)return null;var a=r-n,o=this.points;return{object:this,pointId:a,dataCoord:[o[2*a],o[2*a+1]]}}},{"./lib/shader":322,"gl-buffer":259,"gl-shader":335,"typedarray-pool":595}],325:[function(t,e,r){e.exports=function(t,e,r,n){var i,a,o,s,l,c=e[0],u=e[1],f=e[2],h=e[3],p=r[0],d=r[1],g=r[2],m=r[3];(a=c*p+u*d+f*g+h*m)<0&&(a=-a,p=-p,d=-d,g=-g,m=-m);1-a>1e-6?(i=Math.acos(a),o=Math.sin(i),s=Math.sin((1-n)*i)/o,l=Math.sin(n*i)/o):(s=1-n,l=n);return t[0]=s*c+l*p,t[1]=s*u+l*d,t[2]=s*f+l*g,t[3]=s*h+l*m,t}},{}],326:[function(t,e,r){"use strict";e.exports=function(t){return t||0===t?t.toString():""}},{}],327:[function(t,e,r){"use strict";var n=t("vectorize-text");e.exports=function(t,e,r){var a=i[e];a||(a=i[e]={});if(t in a)return a[t];var o={textAlign:"center",textBaseline:"middle",lineHeight:1,font:e,lineSpacing:1.25,styletags:{breaklines:!0,bolds:!0,italics:!0,subscripts:!0,superscripts:!0},triangles:!0},s=n(t,o);o.triangles=!1;var l,c,u=n(t,o);if(r&&1!==r){for(l=0;l max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 glyph;\nattribute vec4 id;\n\nuniform vec4 highlightId;\nuniform float highlightScale;\nuniform mat4 model, view, projection;\nuniform vec3 clipBounds[2];\n\nvarying vec4 interpColor;\nvarying vec4 pickId;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n gl_Position = vec4(0,0,0,0);\n } else {\n float scale = 1.0;\n if(distance(highlightId, id) < 0.0001) {\n scale = highlightScale;\n }\n\n vec4 worldPosition = model * vec4(position, 1);\n vec4 viewPosition = view * worldPosition;\n viewPosition = viewPosition / viewPosition.w;\n vec4 clipPosition = projection * (viewPosition + scale * vec4(glyph.x, -glyph.y, 0, 0));\n\n gl_Position = clipPosition;\n interpColor = color;\n pickId = id;\n dataCoordinate = position;\n }\n}"]),o=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 glyph;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\nuniform vec2 screenSize;\nuniform vec3 clipBounds[2];\nuniform float highlightScale, pixelRatio;\nuniform vec4 highlightId;\n\nvarying vec4 interpColor;\nvarying vec4 pickId;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n gl_Position = vec4(0,0,0,0);\n } else {\n float scale = pixelRatio;\n if(distance(highlightId.bgr, id.bgr) < 0.001) {\n scale *= highlightScale;\n }\n\n vec4 worldPosition = model * vec4(position, 1.0);\n vec4 viewPosition = view * worldPosition;\n vec4 clipPosition = projection * viewPosition;\n clipPosition /= clipPosition.w;\n\n gl_Position = clipPosition + vec4(screenSize * scale * vec2(glyph.x, -glyph.y), 0.0, 0.0);\n interpColor = color;\n pickId = id;\n dataCoordinate = position;\n }\n}"]),s=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 glyph;\nattribute vec4 id;\n\nuniform float highlightScale;\nuniform vec4 highlightId;\nuniform vec3 axes[2];\nuniform mat4 model, view, projection;\nuniform vec2 screenSize;\nuniform vec3 clipBounds[2];\nuniform float scale, pixelRatio;\n\nvarying vec4 interpColor;\nvarying vec4 pickId;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n gl_Position = vec4(0,0,0,0);\n } else {\n float lscale = pixelRatio * scale;\n if(distance(highlightId, id) < 0.0001) {\n lscale *= highlightScale;\n }\n\n vec4 clipCenter = projection * view * model * vec4(position, 1);\n vec3 dataPosition = position + 0.5*lscale*(axes[0] * glyph.x + axes[1] * glyph.y) * clipCenter.w * screenSize.y;\n vec4 clipPosition = projection * view * model * vec4(dataPosition, 1);\n\n gl_Position = clipPosition;\n interpColor = color;\n pickId = id;\n dataCoordinate = dataPosition;\n }\n}\n"]),l=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 fragClipBounds[2];\nuniform float opacity;\n\nvarying vec4 interpColor;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n if (\n outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate) ||\n interpColor.a * opacity == 0.\n ) discard;\n gl_FragColor = interpColor * opacity;\n}\n"]),c=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 fragClipBounds[2];\nuniform float pickGroup;\n\nvarying vec4 pickId;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n if (outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate)) discard;\n\n gl_FragColor = vec4(pickGroup, pickId.bgr);\n}"]),u=[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"glyph",type:"vec2"},{name:"id",type:"vec4"}],f={vertex:a,fragment:l,attributes:u},h={vertex:o,fragment:l,attributes:u},p={vertex:s,fragment:l,attributes:u},d={vertex:a,fragment:c,attributes:u},g={vertex:o,fragment:c,attributes:u},m={vertex:s,fragment:c,attributes:u};function v(t,e){var r=n(t,e),i=r.attributes;return i.position.location=0,i.color.location=1,i.glyph.location=2,i.id.location=3,r}r.createPerspective=function(t){return v(t,f)},r.createOrtho=function(t){return v(t,h)},r.createProject=function(t){return v(t,p)},r.createPickPerspective=function(t){return v(t,d)},r.createPickOrtho=function(t){return v(t,g)},r.createPickProject=function(t){return v(t,m)}},{"gl-shader":335,glslify:329}],329:[function(t,e,r){arguments[4][257][0].apply(r,arguments)},{dup:257}],330:[function(t,e,r){"use strict";var n=t("is-string-blank"),i=t("gl-buffer"),a=t("gl-vao"),o=t("typedarray-pool"),s=t("gl-mat4/multiply"),l=t("./lib/shaders"),c=t("./lib/glyphs"),u=t("./lib/get-simple-string"),f=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function h(t,e){var r=t[0],n=t[1],i=t[2],a=t[3];return t[0]=e[0]*r+e[4]*n+e[8]*i+e[12]*a,t[1]=e[1]*r+e[5]*n+e[9]*i+e[13]*a,t[2]=e[2]*r+e[6]*n+e[10]*i+e[14]*a,t[3]=e[3]*r+e[7]*n+e[11]*i+e[15]*a,t}function p(t,e,r,n){return h(n,n),h(n,n),h(n,n)}function d(t,e){this.index=t,this.dataCoordinate=this.position=e}function g(t){return!0===t||t>1?1:t}function m(t,e,r,n,i,a,o,s,l,c,u,f){this.gl=t,this.pixelRatio=1,this.shader=e,this.orthoShader=r,this.projectShader=n,this.pointBuffer=i,this.colorBuffer=a,this.glyphBuffer=o,this.idBuffer=s,this.vao=l,this.vertexCount=0,this.lineVertexCount=0,this.opacity=1,this.hasAlpha=!1,this.lineWidth=0,this.projectScale=[2/3,2/3,2/3],this.projectOpacity=[1,1,1],this.projectHasAlpha=!1,this.pickId=0,this.pickPerspectiveShader=c,this.pickOrthoShader=u,this.pickProjectShader=f,this.points=[],this._selectResult=new d(0,[0,0,0]),this.useOrtho=!0,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.axesProject=[!0,!0,!0],this.axesBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.highlightId=[1,1,1,1],this.highlightScale=2,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.dirty=!0}e.exports=function(t){var e=t.gl,r=l.createPerspective(e),n=l.createOrtho(e),o=l.createProject(e),s=l.createPickPerspective(e),c=l.createPickOrtho(e),u=l.createPickProject(e),f=i(e),h=i(e),p=i(e),d=i(e),g=a(e,[{buffer:f,size:3,type:e.FLOAT},{buffer:h,size:4,type:e.FLOAT},{buffer:p,size:2,type:e.FLOAT},{buffer:d,size:4,type:e.UNSIGNED_BYTE,normalized:!0}]),v=new m(e,r,n,o,f,h,p,d,g,s,c,u);return v.update(t),v};var v=m.prototype;v.pickSlots=1,v.setPickBase=function(t){this.pickId=t},v.isTransparent=function(){if(this.hasAlpha)return!0;for(var t=0;t<3;++t)if(this.axesProject[t]&&this.projectHasAlpha)return!0;return!1},v.isOpaque=function(){if(!this.hasAlpha)return!0;for(var t=0;t<3;++t)if(this.axesProject[t]&&!this.projectHasAlpha)return!0;return!1};var y=[0,0],x=[0,0,0],b=[0,0,0],_=[0,0,0,1],w=[0,0,0,1],T=f.slice(),k=[0,0,0],M=[[0,0,0],[0,0,0]];function A(t){return t[0]=t[1]=t[2]=0,t}function S(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,t}function E(t,e,r,n){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[r]=n,t}function C(t,e,r,n){var i,a=e.axesProject,o=e.gl,l=t.uniforms,c=r.model||f,u=r.view||f,h=r.projection||f,d=e.axesBounds,g=function(t){for(var e=M,r=0;r<2;++r)for(var n=0;n<3;++n)e[r][n]=Math.max(Math.min(t[r][n],1e8),-1e8);return e}(e.clipBounds);i=e.axes&&e.axes.lastCubeProps?e.axes.lastCubeProps.axis:[1,1,1],y[0]=2/o.drawingBufferWidth,y[1]=2/o.drawingBufferHeight,t.bind(),l.view=u,l.projection=h,l.screenSize=y,l.highlightId=e.highlightId,l.highlightScale=e.highlightScale,l.clipBounds=g,l.pickGroup=e.pickId/255,l.pixelRatio=n;for(var m=0;m<3;++m)if(a[m]){l.scale=e.projectScale[m],l.opacity=e.projectOpacity[m];for(var v=T,C=0;C<16;++C)v[C]=0;for(C=0;C<4;++C)v[5*C]=1;v[5*m]=0,i[m]<0?v[12+m]=d[0][m]:v[12+m]=d[1][m],s(v,c,v),l.model=v;var L=(m+1)%3,I=(m+2)%3,P=A(x),z=A(b);P[L]=1,z[I]=1;var O=p(0,0,0,S(_,P)),D=p(0,0,0,S(w,z));if(Math.abs(O[1])>Math.abs(D[1])){var R=O;O=D,D=R,R=P,P=z,z=R;var F=L;L=I,I=F}O[0]<0&&(P[L]=-1),D[1]>0&&(z[I]=-1);var B=0,N=0;for(C=0;C<4;++C)B+=Math.pow(c[4*L+C],2),N+=Math.pow(c[4*I+C],2);P[L]/=Math.sqrt(B),z[I]/=Math.sqrt(N),l.axes[0]=P,l.axes[1]=z,l.fragClipBounds[0]=E(k,g[0],m,-1e8),l.fragClipBounds[1]=E(k,g[1],m,1e8),e.vao.bind(),e.vao.draw(o.TRIANGLES,e.vertexCount),e.lineWidth>0&&(o.lineWidth(e.lineWidth*n),e.vao.draw(o.LINES,e.lineVertexCount,e.vertexCount)),e.vao.unbind()}}var L=[[-1e8,-1e8,-1e8],[1e8,1e8,1e8]];function I(t,e,r,n,i,a,o){var s=r.gl;if((a===r.projectHasAlpha||o)&&C(e,r,n,i),a===r.hasAlpha||o){t.bind();var l=t.uniforms;l.model=n.model||f,l.view=n.view||f,l.projection=n.projection||f,y[0]=2/s.drawingBufferWidth,y[1]=2/s.drawingBufferHeight,l.screenSize=y,l.highlightId=r.highlightId,l.highlightScale=r.highlightScale,l.fragClipBounds=L,l.clipBounds=r.axes.bounds,l.opacity=r.opacity,l.pickGroup=r.pickId/255,l.pixelRatio=i,r.vao.bind(),r.vao.draw(s.TRIANGLES,r.vertexCount),r.lineWidth>0&&(s.lineWidth(r.lineWidth*i),r.vao.draw(s.LINES,r.lineVertexCount,r.vertexCount)),r.vao.unbind()}}function P(t,e,r,i){var a;a=Array.isArray(t)?e=this.pointCount||e<0)return null;var r=this.points[e],n=this._selectResult;n.index=e;for(var i=0;i<3;++i)n.position[i]=n.dataCoordinate[i]=r[i];return n},v.highlight=function(t){if(t){var e=t.index,r=255&e,n=e>>8&255,i=e>>16&255;this.highlightId=[r/255,n/255,i/255,0]}else this.highlightId=[1,1,1,1]},v.update=function(t){if("perspective"in(t=t||{})&&(this.useOrtho=!t.perspective),"orthographic"in t&&(this.useOrtho=!!t.orthographic),"lineWidth"in t&&(this.lineWidth=t.lineWidth),"project"in t)if(Array.isArray(t.project))this.axesProject=t.project;else{var e=!!t.project;this.axesProject=[e,e,e]}if("projectScale"in t)if(Array.isArray(t.projectScale))this.projectScale=t.projectScale.slice();else{var r=+t.projectScale;this.projectScale=[r,r,r]}if(this.projectHasAlpha=!1,"projectOpacity"in t){if(Array.isArray(t.projectOpacity))this.projectOpacity=t.projectOpacity.slice();else{r=+t.projectOpacity;this.projectOpacity=[r,r,r]}for(var n=0;n<3;++n)this.projectOpacity[n]=g(this.projectOpacity[n]),this.projectOpacity[n]<1&&(this.projectHasAlpha=!0)}this.hasAlpha=!1,"opacity"in t&&(this.opacity=g(t.opacity),this.opacity<1&&(this.hasAlpha=!0)),this.dirty=!0;var i,a,s=t.position,l=t.font||"normal",c=t.alignment||[0,0];if(2===c.length)i=c[0],a=c[1];else{i=[],a=[];for(n=0;n0){var z=0,O=x,D=[0,0,0,1],R=[0,0,0,1],F=Array.isArray(p)&&Array.isArray(p[0]),B=Array.isArray(v)&&Array.isArray(v[0]);t:for(n=0;n<_;++n){y+=1;for(w=s[n],T=0;T<3;++T){if(isNaN(w[T])||!isFinite(w[T]))continue t;f[T]=Math.max(f[T],w[T]),u[T]=Math.min(u[T],w[T])}k=(N=P(h,n,l,this.pixelRatio)).mesh,M=N.lines,A=N.bounds;var N,j=N.visible;if(j)if(Array.isArray(p)){if(3===(U=F?n0?1-A[0][0]:Y<0?1+A[1][0]:1,W*=W>0?1-A[0][1]:W<0?1+A[1][1]:1],Z=k.cells||[],J=k.positions||[];for(T=0;T0){var v=r*u;o.drawBox(f-v,h-v,p+v,h+v,a),o.drawBox(f-v,d-v,p+v,d+v,a),o.drawBox(f-v,h-v,f+v,d+v,a),o.drawBox(p-v,h-v,p+v,d+v,a)}}}},s.update=function(t){t=t||{},this.innerFill=!!t.innerFill,this.outerFill=!!t.outerFill,this.innerColor=(t.innerColor||[0,0,0,.5]).slice(),this.outerColor=(t.outerColor||[0,0,0,.5]).slice(),this.borderColor=(t.borderColor||[0,0,0,1]).slice(),this.borderWidth=t.borderWidth||0,this.selectBox=(t.selectBox||this.selectBox).slice()},s.dispose=function(){this.boxBuffer.dispose(),this.boxShader.dispose(),this.plot.removeOverlay(this)}},{"./lib/shaders":331,"gl-buffer":259,"gl-shader":335}],334:[function(t,e,r){"use strict";e.exports=function(t,e){var r=e[0],a=e[1],o=n(t,r,a,{}),s=i.mallocUint8(r*a*4);return new l(t,o,s)};var n=t("gl-fbo"),i=t("typedarray-pool"),a=t("ndarray"),o=t("bit-twiddle").nextPow2;function s(t,e,r,n,i){this.coord=[t,e],this.id=r,this.value=n,this.distance=i}function l(t,e,r){this.gl=t,this.fbo=e,this.buffer=r,this._readTimeout=null;var n=this;this._readCallback=function(){n.gl&&(e.bind(),t.readPixels(0,0,e.shape[0],e.shape[1],t.RGBA,t.UNSIGNED_BYTE,n.buffer),n._readTimeout=null)}}var c=l.prototype;Object.defineProperty(c,"shape",{get:function(){return this.gl?this.fbo.shape.slice():[0,0]},set:function(t){if(this.gl){this.fbo.shape=t;var e=this.fbo.shape[0],r=this.fbo.shape[1];if(r*e*4>this.buffer.length){i.free(this.buffer);for(var n=this.buffer=i.mallocUint8(o(r*e*4)),a=0;ar)for(t=r;te)for(t=e;t=0){for(var T=0|w.type.charAt(w.type.length-1),k=new Array(T),M=0;M=0;)A+=1;_[y]=A}var S=new Array(r.length);function E(){h.program=o.program(p,h._vref,h._fref,b,_);for(var t=0;t=0){if((d=h.charCodeAt(h.length-1)-48)<2||d>4)throw new n("","Invalid data type for attribute "+f+": "+h);o(t,e,p[0],i,d,a,f)}else{if(!(h.indexOf("mat")>=0))throw new n("","Unknown data type for attribute "+f+": "+h);var d;if((d=h.charCodeAt(h.length-1)-48)<2||d>4)throw new n("","Invalid data type for attribute "+f+": "+h);s(t,e,p,i,d,a,f)}}}return a};var n=t("./GLError");function i(t,e,r,n,i,a){this._gl=t,this._wrapper=e,this._index=r,this._locations=n,this._dimension=i,this._constFunc=a}var a=i.prototype;function o(t,e,r,n,a,o,s){for(var l=["gl","v"],c=[],u=0;u4)throw new i("","Invalid uniform dimension type for matrix "+name+": "+r);return"gl.uniformMatrix"+a+"fv(locations["+e+"],false,obj"+t+")"}throw new i("","Unknown uniform data type for "+name+": "+r)}if((a=r.charCodeAt(r.length-1)-48)<2||a>4)throw new i("","Invalid data type");switch(r.charAt(0)){case"b":case"i":return"gl.uniform"+a+"iv(locations["+e+"],obj"+t+")";case"v":return"gl.uniform"+a+"fv(locations["+e+"],obj"+t+")";default:throw new i("","Unrecognized data type for vector "+name+": "+r)}}}function c(e){for(var n=["return function updateProperty(obj){"],i=function t(e,r){if("object"!=typeof r)return[[e,r]];var n=[];for(var i in r){var a=r[i],o=e;parseInt(i)+""===i?o+="["+i+"]":o+="."+i,"object"==typeof a?n.push.apply(n,t(o,a)):n.push([o,a])}return n}("",e),a=0;a4)throw new i("","Invalid data type");return"b"===t.charAt(0)?o(r,!1):o(r,0)}if(0===t.indexOf("mat")&&4===t.length){var r;if((r=t.charCodeAt(t.length-1)-48)<2||r>4)throw new i("","Invalid uniform dimension type for matrix "+name+": "+t);return o(r*r,0)}throw new i("","Unknown uniform data type for "+name+": "+t)}}(r[u].type);var p}function f(t){var e;if(Array.isArray(t)){e=new Array(t.length);for(var r=0;r1){s[0]in a||(a[s[0]]=[]),a=a[s[0]];for(var l=1;l1)for(var l=0;l 0 U ||b|| > 0.\n // Assign z = 0, x = -b, y = a:\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\n return normalize(vec3(-v.y, v.x, 0.0));\n } else {\n return normalize(vec3(0.0, v.z, -v.y));\n }\n}\n\n// Calculate the tube vertex and normal at the given index.\n//\n// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d.\n//\n// Each tube segment is made up of a ring of vertices.\n// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array.\n// The indexes of tube segments run from 0 to 8.\n//\nvec3 getTubePosition(vec3 d, float index, out vec3 normal) {\n float segmentCount = 8.0;\n\n float angle = 2.0 * 3.14159 * (index / segmentCount);\n\n vec3 u = getOrthogonalVector(d);\n vec3 v = normalize(cross(u, d));\n\n vec3 x = u * cos(angle) * length(d);\n vec3 y = v * sin(angle) * length(d);\n vec3 v3 = x + y;\n\n normal = normalize(v3);\n\n return v3;\n}\n\nattribute vec4 vector;\nattribute vec4 color, position;\nattribute vec2 uv;\n\nuniform float vectorScale, tubeScale;\nuniform mat4 model, view, projection, inverseModel;\nuniform vec3 eyePosition, lightPosition;\n\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n // Scale the vector magnitude to stay constant with\n // model & view changes.\n vec3 normal;\n vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal);\n vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\n\n //Lighting geometry parameters\n vec4 cameraCoordinate = view * tubePosition;\n cameraCoordinate.xyz /= cameraCoordinate.w;\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\n\n // vec4 m_position = model * vec4(tubePosition, 1.0);\n vec4 t_position = view * tubePosition;\n gl_Position = projection * t_position;\n\n f_color = color;\n f_data = tubePosition.xyz;\n f_position = position.xyz;\n f_uv = uv;\n}\n"]),a=n(["#extension GL_OES_standard_derivatives : enable\n\nprecision highp float;\n#define GLSLIFY 1\n\nfloat beckmannDistribution(float x, float roughness) {\n float NdotH = max(x, 0.0001);\n float cos2Alpha = NdotH * NdotH;\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\n float roughness2 = roughness * roughness;\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\n return exp(tan2Alpha / roughness2) / denom;\n}\n\nfloat cookTorranceSpecular(\n vec3 lightDirection,\n vec3 viewDirection,\n vec3 surfaceNormal,\n float roughness,\n float fresnel) {\n\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\n\n //Half angle vector\n vec3 H = normalize(lightDirection + viewDirection);\n\n //Geometric term\n float NdotH = max(dot(surfaceNormal, H), 0.0);\n float VdotH = max(dot(viewDirection, H), 0.000001);\n float LdotH = max(dot(lightDirection, H), 0.000001);\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\n float G = min(1.0, min(G1, G2));\n \n //Distribution term\n float D = beckmannDistribution(NdotH, roughness);\n\n //Fresnel term\n float F = pow(1.0 - VdotN, fresnel);\n\n //Multiply terms and done\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\n}\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\nuniform sampler2D texture;\n\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n vec3 N = normalize(f_normal);\n vec3 L = normalize(f_lightDirection);\n vec3 V = normalize(f_eyeDirection);\n\n if(gl_FrontFacing) {\n N = -N;\n }\n\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\n\n vec4 surfaceColor = f_color * texture2D(texture, f_uv);\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\n\n gl_FragColor = litColor * opacity;\n}\n"]),o=n(["precision highp float;\n\nprecision highp float;\n#define GLSLIFY 1\n\nvec3 getOrthogonalVector(vec3 v) {\n // Return up-vector for only-z vector.\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\n // Assign z = 0, x = -b, y = a:\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\n return normalize(vec3(-v.y, v.x, 0.0));\n } else {\n return normalize(vec3(0.0, v.z, -v.y));\n }\n}\n\n// Calculate the tube vertex and normal at the given index.\n//\n// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d.\n//\n// Each tube segment is made up of a ring of vertices.\n// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array.\n// The indexes of tube segments run from 0 to 8.\n//\nvec3 getTubePosition(vec3 d, float index, out vec3 normal) {\n float segmentCount = 8.0;\n\n float angle = 2.0 * 3.14159 * (index / segmentCount);\n\n vec3 u = getOrthogonalVector(d);\n vec3 v = normalize(cross(u, d));\n\n vec3 x = u * cos(angle) * length(d);\n vec3 y = v * sin(angle) * length(d);\n vec3 v3 = x + y;\n\n normal = normalize(v3);\n\n return v3;\n}\n\nattribute vec4 vector;\nattribute vec4 position;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\nuniform float tubeScale;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n vec3 normal;\n vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal);\n vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\n\n gl_Position = projection * view * tubePosition;\n f_id = id;\n f_position = position.xyz;\n}\n"]),s=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float pickId;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n\n gl_FragColor = vec4(pickId, f_id.xyz);\n}"]);r.meshShader={vertex:i,fragment:a,attributes:[{name:"position",type:"vec4"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"},{name:"vector",type:"vec4"}]},r.pickShader={vertex:o,fragment:s,attributes:[{name:"position",type:"vec4"},{name:"id",type:"vec4"},{name:"vector",type:"vec4"}]}},{glslify:347}],347:[function(t,e,r){arguments[4][257][0].apply(r,arguments)},{dup:257}],348:[function(t,e,r){"use strict";var n=t("gl-vec3"),i=t("gl-vec4"),a=["xyz","xzy","yxz","yzx","zxy","zyx"],o=function(t,e,r,a){for(var o=0,s=0;s0)for(T=0;T<8;T++){var k=(T+1)%8;c.push(h[T],p[T],p[k],p[k],h[k],h[T]),f.push(y,v,v,v,y,y),d.push(g,m,m,m,g,g);var M=c.length;u.push([M-6,M-5,M-4],[M-3,M-2,M-1])}var A=h;h=p,p=A;var S=y;y=v,v=S;var E=g;g=m,m=E}return{positions:c,cells:u,vectors:f,vertexIntensity:d}}(t,r,a,o)})),f=[],h=[],p=[],d=[];for(s=0;se)return r-1}return r},l=function(t,e,r){return tr?r:t},c=function(t){var e=1/0;t.sort((function(t,e){return t-e}));for(var r=t.length,n=1;nf-1||y>h-1||x>p-1)return n.create();var b,_,w,T,k,M,A=a[0][d],S=a[0][v],E=a[1][g],C=a[1][y],L=a[2][m],I=(o-A)/(S-A),P=(c-E)/(C-E),z=(u-L)/(a[2][x]-L);switch(isFinite(I)||(I=.5),isFinite(P)||(P=.5),isFinite(z)||(z=.5),r.reversedX&&(d=f-1-d,v=f-1-v),r.reversedY&&(g=h-1-g,y=h-1-y),r.reversedZ&&(m=p-1-m,x=p-1-x),r.filled){case 5:k=m,M=x,w=g*p,T=y*p,b=d*p*h,_=v*p*h;break;case 4:k=m,M=x,b=d*p,_=v*p,w=g*p*f,T=y*p*f;break;case 3:w=g,T=y,k=m*h,M=x*h,b=d*h*p,_=v*h*p;break;case 2:w=g,T=y,b=d*h,_=v*h,k=m*h*f,M=x*h*f;break;case 1:b=d,_=v,k=m*f,M=x*f,w=g*f*p,T=y*f*p;break;default:b=d,_=v,w=g*f,T=y*f,k=m*f*h,M=x*f*h}var O=i[b+w+k],D=i[b+w+M],R=i[b+T+k],F=i[b+T+M],B=i[_+w+k],N=i[_+w+M],j=i[_+T+k],U=i[_+T+M],V=n.create(),q=n.create(),H=n.create(),G=n.create();n.lerp(V,O,B,I),n.lerp(q,D,N,I),n.lerp(H,R,j,I),n.lerp(G,F,U,I);var Y=n.create(),W=n.create();n.lerp(Y,V,H,P),n.lerp(W,q,G,P);var X=n.create();return n.lerp(X,Y,W,z),X}(e,t,p)},g=t.getDivergence||function(t,e){var r=n.create(),i=1e-4;n.add(r,t,[i,0,0]);var a=d(r);n.subtract(a,a,e),n.scale(a,a,1/i),n.add(r,t,[0,i,0]);var o=d(r);n.subtract(o,o,e),n.scale(o,o,1/i),n.add(r,t,[0,0,i]);var s=d(r);return n.subtract(s,s,e),n.scale(s,s,1/i),n.add(r,a,o),n.add(r,r,s),r},m=[],v=e[0][0],y=e[0][1],x=e[0][2],b=e[1][0],_=e[1][1],w=e[1][2],T=function(t){var e=t[0],r=t[1],n=t[2];return!(eb||r_||nw)},k=10*n.distance(e[0],e[1])/i,M=k*k,A=1,S=0,E=r.length;E>1&&(A=function(t){for(var e=[],r=[],n=[],i={},a={},o={},s=t.length,l=0;lS&&(S=F),D.push(F),m.push({points:I,velocities:P,divergences:D});for(var B=0;B<100*i&&I.lengthM&&n.scale(N,N,k/Math.sqrt(j)),n.add(N,N,L),z=d(N),n.squaredDistance(O,N)-M>-1e-4*M){I.push(N),O=N,P.push(z);R=g(N,z),F=n.length(R);isFinite(F)&&F>S&&(S=F),D.push(F)}L=N}}var U=o(m,t.colormap,S,A);return f?U.tubeScale=f:(0===S&&(S=1),U.tubeScale=.5*u*A/S),U};var u=t("./lib/shaders"),f=t("gl-cone3d").createMesh;e.exports.createTubeMesh=function(t,e){return f(t,e,{shaders:u,traceType:"streamtube"})}},{"./lib/shaders":346,"gl-cone3d":260,"gl-vec3":377,"gl-vec4":413}],349:[function(t,e,r){var n=t("gl-shader"),i=t("glslify"),a=i(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec4 uv;\nattribute vec3 f;\nattribute vec3 normal;\n\nuniform vec3 objectOffset;\nuniform mat4 model, view, projection, inverseModel;\nuniform vec3 lightPosition, eyePosition;\nuniform sampler2D colormap;\n\nvarying float value, kill;\nvarying vec3 worldCoordinate;\nvarying vec2 planeCoordinate;\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\nvarying vec4 vColor;\n\nvoid main() {\n vec3 localCoordinate = vec3(uv.zw, f.x);\n worldCoordinate = objectOffset + localCoordinate;\n vec4 worldPosition = model * vec4(worldCoordinate, 1.0);\n vec4 clipPosition = projection * view * worldPosition;\n gl_Position = clipPosition;\n kill = f.y;\n value = f.z;\n planeCoordinate = uv.xy;\n\n vColor = texture2D(colormap, vec2(value, value));\n\n //Lighting geometry parameters\n vec4 cameraCoordinate = view * worldPosition;\n cameraCoordinate.xyz /= cameraCoordinate.w;\n lightDirection = lightPosition - cameraCoordinate.xyz;\n eyeDirection = eyePosition - cameraCoordinate.xyz;\n surfaceNormal = normalize((vec4(normal,0) * inverseModel).xyz);\n}\n"]),o=i(["precision highp float;\n#define GLSLIFY 1\n\nfloat beckmannDistribution(float x, float roughness) {\n float NdotH = max(x, 0.0001);\n float cos2Alpha = NdotH * NdotH;\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\n float roughness2 = roughness * roughness;\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\n return exp(tan2Alpha / roughness2) / denom;\n}\n\nfloat beckmannSpecular(\n vec3 lightDirection,\n vec3 viewDirection,\n vec3 surfaceNormal,\n float roughness) {\n return beckmannDistribution(dot(surfaceNormal, normalize(lightDirection + viewDirection)), roughness);\n}\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 lowerBound, upperBound;\nuniform float contourTint;\nuniform vec4 contourColor;\nuniform sampler2D colormap;\nuniform vec3 clipBounds[2];\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\nuniform float vertexColor;\n\nvarying float value, kill;\nvarying vec3 worldCoordinate;\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\nvarying vec4 vColor;\n\nvoid main() {\n if (\n kill > 0.0 ||\n vColor.a == 0.0 ||\n outOfRange(clipBounds[0], clipBounds[1], worldCoordinate)\n ) discard;\n\n vec3 N = normalize(surfaceNormal);\n vec3 V = normalize(eyeDirection);\n vec3 L = normalize(lightDirection);\n\n if(gl_FrontFacing) {\n N = -N;\n }\n\n float specular = max(beckmannSpecular(L, V, N, roughness), 0.);\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\n\n //decide how to interpolate color \u2014 in vertex or in fragment\n vec4 surfaceColor =\n step(vertexColor, .5) * texture2D(colormap, vec2(value, value)) +\n step(.5, vertexColor) * vColor;\n\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\n\n gl_FragColor = mix(litColor, contourColor, contourTint) * opacity;\n}\n"]),s=i(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec4 uv;\nattribute float f;\n\nuniform vec3 objectOffset;\nuniform mat3 permutation;\nuniform mat4 model, view, projection;\nuniform float height, zOffset;\nuniform sampler2D colormap;\n\nvarying float value, kill;\nvarying vec3 worldCoordinate;\nvarying vec2 planeCoordinate;\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\nvarying vec4 vColor;\n\nvoid main() {\n vec3 dataCoordinate = permutation * vec3(uv.xy, height);\n worldCoordinate = objectOffset + dataCoordinate;\n vec4 worldPosition = model * vec4(worldCoordinate, 1.0);\n\n vec4 clipPosition = projection * view * worldPosition;\n clipPosition.z += zOffset;\n\n gl_Position = clipPosition;\n value = f + objectOffset.z;\n kill = -1.0;\n planeCoordinate = uv.zw;\n\n vColor = texture2D(colormap, vec2(value, value));\n\n //Don't do lighting for contours\n surfaceNormal = vec3(1,0,0);\n eyeDirection = vec3(0,1,0);\n lightDirection = vec3(0,0,1);\n}\n"]),l=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec2 shape;\nuniform vec3 clipBounds[2];\nuniform float pickId;\n\nvarying float value, kill;\nvarying vec3 worldCoordinate;\nvarying vec2 planeCoordinate;\nvarying vec3 surfaceNormal;\n\nvec2 splitFloat(float v) {\n float vh = 255.0 * v;\n float upper = floor(vh);\n float lower = fract(vh);\n return vec2(upper / 255.0, floor(lower * 16.0) / 16.0);\n}\n\nvoid main() {\n if ((kill > 0.0) ||\n (outOfRange(clipBounds[0], clipBounds[1], worldCoordinate))) discard;\n\n vec2 ux = splitFloat(planeCoordinate.x / shape.x);\n vec2 uy = splitFloat(planeCoordinate.y / shape.y);\n gl_FragColor = vec4(pickId, ux.x, uy.x, ux.y + (uy.y/16.0));\n}\n"]);r.createShader=function(t){var e=n(t,a,o,null,[{name:"uv",type:"vec4"},{name:"f",type:"vec3"},{name:"normal",type:"vec3"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e.attributes.normal.location=2,e},r.createPickShader=function(t){var e=n(t,a,l,null,[{name:"uv",type:"vec4"},{name:"f",type:"vec3"},{name:"normal",type:"vec3"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e.attributes.normal.location=2,e},r.createContourShader=function(t){var e=n(t,s,o,null,[{name:"uv",type:"vec4"},{name:"f",type:"float"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e},r.createPickContourShader=function(t){var e=n(t,s,l,null,[{name:"uv",type:"vec4"},{name:"f",type:"float"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e}},{"gl-shader":335,glslify:350}],350:[function(t,e,r){arguments[4][257][0].apply(r,arguments)},{dup:257}],351:[function(t,e,r){"use strict";e.exports=function(t){var e=t.gl,r=y(e),n=b(e),s=x(e),l=_(e),c=i(e),u=a(e,[{buffer:c,size:4,stride:40,offset:0},{buffer:c,size:3,stride:40,offset:16},{buffer:c,size:3,stride:40,offset:28}]),f=i(e),h=a(e,[{buffer:f,size:4,stride:20,offset:0},{buffer:f,size:1,stride:20,offset:16}]),p=i(e),d=a(e,[{buffer:p,size:2,type:e.FLOAT}]),g=o(e,1,256,e.RGBA,e.UNSIGNED_BYTE);g.minFilter=e.LINEAR,g.magFilter=e.LINEAR;var m=new A(e,[0,0],[[0,0,0],[0,0,0]],r,n,c,u,g,s,l,f,h,p,d,[0,0,0]),v={levels:[[],[],[]]};for(var w in t)v[w]=t[w];return v.colormap=v.colormap||"jet",m.update(v),m};var n=t("bit-twiddle"),i=t("gl-buffer"),a=t("gl-vao"),o=t("gl-texture2d"),s=t("typedarray-pool"),l=t("colormap"),c=t("ndarray-ops"),u=t("ndarray-pack"),f=t("ndarray"),h=t("surface-nets"),p=t("gl-mat4/multiply"),d=t("gl-mat4/invert"),g=t("binary-search-bounds"),m=t("ndarray-gradient"),v=t("./lib/shaders"),y=v.createShader,x=v.createContourShader,b=v.createPickShader,_=v.createPickContourShader,w=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],T=[[0,0],[0,1],[1,0],[1,1],[1,0],[0,1]],k=[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]];function M(t,e,r,n,i){this.position=t,this.index=e,this.uv=r,this.level=n,this.dataCoordinate=i}!function(){for(var t=0;t<3;++t){var e=k[t],r=(t+2)%3;e[(t+1)%3+0]=1,e[r+3]=1,e[t+6]=1}}();function A(t,e,r,n,i,a,o,l,c,u,h,p,d,g,m){this.gl=t,this.shape=e,this.bounds=r,this.objectOffset=m,this.intensityBounds=[],this._shader=n,this._pickShader=i,this._coordinateBuffer=a,this._vao=o,this._colorMap=l,this._contourShader=c,this._contourPickShader=u,this._contourBuffer=h,this._contourVAO=p,this._contourOffsets=[[],[],[]],this._contourCounts=[[],[],[]],this._vertexCount=0,this._pickResult=new M([0,0,0],[0,0],[0,0],[0,0,0],[0,0,0]),this._dynamicBuffer=d,this._dynamicVAO=g,this._dynamicOffsets=[0,0,0],this._dynamicCounts=[0,0,0],this.contourWidth=[1,1,1],this.contourLevels=[[1],[1],[1]],this.contourTint=[0,0,0],this.contourColor=[[.5,.5,.5,1],[.5,.5,.5,1],[.5,.5,.5,1]],this.showContour=!0,this.showSurface=!0,this.enableHighlight=[!0,!0,!0],this.highlightColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.highlightTint=[1,1,1],this.highlightLevel=[-1,-1,-1],this.enableDynamic=[!0,!0,!0],this.dynamicLevel=[NaN,NaN,NaN],this.dynamicColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.dynamicTint=[1,1,1],this.dynamicWidth=[1,1,1],this.axesBounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.surfaceProject=[!1,!1,!1],this.contourProject=[[!1,!1,!1],[!1,!1,!1],[!1,!1,!1]],this.colorBounds=[!1,!1],this._field=[f(s.mallocFloat(1024),[0,0]),f(s.mallocFloat(1024),[0,0]),f(s.mallocFloat(1024),[0,0])],this.pickId=1,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.snapToData=!1,this.pixelRatio=1,this.opacity=1,this.lightPosition=[10,1e4,0],this.ambientLight=.8,this.diffuseLight=.8,this.specularLight=2,this.roughness=.5,this.fresnel=1.5,this.vertexColor=0,this.dirty=!0}var S=A.prototype;S.genColormap=function(t,e){var r=!1,n=u([l({colormap:t,nshades:256,format:"rgba"}).map((function(t,n){var i=e?function(t,e){if(!e)return 1;if(!e.length)return 1;for(var r=0;rt&&r>0){var n=(e[r][0]-t)/(e[r][0]-e[r-1][0]);return e[r][1]*(1-n)+n*e[r-1][1]}}return 1}(n/255,e):t[3];return i<1&&(r=!0),[t[0],t[1],t[2],255*i]}))]);return c.divseq(n,255),this.hasAlphaScale=r,n},S.isTransparent=function(){return this.opacity<1||this.hasAlphaScale},S.isOpaque=function(){return!this.isTransparent()},S.pickSlots=1,S.setPickBase=function(t){this.pickId=t};var E=[0,0,0],C={showSurface:!1,showContour:!1,projections:[w.slice(),w.slice(),w.slice()],clipBounds:[[[0,0,0],[0,0,0]],[[0,0,0],[0,0,0]],[[0,0,0],[0,0,0]]]};function L(t,e){var r,n,i,a=e.axes&&e.axes.lastCubeProps.axis||E,o=e.showSurface,s=e.showContour;for(r=0;r<3;++r)for(o=o||e.surfaceProject[r],n=0;n<3;++n)s=s||e.contourProject[r][n];for(r=0;r<3;++r){var l=C.projections[r];for(n=0;n<16;++n)l[n]=0;for(n=0;n<4;++n)l[5*n]=1;l[5*r]=0,l[12+r]=e.axesBounds[+(a[r]>0)][r],p(l,t.model,l);var c=C.clipBounds[r];for(i=0;i<2;++i)for(n=0;n<3;++n)c[i][n]=t.clipBounds[i][n];c[0][r]=-1e8,c[1][r]=1e8}return C.showSurface=o,C.showContour=s,C}var I={model:w,view:w,projection:w,inverseModel:w.slice(),lowerBound:[0,0,0],upperBound:[0,0,0],colorMap:0,clipBounds:[[0,0,0],[0,0,0]],height:0,contourTint:0,contourColor:[0,0,0,1],permutation:[1,0,0,0,1,0,0,0,1],zOffset:-1e-4,objectOffset:[0,0,0],kambient:1,kdiffuse:1,kspecular:1,lightPosition:[1e3,1e3,1e3],eyePosition:[0,0,0],roughness:1,fresnel:1,opacity:1,vertexColor:0},P=w.slice(),z=[1,0,0,0,1,0,0,0,1];function O(t,e){t=t||{};var r=this.gl;r.disable(r.CULL_FACE),this._colorMap.bind(0);var n=I;n.model=t.model||w,n.view=t.view||w,n.projection=t.projection||w,n.lowerBound=[this.bounds[0][0],this.bounds[0][1],this.colorBounds[0]||this.bounds[0][2]],n.upperBound=[this.bounds[1][0],this.bounds[1][1],this.colorBounds[1]||this.bounds[1][2]],n.objectOffset=this.objectOffset,n.contourColor=this.contourColor[0],n.inverseModel=d(n.inverseModel,n.model);for(var i=0;i<2;++i)for(var a=n.clipBounds[i],o=0;o<3;++o)a[o]=Math.min(Math.max(this.clipBounds[i][o],-1e8),1e8);n.kambient=this.ambientLight,n.kdiffuse=this.diffuseLight,n.kspecular=this.specularLight,n.roughness=this.roughness,n.fresnel=this.fresnel,n.opacity=this.opacity,n.height=0,n.permutation=z,n.vertexColor=this.vertexColor;var s=P;for(p(s,n.view,n.model),p(s,n.projection,s),d(s,s),i=0;i<3;++i)n.eyePosition[i]=s[12+i]/s[15];var l=s[15];for(i=0;i<3;++i)l+=this.lightPosition[i]*s[4*i+3];for(i=0;i<3;++i){var c=s[12+i];for(o=0;o<3;++o)c+=s[4*o+i]*this.lightPosition[o];n.lightPosition[i]=c/l}var u=L(n,this);if(u.showSurface){for(this._shader.bind(),this._shader.uniforms=n,this._vao.bind(),this.showSurface&&this._vertexCount&&this._vao.draw(r.TRIANGLES,this._vertexCount),i=0;i<3;++i)this.surfaceProject[i]&&this.vertexCount&&(this._shader.uniforms.model=u.projections[i],this._shader.uniforms.clipBounds=u.clipBounds[i],this._vao.draw(r.TRIANGLES,this._vertexCount));this._vao.unbind()}if(u.showContour){var f=this._contourShader;n.kambient=1,n.kdiffuse=0,n.kspecular=0,n.opacity=1,f.bind(),f.uniforms=n;var h=this._contourVAO;for(h.bind(),i=0;i<3;++i)for(f.uniforms.permutation=k[i],r.lineWidth(this.contourWidth[i]*this.pixelRatio),o=0;o>4)/16)/255,i=Math.floor(n),a=n-i,o=e[1]*(t.value[1]+(15&t.value[2])/16)/255,s=Math.floor(o),l=o-s;i+=1,s+=1;var c=r.position;c[0]=c[1]=c[2]=0;for(var u=0;u<2;++u)for(var f=u?a:1-a,h=0;h<2;++h)for(var p=i+u,d=s+h,m=f*(h?l:1-l),v=0;v<3;++v)c[v]+=this._field[v].get(p,d)*m;for(var y=this._pickResult.level,x=0;x<3;++x)if(y[x]=g.le(this.contourLevels[x],c[x]),y[x]<0)this.contourLevels[x].length>0&&(y[x]=0);else if(y[x]Math.abs(_-c[x])&&(y[x]+=1)}for(r.index[0]=a<.5?i:i+1,r.index[1]=l<.5?s:s+1,r.uv[0]=n/e[0],r.uv[1]=o/e[1],v=0;v<3;++v)r.dataCoordinate[v]=this._field[v].get(r.index[0],r.index[1]);return r},S.padField=function(t,e){var r=e.shape.slice(),n=t.shape.slice();c.assign(t.lo(1,1).hi(r[0],r[1]),e),c.assign(t.lo(1).hi(r[0],1),e.hi(r[0],1)),c.assign(t.lo(1,n[1]-1).hi(r[0],1),e.lo(0,r[1]-1).hi(r[0],1)),c.assign(t.lo(0,1).hi(1,r[1]),e.hi(1)),c.assign(t.lo(n[0]-1,1).hi(1,r[1]),e.lo(r[0]-1)),t.set(0,0,e.get(0,0)),t.set(0,n[1]-1,e.get(0,r[1]-1)),t.set(n[0]-1,0,e.get(r[0]-1,0)),t.set(n[0]-1,n[1]-1,e.get(r[0]-1,r[1]-1))},S.update=function(t){t=t||{},this.objectOffset=t.objectOffset||this.objectOffset,this.dirty=!0,"contourWidth"in t&&(this.contourWidth=R(t.contourWidth,Number)),"showContour"in t&&(this.showContour=R(t.showContour,Boolean)),"showSurface"in t&&(this.showSurface=!!t.showSurface),"contourTint"in t&&(this.contourTint=R(t.contourTint,Boolean)),"contourColor"in t&&(this.contourColor=B(t.contourColor)),"contourProject"in t&&(this.contourProject=R(t.contourProject,(function(t){return R(t,Boolean)}))),"surfaceProject"in t&&(this.surfaceProject=t.surfaceProject),"dynamicColor"in t&&(this.dynamicColor=B(t.dynamicColor)),"dynamicTint"in t&&(this.dynamicTint=R(t.dynamicTint,Number)),"dynamicWidth"in t&&(this.dynamicWidth=R(t.dynamicWidth,Number)),"opacity"in t&&(this.opacity=t.opacity),"opacityscale"in t&&(this.opacityscale=t.opacityscale),"colorBounds"in t&&(this.colorBounds=t.colorBounds),"vertexColor"in t&&(this.vertexColor=t.vertexColor?1:0),"colormap"in t&&this._colorMap.setPixels(this.genColormap(t.colormap,this.opacityscale));var e=t.field||t.coords&&t.coords[2]||null,r=!1;if(e||(e=this._field[2].shape[0]||this._field[2].shape[2]?this._field[2].lo(1,1).hi(this._field[2].shape[0]-2,this._field[2].shape[1]-2):this._field[2].hi(0,0)),"field"in t||"coords"in t){var i=(e.shape[0]+2)*(e.shape[1]+2);i>this._field[2].data.length&&(s.freeFloat(this._field[2].data),this._field[2].data=s.mallocFloat(n.nextPow2(i))),this._field[2]=f(this._field[2].data,[e.shape[0]+2,e.shape[1]+2]),this.padField(this._field[2],e),this.shape=e.shape.slice();for(var a=this.shape,o=0;o<2;++o)this._field[2].size>this._field[o].data.length&&(s.freeFloat(this._field[o].data),this._field[o].data=s.mallocFloat(this._field[2].size)),this._field[o]=f(this._field[o].data,[a[0]+2,a[1]+2]);if(t.coords){var l=t.coords;if(!Array.isArray(l)||3!==l.length)throw new Error("gl-surface: invalid coordinates for x/y");for(o=0;o<2;++o){var c=l[o];for(v=0;v<2;++v)if(c.shape[v]!==a[v])throw new Error("gl-surface: coords have incorrect shape");this.padField(this._field[o],c)}}else if(t.ticks){var u=t.ticks;if(!Array.isArray(u)||2!==u.length)throw new Error("gl-surface: invalid ticks");for(o=0;o<2;++o){var p=u[o];if((Array.isArray(p)||p.length)&&(p=f(p)),p.shape[0]!==a[o])throw new Error("gl-surface: invalid tick length");var d=f(p.data,a);d.stride[o]=p.stride[0],d.stride[1^o]=0,this.padField(this._field[o],d)}}else{for(o=0;o<2;++o){var g=[0,0];g[o]=1,this._field[o]=f(this._field[o].data,[a[0]+2,a[1]+2],g,0)}this._field[0].set(0,0,0);for(var v=0;v0){for(var xt=0;xt<5;++xt)Q.pop();U-=1}continue t}Q.push(nt[0],nt[1],ot[0],ot[1],nt[2]),U+=1}}rt.push(U)}this._contourOffsets[$]=et,this._contourCounts[$]=rt}var bt=s.mallocFloat(Q.length);for(o=0;o halfCharStep + halfCharWidth ||\n\t\t\t\t\tfloor(uv.x) < halfCharStep - halfCharWidth) return;\n\n\t\t\t\tuv += charId * charStep;\n\t\t\t\tuv = uv / atlasSize;\n\n\t\t\t\tvec4 color = fontColor;\n\t\t\t\tvec4 mask = texture2D(atlas, uv);\n\n\t\t\t\tfloat maskY = lightness(mask);\n\t\t\t\t// float colorY = lightness(color);\n\t\t\t\tcolor.a *= maskY;\n\t\t\t\tcolor.a *= opacity;\n\n\t\t\t\t// color.a += .1;\n\n\t\t\t\t// antialiasing, see yiq color space y-channel formula\n\t\t\t\t// color.rgb += (1. - color.rgb) * (1. - mask.rgb);\n\n\t\t\t\tgl_FragColor = color;\n\t\t\t}"});return{regl:t,draw:e,atlas:{}}},T.prototype.update=function(t){var e=this;if("string"==typeof t)t={text:t};else if(!t)return;null!=(t=i(t,{position:"position positions coord coords coordinates",font:"font fontFace fontface typeface cssFont css-font family fontFamily",fontSize:"fontSize fontsize size font-size",text:"text texts chars characters value values symbols",align:"align alignment textAlign textbaseline",baseline:"baseline textBaseline textbaseline",direction:"dir direction textDirection",color:"color colour fill fill-color fillColor textColor textcolor",kerning:"kerning kern",range:"range dataBox",viewport:"vp viewport viewBox viewbox viewPort",opacity:"opacity alpha transparency visible visibility opaque",offset:"offset positionOffset padding shift indent indentation"},!0)).opacity&&(Array.isArray(t.opacity)?this.opacity=t.opacity.map((function(t){return parseFloat(t)})):this.opacity=parseFloat(t.opacity)),null!=t.viewport&&(this.viewport=f(t.viewport),T.normalViewport&&(this.viewport.y=this.canvas.height-this.viewport.y-this.viewport.height),this.viewportArray=[this.viewport.x,this.viewport.y,this.viewport.width,this.viewport.height]),null==this.viewport&&(this.viewport={x:0,y:0,width:this.gl.drawingBufferWidth,height:this.gl.drawingBufferHeight},this.viewportArray=[this.viewport.x,this.viewport.y,this.viewport.width,this.viewport.height]),null!=t.kerning&&(this.kerning=t.kerning),null!=t.offset&&("number"==typeof t.offset&&(t.offset=[t.offset,0]),this.positionOffset=y(t.offset)),t.direction&&(this.direction=t.direction),t.range&&(this.range=t.range,this.scale=[1/(t.range[2]-t.range[0]),1/(t.range[3]-t.range[1])],this.translate=[-t.range[0],-t.range[1]]),t.scale&&(this.scale=t.scale),t.translate&&(this.translate=t.translate),this.scale||(this.scale=[1/this.viewport.width,1/this.viewport.height]),this.translate||(this.translate=[0,0]),this.font.length||t.font||(t.font=T.baseFontSize+"px sans-serif");var r,a=!1,o=!1;if(t.font&&(Array.isArray(t.font)?t.font:[t.font]).forEach((function(t,r){if("string"==typeof t)try{t=n.parse(t)}catch(e){t=n.parse(T.baseFontSize+"px "+t)}else t=n.parse(n.stringify(t));var i=n.stringify({size:T.baseFontSize,family:t.family,stretch:_?t.stretch:void 0,variant:t.variant,weight:t.weight,style:t.style}),s=p(t.size),l=Math.round(s[0]*d(s[1]));if(l!==e.fontSize[r]&&(o=!0,e.fontSize[r]=l),!(e.font[r]&&i==e.font[r].baseString||(a=!0,e.font[r]=T.fonts[i],e.font[r]))){var c=t.family.join(", "),u=[t.style];t.style!=t.variant&&u.push(t.variant),t.variant!=t.weight&&u.push(t.weight),_&&t.weight!=t.stretch&&u.push(t.stretch),e.font[r]={baseString:i,family:c,weight:t.weight,stretch:t.stretch,style:t.style,variant:t.variant,width:{},kerning:{},metrics:v(c,{origin:"top",fontSize:T.baseFontSize,fontStyle:u.join(" ")})},T.fonts[i]=e.font[r]}})),(a||o)&&this.font.forEach((function(r,i){var a=n.stringify({size:e.fontSize[i],family:r.family,stretch:_?r.stretch:void 0,variant:r.variant,weight:r.weight,style:r.style});if(e.fontAtlas[i]=e.shader.atlas[a],!e.fontAtlas[i]){var o=r.metrics;e.shader.atlas[a]=e.fontAtlas[i]={fontString:a,step:2*Math.ceil(e.fontSize[i]*o.bottom*.5),em:e.fontSize[i],cols:0,rows:0,height:0,width:0,chars:[],ids:{},texture:e.regl.texture()}}null==t.text&&(t.text=e.text)})),"string"==typeof t.text&&t.position&&t.position.length>2){for(var s=Array(.5*t.position.length),h=0;h2){for(var w=!t.position[0].length,k=u.mallocFloat(2*this.count),M=0,A=0;M1?e.align[r]:e.align[0]:e.align;if("number"==typeof n)return n;switch(n){case"right":case"end":return-t;case"center":case"centre":case"middle":return.5*-t}return 0}))),null==this.baseline&&null==t.baseline&&(t.baseline=0),null!=t.baseline&&(this.baseline=t.baseline,Array.isArray(this.baseline)||(this.baseline=[this.baseline]),this.baselineOffset=this.baseline.map((function(t,r){var n=(e.font[r]||e.font[0]).metrics,i=0;return i+=.5*n.bottom,i+="number"==typeof t?t-n.baseline:-n[t],T.normalViewport||(i*=-1),i}))),null!=t.color)if(t.color||(t.color="transparent"),"string"!=typeof t.color&&isNaN(t.color)){var H;if("number"==typeof t.color[0]&&t.color.length>this.counts.length){var G=t.color.length;H=u.mallocUint8(G);for(var Y=(t.color.subarray||t.color.slice).bind(t.color),W=0;W4||this.baselineOffset.length>1||this.align&&this.align.length>1||this.fontAtlas.length>1||this.positionOffset.length>2){var J=Math.max(.5*this.position.length||0,.25*this.color.length||0,this.baselineOffset.length||0,this.alignOffset.length||0,this.font.length||0,this.opacity.length||0,.5*this.positionOffset.length||0);this.batch=Array(J);for(var K=0;K1?this.counts[K]:this.counts[0],offset:this.textOffsets.length>1?this.textOffsets[K]:this.textOffsets[0],color:this.color?this.color.length<=4?this.color:this.color.subarray(4*K,4*K+4):[0,0,0,255],opacity:Array.isArray(this.opacity)?this.opacity[K]:this.opacity,baseline:null!=this.baselineOffset[K]?this.baselineOffset[K]:this.baselineOffset[0],align:this.align?null!=this.alignOffset[K]?this.alignOffset[K]:this.alignOffset[0]:0,atlas:this.fontAtlas[K]||this.fontAtlas[0],positionOffset:this.positionOffset.length>2?this.positionOffset.subarray(2*K,2*K+2):this.positionOffset}}else this.count?this.batch=[{count:this.count,offset:0,color:this.color||[0,0,0,255],opacity:Array.isArray(this.opacity)?this.opacity[0]:this.opacity,baseline:this.baselineOffset[0],align:this.alignOffset?this.alignOffset[0]:0,atlas:this.fontAtlas[0],positionOffset:this.positionOffset}]:this.batch=[]},T.prototype.destroy=function(){},T.prototype.kerning=!0,T.prototype.position={constant:new Float32Array(2)},T.prototype.translate=null,T.prototype.scale=null,T.prototype.font=null,T.prototype.text="",T.prototype.positionOffset=[0,0],T.prototype.opacity=1,T.prototype.color=new Uint8Array([0,0,0,255]),T.prototype.alignOffset=[0,0],T.normalViewport=!1,T.maxAtlasSize=1024,T.atlasCanvas=document.createElement("canvas"),T.atlasContext=T.atlasCanvas.getContext("2d",{alpha:!1}),T.baseFontSize=64,T.fonts={},e.exports=T},{"bit-twiddle":97,"color-normalize":125,"css-font":144,"detect-kerning":172,"es6-weak-map":233,"flatten-vertex-data":244,"font-atlas":245,"font-measure":246,"gl-util/context":354,"is-plain-obj":469,"object-assign":499,"parse-rect":504,"parse-unit":506,"pick-by-alias":511,regl:540,"to-px":578,"typedarray-pool":595}],353:[function(t,e,r){"use strict";var n=t("ndarray"),i=t("ndarray-ops"),a=t("typedarray-pool");e.exports=function(t){if(arguments.length<=1)throw new Error("gl-texture2d: Missing arguments for texture2d constructor");o||c(t);if("number"==typeof arguments[1])return v(t,arguments[1],arguments[2],arguments[3]||t.RGBA,arguments[4]||t.UNSIGNED_BYTE);if(Array.isArray(arguments[1]))return v(t,0|arguments[1][0],0|arguments[1][1],arguments[2]||t.RGBA,arguments[3]||t.UNSIGNED_BYTE);if("object"==typeof arguments[1]){var e=arguments[1],r=u(e)?e:e.raw;if(r)return y(t,r,0|e.width,0|e.height,arguments[2]||t.RGBA,arguments[3]||t.UNSIGNED_BYTE);if(e.shape&&e.data&&e.stride)return x(t,e)}throw new Error("gl-texture2d: Invalid arguments for texture2d constructor")};var o=null,s=null,l=null;function c(t){o=[t.LINEAR,t.NEAREST_MIPMAP_LINEAR,t.LINEAR_MIPMAP_NEAREST,t.LINEAR_MIPMAP_NEAREST],s=[t.NEAREST,t.LINEAR,t.NEAREST_MIPMAP_NEAREST,t.NEAREST_MIPMAP_LINEAR,t.LINEAR_MIPMAP_NEAREST,t.LINEAR_MIPMAP_LINEAR],l=[t.REPEAT,t.CLAMP_TO_EDGE,t.MIRRORED_REPEAT]}function u(t){return"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLVideoElement&&t instanceof HTMLVideoElement||"undefined"!=typeof ImageData&&t instanceof ImageData}var f=function(t,e){i.muls(t,e,255)};function h(t,e,r){var n=t.gl,i=n.getParameter(n.MAX_TEXTURE_SIZE);if(e<0||e>i||r<0||r>i)throw new Error("gl-texture2d: Invalid texture size");return t._shape=[e,r],t.bind(),n.texImage2D(n.TEXTURE_2D,0,t.format,e,r,0,t.format,t.type,null),t._mipLevels=[0],t}function p(t,e,r,n,i,a){this.gl=t,this.handle=e,this.format=i,this.type=a,this._shape=[r,n],this._mipLevels=[0],this._magFilter=t.NEAREST,this._minFilter=t.NEAREST,this._wrapS=t.CLAMP_TO_EDGE,this._wrapT=t.CLAMP_TO_EDGE,this._anisoSamples=1;var o=this,s=[this._wrapS,this._wrapT];Object.defineProperties(s,[{get:function(){return o._wrapS},set:function(t){return o.wrapS=t}},{get:function(){return o._wrapT},set:function(t){return o.wrapT=t}}]),this._wrapVector=s;var l=[this._shape[0],this._shape[1]];Object.defineProperties(l,[{get:function(){return o._shape[0]},set:function(t){return o.width=t}},{get:function(){return o._shape[1]},set:function(t){return o.height=t}}]),this._shapeVector=l}var d=p.prototype;function g(t,e){return 3===t.length?1===e[2]&&e[1]===t[0]*t[2]&&e[0]===t[2]:1===e[0]&&e[1]===t[0]}function m(t){var e=t.createTexture();return t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),e}function v(t,e,r,n,i){var a=t.getParameter(t.MAX_TEXTURE_SIZE);if(e<0||e>a||r<0||r>a)throw new Error("gl-texture2d: Invalid texture shape");if(i===t.FLOAT&&!t.getExtension("OES_texture_float"))throw new Error("gl-texture2d: Floating point textures not supported on this platform");var o=m(t);return t.texImage2D(t.TEXTURE_2D,0,n,e,r,0,n,i,null),new p(t,o,e,r,n,i)}function y(t,e,r,n,i,a){var o=m(t);return t.texImage2D(t.TEXTURE_2D,0,i,i,a,e),new p(t,o,r,n,i,a)}function x(t,e){var r=e.dtype,o=e.shape.slice(),s=t.getParameter(t.MAX_TEXTURE_SIZE);if(o[0]<0||o[0]>s||o[1]<0||o[1]>s)throw new Error("gl-texture2d: Invalid texture size");var l=g(o,e.stride.slice()),c=0;"float32"===r?c=t.FLOAT:"float64"===r?(c=t.FLOAT,l=!1,r="float32"):"uint8"===r?c=t.UNSIGNED_BYTE:(c=t.UNSIGNED_BYTE,l=!1,r="uint8");var u,h,d=0;if(2===o.length)d=t.LUMINANCE,o=[o[0],o[1],1],e=n(e.data,o,[e.stride[0],e.stride[1],1],e.offset);else{if(3!==o.length)throw new Error("gl-texture2d: Invalid shape for texture");if(1===o[2])d=t.ALPHA;else if(2===o[2])d=t.LUMINANCE_ALPHA;else if(3===o[2])d=t.RGB;else{if(4!==o[2])throw new Error("gl-texture2d: Invalid shape for pixel coords");d=t.RGBA}}c!==t.FLOAT||t.getExtension("OES_texture_float")||(c=t.UNSIGNED_BYTE,l=!1);var v=e.size;if(l)u=0===e.offset&&e.data.length===v?e.data:e.data.subarray(e.offset,e.offset+v);else{var y=[o[2],o[2]*o[0],1];h=a.malloc(v,r);var x=n(h,o,y,0);"float32"!==r&&"float64"!==r||c!==t.UNSIGNED_BYTE?i.assign(x,e):f(x,e),u=h.subarray(0,v)}var b=m(t);return t.texImage2D(t.TEXTURE_2D,0,d,o[0],o[1],0,d,c,u),l||a.free(h),new p(t,b,o[0],o[1],d,c)}Object.defineProperties(d,{minFilter:{get:function(){return this._minFilter},set:function(t){this.bind();var e=this.gl;if(this.type===e.FLOAT&&o.indexOf(t)>=0&&(e.getExtension("OES_texture_float_linear")||(t=e.NEAREST)),s.indexOf(t)<0)throw new Error("gl-texture2d: Unknown filter mode "+t);return e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,t),this._minFilter=t}},magFilter:{get:function(){return this._magFilter},set:function(t){this.bind();var e=this.gl;if(this.type===e.FLOAT&&o.indexOf(t)>=0&&(e.getExtension("OES_texture_float_linear")||(t=e.NEAREST)),s.indexOf(t)<0)throw new Error("gl-texture2d: Unknown filter mode "+t);return e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,t),this._magFilter=t}},mipSamples:{get:function(){return this._anisoSamples},set:function(t){var e=this._anisoSamples;if(this._anisoSamples=0|Math.max(t,1),e!==this._anisoSamples){var r=this.gl.getExtension("EXT_texture_filter_anisotropic");r&&this.gl.texParameterf(this.gl.TEXTURE_2D,r.TEXTURE_MAX_ANISOTROPY_EXT,this._anisoSamples)}return this._anisoSamples}},wrapS:{get:function(){return this._wrapS},set:function(t){if(this.bind(),l.indexOf(t)<0)throw new Error("gl-texture2d: Unknown wrap mode "+t);return this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,t),this._wrapS=t}},wrapT:{get:function(){return this._wrapT},set:function(t){if(this.bind(),l.indexOf(t)<0)throw new Error("gl-texture2d: Unknown wrap mode "+t);return this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,t),this._wrapT=t}},wrap:{get:function(){return this._wrapVector},set:function(t){if(Array.isArray(t)||(t=[t,t]),2!==t.length)throw new Error("gl-texture2d: Must specify wrap mode for rows and columns");for(var e=0;e<2;++e)if(l.indexOf(t[e])<0)throw new Error("gl-texture2d: Unknown wrap mode "+t);this._wrapS=t[0],this._wrapT=t[1];var r=this.gl;return this.bind(),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,this._wrapS),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,this._wrapT),t}},shape:{get:function(){return this._shapeVector},set:function(t){if(Array.isArray(t)){if(2!==t.length)throw new Error("gl-texture2d: Invalid texture shape")}else t=[0|t,0|t];return h(this,0|t[0],0|t[1]),[0|t[0],0|t[1]]}},width:{get:function(){return this._shape[0]},set:function(t){return h(this,t|=0,this._shape[1]),t}},height:{get:function(){return this._shape[1]},set:function(t){return t|=0,h(this,this._shape[0],t),t}}}),d.bind=function(t){var e=this.gl;return void 0!==t&&e.activeTexture(e.TEXTURE0+(0|t)),e.bindTexture(e.TEXTURE_2D,this.handle),void 0!==t?0|t:e.getParameter(e.ACTIVE_TEXTURE)-e.TEXTURE0},d.dispose=function(){this.gl.deleteTexture(this.handle)},d.generateMipmap=function(){this.bind(),this.gl.generateMipmap(this.gl.TEXTURE_2D);for(var t=Math.min(this._shape[0],this._shape[1]),e=0;t>0;++e,t>>>=1)this._mipLevels.indexOf(e)<0&&this._mipLevels.push(e)},d.setPixels=function(t,e,r,o){var s=this.gl;this.bind(),Array.isArray(e)?(o=r,r=0|e[1],e=0|e[0]):(e=e||0,r=r||0),o=o||0;var l=u(t)?t:t.raw;if(l){this._mipLevels.indexOf(o)<0?(s.texImage2D(s.TEXTURE_2D,0,this.format,this.format,this.type,l),this._mipLevels.push(o)):s.texSubImage2D(s.TEXTURE_2D,o,e,r,this.format,this.type,l)}else{if(!(t.shape&&t.stride&&t.data))throw new Error("gl-texture2d: Unsupported data type");if(t.shape.length<2||e+t.shape[1]>this._shape[1]>>>o||r+t.shape[0]>this._shape[0]>>>o||e<0||r<0)throw new Error("gl-texture2d: Texture dimensions are out of bounds");!function(t,e,r,o,s,l,c,u){var h=u.dtype,p=u.shape.slice();if(p.length<2||p.length>3)throw new Error("gl-texture2d: Invalid ndarray, must be 2d or 3d");var d=0,m=0,v=g(p,u.stride.slice());"float32"===h?d=t.FLOAT:"float64"===h?(d=t.FLOAT,v=!1,h="float32"):"uint8"===h?d=t.UNSIGNED_BYTE:(d=t.UNSIGNED_BYTE,v=!1,h="uint8");if(2===p.length)m=t.LUMINANCE,p=[p[0],p[1],1],u=n(u.data,p,[u.stride[0],u.stride[1],1],u.offset);else{if(3!==p.length)throw new Error("gl-texture2d: Invalid shape for texture");if(1===p[2])m=t.ALPHA;else if(2===p[2])m=t.LUMINANCE_ALPHA;else if(3===p[2])m=t.RGB;else{if(4!==p[2])throw new Error("gl-texture2d: Invalid shape for pixel coords");m=t.RGBA}p[2]}m!==t.LUMINANCE&&m!==t.ALPHA||s!==t.LUMINANCE&&s!==t.ALPHA||(m=s);if(m!==s)throw new Error("gl-texture2d: Incompatible texture format for setPixels");var y=u.size,x=c.indexOf(o)<0;x&&c.push(o);if(d===l&&v)0===u.offset&&u.data.length===y?x?t.texImage2D(t.TEXTURE_2D,o,s,p[0],p[1],0,s,l,u.data):t.texSubImage2D(t.TEXTURE_2D,o,e,r,p[0],p[1],s,l,u.data):x?t.texImage2D(t.TEXTURE_2D,o,s,p[0],p[1],0,s,l,u.data.subarray(u.offset,u.offset+y)):t.texSubImage2D(t.TEXTURE_2D,o,e,r,p[0],p[1],s,l,u.data.subarray(u.offset,u.offset+y));else{var b;b=l===t.FLOAT?a.mallocFloat32(y):a.mallocUint8(y);var _=n(b,p,[p[2],p[2]*p[0],1]);d===t.FLOAT&&l===t.UNSIGNED_BYTE?f(_,u):i.assign(_,u),x?t.texImage2D(t.TEXTURE_2D,o,s,p[0],p[1],0,s,l,b.subarray(0,y)):t.texSubImage2D(t.TEXTURE_2D,o,e,r,p[0],p[1],s,l,b.subarray(0,y)),l===t.FLOAT?a.freeFloat32(b):a.freeUint8(b)}}(s,e,r,o,this.format,this.type,this._mipLevels,t)}}},{ndarray:495,"ndarray-ops":490,"typedarray-pool":595}],354:[function(t,e,r){(function(r){(function(){"use strict";var n=t("pick-by-alias");function i(t){if(t.container)if(t.container==document.body)document.body.style.width||(t.canvas.width=t.width||t.pixelRatio*r.innerWidth),document.body.style.height||(t.canvas.height=t.height||t.pixelRatio*r.innerHeight);else{var e=t.container.getBoundingClientRect();t.canvas.width=t.width||e.right-e.left,t.canvas.height=t.height||e.bottom-e.top}}function a(t){return"function"==typeof t.getContext&&"width"in t&&"height"in t}function o(){var t=document.createElement("canvas");return t.style.position="absolute",t.style.top=0,t.style.left=0,t}e.exports=function(t){var e;if(t?"string"==typeof t&&(t={container:t}):t={},a(t)?t={container:t}:t="string"==typeof(e=t).nodeName&&"function"==typeof e.appendChild&&"function"==typeof e.getBoundingClientRect?{container:t}:function(t){return"function"==typeof t.drawArrays||"function"==typeof t.drawElements}(t)?{gl:t}:n(t,{container:"container target element el canvas holder parent parentNode wrapper use ref root node",gl:"gl context webgl glContext",attrs:"attributes attrs contextAttributes",pixelRatio:"pixelRatio pxRatio px ratio pxratio pixelratio",width:"w width",height:"h height"},!0),t.pixelRatio||(t.pixelRatio=r.pixelRatio||1),t.gl)return t.gl;if(t.canvas&&(t.container=t.canvas.parentNode),t.container){if("string"==typeof t.container){var s=document.querySelector(t.container);if(!s)throw Error("Element "+t.container+" is not found");t.container=s}a(t.container)?(t.canvas=t.container,t.container=t.canvas.parentNode):t.canvas||(t.canvas=o(),t.container.appendChild(t.canvas),i(t))}else if(!t.canvas){if("undefined"==typeof document)throw Error("Not DOM environment. Use headless-gl.");t.container=document.body||document.documentElement,t.canvas=o(),t.container.appendChild(t.canvas),i(t)}if(!t.gl)try{t.gl=t.canvas.getContext("webgl",t.attrs)}catch(e){try{t.gl=t.canvas.getContext("experimental-webgl",t.attrs)}catch(e){t.gl=t.canvas.getContext("webgl-experimental",t.attrs)}}return t.gl}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"pick-by-alias":511}],355:[function(t,e,r){"use strict";e.exports=function(t,e,r){e?e.bind():t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null);var n=0|t.getParameter(t.MAX_VERTEX_ATTRIBS);if(r){if(r.length>n)throw new Error("gl-vao: Too many vertex attributes");for(var i=0;i1?0:Math.acos(s)};var n=t("./fromValues"),i=t("./normalize"),a=t("./dot")},{"./dot":370,"./fromValues":376,"./normalize":387}],361:[function(t,e,r){e.exports=function(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t}},{}],362:[function(t,e,r){e.exports=function(t){var e=new Float32Array(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}},{}],363:[function(t,e,r){e.exports=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}},{}],364:[function(t,e,r){e.exports=function(){var t=new Float32Array(3);return t[0]=0,t[1]=0,t[2]=0,t}},{}],365:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2];return t[0]=i*l-a*s,t[1]=a*o-n*l,t[2]=n*s-i*o,t}},{}],366:[function(t,e,r){e.exports=t("./distance")},{"./distance":367}],367:[function(t,e,r){e.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2];return Math.sqrt(r*r+n*n+i*i)}},{}],368:[function(t,e,r){e.exports=t("./divide")},{"./divide":369}],369:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}},{}],370:[function(t,e,r){e.exports=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}},{}],371:[function(t,e,r){e.exports=1e-6},{}],372:[function(t,e,r){e.exports=function(t,e){var r=t[0],i=t[1],a=t[2],o=e[0],s=e[1],l=e[2];return Math.abs(r-o)<=n*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(i-s)<=n*Math.max(1,Math.abs(i),Math.abs(s))&&Math.abs(a-l)<=n*Math.max(1,Math.abs(a),Math.abs(l))};var n=t("./epsilon")},{"./epsilon":371}],373:[function(t,e,r){e.exports=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}},{}],374:[function(t,e,r){e.exports=function(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t}},{}],375:[function(t,e,r){e.exports=function(t,e,r,i,a,o){var s,l;e||(e=3);r||(r=0);l=i?Math.min(i*e+r,t.length):t.length;for(s=r;s0&&(a=1/Math.sqrt(a),t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a);return t}},{}],388:[function(t,e,r){e.exports=function(t,e){e=e||1;var r=2*Math.random()*Math.PI,n=2*Math.random()-1,i=Math.sqrt(1-n*n)*e;return t[0]=Math.cos(r)*i,t[1]=Math.sin(r)*i,t[2]=n*e,t}},{}],389:[function(t,e,r){e.exports=function(t,e,r,n){var i=r[1],a=r[2],o=e[1]-i,s=e[2]-a,l=Math.sin(n),c=Math.cos(n);return t[0]=e[0],t[1]=i+o*c-s*l,t[2]=a+o*l+s*c,t}},{}],390:[function(t,e,r){e.exports=function(t,e,r,n){var i=r[0],a=r[2],o=e[0]-i,s=e[2]-a,l=Math.sin(n),c=Math.cos(n);return t[0]=i+s*l+o*c,t[1]=e[1],t[2]=a+s*c-o*l,t}},{}],391:[function(t,e,r){e.exports=function(t,e,r,n){var i=r[0],a=r[1],o=e[0]-i,s=e[1]-a,l=Math.sin(n),c=Math.cos(n);return t[0]=i+o*c-s*l,t[1]=a+o*l+s*c,t[2]=e[2],t}},{}],392:[function(t,e,r){e.exports=function(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t}},{}],393:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}},{}],394:[function(t,e,r){e.exports=function(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t}},{}],395:[function(t,e,r){e.exports=function(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}},{}],396:[function(t,e,r){e.exports=t("./squaredDistance")},{"./squaredDistance":398}],397:[function(t,e,r){e.exports=t("./squaredLength")},{"./squaredLength":399}],398:[function(t,e,r){e.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2];return r*r+n*n+i*i}},{}],399:[function(t,e,r){e.exports=function(t){var e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n}},{}],400:[function(t,e,r){e.exports=t("./subtract")},{"./subtract":401}],401:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}},{}],402:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2];return t[0]=n*r[0]+i*r[3]+a*r[6],t[1]=n*r[1]+i*r[4]+a*r[7],t[2]=n*r[2]+i*r[5]+a*r[8],t}},{}],403:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[3]*n+r[7]*i+r[11]*a+r[15];return o=o||1,t[0]=(r[0]*n+r[4]*i+r[8]*a+r[12])/o,t[1]=(r[1]*n+r[5]*i+r[9]*a+r[13])/o,t[2]=(r[2]*n+r[6]*i+r[10]*a+r[14])/o,t}},{}],404:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2],c=r[3],u=c*n+s*a-l*i,f=c*i+l*n-o*a,h=c*a+o*i-s*n,p=-o*n-s*i-l*a;return t[0]=u*c+p*-o+f*-l-h*-s,t[1]=f*c+p*-s+h*-o-u*-l,t[2]=h*c+p*-l+u*-s-f*-o,t}},{}],405:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t}},{}],406:[function(t,e,r){e.exports=function(t){var e=new Float32Array(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}},{}],407:[function(t,e,r){e.exports=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}},{}],408:[function(t,e,r){e.exports=function(){var t=new Float32Array(4);return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t}},{}],409:[function(t,e,r){e.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2],a=e[3]-t[3];return Math.sqrt(r*r+n*n+i*i+a*a)}},{}],410:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t[3]=e[3]/r[3],t}},{}],411:[function(t,e,r){e.exports=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}},{}],412:[function(t,e,r){e.exports=function(t,e,r,n){var i=new Float32Array(4);return i[0]=t,i[1]=e,i[2]=r,i[3]=n,i}},{}],413:[function(t,e,r){e.exports={create:t("./create"),clone:t("./clone"),fromValues:t("./fromValues"),copy:t("./copy"),set:t("./set"),add:t("./add"),subtract:t("./subtract"),multiply:t("./multiply"),divide:t("./divide"),min:t("./min"),max:t("./max"),scale:t("./scale"),scaleAndAdd:t("./scaleAndAdd"),distance:t("./distance"),squaredDistance:t("./squaredDistance"),length:t("./length"),squaredLength:t("./squaredLength"),negate:t("./negate"),inverse:t("./inverse"),normalize:t("./normalize"),dot:t("./dot"),lerp:t("./lerp"),random:t("./random"),transformMat4:t("./transformMat4"),transformQuat:t("./transformQuat")}},{"./add":405,"./clone":406,"./copy":407,"./create":408,"./distance":409,"./divide":410,"./dot":411,"./fromValues":412,"./inverse":414,"./length":415,"./lerp":416,"./max":417,"./min":418,"./multiply":419,"./negate":420,"./normalize":421,"./random":422,"./scale":423,"./scaleAndAdd":424,"./set":425,"./squaredDistance":426,"./squaredLength":427,"./subtract":428,"./transformMat4":429,"./transformQuat":430}],414:[function(t,e,r){e.exports=function(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t[3]=1/e[3],t}},{}],415:[function(t,e,r){e.exports=function(t){var e=t[0],r=t[1],n=t[2],i=t[3];return Math.sqrt(e*e+r*r+n*n+i*i)}},{}],416:[function(t,e,r){e.exports=function(t,e,r,n){var i=e[0],a=e[1],o=e[2],s=e[3];return t[0]=i+n*(r[0]-i),t[1]=a+n*(r[1]-a),t[2]=o+n*(r[2]-o),t[3]=s+n*(r[3]-s),t}},{}],417:[function(t,e,r){e.exports=function(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t[3]=Math.max(e[3],r[3]),t}},{}],418:[function(t,e,r){e.exports=function(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t[3]=Math.min(e[3],r[3]),t}},{}],419:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t[3]=e[3]*r[3],t}},{}],420:[function(t,e,r){e.exports=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t}},{}],421:[function(t,e,r){e.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=r*r+n*n+i*i+a*a;o>0&&(o=1/Math.sqrt(o),t[0]=r*o,t[1]=n*o,t[2]=i*o,t[3]=a*o);return t}},{}],422:[function(t,e,r){var n=t("./normalize"),i=t("./scale");e.exports=function(t,e){return e=e||1,t[0]=Math.random(),t[1]=Math.random(),t[2]=Math.random(),t[3]=Math.random(),n(t,t),i(t,t,e),t}},{"./normalize":421,"./scale":423}],423:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t}},{}],424:[function(t,e,r){e.exports=function(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t}},{}],425:[function(t,e,r){e.exports=function(t,e,r,n,i){return t[0]=e,t[1]=r,t[2]=n,t[3]=i,t}},{}],426:[function(t,e,r){e.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2],a=e[3]-t[3];return r*r+n*n+i*i+a*a}},{}],427:[function(t,e,r){e.exports=function(t){var e=t[0],r=t[1],n=t[2],i=t[3];return e*e+r*r+n*n+i*i}},{}],428:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t}},{}],429:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3];return t[0]=r[0]*n+r[4]*i+r[8]*a+r[12]*o,t[1]=r[1]*n+r[5]*i+r[9]*a+r[13]*o,t[2]=r[2]*n+r[6]*i+r[10]*a+r[14]*o,t[3]=r[3]*n+r[7]*i+r[11]*a+r[15]*o,t}},{}],430:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2],c=r[3],u=c*n+s*a-l*i,f=c*i+l*n-o*a,h=c*a+o*i-s*n,p=-o*n-s*i-l*a;return t[0]=u*c+p*-o+f*-l-h*-s,t[1]=f*c+p*-s+h*-o-u*-l,t[2]=h*c+p*-l+u*-s-f*-o,t[3]=e[3],t}},{}],431:[function(t,e,r){var n=t("glsl-tokenizer"),i=t("atob-lite");e.exports=function(t){for(var e=Array.isArray(t)?t:n(t),r=0;r0)continue;r=t.slice(0,1).join("")}return M(r),v+=r.length,(p=p.slice(r.length)).length}}function P(){return/[^a-fA-F0-9]/.test(e)?(M(p.join("")),h=999,u):(p.push(e),r=e,u+1)}function z(){return"."===e||/[eE]/.test(e)?(p.push(e),h=5,r=e,u+1):"x"===e&&1===p.length&&"0"===p[0]?(h=11,p.push(e),r=e,u+1):/[^\d]/.test(e)?(M(p.join("")),h=999,u):(p.push(e),r=e,u+1)}function O(){return"f"===e&&(p.push(e),r=e,u+=1),/[eE]/.test(e)?(p.push(e),r=e,u+1):("-"!==e&&"+"!==e||!/[eE]/.test(r))&&/[^\d]/.test(e)?(M(p.join("")),h=999,u):(p.push(e),r=e,u+1)}function D(){if(/[^\d\w_]/.test(e)){var t=p.join("");return h=k[t]?8:T[t]?7:6,M(p.join("")),h=999,u}return p.push(e),r=e,u+1}};var n=t("./lib/literals"),i=t("./lib/operators"),a=t("./lib/builtins"),o=t("./lib/literals-300es"),s=t("./lib/builtins-300es"),l=["block-comment","line-comment","preprocessor","operator","integer","float","ident","builtin","keyword","whitespace","eof","integer"]},{"./lib/builtins":434,"./lib/builtins-300es":433,"./lib/literals":436,"./lib/literals-300es":435,"./lib/operators":437}],433:[function(t,e,r){var n=t("./builtins");n=n.slice().filter((function(t){return!/^(gl\_|texture)/.test(t)})),e.exports=n.concat(["gl_VertexID","gl_InstanceID","gl_Position","gl_PointSize","gl_FragCoord","gl_FrontFacing","gl_FragDepth","gl_PointCoord","gl_MaxVertexAttribs","gl_MaxVertexUniformVectors","gl_MaxVertexOutputVectors","gl_MaxFragmentInputVectors","gl_MaxVertexTextureImageUnits","gl_MaxCombinedTextureImageUnits","gl_MaxTextureImageUnits","gl_MaxFragmentUniformVectors","gl_MaxDrawBuffers","gl_MinProgramTexelOffset","gl_MaxProgramTexelOffset","gl_DepthRangeParameters","gl_DepthRange","trunc","round","roundEven","isnan","isinf","floatBitsToInt","floatBitsToUint","intBitsToFloat","uintBitsToFloat","packSnorm2x16","unpackSnorm2x16","packUnorm2x16","unpackUnorm2x16","packHalf2x16","unpackHalf2x16","outerProduct","transpose","determinant","inverse","texture","textureSize","textureProj","textureLod","textureOffset","texelFetch","texelFetchOffset","textureProjOffset","textureLodOffset","textureProjLod","textureProjLodOffset","textureGrad","textureGradOffset","textureProjGrad","textureProjGradOffset"])},{"./builtins":434}],434:[function(t,e,r){e.exports=["abs","acos","all","any","asin","atan","ceil","clamp","cos","cross","dFdx","dFdy","degrees","distance","dot","equal","exp","exp2","faceforward","floor","fract","gl_BackColor","gl_BackLightModelProduct","gl_BackLightProduct","gl_BackMaterial","gl_BackSecondaryColor","gl_ClipPlane","gl_ClipVertex","gl_Color","gl_DepthRange","gl_DepthRangeParameters","gl_EyePlaneQ","gl_EyePlaneR","gl_EyePlaneS","gl_EyePlaneT","gl_Fog","gl_FogCoord","gl_FogFragCoord","gl_FogParameters","gl_FragColor","gl_FragCoord","gl_FragData","gl_FragDepth","gl_FragDepthEXT","gl_FrontColor","gl_FrontFacing","gl_FrontLightModelProduct","gl_FrontLightProduct","gl_FrontMaterial","gl_FrontSecondaryColor","gl_LightModel","gl_LightModelParameters","gl_LightModelProducts","gl_LightProducts","gl_LightSource","gl_LightSourceParameters","gl_MaterialParameters","gl_MaxClipPlanes","gl_MaxCombinedTextureImageUnits","gl_MaxDrawBuffers","gl_MaxFragmentUniformComponents","gl_MaxLights","gl_MaxTextureCoords","gl_MaxTextureImageUnits","gl_MaxTextureUnits","gl_MaxVaryingFloats","gl_MaxVertexAttribs","gl_MaxVertexTextureImageUnits","gl_MaxVertexUniformComponents","gl_ModelViewMatrix","gl_ModelViewMatrixInverse","gl_ModelViewMatrixInverseTranspose","gl_ModelViewMatrixTranspose","gl_ModelViewProjectionMatrix","gl_ModelViewProjectionMatrixInverse","gl_ModelViewProjectionMatrixInverseTranspose","gl_ModelViewProjectionMatrixTranspose","gl_MultiTexCoord0","gl_MultiTexCoord1","gl_MultiTexCoord2","gl_MultiTexCoord3","gl_MultiTexCoord4","gl_MultiTexCoord5","gl_MultiTexCoord6","gl_MultiTexCoord7","gl_Normal","gl_NormalMatrix","gl_NormalScale","gl_ObjectPlaneQ","gl_ObjectPlaneR","gl_ObjectPlaneS","gl_ObjectPlaneT","gl_Point","gl_PointCoord","gl_PointParameters","gl_PointSize","gl_Position","gl_ProjectionMatrix","gl_ProjectionMatrixInverse","gl_ProjectionMatrixInverseTranspose","gl_ProjectionMatrixTranspose","gl_SecondaryColor","gl_TexCoord","gl_TextureEnvColor","gl_TextureMatrix","gl_TextureMatrixInverse","gl_TextureMatrixInverseTranspose","gl_TextureMatrixTranspose","gl_Vertex","greaterThan","greaterThanEqual","inversesqrt","length","lessThan","lessThanEqual","log","log2","matrixCompMult","max","min","mix","mod","normalize","not","notEqual","pow","radians","reflect","refract","sign","sin","smoothstep","sqrt","step","tan","texture2D","texture2DLod","texture2DProj","texture2DProjLod","textureCube","textureCubeLod","texture2DLodEXT","texture2DProjLodEXT","textureCubeLodEXT","texture2DGradEXT","texture2DProjGradEXT","textureCubeGradEXT"]},{}],435:[function(t,e,r){var n=t("./literals");e.exports=n.slice().concat(["layout","centroid","smooth","case","mat2x2","mat2x3","mat2x4","mat3x2","mat3x3","mat3x4","mat4x2","mat4x3","mat4x4","uvec2","uvec3","uvec4","samplerCubeShadow","sampler2DArray","sampler2DArrayShadow","isampler2D","isampler3D","isamplerCube","isampler2DArray","usampler2D","usampler3D","usamplerCube","usampler2DArray","coherent","restrict","readonly","writeonly","resource","atomic_uint","noperspective","patch","sample","subroutine","common","partition","active","filter","image1D","image2D","image3D","imageCube","iimage1D","iimage2D","iimage3D","iimageCube","uimage1D","uimage2D","uimage3D","uimageCube","image1DArray","image2DArray","iimage1DArray","iimage2DArray","uimage1DArray","uimage2DArray","image1DShadow","image2DShadow","image1DArrayShadow","image2DArrayShadow","imageBuffer","iimageBuffer","uimageBuffer","sampler1DArray","sampler1DArrayShadow","isampler1D","isampler1DArray","usampler1D","usampler1DArray","isampler2DRect","usampler2DRect","samplerBuffer","isamplerBuffer","usamplerBuffer","sampler2DMS","isampler2DMS","usampler2DMS","sampler2DMSArray","isampler2DMSArray","usampler2DMSArray"])},{"./literals":436}],436:[function(t,e,r){e.exports=["precision","highp","mediump","lowp","attribute","const","uniform","varying","break","continue","do","for","while","if","else","in","out","inout","float","int","uint","void","bool","true","false","discard","return","mat2","mat3","mat4","vec2","vec3","vec4","ivec2","ivec3","ivec4","bvec2","bvec3","bvec4","sampler1D","sampler2D","sampler3D","samplerCube","sampler1DShadow","sampler2DShadow","struct","asm","class","union","enum","typedef","template","this","packed","goto","switch","default","inline","noinline","volatile","public","static","extern","external","interface","long","short","double","half","fixed","unsigned","input","output","hvec2","hvec3","hvec4","dvec2","dvec3","dvec4","fvec2","fvec3","fvec4","sampler2DRect","sampler3DRect","sampler2DRectShadow","sizeof","cast","namespace","using"]},{}],437:[function(t,e,r){e.exports=["<<=",">>=","++","--","<<",">>","<=",">=","==","!=","&&","||","+=","-=","*=","/=","%=","&=","^^","^=","|=","(",")","[","]",".","!","~","*","/","%","+","-","<",">","&","^","|","?",":","=",",",";","{","}"]},{}],438:[function(t,e,r){var n=t("./index");e.exports=function(t,e){var r=n(e),i=[];return i=(i=i.concat(r(t))).concat(r(null))}},{"./index":432}],439:[function(t,e,r){arguments[4][257][0].apply(r,arguments)},{dup:257}],440:[function(t,e,r){(function(r){(function(){"use strict";var n,i=t("is-browser");n="function"==typeof r.matchMedia?!r.matchMedia("(hover: none)").matches:i,e.exports=n}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"is-browser":464}],441:[function(t,e,r){"use strict";var n=t("is-browser");e.exports=n&&function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("test",null,e),window.removeEventListener("test",null,e)}catch(e){t=!1}return t}()},{"is-browser":464}],442:[function(t,e,r){r.read=function(t,e,r,n,i){var a,o,s=8*i-n-1,l=(1<>1,u=-7,f=r?i-1:0,h=r?-1:1,p=t[e+f];for(f+=h,a=p&(1<<-u)-1,p>>=-u,u+=s;u>0;a=256*a+t[e+f],f+=h,u-=8);for(o=a&(1<<-u)-1,a>>=-u,u+=n;u>0;o=256*o+t[e+f],f+=h,u-=8);if(0===a)a=1-c;else{if(a===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),a-=c}return(p?-1:1)*o*Math.pow(2,a-n)},r.write=function(t,e,r,n,i,a){var o,s,l,c=8*a-i-1,u=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,d=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=u):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+f>=1?h/l:h*Math.pow(2,1-f))*l>=2&&(o++,l/=2),o+f>=u?(s=0,o=u):o+f>=1?(s=(e*l-1)*Math.pow(2,i),o+=f):(s=e*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;t[r+p]=255&s,p+=d,s/=256,i-=8);for(o=o<0;t[r+p]=255&o,p+=d,o/=256,c-=8);t[r+p-d]|=128*g}},{}],443:[function(t,e,r){"use strict";var n=t("./types");e.exports=function(t,e){var r;for(r in n)if(n[r].detect(t,e))return r}},{"./types":446}],444:[function(t,e,r){(function(r){(function(){"use strict";var n=t("fs"),i=t("path"),a=t("./types"),o=t("./detector");function s(t,e){var r=o(t,e);if(r in a){var n=a[r].calculate(t,e);if(!1!==n)return n.type=r,n}throw new TypeError("unsupported file type: "+r+" (file: "+e+")")}e.exports=function(t,e){if(r.isBuffer(t))return s(t);if("string"!=typeof t)throw new TypeError("invalid invocation");var a=i.resolve(t);if("function"!=typeof e)return s(function(t){var e=n.openSync(t,"r"),i=n.fstatSync(e).size,a=Math.min(i,524288),o=r.alloc(a);return n.readSync(e,o,0,a,0),n.closeSync(e),o}(a),a);!function(t,e){n.open(t,"r",(function(i,a){if(i)return e(i);n.fstat(a,(function(i,o){if(i)return e(i);var s=o.size;if(s<=0)return e(new Error("File size is not greater than 0 \u2014\u2014 "+t));var l=Math.min(s,524288),c=r.alloc(l);n.read(a,c,0,l,0,(function(t){if(t)return e(t);n.close(a,(function(t){e(t,c)}))}))}))}))}(a,(function(t,r){if(t)return e(t);var n;try{n=s(r,a)}catch(e){t=e}e(t,n)}))},e.exports.types=Object.keys(a)}).call(this)}).call(this,t("buffer").Buffer)},{"./detector":443,"./types":446,buffer:111,fs:109,path:507}],445:[function(t,e,r){"use strict";e.exports=function(t,e,r,n){return r=r||0,t["readUInt"+e+(n?"BE":"LE")].call(t,r)}},{}],446:[function(t,e,r){"use strict";var n={bmp:t("./types/bmp"),cur:t("./types/cur"),dds:t("./types/dds"),gif:t("./types/gif"),icns:t("./types/icns"),ico:t("./types/ico"),jpg:t("./types/jpg"),png:t("./types/png"),psd:t("./types/psd"),svg:t("./types/svg"),tiff:t("./types/tiff"),webp:t("./types/webp")};e.exports=n},{"./types/bmp":447,"./types/cur":448,"./types/dds":449,"./types/gif":450,"./types/icns":451,"./types/ico":452,"./types/jpg":453,"./types/png":454,"./types/psd":455,"./types/svg":456,"./types/tiff":457,"./types/webp":458}],447:[function(t,e,r){"use strict";e.exports={detect:function(t){return"BM"===t.toString("ascii",0,2)},calculate:function(t){return{width:t.readUInt32LE(18),height:Math.abs(t.readInt32LE(22))}}}},{}],448:[function(t,e,r){"use strict";e.exports={detect:function(t){return 0===t.readUInt16LE(0)&&2===t.readUInt16LE(2)},calculate:t("./ico").calculate}},{"./ico":452}],449:[function(t,e,r){"use strict";e.exports={detect:function(t){return 542327876===t.readUInt32LE(0)},calculate:function(t){return{height:t.readUInt32LE(12),width:t.readUInt32LE(16)}}}},{}],450:[function(t,e,r){"use strict";var n=/^GIF8[79]a/;e.exports={detect:function(t){var e=t.toString("ascii",0,6);return n.test(e)},calculate:function(t){return{width:t.readUInt16LE(6),height:t.readUInt16LE(8)}}}},{}],451:[function(t,e,r){"use strict";var n={ICON:32,"ICN#":32,"icm#":16,icm4:16,icm8:16,"ics#":16,ics4:16,ics8:16,is32:16,s8mk:16,icp4:16,icl4:32,icl8:32,il32:32,l8mk:32,icp5:32,ic11:32,ich4:48,ich8:48,ih32:48,h8mk:48,icp6:64,ic12:32,it32:128,t8mk:128,ic07:128,ic08:256,ic13:256,ic09:512,ic14:512,ic10:1024};function i(t,e){var r=e+4;return[t.toString("ascii",e,r),t.readUInt32BE(r)]}function a(t){var e=n[t];return{width:e,height:e,type:t}}e.exports={detect:function(t){return"icns"===t.toString("ascii",0,4)},calculate:function(t){var e,r,n,o=t.length,s=8,l=t.readUInt32BE(4);if(r=a((e=i(t,s))[0]),(s+=e[1])===l)return r;for(n={width:r.width,height:r.height,images:[r]};st.length)return;var s=t.slice(r,i);if(274===n(s,16,0,e)){if(3!==n(s,16,2,e))return;if(1!==n(s,32,4,e))return;return n(s,16,8,e)}}}(r,a)}function s(t,e){if(e>t.length)throw new TypeError("Corrupt JPG, exceeded buffer limits");if(255!==t[e])throw new TypeError("Invalid JPG, marker table corrupted")}e.exports={detect:function(t){return"ffd8"===t.toString("hex",0,2)},calculate:function(t){var e,r,n;for(t=t.slice(4);t.length;){if(r=t.readUInt16BE(0),i(t)&&(e=o(t,r)),s(t,r),192===(n=t[r+1])||193===n||194===n){var l=a(t,r+5);return e?{width:l.width,height:l.height,orientation:e}:l}t=t.slice(r+2)}throw new TypeError("Invalid JPG, no size found")}}},{"../readUInt":445}],454:[function(t,e,r){"use strict";e.exports={detect:function(t){if("PNG\r\n\x1a\n"===t.toString("ascii",1,8)){var e=t.toString("ascii",12,16);if("CgBI"===e&&(e=t.toString("ascii",28,32)),"IHDR"!==e)throw new TypeError("invalid png");return!0}},calculate:function(t){return"CgBI"===t.toString("ascii",12,16)?{width:t.readUInt32BE(32),height:t.readUInt32BE(36)}:{width:t.readUInt32BE(16),height:t.readUInt32BE(20)}}}},{}],455:[function(t,e,r){"use strict";e.exports={detect:function(t){return"8BPS"===t.toString("ascii",0,4)},calculate:function(t){return{width:t.readUInt32BE(18),height:t.readUInt32BE(14)}}}},{}],456:[function(t,e,r){"use strict";var n=/"']|"[^"]*"|'[^']*')*>/;var i={root:n,width:/\swidth=(['"])([^%]+?)\1/,height:/\sheight=(['"])([^%]+?)\1/,viewbox:/\sviewBox=(['"])(.+?)\1/},a={cm:96/2.54,mm:96/2.54/10,m:96/2.54*100,pt:96/72,pc:96/72/12,em:16,ex:8};function o(t){var e=/([0-9.]+)([a-z]*)/.exec(t);if(e)return Math.round(parseFloat(e[1])*(a[e[2]]||1))}function s(t){var e=t.split(" ");return{width:o(e[2]),height:o(e[3])}}e.exports={detect:function(t){return n.test(t)},calculate:function(t){var e=t.toString("utf8").match(i.root);if(e){var r=function(t){var e=t.match(i.width),r=t.match(i.height),n=t.match(i.viewbox);return{width:e&&o(e[2]),height:r&&o(r[2]),viewbox:n&&s(n[2])}}(e[0]);if(r.width&&r.height)return function(t){return{width:t.width,height:t.height}}(r);if(r.viewbox)return function(t){var e=t.viewbox.width/t.viewbox.height;return t.width?{width:t.width,height:Math.floor(t.width/e)}:t.height?{width:Math.floor(t.height*e),height:t.height}:{width:t.viewbox.width,height:t.viewbox.height}}(r)}throw new TypeError("invalid svg")}}},{}],457:[function(t,e,r){(function(r){(function(){"use strict";var n=t("fs"),i=t("../readUInt");function a(t,e){var r=i(t,16,8,e);return(i(t,16,10,e)<<16)+r}function o(t){if(t.length>24)return t.slice(12)}e.exports={detect:function(t){var e=t.toString("hex",0,4);return"49492a00"===e||"4d4d002a"===e},calculate:function(t,e){if(!e)throw new TypeError("Tiff doesn't support buffer");var s="BE"===function(t){var e=t.toString("ascii",0,2);return"II"===e?"LE":"MM"===e?"BE":void 0}(t),l=function(t,e){for(var r,n,s,l={};t&&t.length&&(r=i(t,16,0,e),n=i(t,16,2,e),s=i(t,32,4,e),0!==r);)1!==s||3!==n&&4!==n||(l[r]=a(t,e)),t=o(t);return l}(function(t,e,a){var o=i(t,32,4,a),s=1024,l=n.statSync(e).size;o+s>l&&(s=l-o-10);var c=r.alloc(s),u=n.openSync(e,"r");return n.readSync(u,c,0,s,o),c.slice(2)}(t,e,s),s),c=l[256],u=l[257];if(!c||!u)throw new TypeError("Invalid Tiff, missing tags");return{width:c,height:u}}}}).call(this)}).call(this,t("buffer").Buffer)},{"../readUInt":445,buffer:111,fs:109}],458:[function(t,e,r){"use strict";e.exports={detect:function(t){var e="RIFF"===t.toString("ascii",0,4),r="WEBP"===t.toString("ascii",8,12),n="VP8"===t.toString("ascii",12,15);return e&&r&&n},calculate:function(t){var e=t.toString("ascii",12,16);if(t=t.slice(20,30),"VP8X"===e){var r=t[0];return!(!(0==(192&r))||!(0==(1&r)))&&function(t){return{width:1+t.readUIntLE(4,3),height:1+t.readUIntLE(7,3)}}(t)}if("VP8 "===e&&47!==t[0])return function(t){return{width:16383&t.readInt16LE(6),height:16383&t.readInt16LE(8)}}(t);var n=t.toString("hex",3,6);return"VP8L"===e&&"9d012a"!==n&&function(t){return{width:1+((63&t[2])<<8|t[1]),height:1+((15&t[4])<<10|t[3]<<2|(192&t[2])>>6)}}(t)}}},{}],459:[function(t,e,r){"use strict";e.exports=function(t,e){var r=t.length;if(0===r)throw new Error("Must have at least d+1 points");var i=t[0].length;if(r<=i)throw new Error("Must input at least d+1 points");var o=t.slice(0,i+1),s=n.apply(void 0,o);if(0===s)throw new Error("Input not in general position");for(var l=new Array(i+1),u=0;u<=i;++u)l[u]=u;s<0&&(l[0]=1,l[1]=0);var f=new a(l,new Array(i+1),!1),h=f.adjacent,p=new Array(i+2);for(u=0;u<=i;++u){for(var d=l.slice(),g=0;g<=i;++g)g===u&&(d[g]=-1);var m=d[0];d[0]=d[1],d[1]=m;var v=new a(d,new Array(i+1),!0);h[u]=v,p[u]=v}p[i+1]=f;for(u=0;u<=i;++u){d=h[u].vertices;var y=h[u].adjacent;for(g=0;g<=i;++g){var x=d[g];if(x<0)y[g]=f;else for(var b=0;b<=i;++b)h[b].vertices.indexOf(x)<0&&(y[g]=h[b])}}var _=new c(i,o,p),w=!!e;for(u=i+1;u0&&e.push(","),e.push("tuple[",r,"]");e.push(")}return orient");var i=new Function("test",e.join("")),a=n[t+1];return a||(a=n),i(a)}(t)),this.orient=a}var u=c.prototype;u.handleBoundaryDegeneracy=function(t,e){var r=this.dimension,n=this.vertices.length-1,i=this.tuple,a=this.vertices,o=[t];for(t.lastVisited=-n;o.length>0;){(t=o.pop()).vertices;for(var s=t.adjacent,l=0;l<=r;++l){var c=s[l];if(c.boundary&&!(c.lastVisited<=-n)){for(var u=c.vertices,f=0;f<=r;++f){var h=u[f];i[f]=h<0?e:a[h]}var p=this.orient();if(p>0)return c;c.lastVisited=-n,0===p&&o.push(c)}}}return null},u.walk=function(t,e){var r=this.vertices.length-1,n=this.dimension,i=this.vertices,a=this.tuple,o=e?this.interior.length*Math.random()|0:this.interior.length-1,s=this.interior[o];t:for(;!s.boundary;){for(var l=s.vertices,c=s.adjacent,u=0;u<=n;++u)a[u]=i[l[u]];s.lastVisited=r;for(u=0;u<=n;++u){var f=c[u];if(!(f.lastVisited>=r)){var h=a[u];a[u]=t;var p=this.orient();if(a[u]=h,p<0){s=f;continue t}f.boundary?f.lastVisited=-r:f.lastVisited=r}}return}return s},u.addPeaks=function(t,e){var r=this.vertices.length-1,n=this.dimension,i=this.vertices,l=this.tuple,c=this.interior,u=this.simplices,f=[e];e.lastVisited=r,e.vertices[e.vertices.indexOf(-1)]=r,e.boundary=!1,c.push(e);for(var h=[];f.length>0;){var p=(e=f.pop()).vertices,d=e.adjacent,g=p.indexOf(r);if(!(g<0))for(var m=0;m<=n;++m)if(m!==g){var v=d[m];if(v.boundary&&!(v.lastVisited>=r)){var y=v.vertices;if(v.lastVisited!==-r){for(var x=0,b=0;b<=n;++b)y[b]<0?(x=b,l[b]=t):l[b]=i[y[b]];if(this.orient()>0){y[x]=r,v.boundary=!1,c.push(v),f.push(v),v.lastVisited=r;continue}v.lastVisited=-r}var _=v.adjacent,w=p.slice(),T=d.slice(),k=new a(w,T,!0);u.push(k);var M=_.indexOf(e);if(!(M<0)){_[M]=k,T[g]=v,w[m]=-1,T[m]=e,d[m]=k,k.flip();for(b=0;b<=n;++b){var A=w[b];if(!(A<0||A===r)){for(var S=new Array(n-1),E=0,C=0;C<=n;++C){var L=w[C];L<0||C===b||(S[E++]=L)}h.push(new o(S,k,b))}}}}}}h.sort(s);for(m=0;m+1=0?o[l++]=s[u]:c=1&u;if(c===(1&t)){var f=o[0];o[0]=o[1],o[1]=f}e.push(o)}}return e}},{"robust-orientation":548,"simplicial-complex":558}],460:[function(t,e,r){"use strict";var n=t("binary-search-bounds");function i(t,e,r,n,i){this.mid=t,this.left=e,this.right=r,this.leftPoints=n,this.rightPoints=i,this.count=(e?e.count:0)+(r?r.count:0)+n.length}e.exports=function(t){if(!t||0===t.length)return new v(null);return new v(m(t))};var a=i.prototype;function o(t,e){t.mid=e.mid,t.left=e.left,t.right=e.right,t.leftPoints=e.leftPoints,t.rightPoints=e.rightPoints,t.count=e.count}function s(t,e){var r=m(e);t.mid=r.mid,t.left=r.left,t.right=r.right,t.leftPoints=r.leftPoints,t.rightPoints=r.rightPoints,t.count=r.count}function l(t,e){var r=t.intervals([]);r.push(e),s(t,r)}function c(t,e){var r=t.intervals([]),n=r.indexOf(e);return n<0?0:(r.splice(n,1),s(t,r),1)}function u(t,e,r){for(var n=0;n=0&&t[n][1]>=e;--n){var i=r(t[n]);if(i)return i}}function h(t,e){for(var r=0;r>1],a=[],o=[],s=[];for(r=0;r3*(e+1)?l(this,t):this.left.insert(t):this.left=m([t]);else if(t[0]>this.mid)this.right?4*(this.right.count+1)>3*(e+1)?l(this,t):this.right.insert(t):this.right=m([t]);else{var r=n.ge(this.leftPoints,t,d),i=n.ge(this.rightPoints,t,g);this.leftPoints.splice(r,0,t),this.rightPoints.splice(i,0,t)}},a.remove=function(t){var e=this.count-this.leftPoints;if(t[1]3*(e-1)?c(this,t):2===(s=this.left.remove(t))?(this.left=null,this.count-=1,1):(1===s&&(this.count-=1),s):0;if(t[0]>this.mid)return this.right?4*(this.left?this.left.count:0)>3*(e-1)?c(this,t):2===(s=this.right.remove(t))?(this.right=null,this.count-=1,1):(1===s&&(this.count-=1),s):0;if(1===this.count)return this.leftPoints[0]===t?2:0;if(1===this.leftPoints.length&&this.leftPoints[0]===t){if(this.left&&this.right){for(var r=this,i=this.left;i.right;)r=i,i=i.right;if(r===this)i.right=this.right;else{var a=this.left,s=this.right;r.count-=i.count,r.right=i.left,i.left=a,i.right=s}o(this,i),this.count=(this.left?this.left.count:0)+(this.right?this.right.count:0)+this.leftPoints.length}else this.left?o(this,this.left):o(this,this.right);return 1}for(a=n.ge(this.leftPoints,t,d);athis.mid){var r;if(this.right)if(r=this.right.queryPoint(t,e))return r;return f(this.rightPoints,t,e)}return h(this.leftPoints,e)},a.queryInterval=function(t,e,r){var n;if(tthis.mid&&this.right&&(n=this.right.queryInterval(t,e,r)))return n;return ethis.mid?f(this.rightPoints,t,r):h(this.leftPoints,r)};var y=v.prototype;y.insert=function(t){this.root?this.root.insert(t):this.root=new i(t[0],null,null,[t],[t])},y.remove=function(t){if(this.root){var e=this.root.remove(t);return 2===e&&(this.root=null),0!==e}return!1},y.queryPoint=function(t,e){if(this.root)return this.root.queryPoint(t,e)},y.queryInterval=function(t,e,r){if(t<=e&&this.root)return this.root.queryInterval(t,e,r)},Object.defineProperty(y,"count",{get:function(){return this.root?this.root.count:0}}),Object.defineProperty(y,"intervals",{get:function(){return this.root?this.root.intervals([]):[]}})},{"binary-search-bounds":461}],461:[function(t,e,r){arguments[4][243][0].apply(r,arguments)},{dup:243}],462:[function(t,e,r){"use strict";e.exports=function(t,e){e=e||new Array(t.length);for(var r=0;r2147483647)throw new RangeError('The value "'+t+'" is invalid for option "size"');var e=new Uint8Array(t);return e.__proto__=a.prototype,e}function a(t,e,r){if("number"==typeof t){if("string"==typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return l(t)}return o(t,e,r)}function o(t,e,r){if("string"==typeof t)return function(t,e){"string"==typeof e&&""!==e||(e="utf8");if(!a.isEncoding(e))throw new TypeError("Unknown encoding: "+e);var r=0|f(t,e),n=i(r),o=n.write(t,e);o!==r&&(n=n.slice(0,o));return n}(t,e);if(ArrayBuffer.isView(t))return c(t);if(null==t)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(B(t,ArrayBuffer)||t&&B(t.buffer,ArrayBuffer))return function(t,e,r){if(e<0||t.byteLength=2147483647)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+2147483647..toString(16)+" bytes");return 0|t}function f(t,e){if(a.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||B(t,ArrayBuffer))return t.byteLength;if("string"!=typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var r=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;for(var i=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return D(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return R(t).length;default:if(i)return n?-1:D(t).length;e=(""+e).toLowerCase(),i=!0}}function h(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return A(this,e,r);case"utf8":case"utf-8":return T(this,e,r);case"ascii":return k(this,e,r);case"latin1":case"binary":return M(this,e,r);case"base64":return w(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function p(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function d(t,e,r,n,i){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),N(r=+r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof e&&(e=a.from(e,n)),a.isBuffer(e))return 0===e.length?-1:m(t,e,r,n,i);if("number"==typeof e)return e&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):m(t,[e],r,n,i);throw new TypeError("val must be string, number or Buffer")}function m(t,e,r,n,i){var a,o=1,s=t.length,l=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;o=2,s/=2,l/=2,r/=2}function c(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}if(i){var u=-1;for(a=r;as&&(r=s-l),a=r;a>=0;a--){for(var f=!0,h=0;hi&&(n=i):n=i;var a=e.length;n>a/2&&(n=a/2);for(var o=0;o>8,i=r%256,a.push(i),a.push(n);return a}(e,t.length-r),t,r,n)}function w(t,r,n){return 0===r&&n===t.length?e.fromByteArray(t):e.fromByteArray(t.slice(r,n))}function T(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:c>223?3:c>191?2:1;if(i+f<=r)switch(f){case 1:c<128&&(u=c);break;case 2:128==(192&(a=t[i+1]))&&(l=(31&c)<<6|63&a)>127&&(u=l);break;case 3:a=t[i+1],o=t[i+2],128==(192&a)&&128==(192&o)&&(l=(15&c)<<12|(63&a)<<6|63&o)>2047&&(l<55296||l>57343)&&(u=l);break;case 4:a=t[i+1],o=t[i+2],s=t[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&(l=(15&c)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&l<1114112&&(u=l)}null===u?(u=65533,f=1):u>65535&&(u-=65536,n.push(u>>>10&1023|55296),u=56320|1023&u),n.push(u),i+=f}return function(t){var e=t.length;if(e<=4096)return String.fromCharCode.apply(String,t);var r="",n=0;for(;ne&&(t+=" ... "),""},a.prototype.compare=function(t,e,r,n,i){if(B(t,Uint8Array)&&(t=a.from(t,t.offset,t.byteLength)),!a.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),e<0||r>t.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&e>=r)return 0;if(n>=i)return-1;if(e>=r)return 1;if(this===t)return 0;for(var o=(i>>>=0)-(n>>>=0),s=(r>>>=0)-(e>>>=0),l=Math.min(o,s),c=this.slice(n,i),u=t.slice(e,r),f=0;f>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-e;if((void 0===r||r>i)&&(r=i),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var a=!1;;)switch(n){case"hex":return g(this,t,e,r);case"utf8":case"utf-8":return v(this,t,e,r);case"ascii":return y(this,t,e,r);case"latin1":case"binary":return x(this,t,e,r);case"base64":return b(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _(this,t,e,r);default:if(a)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),a=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function k(t,e,r){var n="";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i="",a=e;ar)throw new RangeError("Trying to access beyond buffer length")}function L(t,e,r,n,i,o){if(!a.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError("Index out of range")}function C(t,e,r,n,i,a){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function P(t,e,r,i,a){return e=+e,r>>>=0,a||C(t,0,r,4),n.write(t,e,r,i,23,4),r+4}function I(t,e,r,i,a){return e=+e,r>>>=0,a||C(t,0,r,8),n.write(t,e,r,i,52,8),r+8}a.prototype.slice=function(t,e){var r=this.length;(t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e>>=0,e>>>=0,r||E(t,e,this.length);for(var n=this[t],i=1,a=0;++a>>=0,e>>>=0,r||E(t,e,this.length);for(var n=this[t+--e],i=1;e>0&&(i*=256);)n+=this[t+--e]*i;return n},a.prototype.readUInt8=function(t,e){return t>>>=0,e||E(t,1,this.length),this[t]},a.prototype.readUInt16LE=function(t,e){return t>>>=0,e||E(t,2,this.length),this[t]|this[t+1]<<8},a.prototype.readUInt16BE=function(t,e){return t>>>=0,e||E(t,2,this.length),this[t]<<8|this[t+1]},a.prototype.readUInt32LE=function(t,e){return t>>>=0,e||E(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},a.prototype.readUInt32BE=function(t,e){return t>>>=0,e||E(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},a.prototype.readIntLE=function(t,e,r){t>>>=0,e>>>=0,r||E(t,e,this.length);for(var n=this[t],i=1,a=0;++a=(i*=128)&&(n-=Math.pow(2,8*e)),n},a.prototype.readIntBE=function(t,e,r){t>>>=0,e>>>=0,r||E(t,e,this.length);for(var n=e,i=1,a=this[t+--n];n>0&&(i*=256);)a+=this[t+--n]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*e)),a},a.prototype.readInt8=function(t,e){return t>>>=0,e||E(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},a.prototype.readInt16LE=function(t,e){t>>>=0,e||E(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt16BE=function(t,e){t>>>=0,e||E(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},a.prototype.readInt32LE=function(t,e){return t>>>=0,e||E(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},a.prototype.readInt32BE=function(t,e){return t>>>=0,e||E(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},a.prototype.readFloatLE=function(t,e){return t>>>=0,e||E(t,4,this.length),n.read(this,t,!0,23,4)},a.prototype.readFloatBE=function(t,e){return t>>>=0,e||E(t,4,this.length),n.read(this,t,!1,23,4)},a.prototype.readDoubleLE=function(t,e){return t>>>=0,e||E(t,8,this.length),n.read(this,t,!0,52,8)},a.prototype.readDoubleBE=function(t,e){return t>>>=0,e||E(t,8,this.length),n.read(this,t,!1,52,8)},a.prototype.writeUIntLE=function(t,e,r,n){(t=+t,e>>>=0,r>>>=0,n)||L(this,t,e,r,Math.pow(2,8*r)-1,0);var i=1,a=0;for(this[e]=255&t;++a>>=0,r>>>=0,n)||L(this,t,e,r,Math.pow(2,8*r)-1,0);var i=r-1,a=1;for(this[e+i]=255&t;--i>=0&&(a*=256);)this[e+i]=t/a&255;return e+r},a.prototype.writeUInt8=function(t,e,r){return t=+t,e>>>=0,r||L(this,t,e,1,255,0),this[e]=255&t,e+1},a.prototype.writeUInt16LE=function(t,e,r){return t=+t,e>>>=0,r||L(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},a.prototype.writeUInt16BE=function(t,e,r){return t=+t,e>>>=0,r||L(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},a.prototype.writeUInt32LE=function(t,e,r){return t=+t,e>>>=0,r||L(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},a.prototype.writeUInt32BE=function(t,e,r){return t=+t,e>>>=0,r||L(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},a.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);L(this,t,e,r,i-1,-i)}var a=0,o=1,s=0;for(this[e]=255&t;++a>0)-s&255;return e+r},a.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e>>>=0,!n){var i=Math.pow(2,8*r-1);L(this,t,e,r,i-1,-i)}var a=r-1,o=1,s=0;for(this[e+a]=255&t;--a>=0&&(o*=256);)t<0&&0===s&&0!==this[e+a+1]&&(s=1),this[e+a]=(t/o>>0)-s&255;return e+r},a.prototype.writeInt8=function(t,e,r){return t=+t,e>>>=0,r||L(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},a.prototype.writeInt16LE=function(t,e,r){return t=+t,e>>>=0,r||L(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},a.prototype.writeInt16BE=function(t,e,r){return t=+t,e>>>=0,r||L(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},a.prototype.writeInt32LE=function(t,e,r){return t=+t,e>>>=0,r||L(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},a.prototype.writeInt32BE=function(t,e,r){return t=+t,e>>>=0,r||L(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},a.prototype.writeFloatLE=function(t,e,r){return P(this,t,e,!0,r)},a.prototype.writeFloatBE=function(t,e,r){return P(this,t,e,!1,r)},a.prototype.writeDoubleLE=function(t,e,r){return I(this,t,e,!0,r)},a.prototype.writeDoubleBE=function(t,e,r){return I(this,t,e,!1,r)},a.prototype.copy=function(t,e,r,n){if(!a.isBuffer(t))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--o)t[o+e]=this[o+r];else Uint8Array.prototype.set.call(t,this.subarray(r,n),e);return i},a.prototype.fill=function(t,e,r,n){if("string"==typeof t){if("string"==typeof e?(n=e,e=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!a.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(1===t.length){var i=t.charCodeAt(0);("utf8"===n&&i<128||"latin1"===n)&&(t=i)}}else"number"==typeof t&&(t&=255);if(e<0||this.length>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(o=e;o55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&a.push(239,191,189);continue}if(o+1===n){(e-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&a.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;a.push(r)}else if(r<2048){if((e-=2)<0)break;a.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;a.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return a}function R(t){return e.toByteArray(function(t){if((t=(t=t.split("=")[0]).trim().replace(O,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function F(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}function B(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function N(t){return t!=t}}).call(this)}).call(this,t("buffer").Buffer)},{"base64-js":81,buffer:112,ieee754:436}],113:[function(t,e,r){"use strict";var n=t("./lib/monotone"),i=t("./lib/triangulation"),a=t("./lib/delaunay"),o=t("./lib/filter");function s(t){return[Math.min(t[0],t[1]),Math.max(t[0],t[1])]}function l(t,e){return t[0]-e[0]||t[1]-e[1]}function c(t,e,r){return e in t?t[e]:r}e.exports=function(t,e,r){Array.isArray(e)?(r=r||{},e=e||[]):(r=e||{},e=[]);var u=!!c(r,"delaunay",!0),f=!!c(r,"interior",!0),h=!!c(r,"exterior",!0),p=!!c(r,"infinity",!1);if(!f&&!h||0===t.length)return[];var d=n(t,e);if(u||f!==h||p){for(var m=i(t.length,function(t){return t.map(s).sort(l)}(e)),g=0;g0;){for(var p=r.pop(),d=(s=r.pop(),u=-1,f=-1,l=o[s],1);d=0||(e.flip(s,p),i(t,e,r,u,s,f),i(t,e,r,s,f,u),i(t,e,r,f,p,u),i(t,e,r,p,u,f)))}}},{"binary-search-bounds":98,"robust-in-sphere":538}],115:[function(t,e,r){"use strict";var n,i=t("binary-search-bounds");function a(t,e,r,n,i,a,o){this.cells=t,this.neighbor=e,this.flags=n,this.constraint=r,this.active=i,this.next=a,this.boundary=o}function o(t,e){return t[0]-e[0]||t[1]-e[1]||t[2]-e[2]}e.exports=function(t,e,r){var n=function(t,e){for(var r=t.cells(),n=r.length,i=0;i0||l.length>0;){for(;s.length>0;){var p=s.pop();if(c[p]!==-i){c[p]=i;u[p];for(var d=0;d<3;++d){var m=h[3*p+d];m>=0&&0===c[m]&&(f[3*p+d]?l.push(m):(s.push(m),c[m]=i))}}}var g=l;l=s,s=g,l.length=0,i=-i}var v=function(t,e,r){for(var n=0,i=0;i1&&i(r[h[p-2]],r[h[p-1]],a)>0;)t.push([h[p-1],h[p-2],o]),p-=1;h.length=p,h.push(o);var d=f.upperIds;for(p=d.length;p>1&&i(r[d[p-2]],r[d[p-1]],a)<0;)t.push([d[p-2],d[p-1],o]),p-=1;d.length=p,d.push(o)}}function u(t,e){var r;return(r=t.a[0]d[0]&&i.push(new o(d,p,2,l),new o(p,d,1,l))}i.sort(s);for(var m=i[0].a[0]-(1+Math.abs(i[0].a[0]))*Math.pow(2,-52),g=[new a([m,1],[m,0],-1,[],[],[],[])],v=[],y=(l=0,i.length);l=0}}(),a.removeTriangle=function(t,e,r){var n=this.stars;o(n[t],e,r),o(n[e],r,t),o(n[r],t,e)},a.addTriangle=function(t,e,r){var n=this.stars;n[t].push(e,r),n[e].push(r,t),n[r].push(t,e)},a.opposite=function(t,e){for(var r=this.stars[e],n=1,i=r.length;nr?r:t:te?e:t}},{}],122:[function(t,e,r){"use strict";e.exports=function(t,e,r){var n;if(r){n=e;for(var i=new Array(e.length),a=0;ae[2]?1:0)}function v(t,e,r){if(0!==t.length){if(e)for(var n=0;n=0;--a){var x=e[u=(S=n[a])[0]],b=x[0],_=x[1],w=t[b],T=t[_];if((w[0]-T[0]||w[1]-T[1])<0){var k=b;b=_,_=k}x[0]=b;var M,A=x[1]=S[1];for(i&&(M=x[2]);a>0&&n[a-1][0]===u;){var S,E=(S=n[--a])[1];i?e.push([A,E,M]):e.push([A,E]),A=E}i?e.push([A,_,M]):e.push([A,_])}return h}(t,e,h,g,r));return v(e,y,r),!!y||(h.length>0||g.length>0)}},{"./lib/rat-seg-intersect":123,"big-rat":85,"big-rat/cmp":83,"big-rat/to-float":97,"box-intersect":103,nextafter:476,"rat-vec":524,"robust-segment-intersect":543,"union-find":610}],123:[function(t,e,r){"use strict";e.exports=function(t,e,r,n){var a=s(e,t),f=s(n,r),h=u(a,f);if(0===o(h))return null;var p=s(t,r),d=u(f,p),m=i(d,h),g=c(a,m);return l(t,g)};var n=t("big-rat/mul"),i=t("big-rat/div"),a=t("big-rat/sub"),o=t("big-rat/sign"),s=t("rat-vec/sub"),l=t("rat-vec/add"),c=t("rat-vec/muls");function u(t,e){return a(n(t[0],e[1]),n(t[1],e[0]))}},{"big-rat/div":84,"big-rat/mul":94,"big-rat/sign":95,"big-rat/sub":96,"rat-vec/add":523,"rat-vec/muls":525,"rat-vec/sub":526}],124:[function(t,e,r){"use strict";var n=t("clamp");function i(t,e){null==e&&(e=!0);var r=t[0],i=t[1],a=t[2],o=t[3];return null==o&&(o=e?1:255),e&&(r*=255,i*=255,a*=255,o*=255),16777216*(r=255&n(r,0,255))+((i=255&n(i,0,255))<<16)+((a=255&n(a,0,255))<<8)+(o=255&n(o,0,255))}e.exports=i,e.exports.to=i,e.exports.from=function(t,e){var r=(t=+t)>>>24,n=(16711680&t)>>>16,i=(65280&t)>>>8,a=255&t;return!1===e?[r,n,i,a]:[r/255,n/255,i/255,a/255]}},{clamp:121}],125:[function(t,e,r){"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},{}],126:[function(t,e,r){"use strict";var n=t("color-rgba"),i=t("clamp"),a=t("dtype");e.exports=function(t,e){"float"!==e&&e||(e="array"),"uint"===e&&(e="uint8"),"uint_clamped"===e&&(e="uint8_clamped");var r=new(a(e))(4),o="uint8"!==e&&"uint8_clamped"!==e;return t.length&&"string"!=typeof t||((t=n(t))[0]/=255,t[1]/=255,t[2]/=255),function(t){return t instanceof Uint8Array||t instanceof Uint8ClampedArray||!!(Array.isArray(t)&&(t[0]>1||0===t[0])&&(t[1]>1||0===t[1])&&(t[2]>1||0===t[2])&&(!t[3]||t[3]>1))}(t)?(r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=null!=t[3]?t[3]:255,o&&(r[0]/=255,r[1]/=255,r[2]/=255,r[3]/=255),r):(o?(r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=null!=t[3]?t[3]:1):(r[0]=i(Math.floor(255*t[0]),0,255),r[1]=i(Math.floor(255*t[1]),0,255),r[2]=i(Math.floor(255*t[2]),0,255),r[3]=null==t[3]?255:i(Math.floor(255*t[3]),0,255)),r)}},{clamp:121,"color-rgba":128,dtype:175}],127:[function(t,e,r){(function(r){(function(){"use strict";var n=t("color-name"),i=t("is-plain-obj"),a=t("defined");e.exports=function(t){var e,s,l=[],c=1;if("string"==typeof t)if(n[t])l=n[t].slice(),s="rgb";else if("transparent"===t)c=0,s="rgb",l=[0,0,0];else if(/^#[A-Fa-f0-9]+$/.test(t)){var u=(p=t.slice(1)).length;c=1,u<=4?(l=[parseInt(p[0]+p[0],16),parseInt(p[1]+p[1],16),parseInt(p[2]+p[2],16)],4===u&&(c=parseInt(p[3]+p[3],16)/255)):(l=[parseInt(p[0]+p[1],16),parseInt(p[2]+p[3],16),parseInt(p[4]+p[5],16)],8===u&&(c=parseInt(p[6]+p[7],16)/255)),l[0]||(l[0]=0),l[1]||(l[1]=0),l[2]||(l[2]=0),s="rgb"}else if(e=/^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\s*\(([^\)]*)\)/.exec(t)){var f=e[1],h="rgb"===f,p=f.replace(/a$/,"");s=p;u="cmyk"===p?4:"gray"===p?1:3;l=e[2].trim().split(/\s*,\s*/).map((function(t,e){if(/%$/.test(t))return e===u?parseFloat(t)/100:"rgb"===p?255*parseFloat(t)/100:parseFloat(t);if("h"===p[e]){if(/deg$/.test(t))return parseFloat(t);if(void 0!==o[t])return o[t]}return parseFloat(t)})),f===p&&l.push(1),c=h||void 0===l[u]?1:l[u],l=l.slice(0,u)}else t.length>10&&/[0-9](?:\s|\/)/.test(t)&&(l=t.match(/([0-9]+)/g).map((function(t){return parseFloat(t)})),s=t.match(/([a-z])/gi).join("").toLowerCase());else if(isNaN(t))if(i(t)){var d=a(t.r,t.red,t.R,null);null!==d?(s="rgb",l=[d,a(t.g,t.green,t.G),a(t.b,t.blue,t.B)]):(s="hsl",l=[a(t.h,t.hue,t.H),a(t.s,t.saturation,t.S),a(t.l,t.lightness,t.L,t.b,t.brightness)]),c=a(t.a,t.alpha,t.opacity,1),null!=t.opacity&&(c/=100)}else(Array.isArray(t)||r.ArrayBuffer&&ArrayBuffer.isView&&ArrayBuffer.isView(t))&&(l=[t[0],t[1],t[2]],s="rgb",c=4===t.length?t[3]:1);else s="rgb",l=[t>>>16,(65280&t)>>>8,255&t];return{space:s,values:l,alpha:c}};var o={red:0,orange:60,yellow:120,green:180,blue:240,purple:300}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"color-name":125,defined:170,"is-plain-obj":448}],128:[function(t,e,r){"use strict";var n=t("color-parse"),i=t("color-space/hsl"),a=t("clamp");e.exports=function(t){var e,r=n(t);return r.space?((e=Array(3))[0]=a(r.values[0],0,255),e[1]=a(r.values[1],0,255),e[2]=a(r.values[2],0,255),"h"===r.space[0]&&(e=i.rgb(e)),e.push(a(r.alpha,0,1)),e):[]}},{clamp:121,"color-parse":127,"color-space/hsl":129}],129:[function(t,e,r){"use strict";var n=t("./rgb");e.exports={name:"hsl",min:[0,0,0],max:[360,100,100],channel:["hue","saturation","lightness"],alias:["HSL"],rgb:function(t){var e,r,n,i,a,o=t[0]/360,s=t[1]/100,l=t[2]/100;if(0===s)return[a=255*l,a,a];e=2*l-(r=l<.5?l*(1+s):l+s-l*s),i=[0,0,0];for(var c=0;c<3;c++)(n=o+1/3*-(c-1))<0?n++:n>1&&n--,a=6*n<1?e+6*(r-e)*n:2*n<1?r:3*n<2?e+(r-e)*(2/3-n)*6:e,i[c]=255*a;return i}},n.hsl=function(t){var e,r,n=t[0]/255,i=t[1]/255,a=t[2]/255,o=Math.min(n,i,a),s=Math.max(n,i,a),l=s-o;return s===o?e=0:n===s?e=(i-a)/l:i===s?e=2+(a-n)/l:a===s&&(e=4+(n-i)/l),(e=Math.min(60*e,360))<0&&(e+=360),r=(o+s)/2,[e,100*(s===o?0:r<=.5?l/(s+o):l/(2-s-o)),100*r]}},{"./rgb":130}],130:[function(t,e,r){"use strict";e.exports={name:"rgb",min:[0,0,0],max:[255,255,255],channel:["red","green","blue"],alias:["RGB"]}},{}],131:[function(t,e,r){e.exports={jet:[{index:0,rgb:[0,0,131]},{index:.125,rgb:[0,60,170]},{index:.375,rgb:[5,255,255]},{index:.625,rgb:[255,255,0]},{index:.875,rgb:[250,0,0]},{index:1,rgb:[128,0,0]}],hsv:[{index:0,rgb:[255,0,0]},{index:.169,rgb:[253,255,2]},{index:.173,rgb:[247,255,2]},{index:.337,rgb:[0,252,4]},{index:.341,rgb:[0,252,10]},{index:.506,rgb:[1,249,255]},{index:.671,rgb:[2,0,253]},{index:.675,rgb:[8,0,253]},{index:.839,rgb:[255,0,251]},{index:.843,rgb:[255,0,245]},{index:1,rgb:[255,0,6]}],hot:[{index:0,rgb:[0,0,0]},{index:.3,rgb:[230,0,0]},{index:.6,rgb:[255,210,0]},{index:1,rgb:[255,255,255]}],spring:[{index:0,rgb:[255,0,255]},{index:1,rgb:[255,255,0]}],summer:[{index:0,rgb:[0,128,102]},{index:1,rgb:[255,255,102]}],autumn:[{index:0,rgb:[255,0,0]},{index:1,rgb:[255,255,0]}],winter:[{index:0,rgb:[0,0,255]},{index:1,rgb:[0,255,128]}],bone:[{index:0,rgb:[0,0,0]},{index:.376,rgb:[84,84,116]},{index:.753,rgb:[169,200,200]},{index:1,rgb:[255,255,255]}],copper:[{index:0,rgb:[0,0,0]},{index:.804,rgb:[255,160,102]},{index:1,rgb:[255,199,127]}],greys:[{index:0,rgb:[0,0,0]},{index:1,rgb:[255,255,255]}],yignbu:[{index:0,rgb:[8,29,88]},{index:.125,rgb:[37,52,148]},{index:.25,rgb:[34,94,168]},{index:.375,rgb:[29,145,192]},{index:.5,rgb:[65,182,196]},{index:.625,rgb:[127,205,187]},{index:.75,rgb:[199,233,180]},{index:.875,rgb:[237,248,217]},{index:1,rgb:[255,255,217]}],greens:[{index:0,rgb:[0,68,27]},{index:.125,rgb:[0,109,44]},{index:.25,rgb:[35,139,69]},{index:.375,rgb:[65,171,93]},{index:.5,rgb:[116,196,118]},{index:.625,rgb:[161,217,155]},{index:.75,rgb:[199,233,192]},{index:.875,rgb:[229,245,224]},{index:1,rgb:[247,252,245]}],yiorrd:[{index:0,rgb:[128,0,38]},{index:.125,rgb:[189,0,38]},{index:.25,rgb:[227,26,28]},{index:.375,rgb:[252,78,42]},{index:.5,rgb:[253,141,60]},{index:.625,rgb:[254,178,76]},{index:.75,rgb:[254,217,118]},{index:.875,rgb:[255,237,160]},{index:1,rgb:[255,255,204]}],bluered:[{index:0,rgb:[0,0,255]},{index:1,rgb:[255,0,0]}],rdbu:[{index:0,rgb:[5,10,172]},{index:.35,rgb:[106,137,247]},{index:.5,rgb:[190,190,190]},{index:.6,rgb:[220,170,132]},{index:.7,rgb:[230,145,90]},{index:1,rgb:[178,10,28]}],picnic:[{index:0,rgb:[0,0,255]},{index:.1,rgb:[51,153,255]},{index:.2,rgb:[102,204,255]},{index:.3,rgb:[153,204,255]},{index:.4,rgb:[204,204,255]},{index:.5,rgb:[255,255,255]},{index:.6,rgb:[255,204,255]},{index:.7,rgb:[255,153,255]},{index:.8,rgb:[255,102,204]},{index:.9,rgb:[255,102,102]},{index:1,rgb:[255,0,0]}],rainbow:[{index:0,rgb:[150,0,90]},{index:.125,rgb:[0,0,200]},{index:.25,rgb:[0,25,255]},{index:.375,rgb:[0,152,255]},{index:.5,rgb:[44,255,150]},{index:.625,rgb:[151,255,0]},{index:.75,rgb:[255,234,0]},{index:.875,rgb:[255,111,0]},{index:1,rgb:[255,0,0]}],portland:[{index:0,rgb:[12,51,131]},{index:.25,rgb:[10,136,186]},{index:.5,rgb:[242,211,56]},{index:.75,rgb:[242,143,56]},{index:1,rgb:[217,30,30]}],blackbody:[{index:0,rgb:[0,0,0]},{index:.2,rgb:[230,0,0]},{index:.4,rgb:[230,210,0]},{index:.7,rgb:[255,255,255]},{index:1,rgb:[160,200,255]}],earth:[{index:0,rgb:[0,0,130]},{index:.1,rgb:[0,180,180]},{index:.2,rgb:[40,210,40]},{index:.4,rgb:[230,230,50]},{index:.6,rgb:[120,70,20]},{index:1,rgb:[255,255,255]}],electric:[{index:0,rgb:[0,0,0]},{index:.15,rgb:[30,0,100]},{index:.4,rgb:[120,0,100]},{index:.6,rgb:[160,90,0]},{index:.8,rgb:[230,200,0]},{index:1,rgb:[255,250,220]}],alpha:[{index:0,rgb:[255,255,255,0]},{index:1,rgb:[255,255,255,1]}],viridis:[{index:0,rgb:[68,1,84]},{index:.13,rgb:[71,44,122]},{index:.25,rgb:[59,81,139]},{index:.38,rgb:[44,113,142]},{index:.5,rgb:[33,144,141]},{index:.63,rgb:[39,173,129]},{index:.75,rgb:[92,200,99]},{index:.88,rgb:[170,220,50]},{index:1,rgb:[253,231,37]}],inferno:[{index:0,rgb:[0,0,4]},{index:.13,rgb:[31,12,72]},{index:.25,rgb:[85,15,109]},{index:.38,rgb:[136,34,106]},{index:.5,rgb:[186,54,85]},{index:.63,rgb:[227,89,51]},{index:.75,rgb:[249,140,10]},{index:.88,rgb:[249,201,50]},{index:1,rgb:[252,255,164]}],magma:[{index:0,rgb:[0,0,4]},{index:.13,rgb:[28,16,68]},{index:.25,rgb:[79,18,123]},{index:.38,rgb:[129,37,129]},{index:.5,rgb:[181,54,122]},{index:.63,rgb:[229,80,100]},{index:.75,rgb:[251,135,97]},{index:.88,rgb:[254,194,135]},{index:1,rgb:[252,253,191]}],plasma:[{index:0,rgb:[13,8,135]},{index:.13,rgb:[75,3,161]},{index:.25,rgb:[125,3,168]},{index:.38,rgb:[168,34,150]},{index:.5,rgb:[203,70,121]},{index:.63,rgb:[229,107,93]},{index:.75,rgb:[248,148,65]},{index:.88,rgb:[253,195,40]},{index:1,rgb:[240,249,33]}],warm:[{index:0,rgb:[125,0,179]},{index:.13,rgb:[172,0,187]},{index:.25,rgb:[219,0,170]},{index:.38,rgb:[255,0,130]},{index:.5,rgb:[255,63,74]},{index:.63,rgb:[255,123,0]},{index:.75,rgb:[234,176,0]},{index:.88,rgb:[190,228,0]},{index:1,rgb:[147,255,0]}],cool:[{index:0,rgb:[125,0,179]},{index:.13,rgb:[116,0,218]},{index:.25,rgb:[98,74,237]},{index:.38,rgb:[68,146,231]},{index:.5,rgb:[0,204,197]},{index:.63,rgb:[0,247,146]},{index:.75,rgb:[0,255,88]},{index:.88,rgb:[40,255,8]},{index:1,rgb:[147,255,0]}],"rainbow-soft":[{index:0,rgb:[125,0,179]},{index:.1,rgb:[199,0,180]},{index:.2,rgb:[255,0,121]},{index:.3,rgb:[255,108,0]},{index:.4,rgb:[222,194,0]},{index:.5,rgb:[150,255,0]},{index:.6,rgb:[0,255,55]},{index:.7,rgb:[0,246,150]},{index:.8,rgb:[50,167,222]},{index:.9,rgb:[103,51,235]},{index:1,rgb:[124,0,186]}],bathymetry:[{index:0,rgb:[40,26,44]},{index:.13,rgb:[59,49,90]},{index:.25,rgb:[64,76,139]},{index:.38,rgb:[63,110,151]},{index:.5,rgb:[72,142,158]},{index:.63,rgb:[85,174,163]},{index:.75,rgb:[120,206,163]},{index:.88,rgb:[187,230,172]},{index:1,rgb:[253,254,204]}],cdom:[{index:0,rgb:[47,15,62]},{index:.13,rgb:[87,23,86]},{index:.25,rgb:[130,28,99]},{index:.38,rgb:[171,41,96]},{index:.5,rgb:[206,67,86]},{index:.63,rgb:[230,106,84]},{index:.75,rgb:[242,149,103]},{index:.88,rgb:[249,193,135]},{index:1,rgb:[254,237,176]}],chlorophyll:[{index:0,rgb:[18,36,20]},{index:.13,rgb:[25,63,41]},{index:.25,rgb:[24,91,59]},{index:.38,rgb:[13,119,72]},{index:.5,rgb:[18,148,80]},{index:.63,rgb:[80,173,89]},{index:.75,rgb:[132,196,122]},{index:.88,rgb:[175,221,162]},{index:1,rgb:[215,249,208]}],density:[{index:0,rgb:[54,14,36]},{index:.13,rgb:[89,23,80]},{index:.25,rgb:[110,45,132]},{index:.38,rgb:[120,77,178]},{index:.5,rgb:[120,113,213]},{index:.63,rgb:[115,151,228]},{index:.75,rgb:[134,185,227]},{index:.88,rgb:[177,214,227]},{index:1,rgb:[230,241,241]}],"freesurface-blue":[{index:0,rgb:[30,4,110]},{index:.13,rgb:[47,14,176]},{index:.25,rgb:[41,45,236]},{index:.38,rgb:[25,99,212]},{index:.5,rgb:[68,131,200]},{index:.63,rgb:[114,156,197]},{index:.75,rgb:[157,181,203]},{index:.88,rgb:[200,208,216]},{index:1,rgb:[241,237,236]}],"freesurface-red":[{index:0,rgb:[60,9,18]},{index:.13,rgb:[100,17,27]},{index:.25,rgb:[142,20,29]},{index:.38,rgb:[177,43,27]},{index:.5,rgb:[192,87,63]},{index:.63,rgb:[205,125,105]},{index:.75,rgb:[216,162,148]},{index:.88,rgb:[227,199,193]},{index:1,rgb:[241,237,236]}],oxygen:[{index:0,rgb:[64,5,5]},{index:.13,rgb:[106,6,15]},{index:.25,rgb:[144,26,7]},{index:.38,rgb:[168,64,3]},{index:.5,rgb:[188,100,4]},{index:.63,rgb:[206,136,11]},{index:.75,rgb:[220,174,25]},{index:.88,rgb:[231,215,44]},{index:1,rgb:[248,254,105]}],par:[{index:0,rgb:[51,20,24]},{index:.13,rgb:[90,32,35]},{index:.25,rgb:[129,44,34]},{index:.38,rgb:[159,68,25]},{index:.5,rgb:[182,99,19]},{index:.63,rgb:[199,134,22]},{index:.75,rgb:[212,171,35]},{index:.88,rgb:[221,210,54]},{index:1,rgb:[225,253,75]}],phase:[{index:0,rgb:[145,105,18]},{index:.13,rgb:[184,71,38]},{index:.25,rgb:[186,58,115]},{index:.38,rgb:[160,71,185]},{index:.5,rgb:[110,97,218]},{index:.63,rgb:[50,123,164]},{index:.75,rgb:[31,131,110]},{index:.88,rgb:[77,129,34]},{index:1,rgb:[145,105,18]}],salinity:[{index:0,rgb:[42,24,108]},{index:.13,rgb:[33,50,162]},{index:.25,rgb:[15,90,145]},{index:.38,rgb:[40,118,137]},{index:.5,rgb:[59,146,135]},{index:.63,rgb:[79,175,126]},{index:.75,rgb:[120,203,104]},{index:.88,rgb:[193,221,100]},{index:1,rgb:[253,239,154]}],temperature:[{index:0,rgb:[4,35,51]},{index:.13,rgb:[23,51,122]},{index:.25,rgb:[85,59,157]},{index:.38,rgb:[129,79,143]},{index:.5,rgb:[175,95,130]},{index:.63,rgb:[222,112,101]},{index:.75,rgb:[249,146,66]},{index:.88,rgb:[249,196,65]},{index:1,rgb:[232,250,91]}],turbidity:[{index:0,rgb:[34,31,27]},{index:.13,rgb:[65,50,41]},{index:.25,rgb:[98,69,52]},{index:.38,rgb:[131,89,57]},{index:.5,rgb:[161,112,59]},{index:.63,rgb:[185,140,66]},{index:.75,rgb:[202,174,88]},{index:.88,rgb:[216,209,126]},{index:1,rgb:[233,246,171]}],"velocity-blue":[{index:0,rgb:[17,32,64]},{index:.13,rgb:[35,52,116]},{index:.25,rgb:[29,81,156]},{index:.38,rgb:[31,113,162]},{index:.5,rgb:[50,144,169]},{index:.63,rgb:[87,173,176]},{index:.75,rgb:[149,196,189]},{index:.88,rgb:[203,221,211]},{index:1,rgb:[254,251,230]}],"velocity-green":[{index:0,rgb:[23,35,19]},{index:.13,rgb:[24,64,38]},{index:.25,rgb:[11,95,45]},{index:.38,rgb:[39,123,35]},{index:.5,rgb:[95,146,12]},{index:.63,rgb:[152,165,18]},{index:.75,rgb:[201,186,69]},{index:.88,rgb:[233,216,137]},{index:1,rgb:[255,253,205]}],cubehelix:[{index:0,rgb:[0,0,0]},{index:.07,rgb:[22,5,59]},{index:.13,rgb:[60,4,105]},{index:.2,rgb:[109,1,135]},{index:.27,rgb:[161,0,147]},{index:.33,rgb:[210,2,142]},{index:.4,rgb:[251,11,123]},{index:.47,rgb:[255,29,97]},{index:.53,rgb:[255,54,69]},{index:.6,rgb:[255,85,46]},{index:.67,rgb:[255,120,34]},{index:.73,rgb:[255,157,37]},{index:.8,rgb:[241,191,57]},{index:.87,rgb:[224,220,93]},{index:.93,rgb:[218,241,142]},{index:1,rgb:[227,253,198]}]}},{}],132:[function(t,e,r){"use strict";var n=t("./colorScale"),i=t("lerp");function a(t){return[t[0]/255,t[1]/255,t[2]/255,t[3]]}function o(t){for(var e,r="#",n=0;n<3;++n)r+=("00"+(e=(e=t[n]).toString(16))).substr(e.length);return r}function s(t){return"rgba("+t.join(",")+")"}e.exports=function(t){var e,r,l,c,u,f,h,p,d,m;t||(t={});p=(t.nshades||72)-1,h=t.format||"hex",(f=t.colormap)||(f="jet");if("string"==typeof f){if(f=f.toLowerCase(),!n[f])throw Error(f+" not a supported colorscale");u=n[f]}else{if(!Array.isArray(f))throw Error("unsupported colormap option",f);u=f.slice()}if(u.length>p+1)throw new Error(f+" map requires nshades to be at least size "+u.length);d=Array.isArray(t.alpha)?2!==t.alpha.length?[1,1]:t.alpha.slice():"number"==typeof t.alpha?[t.alpha,t.alpha]:[1,1];e=u.map((function(t){return Math.round(t.index*p)})),d[0]=Math.min(Math.max(d[0],0),1),d[1]=Math.min(Math.max(d[1],0),1);var g=u.map((function(t,e){var r=u[e].index,n=u[e].rgb.slice();return 4===n.length&&n[3]>=0&&n[3]<=1||(n[3]=d[0]+(d[1]-d[0])*r),n})),v=[];for(m=0;m0||l(t,e,a)?-1:1:0===s?c>0||l(t,e,r)?1:-1:i(c-s)}var h=n(t,e,r);return h>0?o>0&&n(t,e,a)>0?1:-1:h<0?o>0||n(t,e,a)>0?1:-1:n(t,e,a)>0||l(t,e,r)?1:-1};var n=t("robust-orientation"),i=t("signum"),a=t("two-sum"),o=t("robust-product"),s=t("robust-sum");function l(t,e,r){var n=a(t[0],-e[0]),i=a(t[1],-e[1]),l=a(r[0],-e[0]),c=a(r[1],-e[1]),u=s(o(n,l),o(i,c));return u[u.length-1]>=0}},{"robust-orientation":540,"robust-product":541,"robust-sum":545,signum:547,"two-sum":597}],134:[function(t,e,r){e.exports=function(t,e){var r=t.length,a=t.length-e.length;if(a)return a;switch(r){case 0:return 0;case 1:return t[0]-e[0];case 2:return t[0]+t[1]-e[0]-e[1]||n(t[0],t[1])-n(e[0],e[1]);case 3:var o=t[0]+t[1],s=e[0]+e[1];if(a=o+t[2]-(s+e[2]))return a;var l=n(t[0],t[1]),c=n(e[0],e[1]);return n(l,t[2])-n(c,e[2])||n(l+t[2],o)-n(c+e[2],s);case 4:var u=t[0],f=t[1],h=t[2],p=t[3],d=e[0],m=e[1],g=e[2],v=e[3];return u+f+h+p-(d+m+g+v)||n(u,f,h,p)-n(d,m,g,v,d)||n(u+f,u+h,u+p,f+h,f+p,h+p)-n(d+m,d+g,d+v,m+g,m+v,g+v)||n(u+f+h,u+f+p,u+h+p,f+h+p)-n(d+m+g,d+m+v,d+g+v,m+g+v);default:for(var y=t.slice().sort(i),x=e.slice().sort(i),b=0;bt[r][0]&&(r=n);return er?[[r],[e]]:[[e]]}},{}],138:[function(t,e,r){"use strict";e.exports=function(t){var e=n(t),r=e.length;if(r<=2)return[];for(var i=new Array(r),a=e[r-1],o=0;o=e[l]&&(s+=1);a[o]=s}}return t}(n(a,!0),r)}};var n=t("incremental-convex-hull"),i=t("affine-hull")},{"affine-hull":68,"incremental-convex-hull":437}],140:[function(t,e,r){e.exports={AFG:"afghan",ALA:"\\b\\wland",ALB:"albania",DZA:"algeria",ASM:"^(?=.*americ).*samoa",AND:"andorra",AGO:"angola",AIA:"anguill?a",ATA:"antarctica",ATG:"antigua",ARG:"argentin",ARM:"armenia",ABW:"^(?!.*bonaire).*\\baruba",AUS:"australia",AUT:"^(?!.*hungary).*austria|\\baustri.*\\bemp",AZE:"azerbaijan",BHS:"bahamas",BHR:"bahrain",BGD:"bangladesh|^(?=.*east).*paki?stan",BRB:"barbados",BLR:"belarus|byelo",BEL:"^(?!.*luxem).*belgium",BLZ:"belize|^(?=.*british).*honduras",BEN:"benin|dahome",BMU:"bermuda",BTN:"bhutan",BOL:"bolivia",BES:"^(?=.*bonaire).*eustatius|^(?=.*carib).*netherlands|\\bbes.?islands",BIH:"herzegovina|bosnia",BWA:"botswana|bechuana",BVT:"bouvet",BRA:"brazil",IOT:"british.?indian.?ocean",BRN:"brunei",BGR:"bulgaria",BFA:"burkina|\\bfaso|upper.?volta",BDI:"burundi",CPV:"verde",KHM:"cambodia|kampuchea|khmer",CMR:"cameroon",CAN:"canada",CYM:"cayman",CAF:"\\bcentral.african.republic",TCD:"\\bchad",CHL:"\\bchile",CHN:"^(?!.*\\bmac)(?!.*\\bhong)(?!.*\\btai)(?!.*\\brep).*china|^(?=.*peo)(?=.*rep).*china",CXR:"christmas",CCK:"\\bcocos|keeling",COL:"colombia",COM:"comoro",COG:"^(?!.*\\bdem)(?!.*\\bd[\\.]?r)(?!.*kinshasa)(?!.*zaire)(?!.*belg)(?!.*l.opoldville)(?!.*free).*\\bcongo",COK:"\\bcook",CRI:"costa.?rica",CIV:"ivoire|ivory",HRV:"croatia",CUB:"\\bcuba",CUW:"^(?!.*bonaire).*\\bcura(c|\xe7)ao",CYP:"cyprus",CSK:"czechoslovakia",CZE:"^(?=.*rep).*czech|czechia|bohemia",COD:"\\bdem.*congo|congo.*\\bdem|congo.*\\bd[\\.]?r|\\bd[\\.]?r.*congo|belgian.?congo|congo.?free.?state|kinshasa|zaire|l.opoldville|drc|droc|rdc",DNK:"denmark",DJI:"djibouti",DMA:"dominica(?!n)",DOM:"dominican.rep",ECU:"ecuador",EGY:"egypt",SLV:"el.?salvador",GNQ:"guine.*eq|eq.*guine|^(?=.*span).*guinea",ERI:"eritrea",EST:"estonia",ETH:"ethiopia|abyssinia",FLK:"falkland|malvinas",FRO:"faroe|faeroe",FJI:"fiji",FIN:"finland",FRA:"^(?!.*\\bdep)(?!.*martinique).*france|french.?republic|\\bgaul",GUF:"^(?=.*french).*guiana",PYF:"french.?polynesia|tahiti",ATF:"french.?southern",GAB:"gabon",GMB:"gambia",GEO:"^(?!.*south).*georgia",DDR:"german.?democratic.?republic|democratic.?republic.*germany|east.germany",DEU:"^(?!.*east).*germany|^(?=.*\\bfed.*\\brep).*german",GHA:"ghana|gold.?coast",GIB:"gibraltar",GRC:"greece|hellenic|hellas",GRL:"greenland",GRD:"grenada",GLP:"guadeloupe",GUM:"\\bguam",GTM:"guatemala",GGY:"guernsey",GIN:"^(?!.*eq)(?!.*span)(?!.*bissau)(?!.*portu)(?!.*new).*guinea",GNB:"bissau|^(?=.*portu).*guinea",GUY:"guyana|british.?guiana",HTI:"haiti",HMD:"heard.*mcdonald",VAT:"holy.?see|vatican|papal.?st",HND:"^(?!.*brit).*honduras",HKG:"hong.?kong",HUN:"^(?!.*austr).*hungary",ISL:"iceland",IND:"india(?!.*ocea)",IDN:"indonesia",IRN:"\\biran|persia",IRQ:"\\biraq|mesopotamia",IRL:"(^ireland)|(^republic.*ireland)",IMN:"^(?=.*isle).*\\bman",ISR:"israel",ITA:"italy",JAM:"jamaica",JPN:"japan",JEY:"jersey",JOR:"jordan",KAZ:"kazak",KEN:"kenya|british.?east.?africa|east.?africa.?prot",KIR:"kiribati",PRK:"^(?=.*democrat|people|north|d.*p.*.r).*\\bkorea|dprk|korea.*(d.*p.*r)",KWT:"kuwait",KGZ:"kyrgyz|kirghiz",LAO:"\\blaos?\\b",LVA:"latvia",LBN:"lebanon",LSO:"lesotho|basuto",LBR:"liberia",LBY:"libya",LIE:"liechtenstein",LTU:"lithuania",LUX:"^(?!.*belg).*luxem",MAC:"maca(o|u)",MDG:"madagascar|malagasy",MWI:"malawi|nyasa",MYS:"malaysia",MDV:"maldive",MLI:"\\bmali\\b",MLT:"\\bmalta",MHL:"marshall",MTQ:"martinique",MRT:"mauritania",MUS:"mauritius",MYT:"\\bmayotte",MEX:"\\bmexic",FSM:"fed.*micronesia|micronesia.*fed",MCO:"monaco",MNG:"mongolia",MNE:"^(?!.*serbia).*montenegro",MSR:"montserrat",MAR:"morocco|\\bmaroc",MOZ:"mozambique",MMR:"myanmar|burma",NAM:"namibia",NRU:"nauru",NPL:"nepal",NLD:"^(?!.*\\bant)(?!.*\\bcarib).*netherlands",ANT:"^(?=.*\\bant).*(nether|dutch)",NCL:"new.?caledonia",NZL:"new.?zealand",NIC:"nicaragua",NER:"\\bniger(?!ia)",NGA:"nigeria",NIU:"niue",NFK:"norfolk",MNP:"mariana",NOR:"norway",OMN:"\\boman|trucial",PAK:"^(?!.*east).*paki?stan",PLW:"palau",PSE:"palestin|\\bgaza|west.?bank",PAN:"panama",PNG:"papua|new.?guinea",PRY:"paraguay",PER:"peru",PHL:"philippines",PCN:"pitcairn",POL:"poland",PRT:"portugal",PRI:"puerto.?rico",QAT:"qatar",KOR:"^(?!.*d.*p.*r)(?!.*democrat)(?!.*people)(?!.*north).*\\bkorea(?!.*d.*p.*r)",MDA:"moldov|b(a|e)ssarabia",REU:"r(e|\xe9)union",ROU:"r(o|u|ou)mania",RUS:"\\brussia|soviet.?union|u\\.?s\\.?s\\.?r|socialist.?republics",RWA:"rwanda",BLM:"barth(e|\xe9)lemy",SHN:"helena",KNA:"kitts|\\bnevis",LCA:"\\blucia",MAF:"^(?=.*collectivity).*martin|^(?=.*france).*martin(?!ique)|^(?=.*french).*martin(?!ique)",SPM:"miquelon",VCT:"vincent",WSM:"^(?!.*amer).*samoa",SMR:"san.?marino",STP:"\\bs(a|\xe3)o.?tom(e|\xe9)",SAU:"\\bsa\\w*.?arabia",SEN:"senegal",SRB:"^(?!.*monte).*serbia",SYC:"seychell",SLE:"sierra",SGP:"singapore",SXM:"^(?!.*martin)(?!.*saba).*maarten",SVK:"^(?!.*cze).*slovak",SVN:"slovenia",SLB:"solomon",SOM:"somali",ZAF:"south.africa|s\\\\..?africa",SGS:"south.?georgia|sandwich",SSD:"\\bs\\w*.?sudan",ESP:"spain",LKA:"sri.?lanka|ceylon",SDN:"^(?!.*\\bs(?!u)).*sudan",SUR:"surinam|dutch.?guiana",SJM:"svalbard",SWZ:"swaziland",SWE:"sweden",CHE:"switz|swiss",SYR:"syria",TWN:"taiwan|taipei|formosa|^(?!.*peo)(?=.*rep).*china",TJK:"tajik",THA:"thailand|\\bsiam",MKD:"macedonia|fyrom",TLS:"^(?=.*leste).*timor|^(?=.*east).*timor",TGO:"togo",TKL:"tokelau",TON:"tonga",TTO:"trinidad|tobago",TUN:"tunisia",TUR:"turkey",TKM:"turkmen",TCA:"turks",TUV:"tuvalu",UGA:"uganda",UKR:"ukrain",ARE:"emirates|^u\\.?a\\.?e\\.?$|united.?arab.?em",GBR:"united.?kingdom|britain|^u\\.?k\\.?$",TZA:"tanzania",USA:"united.?states\\b(?!.*islands)|\\bu\\.?s\\.?a\\.?\\b|^\\s*u\\.?s\\.?\\b(?!.*islands)",UMI:"minor.?outlying.?is",URY:"uruguay",UZB:"uzbek",VUT:"vanuatu|new.?hebrides",VEN:"venezuela",VNM:"^(?!.*republic).*viet.?nam|^(?=.*socialist).*viet.?nam",VGB:"^(?=.*\\bu\\.?\\s?k).*virgin|^(?=.*brit).*virgin|^(?=.*kingdom).*virgin",VIR:"^(?=.*\\bu\\.?\\s?s).*virgin|^(?=.*states).*virgin",WLF:"futuna|wallis",ESH:"western.sahara",YEM:"^(?!.*arab)(?!.*north)(?!.*sana)(?!.*peo)(?!.*dem)(?!.*south)(?!.*aden)(?!.*\\bp\\.?d\\.?r).*yemen",YMD:"^(?=.*peo).*yemen|^(?!.*rep)(?=.*dem).*yemen|^(?=.*south).*yemen|^(?=.*aden).*yemen|^(?=.*\\bp\\.?d\\.?r).*yemen",YUG:"yugoslavia",ZMB:"zambia|northern.?rhodesia",EAZ:"zanzibar",ZWE:"zimbabwe|^(?!.*northern).*rhodesia"}},{}],141:[function(t,e,r){e.exports=["xx-small","x-small","small","medium","large","x-large","xx-large","larger","smaller"]},{}],142:[function(t,e,r){e.exports=["normal","condensed","semi-condensed","extra-condensed","ultra-condensed","expanded","semi-expanded","extra-expanded","ultra-expanded"]},{}],143:[function(t,e,r){e.exports=["normal","italic","oblique"]},{}],144:[function(t,e,r){e.exports=["normal","bold","bolder","lighter","100","200","300","400","500","600","700","800","900"]},{}],145:[function(t,e,r){"use strict";e.exports={parse:t("./parse"),stringify:t("./stringify")}},{"./parse":147,"./stringify":148}],146:[function(t,e,r){"use strict";var n=t("css-font-size-keywords");e.exports={isSize:function(t){return/^[\d\.]/.test(t)||-1!==t.indexOf("/")||-1!==n.indexOf(t)}}},{"css-font-size-keywords":141}],147:[function(t,e,r){"use strict";var n=t("unquote"),i=t("css-global-keywords"),a=t("css-system-font-keywords"),o=t("css-font-weight-keywords"),s=t("css-font-style-keywords"),l=t("css-font-stretch-keywords"),c=t("string-split-by"),u=t("./lib/util").isSize;e.exports=h;var f=h.cache={};function h(t){if("string"!=typeof t)throw new Error("Font argument must be a string.");if(f[t])return f[t];if(""===t)throw new Error("Cannot parse an empty string.");if(-1!==a.indexOf(t))return f[t]={system:t};for(var e,r={style:"normal",variant:"normal",weight:"normal",stretch:"normal",lineHeight:"normal",size:"1rem",family:["serif"]},h=c(t,/\s+/);e=h.shift();){if(-1!==i.indexOf(e))return["style","variant","weight","stretch"].forEach((function(t){r[t]=e})),f[t]=r;if(-1===s.indexOf(e))if("normal"!==e&&"small-caps"!==e)if(-1===l.indexOf(e)){if(-1===o.indexOf(e)){if(u(e)){var d=c(e,"/");if(r.size=d[0],null!=d[1]?r.lineHeight=p(d[1]):"/"===h[0]&&(h.shift(),r.lineHeight=p(h.shift())),!h.length)throw new Error("Missing required font-family.");return r.family=c(h.join(" "),/\s*,\s*/).map(n),f[t]=r}throw new Error("Unknown or unsupported font token: "+e)}r.weight=e}else r.stretch=e;else r.variant=e;else r.style=e}throw new Error("Missing required font-size.")}function p(t){var e=parseFloat(t);return e.toString()===t?e:t}},{"./lib/util":146,"css-font-stretch-keywords":142,"css-font-style-keywords":143,"css-font-weight-keywords":144,"css-global-keywords":149,"css-system-font-keywords":150,"string-split-by":581,unquote:612}],148:[function(t,e,r){"use strict";var n=t("pick-by-alias"),i=t("./lib/util").isSize,a=m(t("css-global-keywords")),o=m(t("css-system-font-keywords")),s=m(t("css-font-weight-keywords")),l=m(t("css-font-style-keywords")),c=m(t("css-font-stretch-keywords")),u={normal:1,"small-caps":1},f={serif:1,"sans-serif":1,monospace:1,cursive:1,fantasy:1,"system-ui":1},h="1rem",p="serif";function d(t,e){if(t&&!e[t]&&!a[t])throw Error("Unknown keyword `"+t+"`");return t}function m(t){for(var e={},r=0;r=0;--p)a[p]=c*t[p]+u*e[p]+f*r[p]+h*n[p];return a}return c*t+u*e+f*r+h*n},e.exports.derivative=function(t,e,r,n,i,a){var o=6*i*i-6*i,s=3*i*i-4*i+1,l=-6*i*i+6*i,c=3*i*i-2*i;if(t.length){a||(a=new Array(t.length));for(var u=t.length-1;u>=0;--u)a[u]=o*t[u]+s*e[u]+l*r[u]+c*n[u];return a}return o*t+s*e+l*r[u]+c*n}},{}],152:[function(t,e,r){"use strict";var n=t("./lib/thunk.js");function i(){this.argTypes=[],this.shimArgs=[],this.arrayArgs=[],this.arrayBlockIndices=[],this.scalarArgs=[],this.offsetArgs=[],this.offsetArgIndex=[],this.indexArgs=[],this.shapeArgs=[],this.funcName="",this.pre=null,this.body=null,this.post=null,this.debug=!1}e.exports=function(t){var e=new i;e.pre=t.pre,e.body=t.body,e.post=t.post;var r=t.args.slice(0);e.argTypes=r;for(var a=0;a0)throw new Error("cwise: pre() block may not reference array args");if(a0)throw new Error("cwise: post() block may not reference array args")}else if("scalar"===o)e.scalarArgs.push(a),e.shimArgs.push("scalar"+a);else if("index"===o){if(e.indexArgs.push(a),a0)throw new Error("cwise: pre() block may not reference array index");if(a0)throw new Error("cwise: post() block may not reference array index")}else if("shape"===o){if(e.shapeArgs.push(a),ar.length)throw new Error("cwise: Too many arguments in pre() block");if(e.body.args.length>r.length)throw new Error("cwise: Too many arguments in body() block");if(e.post.args.length>r.length)throw new Error("cwise: Too many arguments in post() block");return e.debug=!!t.printCode||!!t.debug,e.funcName=t.funcName||"cwise",e.blockSize=t.blockSize||64,n(e)}},{"./lib/thunk.js":154}],153:[function(t,e,r){"use strict";var n=t("uniq");function i(t,e,r){var n,i,a=t.length,o=e.arrayArgs.length,s=e.indexArgs.length>0,l=[],c=[],u=0,f=0;for(n=0;n0&&l.push("var "+c.join(",")),n=a-1;n>=0;--n)u=t[n],l.push(["for(i",n,"=0;i",n,"0&&l.push(["index[",f,"]-=s",f].join("")),l.push(["++index[",u,"]"].join(""))),l.push("}")}return l.join("\n")}function a(t,e,r){for(var n=t.body,i=[],a=[],o=0;o0&&(r=r&&e[n]===e[n-1])}return r?e[0]:e.join("")}e.exports=function(t,e){for(var r=e[1].length-Math.abs(t.arrayBlockIndices[0])|0,s=new Array(t.arrayArgs.length),l=new Array(t.arrayArgs.length),c=0;c0&&x.push("shape=SS.slice(0)"),t.indexArgs.length>0){var b=new Array(r);for(c=0;c0&&y.push("var "+x.join(",")),c=0;c3&&y.push(a(t.pre,t,l));var k=a(t.body,t,l),M=function(t){for(var e=0,r=t[0].length;e0,c=[],u=0;u0;){"].join("")),c.push(["if(j",u,"<",s,"){"].join("")),c.push(["s",e[u],"=j",u].join("")),c.push(["j",u,"=0"].join("")),c.push(["}else{s",e[u],"=",s].join("")),c.push(["j",u,"-=",s,"}"].join("")),l&&c.push(["index[",e[u],"]=j",u].join(""));for(u=0;u3&&y.push(a(t.post,t,l)),t.debug&&console.log("-----Generated cwise routine for ",e,":\n"+y.join("\n")+"\n----------");var A=[t.funcName||"unnamed","_cwise_loop_",s[0].join("s"),"m",M,o(l)].join("");return new Function(["function ",A,"(",v.join(","),"){",y.join("\n"),"} return ",A].join(""))()}},{uniq:611}],154:[function(t,e,r){"use strict";var n=t("./compile.js");e.exports=function(t){var e=["'use strict'","var CACHED={}"],r=[],i=t.funcName+"_cwise_thunk";e.push(["return function ",i,"(",t.shimArgs.join(","),"){"].join(""));for(var a=[],o=[],s=[["array",t.arrayArgs[0],".shape.slice(",Math.max(0,t.arrayBlockIndices[0]),t.arrayBlockIndices[0]<0?","+t.arrayBlockIndices[0]+")":")"].join("")],l=[],c=[],u=0;u0&&(l.push("array"+t.arrayArgs[0]+".shape.length===array"+f+".shape.length+"+(Math.abs(t.arrayBlockIndices[0])-Math.abs(t.arrayBlockIndices[u]))),c.push("array"+t.arrayArgs[0]+".shape[shapeIndex+"+Math.max(0,t.arrayBlockIndices[0])+"]===array"+f+".shape[shapeIndex+"+Math.max(0,t.arrayBlockIndices[u])+"]"))}for(t.arrayArgs.length>1&&(e.push("if (!("+l.join(" && ")+")) throw new Error('cwise: Arrays do not all have the same dimensionality!')"),e.push("for(var shapeIndex=array"+t.arrayArgs[0]+".shape.length-"+Math.abs(t.arrayBlockIndices[0])+"; shapeIndex--\x3e0;) {"),e.push("if (!("+c.join(" && ")+")) throw new Error('cwise: Arrays do not all have the same shape!')"),e.push("}")),u=0;ue?1:t>=e?0:NaN}function r(t){var r;return 1===t.length&&(r=t,t=function(t,n){return e(r(t),n)}),{left:function(e,r,n,i){for(null==n&&(n=0),null==i&&(i=e.length);n>>1;t(e[a],r)<0?n=a+1:i=a}return n},right:function(e,r,n,i){for(null==n&&(n=0),null==i&&(i=e.length);n>>1;t(e[a],r)>0?i=a:n=a+1}return n}}}var n=r(e),i=n.right,a=n.left;function o(t,e){return[t,e]}function s(t){return null===t?NaN:+t}function l(t,e){var r,n,i=t.length,a=0,o=-1,l=0,c=0;if(null==e)for(;++o1)return c/(a-1)}function c(t,e){var r=l(t,e);return r?Math.sqrt(r):r}function u(t,e){var r,n,i,a=t.length,o=-1;if(null==e){for(;++o=r)for(n=i=r;++or&&(n=r),i=r)for(n=i=r;++or&&(n=r),i=0?(a>=v?10:a>=y?5:a>=x?2:1)*Math.pow(10,i):-Math.pow(10,-i)/(a>=v?10:a>=y?5:a>=x?2:1)}function _(t,e,r){var n=Math.abs(e-t)/Math.max(0,r),i=Math.pow(10,Math.floor(Math.log(n)/Math.LN10)),a=n/i;return a>=v?i*=10:a>=y?i*=5:a>=x&&(i*=2),e=1)return+r(t[n-1],n-1,t);var n,i=(n-1)*e,a=Math.floor(i),o=+r(t[a],a,t);return o+(+r(t[a+1],a+1,t)-o)*(i-a)}}function k(t,e){var r,n,i=t.length,a=-1;if(null==e){for(;++a=r)for(n=r;++ar&&(n=r)}else for(;++a=r)for(n=r;++ar&&(n=r);return n}function M(t){if(!(i=t.length))return[];for(var e=-1,r=k(t,A),n=new Array(r);++et?1:e>=t?0:NaN},t.deviation=c,t.extent=u,t.histogram=function(){var t=m,e=u,r=w;function n(n){var a,o,s=n.length,l=new Array(s);for(a=0;af;)h.pop(),--p;var d,m=new Array(p+1);for(a=0;a<=p;++a)(d=m[a]=[]).x0=a>0?h[a-1]:u,d.x1=a=r)for(n=r;++an&&(n=r)}else for(;++a=r)for(n=r;++an&&(n=r);return n},t.mean=function(t,e){var r,n=t.length,i=n,a=-1,o=0;if(null==e)for(;++a=0;)for(e=(n=t[i]).length;--e>=0;)r[--o]=n[e];return r},t.min=k,t.pairs=function(t,e){null==e&&(e=o);for(var r=0,n=t.length-1,i=t[0],a=new Array(n<0?0:n);r0)return[t];if((n=e0)for(t=Math.ceil(t/o),e=Math.floor(e/o),a=new Array(i=Math.ceil(e-t+1));++s=l.length)return null!=t&&n.sort(t),null!=e?e(n):n;for(var s,c,f,h=-1,p=n.length,d=l[i++],m=r(),g=a();++hl.length)return r;var i,a=c[n-1];return null!=e&&n>=l.length?i=r.entries():(i=[],r.each((function(e,r){i.push({key:r,values:t(e,n)})}))),null!=a?i.sort((function(t,e){return a(t.key,e.key)})):i}(u(t,0,a,o),0)},key:function(t){return l.push(t),s},sortKeys:function(t){return c[l.length-1]=t,s},sortValues:function(e){return t=e,s},rollup:function(t){return e=t,s}}},t.set=c,t.map=r,t.keys=function(t){var e=[];for(var r in t)e.push(r);return e},t.values=function(t){var e=[];for(var r in t)e.push(t[r]);return e},t.entries=function(t){var e=[];for(var r in t)e.push({key:r,value:t[r]});return e},Object.defineProperty(t,"__esModule",{value:!0})}))},{}],159:[function(t,e,r){!function(t,n){"object"==typeof r&&void 0!==e?n(r):n((t=t||self).d3=t.d3||{})}(this,(function(t){"use strict";function e(t,e,r){t.prototype=e.prototype=r,r.constructor=t}function r(t,e){var r=Object.create(t.prototype);for(var n in e)r[n]=e[n];return r}function n(){}var i="\\s*([+-]?\\d+)\\s*",a="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",o="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",s=/^#([0-9a-f]{3,8})$/,l=new RegExp("^rgb\\("+[i,i,i]+"\\)$"),c=new RegExp("^rgb\\("+[o,o,o]+"\\)$"),u=new RegExp("^rgba\\("+[i,i,i,a]+"\\)$"),f=new RegExp("^rgba\\("+[o,o,o,a]+"\\)$"),h=new RegExp("^hsl\\("+[a,o,o]+"\\)$"),p=new RegExp("^hsla\\("+[a,o,o,a]+"\\)$"),d={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function m(){return this.rgb().formatHex()}function g(){return this.rgb().formatRgb()}function v(t){var e,r;return t=(t+"").trim().toLowerCase(),(e=s.exec(t))?(r=e[1].length,e=parseInt(e[1],16),6===r?y(e):3===r?new w(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===r?x(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===r?x(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=l.exec(t))?new w(e[1],e[2],e[3],1):(e=c.exec(t))?new w(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=u.exec(t))?x(e[1],e[2],e[3],e[4]):(e=f.exec(t))?x(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=h.exec(t))?A(e[1],e[2]/100,e[3]/100,1):(e=p.exec(t))?A(e[1],e[2]/100,e[3]/100,e[4]):d.hasOwnProperty(t)?y(d[t]):"transparent"===t?new w(NaN,NaN,NaN,0):null}function y(t){return new w(t>>16&255,t>>8&255,255&t,1)}function x(t,e,r,n){return n<=0&&(t=e=r=NaN),new w(t,e,r,n)}function b(t){return t instanceof n||(t=v(t)),t?new w((t=t.rgb()).r,t.g,t.b,t.opacity):new w}function _(t,e,r,n){return 1===arguments.length?b(t):new w(t,e,r,null==n?1:n)}function w(t,e,r,n){this.r=+t,this.g=+e,this.b=+r,this.opacity=+n}function T(){return"#"+M(this.r)+M(this.g)+M(this.b)}function k(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function M(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function A(t,e,r,n){return n<=0?t=e=r=NaN:r<=0||r>=1?t=e=NaN:e<=0&&(t=NaN),new L(t,e,r,n)}function S(t){if(t instanceof L)return new L(t.h,t.s,t.l,t.opacity);if(t instanceof n||(t=v(t)),!t)return new L;if(t instanceof L)return t;var e=(t=t.rgb()).r/255,r=t.g/255,i=t.b/255,a=Math.min(e,r,i),o=Math.max(e,r,i),s=NaN,l=o-a,c=(o+a)/2;return l?(s=e===o?(r-i)/l+6*(r0&&c<1?0:s,new L(s,l,c,t.opacity)}function E(t,e,r,n){return 1===arguments.length?S(t):new L(t,e,r,null==n?1:n)}function L(t,e,r,n){this.h=+t,this.s=+e,this.l=+r,this.opacity=+n}function C(t,e,r){return 255*(t<60?e+(r-e)*t/60:t<180?r:t<240?e+(r-e)*(240-t)/60:e)}e(n,v,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:m,formatHex:m,formatHsl:function(){return S(this).formatHsl()},formatRgb:g,toString:g}),e(w,_,r(n,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new w(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new w(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:T,formatHex:T,formatRgb:k,toString:k})),e(L,E,r(n,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new L(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new L(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*e,i=2*r-n;return new w(C(t>=240?t-240:t+120,i,n),C(t,i,n),C(t<120?t+240:t-120,i,n),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));var P=Math.PI/180,I=180/Math.PI,O=6/29,z=3*O*O;function D(t){if(t instanceof F)return new F(t.l,t.a,t.b,t.opacity);if(t instanceof H)return G(t);t instanceof w||(t=b(t));var e,r,n=U(t.r),i=U(t.g),a=U(t.b),o=B((.2225045*n+.7168786*i+.0606169*a)/1);return n===i&&i===a?e=r=o:(e=B((.4360747*n+.3850649*i+.1430804*a)/.96422),r=B((.0139322*n+.0971045*i+.7141733*a)/.82521)),new F(116*o-16,500*(e-o),200*(o-r),t.opacity)}function R(t,e,r,n){return 1===arguments.length?D(t):new F(t,e,r,null==n?1:n)}function F(t,e,r,n){this.l=+t,this.a=+e,this.b=+r,this.opacity=+n}function B(t){return t>.008856451679035631?Math.pow(t,1/3):t/z+4/29}function N(t){return t>O?t*t*t:z*(t-4/29)}function j(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function U(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function V(t){if(t instanceof H)return new H(t.h,t.c,t.l,t.opacity);if(t instanceof F||(t=D(t)),0===t.a&&0===t.b)return new H(NaN,0=0&&(r=t.slice(n+1),t=t.slice(0,n)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:r}}))}function a(t,e){for(var r,n=0,i=t.length;n0)for(var r,n,i=new Array(r),a=0;ah+c||np+c||au.index){var f=h-s.x-s.vx,g=p-s.y-s.vy,v=f*f+g*g;vt.r&&(t.r=t[e].r)}function h(){if(r){var e,i,a=r.length;for(n=new Array(a),e=0;e=c)){(t.data!==r||t.next)&&(0===f&&(d+=(f=o())*f),0===h&&(d+=(h=o())*h),d1?(null==r?u.remove(t):u.set(t,v(r)),e):u.get(t)},find:function(e,r,n){var i,a,o,s,l,c=0,u=t.length;for(null==n?n=1/0:n*=n,c=0;c1?(h.on(t,r),e):h.on(t)}}},t.forceX=function(t){var e,r,n,i=a(.1);function o(t){for(var i,a=0,o=e.length;a=0;)e+=r[n].value;else e=1;t.value=e}function a(t,e){var r,n,i,a,s,u=new c(t),f=+t.value&&(u.value=t.value),h=[u];for(null==e&&(e=o);r=h.pop();)if(f&&(r.value=+r.data.value),(i=e(r.data))&&(s=i.length))for(r.children=new Array(s),a=s-1;a>=0;--a)h.push(n=r.children[a]=new c(i[a])),n.parent=r,n.depth=r.depth+1;return u.eachBefore(l)}function o(t){return t.children}function s(t){t.data=t.data.data}function l(t){var e=0;do{t.height=e}while((t=t.parent)&&t.height<++e)}function c(t){this.data=t,this.depth=this.height=0,this.parent=null}c.prototype=a.prototype={constructor:c,count:function(){return this.eachAfter(i)},each:function(t){var e,r,n,i,a=this,o=[a];do{for(e=o.reverse(),o=[];a=e.pop();)if(t(a),r=a.children)for(n=0,i=r.length;n=0;--r)i.push(e[r]);return this},sum:function(t){return this.eachAfter((function(e){for(var r=+t(e.data)||0,n=e.children,i=n&&n.length;--i>=0;)r+=n[i].value;e.value=r}))},sort:function(t){return this.eachBefore((function(e){e.children&&e.children.sort(t)}))},path:function(t){for(var e=this,r=function(t,e){if(t===e)return t;var r=t.ancestors(),n=e.ancestors(),i=null;t=r.pop(),e=n.pop();for(;t===e;)i=t,t=r.pop(),e=n.pop();return i}(e,t),n=[e];e!==r;)e=e.parent,n.push(e);for(var i=n.length;t!==r;)n.splice(i,0,t),t=t.parent;return n},ancestors:function(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e},descendants:function(){var t=[];return this.each((function(e){t.push(e)})),t},leaves:function(){var t=[];return this.eachBefore((function(e){e.children||t.push(e)})),t},links:function(){var t=this,e=[];return t.each((function(r){r!==t&&e.push({source:r.parent,target:r})})),e},copy:function(){return a(this).eachBefore(s)}};var u=Array.prototype.slice;function f(t){for(var e,r,n=0,i=(t=function(t){for(var e,r,n=t.length;n;)r=Math.random()*n--|0,e=t[n],t[n]=t[r],t[r]=e;return t}(u.call(t))).length,a=[];n0&&r*r>n*n+i*i}function m(t,e){for(var r=0;r(o*=o)?(n=(c+o-i)/(2*c),a=Math.sqrt(Math.max(0,o/c-n*n)),r.x=t.x-n*s-a*l,r.y=t.y-n*l+a*s):(n=(c+i-o)/(2*c),a=Math.sqrt(Math.max(0,i/c-n*n)),r.x=e.x+n*s-a*l,r.y=e.y+n*l+a*s)):(r.x=e.x+r.r,r.y=e.y)}function b(t,e){var r=t.r+e.r-1e-6,n=e.x-t.x,i=e.y-t.y;return r>0&&r*r>n*n+i*i}function _(t){var e=t._,r=t.next._,n=e.r+r.r,i=(e.x*r.r+r.x*e.r)/n,a=(e.y*r.r+r.y*e.r)/n;return i*i+a*a}function w(t){this._=t,this.next=null,this.previous=null}function T(t){if(!(i=t.length))return 0;var e,r,n,i,a,o,s,l,c,u,h;if((e=t[0]).x=0,e.y=0,!(i>1))return e.r;if(r=t[1],e.x=-r.r,r.x=e.r,r.y=0,!(i>2))return e.r+r.r;x(r,e,n=t[2]),e=new w(e),r=new w(r),n=new w(n),e.next=n.previous=r,r.next=e.previous=n,n.next=r.previous=e;t:for(s=3;sh&&(h=s),g=u*u*m,(p=Math.max(h/g,g/f))>d){u-=s;break}d=p}v.push(o={value:u,dice:l1?e:1)},r}(G);var X=function t(e){function r(t,r,n,i,a){if((o=t._squarify)&&o.ratio===e)for(var o,s,l,c,u,f=-1,h=o.length,p=t.value;++f1?e:1)},r}(G);t.cluster=function(){var t=e,i=1,a=1,o=!1;function s(e){var s,l=0;e.eachAfter((function(e){var i=e.children;i?(e.x=function(t){return t.reduce(r,0)/t.length}(i),e.y=function(t){return 1+t.reduce(n,0)}(i)):(e.x=s?l+=t(e,s):0,e.y=0,s=e)}));var c=function(t){for(var e;e=t.children;)t=e[0];return t}(e),u=function(t){for(var e;e=t.children;)t=e[e.length-1];return t}(e),f=c.x-t(c,u)/2,h=u.x+t(u,c)/2;return e.eachAfter(o?function(t){t.x=(t.x-e.x)*i,t.y=(e.y-t.y)*a}:function(t){t.x=(t.x-f)/(h-f)*i,t.y=(1-(e.y?t.y/e.y:1))*a})}return s.separation=function(e){return arguments.length?(t=e,s):t},s.size=function(t){return arguments.length?(o=!1,i=+t[0],a=+t[1],s):o?null:[i,a]},s.nodeSize=function(t){return arguments.length?(o=!0,i=+t[0],a=+t[1],s):o?[i,a]:null},s},t.hierarchy=a,t.pack=function(){var t=null,e=1,r=1,n=A;function i(i){return i.x=e/2,i.y=r/2,t?i.eachBefore(L(t)).eachAfter(C(n,.5)).eachBefore(P(1)):i.eachBefore(L(E)).eachAfter(C(A,1)).eachAfter(C(n,i.r/Math.min(e,r))).eachBefore(P(Math.min(e,r)/(2*i.r))),i}return i.radius=function(e){return arguments.length?(t=k(e),i):t},i.size=function(t){return arguments.length?(e=+t[0],r=+t[1],i):[e,r]},i.padding=function(t){return arguments.length?(n="function"==typeof t?t:S(+t),i):n},i},t.packEnclose=f,t.packSiblings=function(t){return T(t),t},t.partition=function(){var t=1,e=1,r=0,n=!1;function i(i){var a=i.height+1;return i.x0=i.y0=r,i.x1=t,i.y1=e/a,i.eachBefore(function(t,e){return function(n){n.children&&O(n,n.x0,t*(n.depth+1)/e,n.x1,t*(n.depth+2)/e);var i=n.x0,a=n.y0,o=n.x1-r,s=n.y1-r;o0)throw new Error("cycle");return a}return r.id=function(e){return arguments.length?(t=M(e),r):t},r.parentId=function(t){return arguments.length?(e=M(t),r):e},r},t.tree=function(){var t=B,e=1,r=1,n=null;function i(i){var l=function(t){for(var e,r,n,i,a,o=new q(t,0),s=[o];e=s.pop();)if(n=e._.children)for(e.children=new Array(a=n.length),i=a-1;i>=0;--i)s.push(r=e.children[i]=new q(n[i],i)),r.parent=e;return(o.parent=new q(null,0)).children=[o],o}(i);if(l.eachAfter(a),l.parent.m=-l.z,l.eachBefore(o),n)i.eachBefore(s);else{var c=i,u=i,f=i;i.eachBefore((function(t){t.xu.x&&(u=t),t.depth>f.depth&&(f=t)}));var h=c===u?1:t(c,u)/2,p=h-c.x,d=e/(u.x+h+p),m=r/(f.depth||1);i.eachBefore((function(t){t.x=(t.x+p)*d,t.y=t.depth*m}))}return i}function a(e){var r=e.children,n=e.parent.children,i=e.i?n[e.i-1]:null;if(r){!function(t){for(var e,r=0,n=0,i=t.children,a=i.length;--a>=0;)(e=i[a]).z+=r,e.m+=r,r+=e.s+(n+=e.c)}(e);var a=(r[0].z+r[r.length-1].z)/2;i?(e.z=i.z+t(e._,i._),e.m=e.z-a):e.z=a}else i&&(e.z=i.z+t(e._,i._));e.parent.A=function(e,r,n){if(r){for(var i,a=e,o=e,s=r,l=a.parent.children[0],c=a.m,u=o.m,f=s.m,h=l.m;s=j(s),a=N(a),s&&a;)l=N(l),(o=j(o)).a=e,(i=s.z+f-a.z-c+t(s._,a._))>0&&(U(V(s,e,n),e,i),c+=i,u+=i),f+=s.m,c+=a.m,h+=l.m,u+=o.m;s&&!j(o)&&(o.t=s,o.m+=f-u),a&&!N(l)&&(l.t=a,l.m+=c-h,n=e)}return n}(e,i,e.parent.A||n[0])}function o(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function s(t){t.x*=e,t.y=t.depth*r}return i.separation=function(e){return arguments.length?(t=e,i):t},i.size=function(t){return arguments.length?(n=!1,e=+t[0],r=+t[1],i):n?null:[e,r]},i.nodeSize=function(t){return arguments.length?(n=!0,e=+t[0],r=+t[1],i):n?[e,r]:null},i},t.treemap=function(){var t=W,e=!1,r=1,n=1,i=[0],a=A,o=A,s=A,l=A,c=A;function u(t){return t.x0=t.y0=0,t.x1=r,t.y1=n,t.eachBefore(f),i=[0],e&&t.eachBefore(I),t}function f(e){var r=i[e.depth],n=e.x0+r,u=e.y0+r,f=e.x1-r,h=e.y1-r;f=r-1){var u=s[e];return u.x0=i,u.y0=a,u.x1=o,void(u.y1=l)}var f=c[e],h=n/2+f,p=e+1,d=r-1;for(;p>>1;c[m]l-a){var y=(i*v+o*g)/n;t(e,p,g,i,a,y,l),t(p,r,v,y,a,o,l)}else{var x=(a*v+l*g)/n;t(e,p,g,i,a,o,x),t(p,r,v,i,x,o,l)}}(0,l,t.value,e,r,n,i)},t.treemapDice=O,t.treemapResquarify=X,t.treemapSlice=H,t.treemapSliceDice=function(t,e,r,n,i){(1&t.depth?H:O)(t,e,r,n,i)},t.treemapSquarify=W,Object.defineProperty(t,"__esModule",{value:!0})}))},{}],163:[function(t,e,r){!function(n,i){"object"==typeof r&&void 0!==e?i(r,t("d3-color")):i((n=n||self).d3=n.d3||{},n.d3)}(this,(function(t,e){"use strict";function r(t,e,r,n,i){var a=t*t,o=a*t;return((1-3*t+3*a-o)*e+(4-6*a+3*o)*r+(1+3*t+3*a-3*o)*n+o*i)/6}function n(t){var e=t.length-1;return function(n){var i=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),a=t[i],o=t[i+1],s=i>0?t[i-1]:2*a-o,l=i180||r<-180?r-360*Math.round(r/360):r):a(isNaN(t)?e:t)}function l(t){return 1==(t=+t)?c:function(e,r){return r-e?function(t,e,r){return t=Math.pow(t,r),e=Math.pow(e,r)-t,r=1/r,function(n){return Math.pow(t+n*e,r)}}(e,r,t):a(isNaN(e)?r:e)}}function c(t,e){var r=e-t;return r?o(t,r):a(isNaN(t)?e:t)}var u=function t(r){var n=l(r);function i(t,r){var i=n((t=e.rgb(t)).r,(r=e.rgb(r)).r),a=n(t.g,r.g),o=n(t.b,r.b),s=c(t.opacity,r.opacity);return function(e){return t.r=i(e),t.g=a(e),t.b=o(e),t.opacity=s(e),t+""}}return i.gamma=t,i}(1);function f(t){return function(r){var n,i,a=r.length,o=new Array(a),s=new Array(a),l=new Array(a);for(n=0;na&&(i=e.slice(a,i),s[o]?s[o]+=i:s[++o]=i),(r=r[0])===(n=n[0])?s[o]?s[o]+=n:s[++o]=n:(s[++o]=null,l.push({i:o,x:y(r,n)})),a=_.lastIndex;return a180?e+=360:e-t>180&&(t+=360),a.push({i:r.push(i(r)+"rotate(",null,n)-2,x:y(t,e)})):e&&r.push(i(r)+"rotate("+e+n)}(a.rotate,o.rotate,s,l),function(t,e,r,a){t!==e?a.push({i:r.push(i(r)+"skewX(",null,n)-2,x:y(t,e)}):e&&r.push(i(r)+"skewX("+e+n)}(a.skewX,o.skewX,s,l),function(t,e,r,n,a,o){if(t!==r||e!==n){var s=a.push(i(a)+"scale(",null,",",null,")");o.push({i:s-4,x:y(t,r)},{i:s-2,x:y(e,n)})}else 1===r&&1===n||a.push(i(a)+"scale("+r+","+n+")")}(a.scaleX,a.scaleY,o.scaleX,o.scaleY,s,l),a=o=null,function(t){for(var e,r=-1,n=l.length;++r1e-6)if(Math.abs(f*l-c*u)>1e-6&&a){var p=n-o,d=i-s,m=l*l+c*c,g=p*p+d*d,v=Math.sqrt(m),y=Math.sqrt(h),x=a*Math.tan((e-Math.acos((m+h-g)/(2*v*y)))/2),b=x/y,_=x/v;Math.abs(b-1)>1e-6&&(this._+="L"+(t+b*u)+","+(r+b*f)),this._+="A"+a+","+a+",0,0,"+ +(f*p>u*d)+","+(this._x1=t+_*l)+","+(this._y1=r+_*c)}else this._+="L"+(this._x1=t)+","+(this._y1=r);else;},arc:function(t,i,a,o,s,l){t=+t,i=+i,l=!!l;var c=(a=+a)*Math.cos(o),u=a*Math.sin(o),f=t+c,h=i+u,p=1^l,d=l?o-s:s-o;if(a<0)throw new Error("negative radius: "+a);null===this._x1?this._+="M"+f+","+h:(Math.abs(this._x1-f)>1e-6||Math.abs(this._y1-h)>1e-6)&&(this._+="L"+f+","+h),a&&(d<0&&(d=d%r+r),d>n?this._+="A"+a+","+a+",0,1,"+p+","+(t-c)+","+(i-u)+"A"+a+","+a+",0,1,"+p+","+(this._x1=f)+","+(this._y1=h):d>1e-6&&(this._+="A"+a+","+a+",0,"+ +(d>=e)+","+p+","+(this._x1=t+a*Math.cos(s))+","+(this._y1=i+a*Math.sin(s))))},rect:function(t,e,r,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+e)+"h"+ +r+"v"+ +n+"h"+-r+"Z"},toString:function(){return this._}},t.path=a,Object.defineProperty(t,"__esModule",{value:!0})}))},{}],165:[function(t,e,r){!function(t,n){"object"==typeof r&&void 0!==e?n(r):n((t=t||self).d3=t.d3||{})}(this,(function(t){"use strict";function e(t,e,r,n){if(isNaN(e)||isNaN(r))return t;var i,a,o,s,l,c,u,f,h,p=t._root,d={data:n},m=t._x0,g=t._y0,v=t._x1,y=t._y1;if(!p)return t._root=d,t;for(;p.length;)if((c=e>=(a=(m+v)/2))?m=a:v=a,(u=r>=(o=(g+y)/2))?g=o:y=o,i=p,!(p=p[f=u<<1|c]))return i[f]=d,t;if(s=+t._x.call(null,p.data),l=+t._y.call(null,p.data),e===s&&r===l)return d.next=p,i?i[f]=d:t._root=d,t;do{i=i?i[f]=new Array(4):t._root=new Array(4),(c=e>=(a=(m+v)/2))?m=a:v=a,(u=r>=(o=(g+y)/2))?g=o:y=o}while((f=u<<1|c)==(h=(l>=o)<<1|s>=a));return i[h]=p,i[f]=d,t}function r(t,e,r,n,i){this.node=t,this.x0=e,this.y0=r,this.x1=n,this.y1=i}function n(t){return t[0]}function i(t){return t[1]}function a(t,e,r){var a=new o(null==e?n:e,null==r?i:r,NaN,NaN,NaN,NaN);return null==t?a:a.addAll(t)}function o(t,e,r,n,i,a){this._x=t,this._y=e,this._x0=r,this._y0=n,this._x1=i,this._y1=a,this._root=void 0}function s(t){for(var e={data:t.data},r=e;t=t.next;)r=r.next={data:t.data};return e}var l=a.prototype=o.prototype;l.copy=function(){var t,e,r=new o(this._x,this._y,this._x0,this._y0,this._x1,this._y1),n=this._root;if(!n)return r;if(!n.length)return r._root=s(n),r;for(t=[{source:n,target:r._root=new Array(4)}];n=t.pop();)for(var i=0;i<4;++i)(e=n.source[i])&&(e.length?t.push({source:e,target:n.target[i]=new Array(4)}):n.target[i]=s(e));return r},l.add=function(t){var r=+this._x.call(null,t),n=+this._y.call(null,t);return e(this.cover(r,n),r,n,t)},l.addAll=function(t){var r,n,i,a,o=t.length,s=new Array(o),l=new Array(o),c=1/0,u=1/0,f=-1/0,h=-1/0;for(n=0;nf&&(f=i),ah&&(h=a));if(c>f||u>h)return this;for(this.cover(c,u).cover(f,h),n=0;nt||t>=i||n>e||e>=a;)switch(s=(ep||(o=c.y0)>d||(s=c.x1)=y)<<1|t>=v)&&(c=m[m.length-1],m[m.length-1]=m[m.length-1-u],m[m.length-1-u]=c)}else{var x=t-+this._x.call(null,g.data),b=e-+this._y.call(null,g.data),_=x*x+b*b;if(_=(s=(d+g)/2))?d=s:g=s,(u=o>=(l=(m+v)/2))?m=l:v=l,e=p,!(p=p[f=u<<1|c]))return this;if(!p.length)break;(e[f+1&3]||e[f+2&3]||e[f+3&3])&&(r=e,h=f)}for(;p.data!==t;)if(n=p,!(p=p.next))return this;return(i=p.next)&&delete p.next,n?(i?n.next=i:delete n.next,this):e?(i?e[f]=i:delete e[f],(p=e[0]||e[1]||e[2]||e[3])&&p===(e[3]||e[2]||e[1]||e[0])&&!p.length&&(r?r[h]=p:this._root=p),this):(this._root=i,this)},l.removeAll=function(t){for(var e=0,r=t.length;e1?0:t<-1?u:Math.acos(t)}function d(t){return t>=1?f:t<=-1?-f:Math.asin(t)}function m(t){return t.innerRadius}function g(t){return t.outerRadius}function v(t){return t.startAngle}function y(t){return t.endAngle}function x(t){return t&&t.padAngle}function b(t,e,r,n,i,a,o,s){var l=r-t,c=n-e,u=o-i,f=s-a,h=f*l-u*c;if(!(h*h<1e-12))return[t+(h=(u*(e-a)-f*(t-i))/h)*l,e+h*c]}function _(t,e,r,n,i,a,s){var l=t-r,u=e-n,f=(s?a:-a)/c(l*l+u*u),h=f*u,p=-f*l,d=t+h,m=e+p,g=r+h,v=n+p,y=(d+g)/2,x=(m+v)/2,b=g-d,_=v-m,w=b*b+_*_,T=i-a,k=d*v-g*m,M=(_<0?-1:1)*c(o(0,T*T*w-k*k)),A=(k*_-b*M)/w,S=(-k*b-_*M)/w,E=(k*_+b*M)/w,L=(-k*b+_*M)/w,C=A-y,P=S-x,I=E-y,O=L-x;return C*C+P*P>I*I+O*O&&(A=E,S=L),{cx:A,cy:S,x01:-h,y01:-p,x11:A*(i/T-1),y11:S*(i/T-1)}}function w(t){this._context=t}function T(t){return new w(t)}function k(t){return t[0]}function M(t){return t[1]}function A(){var t=k,n=M,i=r(!0),a=null,o=T,s=null;function l(r){var l,c,u,f=r.length,h=!1;for(null==a&&(s=o(u=e.path())),l=0;l<=f;++l)!(l=f;--h)c.point(v[h],y[h]);c.lineEnd(),c.areaEnd()}g&&(v[u]=+t(p,u,r),y[u]=+i(p,u,r),c.point(n?+n(p,u,r):v[u],a?+a(p,u,r):y[u]))}if(d)return c=null,d+""||null}function f(){return A().defined(o).curve(l).context(s)}return u.x=function(e){return arguments.length?(t="function"==typeof e?e:r(+e),n=null,u):t},u.x0=function(e){return arguments.length?(t="function"==typeof e?e:r(+e),u):t},u.x1=function(t){return arguments.length?(n=null==t?null:"function"==typeof t?t:r(+t),u):n},u.y=function(t){return arguments.length?(i="function"==typeof t?t:r(+t),a=null,u):i},u.y0=function(t){return arguments.length?(i="function"==typeof t?t:r(+t),u):i},u.y1=function(t){return arguments.length?(a=null==t?null:"function"==typeof t?t:r(+t),u):a},u.lineX0=u.lineY0=function(){return f().x(t).y(i)},u.lineY1=function(){return f().x(t).y(a)},u.lineX1=function(){return f().x(n).y(i)},u.defined=function(t){return arguments.length?(o="function"==typeof t?t:r(!!t),u):o},u.curve=function(t){return arguments.length?(l=t,null!=s&&(c=l(s)),u):l},u.context=function(t){return arguments.length?(null==t?s=c=null:c=l(s=t),u):s},u}function E(t,e){return et?1:e>=t?0:NaN}function L(t){return t}w.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e)}}};var C=I(T);function P(t){this._curve=t}function I(t){function e(e){return new P(t(e))}return e._curve=t,e}function O(t){var e=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?e(I(t)):e()._curve},t}function z(){return O(A().curve(C))}function D(){var t=S().curve(C),e=t.curve,r=t.lineX0,n=t.lineX1,i=t.lineY0,a=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return O(r())},delete t.lineX0,t.lineEndAngle=function(){return O(n())},delete t.lineX1,t.lineInnerRadius=function(){return O(i())},delete t.lineY0,t.lineOuterRadius=function(){return O(a())},delete t.lineY1,t.curve=function(t){return arguments.length?e(I(t)):e()._curve},t}function R(t,e){return[(e=+e)*Math.cos(t-=Math.PI/2),e*Math.sin(t)]}P.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,e){this._curve.point(e*Math.sin(t),e*-Math.cos(t))}};var F=Array.prototype.slice;function B(t){return t.source}function N(t){return t.target}function j(t){var n=B,i=N,a=k,o=M,s=null;function l(){var r,l=F.call(arguments),c=n.apply(this,l),u=i.apply(this,l);if(s||(s=r=e.path()),t(s,+a.apply(this,(l[0]=c,l)),+o.apply(this,l),+a.apply(this,(l[0]=u,l)),+o.apply(this,l)),r)return s=null,r+""||null}return l.source=function(t){return arguments.length?(n=t,l):n},l.target=function(t){return arguments.length?(i=t,l):i},l.x=function(t){return arguments.length?(a="function"==typeof t?t:r(+t),l):a},l.y=function(t){return arguments.length?(o="function"==typeof t?t:r(+t),l):o},l.context=function(t){return arguments.length?(s=null==t?null:t,l):s},l}function U(t,e,r,n,i){t.moveTo(e,r),t.bezierCurveTo(e=(e+n)/2,r,e,i,n,i)}function V(t,e,r,n,i){t.moveTo(e,r),t.bezierCurveTo(e,r=(r+i)/2,n,r,n,i)}function q(t,e,r,n,i){var a=R(e,r),o=R(e,r=(r+i)/2),s=R(n,r),l=R(n,i);t.moveTo(a[0],a[1]),t.bezierCurveTo(o[0],o[1],s[0],s[1],l[0],l[1])}var H={draw:function(t,e){var r=Math.sqrt(e/u);t.moveTo(r,0),t.arc(0,0,r,0,h)}},G={draw:function(t,e){var r=Math.sqrt(e/5)/2;t.moveTo(-3*r,-r),t.lineTo(-r,-r),t.lineTo(-r,-3*r),t.lineTo(r,-3*r),t.lineTo(r,-r),t.lineTo(3*r,-r),t.lineTo(3*r,r),t.lineTo(r,r),t.lineTo(r,3*r),t.lineTo(-r,3*r),t.lineTo(-r,r),t.lineTo(-3*r,r),t.closePath()}},Y=Math.sqrt(1/3),W=2*Y,X={draw:function(t,e){var r=Math.sqrt(e/W),n=r*Y;t.moveTo(0,-r),t.lineTo(n,0),t.lineTo(0,r),t.lineTo(-n,0),t.closePath()}},Z=Math.sin(u/10)/Math.sin(7*u/10),J=Math.sin(h/10)*Z,K=-Math.cos(h/10)*Z,Q={draw:function(t,e){var r=Math.sqrt(.8908130915292852*e),n=J*r,i=K*r;t.moveTo(0,-r),t.lineTo(n,i);for(var a=1;a<5;++a){var o=h*a/5,s=Math.cos(o),l=Math.sin(o);t.lineTo(l*r,-s*r),t.lineTo(s*n-l*i,l*n+s*i)}t.closePath()}},$={draw:function(t,e){var r=Math.sqrt(e),n=-r/2;t.rect(n,n,r,r)}},tt=Math.sqrt(3),et={draw:function(t,e){var r=-Math.sqrt(e/(3*tt));t.moveTo(0,2*r),t.lineTo(-tt*r,-r),t.lineTo(tt*r,-r),t.closePath()}},rt=-.5,nt=Math.sqrt(3)/2,it=1/Math.sqrt(12),at=3*(it/2+1),ot={draw:function(t,e){var r=Math.sqrt(e/at),n=r/2,i=r*it,a=n,o=r*it+r,s=-a,l=o;t.moveTo(n,i),t.lineTo(a,o),t.lineTo(s,l),t.lineTo(rt*n-nt*i,nt*n+rt*i),t.lineTo(rt*a-nt*o,nt*a+rt*o),t.lineTo(rt*s-nt*l,nt*s+rt*l),t.lineTo(rt*n+nt*i,rt*i-nt*n),t.lineTo(rt*a+nt*o,rt*o-nt*a),t.lineTo(rt*s+nt*l,rt*l-nt*s),t.closePath()}},st=[H,G,X,$,Q,et,ot];function lt(){}function ct(t,e,r){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+r)/6)}function ut(t){this._context=t}function ft(t){this._context=t}function ht(t){this._context=t}function pt(t,e){this._basis=new ut(t),this._beta=e}ut.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:ct(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:ct(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},ft.prototype={areaStart:lt,areaEnd:lt,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:ct(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},ht.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+t)/6,n=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:ct(this,t,e)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}},pt.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,r=t.length-1;if(r>0)for(var n,i=t[0],a=e[0],o=t[r]-i,s=e[r]-a,l=-1;++l<=r;)n=l/r,this._basis.point(this._beta*t[l]+(1-this._beta)*(i+n*o),this._beta*e[l]+(1-this._beta)*(a+n*s));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};var dt=function t(e){function r(t){return 1===e?new ut(t):new pt(t,e)}return r.beta=function(e){return t(+e)},r}(.85);function mt(t,e,r){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-r),t._x2,t._y2)}function gt(t,e){this._context=t,this._k=(1-e)/6}gt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:mt(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:mt(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var vt=function t(e){function r(t){return new gt(t,e)}return r.tension=function(e){return t(+e)},r}(0);function yt(t,e){this._context=t,this._k=(1-e)/6}yt.prototype={areaStart:lt,areaEnd:lt,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:mt(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var xt=function t(e){function r(t){return new yt(t,e)}return r.tension=function(e){return t(+e)},r}(0);function bt(t,e){this._context=t,this._k=(1-e)/6}bt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:mt(this,t,e)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var _t=function t(e){function r(t){return new bt(t,e)}return r.tension=function(e){return t(+e)},r}(0);function wt(t,e,r){var n=t._x1,i=t._y1,a=t._x2,o=t._y2;if(t._l01_a>1e-12){var s=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,l=3*t._l01_a*(t._l01_a+t._l12_a);n=(n*s-t._x0*t._l12_2a+t._x2*t._l01_2a)/l,i=(i*s-t._y0*t._l12_2a+t._y2*t._l01_2a)/l}if(t._l23_a>1e-12){var c=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,u=3*t._l23_a*(t._l23_a+t._l12_a);a=(a*c+t._x1*t._l23_2a-e*t._l12_2a)/u,o=(o*c+t._y1*t._l23_2a-r*t._l12_2a)/u}t._context.bezierCurveTo(n,i,a,o,t._x2,t._y2)}function Tt(t,e){this._context=t,this._alpha=e}Tt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:wt(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var kt=function t(e){function r(t){return e?new Tt(t,e):new gt(t,0)}return r.alpha=function(e){return t(+e)},r}(.5);function Mt(t,e){this._context=t,this._alpha=e}Mt.prototype={areaStart:lt,areaEnd:lt,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:wt(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var At=function t(e){function r(t){return e?new Mt(t,e):new yt(t,0)}return r.alpha=function(e){return t(+e)},r}(.5);function St(t,e){this._context=t,this._alpha=e}St.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var r=this._x2-t,n=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(r*r+n*n,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:wt(this,t,e)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var Et=function t(e){function r(t){return e?new St(t,e):new bt(t,0)}return r.alpha=function(e){return t(+e)},r}(.5);function Lt(t){this._context=t}function Ct(t){return t<0?-1:1}function Pt(t,e,r){var n=t._x1-t._x0,i=e-t._x1,a=(t._y1-t._y0)/(n||i<0&&-0),o=(r-t._y1)/(i||n<0&&-0),s=(a*i+o*n)/(n+i);return(Ct(a)+Ct(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(s))||0}function It(t,e){var r=t._x1-t._x0;return r?(3*(t._y1-t._y0)/r-e)/2:e}function Ot(t,e,r){var n=t._x0,i=t._y0,a=t._x1,o=t._y1,s=(a-n)/3;t._context.bezierCurveTo(n+s,i+s*e,a-s,o-s*r,a,o)}function zt(t){this._context=t}function Dt(t){this._context=new Rt(t)}function Rt(t){this._context=t}function Ft(t){this._context=t}function Bt(t){var e,r,n=t.length-1,i=new Array(n),a=new Array(n),o=new Array(n);for(i[0]=0,a[0]=2,o[0]=t[0]+2*t[1],e=1;e=0;--e)i[e]=(o[e]-i[e+1])/a[e];for(a[n-1]=(t[n]+i[n-1])/2,e=0;e1)for(var r,n,i,a=1,o=t[e[0]],s=o.length;a=0;)r[e]=e;return r}function Vt(t,e){return t[e]}function qt(t){var e=t.map(Ht);return Ut(t).sort((function(t,r){return e[t]-e[r]}))}function Ht(t){for(var e,r=-1,n=0,i=t.length,a=-1/0;++ra&&(a=e,n=r);return n}function Gt(t){var e=t.map(Yt);return Ut(t).sort((function(t,r){return e[t]-e[r]}))}function Yt(t){for(var e,r=0,n=-1,i=t.length;++n=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var r=this._x*(1-this._t)+t*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,e)}}this._x=t,this._y=e}},t.arc=function(){var t=m,o=g,w=r(0),T=null,k=v,M=y,A=x,S=null;function E(){var r,m,g=+t.apply(this,arguments),v=+o.apply(this,arguments),y=k.apply(this,arguments)-f,x=M.apply(this,arguments)-f,E=n(x-y),L=x>y;if(S||(S=r=e.path()),v1e-12)if(E>h-1e-12)S.moveTo(v*a(y),v*l(y)),S.arc(0,0,v,y,x,!L),g>1e-12&&(S.moveTo(g*a(x),g*l(x)),S.arc(0,0,g,x,y,L));else{var C,P,I=y,O=x,z=y,D=x,R=E,F=E,B=A.apply(this,arguments)/2,N=B>1e-12&&(T?+T.apply(this,arguments):c(g*g+v*v)),j=s(n(v-g)/2,+w.apply(this,arguments)),U=j,V=j;if(N>1e-12){var q=d(N/g*l(B)),H=d(N/v*l(B));(R-=2*q)>1e-12?(z+=q*=L?1:-1,D-=q):(R=0,z=D=(y+x)/2),(F-=2*H)>1e-12?(I+=H*=L?1:-1,O-=H):(F=0,I=O=(y+x)/2)}var G=v*a(I),Y=v*l(I),W=g*a(D),X=g*l(D);if(j>1e-12){var Z,J=v*a(O),K=v*l(O),Q=g*a(z),$=g*l(z);if(E1e-12?V>1e-12?(C=_(Q,$,G,Y,v,V,L),P=_(J,K,W,X,v,V,L),S.moveTo(C.cx+C.x01,C.cy+C.y01),V1e-12&&R>1e-12?U>1e-12?(C=_(W,X,J,K,g,-U,L),P=_(G,Y,Q,$,g,-U,L),S.lineTo(C.cx+C.x01,C.cy+C.y01),U0&&(d+=f);for(null!=e?m.sort((function(t,r){return e(g[t],g[r])})):null!=n&&m.sort((function(t,e){return n(r[t],r[e])})),s=0,c=d?(y-p*b)/d:0;s0?f*c:0)+b,g[l]={data:r[l],index:s,value:f,startAngle:v,endAngle:u,padAngle:x};return g}return s.value=function(e){return arguments.length?(t="function"==typeof e?e:r(+e),s):t},s.sortValues=function(t){return arguments.length?(e=t,n=null,s):e},s.sort=function(t){return arguments.length?(n=t,e=null,s):n},s.startAngle=function(t){return arguments.length?(i="function"==typeof t?t:r(+t),s):i},s.endAngle=function(t){return arguments.length?(a="function"==typeof t?t:r(+t),s):a},s.padAngle=function(t){return arguments.length?(o="function"==typeof t?t:r(+t),s):o},s},t.pointRadial=R,t.radialArea=D,t.radialLine=z,t.stack=function(){var t=r([]),e=Ut,n=jt,i=Vt;function a(r){var a,o,s=t.apply(this,arguments),l=r.length,c=s.length,u=new Array(c);for(a=0;a0)for(var r,n,i,a,o,s,l=0,c=t[e[0]].length;l0?(n[0]=a,n[1]=a+=i):i<0?(n[1]=o,n[0]=o+=i):(n[0]=0,n[1]=i)},t.stackOffsetExpand=function(t,e){if((n=t.length)>0){for(var r,n,i,a=0,o=t[0].length;a0){for(var r,n=0,i=t[e[0]],a=i.length;n0&&(n=(r=t[e[0]]).length)>0){for(var r,n,i,a=0,o=1;o=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:gt,s:vt,S:q,u:H,U:G,V:Y,w:W,W:X,x:null,X:null,y:Z,Y:J,Z:K,"%":mt},Ct={a:function(t){return f[t.getUTCDay()]},A:function(t){return u[t.getUTCDay()]},b:function(t){return yt[t.getUTCMonth()]},B:function(t){return h[t.getUTCMonth()]},c:null,d:Q,e:Q,f:nt,H:$,I:tt,j:et,L:rt,m:it,M:at,p:function(t){return c[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:gt,s:vt,S:ot,u:st,U:lt,V:ct,w:ut,W:ft,x:null,X:null,y:ht,Y:pt,Z:dt,"%":mt},Pt={a:function(t,e,r){var n=Tt.exec(e.slice(r));return n?(t.w=kt[n[0].toLowerCase()],r+n[0].length):-1},A:function(t,e,r){var n=_t.exec(e.slice(r));return n?(t.w=wt[n[0].toLowerCase()],r+n[0].length):-1},b:function(t,e,r){var n=St.exec(e.slice(r));return n?(t.m=Et[n[0].toLowerCase()],r+n[0].length):-1},B:function(t,e,r){var n=Mt.exec(e.slice(r));return n?(t.m=At[n[0].toLowerCase()],r+n[0].length):-1},c:function(t,e,r){return zt(t,a,e,r)},d:M,e:M,f:P,H:S,I:S,j:A,L:C,m:k,M:E,p:function(t,e,r){var n=xt.exec(e.slice(r));return n?(t.p=bt[n[0].toLowerCase()],r+n[0].length):-1},q:T,Q:O,s:z,S:L,u:g,U:v,V:y,w:m,W:x,x:function(t,e,r){return zt(t,o,e,r)},X:function(t,e,r){return zt(t,l,e,r)},y:_,Y:b,Z:w,"%":I};function It(t,e){return function(r){var n,i,a,o=[],l=-1,c=0,u=t.length;for(r instanceof Date||(r=new Date(+r));++l53)return null;"w"in c||(c.w=1),"Z"in c?(l=(s=n(i(c.y,0,1))).getUTCDay(),s=l>4||0===l?e.utcMonday.ceil(s):e.utcMonday(s),s=e.utcDay.offset(s,7*(c.V-1)),c.y=s.getUTCFullYear(),c.m=s.getUTCMonth(),c.d=s.getUTCDate()+(c.w+6)%7):(l=(s=r(i(c.y,0,1))).getDay(),s=l>4||0===l?e.timeMonday.ceil(s):e.timeMonday(s),s=e.timeDay.offset(s,7*(c.V-1)),c.y=s.getFullYear(),c.m=s.getMonth(),c.d=s.getDate()+(c.w+6)%7)}else("W"in c||"U"in c)&&("w"in c||(c.w="u"in c?c.u%7:"W"in c?1:0),l="Z"in c?n(i(c.y,0,1)).getUTCDay():r(i(c.y,0,1)).getDay(),c.m=0,c.d="W"in c?(c.w+6)%7+7*c.W-(l+5)%7:c.w+7*c.U-(l+6)%7);return"Z"in c?(c.H+=c.Z/100|0,c.M+=c.Z%100,n(c)):r(c)}}function zt(t,e,r,n){for(var i,a,o=0,l=e.length,c=r.length;o=c)return-1;if(37===(i=e.charCodeAt(o++))){if(i=e.charAt(o++),!(a=Pt[i in s?e.charAt(o++):i])||(n=a(t,r,n))<0)return-1}else if(i!=r.charCodeAt(n++))return-1}return n}return Lt.x=It(o,Lt),Lt.X=It(l,Lt),Lt.c=It(a,Lt),Ct.x=It(o,Ct),Ct.X=It(l,Ct),Ct.c=It(a,Ct),{format:function(t){var e=It(t+="",Lt);return e.toString=function(){return t},e},parse:function(t){var e=Ot(t+="",!1);return e.toString=function(){return t},e},utcFormat:function(t){var e=It(t+="",Ct);return e.toString=function(){return t},e},utcParse:function(t){var e=Ot(t+="",!0);return e.toString=function(){return t},e}}}var o,s={"-":"",_:" ",0:"0"},l=/^\s*\d+/,c=/^%/,u=/[\\^$*+?|[\]().{}]/g;function f(t,e,r){var n=t<0?"-":"",i=(n?-t:t)+"",a=i.length;return n+(a68?1900:2e3),r+n[0].length):-1}function w(t,e,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(r,r+6));return n?(t.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function T(t,e,r){var n=l.exec(e.slice(r,r+1));return n?(t.q=3*n[0]-3,r+n[0].length):-1}function k(t,e,r){var n=l.exec(e.slice(r,r+2));return n?(t.m=n[0]-1,r+n[0].length):-1}function M(t,e,r){var n=l.exec(e.slice(r,r+2));return n?(t.d=+n[0],r+n[0].length):-1}function A(t,e,r){var n=l.exec(e.slice(r,r+3));return n?(t.m=0,t.d=+n[0],r+n[0].length):-1}function S(t,e,r){var n=l.exec(e.slice(r,r+2));return n?(t.H=+n[0],r+n[0].length):-1}function E(t,e,r){var n=l.exec(e.slice(r,r+2));return n?(t.M=+n[0],r+n[0].length):-1}function L(t,e,r){var n=l.exec(e.slice(r,r+2));return n?(t.S=+n[0],r+n[0].length):-1}function C(t,e,r){var n=l.exec(e.slice(r,r+3));return n?(t.L=+n[0],r+n[0].length):-1}function P(t,e,r){var n=l.exec(e.slice(r,r+6));return n?(t.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function I(t,e,r){var n=c.exec(e.slice(r,r+1));return n?r+n[0].length:-1}function O(t,e,r){var n=l.exec(e.slice(r));return n?(t.Q=+n[0],r+n[0].length):-1}function z(t,e,r){var n=l.exec(e.slice(r));return n?(t.s=+n[0],r+n[0].length):-1}function D(t,e){return f(t.getDate(),e,2)}function R(t,e){return f(t.getHours(),e,2)}function F(t,e){return f(t.getHours()%12||12,e,2)}function B(t,r){return f(1+e.timeDay.count(e.timeYear(t),t),r,3)}function N(t,e){return f(t.getMilliseconds(),e,3)}function j(t,e){return N(t,e)+"000"}function U(t,e){return f(t.getMonth()+1,e,2)}function V(t,e){return f(t.getMinutes(),e,2)}function q(t,e){return f(t.getSeconds(),e,2)}function H(t){var e=t.getDay();return 0===e?7:e}function G(t,r){return f(e.timeSunday.count(e.timeYear(t)-1,t),r,2)}function Y(t,r){var n=t.getDay();return t=n>=4||0===n?e.timeThursday(t):e.timeThursday.ceil(t),f(e.timeThursday.count(e.timeYear(t),t)+(4===e.timeYear(t).getDay()),r,2)}function W(t){return t.getDay()}function X(t,r){return f(e.timeMonday.count(e.timeYear(t)-1,t),r,2)}function Z(t,e){return f(t.getFullYear()%100,e,2)}function J(t,e){return f(t.getFullYear()%1e4,e,4)}function K(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+f(e/60|0,"0",2)+f(e%60,"0",2)}function Q(t,e){return f(t.getUTCDate(),e,2)}function $(t,e){return f(t.getUTCHours(),e,2)}function tt(t,e){return f(t.getUTCHours()%12||12,e,2)}function et(t,r){return f(1+e.utcDay.count(e.utcYear(t),t),r,3)}function rt(t,e){return f(t.getUTCMilliseconds(),e,3)}function nt(t,e){return rt(t,e)+"000"}function it(t,e){return f(t.getUTCMonth()+1,e,2)}function at(t,e){return f(t.getUTCMinutes(),e,2)}function ot(t,e){return f(t.getUTCSeconds(),e,2)}function st(t){var e=t.getUTCDay();return 0===e?7:e}function lt(t,r){return f(e.utcSunday.count(e.utcYear(t)-1,t),r,2)}function ct(t,r){var n=t.getUTCDay();return t=n>=4||0===n?e.utcThursday(t):e.utcThursday.ceil(t),f(e.utcThursday.count(e.utcYear(t),t)+(4===e.utcYear(t).getUTCDay()),r,2)}function ut(t){return t.getUTCDay()}function ft(t,r){return f(e.utcMonday.count(e.utcYear(t)-1,t),r,2)}function ht(t,e){return f(t.getUTCFullYear()%100,e,2)}function pt(t,e){return f(t.getUTCFullYear()%1e4,e,4)}function dt(){return"+0000"}function mt(){return"%"}function gt(t){return+t}function vt(t){return Math.floor(+t/1e3)}function yt(e){return o=a(e),t.timeFormat=o.format,t.timeParse=o.parse,t.utcFormat=o.utcFormat,t.utcParse=o.utcParse,o}yt({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var xt=Date.prototype.toISOString?function(t){return t.toISOString()}:t.utcFormat("%Y-%m-%dT%H:%M:%S.%LZ");var bt=+new Date("2000-01-01T00:00:00.000Z")?function(t){var e=new Date(t);return isNaN(e)?null:e}:t.utcParse("%Y-%m-%dT%H:%M:%S.%LZ");t.isoFormat=xt,t.isoParse=bt,t.timeFormatDefaultLocale=yt,t.timeFormatLocale=a,Object.defineProperty(t,"__esModule",{value:!0})}))},{"d3-time":168}],168:[function(t,e,r){!function(t,n){"object"==typeof r&&void 0!==e?n(r):n((t=t||self).d3=t.d3||{})}(this,(function(t){"use strict";var e=new Date,r=new Date;function n(t,i,a,o){function s(e){return t(e=0===arguments.length?new Date:new Date(+e)),e}return s.floor=function(e){return t(e=new Date(+e)),e},s.ceil=function(e){return t(e=new Date(e-1)),i(e,1),t(e),e},s.round=function(t){var e=s(t),r=s.ceil(t);return t-e0))return o;do{o.push(a=new Date(+e)),i(e,n),t(e)}while(a=r)for(;t(r),!e(r);)r.setTime(r-1)}),(function(t,r){if(t>=t)if(r<0)for(;++r<=0;)for(;i(t,-1),!e(t););else for(;--r>=0;)for(;i(t,1),!e(t););}))},a&&(s.count=function(n,i){return e.setTime(+n),r.setTime(+i),t(e),t(r),Math.floor(a(e,r))},s.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?s.filter(o?function(e){return o(e)%t==0}:function(e){return s.count(0,e)%t==0}):s:null}),s}var i=n((function(){}),(function(t,e){t.setTime(+t+e)}),(function(t,e){return e-t}));i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?n((function(e){e.setTime(Math.floor(e/t)*t)}),(function(e,r){e.setTime(+e+r*t)}),(function(e,r){return(r-e)/t})):i:null};var a=i.range,o=n((function(t){t.setTime(t-t.getMilliseconds())}),(function(t,e){t.setTime(+t+1e3*e)}),(function(t,e){return(e-t)/1e3}),(function(t){return t.getUTCSeconds()})),s=o.range,l=n((function(t){t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds())}),(function(t,e){t.setTime(+t+6e4*e)}),(function(t,e){return(e-t)/6e4}),(function(t){return t.getMinutes()})),c=l.range,u=n((function(t){t.setTime(t-t.getMilliseconds()-1e3*t.getSeconds()-6e4*t.getMinutes())}),(function(t,e){t.setTime(+t+36e5*e)}),(function(t,e){return(e-t)/36e5}),(function(t){return t.getHours()})),f=u.range,h=n((function(t){t.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+e)}),(function(t,e){return(e-t-6e4*(e.getTimezoneOffset()-t.getTimezoneOffset()))/864e5}),(function(t){return t.getDate()-1})),p=h.range;function d(t){return n((function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)}),(function(t,e){t.setDate(t.getDate()+7*e)}),(function(t,e){return(e-t-6e4*(e.getTimezoneOffset()-t.getTimezoneOffset()))/6048e5}))}var m=d(0),g=d(1),v=d(2),y=d(3),x=d(4),b=d(5),_=d(6),w=m.range,T=g.range,k=v.range,M=y.range,A=x.range,S=b.range,E=_.range,L=n((function(t){t.setDate(1),t.setHours(0,0,0,0)}),(function(t,e){t.setMonth(t.getMonth()+e)}),(function(t,e){return e.getMonth()-t.getMonth()+12*(e.getFullYear()-t.getFullYear())}),(function(t){return t.getMonth()})),C=L.range,P=n((function(t){t.setMonth(0,1),t.setHours(0,0,0,0)}),(function(t,e){t.setFullYear(t.getFullYear()+e)}),(function(t,e){return e.getFullYear()-t.getFullYear()}),(function(t){return t.getFullYear()}));P.every=function(t){return isFinite(t=Math.floor(t))&&t>0?n((function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)}),(function(e,r){e.setFullYear(e.getFullYear()+r*t)})):null};var I=P.range,O=n((function(t){t.setUTCSeconds(0,0)}),(function(t,e){t.setTime(+t+6e4*e)}),(function(t,e){return(e-t)/6e4}),(function(t){return t.getUTCMinutes()})),z=O.range,D=n((function(t){t.setUTCMinutes(0,0,0)}),(function(t,e){t.setTime(+t+36e5*e)}),(function(t,e){return(e-t)/36e5}),(function(t){return t.getUTCHours()})),R=D.range,F=n((function(t){t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+e)}),(function(t,e){return(e-t)/864e5}),(function(t){return t.getUTCDate()-1})),B=F.range;function N(t){return n((function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCDate(t.getUTCDate()+7*e)}),(function(t,e){return(e-t)/6048e5}))}var j=N(0),U=N(1),V=N(2),q=N(3),H=N(4),G=N(5),Y=N(6),W=j.range,X=U.range,Z=V.range,J=q.range,K=H.range,Q=G.range,$=Y.range,tt=n((function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCMonth(t.getUTCMonth()+e)}),(function(t,e){return e.getUTCMonth()-t.getUTCMonth()+12*(e.getUTCFullYear()-t.getUTCFullYear())}),(function(t){return t.getUTCMonth()})),et=tt.range,rt=n((function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),(function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)}),(function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()}),(function(t){return t.getUTCFullYear()}));rt.every=function(t){return isFinite(t=Math.floor(t))&&t>0?n((function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)}),(function(e,r){e.setUTCFullYear(e.getUTCFullYear()+r*t)})):null};var nt=rt.range;t.timeDay=h,t.timeDays=p,t.timeFriday=b,t.timeFridays=S,t.timeHour=u,t.timeHours=f,t.timeInterval=n,t.timeMillisecond=i,t.timeMilliseconds=a,t.timeMinute=l,t.timeMinutes=c,t.timeMonday=g,t.timeMondays=T,t.timeMonth=L,t.timeMonths=C,t.timeSaturday=_,t.timeSaturdays=E,t.timeSecond=o,t.timeSeconds=s,t.timeSunday=m,t.timeSundays=w,t.timeThursday=x,t.timeThursdays=A,t.timeTuesday=v,t.timeTuesdays=k,t.timeWednesday=y,t.timeWednesdays=M,t.timeWeek=m,t.timeWeeks=w,t.timeYear=P,t.timeYears=I,t.utcDay=F,t.utcDays=B,t.utcFriday=G,t.utcFridays=Q,t.utcHour=D,t.utcHours=R,t.utcMillisecond=i,t.utcMilliseconds=a,t.utcMinute=O,t.utcMinutes=z,t.utcMonday=U,t.utcMondays=X,t.utcMonth=tt,t.utcMonths=et,t.utcSaturday=Y,t.utcSaturdays=$,t.utcSecond=o,t.utcSeconds=s,t.utcSunday=j,t.utcSundays=W,t.utcThursday=H,t.utcThursdays=K,t.utcTuesday=V,t.utcTuesdays=Z,t.utcWednesday=q,t.utcWednesdays=J,t.utcWeek=j,t.utcWeeks=W,t.utcYear=rt,t.utcYears=nt,Object.defineProperty(t,"__esModule",{value:!0})}))},{}],169:[function(t,e,r){!function(t,n){"object"==typeof r&&void 0!==e?n(r):n((t=t||self).d3=t.d3||{})}(this,(function(t){"use strict";var e,r,n=0,i=0,a=0,o=0,s=0,l=0,c="object"==typeof performance&&performance.now?performance:Date,u="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function f(){return s||(u(h),s=c.now()+l)}function h(){s=0}function p(){this._call=this._time=this._next=null}function d(t,e,r){var n=new p;return n.restart(t,e,r),n}function m(){f(),++n;for(var t,r=e;r;)(t=s-r._time)>=0&&r._call.call(null,t),r=r._next;--n}function g(){s=(o=c.now())+l,n=i=0;try{m()}finally{n=0,function(){var t,n,i=e,a=1/0;for(;i;)i._call?(a>i._time&&(a=i._time),t=i,i=i._next):(n=i._next,i._next=null,i=t?t._next=n:e=n);r=t,y(a)}(),s=0}}function v(){var t=c.now(),e=t-o;e>1e3&&(l-=e,o=t)}function y(t){n||(i&&(i=clearTimeout(i)),t-s>24?(t<1/0&&(i=setTimeout(g,t-c.now()-l)),a&&(a=clearInterval(a))):(a||(o=c.now(),a=setInterval(v,1e3)),n=1,u(g)))}p.prototype=d.prototype={constructor:p,restart:function(t,n,i){if("function"!=typeof t)throw new TypeError("callback is not a function");i=(null==i?f():+i)+(null==n?0:+n),this._next||r===this||(r?r._next=this:e=this,r=this),this._call=t,this._time=i,y()},stop:function(){this._call&&(this._call=null,this._time=1/0,y())}},t.interval=function(t,e,r){var n=new p,i=e;return null==e?(n.restart(t,e,r),n):(e=+e,r=null==r?f():+r,n.restart((function a(o){o+=i,n.restart(a,i+=e,r),t(o)}),e,r),n)},t.now=f,t.timeout=function(t,e,r){var n=new p;return e=null==e?0:+e,n.restart((function(r){n.stop(),t(r+e)}),e,r),n},t.timer=d,t.timerFlush=m,Object.defineProperty(t,"__esModule",{value:!0})}))},{}],170:[function(t,e,r){e.exports=function(){for(var t=0;t=2)return!1;t[r]=n}return!0})):_.filter((function(t){for(var e=0;e<=s;++e){var r=v[t[e]];if(r<0)return!1;t[e]=r}return!0}));if(1&s)for(u=0;u<_.length;++u){h=(b=_[u])[0];b[0]=b[1],b[1]=h}return _}},{"incremental-convex-hull":437,uniq:611}],172:[function(t,e,r){"use strict";e.exports=a;var n=(a.canvas=document.createElement("canvas")).getContext("2d"),i=o([32,126]);function a(t,e){Array.isArray(t)&&(t=t.join(", "));var r,a={},s=16,l=.05;e&&(2===e.length&&"number"==typeof e[0]?r=o(e):Array.isArray(e)?r=e:(e.o?r=o(e.o):e.pairs&&(r=e.pairs),e.fontSize&&(s=e.fontSize),null!=e.threshold&&(l=e.threshold))),r||(r=i),n.font=s+"px "+t;for(var c=0;cs*l){var p=(h-f)/s;a[u]=1e3*p}}return a}function o(t){for(var e=[],r=t[0];r<=t[1];r++)for(var n=String.fromCharCode(r),i=t[0];i>>31},e.exports.exponent=function(t){return(e.exports.hi(t)<<1>>>21)-1023},e.exports.fraction=function(t){var r=e.exports.lo(t),n=e.exports.hi(t),i=1048575&n;return 2146435072&n&&(i+=1<<20),[r,i]},e.exports.denormalized=function(t){return!(2146435072&e.exports.hi(t))}}).call(this)}).call(this,t("buffer").Buffer)},{buffer:112}],174:[function(t,e,r){var n=t("abs-svg-path"),i=t("normalize-svg-path"),a={M:"moveTo",C:"bezierCurveTo"};e.exports=function(t,e){t.beginPath(),i(n(e)).forEach((function(e){var r=e[0],n=e.slice(1);t[a[r]].apply(t,n)})),t.closePath()}},{"abs-svg-path":66,"normalize-svg-path":477}],175:[function(t,e,r){e.exports=function(t){switch(t){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}}},{}],176:[function(t,e,r){"use strict";e.exports=function(t,e){switch(void 0===e&&(e=0),typeof t){case"number":if(t>0)return function(t,e){var r,n;for(r=new Array(t),n=0;n80*r){n=l=t[0],s=c=t[1];for(var b=r;bl&&(l=u),p>c&&(c=p);d=0!==(d=Math.max(l-n,c-s))?1/d:0}return o(y,x,r,n,s,d),x}function i(t,e,r,n,i){var a,o;if(i===E(t,e,r,n)>0)for(a=e;a=e;a-=n)o=M(a,t[a],t[a+1],o);return o&&x(o,o.next)&&(A(o),o=o.next),o}function a(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!x(n,n.next)&&0!==y(n.prev,n,n.next))n=n.next;else{if(A(n),(n=e=n.prev)===n.next)break;r=!0}}while(r||n!==e);return e}function o(t,e,r,n,i,f,h){if(t){!h&&f&&function(t,e,r,n){var i=t;do{null===i.z&&(i.z=d(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,r,n,i,a,o,s,l,c=1;do{for(r=t,t=null,a=null,o=0;r;){for(o++,n=r,s=0,e=0;e0||l>0&&n;)0!==s&&(0===l||!n||r.z<=n.z)?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,l--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;r=n}a.nextZ=null,c*=2}while(o>1)}(i)}(t,n,i,f);for(var p,m,g=t;t.prev!==t.next;)if(p=t.prev,m=t.next,f?l(t,n,i,f):s(t))e.push(p.i/r),e.push(t.i/r),e.push(m.i/r),A(t),t=m.next,g=m.next;else if((t=m)===g){h?1===h?o(t=c(a(t),e,r),e,r,n,i,f,2):2===h&&u(t,e,r,n,i,f):o(a(t),e,r,n,i,f,1);break}}}function s(t){var e=t.prev,r=t,n=t.next;if(y(e,r,n)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(g(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&y(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function l(t,e,r,n){var i=t.prev,a=t,o=t.next;if(y(i,a,o)>=0)return!1;for(var s=i.xa.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,u=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=d(s,l,e,r,n),h=d(c,u,e,r,n),p=t.prevZ,m=t.nextZ;p&&p.z>=f&&m&&m.z<=h;){if(p!==t.prev&&p!==t.next&&g(i.x,i.y,a.x,a.y,o.x,o.y,p.x,p.y)&&y(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,m!==t.prev&&m!==t.next&&g(i.x,i.y,a.x,a.y,o.x,o.y,m.x,m.y)&&y(m.prev,m,m.next)>=0)return!1;m=m.nextZ}for(;p&&p.z>=f;){if(p!==t.prev&&p!==t.next&&g(i.x,i.y,a.x,a.y,o.x,o.y,p.x,p.y)&&y(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;m&&m.z<=h;){if(m!==t.prev&&m!==t.next&&g(i.x,i.y,a.x,a.y,o.x,o.y,m.x,m.y)&&y(m.prev,m,m.next)>=0)return!1;m=m.nextZ}return!0}function c(t,e,r){var n=t;do{var i=n.prev,o=n.next.next;!x(i,o)&&b(i,n,n.next,o)&&T(i,o)&&T(o,i)&&(e.push(i.i/r),e.push(n.i/r),e.push(o.i/r),A(n),A(n.next),n=t=o),n=n.next}while(n!==t);return a(n)}function u(t,e,r,n,i,s){var l=t;do{for(var c=l.next.next;c!==l.prev;){if(l.i!==c.i&&v(l,c)){var u=k(l,c);return l=a(l,l.next),u=a(u,u.next),o(l,e,r,n,i,s),void o(u,e,r,n,i,s)}c=c.next}l=l.next}while(l!==t)}function f(t,e){return t.x-e.x}function h(t,e){if(e=function(t,e){var r,n=e,i=t.x,a=t.y,o=-1/0;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){var s=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=i&&s>o){if(o=s,s===i){if(a===n.y)return n;if(a===n.next.y)return n.next}r=n.x=n.x&&n.x>=u&&i!==n.x&&g(ar.x||n.x===r.x&&p(r,n)))&&(r=n,h=l)),n=n.next}while(n!==c);return r}(t,e)){var r=k(e,t);a(e,e.next),a(r,r.next)}}function p(t,e){return y(t.prev,t,e.prev)<0&&y(e.next,t,t.next)<0}function d(t,e,r,n,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function m(t){var e=t,r=t;do{(e.x=0&&(t-o)*(n-s)-(r-o)*(e-s)>=0&&(r-o)*(a-s)-(i-o)*(n-s)>=0}function v(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&b(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}(t,e)&&(T(t,e)&&T(e,t)&&function(t,e){var r=t,n=!1,i=(t.x+e.x)/2,a=(t.y+e.y)/2;do{r.y>a!=r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==t);return n}(t,e)&&(y(t.prev,t,e.prev)||y(t,e.prev,e))||x(t,e)&&y(t.prev,t,t.next)>0&&y(e.prev,e,e.next)>0)}function y(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function x(t,e){return t.x===e.x&&t.y===e.y}function b(t,e,r,n){var i=w(y(t,e,r)),a=w(y(t,e,n)),o=w(y(r,n,t)),s=w(y(r,n,e));return i!==a&&o!==s||(!(0!==i||!_(t,r,e))||(!(0!==a||!_(t,n,e))||(!(0!==o||!_(r,t,n))||!(0!==s||!_(r,e,n)))))}function _(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function w(t){return t>0?1:t<0?-1:0}function T(t,e){return y(t.prev,t,t.next)<0?y(t,e,t.next)>=0&&y(t,t.prev,e)>=0:y(t,e,t.prev)<0||y(t,t.next,e)<0}function k(t,e){var r=new S(t.i,t.x,t.y),n=new S(e.i,e.x,e.y),i=t.next,a=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function M(t,e,r,n){var i=new S(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function A(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function S(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function E(t,e,r,n){for(var i=0,a=e,o=r-n;a0&&(n+=t[i-1].length,r.holes.push(n))}return r}},{}],178:[function(t,e,r){"use strict";e.exports=function(t,e){var r=t.length;if("number"!=typeof e){e=0;for(var i=0;i=e}))}(e);for(var r,i=n(t).components.filter((function(t){return t.length>1})),a=1/0,o=0;o=55296&&y<=56319&&(w+=t[++r]),w=T?h.call(T,k,w,m):w,e?(p.value=w,d(g,m,p)):g[m]=w,++m;v=m}if(void 0===v)for(v=o(t.length),e&&(g=new e(v)),r=0;r0?1:-1}},{}],190:[function(t,e,r){"use strict";var n=t("../math/sign"),i=Math.abs,a=Math.floor;e.exports=function(t){return isNaN(t)?0:0!==(t=Number(t))&&isFinite(t)?n(t)*a(i(t)):t}},{"../math/sign":187}],191:[function(t,e,r){"use strict";var n=t("./to-integer"),i=Math.max;e.exports=function(t){return i(0,n(t))}},{"./to-integer":190}],192:[function(t,e,r){"use strict";var n=t("./valid-callable"),i=t("./valid-value"),a=Function.prototype.bind,o=Function.prototype.call,s=Object.keys,l=Object.prototype.propertyIsEnumerable;e.exports=function(t,e){return function(r,c){var u,f=arguments[2],h=arguments[3];return r=Object(i(r)),n(c),u=s(r),h&&u.sort("function"==typeof h?a.call(h,r):void 0),"function"!=typeof t&&(t=u[t]),o.call(t,u,(function(t,n){return l.call(r,t)?o.call(c,f,r[t],t,r,n):e}))}}},{"./valid-callable":209,"./valid-value":211}],193:[function(t,e,r){"use strict";e.exports=t("./is-implemented")()?Object.assign:t("./shim")},{"./is-implemented":194,"./shim":195}],194:[function(t,e,r){"use strict";e.exports=function(){var t,e=Object.assign;return"function"==typeof e&&(e(t={foo:"raz"},{bar:"dwa"},{trzy:"trzy"}),t.foo+t.bar+t.trzy==="razdwatrzy")}},{}],195:[function(t,e,r){"use strict";var n=t("../keys"),i=t("../valid-value"),a=Math.max;e.exports=function(t,e){var r,o,s,l=a(arguments.length,2);for(t=Object(i(t)),s=function(n){try{t[n]=e[n]}catch(t){r||(r=t)}},o=1;o-1}},{}],215:[function(t,e,r){"use strict";var n=Object.prototype.toString,i=n.call("");e.exports=function(t){return"string"==typeof t||t&&"object"==typeof t&&(t instanceof String||n.call(t)===i)||!1}},{}],216:[function(t,e,r){"use strict";var n=Object.create(null),i=Math.random;e.exports=function(){var t;do{t=i().toString(36).slice(2)}while(n[t]);return t}},{}],217:[function(t,e,r){"use strict";var n,i=t("es5-ext/object/set-prototype-of"),a=t("es5-ext/string/#/contains"),o=t("d"),s=t("es6-symbol"),l=t("./"),c=Object.defineProperty;n=e.exports=function(t,e){if(!(this instanceof n))throw new TypeError("Constructor requires 'new'");l.call(this,t),e=e?a.call(e,"key+value")?"key+value":a.call(e,"key")?"key":"value":"value",c(this,"__kind__",o("",e))},i&&i(n,l),delete n.prototype.constructor,n.prototype=Object.create(l.prototype,{_resolve:o((function(t){return"value"===this.__kind__?this.__list__[t]:"key+value"===this.__kind__?[t,this.__list__[t]]:t}))}),c(n.prototype,s.toStringTag,o("c","Array Iterator"))},{"./":220,d:156,"es5-ext/object/set-prototype-of":206,"es5-ext/string/#/contains":212,"es6-symbol":224}],218:[function(t,e,r){"use strict";var n=t("es5-ext/function/is-arguments"),i=t("es5-ext/object/valid-callable"),a=t("es5-ext/string/is-string"),o=t("./get"),s=Array.isArray,l=Function.prototype.call,c=Array.prototype.some;e.exports=function(t,e){var r,u,f,h,p,d,m,g,v=arguments[2];if(s(t)||n(t)?r="array":a(t)?r="string":t=o(t),i(e),f=function(){h=!0},"array"!==r)if("string"!==r)for(u=t.next();!u.done;){if(l.call(e,v,u.value,f),h)return;u=t.next()}else for(d=t.length,p=0;p=55296&&g<=56319&&(m+=t[++p]),l.call(e,v,m,f),!h);++p);else c.call(t,(function(t){return l.call(e,v,t,f),h}))}},{"./get":219,"es5-ext/function/is-arguments":184,"es5-ext/object/valid-callable":209,"es5-ext/string/is-string":215}],219:[function(t,e,r){"use strict";var n=t("es5-ext/function/is-arguments"),i=t("es5-ext/string/is-string"),a=t("./array"),o=t("./string"),s=t("./valid-iterable"),l=t("es6-symbol").iterator;e.exports=function(t){return"function"==typeof s(t)[l]?t[l]():n(t)?new a(t):i(t)?new o(t):new a(t)}},{"./array":217,"./string":222,"./valid-iterable":223,"es5-ext/function/is-arguments":184,"es5-ext/string/is-string":215,"es6-symbol":224}],220:[function(t,e,r){"use strict";var n,i=t("es5-ext/array/#/clear"),a=t("es5-ext/object/assign"),o=t("es5-ext/object/valid-callable"),s=t("es5-ext/object/valid-value"),l=t("d"),c=t("d/auto-bind"),u=t("es6-symbol"),f=Object.defineProperty,h=Object.defineProperties;e.exports=n=function(t,e){if(!(this instanceof n))throw new TypeError("Constructor requires 'new'");h(this,{__list__:l("w",s(t)),__context__:l("w",e),__nextIndex__:l("w",0)}),e&&(o(e.on),e.on("_add",this._onAdd),e.on("_delete",this._onDelete),e.on("_clear",this._onClear))},delete n.prototype.constructor,h(n.prototype,a({_next:l((function(){var t;if(this.__list__)return this.__redo__&&void 0!==(t=this.__redo__.shift())?t:this.__nextIndex__=this.__nextIndex__||(++this.__nextIndex__,this.__redo__?(this.__redo__.forEach((function(e,r){e>=t&&(this.__redo__[r]=++e)}),this),this.__redo__.push(t)):f(this,"__redo__",l("c",[t])))})),_onDelete:l((function(t){var e;t>=this.__nextIndex__||(--this.__nextIndex__,this.__redo__&&(-1!==(e=this.__redo__.indexOf(t))&&this.__redo__.splice(e,1),this.__redo__.forEach((function(e,r){e>t&&(this.__redo__[r]=--e)}),this)))})),_onClear:l((function(){this.__redo__&&i.call(this.__redo__),this.__nextIndex__=0}))}))),f(n.prototype,u.iterator,l((function(){return this})))},{d:156,"d/auto-bind":155,"es5-ext/array/#/clear":180,"es5-ext/object/assign":193,"es5-ext/object/valid-callable":209,"es5-ext/object/valid-value":211,"es6-symbol":224}],221:[function(t,e,r){"use strict";var n=t("es5-ext/function/is-arguments"),i=t("es5-ext/object/is-value"),a=t("es5-ext/string/is-string"),o=t("es6-symbol").iterator,s=Array.isArray;e.exports=function(t){return!!i(t)&&(!!s(t)||(!!a(t)||(!!n(t)||"function"==typeof t[o])))}},{"es5-ext/function/is-arguments":184,"es5-ext/object/is-value":200,"es5-ext/string/is-string":215,"es6-symbol":224}],222:[function(t,e,r){"use strict";var n,i=t("es5-ext/object/set-prototype-of"),a=t("d"),o=t("es6-symbol"),s=t("./"),l=Object.defineProperty;n=e.exports=function(t){if(!(this instanceof n))throw new TypeError("Constructor requires 'new'");t=String(t),s.call(this,t),l(this,"__length__",a("",t.length))},i&&i(n,s),delete n.prototype.constructor,n.prototype=Object.create(s.prototype,{_next:a((function(){if(this.__list__)return this.__nextIndex__=55296&&e<=56319?r+this.__list__[this.__nextIndex__++]:r}))}),l(n.prototype,o.toStringTag,a("c","String Iterator"))},{"./":220,d:156,"es5-ext/object/set-prototype-of":206,"es6-symbol":224}],223:[function(t,e,r){"use strict";var n=t("./is-iterable");e.exports=function(t){if(!n(t))throw new TypeError(t+" is not iterable");return t}},{"./is-iterable":221}],224:[function(t,e,r){"use strict";e.exports=t("./is-implemented")()?t("ext/global-this").Symbol:t("./polyfill")},{"./is-implemented":225,"./polyfill":230,"ext/global-this":237}],225:[function(t,e,r){"use strict";var n=t("ext/global-this"),i={object:!0,symbol:!0};e.exports=function(){var t,e=n.Symbol;if("function"!=typeof e)return!1;t=e("test symbol");try{String(t)}catch(t){return!1}return!!i[typeof e.iterator]&&(!!i[typeof e.toPrimitive]&&!!i[typeof e.toStringTag])}},{"ext/global-this":237}],226:[function(t,e,r){"use strict";e.exports=function(t){return!!t&&("symbol"==typeof t||!!t.constructor&&("Symbol"===t.constructor.name&&"Symbol"===t[t.constructor.toStringTag]))}},{}],227:[function(t,e,r){"use strict";var n=t("d"),i=Object.create,a=Object.defineProperty,o=Object.prototype,s=i(null);e.exports=function(t){for(var e,r,i=0;s[t+(i||"")];)++i;return s[t+=i||""]=!0,a(o,e="@@"+t,n.gs(null,(function(t){r||(r=!0,a(this,e,n(t)),r=!1)}))),e}},{d:156}],228:[function(t,e,r){"use strict";var n=t("d"),i=t("ext/global-this").Symbol;e.exports=function(t){return Object.defineProperties(t,{hasInstance:n("",i&&i.hasInstance||t("hasInstance")),isConcatSpreadable:n("",i&&i.isConcatSpreadable||t("isConcatSpreadable")),iterator:n("",i&&i.iterator||t("iterator")),match:n("",i&&i.match||t("match")),replace:n("",i&&i.replace||t("replace")),search:n("",i&&i.search||t("search")),species:n("",i&&i.species||t("species")),split:n("",i&&i.split||t("split")),toPrimitive:n("",i&&i.toPrimitive||t("toPrimitive")),toStringTag:n("",i&&i.toStringTag||t("toStringTag")),unscopables:n("",i&&i.unscopables||t("unscopables"))})}},{d:156,"ext/global-this":237}],229:[function(t,e,r){"use strict";var n=t("d"),i=t("../../../validate-symbol"),a=Object.create(null);e.exports=function(t){return Object.defineProperties(t,{for:n((function(e){return a[e]?a[e]:a[e]=t(String(e))})),keyFor:n((function(t){var e;for(e in i(t),a)if(a[e]===t)return e}))})}},{"../../../validate-symbol":231,d:156}],230:[function(t,e,r){"use strict";var n,i,a,o=t("d"),s=t("./validate-symbol"),l=t("ext/global-this").Symbol,c=t("./lib/private/generate-name"),u=t("./lib/private/setup/standard-symbols"),f=t("./lib/private/setup/symbol-registry"),h=Object.create,p=Object.defineProperties,d=Object.defineProperty;if("function"==typeof l)try{String(l()),a=!0}catch(t){}else l=null;i=function(t){if(this instanceof i)throw new TypeError("Symbol is not a constructor");return n(t)},e.exports=n=function t(e){var r;if(this instanceof t)throw new TypeError("Symbol is not a constructor");return a?l(e):(r=h(i.prototype),e=void 0===e?"":String(e),p(r,{__description__:o("",e),__name__:o("",c(e))}))},u(n),f(n),p(i.prototype,{constructor:o(n),toString:o("",(function(){return this.__name__}))}),p(n.prototype,{toString:o((function(){return"Symbol ("+s(this).__description__+")"})),valueOf:o((function(){return s(this)}))}),d(n.prototype,n.toPrimitive,o("",(function(){var t=s(this);return"symbol"==typeof t?t:t.toString()}))),d(n.prototype,n.toStringTag,o("c","Symbol")),d(i.prototype,n.toStringTag,o("c",n.prototype[n.toStringTag])),d(i.prototype,n.toPrimitive,o("c",n.prototype[n.toPrimitive]))},{"./lib/private/generate-name":227,"./lib/private/setup/standard-symbols":228,"./lib/private/setup/symbol-registry":229,"./validate-symbol":231,d:156,"ext/global-this":237}],231:[function(t,e,r){"use strict";var n=t("./is-symbol");e.exports=function(t){if(!n(t))throw new TypeError(t+" is not a symbol");return t}},{"./is-symbol":226}],232:[function(t,e,r){"use strict";e.exports=t("./is-implemented")()?WeakMap:t("./polyfill")},{"./is-implemented":233,"./polyfill":235}],233:[function(t,e,r){"use strict";e.exports=function(){var t,e;if("function"!=typeof WeakMap)return!1;try{t=new WeakMap([[e={},"one"],[{},"two"],[{},"three"]])}catch(t){return!1}return"[object WeakMap]"===String(t)&&("function"==typeof t.set&&(t.set({},1)===t&&("function"==typeof t.delete&&("function"==typeof t.has&&"one"===t.get(e)))))}},{}],234:[function(t,e,r){"use strict";e.exports="function"==typeof WeakMap&&"[object WeakMap]"===Object.prototype.toString.call(new WeakMap)},{}],235:[function(t,e,r){"use strict";var n,i=t("es5-ext/object/is-value"),a=t("es5-ext/object/set-prototype-of"),o=t("es5-ext/object/valid-object"),s=t("es5-ext/object/valid-value"),l=t("es5-ext/string/random-uniq"),c=t("d"),u=t("es6-iterator/get"),f=t("es6-iterator/for-of"),h=t("es6-symbol").toStringTag,p=t("./is-native-implemented"),d=Array.isArray,m=Object.defineProperty,g=Object.prototype.hasOwnProperty,v=Object.getPrototypeOf;e.exports=n=function(){var t,e=arguments[0];if(!(this instanceof n))throw new TypeError("Constructor requires 'new'");return t=p&&a&&WeakMap!==n?a(new WeakMap,v(this)):this,i(e)&&(d(e)||(e=u(e))),m(t,"__weakMapData__",c("c","$weakMap$"+l())),e?(f(e,(function(e){s(e),t.set(e[0],e[1])})),t):t},p&&(a&&a(n,WeakMap),n.prototype=Object.create(WeakMap.prototype,{constructor:c(n)})),Object.defineProperties(n.prototype,{delete:c((function(t){return!!g.call(o(t),this.__weakMapData__)&&(delete t[this.__weakMapData__],!0)})),get:c((function(t){if(g.call(o(t),this.__weakMapData__))return t[this.__weakMapData__]})),has:c((function(t){return g.call(o(t),this.__weakMapData__)})),set:c((function(t,e){return m(o(t),this.__weakMapData__,c("c",e)),this})),toString:c((function(){return"[object WeakMap]"}))}),m(n.prototype,h,c("c","WeakMap"))},{"./is-native-implemented":234,d:156,"es5-ext/object/is-value":200,"es5-ext/object/set-prototype-of":206,"es5-ext/object/valid-object":210,"es5-ext/object/valid-value":211,"es5-ext/string/random-uniq":216,"es6-iterator/for-of":218,"es6-iterator/get":219,"es6-symbol":224}],236:[function(t,e,r){var n=function(){if("object"==typeof self&&self)return self;if("object"==typeof window&&window)return window;throw new Error("Unable to resolve global `this`")};e.exports=function(){if(this)return this;try{Object.defineProperty(Object.prototype,"__global__",{get:function(){return this},configurable:!0})}catch(t){return n()}try{return __global__||n()}finally{delete Object.prototype.__global__}}()},{}],237:[function(t,e,r){"use strict";e.exports=t("./is-implemented")()?globalThis:t("./implementation")},{"./implementation":236,"./is-implemented":238}],238:[function(t,e,r){"use strict";e.exports=function(){return"object"==typeof globalThis&&(!!globalThis&&globalThis.Array===Array)}},{}],239:[function(t,e,r){"use strict";e.exports=function(t,e,r){var n=e||0,i=r||1;return[[t[12]+t[0],t[13]+t[1],t[14]+t[2],t[15]+t[3]],[t[12]-t[0],t[13]-t[1],t[14]-t[2],t[15]-t[3]],[t[12]+t[4],t[13]+t[5],t[14]+t[6],t[15]+t[7]],[t[12]-t[4],t[13]-t[5],t[14]-t[6],t[15]-t[7]],[n*t[12]+t[8],n*t[13]+t[9],n*t[14]+t[10],n*t[15]+t[11]],[i*t[12]-t[8],i*t[13]-t[9],i*t[14]-t[10],i*t[15]-t[11]]]}},{}],240:[function(t,e,r){"use strict";var n=t("is-string-blank");e.exports=function(t){var e=typeof t;if("string"===e){var r=t;if(0===(t=+t)&&n(r))return!1}else if("number"!==e)return!1;return t-t<1}},{"is-string-blank":449}],241:[function(t,e,r){"use strict";e.exports=function(t,e,r){switch(arguments.length){case 0:return new o([0],[0],0);case 1:return"number"==typeof t?new o(n=l(t),n,0):new o(t,l(t.length),0);case 2:if("number"==typeof e){var n=l(t.length);return new o(t,n,+e)}r=0;case 3:if(t.length!==e.length)throw new Error("state and velocity lengths must match");return new o(t,e,r)}};var n=t("cubic-hermite"),i=t("binary-search-bounds");function a(t,e,r){return Math.min(e,Math.max(t,r))}function o(t,e,r){this.dimension=t.length,this.bounds=[new Array(this.dimension),new Array(this.dimension)];for(var n=0;n=r-1){h=l.length-1;var d=t-e[r-1];for(p=0;p=r-1)for(var u=s.length-1,f=(e[r-1],0);f=0;--r)if(t[--e])return!1;return!0},s.jump=function(t){var e=this.lastT(),r=this.dimension;if(!(t0;--f)n.push(a(l[f-1],c[f-1],arguments[f])),i.push(0)}},s.push=function(t){var e=this.lastT(),r=this.dimension;if(!(t1e-6?1/s:0;this._time.push(t);for(var h=r;h>0;--h){var p=a(c[h-1],u[h-1],arguments[h]);n.push(p),i.push((p-n[o++])*f)}}},s.set=function(t){var e=this.dimension;if(!(t0;--l)r.push(a(o[l-1],s[l-1],arguments[l])),n.push(0)}},s.move=function(t){var e=this.lastT(),r=this.dimension;if(!(t<=e||arguments.length!==r+1)){var n=this._state,i=this._velocity,o=n.length-this.dimension,s=this.bounds,l=s[0],c=s[1],u=t-e,f=u>1e-6?1/u:0;this._time.push(t);for(var h=r;h>0;--h){var p=arguments[h];n.push(a(l[h-1],c[h-1],n[o++]+p)),i.push(p*f)}}},s.idle=function(t){var e=this.lastT();if(!(t=0;--f)n.push(a(l[f],c[f],n[o]+u*i[o])),i.push(0),o+=1}}},{"binary-search-bounds":242,"cubic-hermite":151}],242:[function(t,e,r){"use strict";function n(t,e,r,n,i,a){var o=["function ",t,"(a,l,h,",n.join(","),"){",a?"":"var i=",r?"l-1":"h+1",";while(l<=h){var m=(l+h)>>>1,x=a",i?".get(m)":"[m]"];return a?e.indexOf("c")<0?o.push(";if(x===y){return m}else if(x<=y){"):o.push(";var p=c(x,y);if(p===0){return m}else if(p<=0){"):o.push(";if(",e,"){i=m;"),r?o.push("l=m+1}else{h=m-1}"):o.push("h=m-1}else{l=m+1}"),o.push("}"),a?o.push("return -1};"):o.push("return i};"),o.join("")}function i(t,e,r,i){return new Function([n("A","x"+t+"y",e,["y"],!1,i),n("B","x"+t+"y",e,["y"],!0,i),n("P","c(x,y)"+t+"0",e,["y","c"],!1,i),n("Q","c(x,y)"+t+"0",e,["y","c"],!0,i),"function dispatchBsearch",r,"(a,y,c,l,h){if(a.shape){if(typeof(c)==='function'){return Q(a,(l===undefined)?0:l|0,(h===undefined)?a.shape[0]-1:h|0,y,c)}else{return B(a,(c===undefined)?0:c|0,(l===undefined)?a.shape[0]-1:l|0,y)}}else{if(typeof(c)==='function'){return P(a,(l===undefined)?0:l|0,(h===undefined)?a.length-1:h|0,y,c)}else{return A(a,(c===undefined)?0:c|0,(l===undefined)?a.length-1:l|0,y)}}}return dispatchBsearch",r].join(""))()}e.exports={ge:i(">=",!1,"GE"),gt:i(">",!1,"GT"),lt:i("<",!0,"LT"),le:i("<=",!0,"LE"),eq:i("-",!0,"EQ",!0)}},{}],243:[function(t,e,r){var n=t("dtype");e.exports=function(t,e,r){if(!t)throw new TypeError("must specify data as first parameter");if(r=0|+(r||0),Array.isArray(t)&&t[0]&&"number"==typeof t[0][0]){var i,a,o,s,l=t[0].length,c=t.length*l;e&&"string"!=typeof e||(e=new(n(e||"float32"))(c+r));var u=e.length-r;if(c!==u)throw new Error("source length "+c+" ("+l+"x"+t.length+") does not match destination length "+u);for(i=0,o=r;ie[0]-o[0]/2&&(h=o[0]/2,p+=o[1]);return r}},{"css-font/stringify":148}],245:[function(t,e,r){"use strict";function n(t,e){e||(e={}),("string"==typeof t||Array.isArray(t))&&(e.family=t);var r=Array.isArray(e.family)?e.family.join(", "):e.family;if(!r)throw Error("`family` must be defined");var s=e.size||e.fontSize||e.em||48,l=e.weight||e.fontWeight||"",c=(t=[e.style||e.fontStyle||"",l,s].join(" ")+"px "+r,e.origin||"top");if(n.cache[r]&&s<=n.cache[r].em)return i(n.cache[r],c);var u=e.canvas||n.canvas,f=u.getContext("2d"),h={upper:void 0!==e.upper?e.upper:"H",lower:void 0!==e.lower?e.lower:"x",descent:void 0!==e.descent?e.descent:"p",ascent:void 0!==e.ascent?e.ascent:"h",tittle:void 0!==e.tittle?e.tittle:"i",overshoot:void 0!==e.overshoot?e.overshoot:"O"},p=Math.ceil(1.5*s);u.height=p,u.width=.5*p,f.font=t;var d={top:0};f.clearRect(0,0,p,p),f.textBaseline="top",f.fillStyle="black",f.fillText("H",0,0);var m=a(f.getImageData(0,0,p,p));f.clearRect(0,0,p,p),f.textBaseline="bottom",f.fillText("H",0,p);var g=a(f.getImageData(0,0,p,p));d.lineHeight=d.bottom=p-g+m,f.clearRect(0,0,p,p),f.textBaseline="alphabetic",f.fillText("H",0,p);var v=p-a(f.getImageData(0,0,p,p))-1+m;d.baseline=d.alphabetic=v,f.clearRect(0,0,p,p),f.textBaseline="middle",f.fillText("H",0,.5*p);var y=a(f.getImageData(0,0,p,p));d.median=d.middle=p-y-1+m-.5*p,f.clearRect(0,0,p,p),f.textBaseline="hanging",f.fillText("H",0,.5*p);var x=a(f.getImageData(0,0,p,p));d.hanging=p-x-1+m-.5*p,f.clearRect(0,0,p,p),f.textBaseline="ideographic",f.fillText("H",0,p);var b=a(f.getImageData(0,0,p,p));if(d.ideographic=p-b-1+m,h.upper&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.upper,0,0),d.upper=a(f.getImageData(0,0,p,p)),d.capHeight=d.baseline-d.upper),h.lower&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.lower,0,0),d.lower=a(f.getImageData(0,0,p,p)),d.xHeight=d.baseline-d.lower),h.tittle&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.tittle,0,0),d.tittle=a(f.getImageData(0,0,p,p))),h.ascent&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.ascent,0,0),d.ascent=a(f.getImageData(0,0,p,p))),h.descent&&(f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.descent,0,0),d.descent=o(f.getImageData(0,0,p,p))),h.overshoot){f.clearRect(0,0,p,p),f.textBaseline="top",f.fillText(h.overshoot,0,0);var _=o(f.getImageData(0,0,p,p));d.overshoot=_-v}for(var w in d)d[w]/=s;return d.em=s,n.cache[r]=d,i(d,c)}function i(t,e){var r={};for(var n in"string"==typeof e&&(e=t[e]),t)"em"!==n&&(r[n]=t[n]-e);return r}function a(t){for(var e=t.height,r=t.data,n=3;n0;n-=4)if(0!==r[n])return Math.floor(.25*(n-3)/e)}e.exports=n,n.canvas=document.createElement("canvas"),n.cache={}},{}],246:[function(t,e,r){"use strict";e.exports=function(t){return new s(t||m,null)};function n(t,e,r,n,i,a){this._color=t,this.key=e,this.value=r,this.left=n,this.right=i,this._count=a}function i(t){return new n(t._color,t.key,t.value,t.left,t.right,t._count)}function a(t,e){return new n(t,e.key,e.value,e.left,e.right,e._count)}function o(t){t._count=1+(t.left?t.left._count:0)+(t.right?t.right._count:0)}function s(t,e){this._compare=t,this.root=e}var l=s.prototype;function c(t,e){var r;if(e.left&&(r=c(t,e.left)))return r;return(r=t(e.key,e.value))||(e.right?c(t,e.right):void 0)}function u(t,e,r,n){if(e(t,n.key)<=0){var i;if(n.left)if(i=u(t,e,r,n.left))return i;if(i=r(n.key,n.value))return i}if(n.right)return u(t,e,r,n.right)}function f(t,e,r,n,i){var a,o=r(t,i.key),s=r(e,i.key);if(o<=0){if(i.left&&(a=f(t,e,r,n,i.left)))return a;if(s>0&&(a=n(i.key,i.value)))return a}if(s>0&&i.right)return f(t,e,r,n,i.right)}function h(t,e){this.tree=t,this._stack=e}Object.defineProperty(l,"keys",{get:function(){var t=[];return this.forEach((function(e,r){t.push(e)})),t}}),Object.defineProperty(l,"values",{get:function(){var t=[];return this.forEach((function(e,r){t.push(r)})),t}}),Object.defineProperty(l,"length",{get:function(){return this.root?this.root._count:0}}),l.insert=function(t,e){for(var r=this._compare,i=this.root,l=[],c=[];i;){var u=r(t,i.key);l.push(i),c.push(u),i=u<=0?i.left:i.right}l.push(new n(0,t,e,null,null,1));for(var f=l.length-2;f>=0;--f){i=l[f];c[f]<=0?l[f]=new n(i._color,i.key,i.value,l[f+1],i.right,i._count+1):l[f]=new n(i._color,i.key,i.value,i.left,l[f+1],i._count+1)}for(f=l.length-1;f>1;--f){var h=l[f-1];i=l[f];if(1===h._color||1===i._color)break;var p=l[f-2];if(p.left===h)if(h.left===i){if(!(d=p.right)||0!==d._color){if(p._color=0,p.left=h.right,h._color=1,h.right=p,l[f-2]=h,l[f-1]=i,o(p),o(h),f>=3)(m=l[f-3]).left===p?m.left=h:m.right=h;break}h._color=1,p.right=a(1,d),p._color=0,f-=1}else{if(!(d=p.right)||0!==d._color){if(h.right=i.left,p._color=0,p.left=i.right,i._color=1,i.left=h,i.right=p,l[f-2]=i,l[f-1]=h,o(p),o(h),o(i),f>=3)(m=l[f-3]).left===p?m.left=i:m.right=i;break}h._color=1,p.right=a(1,d),p._color=0,f-=1}else if(h.right===i){if(!(d=p.left)||0!==d._color){if(p._color=0,p.right=h.left,h._color=1,h.left=p,l[f-2]=h,l[f-1]=i,o(p),o(h),f>=3)(m=l[f-3]).right===p?m.right=h:m.left=h;break}h._color=1,p.left=a(1,d),p._color=0,f-=1}else{var d;if(!(d=p.left)||0!==d._color){var m;if(h.left=i.right,p._color=0,p.right=i.left,i._color=1,i.right=h,i.left=p,l[f-2]=i,l[f-1]=h,o(p),o(h),o(i),f>=3)(m=l[f-3]).right===p?m.right=i:m.left=i;break}h._color=1,p.left=a(1,d),p._color=0,f-=1}}return l[0]._color=1,new s(r,l[0])},l.forEach=function(t,e,r){if(this.root)switch(arguments.length){case 1:return c(t,this.root);case 2:return u(e,this._compare,t,this.root);case 3:if(this._compare(e,r)>=0)return;return f(e,r,this._compare,t,this.root)}},Object.defineProperty(l,"begin",{get:function(){for(var t=[],e=this.root;e;)t.push(e),e=e.left;return new h(this,t)}}),Object.defineProperty(l,"end",{get:function(){for(var t=[],e=this.root;e;)t.push(e),e=e.right;return new h(this,t)}}),l.at=function(t){if(t<0)return new h(this,[]);for(var e=this.root,r=[];;){if(r.push(e),e.left){if(t=e.right._count)break;e=e.right}return new h(this,[])},l.ge=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a<=0&&(i=n.length),r=a<=0?r.left:r.right}return n.length=i,new h(this,n)},l.gt=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a<0&&(i=n.length),r=a<0?r.left:r.right}return n.length=i,new h(this,n)},l.lt=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a>0&&(i=n.length),r=a<=0?r.left:r.right}return n.length=i,new h(this,n)},l.le=function(t){for(var e=this._compare,r=this.root,n=[],i=0;r;){var a=e(t,r.key);n.push(r),a>=0&&(i=n.length),r=a<0?r.left:r.right}return n.length=i,new h(this,n)},l.find=function(t){for(var e=this._compare,r=this.root,n=[];r;){var i=e(t,r.key);if(n.push(r),0===i)return new h(this,n);r=i<=0?r.left:r.right}return new h(this,[])},l.remove=function(t){var e=this.find(t);return e?e.remove():this},l.get=function(t){for(var e=this._compare,r=this.root;r;){var n=e(t,r.key);if(0===n)return r.value;r=n<=0?r.left:r.right}};var p=h.prototype;function d(t,e){t.key=e.key,t.value=e.value,t.left=e.left,t.right=e.right,t._color=e._color,t._count=e._count}function m(t,e){return te?1:0}Object.defineProperty(p,"valid",{get:function(){return this._stack.length>0}}),Object.defineProperty(p,"node",{get:function(){return this._stack.length>0?this._stack[this._stack.length-1]:null},enumerable:!0}),p.clone=function(){return new h(this.tree,this._stack.slice())},p.remove=function(){var t=this._stack;if(0===t.length)return this.tree;var e=new Array(t.length),r=t[t.length-1];e[e.length-1]=new n(r._color,r.key,r.value,r.left,r.right,r._count);for(var l=t.length-2;l>=0;--l){(r=t[l]).left===t[l+1]?e[l]=new n(r._color,r.key,r.value,e[l+1],r.right,r._count):e[l]=new n(r._color,r.key,r.value,r.left,e[l+1],r._count)}if((r=e[e.length-1]).left&&r.right){var c=e.length;for(r=r.left;r.right;)e.push(r),r=r.right;var u=e[c-1];e.push(new n(r._color,u.key,u.value,r.left,r.right,r._count)),e[c-1].key=r.key,e[c-1].value=r.value;for(l=e.length-2;l>=c;--l)r=e[l],e[l]=new n(r._color,r.key,r.value,r.left,e[l+1],r._count);e[c-1].left=e[c]}if(0===(r=e[e.length-1])._color){var f=e[e.length-2];f.left===r?f.left=null:f.right===r&&(f.right=null),e.pop();for(l=0;l=0;--l){if(e=t[l],0===l)return void(e._color=1);if((r=t[l-1]).left===e){if((n=r.right).right&&0===n.right._color){if(s=(n=r.right=i(n)).right=i(n.right),r.right=n.left,n.left=r,n.right=s,n._color=r._color,e._color=1,r._color=1,s._color=1,o(r),o(n),l>1)(c=t[l-2]).left===r?c.left=n:c.right=n;return void(t[l-1]=n)}if(n.left&&0===n.left._color){if(s=(n=r.right=i(n)).left=i(n.left),r.right=s.left,n.left=s.right,s.left=r,s.right=n,s._color=r._color,r._color=1,n._color=1,e._color=1,o(r),o(n),o(s),l>1)(c=t[l-2]).left===r?c.left=s:c.right=s;return void(t[l-1]=s)}if(1===n._color){if(0===r._color)return r._color=1,void(r.right=a(0,n));r.right=a(0,n);continue}n=i(n),r.right=n.left,n.left=r,n._color=r._color,r._color=0,o(r),o(n),l>1&&((c=t[l-2]).left===r?c.left=n:c.right=n),t[l-1]=n,t[l]=r,l+11)(c=t[l-2]).right===r?c.right=n:c.left=n;return void(t[l-1]=n)}if(n.right&&0===n.right._color){if(s=(n=r.left=i(n)).right=i(n.right),r.left=s.right,n.right=s.left,s.right=r,s.left=n,s._color=r._color,r._color=1,n._color=1,e._color=1,o(r),o(n),o(s),l>1)(c=t[l-2]).right===r?c.right=s:c.left=s;return void(t[l-1]=s)}if(1===n._color){if(0===r._color)return r._color=1,void(r.left=a(0,n));r.left=a(0,n);continue}var c;n=i(n),r.left=n.right,n.right=r,n._color=r._color,r._color=0,o(r),o(n),l>1&&((c=t[l-2]).right===r?c.right=n:c.left=n),t[l-1]=n,t[l]=r,l+10)return this._stack[this._stack.length-1].key},enumerable:!0}),Object.defineProperty(p,"value",{get:function(){if(this._stack.length>0)return this._stack[this._stack.length-1].value},enumerable:!0}),Object.defineProperty(p,"index",{get:function(){var t=0,e=this._stack;if(0===e.length){var r=this.tree.root;return r?r._count:0}e[e.length-1].left&&(t=e[e.length-1].left._count);for(var n=e.length-2;n>=0;--n)e[n+1]===e[n].right&&(++t,e[n].left&&(t+=e[n].left._count));return t},enumerable:!0}),p.next=function(){var t=this._stack;if(0!==t.length){var e=t[t.length-1];if(e.right)for(e=e.right;e;)t.push(e),e=e.left;else for(t.pop();t.length>0&&t[t.length-1].right===e;)e=t[t.length-1],t.pop()}},Object.defineProperty(p,"hasNext",{get:function(){var t=this._stack;if(0===t.length)return!1;if(t[t.length-1].right)return!0;for(var e=t.length-1;e>0;--e)if(t[e-1].left===t[e])return!0;return!1}}),p.update=function(t){var e=this._stack;if(0===e.length)throw new Error("Can't update empty node!");var r=new Array(e.length),i=e[e.length-1];r[r.length-1]=new n(i._color,i.key,t,i.left,i.right,i._count);for(var a=e.length-2;a>=0;--a)(i=e[a]).left===e[a+1]?r[a]=new n(i._color,i.key,i.value,r[a+1],i.right,i._count):r[a]=new n(i._color,i.key,i.value,i.left,r[a+1],i._count);return new s(this.tree._compare,r[0])},p.prev=function(){var t=this._stack;if(0!==t.length){var e=t[t.length-1];if(e.left)for(e=e.left;e;)t.push(e),e=e.right;else for(t.pop();t.length>0&&t[t.length-1].left===e;)e=t[t.length-1],t.pop()}},Object.defineProperty(p,"hasPrev",{get:function(){var t=this._stack;if(0===t.length)return!1;if(t[t.length-1].left)return!0;for(var e=t.length-1;e>0;--e)if(t[e-1].right===t[e])return!0;return!1}})},{}],247:[function(t,e,r){var n=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,1.5056327351493116e-7],i=[.9999999999999971,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22];function a(t){if(t<0)return Number("0/0");for(var e=i[0],r=i.length-1;r>0;--r)e+=i[r]/(t+r);var n=t+607/128+.5;return.5*Math.log(2*Math.PI)+(t+.5)*Math.log(n)-n+Math.log(e)-Math.log(t)}e.exports=function t(e){if(e<.5)return Math.PI/(Math.sin(Math.PI*e)*t(1-e));if(e>100)return Math.exp(a(e));e-=1;for(var r=n[0],i=1;i<9;i++)r+=n[i]/(e+i);var o=e+7+.5;return Math.sqrt(2*Math.PI)*Math.pow(o,e+.5)*Math.exp(-o)*r},e.exports.log=a},{}],248:[function(t,e,r){e.exports=function(t,e){if("string"!=typeof t)throw new TypeError("must specify type string");if(e=e||{},"undefined"==typeof document&&!e.canvas)return null;var r=e.canvas||document.createElement("canvas");"number"==typeof e.width&&(r.width=e.width);"number"==typeof e.height&&(r.height=e.height);var n,i=e;try{var a=[t];0===t.indexOf("webgl")&&a.push("experimental-"+t);for(var o=0;o0?(p[u]=-1,d[u]=0):(p[u]=0,d[u]=1)}}var m=[0,0,0],g={model:l,view:l,projection:l,_ortho:!1};f.isOpaque=function(){return!0},f.isTransparent=function(){return!1},f.drawTransparent=function(t){};var v=[0,0,0],y=[0,0,0],x=[0,0,0];f.draw=function(t){t=t||g;for(var e=this.gl,r=t.model||l,n=t.view||l,i=t.projection||l,a=this.bounds,s=t._ortho||!1,u=o(r,n,i,a,s),f=u.cubeEdges,h=u.axis,b=n[12],_=n[13],w=n[14],T=n[15],k=(s?2:1)*this.pixelRatio*(i[3]*b+i[7]*_+i[11]*w+i[15]*T)/e.drawingBufferHeight,M=0;M<3;++M)this.lastCubeProps.cubeEdges[M]=f[M],this.lastCubeProps.axis[M]=h[M];var A=p;for(M=0;M<3;++M)d(p[M],M,this.bounds,f,h);e=this.gl;var S,E=m;for(M=0;M<3;++M)this.backgroundEnable[M]?E[M]=h[M]:E[M]=0;this._background.draw(r,n,i,a,E,this.backgroundColor),this._lines.bind(r,n,i,this);for(M=0;M<3;++M){var L=[0,0,0];h[M]>0?L[M]=a[1][M]:L[M]=a[0][M];for(var C=0;C<2;++C){var P=(M+1+C)%3,I=(M+1+(1^C))%3;this.gridEnable[P]&&this._lines.drawGrid(P,I,this.bounds,L,this.gridColor[P],this.gridWidth[P]*this.pixelRatio)}for(C=0;C<2;++C){P=(M+1+C)%3,I=(M+1+(1^C))%3;this.zeroEnable[I]&&Math.min(a[0][I],a[1][I])<=0&&Math.max(a[0][I],a[1][I])>=0&&this._lines.drawZero(P,I,this.bounds,L,this.zeroLineColor[I],this.zeroLineWidth[I]*this.pixelRatio)}}for(M=0;M<3;++M){this.lineEnable[M]&&this._lines.drawAxisLine(M,this.bounds,A[M].primalOffset,this.lineColor[M],this.lineWidth[M]*this.pixelRatio),this.lineMirror[M]&&this._lines.drawAxisLine(M,this.bounds,A[M].mirrorOffset,this.lineColor[M],this.lineWidth[M]*this.pixelRatio);var O=c(v,A[M].primalMinor),z=c(y,A[M].mirrorMinor),D=this.lineTickLength;for(C=0;C<3;++C){var R=k/r[5*C];O[C]*=D[C]*R,z[C]*=D[C]*R}this.lineTickEnable[M]&&this._lines.drawAxisTicks(M,A[M].primalOffset,O,this.lineTickColor[M],this.lineTickWidth[M]*this.pixelRatio),this.lineTickMirror[M]&&this._lines.drawAxisTicks(M,A[M].mirrorOffset,z,this.lineTickColor[M],this.lineTickWidth[M]*this.pixelRatio)}this._lines.unbind(),this._text.bind(r,n,i,this.pixelRatio);var F,B;function N(t){(B=[0,0,0])[t]=1}function j(t,e,r){var n=(t+1)%3,i=(t+2)%3,a=e[n],o=e[i],s=r[n],l=r[i];a>0&&l>0||a>0&&l<0||a<0&&l>0||a<0&&l<0?N(n):(o>0&&s>0||o>0&&s<0||o<0&&s>0||o<0&&s<0)&&N(i)}for(M=0;M<3;++M){var U=A[M].primalMinor,V=A[M].mirrorMinor,q=c(x,A[M].primalOffset);for(C=0;C<3;++C)this.lineTickEnable[M]&&(q[C]+=k*U[C]*Math.max(this.lineTickLength[C],0)/r[5*C]);var H=[0,0,0];if(H[M]=1,this.tickEnable[M]){-3600===this.tickAngle[M]?(this.tickAngle[M]=0,this.tickAlign[M]="auto"):this.tickAlign[M]=-1,F=1,"auto"===(S=[this.tickAlign[M],.5,F])[0]?S[0]=0:S[0]=parseInt(""+S[0]),B=[0,0,0],j(M,U,V);for(C=0;C<3;++C)q[C]+=k*U[C]*this.tickPad[C]/r[5*C];this._text.drawTicks(M,this.tickSize[M],this.tickAngle[M],q,this.tickColor[M],H,B,S)}if(this.labelEnable[M]){F=0,B=[0,0,0],this.labels[M].length>4&&(N(M),F=1),"auto"===(S=[this.labelAlign[M],.5,F])[0]?S[0]=0:S[0]=parseInt(""+S[0]);for(C=0;C<3;++C)q[C]+=k*U[C]*this.labelPad[C]/r[5*C];q[M]+=.5*(a[0][M]+a[1][M]),this._text.drawLabel(M,this.labelSize[M],this.labelAngle[M],q,this.labelColor[M],[0,0,0],B,S)}}this._text.unbind()},f.dispose=function(){this._text.dispose(),this._lines.dispose(),this._background.dispose(),this._lines=null,this._text=null,this._background=null,this.gl=null}},{"./lib/background.js":250,"./lib/cube.js":251,"./lib/lines.js":252,"./lib/text.js":254,"./lib/ticks.js":255}],250:[function(t,e,r){"use strict";e.exports=function(t){for(var e=[],r=[],s=0,l=0;l<3;++l)for(var c=(l+1)%3,u=(l+2)%3,f=[0,0,0],h=[0,0,0],p=-1;p<=1;p+=2){r.push(s,s+2,s+1,s+1,s+2,s+3),f[l]=p,h[l]=p;for(var d=-1;d<=1;d+=2){f[c]=d;for(var m=-1;m<=1;m+=2)f[u]=m,e.push(f[0],f[1],f[2],h[0],h[1],h[2]),s+=1}var g=c;c=u,u=g}var v=n(t,new Float32Array(e)),y=n(t,new Uint16Array(r),t.ELEMENT_ARRAY_BUFFER),x=i(t,[{buffer:v,type:t.FLOAT,size:3,offset:0,stride:24},{buffer:v,type:t.FLOAT,size:3,offset:12,stride:24}],y),b=a(t);return b.attributes.position.location=0,b.attributes.normal.location=1,new o(t,v,x,b)};var n=t("gl-buffer"),i=t("gl-vao"),a=t("./shaders").bg;function o(t,e,r,n){this.gl=t,this.buffer=e,this.vao=r,this.shader=n}var s=o.prototype;s.draw=function(t,e,r,n,i,a){for(var o=!1,s=0;s<3;++s)o=o||i[s];if(o){var l=this.gl;l.enable(l.POLYGON_OFFSET_FILL),l.polygonOffset(1,2),this.shader.bind(),this.shader.uniforms={model:t,view:e,projection:r,bounds:n,enable:i,colors:a},this.vao.bind(),this.vao.draw(this.gl.TRIANGLES,36),this.vao.unbind(),l.disable(l.POLYGON_OFFSET_FILL)}},s.dispose=function(){this.vao.dispose(),this.buffer.dispose(),this.shader.dispose()}},{"./shaders":253,"gl-buffer":258,"gl-vao":352}],251:[function(t,e,r){"use strict";e.exports=function(t,e,r,a,p){i(s,e,t),i(s,r,s);for(var y=0,x=0;x<2;++x){u[2]=a[x][2];for(var b=0;b<2;++b){u[1]=a[b][1];for(var _=0;_<2;++_)u[0]=a[_][0],h(l[y],u,s),y+=1}}var w=-1;for(x=0;x<8;++x){for(var T=l[x][3],k=0;k<3;++k)c[x][k]=l[x][k]/T;p&&(c[x][2]*=-1),T<0&&(w<0||c[x][2]E&&(w|=1<E&&(w|=1<c[x][1])&&(R=x);var F=-1;for(x=0;x<3;++x){if((N=R^1<c[B][0]&&(B=N)}var j=m;j[0]=j[1]=j[2]=0,j[n.log2(F^R)]=R&F,j[n.log2(R^B)]=R&B;var U=7^B;U===w||U===D?(U=7^F,j[n.log2(B^U)]=U&B):j[n.log2(F^U)]=U&F;var V=g,q=w;for(M=0;M<3;++M)V[M]=q&1< HALF_PI) && (b <= ONE_AND_HALF_PI)) ?\n b - PI :\n b;\n}\n\nfloat look_horizontal_or_vertical(float a, float ratio) {\n // ratio controls the ratio between being horizontal to (vertical + horizontal)\n // if ratio is set to 0.5 then it is 50%, 50%.\n // when using a higher ratio e.g. 0.75 the result would\n // likely be more horizontal than vertical.\n\n float b = positive_angle(a);\n\n return\n (b < ( ratio) * HALF_PI) ? 0.0 :\n (b < (2.0 - ratio) * HALF_PI) ? -HALF_PI :\n (b < (2.0 + ratio) * HALF_PI) ? 0.0 :\n (b < (4.0 - ratio) * HALF_PI) ? HALF_PI :\n 0.0;\n}\n\nfloat roundTo(float a, float b) {\n return float(b * floor((a + 0.5 * b) / b));\n}\n\nfloat look_round_n_directions(float a, int n) {\n float b = positive_angle(a);\n float div = TWO_PI / float(n);\n float c = roundTo(b, div);\n return look_upwards(c);\n}\n\nfloat applyAlignOption(float rawAngle, float delta) {\n return\n (option > 2) ? look_round_n_directions(rawAngle + delta, option) : // option 3-n: round to n directions\n (option == 2) ? look_horizontal_or_vertical(rawAngle + delta, hv_ratio) : // horizontal or vertical\n (option == 1) ? rawAngle + delta : // use free angle, and flip to align with one direction of the axis\n (option == 0) ? look_upwards(rawAngle) : // use free angle, and stay upwards\n (option ==-1) ? 0.0 : // useful for backward compatibility, all texts remains horizontal\n rawAngle; // otherwise return back raw input angle\n}\n\nbool isAxisTitle = (axis.x == 0.0) &&\n (axis.y == 0.0) &&\n (axis.z == 0.0);\n\nvoid main() {\n //Compute world offset\n float axisDistance = position.z;\n vec3 dataPosition = axisDistance * axis + offset;\n\n float beta = angle; // i.e. user defined attributes for each tick\n\n float axisAngle;\n float clipAngle;\n float flip;\n\n if (enableAlign) {\n axisAngle = (isAxisTitle) ? HALF_PI :\n computeViewAngle(dataPosition, dataPosition + axis);\n clipAngle = computeViewAngle(dataPosition, dataPosition + alignDir);\n\n axisAngle += (sin(axisAngle) < 0.0) ? PI : 0.0;\n clipAngle += (sin(clipAngle) < 0.0) ? PI : 0.0;\n\n flip = (dot(vec2(cos(axisAngle), sin(axisAngle)),\n vec2(sin(clipAngle),-cos(clipAngle))) > 0.0) ? 1.0 : 0.0;\n\n beta += applyAlignOption(clipAngle, flip * PI);\n }\n\n //Compute plane offset\n vec2 planeCoord = position.xy * pixelScale;\n\n mat2 planeXform = scale * mat2(\n cos(beta), sin(beta),\n -sin(beta), cos(beta)\n );\n\n vec2 viewOffset = 2.0 * planeXform * planeCoord / resolution;\n\n //Compute clip position\n vec3 clipPosition = project(dataPosition);\n\n //Apply text offset in clip coordinates\n clipPosition += vec3(viewOffset, 0.0);\n\n //Done\n gl_Position = vec4(clipPosition, 1.0);\n}"]),l=n(["precision highp float;\n#define GLSLIFY 1\n\nuniform vec4 color;\nvoid main() {\n gl_FragColor = color;\n}"]);r.text=function(t){return i(t,s,l,null,[{name:"position",type:"vec3"}])};var c=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\nattribute vec3 normal;\n\nuniform mat4 model, view, projection;\nuniform vec3 enable;\nuniform vec3 bounds[2];\n\nvarying vec3 colorChannel;\n\nvoid main() {\n\n vec3 signAxis = sign(bounds[1] - bounds[0]);\n\n vec3 realNormal = signAxis * normal;\n\n if(dot(realNormal, enable) > 0.0) {\n vec3 minRange = min(bounds[0], bounds[1]);\n vec3 maxRange = max(bounds[0], bounds[1]);\n vec3 nPosition = mix(minRange, maxRange, 0.5 * (position + 1.0));\n gl_Position = projection * view * model * vec4(nPosition, 1.0);\n } else {\n gl_Position = vec4(0,0,0,0);\n }\n\n colorChannel = abs(realNormal);\n}"]),u=n(["precision highp float;\n#define GLSLIFY 1\n\nuniform vec4 colors[3];\n\nvarying vec3 colorChannel;\n\nvoid main() {\n gl_FragColor = colorChannel.x * colors[0] +\n colorChannel.y * colors[1] +\n colorChannel.z * colors[2];\n}"]);r.bg=function(t){return i(t,c,u,null,[{name:"position",type:"vec3"},{name:"normal",type:"vec3"}])}},{"gl-shader":330,glslify:256}],254:[function(t,e,r){(function(r){(function(){"use strict";e.exports=function(t,e,r,a,s,l){var u=n(t),f=i(t,[{buffer:u,size:3}]),h=o(t);h.attributes.position.location=0;var p=new c(t,h,u,f);return p.update(e,r,a,s,l),p};var n=t("gl-buffer"),i=t("gl-vao"),a=t("vectorize-text"),o=t("./shaders").text,s=window||r.global||{},l=s.__TEXT_CACHE||{};s.__TEXT_CACHE={};function c(t,e,r,n){this.gl=t,this.shader=e,this.buffer=r,this.vao=n,this.tickOffset=this.tickCount=this.labelOffset=this.labelCount=null}var u=c.prototype,f=[0,0];u.bind=function(t,e,r,n){this.vao.bind(),this.shader.bind();var i=this.shader.uniforms;i.model=t,i.view=e,i.projection=r,i.pixelScale=n,f[0]=this.gl.drawingBufferWidth,f[1]=this.gl.drawingBufferHeight,this.shader.uniforms.resolution=f},u.unbind=function(){this.vao.unbind()},u.update=function(t,e,r,n,i){var o=[];function s(t,e,r,n,i,s){var c=l[r];c||(c=l[r]={});var u=c[e];u||(u=c[e]=function(t,e){try{return a(t,e)}catch(e){return console.warn('error vectorizing text:"'+t+'" error:',e),{cells:[],positions:[]}}}(e,{triangles:!0,font:r,textAlign:"center",textBaseline:"middle",lineSpacing:i,styletags:s}));for(var f=(n||12)/12,h=u.positions,p=u.cells,d=0,m=p.length;d=0;--v){var y=h[g[v]];o.push(f*y[0],-f*y[1],t)}}for(var c=[0,0,0],u=[0,0,0],f=[0,0,0],h=[0,0,0],p={breaklines:!0,bolds:!0,italics:!0,subscripts:!0,superscripts:!0},d=0;d<3;++d){f[d]=o.length/3|0,s(.5*(t[0][d]+t[1][d]),e[d],r[d],12,1.25,p),h[d]=(o.length/3|0)-f[d],c[d]=o.length/3|0;for(var m=0;m=0&&(i=r.length-n-1);var a=Math.pow(10,i),o=Math.round(t*e*a),s=o+"";if(s.indexOf("e")>=0)return s;var l=o/a,c=o%a;o<0?(l=0|-Math.ceil(l),c=0|-c):(l=0|Math.floor(l),c|=0);var u=""+l;if(o<0&&(u="-"+u),i){for(var f=""+c;f.length=t[0][i];--o)a.push({x:o*e[i],text:n(e[i],o)});r.push(a)}return r},r.equal=function(t,e){for(var r=0;r<3;++r){if(t[r].length!==e[r].length)return!1;for(var n=0;nr)throw new Error("gl-buffer: If resizing buffer, must not specify offset");return t.bufferSubData(e,a,i),r}function u(t,e){for(var r=n.malloc(t.length,e),i=t.length,a=0;a=0;--n){if(e[n]!==r)return!1;r*=t[n]}return!0}(t.shape,t.stride))0===t.offset&&t.data.length===t.shape[0]?this.length=c(this.gl,this.type,this.length,this.usage,t.data,e):this.length=c(this.gl,this.type,this.length,this.usage,t.data.subarray(t.offset,t.shape[0]),e);else{var s=n.malloc(t.size,r),l=a(s,t.shape);i.assign(l,t),this.length=c(this.gl,this.type,this.length,this.usage,e<0?s:s.subarray(0,t.size),e),n.free(s)}}else if(Array.isArray(t)){var f;f=this.type===this.gl.ELEMENT_ARRAY_BUFFER?u(t,"uint16"):u(t,"float32"),this.length=c(this.gl,this.type,this.length,this.usage,e<0?f:f.subarray(0,t.length),e),n.free(f)}else if("object"==typeof t&&"number"==typeof t.length)this.length=c(this.gl,this.type,this.length,this.usage,t,e);else{if("number"!=typeof t&&void 0!==t)throw new Error("gl-buffer: Invalid data type");if(e>=0)throw new Error("gl-buffer: Cannot specify offset when resizing buffer");(t|=0)<=0&&(t=1),this.gl.bufferData(this.type,0|t,this.usage),this.length=t}},e.exports=function(t,e,r,n){if(r=r||t.ARRAY_BUFFER,n=n||t.DYNAMIC_DRAW,r!==t.ARRAY_BUFFER&&r!==t.ELEMENT_ARRAY_BUFFER)throw new Error("gl-buffer: Invalid type for webgl buffer, must be either gl.ARRAY_BUFFER or gl.ELEMENT_ARRAY_BUFFER");if(n!==t.DYNAMIC_DRAW&&n!==t.STATIC_DRAW&&n!==t.STREAM_DRAW)throw new Error("gl-buffer: Invalid usage for buffer, must be either gl.DYNAMIC_DRAW, gl.STATIC_DRAW or gl.STREAM_DRAW");var i=t.createBuffer(),a=new s(t,r,i,0,n);return a.update(e),a}},{ndarray:475,"ndarray-ops":470,"typedarray-pool":609}],259:[function(t,e,r){"use strict";var n=t("gl-vec3");e.exports=function(t,e){var r=t.positions,i=t.vectors,a={positions:[],vertexIntensity:[],vertexIntensityBounds:t.vertexIntensityBounds,vectors:[],cells:[],coneOffset:t.coneOffset,colormap:t.colormap};if(0===t.positions.length)return e&&(e[0]=[0,0,0],e[1]=[0,0,0]),a;for(var o=0,s=1/0,l=-1/0,c=1/0,u=-1/0,f=1/0,h=-1/0,p=null,d=null,m=[],g=1/0,v=!1,y=0;yo&&(o=n.length(b)),y){var _=2*n.distance(p,x)/(n.length(d)+n.length(b));_?(g=Math.min(g,_),v=!1):v=!0}v||(p=x,d=b),m.push(b)}var w=[s,c,f],T=[l,u,h];e&&(e[0]=w,e[1]=T),0===o&&(o=1);var k=1/o;isFinite(g)||(g=1),a.vectorScale=g;var M=t.coneSize||.5;t.absoluteConeSize&&(M=t.absoluteConeSize*k),a.coneScale=M;y=0;for(var A=0;y=1},p.isTransparent=function(){return this.opacity<1},p.pickSlots=1,p.setPickBase=function(t){this.pickId=t},p.update=function(t){t=t||{};var e=this.gl;this.dirty=!0,"lightPosition"in t&&(this.lightPosition=t.lightPosition),"opacity"in t&&(this.opacity=t.opacity),"ambient"in t&&(this.ambientLight=t.ambient),"diffuse"in t&&(this.diffuseLight=t.diffuse),"specular"in t&&(this.specularLight=t.specular),"roughness"in t&&(this.roughness=t.roughness),"fresnel"in t&&(this.fresnel=t.fresnel),void 0!==t.tubeScale&&(this.tubeScale=t.tubeScale),void 0!==t.vectorScale&&(this.vectorScale=t.vectorScale),void 0!==t.coneScale&&(this.coneScale=t.coneScale),void 0!==t.coneOffset&&(this.coneOffset=t.coneOffset),t.colormap&&(this.texture.shape=[256,256],this.texture.minFilter=e.LINEAR_MIPMAP_LINEAR,this.texture.magFilter=e.LINEAR,this.texture.setPixels(function(t){for(var e=u({colormap:t,nshades:256,format:"rgba"}),r=new Uint8Array(1024),n=0;n<256;++n){for(var i=e[n],a=0;a<3;++a)r[4*n+a]=i[a];r[4*n+3]=255*i[3]}return c(r,[256,256,4],[4,0,1])}(t.colormap)),this.texture.generateMipmap());var r=t.cells,n=t.positions,i=t.vectors;if(n&&r&&i){var a=[],o=[],s=[],l=[],f=[];this.cells=r,this.positions=n,this.vectors=i;var h=t.meshColor||[1,1,1,1],p=t.vertexIntensity,d=1/0,m=-1/0;if(p)if(t.vertexIntensityBounds)d=+t.vertexIntensityBounds[0],m=+t.vertexIntensityBounds[1];else for(var g=0;g0){var m=this.triShader;m.bind(),m.uniforms=c,this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()}},p.drawPick=function(t){t=t||{};for(var e=this.gl,r=t.model||f,n=t.view||f,i=t.projection||f,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);this._model=[].slice.call(r),this._view=[].slice.call(n),this._projection=[].slice.call(i),this._resolution=[e.drawingBufferWidth,e.drawingBufferHeight];var s={model:r,view:n,projection:i,clipBounds:a,tubeScale:this.tubeScale,vectorScale:this.vectorScale,coneScale:this.coneScale,coneOffset:this.coneOffset,pickId:this.pickId/255},l=this.pickShader;l.bind(),l.uniforms=s,this.triangleCount>0&&(this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind())},p.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;var e=t.value[0]+256*t.value[1]+65536*t.value[2],r=this.cells[e],n=this.positions[r[1]].slice(0,3),i={position:n,dataCoordinate:n,index:Math.floor(r[1]/48)};return"cone"===this.traceType?i.index=Math.floor(r[1]/48):"streamtube"===this.traceType&&(i.intensity=this.intensity[r[1]],i.velocity=this.vectors[r[1]].slice(0,3),i.divergence=this.vectors[r[1]][3],i.index=e),i},p.dispose=function(){this.texture.dispose(),this.triShader.dispose(),this.pickShader.dispose(),this.triangleVAO.dispose(),this.trianglePositions.dispose(),this.triangleVectors.dispose(),this.triangleColors.dispose(),this.triangleUVs.dispose(),this.triangleIds.dispose()},e.exports=function(t,e,r){var n=r.shaders;1===arguments.length&&(t=(e=t).gl);var s=d(t,n),l=m(t,n),u=o(t,c(new Uint8Array([255,255,255,255]),[1,1,4]));u.generateMipmap(),u.minFilter=t.LINEAR_MIPMAP_LINEAR,u.magFilter=t.LINEAR;var f=i(t),p=i(t),g=i(t),v=i(t),y=i(t),x=a(t,[{buffer:f,type:t.FLOAT,size:4},{buffer:y,type:t.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:g,type:t.FLOAT,size:4},{buffer:v,type:t.FLOAT,size:2},{buffer:p,type:t.FLOAT,size:4}]),b=new h(t,u,s,l,f,p,y,g,v,x,r.traceType||"cone");return b.update(e),b}},{colormap:132,"gl-buffer":258,"gl-mat4/invert":290,"gl-mat4/multiply":292,"gl-shader":330,"gl-texture2d":347,"gl-vao":352,ndarray:475}],261:[function(t,e,r){var n=t("glslify"),i=n(["precision highp float;\n\nprecision highp float;\n#define GLSLIFY 1\n\nvec3 getOrthogonalVector(vec3 v) {\n // Return up-vector for only-z vector.\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\n // Assign z = 0, x = -b, y = a:\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\n return normalize(vec3(-v.y, v.x, 0.0));\n } else {\n return normalize(vec3(0.0, v.z, -v.y));\n }\n}\n\n// Calculate the cone vertex and normal at the given index.\n//\n// The returned vertex is for a cone with its top at origin and height of 1.0,\n// pointing in the direction of the vector attribute.\n//\n// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices.\n// These vertices are used to make up the triangles of the cone by the following:\n// segment + 0 top vertex\n// segment + 1 perimeter vertex a+1\n// segment + 2 perimeter vertex a\n// segment + 3 center base vertex\n// segment + 4 perimeter vertex a\n// segment + 5 perimeter vertex a+1\n// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment.\n// To go from index to segment, floor(index / 6)\n// To go from segment to angle, 2*pi * (segment/segmentCount)\n// To go from index to segment index, index - (segment*6)\n//\nvec3 getConePosition(vec3 d, float rawIndex, float coneOffset, out vec3 normal) {\n\n const float segmentCount = 8.0;\n\n float index = rawIndex - floor(rawIndex /\n (segmentCount * 6.0)) *\n (segmentCount * 6.0);\n\n float segment = floor(0.001 + index/6.0);\n float segmentIndex = index - (segment*6.0);\n\n normal = -normalize(d);\n\n if (segmentIndex > 2.99 && segmentIndex < 3.01) {\n return mix(vec3(0.0), -d, coneOffset);\n }\n\n float nextAngle = (\n (segmentIndex > 0.99 && segmentIndex < 1.01) ||\n (segmentIndex > 4.99 && segmentIndex < 5.01)\n ) ? 1.0 : 0.0;\n float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount);\n\n vec3 v1 = mix(d, vec3(0.0), coneOffset);\n vec3 v2 = v1 - d;\n\n vec3 u = getOrthogonalVector(d);\n vec3 v = normalize(cross(u, d));\n\n vec3 x = u * cos(angle) * length(d)*0.25;\n vec3 y = v * sin(angle) * length(d)*0.25;\n vec3 v3 = v2 + x + y;\n if (segmentIndex < 3.0) {\n vec3 tx = u * sin(angle);\n vec3 ty = v * -cos(angle);\n vec3 tangent = tx + ty;\n normal = normalize(cross(v3 - v1, tangent));\n }\n\n if (segmentIndex == 0.0) {\n return mix(d, vec3(0.0), coneOffset);\n }\n return v3;\n}\n\nattribute vec3 vector;\nattribute vec4 color, position;\nattribute vec2 uv;\n\nuniform float vectorScale, coneScale, coneOffset;\nuniform mat4 model, view, projection, inverseModel;\nuniform vec3 eyePosition, lightPosition;\n\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n // Scale the vector magnitude to stay constant with\n // model & view changes.\n vec3 normal;\n vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector), position.w, coneOffset, normal);\n vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\n\n //Lighting geometry parameters\n vec4 cameraCoordinate = view * conePosition;\n cameraCoordinate.xyz /= cameraCoordinate.w;\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\n\n // vec4 m_position = model * vec4(conePosition, 1.0);\n vec4 t_position = view * conePosition;\n gl_Position = projection * t_position;\n\n f_color = color;\n f_data = conePosition.xyz;\n f_position = position.xyz;\n f_uv = uv;\n}\n"]),a=n(["#extension GL_OES_standard_derivatives : enable\n\nprecision highp float;\n#define GLSLIFY 1\n\nfloat beckmannDistribution(float x, float roughness) {\n float NdotH = max(x, 0.0001);\n float cos2Alpha = NdotH * NdotH;\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\n float roughness2 = roughness * roughness;\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\n return exp(tan2Alpha / roughness2) / denom;\n}\n\nfloat cookTorranceSpecular(\n vec3 lightDirection,\n vec3 viewDirection,\n vec3 surfaceNormal,\n float roughness,\n float fresnel) {\n\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\n\n //Half angle vector\n vec3 H = normalize(lightDirection + viewDirection);\n\n //Geometric term\n float NdotH = max(dot(surfaceNormal, H), 0.0);\n float VdotH = max(dot(viewDirection, H), 0.000001);\n float LdotH = max(dot(lightDirection, H), 0.000001);\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\n float G = min(1.0, min(G1, G2));\n \n //Distribution term\n float D = beckmannDistribution(NdotH, roughness);\n\n //Fresnel term\n float F = pow(1.0 - VdotN, fresnel);\n\n //Multiply terms and done\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\n}\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\nuniform sampler2D texture;\n\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n vec3 N = normalize(f_normal);\n vec3 L = normalize(f_lightDirection);\n vec3 V = normalize(f_eyeDirection);\n\n if(gl_FrontFacing) {\n N = -N;\n }\n\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\n\n vec4 surfaceColor = f_color * texture2D(texture, f_uv);\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\n\n gl_FragColor = litColor * opacity;\n}\n"]),o=n(["precision highp float;\n\nprecision highp float;\n#define GLSLIFY 1\n\nvec3 getOrthogonalVector(vec3 v) {\n // Return up-vector for only-z vector.\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\n // Assign z = 0, x = -b, y = a:\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\n return normalize(vec3(-v.y, v.x, 0.0));\n } else {\n return normalize(vec3(0.0, v.z, -v.y));\n }\n}\n\n// Calculate the cone vertex and normal at the given index.\n//\n// The returned vertex is for a cone with its top at origin and height of 1.0,\n// pointing in the direction of the vector attribute.\n//\n// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices.\n// These vertices are used to make up the triangles of the cone by the following:\n// segment + 0 top vertex\n// segment + 1 perimeter vertex a+1\n// segment + 2 perimeter vertex a\n// segment + 3 center base vertex\n// segment + 4 perimeter vertex a\n// segment + 5 perimeter vertex a+1\n// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment.\n// To go from index to segment, floor(index / 6)\n// To go from segment to angle, 2*pi * (segment/segmentCount)\n// To go from index to segment index, index - (segment*6)\n//\nvec3 getConePosition(vec3 d, float rawIndex, float coneOffset, out vec3 normal) {\n\n const float segmentCount = 8.0;\n\n float index = rawIndex - floor(rawIndex /\n (segmentCount * 6.0)) *\n (segmentCount * 6.0);\n\n float segment = floor(0.001 + index/6.0);\n float segmentIndex = index - (segment*6.0);\n\n normal = -normalize(d);\n\n if (segmentIndex > 2.99 && segmentIndex < 3.01) {\n return mix(vec3(0.0), -d, coneOffset);\n }\n\n float nextAngle = (\n (segmentIndex > 0.99 && segmentIndex < 1.01) ||\n (segmentIndex > 4.99 && segmentIndex < 5.01)\n ) ? 1.0 : 0.0;\n float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount);\n\n vec3 v1 = mix(d, vec3(0.0), coneOffset);\n vec3 v2 = v1 - d;\n\n vec3 u = getOrthogonalVector(d);\n vec3 v = normalize(cross(u, d));\n\n vec3 x = u * cos(angle) * length(d)*0.25;\n vec3 y = v * sin(angle) * length(d)*0.25;\n vec3 v3 = v2 + x + y;\n if (segmentIndex < 3.0) {\n vec3 tx = u * sin(angle);\n vec3 ty = v * -cos(angle);\n vec3 tangent = tx + ty;\n normal = normalize(cross(v3 - v1, tangent));\n }\n\n if (segmentIndex == 0.0) {\n return mix(d, vec3(0.0), coneOffset);\n }\n return v3;\n}\n\nattribute vec4 vector;\nattribute vec4 position;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\nuniform float vectorScale, coneScale, coneOffset;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n vec3 normal;\n vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector.xyz), position.w, coneOffset, normal);\n vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\n gl_Position = projection * view * conePosition;\n f_id = id;\n f_position = position.xyz;\n}\n"]),s=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float pickId;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n\n gl_FragColor = vec4(pickId, f_id.xyz);\n}"]);r.meshShader={vertex:i,fragment:a,attributes:[{name:"position",type:"vec4"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"},{name:"vector",type:"vec3"}]},r.pickShader={vertex:o,fragment:s,attributes:[{name:"position",type:"vec4"},{name:"id",type:"vec4"},{name:"vector",type:"vec3"}]}},{glslify:433}],262:[function(t,e,r){e.exports={0:"NONE",1:"ONE",2:"LINE_LOOP",3:"LINE_STRIP",4:"TRIANGLES",5:"TRIANGLE_STRIP",6:"TRIANGLE_FAN",256:"DEPTH_BUFFER_BIT",512:"NEVER",513:"LESS",514:"EQUAL",515:"LEQUAL",516:"GREATER",517:"NOTEQUAL",518:"GEQUAL",519:"ALWAYS",768:"SRC_COLOR",769:"ONE_MINUS_SRC_COLOR",770:"SRC_ALPHA",771:"ONE_MINUS_SRC_ALPHA",772:"DST_ALPHA",773:"ONE_MINUS_DST_ALPHA",774:"DST_COLOR",775:"ONE_MINUS_DST_COLOR",776:"SRC_ALPHA_SATURATE",1024:"STENCIL_BUFFER_BIT",1028:"FRONT",1029:"BACK",1032:"FRONT_AND_BACK",1280:"INVALID_ENUM",1281:"INVALID_VALUE",1282:"INVALID_OPERATION",1285:"OUT_OF_MEMORY",1286:"INVALID_FRAMEBUFFER_OPERATION",2304:"CW",2305:"CCW",2849:"LINE_WIDTH",2884:"CULL_FACE",2885:"CULL_FACE_MODE",2886:"FRONT_FACE",2928:"DEPTH_RANGE",2929:"DEPTH_TEST",2930:"DEPTH_WRITEMASK",2931:"DEPTH_CLEAR_VALUE",2932:"DEPTH_FUNC",2960:"STENCIL_TEST",2961:"STENCIL_CLEAR_VALUE",2962:"STENCIL_FUNC",2963:"STENCIL_VALUE_MASK",2964:"STENCIL_FAIL",2965:"STENCIL_PASS_DEPTH_FAIL",2966:"STENCIL_PASS_DEPTH_PASS",2967:"STENCIL_REF",2968:"STENCIL_WRITEMASK",2978:"VIEWPORT",3024:"DITHER",3042:"BLEND",3088:"SCISSOR_BOX",3089:"SCISSOR_TEST",3106:"COLOR_CLEAR_VALUE",3107:"COLOR_WRITEMASK",3317:"UNPACK_ALIGNMENT",3333:"PACK_ALIGNMENT",3379:"MAX_TEXTURE_SIZE",3386:"MAX_VIEWPORT_DIMS",3408:"SUBPIXEL_BITS",3410:"RED_BITS",3411:"GREEN_BITS",3412:"BLUE_BITS",3413:"ALPHA_BITS",3414:"DEPTH_BITS",3415:"STENCIL_BITS",3553:"TEXTURE_2D",4352:"DONT_CARE",4353:"FASTEST",4354:"NICEST",5120:"BYTE",5121:"UNSIGNED_BYTE",5122:"SHORT",5123:"UNSIGNED_SHORT",5124:"INT",5125:"UNSIGNED_INT",5126:"FLOAT",5386:"INVERT",5890:"TEXTURE",6401:"STENCIL_INDEX",6402:"DEPTH_COMPONENT",6406:"ALPHA",6407:"RGB",6408:"RGBA",6409:"LUMINANCE",6410:"LUMINANCE_ALPHA",7680:"KEEP",7681:"REPLACE",7682:"INCR",7683:"DECR",7936:"VENDOR",7937:"RENDERER",7938:"VERSION",9728:"NEAREST",9729:"LINEAR",9984:"NEAREST_MIPMAP_NEAREST",9985:"LINEAR_MIPMAP_NEAREST",9986:"NEAREST_MIPMAP_LINEAR",9987:"LINEAR_MIPMAP_LINEAR",10240:"TEXTURE_MAG_FILTER",10241:"TEXTURE_MIN_FILTER",10242:"TEXTURE_WRAP_S",10243:"TEXTURE_WRAP_T",10497:"REPEAT",10752:"POLYGON_OFFSET_UNITS",16384:"COLOR_BUFFER_BIT",32769:"CONSTANT_COLOR",32770:"ONE_MINUS_CONSTANT_COLOR",32771:"CONSTANT_ALPHA",32772:"ONE_MINUS_CONSTANT_ALPHA",32773:"BLEND_COLOR",32774:"FUNC_ADD",32777:"BLEND_EQUATION_RGB",32778:"FUNC_SUBTRACT",32779:"FUNC_REVERSE_SUBTRACT",32819:"UNSIGNED_SHORT_4_4_4_4",32820:"UNSIGNED_SHORT_5_5_5_1",32823:"POLYGON_OFFSET_FILL",32824:"POLYGON_OFFSET_FACTOR",32854:"RGBA4",32855:"RGB5_A1",32873:"TEXTURE_BINDING_2D",32926:"SAMPLE_ALPHA_TO_COVERAGE",32928:"SAMPLE_COVERAGE",32936:"SAMPLE_BUFFERS",32937:"SAMPLES",32938:"SAMPLE_COVERAGE_VALUE",32939:"SAMPLE_COVERAGE_INVERT",32968:"BLEND_DST_RGB",32969:"BLEND_SRC_RGB",32970:"BLEND_DST_ALPHA",32971:"BLEND_SRC_ALPHA",33071:"CLAMP_TO_EDGE",33170:"GENERATE_MIPMAP_HINT",33189:"DEPTH_COMPONENT16",33306:"DEPTH_STENCIL_ATTACHMENT",33635:"UNSIGNED_SHORT_5_6_5",33648:"MIRRORED_REPEAT",33901:"ALIASED_POINT_SIZE_RANGE",33902:"ALIASED_LINE_WIDTH_RANGE",33984:"TEXTURE0",33985:"TEXTURE1",33986:"TEXTURE2",33987:"TEXTURE3",33988:"TEXTURE4",33989:"TEXTURE5",33990:"TEXTURE6",33991:"TEXTURE7",33992:"TEXTURE8",33993:"TEXTURE9",33994:"TEXTURE10",33995:"TEXTURE11",33996:"TEXTURE12",33997:"TEXTURE13",33998:"TEXTURE14",33999:"TEXTURE15",34e3:"TEXTURE16",34001:"TEXTURE17",34002:"TEXTURE18",34003:"TEXTURE19",34004:"TEXTURE20",34005:"TEXTURE21",34006:"TEXTURE22",34007:"TEXTURE23",34008:"TEXTURE24",34009:"TEXTURE25",34010:"TEXTURE26",34011:"TEXTURE27",34012:"TEXTURE28",34013:"TEXTURE29",34014:"TEXTURE30",34015:"TEXTURE31",34016:"ACTIVE_TEXTURE",34024:"MAX_RENDERBUFFER_SIZE",34041:"DEPTH_STENCIL",34055:"INCR_WRAP",34056:"DECR_WRAP",34067:"TEXTURE_CUBE_MAP",34068:"TEXTURE_BINDING_CUBE_MAP",34069:"TEXTURE_CUBE_MAP_POSITIVE_X",34070:"TEXTURE_CUBE_MAP_NEGATIVE_X",34071:"TEXTURE_CUBE_MAP_POSITIVE_Y",34072:"TEXTURE_CUBE_MAP_NEGATIVE_Y",34073:"TEXTURE_CUBE_MAP_POSITIVE_Z",34074:"TEXTURE_CUBE_MAP_NEGATIVE_Z",34076:"MAX_CUBE_MAP_TEXTURE_SIZE",34338:"VERTEX_ATTRIB_ARRAY_ENABLED",34339:"VERTEX_ATTRIB_ARRAY_SIZE",34340:"VERTEX_ATTRIB_ARRAY_STRIDE",34341:"VERTEX_ATTRIB_ARRAY_TYPE",34342:"CURRENT_VERTEX_ATTRIB",34373:"VERTEX_ATTRIB_ARRAY_POINTER",34466:"NUM_COMPRESSED_TEXTURE_FORMATS",34467:"COMPRESSED_TEXTURE_FORMATS",34660:"BUFFER_SIZE",34661:"BUFFER_USAGE",34816:"STENCIL_BACK_FUNC",34817:"STENCIL_BACK_FAIL",34818:"STENCIL_BACK_PASS_DEPTH_FAIL",34819:"STENCIL_BACK_PASS_DEPTH_PASS",34877:"BLEND_EQUATION_ALPHA",34921:"MAX_VERTEX_ATTRIBS",34922:"VERTEX_ATTRIB_ARRAY_NORMALIZED",34930:"MAX_TEXTURE_IMAGE_UNITS",34962:"ARRAY_BUFFER",34963:"ELEMENT_ARRAY_BUFFER",34964:"ARRAY_BUFFER_BINDING",34965:"ELEMENT_ARRAY_BUFFER_BINDING",34975:"VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",35040:"STREAM_DRAW",35044:"STATIC_DRAW",35048:"DYNAMIC_DRAW",35632:"FRAGMENT_SHADER",35633:"VERTEX_SHADER",35660:"MAX_VERTEX_TEXTURE_IMAGE_UNITS",35661:"MAX_COMBINED_TEXTURE_IMAGE_UNITS",35663:"SHADER_TYPE",35664:"FLOAT_VEC2",35665:"FLOAT_VEC3",35666:"FLOAT_VEC4",35667:"INT_VEC2",35668:"INT_VEC3",35669:"INT_VEC4",35670:"BOOL",35671:"BOOL_VEC2",35672:"BOOL_VEC3",35673:"BOOL_VEC4",35674:"FLOAT_MAT2",35675:"FLOAT_MAT3",35676:"FLOAT_MAT4",35678:"SAMPLER_2D",35680:"SAMPLER_CUBE",35712:"DELETE_STATUS",35713:"COMPILE_STATUS",35714:"LINK_STATUS",35715:"VALIDATE_STATUS",35716:"INFO_LOG_LENGTH",35717:"ATTACHED_SHADERS",35718:"ACTIVE_UNIFORMS",35719:"ACTIVE_UNIFORM_MAX_LENGTH",35720:"SHADER_SOURCE_LENGTH",35721:"ACTIVE_ATTRIBUTES",35722:"ACTIVE_ATTRIBUTE_MAX_LENGTH",35724:"SHADING_LANGUAGE_VERSION",35725:"CURRENT_PROGRAM",36003:"STENCIL_BACK_REF",36004:"STENCIL_BACK_VALUE_MASK",36005:"STENCIL_BACK_WRITEMASK",36006:"FRAMEBUFFER_BINDING",36007:"RENDERBUFFER_BINDING",36048:"FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",36049:"FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",36050:"FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",36051:"FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",36053:"FRAMEBUFFER_COMPLETE",36054:"FRAMEBUFFER_INCOMPLETE_ATTACHMENT",36055:"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",36057:"FRAMEBUFFER_INCOMPLETE_DIMENSIONS",36061:"FRAMEBUFFER_UNSUPPORTED",36064:"COLOR_ATTACHMENT0",36096:"DEPTH_ATTACHMENT",36128:"STENCIL_ATTACHMENT",36160:"FRAMEBUFFER",36161:"RENDERBUFFER",36162:"RENDERBUFFER_WIDTH",36163:"RENDERBUFFER_HEIGHT",36164:"RENDERBUFFER_INTERNAL_FORMAT",36168:"STENCIL_INDEX8",36176:"RENDERBUFFER_RED_SIZE",36177:"RENDERBUFFER_GREEN_SIZE",36178:"RENDERBUFFER_BLUE_SIZE",36179:"RENDERBUFFER_ALPHA_SIZE",36180:"RENDERBUFFER_DEPTH_SIZE",36181:"RENDERBUFFER_STENCIL_SIZE",36194:"RGB565",36336:"LOW_FLOAT",36337:"MEDIUM_FLOAT",36338:"HIGH_FLOAT",36339:"LOW_INT",36340:"MEDIUM_INT",36341:"HIGH_INT",36346:"SHADER_COMPILER",36347:"MAX_VERTEX_UNIFORM_VECTORS",36348:"MAX_VARYING_VECTORS",36349:"MAX_FRAGMENT_UNIFORM_VECTORS",37440:"UNPACK_FLIP_Y_WEBGL",37441:"UNPACK_PREMULTIPLY_ALPHA_WEBGL",37442:"CONTEXT_LOST_WEBGL",37443:"UNPACK_COLORSPACE_CONVERSION_WEBGL",37444:"BROWSER_DEFAULT_WEBGL"}},{}],263:[function(t,e,r){var n=t("./1.0/numbers");e.exports=function(t){return n[t]}},{"./1.0/numbers":262}],264:[function(t,e,r){"use strict";e.exports=function(t){var e=t.gl,r=n(e),o=i(e,[{buffer:r,type:e.FLOAT,size:3,offset:0,stride:40},{buffer:r,type:e.FLOAT,size:4,offset:12,stride:40},{buffer:r,type:e.FLOAT,size:3,offset:28,stride:40}]),l=a(e);l.attributes.position.location=0,l.attributes.color.location=1,l.attributes.offset.location=2;var c=new s(e,r,o,l);return c.update(t),c};var n=t("gl-buffer"),i=t("gl-vao"),a=t("./shaders/index"),o=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function s(t,e,r,n){this.gl=t,this.shader=n,this.buffer=e,this.vao=r,this.pixelRatio=1,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.lineWidth=[1,1,1],this.capSize=[10,10,10],this.lineCount=[0,0,0],this.lineOffset=[0,0,0],this.opacity=1,this.hasAlpha=!1}var l=s.prototype;function c(t,e){for(var r=0;r<3;++r)t[0][r]=Math.min(t[0][r],e[r]),t[1][r]=Math.max(t[1][r],e[r])}l.isOpaque=function(){return!this.hasAlpha},l.isTransparent=function(){return this.hasAlpha},l.drawTransparent=l.draw=function(t){var e=this.gl,r=this.shader.uniforms;this.shader.bind();var n=r.view=t.view||o,i=r.projection=t.projection||o;r.model=t.model||o,r.clipBounds=this.clipBounds,r.opacity=this.opacity;var a=n[12],s=n[13],l=n[14],c=n[15],u=(t._ortho||!1?2:1)*this.pixelRatio*(i[3]*a+i[7]*s+i[11]*l+i[15]*c)/e.drawingBufferHeight;this.vao.bind();for(var f=0;f<3;++f)e.lineWidth(this.lineWidth[f]*this.pixelRatio),r.capSize=this.capSize[f]*u,this.lineCount[f]&&e.drawArrays(e.LINES,this.lineOffset[f],this.lineCount[f]);this.vao.unbind()};var u=function(){for(var t=new Array(3),e=0;e<3;++e){for(var r=[],n=1;n<=2;++n)for(var i=-1;i<=1;i+=2){var a=[0,0,0];a[(n+e)%3]=i,r.push(a)}t[e]=r}return t}();function f(t,e,r,n){for(var i=u[n],a=0;a0)(m=u.slice())[s]+=p[1][s],i.push(u[0],u[1],u[2],d[0],d[1],d[2],d[3],0,0,0,m[0],m[1],m[2],d[0],d[1],d[2],d[3],0,0,0),c(this.bounds,m),o+=2+f(i,m,d,s)}}this.lineCount[s]=o-this.lineOffset[s]}this.buffer.update(i)}},l.dispose=function(){this.shader.dispose(),this.buffer.dispose(),this.vao.dispose()}},{"./shaders/index":266,"gl-buffer":258,"gl-vao":352}],265:[function(t,e,r){arguments[4][256][0].apply(r,arguments)},{dup:256}],266:[function(t,e,r){"use strict";var n=t("glslify"),i=t("gl-shader"),a=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position, offset;\nattribute vec4 color;\nuniform mat4 model, view, projection;\nuniform float capSize;\nvarying vec4 fragColor;\nvarying vec3 fragPosition;\n\nvoid main() {\n vec4 worldPosition = model * vec4(position, 1.0);\n worldPosition = (worldPosition / worldPosition.w) + vec4(capSize * offset, 0.0);\n gl_Position = projection * view * worldPosition;\n fragColor = color;\n fragPosition = position;\n}"]),o=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float opacity;\nvarying vec3 fragPosition;\nvarying vec4 fragColor;\n\nvoid main() {\n if (\n outOfRange(clipBounds[0], clipBounds[1], fragPosition) ||\n fragColor.a * opacity == 0.\n ) discard;\n\n gl_FragColor = opacity * fragColor;\n}"]);e.exports=function(t){return i(t,a,o,null,[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"offset",type:"vec3"}])}},{"gl-shader":330,glslify:265}],267:[function(t,e,r){"use strict";var n=t("gl-texture2d");e.exports=function(t,e,r,n){i||(i=t.FRAMEBUFFER_UNSUPPORTED,a=t.FRAMEBUFFER_INCOMPLETE_ATTACHMENT,o=t.FRAMEBUFFER_INCOMPLETE_DIMENSIONS,s=t.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT);var c=t.getExtension("WEBGL_draw_buffers");!l&&c&&function(t,e){var r=t.getParameter(e.MAX_COLOR_ATTACHMENTS_WEBGL);l=new Array(r+1);for(var n=0;n<=r;++n){for(var i=new Array(r),a=0;au||r<0||r>u)throw new Error("gl-fbo: Parameters are too large for FBO");var f=1;if("color"in(n=n||{})){if((f=Math.max(0|n.color,0))<0)throw new Error("gl-fbo: Must specify a nonnegative number of colors");if(f>1){if(!c)throw new Error("gl-fbo: Multiple draw buffer extension not supported");if(f>t.getParameter(c.MAX_COLOR_ATTACHMENTS_WEBGL))throw new Error("gl-fbo: Context does not support "+f+" draw buffers")}}var h=t.UNSIGNED_BYTE,p=t.getExtension("OES_texture_float");if(n.float&&f>0){if(!p)throw new Error("gl-fbo: Context does not support floating point textures");h=t.FLOAT}else n.preferFloat&&f>0&&p&&(h=t.FLOAT);var m=!0;"depth"in n&&(m=!!n.depth);var g=!1;"stencil"in n&&(g=!!n.stencil);return new d(t,e,r,h,f,m,g,c)};var i,a,o,s,l=null;function c(t){return[t.getParameter(t.FRAMEBUFFER_BINDING),t.getParameter(t.RENDERBUFFER_BINDING),t.getParameter(t.TEXTURE_BINDING_2D)]}function u(t,e){t.bindFramebuffer(t.FRAMEBUFFER,e[0]),t.bindRenderbuffer(t.RENDERBUFFER,e[1]),t.bindTexture(t.TEXTURE_2D,e[2])}function f(t){switch(t){case i:throw new Error("gl-fbo: Framebuffer unsupported");case a:throw new Error("gl-fbo: Framebuffer incomplete attachment");case o:throw new Error("gl-fbo: Framebuffer incomplete dimensions");case s:throw new Error("gl-fbo: Framebuffer incomplete missing attachment");default:throw new Error("gl-fbo: Framebuffer failed for unspecified reason")}}function h(t,e,r,i,a,o){if(!i)return null;var s=n(t,e,r,a,i);return s.magFilter=t.NEAREST,s.minFilter=t.NEAREST,s.mipSamples=1,s.bind(),t.framebufferTexture2D(t.FRAMEBUFFER,o,t.TEXTURE_2D,s.handle,0),s}function p(t,e,r,n,i){var a=t.createRenderbuffer();return t.bindRenderbuffer(t.RENDERBUFFER,a),t.renderbufferStorage(t.RENDERBUFFER,n,e,r),t.framebufferRenderbuffer(t.FRAMEBUFFER,i,t.RENDERBUFFER,a),a}function d(t,e,r,n,i,a,o,s){this.gl=t,this._shape=[0|e,0|r],this._destroyed=!1,this._ext=s,this.color=new Array(i);for(var d=0;d1&&s.drawBuffersWEBGL(l[o]);var y=r.getExtension("WEBGL_depth_texture");y?d?t.depth=h(r,i,a,y.UNSIGNED_INT_24_8_WEBGL,r.DEPTH_STENCIL,r.DEPTH_STENCIL_ATTACHMENT):m&&(t.depth=h(r,i,a,r.UNSIGNED_SHORT,r.DEPTH_COMPONENT,r.DEPTH_ATTACHMENT)):m&&d?t._depth_rb=p(r,i,a,r.DEPTH_STENCIL,r.DEPTH_STENCIL_ATTACHMENT):m?t._depth_rb=p(r,i,a,r.DEPTH_COMPONENT16,r.DEPTH_ATTACHMENT):d&&(t._depth_rb=p(r,i,a,r.STENCIL_INDEX,r.STENCIL_ATTACHMENT));var x=r.checkFramebufferStatus(r.FRAMEBUFFER);if(x!==r.FRAMEBUFFER_COMPLETE){t._destroyed=!0,r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteFramebuffer(t.handle),t.handle=null,t.depth&&(t.depth.dispose(),t.depth=null),t._depth_rb&&(r.deleteRenderbuffer(t._depth_rb),t._depth_rb=null);for(v=0;vi||r<0||r>i)throw new Error("gl-fbo: Can't resize FBO, invalid dimensions");t._shape[0]=e,t._shape[1]=r;for(var a=c(n),o=0;o>8*p&255;this.pickOffset=r,i.bind();var d=i.uniforms;d.viewTransform=t,d.pickOffset=e,d.shape=this.shape;var m=i.attributes;return this.positionBuffer.bind(),m.position.pointer(),this.weightBuffer.bind(),m.weight.pointer(s.UNSIGNED_BYTE,!1),this.idBuffer.bind(),m.pickId.pointer(s.UNSIGNED_BYTE,!1),s.drawArrays(s.TRIANGLES,0,o),r+this.shape[0]*this.shape[1]}}}(),f.pick=function(t,e,r){var n=this.pickOffset,i=this.shape[0]*this.shape[1];if(r=n+i)return null;var a=r-n,o=this.xData,s=this.yData;return{object:this,pointId:a,dataCoord:[o[a%this.shape[0]],s[a/this.shape[0]|0]]}},f.update=function(t){var e=(t=t||{}).shape||[0,0],r=t.x||i(e[0]),o=t.y||i(e[1]),s=t.z||new Float32Array(e[0]*e[1]),l=!1!==t.zsmooth;this.xData=r,this.yData=o;var c,u,f,p,d=t.colorLevels||[0],m=t.colorValues||[0,0,0,1],g=d.length,v=this.bounds;l?(c=v[0]=r[0],u=v[1]=o[0],f=v[2]=r[r.length-1],p=v[3]=o[o.length-1]):(c=v[0]=r[0]+(r[1]-r[0])/2,u=v[1]=o[0]+(o[1]-o[0])/2,f=v[2]=r[r.length-1]+(r[r.length-1]-r[r.length-2])/2,p=v[3]=o[o.length-1]+(o[o.length-1]-o[o.length-2])/2);var y=1/(f-c),x=1/(p-u),b=e[0],_=e[1];this.shape=[b,_];var w=(l?(b-1)*(_-1):b*_)*(h.length>>>1);this.numVertices=w;for(var T=a.mallocUint8(4*w),k=a.mallocFloat32(2*w),M=a.mallocUint8(2*w),A=a.mallocUint32(w),S=0,E=l?b-1:b,L=l?_-1:_,C=0;C max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform sampler2D dashTexture;\nuniform float dashScale;\nuniform float opacity;\n\nvarying vec3 worldPosition;\nvarying float pixelArcLength;\nvarying vec4 fragColor;\n\nvoid main() {\n if (\n outOfRange(clipBounds[0], clipBounds[1], worldPosition) ||\n fragColor.a * opacity == 0.\n ) discard;\n\n float dashWeight = texture2D(dashTexture, vec2(dashScale * pixelArcLength, 0)).r;\n if(dashWeight < 0.5) {\n discard;\n }\n gl_FragColor = fragColor * opacity;\n}\n"]),s=n(["precision highp float;\n#define GLSLIFY 1\n\n#define FLOAT_MAX 1.70141184e38\n#define FLOAT_MIN 1.17549435e-38\n\n// https://github.com/mikolalysenko/glsl-read-float/blob/master/index.glsl\nvec4 packFloat(float v) {\n float av = abs(v);\n\n //Handle special cases\n if(av < FLOAT_MIN) {\n return vec4(0.0, 0.0, 0.0, 0.0);\n } else if(v > FLOAT_MAX) {\n return vec4(127.0, 128.0, 0.0, 0.0) / 255.0;\n } else if(v < -FLOAT_MAX) {\n return vec4(255.0, 128.0, 0.0, 0.0) / 255.0;\n }\n\n vec4 c = vec4(0,0,0,0);\n\n //Compute exponent and mantissa\n float e = floor(log2(av));\n float m = av * pow(2.0, -e) - 1.0;\n\n //Unpack mantissa\n c[1] = floor(128.0 * m);\n m -= c[1] / 128.0;\n c[2] = floor(32768.0 * m);\n m -= c[2] / 32768.0;\n c[3] = floor(8388608.0 * m);\n\n //Unpack exponent\n float ebias = e + 127.0;\n c[0] = floor(ebias / 2.0);\n ebias -= c[0] * 2.0;\n c[1] += floor(ebias) * 128.0;\n\n //Unpack sign bit\n c[0] += 128.0 * step(0.0, -v);\n\n //Scale back to range\n return c / 255.0;\n}\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform float pickId;\nuniform vec3 clipBounds[2];\n\nvarying vec3 worldPosition;\nvarying float pixelArcLength;\nvarying vec4 fragColor;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], worldPosition)) discard;\n\n gl_FragColor = vec4(pickId/255.0, packFloat(pixelArcLength).xyz);\n}"]),l=[{name:"position",type:"vec3"},{name:"nextPosition",type:"vec3"},{name:"arcLength",type:"float"},{name:"lineWidth",type:"float"},{name:"color",type:"vec4"}];r.createShader=function(t){return i(t,a,o,null,l)},r.createPickShader=function(t){return i(t,a,s,null,l)}},{"gl-shader":330,glslify:273}],272:[function(t,e,r){"use strict";e.exports=function(t){var e=t.gl||t.scene&&t.scene.gl,r=f(e);r.attributes.position.location=0,r.attributes.nextPosition.location=1,r.attributes.arcLength.location=2,r.attributes.lineWidth.location=3,r.attributes.color.location=4;var o=h(e);o.attributes.position.location=0,o.attributes.nextPosition.location=1,o.attributes.arcLength.location=2,o.attributes.lineWidth.location=3,o.attributes.color.location=4;for(var s=n(e),l=i(e,[{buffer:s,size:3,offset:0,stride:48},{buffer:s,size:3,offset:12,stride:48},{buffer:s,size:1,offset:24,stride:48},{buffer:s,size:1,offset:28,stride:48},{buffer:s,size:4,offset:32,stride:48}]),u=c(new Array(1024),[256,1,4]),p=0;p<1024;++p)u.data[p]=255;var d=a(e,u);d.wrap=e.REPEAT;var m=new v(e,r,o,s,l,d);return m.update(t),m};var n=t("gl-buffer"),i=t("gl-vao"),a=t("gl-texture2d"),o=new Uint8Array(4),s=new Float32Array(o.buffer);var l=t("binary-search-bounds"),c=t("ndarray"),u=t("./lib/shaders"),f=u.createShader,h=u.createPickShader,p=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function d(t,e){for(var r=0,n=0;n<3;++n){var i=t[n]-e[n];r+=i*i}return Math.sqrt(r)}function m(t){for(var e=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],r=0;r<3;++r)e[0][r]=Math.max(t[0][r],e[0][r]),e[1][r]=Math.min(t[1][r],e[1][r]);return e}function g(t,e,r,n){this.arcLength=t,this.position=e,this.index=r,this.dataCoordinate=n}function v(t,e,r,n,i,a){this.gl=t,this.shader=e,this.pickShader=r,this.buffer=n,this.vao=i,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.points=[],this.arcLength=[],this.vertexCount=0,this.bounds=[[0,0,0],[0,0,0]],this.pickId=0,this.lineWidth=1,this.texture=a,this.dashScale=1,this.opacity=1,this.hasAlpha=!1,this.dirty=!0,this.pixelRatio=1}var y=v.prototype;y.isTransparent=function(){return this.hasAlpha},y.isOpaque=function(){return!this.hasAlpha},y.pickSlots=1,y.setPickBase=function(t){this.pickId=t},y.drawTransparent=y.draw=function(t){if(this.vertexCount){var e=this.gl,r=this.shader,n=this.vao;r.bind(),r.uniforms={model:t.model||p,view:t.view||p,projection:t.projection||p,clipBounds:m(this.clipBounds),dashTexture:this.texture.bind(),dashScale:this.dashScale/this.arcLength[this.arcLength.length-1],opacity:this.opacity,screenShape:[e.drawingBufferWidth,e.drawingBufferHeight],pixelRatio:this.pixelRatio},n.bind(),n.draw(e.TRIANGLE_STRIP,this.vertexCount),n.unbind()}},y.drawPick=function(t){if(this.vertexCount){var e=this.gl,r=this.pickShader,n=this.vao;r.bind(),r.uniforms={model:t.model||p,view:t.view||p,projection:t.projection||p,pickId:this.pickId,clipBounds:m(this.clipBounds),screenShape:[e.drawingBufferWidth,e.drawingBufferHeight],pixelRatio:this.pixelRatio},n.bind(),n.draw(e.TRIANGLE_STRIP,this.vertexCount),n.unbind()}},y.update=function(t){var e,r;this.dirty=!0;var n=!!t.connectGaps;"dashScale"in t&&(this.dashScale=t.dashScale),this.hasAlpha=!1,"opacity"in t&&(this.opacity=+t.opacity,this.opacity<1&&(this.hasAlpha=!0));var i=[],a=[],o=[],s=0,u=0,f=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],h=t.position||t.positions;if(h){var p=t.color||t.colors||[0,0,0,1],m=t.lineWidth||1,g=!1;t:for(e=1;e0){for(var w=0;w<24;++w)i.push(i[i.length-12]);u+=2,g=!0}continue t}f[0][r]=Math.min(f[0][r],b[r],_[r]),f[1][r]=Math.max(f[1][r],b[r],_[r])}Array.isArray(p[0])?(v=p.length>e-1?p[e-1]:p.length>0?p[p.length-1]:[0,0,0,1],y=p.length>e?p[e]:p.length>0?p[p.length-1]:[0,0,0,1]):v=y=p,3===v.length&&(v=[v[0],v[1],v[2],1]),3===y.length&&(y=[y[0],y[1],y[2],1]),!this.hasAlpha&&v[3]<1&&(this.hasAlpha=!0),x=Array.isArray(m)?m.length>e-1?m[e-1]:m.length>0?m[m.length-1]:[0,0,0,1]:m;var T=s;if(s+=d(b,_),g){for(r=0;r<2;++r)i.push(b[0],b[1],b[2],_[0],_[1],_[2],T,x,v[0],v[1],v[2],v[3]);u+=2,g=!1}i.push(b[0],b[1],b[2],_[0],_[1],_[2],T,x,v[0],v[1],v[2],v[3],b[0],b[1],b[2],_[0],_[1],_[2],T,-x,v[0],v[1],v[2],v[3],_[0],_[1],_[2],b[0],b[1],b[2],s,-x,y[0],y[1],y[2],y[3],_[0],_[1],_[2],b[0],b[1],b[2],s,x,y[0],y[1],y[2],y[3]),u+=4}}if(this.buffer.update(i),a.push(s),o.push(h[h.length-1].slice()),this.bounds=f,this.vertexCount=u,this.points=o,this.arcLength=a,"dashes"in t){var k=t.dashes.slice();for(k.unshift(0),e=1;e1.0001)return null;v+=g[f]}if(Math.abs(v-1)>.001)return null;return[h,s(t,g),g]}},{barycentric:80,"polytope-closest-point/lib/closest_point_2d.js":504}],305:[function(t,e,r){var n=t("glslify"),i=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position, normal;\nattribute vec4 color;\nattribute vec2 uv;\n\nuniform mat4 model\n , view\n , projection\n , inverseModel;\nuniform vec3 eyePosition\n , lightPosition;\n\nvarying vec3 f_normal\n , f_lightDirection\n , f_eyeDirection\n , f_data;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvec4 project(vec3 p) {\n return projection * view * model * vec4(p, 1.0);\n}\n\nvoid main() {\n gl_Position = project(position);\n\n //Lighting geometry parameters\n vec4 cameraCoordinate = view * vec4(position , 1.0);\n cameraCoordinate.xyz /= cameraCoordinate.w;\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\n\n f_color = color;\n f_data = position;\n f_uv = uv;\n}\n"]),a=n(["#extension GL_OES_standard_derivatives : enable\n\nprecision highp float;\n#define GLSLIFY 1\n\nfloat beckmannDistribution(float x, float roughness) {\n float NdotH = max(x, 0.0001);\n float cos2Alpha = NdotH * NdotH;\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\n float roughness2 = roughness * roughness;\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\n return exp(tan2Alpha / roughness2) / denom;\n}\n\nfloat cookTorranceSpecular(\n vec3 lightDirection,\n vec3 viewDirection,\n vec3 surfaceNormal,\n float roughness,\n float fresnel) {\n\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\n\n //Half angle vector\n vec3 H = normalize(lightDirection + viewDirection);\n\n //Geometric term\n float NdotH = max(dot(surfaceNormal, H), 0.0);\n float VdotH = max(dot(viewDirection, H), 0.000001);\n float LdotH = max(dot(lightDirection, H), 0.000001);\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\n float G = min(1.0, min(G1, G2));\n \n //Distribution term\n float D = beckmannDistribution(NdotH, roughness);\n\n //Fresnel term\n float F = pow(1.0 - VdotN, fresnel);\n\n //Multiply terms and done\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\n}\n\n//#pragma glslify: beckmann = require(glsl-specular-beckmann) // used in gl-surface3d\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float roughness\n , fresnel\n , kambient\n , kdiffuse\n , kspecular;\nuniform sampler2D texture;\n\nvarying vec3 f_normal\n , f_lightDirection\n , f_eyeDirection\n , f_data;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n if (f_color.a == 0.0 ||\n outOfRange(clipBounds[0], clipBounds[1], f_data)\n ) discard;\n\n vec3 N = normalize(f_normal);\n vec3 L = normalize(f_lightDirection);\n vec3 V = normalize(f_eyeDirection);\n\n if(gl_FrontFacing) {\n N = -N;\n }\n\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\n //float specular = max(0.0, beckmann(L, V, N, roughness)); // used in gl-surface3d\n\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\n\n vec4 surfaceColor = vec4(f_color.rgb, 1.0) * texture2D(texture, f_uv);\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\n\n gl_FragColor = litColor * f_color.a;\n}\n"]),o=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 uv;\n\nuniform mat4 model, view, projection;\n\nvarying vec4 f_color;\nvarying vec3 f_data;\nvarying vec2 f_uv;\n\nvoid main() {\n gl_Position = projection * view * model * vec4(position, 1.0);\n f_color = color;\n f_data = position;\n f_uv = uv;\n}"]),s=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform sampler2D texture;\nuniform float opacity;\n\nvarying vec4 f_color;\nvarying vec3 f_data;\nvarying vec2 f_uv;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_data)) discard;\n\n gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\n}"]),l=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 uv;\nattribute float pointSize;\n\nuniform mat4 model, view, projection;\nuniform vec3 clipBounds[2];\n\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n gl_Position = vec4(0.0, 0.0 ,0.0 ,0.0);\n } else {\n gl_Position = projection * view * model * vec4(position, 1.0);\n }\n gl_PointSize = pointSize;\n f_color = color;\n f_uv = uv;\n}"]),c=n(["precision highp float;\n#define GLSLIFY 1\n\nuniform sampler2D texture;\nuniform float opacity;\n\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n vec2 pointR = gl_PointCoord.xy - vec2(0.5, 0.5);\n if(dot(pointR, pointR) > 0.25) {\n discard;\n }\n gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\n}"]),u=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n gl_Position = projection * view * model * vec4(position, 1.0);\n f_id = id;\n f_position = position;\n}"]),f=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float pickId;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n\n gl_FragColor = vec4(pickId, f_id.xyz);\n}"]),h=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute float pointSize;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\nuniform vec3 clipBounds[2];\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n gl_Position = vec4(0.0, 0.0, 0.0, 0.0);\n } else {\n gl_Position = projection * view * model * vec4(position, 1.0);\n gl_PointSize = pointSize;\n }\n f_id = id;\n f_position = position;\n}"]),p=n(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec3 position;\n\nuniform mat4 model, view, projection;\n\nvoid main() {\n gl_Position = projection * view * model * vec4(position, 1.0);\n}"]),d=n(["precision highp float;\n#define GLSLIFY 1\n\nuniform vec3 contourColor;\n\nvoid main() {\n gl_FragColor = vec4(contourColor, 1.0);\n}\n"]);r.meshShader={vertex:i,fragment:a,attributes:[{name:"position",type:"vec3"},{name:"normal",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"}]},r.wireShader={vertex:o,fragment:s,attributes:[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"}]},r.pointShader={vertex:l,fragment:c,attributes:[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"},{name:"pointSize",type:"float"}]},r.pickShader={vertex:u,fragment:f,attributes:[{name:"position",type:"vec3"},{name:"id",type:"vec4"}]},r.pointPickShader={vertex:h,fragment:f,attributes:[{name:"position",type:"vec3"},{name:"pointSize",type:"float"},{name:"id",type:"vec4"}]},r.contourShader={vertex:p,fragment:d,attributes:[{name:"position",type:"vec3"}]}},{glslify:433}],306:[function(t,e,r){"use strict";var n=t("gl-shader"),i=t("gl-buffer"),a=t("gl-vao"),o=t("gl-texture2d"),s=t("normals"),l=t("gl-mat4/multiply"),c=t("gl-mat4/invert"),u=t("ndarray"),f=t("colormap"),h=t("simplicial-complex-contour"),p=t("typedarray-pool"),d=t("./lib/shaders"),m=t("./lib/closest-point"),g=d.meshShader,v=d.wireShader,y=d.pointShader,x=d.pickShader,b=d.pointPickShader,_=d.contourShader,w=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function T(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,m,g,v,y,x,b,_,T,k,M,A,S){this.gl=t,this.pixelRatio=1,this.cells=[],this.positions=[],this.intensity=[],this.texture=e,this.dirty=!0,this.triShader=r,this.lineShader=n,this.pointShader=i,this.pickShader=a,this.pointPickShader=o,this.contourShader=s,this.trianglePositions=l,this.triangleColors=u,this.triangleNormals=h,this.triangleUVs=f,this.triangleIds=c,this.triangleVAO=p,this.triangleCount=0,this.lineWidth=1,this.edgePositions=d,this.edgeColors=g,this.edgeUVs=v,this.edgeIds=m,this.edgeVAO=y,this.edgeCount=0,this.pointPositions=x,this.pointColors=_,this.pointUVs=T,this.pointSizes=k,this.pointIds=b,this.pointVAO=M,this.pointCount=0,this.contourLineWidth=1,this.contourPositions=A,this.contourVAO=S,this.contourCount=0,this.contourColor=[0,0,0],this.contourEnable=!0,this.pickVertex=!0,this.pickId=1,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.lightPosition=[1e5,1e5,0],this.ambientLight=.8,this.diffuseLight=.8,this.specularLight=2,this.roughness=.5,this.fresnel=1.5,this.opacity=1,this.hasAlpha=!1,this.opacityscale=!1,this._model=w,this._view=w,this._projection=w,this._resolution=[1,1]}var k=T.prototype;function M(t,e){if(!e)return 1;if(!e.length)return 1;for(var r=0;rt&&r>0){var n=(e[r][0]-t)/(e[r][0]-e[r-1][0]);return e[r][1]*(1-n)+n*e[r-1][1]}}return 1}function A(t){var e=n(t,g.vertex,g.fragment);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e.attributes.normal.location=4,e}function S(t){var e=n(t,v.vertex,v.fragment);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e}function E(t){var e=n(t,y.vertex,y.fragment);return e.attributes.position.location=0,e.attributes.color.location=2,e.attributes.uv.location=3,e.attributes.pointSize.location=4,e}function L(t){var e=n(t,x.vertex,x.fragment);return e.attributes.position.location=0,e.attributes.id.location=1,e}function C(t){var e=n(t,b.vertex,b.fragment);return e.attributes.position.location=0,e.attributes.id.location=1,e.attributes.pointSize.location=4,e}function P(t){var e=n(t,_.vertex,_.fragment);return e.attributes.position.location=0,e}k.isOpaque=function(){return!this.hasAlpha},k.isTransparent=function(){return this.hasAlpha},k.pickSlots=1,k.setPickBase=function(t){this.pickId=t},k.highlight=function(t){if(t&&this.contourEnable){for(var e=h(this.cells,this.intensity,t.intensity),r=e.cells,n=e.vertexIds,i=e.vertexWeights,a=r.length,o=p.mallocFloat32(6*a),s=0,l=0;l0&&((f=this.triShader).bind(),f.uniforms=s,this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind());this.edgeCount>0&&this.lineWidth>0&&((f=this.lineShader).bind(),f.uniforms=s,this.edgeVAO.bind(),e.lineWidth(this.lineWidth*this.pixelRatio),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind());this.pointCount>0&&((f=this.pointShader).bind(),f.uniforms=s,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind());this.contourEnable&&this.contourCount>0&&this.contourLineWidth>0&&((f=this.contourShader).bind(),f.uniforms=s,this.contourVAO.bind(),e.drawArrays(e.LINES,0,this.contourCount),this.contourVAO.unbind())},k.drawPick=function(t){t=t||{};for(var e=this.gl,r=t.model||w,n=t.view||w,i=t.projection||w,a=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],o=0;o<3;++o)a[0][o]=Math.max(a[0][o],this.clipBounds[0][o]),a[1][o]=Math.min(a[1][o],this.clipBounds[1][o]);this._model=[].slice.call(r),this._view=[].slice.call(n),this._projection=[].slice.call(i),this._resolution=[e.drawingBufferWidth,e.drawingBufferHeight];var s,l={model:r,view:n,projection:i,clipBounds:a,pickId:this.pickId/255};((s=this.pickShader).bind(),s.uniforms=l,this.triangleCount>0&&(this.triangleVAO.bind(),e.drawArrays(e.TRIANGLES,0,3*this.triangleCount),this.triangleVAO.unbind()),this.edgeCount>0&&(this.edgeVAO.bind(),e.lineWidth(this.lineWidth*this.pixelRatio),e.drawArrays(e.LINES,0,2*this.edgeCount),this.edgeVAO.unbind()),this.pointCount>0)&&((s=this.pointPickShader).bind(),s.uniforms=l,this.pointVAO.bind(),e.drawArrays(e.POINTS,0,this.pointCount),this.pointVAO.unbind())},k.pick=function(t){if(!t)return null;if(t.id!==this.pickId)return null;for(var e=t.value[0]+256*t.value[1]+65536*t.value[2],r=this.cells[e],n=this.positions,i=new Array(r.length),a=0;ai[k]&&(r.uniforms.dataAxis=c,r.uniforms.screenOffset=u,r.uniforms.color=g[t],r.uniforms.angle=v[t],a.drawArrays(a.TRIANGLES,i[k],i[M]-i[k]))),y[t]&&T&&(u[1^t]-=A*p*x[t],r.uniforms.dataAxis=f,r.uniforms.screenOffset=u,r.uniforms.color=b[t],r.uniforms.angle=_[t],a.drawArrays(a.TRIANGLES,w,T)),u[1^t]=A*s[2+(1^t)]-1,d[t+2]&&(u[1^t]+=A*p*m[t+2],ki[k]&&(r.uniforms.dataAxis=c,r.uniforms.screenOffset=u,r.uniforms.color=g[t+2],r.uniforms.angle=v[t+2],a.drawArrays(a.TRIANGLES,i[k],i[M]-i[k]))),y[t+2]&&T&&(u[1^t]+=A*p*x[t+2],r.uniforms.dataAxis=f,r.uniforms.screenOffset=u,r.uniforms.color=b[t+2],r.uniforms.angle=_[t+2],a.drawArrays(a.TRIANGLES,w,T))}),m.drawTitle=function(){var t=[0,0],e=[0,0];return function(){var r=this.plot,n=this.shader,i=r.gl,a=r.screenBox,o=r.titleCenter,s=r.titleAngle,l=r.titleColor,c=r.pixelRatio;if(this.titleCount){for(var u=0;u<2;++u)e[u]=2*(o[u]*c-a[u])/(a[2+u]-a[u])-1;n.bind(),n.uniforms.dataAxis=t,n.uniforms.screenOffset=e,n.uniforms.angle=s,n.uniforms.color=l,i.drawArrays(i.TRIANGLES,this.titleOffset,this.titleCount)}}}(),m.bind=(h=[0,0],p=[0,0],d=[0,0],function(){var t=this.plot,e=this.shader,r=t._tickBounds,n=t.dataBox,i=t.screenBox,a=t.viewBox;e.bind();for(var o=0;o<2;++o){var s=r[o],l=r[o+2]-s,c=.5*(n[o+2]+n[o]),u=n[o+2]-n[o],f=a[o],m=a[o+2]-f,g=i[o],v=i[o+2]-g;p[o]=2*l/u*m/v,h[o]=2*(s-c)/u*m/v}d[1]=2*t.pixelRatio/(i[3]-i[1]),d[0]=d[1]*(i[3]-i[1])/(i[2]-i[0]),e.uniforms.dataScale=p,e.uniforms.dataShift=h,e.uniforms.textScale=d,this.vbo.bind(),e.attributes.textCoordinate.pointer()}),m.update=function(t){var e,r,n,i,o,s=[],l=t.ticks,c=t.bounds;for(o=0;o<2;++o){var u=[Math.floor(s.length/3)],f=[-1/0],h=l[o];for(e=0;e=0){var m=e[d]-n[d]*(e[d+2]-e[d])/(n[d+2]-n[d]);0===d?o.drawLine(m,e[1],m,e[3],p[d],h[d]):o.drawLine(e[0],m,e[2],m,p[d],h[d])}}for(d=0;d=0;--t)this.objects[t].dispose();this.objects.length=0;for(t=this.overlays.length-1;t>=0;--t)this.overlays[t].dispose();this.overlays.length=0,this.gl=null},c.addObject=function(t){this.objects.indexOf(t)<0&&(this.objects.push(t),this.setDirty())},c.removeObject=function(t){for(var e=this.objects,r=0;rMath.abs(e))c.rotate(a,0,0,-t*r*Math.PI*d.rotateSpeed/window.innerWidth);else if(!d._ortho){var o=-d.zoomSpeed*i*e/window.innerHeight*(a-c.lastT())/20;c.pan(a,0,0,f*(Math.exp(o)-1))}}}),!0)},d.enableMouseListeners(),d};var n=t("right-now"),i=t("3d-view"),a=t("mouse-change"),o=t("mouse-wheel"),s=t("mouse-event-offset"),l=t("has-passive-events")},{"3d-view":54,"has-passive-events":435,"mouse-change":462,"mouse-event-offset":463,"mouse-wheel":465,"right-now":534}],315:[function(t,e,r){var n=t("glslify"),i=t("gl-shader"),a=n(["precision mediump float;\n#define GLSLIFY 1\nattribute vec2 position;\nvarying vec2 uv;\nvoid main() {\n uv = position;\n gl_Position = vec4(position, 0, 1);\n}"]),o=n(["precision mediump float;\n#define GLSLIFY 1\n\nuniform sampler2D accumBuffer;\nvarying vec2 uv;\n\nvoid main() {\n vec4 accum = texture2D(accumBuffer, 0.5 * (uv + 1.0));\n gl_FragColor = min(vec4(1,1,1,1), accum);\n}"]);e.exports=function(t){return i(t,a,o,null,[{name:"position",type:"vec2"}])}},{"gl-shader":330,glslify:316}],316:[function(t,e,r){arguments[4][256][0].apply(r,arguments)},{dup:256}],317:[function(t,e,r){"use strict";var n=t("./camera.js"),i=t("gl-axes3d"),a=t("gl-axes3d/properties"),o=t("gl-spikes3d"),s=t("gl-select-static"),l=t("gl-fbo"),c=t("a-big-triangle"),u=t("mouse-change"),f=t("gl-mat4/perspective"),h=t("gl-mat4/ortho"),p=t("./lib/shader"),d=t("is-mobile")({tablet:!0,featureDetect:!0});function m(){this.mouse=[-1,-1],this.screen=null,this.distance=1/0,this.index=null,this.dataCoordinate=null,this.dataPosition=null,this.object=null,this.data=null}function g(t){var e=Math.round(Math.log(Math.abs(t))/Math.log(10));if(e<0){var r=Math.round(Math.pow(10,-e));return Math.ceil(t*r)/r}if(e>0){r=Math.round(Math.pow(10,e));return Math.ceil(t/r)*r}return Math.ceil(t)}function v(t){return"boolean"!=typeof t||t}e.exports={createScene:function(t){(t=t||{}).camera=t.camera||{};var e=t.canvas;if(!e){if(e=document.createElement("canvas"),t.container)t.container.appendChild(e);else document.body.appendChild(e)}var r=t.gl;r||(t.glOptions&&(d=!!t.glOptions.preserveDrawingBuffer),r=function(t,e){var r=null;try{(r=t.getContext("webgl",e))||(r=t.getContext("experimental-webgl",e))}catch(t){return null}return r}(e,t.glOptions||{premultipliedAlpha:!0,antialias:!0,preserveDrawingBuffer:d}));if(!r)throw new Error("webgl not supported");var y=t.bounds||[[-10,-10,-10],[10,10,10]],x=new m,b=l(r,r.drawingBufferWidth,r.drawingBufferHeight,{preferFloat:!d}),_=p(r),w=t.cameraObject&&!0===t.cameraObject._ortho||t.camera.projection&&"orthographic"===t.camera.projection.type||!1,T={eye:t.camera.eye||[2,0,0],center:t.camera.center||[0,0,0],up:t.camera.up||[0,1,0],zoomMin:t.camera.zoomMax||.1,zoomMax:t.camera.zoomMin||100,mode:t.camera.mode||"turntable",_ortho:w},k=t.axes||{},M=i(r,k);M.enable=!k.disable;var A=t.spikes||{},S=o(r,A),E=[],L=[],C=[],P=[],I=!0,O=!0,z=new Array(16),D=new Array(16),R={view:null,projection:z,model:D,_ortho:!1},F=(O=!0,[r.drawingBufferWidth,r.drawingBufferHeight]),B=t.cameraObject||n(e,T),N={gl:r,contextLost:!1,pixelRatio:t.pixelRatio||1,canvas:e,selection:x,camera:B,axes:M,axesPixels:null,spikes:S,bounds:y,objects:E,shape:F,aspect:t.aspectRatio||[1,1,1],pickRadius:t.pickRadius||10,zNear:t.zNear||.01,zFar:t.zFar||1e3,fovy:t.fovy||Math.PI/4,clearColor:t.clearColor||[0,0,0,0],autoResize:v(t.autoResize),autoBounds:v(t.autoBounds),autoScale:!!t.autoScale,autoCenter:v(t.autoCenter),clipToBounds:v(t.clipToBounds),snapToData:!!t.snapToData,onselect:t.onselect||null,onrender:t.onrender||null,onclick:t.onclick||null,cameraParams:R,oncontextloss:null,mouseListener:null,_stopped:!1,getAspectratio:function(){return{x:this.aspect[0],y:this.aspect[1],z:this.aspect[2]}},setAspectratio:function(t){this.aspect[0]=t.x,this.aspect[1]=t.y,this.aspect[2]=t.z,O=!0},setBounds:function(t,e){this.bounds[0][t]=e.min,this.bounds[1][t]=e.max},setClearColor:function(t){this.clearColor=t},clearRGBA:function(){this.gl.clearColor(this.clearColor[0],this.clearColor[1],this.clearColor[2],this.clearColor[3]),this.gl.clear(this.gl.COLOR_BUFFER_BIT|this.gl.DEPTH_BUFFER_BIT)}},j=[r.drawingBufferWidth/N.pixelRatio|0,r.drawingBufferHeight/N.pixelRatio|0];function U(){if(!N._stopped&&N.autoResize){var t=e.parentNode,r=1,n=1;t&&t!==document.body?(r=t.clientWidth,n=t.clientHeight):(r=window.innerWidth,n=window.innerHeight);var i=0|Math.ceil(r*N.pixelRatio),a=0|Math.ceil(n*N.pixelRatio);if(i!==e.width||a!==e.height){e.width=i,e.height=a;var o=e.style;o.position=o.position||"absolute",o.left="0px",o.top="0px",o.width=r+"px",o.height=n+"px",I=!0}}}N.autoResize&&U();function V(){for(var t=E.length,e=P.length,n=0;n0&&0===C[e-1];)C.pop(),P.pop().dispose()}function q(){if(N.contextLost)return!0;r.isContextLost()&&(N.contextLost=!0,N.mouseListener.enabled=!1,N.selection.object=null,N.oncontextloss&&N.oncontextloss())}window.addEventListener("resize",U),N.update=function(t){N._stopped||(t=t||{},I=!0,O=!0)},N.add=function(t){N._stopped||(t.axes=M,E.push(t),L.push(-1),I=!0,O=!0,V())},N.remove=function(t){if(!N._stopped){var e=E.indexOf(t);e<0||(E.splice(e,1),L.pop(),I=!0,O=!0,V())}},N.dispose=function(){if(!N._stopped&&(N._stopped=!0,window.removeEventListener("resize",U),e.removeEventListener("webglcontextlost",q),N.mouseListener.enabled=!1,!N.contextLost)){M.dispose(),S.dispose();for(var t=0;tx.distance)continue;for(var c=0;c 1.0) {\n discard;\n }\n baseColor = mix(borderColor, color, step(radius, centerFraction));\n gl_FragColor = vec4(baseColor.rgb * baseColor.a, baseColor.a);\n }\n}\n"]),r.pickVertex=n(["precision mediump float;\n#define GLSLIFY 1\n\nattribute vec2 position;\nattribute vec4 pickId;\n\nuniform mat3 matrix;\nuniform float pointSize;\nuniform vec4 pickOffset;\n\nvarying vec4 fragId;\n\nvoid main() {\n vec3 hgPosition = matrix * vec3(position, 1);\n gl_Position = vec4(hgPosition.xy, 0, hgPosition.z);\n gl_PointSize = pointSize;\n\n vec4 id = pickId + pickOffset;\n id.y += floor(id.x / 256.0);\n id.x -= floor(id.x / 256.0) * 256.0;\n\n id.z += floor(id.y / 256.0);\n id.y -= floor(id.y / 256.0) * 256.0;\n\n id.w += floor(id.z / 256.0);\n id.z -= floor(id.z / 256.0) * 256.0;\n\n fragId = id;\n}\n"]),r.pickFragment=n(["precision mediump float;\n#define GLSLIFY 1\n\nvarying vec4 fragId;\n\nvoid main() {\n float radius = length(2.0 * gl_PointCoord.xy - 1.0);\n if(radius > 1.0) {\n discard;\n }\n gl_FragColor = fragId / 255.0;\n}\n"])},{glslify:433}],319:[function(t,e,r){"use strict";var n=t("gl-shader"),i=t("gl-buffer"),a=t("typedarray-pool"),o=t("./lib/shader");function s(t,e,r,n,i){this.plot=t,this.offsetBuffer=e,this.pickBuffer=r,this.shader=n,this.pickShader=i,this.sizeMin=.5,this.sizeMinCap=2,this.sizeMax=20,this.areaRatio=1,this.pointCount=0,this.color=[1,0,0,1],this.borderColor=[0,0,0,1],this.blend=!1,this.pickOffset=0,this.points=null}e.exports=function(t,e){var r=t.gl,a=i(r),l=i(r),c=n(r,o.pointVertex,o.pointFragment),u=n(r,o.pickVertex,o.pickFragment),f=new s(t,a,l,c,u);return f.update(e),t.addObject(f),f};var l,c,u=s.prototype;u.dispose=function(){this.shader.dispose(),this.pickShader.dispose(),this.offsetBuffer.dispose(),this.pickBuffer.dispose(),this.plot.removeObject(this)},u.update=function(t){var e;function r(e,r){return e in t?t[e]:r}t=t||{},this.sizeMin=r("sizeMin",.5),this.sizeMax=r("sizeMax",20),this.color=r("color",[1,0,0,1]).slice(),this.areaRatio=r("areaRatio",1),this.borderColor=r("borderColor",[0,0,0,1]).slice(),this.blend=r("blend",!1);var n=t.positions.length>>>1,i=t.positions instanceof Float32Array,o=t.idToIndex instanceof Int32Array&&t.idToIndex.length>=n,s=t.positions,l=i?s:a.mallocFloat32(s.length),c=o?t.idToIndex:a.mallocInt32(n);if(i||l.set(s),!o)for(l.set(s),e=0;e>>1;for(r=0;r=e[0]&&a<=e[2]&&o>=e[1]&&o<=e[3]&&n++}return n}(this.points,i),u=this.plot.pickPixelRatio*Math.max(Math.min(this.sizeMinCap,this.sizeMin),Math.min(this.sizeMax,this.sizeMax/Math.pow(s,.33333)));l[0]=2/a,l[4]=2/o,l[6]=-2*i[0]/a-1,l[7]=-2*i[1]/o-1,this.offsetBuffer.bind(),r.bind(),r.attributes.position.pointer(),r.uniforms.matrix=l,r.uniforms.color=this.color,r.uniforms.borderColor=this.borderColor,r.uniforms.pointCloud=u<5,r.uniforms.pointSize=u,r.uniforms.centerFraction=Math.min(1,Math.max(0,Math.sqrt(1-this.areaRatio))),e&&(c[0]=255&t,c[1]=t>>8&255,c[2]=t>>16&255,c[3]=t>>24&255,this.pickBuffer.bind(),r.attributes.pickId.pointer(n.UNSIGNED_BYTE),r.uniforms.pickOffset=c,this.pickOffset=t);var f=n.getParameter(n.BLEND),h=n.getParameter(n.DITHER);return f&&!this.blend&&n.disable(n.BLEND),h&&n.disable(n.DITHER),n.drawArrays(n.POINTS,0,this.pointCount),f&&!this.blend&&n.enable(n.BLEND),h&&n.enable(n.DITHER),t+this.pointCount}),u.draw=u.unifiedDraw,u.drawPick=u.unifiedDraw,u.pick=function(t,e,r){var n=this.pickOffset,i=this.pointCount;if(r=n+i)return null;var a=r-n,o=this.points;return{object:this,pointId:a,dataCoord:[o[2*a],o[2*a+1]]}}},{"./lib/shader":318,"gl-buffer":258,"gl-shader":330,"typedarray-pool":609}],320:[function(t,e,r){e.exports=function(t,e,r,n){var i,a,o,s,l,c=e[0],u=e[1],f=e[2],h=e[3],p=r[0],d=r[1],m=r[2],g=r[3];(a=c*p+u*d+f*m+h*g)<0&&(a=-a,p=-p,d=-d,m=-m,g=-g);1-a>1e-6?(i=Math.acos(a),o=Math.sin(i),s=Math.sin((1-n)*i)/o,l=Math.sin(n*i)/o):(s=1-n,l=n);return t[0]=s*c+l*p,t[1]=s*u+l*d,t[2]=s*f+l*m,t[3]=s*h+l*g,t}},{}],321:[function(t,e,r){"use strict";e.exports=function(t){return t||0===t?t.toString():""}},{}],322:[function(t,e,r){"use strict";var n=t("vectorize-text");e.exports=function(t,e,r){var a=i[e];a||(a=i[e]={});if(t in a)return a[t];var o={textAlign:"center",textBaseline:"middle",lineHeight:1,font:e,lineSpacing:1.25,styletags:{breaklines:!0,bolds:!0,italics:!0,subscripts:!0,superscripts:!0},triangles:!0},s=n(t,o);o.triangles=!1;var l,c,u=n(t,o);if(r&&1!==r){for(l=0;l max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 glyph;\nattribute vec4 id;\n\nuniform vec4 highlightId;\nuniform float highlightScale;\nuniform mat4 model, view, projection;\nuniform vec3 clipBounds[2];\n\nvarying vec4 interpColor;\nvarying vec4 pickId;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n gl_Position = vec4(0,0,0,0);\n } else {\n float scale = 1.0;\n if(distance(highlightId, id) < 0.0001) {\n scale = highlightScale;\n }\n\n vec4 worldPosition = model * vec4(position, 1);\n vec4 viewPosition = view * worldPosition;\n viewPosition = viewPosition / viewPosition.w;\n vec4 clipPosition = projection * (viewPosition + scale * vec4(glyph.x, -glyph.y, 0, 0));\n\n gl_Position = clipPosition;\n interpColor = color;\n pickId = id;\n dataCoordinate = position;\n }\n}"]),o=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 glyph;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\nuniform vec2 screenSize;\nuniform vec3 clipBounds[2];\nuniform float highlightScale, pixelRatio;\nuniform vec4 highlightId;\n\nvarying vec4 interpColor;\nvarying vec4 pickId;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n gl_Position = vec4(0,0,0,0);\n } else {\n float scale = pixelRatio;\n if(distance(highlightId.bgr, id.bgr) < 0.001) {\n scale *= highlightScale;\n }\n\n vec4 worldPosition = model * vec4(position, 1.0);\n vec4 viewPosition = view * worldPosition;\n vec4 clipPosition = projection * viewPosition;\n clipPosition /= clipPosition.w;\n\n gl_Position = clipPosition + vec4(screenSize * scale * vec2(glyph.x, -glyph.y), 0.0, 0.0);\n interpColor = color;\n pickId = id;\n dataCoordinate = position;\n }\n}"]),s=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nattribute vec3 position;\nattribute vec4 color;\nattribute vec2 glyph;\nattribute vec4 id;\n\nuniform float highlightScale;\nuniform vec4 highlightId;\nuniform vec3 axes[2];\nuniform mat4 model, view, projection;\nuniform vec2 screenSize;\nuniform vec3 clipBounds[2];\nuniform float scale, pixelRatio;\n\nvarying vec4 interpColor;\nvarying vec4 pickId;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\n\n gl_Position = vec4(0,0,0,0);\n } else {\n float lscale = pixelRatio * scale;\n if(distance(highlightId, id) < 0.0001) {\n lscale *= highlightScale;\n }\n\n vec4 clipCenter = projection * view * model * vec4(position, 1);\n vec3 dataPosition = position + 0.5*lscale*(axes[0] * glyph.x + axes[1] * glyph.y) * clipCenter.w * screenSize.y;\n vec4 clipPosition = projection * view * model * vec4(dataPosition, 1);\n\n gl_Position = clipPosition;\n interpColor = color;\n pickId = id;\n dataCoordinate = dataPosition;\n }\n}\n"]),l=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 fragClipBounds[2];\nuniform float opacity;\n\nvarying vec4 interpColor;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n if (\n outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate) ||\n interpColor.a * opacity == 0.\n ) discard;\n gl_FragColor = interpColor * opacity;\n}\n"]),c=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 fragClipBounds[2];\nuniform float pickGroup;\n\nvarying vec4 pickId;\nvarying vec3 dataCoordinate;\n\nvoid main() {\n if (outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate)) discard;\n\n gl_FragColor = vec4(pickGroup, pickId.bgr);\n}"]),u=[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"glyph",type:"vec2"},{name:"id",type:"vec4"}],f={vertex:a,fragment:l,attributes:u},h={vertex:o,fragment:l,attributes:u},p={vertex:s,fragment:l,attributes:u},d={vertex:a,fragment:c,attributes:u},m={vertex:o,fragment:c,attributes:u},g={vertex:s,fragment:c,attributes:u};function v(t,e){var r=n(t,e),i=r.attributes;return i.position.location=0,i.color.location=1,i.glyph.location=2,i.id.location=3,r}r.createPerspective=function(t){return v(t,f)},r.createOrtho=function(t){return v(t,h)},r.createProject=function(t){return v(t,p)},r.createPickPerspective=function(t){return v(t,d)},r.createPickOrtho=function(t){return v(t,m)},r.createPickProject=function(t){return v(t,g)}},{"gl-shader":330,glslify:324}],324:[function(t,e,r){arguments[4][256][0].apply(r,arguments)},{dup:256}],325:[function(t,e,r){"use strict";var n=t("is-string-blank"),i=t("gl-buffer"),a=t("gl-vao"),o=t("typedarray-pool"),s=t("gl-mat4/multiply"),l=t("./lib/shaders"),c=t("./lib/glyphs"),u=t("./lib/get-simple-string"),f=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function h(t,e){var r=t[0],n=t[1],i=t[2],a=t[3];return t[0]=e[0]*r+e[4]*n+e[8]*i+e[12]*a,t[1]=e[1]*r+e[5]*n+e[9]*i+e[13]*a,t[2]=e[2]*r+e[6]*n+e[10]*i+e[14]*a,t[3]=e[3]*r+e[7]*n+e[11]*i+e[15]*a,t}function p(t,e,r,n){return h(n,n),h(n,n),h(n,n)}function d(t,e){this.index=t,this.dataCoordinate=this.position=e}function m(t){return!0===t||t>1?1:t}function g(t,e,r,n,i,a,o,s,l,c,u,f){this.gl=t,this.pixelRatio=1,this.shader=e,this.orthoShader=r,this.projectShader=n,this.pointBuffer=i,this.colorBuffer=a,this.glyphBuffer=o,this.idBuffer=s,this.vao=l,this.vertexCount=0,this.lineVertexCount=0,this.opacity=1,this.hasAlpha=!1,this.lineWidth=0,this.projectScale=[2/3,2/3,2/3],this.projectOpacity=[1,1,1],this.projectHasAlpha=!1,this.pickId=0,this.pickPerspectiveShader=c,this.pickOrthoShader=u,this.pickProjectShader=f,this.points=[],this._selectResult=new d(0,[0,0,0]),this.useOrtho=!0,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.axesProject=[!0,!0,!0],this.axesBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.highlightId=[1,1,1,1],this.highlightScale=2,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.dirty=!0}e.exports=function(t){var e=t.gl,r=l.createPerspective(e),n=l.createOrtho(e),o=l.createProject(e),s=l.createPickPerspective(e),c=l.createPickOrtho(e),u=l.createPickProject(e),f=i(e),h=i(e),p=i(e),d=i(e),m=a(e,[{buffer:f,size:3,type:e.FLOAT},{buffer:h,size:4,type:e.FLOAT},{buffer:p,size:2,type:e.FLOAT},{buffer:d,size:4,type:e.UNSIGNED_BYTE,normalized:!0}]),v=new g(e,r,n,o,f,h,p,d,m,s,c,u);return v.update(t),v};var v=g.prototype;v.pickSlots=1,v.setPickBase=function(t){this.pickId=t},v.isTransparent=function(){if(this.hasAlpha)return!0;for(var t=0;t<3;++t)if(this.axesProject[t]&&this.projectHasAlpha)return!0;return!1},v.isOpaque=function(){if(!this.hasAlpha)return!0;for(var t=0;t<3;++t)if(this.axesProject[t]&&!this.projectHasAlpha)return!0;return!1};var y=[0,0],x=[0,0,0],b=[0,0,0],_=[0,0,0,1],w=[0,0,0,1],T=f.slice(),k=[0,0,0],M=[[0,0,0],[0,0,0]];function A(t){return t[0]=t[1]=t[2]=0,t}function S(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=1,t}function E(t,e,r,n){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[r]=n,t}function L(t,e,r,n){var i,a=e.axesProject,o=e.gl,l=t.uniforms,c=r.model||f,u=r.view||f,h=r.projection||f,d=e.axesBounds,m=function(t){for(var e=M,r=0;r<2;++r)for(var n=0;n<3;++n)e[r][n]=Math.max(Math.min(t[r][n],1e8),-1e8);return e}(e.clipBounds);i=e.axes&&e.axes.lastCubeProps?e.axes.lastCubeProps.axis:[1,1,1],y[0]=2/o.drawingBufferWidth,y[1]=2/o.drawingBufferHeight,t.bind(),l.view=u,l.projection=h,l.screenSize=y,l.highlightId=e.highlightId,l.highlightScale=e.highlightScale,l.clipBounds=m,l.pickGroup=e.pickId/255,l.pixelRatio=n;for(var g=0;g<3;++g)if(a[g]){l.scale=e.projectScale[g],l.opacity=e.projectOpacity[g];for(var v=T,L=0;L<16;++L)v[L]=0;for(L=0;L<4;++L)v[5*L]=1;v[5*g]=0,i[g]<0?v[12+g]=d[0][g]:v[12+g]=d[1][g],s(v,c,v),l.model=v;var C=(g+1)%3,P=(g+2)%3,I=A(x),O=A(b);I[C]=1,O[P]=1;var z=p(0,0,0,S(_,I)),D=p(0,0,0,S(w,O));if(Math.abs(z[1])>Math.abs(D[1])){var R=z;z=D,D=R,R=I,I=O,O=R;var F=C;C=P,P=F}z[0]<0&&(I[C]=-1),D[1]>0&&(O[P]=-1);var B=0,N=0;for(L=0;L<4;++L)B+=Math.pow(c[4*C+L],2),N+=Math.pow(c[4*P+L],2);I[C]/=Math.sqrt(B),O[P]/=Math.sqrt(N),l.axes[0]=I,l.axes[1]=O,l.fragClipBounds[0]=E(k,m[0],g,-1e8),l.fragClipBounds[1]=E(k,m[1],g,1e8),e.vao.bind(),e.vao.draw(o.TRIANGLES,e.vertexCount),e.lineWidth>0&&(o.lineWidth(e.lineWidth*n),e.vao.draw(o.LINES,e.lineVertexCount,e.vertexCount)),e.vao.unbind()}}var C=[[-1e8,-1e8,-1e8],[1e8,1e8,1e8]];function P(t,e,r,n,i,a,o){var s=r.gl;if((a===r.projectHasAlpha||o)&&L(e,r,n,i),a===r.hasAlpha||o){t.bind();var l=t.uniforms;l.model=n.model||f,l.view=n.view||f,l.projection=n.projection||f,y[0]=2/s.drawingBufferWidth,y[1]=2/s.drawingBufferHeight,l.screenSize=y,l.highlightId=r.highlightId,l.highlightScale=r.highlightScale,l.fragClipBounds=C,l.clipBounds=r.axes.bounds,l.opacity=r.opacity,l.pickGroup=r.pickId/255,l.pixelRatio=i,r.vao.bind(),r.vao.draw(s.TRIANGLES,r.vertexCount),r.lineWidth>0&&(s.lineWidth(r.lineWidth*i),r.vao.draw(s.LINES,r.lineVertexCount,r.vertexCount)),r.vao.unbind()}}function I(t,e,r,i){var a;a=Array.isArray(t)?e=this.pointCount||e<0)return null;var r=this.points[e],n=this._selectResult;n.index=e;for(var i=0;i<3;++i)n.position[i]=n.dataCoordinate[i]=r[i];return n},v.highlight=function(t){if(t){var e=t.index,r=255&e,n=e>>8&255,i=e>>16&255;this.highlightId=[r/255,n/255,i/255,0]}else this.highlightId=[1,1,1,1]},v.update=function(t){if("perspective"in(t=t||{})&&(this.useOrtho=!t.perspective),"orthographic"in t&&(this.useOrtho=!!t.orthographic),"lineWidth"in t&&(this.lineWidth=t.lineWidth),"project"in t)if(Array.isArray(t.project))this.axesProject=t.project;else{var e=!!t.project;this.axesProject=[e,e,e]}if("projectScale"in t)if(Array.isArray(t.projectScale))this.projectScale=t.projectScale.slice();else{var r=+t.projectScale;this.projectScale=[r,r,r]}if(this.projectHasAlpha=!1,"projectOpacity"in t){if(Array.isArray(t.projectOpacity))this.projectOpacity=t.projectOpacity.slice();else{r=+t.projectOpacity;this.projectOpacity=[r,r,r]}for(var n=0;n<3;++n)this.projectOpacity[n]=m(this.projectOpacity[n]),this.projectOpacity[n]<1&&(this.projectHasAlpha=!0)}this.hasAlpha=!1,"opacity"in t&&(this.opacity=m(t.opacity),this.opacity<1&&(this.hasAlpha=!0)),this.dirty=!0;var i,a,s=t.position,l=t.font||"normal",c=t.alignment||[0,0];if(2===c.length)i=c[0],a=c[1];else{i=[],a=[];for(n=0;n0){var O=0,z=x,D=[0,0,0,1],R=[0,0,0,1],F=Array.isArray(p)&&Array.isArray(p[0]),B=Array.isArray(v)&&Array.isArray(v[0]);t:for(n=0;n<_;++n){y+=1;for(w=s[n],T=0;T<3;++T){if(isNaN(w[T])||!isFinite(w[T]))continue t;f[T]=Math.max(f[T],w[T]),u[T]=Math.min(u[T],w[T])}k=(N=I(h,n,l,this.pixelRatio)).mesh,M=N.lines,A=N.bounds;var N,j=N.visible;if(j)if(Array.isArray(p)){if(3===(U=F?n0?1-A[0][0]:Y<0?1+A[1][0]:1,W*=W>0?1-A[0][1]:W<0?1+A[1][1]:1],Z=k.cells||[],J=k.positions||[];for(T=0;T0){var v=r*u;o.drawBox(f-v,h-v,p+v,h+v,a),o.drawBox(f-v,d-v,p+v,d+v,a),o.drawBox(f-v,h-v,f+v,d+v,a),o.drawBox(p-v,h-v,p+v,d+v,a)}}}},s.update=function(t){t=t||{},this.innerFill=!!t.innerFill,this.outerFill=!!t.outerFill,this.innerColor=(t.innerColor||[0,0,0,.5]).slice(),this.outerColor=(t.outerColor||[0,0,0,.5]).slice(),this.borderColor=(t.borderColor||[0,0,0,1]).slice(),this.borderWidth=t.borderWidth||0,this.selectBox=(t.selectBox||this.selectBox).slice()},s.dispose=function(){this.boxBuffer.dispose(),this.boxShader.dispose(),this.plot.removeOverlay(this)}},{"./lib/shaders":326,"gl-buffer":258,"gl-shader":330}],329:[function(t,e,r){"use strict";e.exports=function(t,e){var r=e[0],a=e[1],o=n(t,r,a,{}),s=i.mallocUint8(r*a*4);return new l(t,o,s)};var n=t("gl-fbo"),i=t("typedarray-pool"),a=t("ndarray"),o=t("bit-twiddle").nextPow2;function s(t,e,r,n,i){this.coord=[t,e],this.id=r,this.value=n,this.distance=i}function l(t,e,r){this.gl=t,this.fbo=e,this.buffer=r,this._readTimeout=null;var n=this;this._readCallback=function(){n.gl&&(e.bind(),t.readPixels(0,0,e.shape[0],e.shape[1],t.RGBA,t.UNSIGNED_BYTE,n.buffer),n._readTimeout=null)}}var c=l.prototype;Object.defineProperty(c,"shape",{get:function(){return this.gl?this.fbo.shape.slice():[0,0]},set:function(t){if(this.gl){this.fbo.shape=t;var e=this.fbo.shape[0],r=this.fbo.shape[1];if(r*e*4>this.buffer.length){i.free(this.buffer);for(var n=this.buffer=i.mallocUint8(o(r*e*4)),a=0;ar)for(t=r;te)for(t=e;t=0){for(var T=0|w.type.charAt(w.type.length-1),k=new Array(T),M=0;M=0;)A+=1;_[y]=A}var S=new Array(r.length);function E(){h.program=o.program(p,h._vref,h._fref,b,_);for(var t=0;t=0){if((d=h.charCodeAt(h.length-1)-48)<2||d>4)throw new n("","Invalid data type for attribute "+f+": "+h);o(t,e,p[0],i,d,a,f)}else{if(!(h.indexOf("mat")>=0))throw new n("","Unknown data type for attribute "+f+": "+h);var d;if((d=h.charCodeAt(h.length-1)-48)<2||d>4)throw new n("","Invalid data type for attribute "+f+": "+h);s(t,e,p,i,d,a,f)}}}return a};var n=t("./GLError");function i(t,e,r,n,i,a){this._gl=t,this._wrapper=e,this._index=r,this._locations=n,this._dimension=i,this._constFunc=a}var a=i.prototype;function o(t,e,r,n,a,o,s){for(var l=["gl","v"],c=[],u=0;u4)throw new i("","Invalid uniform dimension type for matrix "+name+": "+r);return"gl.uniformMatrix"+a+"fv(locations["+e+"],false,obj"+t+")"}throw new i("","Unknown uniform data type for "+name+": "+r)}if((a=r.charCodeAt(r.length-1)-48)<2||a>4)throw new i("","Invalid data type");switch(r.charAt(0)){case"b":case"i":return"gl.uniform"+a+"iv(locations["+e+"],obj"+t+")";case"v":return"gl.uniform"+a+"fv(locations["+e+"],obj"+t+")";default:throw new i("","Unrecognized data type for vector "+name+": "+r)}}}function c(e){for(var n=["return function updateProperty(obj){"],i=function t(e,r){if("object"!=typeof r)return[[e,r]];var n=[];for(var i in r){var a=r[i],o=e;parseInt(i)+""===i?o+="["+i+"]":o+="."+i,"object"==typeof a?n.push.apply(n,t(o,a)):n.push([o,a])}return n}("",e),a=0;a4)throw new i("","Invalid data type");return"b"===t.charAt(0)?o(r,!1):o(r,0)}if(0===t.indexOf("mat")&&4===t.length){var r;if((r=t.charCodeAt(t.length-1)-48)<2||r>4)throw new i("","Invalid uniform dimension type for matrix "+name+": "+t);return o(r*r,0)}throw new i("","Unknown uniform data type for "+name+": "+t)}}(r[u].type);var p}function f(t){var e;if(Array.isArray(t)){e=new Array(t.length);for(var r=0;r1){s[0]in a||(a[s[0]]=[]),a=a[s[0]];for(var l=1;l1)for(var l=0;l 0 U ||b|| > 0.\n // Assign z = 0, x = -b, y = a:\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\n return normalize(vec3(-v.y, v.x, 0.0));\n } else {\n return normalize(vec3(0.0, v.z, -v.y));\n }\n}\n\n// Calculate the tube vertex and normal at the given index.\n//\n// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d.\n//\n// Each tube segment is made up of a ring of vertices.\n// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array.\n// The indexes of tube segments run from 0 to 8.\n//\nvec3 getTubePosition(vec3 d, float index, out vec3 normal) {\n float segmentCount = 8.0;\n\n float angle = 2.0 * 3.14159 * (index / segmentCount);\n\n vec3 u = getOrthogonalVector(d);\n vec3 v = normalize(cross(u, d));\n\n vec3 x = u * cos(angle) * length(d);\n vec3 y = v * sin(angle) * length(d);\n vec3 v3 = x + y;\n\n normal = normalize(v3);\n\n return v3;\n}\n\nattribute vec4 vector;\nattribute vec4 color, position;\nattribute vec2 uv;\n\nuniform float vectorScale, tubeScale;\nuniform mat4 model, view, projection, inverseModel;\nuniform vec3 eyePosition, lightPosition;\n\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n // Scale the vector magnitude to stay constant with\n // model & view changes.\n vec3 normal;\n vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal);\n vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\n\n //Lighting geometry parameters\n vec4 cameraCoordinate = view * tubePosition;\n cameraCoordinate.xyz /= cameraCoordinate.w;\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\n\n // vec4 m_position = model * vec4(tubePosition, 1.0);\n vec4 t_position = view * tubePosition;\n gl_Position = projection * t_position;\n\n f_color = color;\n f_data = tubePosition.xyz;\n f_position = position.xyz;\n f_uv = uv;\n}\n"]),a=n(["#extension GL_OES_standard_derivatives : enable\n\nprecision highp float;\n#define GLSLIFY 1\n\nfloat beckmannDistribution(float x, float roughness) {\n float NdotH = max(x, 0.0001);\n float cos2Alpha = NdotH * NdotH;\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\n float roughness2 = roughness * roughness;\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\n return exp(tan2Alpha / roughness2) / denom;\n}\n\nfloat cookTorranceSpecular(\n vec3 lightDirection,\n vec3 viewDirection,\n vec3 surfaceNormal,\n float roughness,\n float fresnel) {\n\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\n\n //Half angle vector\n vec3 H = normalize(lightDirection + viewDirection);\n\n //Geometric term\n float NdotH = max(dot(surfaceNormal, H), 0.0);\n float VdotH = max(dot(viewDirection, H), 0.000001);\n float LdotH = max(dot(lightDirection, H), 0.000001);\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\n float G = min(1.0, min(G1, G2));\n \n //Distribution term\n float D = beckmannDistribution(NdotH, roughness);\n\n //Fresnel term\n float F = pow(1.0 - VdotN, fresnel);\n\n //Multiply terms and done\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\n}\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\nuniform sampler2D texture;\n\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\nvarying vec4 f_color;\nvarying vec2 f_uv;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n vec3 N = normalize(f_normal);\n vec3 L = normalize(f_lightDirection);\n vec3 V = normalize(f_eyeDirection);\n\n if(gl_FrontFacing) {\n N = -N;\n }\n\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\n\n vec4 surfaceColor = f_color * texture2D(texture, f_uv);\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\n\n gl_FragColor = litColor * opacity;\n}\n"]),o=n(["precision highp float;\n\nprecision highp float;\n#define GLSLIFY 1\n\nvec3 getOrthogonalVector(vec3 v) {\n // Return up-vector for only-z vector.\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\n // Assign z = 0, x = -b, y = a:\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\n return normalize(vec3(-v.y, v.x, 0.0));\n } else {\n return normalize(vec3(0.0, v.z, -v.y));\n }\n}\n\n// Calculate the tube vertex and normal at the given index.\n//\n// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d.\n//\n// Each tube segment is made up of a ring of vertices.\n// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array.\n// The indexes of tube segments run from 0 to 8.\n//\nvec3 getTubePosition(vec3 d, float index, out vec3 normal) {\n float segmentCount = 8.0;\n\n float angle = 2.0 * 3.14159 * (index / segmentCount);\n\n vec3 u = getOrthogonalVector(d);\n vec3 v = normalize(cross(u, d));\n\n vec3 x = u * cos(angle) * length(d);\n vec3 y = v * sin(angle) * length(d);\n vec3 v3 = x + y;\n\n normal = normalize(v3);\n\n return v3;\n}\n\nattribute vec4 vector;\nattribute vec4 position;\nattribute vec4 id;\n\nuniform mat4 model, view, projection;\nuniform float tubeScale;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n vec3 normal;\n vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal);\n vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\n\n gl_Position = projection * view * tubePosition;\n f_id = id;\n f_position = position.xyz;\n}\n"]),s=n(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 clipBounds[2];\nuniform float pickId;\n\nvarying vec3 f_position;\nvarying vec4 f_id;\n\nvoid main() {\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\n\n gl_FragColor = vec4(pickId, f_id.xyz);\n}"]);r.meshShader={vertex:i,fragment:a,attributes:[{name:"position",type:"vec4"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"},{name:"vector",type:"vec4"}]},r.pickShader={vertex:o,fragment:s,attributes:[{name:"position",type:"vec4"},{name:"id",type:"vec4"},{name:"vector",type:"vec4"}]}},{glslify:342}],342:[function(t,e,r){arguments[4][256][0].apply(r,arguments)},{dup:256}],343:[function(t,e,r){"use strict";var n=t("gl-vec3"),i=t("gl-vec4"),a=["xyz","xzy","yxz","yzx","zxy","zyx"],o=function(t,e,r,a){for(var o=0,s=0;s0)for(T=0;T<8;T++){var k=(T+1)%8;c.push(h[T],p[T],p[k],p[k],h[k],h[T]),f.push(y,v,v,v,y,y),d.push(m,g,g,g,m,m);var M=c.length;u.push([M-6,M-5,M-4],[M-3,M-2,M-1])}var A=h;h=p,p=A;var S=y;y=v,v=S;var E=m;m=g,g=E}return{positions:c,cells:u,vectors:f,vertexIntensity:d}}(t,r,a,o)})),f=[],h=[],p=[],d=[];for(s=0;se)return r-1}return r},l=function(t,e,r){return tr?r:t},c=function(t){var e=1/0;t.sort((function(t,e){return t-e}));for(var r=t.length,n=1;nf-1||y>h-1||x>p-1)return n.create();var b,_,w,T,k,M,A=a[0][d],S=a[0][v],E=a[1][m],L=a[1][y],C=a[2][g],P=(o-A)/(S-A),I=(c-E)/(L-E),O=(u-C)/(a[2][x]-C);switch(isFinite(P)||(P=.5),isFinite(I)||(I=.5),isFinite(O)||(O=.5),r.reversedX&&(d=f-1-d,v=f-1-v),r.reversedY&&(m=h-1-m,y=h-1-y),r.reversedZ&&(g=p-1-g,x=p-1-x),r.filled){case 5:k=g,M=x,w=m*p,T=y*p,b=d*p*h,_=v*p*h;break;case 4:k=g,M=x,b=d*p,_=v*p,w=m*p*f,T=y*p*f;break;case 3:w=m,T=y,k=g*h,M=x*h,b=d*h*p,_=v*h*p;break;case 2:w=m,T=y,b=d*h,_=v*h,k=g*h*f,M=x*h*f;break;case 1:b=d,_=v,k=g*f,M=x*f,w=m*f*p,T=y*f*p;break;default:b=d,_=v,w=m*f,T=y*f,k=g*f*h,M=x*f*h}var z=i[b+w+k],D=i[b+w+M],R=i[b+T+k],F=i[b+T+M],B=i[_+w+k],N=i[_+w+M],j=i[_+T+k],U=i[_+T+M],V=n.create(),q=n.create(),H=n.create(),G=n.create();n.lerp(V,z,B,P),n.lerp(q,D,N,P),n.lerp(H,R,j,P),n.lerp(G,F,U,P);var Y=n.create(),W=n.create();n.lerp(Y,V,H,I),n.lerp(W,q,G,I);var X=n.create();return n.lerp(X,Y,W,O),X}(e,t,p)},m=t.getDivergence||function(t,e){var r=n.create(),i=1e-4;n.add(r,t,[i,0,0]);var a=d(r);n.subtract(a,a,e),n.scale(a,a,1/i),n.add(r,t,[0,i,0]);var o=d(r);n.subtract(o,o,e),n.scale(o,o,1/i),n.add(r,t,[0,0,i]);var s=d(r);return n.subtract(s,s,e),n.scale(s,s,1/i),n.add(r,a,o),n.add(r,r,s),r},g=[],v=e[0][0],y=e[0][1],x=e[0][2],b=e[1][0],_=e[1][1],w=e[1][2],T=function(t){var e=t[0],r=t[1],n=t[2];return!(eb||r_||nw)},k=10*n.distance(e[0],e[1])/i,M=k*k,A=1,S=0,E=r.length;E>1&&(A=function(t){for(var e=[],r=[],n=[],i={},a={},o={},s=t.length,l=0;lS&&(S=F),D.push(F),g.push({points:P,velocities:I,divergences:D});for(var B=0;B<100*i&&P.lengthM&&n.scale(N,N,k/Math.sqrt(j)),n.add(N,N,C),O=d(N),n.squaredDistance(z,N)-M>-1e-4*M){P.push(N),z=N,I.push(O);R=m(N,O),F=n.length(R);isFinite(F)&&F>S&&(S=F),D.push(F)}C=N}}var U=o(g,t.colormap,S,A);return f?U.tubeScale=f:(0===S&&(S=1),U.tubeScale=.5*u*A/S),U};var u=t("./lib/shaders"),f=t("gl-cone3d").createMesh;e.exports.createTubeMesh=function(t,e){return f(t,e,{shaders:u,traceType:"streamtube"})}},{"./lib/shaders":341,"gl-cone3d":259,"gl-vec3":371,"gl-vec4":407}],344:[function(t,e,r){var n=t("gl-shader"),i=t("glslify"),a=i(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec4 uv;\nattribute vec3 f;\nattribute vec3 normal;\n\nuniform vec3 objectOffset;\nuniform mat4 model, view, projection, inverseModel;\nuniform vec3 lightPosition, eyePosition;\nuniform sampler2D colormap;\n\nvarying float value, kill;\nvarying vec3 worldCoordinate;\nvarying vec2 planeCoordinate;\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\nvarying vec4 vColor;\n\nvoid main() {\n vec3 localCoordinate = vec3(uv.zw, f.x);\n worldCoordinate = objectOffset + localCoordinate;\n vec4 worldPosition = model * vec4(worldCoordinate, 1.0);\n vec4 clipPosition = projection * view * worldPosition;\n gl_Position = clipPosition;\n kill = f.y;\n value = f.z;\n planeCoordinate = uv.xy;\n\n vColor = texture2D(colormap, vec2(value, value));\n\n //Lighting geometry parameters\n vec4 cameraCoordinate = view * worldPosition;\n cameraCoordinate.xyz /= cameraCoordinate.w;\n lightDirection = lightPosition - cameraCoordinate.xyz;\n eyeDirection = eyePosition - cameraCoordinate.xyz;\n surfaceNormal = normalize((vec4(normal,0) * inverseModel).xyz);\n}\n"]),o=i(["precision highp float;\n#define GLSLIFY 1\n\nfloat beckmannDistribution(float x, float roughness) {\n float NdotH = max(x, 0.0001);\n float cos2Alpha = NdotH * NdotH;\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\n float roughness2 = roughness * roughness;\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\n return exp(tan2Alpha / roughness2) / denom;\n}\n\nfloat beckmannSpecular(\n vec3 lightDirection,\n vec3 viewDirection,\n vec3 surfaceNormal,\n float roughness) {\n return beckmannDistribution(dot(surfaceNormal, normalize(lightDirection + viewDirection)), roughness);\n}\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec3 lowerBound, upperBound;\nuniform float contourTint;\nuniform vec4 contourColor;\nuniform sampler2D colormap;\nuniform vec3 clipBounds[2];\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\nuniform float vertexColor;\n\nvarying float value, kill;\nvarying vec3 worldCoordinate;\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\nvarying vec4 vColor;\n\nvoid main() {\n if (\n kill > 0.0 ||\n vColor.a == 0.0 ||\n outOfRange(clipBounds[0], clipBounds[1], worldCoordinate)\n ) discard;\n\n vec3 N = normalize(surfaceNormal);\n vec3 V = normalize(eyeDirection);\n vec3 L = normalize(lightDirection);\n\n if(gl_FrontFacing) {\n N = -N;\n }\n\n float specular = max(beckmannSpecular(L, V, N, roughness), 0.);\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\n\n //decide how to interpolate color \u2014 in vertex or in fragment\n vec4 surfaceColor =\n step(vertexColor, .5) * texture2D(colormap, vec2(value, value)) +\n step(.5, vertexColor) * vColor;\n\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\n\n gl_FragColor = mix(litColor, contourColor, contourTint) * opacity;\n}\n"]),s=i(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec4 uv;\nattribute float f;\n\nuniform vec3 objectOffset;\nuniform mat3 permutation;\nuniform mat4 model, view, projection;\nuniform float height, zOffset;\nuniform sampler2D colormap;\n\nvarying float value, kill;\nvarying vec3 worldCoordinate;\nvarying vec2 planeCoordinate;\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\nvarying vec4 vColor;\n\nvoid main() {\n vec3 dataCoordinate = permutation * vec3(uv.xy, height);\n worldCoordinate = objectOffset + dataCoordinate;\n vec4 worldPosition = model * vec4(worldCoordinate, 1.0);\n\n vec4 clipPosition = projection * view * worldPosition;\n clipPosition.z += zOffset;\n\n gl_Position = clipPosition;\n value = f + objectOffset.z;\n kill = -1.0;\n planeCoordinate = uv.zw;\n\n vColor = texture2D(colormap, vec2(value, value));\n\n //Don't do lighting for contours\n surfaceNormal = vec3(1,0,0);\n eyeDirection = vec3(0,1,0);\n lightDirection = vec3(0,0,1);\n}\n"]),l=i(["precision highp float;\n#define GLSLIFY 1\n\nbool outOfRange(float a, float b, float p) {\n return ((p > max(a, b)) || \n (p < min(a, b)));\n}\n\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y));\n}\n\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\n return (outOfRange(a.x, b.x, p.x) ||\n outOfRange(a.y, b.y, p.y) ||\n outOfRange(a.z, b.z, p.z));\n}\n\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\n return outOfRange(a.xyz, b.xyz, p.xyz);\n}\n\nuniform vec2 shape;\nuniform vec3 clipBounds[2];\nuniform float pickId;\n\nvarying float value, kill;\nvarying vec3 worldCoordinate;\nvarying vec2 planeCoordinate;\nvarying vec3 surfaceNormal;\n\nvec2 splitFloat(float v) {\n float vh = 255.0 * v;\n float upper = floor(vh);\n float lower = fract(vh);\n return vec2(upper / 255.0, floor(lower * 16.0) / 16.0);\n}\n\nvoid main() {\n if ((kill > 0.0) ||\n (outOfRange(clipBounds[0], clipBounds[1], worldCoordinate))) discard;\n\n vec2 ux = splitFloat(planeCoordinate.x / shape.x);\n vec2 uy = splitFloat(planeCoordinate.y / shape.y);\n gl_FragColor = vec4(pickId, ux.x, uy.x, ux.y + (uy.y/16.0));\n}\n"]);r.createShader=function(t){var e=n(t,a,o,null,[{name:"uv",type:"vec4"},{name:"f",type:"vec3"},{name:"normal",type:"vec3"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e.attributes.normal.location=2,e},r.createPickShader=function(t){var e=n(t,a,l,null,[{name:"uv",type:"vec4"},{name:"f",type:"vec3"},{name:"normal",type:"vec3"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e.attributes.normal.location=2,e},r.createContourShader=function(t){var e=n(t,s,o,null,[{name:"uv",type:"vec4"},{name:"f",type:"float"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e},r.createPickContourShader=function(t){var e=n(t,s,l,null,[{name:"uv",type:"vec4"},{name:"f",type:"float"}]);return e.attributes.uv.location=0,e.attributes.f.location=1,e}},{"gl-shader":330,glslify:433}],345:[function(t,e,r){"use strict";e.exports=function(t){var e=t.gl,r=y(e),n=b(e),s=x(e),l=_(e),c=i(e),u=a(e,[{buffer:c,size:4,stride:40,offset:0},{buffer:c,size:3,stride:40,offset:16},{buffer:c,size:3,stride:40,offset:28}]),f=i(e),h=a(e,[{buffer:f,size:4,stride:20,offset:0},{buffer:f,size:1,stride:20,offset:16}]),p=i(e),d=a(e,[{buffer:p,size:2,type:e.FLOAT}]),m=o(e,1,256,e.RGBA,e.UNSIGNED_BYTE);m.minFilter=e.LINEAR,m.magFilter=e.LINEAR;var g=new A(e,[0,0],[[0,0,0],[0,0,0]],r,n,c,u,m,s,l,f,h,p,d,[0,0,0]),v={levels:[[],[],[]]};for(var w in t)v[w]=t[w];return v.colormap=v.colormap||"jet",g.update(v),g};var n=t("bit-twiddle"),i=t("gl-buffer"),a=t("gl-vao"),o=t("gl-texture2d"),s=t("typedarray-pool"),l=t("colormap"),c=t("ndarray-ops"),u=t("ndarray-pack"),f=t("ndarray"),h=t("surface-nets"),p=t("gl-mat4/multiply"),d=t("gl-mat4/invert"),m=t("binary-search-bounds"),g=t("ndarray-gradient"),v=t("./lib/shaders"),y=v.createShader,x=v.createContourShader,b=v.createPickShader,_=v.createPickContourShader,w=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],T=[[0,0],[0,1],[1,0],[1,1],[1,0],[0,1]],k=[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]];function M(t,e,r,n,i){this.position=t,this.index=e,this.uv=r,this.level=n,this.dataCoordinate=i}!function(){for(var t=0;t<3;++t){var e=k[t],r=(t+2)%3;e[(t+1)%3+0]=1,e[r+3]=1,e[t+6]=1}}();function A(t,e,r,n,i,a,o,l,c,u,h,p,d,m,g){this.gl=t,this.shape=e,this.bounds=r,this.objectOffset=g,this.intensityBounds=[],this._shader=n,this._pickShader=i,this._coordinateBuffer=a,this._vao=o,this._colorMap=l,this._contourShader=c,this._contourPickShader=u,this._contourBuffer=h,this._contourVAO=p,this._contourOffsets=[[],[],[]],this._contourCounts=[[],[],[]],this._vertexCount=0,this._pickResult=new M([0,0,0],[0,0],[0,0],[0,0,0],[0,0,0]),this._dynamicBuffer=d,this._dynamicVAO=m,this._dynamicOffsets=[0,0,0],this._dynamicCounts=[0,0,0],this.contourWidth=[1,1,1],this.contourLevels=[[1],[1],[1]],this.contourTint=[0,0,0],this.contourColor=[[.5,.5,.5,1],[.5,.5,.5,1],[.5,.5,.5,1]],this.showContour=!0,this.showSurface=!0,this.enableHighlight=[!0,!0,!0],this.highlightColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.highlightTint=[1,1,1],this.highlightLevel=[-1,-1,-1],this.enableDynamic=[!0,!0,!0],this.dynamicLevel=[NaN,NaN,NaN],this.dynamicColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.dynamicTint=[1,1,1],this.dynamicWidth=[1,1,1],this.axesBounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.surfaceProject=[!1,!1,!1],this.contourProject=[[!1,!1,!1],[!1,!1,!1],[!1,!1,!1]],this.colorBounds=[!1,!1],this._field=[f(s.mallocFloat(1024),[0,0]),f(s.mallocFloat(1024),[0,0]),f(s.mallocFloat(1024),[0,0])],this.pickId=1,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.snapToData=!1,this.pixelRatio=1,this.opacity=1,this.lightPosition=[10,1e4,0],this.ambientLight=.8,this.diffuseLight=.8,this.specularLight=2,this.roughness=.5,this.fresnel=1.5,this.vertexColor=0,this.dirty=!0}var S=A.prototype;S.genColormap=function(t,e){var r=!1,n=u([l({colormap:t,nshades:256,format:"rgba"}).map((function(t,n){var i=e?function(t,e){if(!e)return 1;if(!e.length)return 1;for(var r=0;rt&&r>0){var n=(e[r][0]-t)/(e[r][0]-e[r-1][0]);return e[r][1]*(1-n)+n*e[r-1][1]}}return 1}(n/255,e):t[3];return i<1&&(r=!0),[t[0],t[1],t[2],255*i]}))]);return c.divseq(n,255),this.hasAlphaScale=r,n},S.isTransparent=function(){return this.opacity<1||this.hasAlphaScale},S.isOpaque=function(){return!this.isTransparent()},S.pickSlots=1,S.setPickBase=function(t){this.pickId=t};var E=[0,0,0],L={showSurface:!1,showContour:!1,projections:[w.slice(),w.slice(),w.slice()],clipBounds:[[[0,0,0],[0,0,0]],[[0,0,0],[0,0,0]],[[0,0,0],[0,0,0]]]};function C(t,e){var r,n,i,a=e.axes&&e.axes.lastCubeProps.axis||E,o=e.showSurface,s=e.showContour;for(r=0;r<3;++r)for(o=o||e.surfaceProject[r],n=0;n<3;++n)s=s||e.contourProject[r][n];for(r=0;r<3;++r){var l=L.projections[r];for(n=0;n<16;++n)l[n]=0;for(n=0;n<4;++n)l[5*n]=1;l[5*r]=0,l[12+r]=e.axesBounds[+(a[r]>0)][r],p(l,t.model,l);var c=L.clipBounds[r];for(i=0;i<2;++i)for(n=0;n<3;++n)c[i][n]=t.clipBounds[i][n];c[0][r]=-1e8,c[1][r]=1e8}return L.showSurface=o,L.showContour=s,L}var P={model:w,view:w,projection:w,inverseModel:w.slice(),lowerBound:[0,0,0],upperBound:[0,0,0],colorMap:0,clipBounds:[[0,0,0],[0,0,0]],height:0,contourTint:0,contourColor:[0,0,0,1],permutation:[1,0,0,0,1,0,0,0,1],zOffset:-1e-4,objectOffset:[0,0,0],kambient:1,kdiffuse:1,kspecular:1,lightPosition:[1e3,1e3,1e3],eyePosition:[0,0,0],roughness:1,fresnel:1,opacity:1,vertexColor:0},I=w.slice(),O=[1,0,0,0,1,0,0,0,1];function z(t,e){t=t||{};var r=this.gl;r.disable(r.CULL_FACE),this._colorMap.bind(0);var n=P;n.model=t.model||w,n.view=t.view||w,n.projection=t.projection||w,n.lowerBound=[this.bounds[0][0],this.bounds[0][1],this.colorBounds[0]||this.bounds[0][2]],n.upperBound=[this.bounds[1][0],this.bounds[1][1],this.colorBounds[1]||this.bounds[1][2]],n.objectOffset=this.objectOffset,n.contourColor=this.contourColor[0],n.inverseModel=d(n.inverseModel,n.model);for(var i=0;i<2;++i)for(var a=n.clipBounds[i],o=0;o<3;++o)a[o]=Math.min(Math.max(this.clipBounds[i][o],-1e8),1e8);n.kambient=this.ambientLight,n.kdiffuse=this.diffuseLight,n.kspecular=this.specularLight,n.roughness=this.roughness,n.fresnel=this.fresnel,n.opacity=this.opacity,n.height=0,n.permutation=O,n.vertexColor=this.vertexColor;var s=I;for(p(s,n.view,n.model),p(s,n.projection,s),d(s,s),i=0;i<3;++i)n.eyePosition[i]=s[12+i]/s[15];var l=s[15];for(i=0;i<3;++i)l+=this.lightPosition[i]*s[4*i+3];for(i=0;i<3;++i){var c=s[12+i];for(o=0;o<3;++o)c+=s[4*o+i]*this.lightPosition[o];n.lightPosition[i]=c/l}var u=C(n,this);if(u.showSurface){for(this._shader.bind(),this._shader.uniforms=n,this._vao.bind(),this.showSurface&&this._vertexCount&&this._vao.draw(r.TRIANGLES,this._vertexCount),i=0;i<3;++i)this.surfaceProject[i]&&this.vertexCount&&(this._shader.uniforms.model=u.projections[i],this._shader.uniforms.clipBounds=u.clipBounds[i],this._vao.draw(r.TRIANGLES,this._vertexCount));this._vao.unbind()}if(u.showContour){var f=this._contourShader;n.kambient=1,n.kdiffuse=0,n.kspecular=0,n.opacity=1,f.bind(),f.uniforms=n;var h=this._contourVAO;for(h.bind(),i=0;i<3;++i)for(f.uniforms.permutation=k[i],r.lineWidth(this.contourWidth[i]*this.pixelRatio),o=0;o>4)/16)/255,i=Math.floor(n),a=n-i,o=e[1]*(t.value[1]+(15&t.value[2])/16)/255,s=Math.floor(o),l=o-s;i+=1,s+=1;var c=r.position;c[0]=c[1]=c[2]=0;for(var u=0;u<2;++u)for(var f=u?a:1-a,h=0;h<2;++h)for(var p=i+u,d=s+h,g=f*(h?l:1-l),v=0;v<3;++v)c[v]+=this._field[v].get(p,d)*g;for(var y=this._pickResult.level,x=0;x<3;++x)if(y[x]=m.le(this.contourLevels[x],c[x]),y[x]<0)this.contourLevels[x].length>0&&(y[x]=0);else if(y[x]Math.abs(_-c[x])&&(y[x]+=1)}for(r.index[0]=a<.5?i:i+1,r.index[1]=l<.5?s:s+1,r.uv[0]=n/e[0],r.uv[1]=o/e[1],v=0;v<3;++v)r.dataCoordinate[v]=this._field[v].get(r.index[0],r.index[1]);return r},S.padField=function(t,e){var r=e.shape.slice(),n=t.shape.slice();c.assign(t.lo(1,1).hi(r[0],r[1]),e),c.assign(t.lo(1).hi(r[0],1),e.hi(r[0],1)),c.assign(t.lo(1,n[1]-1).hi(r[0],1),e.lo(0,r[1]-1).hi(r[0],1)),c.assign(t.lo(0,1).hi(1,r[1]),e.hi(1)),c.assign(t.lo(n[0]-1,1).hi(1,r[1]),e.lo(r[0]-1)),t.set(0,0,e.get(0,0)),t.set(0,n[1]-1,e.get(0,r[1]-1)),t.set(n[0]-1,0,e.get(r[0]-1,0)),t.set(n[0]-1,n[1]-1,e.get(r[0]-1,r[1]-1))},S.update=function(t){t=t||{},this.objectOffset=t.objectOffset||this.objectOffset,this.dirty=!0,"contourWidth"in t&&(this.contourWidth=R(t.contourWidth,Number)),"showContour"in t&&(this.showContour=R(t.showContour,Boolean)),"showSurface"in t&&(this.showSurface=!!t.showSurface),"contourTint"in t&&(this.contourTint=R(t.contourTint,Boolean)),"contourColor"in t&&(this.contourColor=B(t.contourColor)),"contourProject"in t&&(this.contourProject=R(t.contourProject,(function(t){return R(t,Boolean)}))),"surfaceProject"in t&&(this.surfaceProject=t.surfaceProject),"dynamicColor"in t&&(this.dynamicColor=B(t.dynamicColor)),"dynamicTint"in t&&(this.dynamicTint=R(t.dynamicTint,Number)),"dynamicWidth"in t&&(this.dynamicWidth=R(t.dynamicWidth,Number)),"opacity"in t&&(this.opacity=t.opacity),"opacityscale"in t&&(this.opacityscale=t.opacityscale),"colorBounds"in t&&(this.colorBounds=t.colorBounds),"vertexColor"in t&&(this.vertexColor=t.vertexColor?1:0),"colormap"in t&&this._colorMap.setPixels(this.genColormap(t.colormap,this.opacityscale));var e=t.field||t.coords&&t.coords[2]||null,r=!1;if(e||(e=this._field[2].shape[0]||this._field[2].shape[2]?this._field[2].lo(1,1).hi(this._field[2].shape[0]-2,this._field[2].shape[1]-2):this._field[2].hi(0,0)),"field"in t||"coords"in t){var i=(e.shape[0]+2)*(e.shape[1]+2);i>this._field[2].data.length&&(s.freeFloat(this._field[2].data),this._field[2].data=s.mallocFloat(n.nextPow2(i))),this._field[2]=f(this._field[2].data,[e.shape[0]+2,e.shape[1]+2]),this.padField(this._field[2],e),this.shape=e.shape.slice();for(var a=this.shape,o=0;o<2;++o)this._field[2].size>this._field[o].data.length&&(s.freeFloat(this._field[o].data),this._field[o].data=s.mallocFloat(this._field[2].size)),this._field[o]=f(this._field[o].data,[a[0]+2,a[1]+2]);if(t.coords){var l=t.coords;if(!Array.isArray(l)||3!==l.length)throw new Error("gl-surface: invalid coordinates for x/y");for(o=0;o<2;++o){var c=l[o];for(v=0;v<2;++v)if(c.shape[v]!==a[v])throw new Error("gl-surface: coords have incorrect shape");this.padField(this._field[o],c)}}else if(t.ticks){var u=t.ticks;if(!Array.isArray(u)||2!==u.length)throw new Error("gl-surface: invalid ticks");for(o=0;o<2;++o){var p=u[o];if((Array.isArray(p)||p.length)&&(p=f(p)),p.shape[0]!==a[o])throw new Error("gl-surface: invalid tick length");var d=f(p.data,a);d.stride[o]=p.stride[0],d.stride[1^o]=0,this.padField(this._field[o],d)}}else{for(o=0;o<2;++o){var m=[0,0];m[o]=1,this._field[o]=f(this._field[o].data,[a[0]+2,a[1]+2],m,0)}this._field[0].set(0,0,0);for(var v=0;v0){for(var xt=0;xt<5;++xt)Q.pop();U-=1}continue t}Q.push(nt[0],nt[1],ot[0],ot[1],nt[2]),U+=1}}rt.push(U)}this._contourOffsets[$]=et,this._contourCounts[$]=rt}var bt=s.mallocFloat(Q.length);for(o=0;o halfCharStep + halfCharWidth ||\n\t\t\t\t\tfloor(uv.x) < halfCharStep - halfCharWidth) return;\n\n\t\t\t\tuv += charId * charStep;\n\t\t\t\tuv = uv / atlasSize;\n\n\t\t\t\tvec4 color = fontColor;\n\t\t\t\tvec4 mask = texture2D(atlas, uv);\n\n\t\t\t\tfloat maskY = lightness(mask);\n\t\t\t\t// float colorY = lightness(color);\n\t\t\t\tcolor.a *= maskY;\n\t\t\t\tcolor.a *= opacity;\n\n\t\t\t\t// color.a += .1;\n\n\t\t\t\t// antialiasing, see yiq color space y-channel formula\n\t\t\t\t// color.rgb += (1. - color.rgb) * (1. - mask.rgb);\n\n\t\t\t\tgl_FragColor = color;\n\t\t\t}"});return{regl:t,draw:e,atlas:{}}},T.prototype.update=function(t){var e=this;if("string"==typeof t)t={text:t};else if(!t)return;null!=(t=i(t,{position:"position positions coord coords coordinates",font:"font fontFace fontface typeface cssFont css-font family fontFamily",fontSize:"fontSize fontsize size font-size",text:"text texts chars characters value values symbols",align:"align alignment textAlign textbaseline",baseline:"baseline textBaseline textbaseline",direction:"dir direction textDirection",color:"color colour fill fill-color fillColor textColor textcolor",kerning:"kerning kern",range:"range dataBox",viewport:"vp viewport viewBox viewbox viewPort",opacity:"opacity alpha transparency visible visibility opaque",offset:"offset positionOffset padding shift indent indentation"},!0)).opacity&&(Array.isArray(t.opacity)?this.opacity=t.opacity.map((function(t){return parseFloat(t)})):this.opacity=parseFloat(t.opacity)),null!=t.viewport&&(this.viewport=f(t.viewport),T.normalViewport&&(this.viewport.y=this.canvas.height-this.viewport.y-this.viewport.height),this.viewportArray=[this.viewport.x,this.viewport.y,this.viewport.width,this.viewport.height]),null==this.viewport&&(this.viewport={x:0,y:0,width:this.gl.drawingBufferWidth,height:this.gl.drawingBufferHeight},this.viewportArray=[this.viewport.x,this.viewport.y,this.viewport.width,this.viewport.height]),null!=t.kerning&&(this.kerning=t.kerning),null!=t.offset&&("number"==typeof t.offset&&(t.offset=[t.offset,0]),this.positionOffset=y(t.offset)),t.direction&&(this.direction=t.direction),t.range&&(this.range=t.range,this.scale=[1/(t.range[2]-t.range[0]),1/(t.range[3]-t.range[1])],this.translate=[-t.range[0],-t.range[1]]),t.scale&&(this.scale=t.scale),t.translate&&(this.translate=t.translate),this.scale||(this.scale=[1/this.viewport.width,1/this.viewport.height]),this.translate||(this.translate=[0,0]),this.font.length||t.font||(t.font=T.baseFontSize+"px sans-serif");var r,a=!1,o=!1;if(t.font&&(Array.isArray(t.font)?t.font:[t.font]).forEach((function(t,r){if("string"==typeof t)try{t=n.parse(t)}catch(e){t=n.parse(T.baseFontSize+"px "+t)}else t=n.parse(n.stringify(t));var i=n.stringify({size:T.baseFontSize,family:t.family,stretch:_?t.stretch:void 0,variant:t.variant,weight:t.weight,style:t.style}),s=p(t.size),l=Math.round(s[0]*d(s[1]));if(l!==e.fontSize[r]&&(o=!0,e.fontSize[r]=l),!(e.font[r]&&i==e.font[r].baseString||(a=!0,e.font[r]=T.fonts[i],e.font[r]))){var c=t.family.join(", "),u=[t.style];t.style!=t.variant&&u.push(t.variant),t.variant!=t.weight&&u.push(t.weight),_&&t.weight!=t.stretch&&u.push(t.stretch),e.font[r]={baseString:i,family:c,weight:t.weight,stretch:t.stretch,style:t.style,variant:t.variant,width:{},kerning:{},metrics:v(c,{origin:"top",fontSize:T.baseFontSize,fontStyle:u.join(" ")})},T.fonts[i]=e.font[r]}})),(a||o)&&this.font.forEach((function(r,i){var a=n.stringify({size:e.fontSize[i],family:r.family,stretch:_?r.stretch:void 0,variant:r.variant,weight:r.weight,style:r.style});if(e.fontAtlas[i]=e.shader.atlas[a],!e.fontAtlas[i]){var o=r.metrics;e.shader.atlas[a]=e.fontAtlas[i]={fontString:a,step:2*Math.ceil(e.fontSize[i]*o.bottom*.5),em:e.fontSize[i],cols:0,rows:0,height:0,width:0,chars:[],ids:{},texture:e.regl.texture()}}null==t.text&&(t.text=e.text)})),"string"==typeof t.text&&t.position&&t.position.length>2){for(var s=Array(.5*t.position.length),h=0;h2){for(var w=!t.position[0].length,k=u.mallocFloat(2*this.count),M=0,A=0;M1?e.align[r]:e.align[0]:e.align;if("number"==typeof n)return n;switch(n){case"right":case"end":return-t;case"center":case"centre":case"middle":return.5*-t}return 0}))),null==this.baseline&&null==t.baseline&&(t.baseline=0),null!=t.baseline&&(this.baseline=t.baseline,Array.isArray(this.baseline)||(this.baseline=[this.baseline]),this.baselineOffset=this.baseline.map((function(t,r){var n=(e.font[r]||e.font[0]).metrics,i=0;return i+=.5*n.bottom,i+="number"==typeof t?t-n.baseline:-n[t],T.normalViewport||(i*=-1),i}))),null!=t.color)if(t.color||(t.color="transparent"),"string"!=typeof t.color&&isNaN(t.color)){var H;if("number"==typeof t.color[0]&&t.color.length>this.counts.length){var G=t.color.length;H=u.mallocUint8(G);for(var Y=(t.color.subarray||t.color.slice).bind(t.color),W=0;W4||this.baselineOffset.length>1||this.align&&this.align.length>1||this.fontAtlas.length>1||this.positionOffset.length>2){var J=Math.max(.5*this.position.length||0,.25*this.color.length||0,this.baselineOffset.length||0,this.alignOffset.length||0,this.font.length||0,this.opacity.length||0,.5*this.positionOffset.length||0);this.batch=Array(J);for(var K=0;K1?this.counts[K]:this.counts[0],offset:this.textOffsets.length>1?this.textOffsets[K]:this.textOffsets[0],color:this.color?this.color.length<=4?this.color:this.color.subarray(4*K,4*K+4):[0,0,0,255],opacity:Array.isArray(this.opacity)?this.opacity[K]:this.opacity,baseline:null!=this.baselineOffset[K]?this.baselineOffset[K]:this.baselineOffset[0],align:this.align?null!=this.alignOffset[K]?this.alignOffset[K]:this.alignOffset[0]:0,atlas:this.fontAtlas[K]||this.fontAtlas[0],positionOffset:this.positionOffset.length>2?this.positionOffset.subarray(2*K,2*K+2):this.positionOffset}}else this.count?this.batch=[{count:this.count,offset:0,color:this.color||[0,0,0,255],opacity:Array.isArray(this.opacity)?this.opacity[0]:this.opacity,baseline:this.baselineOffset[0],align:this.alignOffset?this.alignOffset[0]:0,atlas:this.fontAtlas[0],positionOffset:this.positionOffset}]:this.batch=[]},T.prototype.destroy=function(){},T.prototype.kerning=!0,T.prototype.position={constant:new Float32Array(2)},T.prototype.translate=null,T.prototype.scale=null,T.prototype.font=null,T.prototype.text="",T.prototype.positionOffset=[0,0],T.prototype.opacity=1,T.prototype.color=new Uint8Array([0,0,0,255]),T.prototype.alignOffset=[0,0],T.normalViewport=!1,T.maxAtlasSize=1024,T.atlasCanvas=document.createElement("canvas"),T.atlasContext=T.atlasCanvas.getContext("2d",{alpha:!1}),T.baseFontSize=64,T.fonts={},e.exports=T},{"bit-twiddle":99,"color-normalize":126,"css-font":145,"detect-kerning":172,"es6-weak-map":232,"flatten-vertex-data":243,"font-atlas":244,"font-measure":245,"gl-util/context":348,"is-plain-obj":448,"object-assign":479,"parse-rect":484,"parse-unit":486,"pick-by-alias":490,regl:532,"to-px":592,"typedarray-pool":609}],347:[function(t,e,r){"use strict";var n=t("ndarray"),i=t("ndarray-ops"),a=t("typedarray-pool");e.exports=function(t){if(arguments.length<=1)throw new Error("gl-texture2d: Missing arguments for texture2d constructor");o||c(t);if("number"==typeof arguments[1])return v(t,arguments[1],arguments[2],arguments[3]||t.RGBA,arguments[4]||t.UNSIGNED_BYTE);if(Array.isArray(arguments[1]))return v(t,0|arguments[1][0],0|arguments[1][1],arguments[2]||t.RGBA,arguments[3]||t.UNSIGNED_BYTE);if("object"==typeof arguments[1]){var e=arguments[1],r=u(e)?e:e.raw;if(r)return y(t,r,0|e.width,0|e.height,arguments[2]||t.RGBA,arguments[3]||t.UNSIGNED_BYTE);if(e.shape&&e.data&&e.stride)return x(t,e)}throw new Error("gl-texture2d: Invalid arguments for texture2d constructor")};var o=null,s=null,l=null;function c(t){o=[t.LINEAR,t.NEAREST_MIPMAP_LINEAR,t.LINEAR_MIPMAP_NEAREST,t.LINEAR_MIPMAP_NEAREST],s=[t.NEAREST,t.LINEAR,t.NEAREST_MIPMAP_NEAREST,t.NEAREST_MIPMAP_LINEAR,t.LINEAR_MIPMAP_NEAREST,t.LINEAR_MIPMAP_LINEAR],l=[t.REPEAT,t.CLAMP_TO_EDGE,t.MIRRORED_REPEAT]}function u(t){return"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement||"undefined"!=typeof HTMLImageElement&&t instanceof HTMLImageElement||"undefined"!=typeof HTMLVideoElement&&t instanceof HTMLVideoElement||"undefined"!=typeof ImageData&&t instanceof ImageData}var f=function(t,e){i.muls(t,e,255)};function h(t,e,r){var n=t.gl,i=n.getParameter(n.MAX_TEXTURE_SIZE);if(e<0||e>i||r<0||r>i)throw new Error("gl-texture2d: Invalid texture size");return t._shape=[e,r],t.bind(),n.texImage2D(n.TEXTURE_2D,0,t.format,e,r,0,t.format,t.type,null),t._mipLevels=[0],t}function p(t,e,r,n,i,a){this.gl=t,this.handle=e,this.format=i,this.type=a,this._shape=[r,n],this._mipLevels=[0],this._magFilter=t.NEAREST,this._minFilter=t.NEAREST,this._wrapS=t.CLAMP_TO_EDGE,this._wrapT=t.CLAMP_TO_EDGE,this._anisoSamples=1;var o=this,s=[this._wrapS,this._wrapT];Object.defineProperties(s,[{get:function(){return o._wrapS},set:function(t){return o.wrapS=t}},{get:function(){return o._wrapT},set:function(t){return o.wrapT=t}}]),this._wrapVector=s;var l=[this._shape[0],this._shape[1]];Object.defineProperties(l,[{get:function(){return o._shape[0]},set:function(t){return o.width=t}},{get:function(){return o._shape[1]},set:function(t){return o.height=t}}]),this._shapeVector=l}var d=p.prototype;function m(t,e){return 3===t.length?1===e[2]&&e[1]===t[0]*t[2]&&e[0]===t[2]:1===e[0]&&e[1]===t[0]}function g(t){var e=t.createTexture();return t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),e}function v(t,e,r,n,i){var a=t.getParameter(t.MAX_TEXTURE_SIZE);if(e<0||e>a||r<0||r>a)throw new Error("gl-texture2d: Invalid texture shape");if(i===t.FLOAT&&!t.getExtension("OES_texture_float"))throw new Error("gl-texture2d: Floating point textures not supported on this platform");var o=g(t);return t.texImage2D(t.TEXTURE_2D,0,n,e,r,0,n,i,null),new p(t,o,e,r,n,i)}function y(t,e,r,n,i,a){var o=g(t);return t.texImage2D(t.TEXTURE_2D,0,i,i,a,e),new p(t,o,r,n,i,a)}function x(t,e){var r=e.dtype,o=e.shape.slice(),s=t.getParameter(t.MAX_TEXTURE_SIZE);if(o[0]<0||o[0]>s||o[1]<0||o[1]>s)throw new Error("gl-texture2d: Invalid texture size");var l=m(o,e.stride.slice()),c=0;"float32"===r?c=t.FLOAT:"float64"===r?(c=t.FLOAT,l=!1,r="float32"):"uint8"===r?c=t.UNSIGNED_BYTE:(c=t.UNSIGNED_BYTE,l=!1,r="uint8");var u,h,d=0;if(2===o.length)d=t.LUMINANCE,o=[o[0],o[1],1],e=n(e.data,o,[e.stride[0],e.stride[1],1],e.offset);else{if(3!==o.length)throw new Error("gl-texture2d: Invalid shape for texture");if(1===o[2])d=t.ALPHA;else if(2===o[2])d=t.LUMINANCE_ALPHA;else if(3===o[2])d=t.RGB;else{if(4!==o[2])throw new Error("gl-texture2d: Invalid shape for pixel coords");d=t.RGBA}}c!==t.FLOAT||t.getExtension("OES_texture_float")||(c=t.UNSIGNED_BYTE,l=!1);var v=e.size;if(l)u=0===e.offset&&e.data.length===v?e.data:e.data.subarray(e.offset,e.offset+v);else{var y=[o[2],o[2]*o[0],1];h=a.malloc(v,r);var x=n(h,o,y,0);"float32"!==r&&"float64"!==r||c!==t.UNSIGNED_BYTE?i.assign(x,e):f(x,e),u=h.subarray(0,v)}var b=g(t);return t.texImage2D(t.TEXTURE_2D,0,d,o[0],o[1],0,d,c,u),l||a.free(h),new p(t,b,o[0],o[1],d,c)}Object.defineProperties(d,{minFilter:{get:function(){return this._minFilter},set:function(t){this.bind();var e=this.gl;if(this.type===e.FLOAT&&o.indexOf(t)>=0&&(e.getExtension("OES_texture_float_linear")||(t=e.NEAREST)),s.indexOf(t)<0)throw new Error("gl-texture2d: Unknown filter mode "+t);return e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,t),this._minFilter=t}},magFilter:{get:function(){return this._magFilter},set:function(t){this.bind();var e=this.gl;if(this.type===e.FLOAT&&o.indexOf(t)>=0&&(e.getExtension("OES_texture_float_linear")||(t=e.NEAREST)),s.indexOf(t)<0)throw new Error("gl-texture2d: Unknown filter mode "+t);return e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,t),this._magFilter=t}},mipSamples:{get:function(){return this._anisoSamples},set:function(t){var e=this._anisoSamples;if(this._anisoSamples=0|Math.max(t,1),e!==this._anisoSamples){var r=this.gl.getExtension("EXT_texture_filter_anisotropic");r&&this.gl.texParameterf(this.gl.TEXTURE_2D,r.TEXTURE_MAX_ANISOTROPY_EXT,this._anisoSamples)}return this._anisoSamples}},wrapS:{get:function(){return this._wrapS},set:function(t){if(this.bind(),l.indexOf(t)<0)throw new Error("gl-texture2d: Unknown wrap mode "+t);return this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,t),this._wrapS=t}},wrapT:{get:function(){return this._wrapT},set:function(t){if(this.bind(),l.indexOf(t)<0)throw new Error("gl-texture2d: Unknown wrap mode "+t);return this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,t),this._wrapT=t}},wrap:{get:function(){return this._wrapVector},set:function(t){if(Array.isArray(t)||(t=[t,t]),2!==t.length)throw new Error("gl-texture2d: Must specify wrap mode for rows and columns");for(var e=0;e<2;++e)if(l.indexOf(t[e])<0)throw new Error("gl-texture2d: Unknown wrap mode "+t);this._wrapS=t[0],this._wrapT=t[1];var r=this.gl;return this.bind(),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,this._wrapS),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,this._wrapT),t}},shape:{get:function(){return this._shapeVector},set:function(t){if(Array.isArray(t)){if(2!==t.length)throw new Error("gl-texture2d: Invalid texture shape")}else t=[0|t,0|t];return h(this,0|t[0],0|t[1]),[0|t[0],0|t[1]]}},width:{get:function(){return this._shape[0]},set:function(t){return h(this,t|=0,this._shape[1]),t}},height:{get:function(){return this._shape[1]},set:function(t){return t|=0,h(this,this._shape[0],t),t}}}),d.bind=function(t){var e=this.gl;return void 0!==t&&e.activeTexture(e.TEXTURE0+(0|t)),e.bindTexture(e.TEXTURE_2D,this.handle),void 0!==t?0|t:e.getParameter(e.ACTIVE_TEXTURE)-e.TEXTURE0},d.dispose=function(){this.gl.deleteTexture(this.handle)},d.generateMipmap=function(){this.bind(),this.gl.generateMipmap(this.gl.TEXTURE_2D);for(var t=Math.min(this._shape[0],this._shape[1]),e=0;t>0;++e,t>>>=1)this._mipLevels.indexOf(e)<0&&this._mipLevels.push(e)},d.setPixels=function(t,e,r,o){var s=this.gl;this.bind(),Array.isArray(e)?(o=r,r=0|e[1],e=0|e[0]):(e=e||0,r=r||0),o=o||0;var l=u(t)?t:t.raw;if(l){this._mipLevels.indexOf(o)<0?(s.texImage2D(s.TEXTURE_2D,0,this.format,this.format,this.type,l),this._mipLevels.push(o)):s.texSubImage2D(s.TEXTURE_2D,o,e,r,this.format,this.type,l)}else{if(!(t.shape&&t.stride&&t.data))throw new Error("gl-texture2d: Unsupported data type");if(t.shape.length<2||e+t.shape[1]>this._shape[1]>>>o||r+t.shape[0]>this._shape[0]>>>o||e<0||r<0)throw new Error("gl-texture2d: Texture dimensions are out of bounds");!function(t,e,r,o,s,l,c,u){var h=u.dtype,p=u.shape.slice();if(p.length<2||p.length>3)throw new Error("gl-texture2d: Invalid ndarray, must be 2d or 3d");var d=0,g=0,v=m(p,u.stride.slice());"float32"===h?d=t.FLOAT:"float64"===h?(d=t.FLOAT,v=!1,h="float32"):"uint8"===h?d=t.UNSIGNED_BYTE:(d=t.UNSIGNED_BYTE,v=!1,h="uint8");if(2===p.length)g=t.LUMINANCE,p=[p[0],p[1],1],u=n(u.data,p,[u.stride[0],u.stride[1],1],u.offset);else{if(3!==p.length)throw new Error("gl-texture2d: Invalid shape for texture");if(1===p[2])g=t.ALPHA;else if(2===p[2])g=t.LUMINANCE_ALPHA;else if(3===p[2])g=t.RGB;else{if(4!==p[2])throw new Error("gl-texture2d: Invalid shape for pixel coords");g=t.RGBA}p[2]}g!==t.LUMINANCE&&g!==t.ALPHA||s!==t.LUMINANCE&&s!==t.ALPHA||(g=s);if(g!==s)throw new Error("gl-texture2d: Incompatible texture format for setPixels");var y=u.size,x=c.indexOf(o)<0;x&&c.push(o);if(d===l&&v)0===u.offset&&u.data.length===y?x?t.texImage2D(t.TEXTURE_2D,o,s,p[0],p[1],0,s,l,u.data):t.texSubImage2D(t.TEXTURE_2D,o,e,r,p[0],p[1],s,l,u.data):x?t.texImage2D(t.TEXTURE_2D,o,s,p[0],p[1],0,s,l,u.data.subarray(u.offset,u.offset+y)):t.texSubImage2D(t.TEXTURE_2D,o,e,r,p[0],p[1],s,l,u.data.subarray(u.offset,u.offset+y));else{var b;b=l===t.FLOAT?a.mallocFloat32(y):a.mallocUint8(y);var _=n(b,p,[p[2],p[2]*p[0],1]);d===t.FLOAT&&l===t.UNSIGNED_BYTE?f(_,u):i.assign(_,u),x?t.texImage2D(t.TEXTURE_2D,o,s,p[0],p[1],0,s,l,b.subarray(0,y)):t.texSubImage2D(t.TEXTURE_2D,o,e,r,p[0],p[1],s,l,b.subarray(0,y)),l===t.FLOAT?a.freeFloat32(b):a.freeUint8(b)}}(s,e,r,o,this.format,this.type,this._mipLevels,t)}}},{ndarray:475,"ndarray-ops":470,"typedarray-pool":609}],348:[function(t,e,r){(function(r){(function(){"use strict";var n=t("pick-by-alias");function i(t){if(t.container)if(t.container==document.body)document.body.style.width||(t.canvas.width=t.width||t.pixelRatio*r.innerWidth),document.body.style.height||(t.canvas.height=t.height||t.pixelRatio*r.innerHeight);else{var e=t.container.getBoundingClientRect();t.canvas.width=t.width||e.right-e.left,t.canvas.height=t.height||e.bottom-e.top}}function a(t){return"function"==typeof t.getContext&&"width"in t&&"height"in t}function o(){var t=document.createElement("canvas");return t.style.position="absolute",t.style.top=0,t.style.left=0,t}e.exports=function(t){var e;if(t?"string"==typeof t&&(t={container:t}):t={},a(t)?t={container:t}:t="string"==typeof(e=t).nodeName&&"function"==typeof e.appendChild&&"function"==typeof e.getBoundingClientRect?{container:t}:function(t){return"function"==typeof t.drawArrays||"function"==typeof t.drawElements}(t)?{gl:t}:n(t,{container:"container target element el canvas holder parent parentNode wrapper use ref root node",gl:"gl context webgl glContext",attrs:"attributes attrs contextAttributes",pixelRatio:"pixelRatio pxRatio px ratio pxratio pixelratio",width:"w width",height:"h height"},!0),t.pixelRatio||(t.pixelRatio=r.pixelRatio||1),t.gl)return t.gl;if(t.canvas&&(t.container=t.canvas.parentNode),t.container){if("string"==typeof t.container){var s=document.querySelector(t.container);if(!s)throw Error("Element "+t.container+" is not found");t.container=s}a(t.container)?(t.canvas=t.container,t.container=t.canvas.parentNode):t.canvas||(t.canvas=o(),t.container.appendChild(t.canvas),i(t))}else if(!t.canvas){if("undefined"==typeof document)throw Error("Not DOM environment. Use headless-gl.");t.container=document.body||document.documentElement,t.canvas=o(),t.container.appendChild(t.canvas),i(t)}if(!t.gl)try{t.gl=t.canvas.getContext("webgl",t.attrs)}catch(e){try{t.gl=t.canvas.getContext("experimental-webgl",t.attrs)}catch(e){t.gl=t.canvas.getContext("webgl-experimental",t.attrs)}}return t.gl}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"pick-by-alias":490}],349:[function(t,e,r){"use strict";e.exports=function(t,e,r){e?e.bind():t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null);var n=0|t.getParameter(t.MAX_VERTEX_ATTRIBS);if(r){if(r.length>n)throw new Error("gl-vao: Too many vertex attributes");for(var i=0;i1?0:Math.acos(s)};var n=t("./fromValues"),i=t("./normalize"),a=t("./dot")},{"./dot":364,"./fromValues":370,"./normalize":381}],355:[function(t,e,r){e.exports=function(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t}},{}],356:[function(t,e,r){e.exports=function(t){var e=new Float32Array(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}},{}],357:[function(t,e,r){e.exports=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}},{}],358:[function(t,e,r){e.exports=function(){var t=new Float32Array(3);return t[0]=0,t[1]=0,t[2]=0,t}},{}],359:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2];return t[0]=i*l-a*s,t[1]=a*o-n*l,t[2]=n*s-i*o,t}},{}],360:[function(t,e,r){e.exports=t("./distance")},{"./distance":361}],361:[function(t,e,r){e.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2];return Math.sqrt(r*r+n*n+i*i)}},{}],362:[function(t,e,r){e.exports=t("./divide")},{"./divide":363}],363:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}},{}],364:[function(t,e,r){e.exports=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}},{}],365:[function(t,e,r){e.exports=1e-6},{}],366:[function(t,e,r){e.exports=function(t,e){var r=t[0],i=t[1],a=t[2],o=e[0],s=e[1],l=e[2];return Math.abs(r-o)<=n*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(i-s)<=n*Math.max(1,Math.abs(i),Math.abs(s))&&Math.abs(a-l)<=n*Math.max(1,Math.abs(a),Math.abs(l))};var n=t("./epsilon")},{"./epsilon":365}],367:[function(t,e,r){e.exports=function(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}},{}],368:[function(t,e,r){e.exports=function(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t}},{}],369:[function(t,e,r){e.exports=function(t,e,r,i,a,o){var s,l;e||(e=3);r||(r=0);l=i?Math.min(i*e+r,t.length):t.length;for(s=r;s0&&(a=1/Math.sqrt(a),t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a);return t}},{}],382:[function(t,e,r){e.exports=function(t,e){e=e||1;var r=2*Math.random()*Math.PI,n=2*Math.random()-1,i=Math.sqrt(1-n*n)*e;return t[0]=Math.cos(r)*i,t[1]=Math.sin(r)*i,t[2]=n*e,t}},{}],383:[function(t,e,r){e.exports=function(t,e,r,n){var i=r[1],a=r[2],o=e[1]-i,s=e[2]-a,l=Math.sin(n),c=Math.cos(n);return t[0]=e[0],t[1]=i+o*c-s*l,t[2]=a+o*l+s*c,t}},{}],384:[function(t,e,r){e.exports=function(t,e,r,n){var i=r[0],a=r[2],o=e[0]-i,s=e[2]-a,l=Math.sin(n),c=Math.cos(n);return t[0]=i+s*l+o*c,t[1]=e[1],t[2]=a+s*c-o*l,t}},{}],385:[function(t,e,r){e.exports=function(t,e,r,n){var i=r[0],a=r[1],o=e[0]-i,s=e[1]-a,l=Math.sin(n),c=Math.cos(n);return t[0]=i+o*c-s*l,t[1]=a+o*l+s*c,t[2]=e[2],t}},{}],386:[function(t,e,r){e.exports=function(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t}},{}],387:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}},{}],388:[function(t,e,r){e.exports=function(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t}},{}],389:[function(t,e,r){e.exports=function(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}},{}],390:[function(t,e,r){e.exports=t("./squaredDistance")},{"./squaredDistance":392}],391:[function(t,e,r){e.exports=t("./squaredLength")},{"./squaredLength":393}],392:[function(t,e,r){e.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2];return r*r+n*n+i*i}},{}],393:[function(t,e,r){e.exports=function(t){var e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n}},{}],394:[function(t,e,r){e.exports=t("./subtract")},{"./subtract":395}],395:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}},{}],396:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2];return t[0]=n*r[0]+i*r[3]+a*r[6],t[1]=n*r[1]+i*r[4]+a*r[7],t[2]=n*r[2]+i*r[5]+a*r[8],t}},{}],397:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[3]*n+r[7]*i+r[11]*a+r[15];return o=o||1,t[0]=(r[0]*n+r[4]*i+r[8]*a+r[12])/o,t[1]=(r[1]*n+r[5]*i+r[9]*a+r[13])/o,t[2]=(r[2]*n+r[6]*i+r[10]*a+r[14])/o,t}},{}],398:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2],c=r[3],u=c*n+s*a-l*i,f=c*i+l*n-o*a,h=c*a+o*i-s*n,p=-o*n-s*i-l*a;return t[0]=u*c+p*-o+f*-l-h*-s,t[1]=f*c+p*-s+h*-o-u*-l,t[2]=h*c+p*-l+u*-s-f*-o,t}},{}],399:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t}},{}],400:[function(t,e,r){e.exports=function(t){var e=new Float32Array(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}},{}],401:[function(t,e,r){e.exports=function(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}},{}],402:[function(t,e,r){e.exports=function(){var t=new Float32Array(4);return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t}},{}],403:[function(t,e,r){e.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2],a=e[3]-t[3];return Math.sqrt(r*r+n*n+i*i+a*a)}},{}],404:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t[3]=e[3]/r[3],t}},{}],405:[function(t,e,r){e.exports=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}},{}],406:[function(t,e,r){e.exports=function(t,e,r,n){var i=new Float32Array(4);return i[0]=t,i[1]=e,i[2]=r,i[3]=n,i}},{}],407:[function(t,e,r){e.exports={create:t("./create"),clone:t("./clone"),fromValues:t("./fromValues"),copy:t("./copy"),set:t("./set"),add:t("./add"),subtract:t("./subtract"),multiply:t("./multiply"),divide:t("./divide"),min:t("./min"),max:t("./max"),scale:t("./scale"),scaleAndAdd:t("./scaleAndAdd"),distance:t("./distance"),squaredDistance:t("./squaredDistance"),length:t("./length"),squaredLength:t("./squaredLength"),negate:t("./negate"),inverse:t("./inverse"),normalize:t("./normalize"),dot:t("./dot"),lerp:t("./lerp"),random:t("./random"),transformMat4:t("./transformMat4"),transformQuat:t("./transformQuat")}},{"./add":399,"./clone":400,"./copy":401,"./create":402,"./distance":403,"./divide":404,"./dot":405,"./fromValues":406,"./inverse":408,"./length":409,"./lerp":410,"./max":411,"./min":412,"./multiply":413,"./negate":414,"./normalize":415,"./random":416,"./scale":417,"./scaleAndAdd":418,"./set":419,"./squaredDistance":420,"./squaredLength":421,"./subtract":422,"./transformMat4":423,"./transformQuat":424}],408:[function(t,e,r){e.exports=function(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t[3]=1/e[3],t}},{}],409:[function(t,e,r){e.exports=function(t){var e=t[0],r=t[1],n=t[2],i=t[3];return Math.sqrt(e*e+r*r+n*n+i*i)}},{}],410:[function(t,e,r){e.exports=function(t,e,r,n){var i=e[0],a=e[1],o=e[2],s=e[3];return t[0]=i+n*(r[0]-i),t[1]=a+n*(r[1]-a),t[2]=o+n*(r[2]-o),t[3]=s+n*(r[3]-s),t}},{}],411:[function(t,e,r){e.exports=function(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t[3]=Math.max(e[3],r[3]),t}},{}],412:[function(t,e,r){e.exports=function(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t[3]=Math.min(e[3],r[3]),t}},{}],413:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t[3]=e[3]*r[3],t}},{}],414:[function(t,e,r){e.exports=function(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t}},{}],415:[function(t,e,r){e.exports=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=r*r+n*n+i*i+a*a;o>0&&(o=1/Math.sqrt(o),t[0]=r*o,t[1]=n*o,t[2]=i*o,t[3]=a*o);return t}},{}],416:[function(t,e,r){var n=t("./normalize"),i=t("./scale");e.exports=function(t,e){return e=e||1,t[0]=Math.random(),t[1]=Math.random(),t[2]=Math.random(),t[3]=Math.random(),n(t,t),i(t,t,e),t}},{"./normalize":415,"./scale":417}],417:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t}},{}],418:[function(t,e,r){e.exports=function(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t}},{}],419:[function(t,e,r){e.exports=function(t,e,r,n,i){return t[0]=e,t[1]=r,t[2]=n,t[3]=i,t}},{}],420:[function(t,e,r){e.exports=function(t,e){var r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2],a=e[3]-t[3];return r*r+n*n+i*i+a*a}},{}],421:[function(t,e,r){e.exports=function(t){var e=t[0],r=t[1],n=t[2],i=t[3];return e*e+r*r+n*n+i*i}},{}],422:[function(t,e,r){e.exports=function(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t}},{}],423:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3];return t[0]=r[0]*n+r[4]*i+r[8]*a+r[12]*o,t[1]=r[1]*n+r[5]*i+r[9]*a+r[13]*o,t[2]=r[2]*n+r[6]*i+r[10]*a+r[14]*o,t[3]=r[3]*n+r[7]*i+r[11]*a+r[15]*o,t}},{}],424:[function(t,e,r){e.exports=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2],c=r[3],u=c*n+s*a-l*i,f=c*i+l*n-o*a,h=c*a+o*i-s*n,p=-o*n-s*i-l*a;return t[0]=u*c+p*-o+f*-l-h*-s,t[1]=f*c+p*-s+h*-o-u*-l,t[2]=h*c+p*-l+u*-s-f*-o,t[3]=e[3],t}},{}],425:[function(t,e,r){var n=t("glsl-tokenizer"),i=t("atob-lite");e.exports=function(t){for(var e=Array.isArray(t)?t:n(t),r=0;r0)continue;r=t.slice(0,1).join("")}return M(r),v+=r.length,(p=p.slice(r.length)).length}}function I(){return/[^a-fA-F0-9]/.test(e)?(M(p.join("")),h=999,u):(p.push(e),r=e,u+1)}function O(){return"."===e||/[eE]/.test(e)?(p.push(e),h=5,r=e,u+1):"x"===e&&1===p.length&&"0"===p[0]?(h=11,p.push(e),r=e,u+1):/[^\d]/.test(e)?(M(p.join("")),h=999,u):(p.push(e),r=e,u+1)}function z(){return"f"===e&&(p.push(e),r=e,u+=1),/[eE]/.test(e)?(p.push(e),r=e,u+1):("-"!==e&&"+"!==e||!/[eE]/.test(r))&&/[^\d]/.test(e)?(M(p.join("")),h=999,u):(p.push(e),r=e,u+1)}function D(){if(/[^\d\w_]/.test(e)){var t=p.join("");return h=k[t]?8:T[t]?7:6,M(p.join("")),h=999,u}return p.push(e),r=e,u+1}};var n=t("./lib/literals"),i=t("./lib/operators"),a=t("./lib/builtins"),o=t("./lib/literals-300es"),s=t("./lib/builtins-300es"),l=["block-comment","line-comment","preprocessor","operator","integer","float","ident","builtin","keyword","whitespace","eof","integer"]},{"./lib/builtins":428,"./lib/builtins-300es":427,"./lib/literals":430,"./lib/literals-300es":429,"./lib/operators":431}],427:[function(t,e,r){var n=t("./builtins");n=n.slice().filter((function(t){return!/^(gl\_|texture)/.test(t)})),e.exports=n.concat(["gl_VertexID","gl_InstanceID","gl_Position","gl_PointSize","gl_FragCoord","gl_FrontFacing","gl_FragDepth","gl_PointCoord","gl_MaxVertexAttribs","gl_MaxVertexUniformVectors","gl_MaxVertexOutputVectors","gl_MaxFragmentInputVectors","gl_MaxVertexTextureImageUnits","gl_MaxCombinedTextureImageUnits","gl_MaxTextureImageUnits","gl_MaxFragmentUniformVectors","gl_MaxDrawBuffers","gl_MinProgramTexelOffset","gl_MaxProgramTexelOffset","gl_DepthRangeParameters","gl_DepthRange","trunc","round","roundEven","isnan","isinf","floatBitsToInt","floatBitsToUint","intBitsToFloat","uintBitsToFloat","packSnorm2x16","unpackSnorm2x16","packUnorm2x16","unpackUnorm2x16","packHalf2x16","unpackHalf2x16","outerProduct","transpose","determinant","inverse","texture","textureSize","textureProj","textureLod","textureOffset","texelFetch","texelFetchOffset","textureProjOffset","textureLodOffset","textureProjLod","textureProjLodOffset","textureGrad","textureGradOffset","textureProjGrad","textureProjGradOffset"])},{"./builtins":428}],428:[function(t,e,r){e.exports=["abs","acos","all","any","asin","atan","ceil","clamp","cos","cross","dFdx","dFdy","degrees","distance","dot","equal","exp","exp2","faceforward","floor","fract","gl_BackColor","gl_BackLightModelProduct","gl_BackLightProduct","gl_BackMaterial","gl_BackSecondaryColor","gl_ClipPlane","gl_ClipVertex","gl_Color","gl_DepthRange","gl_DepthRangeParameters","gl_EyePlaneQ","gl_EyePlaneR","gl_EyePlaneS","gl_EyePlaneT","gl_Fog","gl_FogCoord","gl_FogFragCoord","gl_FogParameters","gl_FragColor","gl_FragCoord","gl_FragData","gl_FragDepth","gl_FragDepthEXT","gl_FrontColor","gl_FrontFacing","gl_FrontLightModelProduct","gl_FrontLightProduct","gl_FrontMaterial","gl_FrontSecondaryColor","gl_LightModel","gl_LightModelParameters","gl_LightModelProducts","gl_LightProducts","gl_LightSource","gl_LightSourceParameters","gl_MaterialParameters","gl_MaxClipPlanes","gl_MaxCombinedTextureImageUnits","gl_MaxDrawBuffers","gl_MaxFragmentUniformComponents","gl_MaxLights","gl_MaxTextureCoords","gl_MaxTextureImageUnits","gl_MaxTextureUnits","gl_MaxVaryingFloats","gl_MaxVertexAttribs","gl_MaxVertexTextureImageUnits","gl_MaxVertexUniformComponents","gl_ModelViewMatrix","gl_ModelViewMatrixInverse","gl_ModelViewMatrixInverseTranspose","gl_ModelViewMatrixTranspose","gl_ModelViewProjectionMatrix","gl_ModelViewProjectionMatrixInverse","gl_ModelViewProjectionMatrixInverseTranspose","gl_ModelViewProjectionMatrixTranspose","gl_MultiTexCoord0","gl_MultiTexCoord1","gl_MultiTexCoord2","gl_MultiTexCoord3","gl_MultiTexCoord4","gl_MultiTexCoord5","gl_MultiTexCoord6","gl_MultiTexCoord7","gl_Normal","gl_NormalMatrix","gl_NormalScale","gl_ObjectPlaneQ","gl_ObjectPlaneR","gl_ObjectPlaneS","gl_ObjectPlaneT","gl_Point","gl_PointCoord","gl_PointParameters","gl_PointSize","gl_Position","gl_ProjectionMatrix","gl_ProjectionMatrixInverse","gl_ProjectionMatrixInverseTranspose","gl_ProjectionMatrixTranspose","gl_SecondaryColor","gl_TexCoord","gl_TextureEnvColor","gl_TextureMatrix","gl_TextureMatrixInverse","gl_TextureMatrixInverseTranspose","gl_TextureMatrixTranspose","gl_Vertex","greaterThan","greaterThanEqual","inversesqrt","length","lessThan","lessThanEqual","log","log2","matrixCompMult","max","min","mix","mod","normalize","not","notEqual","pow","radians","reflect","refract","sign","sin","smoothstep","sqrt","step","tan","texture2D","texture2DLod","texture2DProj","texture2DProjLod","textureCube","textureCubeLod","texture2DLodEXT","texture2DProjLodEXT","textureCubeLodEXT","texture2DGradEXT","texture2DProjGradEXT","textureCubeGradEXT"]},{}],429:[function(t,e,r){var n=t("./literals");e.exports=n.slice().concat(["layout","centroid","smooth","case","mat2x2","mat2x3","mat2x4","mat3x2","mat3x3","mat3x4","mat4x2","mat4x3","mat4x4","uvec2","uvec3","uvec4","samplerCubeShadow","sampler2DArray","sampler2DArrayShadow","isampler2D","isampler3D","isamplerCube","isampler2DArray","usampler2D","usampler3D","usamplerCube","usampler2DArray","coherent","restrict","readonly","writeonly","resource","atomic_uint","noperspective","patch","sample","subroutine","common","partition","active","filter","image1D","image2D","image3D","imageCube","iimage1D","iimage2D","iimage3D","iimageCube","uimage1D","uimage2D","uimage3D","uimageCube","image1DArray","image2DArray","iimage1DArray","iimage2DArray","uimage1DArray","uimage2DArray","image1DShadow","image2DShadow","image1DArrayShadow","image2DArrayShadow","imageBuffer","iimageBuffer","uimageBuffer","sampler1DArray","sampler1DArrayShadow","isampler1D","isampler1DArray","usampler1D","usampler1DArray","isampler2DRect","usampler2DRect","samplerBuffer","isamplerBuffer","usamplerBuffer","sampler2DMS","isampler2DMS","usampler2DMS","sampler2DMSArray","isampler2DMSArray","usampler2DMSArray"])},{"./literals":430}],430:[function(t,e,r){e.exports=["precision","highp","mediump","lowp","attribute","const","uniform","varying","break","continue","do","for","while","if","else","in","out","inout","float","int","uint","void","bool","true","false","discard","return","mat2","mat3","mat4","vec2","vec3","vec4","ivec2","ivec3","ivec4","bvec2","bvec3","bvec4","sampler1D","sampler2D","sampler3D","samplerCube","sampler1DShadow","sampler2DShadow","struct","asm","class","union","enum","typedef","template","this","packed","goto","switch","default","inline","noinline","volatile","public","static","extern","external","interface","long","short","double","half","fixed","unsigned","input","output","hvec2","hvec3","hvec4","dvec2","dvec3","dvec4","fvec2","fvec3","fvec4","sampler2DRect","sampler3DRect","sampler2DRectShadow","sizeof","cast","namespace","using"]},{}],431:[function(t,e,r){e.exports=["<<=",">>=","++","--","<<",">>","<=",">=","==","!=","&&","||","+=","-=","*=","/=","%=","&=","^^","^=","|=","(",")","[","]",".","!","~","*","/","%","+","-","<",">","&","^","|","?",":","=",",",";","{","}"]},{}],432:[function(t,e,r){var n=t("./index");e.exports=function(t,e){var r=n(e),i=[];return i=(i=i.concat(r(t))).concat(r(null))}},{"./index":426}],433:[function(t,e,r){arguments[4][256][0].apply(r,arguments)},{dup:256}],434:[function(t,e,r){(function(r){(function(){"use strict";var n,i=t("is-browser");n="function"==typeof r.matchMedia?!r.matchMedia("(hover: none)").matches:i,e.exports=n}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"is-browser":443}],435:[function(t,e,r){"use strict";var n=t("is-browser");e.exports=n&&function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("test",null,e),window.removeEventListener("test",null,e)}catch(e){t=!1}return t}()},{"is-browser":443}],436:[function(t,e,r){r.read=function(t,e,r,n,i){var a,o,s=8*i-n-1,l=(1<>1,u=-7,f=r?i-1:0,h=r?-1:1,p=t[e+f];for(f+=h,a=p&(1<<-u)-1,p>>=-u,u+=s;u>0;a=256*a+t[e+f],f+=h,u-=8);for(o=a&(1<<-u)-1,a>>=-u,u+=n;u>0;o=256*o+t[e+f],f+=h,u-=8);if(0===a)a=1-c;else{if(a===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),a-=c}return(p?-1:1)*o*Math.pow(2,a-n)},r.write=function(t,e,r,n,i,a){var o,s,l,c=8*a-i-1,u=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,d=n?1:-1,m=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=u):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+f>=1?h/l:h*Math.pow(2,1-f))*l>=2&&(o++,l/=2),o+f>=u?(s=0,o=u):o+f>=1?(s=(e*l-1)*Math.pow(2,i),o+=f):(s=e*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;t[r+p]=255&s,p+=d,s/=256,i-=8);for(o=o<0;t[r+p]=255&o,p+=d,o/=256,c-=8);t[r+p-d]|=128*m}},{}],437:[function(t,e,r){"use strict";e.exports=function(t,e){var r=t.length;if(0===r)throw new Error("Must have at least d+1 points");var i=t[0].length;if(r<=i)throw new Error("Must input at least d+1 points");var o=t.slice(0,i+1),s=n.apply(void 0,o);if(0===s)throw new Error("Input not in general position");for(var l=new Array(i+1),u=0;u<=i;++u)l[u]=u;s<0&&(l[0]=1,l[1]=0);var f=new a(l,new Array(i+1),!1),h=f.adjacent,p=new Array(i+2);for(u=0;u<=i;++u){for(var d=l.slice(),m=0;m<=i;++m)m===u&&(d[m]=-1);var g=d[0];d[0]=d[1],d[1]=g;var v=new a(d,new Array(i+1),!0);h[u]=v,p[u]=v}p[i+1]=f;for(u=0;u<=i;++u){d=h[u].vertices;var y=h[u].adjacent;for(m=0;m<=i;++m){var x=d[m];if(x<0)y[m]=f;else for(var b=0;b<=i;++b)h[b].vertices.indexOf(x)<0&&(y[m]=h[b])}}var _=new c(i,o,p),w=!!e;for(u=i+1;u0&&e.push(","),e.push("tuple[",r,"]");e.push(")}return orient");var i=new Function("test",e.join("")),a=n[t+1];return a||(a=n),i(a)}(t)),this.orient=a}var u=c.prototype;u.handleBoundaryDegeneracy=function(t,e){var r=this.dimension,n=this.vertices.length-1,i=this.tuple,a=this.vertices,o=[t];for(t.lastVisited=-n;o.length>0;){(t=o.pop()).vertices;for(var s=t.adjacent,l=0;l<=r;++l){var c=s[l];if(c.boundary&&!(c.lastVisited<=-n)){for(var u=c.vertices,f=0;f<=r;++f){var h=u[f];i[f]=h<0?e:a[h]}var p=this.orient();if(p>0)return c;c.lastVisited=-n,0===p&&o.push(c)}}}return null},u.walk=function(t,e){var r=this.vertices.length-1,n=this.dimension,i=this.vertices,a=this.tuple,o=e?this.interior.length*Math.random()|0:this.interior.length-1,s=this.interior[o];t:for(;!s.boundary;){for(var l=s.vertices,c=s.adjacent,u=0;u<=n;++u)a[u]=i[l[u]];s.lastVisited=r;for(u=0;u<=n;++u){var f=c[u];if(!(f.lastVisited>=r)){var h=a[u];a[u]=t;var p=this.orient();if(a[u]=h,p<0){s=f;continue t}f.boundary?f.lastVisited=-r:f.lastVisited=r}}return}return s},u.addPeaks=function(t,e){var r=this.vertices.length-1,n=this.dimension,i=this.vertices,l=this.tuple,c=this.interior,u=this.simplices,f=[e];e.lastVisited=r,e.vertices[e.vertices.indexOf(-1)]=r,e.boundary=!1,c.push(e);for(var h=[];f.length>0;){var p=(e=f.pop()).vertices,d=e.adjacent,m=p.indexOf(r);if(!(m<0))for(var g=0;g<=n;++g)if(g!==m){var v=d[g];if(v.boundary&&!(v.lastVisited>=r)){var y=v.vertices;if(v.lastVisited!==-r){for(var x=0,b=0;b<=n;++b)y[b]<0?(x=b,l[b]=t):l[b]=i[y[b]];if(this.orient()>0){y[x]=r,v.boundary=!1,c.push(v),f.push(v),v.lastVisited=r;continue}v.lastVisited=-r}var _=v.adjacent,w=p.slice(),T=d.slice(),k=new a(w,T,!0);u.push(k);var M=_.indexOf(e);if(!(M<0)){_[M]=k,T[m]=v,w[g]=-1,T[g]=e,d[g]=k,k.flip();for(b=0;b<=n;++b){var A=w[b];if(!(A<0||A===r)){for(var S=new Array(n-1),E=0,L=0;L<=n;++L){var C=w[L];C<0||L===b||(S[E++]=C)}h.push(new o(S,k,b))}}}}}}h.sort(s);for(g=0;g+1=0?o[l++]=s[u]:c=1&u;if(c===(1&t)){var f=o[0];o[0]=o[1],o[1]=f}e.push(o)}}return e}},{"robust-orientation":540,"simplicial-complex":551}],438:[function(t,e,r){"function"==typeof Object.create?e.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(t,e){if(e){t.super_=e;var r=function(){};r.prototype=e.prototype,t.prototype=new r,t.prototype.constructor=t}}},{}],439:[function(t,e,r){"use strict";var n=t("binary-search-bounds");function i(t,e,r,n,i){this.mid=t,this.left=e,this.right=r,this.leftPoints=n,this.rightPoints=i,this.count=(e?e.count:0)+(r?r.count:0)+n.length}e.exports=function(t){if(!t||0===t.length)return new v(null);return new v(g(t))};var a=i.prototype;function o(t,e){t.mid=e.mid,t.left=e.left,t.right=e.right,t.leftPoints=e.leftPoints,t.rightPoints=e.rightPoints,t.count=e.count}function s(t,e){var r=g(e);t.mid=r.mid,t.left=r.left,t.right=r.right,t.leftPoints=r.leftPoints,t.rightPoints=r.rightPoints,t.count=r.count}function l(t,e){var r=t.intervals([]);r.push(e),s(t,r)}function c(t,e){var r=t.intervals([]),n=r.indexOf(e);return n<0?0:(r.splice(n,1),s(t,r),1)}function u(t,e,r){for(var n=0;n=0&&t[n][1]>=e;--n){var i=r(t[n]);if(i)return i}}function h(t,e){for(var r=0;r>1],a=[],o=[],s=[];for(r=0;r3*(e+1)?l(this,t):this.left.insert(t):this.left=g([t]);else if(t[0]>this.mid)this.right?4*(this.right.count+1)>3*(e+1)?l(this,t):this.right.insert(t):this.right=g([t]);else{var r=n.ge(this.leftPoints,t,d),i=n.ge(this.rightPoints,t,m);this.leftPoints.splice(r,0,t),this.rightPoints.splice(i,0,t)}},a.remove=function(t){var e=this.count-this.leftPoints;if(t[1]3*(e-1)?c(this,t):2===(s=this.left.remove(t))?(this.left=null,this.count-=1,1):(1===s&&(this.count-=1),s):0;if(t[0]>this.mid)return this.right?4*(this.left?this.left.count:0)>3*(e-1)?c(this,t):2===(s=this.right.remove(t))?(this.right=null,this.count-=1,1):(1===s&&(this.count-=1),s):0;if(1===this.count)return this.leftPoints[0]===t?2:0;if(1===this.leftPoints.length&&this.leftPoints[0]===t){if(this.left&&this.right){for(var r=this,i=this.left;i.right;)r=i,i=i.right;if(r===this)i.right=this.right;else{var a=this.left,s=this.right;r.count-=i.count,r.right=i.left,i.left=a,i.right=s}o(this,i),this.count=(this.left?this.left.count:0)+(this.right?this.right.count:0)+this.leftPoints.length}else this.left?o(this,this.left):o(this,this.right);return 1}for(a=n.ge(this.leftPoints,t,d);athis.mid){var r;if(this.right)if(r=this.right.queryPoint(t,e))return r;return f(this.rightPoints,t,e)}return h(this.leftPoints,e)},a.queryInterval=function(t,e,r){var n;if(tthis.mid&&this.right&&(n=this.right.queryInterval(t,e,r)))return n;return ethis.mid?f(this.rightPoints,t,r):h(this.leftPoints,r)};var y=v.prototype;y.insert=function(t){this.root?this.root.insert(t):this.root=new i(t[0],null,null,[t],[t])},y.remove=function(t){if(this.root){var e=this.root.remove(t);return 2===e&&(this.root=null),0!==e}return!1},y.queryPoint=function(t,e){if(this.root)return this.root.queryPoint(t,e)},y.queryInterval=function(t,e,r){if(t<=e&&this.root)return this.root.queryInterval(t,e,r)},Object.defineProperty(y,"count",{get:function(){return this.root?this.root.count:0}}),Object.defineProperty(y,"intervals",{get:function(){return this.root?this.root.intervals([]):[]}})},{"binary-search-bounds":440}],440:[function(t,e,r){arguments[4][242][0].apply(r,arguments)},{dup:242}],441:[function(t,e,r){"use strict";e.exports=function(t,e){e=e||new Array(t.length);for(var r=0;r * @license MIT */ -e.exports=function(t){return null!=t&&(n(t)||function(t){return"function"==typeof t.readFloatLE&&"function"==typeof t.slice&&n(t.slice(0,0))}(t)||!!t._isBuffer)}},{}],466:[function(t,e,r){"use strict";e.exports="undefined"!=typeof navigator&&(/MSIE/.test(navigator.userAgent)||/Trident\//.test(navigator.appVersion))},{}],467:[function(t,e,r){"use strict";e.exports=a,e.exports.isMobile=a,e.exports.default=a;var n=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,i=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino|android|ipad|playbook|silk/i;function a(t){t||(t={});var e=t.ua;if(e||"undefined"==typeof navigator||(e=navigator.userAgent),e&&e.headers&&"string"==typeof e.headers["user-agent"]&&(e=e.headers["user-agent"]),"string"!=typeof e)return!1;var r=t.tablet?i.test(e):n.test(e);return!r&&t.tablet&&t.featureDetect&&navigator&&navigator.maxTouchPoints>1&&-1!==e.indexOf("Macintosh")&&-1!==e.indexOf("Safari")&&(r=!0),r}},{}],468:[function(t,e,r){"use strict";e.exports=function(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}},{}],469:[function(t,e,r){"use strict";var n=Object.prototype.toString;e.exports=function(t){var e;return"[object Object]"===n.call(t)&&(null===(e=Object.getPrototypeOf(t))||e===Object.getPrototypeOf({}))}},{}],470:[function(t,e,r){"use strict";e.exports=function(t){for(var e,r=t.length,n=0;n13)&&32!==e&&133!==e&&160!==e&&5760!==e&&6158!==e&&(e<8192||e>8205)&&8232!==e&&8233!==e&&8239!==e&&8287!==e&&8288!==e&&12288!==e&&65279!==e)return!1;return!0}},{}],471:[function(t,e,r){"use strict";e.exports=function(t){return"string"==typeof t&&(t=t.trim(),!!(/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4))}},{}],472:[function(t,e,r){e.exports=function(t,e,r){return t*(1-r)+e*r}},{}],473:[function(t,e,r){!function(t,n){"object"==typeof r&&"undefined"!=typeof e?e.exports=n():(t=t||self).mapboxgl=n()}(this,(function(){"use strict";var t,e,r;function n(n,i){if(t)if(e){var a="var sharedChunk = {}; ("+t+")(sharedChunk); ("+e+")(sharedChunk);",o={};t(o),(r=i(o)).workerUrl=window.URL.createObjectURL(new Blob([a],{type:"text/javascript"}))}else e=i;else t=i}return n(0,(function(t){function e(t,e){return t(e={exports:{}},e.exports),e.exports}var r=n;function n(t,e,r,n){this.cx=3*t,this.bx=3*(r-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*e,this.by=3*(n-e)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=n,this.p2x=r,this.p2y=n}n.prototype.sampleCurveX=function(t){return((this.ax*t+this.bx)*t+this.cx)*t},n.prototype.sampleCurveY=function(t){return((this.ay*t+this.by)*t+this.cy)*t},n.prototype.sampleCurveDerivativeX=function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},n.prototype.solveCurveX=function(t,e){var r,n,i,a,o;for(void 0===e&&(e=1e-6),i=t,o=0;o<8;o++){if(a=this.sampleCurveX(i)-t,Math.abs(a)(n=1))return n;for(;ra?r=i:n=i,i=.5*(n-r)+r}return i},n.prototype.solve=function(t,e){return this.sampleCurveY(this.solveCurveX(t,e))};var i=a;function a(t,e){this.x=t,this.y=e}function o(t,e,n,i){var a=new r(t,e,n,i);return function(t){return a.solve(t)}}a.prototype={clone:function(){return new a(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},multByPoint:function(t){return this.clone()._multByPoint(t)},divByPoint:function(t){return this.clone()._divByPoint(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},rotateAround:function(t,e){return this.clone()._rotateAround(t,e)},matMult:function(t){return this.clone()._matMult(t)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var e=t.x-this.x,r=t.y-this.y;return e*e+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,e){return Math.atan2(this.x*e-this.y*t,this.x*t+this.y*e)},_matMult:function(t){var e=t[2]*this.x+t[3]*this.y;return this.x=t[0]*this.x+t[1]*this.y,this.y=e,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_multByPoint:function(t){return this.x*=t.x,this.y*=t.y,this},_divByPoint:function(t){return this.x/=t.x,this.y/=t.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var t=this.y;return this.y=this.x,this.x=-t,this},_rotate:function(t){var e=Math.cos(t),r=Math.sin(t),n=r*this.x+e*this.y;return this.x=e*this.x-r*this.y,this.y=n,this},_rotateAround:function(t,e){var r=Math.cos(t),n=Math.sin(t),i=e.y+n*(this.x-e.x)+r*(this.y-e.y);return this.x=e.x+r*(this.x-e.x)-n*(this.y-e.y),this.y=i,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},a.convert=function(t){return t instanceof a?t:Array.isArray(t)?new a(t[0],t[1]):t};var s=o(.25,.1,.25,1);function l(t,e,r){return Math.min(r,Math.max(e,t))}function c(t,e,r){var n=r-e,i=((t-e)%n+n)%n+e;return i===e?r:i}function u(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];for(var n=0,i=e;n>e/4).toString(16):([1e7]+-[1e3]+-4e3+-8e3+-1e11).replace(/[018]/g,t)}()}function d(t){return!!t&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(t)}function g(t,e){t.forEach((function(t){e[t]&&(e[t]=e[t].bind(e))}))}function m(t,e){return-1!==t.indexOf(e,t.length-e.length)}function v(t,e,r){var n={};for(var i in t)n[i]=e.call(r||this,t[i],i,t);return n}function y(t,e,r){var n={};for(var i in t)e.call(r||this,t[i],i,t)&&(n[i]=t[i]);return n}function x(t){return Array.isArray(t)?t.map(x):"object"==typeof t&&t?v(t,x):t}var b={};function _(t){b[t]||("undefined"!=typeof console&&console.warn(t),b[t]=!0)}function w(t,e,r){return(r.y-t.y)*(e.x-t.x)>(e.y-t.y)*(r.x-t.x)}function T(t){for(var e=0,r=0,n=t.length,i=n-1,a=void 0,o=void 0;r@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,(function(t,r,n,i){var a=n||i;return e[r]=!a||a.toLowerCase(),""})),e["max-age"]){var r=parseInt(e["max-age"],10);isNaN(r)?delete e["max-age"]:e["max-age"]=r}return e}var A=null;function S(t){if(null==A){var e=t.navigator?t.navigator.userAgent:null;A=!!t.safari||!(!e||!(/\b(iPad|iPhone|iPod)\b/.test(e)||e.match("Safari")&&!e.match("Chrome")))}return A}function E(t){try{var e=self[t];return e.setItem("_mapbox_test_",1),e.removeItem("_mapbox_test_"),!0}catch(t){return!1}}var C,L,I,P,z=self.performance&&self.performance.now?self.performance.now.bind(self.performance):Date.now.bind(Date),O=self.requestAnimationFrame||self.mozRequestAnimationFrame||self.webkitRequestAnimationFrame||self.msRequestAnimationFrame,D=self.cancelAnimationFrame||self.mozCancelAnimationFrame||self.webkitCancelAnimationFrame||self.msCancelAnimationFrame,R={now:z,frame:function(t){var e=O(t);return{cancel:function(){return D(e)}}},getImageData:function(t,e){void 0===e&&(e=0);var r=self.document.createElement("canvas"),n=r.getContext("2d");if(!n)throw new Error("failed to create canvas 2d context");return r.width=t.width,r.height=t.height,n.drawImage(t,0,0,t.width,t.height),n.getImageData(-e,-e,t.width+2*e,t.height+2*e)},resolveURL:function(t){return C||(C=self.document.createElement("a")),C.href=t,C.href},hardwareConcurrency:self.navigator.hardwareConcurrency||4,get devicePixelRatio(){return self.devicePixelRatio},get prefersReducedMotion(){return!!self.matchMedia&&(null==L&&(L=self.matchMedia("(prefers-reduced-motion: reduce)")),L.matches)}},F={API_URL:"https://api.mapbox.com",get EVENTS_URL(){return this.API_URL?0===this.API_URL.indexOf("https://api.mapbox.cn")?"https://events.mapbox.cn/events/v2":0===this.API_URL.indexOf("https://api.mapbox.com")?"https://events.mapbox.com/events/v2":null:null},FEEDBACK_URL:"https://apps.mapbox.com/feedback",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,MAX_PARALLEL_IMAGE_REQUESTS:16},B={supported:!1,testSupport:function(t){!N&&P&&(j?U(t):I=t)}},N=!1,j=!1;function U(t){var e=t.createTexture();t.bindTexture(t.TEXTURE_2D,e);try{if(t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,P),t.isContextLost())return;B.supported=!0}catch(t){}t.deleteTexture(e),N=!0}self.document&&((P=self.document.createElement("img")).onload=function(){I&&U(I),I=null,j=!0},P.onerror=function(){N=!0,I=null},P.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=");var V="01",q=function(t,e){this._transformRequestFn=t,this._customAccessToken=e,this._createSkuToken()};function H(t){return 0===t.indexOf("mapbox:")}q.prototype._createSkuToken=function(){var t=function(){for(var t="",e=0;e<10;e++)t+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[Math.floor(62*Math.random())];return{token:["1",V,t].join(""),tokenExpiresAt:Date.now()+432e5}}();this._skuToken=t.token,this._skuTokenExpiresAt=t.tokenExpiresAt},q.prototype._isSkuTokenExpired=function(){return Date.now()>this._skuTokenExpiresAt},q.prototype.transformRequest=function(t,e){return this._transformRequestFn&&this._transformRequestFn(t,e)||{url:t}},q.prototype.normalizeStyleURL=function(t,e){if(!H(t))return t;var r=X(t);return r.path="/styles/v1"+r.path,this._makeAPIURL(r,this._customAccessToken||e)},q.prototype.normalizeGlyphsURL=function(t,e){if(!H(t))return t;var r=X(t);return r.path="/fonts/v1"+r.path,this._makeAPIURL(r,this._customAccessToken||e)},q.prototype.normalizeSourceURL=function(t,e){if(!H(t))return t;var r=X(t);return r.path="/v4/"+r.authority+".json",r.params.push("secure"),this._makeAPIURL(r,this._customAccessToken||e)},q.prototype.normalizeSpriteURL=function(t,e,r,n){var i=X(t);return H(t)?(i.path="/styles/v1"+i.path+"/sprite"+e+r,this._makeAPIURL(i,this._customAccessToken||n)):(i.path+=""+e+r,Z(i))},q.prototype.normalizeTileURL=function(t,e){if(this._isSkuTokenExpired()&&this._createSkuToken(),t&&!H(t))return t;var r=X(t);r.path=r.path.replace(/(\.(png|jpg)\d*)(?=$)/,(R.devicePixelRatio>=2||512===e?"@2x":"")+(B.supported?".webp":"$1")),r.path=r.path.replace(/^.+\/v4\//,"/"),r.path="/v4"+r.path;var n=this._customAccessToken||function(t){for(var e=0,r=t;e=1&&self.localStorage.setItem(e,JSON.stringify(this.eventData))}catch(t){_("Unable to write to LocalStorage")}},K.prototype.processRequests=function(t){},K.prototype.postEvent=function(t,e,r,n){var i=this;if(F.EVENTS_URL){var a=X(F.EVENTS_URL);a.params.push("access_token="+(n||F.ACCESS_TOKEN||""));var o={event:this.type,created:new Date(t).toISOString(),sdkIdentifier:"mapbox-gl-js",sdkVersion:"1.10.1",skuId:V,userId:this.anonId},s=e?u(o,e):o,l={url:Z(a),headers:{"Content-Type":"text/plain"},body:JSON.stringify([s])};this.pendingRequest=xt(l,(function(t){i.pendingRequest=null,r(t),i.saveEventData(),i.processRequests(n)}))}},K.prototype.queueRequest=function(t,e){this.queue.push(t),this.processRequests(e)};var Q,$,tt=function(t){function e(){t.call(this,"map.load"),this.success={},this.skuToken=""}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.postMapLoadEvent=function(t,e,r,n){this.skuToken=r,(F.EVENTS_URL&&n||F.ACCESS_TOKEN&&Array.isArray(t)&&t.some((function(t){return H(t)||Y(t)})))&&this.queueRequest({id:e,timestamp:Date.now()},n)},e.prototype.processRequests=function(t){var e=this;if(!this.pendingRequest&&0!==this.queue.length){var r=this.queue.shift(),n=r.id,i=r.timestamp;n&&this.success[n]||(this.anonId||this.fetchEventData(),d(this.anonId)||(this.anonId=p()),this.postEvent(i,{skuToken:this.skuToken},(function(t){t||n&&(e.success[n]=!0)}),t))}},e}(K),et=new(function(t){function e(e){t.call(this,"appUserTurnstile"),this._customAccessToken=e}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.postTurnstileEvent=function(t,e){F.EVENTS_URL&&F.ACCESS_TOKEN&&Array.isArray(t)&&t.some((function(t){return H(t)||Y(t)}))&&this.queueRequest(Date.now(),e)},e.prototype.processRequests=function(t){var e=this;if(!this.pendingRequest&&0!==this.queue.length){this.anonId&&this.eventData.lastSuccess&&this.eventData.tokenU||this.fetchEventData();var r=J(F.ACCESS_TOKEN),n=r?r.u:F.ACCESS_TOKEN,i=n!==this.eventData.tokenU;d(this.anonId)||(this.anonId=p(),i=!0);var a=this.queue.shift();if(this.eventData.lastSuccess){var o=new Date(this.eventData.lastSuccess),s=new Date(a),l=(a-this.eventData.lastSuccess)/864e5;i=i||l>=1||l<-1||o.getDate()!==s.getDate()}else i=!0;if(!i)return this.processRequests();this.postEvent(a,{"enabled.telemetry":!1},(function(t){t||(e.eventData.lastSuccess=a,e.eventData.tokenU=n)}),t)}},e}(K)),rt=et.postTurnstileEvent.bind(et),nt=new tt,it=nt.postMapLoadEvent.bind(nt),at=500,ot=50;function st(){self.caches&&!Q&&(Q=self.caches.open("mapbox-tiles"))}function lt(t){var e=t.indexOf("?");return e<0?t:t.slice(0,e)}var ct,ut=1/0;function ft(){return null==ct&&(ct=self.OffscreenCanvas&&new self.OffscreenCanvas(1,1).getContext("2d")&&"function"==typeof self.createImageBitmap),ct}var ht={Unknown:"Unknown",Style:"Style",Source:"Source",Tile:"Tile",Glyphs:"Glyphs",SpriteImage:"SpriteImage",SpriteJSON:"SpriteJSON",Image:"Image"};"function"==typeof Object.freeze&&Object.freeze(ht);var pt,dt,gt=function(t){function e(e,r,n){401===r&&Y(n)&&(e+=": you may have provided an invalid Mapbox access token. See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes"),t.call(this,e),this.status=r,this.url=n,this.name=this.constructor.name,this.message=e}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.toString=function(){return this.name+": "+this.message+" ("+this.status+"): "+this.url},e}(Error),mt=k()?function(){return self.worker&&self.worker.referrer}:function(){return("blob:"===self.location.protocol?self.parent:self).location.href},vt=function(t,e){if(!(/^file:/.test(r=t.url)||/^file:/.test(mt())&&!/^\w+:/.test(r))){if(self.fetch&&self.Request&&self.AbortController&&self.Request.prototype.hasOwnProperty("signal"))return function(t,e){var r,n=new self.AbortController,i=new self.Request(t.url,{method:t.method||"GET",body:t.body,credentials:t.credentials,headers:t.headers,referrer:mt(),signal:n.signal}),a=!1,o=!1,s=(r=i.url).indexOf("sku=")>0&&Y(r);"json"===t.type&&i.headers.set("Accept","application/json");var l=function(r,n,a){if(!o){if(r&&"SecurityError"!==r.message&&_(r),n&&a)return c(n);var l=Date.now();self.fetch(i).then((function(r){if(r.ok){var n=s?r.clone():null;return c(r,n,l)}return e(new gt(r.statusText,r.status,t.url))})).catch((function(t){20!==t.code&&e(new Error(t.message))}))}},c=function(r,n,s){("arrayBuffer"===t.type?r.arrayBuffer():"json"===t.type?r.json():r.text()).then((function(t){o||(n&&s&&function(t,e,r){if(st(),Q){var n={status:e.status,statusText:e.statusText,headers:new self.Headers};e.headers.forEach((function(t,e){return n.headers.set(e,t)}));var i=M(e.headers.get("Cache-Control")||"");i["no-store"]||(i["max-age"]&&n.headers.set("Expires",new Date(r+1e3*i["max-age"]).toUTCString()),new Date(n.headers.get("Expires")).getTime()-r<42e4||function(t,e){if(void 0===$)try{new Response(new ReadableStream),$=!0}catch(t){$=!1}$?e(t.body):t.blob().then(e)}(e,(function(e){var r=new self.Response(e,n);st(),Q&&Q.then((function(e){return e.put(lt(t.url),r)})).catch((function(t){return _(t.message)}))})))}}(i,n,s),a=!0,e(null,t,r.headers.get("Cache-Control"),r.headers.get("Expires")))})).catch((function(t){o||e(new Error(t.message))}))};return s?function(t,e){if(st(),!Q)return e(null);var r=lt(t.url);Q.then((function(t){t.match(r).then((function(n){var i=function(t){if(!t)return!1;var e=new Date(t.headers.get("Expires")||0),r=M(t.headers.get("Cache-Control")||"");return e>Date.now()&&!r["no-cache"]}(n);t.delete(r),i&&t.put(r,n.clone()),e(null,n,i)})).catch(e)})).catch(e)}(i,l):l(null,null),{cancel:function(){o=!0,a||n.abort()}}}(t,e);if(k()&&self.worker&&self.worker.actor)return self.worker.actor.send("getResource",t,e,void 0,!0)}var r;return function(t,e){var r=new self.XMLHttpRequest;for(var n in r.open(t.method||"GET",t.url,!0),"arrayBuffer"===t.type&&(r.responseType="arraybuffer"),t.headers)r.setRequestHeader(n,t.headers[n]);return"json"===t.type&&(r.responseType="text",r.setRequestHeader("Accept","application/json")),r.withCredentials="include"===t.credentials,r.onerror=function(){e(new Error(r.statusText))},r.onload=function(){if((r.status>=200&&r.status<300||0===r.status)&&null!==r.response){var n=r.response;if("json"===t.type)try{n=JSON.parse(r.response)}catch(t){return e(t)}e(null,n,r.getResponseHeader("Cache-Control"),r.getResponseHeader("Expires"))}else e(new gt(r.statusText,r.status,t.url))},r.send(t.body),{cancel:function(){return r.abort()}}}(t,e)},yt=function(t,e){return vt(u(t,{type:"arrayBuffer"}),e)},xt=function(t,e){return vt(u(t,{method:"POST"}),e)};pt=[],dt=0;var bt=function(t,e){if(B.supported&&(t.headers||(t.headers={}),t.headers.accept="image/webp,*/*"),dt>=F.MAX_PARALLEL_IMAGE_REQUESTS){var r={requestParameters:t,callback:e,cancelled:!1,cancel:function(){this.cancelled=!0}};return pt.push(r),r}dt++;var n=!1,i=function(){if(!n)for(n=!0,dt--;pt.length&&dt0||this._oneTimeListeners&&this._oneTimeListeners[t]&&this._oneTimeListeners[t].length>0||this._eventedParent&&this._eventedParent.listens(t)},Mt.prototype.setEventedParent=function(t,e){return this._eventedParent=t,this._eventedParentData=e,this};var At={$version:8,$root:{version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number"},zoom:{type:"number"},bearing:{type:"number",default:0,period:360,units:"degrees"},pitch:{type:"number",default:0,units:"degrees"},light:{type:"light"},sources:{required:!0,type:"sources"},sprite:{type:"string"},glyphs:{type:"string"},transition:{type:"transition"},layers:{required:!0,type:"array",value:"layer"}},sources:{"*":{type:"source"}},source:["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],source_vector:{type:{required:!0,type:"enum",values:{vector:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},attribution:{type:"string"},promoteId:{type:"promoteId"},"*":{type:"*"}},source_raster:{type:{required:!0,type:"enum",values:{raster:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},attribution:{type:"string"},"*":{type:"*"}},source_raster_dem:{type:{required:!0,type:"enum",values:{"raster-dem":{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},attribution:{type:"string"},encoding:{type:"enum",values:{terrarium:{},mapbox:{}},default:"mapbox"},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{type:"*"},maxzoom:{type:"number",default:18},attribution:{type:"string"},buffer:{type:"number",default:128,maximum:512,minimum:0},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"},clusterProperties:{type:"*"},lineMetrics:{type:"boolean",default:!1},generateId:{type:"boolean",default:!1},promoteId:{type:"promoteId"}},source_video:{type:{required:!0,type:"enum",values:{video:{}}},urls:{required:!0,type:"array",value:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_image:{type:{required:!0,type:"enum",values:{image:{}}},url:{required:!0,type:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},background:{}},required:!0},metadata:{type:"*"},source:{type:"string"},"source-layer":{type:"string"},minzoom:{type:"number",minimum:0,maximum:24},maxzoom:{type:"number",minimum:0,maximum:24},filter:{type:"filter"},layout:{type:"layout"},paint:{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_fill:{"fill-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_circle:{"circle-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_heatmap:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_line:{"line-cap":{type:"enum",values:{butt:{},round:{},square:{}},default:"butt",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-join":{type:"enum",values:{bevel:{},round:{},miter:{}},default:"miter",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,requires:[{"line-join":"miter"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,requires:[{"line-join":"round"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_symbol:{"symbol-placement":{type:"enum",values:{point:{},line:{},"line-center":{}},default:"point",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",requires:[{"symbol-placement":"line"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{},"viewport-y":{},source:{}},default:"auto",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number",default:1,minimum:0,units:"factor of the original icon size",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{type:"enum",values:{none:{},width:{},height:{},both:{}},default:"none",requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-image":{type:"resolvedImage",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{type:"boolean",default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string",default:["Open Sans Regular","Arial Unicode MS Regular"],requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-letter-spacing":{type:"number",default:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{},left:{},center:{},right:{}},default:"center",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems",default:0,requires:["text-field"],"property-type":"data-driven",expression:{interpolated:!0,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["text-field",{"!":"text-variable-anchor"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number",default:45,units:"degrees",requires:["text-field",{"symbol-placement":["line","line-center"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{},vertical:{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",value:"number",units:"ems",length:2,default:[0,0],requires:["text-field",{"!":"text-radial-offset"}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,requires:["text-field","icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_raster:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_hillshade:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},filter:{type:"array",value:"*"},filter_operator:{type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{},within:{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"*",minimum:1},expression_name:{type:"enum",values:{let:{group:"Variable binding"},var:{group:"Variable binding"},literal:{group:"Types"},array:{group:"Types"},at:{group:"Lookup"},in:{group:"Lookup"},"index-of":{group:"Lookup"},slice:{group:"Lookup"},case:{group:"Decision"},match:{group:"Decision"},coalesce:{group:"Decision"},step:{group:"Ramps, scales, curves"},interpolate:{group:"Ramps, scales, curves"},"interpolate-hcl":{group:"Ramps, scales, curves"},"interpolate-lab":{group:"Ramps, scales, curves"},ln2:{group:"Math"},pi:{group:"Math"},e:{group:"Math"},typeof:{group:"Types"},string:{group:"Types"},number:{group:"Types"},boolean:{group:"Types"},object:{group:"Types"},collator:{group:"Types"},format:{group:"Types"},image:{group:"Types"},"number-format":{group:"Types"},"to-string":{group:"Types"},"to-number":{group:"Types"},"to-boolean":{group:"Types"},"to-rgba":{group:"Color"},"to-color":{group:"Types"},rgb:{group:"Color"},rgba:{group:"Color"},get:{group:"Lookup"},has:{group:"Lookup"},length:{group:"Lookup"},properties:{group:"Feature data"},"feature-state":{group:"Feature data"},"geometry-type":{group:"Feature data"},id:{group:"Feature data"},zoom:{group:"Zoom"},"heatmap-density":{group:"Heatmap"},"line-progress":{group:"Feature data"},accumulated:{group:"Feature data"},"+":{group:"Math"},"*":{group:"Math"},"-":{group:"Math"},"/":{group:"Math"},"%":{group:"Math"},"^":{group:"Math"},sqrt:{group:"Math"},log10:{group:"Math"},ln:{group:"Math"},log2:{group:"Math"},sin:{group:"Math"},cos:{group:"Math"},tan:{group:"Math"},asin:{group:"Math"},acos:{group:"Math"},atan:{group:"Math"},min:{group:"Math"},max:{group:"Math"},round:{group:"Math"},abs:{group:"Math"},ceil:{group:"Math"},floor:{group:"Math"},distance:{group:"Math"},"==":{group:"Decision"},"!=":{group:"Decision"},">":{group:"Decision"},"<":{group:"Decision"},">=":{group:"Decision"},"<=":{group:"Decision"},all:{group:"Decision"},any:{group:"Decision"},"!":{group:"Decision"},within:{group:"Decision"},"is-supported-script":{group:"String"},upcase:{group:"String"},downcase:{group:"String"},concat:{group:"String"},"resolved-locale":{group:"String"}}},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"number",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"color",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}},"property-type":{"data-driven":{type:"property-type"},"cross-faded":{type:"property-type"},"cross-faded-data-driven":{type:"property-type"},"color-ramp":{type:"property-type"},"data-constant":{type:"property-type"},constant:{type:"property-type"}},promoteId:{"*":{type:"string"}}},St=function(t,e,r,n){this.message=(t?t+": ":"")+r,n&&(this.identifier=n),null!=e&&e.__line__&&(this.line=e.__line__)};function Et(t){var e=t.value;return e?[new St(t.key,e,"constants have been deprecated as of v8")]:[]}function Ct(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];for(var n=0,i=e;n":"value"===t.itemType.kind?"array":"array<"+e+">"}return t.kind}var Yt=[Ot,Dt,Rt,Ft,Bt,Vt,Nt,Ht(jt),qt];function Wt(t,e){if("error"===e.kind)return null;if("array"===t.kind){if("array"===e.kind&&(0===e.N&&"value"===e.itemType.kind||!Wt(t.itemType,e.itemType))&&("number"!=typeof t.N||t.N===e.N))return null}else{if(t.kind===e.kind)return null;if("value"===t.kind)for(var r=0,n=Yt;r255?255:t}function i(t){return n("%"===t[t.length-1]?parseFloat(t)/100*255:parseInt(t))}function a(t){return(e="%"===t[t.length-1]?parseFloat(t)/100:parseFloat(t))<0?0:e>1?1:e;var e}function o(t,e,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?t+(e-t)*r*6:2*r<1?e:3*r<2?t+(e-t)*(2/3-r)*6:t}try{e.parseCSSColor=function(t){var e,s=t.replace(/ /g,"").toLowerCase();if(s in r)return r[s].slice();if("#"===s[0])return 4===s.length?(e=parseInt(s.substr(1),16))>=0&&e<=4095?[(3840&e)>>4|(3840&e)>>8,240&e|(240&e)>>4,15&e|(15&e)<<4,1]:null:7===s.length&&(e=parseInt(s.substr(1),16))>=0&&e<=16777215?[(16711680&e)>>16,(65280&e)>>8,255&e,1]:null;var l=s.indexOf("("),c=s.indexOf(")");if(-1!==l&&c+1===s.length){var u=s.substr(0,l),f=s.substr(l+1,c-(l+1)).split(","),h=1;switch(u){case"rgba":if(4!==f.length)return null;h=a(f.pop());case"rgb":return 3!==f.length?null:[i(f[0]),i(f[1]),i(f[2]),h];case"hsla":if(4!==f.length)return null;h=a(f.pop());case"hsl":if(3!==f.length)return null;var p=(parseFloat(f[0])%360+360)%360/360,d=a(f[1]),g=a(f[2]),m=g<=.5?g*(d+1):g+d-g*d,v=2*g-m;return[n(255*o(v,m,p+1/3)),n(255*o(v,m,p)),n(255*o(v,m,p-1/3)),h];default:return null}}return null}}catch(t){}})).parseCSSColor,Kt=function(t,e,r,n){void 0===n&&(n=1),this.r=t,this.g=e,this.b=r,this.a=n};Kt.parse=function(t){if(t){if(t instanceof Kt)return t;if("string"==typeof t){var e=Jt(t);if(e)return new Kt(e[0]/255*e[3],e[1]/255*e[3],e[2]/255*e[3],e[3])}}},Kt.prototype.toString=function(){var t=this.toArray(),e=t[1],r=t[2],n=t[3];return"rgba("+Math.round(t[0])+","+Math.round(e)+","+Math.round(r)+","+n+")"},Kt.prototype.toArray=function(){var t=this.a;return 0===t?[0,0,0,0]:[255*this.r/t,255*this.g/t,255*this.b/t,t]},Kt.black=new Kt(0,0,0,1),Kt.white=new Kt(1,1,1,1),Kt.transparent=new Kt(0,0,0,0),Kt.red=new Kt(1,0,0,1);var Qt=function(t,e,r){this.sensitivity=t?e?"variant":"case":e?"accent":"base",this.locale=r,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})};Qt.prototype.compare=function(t,e){return this.collator.compare(t,e)},Qt.prototype.resolvedLocale=function(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale};var $t=function(t,e,r,n,i){this.text=t,this.image=e,this.scale=r,this.fontStack=n,this.textColor=i},te=function(t){this.sections=t};te.fromString=function(t){return new te([new $t(t,null,null,null,null)])},te.prototype.isEmpty=function(){return 0===this.sections.length||!this.sections.some((function(t){return 0!==t.text.length||t.image&&0!==t.image.name.length}))},te.factory=function(t){return t instanceof te?t:te.fromString(t)},te.prototype.toString=function(){return 0===this.sections.length?"":this.sections.map((function(t){return t.text})).join("")},te.prototype.serialize=function(){for(var t=["format"],e=0,r=this.sections;e=0&&t<=255&&"number"==typeof e&&e>=0&&e<=255&&"number"==typeof r&&r>=0&&r<=255?void 0===n||"number"==typeof n&&n>=0&&n<=1?null:"Invalid rgba value ["+[t,e,r,n].join(", ")+"]: 'a' must be between 0 and 1.":"Invalid rgba value ["+("number"==typeof n?[t,e,r,n]:[t,e,r]).join(", ")+"]: 'r', 'g', and 'b' must be between 0 and 255."}function ne(t){if(null===t)return!0;if("string"==typeof t)return!0;if("boolean"==typeof t)return!0;if("number"==typeof t)return!0;if(t instanceof Kt)return!0;if(t instanceof Qt)return!0;if(t instanceof te)return!0;if(t instanceof ee)return!0;if(Array.isArray(t)){for(var e=0,r=t;e2){var s=t[1];if("string"!=typeof s||!(s in le)||"object"===s)return e.error('The item type argument of "array" must be one of string, number, boolean',1);a=le[s],n++}else a=jt;if(t.length>3){if(null!==t[2]&&("number"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2])))return e.error('The length argument to "array" must be a positive integer literal',2);o=t[2],n++}r=Ht(a,o)}else r=le[i];for(var l=[];n1)&&e.push(n)}}return e.concat(this.args.map((function(t){return t.serialize()})))};var ue=function(t){this.type=Vt,this.sections=t};ue.parse=function(t,e){if(t.length<2)return e.error("Expected at least one argument.");var r=t[1];if(!Array.isArray(r)&&"object"==typeof r)return e.error("First argument must be an image or text section.");for(var n=[],i=!1,a=1;a<=t.length-1;++a){var o=t[a];if(i&&"object"==typeof o&&!Array.isArray(o)){i=!1;var s=null;if(o["font-scale"]&&!(s=e.parse(o["font-scale"],1,Dt)))return null;var l=null;if(o["text-font"]&&!(l=e.parse(o["text-font"],1,Ht(Rt))))return null;var c=null;if(o["text-color"]&&!(c=e.parse(o["text-color"],1,Bt)))return null;var u=n[n.length-1];u.scale=s,u.font=l,u.textColor=c}else{var f=e.parse(t[a],1,jt);if(!f)return null;var h=f.type.kind;if("string"!==h&&"value"!==h&&"null"!==h&&"resolvedImage"!==h)return e.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");i=!0,n.push({content:f,scale:null,font:null,textColor:null})}}return new ue(n)},ue.prototype.evaluate=function(t){return new te(this.sections.map((function(e){var r=e.content.evaluate(t);return ie(r)===qt?new $t("",r,null,null,null):new $t(ae(r),null,e.scale?e.scale.evaluate(t):null,e.font?e.font.evaluate(t).join(","):null,e.textColor?e.textColor.evaluate(t):null)})))},ue.prototype.eachChild=function(t){for(var e=0,r=this.sections;e-1),r},fe.prototype.eachChild=function(t){t(this.input)},fe.prototype.outputDefined=function(){return!1},fe.prototype.serialize=function(){return["image",this.input.serialize()]};var he={"to-boolean":Ft,"to-color":Bt,"to-number":Dt,"to-string":Rt},pe=function(t,e){this.type=t,this.args=e};pe.parse=function(t,e){if(t.length<2)return e.error("Expected at least one argument.");var r=t[0];if(("to-boolean"===r||"to-string"===r)&&2!==t.length)return e.error("Expected one argument.");for(var n=he[r],i=[],a=1;a4?"Invalid rbga value "+JSON.stringify(e)+": expected an array containing either three or four numeric values.":re(e[0],e[1],e[2],e[3])))return new Kt(e[0]/255,e[1]/255,e[2]/255,e[3])}throw new se(r||"Could not parse color from value '"+("string"==typeof e?e:String(JSON.stringify(e)))+"'")}if("number"===this.type.kind){for(var o=null,s=0,l=this.args;s=e[2]||t[1]<=e[1]||t[3]>=e[3])}function be(t,e){var r=(180+t[0])/360,n=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t[1]*Math.PI/360)))/360,i=Math.pow(2,e.z);return[Math.round(r*i*8192),Math.round(n*i*8192)]}function _e(t,e,r){return e[1]>t[1]!=r[1]>t[1]&&t[0]<(r[0]-e[0])*(t[1]-e[1])/(r[1]-e[1])+e[0]}function we(t,e){for(var r,n,i,a,o,s,l,c=!1,u=0,f=e.length;u0&&s<0||o<0&&s>0}function Me(t,e,r){for(var n=0,i=r;nr[2]){var i=.5*n,a=t[0]-r[0]>i?-n:r[0]-t[0]>i?n:0;0===a&&(a=t[0]-r[2]>i?-n:r[2]-t[0]>i?n:0),t[0]+=a}ye(e,t)}function Ie(t,e,r,n){for(var i=8192*Math.pow(2,n.z),a=[8192*n.x,8192*n.y],o=[],s=0,l=t;s=0)return!1;var r=!0;return t.eachChild((function(t){r&&!Re(t,e)&&(r=!1)})),r}ze.parse=function(t,e){if(2!==t.length)return e.error("'within' expression requires exactly one argument, but found "+(t.length-1)+" instead.");if(ne(t[1])){var r=t[1];if("FeatureCollection"===r.type)for(var n=0;ne))throw new se("Input is not a number.");a=o-1}return 0}Be.prototype.parse=function(t,e,r,n,i){return void 0===i&&(i={}),e?this.concat(e,r,n)._parse(t,i):this._parse(t,i)},Be.prototype._parse=function(t,e){function r(t,e,r){return"assert"===r?new ce(e,[t]):"coerce"===r?new pe(e,[t]):t}if(null!==t&&"string"!=typeof t&&"boolean"!=typeof t&&"number"!=typeof t||(t=["literal",t]),Array.isArray(t)){if(0===t.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');var n=t[0];if("string"!=typeof n)return this.error("Expression name must be a string, but found "+typeof n+' instead. If you wanted a literal array, use ["literal", [...]].',0),null;var i=this.registry[n];if(i){var a=i.parse(t,this);if(!a)return null;if(this.expectedType){var o=this.expectedType,s=a.type;if("string"!==o.kind&&"number"!==o.kind&&"boolean"!==o.kind&&"object"!==o.kind&&"array"!==o.kind||"value"!==s.kind)if("color"!==o.kind&&"formatted"!==o.kind&&"resolvedImage"!==o.kind||"value"!==s.kind&&"string"!==s.kind){if(this.checkSubtype(o,s))return null}else a=r(a,o,e.typeAnnotation||"coerce");else a=r(a,o,e.typeAnnotation||"assert")}if(!(a instanceof oe)&&"resolvedImage"!==a.type.kind&&function t(e){if(e instanceof Fe)return t(e.boundExpression);if(e instanceof me&&"error"===e.name)return!1;if(e instanceof ve)return!1;if(e instanceof ze)return!1;var r=e instanceof pe||e instanceof ce,n=!0;return e.eachChild((function(e){n=r?n&&t(e):n&&e instanceof oe})),!!n&&Oe(e)&&Re(e,["zoom","heatmap-density","line-progress","accumulated","is-supported-script"])}(a)){var l=new ge;try{a=new oe(a.type,a.evaluate(l))}catch(t){return this.error(t.message),null}}return a}return this.error('Unknown expression "'+n+'". If you wanted a literal array, use ["literal", [...]].',0)}return this.error(void 0===t?"'undefined' value invalid. Use null instead.":"object"==typeof t?'Bare objects invalid. Use ["literal", {...}] instead.':"Expected an array, but found "+typeof t+" instead.")},Be.prototype.concat=function(t,e,r){var n="number"==typeof t?this.path.concat(t):this.path,i=r?this.scope.concat(r):this.scope;return new Be(this.registry,n,e||null,i,this.errors)},Be.prototype.error=function(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];var n=""+this.key+e.map((function(t){return"["+t+"]"})).join("");this.errors.push(new Pt(n,t))},Be.prototype.checkSubtype=function(t,e){var r=Wt(t,e);return r&&this.error(r),r};var je=function(t,e,r){this.type=t,this.input=e,this.labels=[],this.outputs=[];for(var n=0,i=r;n=o)return e.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',l);var u=e.parse(s,c,i);if(!u)return null;i=i||u.type,n.push([o,u])}return new je(i,r,n)},je.prototype.evaluate=function(t){var e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);var n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);var i=e.length;return n>=e[i-1]?r[i-1].evaluate(t):r[Ne(e,n)].evaluate(t)},je.prototype.eachChild=function(t){t(this.input);for(var e=0,r=this.outputs;e0&&t.push(this.labels[e]),t.push(this.outputs[e].serialize());return t};var Ve=Object.freeze({__proto__:null,number:Ue,color:function(t,e,r){return new Kt(Ue(t.r,e.r,r),Ue(t.g,e.g,r),Ue(t.b,e.b,r),Ue(t.a,e.a,r))},array:function(t,e,r){return t.map((function(t,n){return Ue(t,e[n],r)}))}}),qe=6/29*3*(6/29),He=Math.PI/180,Ge=180/Math.PI;function Ye(t){return t>.008856451679035631?Math.pow(t,1/3):t/qe+4/29}function We(t){return t>6/29?t*t*t:qe*(t-4/29)}function Xe(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Ze(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Je(t){var e=Ze(t.r),r=Ze(t.g),n=Ze(t.b),i=Ye((.4124564*e+.3575761*r+.1804375*n)/.95047),a=Ye((.2126729*e+.7151522*r+.072175*n)/1);return{l:116*a-16,a:500*(i-a),b:200*(a-Ye((.0193339*e+.119192*r+.9503041*n)/1.08883)),alpha:t.a}}function Ke(t){var e=(t.l+16)/116,r=isNaN(t.a)?e:e+t.a/500,n=isNaN(t.b)?e:e-t.b/200;return e=1*We(e),r=.95047*We(r),n=1.08883*We(n),new Kt(Xe(3.2404542*r-1.5371385*e-.4985314*n),Xe(-.969266*r+1.8760108*e+.041556*n),Xe(.0556434*r-.2040259*e+1.0572252*n),t.alpha)}function Qe(t,e,r){var n=e-t;return t+r*(n>180||n<-180?n-360*Math.round(n/360):n)}var $e={forward:Je,reverse:Ke,interpolate:function(t,e,r){return{l:Ue(t.l,e.l,r),a:Ue(t.a,e.a,r),b:Ue(t.b,e.b,r),alpha:Ue(t.alpha,e.alpha,r)}}},tr={forward:function(t){var e=Je(t),r=e.l,n=e.a,i=e.b,a=Math.atan2(i,n)*Ge;return{h:a<0?a+360:a,c:Math.sqrt(n*n+i*i),l:r,alpha:t.a}},reverse:function(t){var e=t.h*He,r=t.c;return Ke({l:t.l,a:Math.cos(e)*r,b:Math.sin(e)*r,alpha:t.alpha})},interpolate:function(t,e,r){return{h:Qe(t.h,e.h,r),c:Ue(t.c,e.c,r),l:Ue(t.l,e.l,r),alpha:Ue(t.alpha,e.alpha,r)}}},er=Object.freeze({__proto__:null,lab:$e,hcl:tr}),rr=function(t,e,r,n,i){this.type=t,this.operator=e,this.interpolation=r,this.input=n,this.labels=[],this.outputs=[];for(var a=0,o=i;a1})))return e.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);n={name:"cubic-bezier",controlPoints:s}}if(t.length-1<4)return e.error("Expected at least 4 arguments, but found only "+(t.length-1)+".");if((t.length-1)%2!=0)return e.error("Expected an even number of arguments.");if(!(i=e.parse(i,2,Dt)))return null;var l=[],c=null;"interpolate-hcl"===r||"interpolate-lab"===r?c=Bt:e.expectedType&&"value"!==e.expectedType.kind&&(c=e.expectedType);for(var u=0;u=f)return e.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',p);var g=e.parse(h,d,c);if(!g)return null;c=c||g.type,l.push([f,g])}return"number"===c.kind||"color"===c.kind||"array"===c.kind&&"number"===c.itemType.kind&&"number"==typeof c.N?new rr(c,r,n,i,l):e.error("Type "+Gt(c)+" is not interpolatable.")},rr.prototype.evaluate=function(t){var e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);var n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);var i=e.length;if(n>=e[i-1])return r[i-1].evaluate(t);var a=Ne(e,n),o=rr.interpolationFactor(this.interpolation,n,e[a],e[a+1]),s=r[a].evaluate(t),l=r[a+1].evaluate(t);return"interpolate"===this.operator?Ve[this.type.kind.toLowerCase()](s,l,o):"interpolate-hcl"===this.operator?tr.reverse(tr.interpolate(tr.forward(s),tr.forward(l),o)):$e.reverse($e.interpolate($e.forward(s),$e.forward(l),o))},rr.prototype.eachChild=function(t){t(this.input);for(var e=0,r=this.outputs;e=r.length)throw new se("Array index out of bounds: "+e+" > "+(r.length-1)+".");if(e!==Math.floor(e))throw new se("Array index must be an integer, but found "+e+" instead.");return r[e]},or.prototype.eachChild=function(t){t(this.index),t(this.input)},or.prototype.outputDefined=function(){return!1},or.prototype.serialize=function(){return["at",this.index.serialize(),this.input.serialize()]};var sr=function(t,e){this.type=Ft,this.needle=t,this.haystack=e};sr.parse=function(t,e){if(3!==t.length)return e.error("Expected 2 arguments, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1,jt),n=e.parse(t[2],2,jt);return r&&n?Xt(r.type,[Ft,Rt,Dt,Ot,jt])?new sr(r,n):e.error("Expected first argument to be of type boolean, string, number or null, but found "+Gt(r.type)+" instead"):null},sr.prototype.evaluate=function(t){var e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!r)return!1;if(!Zt(e,["boolean","string","number","null"]))throw new se("Expected first argument to be of type boolean, string, number or null, but found "+Gt(ie(e))+" instead.");if(!Zt(r,["string","array"]))throw new se("Expected second argument to be of type array or string, but found "+Gt(ie(r))+" instead.");return r.indexOf(e)>=0},sr.prototype.eachChild=function(t){t(this.needle),t(this.haystack)},sr.prototype.outputDefined=function(){return!0},sr.prototype.serialize=function(){return["in",this.needle.serialize(),this.haystack.serialize()]};var lr=function(t,e,r){this.type=Dt,this.needle=t,this.haystack=e,this.fromIndex=r};lr.parse=function(t,e){if(t.length<=2||t.length>=5)return e.error("Expected 3 or 4 arguments, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1,jt),n=e.parse(t[2],2,jt);if(!r||!n)return null;if(!Xt(r.type,[Ft,Rt,Dt,Ot,jt]))return e.error("Expected first argument to be of type boolean, string, number or null, but found "+Gt(r.type)+" instead");if(4===t.length){var i=e.parse(t[3],3,Dt);return i?new lr(r,n,i):null}return new lr(r,n)},lr.prototype.evaluate=function(t){var e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!Zt(e,["boolean","string","number","null"]))throw new se("Expected first argument to be of type boolean, string, number or null, but found "+Gt(ie(e))+" instead.");if(!Zt(r,["string","array"]))throw new se("Expected second argument to be of type array or string, but found "+Gt(ie(r))+" instead.");if(this.fromIndex){var n=this.fromIndex.evaluate(t);return r.indexOf(e,n)}return r.indexOf(e)},lr.prototype.eachChild=function(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex)},lr.prototype.outputDefined=function(){return!1},lr.prototype.serialize=function(){if(null!=this.fromIndex&&void 0!==this.fromIndex){var t=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),t]}return["index-of",this.needle.serialize(),this.haystack.serialize()]};var cr=function(t,e,r,n,i,a){this.inputType=t,this.type=e,this.input=r,this.cases=n,this.outputs=i,this.otherwise=a};cr.parse=function(t,e){if(t.length<5)return e.error("Expected at least 4 arguments, but found only "+(t.length-1)+".");if(t.length%2!=1)return e.error("Expected an even number of arguments.");var r,n;e.expectedType&&"value"!==e.expectedType.kind&&(n=e.expectedType);for(var i={},a=[],o=2;oNumber.MAX_SAFE_INTEGER)return c.error("Branch labels must be integers no larger than "+Number.MAX_SAFE_INTEGER+".");if("number"==typeof h&&Math.floor(h)!==h)return c.error("Numeric branch labels must be integer values.");if(r){if(c.checkSubtype(r,ie(h)))return null}else r=ie(h);if(void 0!==i[String(h)])return c.error("Branch labels must be unique.");i[String(h)]=a.length}var p=e.parse(l,o,n);if(!p)return null;n=n||p.type,a.push(p)}var d=e.parse(t[1],1,jt);if(!d)return null;var g=e.parse(t[t.length-1],t.length-1,n);return g?"value"!==d.type.kind&&e.concat(1).checkSubtype(r,d.type)?null:new cr(r,n,d,i,a,g):null},cr.prototype.evaluate=function(t){var e=this.input.evaluate(t);return(ie(e)===this.inputType&&this.outputs[this.cases[e]]||this.otherwise).evaluate(t)},cr.prototype.eachChild=function(t){t(this.input),this.outputs.forEach(t),t(this.otherwise)},cr.prototype.outputDefined=function(){return this.outputs.every((function(t){return t.outputDefined()}))&&this.otherwise.outputDefined()},cr.prototype.serialize=function(){for(var t=this,e=["match",this.input.serialize()],r=[],n={},i=0,a=Object.keys(this.cases).sort();i=5)return e.error("Expected 3 or 4 arguments, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1,jt),n=e.parse(t[2],2,Dt);if(!r||!n)return null;if(!Xt(r.type,[Ht(jt),Rt,jt]))return e.error("Expected first argument to be of type array or string, but found "+Gt(r.type)+" instead");if(4===t.length){var i=e.parse(t[3],3,Dt);return i?new fr(r.type,r,n,i):null}return new fr(r.type,r,n)},fr.prototype.evaluate=function(t){var e=this.input.evaluate(t),r=this.beginIndex.evaluate(t);if(!Zt(e,["string","array"]))throw new se("Expected first argument to be of type array or string, but found "+Gt(ie(e))+" instead.");if(this.endIndex){var n=this.endIndex.evaluate(t);return e.slice(r,n)}return e.slice(r)},fr.prototype.eachChild=function(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex)},fr.prototype.outputDefined=function(){return!1},fr.prototype.serialize=function(){if(null!=this.endIndex&&void 0!==this.endIndex){var t=this.endIndex.serialize();return["slice",this.input.serialize(),this.beginIndex.serialize(),t]}return["slice",this.input.serialize(),this.beginIndex.serialize()]};var gr=dr("==",(function(t,e,r){return e===r}),pr),mr=dr("!=",(function(t,e,r){return e!==r}),(function(t,e,r,n){return!pr(0,e,r,n)})),vr=dr("<",(function(t,e,r){return e",(function(t,e,r){return e>r}),(function(t,e,r,n){return n.compare(e,r)>0})),xr=dr("<=",(function(t,e,r){return e<=r}),(function(t,e,r,n){return n.compare(e,r)<=0})),br=dr(">=",(function(t,e,r){return e>=r}),(function(t,e,r,n){return n.compare(e,r)>=0})),_r=function(t,e,r,n,i){this.type=Rt,this.number=t,this.locale=e,this.currency=r,this.minFractionDigits=n,this.maxFractionDigits=i};_r.parse=function(t,e){if(3!==t.length)return e.error("Expected two arguments.");var r=e.parse(t[1],1,Dt);if(!r)return null;var n=t[2];if("object"!=typeof n||Array.isArray(n))return e.error("NumberFormat options argument must be an object.");var i=null;if(n.locale&&!(i=e.parse(n.locale,1,Rt)))return null;var a=null;if(n.currency&&!(a=e.parse(n.currency,1,Rt)))return null;var o=null;if(n["min-fraction-digits"]&&!(o=e.parse(n["min-fraction-digits"],1,Dt)))return null;var s=null;return n["max-fraction-digits"]&&!(s=e.parse(n["max-fraction-digits"],1,Dt))?null:new _r(r,i,a,o,s)},_r.prototype.evaluate=function(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))},_r.prototype.eachChild=function(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits)},_r.prototype.outputDefined=function(){return!1},_r.prototype.serialize=function(){var t={};return this.locale&&(t.locale=this.locale.serialize()),this.currency&&(t.currency=this.currency.serialize()),this.minFractionDigits&&(t["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(t["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),t]};var wr=function(t){this.type=Dt,this.input=t};wr.parse=function(t,e){if(2!==t.length)return e.error("Expected 1 argument, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1);return r?"array"!==r.type.kind&&"string"!==r.type.kind&&"value"!==r.type.kind?e.error("Expected argument of type string or array, but found "+Gt(r.type)+" instead."):new wr(r):null},wr.prototype.evaluate=function(t){var e=this.input.evaluate(t);if("string"==typeof e)return e.length;if(Array.isArray(e))return e.length;throw new se("Expected value to be of type string or array, but found "+Gt(ie(e))+" instead.")},wr.prototype.eachChild=function(t){t(this.input)},wr.prototype.outputDefined=function(){return!1},wr.prototype.serialize=function(){var t=["length"];return this.eachChild((function(e){t.push(e.serialize())})),t};var Tr={"==":gr,"!=":mr,">":yr,"<":vr,">=":br,"<=":xr,array:ce,at:or,boolean:ce,case:ur,coalesce:ir,collator:ve,format:ue,image:fe,in:sr,"index-of":lr,interpolate:rr,"interpolate-hcl":rr,"interpolate-lab":rr,length:wr,let:ar,literal:oe,match:cr,number:ce,"number-format":_r,object:ce,slice:fr,step:je,string:ce,"to-boolean":pe,"to-color":pe,"to-number":pe,"to-string":pe,var:Fe,within:ze};function kr(t,e){var r=e[0],n=e[1],i=e[2],a=e[3];r=r.evaluate(t),n=n.evaluate(t),i=i.evaluate(t);var o=a?a.evaluate(t):1,s=re(r,n,i,o);if(s)throw new se(s);return new Kt(r/255*o,n/255*o,i/255*o,o)}function Mr(t,e){return t in e}function Ar(t,e){var r=e[t];return void 0===r?null:r}function Sr(t){return{type:t}}function Er(t){return{result:"success",value:t}}function Cr(t){return{result:"error",value:t}}function Lr(t){return"data-driven"===t["property-type"]||"cross-faded-data-driven"===t["property-type"]}function Ir(t){return!!t.expression&&t.expression.parameters.indexOf("zoom")>-1}function Pr(t){return!!t.expression&&t.expression.interpolated}function zr(t){return t instanceof Number?"number":t instanceof String?"string":t instanceof Boolean?"boolean":Array.isArray(t)?"array":null===t?"null":typeof t}function Or(t){return"object"==typeof t&&null!==t&&!Array.isArray(t)}function Dr(t){return t}function Rr(t,e,r){return void 0!==t?t:void 0!==e?e:void 0!==r?r:void 0}function Fr(t,e,r,n,i){return Rr(typeof r===i?n[r]:void 0,t.default,e.default)}function Br(t,e,r){if("number"!==zr(r))return Rr(t.default,e.default);var n=t.stops.length;if(1===n)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[n-1][0])return t.stops[n-1][1];var i=Ne(t.stops.map((function(t){return t[0]})),r);return t.stops[i][1]}function Nr(t,e,r){var n=void 0!==t.base?t.base:1;if("number"!==zr(r))return Rr(t.default,e.default);var i=t.stops.length;if(1===i)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[i-1][0])return t.stops[i-1][1];var a=Ne(t.stops.map((function(t){return t[0]})),r),o=function(t,e,r,n){var i=n-r,a=t-r;return 0===i?0:1===e?a/i:(Math.pow(e,a)-1)/(Math.pow(e,i)-1)}(r,n,t.stops[a][0],t.stops[a+1][0]),s=t.stops[a][1],l=t.stops[a+1][1],c=Ve[e.type]||Dr;if(t.colorSpace&&"rgb"!==t.colorSpace){var u=er[t.colorSpace];c=function(t,e){return u.reverse(u.interpolate(u.forward(t),u.forward(e),o))}}return"function"==typeof s.evaluate?{evaluate:function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var r=s.evaluate.apply(void 0,t),n=l.evaluate.apply(void 0,t);if(void 0!==r&&void 0!==n)return c(r,n,o)}}:c(s,l,o)}function jr(t,e,r){return"color"===e.type?r=Kt.parse(r):"formatted"===e.type?r=te.fromString(r.toString()):"resolvedImage"===e.type?r=ee.fromString(r.toString()):zr(r)===e.type||"enum"===e.type&&e.values[r]||(r=void 0),Rr(r,t.default,e.default)}me.register(Tr,{error:[{kind:"error"},[Rt],function(t,e){throw new se(e[0].evaluate(t))}],typeof:[Rt,[jt],function(t,e){return Gt(ie(e[0].evaluate(t)))}],"to-rgba":[Ht(Dt,4),[Bt],function(t,e){return e[0].evaluate(t).toArray()}],rgb:[Bt,[Dt,Dt,Dt],kr],rgba:[Bt,[Dt,Dt,Dt,Dt],kr],has:{type:Ft,overloads:[[[Rt],function(t,e){return Mr(e[0].evaluate(t),t.properties())}],[[Rt,Nt],function(t,e){var r=e[1];return Mr(e[0].evaluate(t),r.evaluate(t))}]]},get:{type:jt,overloads:[[[Rt],function(t,e){return Ar(e[0].evaluate(t),t.properties())}],[[Rt,Nt],function(t,e){var r=e[1];return Ar(e[0].evaluate(t),r.evaluate(t))}]]},"feature-state":[jt,[Rt],function(t,e){return Ar(e[0].evaluate(t),t.featureState||{})}],properties:[Nt,[],function(t){return t.properties()}],"geometry-type":[Rt,[],function(t){return t.geometryType()}],id:[jt,[],function(t){return t.id()}],zoom:[Dt,[],function(t){return t.globals.zoom}],"heatmap-density":[Dt,[],function(t){return t.globals.heatmapDensity||0}],"line-progress":[Dt,[],function(t){return t.globals.lineProgress||0}],accumulated:[jt,[],function(t){return void 0===t.globals.accumulated?null:t.globals.accumulated}],"+":[Dt,Sr(Dt),function(t,e){for(var r=0,n=0,i=e;n":[Ft,[Rt,jt],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i>a}],"filter-id->":[Ft,[jt],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n>i}],"filter-<=":[Ft,[Rt,jt],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i<=a}],"filter-id-<=":[Ft,[jt],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n<=i}],"filter->=":[Ft,[Rt,jt],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i>=a}],"filter-id->=":[Ft,[jt],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n>=i}],"filter-has":[Ft,[jt],function(t,e){return e[0].value in t.properties()}],"filter-has-id":[Ft,[],function(t){return null!==t.id()&&void 0!==t.id()}],"filter-type-in":[Ft,[Ht(Rt)],function(t,e){return e[0].value.indexOf(t.geometryType())>=0}],"filter-id-in":[Ft,[Ht(jt)],function(t,e){return e[0].value.indexOf(t.id())>=0}],"filter-in-small":[Ft,[Rt,Ht(jt)],function(t,e){var r=e[0];return e[1].value.indexOf(t.properties()[r.value])>=0}],"filter-in-large":[Ft,[Rt,Ht(jt)],function(t,e){var r=e[0],n=e[1];return function(t,e,r,n){for(;r<=n;){var i=r+n>>1;if(e[i]===t)return!0;e[i]>t?n=i-1:r=i+1}return!1}(t.properties()[r.value],n.value,0,n.value.length-1)}],all:{type:Ft,overloads:[[[Ft,Ft],function(t,e){var r=e[1];return e[0].evaluate(t)&&r.evaluate(t)}],[Sr(Ft),function(t,e){for(var r=0,n=e;r0&&"string"==typeof t[0]&&t[0]in Tr}function qr(t,e){var r=new Be(Tr,[],e?function(t){var e={color:Bt,string:Rt,number:Dt,enum:Rt,boolean:Ft,formatted:Vt,resolvedImage:qt};return"array"===t.type?Ht(e[t.value]||jt,t.length):e[t.type]}(e):void 0),n=r.parse(t,void 0,void 0,void 0,e&&"string"===e.type?{typeAnnotation:"coerce"}:void 0);return n?Er(new Ur(n,e)):Cr(r.errors)}Ur.prototype.evaluateWithoutErrorHandling=function(t,e,r,n,i,a){return this._evaluator.globals=t,this._evaluator.feature=e,this._evaluator.featureState=r,this._evaluator.canonical=n,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a,this.expression.evaluate(this._evaluator)},Ur.prototype.evaluate=function(t,e,r,n,i,a){this._evaluator.globals=t,this._evaluator.feature=e||null,this._evaluator.featureState=r||null,this._evaluator.canonical=n,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a||null;try{var o=this.expression.evaluate(this._evaluator);if(null==o||"number"==typeof o&&o!=o)return this._defaultValue;if(this._enumValues&&!(o in this._enumValues))throw new se("Expected value to be one of "+Object.keys(this._enumValues).map((function(t){return JSON.stringify(t)})).join(", ")+", but found "+JSON.stringify(o)+" instead.");return o}catch(t){return this._warningHistory[t.message]||(this._warningHistory[t.message]=!0,"undefined"!=typeof console&&console.warn(t.message)),this._defaultValue}};var Hr=function(t,e){this.kind=t,this._styleExpression=e,this.isStateDependent="constant"!==t&&!De(e.expression)};Hr.prototype.evaluateWithoutErrorHandling=function(t,e,r,n,i,a){return this._styleExpression.evaluateWithoutErrorHandling(t,e,r,n,i,a)},Hr.prototype.evaluate=function(t,e,r,n,i,a){return this._styleExpression.evaluate(t,e,r,n,i,a)};var Gr=function(t,e,r,n){this.kind=t,this.zoomStops=r,this._styleExpression=e,this.isStateDependent="camera"!==t&&!De(e.expression),this.interpolationType=n};function Yr(t,e){if("error"===(t=qr(t,e)).result)return t;var r=t.value.expression,n=Oe(r);if(!n&&!Lr(e))return Cr([new Pt("","data expressions not supported")]);var i=Re(r,["zoom"]);if(!i&&!Ir(e))return Cr([new Pt("","zoom expressions not supported")]);var a=function t(e){var r=null;if(e instanceof ar)r=t(e.result);else if(e instanceof ir)for(var n=0,i=e.args;nn.maximum?[new St(e,r,r+" is greater than the maximum value "+n.maximum)]:[]}function Kr(t){var e,r,n,i=t.valueSpec,a=Lt(t.value.type),o={},s="categorical"!==a&&void 0===t.value.property,l=!s,c="array"===zr(t.value.stops)&&"array"===zr(t.value.stops[0])&&"object"===zr(t.value.stops[0][0]),u=Xr({key:t.key,value:t.value,valueSpec:t.styleSpec.function,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{stops:function(t){if("identity"===a)return[new St(t.key,t.value,'identity function may not have a "stops" property')];var e=[],r=t.value;return e=e.concat(Zr({key:t.key,value:r,valueSpec:t.valueSpec,style:t.style,styleSpec:t.styleSpec,arrayElementValidator:f})),"array"===zr(r)&&0===r.length&&e.push(new St(t.key,r,"array must have at least one stop")),e},default:function(t){return bn({key:t.key,value:t.value,valueSpec:i,style:t.style,styleSpec:t.styleSpec})}}});return"identity"===a&&s&&u.push(new St(t.key,t.value,'missing required property "property"')),"identity"===a||t.value.stops||u.push(new St(t.key,t.value,'missing required property "stops"')),"exponential"===a&&t.valueSpec.expression&&!Pr(t.valueSpec)&&u.push(new St(t.key,t.value,"exponential functions not supported")),t.styleSpec.$version>=8&&(l&&!Lr(t.valueSpec)?u.push(new St(t.key,t.value,"property functions not supported")):s&&!Ir(t.valueSpec)&&u.push(new St(t.key,t.value,"zoom functions not supported"))),"categorical"!==a&&!c||void 0!==t.value.property||u.push(new St(t.key,t.value,'"property" property is required')),u;function f(t){var e=[],a=t.value,s=t.key;if("array"!==zr(a))return[new St(s,a,"array expected, "+zr(a)+" found")];if(2!==a.length)return[new St(s,a,"array length 2 expected, length "+a.length+" found")];if(c){if("object"!==zr(a[0]))return[new St(s,a,"object expected, "+zr(a[0])+" found")];if(void 0===a[0].zoom)return[new St(s,a,"object stop key must have zoom")];if(void 0===a[0].value)return[new St(s,a,"object stop key must have value")];if(n&&n>Lt(a[0].zoom))return[new St(s,a[0].zoom,"stop zoom values must appear in ascending order")];Lt(a[0].zoom)!==n&&(n=Lt(a[0].zoom),r=void 0,o={}),e=e.concat(Xr({key:s+"[0]",value:a[0],valueSpec:{zoom:{}},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:Jr,value:h}}))}else e=e.concat(h({key:s+"[0]",value:a[0],valueSpec:{},style:t.style,styleSpec:t.styleSpec},a));return Vr(It(a[1]))?e.concat([new St(s+"[1]",a[1],"expressions are not allowed in function stops.")]):e.concat(bn({key:s+"[1]",value:a[1],valueSpec:i,style:t.style,styleSpec:t.styleSpec}))}function h(t,n){var s=zr(t.value),l=Lt(t.value),c=null!==t.value?t.value:n;if(e){if(s!==e)return[new St(t.key,c,s+" stop domain type must match previous stop domain type "+e)]}else e=s;if("number"!==s&&"string"!==s&&"boolean"!==s)return[new St(t.key,c,"stop domain value must be a number, string, or boolean")];if("number"!==s&&"categorical"!==a){var u="number expected, "+s+" found";return Lr(i)&&void 0===a&&(u+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new St(t.key,c,u)]}return"categorical"!==a||"number"!==s||isFinite(l)&&Math.floor(l)===l?"categorical"!==a&&"number"===s&&void 0!==r&&l=2&&"$id"!==t[1]&&"$type"!==t[1];case"in":return t.length>=3&&("string"!=typeof t[1]||Array.isArray(t[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==t.length||Array.isArray(t[1])||Array.isArray(t[2]);case"any":case"all":for(var e=0,r=t.slice(1);ee?1:0}function an(t){if(!t)return!0;var e,r=t[0];return t.length<=1?"any"!==r:"=="===r?on(t[1],t[2],"=="):"!="===r?cn(on(t[1],t[2],"==")):"<"===r||">"===r||"<="===r||">="===r?on(t[1],t[2],r):"any"===r?(e=t.slice(1),["any"].concat(e.map(an))):"all"===r?["all"].concat(t.slice(1).map(an)):"none"===r?["all"].concat(t.slice(1).map(an).map(cn)):"in"===r?sn(t[1],t.slice(2)):"!in"===r?cn(sn(t[1],t.slice(2))):"has"===r?ln(t[1]):"!has"===r?cn(ln(t[1])):"within"!==r||t}function on(t,e,r){switch(t){case"$type":return["filter-type-"+r,e];case"$id":return["filter-id-"+r,e];default:return["filter-"+r,t,e]}}function sn(t,e){if(0===e.length)return!1;switch(t){case"$type":return["filter-type-in",["literal",e]];case"$id":return["filter-id-in",["literal",e]];default:return e.length>200&&!e.some((function(t){return typeof t!=typeof e[0]}))?["filter-in-large",t,["literal",e.sort(nn)]]:["filter-in-small",t,["literal",e]]}}function ln(t){switch(t){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",t]}}function cn(t){return["!",t]}function un(t){return tn(It(t.value))?Qr(Ct({},t,{expressionContext:"filter",valueSpec:{value:"boolean"}})):function t(e){var r=e.value,n=e.key;if("array"!==zr(r))return[new St(n,r,"array expected, "+zr(r)+" found")];var i,a=e.styleSpec,o=[];if(r.length<1)return[new St(n,r,"filter array must have at least 1 element")];switch(o=o.concat($r({key:n+"[0]",value:r[0],valueSpec:a.filter_operator,style:e.style,styleSpec:e.styleSpec})),Lt(r[0])){case"<":case"<=":case">":case">=":r.length>=2&&"$type"===Lt(r[1])&&o.push(new St(n,r,'"$type" cannot be use with operator "'+r[0]+'"'));case"==":case"!=":3!==r.length&&o.push(new St(n,r,'filter array for operator "'+r[0]+'" must have 3 elements'));case"in":case"!in":r.length>=2&&"string"!==(i=zr(r[1]))&&o.push(new St(n+"[1]",r[1],"string expected, "+i+" found"));for(var s=2;s=u[p+0]&&n>=u[p+1])?(o[h]=!0,a.push(c[h])):o[h]=!1}}},In.prototype._forEachCell=function(t,e,r,n,i,a,o,s){for(var l=this._convertToCellCoord(t),c=this._convertToCellCoord(e),u=this._convertToCellCoord(r),f=this._convertToCellCoord(n),h=l;h<=u;h++)for(var p=c;p<=f;p++){var d=this.d*p+h;if((!s||s(this._convertFromCellCoord(h),this._convertFromCellCoord(p),this._convertFromCellCoord(h+1),this._convertFromCellCoord(p+1)))&&i.call(this,t,e,r,n,d,a,o,s))return}},In.prototype._convertFromCellCoord=function(t){return(t-this.padding)/this.scale},In.prototype._convertToCellCoord=function(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))},In.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var t=this.cells,e=3+this.cells.length+1+1,r=0,n=0;n=0)){var u=t[c];l[c]=On[s].shallow.indexOf(c)>=0?u:Nn(u,e)}t instanceof Error&&(l.message=t.message)}if(l.$name)throw new Error("$name property is reserved for worker serialization logic.");return"Object"!==s&&(l.$name=s),l}throw new Error("can't serialize object of type "+typeof t)}function jn(t){if(null==t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||t instanceof Boolean||t instanceof Number||t instanceof String||t instanceof Date||t instanceof RegExp||Fn(t)||Bn(t)||ArrayBuffer.isView(t)||t instanceof Pn)return t;if(Array.isArray(t))return t.map(jn);if("object"==typeof t){var e=t.$name||"Object",r=On[e].klass;if(!r)throw new Error("can't deserialize unregistered class "+e);if(r.deserialize)return r.deserialize(t);for(var n=Object.create(r.prototype),i=0,a=Object.keys(t);i=0?s:jn(s)}}return n}throw new Error("can't deserialize object of type "+typeof t)}var Un=function(){this.first=!0};Un.prototype.update=function(t,e){var r=Math.floor(t);return this.first?(this.first=!1,this.lastIntegerZoom=r,this.lastIntegerZoomTime=0,this.lastZoom=t,this.lastFloorZoom=r,!0):(this.lastFloorZoom>r?(this.lastIntegerZoom=r+1,this.lastIntegerZoomTime=e):this.lastFloorZoom=128&&t<=255},Arabic:function(t){return t>=1536&&t<=1791},"Arabic Supplement":function(t){return t>=1872&&t<=1919},"Arabic Extended-A":function(t){return t>=2208&&t<=2303},"Hangul Jamo":function(t){return t>=4352&&t<=4607},"Unified Canadian Aboriginal Syllabics":function(t){return t>=5120&&t<=5759},Khmer:function(t){return t>=6016&&t<=6143},"Unified Canadian Aboriginal Syllabics Extended":function(t){return t>=6320&&t<=6399},"General Punctuation":function(t){return t>=8192&&t<=8303},"Letterlike Symbols":function(t){return t>=8448&&t<=8527},"Number Forms":function(t){return t>=8528&&t<=8591},"Miscellaneous Technical":function(t){return t>=8960&&t<=9215},"Control Pictures":function(t){return t>=9216&&t<=9279},"Optical Character Recognition":function(t){return t>=9280&&t<=9311},"Enclosed Alphanumerics":function(t){return t>=9312&&t<=9471},"Geometric Shapes":function(t){return t>=9632&&t<=9727},"Miscellaneous Symbols":function(t){return t>=9728&&t<=9983},"Miscellaneous Symbols and Arrows":function(t){return t>=11008&&t<=11263},"CJK Radicals Supplement":function(t){return t>=11904&&t<=12031},"Kangxi Radicals":function(t){return t>=12032&&t<=12255},"Ideographic Description Characters":function(t){return t>=12272&&t<=12287},"CJK Symbols and Punctuation":function(t){return t>=12288&&t<=12351},Hiragana:function(t){return t>=12352&&t<=12447},Katakana:function(t){return t>=12448&&t<=12543},Bopomofo:function(t){return t>=12544&&t<=12591},"Hangul Compatibility Jamo":function(t){return t>=12592&&t<=12687},Kanbun:function(t){return t>=12688&&t<=12703},"Bopomofo Extended":function(t){return t>=12704&&t<=12735},"CJK Strokes":function(t){return t>=12736&&t<=12783},"Katakana Phonetic Extensions":function(t){return t>=12784&&t<=12799},"Enclosed CJK Letters and Months":function(t){return t>=12800&&t<=13055},"CJK Compatibility":function(t){return t>=13056&&t<=13311},"CJK Unified Ideographs Extension A":function(t){return t>=13312&&t<=19903},"Yijing Hexagram Symbols":function(t){return t>=19904&&t<=19967},"CJK Unified Ideographs":function(t){return t>=19968&&t<=40959},"Yi Syllables":function(t){return t>=40960&&t<=42127},"Yi Radicals":function(t){return t>=42128&&t<=42191},"Hangul Jamo Extended-A":function(t){return t>=43360&&t<=43391},"Hangul Syllables":function(t){return t>=44032&&t<=55215},"Hangul Jamo Extended-B":function(t){return t>=55216&&t<=55295},"Private Use Area":function(t){return t>=57344&&t<=63743},"CJK Compatibility Ideographs":function(t){return t>=63744&&t<=64255},"Arabic Presentation Forms-A":function(t){return t>=64336&&t<=65023},"Vertical Forms":function(t){return t>=65040&&t<=65055},"CJK Compatibility Forms":function(t){return t>=65072&&t<=65103},"Small Form Variants":function(t){return t>=65104&&t<=65135},"Arabic Presentation Forms-B":function(t){return t>=65136&&t<=65279},"Halfwidth and Fullwidth Forms":function(t){return t>=65280&&t<=65519}};function qn(t){for(var e=0,r=t;e=65097&&t<=65103)||Vn["CJK Compatibility Ideographs"](t)||Vn["CJK Compatibility"](t)||Vn["CJK Radicals Supplement"](t)||Vn["CJK Strokes"](t)||!(!Vn["CJK Symbols and Punctuation"](t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||Vn["CJK Unified Ideographs Extension A"](t)||Vn["CJK Unified Ideographs"](t)||Vn["Enclosed CJK Letters and Months"](t)||Vn["Hangul Compatibility Jamo"](t)||Vn["Hangul Jamo Extended-A"](t)||Vn["Hangul Jamo Extended-B"](t)||Vn["Hangul Jamo"](t)||Vn["Hangul Syllables"](t)||Vn.Hiragana(t)||Vn["Ideographic Description Characters"](t)||Vn.Kanbun(t)||Vn["Kangxi Radicals"](t)||Vn["Katakana Phonetic Extensions"](t)||Vn.Katakana(t)&&12540!==t||!(!Vn["Halfwidth and Fullwidth Forms"](t)||65288===t||65289===t||65293===t||t>=65306&&t<=65310||65339===t||65341===t||65343===t||t>=65371&&t<=65503||65507===t||t>=65512&&t<=65519)||!(!Vn["Small Form Variants"](t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||Vn["Unified Canadian Aboriginal Syllabics"](t)||Vn["Unified Canadian Aboriginal Syllabics Extended"](t)||Vn["Vertical Forms"](t)||Vn["Yijing Hexagram Symbols"](t)||Vn["Yi Syllables"](t)||Vn["Yi Radicals"](t))))}function Gn(t){return!(Hn(t)||function(t){return!!(Vn["Latin-1 Supplement"](t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||Vn["General Punctuation"](t)&&(8214===t||8224===t||8225===t||8240===t||8241===t||8251===t||8252===t||8258===t||8263===t||8264===t||8265===t||8273===t)||Vn["Letterlike Symbols"](t)||Vn["Number Forms"](t)||Vn["Miscellaneous Technical"](t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||9003===t||t>=9085&&t<=9114||t>=9150&&t<=9165||9167===t||t>=9169&&t<=9179||t>=9186&&t<=9215)||Vn["Control Pictures"](t)&&9251!==t||Vn["Optical Character Recognition"](t)||Vn["Enclosed Alphanumerics"](t)||Vn["Geometric Shapes"](t)||Vn["Miscellaneous Symbols"](t)&&!(t>=9754&&t<=9759)||Vn["Miscellaneous Symbols and Arrows"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||Vn["CJK Symbols and Punctuation"](t)||Vn.Katakana(t)||Vn["Private Use Area"](t)||Vn["CJK Compatibility Forms"](t)||Vn["Small Form Variants"](t)||Vn["Halfwidth and Fullwidth Forms"](t)||8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)}(t))}function Yn(t){return t>=1424&&t<=2303||Vn["Arabic Presentation Forms-A"](t)||Vn["Arabic Presentation Forms-B"](t)}function Wn(t,e){return!(!e&&Yn(t)||t>=2304&&t<=3583||t>=3840&&t<=4255||Vn.Khmer(t))}function Xn(t){for(var e=0,r=t;e-1&&(Jn="error"),Zn&&Zn(t)};function $n(){ti.fire(new Tt("pluginStateChange",{pluginStatus:Jn,pluginURL:Kn}))}var ti=new Mt,ei=function(){return Jn},ri=function(){if("deferred"!==Jn||!Kn)throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");Jn="loading",$n(),Kn&&yt({url:Kn},(function(t){t?Qn(t):(Jn="loaded",$n())}))},ni={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:function(){return"loaded"===Jn||null!=ni.applyArabicShaping},isLoading:function(){return"loading"===Jn},setState:function(t){Jn=t.pluginStatus,Kn=t.pluginURL},isParsed:function(){return null!=ni.applyArabicShaping&&null!=ni.processBidirectionalText&&null!=ni.processStyledBidirectionalText},getPluginURL:function(){return Kn}},ii=function(t,e){this.zoom=t,e?(this.now=e.now,this.fadeDuration=e.fadeDuration,this.zoomHistory=e.zoomHistory,this.transition=e.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new Un,this.transition={})};ii.prototype.isSupportedScript=function(t){return function(t,e){for(var r=0,n=t;rthis.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:e+(1-e)*r}:{fromScale:.5,toScale:1,t:1-(1-r)*e}};var ai=function(t,e){this.property=t,this.value=e,this.expression=function(t,e){if(Or(t))return new Wr(t,e);if(Vr(t)){var r=Yr(t,e);if("error"===r.result)throw new Error(r.value.map((function(t){return t.key+": "+t.message})).join(", "));return r.value}var n=t;return"string"==typeof t&&"color"===e.type&&(n=Kt.parse(t)),{kind:"constant",evaluate:function(){return n}}}(void 0===e?t.specification.default:e,t.specification)};ai.prototype.isDataDriven=function(){return"source"===this.expression.kind||"composite"===this.expression.kind},ai.prototype.possiblyEvaluate=function(t,e,r){return this.property.possiblyEvaluate(this,t,e,r)};var oi=function(t){this.property=t,this.value=new ai(t,void 0)};oi.prototype.transitioned=function(t,e){return new li(this.property,this.value,e,u({},t.transition,this.transition),t.now)},oi.prototype.untransitioned=function(){return new li(this.property,this.value,null,{},0)};var si=function(t){this._properties=t,this._values=Object.create(t.defaultTransitionablePropertyValues)};si.prototype.getValue=function(t){return x(this._values[t].value.value)},si.prototype.setValue=function(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new oi(this._values[t].property)),this._values[t].value=new ai(this._values[t].property,null===e?void 0:x(e))},si.prototype.getTransition=function(t){return x(this._values[t].transition)},si.prototype.setTransition=function(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new oi(this._values[t].property)),this._values[t].transition=x(e)||void 0},si.prototype.serialize=function(){for(var t={},e=0,r=Object.keys(this._values);ethis.end)return this.prior=null,i;if(this.value.isDataDriven())return this.prior=null,i;if(n=1)return 1;var e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)}(o))}return i};var ci=function(t){this._properties=t,this._values=Object.create(t.defaultTransitioningPropertyValues)};ci.prototype.possiblyEvaluate=function(t,e,r){for(var n=new hi(this._properties),i=0,a=Object.keys(this._values);in.zoomHistory.lastIntegerZoom?{from:t,to:e}:{from:r,to:e}},e.prototype.interpolate=function(t){return t},e}(di),mi=function(t){this.specification=t};mi.prototype.possiblyEvaluate=function(t,e,r,n){if(void 0!==t.value){if("constant"===t.expression.kind){var i=t.expression.evaluate(e,null,{},r,n);return this._calculate(i,i,i,e)}return this._calculate(t.expression.evaluate(new ii(Math.floor(e.zoom-1),e)),t.expression.evaluate(new ii(Math.floor(e.zoom),e)),t.expression.evaluate(new ii(Math.floor(e.zoom+1),e)),e)}},mi.prototype._calculate=function(t,e,r,n){return n.zoom>n.zoomHistory.lastIntegerZoom?{from:t,to:e}:{from:r,to:e}},mi.prototype.interpolate=function(t){return t};var vi=function(t){this.specification=t};vi.prototype.possiblyEvaluate=function(t,e,r,n){return!!t.expression.evaluate(e,null,{},r,n)},vi.prototype.interpolate=function(){return!1};var yi=function(t){for(var e in this.properties=t,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[],t){var r=t[e];r.specification.overridable&&this.overridableProperties.push(e);var n=this.defaultPropertyValues[e]=new ai(r,void 0),i=this.defaultTransitionablePropertyValues[e]=new oi(r);this.defaultTransitioningPropertyValues[e]=i.untransitioned(),this.defaultPossiblyEvaluatedValues[e]=n.possiblyEvaluate({})}};Dn("DataDrivenProperty",di),Dn("DataConstantProperty",pi),Dn("CrossFadedDataDrivenProperty",gi),Dn("CrossFadedProperty",mi),Dn("ColorRampProperty",vi);var xi=function(t){function e(e,r){if(t.call(this),this.id=e.id,this.type=e.type,this._featureFilter={filter:function(){return!0},needGeometry:!1},"custom"!==e.type&&(this.metadata=(e=e).metadata,this.minzoom=e.minzoom,this.maxzoom=e.maxzoom,"background"!==e.type&&(this.source=e.source,this.sourceLayer=e["source-layer"],this.filter=e.filter),r.layout&&(this._unevaluatedLayout=new ui(r.layout)),r.paint)){for(var n in this._transitionablePaint=new si(r.paint),e.paint)this.setPaintProperty(n,e.paint[n],{validate:!1});for(var i in e.layout)this.setLayoutProperty(i,e.layout[i],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new hi(r.paint)}}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getCrossfadeParameters=function(){return this._crossfadeParameters},e.prototype.getLayoutProperty=function(t){return"visibility"===t?this.visibility:this._unevaluatedLayout.getValue(t)},e.prototype.setLayoutProperty=function(t,e,r){void 0===r&&(r={}),null!=e&&this._validate(En,"layers."+this.id+".layout."+t,t,e,r)||("visibility"!==t?this._unevaluatedLayout.setValue(t,e):this.visibility=e)},e.prototype.getPaintProperty=function(t){return m(t,"-transition")?this._transitionablePaint.getTransition(t.slice(0,-"-transition".length)):this._transitionablePaint.getValue(t)},e.prototype.setPaintProperty=function(t,e,r){if(void 0===r&&(r={}),null!=e&&this._validate(Sn,"layers."+this.id+".paint."+t,t,e,r))return!1;if(m(t,"-transition"))return this._transitionablePaint.setTransition(t.slice(0,-"-transition".length),e||void 0),!1;var n=this._transitionablePaint._values[t],i="cross-faded-data-driven"===n.property.specification["property-type"],a=n.value.isDataDriven(),o=n.value;this._transitionablePaint.setValue(t,e),this._handleSpecialPaintPropertyUpdate(t);var s=this._transitionablePaint._values[t].value;return s.isDataDriven()||a||i||this._handleOverridablePaintPropertyUpdate(t,o,s)},e.prototype._handleSpecialPaintPropertyUpdate=function(t){},e.prototype._handleOverridablePaintPropertyUpdate=function(t,e,r){return!1},e.prototype.isHidden=function(t){return!!(this.minzoom&&t=this.maxzoom)||"none"===this.visibility},e.prototype.updateTransitions=function(t){this._transitioningPaint=this._transitionablePaint.transitioned(t,this._transitioningPaint)},e.prototype.hasTransition=function(){return this._transitioningPaint.hasTransition()},e.prototype.recalculate=function(t,e){t.getCrossfadeParameters&&(this._crossfadeParameters=t.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(t,void 0,e)),this.paint=this._transitioningPaint.possiblyEvaluate(t,void 0,e)},e.prototype.serialize=function(){var t={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(t.layout=t.layout||{},t.layout.visibility=this.visibility),y(t,(function(t,e){return!(void 0===t||"layout"===e&&!Object.keys(t).length||"paint"===e&&!Object.keys(t).length)}))},e.prototype._validate=function(t,e,r,n,i){return void 0===i&&(i={}),(!i||!1!==i.validate)&&Cn(this,t.call(Mn,{key:e,layerType:this.type,objectKey:r,value:n,styleSpec:At,style:{glyphs:!0,sprite:!0}}))},e.prototype.is3D=function(){return!1},e.prototype.isTileClipped=function(){return!1},e.prototype.hasOffscreenPass=function(){return!1},e.prototype.resize=function(){},e.prototype.isStateDependent=function(){for(var t in this.paint._values){var e=this.paint.get(t);if(e instanceof fi&&Lr(e.property.specification)&&("source"===e.value.kind||"composite"===e.value.kind)&&e.value.isStateDependent)return!0}return!1},e}(Mt),bi={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array},_i=function(t,e){this._structArray=t,this._pos1=e*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8},wi=function(){this.isTransferred=!1,this.capacity=-1,this.resize(0)};function Ti(t,e){void 0===e&&(e=1);var r=0,n=0;return{members:t.map((function(t){var i=bi[t.type].BYTES_PER_ELEMENT,a=r=ki(r,Math.max(e,i)),o=t.components||1;return n=Math.max(n,i),r+=i*o,{name:t.name,type:t.type,components:o,offset:a}})),size:ki(r,Math.max(n,e)),alignment:e}}function ki(t,e){return Math.ceil(t/e)*e}wi.serialize=function(t,e){return t._trim(),e&&(t.isTransferred=!0,e.push(t.arrayBuffer)),{length:t.length,arrayBuffer:t.arrayBuffer}},wi.deserialize=function(t){var e=Object.create(this.prototype);return e.arrayBuffer=t.arrayBuffer,e.length=t.length,e.capacity=t.arrayBuffer.byteLength/e.bytesPerElement,e._refreshViews(),e},wi.prototype._trim=function(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())},wi.prototype.clear=function(){this.length=0},wi.prototype.resize=function(t){this.reserve(t),this.length=t},wi.prototype.reserve=function(t){if(t>this.capacity){this.capacity=Math.max(t,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);var e=this.uint8;this._refreshViews(),e&&this.uint8.set(e)}},wi.prototype._refreshViews=function(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")};var Mi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;return this.resize(r+1),this.emplace(r,t,e)},e.prototype.emplace=function(t,e,r){var n=2*t;return this.int16[n+0]=e,this.int16[n+1]=r,t},e}(wi);Mi.prototype.bytesPerElement=4,Dn("StructArrayLayout2i4",Mi);var Ai=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n){var i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)},e.prototype.emplace=function(t,e,r,n,i){var a=4*t;return this.int16[a+0]=e,this.int16[a+1]=r,this.int16[a+2]=n,this.int16[a+3]=i,t},e}(wi);Ai.prototype.bytesPerElement=8,Dn("StructArrayLayout4i8",Ai);var Si=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a){var o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,a)},e.prototype.emplace=function(t,e,r,n,i,a,o){var s=6*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.int16[s+2]=n,this.int16[s+3]=i,this.int16[s+4]=a,this.int16[s+5]=o,t},e}(wi);Si.prototype.bytesPerElement=12,Dn("StructArrayLayout2i4i12",Si);var Ei=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a){var o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,a)},e.prototype.emplace=function(t,e,r,n,i,a,o){var s=4*t,l=8*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.uint8[l+4]=n,this.uint8[l+5]=i,this.uint8[l+6]=a,this.uint8[l+7]=o,t},e}(wi);Ei.prototype.bytesPerElement=8,Dn("StructArrayLayout2i4ub8",Ei);var Ci=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,c){var u=this.length;return this.resize(u+1),this.emplace(u,t,e,r,n,i,a,o,s,l,c)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,c,u){var f=9*t,h=18*t;return this.uint16[f+0]=e,this.uint16[f+1]=r,this.uint16[f+2]=n,this.uint16[f+3]=i,this.uint16[f+4]=a,this.uint16[f+5]=o,this.uint16[f+6]=s,this.uint16[f+7]=l,this.uint8[h+16]=c,this.uint8[h+17]=u,t},e}(wi);Ci.prototype.bytesPerElement=18,Dn("StructArrayLayout8ui2ub18",Ci);var Li=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,c,u,f){var h=this.length;return this.resize(h+1),this.emplace(h,t,e,r,n,i,a,o,s,l,c,u,f)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,c,u,f,h){var p=12*t;return this.int16[p+0]=e,this.int16[p+1]=r,this.int16[p+2]=n,this.int16[p+3]=i,this.uint16[p+4]=a,this.uint16[p+5]=o,this.uint16[p+6]=s,this.uint16[p+7]=l,this.int16[p+8]=c,this.int16[p+9]=u,this.int16[p+10]=f,this.int16[p+11]=h,t},e}(wi);Li.prototype.bytesPerElement=24,Dn("StructArrayLayout4i4ui4i24",Li);var Ii=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=3*t;return this.float32[i+0]=e,this.float32[i+1]=r,this.float32[i+2]=n,t},e}(wi);Ii.prototype.bytesPerElement=12,Dn("StructArrayLayout3f12",Ii);var Pi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t){var e=this.length;return this.resize(e+1),this.emplace(e,t)},e.prototype.emplace=function(t,e){return this.uint32[1*t+0]=e,t},e}(wi);Pi.prototype.bytesPerElement=4,Dn("StructArrayLayout1ul4",Pi);var zi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l){var c=this.length;return this.resize(c+1),this.emplace(c,t,e,r,n,i,a,o,s,l)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,c){var u=10*t,f=5*t;return this.int16[u+0]=e,this.int16[u+1]=r,this.int16[u+2]=n,this.int16[u+3]=i,this.int16[u+4]=a,this.int16[u+5]=o,this.uint32[f+3]=s,this.uint16[u+8]=l,this.uint16[u+9]=c,t},e}(wi);zi.prototype.bytesPerElement=20,Dn("StructArrayLayout6i1ul2ui20",zi);var Oi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a){var o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,a)},e.prototype.emplace=function(t,e,r,n,i,a,o){var s=6*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.int16[s+2]=n,this.int16[s+3]=i,this.int16[s+4]=a,this.int16[s+5]=o,t},e}(wi);Oi.prototype.bytesPerElement=12,Dn("StructArrayLayout2i2i2i12",Oi);var Di=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i){var a=this.length;return this.resize(a+1),this.emplace(a,t,e,r,n,i)},e.prototype.emplace=function(t,e,r,n,i,a){var o=4*t,s=8*t;return this.float32[o+0]=e,this.float32[o+1]=r,this.float32[o+2]=n,this.int16[s+6]=i,this.int16[s+7]=a,t},e}(wi);Di.prototype.bytesPerElement=16,Dn("StructArrayLayout2f1f2i16",Di);var Ri=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n){var i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)},e.prototype.emplace=function(t,e,r,n,i){var a=12*t,o=3*t;return this.uint8[a+0]=e,this.uint8[a+1]=r,this.float32[o+1]=n,this.float32[o+2]=i,t},e}(wi);Ri.prototype.bytesPerElement=12,Dn("StructArrayLayout2ub2f12",Ri);var Fi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=3*t;return this.uint16[i+0]=e,this.uint16[i+1]=r,this.uint16[i+2]=n,t},e}(wi);Fi.prototype.bytesPerElement=6,Dn("StructArrayLayout3ui6",Fi);var Bi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g,m){var v=this.length;return this.resize(v+1),this.emplace(v,t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g,m)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g,m,v){var y=24*t,x=12*t,b=48*t;return this.int16[y+0]=e,this.int16[y+1]=r,this.uint16[y+2]=n,this.uint16[y+3]=i,this.uint32[x+2]=a,this.uint32[x+3]=o,this.uint32[x+4]=s,this.uint16[y+10]=l,this.uint16[y+11]=c,this.uint16[y+12]=u,this.float32[x+7]=f,this.float32[x+8]=h,this.uint8[b+36]=p,this.uint8[b+37]=d,this.uint8[b+38]=g,this.uint32[x+10]=m,this.int16[y+22]=v,t},e}(wi);Bi.prototype.bytesPerElement=48,Dn("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",Bi);var Ni=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g,m,v,y,x,b,_,w,T,k,M,A,S){var E=this.length;return this.resize(E+1),this.emplace(E,t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g,m,v,y,x,b,_,w,T,k,M,A,S)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g,m,v,y,x,b,_,w,T,k,M,A,S,E){var C=34*t,L=17*t;return this.int16[C+0]=e,this.int16[C+1]=r,this.int16[C+2]=n,this.int16[C+3]=i,this.int16[C+4]=a,this.int16[C+5]=o,this.int16[C+6]=s,this.int16[C+7]=l,this.uint16[C+8]=c,this.uint16[C+9]=u,this.uint16[C+10]=f,this.uint16[C+11]=h,this.uint16[C+12]=p,this.uint16[C+13]=d,this.uint16[C+14]=g,this.uint16[C+15]=m,this.uint16[C+16]=v,this.uint16[C+17]=y,this.uint16[C+18]=x,this.uint16[C+19]=b,this.uint16[C+20]=_,this.uint16[C+21]=w,this.uint16[C+22]=T,this.uint32[L+12]=k,this.float32[L+13]=M,this.float32[L+14]=A,this.float32[L+15]=S,this.float32[L+16]=E,t},e}(wi);Ni.prototype.bytesPerElement=68,Dn("StructArrayLayout8i15ui1ul4f68",Ni);var ji=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t){var e=this.length;return this.resize(e+1),this.emplace(e,t)},e.prototype.emplace=function(t,e){return this.float32[1*t+0]=e,t},e}(wi);ji.prototype.bytesPerElement=4,Dn("StructArrayLayout1f4",ji);var Ui=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=3*t;return this.int16[i+0]=e,this.int16[i+1]=r,this.int16[i+2]=n,t},e}(wi);Ui.prototype.bytesPerElement=6,Dn("StructArrayLayout3i6",Ui);var Vi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=4*t;return this.uint32[2*t+0]=e,this.uint16[i+2]=r,this.uint16[i+3]=n,t},e}(wi);Vi.prototype.bytesPerElement=8,Dn("StructArrayLayout1ul2ui8",Vi);var qi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;return this.resize(r+1),this.emplace(r,t,e)},e.prototype.emplace=function(t,e,r){var n=2*t;return this.uint16[n+0]=e,this.uint16[n+1]=r,t},e}(wi);qi.prototype.bytesPerElement=4,Dn("StructArrayLayout2ui4",qi);var Hi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t){var e=this.length;return this.resize(e+1),this.emplace(e,t)},e.prototype.emplace=function(t,e){return this.uint16[1*t+0]=e,t},e}(wi);Hi.prototype.bytesPerElement=2,Dn("StructArrayLayout1ui2",Hi);var Gi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;return this.resize(r+1),this.emplace(r,t,e)},e.prototype.emplace=function(t,e,r){var n=2*t;return this.float32[n+0]=e,this.float32[n+1]=r,t},e}(wi);Gi.prototype.bytesPerElement=8,Dn("StructArrayLayout2f8",Gi);var Yi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n){var i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)},e.prototype.emplace=function(t,e,r,n,i){var a=4*t;return this.float32[a+0]=e,this.float32[a+1]=r,this.float32[a+2]=n,this.float32[a+3]=i,t},e}(wi);Yi.prototype.bytesPerElement=16,Dn("StructArrayLayout4f16",Yi);var Wi=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e;var r={anchorPointX:{configurable:!0},anchorPointY:{configurable:!0},x1:{configurable:!0},y1:{configurable:!0},x2:{configurable:!0},y2:{configurable:!0},featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0},anchorPoint:{configurable:!0}};return r.anchorPointX.get=function(){return this._structArray.int16[this._pos2+0]},r.anchorPointY.get=function(){return this._structArray.int16[this._pos2+1]},r.x1.get=function(){return this._structArray.int16[this._pos2+2]},r.y1.get=function(){return this._structArray.int16[this._pos2+3]},r.x2.get=function(){return this._structArray.int16[this._pos2+4]},r.y2.get=function(){return this._structArray.int16[this._pos2+5]},r.featureIndex.get=function(){return this._structArray.uint32[this._pos4+3]},r.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+8]},r.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+9]},r.anchorPoint.get=function(){return new i(this.anchorPointX,this.anchorPointY)},Object.defineProperties(e.prototype,r),e}(_i);Wi.prototype.size=20;var Xi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.get=function(t){return new Wi(this,t)},e}(zi);Dn("CollisionBoxArray",Xi);var Zi=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e;var r={anchorX:{configurable:!0},anchorY:{configurable:!0},glyphStartIndex:{configurable:!0},numGlyphs:{configurable:!0},vertexStartIndex:{configurable:!0},lineStartIndex:{configurable:!0},lineLength:{configurable:!0},segment:{configurable:!0},lowerSize:{configurable:!0},upperSize:{configurable:!0},lineOffsetX:{configurable:!0},lineOffsetY:{configurable:!0},writingMode:{configurable:!0},placedOrientation:{configurable:!0},hidden:{configurable:!0},crossTileID:{configurable:!0},associatedIconIndex:{configurable:!0}};return r.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},r.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},r.glyphStartIndex.get=function(){return this._structArray.uint16[this._pos2+2]},r.numGlyphs.get=function(){return this._structArray.uint16[this._pos2+3]},r.vertexStartIndex.get=function(){return this._structArray.uint32[this._pos4+2]},r.lineStartIndex.get=function(){return this._structArray.uint32[this._pos4+3]},r.lineLength.get=function(){return this._structArray.uint32[this._pos4+4]},r.segment.get=function(){return this._structArray.uint16[this._pos2+10]},r.lowerSize.get=function(){return this._structArray.uint16[this._pos2+11]},r.upperSize.get=function(){return this._structArray.uint16[this._pos2+12]},r.lineOffsetX.get=function(){return this._structArray.float32[this._pos4+7]},r.lineOffsetY.get=function(){return this._structArray.float32[this._pos4+8]},r.writingMode.get=function(){return this._structArray.uint8[this._pos1+36]},r.placedOrientation.get=function(){return this._structArray.uint8[this._pos1+37]},r.placedOrientation.set=function(t){this._structArray.uint8[this._pos1+37]=t},r.hidden.get=function(){return this._structArray.uint8[this._pos1+38]},r.hidden.set=function(t){this._structArray.uint8[this._pos1+38]=t},r.crossTileID.get=function(){return this._structArray.uint32[this._pos4+10]},r.crossTileID.set=function(t){this._structArray.uint32[this._pos4+10]=t},r.associatedIconIndex.get=function(){return this._structArray.int16[this._pos2+22]},Object.defineProperties(e.prototype,r),e}(_i);Zi.prototype.size=48;var Ji=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.get=function(t){return new Zi(this,t)},e}(Bi);Dn("PlacedSymbolArray",Ji);var Ki=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e;var r={anchorX:{configurable:!0},anchorY:{configurable:!0},rightJustifiedTextSymbolIndex:{configurable:!0},centerJustifiedTextSymbolIndex:{configurable:!0},leftJustifiedTextSymbolIndex:{configurable:!0},verticalPlacedTextSymbolIndex:{configurable:!0},placedIconSymbolIndex:{configurable:!0},verticalPlacedIconSymbolIndex:{configurable:!0},key:{configurable:!0},textBoxStartIndex:{configurable:!0},textBoxEndIndex:{configurable:!0},verticalTextBoxStartIndex:{configurable:!0},verticalTextBoxEndIndex:{configurable:!0},iconBoxStartIndex:{configurable:!0},iconBoxEndIndex:{configurable:!0},verticalIconBoxStartIndex:{configurable:!0},verticalIconBoxEndIndex:{configurable:!0},featureIndex:{configurable:!0},numHorizontalGlyphVertices:{configurable:!0},numVerticalGlyphVertices:{configurable:!0},numIconVertices:{configurable:!0},numVerticalIconVertices:{configurable:!0},useRuntimeCollisionCircles:{configurable:!0},crossTileID:{configurable:!0},textBoxScale:{configurable:!0},textOffset0:{configurable:!0},textOffset1:{configurable:!0},collisionCircleDiameter:{configurable:!0}};return r.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},r.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},r.rightJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+2]},r.centerJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+3]},r.leftJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+4]},r.verticalPlacedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+5]},r.placedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+6]},r.verticalPlacedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+7]},r.key.get=function(){return this._structArray.uint16[this._pos2+8]},r.textBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+9]},r.textBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+10]},r.verticalTextBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+11]},r.verticalTextBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+12]},r.iconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+13]},r.iconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+14]},r.verticalIconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+15]},r.verticalIconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+16]},r.featureIndex.get=function(){return this._structArray.uint16[this._pos2+17]},r.numHorizontalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+18]},r.numVerticalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+19]},r.numIconVertices.get=function(){return this._structArray.uint16[this._pos2+20]},r.numVerticalIconVertices.get=function(){return this._structArray.uint16[this._pos2+21]},r.useRuntimeCollisionCircles.get=function(){return this._structArray.uint16[this._pos2+22]},r.crossTileID.get=function(){return this._structArray.uint32[this._pos4+12]},r.crossTileID.set=function(t){this._structArray.uint32[this._pos4+12]=t},r.textBoxScale.get=function(){return this._structArray.float32[this._pos4+13]},r.textOffset0.get=function(){return this._structArray.float32[this._pos4+14]},r.textOffset1.get=function(){return this._structArray.float32[this._pos4+15]},r.collisionCircleDiameter.get=function(){return this._structArray.float32[this._pos4+16]},Object.defineProperties(e.prototype,r),e}(_i);Ki.prototype.size=68;var Qi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.get=function(t){return new Ki(this,t)},e}(Ni);Dn("SymbolInstanceArray",Qi);var $i=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getoffsetX=function(t){return this.float32[1*t+0]},e}(ji);Dn("GlyphOffsetArray",$i);var ta=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getx=function(t){return this.int16[3*t+0]},e.prototype.gety=function(t){return this.int16[3*t+1]},e.prototype.gettileUnitDistanceFromAnchor=function(t){return this.int16[3*t+2]},e}(Ui);Dn("SymbolLineVertexArray",ta);var ea=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e;var r={featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0}};return r.featureIndex.get=function(){return this._structArray.uint32[this._pos4+0]},r.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+2]},r.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+3]},Object.defineProperties(e.prototype,r),e}(_i);ea.prototype.size=8;var ra=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.get=function(t){return new ea(this,t)},e}(Vi);Dn("FeatureIndexArray",ra);var na=Ti([{name:"a_pos",components:2,type:"Int16"}],4).members,ia=function(t){void 0===t&&(t=[]),this.segments=t};function aa(t,e){return 256*(t=l(Math.floor(t),0,255))+l(Math.floor(e),0,255)}ia.prototype.prepareSegment=function(t,e,r,n){var i=this.segments[this.segments.length-1];return t>ia.MAX_VERTEX_ARRAY_LENGTH&&_("Max vertices per segment is "+ia.MAX_VERTEX_ARRAY_LENGTH+": bucket requested "+t),(!i||i.vertexLength+t>ia.MAX_VERTEX_ARRAY_LENGTH||i.sortKey!==n)&&(i={vertexOffset:e.length,primitiveOffset:r.length,vertexLength:0,primitiveLength:0},void 0!==n&&(i.sortKey=n),this.segments.push(i)),i},ia.prototype.get=function(){return this.segments},ia.prototype.destroy=function(){for(var t=0,e=this.segments;t>>16)*o&65535)<<16)&4294967295)<<15|l>>>17))*s+(((l>>>16)*s&65535)<<16)&4294967295)<<13|i>>>19))+((5*(i>>>16)&65535)<<16)&4294967295))+((58964+(a>>>16)&65535)<<16);switch(l=0,r){case 3:l^=(255&t.charCodeAt(c+2))<<16;case 2:l^=(255&t.charCodeAt(c+1))<<8;case 1:i^=l=(65535&(l=(l=(65535&(l^=255&t.charCodeAt(c)))*o+(((l>>>16)*o&65535)<<16)&4294967295)<<15|l>>>17))*s+(((l>>>16)*s&65535)<<16)&4294967295}return i^=t.length,i=2246822507*(65535&(i^=i>>>16))+((2246822507*(i>>>16)&65535)<<16)&4294967295,i=3266489909*(65535&(i^=i>>>13))+((3266489909*(i>>>16)&65535)<<16)&4294967295,(i^=i>>>16)>>>0}})),la=e((function(t){t.exports=function(t,e){for(var r,n=t.length,i=e^n,a=0;n>=4;)r=1540483477*(65535&(r=255&t.charCodeAt(a)|(255&t.charCodeAt(++a))<<8|(255&t.charCodeAt(++a))<<16|(255&t.charCodeAt(++a))<<24))+((1540483477*(r>>>16)&65535)<<16),i=1540483477*(65535&i)+((1540483477*(i>>>16)&65535)<<16)^(r=1540483477*(65535&(r^=r>>>24))+((1540483477*(r>>>16)&65535)<<16)),n-=4,++a;switch(n){case 3:i^=(255&t.charCodeAt(a+2))<<16;case 2:i^=(255&t.charCodeAt(a+1))<<8;case 1:i=1540483477*(65535&(i^=255&t.charCodeAt(a)))+((1540483477*(i>>>16)&65535)<<16)}return i=1540483477*(65535&(i^=i>>>13))+((1540483477*(i>>>16)&65535)<<16),(i^=i>>>15)>>>0}})),ca=sa,ua=la;ca.murmur3=sa,ca.murmur2=ua;var fa=function(){this.ids=[],this.positions=[],this.indexed=!1};fa.prototype.add=function(t,e,r,n){this.ids.push(pa(t)),this.positions.push(e,r,n)},fa.prototype.getPositions=function(t){for(var e=pa(t),r=0,n=this.ids.length-1;r>1;this.ids[i]>=e?n=i:r=i+1}for(var a=[];this.ids[r]===e;)a.push({index:this.positions[3*r],start:this.positions[3*r+1],end:this.positions[3*r+2]}),r++;return a},fa.serialize=function(t,e){var r=new Float64Array(t.ids),n=new Uint32Array(t.positions);return function t(e,r,n,i){for(;n>1],o=n-1,s=i+1;;){do{o++}while(e[o]a);if(o>=s)break;da(e,o,s),da(r,3*o,3*s),da(r,3*o+1,3*s+1),da(r,3*o+2,3*s+2)}s-nOa.max||o.yOa.max)&&(_("Geometry exceeds allowed extent, reduce your vector tile buffer size"),o.x=l(o.x,Oa.min,Oa.max),o.y=l(o.y,Oa.min,Oa.max))}return r}function Ra(t,e,r,n,i){t.emplaceBack(2*e+(n+1)/2,2*r+(i+1)/2)}var Fa=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((function(t){return t.id})),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new Mi,this.indexArray=new Fi,this.segments=new ia,this.programConfigurations=new Ia(na,t.layers,t.zoom),this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id}))};function Ba(t,e){for(var r=0;r1){if(Va(t,e))return!0;for(var n=0;n1?r:r.sub(e)._mult(i)._add(e))}function Ya(t,e){for(var r,n,i,a=!1,o=0;oe.y!=(i=r[l]).y>e.y&&e.x<(i.x-n.x)*(e.y-n.y)/(i.y-n.y)+n.x&&(a=!a);return a}function Wa(t,e){for(var r=!1,n=0,i=t.length-1;ne.y!=o.y>e.y&&e.x<(o.x-a.x)*(e.y-a.y)/(o.y-a.y)+a.x&&(r=!r)}return r}function Xa(t,e,r){var n=r[0],i=r[2];if(t.xi.x&&e.x>i.x||t.yi.y&&e.y>i.y)return!1;var a=w(t,e,r[0]);return a!==w(t,e,r[1])||a!==w(t,e,r[2])||a!==w(t,e,r[3])}function Za(t,e,r){var n=e.paint.get(t).value;return"constant"===n.kind?n.value:r.programConfigurations.get(e.id).getMaxValue(t)}function Ja(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function Ka(t,e,r,n,a){if(!e[0]&&!e[1])return t;var o=i.convert(e)._mult(a);"viewport"===r&&o._rotate(-n);for(var s=[],l=0;l=8192||u<0||u>=8192)){var f=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,t.sortKey),h=f.vertexLength;Ra(this.layoutVertexArray,c,u,-1,-1),Ra(this.layoutVertexArray,c,u,1,-1),Ra(this.layoutVertexArray,c,u,1,1),Ra(this.layoutVertexArray,c,u,-1,1),this.indexArray.emplaceBack(h,h+1,h+2),this.indexArray.emplaceBack(h,h+3,h+2),f.vertexLength+=4,f.primitiveLength+=2}}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,{},n)},Dn("CircleBucket",Fa,{omit:["layers"]});var Qa=new yi({"circle-sort-key":new di(At.layout_circle["circle-sort-key"])}),$a={paint:new yi({"circle-radius":new di(At.paint_circle["circle-radius"]),"circle-color":new di(At.paint_circle["circle-color"]),"circle-blur":new di(At.paint_circle["circle-blur"]),"circle-opacity":new di(At.paint_circle["circle-opacity"]),"circle-translate":new pi(At.paint_circle["circle-translate"]),"circle-translate-anchor":new pi(At.paint_circle["circle-translate-anchor"]),"circle-pitch-scale":new pi(At.paint_circle["circle-pitch-scale"]),"circle-pitch-alignment":new pi(At.paint_circle["circle-pitch-alignment"]),"circle-stroke-width":new di(At.paint_circle["circle-stroke-width"]),"circle-stroke-color":new di(At.paint_circle["circle-stroke-color"]),"circle-stroke-opacity":new di(At.paint_circle["circle-stroke-opacity"])}),layout:Qa},to="undefined"!=typeof Float32Array?Float32Array:Array;function eo(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function ro(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=e[5],c=e[6],u=e[7],f=e[8],h=e[9],p=e[10],d=e[11],g=e[12],m=e[13],v=e[14],y=e[15],x=r[0],b=r[1],_=r[2],w=r[3];return t[0]=x*n+b*s+_*f+w*g,t[1]=x*i+b*l+_*h+w*m,t[2]=x*a+b*c+_*p+w*v,t[3]=x*o+b*u+_*d+w*y,t[4]=(x=r[4])*n+(b=r[5])*s+(_=r[6])*f+(w=r[7])*g,t[5]=x*i+b*l+_*h+w*m,t[6]=x*a+b*c+_*p+w*v,t[7]=x*o+b*u+_*d+w*y,t[8]=(x=r[8])*n+(b=r[9])*s+(_=r[10])*f+(w=r[11])*g,t[9]=x*i+b*l+_*h+w*m,t[10]=x*a+b*c+_*p+w*v,t[11]=x*o+b*u+_*d+w*y,t[12]=(x=r[12])*n+(b=r[13])*s+(_=r[14])*f+(w=r[15])*g,t[13]=x*i+b*l+_*h+w*m,t[14]=x*a+b*c+_*p+w*v,t[15]=x*o+b*u+_*d+w*y,t}Math.hypot||(Math.hypot=function(){for(var t=arguments,e=0,r=arguments.length;r--;)e+=t[r]*t[r];return Math.sqrt(e)});var no,io=ro;function ao(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3];return t[0]=r[0]*n+r[4]*i+r[8]*a+r[12]*o,t[1]=r[1]*n+r[5]*i+r[9]*a+r[13]*o,t[2]=r[2]*n+r[6]*i+r[10]*a+r[14]*o,t[3]=r[3]*n+r[7]*i+r[11]*a+r[15]*o,t}no=new to(3),to!=Float32Array&&(no[0]=0,no[1]=0,no[2]=0),function(){var t=new to(4);to!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0)}();var oo=(function(){var t=new to(2);to!=Float32Array&&(t[0]=0,t[1]=0)}(),function(t){function e(e){t.call(this,e,$a)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.createBucket=function(t){return new Fa(t)},e.prototype.queryRadius=function(t){var e=t;return Za("circle-radius",this,e)+Za("circle-stroke-width",this,e)+Ja(this.paint.get("circle-translate"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,a,o,s){for(var l=Ka(t,this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),a.angle,o),c=this.paint.get("circle-radius").evaluate(e,r)+this.paint.get("circle-stroke-width").evaluate(e,r),u="map"===this.paint.get("circle-pitch-alignment"),f=u?l:function(t,e){return t.map((function(t){return so(t,e)}))}(l,s),h=u?c*o:c,p=0,d=n;pt.width||i.height>t.height||r.x>t.width-i.width||r.y>t.height-i.height)throw new RangeError("out of range source coordinates for image copy");if(i.width>e.width||i.height>e.height||n.x>e.width-i.width||n.y>e.height-i.height)throw new RangeError("out of range destination coordinates for image copy");for(var o=t.data,s=e.data,l=0;l80*r){n=a=t[0],i=o=t[1];for(var d=r;da&&(a=s),l>o&&(o=l);c=0!==(c=Math.max(a-n,o-i))?1/c:0}return Ao(h,p,r,n,i,c),p}function ko(t,e,r,n,i){var a,o;if(i===Xo(t,e,r,n)>0)for(a=e;a=e;a-=n)o=Go(a,t[a],t[a+1],o);return o&&No(o,o.next)&&(Yo(o),o=o.next),o}function Mo(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!No(n,n.next)&&0!==Bo(n.prev,n,n.next))n=n.next;else{if(Yo(n),(n=e=n.prev)===n.next)break;r=!0}}while(r||n!==e);return e}function Ao(t,e,r,n,i,a,o){if(t){!o&&a&&function(t,e,r,n){var i=t;do{null===i.z&&(i.z=Oo(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,r,n,i,a,o,s,l,c=1;do{for(r=t,t=null,a=null,o=0;r;){for(o++,n=r,s=0,e=0;e0||l>0&&n;)0!==s&&(0===l||!n||r.z<=n.z)?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,l--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;r=n}a.nextZ=null,c*=2}while(o>1)}(i)}(t,n,i,a);for(var s,l,c=t;t.prev!==t.next;)if(s=t.prev,l=t.next,a?Eo(t,n,i,a):So(t))e.push(s.i/r),e.push(t.i/r),e.push(l.i/r),Yo(t),t=l.next,c=l.next;else if((t=l)===c){o?1===o?Ao(t=Co(Mo(t),e,r),e,r,n,i,a,2):2===o&&Lo(t,e,r,n,i,a):Ao(Mo(t),e,r,n,i,a,1);break}}}function So(t){var e=t.prev,r=t,n=t.next;if(Bo(e,r,n)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(Ro(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&Bo(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function Eo(t,e,r,n){var i=t.prev,a=t,o=t.next;if(Bo(i,a,o)>=0)return!1;for(var s=i.x>a.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,l=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,c=Oo(i.x=c&&h&&h.z<=u;){if(f!==t.prev&&f!==t.next&&Ro(i.x,i.y,a.x,a.y,o.x,o.y,f.x,f.y)&&Bo(f.prev,f,f.next)>=0)return!1;if(f=f.prevZ,h!==t.prev&&h!==t.next&&Ro(i.x,i.y,a.x,a.y,o.x,o.y,h.x,h.y)&&Bo(h.prev,h,h.next)>=0)return!1;h=h.nextZ}for(;f&&f.z>=c;){if(f!==t.prev&&f!==t.next&&Ro(i.x,i.y,a.x,a.y,o.x,o.y,f.x,f.y)&&Bo(f.prev,f,f.next)>=0)return!1;f=f.prevZ}for(;h&&h.z<=u;){if(h!==t.prev&&h!==t.next&&Ro(i.x,i.y,a.x,a.y,o.x,o.y,h.x,h.y)&&Bo(h.prev,h,h.next)>=0)return!1;h=h.nextZ}return!0}function Co(t,e,r){var n=t;do{var i=n.prev,a=n.next.next;!No(i,a)&&jo(i,n,n.next,a)&&qo(i,a)&&qo(a,i)&&(e.push(i.i/r),e.push(n.i/r),e.push(a.i/r),Yo(n),Yo(n.next),n=t=a),n=n.next}while(n!==t);return Mo(n)}function Lo(t,e,r,n,i,a){var o=t;do{for(var s=o.next.next;s!==o.prev;){if(o.i!==s.i&&Fo(o,s)){var l=Ho(o,s);return o=Mo(o,o.next),l=Mo(l,l.next),Ao(o,e,r,n,i,a),void Ao(l,e,r,n,i,a)}s=s.next}o=o.next}while(o!==t)}function Io(t,e){return t.x-e.x}function Po(t,e){if(e=function(t,e){var r,n=e,i=t.x,a=t.y,o=-1/0;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){var s=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=i&&s>o){if(o=s,s===i){if(a===n.y)return n;if(a===n.next.y)return n.next}r=n.x=n.x&&n.x>=u&&i!==n.x&&Ro(ar.x||n.x===r.x&&zo(r,n)))&&(r=n,h=l)),n=n.next}while(n!==c);return r}(t,e)){var r=Ho(e,t);Mo(e,e.next),Mo(r,r.next)}}function zo(t,e){return Bo(t.prev,t,e.prev)<0&&Bo(e.next,t,t.next)<0}function Oo(t,e,r,n,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Do(t){var e=t,r=t;do{(e.x=0&&(t-o)*(n-s)-(r-o)*(e-s)>=0&&(r-o)*(a-s)-(i-o)*(n-s)>=0}function Fo(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&jo(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}(t,e)&&(qo(t,e)&&qo(e,t)&&function(t,e){var r=t,n=!1,i=(t.x+e.x)/2,a=(t.y+e.y)/2;do{r.y>a!=r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==t);return n}(t,e)&&(Bo(t.prev,t,e.prev)||Bo(t,e.prev,e))||No(t,e)&&Bo(t.prev,t,t.next)>0&&Bo(e.prev,e,e.next)>0)}function Bo(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function No(t,e){return t.x===e.x&&t.y===e.y}function jo(t,e,r,n){var i=Vo(Bo(t,e,r)),a=Vo(Bo(t,e,n)),o=Vo(Bo(r,n,t)),s=Vo(Bo(r,n,e));return i!==a&&o!==s||!(0!==i||!Uo(t,r,e))||!(0!==a||!Uo(t,n,e))||!(0!==o||!Uo(r,t,n))||!(0!==s||!Uo(r,e,n))}function Uo(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function Vo(t){return t>0?1:t<0?-1:0}function qo(t,e){return Bo(t.prev,t,t.next)<0?Bo(t,e,t.next)>=0&&Bo(t,t.prev,e)>=0:Bo(t,e,t.prev)<0||Bo(t,t.next,e)<0}function Ho(t,e){var r=new Wo(t.i,t.x,t.y),n=new Wo(e.i,e.x,e.y),i=t.next,a=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function Go(t,e,r,n){var i=new Wo(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function Yo(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Wo(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Xo(t,e,r,n){for(var i=0,a=e,o=r-n;an;){if(i-n>600){var o=i-n+1,s=r-n+1,l=Math.log(o),c=.5*Math.exp(2*l/3),u=.5*Math.sqrt(l*c*(o-c)/o)*(s-o/2<0?-1:1);t(e,r,Math.max(n,Math.floor(r-s*c/o+u)),Math.min(i,Math.floor(r+(o-s)*c/o+u)),a)}var f=e[r],h=n,p=i;for(Jo(e,n,r),a(e[i],f)>0&&Jo(e,n,i);h0;)p--}0===a(e[n],f)?Jo(e,n,p):Jo(e,++p,i),p<=r&&(n=p+1),r<=p&&(i=p-1)}}(t,e,r||0,n||t.length-1,i||Ko)}function Jo(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function Ko(t,e){return te?1:0}function Qo(t,e){var r=t.length;if(r<=1)return[t];for(var n,i,a=[],o=0;o1)for(var l=0;l0&&r.holes.push(n+=t[i-1].length)}return r},_o.default=wo;var rs=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((function(t){return t.id})),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new Mi,this.indexArray=new Fi,this.indexArray2=new qi,this.programConfigurations=new Ia(bo,t.layers,t.zoom),this.segments=new ia,this.segments2=new ia,this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id}))};rs.prototype.populate=function(t,e,r){this.hasPattern=ts("fill",this.layers,e);for(var n=this.layers[0].layout.get("fill-sort-key"),i=[],a=0,o=t;a>3}if(a--,1===n||2===n)o+=t.readSVarint(),s+=t.readSVarint(),1===n&&(e&&l.push(e),e=[]),e.push(new i(o,s));else{if(7!==n)throw new Error("unknown command "+n);e&&e.push(e[0].clone())}}return e&&l.push(e),l},ls.prototype.bbox=function(){var t=this._pbf;t.pos=this._geometry;for(var e=t.readVarint()+t.pos,r=1,n=0,i=0,a=0,o=1/0,s=-1/0,l=1/0,c=-1/0;t.pos>3}if(n--,1===r||2===r)(i+=t.readSVarint())s&&(s=i),(a+=t.readSVarint())c&&(c=a);else if(7!==r)throw new Error("unknown command "+r)}return[o,l,s,c]},ls.prototype.toGeoJSON=function(t,e,r){var n,i,a=this.extent*Math.pow(2,r),o=this.extent*t,s=this.extent*e,l=this.loadGeometry(),c=ls.types[this.type];function u(t){for(var e=0;e>3;e=1===n?t.readString():2===n?t.readFloat():3===n?t.readDouble():4===n?t.readVarint64():5===n?t.readVarint():6===n?t.readSVarint():7===n?t.readBoolean():null}return e}(r))}function ds(t,e,r){if(3===t){var n=new fs(r,r.readVarint()+r.pos);n.length&&(e[n.name]=n)}}hs.prototype.feature=function(t){if(t<0||t>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];var e=this._pbf.readVarint()+this._pbf.pos;return new ss(this._pbf,e,this.extent,this._keys,this._values)};var gs={VectorTile:function(t,e){this.layers=t.readFields(ds,{},e)},VectorTileFeature:ss,VectorTileLayer:fs},ms=gs.VectorTileFeature.types,vs=Math.pow(2,13);function ys(t,e,r,n,i,a,o,s){t.emplaceBack(e,r,2*Math.floor(n*vs)+o,i*vs*2,a*vs*2,Math.round(s))}var xs=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((function(t){return t.id})),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new Si,this.indexArray=new Fi,this.programConfigurations=new Ia(os,t.layers,t.zoom),this.segments=new ia,this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id}))};function bs(t,e){return t.x===e.x&&(t.x<0||t.x>8192)||t.y===e.y&&(t.y<0||t.y>8192)}xs.prototype.populate=function(t,e,r){this.features=[],this.hasPattern=ts("fill-extrusion",this.layers,e);for(var n=0,i=t;n8192}))||P.every((function(t){return t.y<0}))||P.every((function(t){return t.y>8192}))))for(var g=0,m=0;m=1){var y=d[m-1];if(!bs(v,y)){f.vertexLength+4>ia.MAX_VERTEX_ARRAY_LENGTH&&(f=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));var x=v.sub(y)._perp()._unit(),b=y.dist(v);g+b>32768&&(g=0),ys(this.layoutVertexArray,v.x,v.y,x.x,x.y,0,0,g),ys(this.layoutVertexArray,v.x,v.y,x.x,x.y,0,1,g),ys(this.layoutVertexArray,y.x,y.y,x.x,x.y,0,0,g+=b),ys(this.layoutVertexArray,y.x,y.y,x.x,x.y,0,1,g);var _=f.vertexLength;this.indexArray.emplaceBack(_,_+2,_+1),this.indexArray.emplaceBack(_+1,_+2,_+3),f.vertexLength+=4,f.primitiveLength+=2}}}}if(f.vertexLength+l>ia.MAX_VERTEX_ARRAY_LENGTH&&(f=this.segments.prepareSegment(l,this.layoutVertexArray,this.indexArray)),"Polygon"===ms[t.type]){for(var w=[],T=[],k=f.vertexLength,M=0,A=s;M=2&&t[l-1].equals(t[l-2]);)l--;for(var c=0;c0;if(T&&v>c){var M=u.dist(p);if(M>2*f){var A=u.sub(u.sub(p)._mult(f/M)._round());this.updateDistance(p,A),this.addCurrentVertex(A,g,0,0,h),p=A}}var S=p&&d,E=S?r:s?"butt":n;if(S&&"round"===E&&(_i&&(E="bevel"),"bevel"===E&&(_>2&&(E="flipbevel"),_100)y=m.mult(-1);else{var C=_*g.add(m).mag()/g.sub(m).mag();y._perp()._mult(C*(k?-1:1))}this.addCurrentVertex(u,y,0,0,h),this.addCurrentVertex(u,y.mult(-1),0,0,h)}else if("bevel"===E||"fakeround"===E){var L=-Math.sqrt(_*_-1),I=k?L:0,P=k?0:L;if(p&&this.addCurrentVertex(u,g,I,P,h),"fakeround"===E)for(var z=Math.round(180*w/Math.PI/20),O=1;O2*f){var j=u.add(d.sub(u)._mult(f/N)._round());this.updateDistance(u,j),this.addCurrentVertex(j,m,0,0,h),u=j}}}}},Cs.prototype.addCurrentVertex=function(t,e,r,n,i,a){void 0===a&&(a=!1);var o=e.y*n-e.x,s=-e.y-e.x*n;this.addHalfVertex(t,e.x+e.y*r,e.y-e.x*r,a,!1,r,i),this.addHalfVertex(t,o,s,a,!0,-n,i),this.distance>Es/2&&0===this.totalDistance&&(this.distance=0,this.addCurrentVertex(t,e,r,n,i,a))},Cs.prototype.addHalfVertex=function(t,e,r,n,i,a,o){var s=.5*this.scaledDistance;this.layoutVertexArray.emplaceBack((t.x<<1)+(n?1:0),(t.y<<1)+(i?1:0),Math.round(63*e)+128,Math.round(63*r)+128,1+(0===a?0:a<0?-1:1)|(63&s)<<2,s>>6);var l=o.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,l),o.primitiveLength++),i?this.e2=l:this.e1=l},Cs.prototype.updateScaledDistance=function(){this.scaledDistance=this.totalDistance>0?(this.clipStart+(this.clipEnd-this.clipStart)*this.distance/this.totalDistance)*(Es-1):this.distance},Cs.prototype.updateDistance=function(t,e){this.distance+=t.dist(e),this.updateScaledDistance()},Dn("LineBucket",Cs,{omit:["layers","patternFeatures"]});var Ls=new yi({"line-cap":new pi(At.layout_line["line-cap"]),"line-join":new di(At.layout_line["line-join"]),"line-miter-limit":new pi(At.layout_line["line-miter-limit"]),"line-round-limit":new pi(At.layout_line["line-round-limit"]),"line-sort-key":new di(At.layout_line["line-sort-key"])}),Is={paint:new yi({"line-opacity":new di(At.paint_line["line-opacity"]),"line-color":new di(At.paint_line["line-color"]),"line-translate":new pi(At.paint_line["line-translate"]),"line-translate-anchor":new pi(At.paint_line["line-translate-anchor"]),"line-width":new di(At.paint_line["line-width"]),"line-gap-width":new di(At.paint_line["line-gap-width"]),"line-offset":new di(At.paint_line["line-offset"]),"line-blur":new di(At.paint_line["line-blur"]),"line-dasharray":new mi(At.paint_line["line-dasharray"]),"line-pattern":new gi(At.paint_line["line-pattern"]),"line-gradient":new vi(At.paint_line["line-gradient"])}),layout:Ls},Ps=new(function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.possiblyEvaluate=function(e,r){return r=new ii(Math.floor(r.zoom),{now:r.now,fadeDuration:r.fadeDuration,zoomHistory:r.zoomHistory,transition:r.transition}),t.prototype.possiblyEvaluate.call(this,e,r)},e.prototype.evaluate=function(e,r,n,i){return r=u({},r,{zoom:Math.floor(r.zoom)}),t.prototype.evaluate.call(this,e,r,n,i)},e}(di))(Is.paint.properties["line-width"].specification);Ps.useIntegerZoom=!0;var zs=function(t){function e(e){t.call(this,e,Is)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._handleSpecialPaintPropertyUpdate=function(t){"line-gradient"===t&&this._updateGradient()},e.prototype._updateGradient=function(){this.gradient=mo(this._transitionablePaint._values["line-gradient"].value.expression,"lineProgress"),this.gradientTexture=null},e.prototype.recalculate=function(e,r){t.prototype.recalculate.call(this,e,r),this.paint._values["line-floorwidth"]=Ps.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,e)},e.prototype.createBucket=function(t){return new Cs(t)},e.prototype.queryRadius=function(t){var e=t,r=Os(Za("line-width",this,e),Za("line-gap-width",this,e)),n=Za("line-offset",this,e);return r/2+Math.abs(n)+Ja(this.paint.get("line-translate"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,a,o,s){var l=Ka(t,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),o.angle,s),c=s/2*Os(this.paint.get("line-width").evaluate(e,r),this.paint.get("line-gap-width").evaluate(e,r)),u=this.paint.get("line-offset").evaluate(e,r);return u&&(n=function(t,e){for(var r=[],n=new i(0,0),a=0;a=3)for(var a=0;a0?e+2*t:t}var Ds=Ti([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),Rs=Ti([{name:"a_projected_pos",components:3,type:"Float32"}],4),Fs=(Ti([{name:"a_fade_opacity",components:1,type:"Uint32"}],4),Ti([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}])),Bs=(Ti([{type:"Int16",name:"anchorPointX"},{type:"Int16",name:"anchorPointY"},{type:"Int16",name:"x1"},{type:"Int16",name:"y1"},{type:"Int16",name:"x2"},{type:"Int16",name:"y2"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]),Ti([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4)),Ns=Ti([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function js(t,e,r){return t.sections.forEach((function(t){t.text=function(t,e,r){var n=e.layout.get("text-transform").evaluate(r,{});return"uppercase"===n?t=t.toLocaleUpperCase():"lowercase"===n&&(t=t.toLocaleLowerCase()),ni.applyArabicShaping&&(t=ni.applyArabicShaping(t)),t}(t.text,e,r)})),t}Ti([{name:"triangle",components:3,type:"Uint16"}]),Ti([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Uint16",name:"glyphStartIndex"},{type:"Uint16",name:"numGlyphs"},{type:"Uint32",name:"vertexStartIndex"},{type:"Uint32",name:"lineStartIndex"},{type:"Uint32",name:"lineLength"},{type:"Uint16",name:"segment"},{type:"Uint16",name:"lowerSize"},{type:"Uint16",name:"upperSize"},{type:"Float32",name:"lineOffsetX"},{type:"Float32",name:"lineOffsetY"},{type:"Uint8",name:"writingMode"},{type:"Uint8",name:"placedOrientation"},{type:"Uint8",name:"hidden"},{type:"Uint32",name:"crossTileID"},{type:"Int16",name:"associatedIconIndex"}]),Ti([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Int16",name:"rightJustifiedTextSymbolIndex"},{type:"Int16",name:"centerJustifiedTextSymbolIndex"},{type:"Int16",name:"leftJustifiedTextSymbolIndex"},{type:"Int16",name:"verticalPlacedTextSymbolIndex"},{type:"Int16",name:"placedIconSymbolIndex"},{type:"Int16",name:"verticalPlacedIconSymbolIndex"},{type:"Uint16",name:"key"},{type:"Uint16",name:"textBoxStartIndex"},{type:"Uint16",name:"textBoxEndIndex"},{type:"Uint16",name:"verticalTextBoxStartIndex"},{type:"Uint16",name:"verticalTextBoxEndIndex"},{type:"Uint16",name:"iconBoxStartIndex"},{type:"Uint16",name:"iconBoxEndIndex"},{type:"Uint16",name:"verticalIconBoxStartIndex"},{type:"Uint16",name:"verticalIconBoxEndIndex"},{type:"Uint16",name:"featureIndex"},{type:"Uint16",name:"numHorizontalGlyphVertices"},{type:"Uint16",name:"numVerticalGlyphVertices"},{type:"Uint16",name:"numIconVertices"},{type:"Uint16",name:"numVerticalIconVertices"},{type:"Uint16",name:"useRuntimeCollisionCircles"},{type:"Uint32",name:"crossTileID"},{type:"Float32",name:"textBoxScale"},{type:"Float32",components:2,name:"textOffset"},{type:"Float32",name:"collisionCircleDiameter"}]),Ti([{type:"Float32",name:"offsetX"}]),Ti([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]);var Us={"!":"\ufe15","#":"\uff03",$:"\uff04","%":"\uff05","&":"\uff06","(":"\ufe35",")":"\ufe36","*":"\uff0a","+":"\uff0b",",":"\ufe10","-":"\ufe32",".":"\u30fb","/":"\uff0f",":":"\ufe13",";":"\ufe14","<":"\ufe3f","=":"\uff1d",">":"\ufe40","?":"\ufe16","@":"\uff20","[":"\ufe47","\\":"\uff3c","]":"\ufe48","^":"\uff3e",_:"\ufe33","`":"\uff40","{":"\ufe37","|":"\u2015","}":"\ufe38","~":"\uff5e","\xa2":"\uffe0","\xa3":"\uffe1","\xa5":"\uffe5","\xa6":"\uffe4","\xac":"\uffe2","\xaf":"\uffe3","\u2013":"\ufe32","\u2014":"\ufe31","\u2018":"\ufe43","\u2019":"\ufe44","\u201c":"\ufe41","\u201d":"\ufe42","\u2026":"\ufe19","\u2027":"\u30fb","\u20a9":"\uffe6","\u3001":"\ufe11","\u3002":"\ufe12","\u3008":"\ufe3f","\u3009":"\ufe40","\u300a":"\ufe3d","\u300b":"\ufe3e","\u300c":"\ufe41","\u300d":"\ufe42","\u300e":"\ufe43","\u300f":"\ufe44","\u3010":"\ufe3b","\u3011":"\ufe3c","\u3014":"\ufe39","\u3015":"\ufe3a","\u3016":"\ufe17","\u3017":"\ufe18","\uff01":"\ufe15","\uff08":"\ufe35","\uff09":"\ufe36","\uff0c":"\ufe10","\uff0d":"\ufe32","\uff0e":"\u30fb","\uff1a":"\ufe13","\uff1b":"\ufe14","\uff1c":"\ufe3f","\uff1e":"\ufe40","\uff1f":"\ufe16","\uff3b":"\ufe47","\uff3d":"\ufe48","\uff3f":"\ufe33","\uff5b":"\ufe37","\uff5c":"\u2015","\uff5d":"\ufe38","\uff5f":"\ufe35","\uff60":"\ufe36","\uff61":"\ufe12","\uff62":"\ufe41","\uff63":"\ufe42"},Vs=function(t,e,r,n,i){var a,o,s=8*i-n-1,l=(1<>1,u=-7,f=r?i-1:0,h=r?-1:1,p=t[e+f];for(f+=h,a=p&(1<<-u)-1,p>>=-u,u+=s;u>0;a=256*a+t[e+f],f+=h,u-=8);for(o=a&(1<<-u)-1,a>>=-u,u+=n;u>0;o=256*o+t[e+f],f+=h,u-=8);if(0===a)a=1-c;else{if(a===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),a-=c}return(p?-1:1)*o*Math.pow(2,a-n)},qs=function(t,e,r,n,i,a){var o,s,l,c=8*a-i-1,u=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,d=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=u):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+f>=1?h/l:h*Math.pow(2,1-f))*l>=2&&(o++,l/=2),o+f>=u?(s=0,o=u):o+f>=1?(s=(e*l-1)*Math.pow(2,i),o+=f):(s=e*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;t[r+p]=255&s,p+=d,s/=256,i-=8);for(o=o<0;t[r+p]=255&o,p+=d,o/=256,c-=8);t[r+p-d]|=128*g},Hs=Gs;function Gs(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}Gs.Varint=0,Gs.Fixed64=1,Gs.Bytes=2,Gs.Fixed32=5;var Ys="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function Ws(t){return t.type===Gs.Bytes?t.readVarint()+t.pos:t.pos+1}function Xs(t,e,r){return r?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function Zs(t,e,r){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));r.realloc(n);for(var i=r.pos-1;i>=t;i--)r.buf[i+n]=r.buf[i]}function Js(t,e){for(var r=0;r>>8,t[r+2]=e>>>16,t[r+3]=e>>>24}function sl(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}function ll(t,e,r){1===t&&r.readMessage(cl,e)}function cl(t,e,r){if(3===t){var n=r.readMessage(ul,{}),i=n.width,a=n.height,o=n.left,s=n.top,l=n.advance;e.push({id:n.id,bitmap:new ho({width:i+6,height:a+6},n.bitmap),metrics:{width:i,height:a,left:o,top:s,advance:l}})}}function ul(t,e,r){1===t?e.id=r.readVarint():2===t?e.bitmap=r.readBytes():3===t?e.width=r.readVarint():4===t?e.height=r.readVarint():5===t?e.left=r.readSVarint():6===t?e.top=r.readSVarint():7===t&&(e.advance=r.readVarint())}function fl(t){for(var e=0,r=0,n=0,i=t;n=0;h--){var p=o[h];if(!(f.w>p.w||f.h>p.h)){if(f.x=p.x,f.y=p.y,l=Math.max(l,f.y+f.h),s=Math.max(s,f.x+f.w),f.w===p.w&&f.h===p.h){var d=o.pop();h>3,a=this.pos;this.type=7&n,t(i,e,this),this.pos===a&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=al(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=sl(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=al(this.buf,this.pos)+4294967296*al(this.buf,this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=al(this.buf,this.pos)+4294967296*sl(this.buf,this.pos+4);return this.pos+=8,t},readFloat:function(){var t=Vs(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=Vs(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,r,n=this.buf;return e=127&(r=n[this.pos++]),r<128?e:(e|=(127&(r=n[this.pos++]))<<7,r<128?e:(e|=(127&(r=n[this.pos++]))<<14,r<128?e:(e|=(127&(r=n[this.pos++]))<<21,r<128?e:function(t,e,r){var n,i,a=r.buf;if(n=(112&(i=a[r.pos++]))>>4,i<128)return Xs(t,n,e);if(n|=(127&(i=a[r.pos++]))<<3,i<128)return Xs(t,n,e);if(n|=(127&(i=a[r.pos++]))<<10,i<128)return Xs(t,n,e);if(n|=(127&(i=a[r.pos++]))<<17,i<128)return Xs(t,n,e);if(n|=(127&(i=a[r.pos++]))<<24,i<128)return Xs(t,n,e);if(n|=(1&(i=a[r.pos++]))<<31,i<128)return Xs(t,n,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(r=n[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=12&&Ys?function(t,e,r){return Ys.decode(t.subarray(e,r))}(this.buf,e,t):function(t,e,r){for(var n="",i=e;i239?4:l>223?3:l>191?2:1;if(i+u>r)break;1===u?l<128&&(c=l):2===u?128==(192&(a=t[i+1]))&&(c=(31&l)<<6|63&a)<=127&&(c=null):3===u?(o=t[i+2],128==(192&(a=t[i+1]))&&128==(192&o)&&((c=(15&l)<<12|(63&a)<<6|63&o)<=2047||c>=55296&&c<=57343)&&(c=null)):4===u&&(o=t[i+2],s=t[i+3],128==(192&(a=t[i+1]))&&128==(192&o)&&128==(192&s)&&((c=(15&l)<<18|(63&a)<<12|(63&o)<<6|63&s)<=65535||c>=1114112)&&(c=null)),null===c?(c=65533,u=1):c>65535&&(c-=65536,n+=String.fromCharCode(c>>>10&1023|55296),c=56320|1023&c),n+=String.fromCharCode(c),i+=u}return n}(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==Gs.Bytes)return t.push(this.readVarint(e));var r=Ws(this);for(t=t||[];this.pos127;);else if(e===Gs.Bytes)this.pos=this.readVarint()+this.pos;else if(e===Gs.Fixed32)this.pos+=4;else{if(e!==Gs.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e268435455||t<0?function(t,e){var r,n;if(t>=0?(r=t%4294967296|0,n=t/4294967296|0):(n=~(-t/4294967296),4294967295^(r=~(-t%4294967296))?r=r+1|0:(r=0,n=n+1|0)),t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,r){r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,r.buf[r.pos]=127&(t>>>=7)}(r,0,e),function(t,e){var r=(7&t)<<4;e.buf[e.pos++]|=r|((t>>>=3)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t)))))}(n,e)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,r){for(var n,i,a=0;a55295&&n<57344){if(!i){n>56319||a+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):i=n;continue}if(n<56320){t[r++]=239,t[r++]=191,t[r++]=189,i=n;continue}n=i-55296<<10|n-56320|65536,i=null}else i&&(t[r++]=239,t[r++]=191,t[r++]=189,i=null);n<128?t[r++]=n:(n<2048?t[r++]=n>>6|192:(n<65536?t[r++]=n>>12|224:(t[r++]=n>>18|240,t[r++]=n>>12&63|128),t[r++]=n>>6&63|128),t[r++]=63&n|128)}return r}(this.buf,t,this.pos);var r=this.pos-e;r>=128&&Zs(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(t){this.realloc(4),qs(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),qs(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r=128&&Zs(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,r){this.writeTag(t,Gs.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,Js,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,Ks,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,tl,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,Qs,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,$s,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,el,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,rl,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,nl,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,il,e)},writeBytesField:function(t,e){this.writeTag(t,Gs.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,Gs.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,Gs.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,Gs.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,Gs.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,Gs.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,Gs.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,Gs.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,Gs.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,Gs.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}};var hl=function(t,e){var r=e.pixelRatio,n=e.version,i=e.stretchX,a=e.stretchY,o=e.content;this.paddedRect=t,this.pixelRatio=r,this.stretchX=i,this.stretchY=a,this.content=o,this.version=n},pl={tl:{configurable:!0},br:{configurable:!0},tlbr:{configurable:!0},displaySize:{configurable:!0}};pl.tl.get=function(){return[this.paddedRect.x+1,this.paddedRect.y+1]},pl.br.get=function(){return[this.paddedRect.x+this.paddedRect.w-1,this.paddedRect.y+this.paddedRect.h-1]},pl.tlbr.get=function(){return this.tl.concat(this.br)},pl.displaySize.get=function(){return[(this.paddedRect.w-2)/this.pixelRatio,(this.paddedRect.h-2)/this.pixelRatio]},Object.defineProperties(hl.prototype,pl);var dl=function(t,e){var r={},n={};this.haveRenderCallbacks=[];var i=[];this.addImages(t,r,i),this.addImages(e,n,i);var a=fl(i),o=new po({width:a.w||1,height:a.h||1});for(var s in t){var l=t[s],c=r[s].paddedRect;po.copy(l.data,o,{x:0,y:0},{x:c.x+1,y:c.y+1},l.data)}for(var u in e){var f=e[u],h=n[u].paddedRect,p=h.x+1,d=h.y+1,g=f.data.width,m=f.data.height;po.copy(f.data,o,{x:0,y:0},{x:p,y:d},f.data),po.copy(f.data,o,{x:0,y:m-1},{x:p,y:d-1},{width:g,height:1}),po.copy(f.data,o,{x:0,y:0},{x:p,y:d+m},{width:g,height:1}),po.copy(f.data,o,{x:g-1,y:0},{x:p-1,y:d},{width:1,height:m}),po.copy(f.data,o,{x:0,y:0},{x:p+g,y:d},{width:1,height:m})}this.image=o,this.iconPositions=r,this.patternPositions=n};dl.prototype.addImages=function(t,e,r){for(var n in t){var i=t[n],a={x:0,y:0,w:i.data.width+2,h:i.data.height+2};r.push(a),e[n]=new hl(a,i),i.hasRenderCallback&&this.haveRenderCallbacks.push(n)}},dl.prototype.patchUpdatedImages=function(t,e){for(var r in t.dispatchRenderCallbacks(this.haveRenderCallbacks),t.updatedImages)this.patchUpdatedImage(this.iconPositions[r],t.getImage(r),e),this.patchUpdatedImage(this.patternPositions[r],t.getImage(r),e)},dl.prototype.patchUpdatedImage=function(t,e,r){if(t&&e&&t.version!==e.version){t.version=e.version;var n=t.tl;r.update(e.data,void 0,{x:n[0],y:n[1]})}},Dn("ImagePosition",hl),Dn("ImageAtlas",dl);var gl={horizontal:1,vertical:2,horizontalOnly:3},ml=function(){this.scale=1,this.fontStack="",this.imageName=null};ml.forText=function(t,e){var r=new ml;return r.scale=t||1,r.fontStack=e,r},ml.forImage=function(t){var e=new ml;return e.imageName=t,e};var vl=function(){this.text="",this.sectionIndex=[],this.sections=[],this.imageSectionID=null};function yl(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g){var m,v=vl.fromFeature(t,i);f===gl.vertical&&v.verticalizePunctuation();var y=ni.processBidirectionalText,x=ni.processStyledBidirectionalText;if(y&&1===v.sections.length){m=[];for(var b=0,_=y(v.toString(),Ml(v,c,a,e,n,p,d));b<_.length;b+=1){var w=_[b],T=new vl;T.text=w,T.sections=v.sections;for(var k=0;k0&&B>M&&(M=B)}else{var N=r[S.fontStack],j=N&&N[C];if(j&&j.rect)P=j.rect,I=j.metrics;else{var U=e[S.fontStack],V=U&&U[C];if(!V)continue;I=V.metrics}L=24*(_-S.scale)}D?(t.verticalizable=!0,k.push({glyph:C,imageName:z,x:h,y:p+L,vertical:D,scale:S.scale,fontStack:S.fontStack,sectionIndex:E,metrics:I,rect:P}),h+=O*S.scale+c):(k.push({glyph:C,imageName:z,x:h,y:p+L,vertical:D,scale:S.scale,fontStack:S.fontStack,sectionIndex:E,metrics:I,rect:P}),h+=I.advance*S.scale+c)}0!==k.length&&(d=Math.max(h-c,d),Sl(k,0,k.length-1,m,M)),h=0;var q=a*_+M;T.lineOffset=Math.max(M,w),p+=q,g=Math.max(q,g),++v}else p+=a,++v}var H,G=p- -17,Y=Al(o),W=Y.horizontalAlign,X=Y.verticalAlign;(function(t,e,r,n,i,a,o,s,l){var c,u=(e-r)*i;c=a!==o?-s*n- -17:(-n*l+.5)*o;for(var f=0,h=t;f=0&&n>=t&&xl[this.text.charCodeAt(n)];n--)r--;this.text=this.text.substring(t,r),this.sectionIndex=this.sectionIndex.slice(t,r)},vl.prototype.substring=function(t,e){var r=new vl;return r.text=this.text.substring(t,e),r.sectionIndex=this.sectionIndex.slice(t,e),r.sections=this.sections,r},vl.prototype.toString=function(){return this.text},vl.prototype.getMaxScale=function(){var t=this;return this.sectionIndex.reduce((function(e,r){return Math.max(e,t.sections[r].scale)}),0)},vl.prototype.addTextSection=function(t,e){this.text+=t.text,this.sections.push(ml.forText(t.scale,t.fontStack||e));for(var r=this.sections.length-1,n=0;n=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)};var xl={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},bl={};function _l(t,e,r,n,i,a){if(e.imageName){var o=n[e.imageName];return o?o.displaySize[0]*e.scale*24/a+i:0}var s=r[e.fontStack],l=s&&s[t];return l?l.metrics.advance*e.scale+i:0}function wl(t,e,r,n){var i=Math.pow(t-e,2);return n?t=0,f=0,h=0;h-r/2;){if(--o<0)return!1;s-=t[o].dist(a),a=t[o]}s+=t[o].dist(t[o+1]),o++;for(var l=[],c=0;sn;)c-=l.shift().angleDelta;if(c>i)return!1;o++,s+=u.dist(f)}return!0}function Dl(t){for(var e=0,r=0;rc){var d=(c-l)/p,g=Ue(f.x,h.x,d),m=Ue(f.y,h.y,d),v=new Cl(g,m,h.angleTo(f),u);return v._round(),!o||Ol(t,v,s,o,e)?v:void 0}l+=p}}function Nl(t,e,r,n,i,a,o,s,l){var c=Rl(n,a,o),u=Fl(n,i),f=u*o,h=0===t[0].x||t[0].x===l||0===t[0].y||t[0].y===l;return e-f=0&&_=0&&w=0&&p+u<=f){var T=new Cl(_,w,x,g);T._round(),i&&!Ol(e,T,o,i,a)||d.push(T)}}h+=y}return l||d.length||s||(d=t(e,h/2,n,i,a,o,s,!0,c)),d}(t,h?e/2*s%e:(u/2+2*a)*o*s%e,e,c,r,f,h,!1,l)}function jl(t,e,r,n,a){for(var o=[],s=0;s=n&&h.x>=n||(f.x>=n?f=new i(n,f.y+(n-f.x)/(h.x-f.x)*(h.y-f.y))._round():h.x>=n&&(h=new i(n,f.y+(n-f.x)/(h.x-f.x)*(h.y-f.y))._round()),f.y>=a&&h.y>=a||(f.y>=a?f=new i(f.x+(a-f.y)/(h.y-f.y)*(h.x-f.x),a)._round():h.y>=a&&(h=new i(f.x+(a-f.y)/(h.y-f.y)*(h.x-f.x),a)._round()),c&&f.equals(c[c.length-1])||o.push(c=[f]),c.push(h)))))}return o}function Ul(t,e,r,n){var a=[],o=t.image,s=o.pixelRatio,l=o.paddedRect.w-2,c=o.paddedRect.h-2,u=t.right-t.left,f=t.bottom-t.top,h=o.stretchX||[[0,l]],p=o.stretchY||[[0,c]],d=function(t,e){return t+e[1]-e[0]},g=h.reduce(d,0),m=p.reduce(d,0),v=l-g,y=c-m,x=0,b=g,_=0,w=m,T=0,k=v,M=0,A=y;if(o.content&&n){var S=o.content;x=Vl(h,0,S[0]),_=Vl(p,0,S[1]),b=Vl(h,S[0],S[2]),w=Vl(p,S[1],S[3]),T=S[0]-x,M=S[1]-_,k=S[2]-S[0]-b,A=S[3]-S[1]-w}var E=function(n,a,l,c){var h=Hl(n.stretch-x,b,u,t.left),p=Gl(n.fixed-T,k,n.stretch,g),d=Hl(a.stretch-_,w,f,t.top),v=Gl(a.fixed-M,A,a.stretch,m),y=Hl(l.stretch-x,b,u,t.left),S=Gl(l.fixed-T,k,l.stretch,g),E=Hl(c.stretch-_,w,f,t.top),C=Gl(c.fixed-M,A,c.stretch,m),L=new i(h,d),I=new i(y,d),P=new i(y,E),z=new i(h,E),O=new i(p/s,v/s),D=new i(S/s,C/s),R=e*Math.PI/180;if(R){var F=Math.sin(R),B=Math.cos(R),N=[B,-F,F,B];L._matMult(N),I._matMult(N),z._matMult(N),P._matMult(N)}var j=n.stretch+n.fixed,U=a.stretch+a.fixed;return{tl:L,tr:I,bl:z,br:P,tex:{x:o.paddedRect.x+1+j,y:o.paddedRect.y+1+U,w:l.stretch+l.fixed-j,h:c.stretch+c.fixed-U},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:O,pixelOffsetBR:D,minFontScaleX:k/s/u,minFontScaleY:A/s/f,isSDF:r}};if(n&&(o.stretchX||o.stretchY))for(var C=ql(h,v,g),L=ql(p,y,m),I=0;I0&&(d=Math.max(10,d),this.circleDiameter=d)}else{var g=o.top*s-l,m=o.bottom*s+l,v=o.left*s-l,y=o.right*s+l,x=o.collisionPadding;if(x&&(v-=x[0]*s,g-=x[1]*s,y+=x[2]*s,m+=x[3]*s),u){var b=new i(v,g),_=new i(y,g),w=new i(v,m),T=new i(y,m),k=u*Math.PI/180;b._rotate(k),_._rotate(k),w._rotate(k),T._rotate(k),v=Math.min(b.x,_.x,w.x,T.x),y=Math.max(b.x,_.x,w.x,T.x),g=Math.min(b.y,_.y,w.y,T.y),m=Math.max(b.y,_.y,w.y,T.y)}t.emplaceBack(e.x,e.y,v,g,y,m,r,n,a)}this.boxEndIndex=t.length},Wl=function(t,e){if(void 0===t&&(t=[]),void 0===e&&(e=Xl),this.data=t,this.length=this.data.length,this.compare=e,this.length>0)for(var r=(this.length>>1)-1;r>=0;r--)this._down(r)};function Xl(t,e){return te?1:0}function Zl(t,e,r){void 0===e&&(e=1),void 0===r&&(r=!1);for(var n=1/0,a=1/0,o=-1/0,s=-1/0,l=t[0],c=0;co)&&(o=u.x),(!c||u.y>s)&&(s=u.y)}var f=Math.min(o-n,s-a),h=f/2,p=new Wl([],Jl);if(0===f)return new i(n,a);for(var d=n;dm.d||!m.d)&&(m=y,r&&console.log("found best %d after %d probes",Math.round(1e4*y.d)/1e4,v)),y.max-m.d<=e||(p.push(new Kl(y.p.x-(h=y.h/2),y.p.y-h,h,t)),p.push(new Kl(y.p.x+h,y.p.y-h,h,t)),p.push(new Kl(y.p.x-h,y.p.y+h,h,t)),p.push(new Kl(y.p.x+h,y.p.y+h,h,t)),v+=4)}return r&&(console.log("num probes: "+v),console.log("best distance: "+m.d)),m.p}function Jl(t,e){return e.max-t.max}function Kl(t,e,r,n){this.p=new i(t,e),this.h=r,this.d=function(t,e){for(var r=!1,n=1/0,i=0;it.y!=u.y>t.y&&t.x<(u.x-c.x)*(t.y-c.y)/(u.y-c.y)+c.x&&(r=!r),n=Math.min(n,Ga(t,c,u))}return(r?1:-1)*Math.sqrt(n)}(this.p,n),this.max=this.d+this.h*Math.SQRT2}Wl.prototype.push=function(t){this.data.push(t),this.length++,this._up(this.length-1)},Wl.prototype.pop=function(){if(0!==this.length){var t=this.data[0],e=this.data.pop();return this.length--,this.length>0&&(this.data[0]=e,this._down(0)),t}},Wl.prototype.peek=function(){return this.data[0]},Wl.prototype._up=function(t){for(var e=this.data,r=this.compare,n=e[t];t>0;){var i=t-1>>1,a=e[i];if(r(n,a)>=0)break;e[t]=a,t=i}e[t]=n},Wl.prototype._down=function(t){for(var e=this.data,r=this.compare,n=this.length>>1,i=e[t];t=0)break;e[t]=o,t=a}e[t]=i};var Ql=Number.POSITIVE_INFINITY;function $l(t,e){return e[1]!==Ql?function(t,e,r){var n=0,i=0;switch(e=Math.abs(e),r=Math.abs(r),t){case"top-right":case"top-left":case"top":i=r-7;break;case"bottom-right":case"bottom-left":case"bottom":i=7-r}switch(t){case"top-right":case"bottom-right":case"right":n=-e;break;case"top-left":case"bottom-left":case"left":n=e}return[n,i]}(t,e[0],e[1]):function(t,e){var r=0,n=0;e<0&&(e=0);var i=e/Math.sqrt(2);switch(t){case"top-right":case"top-left":n=i-7;break;case"bottom-right":case"bottom-left":n=7-i;break;case"bottom":n=7-e;break;case"top":n=e-7}switch(t){case"top-right":case"bottom-right":r=-i;break;case"top-left":case"bottom-left":r=i;break;case"left":r=e;break;case"right":r=-e}return[r,n]}(t,e[0])}function tc(t){switch(t){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function ec(t,e,r,n,a,o,s,l,c,u,f,h,p,d,g){var m=function(t,e,r,n,a,o,s,l){for(var c=n.layout.get("text-rotate").evaluate(o,{})*Math.PI/180,u=[],f=0,h=e.positionedLines;f32640&&_(t.layerIds[0]+': Value for "text-size" is >= 255. Reduce your "text-size".'):"composite"===v.kind&&((y=[128*d.compositeTextSizes[0].evaluate(s,{},g),128*d.compositeTextSizes[1].evaluate(s,{},g)])[0]>32640||y[1]>32640)&&_(t.layerIds[0]+': Value for "text-size" is >= 255. Reduce your "text-size".'),t.addSymbols(t.text,m,y,l,o,s,u,e,c.lineStartIndex,c.lineLength,p,g);for(var x=0,b=f;x=0;o--)if(n.dist(a[o])0)&&("constant"!==a.value.kind||a.value.value.length>0),c="constant"!==s.value.kind||!!s.value.value||Object.keys(s.parameters).length>0,u=i.get("symbol-sort-key");if(this.features=[],l||c){for(var f=e.iconDependencies,h=e.glyphDependencies,p=e.availableImages,d=new ii(this.zoom),g=0,m=t;g=0;for(var z=0,O=k.sections;z=0;s--)a[s]={x:e[s].x,y:e[s].y,tileUnitDistanceFromAnchor:i},s>0&&(i+=e[s-1].dist(e[s]));for(var l=0;l0},fc.prototype.hasIconData=function(){return this.icon.segments.get().length>0},fc.prototype.hasDebugData=function(){return this.textCollisionBox&&this.iconCollisionBox},fc.prototype.hasTextCollisionBoxData=function(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0},fc.prototype.hasIconCollisionBoxData=function(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0},fc.prototype.addIndicesForPlacedSymbol=function(t,e){for(var r=t.placedSymbolArray.get(e),n=r.vertexStartIndex+4*r.numGlyphs,i=r.vertexStartIndex;i1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(t),this.sortedAngle=t,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(var r=0,n=this.symbolInstanceIndexes;r=0&&n.indexOf(t)===r&&e.addIndicesForPlacedSymbol(e.text,t)})),i.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,i.verticalPlacedTextSymbolIndex),i.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,i.placedIconSymbolIndex),i.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,i.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}},Dn("SymbolBucket",fc,{omit:["layers","collisionBoxArray","features","compareText"]}),fc.MAX_GLYPHS=65535,fc.addDynamicAttributes=sc;var hc=new yi({"symbol-placement":new pi(At.layout_symbol["symbol-placement"]),"symbol-spacing":new pi(At.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new pi(At.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new di(At.layout_symbol["symbol-sort-key"]),"symbol-z-order":new pi(At.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new pi(At.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new pi(At.layout_symbol["icon-ignore-placement"]),"icon-optional":new pi(At.layout_symbol["icon-optional"]),"icon-rotation-alignment":new pi(At.layout_symbol["icon-rotation-alignment"]),"icon-size":new di(At.layout_symbol["icon-size"]),"icon-text-fit":new pi(At.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new pi(At.layout_symbol["icon-text-fit-padding"]),"icon-image":new di(At.layout_symbol["icon-image"]),"icon-rotate":new di(At.layout_symbol["icon-rotate"]),"icon-padding":new pi(At.layout_symbol["icon-padding"]),"icon-keep-upright":new pi(At.layout_symbol["icon-keep-upright"]),"icon-offset":new di(At.layout_symbol["icon-offset"]),"icon-anchor":new di(At.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new pi(At.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new pi(At.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new pi(At.layout_symbol["text-rotation-alignment"]),"text-field":new di(At.layout_symbol["text-field"]),"text-font":new di(At.layout_symbol["text-font"]),"text-size":new di(At.layout_symbol["text-size"]),"text-max-width":new di(At.layout_symbol["text-max-width"]),"text-line-height":new pi(At.layout_symbol["text-line-height"]),"text-letter-spacing":new di(At.layout_symbol["text-letter-spacing"]),"text-justify":new di(At.layout_symbol["text-justify"]),"text-radial-offset":new di(At.layout_symbol["text-radial-offset"]),"text-variable-anchor":new pi(At.layout_symbol["text-variable-anchor"]),"text-anchor":new di(At.layout_symbol["text-anchor"]),"text-max-angle":new pi(At.layout_symbol["text-max-angle"]),"text-writing-mode":new pi(At.layout_symbol["text-writing-mode"]),"text-rotate":new di(At.layout_symbol["text-rotate"]),"text-padding":new pi(At.layout_symbol["text-padding"]),"text-keep-upright":new pi(At.layout_symbol["text-keep-upright"]),"text-transform":new di(At.layout_symbol["text-transform"]),"text-offset":new di(At.layout_symbol["text-offset"]),"text-allow-overlap":new pi(At.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new pi(At.layout_symbol["text-ignore-placement"]),"text-optional":new pi(At.layout_symbol["text-optional"])}),pc={paint:new yi({"icon-opacity":new di(At.paint_symbol["icon-opacity"]),"icon-color":new di(At.paint_symbol["icon-color"]),"icon-halo-color":new di(At.paint_symbol["icon-halo-color"]),"icon-halo-width":new di(At.paint_symbol["icon-halo-width"]),"icon-halo-blur":new di(At.paint_symbol["icon-halo-blur"]),"icon-translate":new pi(At.paint_symbol["icon-translate"]),"icon-translate-anchor":new pi(At.paint_symbol["icon-translate-anchor"]),"text-opacity":new di(At.paint_symbol["text-opacity"]),"text-color":new di(At.paint_symbol["text-color"],{runtimeType:Bt,getOverride:function(t){return t.textColor},hasOverride:function(t){return!!t.textColor}}),"text-halo-color":new di(At.paint_symbol["text-halo-color"]),"text-halo-width":new di(At.paint_symbol["text-halo-width"]),"text-halo-blur":new di(At.paint_symbol["text-halo-blur"]),"text-translate":new pi(At.paint_symbol["text-translate"]),"text-translate-anchor":new pi(At.paint_symbol["text-translate-anchor"])}),layout:hc},dc=function(t){this.type=t.property.overrides?t.property.overrides.runtimeType:Ot,this.defaultValue=t};dc.prototype.evaluate=function(t){if(t.formattedSection){var e=this.defaultValue.property.overrides;if(e&&e.hasOverride(t.formattedSection))return e.getOverride(t.formattedSection)}return t.feature&&t.featureState?this.defaultValue.evaluate(t.feature,t.featureState):this.defaultValue.property.specification.default},dc.prototype.eachChild=function(t){this.defaultValue.isConstant()||t(this.defaultValue.value._styleExpression.expression)},dc.prototype.outputDefined=function(){return!1},dc.prototype.serialize=function(){return null},Dn("FormatSectionOverride",dc,{omit:["defaultValue"]});var gc=function(t){function e(e){t.call(this,e,pc)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.recalculate=function(e,r){if(t.prototype.recalculate.call(this,e,r),"auto"===this.layout.get("icon-rotation-alignment")&&(this.layout._values["icon-rotation-alignment"]="point"!==this.layout.get("symbol-placement")?"map":"viewport"),"auto"===this.layout.get("text-rotation-alignment")&&(this.layout._values["text-rotation-alignment"]="point"!==this.layout.get("symbol-placement")?"map":"viewport"),"auto"===this.layout.get("text-pitch-alignment")&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")),"auto"===this.layout.get("icon-pitch-alignment")&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment")),"point"===this.layout.get("symbol-placement")){var n=this.layout.get("text-writing-mode");if(n){for(var i=[],a=0,o=n;a",targetMapId:n,sourceMapId:a.mapId})}}},Cc.prototype.receive=function(t){var e=t.data,r=e.id;if(r&&(!e.targetMapId||this.mapId===e.targetMapId))if(""===e.type){delete this.tasks[r];var n=this.cancelCallbacks[r];delete this.cancelCallbacks[r],n&&n()}else k()||e.mustQueue?(this.tasks[r]=e,this.taskQueue.push(r),this.invoker.trigger()):this.processTask(r,e)},Cc.prototype.process=function(){if(this.taskQueue.length){var t=this.taskQueue.shift(),e=this.tasks[t];delete this.tasks[t],this.taskQueue.length&&this.invoker.trigger(),e&&this.processTask(t,e)}},Cc.prototype.processTask=function(t,e){var r=this;if(""===e.type){var n=this.callbacks[t];delete this.callbacks[t],n&&(e.error?n(jn(e.error)):n(null,jn(e.data)))}else{var i=!1,a=S(this.globalScope)?void 0:[],o=e.hasCallback?function(e,n){i=!0,delete r.cancelCallbacks[t],r.target.postMessage({id:t,type:"",sourceMapId:r.mapId,error:e?Nn(e):null,data:Nn(n,a)},a)}:function(t){i=!0},s=null,l=jn(e.data);if(this.parent[e.type])s=this.parent[e.type](e.sourceMapId,l,o);else if(this.parent.getWorkerSource){var c=e.type.split(".");s=this.parent.getWorkerSource(e.sourceMapId,c[0],l.source)[c[1]](l,o)}else o(new Error("Could not find function "+e.type));!i&&s&&s.cancel&&(this.cancelCallbacks[t]=s.cancel)}},Cc.prototype.remove=function(){this.invoker.remove(),this.target.removeEventListener("message",this.receive,!1)};var Ic=function(t,e){t&&(e?this.setSouthWest(t).setNorthEast(e):4===t.length?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1]))};Ic.prototype.setNorthEast=function(t){return this._ne=t instanceof Pc?new Pc(t.lng,t.lat):Pc.convert(t),this},Ic.prototype.setSouthWest=function(t){return this._sw=t instanceof Pc?new Pc(t.lng,t.lat):Pc.convert(t),this},Ic.prototype.extend=function(t){var e,r,n=this._sw,i=this._ne;if(t instanceof Pc)e=t,r=t;else{if(!(t instanceof Ic))return Array.isArray(t)?4===t.length||t.every(Array.isArray)?this.extend(Ic.convert(t)):this.extend(Pc.convert(t)):this;if(r=t._ne,!(e=t._sw)||!r)return this}return n||i?(n.lng=Math.min(e.lng,n.lng),n.lat=Math.min(e.lat,n.lat),i.lng=Math.max(r.lng,i.lng),i.lat=Math.max(r.lat,i.lat)):(this._sw=new Pc(e.lng,e.lat),this._ne=new Pc(r.lng,r.lat)),this},Ic.prototype.getCenter=function(){return new Pc((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},Ic.prototype.getSouthWest=function(){return this._sw},Ic.prototype.getNorthEast=function(){return this._ne},Ic.prototype.getNorthWest=function(){return new Pc(this.getWest(),this.getNorth())},Ic.prototype.getSouthEast=function(){return new Pc(this.getEast(),this.getSouth())},Ic.prototype.getWest=function(){return this._sw.lng},Ic.prototype.getSouth=function(){return this._sw.lat},Ic.prototype.getEast=function(){return this._ne.lng},Ic.prototype.getNorth=function(){return this._ne.lat},Ic.prototype.toArray=function(){return[this._sw.toArray(),this._ne.toArray()]},Ic.prototype.toString=function(){return"LngLatBounds("+this._sw.toString()+", "+this._ne.toString()+")"},Ic.prototype.isEmpty=function(){return!(this._sw&&this._ne)},Ic.prototype.contains=function(t){var e=Pc.convert(t),r=e.lng,n=e.lat,i=this._sw.lng<=r&&r<=this._ne.lng;return this._sw.lng>this._ne.lng&&(i=this._sw.lng>=r&&r>=this._ne.lng),this._sw.lat<=n&&n<=this._ne.lat&&i},Ic.convert=function(t){return!t||t instanceof Ic?t:new Ic(t)};var Pc=function(t,e){if(isNaN(t)||isNaN(e))throw new Error("Invalid LngLat object: ("+t+", "+e+")");if(this.lng=+t,this.lat=+e,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")};Pc.prototype.wrap=function(){return new Pc(c(this.lng,-180,180),this.lat)},Pc.prototype.toArray=function(){return[this.lng,this.lat]},Pc.prototype.toString=function(){return"LngLat("+this.lng+", "+this.lat+")"},Pc.prototype.distanceTo=function(t){var e=Math.PI/180,r=this.lat*e,n=t.lat*e,i=Math.sin(r)*Math.sin(n)+Math.cos(r)*Math.cos(n)*Math.cos((t.lng-this.lng)*e);return 6371008.8*Math.acos(Math.min(i,1))},Pc.prototype.toBounds=function(t){void 0===t&&(t=0);var e=360*t/40075017,r=e/Math.cos(Math.PI/180*this.lat);return new Ic(new Pc(this.lng-r,this.lat-e),new Pc(this.lng+r,this.lat+e))},Pc.convert=function(t){if(t instanceof Pc)return t;if(Array.isArray(t)&&(2===t.length||3===t.length))return new Pc(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&"object"==typeof t&&null!==t)return new Pc(Number("lng"in t?t.lng:t.lon),Number(t.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")};var zc=2*Math.PI*6371008.8;function Oc(t){return zc*Math.cos(t*Math.PI/180)}function Dc(t){return(180+t)/360}function Rc(t){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360)))/360}function Fc(t,e){return t/Oc(e)}function Bc(t){return 360/Math.PI*Math.atan(Math.exp((180-360*t)*Math.PI/180))-90}var Nc=function(t,e,r){void 0===r&&(r=0),this.x=+t,this.y=+e,this.z=+r};Nc.fromLngLat=function(t,e){void 0===e&&(e=0);var r=Pc.convert(t);return new Nc(Dc(r.lng),Rc(r.lat),Fc(e,r.lat))},Nc.prototype.toLngLat=function(){return new Pc(360*this.x-180,Bc(this.y))},Nc.prototype.toAltitude=function(){return this.z*Oc(Bc(this.y))},Nc.prototype.meterInMercatorCoordinateUnits=function(){return 1/zc*(t=Bc(this.y),1/Math.cos(t*Math.PI/180));var t};var jc=function(t,e,r){this.z=t,this.x=e,this.y=r,this.key=qc(0,t,t,e,r)};jc.prototype.equals=function(t){return this.z===t.z&&this.x===t.x&&this.y===t.y},jc.prototype.url=function(t,e){var r,n,i,a,o,s=(n=this.y,i=this.z,a=Lc(256*(r=this.x),256*(n=Math.pow(2,i)-n-1),i),o=Lc(256*(r+1),256*(n+1),i),a[0]+","+a[1]+","+o[0]+","+o[1]),l=function(t,e,r){for(var n,i="",a=t;a>0;a--)i+=(e&(n=1<this.canonical.z?new Vc(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Vc(t,this.wrap,t,this.canonical.x>>e,this.canonical.y>>e)},Vc.prototype.calculateScaledKey=function(t,e){var r=this.canonical.z-t;return t>this.canonical.z?qc(this.wrap*+e,t,this.canonical.z,this.canonical.x,this.canonical.y):qc(this.wrap*+e,t,t,this.canonical.x>>r,this.canonical.y>>r)},Vc.prototype.isChildOf=function(t){if(t.wrap!==this.wrap)return!1;var e=this.canonical.z-t.canonical.z;return 0===t.overscaledZ||t.overscaledZ>e&&t.canonical.y===this.canonical.y>>e},Vc.prototype.children=function(t){if(this.overscaledZ>=t)return[new Vc(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];var e=this.canonical.z+1,r=2*this.canonical.x,n=2*this.canonical.y;return[new Vc(e,this.wrap,e,r,n),new Vc(e,this.wrap,e,r+1,n),new Vc(e,this.wrap,e,r,n+1),new Vc(e,this.wrap,e,r+1,n+1)]},Vc.prototype.isLessThan=function(t){return this.wrapt.wrap)&&(this.overscaledZt.overscaledZ)&&(this.canonical.xt.canonical.x)&&this.canonical.y=this.dim+1||e<-1||e>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return(e+1)*this.stride+(t+1)},Hc.prototype._unpackMapbox=function(t,e,r){return(256*t*256+256*e+r)/10-1e4},Hc.prototype._unpackTerrarium=function(t,e,r){return 256*t+e+r/256-32768},Hc.prototype.getPixels=function(){return new po({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))},Hc.prototype.backfillBorder=function(t,e,r){if(this.dim!==t.dim)throw new Error("dem dimension mismatch");var n=e*this.dim,i=e*this.dim+this.dim,a=r*this.dim,o=r*this.dim+this.dim;switch(e){case-1:n=i-1;break;case 1:i=n+1}switch(r){case-1:a=o-1;break;case 1:o=a+1}for(var s=-e*this.dim,l=-r*this.dim,c=a;c=0&&u[3]>=0&&s.insert(o,u[0],u[1],u[2],u[3])}},Zc.prototype.loadVTLayers=function(){return this.vtLayers||(this.vtLayers=new gs.VectorTile(new Hs(this.rawTileData)).layers,this.sourceLayerCoder=new Gc(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"])),this.vtLayers},Zc.prototype.query=function(t,e,r,n){var a=this;this.loadVTLayers();for(var o=t.params||{},s=8192/t.tileSize/t.scale,l=rn(o.filter),c=t.queryGeometry,u=t.queryPadding*s,f=Kc(c),h=this.grid.query(f.minX-u,f.minY-u,f.maxX+u,f.maxY+u),p=Kc(t.cameraQueryGeometry),d=0,g=this.grid3D.query(p.minX-u,p.minY-u,p.maxX+u,p.maxY+u,(function(e,r,n,a){return function(t,e,r,n,a){for(var o=0,s=t;o=l.x&&a>=l.y)return!0}var c=[new i(e,r),new i(e,a),new i(n,a),new i(n,r)];if(t.length>2)for(var u=0,f=c;u=0)return!0;return!1}(a,f)){var h=this.sourceLayerCoder.decode(r),p=this.vtLayers[h].feature(n);if(i.filter(new ii(this.tileID.overscaledZ),p))for(var d=this.getId(p,h),g=0;gn)i=!1;else if(e)if(this.expirationTimeot&&(t.getActor().send("enforceCacheSizeLimit",at),ut=0)},t.clamp=l,t.clearTileCache=function(t){var e=self.caches.delete("mapbox-tiles");t&&e.catch(t).then((function(){return t()}))},t.clipLine=jl,t.clone=function(t){var e=new to(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e},t.clone$1=x,t.clone$2=function(t){var e=new to(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e},t.collisionCircleLayout=Ns,t.config=F,t.create=function(){var t=new to(16);return to!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t},t.create$1=function(){var t=new to(9);return to!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t},t.create$2=function(){var t=new to(4);return to!=Float32Array&&(t[1]=0,t[2]=0),t[0]=1,t[3]=1,t},t.createCommonjsModule=e,t.createExpression=qr,t.createLayout=Ti,t.createStyleLayer=function(t){return"custom"===t.type?new bc(t):new _c[t.type](t)},t.cross=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2];return t[0]=i*l-a*s,t[1]=a*o-n*l,t[2]=n*s-i*o,t},t.deepEqual=function t(e,r){if(Array.isArray(e)){if(!Array.isArray(r)||e.length!==r.length)return!1;for(var n=0;n0&&(a=1/Math.sqrt(a)),t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a,t},t.number=Ue,t.offscreenCanvasSupported=ft,t.ortho=function(t,e,r,n,i,a,o){var s=1/(e-r),l=1/(n-i),c=1/(a-o);return t[0]=-2*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*l,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*c,t[11]=0,t[12]=(e+r)*s,t[13]=(i+n)*l,t[14]=(o+a)*c,t[15]=1,t},t.parseGlyphPBF=function(t){return new Hs(t).readFields(ll,[])},t.pbf=Hs,t.performSymbolLayout=function(t,e,r,n,i,a,o){t.createArrays(),t.tilePixelRatio=8192/(512*t.overscaling),t.compareText={},t.iconsNeedLinear=!1;var s=t.layers[0].layout,l=t.layers[0]._unevaluatedLayout._values,c={};if("composite"===t.textSizeData.kind){var u=t.textSizeData,f=u.maxZoom;c.compositeTextSizes=[l["text-size"].possiblyEvaluate(new ii(u.minZoom),o),l["text-size"].possiblyEvaluate(new ii(f),o)]}if("composite"===t.iconSizeData.kind){var h=t.iconSizeData,p=h.maxZoom;c.compositeIconSizes=[l["icon-size"].possiblyEvaluate(new ii(h.minZoom),o),l["icon-size"].possiblyEvaluate(new ii(p),o)]}c.layoutTextSize=l["text-size"].possiblyEvaluate(new ii(t.zoom+1),o),c.layoutIconSize=l["icon-size"].possiblyEvaluate(new ii(t.zoom+1),o),c.textMaxSize=l["text-size"].possiblyEvaluate(new ii(18));for(var d=24*s.get("text-line-height"),g="map"===s.get("text-rotation-alignment")&&"point"!==s.get("symbol-placement"),m=s.get("text-keep-upright"),v=s.get("text-size"),y=function(){var a=b[x],l=s.get("text-font").evaluate(a,{},o).join(","),u=v.evaluate(a,{},o),f=c.layoutTextSize.evaluate(a,{},o),h=c.layoutIconSize.evaluate(a,{},o),p={horizontal:{},vertical:void 0},y=a.text,w=[0,0];if(y){var T=y.toString(),k=24*s.get("text-letter-spacing").evaluate(a,{},o),M=function(t){for(var e=0,r=t;e=8192||f.y<0||f.y>=8192||function(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g,m,v,y,x,b,w,T,k,M){var A,S,E,C,L,I=t.addToLineVertexArray(e,r),P=0,z=0,O=0,D=0,R=-1,F=-1,B={},N=ca(""),j=0,U=0;if(void 0===s._unevaluatedLayout.getValue("text-radial-offset")?(j=(A=s.layout.get("text-offset").evaluate(b,{},k).map((function(t){return 24*t})))[0],U=A[1]):(j=24*s.layout.get("text-radial-offset").evaluate(b,{},k),U=Ql),t.allowVerticalPlacement&&n.vertical){var V=s.layout.get("text-rotate").evaluate(b,{},k)+90;C=new Yl(l,e,c,u,f,n.vertical,h,p,d,V),o&&(L=new Yl(l,e,c,u,f,o,m,v,d,V))}if(i){var q=s.layout.get("icon-rotate").evaluate(b,{}),H="none"!==s.layout.get("icon-text-fit"),G=Ul(i,q,T,H),Y=o?Ul(o,q,T,H):void 0;E=new Yl(l,e,c,u,f,i,m,v,!1,q),P=4*G.length;var W=t.iconSizeData,X=null;"source"===W.kind?(X=[128*s.layout.get("icon-size").evaluate(b,{})])[0]>32640&&_(t.layerIds[0]+': Value for "icon-size" is >= 255. Reduce your "icon-size".'):"composite"===W.kind&&((X=[128*w.compositeIconSizes[0].evaluate(b,{},k),128*w.compositeIconSizes[1].evaluate(b,{},k)])[0]>32640||X[1]>32640)&&_(t.layerIds[0]+': Value for "icon-size" is >= 255. Reduce your "icon-size".'),t.addSymbols(t.icon,G,X,x,y,b,!1,e,I.lineStartIndex,I.lineLength,-1,k),R=t.icon.placedSymbolArray.length-1,Y&&(z=4*Y.length,t.addSymbols(t.icon,Y,X,x,y,b,gl.vertical,e,I.lineStartIndex,I.lineLength,-1,k),F=t.icon.placedSymbolArray.length-1)}for(var Z in n.horizontal){var J=n.horizontal[Z];if(!S){N=ca(J.text);var K=s.layout.get("text-rotate").evaluate(b,{},k);S=new Yl(l,e,c,u,f,J,h,p,d,K)}var Q=1===J.positionedLines.length;if(O+=ec(t,e,J,a,s,d,b,g,I,n.vertical?gl.horizontal:gl.horizontalOnly,Q?Object.keys(n.horizontal):[Z],B,R,w,k),Q)break}n.vertical&&(D+=ec(t,e,n.vertical,a,s,d,b,g,I,gl.vertical,["vertical"],B,F,w,k));var $=S?S.boxStartIndex:t.collisionBoxArray.length,tt=S?S.boxEndIndex:t.collisionBoxArray.length,et=C?C.boxStartIndex:t.collisionBoxArray.length,rt=C?C.boxEndIndex:t.collisionBoxArray.length,nt=E?E.boxStartIndex:t.collisionBoxArray.length,it=E?E.boxEndIndex:t.collisionBoxArray.length,at=L?L.boxStartIndex:t.collisionBoxArray.length,ot=L?L.boxEndIndex:t.collisionBoxArray.length,st=-1,lt=function(t,e){return t&&t.circleDiameter?Math.max(t.circleDiameter,e):e};st=lt(S,st),st=lt(C,st),st=lt(E,st);var ct=(st=lt(L,st))>-1?1:0;ct&&(st*=M/24),t.glyphOffsetArray.length>=fc.MAX_GLYPHS&&_("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),void 0!==b.sortKey&&t.addToSortKeyRanges(t.symbolInstances.length,b.sortKey),t.symbolInstances.emplaceBack(e.x,e.y,B.right>=0?B.right:-1,B.center>=0?B.center:-1,B.left>=0?B.left:-1,B.vertical||-1,R,F,N,$,tt,et,rt,nt,it,at,ot,c,O,D,P,z,ct,0,h,j,U,st)}(t,f,s,r,n,i,h,t.layers[0],t.collisionBoxArray,e.index,e.sourceLayerIndex,t.index,v,w,M,l,x,T,A,d,e,a,c,u,o)};if("line"===S)for(var I=0,P=jl(e.geometry,0,0,8192,8192);I1){var j=Bl(N,k,r.vertical||g,n,24,y);j&&L(N,j)}}else if("Polygon"===e.type)for(var U=0,V=Qo(e.geometry,0);U=E.maxzoom||"none"!==E.visibility&&(o(S,this.zoom,n),(g[E.id]=E.createBucket({index:u.bucketLayerIDs.length,layers:S,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:b,sourceID:this.source})).populate(_,m,this.tileID.canonical),u.bucketLayerIDs.push(S.map((function(t){return t.id}))))}}}var C=t.mapObject(m.glyphDependencies,(function(t){return Object.keys(t).map(Number)}));Object.keys(C).length?a.send("getGlyphs",{uid:this.uid,stacks:C},(function(t,e){f||(f=t,h=e,P.call(l))})):h={};var L=Object.keys(m.iconDependencies);L.length?a.send("getImages",{icons:L,source:this.source,tileID:this.tileID,type:"icons"},(function(t,e){f||(f=t,p=e,P.call(l))})):p={};var I=Object.keys(m.patternDependencies);function P(){if(f)return s(f);if(h&&p&&d){var e=new i(h),r=new t.ImageAtlas(p,d);for(var a in g){var l=g[a];l instanceof t.SymbolBucket?(o(l.layers,this.zoom,n),t.performSymbolLayout(l,h,e.positions,p,r.iconPositions,this.showCollisionBoxes,this.tileID.canonical)):l.hasPattern&&(l instanceof t.LineBucket||l instanceof t.FillBucket||l instanceof t.FillExtrusionBucket)&&(o(l.layers,this.zoom,n),l.addFeatures(m,this.tileID.canonical,r.patternPositions))}this.status="done",s(null,{buckets:t.values(g).filter((function(t){return!t.isEmpty()})),featureIndex:u,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:e.image,imageAtlas:r,glyphMap:this.returnDependencies?h:null,iconMap:this.returnDependencies?p:null,glyphPositions:this.returnDependencies?e.positions:null})}}I.length?a.send("getImages",{icons:I,source:this.source,tileID:this.tileID,type:"patterns"},(function(t,e){f||(f=t,d=e,P.call(l))})):d={},P.call(this)};var l=function(t,e,r,n){this.actor=t,this.layerIndex=e,this.availableImages=r,this.loadVectorData=n||s,this.loading={},this.loaded={}};l.prototype.loadTile=function(e,r){var n=this,i=e.uid;this.loading||(this.loading={});var o=!!(e&&e.request&&e.request.collectResourceTiming)&&new t.RequestPerformance(e.request),s=this.loading[i]=new a(e);s.abort=this.loadVectorData(e,(function(e,a){if(delete n.loading[i],e||!a)return s.status="done",n.loaded[i]=s,r(e);var l=a.rawData,c={};a.expires&&(c.expires=a.expires),a.cacheControl&&(c.cacheControl=a.cacheControl);var u={};if(o){var f=o.finish();f&&(u.resourceTiming=JSON.parse(JSON.stringify(f)))}s.vectorTile=a.vectorTile,s.parse(a.vectorTile,n.layerIndex,n.availableImages,n.actor,(function(e,n){if(e||!n)return r(e);r(null,t.extend({rawTileData:l.slice(0)},n,c,u))})),n.loaded=n.loaded||{},n.loaded[i]=s}))},l.prototype.reloadTile=function(t,e){var r=this,n=this.loaded,i=t.uid,a=this;if(n&&n[i]){var o=n[i];o.showCollisionBoxes=t.showCollisionBoxes;var s=function(t,n){var i=o.reloadCallback;i&&(delete o.reloadCallback,o.parse(o.vectorTile,a.layerIndex,r.availableImages,a.actor,i)),e(t,n)};"parsing"===o.status?o.reloadCallback=s:"done"===o.status&&(o.vectorTile?o.parse(o.vectorTile,this.layerIndex,this.availableImages,this.actor,s):s())}},l.prototype.abortTile=function(t,e){var r=this.loading,n=t.uid;r&&r[n]&&r[n].abort&&(r[n].abort(),delete r[n]),e()},l.prototype.removeTile=function(t,e){var r=this.loaded,n=t.uid;r&&r[n]&&delete r[n],e()};var c=t.window.ImageBitmap,u=function(){this.loaded={}};function f(t,e){if(0!==t.length){h(t[0],e);for(var r=1;r=0!=!!e&&t.reverse()}u.prototype.loadTile=function(e,r){var n=e.uid,i=e.encoding,a=e.rawImageData,o=c&&a instanceof c?this.getImageData(a):a,s=new t.DEMData(n,o,i);this.loaded=this.loaded||{},this.loaded[n]=s,r(null,s)},u.prototype.getImageData=function(e){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(e.width,e.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d")),this.offscreenCanvas.width=e.width,this.offscreenCanvas.height=e.height,this.offscreenCanvasContext.drawImage(e,0,0,e.width,e.height);var r=this.offscreenCanvasContext.getImageData(-1,-1,e.width+2,e.height+2);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),new t.RGBAImage({width:r.width,height:r.height},r.data)},u.prototype.removeTile=function(t){var e=this.loaded,r=t.uid;e&&e[r]&&delete e[r]};var p=t.vectorTile.VectorTileFeature.prototype.toGeoJSON,d=function(e){this._feature=e,this.extent=t.EXTENT,this.type=e.type,this.properties=e.tags,"id"in e&&!isNaN(e.id)&&(this.id=parseInt(e.id,10))};d.prototype.loadGeometry=function(){if(1===this._feature.type){for(var e=[],r=0,n=this._feature.geometry;r>31}function E(t,e){for(var r=t.loadGeometry(),n=t.type,i=0,a=0,o=r.length,s=0;s>1;!function t(e,r,n,i,a,o){for(;a>i;){if(a-i>600){var s=a-i+1,l=n-i+1,c=Math.log(s),u=.5*Math.exp(2*c/3),f=.5*Math.sqrt(c*u*(s-u)/s)*(l-s/2<0?-1:1);t(e,r,n,Math.max(i,Math.floor(n-l*u/s+f)),Math.min(a,Math.floor(n+(s-l)*u/s+f)),o)}var h=r[2*n+o],p=i,d=a;for(L(e,r,i,n),r[2*a+o]>h&&L(e,r,i,a);ph;)d--}r[2*i+o]===h?L(e,r,i,d):L(e,r,++d,a),d<=n&&(i=d+1),n<=d&&(a=d-1)}}(e,r,s,i,a,o%2),t(e,r,n,i,s-1,o+1),t(e,r,n,s+1,a,o+1)}}(o,s,n,0,o.length-1,0)};D.prototype.range=function(t,e,r,n){return function(t,e,r,n,i,a,o){for(var s,l,c=[0,t.length-1,0],u=[];c.length;){var f=c.pop(),h=c.pop(),p=c.pop();if(h-p<=o)for(var d=p;d<=h;d++)l=e[2*d+1],(s=e[2*d])>=r&&s<=i&&l>=n&&l<=a&&u.push(t[d]);else{var g=Math.floor((p+h)/2);l=e[2*g+1],(s=e[2*g])>=r&&s<=i&&l>=n&&l<=a&&u.push(t[g]);var m=(f+1)%2;(0===f?r<=s:n<=l)&&(c.push(p),c.push(g-1),c.push(m)),(0===f?i>=s:a>=l)&&(c.push(g+1),c.push(h),c.push(m))}}return u}(this.ids,this.coords,t,e,r,n,this.nodeSize)},D.prototype.within=function(t,e,r){return function(t,e,r,n,i,a){for(var o=[0,t.length-1,0],s=[],l=i*i;o.length;){var c=o.pop(),u=o.pop(),f=o.pop();if(u-f<=a)for(var h=f;h<=u;h++)P(e[2*h],e[2*h+1],r,n)<=l&&s.push(t[h]);else{var p=Math.floor((f+u)/2),d=e[2*p],g=e[2*p+1];P(d,g,r,n)<=l&&s.push(t[p]);var m=(c+1)%2;(0===c?r-i<=d:n-i<=g)&&(o.push(f),o.push(p-1),o.push(m)),(0===c?r+i>=d:n+i>=g)&&(o.push(p+1),o.push(u),o.push(m))}}return s}(this.ids,this.coords,t,e,r,this.nodeSize)};var R={minZoom:0,maxZoom:16,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:function(t){return t}},F=function(t){this.options=H(Object.create(R),t),this.trees=new Array(this.options.maxZoom+1)};function B(t,e,r,n,i){return{x:t,y:e,zoom:1/0,id:r,parentId:-1,numPoints:n,properties:i}}function N(t,e){var r=t.geometry.coordinates,n=r[1];return{x:V(r[0]),y:q(n),zoom:1/0,index:e,parentId:-1}}function j(t){return{type:"Feature",id:t.id,properties:U(t),geometry:{type:"Point",coordinates:[(n=t.x,360*(n-.5)),(e=t.y,r=(180-360*e)*Math.PI/180,360*Math.atan(Math.exp(r))/Math.PI-90)]}};var e,r,n}function U(t){var e=t.numPoints,r=e>=1e4?Math.round(e/1e3)+"k":e>=1e3?Math.round(e/100)/10+"k":e;return H(H({},t.properties),{cluster:!0,cluster_id:t.id,point_count:e,point_count_abbreviated:r})}function V(t){return t/360+.5}function q(t){var e=Math.sin(t*Math.PI/180),r=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return r<0?0:r>1?1:r}function H(t,e){for(var r in e)t[r]=e[r];return t}function G(t){return t.x}function Y(t){return t.y}function W(t,e,r,n,i,a){var o=i-r,s=a-n;if(0!==o||0!==s){var l=((t-r)*o+(e-n)*s)/(o*o+s*s);l>1?(r=i,n=a):l>0&&(r+=o*l,n+=s*l)}return(o=t-r)*o+(s=e-n)*s}function X(t,e,r,n){var i={id:void 0===t?null:t,type:e,geometry:r,tags:n,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(t){var e=t.geometry,r=t.type;if("Point"===r||"MultiPoint"===r||"LineString"===r)Z(t,e);else if("Polygon"===r||"MultiLineString"===r)for(var n=0;n0&&(o+=n?(i*c-l*a)/2:Math.sqrt(Math.pow(l-i,2)+Math.pow(c-a,2))),i=l,a=c}var u=e.length-3;e[2]=1,function t(e,r,n,i){for(var a,o=i,s=n-r>>1,l=n-r,c=e[r],u=e[r+1],f=e[n],h=e[n+1],p=r+3;po)a=p,o=d;else if(d===o){var g=Math.abs(p-s);gi&&(a-r>3&&t(e,r,a,i),e[a+2]=o,n-a>3&&t(e,a,n,i))}(e,0,u,r),e[u+2]=1,e.size=Math.abs(o),e.start=0,e.end=e.size}function $(t,e,r,n){for(var i=0;i1?1:r}function rt(t,e,r,n,i,a,o,s){if(n/=e,a>=(r/=e)&&o=n)return null;for(var l=[],c=0;c=r&&d=n)){var g=[];if("Point"===h||"MultiPoint"===h)nt(f,g,r,n,i);else if("LineString"===h)it(f,g,r,n,i,!1,s.lineMetrics);else if("MultiLineString"===h)ot(f,g,r,n,i,!1);else if("Polygon"===h)ot(f,g,r,n,i,!0);else if("MultiPolygon"===h)for(var m=0;m=r&&o<=n&&(e.push(t[a]),e.push(t[a+1]),e.push(t[a+2]))}}function it(t,e,r,n,i,a,o){for(var s,l,c=at(t),u=0===i?lt:ct,f=t.start,h=0;hr&&(l=u(c,p,d,m,v,r),o&&(c.start=f+s*l)):y>n?x=r&&(l=u(c,p,d,m,v,r),b=!0),x>n&&y<=n&&(l=u(c,p,d,m,v,n),b=!0),!a&&b&&(o&&(c.end=f+s*l),e.push(c),c=at(t)),o&&(f+=s)}var _=t.length-3;p=t[_],d=t[_+1],g=t[_+2],(y=0===i?p:d)>=r&&y<=n&&st(c,p,d,g),_=c.length-3,a&&_>=3&&(c[_]!==c[0]||c[_+1]!==c[1])&&st(c,c[0],c[1],c[2]),c.length&&e.push(c)}function at(t){var e=[];return e.size=t.size,e.start=t.start,e.end=t.end,e}function ot(t,e,r,n,i,a){for(var o=0;oo.maxX&&(o.maxX=u),f>o.maxY&&(o.maxY=f)}return o}function gt(t,e,r,n){var i=e.geometry,a=e.type,o=[];if("Point"===a||"MultiPoint"===a)for(var s=0;s0&&e.size<(i?o:n))r.numPoints+=e.length/3;else{for(var s=[],l=0;lo)&&(r.numSimplified++,s.push(e[l]),s.push(e[l+1])),r.numPoints++;i&&function(t,e){for(var r=0,n=0,i=t.length,a=i-2;n0===e)for(n=0,i=t.length;n24)throw new Error("maxZoom should be in the 0-24 range");if(e.promoteId&&e.generateId)throw new Error("promoteId and generateId cannot be used together.");var n=function(t,e){var r=[];if("FeatureCollection"===t.type)for(var n=0;n=n;c--){var u=+Date.now();s=this._cluster(s,c),this.trees[c]=new D(s,G,Y,a,Float32Array),r&&console.log("z%d: %d clusters in %dms",c,s.length,+Date.now()-u)}return r&&console.timeEnd("total time"),this},F.prototype.getClusters=function(t,e){var r=((t[0]+180)%360+360)%360-180,n=Math.max(-90,Math.min(90,t[1])),i=180===t[2]?180:((t[2]+180)%360+360)%360-180,a=Math.max(-90,Math.min(90,t[3]));if(t[2]-t[0]>=360)r=-180,i=180;else if(r>i){var o=this.getClusters([r,n,180,a],e),s=this.getClusters([-180,n,i,a],e);return o.concat(s)}for(var l=this.trees[this._limitZoom(e)],c=[],u=0,f=l.range(V(r),q(a),V(i),q(n));u1?this._map(s,!0):null,d=(o<<5)+(e+1)+this.points.length,g=0,m=c;g>5},F.prototype._getOriginZoom=function(t){return(t-this.points.length)%32},F.prototype._map=function(t,e){if(t.numPoints)return e?H({},t.properties):t.properties;var r=this.points[t.index].properties,n=this.options.map(r);return e&&n===r?H({},n):n},vt.prototype.options={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,debug:0},vt.prototype.splitTile=function(t,e,r,n,i,a,o){for(var s=[t,e,r,n],l=this.options,c=l.debug;s.length;){n=s.pop(),r=s.pop(),e=s.pop(),t=s.pop();var u=1<1&&console.time("creation"),h=this.tiles[f]=dt(t,e,r,n,l),this.tileCoords.push({z:e,x:r,y:n}),c)){c>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",e,r,n,h.numFeatures,h.numPoints,h.numSimplified),console.timeEnd("creation"));var p="z"+e;this.stats[p]=(this.stats[p]||0)+1,this.total++}if(h.source=t,i){if(e===l.maxZoom||e===i)continue;var d=1<1&&console.time("clipping");var g,m,v,y,x,b,_=.5*l.buffer/l.extent,w=.5-_,T=.5+_,k=1+_;g=m=v=y=null,x=rt(t,u,r-_,r+T,0,h.minX,h.maxX,l),b=rt(t,u,r+w,r+k,0,h.minX,h.maxX,l),t=null,x&&(g=rt(x,u,n-_,n+T,1,h.minY,h.maxY,l),m=rt(x,u,n+w,n+k,1,h.minY,h.maxY,l),x=null),b&&(v=rt(b,u,n-_,n+T,1,h.minY,h.maxY,l),y=rt(b,u,n+w,n+k,1,h.minY,h.maxY,l),b=null),c>1&&console.timeEnd("clipping"),s.push(g||[],e+1,2*r,2*n),s.push(m||[],e+1,2*r,2*n+1),s.push(v||[],e+1,2*r+1,2*n),s.push(y||[],e+1,2*r+1,2*n+1)}}},vt.prototype.getTile=function(t,e,r){var n=this.options,i=n.extent,a=n.debug;if(t<0||t>24)return null;var o=1<1&&console.log("drilling down to z%d-%d-%d",t,e,r);for(var l,c=t,u=e,f=r;!l&&c>0;)c--,u=Math.floor(u/2),f=Math.floor(f/2),l=this.tiles[yt(c,u,f)];return l&&l.source?(a>1&&console.log("found parent tile z%d-%d-%d",c,u,f),a>1&&console.time("drilling down"),this.splitTile(l.source,c,u,f,t,e,r),a>1&&console.timeEnd("drilling down"),this.tiles[s]?ht(this.tiles[s],i):null):null};var bt=function(e){function r(t,r,n,i){e.call(this,t,r,n,xt),i&&(this.loadGeoJSON=i)}return e&&(r.__proto__=e),(r.prototype=Object.create(e&&e.prototype)).constructor=r,r.prototype.loadData=function(t,e){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),this._pendingCallback=e,this._pendingLoadDataParams=t,this._state&&"Idle"!==this._state?this._state="NeedsLoadData":(this._state="Coalescing",this._loadData())},r.prototype._loadData=function(){var e=this;if(this._pendingCallback&&this._pendingLoadDataParams){var r=this._pendingCallback,n=this._pendingLoadDataParams;delete this._pendingCallback,delete this._pendingLoadDataParams;var i=!!(n&&n.request&&n.request.collectResourceTiming)&&new t.RequestPerformance(n.request);this.loadGeoJSON(n,(function(a,o){if(a||!o)return r(a);if("object"!=typeof o)return r(new Error("Input data given to '"+n.source+"' is not a valid GeoJSON object."));!function t(e,r){var n,i=e&&e.type;if("FeatureCollection"===i)for(n=0;n=0?0:e.button},r.remove=function(t){t.parentNode&&t.parentNode.removeChild(t)};var h=function(e){function r(){e.call(this),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new t.RGBAImage({width:1,height:1}),this.dirty=!0}return e&&(r.__proto__=e),(r.prototype=Object.create(e&&e.prototype)).constructor=r,r.prototype.isLoaded=function(){return this.loaded},r.prototype.setLoaded=function(t){if(this.loaded!==t&&(this.loaded=t,t)){for(var e=0,r=this.requestors;e=0?1.2:1))}function v(t,e,r,n,i,a,o){for(var s=0;s65535)e(new Error("glyphs > 65535 not supported"));else if(a.ranges[s])e(null,{stack:r,id:i,glyph:o});else{var l=a.requests[s];l||(l=a.requests[s]=[],x.loadGlyphRange(r,s,n.url,n.requestManager,(function(t,e){if(e){for(var r in e)n._doesCharSupportLocalGlyph(+r)||(a.glyphs[+r]=e[+r]);a.ranges[s]=!0}for(var i=0,o=l;i1&&(s=t[++o]);var c=Math.abs(l-s.left),u=Math.abs(l-s.right),f=Math.min(c,u),h=void 0,p=i/r*(n+1);if(s.isDash){var d=n-Math.abs(p);h=Math.sqrt(f*f+d*d)}else h=n-Math.sqrt(f*f+p*p);this.data[a+l]=Math.max(0,Math.min(255,h+128))}},T.prototype.addRegularDash=function(t){for(var e=t.length-1;e>=0;--e){var r=t[e],n=t[e+1];r.zeroLength?t.splice(e,1):n&&n.isDash===r.isDash&&(n.left=r.left,t.splice(e,1))}var i=t[0],a=t[t.length-1];i.isDash===a.isDash&&(i.left=a.left-this.width,a.right=i.right+this.width);for(var o=this.width*this.nextRow,s=0,l=t[s],c=0;c1&&(l=t[++s]);var u=Math.abs(c-l.left),f=Math.abs(c-l.right),h=Math.min(u,f);this.data[o+c]=Math.max(0,Math.min(255,(l.isDash?h:-h)+128))}},T.prototype.addDash=function(e,r){var n=r?7:0,i=2*n+1;if(this.nextRow+i>this.height)return t.warnOnce("LineAtlas out of space"),null;for(var a=0,o=0;o=n&&e.x=i&&e.y0&&(l[new t.OverscaledTileID(e.overscaledZ,a,r.z,i,r.y-1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,e.wrap,r.z,r.x,r.y-1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,s,r.z,o,r.y-1).key]={backfilled:!1}),r.y+10&&(n.resourceTiming=e._resourceTiming,e._resourceTiming=[]),e.fire(new t.Event("data",n))}}))},r.prototype.onAdd=function(t){this.map=t,this.load()},r.prototype.setData=function(e){var r=this;return this._data=e,this.fire(new t.Event("dataloading",{dataType:"source"})),this._updateWorkerData((function(e){if(e)r.fire(new t.ErrorEvent(e));else{var n={dataType:"source",sourceDataType:"content"};r._collectResourceTiming&&r._resourceTiming&&r._resourceTiming.length>0&&(n.resourceTiming=r._resourceTiming,r._resourceTiming=[]),r.fire(new t.Event("data",n))}})),this},r.prototype.getClusterExpansionZoom=function(t,e){return this.actor.send("geojson.getClusterExpansionZoom",{clusterId:t,source:this.id},e),this},r.prototype.getClusterChildren=function(t,e){return this.actor.send("geojson.getClusterChildren",{clusterId:t,source:this.id},e),this},r.prototype.getClusterLeaves=function(t,e,r,n){return this.actor.send("geojson.getClusterLeaves",{source:this.id,clusterId:t,limit:e,offset:r},n),this},r.prototype._updateWorkerData=function(e){var r=this;this._loaded=!1;var n=t.extend({},this.workerOptions),i=this._data;"string"==typeof i?(n.request=this.map._requestManager.transformRequest(t.browser.resolveURL(i),t.ResourceType.Source),n.request.collectResourceTiming=this._collectResourceTiming):n.data=JSON.stringify(i),this.actor.send(this.type+".loadData",n,(function(t,i){r._removed||i&&i.abandoned||(r._loaded=!0,i&&i.resourceTiming&&i.resourceTiming[r.id]&&(r._resourceTiming=i.resourceTiming[r.id].slice(0)),r.actor.send(r.type+".coalesce",{source:n.source},null),e(t))}))},r.prototype.loaded=function(){return this._loaded},r.prototype.loadTile=function(e,r){var n=this,i=e.actor?"reloadTile":"loadTile";e.actor=this.actor,e.request=this.actor.send(i,{type:this.type,uid:e.uid,tileID:e.tileID,zoom:e.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:t.browser.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId},(function(t,a){return delete e.request,e.unloadVectorData(),e.aborted?r(null):t?r(t):(e.loadVectorData(a,n.map.painter,"reloadTile"===i),r(null))}))},r.prototype.abortTile=function(t){t.request&&(t.request.cancel(),delete t.request),t.aborted=!0},r.prototype.unloadTile=function(t){t.unloadVectorData(),this.actor.send("removeTile",{uid:t.uid,type:this.type,source:this.id})},r.prototype.onRemove=function(){this._removed=!0,this.actor.send("removeSource",{type:this.type,source:this.id})},r.prototype.serialize=function(){return t.extend({},this._options,{type:this.type,data:this._data})},r.prototype.hasTransition=function(){return!1},r}(t.Evented),I=t.createLayout([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]),P=function(e){function r(t,r,n,i){e.call(this),this.id=t,this.dispatcher=n,this.coordinates=r.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(i),this.options=r}return e&&(r.__proto__=e),(r.prototype=Object.create(e&&e.prototype)).constructor=r,r.prototype.load=function(e,r){var n=this;this._loaded=!1,this.fire(new t.Event("dataloading",{dataType:"source"})),this.url=this.options.url,t.getImage(this.map._requestManager.transformRequest(this.url,t.ResourceType.Image),(function(i,a){n._loaded=!0,i?n.fire(new t.ErrorEvent(i)):a&&(n.image=a,e&&(n.coordinates=e),r&&r(),n._finishLoading())}))},r.prototype.loaded=function(){return this._loaded},r.prototype.updateImage=function(t){var e=this;return this.image&&t.url?(this.options.url=t.url,this.load(t.coordinates,(function(){e.texture=null})),this):this},r.prototype._finishLoading=function(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new t.Event("data",{dataType:"source",sourceDataType:"metadata"})))},r.prototype.onAdd=function(t){this.map=t,this.load()},r.prototype.setCoordinates=function(e){var r=this;this.coordinates=e;var n=e.map(t.MercatorCoordinate.fromLngLat);this.tileID=function(e){for(var r=1/0,n=1/0,i=-1/0,a=-1/0,o=0,s=e;or.end(0)?this.fire(new t.ErrorEvent(new t.ValidationError("sources."+this.id,null,"Playback for this video can be set only between the "+r.start(0)+" and "+r.end(0)+"-second mark."))):this.video.currentTime=e}},r.prototype.getVideo=function(){return this.video},r.prototype.onAdd=function(t){this.map||(this.map=t,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))},r.prototype.prepare=function(){if(!(0===Object.keys(this.tiles).length||this.video.readyState<2)){var e=this.map.painter.context,r=e.gl;for(var n in this.boundsBuffer||(this.boundsBuffer=e.createVertexBuffer(this._boundsArray,I.members)),this.boundsSegments||(this.boundsSegments=t.SegmentVector.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE),r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,this.video)):(this.texture=new t.Texture(e,this.video,r.RGBA),this.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE)),this.tiles){var i=this.tiles[n];"loaded"!==i.state&&(i.state="loaded",i.texture=this.texture)}}},r.prototype.serialize=function(){return{type:"video",urls:this.urls,coordinates:this.coordinates}},r.prototype.hasTransition=function(){return this.video&&!this.video.paused},r}(P),O=function(e){function r(r,n,i,a){e.call(this,r,n,i,a),n.coordinates?Array.isArray(n.coordinates)&&4===n.coordinates.length&&!n.coordinates.some((function(t){return!Array.isArray(t)||2!==t.length||t.some((function(t){return"number"!=typeof t}))}))||this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'missing required property "coordinates"'))),n.animate&&"boolean"!=typeof n.animate&&this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'optional "animate" property must be a boolean value'))),n.canvas?"string"==typeof n.canvas||n.canvas instanceof t.window.HTMLCanvasElement||this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'missing required property "canvas"'))),this.options=n,this.animate=void 0===n.animate||n.animate}return e&&(r.__proto__=e),(r.prototype=Object.create(e&&e.prototype)).constructor=r,r.prototype.load=function(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof t.window.HTMLCanvasElement?this.options.canvas:t.window.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new t.ErrorEvent(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())},r.prototype.getCanvas=function(){return this.canvas},r.prototype.onAdd=function(t){this.map=t,this.load(),this.canvas&&this.animate&&this.play()},r.prototype.onRemove=function(){this.pause()},r.prototype.prepare=function(){var e=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,e=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,e=!0),!this._hasInvalidDimensions()&&0!==Object.keys(this.tiles).length){var r=this.map.painter.context,n=r.gl;for(var i in this.boundsBuffer||(this.boundsBuffer=r.createVertexBuffer(this._boundsArray,I.members)),this.boundsSegments||(this.boundsSegments=t.SegmentVector.simpleSegment(0,0,4,2)),this.texture?(e||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new t.Texture(r,this.canvas,n.RGBA,{premultiply:!0}),this.tiles){var a=this.tiles[i];"loaded"!==a.state&&(a.state="loaded",a.texture=this.texture)}}},r.prototype.serialize=function(){return{type:"canvas",coordinates:this.coordinates}},r.prototype.hasTransition=function(){return this._playing},r.prototype._hasInvalidDimensions=function(){for(var t=0,e=[this.canvas.width,this.canvas.height];tthis.max){var o=this._getAndRemoveByKey(this.order[0]);o&&this.onRemove(o)}return this},N.prototype.has=function(t){return t.wrapped().key in this.data},N.prototype.getAndRemove=function(t){return this.has(t)?this._getAndRemoveByKey(t.wrapped().key):null},N.prototype._getAndRemoveByKey=function(t){var e=this.data[t].shift();return e.timeout&&clearTimeout(e.timeout),0===this.data[t].length&&delete this.data[t],this.order.splice(this.order.indexOf(t),1),e.value},N.prototype.getByKey=function(t){var e=this.data[t];return e?e[0].value:null},N.prototype.get=function(t){return this.has(t)?this.data[t.wrapped().key][0].value:null},N.prototype.remove=function(t,e){if(!this.has(t))return this;var r=t.wrapped().key,n=void 0===e?0:this.data[r].indexOf(e),i=this.data[r][n];return this.data[r].splice(n,1),i.timeout&&clearTimeout(i.timeout),0===this.data[r].length&&delete this.data[r],this.onRemove(i.value),this.order.splice(this.order.indexOf(r),1),this},N.prototype.setMaxSize=function(t){for(this.max=t;this.order.length>this.max;){var e=this._getAndRemoveByKey(this.order[0]);e&&this.onRemove(e)}return this},N.prototype.filter=function(t){var e=[];for(var r in this.data)for(var n=0,i=this.data[r];n1||(Math.abs(r)>1&&(1===Math.abs(r+i)?r+=i:1===Math.abs(r-i)&&(r-=i)),e.dem&&t.dem&&(t.dem.backfillBorder(e.dem,r,n),t.neighboringTiles&&t.neighboringTiles[a]&&(t.neighboringTiles[a].backfilled=!0)))}},r.prototype.getTile=function(t){return this.getTileByID(t.key)},r.prototype.getTileByID=function(t){return this._tiles[t]},r.prototype._retainLoadedChildren=function(t,e,r,n){for(var i in this._tiles){var a=this._tiles[i];if(!(n[i]||!a.hasData()||a.tileID.overscaledZ<=e||a.tileID.overscaledZ>r)){for(var o=a.tileID;a&&a.tileID.overscaledZ>e+1;){var s=a.tileID.scaledTo(a.tileID.overscaledZ-1);(a=this._tiles[s.key])&&a.hasData()&&(o=s)}for(var l=o;l.overscaledZ>e;)if(t[(l=l.scaledTo(l.overscaledZ-1)).key]){n[o.key]=o;break}}}},r.prototype.findLoadedParent=function(t,e){if(t.key in this._loadedParentTiles){var r=this._loadedParentTiles[t.key];return r&&r.tileID.overscaledZ>=e?r:null}for(var n=t.overscaledZ-1;n>=e;n--){var i=t.scaledTo(n),a=this._getLoadedTile(i);if(a)return a}},r.prototype._getLoadedTile=function(t){var e=this._tiles[t.key];return e&&e.hasData()?e:this._cache.getByKey(t.wrapped().key)},r.prototype.updateCacheSize=function(t){var e=Math.ceil(t.width/this._source.tileSize)+1,r=Math.ceil(t.height/this._source.tileSize)+1,n=Math.floor(e*r*5),i="number"==typeof this._maxTileCacheSize?Math.min(this._maxTileCacheSize,n):n;this._cache.setMaxSize(i)},r.prototype.handleWrapJump=function(t){var e=Math.round((t-(void 0===this._prevLng?t:this._prevLng))/360);if(this._prevLng=t,e){var r={};for(var n in this._tiles){var i=this._tiles[n];i.tileID=i.tileID.unwrapTo(i.tileID.wrap+e),r[i.tileID.key]=i}for(var a in this._tiles=r,this._timers)clearTimeout(this._timers[a]),delete this._timers[a];for(var o in this._tiles)this._setTileReloadTimer(o,this._tiles[o])}},r.prototype.update=function(e){var n=this;if(this.transform=e,this._sourceLoaded&&!this._paused){var i;this.updateCacheSize(e),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used?this._source.tileID?i=e.getVisibleUnwrappedCoordinates(this._source.tileID).map((function(e){return new t.OverscaledTileID(e.canonical.z,e.wrap,e.canonical.z,e.canonical.x,e.canonical.y)})):(i=e.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}),this._source.hasTile&&(i=i.filter((function(t){return n._source.hasTile(t)})))):i=[];var a=e.coveringZoomLevel(this._source),o=Math.max(a-r.maxOverzooming,this._source.minzoom),s=Math.max(a+r.maxUnderzooming,this._source.minzoom),l=this._updateRetainedTiles(i,a);if(Pt(this._source.type)){for(var c={},u={},f=0,h=Object.keys(l);fthis._source.maxzoom){var m=d.children(this._source.maxzoom)[0],v=this.getTile(m);if(v&&v.hasData()){n[m.key]=m;continue}}else{var y=d.children(this._source.maxzoom);if(n[y[0].key]&&n[y[1].key]&&n[y[2].key]&&n[y[3].key])continue}for(var x=g.wasRequested(),b=d.overscaledZ-1;b>=a;--b){var _=d.scaledTo(b);if(i[_.key])break;if(i[_.key]=!0,!(g=this.getTile(_))&&x&&(g=this._addTile(_)),g&&(n[_.key]=_,x=g.wasRequested(),g.hasData()))break}}}return n},r.prototype._updateLoadedParentTileCache=function(){for(var t in this._loadedParentTiles={},this._tiles){for(var e=[],r=void 0,n=this._tiles[t].tileID;n.overscaledZ>0;){if(n.key in this._loadedParentTiles){r=this._loadedParentTiles[n.key];break}e.push(n.key);var i=n.scaledTo(n.overscaledZ-1);if(r=this._getLoadedTile(i))break;n=i}for(var a=0,o=e;a0||(e.hasData()&&"reloading"!==e.state?this._cache.add(e.tileID,e,e.getExpiryTimeout()):(e.aborted=!0,this._abortTile(e),this._unloadTile(e))))},r.prototype.clearTiles=function(){for(var t in this._shouldReloadOnResume=!1,this._paused=!1,this._tiles)this._removeTile(t);this._cache.reset()},r.prototype.tilesIn=function(e,r,n){var i=this,a=[],o=this.transform;if(!o)return a;for(var s=n?o.getCameraQueryGeometry(e):e,l=e.map((function(t){return o.pointCoordinate(t)})),c=s.map((function(t){return o.pointCoordinate(t)})),u=this.getIds(),f=1/0,h=1/0,p=-1/0,d=-1/0,g=0,m=c;g=0&&v[1].y+m>=0){var y=l.map((function(t){return s.getTilePoint(t)})),x=c.map((function(t){return s.getTilePoint(t)}));a.push({tile:n,tileID:s,queryGeometry:y,cameraQueryGeometry:x,scale:g})}}},x=0;x=t.browser.now())return!0}return!1},r.prototype.setFeatureState=function(t,e,r){this._state.updateState(t=t||"_geojsonTileLayer",e,r)},r.prototype.removeFeatureState=function(t,e,r){this._state.removeFeatureState(t=t||"_geojsonTileLayer",e,r)},r.prototype.getFeatureState=function(t,e){return this._state.getState(t=t||"_geojsonTileLayer",e)},r.prototype.setDependencies=function(t,e,r){var n=this._tiles[t];n&&n.setDependencies(e,r)},r.prototype.reloadTilesForDependencies=function(t,e){for(var r in this._tiles)this._tiles[r].hasDependency(t,e)&&this._reloadTile(r,"reloading");this._cache.filter((function(r){return!r.hasDependency(t,e)}))},r}(t.Evented);function It(t,e){var r=Math.abs(2*t.wrap)-+(t.wrap<0),n=Math.abs(2*e.wrap)-+(e.wrap<0);return t.overscaledZ-e.overscaledZ||n-r||e.canonical.y-t.canonical.y||e.canonical.x-t.canonical.x}function Pt(t){return"raster"===t||"image"===t||"video"===t}function zt(){return new t.window.Worker(Yi.workerUrl)}Lt.maxOverzooming=10,Lt.maxUnderzooming=3;var Ot="mapboxgl_preloaded_worker_pool",Dt=function(){this.active={}};Dt.prototype.acquire=function(t){if(!this.workers)for(this.workers=[];this.workers.length0?(i-o)/s:0;return this.points[a].mult(1-l).add(this.points[r].mult(l))};var Jt=function(t,e,r){var n=this.boxCells=[],i=this.circleCells=[];this.xCellCount=Math.ceil(t/r),this.yCellCount=Math.ceil(e/r);for(var a=0;a=-e[0]&&r<=e[0]&&n>=-e[1]&&n<=e[1]}function re(e,r,n,i,a,o,s,l){var c=i?e.textSizeData:e.iconSizeData,u=t.evaluateSizeForZoom(c,n.transform.zoom),f=[256/n.width*2+1,256/n.height*2+1],h=i?e.text.dynamicLayoutVertexArray:e.icon.dynamicLayoutVertexArray;h.clear();for(var p=e.lineVertexArray,d=i?e.text.placedSymbolArray:e.icon.placedSymbolArray,g=n.transform.width/n.transform.height,m=!1,v=0;vMath.abs(n.x-r.x)*i?{useVertical:!0}:(e===t.WritingMode.vertical?r.yn.x)?{needsFlipping:!0}:null}function ae(e,r,n,i,a,o,s,l,c,u,f,h,p,d){var g,m=r/24,v=e.lineOffsetX*m,y=e.lineOffsetY*m;if(e.numGlyphs>1){var x=e.glyphStartIndex+e.numGlyphs,b=e.lineStartIndex,_=e.lineStartIndex+e.lineLength,w=ne(m,l,v,y,n,f,h,e,c,o,p);if(!w)return{notEnoughRoom:!0};var T=$t(w.first.point,s).point,k=$t(w.last.point,s).point;if(i&&!n){var M=ie(e.writingMode,T,k,d);if(M)return M}g=[w.first];for(var A=e.glyphStartIndex+1;A0?L.point:oe(h,C,S,1,a),P=ie(e.writingMode,S,I,d);if(P)return P}var z=se(m*l.getoffsetX(e.glyphStartIndex),v,y,n,f,h,e.segment,e.lineStartIndex,e.lineStartIndex+e.lineLength,c,o,p);if(!z)return{notEnoughRoom:!0};g=[z]}for(var O=0,D=g;O0?1:-1,g=0;i&&(d*=-1,g=Math.PI),d<0&&(g+=Math.PI);for(var m=d>0?l+s:l+s+1,v=a,y=a,x=0,b=0,_=Math.abs(p),w=[];x+b<=_;){if((m+=d)=c)return null;if(y=v,w.push(v),void 0===(v=h[m])){var T=new t.Point(u.getx(m),u.gety(m)),k=$t(T,f);if(k.signedDistanceFromCamera>0)v=h[m]=k.point;else{var M=m-d;v=oe(0===x?o:new t.Point(u.getx(M),u.gety(M)),T,y,_-x+1,f)}}x+=b,b=y.dist(v)}var A=(_-x)/b,S=v.sub(y),E=S.mult(A)._add(y);E._add(S._unit()._perp()._mult(n*d));var C=g+Math.atan2(v.y-y.y,v.x-y.x);return w.push(E),{point:E,angle:C,path:w}}Jt.prototype.keysLength=function(){return this.boxKeys.length+this.circleKeys.length},Jt.prototype.insert=function(t,e,r,n,i){this._forEachCell(e,r,n,i,this._insertBoxCell,this.boxUid++),this.boxKeys.push(t),this.bboxes.push(e),this.bboxes.push(r),this.bboxes.push(n),this.bboxes.push(i)},Jt.prototype.insertCircle=function(t,e,r,n){this._forEachCell(e-n,r-n,e+n,r+n,this._insertCircleCell,this.circleUid++),this.circleKeys.push(t),this.circles.push(e),this.circles.push(r),this.circles.push(n)},Jt.prototype._insertBoxCell=function(t,e,r,n,i,a){this.boxCells[i].push(a)},Jt.prototype._insertCircleCell=function(t,e,r,n,i,a){this.circleCells[i].push(a)},Jt.prototype._query=function(t,e,r,n,i,a){if(r<0||t>this.width||n<0||e>this.height)return!i&&[];var o=[];if(t<=0&&e<=0&&this.width<=r&&this.height<=n){if(i)return!0;for(var s=0;s0:o},Jt.prototype._queryCircle=function(t,e,r,n,i){var a=t-r,o=t+r,s=e-r,l=e+r;if(o<0||a>this.width||l<0||s>this.height)return!n&&[];var c=[];return this._forEachCell(a,s,o,l,this._queryCellCircle,c,{hitTest:n,circle:{x:t,y:e,radius:r},seenUids:{box:{},circle:{}}},i),n?c.length>0:c},Jt.prototype.query=function(t,e,r,n,i){return this._query(t,e,r,n,!1,i)},Jt.prototype.hitTest=function(t,e,r,n,i){return this._query(t,e,r,n,!0,i)},Jt.prototype.hitTestCircle=function(t,e,r,n){return this._queryCircle(t,e,r,!0,n)},Jt.prototype._queryCell=function(t,e,r,n,i,a,o,s){var l=o.seenUids,c=this.boxCells[i];if(null!==c)for(var u=this.bboxes,f=0,h=c;f=u[d+0]&&n>=u[d+1]&&(!s||s(this.boxKeys[p]))){if(o.hitTest)return a.push(!0),!0;a.push({key:this.boxKeys[p],x1:u[d],y1:u[d+1],x2:u[d+2],y2:u[d+3]})}}}var g=this.circleCells[i];if(null!==g)for(var m=this.circles,v=0,y=g;vo*o+s*s},Jt.prototype._circleAndRectCollide=function(t,e,r,n,i,a,o){var s=(a-n)/2,l=Math.abs(t-(n+s));if(l>s+r)return!1;var c=(o-i)/2,u=Math.abs(e-(i+c));if(u>c+r)return!1;if(l<=s||u<=c)return!0;var f=l-s,h=u-c;return f*f+h*h<=r*r};var le=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function ce(t,e){for(var r=0;r=1;I--)L.push(E.path[I]);for(var P=1;P0){for(var R=L[0].clone(),F=L[0].clone(),B=1;B=M.x&&F.x<=A.x&&R.y>=M.y&&F.y<=A.y?[L]:F.xA.x||F.yA.y?[]:t.clipLine([L],M.x,M.y,A.x,A.y)}for(var N=0,j=D;N=this.screenRightBoundary||n<100||e>this.screenBottomBoundary},fe.prototype.isInsideGrid=function(t,e,r,n){return r>=0&&t=0&&e0?(this.prevPlacement&&this.prevPlacement.variableOffsets[f.crossTileID]&&this.prevPlacement.placements[f.crossTileID]&&this.prevPlacement.placements[f.crossTileID].text&&(g=this.prevPlacement.variableOffsets[f.crossTileID].anchor),this.variableOffsets[f.crossTileID]={textOffset:m,width:r,height:n,anchor:t,textBoxScale:i,prevAnchor:g},this.markUsedJustification(h,t,f,p),h.allowVerticalPlacement&&(this.markUsedOrientation(h,p,f),this.placedOrientations[f.crossTileID]=p),{shift:v,placedGlyphBoxes:y}):void 0},_e.prototype.placeLayerBucketPart=function(e,r,n){var i=this,a=e.parameters,o=a.bucket,s=a.layout,l=a.posMatrix,c=a.textLabelPlaneMatrix,u=a.labelToScreenMatrix,f=a.textPixelRatio,h=a.holdingForFade,p=a.collisionBoxArray,d=a.partiallyEvaluatedTextSize,g=a.collisionGroup,m=s.get("text-optional"),v=s.get("icon-optional"),y=s.get("text-allow-overlap"),x=s.get("icon-allow-overlap"),b="map"===s.get("text-rotation-alignment"),_="map"===s.get("text-pitch-alignment"),w="none"!==s.get("icon-text-fit"),T="viewport-y"===s.get("symbol-z-order"),k=y&&(x||!o.hasIconData()||v),M=x&&(y||!o.hasTextData()||m);!o.collisionArrays&&p&&o.deserializeCollisionBoxes(p);var A=function(e,a){if(!r[e.crossTileID])if(h)i.placements[e.crossTileID]=new ge(!1,!1,!1);else{var p,T=!1,A=!1,S=!0,E=null,C={box:null,offscreen:null},L={box:null,offscreen:null},I=null,P=null,z=0,O=0,D=0;a.textFeatureIndex?z=a.textFeatureIndex:e.useRuntimeCollisionCircles&&(z=e.featureIndex),a.verticalTextFeatureIndex&&(O=a.verticalTextFeatureIndex);var R=a.textBox;if(R){var F=function(r){var n=t.WritingMode.horizontal;if(o.allowVerticalPlacement&&!r&&i.prevPlacement){var a=i.prevPlacement.placedOrientations[e.crossTileID];a&&(i.placedOrientations[e.crossTileID]=a,i.markUsedOrientation(o,n=a,e))}return n},B=function(r,n){if(o.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&a.verticalTextBox)for(var i=0,s=o.writingModes;i0&&(N=N.filter((function(t){return t!==j.anchor}))).unshift(j.anchor)}var U=function(t,r,n){for(var a=t.x2-t.x1,s=t.y2-t.y1,c=e.textBoxScale,u=w&&!x?r:null,h={box:[],offscreen:!1},p=y?2*N.length:N.length,d=0;d=N.length,e,o,n,u);if(m&&(h=m.placedGlyphBoxes)&&h.box&&h.box.length){T=!0,E=m.shift;break}}return h};B((function(){return U(R,a.iconBox,t.WritingMode.horizontal)}),(function(){var r=a.verticalTextBox;return o.allowVerticalPlacement&&!(C&&C.box&&C.box.length)&&e.numVerticalGlyphVertices>0&&r?U(r,a.verticalIconBox,t.WritingMode.vertical):{box:null,offscreen:null}})),C&&(T=C.box,S=C.offscreen);var V=F(C&&C.box);if(!T&&i.prevPlacement){var q=i.prevPlacement.variableOffsets[e.crossTileID];q&&(i.variableOffsets[e.crossTileID]=q,i.markUsedJustification(o,q.anchor,e,V))}}else{var H=function(t,r){var n=i.collisionIndex.placeCollisionBox(t,y,f,l,g.predicate);return n&&n.box&&n.box.length&&(i.markUsedOrientation(o,r,e),i.placedOrientations[e.crossTileID]=r),n};B((function(){return H(R,t.WritingMode.horizontal)}),(function(){var r=a.verticalTextBox;return o.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&r?H(r,t.WritingMode.vertical):{box:null,offscreen:null}})),F(C&&C.box&&C.box.length)}}if(T=(p=C)&&p.box&&p.box.length>0,S=p&&p.offscreen,e.useRuntimeCollisionCircles){var G=o.text.placedSymbolArray.get(e.centerJustifiedTextSymbolIndex),Y=t.evaluateSizeForFeature(o.textSizeData,d,G),W=s.get("text-padding");I=i.collisionIndex.placeCollisionCircles(y,G,o.lineVertexArray,o.glyphOffsetArray,Y,l,c,u,n,_,g.predicate,e.collisionCircleDiameter,W),T=y||I.circles.length>0&&!I.collisionDetected,S=S&&I.offscreen}if(a.iconFeatureIndex&&(D=a.iconFeatureIndex),a.iconBox){var X=function(t){var e=w&&E?be(t,E.x,E.y,b,_,i.transform.angle):t;return i.collisionIndex.placeCollisionBox(e,x,f,l,g.predicate)};A=L&&L.box&&L.box.length&&a.verticalIconBox?(P=X(a.verticalIconBox)).box.length>0:(P=X(a.iconBox)).box.length>0,S=S&&P.offscreen}var Z=m||0===e.numHorizontalGlyphVertices&&0===e.numVerticalGlyphVertices,J=v||0===e.numIconVertices;if(Z||J?J?Z||(A=A&&T):T=A&&T:A=T=A&&T,T&&p&&p.box&&i.collisionIndex.insertCollisionBox(p.box,s.get("text-ignore-placement"),o.bucketInstanceId,L&&L.box&&O?O:z,g.ID),A&&P&&i.collisionIndex.insertCollisionBox(P.box,s.get("icon-ignore-placement"),o.bucketInstanceId,D,g.ID),I&&(T&&i.collisionIndex.insertCollisionCircles(I.circles,s.get("text-ignore-placement"),o.bucketInstanceId,z,g.ID),n)){var K=o.bucketInstanceId,Q=i.collisionCircleArrays[K];void 0===Q&&(Q=i.collisionCircleArrays[K]=new me);for(var $=0;$=0;--E){var C=S[E];A(o.symbolInstances.get(C),o.collisionArrays[C])}else for(var L=e.symbolInstanceStart;L=0&&(e.text.placedSymbolArray.get(l).crossTileID=a>=0&&l!==a?0:n.crossTileID)}},_e.prototype.markUsedOrientation=function(e,r,n){for(var i=r===t.WritingMode.horizontal||r===t.WritingMode.horizontalOnly?r:0,a=r===t.WritingMode.vertical?r:0,o=0,s=[n.leftJustifiedTextSymbolIndex,n.centerJustifiedTextSymbolIndex,n.rightJustifiedTextSymbolIndex];o0,y=i.placedOrientations[a.crossTileID],x=y===t.WritingMode.vertical,b=y===t.WritingMode.horizontal||y===t.WritingMode.horizontalOnly;if(s>0||l>0){var _=Le(m.text);d(e.text,s,x?Ie:_),d(e.text,l,b?Ie:_);var w=m.text.isHidden();[a.rightJustifiedTextSymbolIndex,a.centerJustifiedTextSymbolIndex,a.leftJustifiedTextSymbolIndex].forEach((function(t){t>=0&&(e.text.placedSymbolArray.get(t).hidden=w||x?1:0)})),a.verticalPlacedTextSymbolIndex>=0&&(e.text.placedSymbolArray.get(a.verticalPlacedTextSymbolIndex).hidden=w||b?1:0);var T=i.variableOffsets[a.crossTileID];T&&i.markUsedJustification(e,T.anchor,a,y);var k=i.placedOrientations[a.crossTileID];k&&(i.markUsedJustification(e,"left",a,k),i.markUsedOrientation(e,k,a))}if(v){var M=Le(m.icon),A=!(h&&a.verticalPlacedIconSymbolIndex&&x);a.placedIconSymbolIndex>=0&&(d(e.icon,a.numIconVertices,A?M:Ie),e.icon.placedSymbolArray.get(a.placedIconSymbolIndex).hidden=m.icon.isHidden()),a.verticalPlacedIconSymbolIndex>=0&&(d(e.icon,a.numVerticalIconVertices,A?Ie:M),e.icon.placedSymbolArray.get(a.verticalPlacedIconSymbolIndex).hidden=m.icon.isHidden())}if(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData()){var S=e.collisionArrays[n];if(S){var E=new t.Point(0,0);if(S.textBox||S.verticalTextBox){var C=!0;if(c){var L=i.variableOffsets[g];L?(E=xe(L.anchor,L.width,L.height,L.textOffset,L.textBoxScale),u&&E._rotate(f?i.transform.angle:-i.transform.angle)):C=!1}S.textBox&&we(e.textCollisionBox.collisionVertexArray,m.text.placed,!C||x,E.x,E.y),S.verticalTextBox&&we(e.textCollisionBox.collisionVertexArray,m.text.placed,!C||b,E.x,E.y)}var I=Boolean(!b&&S.verticalIconBox);S.iconBox&&we(e.iconCollisionBox.collisionVertexArray,m.icon.placed,I,h?E.x:0,h?E.y:0),S.verticalIconBox&&we(e.iconCollisionBox.collisionVertexArray,m.icon.placed,!I,h?E.x:0,h?E.y:0)}}},m=0;mt},_e.prototype.setStale=function(){this.stale=!0};var Te=Math.pow(2,25),ke=Math.pow(2,24),Me=Math.pow(2,17),Ae=Math.pow(2,16),Se=Math.pow(2,9),Ee=Math.pow(2,8),Ce=Math.pow(2,1);function Le(t){if(0===t.opacity&&!t.placed)return 0;if(1===t.opacity&&t.placed)return 4294967295;var e=t.placed?1:0,r=Math.floor(127*t.opacity);return r*Te+e*ke+r*Me+e*Ae+r*Se+e*Ee+r*Ce+e}var Ie=0,Pe=function(t){this._sortAcrossTiles="viewport-y"!==t.layout.get("symbol-z-order")&&void 0!==t.layout.get("symbol-sort-key").constantOr(1),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]};Pe.prototype.continuePlacement=function(t,e,r,n,i){for(var a=this._bucketParts;this._currentTileIndex2};this._currentPlacementIndex>=0;){var s=r[e[this._currentPlacementIndex]],l=this.placement.collisionIndex.transform.zoom;if("symbol"===s.type&&(!s.minzoom||s.minzoom<=l)&&(!s.maxzoom||s.maxzoom>l)){if(this._inProgressLayer||(this._inProgressLayer=new Pe(s)),this._inProgressLayer.continuePlacement(n[s.source],this.placement,this._showCollisionBoxes,s,o))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0},ze.prototype.commit=function(t){return this.placement.commit(t),this.placement};var Oe=512/t.EXTENT/2,De=function(t,e,r){this.tileID=t,this.indexedSymbolInstances={},this.bucketInstanceId=r;for(var n=0;nt.overscaledZ)for(var s in o){var l=o[s];l.tileID.isChildOf(t)&&l.findMatches(e.symbolInstances,t,i)}else{var c=o[t.scaledTo(Number(a)).key];c&&c.findMatches(e.symbolInstances,t,i)}}for(var u=0;u1?"@2x":"",l=t.getJSON(r.transformRequest(r.normalizeSpriteURL(e,s,".json"),t.ResourceType.SpriteJSON),(function(t,e){l=null,o||(o=t,i=e,u())})),c=t.getImage(r.transformRequest(r.normalizeSpriteURL(e,s,".png"),t.ResourceType.SpriteImage),(function(t,e){c=null,o||(o=t,a=e,u())}));function u(){if(o)n(o);else if(i&&a){var e=t.browser.getImageData(a),r={};for(var s in i){var l=i[s],c=l.width,u=l.height,f=l.x,h=l.y,p=l.sdf,d=l.pixelRatio,g=l.stretchX,m=l.stretchY,v=l.content,y=new t.RGBAImage({width:c,height:u});t.RGBAImage.copy(e,y,{x:f,y:h},{x:0,y:0},{width:c,height:u}),r[s]={data:y,pixelRatio:d,sdf:p,stretchX:g,stretchY:m,content:v}}n(null,r)}}return{cancel:function(){l&&(l.cancel(),l=null),c&&(c.cancel(),c=null)}}}(e,this.map._requestManager,(function(e,n){if(r._spriteRequest=null,e)r.fire(new t.ErrorEvent(e));else if(n)for(var i in n)r.imageManager.addImage(i,n[i]);r.imageManager.setLoaded(!0),r._availableImages=r.imageManager.listImages(),r.dispatcher.broadcast("setImages",r._availableImages),r.fire(new t.Event("data",{dataType:"style"}))}))},r.prototype._validateLayer=function(e){var r=this.sourceCaches[e.source];if(r){var n=e.sourceLayer;if(n){var i=r.getSource();("geojson"===i.type||i.vectorLayerIds&&-1===i.vectorLayerIds.indexOf(n))&&this.fire(new t.ErrorEvent(new Error('Source layer "'+n+'" does not exist on source "'+i.id+'" as specified by style layer "'+e.id+'"')))}}},r.prototype.loaded=function(){if(!this._loaded)return!1;if(Object.keys(this._updatedSources).length)return!1;for(var t in this.sourceCaches)if(!this.sourceCaches[t].loaded())return!1;return!!this.imageManager.isLoaded()},r.prototype._serializeLayers=function(t){for(var e=[],r=0,n=t;r0)throw new Error("Unimplemented: "+i.map((function(t){return t.command})).join(", ")+".");return n.forEach((function(t){"setTransition"!==t.command&&r[t.command].apply(r,t.args)})),this.stylesheet=e,!0},r.prototype.addImage=function(e,r){if(this.getImage(e))return this.fire(new t.ErrorEvent(new Error("An image with this name already exists.")));this.imageManager.addImage(e,r),this._availableImages=this.imageManager.listImages(),this._changedImages[e]=!0,this._changed=!0,this.fire(new t.Event("data",{dataType:"style"}))},r.prototype.updateImage=function(t,e){this.imageManager.updateImage(t,e)},r.prototype.getImage=function(t){return this.imageManager.getImage(t)},r.prototype.removeImage=function(e){if(!this.getImage(e))return this.fire(new t.ErrorEvent(new Error("No image with this name exists.")));this.imageManager.removeImage(e),this._availableImages=this.imageManager.listImages(),this._changedImages[e]=!0,this._changed=!0,this.fire(new t.Event("data",{dataType:"style"}))},r.prototype.listImages=function(){return this._checkLoaded(),this.imageManager.listImages()},r.prototype.addSource=function(e,r,n){var i=this;if(void 0===n&&(n={}),this._checkLoaded(),void 0!==this.sourceCaches[e])throw new Error("There is already a source with this ID");if(!r.type)throw new Error("The type property must be defined, but the only the following properties were given: "+Object.keys(r).join(", ")+".");if(!(["vector","raster","geojson","video","image"].indexOf(r.type)>=0&&this._validate(t.validateStyle.source,"sources."+e,r,null,n))){this.map&&this.map._collectResourceTiming&&(r.collectResourceTiming=!0);var a=this.sourceCaches[e]=new Lt(e,r,this.dispatcher);a.style=this,a.setEventedParent(this,(function(){return{isSourceLoaded:i.loaded(),source:a.serialize(),sourceId:e}})),a.onAdd(this.map),this._changed=!0}},r.prototype.removeSource=function(e){if(this._checkLoaded(),void 0===this.sourceCaches[e])throw new Error("There is no source with this ID");for(var r in this._layers)if(this._layers[r].source===e)return this.fire(new t.ErrorEvent(new Error('Source "'+e+'" cannot be removed while layer "'+r+'" is using it.')));var n=this.sourceCaches[e];delete this.sourceCaches[e],delete this._updatedSources[e],n.fire(new t.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:e})),n.setEventedParent(null),n.clearTiles(),n.onRemove&&n.onRemove(this.map),this._changed=!0},r.prototype.setGeoJSONSourceData=function(t,e){this._checkLoaded(),this.sourceCaches[t].getSource().setData(e),this._changed=!0},r.prototype.getSource=function(t){return this.sourceCaches[t]&&this.sourceCaches[t].getSource()},r.prototype.addLayer=function(e,r,n){void 0===n&&(n={}),this._checkLoaded();var i=e.id;if(this.getLayer(i))this.fire(new t.ErrorEvent(new Error('Layer with id "'+i+'" already exists on this map')));else{var a;if("custom"===e.type){if(Ne(this,t.validateCustomStyleLayer(e)))return;a=t.createStyleLayer(e)}else{if("object"==typeof e.source&&(this.addSource(i,e.source),e=t.clone$1(e),e=t.extend(e,{source:i})),this._validate(t.validateStyle.layer,"layers."+i,e,{arrayIndex:-1},n))return;a=t.createStyleLayer(e),this._validateLayer(a),a.setEventedParent(this,{layer:{id:i}}),this._serializedLayers[a.id]=a.serialize()}var o=r?this._order.indexOf(r):this._order.length;if(r&&-1===o)this.fire(new t.ErrorEvent(new Error('Layer with id "'+r+'" does not exist on this map.')));else{if(this._order.splice(o,0,i),this._layerOrderChanged=!0,this._layers[i]=a,this._removedLayers[i]&&a.source&&"custom"!==a.type){var s=this._removedLayers[i];delete this._removedLayers[i],s.type!==a.type?this._updatedSources[a.source]="clear":(this._updatedSources[a.source]="reload",this.sourceCaches[a.source].pause())}this._updateLayer(a),a.onAdd&&a.onAdd(this.map)}}},r.prototype.moveLayer=function(e,r){if(this._checkLoaded(),this._changed=!0,this._layers[e]){if(e!==r){var n=this._order.indexOf(e);this._order.splice(n,1);var i=r?this._order.indexOf(r):this._order.length;r&&-1===i?this.fire(new t.ErrorEvent(new Error('Layer with id "'+r+'" does not exist on this map.'))):(this._order.splice(i,0,e),this._layerOrderChanged=!0)}}else this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be moved.")))},r.prototype.removeLayer=function(e){this._checkLoaded();var r=this._layers[e];if(r){r.setEventedParent(null);var n=this._order.indexOf(e);this._order.splice(n,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[e]=r,delete this._layers[e],delete this._serializedLayers[e],delete this._updatedLayers[e],delete this._updatedPaintProps[e],r.onRemove&&r.onRemove(this.map)}else this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be removed.")))},r.prototype.getLayer=function(t){return this._layers[t]},r.prototype.hasLayer=function(t){return t in this._layers},r.prototype.setLayerZoomRange=function(e,r,n){this._checkLoaded();var i=this.getLayer(e);i?i.minzoom===r&&i.maxzoom===n||(null!=r&&(i.minzoom=r),null!=n&&(i.maxzoom=n),this._updateLayer(i)):this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot have zoom extent.")))},r.prototype.setFilter=function(e,r,n){void 0===n&&(n={}),this._checkLoaded();var i=this.getLayer(e);if(i){if(!t.deepEqual(i.filter,r))return null==r?(i.filter=void 0,void this._updateLayer(i)):void(this._validate(t.validateStyle.filter,"layers."+i.id+".filter",r,null,n)||(i.filter=t.clone$1(r),this._updateLayer(i)))}else this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be filtered.")))},r.prototype.getFilter=function(e){return t.clone$1(this.getLayer(e).filter)},r.prototype.setLayoutProperty=function(e,r,n,i){void 0===i&&(i={}),this._checkLoaded();var a=this.getLayer(e);a?t.deepEqual(a.getLayoutProperty(r),n)||(a.setLayoutProperty(r,n,i),this._updateLayer(a)):this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be styled.")))},r.prototype.getLayoutProperty=function(e,r){var n=this.getLayer(e);if(n)return n.getLayoutProperty(r);this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style.")))},r.prototype.setPaintProperty=function(e,r,n,i){void 0===i&&(i={}),this._checkLoaded();var a=this.getLayer(e);a?t.deepEqual(a.getPaintProperty(r),n)||(a.setPaintProperty(r,n,i)&&this._updateLayer(a),this._changed=!0,this._updatedPaintProps[e]=!0):this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be styled.")))},r.prototype.getPaintProperty=function(t,e){return this.getLayer(t).getPaintProperty(e)},r.prototype.setFeatureState=function(e,r){this._checkLoaded();var n=e.source,i=e.sourceLayer,a=this.sourceCaches[n];if(void 0!==a){var o=a.getSource().type;"geojson"===o&&i?this.fire(new t.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):"vector"!==o||i?(void 0===e.id&&this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))),a.setFeatureState(i,e.id,r)):this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new t.ErrorEvent(new Error("The source '"+n+"' does not exist in the map's style.")))},r.prototype.removeFeatureState=function(e,r){this._checkLoaded();var n=e.source,i=this.sourceCaches[n];if(void 0!==i){var a=i.getSource().type,o="vector"===a?e.sourceLayer:void 0;"vector"!==a||o?r&&"string"!=typeof e.id&&"number"!=typeof e.id?this.fire(new t.ErrorEvent(new Error("A feature id is requred to remove its specific state property."))):i.removeFeatureState(o,e.id,r):this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new t.ErrorEvent(new Error("The source '"+n+"' does not exist in the map's style.")))},r.prototype.getFeatureState=function(e){this._checkLoaded();var r=e.source,n=e.sourceLayer,i=this.sourceCaches[r];if(void 0!==i){if("vector"!==i.getSource().type||n)return void 0===e.id&&this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))),i.getFeatureState(n,e.id);this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new t.ErrorEvent(new Error("The source '"+r+"' does not exist in the map's style.")))},r.prototype.getTransition=function(){return t.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},r.prototype.serialize=function(){return t.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,sources:t.mapObject(this.sourceCaches,(function(t){return t.serialize()})),layers:this._serializeLayers(this._order)},(function(t){return void 0!==t}))},r.prototype._updateLayer=function(t){this._updatedLayers[t.id]=!0,t.source&&!this._updatedSources[t.source]&&"raster"!==this.sourceCaches[t.source].getSource().type&&(this._updatedSources[t.source]="reload",this.sourceCaches[t.source].pause()),this._changed=!0},r.prototype._flattenAndSortRenderedFeatures=function(t){for(var e=this,r=function(t){return"fill-extrusion"===e._layers[t].type},n={},i=[],a=this._order.length-1;a>=0;a--){var o=this._order[a];if(r(o)){n[o]=a;for(var s=0,l=t;s=0;p--){var d=this._order[p];if(r(d))for(var g=i.length-1;g>=0;g--){var m=i[g].feature;if(n[m.layer.id] 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}","attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,0.0,1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}"),$e=vr("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}","attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"),tr=vr("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}","attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,0,1);}"),er=vr("#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_FragColor=color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);}"),rr=vr("varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}"),nr=vr("uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}"),ir=vr("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}"),ar=vr("varying vec4 v_color;void main() {gl_FragColor=v_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec4 v_color;\n#pragma mapbox: define highp float base\n#pragma mapbox: define highp float height\n#pragma mapbox: define highp vec4 color\nvoid main() {\n#pragma mapbox: initialize highp float base\n#pragma mapbox: initialize highp float height\n#pragma mapbox: initialize highp vec4 color\nvec3 normal=a_normal_ed.xyz;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}"),or=vr("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0\n? a_pos\n: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}"),sr=vr("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform float u_maxzoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggeration=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/ pow(2.0,(u_zoom-u_maxzoom)*exaggeration+19.2562-u_zoom);gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),lr=vr("uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;\n#define PI 3.141592653589793\nvoid main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}"),cr=vr("uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}"),ur=vr("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp float v_lineprogress;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,vec2(v_lineprogress,0.5));gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define MAX_LINE_DISTANCE 32767.0\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_lineprogress;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_lineprogress=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0/MAX_LINE_DISTANCE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}"),fr=vr("uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}"),hr=vr("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}"),pr=vr("uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}"),dr=vr("uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),0.0,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));}"),gr=vr("#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}"),mr=vr("#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}");function vr(t,e){var r=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,n={};return{fragmentSource:t=t.replace(r,(function(t,e,r,i,a){return n[a]=!0,"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nvarying "+r+" "+i+" "+a+";\n#else\nuniform "+r+" "+i+" u_"+a+";\n#endif\n":"\n#ifdef HAS_UNIFORM_u_"+a+"\n "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n"})),vertexSource:e=e.replace(r,(function(t,e,r,i,a){var o="float"===i?"vec2":"vec4",s=a.match(/color/)?"color":o;return n[a]?"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nuniform lowp float u_"+a+"_t;\nattribute "+r+" "+o+" a_"+a+";\nvarying "+r+" "+i+" "+a+";\n#else\nuniform "+r+" "+i+" u_"+a+";\n#endif\n":"vec4"===s?"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+a+" = a_"+a+";\n#else\n "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n":"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+a+" = unpack_mix_"+s+"(a_"+a+", u_"+a+"_t);\n#else\n "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n":"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nuniform lowp float u_"+a+"_t;\nattribute "+r+" "+o+" a_"+a+";\n#else\nuniform "+r+" "+i+" u_"+a+";\n#endif\n":"vec4"===s?"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+r+" "+i+" "+a+" = a_"+a+";\n#else\n "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n":"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+r+" "+i+" "+a+" = unpack_mix_"+s+"(a_"+a+", u_"+a+"_t);\n#else\n "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n"}))}}var yr=Object.freeze({__proto__:null,prelude:Ge,background:Ye,backgroundPattern:We,circle:Xe,clippingMask:Ze,heatmap:Je,heatmapTexture:Ke,collisionBox:Qe,collisionCircle:$e,debug:tr,fill:er,fillOutline:rr,fillOutlinePattern:nr,fillPattern:ir,fillExtrusion:ar,fillExtrusionPattern:or,hillshadePrepare:sr,hillshade:lr,line:cr,lineGradient:ur,linePattern:fr,lineSDF:hr,raster:pr,symbolIcon:dr,symbolSDF:gr,symbolTextAndIcon:mr}),xr=function(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null};xr.prototype.bind=function(t,e,r,n,i,a,o,s){this.context=t;for(var l=this.boundPaintVertexBuffers.length!==n.length,c=0;!l&&c>16,s>>16],u_pixel_coord_lower:[65535&o,65535&s]}}br.prototype.draw=function(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,g){var m,v=t.gl;if(!this.failedToCreate){for(var y in t.program.set(this.program),t.setDepthMode(r),t.setStencilMode(n),t.setColorMode(i),t.setCullFace(a),this.fixedUniforms)this.fixedUniforms[y].set(o[y]);p&&p.setUniforms(t,this.binderUniforms,f,{zoom:h});for(var x=(m={},m[v.LINES]=2,m[v.TRIANGLES]=3,m[v.LINE_STRIP]=1,m)[e],b=0,_=u.get();b<_.length;b+=1){var w=_[b],T=w.vaos||(w.vaos={});(T[s]||(T[s]=new xr)).bind(t,this,l,p?p.getPaintVertexBuffers():[],c,w.vertexOffset,d,g),v.drawElements(e,w.primitiveLength*x,v.UNSIGNED_SHORT,w.primitiveOffset*x*2)}}};var wr=function(e,r,n,i){var a=r.style.light,o=a.properties.get("position"),s=[o.x,o.y,o.z],l=t.create$1();"viewport"===a.properties.get("anchor")&&t.fromRotation(l,-r.transform.angle),t.transformMat3(s,s,l);var c=a.properties.get("color");return{u_matrix:e,u_lightpos:s,u_lightintensity:a.properties.get("intensity"),u_lightcolor:[c.r,c.g,c.b],u_vertical_gradient:+n,u_opacity:i}},Tr=function(e,r,n,i,a,o,s){return t.extend(wr(e,r,n,i),_r(o,r,s),{u_height_factor:-Math.pow(2,a.overscaledZ)/s.tileSize/8})},kr=function(t){return{u_matrix:t}},Mr=function(e,r,n,i){return t.extend(kr(e),_r(n,r,i))},Ar=function(t,e){return{u_matrix:t,u_world:e}},Sr=function(e,r,n,i,a){return t.extend(Mr(e,r,n,i),{u_world:a})},Er=function(e,r,n,i){var a,o,s=e.transform;if("map"===i.paint.get("circle-pitch-alignment")){var l=he(n,1,s.zoom);a=!0,o=[l,l]}else a=!1,o=s.pixelsToGLUnits;return{u_camera_to_center_distance:s.cameraToCenterDistance,u_scale_with_map:+("map"===i.paint.get("circle-pitch-scale")),u_matrix:e.translatePosMatrix(r.posMatrix,n,i.paint.get("circle-translate"),i.paint.get("circle-translate-anchor")),u_pitch_with_map:+a,u_device_pixel_ratio:t.browser.devicePixelRatio,u_extrude_scale:o}},Cr=function(t,e,r){var n=he(r,1,e.zoom),i=Math.pow(2,e.zoom-r.tileID.overscaledZ),a=r.tileID.overscaleFactor();return{u_matrix:t,u_camera_to_center_distance:e.cameraToCenterDistance,u_pixels_to_tile_units:n,u_extrude_scale:[e.pixelsToGLUnits[0]/(n*i),e.pixelsToGLUnits[1]/(n*i)],u_overscale_factor:a}},Lr=function(t,e,r){return{u_matrix:t,u_inv_matrix:e,u_camera_to_center_distance:r.cameraToCenterDistance,u_viewport_size:[r.width,r.height]}},Ir=function(t,e,r){return void 0===r&&(r=1),{u_matrix:t,u_color:e,u_overlay:0,u_overlay_scale:r}},Pr=function(t){return{u_matrix:t}},zr=function(t,e,r,n){return{u_matrix:t,u_extrude_scale:he(e,1,r),u_intensity:n}},Or=function(e,r,n){var i=e.transform;return{u_matrix:Nr(e,r,n),u_ratio:1/he(r,1,i.zoom),u_device_pixel_ratio:t.browser.devicePixelRatio,u_units_to_pixels:[1/i.pixelsToGLUnits[0],1/i.pixelsToGLUnits[1]]}},Dr=function(e,r,n){return t.extend(Or(e,r,n),{u_image:0})},Rr=function(e,r,n,i){var a=e.transform,o=Br(r,a);return{u_matrix:Nr(e,r,n),u_texsize:r.imageAtlasTexture.size,u_ratio:1/he(r,1,a.zoom),u_device_pixel_ratio:t.browser.devicePixelRatio,u_image:0,u_scale:[o,i.fromScale,i.toScale],u_fade:i.t,u_units_to_pixels:[1/a.pixelsToGLUnits[0],1/a.pixelsToGLUnits[1]]}},Fr=function(e,r,n,i,a){var o=e.lineAtlas,s=Br(r,e.transform),l="round"===n.layout.get("line-cap"),c=o.getDash(i.from,l),u=o.getDash(i.to,l),f=c.width*a.fromScale,h=u.width*a.toScale;return t.extend(Or(e,r,n),{u_patternscale_a:[s/f,-c.height/2],u_patternscale_b:[s/h,-u.height/2],u_sdfgamma:o.width/(256*Math.min(f,h)*t.browser.devicePixelRatio)/2,u_image:0,u_tex_y_a:c.y,u_tex_y_b:u.y,u_mix:a.t})};function Br(t,e){return 1/he(t,1,e.tileZoom)}function Nr(t,e,r){return t.translatePosMatrix(e.tileID.posMatrix,e,r.paint.get("line-translate"),r.paint.get("line-translate-anchor"))}var jr=function(t,e,r,n,i){return{u_matrix:t,u_tl_parent:e,u_scale_parent:r,u_buffer_scale:1,u_fade_t:n.mix,u_opacity:n.opacity*i.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:i.paint.get("raster-brightness-min"),u_brightness_high:i.paint.get("raster-brightness-max"),u_saturation_factor:(o=i.paint.get("raster-saturation"),o>0?1-1/(1.001-o):-o),u_contrast_factor:(a=i.paint.get("raster-contrast"),a>0?1/(1-a):1+a),u_spin_weights:Ur(i.paint.get("raster-hue-rotate"))};var a,o};function Ur(t){t*=Math.PI/180;var e=Math.sin(t),r=Math.cos(t);return[(2*r+1)/3,(-Math.sqrt(3)*e-r+1)/3,(Math.sqrt(3)*e-r+1)/3]}var Vr,qr=function(t,e,r,n,i,a,o,s,l,c){var u=i.transform;return{u_is_size_zoom_constant:+("constant"===t||"source"===t),u_is_size_feature_constant:+("constant"===t||"camera"===t),u_size_t:e?e.uSizeT:0,u_size:e?e.uSize:0,u_camera_to_center_distance:u.cameraToCenterDistance,u_pitch:u.pitch/360*2*Math.PI,u_rotate_symbol:+r,u_aspect_ratio:u.width/u.height,u_fade_change:i.options.fadeDuration?i.symbolFadeChange:1,u_matrix:a,u_label_plane_matrix:o,u_coord_matrix:s,u_is_text:+l,u_pitch_with_map:+n,u_texsize:c,u_texture:0}},Hr=function(e,r,n,i,a,o,s,l,c,u,f){var h=a.transform;return t.extend(qr(e,r,n,i,a,o,s,l,c,u),{u_gamma_scale:i?Math.cos(h._pitch)*h.cameraToCenterDistance:1,u_device_pixel_ratio:t.browser.devicePixelRatio,u_is_halo:+f})},Gr=function(e,r,n,i,a,o,s,l,c,u){return t.extend(Hr(e,r,n,i,a,o,s,l,!0,c,!0),{u_texsize_icon:u,u_texture_icon:1})},Yr=function(t,e,r){return{u_matrix:t,u_opacity:e,u_color:r}},Wr=function(e,r,n,i,a,o){return t.extend(function(t,e,r,n){var i=r.imageManager.getPattern(t.from.toString()),a=r.imageManager.getPattern(t.to.toString()),o=r.imageManager.getPixelSize(),s=o.width,l=o.height,c=Math.pow(2,n.tileID.overscaledZ),u=n.tileSize*Math.pow(2,r.transform.tileZoom)/c,f=u*(n.tileID.canonical.x+n.tileID.wrap*c),h=u*n.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:i.tl,u_pattern_br_a:i.br,u_pattern_tl_b:a.tl,u_pattern_br_b:a.br,u_texsize:[s,l],u_mix:e.t,u_pattern_size_a:i.displaySize,u_pattern_size_b:a.displaySize,u_scale_a:e.fromScale,u_scale_b:e.toScale,u_tile_units_to_pixels:1/he(n,1,r.transform.tileZoom),u_pixel_coord_upper:[f>>16,h>>16],u_pixel_coord_lower:[65535&f,65535&h]}}(i,o,n,a),{u_matrix:e,u_opacity:r})},Xr={fillExtrusion:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_lightpos:new t.Uniform3f(e,r.u_lightpos),u_lightintensity:new t.Uniform1f(e,r.u_lightintensity),u_lightcolor:new t.Uniform3f(e,r.u_lightcolor),u_vertical_gradient:new t.Uniform1f(e,r.u_vertical_gradient),u_opacity:new t.Uniform1f(e,r.u_opacity)}},fillExtrusionPattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_lightpos:new t.Uniform3f(e,r.u_lightpos),u_lightintensity:new t.Uniform1f(e,r.u_lightintensity),u_lightcolor:new t.Uniform3f(e,r.u_lightcolor),u_vertical_gradient:new t.Uniform1f(e,r.u_vertical_gradient),u_height_factor:new t.Uniform1f(e,r.u_height_factor),u_image:new t.Uniform1i(e,r.u_image),u_texsize:new t.Uniform2f(e,r.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,r.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,r.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,r.u_scale),u_fade:new t.Uniform1f(e,r.u_fade),u_opacity:new t.Uniform1f(e,r.u_opacity)}},fill:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix)}},fillPattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_image:new t.Uniform1i(e,r.u_image),u_texsize:new t.Uniform2f(e,r.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,r.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,r.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,r.u_scale),u_fade:new t.Uniform1f(e,r.u_fade)}},fillOutline:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_world:new t.Uniform2f(e,r.u_world)}},fillOutlinePattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_world:new t.Uniform2f(e,r.u_world),u_image:new t.Uniform1i(e,r.u_image),u_texsize:new t.Uniform2f(e,r.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,r.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,r.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,r.u_scale),u_fade:new t.Uniform1f(e,r.u_fade)}},circle:function(e,r){return{u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_scale_with_map:new t.Uniform1i(e,r.u_scale_with_map),u_pitch_with_map:new t.Uniform1i(e,r.u_pitch_with_map),u_extrude_scale:new t.Uniform2f(e,r.u_extrude_scale),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_matrix:new t.UniformMatrix4f(e,r.u_matrix)}},collisionBox:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_pixels_to_tile_units:new t.Uniform1f(e,r.u_pixels_to_tile_units),u_extrude_scale:new t.Uniform2f(e,r.u_extrude_scale),u_overscale_factor:new t.Uniform1f(e,r.u_overscale_factor)}},collisionCircle:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_inv_matrix:new t.UniformMatrix4f(e,r.u_inv_matrix),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_viewport_size:new t.Uniform2f(e,r.u_viewport_size)}},debug:function(e,r){return{u_color:new t.UniformColor(e,r.u_color),u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_overlay:new t.Uniform1i(e,r.u_overlay),u_overlay_scale:new t.Uniform1f(e,r.u_overlay_scale)}},clippingMask:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix)}},heatmap:function(e,r){return{u_extrude_scale:new t.Uniform1f(e,r.u_extrude_scale),u_intensity:new t.Uniform1f(e,r.u_intensity),u_matrix:new t.UniformMatrix4f(e,r.u_matrix)}},heatmapTexture:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_world:new t.Uniform2f(e,r.u_world),u_image:new t.Uniform1i(e,r.u_image),u_color_ramp:new t.Uniform1i(e,r.u_color_ramp),u_opacity:new t.Uniform1f(e,r.u_opacity)}},hillshade:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_image:new t.Uniform1i(e,r.u_image),u_latrange:new t.Uniform2f(e,r.u_latrange),u_light:new t.Uniform2f(e,r.u_light),u_shadow:new t.UniformColor(e,r.u_shadow),u_highlight:new t.UniformColor(e,r.u_highlight),u_accent:new t.UniformColor(e,r.u_accent)}},hillshadePrepare:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_image:new t.Uniform1i(e,r.u_image),u_dimension:new t.Uniform2f(e,r.u_dimension),u_zoom:new t.Uniform1f(e,r.u_zoom),u_maxzoom:new t.Uniform1f(e,r.u_maxzoom),u_unpack:new t.Uniform4f(e,r.u_unpack)}},line:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_ratio:new t.Uniform1f(e,r.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,r.u_units_to_pixels)}},lineGradient:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_ratio:new t.Uniform1f(e,r.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,r.u_units_to_pixels),u_image:new t.Uniform1i(e,r.u_image)}},linePattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_texsize:new t.Uniform2f(e,r.u_texsize),u_ratio:new t.Uniform1f(e,r.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_image:new t.Uniform1i(e,r.u_image),u_units_to_pixels:new t.Uniform2f(e,r.u_units_to_pixels),u_scale:new t.Uniform3f(e,r.u_scale),u_fade:new t.Uniform1f(e,r.u_fade)}},lineSDF:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_ratio:new t.Uniform1f(e,r.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,r.u_units_to_pixels),u_patternscale_a:new t.Uniform2f(e,r.u_patternscale_a),u_patternscale_b:new t.Uniform2f(e,r.u_patternscale_b),u_sdfgamma:new t.Uniform1f(e,r.u_sdfgamma),u_image:new t.Uniform1i(e,r.u_image),u_tex_y_a:new t.Uniform1f(e,r.u_tex_y_a),u_tex_y_b:new t.Uniform1f(e,r.u_tex_y_b),u_mix:new t.Uniform1f(e,r.u_mix)}},raster:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_tl_parent:new t.Uniform2f(e,r.u_tl_parent),u_scale_parent:new t.Uniform1f(e,r.u_scale_parent),u_buffer_scale:new t.Uniform1f(e,r.u_buffer_scale),u_fade_t:new t.Uniform1f(e,r.u_fade_t),u_opacity:new t.Uniform1f(e,r.u_opacity),u_image0:new t.Uniform1i(e,r.u_image0),u_image1:new t.Uniform1i(e,r.u_image1),u_brightness_low:new t.Uniform1f(e,r.u_brightness_low),u_brightness_high:new t.Uniform1f(e,r.u_brightness_high),u_saturation_factor:new t.Uniform1f(e,r.u_saturation_factor),u_contrast_factor:new t.Uniform1f(e,r.u_contrast_factor),u_spin_weights:new t.Uniform3f(e,r.u_spin_weights)}},symbolIcon:function(e,r){return{u_is_size_zoom_constant:new t.Uniform1i(e,r.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,r.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,r.u_size_t),u_size:new t.Uniform1f(e,r.u_size),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,r.u_pitch),u_rotate_symbol:new t.Uniform1i(e,r.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,r.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,r.u_fade_change),u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,r.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,r.u_coord_matrix),u_is_text:new t.Uniform1i(e,r.u_is_text),u_pitch_with_map:new t.Uniform1i(e,r.u_pitch_with_map),u_texsize:new t.Uniform2f(e,r.u_texsize),u_texture:new t.Uniform1i(e,r.u_texture)}},symbolSDF:function(e,r){return{u_is_size_zoom_constant:new t.Uniform1i(e,r.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,r.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,r.u_size_t),u_size:new t.Uniform1f(e,r.u_size),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,r.u_pitch),u_rotate_symbol:new t.Uniform1i(e,r.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,r.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,r.u_fade_change),u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,r.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,r.u_coord_matrix),u_is_text:new t.Uniform1i(e,r.u_is_text),u_pitch_with_map:new t.Uniform1i(e,r.u_pitch_with_map),u_texsize:new t.Uniform2f(e,r.u_texsize),u_texture:new t.Uniform1i(e,r.u_texture),u_gamma_scale:new t.Uniform1f(e,r.u_gamma_scale),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_is_halo:new t.Uniform1i(e,r.u_is_halo)}},symbolTextAndIcon:function(e,r){return{u_is_size_zoom_constant:new t.Uniform1i(e,r.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,r.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,r.u_size_t),u_size:new t.Uniform1f(e,r.u_size),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,r.u_pitch),u_rotate_symbol:new t.Uniform1i(e,r.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,r.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,r.u_fade_change),u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,r.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,r.u_coord_matrix),u_is_text:new t.Uniform1i(e,r.u_is_text),u_pitch_with_map:new t.Uniform1i(e,r.u_pitch_with_map),u_texsize:new t.Uniform2f(e,r.u_texsize),u_texsize_icon:new t.Uniform2f(e,r.u_texsize_icon),u_texture:new t.Uniform1i(e,r.u_texture),u_texture_icon:new t.Uniform1i(e,r.u_texture_icon),u_gamma_scale:new t.Uniform1f(e,r.u_gamma_scale),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_is_halo:new t.Uniform1i(e,r.u_is_halo)}},background:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_opacity:new t.Uniform1f(e,r.u_opacity),u_color:new t.UniformColor(e,r.u_color)}},backgroundPattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_opacity:new t.Uniform1f(e,r.u_opacity),u_image:new t.Uniform1i(e,r.u_image),u_pattern_tl_a:new t.Uniform2f(e,r.u_pattern_tl_a),u_pattern_br_a:new t.Uniform2f(e,r.u_pattern_br_a),u_pattern_tl_b:new t.Uniform2f(e,r.u_pattern_tl_b),u_pattern_br_b:new t.Uniform2f(e,r.u_pattern_br_b),u_texsize:new t.Uniform2f(e,r.u_texsize),u_mix:new t.Uniform1f(e,r.u_mix),u_pattern_size_a:new t.Uniform2f(e,r.u_pattern_size_a),u_pattern_size_b:new t.Uniform2f(e,r.u_pattern_size_b),u_scale_a:new t.Uniform1f(e,r.u_scale_a),u_scale_b:new t.Uniform1f(e,r.u_scale_b),u_pixel_coord_upper:new t.Uniform2f(e,r.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,r.u_pixel_coord_lower),u_tile_units_to_pixels:new t.Uniform1f(e,r.u_tile_units_to_pixels)}}};function Zr(e,r,n,i,a,o,s){for(var l=e.context,c=l.gl,u=e.useProgram("collisionBox"),f=[],h=0,p=0,d=0;d0){var _=t.create(),w=y;t.mul(_,v.placementInvProjMatrix,e.transform.glCoordMatrix),t.mul(_,_,v.placementViewportMatrix),f.push({circleArray:b,circleOffset:p,transform:w,invTransform:_}),p=h+=b.length/4}x&&u.draw(l,c.LINES,Mt.disabled,At.disabled,e.colorModeForRenderPass(),Et.disabled,Cr(y,e.transform,m),n.id,x.layoutVertexBuffer,x.indexBuffer,x.segments,null,e.transform.zoom,null,null,x.collisionVertexBuffer)}}if(s&&f.length){var T=e.useProgram("collisionCircle"),k=new t.StructArrayLayout2f1f2i16;k.resize(4*h),k._trim();for(var M=0,A=0,S=f;A=0&&(g[v.associatedIconIndex]={shiftedAnchor:k,angle:M})}else ce(v.numGlyphs,p)}if(f){d.clear();for(var S=e.icon.placedSymbolArray,E=0;E0){var s=t.browser.now(),l=(s-e.timeAdded)/o,c=r?(s-r.timeAdded)/o:-1,u=n.getSource(),f=a.coveringZoomLevel({tileSize:u.tileSize,roundZoom:u.roundZoom}),h=!r||Math.abs(r.tileID.overscaledZ-f)>Math.abs(e.tileID.overscaledZ-f),p=h&&e.refreshedUponExpiration?1:t.clamp(h?l:1-c,0,1);return e.refreshedUponExpiration&&l>=1&&(e.refreshedUponExpiration=!1),r?{opacity:1,mix:1-p}:{opacity:p,mix:0}}return{opacity:1,mix:0}}var ln=new t.Color(1,0,0,1),cn=new t.Color(0,1,0,1),un=new t.Color(0,0,1,1),fn=new t.Color(1,0,1,1),hn=new t.Color(0,1,1,1);function pn(t,e,r,n){gn(t,0,e+r/2,t.transform.width,r,n)}function dn(t,e,r,n){gn(t,e-r/2,0,r,t.transform.height,n)}function gn(e,r,n,i,a,o){var s=e.context,l=s.gl;l.enable(l.SCISSOR_TEST),l.scissor(r*t.browser.devicePixelRatio,n*t.browser.devicePixelRatio,i*t.browser.devicePixelRatio,a*t.browser.devicePixelRatio),s.clear({color:o}),l.disable(l.SCISSOR_TEST)}function mn(e,r,n){var i=e.context,a=i.gl,o=n.posMatrix,s=e.useProgram("debug"),l=Mt.disabled,c=At.disabled,u=e.colorModeForRenderPass();i.activeTexture.set(a.TEXTURE0),e.emptyTexture.bind(a.LINEAR,a.CLAMP_TO_EDGE),s.draw(i,a.LINE_STRIP,l,c,u,Et.disabled,Ir(o,t.Color.red),"$debug",e.debugBuffer,e.tileBorderIndexBuffer,e.debugSegments);var f=r.getTileByID(n.key).latestRawTileData,h=Math.floor((f&&f.byteLength||0)/1024),p=r.getTile(n).tileSize,d=512/Math.min(p,512)*(n.overscaledZ/e.transform.zoom)*.5,g=n.canonical.toString();n.overscaledZ!==n.canonical.z&&(g+=" => "+n.overscaledZ),function(t,e){t.initDebugOverlayCanvas();var r=t.debugOverlayCanvas,n=t.context.gl,i=t.debugOverlayCanvas.getContext("2d");i.clearRect(0,0,r.width,r.height),i.shadowColor="white",i.shadowBlur=2,i.lineWidth=1.5,i.strokeStyle="white",i.textBaseline="top",i.font="bold 36px Open Sans, sans-serif",i.fillText(e,5,5),i.strokeText(e,5,5),t.debugOverlayTexture.update(r),t.debugOverlayTexture.bind(n.LINEAR,n.CLAMP_TO_EDGE)}(e,g+" "+h+"kb"),s.draw(i,a.TRIANGLES,l,c,St.alphaBlended,Et.disabled,Ir(o,t.Color.transparent,d),"$debug",e.debugBuffer,e.quadTriangleIndexBuffer,e.debugSegments)}var vn={symbol:function(e,r,n,i,a){if("translucent"===e.renderPass){var o=At.disabled,s=e.colorModeForRenderPass();n.layout.get("text-variable-anchor")&&function(e,r,n,i,a,o,s){for(var l=r.transform,c="map"===a,u="map"===o,f=0,h=e;f256&&this.clearStencil(),r.setColorMode(St.disabled),r.setDepthMode(Mt.disabled);var i=this.useProgram("clippingMask");this._tileClippingMaskIDs={};for(var a=0,o=e;a256&&this.clearStencil();var t=this.nextStencilID++,e=this.context.gl;return new At({func:e.NOTEQUAL,mask:255},t,255,e.KEEP,e.KEEP,e.REPLACE)},yn.prototype.stencilModeForClipping=function(t){var e=this.context.gl;return new At({func:e.EQUAL,mask:255},this._tileClippingMaskIDs[t.key],0,e.KEEP,e.KEEP,e.REPLACE)},yn.prototype.stencilConfigForOverlap=function(t){var e,r=this.context.gl,n=t.sort((function(t,e){return e.overscaledZ-t.overscaledZ})),i=n[n.length-1].overscaledZ,a=n[0].overscaledZ-i+1;if(a>1){this.currentStencilSource=void 0,this.nextStencilID+a>256&&this.clearStencil();for(var o={},s=0;s=0;this.currentLayer--){var b=this.style._layers[i[this.currentLayer]],_=a[b.source],w=u[b.source];this._renderTileClippingMasks(b,w),this.renderLayer(this,_,b,w)}for(this.renderPass="translucent",this.currentLayer=0;this.currentLayer0?e.pop():null},yn.prototype.isPatternMissing=function(t){if(!t)return!1;if(!t.from||!t.to)return!0;var e=this.imageManager.getPattern(t.from.toString()),r=this.imageManager.getPattern(t.to.toString());return!e||!r},yn.prototype.useProgram=function(t,e){this.cache=this.cache||{};var r=""+t+(e?e.cacheKey:"")+(this._showOverdrawInspector?"/overdraw":"");return this.cache[r]||(this.cache[r]=new br(this.context,yr[t],e,Xr[t],this._showOverdrawInspector)),this.cache[r]},yn.prototype.setCustomLayerDefaults=function(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()},yn.prototype.setBaseState=function(){var t=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(t.FUNC_ADD)},yn.prototype.initDebugOverlayCanvas=function(){null==this.debugOverlayCanvas&&(this.debugOverlayCanvas=t.window.document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new t.Texture(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))},yn.prototype.destroy=function(){this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy()};var xn=function(t,e){this.points=t,this.planes=e};xn.fromInvProjectionMatrix=function(e,r,n){var i=Math.pow(2,n),a=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map((function(r){return t.transformMat4([],r,e)})).map((function(e){return t.scale$1([],e,1/e[3]/r*i)})),o=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map((function(e){var r=t.sub([],a[e[0]],a[e[1]]),n=t.sub([],a[e[2]],a[e[1]]),i=t.normalize([],t.cross([],r,n)),o=-t.dot(i,a[e[1]]);return i.concat(o)}));return new xn(a,o)};var bn=function(e,r){this.min=e,this.max=r,this.center=t.scale$2([],t.add([],this.min,this.max),.5)};bn.prototype.quadrant=function(e){for(var r=[e%2==0,e<2],n=t.clone$2(this.min),i=t.clone$2(this.max),a=0;a=0;if(0===o)return 0;o!==r.length&&(n=!1)}if(n)return 2;for(var l=0;l<3;l++){for(var c=Number.MAX_VALUE,u=-Number.MAX_VALUE,f=0;fthis.max[l]-this.min[l])return 0}return 1};var _n=function(t,e,r,n){if(void 0===t&&(t=0),void 0===e&&(e=0),void 0===r&&(r=0),void 0===n&&(n=0),isNaN(t)||t<0||isNaN(e)||e<0||isNaN(r)||r<0||isNaN(n)||n<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=t,this.bottom=e,this.left=r,this.right=n};_n.prototype.interpolate=function(e,r,n){return null!=r.top&&null!=e.top&&(this.top=t.number(e.top,r.top,n)),null!=r.bottom&&null!=e.bottom&&(this.bottom=t.number(e.bottom,r.bottom,n)),null!=r.left&&null!=e.left&&(this.left=t.number(e.left,r.left,n)),null!=r.right&&null!=e.right&&(this.right=t.number(e.right,r.right,n)),this},_n.prototype.getCenter=function(e,r){var n=t.clamp((this.left+e-this.right)/2,0,e),i=t.clamp((this.top+r-this.bottom)/2,0,r);return new t.Point(n,i)},_n.prototype.equals=function(t){return this.top===t.top&&this.bottom===t.bottom&&this.left===t.left&&this.right===t.right},_n.prototype.clone=function(){return new _n(this.top,this.bottom,this.left,this.right)},_n.prototype.toJSON=function(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}};var wn=function(e,r,n,i,a){this.tileSize=512,this.maxValidLatitude=85.051129,this._renderWorldCopies=void 0===a||a,this._minZoom=e||0,this._maxZoom=r||22,this._minPitch=null==n?0:n,this._maxPitch=null==i?60:i,this.setMaxBounds(),this.width=0,this.height=0,this._center=new t.LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._edgeInsets=new _n,this._posMatrixCache={},this._alignedPosMatrixCache={}},Tn={minZoom:{configurable:!0},maxZoom:{configurable:!0},minPitch:{configurable:!0},maxPitch:{configurable:!0},renderWorldCopies:{configurable:!0},worldSize:{configurable:!0},centerOffset:{configurable:!0},size:{configurable:!0},bearing:{configurable:!0},pitch:{configurable:!0},fov:{configurable:!0},zoom:{configurable:!0},center:{configurable:!0},padding:{configurable:!0},centerPoint:{configurable:!0},unmodified:{configurable:!0},point:{configurable:!0}};wn.prototype.clone=function(){var t=new wn(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies);return t.tileSize=this.tileSize,t.latRange=this.latRange,t.width=this.width,t.height=this.height,t._center=this._center,t.zoom=this.zoom,t.angle=this.angle,t._fov=this._fov,t._pitch=this._pitch,t._unmodified=this._unmodified,t._edgeInsets=this._edgeInsets.clone(),t._calcMatrices(),t},Tn.minZoom.get=function(){return this._minZoom},Tn.minZoom.set=function(t){this._minZoom!==t&&(this._minZoom=t,this.zoom=Math.max(this.zoom,t))},Tn.maxZoom.get=function(){return this._maxZoom},Tn.maxZoom.set=function(t){this._maxZoom!==t&&(this._maxZoom=t,this.zoom=Math.min(this.zoom,t))},Tn.minPitch.get=function(){return this._minPitch},Tn.minPitch.set=function(t){this._minPitch!==t&&(this._minPitch=t,this.pitch=Math.max(this.pitch,t))},Tn.maxPitch.get=function(){return this._maxPitch},Tn.maxPitch.set=function(t){this._maxPitch!==t&&(this._maxPitch=t,this.pitch=Math.min(this.pitch,t))},Tn.renderWorldCopies.get=function(){return this._renderWorldCopies},Tn.renderWorldCopies.set=function(t){void 0===t?t=!0:null===t&&(t=!1),this._renderWorldCopies=t},Tn.worldSize.get=function(){return this.tileSize*this.scale},Tn.centerOffset.get=function(){return this.centerPoint._sub(this.size._div(2))},Tn.size.get=function(){return new t.Point(this.width,this.height)},Tn.bearing.get=function(){return-this.angle/Math.PI*180},Tn.bearing.set=function(e){var r=-t.wrap(e,-180,180)*Math.PI/180;this.angle!==r&&(this._unmodified=!1,this.angle=r,this._calcMatrices(),this.rotationMatrix=t.create$2(),t.rotate(this.rotationMatrix,this.rotationMatrix,this.angle))},Tn.pitch.get=function(){return this._pitch/Math.PI*180},Tn.pitch.set=function(e){var r=t.clamp(e,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==r&&(this._unmodified=!1,this._pitch=r,this._calcMatrices())},Tn.fov.get=function(){return this._fov/Math.PI*180},Tn.fov.set=function(t){t=Math.max(.01,Math.min(60,t)),this._fov!==t&&(this._unmodified=!1,this._fov=t/180*Math.PI,this._calcMatrices())},Tn.zoom.get=function(){return this._zoom},Tn.zoom.set=function(t){var e=Math.min(Math.max(t,this.minZoom),this.maxZoom);this._zoom!==e&&(this._unmodified=!1,this._zoom=e,this.scale=this.zoomScale(e),this.tileZoom=Math.floor(e),this.zoomFraction=e-this.tileZoom,this._constrain(),this._calcMatrices())},Tn.center.get=function(){return this._center},Tn.center.set=function(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this._constrain(),this._calcMatrices())},Tn.padding.get=function(){return this._edgeInsets.toJSON()},Tn.padding.set=function(t){this._edgeInsets.equals(t)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,t,1),this._calcMatrices())},Tn.centerPoint.get=function(){return this._edgeInsets.getCenter(this.width,this.height)},wn.prototype.isPaddingEqual=function(t){return this._edgeInsets.equals(t)},wn.prototype.interpolatePadding=function(t,e,r){this._unmodified=!1,this._edgeInsets.interpolate(t,e,r),this._constrain(),this._calcMatrices()},wn.prototype.coveringZoomLevel=function(t){var e=(t.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/t.tileSize));return Math.max(0,e)},wn.prototype.getVisibleUnwrappedCoordinates=function(e){var r=[new t.UnwrappedTileID(0,e)];if(this._renderWorldCopies)for(var n=this.pointCoordinate(new t.Point(0,0)),i=this.pointCoordinate(new t.Point(this.width,0)),a=this.pointCoordinate(new t.Point(this.width,this.height)),o=this.pointCoordinate(new t.Point(0,this.height)),s=Math.floor(Math.min(n.x,i.x,a.x,o.x)),l=Math.floor(Math.max(n.x,i.x,a.x,o.x)),c=s-1;c<=l+1;c++)0!==c&&r.push(new t.UnwrappedTileID(c,e));return r},wn.prototype.coveringTiles=function(e){var r=this.coveringZoomLevel(e),n=r;if(void 0!==e.minzoom&&re.maxzoom&&(r=e.maxzoom);var i=t.MercatorCoordinate.fromLngLat(this.center),a=Math.pow(2,r),o=[a*i.x,a*i.y,0],s=xn.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,r),l=e.minzoom||0;this.pitch<=60&&this._edgeInsets.top<.1&&(l=r);var c=function(t){return{aabb:new bn([t*a,0,0],[(t+1)*a,a,0]),zoom:0,x:0,y:0,wrap:t,fullyVisible:!1}},u=[],f=[],h=r,p=e.reparseOverscaled?n:r;if(this._renderWorldCopies)for(var d=1;d<=3;d++)u.push(c(-d)),u.push(c(d));for(u.push(c(0));u.length>0;){var g=u.pop(),m=g.x,v=g.y,y=g.fullyVisible;if(!y){var x=g.aabb.intersects(s);if(0===x)continue;y=2===x}var b=g.aabb.distanceX(o),_=g.aabb.distanceY(o),w=Math.max(Math.abs(b),Math.abs(_));if(g.zoom===h||w>3+(1<=l)f.push({tileID:new t.OverscaledTileID(g.zoom===h?p:g.zoom,g.wrap,g.zoom,m,v),distanceSq:t.sqrLen([o[0]-.5-m,o[1]-.5-v])});else for(var T=0;T<4;T++){var k=(m<<1)+T%2,M=(v<<1)+(T>>1);u.push({aabb:g.aabb.quadrant(T),zoom:g.zoom+1,x:k,y:M,wrap:g.wrap,fullyVisible:y})}}return f.sort((function(t,e){return t.distanceSq-e.distanceSq})).map((function(t){return t.tileID}))},wn.prototype.resize=function(t,e){this.width=t,this.height=e,this.pixelsToGLUnits=[2/t,-2/e],this._constrain(),this._calcMatrices()},Tn.unmodified.get=function(){return this._unmodified},wn.prototype.zoomScale=function(t){return Math.pow(2,t)},wn.prototype.scaleZoom=function(t){return Math.log(t)/Math.LN2},wn.prototype.project=function(e){var r=t.clamp(e.lat,-this.maxValidLatitude,this.maxValidLatitude);return new t.Point(t.mercatorXfromLng(e.lng)*this.worldSize,t.mercatorYfromLat(r)*this.worldSize)},wn.prototype.unproject=function(e){return new t.MercatorCoordinate(e.x/this.worldSize,e.y/this.worldSize).toLngLat()},Tn.point.get=function(){return this.project(this.center)},wn.prototype.setLocationAtPoint=function(e,r){var n=this.pointCoordinate(r),i=this.pointCoordinate(this.centerPoint),a=this.locationCoordinate(e),o=new t.MercatorCoordinate(a.x-(n.x-i.x),a.y-(n.y-i.y));this.center=this.coordinateLocation(o),this._renderWorldCopies&&(this.center=this.center.wrap())},wn.prototype.locationPoint=function(t){return this.coordinatePoint(this.locationCoordinate(t))},wn.prototype.pointLocation=function(t){return this.coordinateLocation(this.pointCoordinate(t))},wn.prototype.locationCoordinate=function(e){return t.MercatorCoordinate.fromLngLat(e)},wn.prototype.coordinateLocation=function(t){return t.toLngLat()},wn.prototype.pointCoordinate=function(e){var r=[e.x,e.y,0,1],n=[e.x,e.y,1,1];t.transformMat4(r,r,this.pixelMatrixInverse),t.transformMat4(n,n,this.pixelMatrixInverse);var i=r[3],a=n[3],o=r[1]/i,s=n[1]/a,l=r[2]/i,c=n[2]/a,u=l===c?0:(0-l)/(c-l);return new t.MercatorCoordinate(t.number(r[0]/i,n[0]/a,u)/this.worldSize,t.number(o,s,u)/this.worldSize)},wn.prototype.coordinatePoint=function(e){var r=[e.x*this.worldSize,e.y*this.worldSize,0,1];return t.transformMat4(r,r,this.pixelMatrix),new t.Point(r[0]/r[3],r[1]/r[3])},wn.prototype.getBounds=function(){return(new t.LngLatBounds).extend(this.pointLocation(new t.Point(0,0))).extend(this.pointLocation(new t.Point(this.width,0))).extend(this.pointLocation(new t.Point(this.width,this.height))).extend(this.pointLocation(new t.Point(0,this.height)))},wn.prototype.getMaxBounds=function(){return this.latRange&&2===this.latRange.length&&this.lngRange&&2===this.lngRange.length?new t.LngLatBounds([this.lngRange[0],this.latRange[0]],[this.lngRange[1],this.latRange[1]]):null},wn.prototype.setMaxBounds=function(t){t?(this.lngRange=[t.getWest(),t.getEast()],this.latRange=[t.getSouth(),t.getNorth()],this._constrain()):(this.lngRange=null,this.latRange=[-this.maxValidLatitude,this.maxValidLatitude])},wn.prototype.calculatePosMatrix=function(e,r){void 0===r&&(r=!1);var n=e.key,i=r?this._alignedPosMatrixCache:this._posMatrixCache;if(i[n])return i[n];var a=e.canonical,o=this.worldSize/this.zoomScale(a.z),s=a.x+Math.pow(2,a.z)*e.wrap,l=t.identity(new Float64Array(16));return t.translate(l,l,[s*o,a.y*o,0]),t.scale(l,l,[o/t.EXTENT,o/t.EXTENT,1]),t.multiply(l,r?this.alignedProjMatrix:this.projMatrix,l),i[n]=new Float32Array(l),i[n]},wn.prototype.customLayerMatrix=function(){return this.mercatorMatrix.slice()},wn.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var e,r,n,i,a=-90,o=90,s=-180,l=180,c=this.size,u=this._unmodified;if(this.latRange){var f=this.latRange;a=t.mercatorYfromLat(f[1])*this.worldSize,e=(o=t.mercatorYfromLat(f[0])*this.worldSize)-ao&&(i=o-m)}if(this.lngRange){var v=p.x,y=c.x/2;v-yl&&(n=l-y)}void 0===n&&void 0===i||(this.center=this.unproject(new t.Point(void 0!==n?n:p.x,void 0!==i?i:p.y))),this._unmodified=u,this._constraining=!1}},wn.prototype._calcMatrices=function(){if(this.height){var e=this.centerOffset;this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height;var r=Math.PI/2+this._pitch,n=this._fov*(.5+e.y/this.height),i=Math.sin(n)*this.cameraToCenterDistance/Math.sin(t.clamp(Math.PI-r-n,.01,Math.PI-.01)),a=this.point,o=a.x,s=a.y,l=1.01*(Math.cos(Math.PI/2-this._pitch)*i+this.cameraToCenterDistance),c=this.height/50,u=new Float64Array(16);t.perspective(u,this._fov,this.width/this.height,c,l),u[8]=2*-e.x/this.width,u[9]=2*e.y/this.height,t.scale(u,u,[1,-1,1]),t.translate(u,u,[0,0,-this.cameraToCenterDistance]),t.rotateX(u,u,this._pitch),t.rotateZ(u,u,this.angle),t.translate(u,u,[-o,-s,0]),this.mercatorMatrix=t.scale([],u,[this.worldSize,this.worldSize,this.worldSize]),t.scale(u,u,[1,1,t.mercatorZfromAltitude(1,this.center.lat)*this.worldSize,1]),this.projMatrix=u,this.invProjMatrix=t.invert([],this.projMatrix);var f=this.width%2/2,h=this.height%2/2,p=Math.cos(this.angle),d=Math.sin(this.angle),g=o-Math.round(o)+p*f+d*h,m=s-Math.round(s)+p*h+d*f,v=new Float64Array(u);if(t.translate(v,v,[g>.5?g-1:g,m>.5?m-1:m,0]),this.alignedProjMatrix=v,u=t.create(),t.scale(u,u,[this.width/2,-this.height/2,1]),t.translate(u,u,[1,-1,0]),this.labelPlaneMatrix=u,u=t.create(),t.scale(u,u,[1,-1,1]),t.translate(u,u,[-1,-1,0]),t.scale(u,u,[2/this.width,2/this.height,1]),this.glCoordMatrix=u,this.pixelMatrix=t.multiply(new Float64Array(16),this.labelPlaneMatrix,this.projMatrix),!(u=t.invert(new Float64Array(16),this.pixelMatrix)))throw new Error("failed to invert matrix");this.pixelMatrixInverse=u,this._posMatrixCache={},this._alignedPosMatrixCache={}}},wn.prototype.maxPitchScaleFactor=function(){if(!this.pixelMatrixInverse)return 1;var e=this.pointCoordinate(new t.Point(0,0)),r=[e.x*this.worldSize,e.y*this.worldSize,0,1];return t.transformMat4(r,r,this.pixelMatrix)[3]/this.cameraToCenterDistance},wn.prototype.getCameraPoint=function(){var e=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new t.Point(0,e))},wn.prototype.getCameraQueryGeometry=function(e){var r=this.getCameraPoint();if(1===e.length)return[e[0],r];for(var n=r.x,i=r.y,a=r.x,o=r.y,s=0,l=e;s=3&&!t.some((function(t){return isNaN(t)}))){var e=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(t[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+t[2],+t[1]],zoom:+t[0],bearing:e,pitch:+(t[4]||0)}),!0}return!1},kn.prototype._updateHashUnthrottled=function(){var e=this.getHashString();try{t.window.history.replaceState(t.window.history.state,"",e)}catch(t){}};var Mn={linearity:.3,easing:t.bezier(0,0,.3,1)},An=t.extend({deceleration:2500,maxSpeed:1400},Mn),Sn=t.extend({deceleration:20,maxSpeed:1400},Mn),En=t.extend({deceleration:1e3,maxSpeed:360},Mn),Cn=t.extend({deceleration:1e3,maxSpeed:90},Mn),Ln=function(t){this._map=t,this.clear()};function In(t,e){(!t.duration||t.duration0&&r-e[0].time>160;)e.shift()},Ln.prototype._onMoveEnd=function(e){if(this._drainInertiaBuffer(),!(this._inertiaBuffer.length<2)){for(var r={zoom:0,bearing:0,pitch:0,pan:new t.Point(0,0),pinchAround:void 0,around:void 0},n=0,i=this._inertiaBuffer;n=this._clickTolerance||this._map.fire(new zn(t.type,this._map,t))},Rn.prototype.dblclick=function(t){return this._firePreventable(new zn(t.type,this._map,t))},Rn.prototype.mouseover=function(t){this._map.fire(new zn(t.type,this._map,t))},Rn.prototype.mouseout=function(t){this._map.fire(new zn(t.type,this._map,t))},Rn.prototype.touchstart=function(t){return this._firePreventable(new On(t.type,this._map,t))},Rn.prototype.touchmove=function(t){this._map.fire(new On(t.type,this._map,t))},Rn.prototype.touchend=function(t){this._map.fire(new On(t.type,this._map,t))},Rn.prototype.touchcancel=function(t){this._map.fire(new On(t.type,this._map,t))},Rn.prototype._firePreventable=function(t){if(this._map.fire(t),t.defaultPrevented)return{}},Rn.prototype.isEnabled=function(){return!0},Rn.prototype.isActive=function(){return!1},Rn.prototype.enable=function(){},Rn.prototype.disable=function(){};var Fn=function(t){this._map=t};Fn.prototype.reset=function(){this._delayContextMenu=!1,delete this._contextMenuEvent},Fn.prototype.mousemove=function(t){this._map.fire(new zn(t.type,this._map,t))},Fn.prototype.mousedown=function(){this._delayContextMenu=!0},Fn.prototype.mouseup=function(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new zn("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)},Fn.prototype.contextmenu=function(t){this._delayContextMenu?this._contextMenuEvent=t:this._map.fire(new zn(t.type,this._map,t)),this._map.listens("contextmenu")&&t.preventDefault()},Fn.prototype.isEnabled=function(){return!0},Fn.prototype.isActive=function(){return!1},Fn.prototype.enable=function(){},Fn.prototype.disable=function(){};var Bn=function(t,e){this._map=t,this._el=t.getCanvasContainer(),this._container=t.getContainer(),this._clickTolerance=e.clickTolerance||1};function Nn(t,e){for(var r={},n=0;nthis.numTouches)&&(this.aborted=!0),this.aborted||(void 0===this.startTime&&(this.startTime=e.timeStamp),n.length===this.numTouches&&(this.centroid=function(e){for(var r=new t.Point(0,0),n=0,i=e;n30)&&(this.aborted=!0)}}},jn.prototype.touchend=function(t,e,r){if((!this.centroid||t.timeStamp-this.startTime>500)&&(this.aborted=!0),0===r.length){var n=!this.aborted&&this.centroid;if(this.reset(),n)return n}};var Un=function(t){this.singleTap=new jn(t),this.numTaps=t.numTaps,this.reset()};Un.prototype.reset=function(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()},Un.prototype.touchstart=function(t,e,r){this.singleTap.touchstart(t,e,r)},Un.prototype.touchmove=function(t,e,r){this.singleTap.touchmove(t,e,r)},Un.prototype.touchend=function(t,e,r){var n=this.singleTap.touchend(t,e,r);if(n){var i=t.timeStamp-this.lastTime<500,a=!this.lastTap||this.lastTap.dist(n)<30;if(i&&a||this.reset(),this.count++,this.lastTime=t.timeStamp,this.lastTap=n,this.count===this.numTaps)return this.reset(),n}};var Vn=function(){this._zoomIn=new Un({numTouches:1,numTaps:2}),this._zoomOut=new Un({numTouches:2,numTaps:1}),this.reset()};Vn.prototype.reset=function(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()},Vn.prototype.touchstart=function(t,e,r){this._zoomIn.touchstart(t,e,r),this._zoomOut.touchstart(t,e,r)},Vn.prototype.touchmove=function(t,e,r){this._zoomIn.touchmove(t,e,r),this._zoomOut.touchmove(t,e,r)},Vn.prototype.touchend=function(t,e,r){var n=this,i=this._zoomIn.touchend(t,e,r),a=this._zoomOut.touchend(t,e,r);return i?(this._active=!0,t.preventDefault(),setTimeout((function(){return n.reset()}),0),{cameraAnimation:function(e){return e.easeTo({duration:300,zoom:e.getZoom()+1,around:e.unproject(i)},{originalEvent:t})}}):a?(this._active=!0,t.preventDefault(),setTimeout((function(){return n.reset()}),0),{cameraAnimation:function(e){return e.easeTo({duration:300,zoom:e.getZoom()-1,around:e.unproject(a)},{originalEvent:t})}}):void 0},Vn.prototype.touchcancel=function(){this.reset()},Vn.prototype.enable=function(){this._enabled=!0},Vn.prototype.disable=function(){this._enabled=!1,this.reset()},Vn.prototype.isEnabled=function(){return this._enabled},Vn.prototype.isActive=function(){return this._active};var qn=function(t){this.reset(),this._clickTolerance=t.clickTolerance||1};qn.prototype.reset=function(){this._active=!1,this._moved=!1,delete this._lastPoint,delete this._eventButton},qn.prototype._correctButton=function(t,e){return!1},qn.prototype._move=function(t,e){return{}},qn.prototype.mousedown=function(t,e){if(!this._lastPoint){var n=r.mouseButton(t);this._correctButton(t,n)&&(this._lastPoint=e,this._eventButton=n)}},qn.prototype.mousemoveWindow=function(t,e){var r=this._lastPoint;if(r&&(t.preventDefault(),this._moved||!(e.dist(r)0&&(this._active=!0);var i=Nn(n,r),a=new t.Point(0,0),o=new t.Point(0,0),s=0;for(var l in i){var c=i[l],u=this._touches[l];u&&(a._add(c),o._add(c.sub(u)),s++,i[l]=c)}if(this._touches=i,!(sMath.abs(t.x)}var ei=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.reset=function(){t.prototype.reset.call(this),this._valid=void 0,delete this._firstMove,delete this._lastPoints},e.prototype._start=function(t){this._lastPoints=t,ti(t[0].sub(t[1]))&&(this._valid=!1)},e.prototype._move=function(t,e,r){var n=t[0].sub(this._lastPoints[0]),i=t[1].sub(this._lastPoints[1]);if(this._valid=this.gestureBeginsVertically(n,i,r.timeStamp),this._valid)return this._lastPoints=t,this._active=!0,{pitchDelta:(n.y+i.y)/2*-.5}},e.prototype.gestureBeginsVertically=function(t,e,r){if(void 0!==this._valid)return this._valid;var n=t.mag()>=2,i=e.mag()>=2;if(n||i){if(!n||!i)return void 0===this._firstMove&&(this._firstMove=r),r-this._firstMove<100&&void 0;var a=t.y>0==e.y>0;return ti(t)&&ti(e)&&a}},e}(Xn),ri={panStep:100,bearingStep:15,pitchStep:10},ni=function(){var t=ri;this._panStep=t.panStep,this._bearingStep=t.bearingStep,this._pitchStep=t.pitchStep};function ii(t){return t*(2-t)}ni.prototype.reset=function(){this._active=!1},ni.prototype.keydown=function(t){var e=this;if(!(t.altKey||t.ctrlKey||t.metaKey)){var r=0,n=0,i=0,a=0,o=0;switch(t.keyCode){case 61:case 107:case 171:case 187:r=1;break;case 189:case 109:case 173:r=-1;break;case 37:t.shiftKey?n=-1:(t.preventDefault(),a=-1);break;case 39:t.shiftKey?n=1:(t.preventDefault(),a=1);break;case 38:t.shiftKey?i=1:(t.preventDefault(),o=-1);break;case 40:t.shiftKey?i=-1:(t.preventDefault(),o=1);break;default:return}return{cameraAnimation:function(s){var l=s.getZoom();s.easeTo({duration:300,easeId:"keyboardHandler",easing:ii,zoom:r?Math.round(l)+r*(t.shiftKey?2:1):l,bearing:s.getBearing()+n*e._bearingStep,pitch:s.getPitch()+i*e._pitchStep,offset:[-a*e._panStep,-o*e._panStep],center:s.getCenter()},{originalEvent:t})}}}},ni.prototype.enable=function(){this._enabled=!0},ni.prototype.disable=function(){this._enabled=!1,this.reset()},ni.prototype.isEnabled=function(){return this._enabled},ni.prototype.isActive=function(){return this._active};var ai=function(e,r){this._map=e,this._el=e.getCanvasContainer(),this._handler=r,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=1/450,t.bindAll(["_onWheel","_onTimeout","_onScrollFrame","_onScrollFinished"],this)};ai.prototype.setZoomRate=function(t){this._defaultZoomRate=t},ai.prototype.setWheelZoomRate=function(t){this._wheelZoomRate=t},ai.prototype.isEnabled=function(){return!!this._enabled},ai.prototype.isActive=function(){return!!this._active||void 0!==this._finishTimeout},ai.prototype.isZooming=function(){return!!this._zooming},ai.prototype.enable=function(t){this.isEnabled()||(this._enabled=!0,this._aroundCenter=t&&"center"===t.around)},ai.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)},ai.prototype.wheel=function(e){if(this.isEnabled()){var r=e.deltaMode===t.window.WheelEvent.DOM_DELTA_LINE?40*e.deltaY:e.deltaY,n=t.browser.now(),i=n-(this._lastWheelEventTime||0);this._lastWheelEventTime=n,0!==r&&r%4.000244140625==0?this._type="wheel":0!==r&&Math.abs(r)<4?this._type="trackpad":i>400?(this._type=null,this._lastValue=r,this._timeout=setTimeout(this._onTimeout,40,e)):this._type||(this._type=Math.abs(i*r)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,r+=this._lastValue)),e.shiftKey&&r&&(r/=4),this._type&&(this._lastWheelEvent=e,this._delta-=r,this._active||this._start(e)),e.preventDefault()}},ai.prototype._onTimeout=function(t){this._type="wheel",this._delta-=this._lastValue,this._active||this._start(t)},ai.prototype._start=function(e){if(this._delta){this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);var n=r.mousePos(this._el,e);this._around=t.LngLat.convert(this._aroundCenter?this._map.getCenter():this._map.unproject(n)),this._aroundPoint=this._map.transform.locationPoint(this._around),this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame())}},ai.prototype.renderFrame=function(){return this._onScrollFrame()},ai.prototype._onScrollFrame=function(){var e=this;if(this._frameId&&(this._frameId=null,this.isActive())){var r=this._map.transform;if(0!==this._delta){var n="wheel"===this._type&&Math.abs(this._delta)>4.000244140625?this._wheelZoomRate:this._defaultZoomRate,i=2/(1+Math.exp(-Math.abs(this._delta*n)));this._delta<0&&0!==i&&(i=1/i);var a="number"==typeof this._targetZoom?r.zoomScale(this._targetZoom):r.scale;this._targetZoom=Math.min(r.maxZoom,Math.max(r.minZoom,r.scaleZoom(a*i))),"wheel"===this._type&&(this._startZoom=r.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}var o,s="number"==typeof this._targetZoom?this._targetZoom:r.zoom,l=this._startZoom,c=this._easing,u=!1;if("wheel"===this._type&&l&&c){var f=Math.min((t.browser.now()-this._lastWheelEventTime)/200,1),h=c(f);o=t.number(l,s,h),f<1?this._frameId||(this._frameId=!0):u=!0}else o=s,u=!0;return this._active=!0,u&&(this._active=!1,this._finishTimeout=setTimeout((function(){e._zooming=!1,e._handler._triggerRenderFrame(),delete e._targetZoom,delete e._finishTimeout}),200)),{noInertia:!0,needsRenderFrame:!u,zoomDelta:o-r.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}},ai.prototype._smoothOutEasing=function(e){var r=t.ease;if(this._prevEase){var n=this._prevEase,i=(t.browser.now()-n.start)/n.duration,a=n.easing(i+.01)-n.easing(i),o=.27/Math.sqrt(a*a+1e-4)*.01,s=Math.sqrt(.0729-o*o);r=t.bezier(o,s,.25,1)}return this._prevEase={start:t.browser.now(),duration:e,easing:r},r},ai.prototype.reset=function(){this._active=!1};var oi=function(t,e){this._clickZoom=t,this._tapZoom=e};oi.prototype.enable=function(){this._clickZoom.enable(),this._tapZoom.enable()},oi.prototype.disable=function(){this._clickZoom.disable(),this._tapZoom.disable()},oi.prototype.isEnabled=function(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()},oi.prototype.isActive=function(){return this._clickZoom.isActive()||this._tapZoom.isActive()};var si=function(){this.reset()};si.prototype.reset=function(){this._active=!1},si.prototype.dblclick=function(t,e){return t.preventDefault(),{cameraAnimation:function(r){r.easeTo({duration:300,zoom:r.getZoom()+(t.shiftKey?-1:1),around:r.unproject(e)},{originalEvent:t})}}},si.prototype.enable=function(){this._enabled=!0},si.prototype.disable=function(){this._enabled=!1,this.reset()},si.prototype.isEnabled=function(){return this._enabled},si.prototype.isActive=function(){return this._active};var li=function(){this._tap=new Un({numTouches:1,numTaps:1}),this.reset()};li.prototype.reset=function(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,this._tap.reset()},li.prototype.touchstart=function(t,e,r){this._swipePoint||(this._tapTime&&t.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?r.length>0&&(this._swipePoint=e[0],this._swipeTouch=r[0].identifier):this._tap.touchstart(t,e,r))},li.prototype.touchmove=function(t,e,r){if(this._tapTime){if(this._swipePoint){if(r[0].identifier!==this._swipeTouch)return;var n=e[0],i=n.y-this._swipePoint.y;return this._swipePoint=n,t.preventDefault(),this._active=!0,{zoomDelta:i/128}}}else this._tap.touchmove(t,e,r)},li.prototype.touchend=function(t,e,r){this._tapTime?this._swipePoint&&0===r.length&&this.reset():this._tap.touchend(t,e,r)&&(this._tapTime=t.timeStamp)},li.prototype.touchcancel=function(){this.reset()},li.prototype.enable=function(){this._enabled=!0},li.prototype.disable=function(){this._enabled=!1,this.reset()},li.prototype.isEnabled=function(){return this._enabled},li.prototype.isActive=function(){return this._active};var ci=function(t,e,r){this._el=t,this._mousePan=e,this._touchPan=r};ci.prototype.enable=function(t){this._inertiaOptions=t||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("mapboxgl-touch-drag-pan")},ci.prototype.disable=function(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("mapboxgl-touch-drag-pan")},ci.prototype.isEnabled=function(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()},ci.prototype.isActive=function(){return this._mousePan.isActive()||this._touchPan.isActive()};var ui=function(t,e,r){this._pitchWithRotate=t.pitchWithRotate,this._mouseRotate=e,this._mousePitch=r};ui.prototype.enable=function(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable()},ui.prototype.disable=function(){this._mouseRotate.disable(),this._mousePitch.disable()},ui.prototype.isEnabled=function(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())},ui.prototype.isActive=function(){return this._mouseRotate.isActive()||this._mousePitch.isActive()};var fi=function(t,e,r,n){this._el=t,this._touchZoom=e,this._touchRotate=r,this._tapDragZoom=n,this._rotationDisabled=!1,this._enabled=!0};fi.prototype.enable=function(t){this._touchZoom.enable(t),this._rotationDisabled||this._touchRotate.enable(t),this._tapDragZoom.enable(),this._el.classList.add("mapboxgl-touch-zoom-rotate")},fi.prototype.disable=function(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("mapboxgl-touch-zoom-rotate")},fi.prototype.isEnabled=function(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()},fi.prototype.isActive=function(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()},fi.prototype.disableRotation=function(){this._rotationDisabled=!0,this._touchRotate.disable()},fi.prototype.enableRotation=function(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()};var hi=function(t){return t.zoom||t.drag||t.pitch||t.rotate},pi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e}(t.Event);function di(t){return t.panDelta&&t.panDelta.mag()||t.zoomDelta||t.bearingDelta||t.pitchDelta}var gi=function(e,n){this._map=e,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Ln(e),this._bearingSnap=n.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(n),t.bindAll(["handleEvent","handleWindowEvent"],this);var i=this._el;this._listeners=[[i,"touchstart",{passive:!1}],[i,"touchmove",{passive:!1}],[i,"touchend",void 0],[i,"touchcancel",void 0],[i,"mousedown",void 0],[i,"mousemove",void 0],[i,"mouseup",void 0],[t.window.document,"mousemove",{capture:!0}],[t.window.document,"mouseup",void 0],[i,"mouseover",void 0],[i,"mouseout",void 0],[i,"dblclick",void 0],[i,"click",void 0],[i,"keydown",{capture:!1}],[i,"keyup",void 0],[i,"wheel",{passive:!1}],[i,"contextmenu",void 0],[t.window,"blur",void 0]];for(var a=0,o=this._listeners;aa?Math.min(2,_):Math.max(.5,_),w=Math.pow(m,1-e),T=i.unproject(x.add(b.mult(e*w)).mult(g));i.setLocationAtPoint(i.renderWorldCopies?T.wrap():T,d)}n._fireMoveEvents(r)}),(function(t){n._afterEase(r,t)}),e),this},r.prototype._prepareEase=function(e,r,n){void 0===n&&(n={}),this._moving=!0,r||n.moving||this.fire(new t.Event("movestart",e)),this._zooming&&!n.zooming&&this.fire(new t.Event("zoomstart",e)),this._rotating&&!n.rotating&&this.fire(new t.Event("rotatestart",e)),this._pitching&&!n.pitching&&this.fire(new t.Event("pitchstart",e))},r.prototype._fireMoveEvents=function(e){this.fire(new t.Event("move",e)),this._zooming&&this.fire(new t.Event("zoom",e)),this._rotating&&this.fire(new t.Event("rotate",e)),this._pitching&&this.fire(new t.Event("pitch",e))},r.prototype._afterEase=function(e,r){if(!this._easeId||!r||this._easeId!==r){delete this._easeId;var n=this._zooming,i=this._rotating,a=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,n&&this.fire(new t.Event("zoomend",e)),i&&this.fire(new t.Event("rotateend",e)),a&&this.fire(new t.Event("pitchend",e)),this.fire(new t.Event("moveend",e))}},r.prototype.flyTo=function(e,r){var n=this;if(!e.essential&&t.browser.prefersReducedMotion){var i=t.pick(e,["center","zoom","bearing","pitch","around"]);return this.jumpTo(i,r)}this.stop(),e=t.extend({offset:[0,0],speed:1.2,curve:1.42,easing:t.ease},e);var a=this.transform,o=this.getZoom(),s=this.getBearing(),l=this.getPitch(),c=this.getPadding(),u="zoom"in e?t.clamp(+e.zoom,a.minZoom,a.maxZoom):o,f="bearing"in e?this._normalizeBearing(e.bearing,s):s,h="pitch"in e?+e.pitch:l,p="padding"in e?e.padding:a.padding,d=a.zoomScale(u-o),g=t.Point.convert(e.offset),m=a.centerPoint.add(g),v=a.pointLocation(m),y=t.LngLat.convert(e.center||v);this._normalizeCenter(y);var x=a.project(v),b=a.project(y).sub(x),_=e.curve,w=Math.max(a.width,a.height),T=w/d,k=b.mag();if("minZoom"in e){var M=t.clamp(Math.min(e.minZoom,o,u),a.minZoom,a.maxZoom),A=w/a.zoomScale(M-o);_=Math.sqrt(A/k*2)}var S=_*_;function E(t){var e=(T*T-w*w+(t?-1:1)*S*S*k*k)/(2*(t?T:w)*S*k);return Math.log(Math.sqrt(e*e+1)-e)}function C(t){return(Math.exp(t)-Math.exp(-t))/2}function L(t){return(Math.exp(t)+Math.exp(-t))/2}var I=E(0),P=function(t){return L(I)/L(I+_*t)},z=function(t){return w*((L(I)*(C(e=I+_*t)/L(e))-C(I))/S)/k;var e},O=(E(1)-I)/_;if(Math.abs(k)<1e-6||!isFinite(O)){if(Math.abs(w-T)<1e-6)return this.easeTo(e,r);var D=Te.maxDuration&&(e.duration=0),this._zooming=!0,this._rotating=s!==f,this._pitching=h!==l,this._padding=!a.isPaddingEqual(p),this._prepareEase(r,!1),this._ease((function(e){var i=e*O,d=1/P(i);a.zoom=1===e?u:o+a.scaleZoom(d),n._rotating&&(a.bearing=t.number(s,f,e)),n._pitching&&(a.pitch=t.number(l,h,e)),n._padding&&(a.interpolatePadding(c,p,e),m=a.centerPoint.add(g));var v=1===e?y:a.unproject(x.add(b.mult(z(i))).mult(d));a.setLocationAtPoint(a.renderWorldCopies?v.wrap():v,m),n._fireMoveEvents(r)}),(function(){return n._afterEase(r)}),e),this},r.prototype.isEasing=function(){return!!this._easeFrameId},r.prototype.stop=function(){return this._stop()},r.prototype._stop=function(t,e){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){var r=this._onEaseEnd;delete this._onEaseEnd,r.call(this,e)}if(!t){var n=this.handlers;n&&n.stop()}return this},r.prototype._ease=function(e,r,n){!1===n.animate||0===n.duration?(e(1),r()):(this._easeStart=t.browser.now(),this._easeOptions=n,this._onEaseFrame=e,this._onEaseEnd=r,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))},r.prototype._renderFrameCallback=function(){var e=Math.min((t.browser.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(e)),e<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},r.prototype._normalizeBearing=function(e,r){e=t.wrap(e,-180,180);var n=Math.abs(e-r);return Math.abs(e-360-r)180?-360:r<-180?360:0}},r}(t.Evented),vi=function(e){void 0===e&&(e={}),this.options=e,t.bindAll(["_updateEditLink","_updateData","_updateCompact"],this)};vi.prototype.getDefaultPosition=function(){return"bottom-right"},vi.prototype.onAdd=function(t){var e=this.options&&this.options.compact;return this._map=t,this._container=r.create("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),this._innerContainer=r.create("div","mapboxgl-ctrl-attrib-inner",this._container),e&&this._container.classList.add("mapboxgl-compact"),this._updateAttributions(),this._updateEditLink(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("moveend",this._updateEditLink),void 0===e&&(this._map.on("resize",this._updateCompact),this._updateCompact()),this._container},vi.prototype.onRemove=function(){r.remove(this._container),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("moveend",this._updateEditLink),this._map.off("resize",this._updateCompact),this._map=void 0,this._attribHTML=void 0},vi.prototype._updateEditLink=function(){var e=this._editLink;e||(e=this._editLink=this._container.querySelector(".mapbox-improve-map"));var r=[{key:"owner",value:this.styleOwner},{key:"id",value:this.styleId},{key:"access_token",value:this._map._requestManager._customAccessToken||t.config.ACCESS_TOKEN}];if(e){var n=r.reduce((function(t,e,n){return e.value&&(t+=e.key+"="+e.value+(n=0)return!1;return!0}))).join(" | ");o!==this._attribHTML&&(this._attribHTML=o,t.length?(this._innerContainer.innerHTML=o,this._container.classList.remove("mapboxgl-attrib-empty")):this._container.classList.add("mapboxgl-attrib-empty"),this._editLink=null)}},vi.prototype._updateCompact=function(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add("mapboxgl-compact"):this._container.classList.remove("mapboxgl-compact")};var yi=function(){t.bindAll(["_updateLogo"],this),t.bindAll(["_updateCompact"],this)};yi.prototype.onAdd=function(t){this._map=t,this._container=r.create("div","mapboxgl-ctrl");var e=r.create("a","mapboxgl-ctrl-logo");return e.target="_blank",e.rel="noopener nofollow",e.href="https://www.mapbox.com/",e.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),e.setAttribute("rel","noopener nofollow"),this._container.appendChild(e),this._container.style.display="none",this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._map.on("resize",this._updateCompact),this._updateCompact(),this._container},yi.prototype.onRemove=function(){r.remove(this._container),this._map.off("sourcedata",this._updateLogo),this._map.off("resize",this._updateCompact)},yi.prototype.getDefaultPosition=function(){return"bottom-left"},yi.prototype._updateLogo=function(t){t&&"metadata"!==t.sourceDataType||(this._container.style.display=this._logoRequired()?"block":"none")},yi.prototype._logoRequired=function(){if(this._map.style){var t=this._map.style.sourceCaches;for(var e in t)if(t[e].getSource().mapbox_logo)return!0;return!1}},yi.prototype._updateCompact=function(){var t=this._container.children;if(t.length){var e=t[0];this._map.getCanvasContainer().offsetWidth<250?e.classList.add("mapboxgl-compact"):e.classList.remove("mapboxgl-compact")}};var xi=function(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1};xi.prototype.add=function(t){var e=++this._id;return this._queue.push({callback:t,id:e,cancelled:!1}),e},xi.prototype.remove=function(t){for(var e=this._currentlyRunning,r=0,n=e?this._queue.concat(e):this._queue;re.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(null!=e.minPitch&&null!=e.maxPitch&&e.minPitch>e.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(null!=e.minPitch&&e.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(null!=e.maxPitch&&e.maxPitch>60)throw new Error("maxPitch must be less than or equal to 60");var i=new wn(e.minZoom,e.maxZoom,e.minPitch,e.maxPitch,e.renderWorldCopies);if(n.call(this,i,e),this._interactive=e.interactive,this._maxTileCacheSize=e.maxTileCacheSize,this._failIfMajorPerformanceCaveat=e.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=e.preserveDrawingBuffer,this._antialias=e.antialias,this._trackResize=e.trackResize,this._bearingSnap=e.bearingSnap,this._refreshExpiredTiles=e.refreshExpiredTiles,this._fadeDuration=e.fadeDuration,this._crossSourceCollisions=e.crossSourceCollisions,this._crossFadingFactor=1,this._collectResourceTiming=e.collectResourceTiming,this._renderTaskQueue=new xi,this._controls=[],this._mapId=t.uniqueId(),this._locale=t.extend({},bi,e.locale),this._requestManager=new t.RequestManager(e.transformRequest,e.accessToken),"string"==typeof e.container){if(this._container=t.window.document.getElementById(e.container),!this._container)throw new Error("Container '"+e.container+"' not found.")}else{if(!(e.container instanceof wi))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=e.container}if(e.maxBounds&&this.setMaxBounds(e.maxBounds),t.bindAll(["_onWindowOnline","_onWindowResize","_contextLost","_contextRestored"],this),this._setupContainer(),this._setupPainter(),void 0===this.painter)throw new Error("Failed to initialize WebGL.");this.on("move",(function(){return r._update(!1)})),this.on("moveend",(function(){return r._update(!1)})),this.on("zoom",(function(){return r._update(!0)})),void 0!==t.window&&(t.window.addEventListener("online",this._onWindowOnline,!1),t.window.addEventListener("resize",this._onWindowResize,!1)),this.handlers=new gi(this,e),this._hash=e.hash&&new kn("string"==typeof e.hash&&e.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:e.center,zoom:e.zoom,bearing:e.bearing,pitch:e.pitch}),e.bounds&&(this.resize(),this.fitBounds(e.bounds,t.extend({},e.fitBoundsOptions,{duration:0})))),this.resize(),this._localIdeographFontFamily=e.localIdeographFontFamily,e.style&&this.setStyle(e.style,{localIdeographFontFamily:e.localIdeographFontFamily}),e.attributionControl&&this.addControl(new vi({customAttribution:e.customAttribution})),this.addControl(new yi,e.logoPosition),this.on("style.load",(function(){r.transform.unmodified&&r.jumpTo(r.style.stylesheet)})),this.on("data",(function(e){r._update("style"===e.dataType),r.fire(new t.Event(e.dataType+"data",e))})),this.on("dataloading",(function(e){r.fire(new t.Event(e.dataType+"dataloading",e))}))}n&&(i.__proto__=n),(i.prototype=Object.create(n&&n.prototype)).constructor=i;var a={showTileBoundaries:{configurable:!0},showPadding:{configurable:!0},showCollisionBoxes:{configurable:!0},showOverdrawInspector:{configurable:!0},repaint:{configurable:!0},vertices:{configurable:!0},version:{configurable:!0}};return i.prototype._getMapId=function(){return this._mapId},i.prototype.addControl=function(e,r){if(void 0===r&&e.getDefaultPosition&&(r=e.getDefaultPosition()),void 0===r&&(r="top-right"),!e||!e.onAdd)return this.fire(new t.ErrorEvent(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));var n=e.onAdd(this);this._controls.push(e);var i=this._controlPositions[r];return-1!==r.indexOf("bottom")?i.insertBefore(n,i.firstChild):i.appendChild(n),this},i.prototype.removeControl=function(e){if(!e||!e.onRemove)return this.fire(new t.ErrorEvent(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));var r=this._controls.indexOf(e);return r>-1&&this._controls.splice(r,1),e.onRemove(this),this},i.prototype.resize=function(e){var r=this._containerDimensions(),n=r[0],i=r[1];this._resizeCanvas(n,i),this.transform.resize(n,i),this.painter.resize(n,i);var a=!this._moving;return a&&(this.stop(),this.fire(new t.Event("movestart",e)).fire(new t.Event("move",e))),this.fire(new t.Event("resize",e)),a&&this.fire(new t.Event("moveend",e)),this},i.prototype.getBounds=function(){return this.transform.getBounds()},i.prototype.getMaxBounds=function(){return this.transform.getMaxBounds()},i.prototype.setMaxBounds=function(e){return this.transform.setMaxBounds(t.LngLatBounds.convert(e)),this._update()},i.prototype.setMinZoom=function(t){if((t=null==t?-2:t)>=-2&&t<=this.transform.maxZoom)return this.transform.minZoom=t,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=t,this._update(),this.getZoom()>t&&this.setZoom(t),this;throw new Error("maxZoom must be greater than the current minZoom")},i.prototype.getMaxZoom=function(){return this.transform.maxZoom},i.prototype.setMinPitch=function(t){if((t=null==t?0:t)<0)throw new Error("minPitch must be greater than or equal to 0");if(t>=0&&t<=this.transform.maxPitch)return this.transform.minPitch=t,this._update(),this.getPitch()60)throw new Error("maxPitch must be less than or equal to 60");if(t>=this.transform.minPitch)return this.transform.maxPitch=t,this._update(),this.getPitch()>t&&this.setPitch(t),this;throw new Error("maxPitch must be greater than the current minPitch")},i.prototype.getMaxPitch=function(){return this.transform.maxPitch},i.prototype.getRenderWorldCopies=function(){return this.transform.renderWorldCopies},i.prototype.setRenderWorldCopies=function(t){return this.transform.renderWorldCopies=t,this._update()},i.prototype.project=function(e){return this.transform.locationPoint(t.LngLat.convert(e))},i.prototype.unproject=function(e){return this.transform.pointLocation(t.Point.convert(e))},i.prototype.isMoving=function(){return this._moving||this.handlers.isMoving()},i.prototype.isZooming=function(){return this._zooming||this.handlers.isZooming()},i.prototype.isRotating=function(){return this._rotating||this.handlers.isRotating()},i.prototype._createDelegatedListener=function(t,e,r){var n,i=this;if("mouseenter"===t||"mouseover"===t){var a=!1;return{layer:e,listener:r,delegates:{mousemove:function(n){var o=i.getLayer(e)?i.queryRenderedFeatures(n.point,{layers:[e]}):[];o.length?a||(a=!0,r.call(i,new zn(t,i,n.originalEvent,{features:o}))):a=!1},mouseout:function(){a=!1}}}}if("mouseleave"===t||"mouseout"===t){var o=!1;return{layer:e,listener:r,delegates:{mousemove:function(n){(i.getLayer(e)?i.queryRenderedFeatures(n.point,{layers:[e]}):[]).length?o=!0:o&&(o=!1,r.call(i,new zn(t,i,n.originalEvent)))},mouseout:function(e){o&&(o=!1,r.call(i,new zn(t,i,e.originalEvent)))}}}}return{layer:e,listener:r,delegates:(n={},n[t]=function(t){var n=i.getLayer(e)?i.queryRenderedFeatures(t.point,{layers:[e]}):[];n.length&&(t.features=n,r.call(i,t),delete t.features)},n)}},i.prototype.on=function(t,e,r){if(void 0===r)return n.prototype.on.call(this,t,e);var i=this._createDelegatedListener(t,e,r);for(var a in this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[t]=this._delegatedListeners[t]||[],this._delegatedListeners[t].push(i),i.delegates)this.on(a,i.delegates[a]);return this},i.prototype.once=function(t,e,r){if(void 0===r)return n.prototype.once.call(this,t,e);var i=this._createDelegatedListener(t,e,r);for(var a in i.delegates)this.once(a,i.delegates[a]);return this},i.prototype.off=function(t,e,r){var i=this;return void 0===r?n.prototype.off.call(this,t,e):(this._delegatedListeners&&this._delegatedListeners[t]&&function(n){for(var a=n[t],o=0;o180;){var s=n.locationPoint(e);if(s.x>=0&&s.y>=0&&s.x<=n.width&&s.y<=n.height)break;e.lng>n.center.lng?e.lng-=360:e.lng+=360}return e}Ci.prototype.down=function(t,e){this.mouseRotate.mousedown(t,e),this.mousePitch&&this.mousePitch.mousedown(t,e),r.disableDrag()},Ci.prototype.move=function(t,e){var r=this.map,n=this.mouseRotate.mousemoveWindow(t,e);if(n&&n.bearingDelta&&r.setBearing(r.getBearing()+n.bearingDelta),this.mousePitch){var i=this.mousePitch.mousemoveWindow(t,e);i&&i.pitchDelta&&r.setPitch(r.getPitch()+i.pitchDelta)}},Ci.prototype.off=function(){var t=this.element;r.removeEventListener(t,"mousedown",this.mousedown),r.removeEventListener(t,"touchstart",this.touchstart,{passive:!1}),r.removeEventListener(t,"touchmove",this.touchmove),r.removeEventListener(t,"touchend",this.touchend),r.removeEventListener(t,"touchcancel",this.reset),this.offTemp()},Ci.prototype.offTemp=function(){r.enableDrag(),r.removeEventListener(t.window,"mousemove",this.mousemove),r.removeEventListener(t.window,"mouseup",this.mouseup)},Ci.prototype.mousedown=function(e){this.down(t.extend({},e,{ctrlKey:!0,preventDefault:function(){return e.preventDefault()}}),r.mousePos(this.element,e)),r.addEventListener(t.window,"mousemove",this.mousemove),r.addEventListener(t.window,"mouseup",this.mouseup)},Ci.prototype.mousemove=function(t){this.move(t,r.mousePos(this.element,t))},Ci.prototype.mouseup=function(t){this.mouseRotate.mouseupWindow(t),this.mousePitch&&this.mousePitch.mouseupWindow(t),this.offTemp()},Ci.prototype.touchstart=function(t){1!==t.targetTouches.length?this.reset():(this._startPos=this._lastPos=r.touchPos(this.element,t.targetTouches)[0],this.down({type:"mousedown",button:0,ctrlKey:!0,preventDefault:function(){return t.preventDefault()}},this._startPos))},Ci.prototype.touchmove=function(t){1!==t.targetTouches.length?this.reset():(this._lastPos=r.touchPos(this.element,t.targetTouches)[0],this.move({preventDefault:function(){return t.preventDefault()}},this._lastPos))},Ci.prototype.touchend=function(t){0===t.targetTouches.length&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)e.getEast()||r.latitudee.getNorth())},n.prototype._setErrorState=function(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting")}},n.prototype._onSuccess=function(e){if(this._map){if(this._isOutOfMapMaxBounds(e))return this._setErrorState(),this.fire(new t.Event("outofmaxbounds",e)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=e,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background")}this.options.showUserLocation&&"OFF"!==this._watchState&&this._updateMarker(e),this.options.trackUserLocation&&"ACTIVE_LOCK"!==this._watchState||this._updateCamera(e),this.options.showUserLocation&&this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"),this.fire(new t.Event("geolocate",e)),this._finish()}},n.prototype._updateCamera=function(e){var r=new t.LngLat(e.coords.longitude,e.coords.latitude),n=e.coords.accuracy,i=this._map.getBearing(),a=t.extend({bearing:i},this.options.fitBoundsOptions);this._map.fitBounds(r.toBounds(n),a,{geolocateSource:!0})},n.prototype._updateMarker=function(e){if(e){var r=new t.LngLat(e.coords.longitude,e.coords.latitude);this._accuracyCircleMarker.setLngLat(r).addTo(this._map),this._userLocationDotMarker.setLngLat(r).addTo(this._map),this._accuracy=e.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},n.prototype._updateCircleRadius=function(){var t=this._map._container.clientHeight/2,e=this._map.unproject([0,t]),r=this._map.unproject([1,t]),n=e.distanceTo(r),i=Math.ceil(2*this._accuracy/n);this._circleElement.style.width=i+"px",this._circleElement.style.height=i+"px"},n.prototype._onZoom=function(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()},n.prototype._onError=function(e){if(this._map){if(this.options.trackUserLocation)if(1===e.code){this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;var r=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=r,this._geolocateButton.setAttribute("aria-label",r),void 0!==this._geolocationWatchID&&this._clearWatch()}else{if(3===e.code&&Fi)return;this._setErrorState()}"OFF"!==this._watchState&&this.options.showUserLocation&&this._dotElement.classList.add("mapboxgl-user-location-dot-stale"),this.fire(new t.Event("error",e)),this._finish()}},n.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},n.prototype._setupUI=function(e){var n=this;if(this._container.addEventListener("contextmenu",(function(t){return t.preventDefault()})),this._geolocateButton=r.create("button","mapboxgl-ctrl-geolocate",this._container),r.create("span","mapboxgl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden",!0),this._geolocateButton.type="button",!1===e){t.warnOnce("Geolocation support is not available so the GeolocateControl will be disabled.");var i=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=i,this._geolocateButton.setAttribute("aria-label",i)}else{var a=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.title=a,this._geolocateButton.setAttribute("aria-label",a)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=r.create("div","mapboxgl-user-location-dot"),this._userLocationDotMarker=new Oi(this._dotElement),this._circleElement=r.create("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new Oi({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",(function(e){e.geolocateSource||"ACTIVE_LOCK"!==n._watchState||e.originalEvent&&"resize"===e.originalEvent.type||(n._watchState="BACKGROUND",n._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),n._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),n.fire(new t.Event("trackuserlocationend")))}))},n.prototype.trigger=function(){if(!this._setup)return t.warnOnce("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new t.Event("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":Ri--,Fi=!1,this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this.fire(new t.Event("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new t.Event("trackuserlocationstart"))}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"BACKGROUND":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");break;case"BACKGROUND_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error")}if("OFF"===this._watchState&&void 0!==this._geolocationWatchID)this._clearWatch();else if(void 0===this._geolocationWatchID){var e;this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),++Ri>1?(e={maximumAge:6e5,timeout:0},Fi=!0):(e=this.options.positionOptions,Fi=!1),this._geolocationWatchID=t.window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,e)}}else t.window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0},n.prototype._clearWatch=function(){t.window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null)},n}(t.Evented),Ni={maxWidth:100,unit:"metric"},ji=function(e){this.options=t.extend({},Ni,e),t.bindAll(["_onMove","setUnit"],this)};function Ui(t,e,r){var n=r&&r.maxWidth||100,i=t._container.clientHeight/2,a=t.unproject([0,i]),o=t.unproject([n,i]),s=a.distanceTo(o);if(r&&"imperial"===r.unit){var l=3.2808*s;l>5280?Vi(e,n,l/5280,t._getUIString("ScaleControl.Miles")):Vi(e,n,l,t._getUIString("ScaleControl.Feet"))}else r&&"nautical"===r.unit?Vi(e,n,s/1852,t._getUIString("ScaleControl.NauticalMiles")):s>=1e3?Vi(e,n,s/1e3,t._getUIString("ScaleControl.Kilometers")):Vi(e,n,s,t._getUIString("ScaleControl.Meters"))}function Vi(t,e,r,n){var i,a,o,s=(i=r,(a=Math.pow(10,(""+Math.floor(i)).length-1))*(o=(o=i/a)>=10?10:o>=5?5:o>=3?3:o>=2?2:o>=1?1:function(t){var e=Math.pow(10,Math.ceil(-Math.log(t)/Math.LN10));return Math.round(t*e)/e}(o)));t.style.width=e*(s/r)+"px",t.innerHTML=s+" "+n}ji.prototype.getDefaultPosition=function(){return"bottom-left"},ji.prototype._onMove=function(){Ui(this._map,this._container,this.options)},ji.prototype.onAdd=function(t){return this._map=t,this._container=r.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",t.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container},ji.prototype.onRemove=function(){r.remove(this._container),this._map.off("move",this._onMove),this._map=void 0},ji.prototype.setUnit=function(t){this.options.unit=t,Ui(this._map,this._container,this.options)};var qi=function(e){this._fullscreen=!1,e&&e.container&&(e.container instanceof t.window.HTMLElement?this._container=e.container:t.warnOnce("Full screen control 'container' must be a DOM element.")),t.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in t.window.document?this._fullscreenchange="fullscreenchange":"onmozfullscreenchange"in t.window.document?this._fullscreenchange="mozfullscreenchange":"onwebkitfullscreenchange"in t.window.document?this._fullscreenchange="webkitfullscreenchange":"onmsfullscreenchange"in t.window.document&&(this._fullscreenchange="MSFullscreenChange")};qi.prototype.onAdd=function(e){return this._map=e,this._container||(this._container=this._map.getContainer()),this._controlContainer=r.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display="none",t.warnOnce("This device does not support fullscreen mode.")),this._controlContainer},qi.prototype.onRemove=function(){r.remove(this._controlContainer),this._map=null,t.window.document.removeEventListener(this._fullscreenchange,this._changeIcon)},qi.prototype._checkFullscreenSupport=function(){return!!(t.window.document.fullscreenEnabled||t.window.document.mozFullScreenEnabled||t.window.document.msFullscreenEnabled||t.window.document.webkitFullscreenEnabled)},qi.prototype._setupUI=function(){var e=this._fullscreenButton=r.create("button","mapboxgl-ctrl-fullscreen",this._controlContainer);r.create("span","mapboxgl-ctrl-icon",e).setAttribute("aria-hidden",!0),e.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),t.window.document.addEventListener(this._fullscreenchange,this._changeIcon)},qi.prototype._updateTitle=function(){var t=this._getTitle();this._fullscreenButton.setAttribute("aria-label",t),this._fullscreenButton.title=t},qi.prototype._getTitle=function(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")},qi.prototype._isFullscreen=function(){return this._fullscreen},qi.prototype._changeIcon=function(){(t.window.document.fullscreenElement||t.window.document.mozFullScreenElement||t.window.document.webkitFullscreenElement||t.window.document.msFullscreenElement)===this._container!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"),this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"),this._updateTitle())},qi.prototype._onClickFullscreen=function(){this._isFullscreen()?t.window.document.exitFullscreen?t.window.document.exitFullscreen():t.window.document.mozCancelFullScreen?t.window.document.mozCancelFullScreen():t.window.document.msExitFullscreen?t.window.document.msExitFullscreen():t.window.document.webkitCancelFullScreen&&t.window.document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen()};var Hi={closeButton:!0,closeOnClick:!0,className:"",maxWidth:"240px"},Gi=function(e){function n(r){e.call(this),this.options=t.extend(Object.create(Hi),r),t.bindAll(["_update","_onClose","remove","_onMouseMove","_onMouseUp","_onDrag"],this)}return e&&(n.__proto__=e),(n.prototype=Object.create(e&&e.prototype)).constructor=n,n.prototype.addTo=function(e){return this._map&&this.remove(),this._map=e,this.options.closeOnClick&&this._map.on("click",this._onClose),this.options.closeOnMove&&this._map.on("move",this._onClose),this._map.on("remove",this.remove),this._update(),this._trackPointer?(this._map.on("mousemove",this._onMouseMove),this._map.on("mouseup",this._onMouseUp),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")):this._map.on("move",this._update),this.fire(new t.Event("open")),this},n.prototype.isOpen=function(){return!!this._map},n.prototype.remove=function(){return this._content&&r.remove(this._content),this._container&&(r.remove(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("move",this._onClose),this._map.off("click",this._onClose),this._map.off("remove",this.remove),this._map.off("mousemove",this._onMouseMove),this._map.off("mouseup",this._onMouseUp),this._map.off("drag",this._onDrag),delete this._map),this.fire(new t.Event("close")),this},n.prototype.getLngLat=function(){return this._lngLat},n.prototype.setLngLat=function(e){return this._lngLat=t.LngLat.convert(e),this._pos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on("move",this._update),this._map.off("mousemove",this._onMouseMove),this._container&&this._container.classList.remove("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.remove("mapboxgl-track-pointer")),this},n.prototype.trackPointer=function(){return this._trackPointer=!0,this._pos=null,this._update(),this._map&&(this._map.off("move",this._update),this._map.on("mousemove",this._onMouseMove),this._map.on("drag",this._onDrag),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")),this},n.prototype.getElement=function(){return this._container},n.prototype.setText=function(e){return this.setDOMContent(t.window.document.createTextNode(e))},n.prototype.setHTML=function(e){var r,n=t.window.document.createDocumentFragment(),i=t.window.document.createElement("body");for(i.innerHTML=e;r=i.firstChild;)n.appendChild(r);return this.setDOMContent(n)},n.prototype.getMaxWidth=function(){return this._container&&this._container.style.maxWidth},n.prototype.setMaxWidth=function(t){return this.options.maxWidth=t,this._update(),this},n.prototype.setDOMContent=function(t){return this._createContent(),this._content.appendChild(t),this._update(),this},n.prototype.addClassName=function(t){this._container&&this._container.classList.add(t)},n.prototype.removeClassName=function(t){this._container&&this._container.classList.remove(t)},n.prototype.toggleClassName=function(t){if(this._container)return this._container.classList.toggle(t)},n.prototype._createContent=function(){this._content&&r.remove(this._content),this._content=r.create("div","mapboxgl-popup-content",this._container),this.options.closeButton&&(this._closeButton=r.create("button","mapboxgl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.setAttribute("aria-label","Close popup"),this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClose))},n.prototype._onMouseUp=function(t){this._update(t.point)},n.prototype._onMouseMove=function(t){this._update(t.point)},n.prototype._onDrag=function(t){this._update(t.point)},n.prototype._update=function(e){var n=this;if(this._map&&(this._lngLat||this._trackPointer)&&this._content&&(this._container||(this._container=r.create("div","mapboxgl-popup",this._map.getContainer()),this._tip=r.create("div","mapboxgl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className&&this.options.className.split(" ").forEach((function(t){return n._container.classList.add(t)})),this._trackPointer&&this._container.classList.add("mapboxgl-popup-track-pointer")),this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._map.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=Li(this._lngLat,this._pos,this._map.transform)),!this._trackPointer||e)){var i=this._pos=this._trackPointer&&e?e:this._map.project(this._lngLat),a=this.options.anchor,o=function e(r){if(r){if("number"==typeof r){var n=Math.round(Math.sqrt(.5*Math.pow(r,2)));return{center:new t.Point(0,0),top:new t.Point(0,r),"top-left":new t.Point(n,n),"top-right":new t.Point(-n,n),bottom:new t.Point(0,-r),"bottom-left":new t.Point(n,-n),"bottom-right":new t.Point(-n,-n),left:new t.Point(r,0),right:new t.Point(-r,0)}}if(r instanceof t.Point||Array.isArray(r)){var i=t.Point.convert(r);return{center:i,top:i,"top-left":i,"top-right":i,bottom:i,"bottom-left":i,"bottom-right":i,left:i,right:i}}return{center:t.Point.convert(r.center||[0,0]),top:t.Point.convert(r.top||[0,0]),"top-left":t.Point.convert(r["top-left"]||[0,0]),"top-right":t.Point.convert(r["top-right"]||[0,0]),bottom:t.Point.convert(r.bottom||[0,0]),"bottom-left":t.Point.convert(r["bottom-left"]||[0,0]),"bottom-right":t.Point.convert(r["bottom-right"]||[0,0]),left:t.Point.convert(r.left||[0,0]),right:t.Point.convert(r.right||[0,0])}}return e(new t.Point(0,0))}(this.options.offset);if(!a){var s,l=this._container.offsetWidth,c=this._container.offsetHeight;s=i.y+o.bottom.ythis._map.transform.height-c?["bottom"]:[],i.xthis._map.transform.width-l/2&&s.push("right"),a=0===s.length?"bottom":s.join("-")}var u=i.add(o[a]).round();r.setTransform(this._container,Ii[a]+" translate("+u.x+"px,"+u.y+"px)"),Pi(this._container,a,"popup")}},n.prototype._onClose=function(){this.remove()},n}(t.Evented),Yi={version:t.version,supported:e,setRTLTextPlugin:t.setRTLTextPlugin,getRTLTextPluginStatus:t.getRTLTextPluginStatus,Map:Mi,NavigationControl:Ei,GeolocateControl:Bi,AttributionControl:vi,ScaleControl:ji,FullscreenControl:qi,Popup:Gi,Marker:Oi,Style:qe,LngLat:t.LngLat,LngLatBounds:t.LngLatBounds,Point:t.Point,MercatorCoordinate:t.MercatorCoordinate,Evented:t.Evented,config:t.config,prewarm:function(){Bt().acquire(Ot)},clearPrewarmedResources:function(){var t=Rt;t&&(t.isPreloaded()&&1===t.numActive()?(t.release(Ot),Rt=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"))},get accessToken(){return t.config.ACCESS_TOKEN},set accessToken(e){t.config.ACCESS_TOKEN=e},get baseApiUrl(){return t.config.API_URL},set baseApiUrl(e){t.config.API_URL=e},get workerCount(){return Dt.workerCount},set workerCount(t){Dt.workerCount=t},get maxParallelImageRequests(){return t.config.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(e){t.config.MAX_PARALLEL_IMAGE_REQUESTS=e},clearStorage:function(e){t.clearTileCache(e)},workerUrl:""};return Yi})),r}))},{}],474:[function(t,e,r){"use strict";e.exports=function(t){for(var e=1<p[1][2]&&(v[0]=-v[0]),p[0][2]>p[2][0]&&(v[1]=-v[1]),p[1][0]>p[0][1]&&(v[2]=-v[2]),!0}},{"./normalize":476,"gl-mat4/clone":278,"gl-mat4/create":280,"gl-mat4/determinant":281,"gl-mat4/invert":293,"gl-mat4/transpose":306,"gl-vec3/cross":365,"gl-vec3/dot":370,"gl-vec3/length":380,"gl-vec3/normalize":387}],476:[function(t,e,r){e.exports=function(t,e){var r=e[15];if(0===r)return!1;for(var n=1/r,i=0;i<16;i++)t[i]=e[i]*n;return!0}},{}],477:[function(t,e,r){var n=t("gl-vec3/lerp"),i=t("mat4-recompose"),a=t("mat4-decompose"),o=t("gl-mat4/determinant"),s=t("quat-slerp"),l=f(),c=f(),u=f();function f(){return{translate:h(),scale:h(1),skew:h(),perspective:[0,0,0,1],quaternion:[0,0,0,1]}}function h(t){return[t||0,t||0,t||0]}e.exports=function(t,e,r,f){if(0===o(e)||0===o(r))return!1;var h=a(e,l.translate,l.scale,l.skew,l.perspective,l.quaternion),p=a(r,c.translate,c.scale,c.skew,c.perspective,c.quaternion);return!(!h||!p)&&(n(u.translate,l.translate,c.translate,f),n(u.skew,l.skew,c.skew,f),n(u.scale,l.scale,c.scale,f),n(u.perspective,l.perspective,c.perspective,f),s(u.quaternion,l.quaternion,c.quaternion,f),i(t,u.translate,u.scale,u.skew,u.perspective,u.quaternion),!0)}},{"gl-mat4/determinant":281,"gl-vec3/lerp":381,"mat4-decompose":475,"mat4-recompose":478,"quat-slerp":527}],478:[function(t,e,r){var n={identity:t("gl-mat4/identity"),translate:t("gl-mat4/translate"),multiply:t("gl-mat4/multiply"),create:t("gl-mat4/create"),scale:t("gl-mat4/scale"),fromRotationTranslation:t("gl-mat4/fromRotationTranslation")},i=(n.create(),n.create());e.exports=function(t,e,r,a,o,s){return n.identity(t),n.fromRotationTranslation(t,s,e),t[3]=o[0],t[7]=o[1],t[11]=o[2],t[15]=o[3],n.identity(i),0!==a[2]&&(i[9]=a[2],n.multiply(t,t,i)),0!==a[1]&&(i[9]=0,i[8]=a[1],n.multiply(t,t,i)),0!==a[0]&&(i[8]=0,i[4]=a[0],n.multiply(t,t,i)),n.scale(t,t,r),t}},{"gl-mat4/create":280,"gl-mat4/fromRotationTranslation":284,"gl-mat4/identity":291,"gl-mat4/multiply":295,"gl-mat4/scale":303,"gl-mat4/translate":305}],479:[function(t,e,r){"use strict";e.exports=Math.log2||function(t){return Math.log(t)*Math.LOG2E}},{}],480:[function(t,e,r){"use strict";var n=t("binary-search-bounds"),i=t("mat4-interpolate"),a=t("gl-mat4/invert"),o=t("gl-mat4/rotateX"),s=t("gl-mat4/rotateY"),l=t("gl-mat4/rotateZ"),c=t("gl-mat4/lookAt"),u=t("gl-mat4/translate"),f=(t("gl-mat4/scale"),t("gl-vec3/normalize")),h=[0,0,0];function p(t){this._components=t.slice(),this._time=[0],this.prevMatrix=t.slice(),this.nextMatrix=t.slice(),this.computedMatrix=t.slice(),this.computedInverse=t.slice(),this.computedEye=[0,0,0],this.computedUp=[0,0,0],this.computedCenter=[0,0,0],this.computedRadius=[0],this._limits=[-1/0,1/0]}e.exports=function(t){return new p((t=t||{}).matrix||[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])};var d=p.prototype;d.recalcMatrix=function(t){var e=this._time,r=n.le(e,t),o=this.computedMatrix;if(!(r<0)){var s=this._components;if(r===e.length-1)for(var l=16*r,c=0;c<16;++c)o[c]=s[l++];else{var u=e[r+1]-e[r],h=(l=16*r,this.prevMatrix),p=!0;for(c=0;c<16;++c)h[c]=s[l++];var d=this.nextMatrix;for(c=0;c<16;++c)d[c]=s[l++],p=p&&h[c]===d[c];if(u<1e-6||p)for(c=0;c<16;++c)o[c]=h[c];else i(o,h,d,(t-e[r])/u)}var g=this.computedUp;g[0]=o[1],g[1]=o[5],g[2]=o[9],f(g,g);var m=this.computedInverse;a(m,o);var v=this.computedEye,y=m[15];v[0]=m[12]/y,v[1]=m[13]/y,v[2]=m[14]/y;var x=this.computedCenter,b=Math.exp(this.computedRadius[0]);for(c=0;c<3;++c)x[c]=v[c]-o[2+4*c]*b}},d.idle=function(t){if(!(t1&&n(t[o[u-2]],t[o[u-1]],c)<=0;)u-=1,o.pop();for(o.push(l),u=s.length;u>1&&n(t[s[u-2]],t[s[u-1]],c)>=0;)u-=1,s.pop();s.push(l)}r=new Array(s.length+o.length-2);for(var f=0,h=(i=0,o.length);i0;--p)r[f++]=s[p];return r};var n=t("robust-orientation")[3]},{"robust-orientation":548}],483:[function(t,e,r){"use strict";e.exports=function(t,e){e||(e=t,t=window);var r=0,i=0,a=0,o={shift:!1,alt:!1,control:!1,meta:!1},s=!1;function l(t){var e=!1;return"altKey"in t&&(e=e||t.altKey!==o.alt,o.alt=!!t.altKey),"shiftKey"in t&&(e=e||t.shiftKey!==o.shift,o.shift=!!t.shiftKey),"ctrlKey"in t&&(e=e||t.ctrlKey!==o.control,o.control=!!t.ctrlKey),"metaKey"in t&&(e=e||t.metaKey!==o.meta,o.meta=!!t.metaKey),e}function c(t,s){var c=n.x(s),u=n.y(s);"buttons"in s&&(t=0|s.buttons),(t!==r||c!==i||u!==a||l(s))&&(r=0|t,i=c||0,a=u||0,e&&e(r,i,a,o))}function u(t){c(0,t)}function f(){(r||i||a||o.shift||o.alt||o.meta||o.control)&&(i=a=0,r=0,o.shift=o.alt=o.control=o.meta=!1,e&&e(0,0,0,o))}function h(t){l(t)&&e&&e(r,i,a,o)}function p(t){0===n.buttons(t)?c(0,t):c(r,t)}function d(t){c(r|n.buttons(t),t)}function g(t){c(r&~n.buttons(t),t)}function m(){s||(s=!0,t.addEventListener("mousemove",p),t.addEventListener("mousedown",d),t.addEventListener("mouseup",g),t.addEventListener("mouseleave",u),t.addEventListener("mouseenter",u),t.addEventListener("mouseout",u),t.addEventListener("mouseover",u),t.addEventListener("blur",f),t.addEventListener("keyup",h),t.addEventListener("keydown",h),t.addEventListener("keypress",h),t!==window&&(window.addEventListener("blur",f),window.addEventListener("keyup",h),window.addEventListener("keydown",h),window.addEventListener("keypress",h)))}m();var v={element:t};return Object.defineProperties(v,{enabled:{get:function(){return s},set:function(e){e?m():function(){if(!s)return;s=!1,t.removeEventListener("mousemove",p),t.removeEventListener("mousedown",d),t.removeEventListener("mouseup",g),t.removeEventListener("mouseleave",u),t.removeEventListener("mouseenter",u),t.removeEventListener("mouseout",u),t.removeEventListener("mouseover",u),t.removeEventListener("blur",f),t.removeEventListener("keyup",h),t.removeEventListener("keydown",h),t.removeEventListener("keypress",h),t!==window&&(window.removeEventListener("blur",f),window.removeEventListener("keyup",h),window.removeEventListener("keydown",h),window.removeEventListener("keypress",h))}()},enumerable:!0},buttons:{get:function(){return r},enumerable:!0},x:{get:function(){return i},enumerable:!0},y:{get:function(){return a},enumerable:!0},mods:{get:function(){return o},enumerable:!0}}),v};var n=t("mouse-event")},{"mouse-event":485}],484:[function(t,e,r){var n={left:0,top:0};e.exports=function(t,e,r){e=e||t.currentTarget||t.srcElement,Array.isArray(r)||(r=[0,0]);var i=t.clientX||0,a=t.clientY||0,o=(s=e,s===window||s===document||s===document.body?n:s.getBoundingClientRect());var s;return r[0]=i-o.left,r[1]=a-o.top,r}},{}],485:[function(t,e,r){"use strict";function n(t){return t.target||t.srcElement||window}r.buttons=function(t){if("object"==typeof t){if("buttons"in t)return t.buttons;if("which"in t){if(2===(e=t.which))return 4;if(3===e)return 2;if(e>0)return 1<=0)return 1< 0");"function"!=typeof t.vertex&&e("Must specify vertex creation function");"function"!=typeof t.cell&&e("Must specify cell creation function");"function"!=typeof t.phase&&e("Must specify phase function");for(var w=t.getters||[],T=new Array(b),k=0;k=0?T[k]=!0:T[k]=!1;return function(t,e,r,b,_,w){var T=w.length,k=_.length;if(k<2)throw new Error("ndarray-extract-contour: Dimension must be at least 2");for(var M="extractContour"+_.join("_"),A=[],S=[],E=[],C=0;C0&&z.push(l(C,_[L-1])+"*"+s(_[L-1])),S.push(d(C,_[L])+"=("+z.join("-")+")|0")}for(C=0;C=0;--C)O.push(s(_[C]));S.push("Q=("+O.join("*")+")|0","P=mallocUint32(Q)","V=mallocUint32(Q)","X=0"),S.push(g(0)+"=0");for(L=1;L<1<0;_=_-1&d)x.push("V[X+"+v(_)+"]");x.push(y(0));for(_=0;_=0;--e)N(e,0);var r=[];for(e=0;e0){",p(_[e]),"=1;"),t(e-1,r|1<<_[e]);for(var n=0;n=0?s.push("0"):e.indexOf(-(l+1))>=0?s.push("s["+l+"]-1"):(s.push("-1"),a.push("1"),o.push("s["+l+"]-2"));var c=".lo("+a.join()+").hi("+o.join()+")";if(0===a.length&&(c=""),i>0){n.push("if(1");for(l=0;l=0||e.indexOf(-(l+1))>=0||n.push("&&s[",l,"]>2");n.push("){grad",i,"(src.pick(",s.join(),")",c);for(l=0;l=0||e.indexOf(-(l+1))>=0||n.push(",dst.pick(",s.join(),",",l,")",c);n.push(");")}for(l=0;l1){dst.set(",s.join(),",",u,",0.5*(src.get(",h.join(),")-src.get(",p.join(),")))}else{dst.set(",s.join(),",",u,",0)};"):n.push("if(s[",u,"]>1){diff(",f,",src.pick(",h.join(),")",c,",src.pick(",p.join(),")",c,");}else{zero(",f,");};");break;case"mirror":0===i?n.push("dst.set(",s.join(),",",u,",0);"):n.push("zero(",f,");");break;case"wrap":var d=s.slice(),g=s.slice();e[l]<0?(d[u]="s["+u+"]-2",g[u]="0"):(d[u]="s["+u+"]-1",g[u]="1"),0===i?n.push("if(s[",u,"]>2){dst.set(",s.join(),",",u,",0.5*(src.get(",d.join(),")-src.get(",g.join(),")))}else{dst.set(",s.join(),",",u,",0)};"):n.push("if(s[",u,"]>2){diff(",f,",src.pick(",d.join(),")",c,",src.pick(",g.join(),")",c,");}else{zero(",f,");};");break;default:throw new Error("ndarray-gradient: Invalid boundary condition")}}i>0&&n.push("};")}for(var s=0;s<1<>",rrshift:">>>"};!function(){for(var t in s){var e=s[t];r[t]=o({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+e+"c"},funcName:t}),r[t+"eq"]=o({args:["array","array"],body:{args:["a","b"],body:"a"+e+"=b"},rvalue:!0,funcName:t+"eq"}),r[t+"s"]=o({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+e+"s"},funcName:t+"s"}),r[t+"seq"]=o({args:["array","scalar"],body:{args:["a","s"],body:"a"+e+"=s"},rvalue:!0,funcName:t+"seq"})}}();var l={not:"!",bnot:"~",neg:"-",recip:"1.0/"};!function(){for(var t in l){var e=l[t];r[t]=o({args:["array","array"],body:{args:["a","b"],body:"a="+e+"b"},funcName:t}),r[t+"eq"]=o({args:["array"],body:{args:["a"],body:"a="+e+"a"},rvalue:!0,count:2,funcName:t+"eq"})}}();var c={and:"&&",or:"||",eq:"===",neq:"!==",lt:"<",gt:">",leq:"<=",geq:">="};!function(){for(var t in c){var e=c[t];r[t]=o({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+e+"c"},funcName:t}),r[t+"s"]=o({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+e+"s"},funcName:t+"s"}),r[t+"eq"]=o({args:["array","array"],body:{args:["a","b"],body:"a=a"+e+"b"},rvalue:!0,count:2,funcName:t+"eq"}),r[t+"seq"]=o({args:["array","scalar"],body:{args:["a","s"],body:"a=a"+e+"s"},rvalue:!0,count:2,funcName:t+"seq"})}}();var u=["abs","acos","asin","atan","ceil","cos","exp","floor","log","round","sin","sqrt","tan"];!function(){for(var t=0;tthis_s){this_s=-a}else if(a>this_s){this_s=a}",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norminf"}),r.norm1=n({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:3}],body:"this_s+=a<0?-a:a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norm1"}),r.sup=n({args:["array"],pre:{body:"this_h=-Infinity",args:[],thisVars:["this_h"],localVars:[]},body:{body:"if(_inline_1_arg0_>this_h)this_h=_inline_1_arg0_",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_h"],localVars:[]},post:{body:"return this_h",args:[],thisVars:["this_h"],localVars:[]}}),r.inf=n({args:["array"],pre:{body:"this_h=Infinity",args:[],thisVars:["this_h"],localVars:[]},body:{body:"if(_inline_1_arg0_this_v){this_v=_inline_1_arg1_;for(var _inline_1_k=0;_inline_1_k<_inline_1_arg0_.length;++_inline_1_k){this_i[_inline_1_k]=_inline_1_arg0_[_inline_1_k]}}}",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2},{name:"_inline_1_arg1_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_i","this_v"],localVars:["_inline_1_k"]},post:{body:"{return this_i}",args:[],thisVars:["this_i"],localVars:[]}}),r.random=o({args:["array"],pre:{args:[],body:"this_f=Math.random",thisVars:["this_f"]},body:{args:["a"],body:"a=this_f()",thisVars:["this_f"]},funcName:"random"}),r.assign=o({args:["array","array"],body:{args:["a","b"],body:"a=b"},funcName:"assign"}),r.assigns=o({args:["array","scalar"],body:{args:["a","b"],body:"a=b"},funcName:"assigns"}),r.equals=n({args:["array","array"],pre:i,body:{args:[{name:"x",lvalue:!1,rvalue:!0,count:1},{name:"y",lvalue:!1,rvalue:!0,count:1}],body:"if(x!==y){return false}",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:"return true"},funcName:"equals"})},{"cwise-compiler":151}],491:[function(t,e,r){"use strict";var n=t("ndarray"),i=t("./doConvert.js");e.exports=function(t,e){for(var r=[],a=t,o=1;Array.isArray(a);)r.push(a.length),o*=a.length,a=a[0];return 0===r.length?n():(e||(e=n(new Float64Array(o),r)),i(e,t),e)}},{"./doConvert.js":492,ndarray:495}],492:[function(t,e,r){e.exports=t("cwise-compiler")({args:["array","scalar","index"],pre:{body:"{}",args:[],thisVars:[],localVars:[]},body:{body:"{\nvar _inline_1_v=_inline_1_arg1_,_inline_1_i\nfor(_inline_1_i=0;_inline_1_i<_inline_1_arg2_.length-1;++_inline_1_i) {\n_inline_1_v=_inline_1_v[_inline_1_arg2_[_inline_1_i]]\n}\n_inline_1_arg0_=_inline_1_v[_inline_1_arg2_[_inline_1_arg2_.length-1]]\n}",args:[{name:"_inline_1_arg0_",lvalue:!0,rvalue:!1,count:1},{name:"_inline_1_arg1_",lvalue:!1,rvalue:!0,count:1},{name:"_inline_1_arg2_",lvalue:!1,rvalue:!0,count:4}],thisVars:[],localVars:["_inline_1_i","_inline_1_v"]},post:{body:"{}",args:[],thisVars:[],localVars:[]},funcName:"convert",blockSize:64})},{"cwise-compiler":151}],493:[function(t,e,r){"use strict";var n=t("typedarray-pool"),i=32;function a(t){switch(t){case"uint8":return[n.mallocUint8,n.freeUint8];case"uint16":return[n.mallocUint16,n.freeUint16];case"uint32":return[n.mallocUint32,n.freeUint32];case"int8":return[n.mallocInt8,n.freeInt8];case"int16":return[n.mallocInt16,n.freeInt16];case"int32":return[n.mallocInt32,n.freeInt32];case"float32":return[n.mallocFloat,n.freeFloat];case"float64":return[n.mallocDouble,n.freeDouble];default:return null}}function o(t){for(var e=[],r=0;r0?s.push(["d",d,"=s",d,"-d",f,"*n",f].join("")):s.push(["d",d,"=s",d].join("")),f=d),0!==(p=t.length-1-l)&&(h>0?s.push(["e",p,"=s",p,"-e",h,"*n",h,",f",p,"=",c[p],"-f",h,"*n",h].join("")):s.push(["e",p,"=s",p,",f",p,"=",c[p]].join("")),h=p)}r.push("var "+s.join(","));var g=["0","n0-1","data","offset"].concat(o(t.length));r.push(["if(n0<=",i,"){","insertionSort(",g.join(","),")}else{","quickSort(",g.join(","),")}"].join("")),r.push("}return "+n);var m=new Function("insertionSort","quickSort",r.join("\n")),v=function(t,e){var r=["'use strict'"],n=["ndarrayInsertionSort",t.join("d"),e].join(""),i=["left","right","data","offset"].concat(o(t.length)),s=a(e),l=["i,j,cptr,ptr=left*s0+offset"];if(t.length>1){for(var c=[],u=1;u1){r.push("dptr=0;sptr=ptr");for(u=t.length-1;u>=0;--u){0!==(p=t[u])&&r.push(["for(i",p,"=0;i",p,"b){break __l}"].join(""));for(u=t.length-1;u>=1;--u)r.push("sptr+=e"+u,"dptr+=f"+u,"}");r.push("dptr=cptr;sptr=cptr-s0");for(u=t.length-1;u>=0;--u){0!==(p=t[u])&&r.push(["for(i",p,"=0;i",p,"=0;--u){0!==(p=t[u])&&r.push(["for(i",p,"=0;i",p,"scratch)){",h("cptr",f("cptr-s0")),"cptr-=s0","}",h("cptr","scratch"));return r.push("}"),t.length>1&&s&&r.push("free(scratch)"),r.push("} return "+n),s?new Function("malloc","free",r.join("\n"))(s[0],s[1]):new Function(r.join("\n"))()}(t,e),y=function(t,e,r){var n=["'use strict'"],s=["ndarrayQuickSort",t.join("d"),e].join(""),l=["left","right","data","offset"].concat(o(t.length)),c=a(e),u=0;n.push(["function ",s,"(",l.join(","),"){"].join(""));var f=["sixth=((right-left+1)/6)|0","index1=left+sixth","index5=right-sixth","index3=(left+right)>>1","index2=index3-sixth","index4=index3+sixth","el1=index1","el2=index2","el3=index3","el4=index4","el5=index5","less=left+1","great=right-1","pivots_are_equal=true","tmp","tmp0","x","y","z","k","ptr0","ptr1","ptr2","comp_pivot1=0","comp_pivot2=0","comp=0"];if(t.length>1){for(var h=[],p=1;p=0;--a){0!==(o=t[a])&&n.push(["for(i",o,"=0;i",o,"1)for(a=0;a1?n.push("ptr_shift+=d"+o):n.push("ptr0+=d"+o),n.push("}"))}}function y(e,r,i,a){if(1===r.length)n.push("ptr0="+d(r[0]));else{for(var o=0;o1)for(o=0;o=1;--o)i&&n.push("pivot_ptr+=f"+o),r.length>1?n.push("ptr_shift+=e"+o):n.push("ptr0+=e"+o),n.push("}")}function x(){t.length>1&&c&&n.push("free(pivot1)","free(pivot2)")}function b(e,r){var i="el"+e,a="el"+r;if(t.length>1){var o="__l"+ ++u;y(o,[i,a],!1,["comp=",g("ptr0"),"-",g("ptr1"),"\n","if(comp>0){tmp0=",i,";",i,"=",a,";",a,"=tmp0;break ",o,"}\n","if(comp<0){break ",o,"}"].join(""))}else n.push(["if(",g(d(i)),">",g(d(a)),"){tmp0=",i,";",i,"=",a,";",a,"=tmp0}"].join(""))}function _(e,r){t.length>1?v([e,r],!1,m("ptr0",g("ptr1"))):n.push(m(d(e),g(d(r))))}function w(e,r,i){if(t.length>1){var a="__l"+ ++u;y(a,[r],!0,[e,"=",g("ptr0"),"-pivot",i,"[pivot_ptr]\n","if(",e,"!==0){break ",a,"}"].join(""))}else n.push([e,"=",g(d(r)),"-pivot",i].join(""))}function T(e,r){t.length>1?v([e,r],!1,["tmp=",g("ptr0"),"\n",m("ptr0",g("ptr1")),"\n",m("ptr1","tmp")].join("")):n.push(["ptr0=",d(e),"\n","ptr1=",d(r),"\n","tmp=",g("ptr0"),"\n",m("ptr0",g("ptr1")),"\n",m("ptr1","tmp")].join(""))}function k(e,r,i){t.length>1?(v([e,r,i],!1,["tmp=",g("ptr0"),"\n",m("ptr0",g("ptr1")),"\n",m("ptr1",g("ptr2")),"\n",m("ptr2","tmp")].join("")),n.push("++"+r,"--"+i)):n.push(["ptr0=",d(e),"\n","ptr1=",d(r),"\n","ptr2=",d(i),"\n","++",r,"\n","--",i,"\n","tmp=",g("ptr0"),"\n",m("ptr0",g("ptr1")),"\n",m("ptr1",g("ptr2")),"\n",m("ptr2","tmp")].join(""))}function M(t,e){T(t,e),n.push("--"+e)}function A(e,r,i){t.length>1?v([e,r],!0,[m("ptr0",g("ptr1")),"\n",m("ptr1",["pivot",i,"[pivot_ptr]"].join(""))].join("")):n.push(m(d(e),g(d(r))),m(d(r),"pivot"+i))}function S(e,r){n.push(["if((",r,"-",e,")<=",i,"){\n","insertionSort(",e,",",r,",data,offset,",o(t.length).join(","),")\n","}else{\n",s,"(",e,",",r,",data,offset,",o(t.length).join(","),")\n","}"].join(""))}function E(e,r,i){t.length>1?(n.push(["__l",++u,":while(true){"].join("")),v([e],!0,["if(",g("ptr0"),"!==pivot",r,"[pivot_ptr]){break __l",u,"}"].join("")),n.push(i,"}")):n.push(["while(",g(d(e)),"===pivot",r,"){",i,"}"].join(""))}return n.push("var "+f.join(",")),b(1,2),b(4,5),b(1,3),b(2,3),b(1,4),b(3,4),b(2,5),b(2,3),b(4,5),t.length>1?v(["el1","el2","el3","el4","el5","index1","index3","index5"],!0,["pivot1[pivot_ptr]=",g("ptr1"),"\n","pivot2[pivot_ptr]=",g("ptr3"),"\n","pivots_are_equal=pivots_are_equal&&(pivot1[pivot_ptr]===pivot2[pivot_ptr])\n","x=",g("ptr0"),"\n","y=",g("ptr2"),"\n","z=",g("ptr4"),"\n",m("ptr5","x"),"\n",m("ptr6","y"),"\n",m("ptr7","z")].join("")):n.push(["pivot1=",g(d("el2")),"\n","pivot2=",g(d("el4")),"\n","pivots_are_equal=pivot1===pivot2\n","x=",g(d("el1")),"\n","y=",g(d("el3")),"\n","z=",g(d("el5")),"\n",m(d("index1"),"x"),"\n",m(d("index3"),"y"),"\n",m(d("index5"),"z")].join("")),_("index2","left"),_("index4","right"),n.push("if(pivots_are_equal){"),n.push("for(k=less;k<=great;++k){"),w("comp","k",1),n.push("if(comp===0){continue}"),n.push("if(comp<0){"),n.push("if(k!==less){"),T("k","less"),n.push("}"),n.push("++less"),n.push("}else{"),n.push("while(true){"),w("comp","great",1),n.push("if(comp>0){"),n.push("great--"),n.push("}else if(comp<0){"),k("k","less","great"),n.push("break"),n.push("}else{"),M("k","great"),n.push("break"),n.push("}"),n.push("}"),n.push("}"),n.push("}"),n.push("}else{"),n.push("for(k=less;k<=great;++k){"),w("comp_pivot1","k",1),n.push("if(comp_pivot1<0){"),n.push("if(k!==less){"),T("k","less"),n.push("}"),n.push("++less"),n.push("}else{"),w("comp_pivot2","k",2),n.push("if(comp_pivot2>0){"),n.push("while(true){"),w("comp","great",2),n.push("if(comp>0){"),n.push("if(--greatindex5){"),E("less",1,"++less"),E("great",2,"--great"),n.push("for(k=less;k<=great;++k){"),w("comp_pivot1","k",1),n.push("if(comp_pivot1===0){"),n.push("if(k!==less){"),T("k","less"),n.push("}"),n.push("++less"),n.push("}else{"),w("comp_pivot2","k",2),n.push("if(comp_pivot2===0){"),n.push("while(true){"),w("comp","great",2),n.push("if(comp===0){"),n.push("if(--great1&&c?new Function("insertionSort","malloc","free",n.join("\n"))(r,c[0],c[1]):new Function("insertionSort",n.join("\n"))(r)}(t,e,v);return m(v,y)}},{"typedarray-pool":595}],494:[function(t,e,r){"use strict";var n=t("./lib/compile_sort.js"),i={};e.exports=function(t){var e=t.order,r=t.dtype,a=[e,r].join(":"),o=i[a];return o||(i[a]=o=n(e,r)),o(t),t}},{"./lib/compile_sort.js":493}],495:[function(t,e,r){var n=t("iota-array"),i=t("is-buffer"),a="undefined"!=typeof Float64Array;function o(t,e){return t[0]-e[0]}function s(){var t,e=this.stride,r=new Array(e.length);for(t=0;tMath.abs(this.stride[1]))?[1,0]:[0,1]}})"):3===e&&a.push("var s0=Math.abs(this.stride[0]),s1=Math.abs(this.stride[1]),s2=Math.abs(this.stride[2]);if(s0>s1){if(s1>s2){return [2,1,0];}else if(s0>s2){return [1,2,0];}else{return [1,0,2];}}else if(s0>s2){return [2,0,1];}else if(s2>s1){return [0,1,2];}else{return [0,2,1];}}})")):a.push("ORDER})")),a.push("proto.set=function "+r+"_set("+l.join(",")+",v){"),i?a.push("return this.data.set("+u+",v)}"):a.push("return this.data["+u+"]=v}"),a.push("proto.get=function "+r+"_get("+l.join(",")+"){"),i?a.push("return this.data.get("+u+")}"):a.push("return this.data["+u+"]}"),a.push("proto.index=function "+r+"_index(",l.join(),"){return "+u+"}"),a.push("proto.hi=function "+r+"_hi("+l.join(",")+"){return new "+r+"(this.data,"+o.map((function(t){return["(typeof i",t,"!=='number'||i",t,"<0)?this.shape[",t,"]:i",t,"|0"].join("")})).join(",")+","+o.map((function(t){return"this.stride["+t+"]"})).join(",")+",this.offset)}");var p=o.map((function(t){return"a"+t+"=this.shape["+t+"]"})),d=o.map((function(t){return"c"+t+"=this.stride["+t+"]"}));a.push("proto.lo=function "+r+"_lo("+l.join(",")+"){var b=this.offset,d=0,"+p.join(",")+","+d.join(","));for(var g=0;g=0){d=i"+g+"|0;b+=c"+g+"*d;a"+g+"-=d}");a.push("return new "+r+"(this.data,"+o.map((function(t){return"a"+t})).join(",")+","+o.map((function(t){return"c"+t})).join(",")+",b)}"),a.push("proto.step=function "+r+"_step("+l.join(",")+"){var "+o.map((function(t){return"a"+t+"=this.shape["+t+"]"})).join(",")+","+o.map((function(t){return"b"+t+"=this.stride["+t+"]"})).join(",")+",c=this.offset,d=0,ceil=Math.ceil");for(g=0;g=0){c=(c+this.stride["+g+"]*i"+g+")|0}else{a.push(this.shape["+g+"]);b.push(this.stride["+g+"])}");return a.push("var ctor=CTOR_LIST[a.length+1];return ctor(this.data,a,b,c)}"),a.push("return function construct_"+r+"(data,shape,stride,offset){return new "+r+"(data,"+o.map((function(t){return"shape["+t+"]"})).join(",")+","+o.map((function(t){return"stride["+t+"]"})).join(",")+",offset)}"),new Function("CTOR_LIST","ORDER",a.join("\n"))(c[t],s)}var c={float32:[],float64:[],int8:[],int16:[],int32:[],uint8:[],uint16:[],uint32:[],array:[],uint8_clamped:[],bigint64:[],biguint64:[],buffer:[],generic:[]};e.exports=function(t,e,r,n){if(void 0===t)return(0,c.array[0])([]);"number"==typeof t&&(t=[t]),void 0===e&&(e=[t.length]);var o=e.length;if(void 0===r){r=new Array(o);for(var s=o-1,u=1;s>=0;--s)r[s]=u,u*=e[s]}if(void 0===n){n=0;for(s=0;st==t>0?a===-1>>>0?(r+=1,a=0):a+=1:0===a?(a=-1>>>0,r-=1):a-=1;return n.pack(a,r)}},{"double-bits":173}],497:[function(t,e,r){var n=Math.PI,i=c(120);function a(t,e,r,n){return["C",t,e,r,n,r,n]}function o(t,e,r,n,i,a){return["C",t/3+2/3*r,e/3+2/3*n,i/3+2/3*r,a/3+2/3*n,i,a]}function s(t,e,r,a,o,c,u,f,h,p){if(p)T=p[0],k=p[1],_=p[2],w=p[3];else{var d=l(t,e,-o);t=d.x,e=d.y;var g=(t-(f=(d=l(f,h,-o)).x))/2,m=(e-(h=d.y))/2,v=g*g/(r*r)+m*m/(a*a);v>1&&(r*=v=Math.sqrt(v),a*=v);var y=r*r,x=a*a,b=(c==u?-1:1)*Math.sqrt(Math.abs((y*x-y*m*m-x*g*g)/(y*m*m+x*g*g)));b==1/0&&(b=1);var _=b*r*m/a+(t+f)/2,w=b*-a*g/r+(e+h)/2,T=Math.asin(((e-w)/a).toFixed(9)),k=Math.asin(((h-w)/a).toFixed(9));(T=t<_?n-T:T)<0&&(T=2*n+T),(k=f<_?n-k:k)<0&&(k=2*n+k),u&&T>k&&(T-=2*n),!u&&k>T&&(k-=2*n)}if(Math.abs(k-T)>i){var M=k,A=f,S=h;k=T+i*(u&&k>T?1:-1);var E=s(f=_+r*Math.cos(k),h=w+a*Math.sin(k),r,a,o,0,u,A,S,[k,M,_,w])}var C=Math.tan((k-T)/4),L=4/3*r*C,I=4/3*a*C,P=[2*t-(t+L*Math.sin(T)),2*e-(e-I*Math.cos(T)),f+L*Math.sin(k),h-I*Math.cos(k),f,h];if(p)return P;E&&(P=P.concat(E));for(var z=0;z7&&(r.push(v.splice(0,7)),v.unshift("C"));break;case"S":var x=p,b=d;"C"!=e&&"S"!=e||(x+=x-n,b+=b-i),v=["C",x,b,v[1],v[2],v[3],v[4]];break;case"T":"Q"==e||"T"==e?(f=2*p-f,h=2*d-h):(f=p,h=d),v=o(p,d,f,h,v[1],v[2]);break;case"Q":f=v[1],h=v[2],v=o(p,d,v[1],v[2],v[3],v[4]);break;case"L":v=a(p,d,v[1],v[2]);break;case"H":v=a(p,d,v[1],d);break;case"V":v=a(p,d,p,v[1]);break;case"Z":v=a(p,d,l,u)}e=y,p=v[v.length-2],d=v[v.length-1],v.length>4?(n=v[v.length-4],i=v[v.length-3]):(n=p,i=d),r.push(v)}return r}},{}],498:[function(t,e,r){r.vertexNormals=function(t,e,r){for(var n=e.length,i=new Array(n),a=void 0===r?1e-6:r,o=0;oa){var b=i[c],_=1/Math.sqrt(m*y);for(x=0;x<3;++x){var w=(x+1)%3,T=(x+2)%3;b[x]+=_*(v[w]*g[T]-v[T]*g[w])}}}for(o=0;oa)for(_=1/Math.sqrt(k),x=0;x<3;++x)b[x]*=_;else for(x=0;x<3;++x)b[x]=0}return i},r.faceNormals=function(t,e,r){for(var n=t.length,i=new Array(n),a=void 0===r?1e-6:r,o=0;oa?1/Math.sqrt(p):0;for(c=0;c<3;++c)h[c]*=p;i[o]=h}return i}},{}],499:[function(t,e,r){ +e.exports=function(t){return null!=t&&(n(t)||function(t){return"function"==typeof t.readFloatLE&&"function"==typeof t.slice&&n(t.slice(0,0))}(t)||!!t._isBuffer)}},{}],445:[function(t,e,r){"use strict";e.exports="undefined"!=typeof navigator&&(/MSIE/.test(navigator.userAgent)||/Trident\//.test(navigator.appVersion))},{}],446:[function(t,e,r){"use strict";e.exports=a,e.exports.isMobile=a,e.exports.default=a;var n=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,i=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino|android|ipad|playbook|silk/i;function a(t){t||(t={});var e=t.ua;if(e||"undefined"==typeof navigator||(e=navigator.userAgent),e&&e.headers&&"string"==typeof e.headers["user-agent"]&&(e=e.headers["user-agent"]),"string"!=typeof e)return!1;var r=t.tablet?i.test(e):n.test(e);return!r&&t.tablet&&t.featureDetect&&navigator&&navigator.maxTouchPoints>1&&-1!==e.indexOf("Macintosh")&&-1!==e.indexOf("Safari")&&(r=!0),r}},{}],447:[function(t,e,r){"use strict";e.exports=function(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}},{}],448:[function(t,e,r){"use strict";var n=Object.prototype.toString;e.exports=function(t){var e;return"[object Object]"===n.call(t)&&(null===(e=Object.getPrototypeOf(t))||e===Object.getPrototypeOf({}))}},{}],449:[function(t,e,r){"use strict";e.exports=function(t){for(var e,r=t.length,n=0;n13)&&32!==e&&133!==e&&160!==e&&5760!==e&&6158!==e&&(e<8192||e>8205)&&8232!==e&&8233!==e&&8239!==e&&8287!==e&&8288!==e&&12288!==e&&65279!==e)return!1;return!0}},{}],450:[function(t,e,r){"use strict";e.exports=function(t){return"string"==typeof t&&(t=t.trim(),!!(/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4))}},{}],451:[function(t,e,r){e.exports=function(t,e,r){return t*(1-r)+e*r}},{}],452:[function(t,e,r){!function(t,n){"object"==typeof r&&void 0!==e?e.exports=n():(t=t||self).mapboxgl=n()}(this,(function(){"use strict";var t,e,r;function n(n,i){if(t)if(e){var a="var sharedChunk = {}; ("+t+")(sharedChunk); ("+e+")(sharedChunk);",o={};t(o),(r=i(o)).workerUrl=window.URL.createObjectURL(new Blob([a],{type:"text/javascript"}))}else e=i;else t=i}return n(0,(function(t){function e(t,e){return t(e={exports:{}},e.exports),e.exports}var r=n;function n(t,e,r,n){this.cx=3*t,this.bx=3*(r-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*e,this.by=3*(n-e)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=n,this.p2x=r,this.p2y=n}n.prototype.sampleCurveX=function(t){return((this.ax*t+this.bx)*t+this.cx)*t},n.prototype.sampleCurveY=function(t){return((this.ay*t+this.by)*t+this.cy)*t},n.prototype.sampleCurveDerivativeX=function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},n.prototype.solveCurveX=function(t,e){var r,n,i,a,o;for(void 0===e&&(e=1e-6),i=t,o=0;o<8;o++){if(a=this.sampleCurveX(i)-t,Math.abs(a)(n=1))return n;for(;ra?r=i:n=i,i=.5*(n-r)+r}return i},n.prototype.solve=function(t,e){return this.sampleCurveY(this.solveCurveX(t,e))};var i=a;function a(t,e){this.x=t,this.y=e}function o(t,e,n,i){var a=new r(t,e,n,i);return function(t){return a.solve(t)}}a.prototype={clone:function(){return new a(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},multByPoint:function(t){return this.clone()._multByPoint(t)},divByPoint:function(t){return this.clone()._divByPoint(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},rotateAround:function(t,e){return this.clone()._rotateAround(t,e)},matMult:function(t){return this.clone()._matMult(t)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var e=t.x-this.x,r=t.y-this.y;return e*e+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,e){return Math.atan2(this.x*e-this.y*t,this.x*t+this.y*e)},_matMult:function(t){var e=t[0]*this.x+t[1]*this.y,r=t[2]*this.x+t[3]*this.y;return this.x=e,this.y=r,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_multByPoint:function(t){return this.x*=t.x,this.y*=t.y,this},_divByPoint:function(t){return this.x/=t.x,this.y/=t.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var t=this.y;return this.y=this.x,this.x=-t,this},_rotate:function(t){var e=Math.cos(t),r=Math.sin(t),n=e*this.x-r*this.y,i=r*this.x+e*this.y;return this.x=n,this.y=i,this},_rotateAround:function(t,e){var r=Math.cos(t),n=Math.sin(t),i=e.x+r*(this.x-e.x)-n*(this.y-e.y),a=e.y+n*(this.x-e.x)+r*(this.y-e.y);return this.x=i,this.y=a,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},a.convert=function(t){return t instanceof a?t:Array.isArray(t)?new a(t[0],t[1]):t};var s=o(.25,.1,.25,1);function l(t,e,r){return Math.min(r,Math.max(e,t))}function c(t,e,r){var n=r-e,i=((t-e)%n+n)%n+e;return i===e?r:i}function u(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];for(var n=0,i=e;n>e/4).toString(16):([1e7]+-[1e3]+-4e3+-8e3+-1e11).replace(/[018]/g,t)}()}function d(t){return!!t&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(t)}function m(t,e){t.forEach((function(t){e[t]&&(e[t]=e[t].bind(e))}))}function g(t,e){return-1!==t.indexOf(e,t.length-e.length)}function v(t,e,r){var n={};for(var i in t)n[i]=e.call(r||this,t[i],i,t);return n}function y(t,e,r){var n={};for(var i in t)e.call(r||this,t[i],i,t)&&(n[i]=t[i]);return n}function x(t){return Array.isArray(t)?t.map(x):"object"==typeof t&&t?v(t,x):t}var b={};function _(t){b[t]||("undefined"!=typeof console&&console.warn(t),b[t]=!0)}function w(t,e,r){return(r.y-t.y)*(e.x-t.x)>(e.y-t.y)*(r.x-t.x)}function T(t){for(var e=0,r=0,n=t.length,i=n-1,a=void 0,o=void 0;r@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,(function(t,r,n,i){var a=n||i;return e[r]=!a||a.toLowerCase(),""})),e["max-age"]){var r=parseInt(e["max-age"],10);isNaN(r)?delete e["max-age"]:e["max-age"]=r}return e}var A=null;function S(t){if(null==A){var e=t.navigator?t.navigator.userAgent:null;A=!!t.safari||!(!e||!(/\b(iPad|iPhone|iPod)\b/.test(e)||e.match("Safari")&&!e.match("Chrome")))}return A}function E(t){try{var e=self[t];return e.setItem("_mapbox_test_",1),e.removeItem("_mapbox_test_"),!0}catch(t){return!1}}var L,C,P,I,O=self.performance&&self.performance.now?self.performance.now.bind(self.performance):Date.now.bind(Date),z=self.requestAnimationFrame||self.mozRequestAnimationFrame||self.webkitRequestAnimationFrame||self.msRequestAnimationFrame,D=self.cancelAnimationFrame||self.mozCancelAnimationFrame||self.webkitCancelAnimationFrame||self.msCancelAnimationFrame,R={now:O,frame:function(t){var e=z(t);return{cancel:function(){return D(e)}}},getImageData:function(t,e){void 0===e&&(e=0);var r=self.document.createElement("canvas"),n=r.getContext("2d");if(!n)throw new Error("failed to create canvas 2d context");return r.width=t.width,r.height=t.height,n.drawImage(t,0,0,t.width,t.height),n.getImageData(-e,-e,t.width+2*e,t.height+2*e)},resolveURL:function(t){return L||(L=self.document.createElement("a")),L.href=t,L.href},hardwareConcurrency:self.navigator.hardwareConcurrency||4,get devicePixelRatio(){return self.devicePixelRatio},get prefersReducedMotion(){return!!self.matchMedia&&(null==C&&(C=self.matchMedia("(prefers-reduced-motion: reduce)")),C.matches)}},F={API_URL:"https://api.mapbox.com",get EVENTS_URL(){return this.API_URL?0===this.API_URL.indexOf("https://api.mapbox.cn")?"https://events.mapbox.cn/events/v2":0===this.API_URL.indexOf("https://api.mapbox.com")?"https://events.mapbox.com/events/v2":null:null},FEEDBACK_URL:"https://apps.mapbox.com/feedback",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,MAX_PARALLEL_IMAGE_REQUESTS:16},B={supported:!1,testSupport:function(t){if(N||!I)return;j?U(t):P=t}},N=!1,j=!1;function U(t){var e=t.createTexture();t.bindTexture(t.TEXTURE_2D,e);try{if(t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,I),t.isContextLost())return;B.supported=!0}catch(t){}t.deleteTexture(e),N=!0}self.document&&((I=self.document.createElement("img")).onload=function(){P&&U(P),P=null,j=!0},I.onerror=function(){N=!0,P=null},I.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=");var V="01";var q=function(t,e){this._transformRequestFn=t,this._customAccessToken=e,this._createSkuToken()};function H(t){return 0===t.indexOf("mapbox:")}q.prototype._createSkuToken=function(){var t=function(){for(var t="",e=0;e<10;e++)t+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[Math.floor(62*Math.random())];return{token:["1",V,t].join(""),tokenExpiresAt:Date.now()+432e5}}();this._skuToken=t.token,this._skuTokenExpiresAt=t.tokenExpiresAt},q.prototype._isSkuTokenExpired=function(){return Date.now()>this._skuTokenExpiresAt},q.prototype.transformRequest=function(t,e){return this._transformRequestFn&&this._transformRequestFn(t,e)||{url:t}},q.prototype.normalizeStyleURL=function(t,e){if(!H(t))return t;var r=X(t);return r.path="/styles/v1"+r.path,this._makeAPIURL(r,this._customAccessToken||e)},q.prototype.normalizeGlyphsURL=function(t,e){if(!H(t))return t;var r=X(t);return r.path="/fonts/v1"+r.path,this._makeAPIURL(r,this._customAccessToken||e)},q.prototype.normalizeSourceURL=function(t,e){if(!H(t))return t;var r=X(t);return r.path="/v4/"+r.authority+".json",r.params.push("secure"),this._makeAPIURL(r,this._customAccessToken||e)},q.prototype.normalizeSpriteURL=function(t,e,r,n){var i=X(t);return H(t)?(i.path="/styles/v1"+i.path+"/sprite"+e+r,this._makeAPIURL(i,this._customAccessToken||n)):(i.path+=""+e+r,Z(i))},q.prototype.normalizeTileURL=function(t,e){if(this._isSkuTokenExpired()&&this._createSkuToken(),t&&!H(t))return t;var r=X(t),n=R.devicePixelRatio>=2||512===e?"@2x":"",i=B.supported?".webp":"$1";r.path=r.path.replace(/(\.(png|jpg)\d*)(?=$)/,""+n+i),r.path=r.path.replace(/^.+\/v4\//,"/"),r.path="/v4"+r.path;var a=this._customAccessToken||function(t){for(var e=0,r=t;e=1&&self.localStorage.setItem(e,JSON.stringify(this.eventData))}catch(t){_("Unable to write to LocalStorage")}},K.prototype.processRequests=function(t){},K.prototype.postEvent=function(t,e,r,n){var i=this;if(F.EVENTS_URL){var a=X(F.EVENTS_URL);a.params.push("access_token="+(n||F.ACCESS_TOKEN||""));var o={event:this.type,created:new Date(t).toISOString(),sdkIdentifier:"mapbox-gl-js",sdkVersion:"1.10.1",skuId:V,userId:this.anonId},s=e?u(o,e):o,l={url:Z(a),headers:{"Content-Type":"text/plain"},body:JSON.stringify([s])};this.pendingRequest=bt(l,(function(t){i.pendingRequest=null,r(t),i.saveEventData(),i.processRequests(n)}))}},K.prototype.queueRequest=function(t,e){this.queue.push(t),this.processRequests(e)};var Q,$,tt=function(t){function e(){t.call(this,"map.load"),this.success={},this.skuToken=""}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.postMapLoadEvent=function(t,e,r,n){this.skuToken=r,(F.EVENTS_URL&&n||F.ACCESS_TOKEN&&Array.isArray(t)&&t.some((function(t){return H(t)||Y(t)})))&&this.queueRequest({id:e,timestamp:Date.now()},n)},e.prototype.processRequests=function(t){var e=this;if(!this.pendingRequest&&0!==this.queue.length){var r=this.queue.shift(),n=r.id,i=r.timestamp;n&&this.success[n]||(this.anonId||this.fetchEventData(),d(this.anonId)||(this.anonId=p()),this.postEvent(i,{skuToken:this.skuToken},(function(t){t||n&&(e.success[n]=!0)}),t))}},e}(K),et=new(function(t){function e(e){t.call(this,"appUserTurnstile"),this._customAccessToken=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.postTurnstileEvent=function(t,e){F.EVENTS_URL&&F.ACCESS_TOKEN&&Array.isArray(t)&&t.some((function(t){return H(t)||Y(t)}))&&this.queueRequest(Date.now(),e)},e.prototype.processRequests=function(t){var e=this;if(!this.pendingRequest&&0!==this.queue.length){this.anonId&&this.eventData.lastSuccess&&this.eventData.tokenU||this.fetchEventData();var r=J(F.ACCESS_TOKEN),n=r?r.u:F.ACCESS_TOKEN,i=n!==this.eventData.tokenU;d(this.anonId)||(this.anonId=p(),i=!0);var a=this.queue.shift();if(this.eventData.lastSuccess){var o=new Date(this.eventData.lastSuccess),s=new Date(a),l=(a-this.eventData.lastSuccess)/864e5;i=i||l>=1||l<-1||o.getDate()!==s.getDate()}else i=!0;if(!i)return this.processRequests();this.postEvent(a,{"enabled.telemetry":!1},(function(t){t||(e.eventData.lastSuccess=a,e.eventData.tokenU=n)}),t)}},e}(K)),rt=et.postTurnstileEvent.bind(et),nt=new tt,it=nt.postMapLoadEvent.bind(nt),at=500,ot=50;function st(){self.caches&&!Q&&(Q=self.caches.open("mapbox-tiles"))}function lt(t,e,r){if(st(),Q){var n={status:e.status,statusText:e.statusText,headers:new self.Headers};e.headers.forEach((function(t,e){return n.headers.set(e,t)}));var i=M(e.headers.get("Cache-Control")||"");if(!i["no-store"])i["max-age"]&&n.headers.set("Expires",new Date(r+1e3*i["max-age"]).toUTCString()),new Date(n.headers.get("Expires")).getTime()-r<42e4||function(t,e){if(void 0===$)try{new Response(new ReadableStream),$=!0}catch(t){$=!1}$?e(t.body):t.blob().then(e)}(e,(function(e){var r=new self.Response(e,n);st(),Q&&Q.then((function(e){return e.put(ct(t.url),r)})).catch((function(t){return _(t.message)}))}))}}function ct(t){var e=t.indexOf("?");return e<0?t:t.slice(0,e)}function ut(t,e){if(st(),!Q)return e(null);var r=ct(t.url);Q.then((function(t){t.match(r).then((function(n){var i=function(t){if(!t)return!1;var e=new Date(t.headers.get("Expires")||0),r=M(t.headers.get("Cache-Control")||"");return e>Date.now()&&!r["no-cache"]}(n);t.delete(r),i&&t.put(r,n.clone()),e(null,n,i)})).catch(e)})).catch(e)}var ft,ht=1/0;function pt(){return null==ft&&(ft=self.OffscreenCanvas&&new self.OffscreenCanvas(1,1).getContext("2d")&&"function"==typeof self.createImageBitmap),ft}var dt={Unknown:"Unknown",Style:"Style",Source:"Source",Tile:"Tile",Glyphs:"Glyphs",SpriteImage:"SpriteImage",SpriteJSON:"SpriteJSON",Image:"Image"};"function"==typeof Object.freeze&&Object.freeze(dt);var mt=function(t){function e(e,r,n){401===r&&Y(n)&&(e+=": you may have provided an invalid Mapbox access token. See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes"),t.call(this,e),this.status=r,this.url=n,this.name=this.constructor.name,this.message=e}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.toString=function(){return this.name+": "+this.message+" ("+this.status+"): "+this.url},e}(Error),gt=k()?function(){return self.worker&&self.worker.referrer}:function(){return("blob:"===self.location.protocol?self.parent:self).location.href};function vt(t,e){var r,n=new self.AbortController,i=new self.Request(t.url,{method:t.method||"GET",body:t.body,credentials:t.credentials,headers:t.headers,referrer:gt(),signal:n.signal}),a=!1,o=!1,s=(r=i.url).indexOf("sku=")>0&&Y(r);"json"===t.type&&i.headers.set("Accept","application/json");var l=function(r,n,a){if(!o){if(r&&"SecurityError"!==r.message&&_(r),n&&a)return c(n);var l=Date.now();self.fetch(i).then((function(r){if(r.ok){var n=s?r.clone():null;return c(r,n,l)}return e(new mt(r.statusText,r.status,t.url))})).catch((function(t){20!==t.code&&e(new Error(t.message))}))}},c=function(r,n,s){("arrayBuffer"===t.type?r.arrayBuffer():"json"===t.type?r.json():r.text()).then((function(t){o||(n&&s&<(i,n,s),a=!0,e(null,t,r.headers.get("Cache-Control"),r.headers.get("Expires")))})).catch((function(t){o||e(new Error(t.message))}))};return s?ut(i,l):l(null,null),{cancel:function(){o=!0,a||n.abort()}}}var yt=function(t,e){if(r=t.url,!(/^file:/.test(r)||/^file:/.test(gt())&&!/^\w+:/.test(r))){if(self.fetch&&self.Request&&self.AbortController&&self.Request.prototype.hasOwnProperty("signal"))return vt(t,e);if(k()&&self.worker&&self.worker.actor){return self.worker.actor.send("getResource",t,e,void 0,!0)}}var r;return function(t,e){var r=new self.XMLHttpRequest;for(var n in r.open(t.method||"GET",t.url,!0),"arrayBuffer"===t.type&&(r.responseType="arraybuffer"),t.headers)r.setRequestHeader(n,t.headers[n]);return"json"===t.type&&(r.responseType="text",r.setRequestHeader("Accept","application/json")),r.withCredentials="include"===t.credentials,r.onerror=function(){e(new Error(r.statusText))},r.onload=function(){if((r.status>=200&&r.status<300||0===r.status)&&null!==r.response){var n=r.response;if("json"===t.type)try{n=JSON.parse(r.response)}catch(t){return e(t)}e(null,n,r.getResponseHeader("Cache-Control"),r.getResponseHeader("Expires"))}else e(new mt(r.statusText,r.status,t.url))},r.send(t.body),{cancel:function(){return r.abort()}}}(t,e)},xt=function(t,e){return yt(u(t,{type:"arrayBuffer"}),e)},bt=function(t,e){return yt(u(t,{method:"POST"}),e)};var _t,wt;_t=[],wt=0;var Tt=function(t,e){if(B.supported&&(t.headers||(t.headers={}),t.headers.accept="image/webp,*/*"),wt>=F.MAX_PARALLEL_IMAGE_REQUESTS){var r={requestParameters:t,callback:e,cancelled:!1,cancel:function(){this.cancelled=!0}};return _t.push(r),r}wt++;var n=!1,i=function(){if(!n)for(n=!0,wt--;_t.length&&wt0||this._oneTimeListeners&&this._oneTimeListeners[t]&&this._oneTimeListeners[t].length>0||this._eventedParent&&this._eventedParent.listens(t)},Et.prototype.setEventedParent=function(t,e){return this._eventedParent=t,this._eventedParentData=e,this};var Lt={$version:8,$root:{version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number"},zoom:{type:"number"},bearing:{type:"number",default:0,period:360,units:"degrees"},pitch:{type:"number",default:0,units:"degrees"},light:{type:"light"},sources:{required:!0,type:"sources"},sprite:{type:"string"},glyphs:{type:"string"},transition:{type:"transition"},layers:{required:!0,type:"array",value:"layer"}},sources:{"*":{type:"source"}},source:["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],source_vector:{type:{required:!0,type:"enum",values:{vector:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},attribution:{type:"string"},promoteId:{type:"promoteId"},"*":{type:"*"}},source_raster:{type:{required:!0,type:"enum",values:{raster:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},attribution:{type:"string"},"*":{type:"*"}},source_raster_dem:{type:{required:!0,type:"enum",values:{"raster-dem":{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},attribution:{type:"string"},encoding:{type:"enum",values:{terrarium:{},mapbox:{}},default:"mapbox"},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{type:"*"},maxzoom:{type:"number",default:18},attribution:{type:"string"},buffer:{type:"number",default:128,maximum:512,minimum:0},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"},clusterProperties:{type:"*"},lineMetrics:{type:"boolean",default:!1},generateId:{type:"boolean",default:!1},promoteId:{type:"promoteId"}},source_video:{type:{required:!0,type:"enum",values:{video:{}}},urls:{required:!0,type:"array",value:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_image:{type:{required:!0,type:"enum",values:{image:{}}},url:{required:!0,type:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},background:{}},required:!0},metadata:{type:"*"},source:{type:"string"},"source-layer":{type:"string"},minzoom:{type:"number",minimum:0,maximum:24},maxzoom:{type:"number",minimum:0,maximum:24},filter:{type:"filter"},layout:{type:"layout"},paint:{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_fill:{"fill-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_circle:{"circle-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_heatmap:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_line:{"line-cap":{type:"enum",values:{butt:{},round:{},square:{}},default:"butt",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-join":{type:"enum",values:{bevel:{},round:{},miter:{}},default:"miter",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,requires:[{"line-join":"miter"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,requires:[{"line-join":"round"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_symbol:{"symbol-placement":{type:"enum",values:{point:{},line:{},"line-center":{}},default:"point",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",requires:[{"symbol-placement":"line"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{},"viewport-y":{},source:{}},default:"auto",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number",default:1,minimum:0,units:"factor of the original icon size",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{type:"enum",values:{none:{},width:{},height:{},both:{}},default:"none",requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-image":{type:"resolvedImage",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{type:"boolean",default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string",default:["Open Sans Regular","Arial Unicode MS Regular"],requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-letter-spacing":{type:"number",default:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{},left:{},center:{},right:{}},default:"center",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems",default:0,requires:["text-field"],"property-type":"data-driven",expression:{interpolated:!0,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["text-field",{"!":"text-variable-anchor"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number",default:45,units:"degrees",requires:["text-field",{"symbol-placement":["line","line-center"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{},vertical:{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",value:"number",units:"ems",length:2,default:[0,0],requires:["text-field",{"!":"text-radial-offset"}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,requires:["text-field","icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_raster:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_hillshade:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},filter:{type:"array",value:"*"},filter_operator:{type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{},within:{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"*",minimum:1},expression_name:{type:"enum",values:{let:{group:"Variable binding"},var:{group:"Variable binding"},literal:{group:"Types"},array:{group:"Types"},at:{group:"Lookup"},in:{group:"Lookup"},"index-of":{group:"Lookup"},slice:{group:"Lookup"},case:{group:"Decision"},match:{group:"Decision"},coalesce:{group:"Decision"},step:{group:"Ramps, scales, curves"},interpolate:{group:"Ramps, scales, curves"},"interpolate-hcl":{group:"Ramps, scales, curves"},"interpolate-lab":{group:"Ramps, scales, curves"},ln2:{group:"Math"},pi:{group:"Math"},e:{group:"Math"},typeof:{group:"Types"},string:{group:"Types"},number:{group:"Types"},boolean:{group:"Types"},object:{group:"Types"},collator:{group:"Types"},format:{group:"Types"},image:{group:"Types"},"number-format":{group:"Types"},"to-string":{group:"Types"},"to-number":{group:"Types"},"to-boolean":{group:"Types"},"to-rgba":{group:"Color"},"to-color":{group:"Types"},rgb:{group:"Color"},rgba:{group:"Color"},get:{group:"Lookup"},has:{group:"Lookup"},length:{group:"Lookup"},properties:{group:"Feature data"},"feature-state":{group:"Feature data"},"geometry-type":{group:"Feature data"},id:{group:"Feature data"},zoom:{group:"Zoom"},"heatmap-density":{group:"Heatmap"},"line-progress":{group:"Feature data"},accumulated:{group:"Feature data"},"+":{group:"Math"},"*":{group:"Math"},"-":{group:"Math"},"/":{group:"Math"},"%":{group:"Math"},"^":{group:"Math"},sqrt:{group:"Math"},log10:{group:"Math"},ln:{group:"Math"},log2:{group:"Math"},sin:{group:"Math"},cos:{group:"Math"},tan:{group:"Math"},asin:{group:"Math"},acos:{group:"Math"},atan:{group:"Math"},min:{group:"Math"},max:{group:"Math"},round:{group:"Math"},abs:{group:"Math"},ceil:{group:"Math"},floor:{group:"Math"},distance:{group:"Math"},"==":{group:"Decision"},"!=":{group:"Decision"},">":{group:"Decision"},"<":{group:"Decision"},">=":{group:"Decision"},"<=":{group:"Decision"},all:{group:"Decision"},any:{group:"Decision"},"!":{group:"Decision"},within:{group:"Decision"},"is-supported-script":{group:"String"},upcase:{group:"String"},downcase:{group:"String"},concat:{group:"String"},"resolved-locale":{group:"String"}}},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"number",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"color",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}},"property-type":{"data-driven":{type:"property-type"},"cross-faded":{type:"property-type"},"cross-faded-data-driven":{type:"property-type"},"color-ramp":{type:"property-type"},"data-constant":{type:"property-type"},constant:{type:"property-type"}},promoteId:{"*":{type:"string"}}},Ct=function(t,e,r,n){this.message=(t?t+": ":"")+r,n&&(this.identifier=n),null!=e&&e.__line__&&(this.line=e.__line__)};function Pt(t){var e=t.key,r=t.value;return r?[new Ct(e,r,"constants have been deprecated as of v8")]:[]}function It(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];for(var n=0,i=e;n":"value"===t.itemType.kind?"array":"array<"+e+">"}return t.kind}var Zt=[Ft,Bt,Nt,jt,Ut,Gt,Vt,Wt(qt),Yt];function Jt(t,e){if("error"===e.kind)return null;if("array"===t.kind){if("array"===e.kind&&(0===e.N&&"value"===e.itemType.kind||!Jt(t.itemType,e.itemType))&&("number"!=typeof t.N||t.N===e.N))return null}else{if(t.kind===e.kind)return null;if("value"===t.kind)for(var r=0,n=Zt;r255?255:t}function i(t){return t<0?0:t>1?1:t}function a(t){return"%"===t[t.length-1]?n(parseFloat(t)/100*255):n(parseInt(t))}function o(t){return"%"===t[t.length-1]?i(parseFloat(t)/100):i(parseFloat(t))}function s(t,e,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?t+(e-t)*r*6:2*r<1?e:3*r<2?t+(e-t)*(2/3-r)*6:t}try{e.parseCSSColor=function(t){var e,i=t.replace(/ /g,"").toLowerCase();if(i in r)return r[i].slice();if("#"===i[0])return 4===i.length?(e=parseInt(i.substr(1),16))>=0&&e<=4095?[(3840&e)>>4|(3840&e)>>8,240&e|(240&e)>>4,15&e|(15&e)<<4,1]:null:7===i.length&&(e=parseInt(i.substr(1),16))>=0&&e<=16777215?[(16711680&e)>>16,(65280&e)>>8,255&e,1]:null;var l=i.indexOf("("),c=i.indexOf(")");if(-1!==l&&c+1===i.length){var u=i.substr(0,l),f=i.substr(l+1,c-(l+1)).split(","),h=1;switch(u){case"rgba":if(4!==f.length)return null;h=o(f.pop());case"rgb":return 3!==f.length?null:[a(f[0]),a(f[1]),a(f[2]),h];case"hsla":if(4!==f.length)return null;h=o(f.pop());case"hsl":if(3!==f.length)return null;var p=(parseFloat(f[0])%360+360)%360/360,d=o(f[1]),m=o(f[2]),g=m<=.5?m*(d+1):m+d-m*d,v=2*m-g;return[n(255*s(v,g,p+1/3)),n(255*s(v,g,p)),n(255*s(v,g,p-1/3)),h];default:return null}}return null}}catch(t){}})).parseCSSColor,te=function(t,e,r,n){void 0===n&&(n=1),this.r=t,this.g=e,this.b=r,this.a=n};te.parse=function(t){if(t){if(t instanceof te)return t;if("string"==typeof t){var e=$t(t);if(e)return new te(e[0]/255*e[3],e[1]/255*e[3],e[2]/255*e[3],e[3])}}},te.prototype.toString=function(){var t=this.toArray(),e=t[0],r=t[1],n=t[2],i=t[3];return"rgba("+Math.round(e)+","+Math.round(r)+","+Math.round(n)+","+i+")"},te.prototype.toArray=function(){var t=this.r,e=this.g,r=this.b,n=this.a;return 0===n?[0,0,0,0]:[255*t/n,255*e/n,255*r/n,n]},te.black=new te(0,0,0,1),te.white=new te(1,1,1,1),te.transparent=new te(0,0,0,0),te.red=new te(1,0,0,1);var ee=function(t,e,r){this.sensitivity=t?e?"variant":"case":e?"accent":"base",this.locale=r,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})};ee.prototype.compare=function(t,e){return this.collator.compare(t,e)},ee.prototype.resolvedLocale=function(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale};var re=function(t,e,r,n,i){this.text=t,this.image=e,this.scale=r,this.fontStack=n,this.textColor=i},ne=function(t){this.sections=t};ne.fromString=function(t){return new ne([new re(t,null,null,null,null)])},ne.prototype.isEmpty=function(){return 0===this.sections.length||!this.sections.some((function(t){return 0!==t.text.length||t.image&&0!==t.image.name.length}))},ne.factory=function(t){return t instanceof ne?t:ne.fromString(t)},ne.prototype.toString=function(){return 0===this.sections.length?"":this.sections.map((function(t){return t.text})).join("")},ne.prototype.serialize=function(){for(var t=["format"],e=0,r=this.sections;e=0&&t<=255&&"number"==typeof e&&e>=0&&e<=255&&"number"==typeof r&&r>=0&&r<=255?void 0===n||"number"==typeof n&&n>=0&&n<=1?null:"Invalid rgba value ["+[t,e,r,n].join(", ")+"]: 'a' must be between 0 and 1.":"Invalid rgba value ["+("number"==typeof n?[t,e,r,n]:[t,e,r]).join(", ")+"]: 'r', 'g', and 'b' must be between 0 and 255."}function oe(t){if(null===t)return!0;if("string"==typeof t)return!0;if("boolean"==typeof t)return!0;if("number"==typeof t)return!0;if(t instanceof te)return!0;if(t instanceof ee)return!0;if(t instanceof ne)return!0;if(t instanceof ie)return!0;if(Array.isArray(t)){for(var e=0,r=t;e2){var s=t[1];if("string"!=typeof s||!(s in fe)||"object"===s)return e.error('The item type argument of "array" must be one of string, number, boolean',1);a=fe[s],n++}else a=qt;if(t.length>3){if(null!==t[2]&&("number"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2])))return e.error('The length argument to "array" must be a positive integer literal',2);o=t[2],n++}r=Wt(a,o)}else r=fe[i];for(var l=[];n1)&&e.push(n)}}return e.concat(this.args.map((function(t){return t.serialize()})))};var pe=function(t){this.type=Gt,this.sections=t};pe.parse=function(t,e){if(t.length<2)return e.error("Expected at least one argument.");var r=t[1];if(!Array.isArray(r)&&"object"==typeof r)return e.error("First argument must be an image or text section.");for(var n=[],i=!1,a=1;a<=t.length-1;++a){var o=t[a];if(i&&"object"==typeof o&&!Array.isArray(o)){i=!1;var s=null;if(o["font-scale"]&&!(s=e.parse(o["font-scale"],1,Bt)))return null;var l=null;if(o["text-font"]&&!(l=e.parse(o["text-font"],1,Wt(Nt))))return null;var c=null;if(o["text-color"]&&!(c=e.parse(o["text-color"],1,Ut)))return null;var u=n[n.length-1];u.scale=s,u.font=l,u.textColor=c}else{var f=e.parse(t[a],1,qt);if(!f)return null;var h=f.type.kind;if("string"!==h&&"value"!==h&&"null"!==h&&"resolvedImage"!==h)return e.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");i=!0,n.push({content:f,scale:null,font:null,textColor:null})}}return new pe(n)},pe.prototype.evaluate=function(t){return new ne(this.sections.map((function(e){var r=e.content.evaluate(t);return se(r)===Yt?new re("",r,null,null,null):new re(le(r),null,e.scale?e.scale.evaluate(t):null,e.font?e.font.evaluate(t).join(","):null,e.textColor?e.textColor.evaluate(t):null)})))},pe.prototype.eachChild=function(t){for(var e=0,r=this.sections;e-1),r},de.prototype.eachChild=function(t){t(this.input)},de.prototype.outputDefined=function(){return!1},de.prototype.serialize=function(){return["image",this.input.serialize()]};var me={"to-boolean":jt,"to-color":Ut,"to-number":Bt,"to-string":Nt},ge=function(t,e){this.type=t,this.args=e};ge.parse=function(t,e){if(t.length<2)return e.error("Expected at least one argument.");var r=t[0];if(("to-boolean"===r||"to-string"===r)&&2!==t.length)return e.error("Expected one argument.");for(var n=me[r],i=[],a=1;a4?"Invalid rbga value "+JSON.stringify(e)+": expected an array containing either three or four numeric values.":ae(e[0],e[1],e[2],e[3])))return new te(e[0]/255,e[1]/255,e[2]/255,e[3])}throw new ue(r||"Could not parse color from value '"+("string"==typeof e?e:String(JSON.stringify(e)))+"'")}if("number"===this.type.kind){for(var o=null,s=0,l=this.args;s=e[2])&&(!(t[1]<=e[1])&&!(t[3]>=e[3])))}function Te(t,e){var r,n=(180+t[0])/360,i=(r=t[1],(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+r*Math.PI/360)))/360),a=Math.pow(2,e.z);return[Math.round(n*a*8192),Math.round(i*a*8192)]}function ke(t,e,r){return e[1]>t[1]!=r[1]>t[1]&&t[0]<(r[0]-e[0])*(t[1]-e[1])/(r[1]-e[1])+e[0]}function Me(t,e){for(var r,n,i,a,o,s,l,c=!1,u=0,f=e.length;u0&&f<0||u<0&&f>0}function Ee(t,e,r){for(var n=0,i=r;nr[2]){var i=.5*n,a=t[0]-r[0]>i?-n:r[0]-t[0]>i?n:0;0===a&&(a=t[0]-r[2]>i?-n:r[2]-t[0]>i?n:0),t[0]+=a}_e(e,t)}function ze(t,e,r,n){for(var i=8192*Math.pow(2,n.z),a=[8192*n.x,8192*n.y],o=[],s=0,l=t;s=0)return!1;var r=!0;return t.eachChild((function(t){r&&!Ne(t,e)&&(r=!1)})),r}Re.parse=function(t,e){if(2!==t.length)return e.error("'within' expression requires exactly one argument, but found "+(t.length-1)+" instead.");if(oe(t[1])){var r=t[1];if("FeatureCollection"===r.type)for(var n=0;ne))throw new ue("Input is not a number.");o=s-1}return 0}Ue.prototype.parse=function(t,e,r,n,i){return void 0===i&&(i={}),e?this.concat(e,r,n)._parse(t,i):this._parse(t,i)},Ue.prototype._parse=function(t,e){function r(t,e,r){return"assert"===r?new he(e,[t]):"coerce"===r?new ge(e,[t]):t}if(null!==t&&"string"!=typeof t&&"boolean"!=typeof t&&"number"!=typeof t||(t=["literal",t]),Array.isArray(t)){if(0===t.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');var n=t[0];if("string"!=typeof n)return this.error("Expression name must be a string, but found "+typeof n+' instead. If you wanted a literal array, use ["literal", [...]].',0),null;var i=this.registry[n];if(i){var a=i.parse(t,this);if(!a)return null;if(this.expectedType){var o=this.expectedType,s=a.type;if("string"!==o.kind&&"number"!==o.kind&&"boolean"!==o.kind&&"object"!==o.kind&&"array"!==o.kind||"value"!==s.kind)if("color"!==o.kind&&"formatted"!==o.kind&&"resolvedImage"!==o.kind||"value"!==s.kind&&"string"!==s.kind){if(this.checkSubtype(o,s))return null}else a=r(a,o,e.typeAnnotation||"coerce");else a=r(a,o,e.typeAnnotation||"assert")}if(!(a instanceof ce)&&"resolvedImage"!==a.type.kind&&function t(e){if(e instanceof je)return t(e.boundExpression);if(e instanceof xe&&"error"===e.name)return!1;if(e instanceof be)return!1;if(e instanceof Re)return!1;var r=e instanceof ge||e instanceof he,n=!0;if(e.eachChild((function(e){n=r?n&&t(e):n&&e instanceof ce})),!n)return!1;return Fe(e)&&Ne(e,["zoom","heatmap-density","line-progress","accumulated","is-supported-script"])}(a)){var l=new ye;try{a=new ce(a.type,a.evaluate(l))}catch(t){return this.error(t.message),null}}return a}return this.error('Unknown expression "'+n+'". If you wanted a literal array, use ["literal", [...]].',0)}return void 0===t?this.error("'undefined' value invalid. Use null instead."):"object"==typeof t?this.error('Bare objects invalid. Use ["literal", {...}] instead.'):this.error("Expected an array, but found "+typeof t+" instead.")},Ue.prototype.concat=function(t,e,r){var n="number"==typeof t?this.path.concat(t):this.path,i=r?this.scope.concat(r):this.scope;return new Ue(this.registry,n,e||null,i,this.errors)},Ue.prototype.error=function(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];var n=""+this.key+e.map((function(t){return"["+t+"]"})).join("");this.errors.push(new Dt(n,t))},Ue.prototype.checkSubtype=function(t,e){var r=Jt(t,e);return r&&this.error(r),r};var qe=function(t,e,r){this.type=t,this.input=e,this.labels=[],this.outputs=[];for(var n=0,i=r;n=o)return e.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',l);var u=e.parse(s,c,i);if(!u)return null;i=i||u.type,n.push([o,u])}return new qe(i,r,n)},qe.prototype.evaluate=function(t){var e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);var n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);var i=e.length;return n>=e[i-1]?r[i-1].evaluate(t):r[Ve(e,n)].evaluate(t)},qe.prototype.eachChild=function(t){t(this.input);for(var e=0,r=this.outputs;e0&&t.push(this.labels[e]),t.push(this.outputs[e].serialize());return t};var Ge=Object.freeze({__proto__:null,number:He,color:function(t,e,r){return new te(He(t.r,e.r,r),He(t.g,e.g,r),He(t.b,e.b,r),He(t.a,e.a,r))},array:function(t,e,r){return t.map((function(t,n){return He(t,e[n],r)}))}}),Ye=6/29,We=3*Ye*Ye,Xe=Math.PI/180,Ze=180/Math.PI;function Je(t){return t>.008856451679035631?Math.pow(t,1/3):t/We+4/29}function Ke(t){return t>Ye?t*t*t:We*(t-4/29)}function Qe(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function $e(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function tr(t){var e=$e(t.r),r=$e(t.g),n=$e(t.b),i=Je((.4124564*e+.3575761*r+.1804375*n)/.95047),a=Je((.2126729*e+.7151522*r+.072175*n)/1);return{l:116*a-16,a:500*(i-a),b:200*(a-Je((.0193339*e+.119192*r+.9503041*n)/1.08883)),alpha:t.a}}function er(t){var e=(t.l+16)/116,r=isNaN(t.a)?e:e+t.a/500,n=isNaN(t.b)?e:e-t.b/200;return e=1*Ke(e),r=.95047*Ke(r),n=1.08883*Ke(n),new te(Qe(3.2404542*r-1.5371385*e-.4985314*n),Qe(-.969266*r+1.8760108*e+.041556*n),Qe(.0556434*r-.2040259*e+1.0572252*n),t.alpha)}function rr(t,e,r){var n=e-t;return t+r*(n>180||n<-180?n-360*Math.round(n/360):n)}var nr={forward:tr,reverse:er,interpolate:function(t,e,r){return{l:He(t.l,e.l,r),a:He(t.a,e.a,r),b:He(t.b,e.b,r),alpha:He(t.alpha,e.alpha,r)}}},ir={forward:function(t){var e=tr(t),r=e.l,n=e.a,i=e.b,a=Math.atan2(i,n)*Ze;return{h:a<0?a+360:a,c:Math.sqrt(n*n+i*i),l:r,alpha:t.a}},reverse:function(t){var e=t.h*Xe,r=t.c;return er({l:t.l,a:Math.cos(e)*r,b:Math.sin(e)*r,alpha:t.alpha})},interpolate:function(t,e,r){return{h:rr(t.h,e.h,r),c:He(t.c,e.c,r),l:He(t.l,e.l,r),alpha:He(t.alpha,e.alpha,r)}}},ar=Object.freeze({__proto__:null,lab:nr,hcl:ir}),or=function(t,e,r,n,i){this.type=t,this.operator=e,this.interpolation=r,this.input=n,this.labels=[],this.outputs=[];for(var a=0,o=i;a1})))return e.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);n={name:"cubic-bezier",controlPoints:s}}if(t.length-1<4)return e.error("Expected at least 4 arguments, but found only "+(t.length-1)+".");if((t.length-1)%2!=0)return e.error("Expected an even number of arguments.");if(!(i=e.parse(i,2,Bt)))return null;var l=[],c=null;"interpolate-hcl"===r||"interpolate-lab"===r?c=Ut:e.expectedType&&"value"!==e.expectedType.kind&&(c=e.expectedType);for(var u=0;u=f)return e.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',p);var m=e.parse(h,d,c);if(!m)return null;c=c||m.type,l.push([f,m])}return"number"===c.kind||"color"===c.kind||"array"===c.kind&&"number"===c.itemType.kind&&"number"==typeof c.N?new or(c,r,n,i,l):e.error("Type "+Xt(c)+" is not interpolatable.")},or.prototype.evaluate=function(t){var e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);var n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);var i=e.length;if(n>=e[i-1])return r[i-1].evaluate(t);var a=Ve(e,n),o=e[a],s=e[a+1],l=or.interpolationFactor(this.interpolation,n,o,s),c=r[a].evaluate(t),u=r[a+1].evaluate(t);return"interpolate"===this.operator?Ge[this.type.kind.toLowerCase()](c,u,l):"interpolate-hcl"===this.operator?ir.reverse(ir.interpolate(ir.forward(c),ir.forward(u),l)):nr.reverse(nr.interpolate(nr.forward(c),nr.forward(u),l))},or.prototype.eachChild=function(t){t(this.input);for(var e=0,r=this.outputs;e=r.length)throw new ue("Array index out of bounds: "+e+" > "+(r.length-1)+".");if(e!==Math.floor(e))throw new ue("Array index must be an integer, but found "+e+" instead.");return r[e]},ur.prototype.eachChild=function(t){t(this.index),t(this.input)},ur.prototype.outputDefined=function(){return!1},ur.prototype.serialize=function(){return["at",this.index.serialize(),this.input.serialize()]};var fr=function(t,e){this.type=jt,this.needle=t,this.haystack=e};fr.parse=function(t,e){if(3!==t.length)return e.error("Expected 2 arguments, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1,qt),n=e.parse(t[2],2,qt);return r&&n?Kt(r.type,[jt,Nt,Bt,Ft,qt])?new fr(r,n):e.error("Expected first argument to be of type boolean, string, number or null, but found "+Xt(r.type)+" instead"):null},fr.prototype.evaluate=function(t){var e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!r)return!1;if(!Qt(e,["boolean","string","number","null"]))throw new ue("Expected first argument to be of type boolean, string, number or null, but found "+Xt(se(e))+" instead.");if(!Qt(r,["string","array"]))throw new ue("Expected second argument to be of type array or string, but found "+Xt(se(r))+" instead.");return r.indexOf(e)>=0},fr.prototype.eachChild=function(t){t(this.needle),t(this.haystack)},fr.prototype.outputDefined=function(){return!0},fr.prototype.serialize=function(){return["in",this.needle.serialize(),this.haystack.serialize()]};var hr=function(t,e,r){this.type=Bt,this.needle=t,this.haystack=e,this.fromIndex=r};hr.parse=function(t,e){if(t.length<=2||t.length>=5)return e.error("Expected 3 or 4 arguments, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1,qt),n=e.parse(t[2],2,qt);if(!r||!n)return null;if(!Kt(r.type,[jt,Nt,Bt,Ft,qt]))return e.error("Expected first argument to be of type boolean, string, number or null, but found "+Xt(r.type)+" instead");if(4===t.length){var i=e.parse(t[3],3,Bt);return i?new hr(r,n,i):null}return new hr(r,n)},hr.prototype.evaluate=function(t){var e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!Qt(e,["boolean","string","number","null"]))throw new ue("Expected first argument to be of type boolean, string, number or null, but found "+Xt(se(e))+" instead.");if(!Qt(r,["string","array"]))throw new ue("Expected second argument to be of type array or string, but found "+Xt(se(r))+" instead.");if(this.fromIndex){var n=this.fromIndex.evaluate(t);return r.indexOf(e,n)}return r.indexOf(e)},hr.prototype.eachChild=function(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex)},hr.prototype.outputDefined=function(){return!1},hr.prototype.serialize=function(){if(null!=this.fromIndex&&void 0!==this.fromIndex){var t=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),t]}return["index-of",this.needle.serialize(),this.haystack.serialize()]};var pr=function(t,e,r,n,i,a){this.inputType=t,this.type=e,this.input=r,this.cases=n,this.outputs=i,this.otherwise=a};pr.parse=function(t,e){if(t.length<5)return e.error("Expected at least 4 arguments, but found only "+(t.length-1)+".");if(t.length%2!=1)return e.error("Expected an even number of arguments.");var r,n;e.expectedType&&"value"!==e.expectedType.kind&&(n=e.expectedType);for(var i={},a=[],o=2;oNumber.MAX_SAFE_INTEGER)return c.error("Branch labels must be integers no larger than "+Number.MAX_SAFE_INTEGER+".");if("number"==typeof h&&Math.floor(h)!==h)return c.error("Numeric branch labels must be integer values.");if(r){if(c.checkSubtype(r,se(h)))return null}else r=se(h);if(void 0!==i[String(h)])return c.error("Branch labels must be unique.");i[String(h)]=a.length}var p=e.parse(l,o,n);if(!p)return null;n=n||p.type,a.push(p)}var d=e.parse(t[1],1,qt);if(!d)return null;var m=e.parse(t[t.length-1],t.length-1,n);return m?"value"!==d.type.kind&&e.concat(1).checkSubtype(r,d.type)?null:new pr(r,n,d,i,a,m):null},pr.prototype.evaluate=function(t){var e=this.input.evaluate(t);return(se(e)===this.inputType&&this.outputs[this.cases[e]]||this.otherwise).evaluate(t)},pr.prototype.eachChild=function(t){t(this.input),this.outputs.forEach(t),t(this.otherwise)},pr.prototype.outputDefined=function(){return this.outputs.every((function(t){return t.outputDefined()}))&&this.otherwise.outputDefined()},pr.prototype.serialize=function(){for(var t=this,e=["match",this.input.serialize()],r=[],n={},i=0,a=Object.keys(this.cases).sort();i=5)return e.error("Expected 3 or 4 arguments, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1,qt),n=e.parse(t[2],2,Bt);if(!r||!n)return null;if(!Kt(r.type,[Wt(qt),Nt,qt]))return e.error("Expected first argument to be of type array or string, but found "+Xt(r.type)+" instead");if(4===t.length){var i=e.parse(t[3],3,Bt);return i?new mr(r.type,r,n,i):null}return new mr(r.type,r,n)},mr.prototype.evaluate=function(t){var e=this.input.evaluate(t),r=this.beginIndex.evaluate(t);if(!Qt(e,["string","array"]))throw new ue("Expected first argument to be of type array or string, but found "+Xt(se(e))+" instead.");if(this.endIndex){var n=this.endIndex.evaluate(t);return e.slice(r,n)}return e.slice(r)},mr.prototype.eachChild=function(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex)},mr.prototype.outputDefined=function(){return!1},mr.prototype.serialize=function(){if(null!=this.endIndex&&void 0!==this.endIndex){var t=this.endIndex.serialize();return["slice",this.input.serialize(),this.beginIndex.serialize(),t]}return["slice",this.input.serialize(),this.beginIndex.serialize()]};var xr=yr("==",(function(t,e,r){return e===r}),vr),br=yr("!=",(function(t,e,r){return e!==r}),(function(t,e,r,n){return!vr(0,e,r,n)})),_r=yr("<",(function(t,e,r){return e",(function(t,e,r){return e>r}),(function(t,e,r,n){return n.compare(e,r)>0})),Tr=yr("<=",(function(t,e,r){return e<=r}),(function(t,e,r,n){return n.compare(e,r)<=0})),kr=yr(">=",(function(t,e,r){return e>=r}),(function(t,e,r,n){return n.compare(e,r)>=0})),Mr=function(t,e,r,n,i){this.type=Nt,this.number=t,this.locale=e,this.currency=r,this.minFractionDigits=n,this.maxFractionDigits=i};Mr.parse=function(t,e){if(3!==t.length)return e.error("Expected two arguments.");var r=e.parse(t[1],1,Bt);if(!r)return null;var n=t[2];if("object"!=typeof n||Array.isArray(n))return e.error("NumberFormat options argument must be an object.");var i=null;if(n.locale&&!(i=e.parse(n.locale,1,Nt)))return null;var a=null;if(n.currency&&!(a=e.parse(n.currency,1,Nt)))return null;var o=null;if(n["min-fraction-digits"]&&!(o=e.parse(n["min-fraction-digits"],1,Bt)))return null;var s=null;return n["max-fraction-digits"]&&!(s=e.parse(n["max-fraction-digits"],1,Bt))?null:new Mr(r,i,a,o,s)},Mr.prototype.evaluate=function(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))},Mr.prototype.eachChild=function(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits)},Mr.prototype.outputDefined=function(){return!1},Mr.prototype.serialize=function(){var t={};return this.locale&&(t.locale=this.locale.serialize()),this.currency&&(t.currency=this.currency.serialize()),this.minFractionDigits&&(t["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(t["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),t]};var Ar=function(t){this.type=Bt,this.input=t};Ar.parse=function(t,e){if(2!==t.length)return e.error("Expected 1 argument, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1);return r?"array"!==r.type.kind&&"string"!==r.type.kind&&"value"!==r.type.kind?e.error("Expected argument of type string or array, but found "+Xt(r.type)+" instead."):new Ar(r):null},Ar.prototype.evaluate=function(t){var e=this.input.evaluate(t);if("string"==typeof e)return e.length;if(Array.isArray(e))return e.length;throw new ue("Expected value to be of type string or array, but found "+Xt(se(e))+" instead.")},Ar.prototype.eachChild=function(t){t(this.input)},Ar.prototype.outputDefined=function(){return!1},Ar.prototype.serialize=function(){var t=["length"];return this.eachChild((function(e){t.push(e.serialize())})),t};var Sr={"==":xr,"!=":br,">":wr,"<":_r,">=":kr,"<=":Tr,array:he,at:ur,boolean:he,case:dr,coalesce:lr,collator:be,format:pe,image:de,in:fr,"index-of":hr,interpolate:or,"interpolate-hcl":or,"interpolate-lab":or,length:Ar,let:cr,literal:ce,match:pr,number:he,"number-format":Mr,object:he,slice:mr,step:qe,string:he,"to-boolean":ge,"to-color":ge,"to-number":ge,"to-string":ge,var:je,within:Re};function Er(t,e){var r=e[0],n=e[1],i=e[2],a=e[3];r=r.evaluate(t),n=n.evaluate(t),i=i.evaluate(t);var o=a?a.evaluate(t):1,s=ae(r,n,i,o);if(s)throw new ue(s);return new te(r/255*o,n/255*o,i/255*o,o)}function Lr(t,e){return t in e}function Cr(t,e){var r=e[t];return void 0===r?null:r}function Pr(t){return{type:t}}function Ir(t){return{result:"success",value:t}}function Or(t){return{result:"error",value:t}}function zr(t){return"data-driven"===t["property-type"]||"cross-faded-data-driven"===t["property-type"]}function Dr(t){return!!t.expression&&t.expression.parameters.indexOf("zoom")>-1}function Rr(t){return!!t.expression&&t.expression.interpolated}function Fr(t){return t instanceof Number?"number":t instanceof String?"string":t instanceof Boolean?"boolean":Array.isArray(t)?"array":null===t?"null":typeof t}function Br(t){return"object"==typeof t&&null!==t&&!Array.isArray(t)}function Nr(t){return t}function jr(t,e,r){return void 0!==t?t:void 0!==e?e:void 0!==r?r:void 0}function Ur(t,e,r,n,i){return jr(typeof r===i?n[r]:void 0,t.default,e.default)}function Vr(t,e,r){if("number"!==Fr(r))return jr(t.default,e.default);var n=t.stops.length;if(1===n)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[n-1][0])return t.stops[n-1][1];var i=Ve(t.stops.map((function(t){return t[0]})),r);return t.stops[i][1]}function qr(t,e,r){var n=void 0!==t.base?t.base:1;if("number"!==Fr(r))return jr(t.default,e.default);var i=t.stops.length;if(1===i)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[i-1][0])return t.stops[i-1][1];var a=Ve(t.stops.map((function(t){return t[0]})),r),o=function(t,e,r,n){var i=n-r,a=t-r;return 0===i?0:1===e?a/i:(Math.pow(e,a)-1)/(Math.pow(e,i)-1)}(r,n,t.stops[a][0],t.stops[a+1][0]),s=t.stops[a][1],l=t.stops[a+1][1],c=Ge[e.type]||Nr;if(t.colorSpace&&"rgb"!==t.colorSpace){var u=ar[t.colorSpace];c=function(t,e){return u.reverse(u.interpolate(u.forward(t),u.forward(e),o))}}return"function"==typeof s.evaluate?{evaluate:function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var r=s.evaluate.apply(void 0,t),n=l.evaluate.apply(void 0,t);if(void 0!==r&&void 0!==n)return c(r,n,o)}}:c(s,l,o)}function Hr(t,e,r){return"color"===e.type?r=te.parse(r):"formatted"===e.type?r=ne.fromString(r.toString()):"resolvedImage"===e.type?r=ie.fromString(r.toString()):Fr(r)===e.type||"enum"===e.type&&e.values[r]||(r=void 0),jr(r,t.default,e.default)}xe.register(Sr,{error:[{kind:"error"},[Nt],function(t,e){var r=e[0];throw new ue(r.evaluate(t))}],typeof:[Nt,[qt],function(t,e){return Xt(se(e[0].evaluate(t)))}],"to-rgba":[Wt(Bt,4),[Ut],function(t,e){return e[0].evaluate(t).toArray()}],rgb:[Ut,[Bt,Bt,Bt],Er],rgba:[Ut,[Bt,Bt,Bt,Bt],Er],has:{type:jt,overloads:[[[Nt],function(t,e){return Lr(e[0].evaluate(t),t.properties())}],[[Nt,Vt],function(t,e){var r=e[0],n=e[1];return Lr(r.evaluate(t),n.evaluate(t))}]]},get:{type:qt,overloads:[[[Nt],function(t,e){return Cr(e[0].evaluate(t),t.properties())}],[[Nt,Vt],function(t,e){var r=e[0],n=e[1];return Cr(r.evaluate(t),n.evaluate(t))}]]},"feature-state":[qt,[Nt],function(t,e){return Cr(e[0].evaluate(t),t.featureState||{})}],properties:[Vt,[],function(t){return t.properties()}],"geometry-type":[Nt,[],function(t){return t.geometryType()}],id:[qt,[],function(t){return t.id()}],zoom:[Bt,[],function(t){return t.globals.zoom}],"heatmap-density":[Bt,[],function(t){return t.globals.heatmapDensity||0}],"line-progress":[Bt,[],function(t){return t.globals.lineProgress||0}],accumulated:[qt,[],function(t){return void 0===t.globals.accumulated?null:t.globals.accumulated}],"+":[Bt,Pr(Bt),function(t,e){for(var r=0,n=0,i=e;n":[jt,[Nt,qt],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i>a}],"filter-id->":[jt,[qt],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n>i}],"filter-<=":[jt,[Nt,qt],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i<=a}],"filter-id-<=":[jt,[qt],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n<=i}],"filter->=":[jt,[Nt,qt],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i>=a}],"filter-id->=":[jt,[qt],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n>=i}],"filter-has":[jt,[qt],function(t,e){return e[0].value in t.properties()}],"filter-has-id":[jt,[],function(t){return null!==t.id()&&void 0!==t.id()}],"filter-type-in":[jt,[Wt(Nt)],function(t,e){return e[0].value.indexOf(t.geometryType())>=0}],"filter-id-in":[jt,[Wt(qt)],function(t,e){return e[0].value.indexOf(t.id())>=0}],"filter-in-small":[jt,[Nt,Wt(qt)],function(t,e){var r=e[0];return e[1].value.indexOf(t.properties()[r.value])>=0}],"filter-in-large":[jt,[Nt,Wt(qt)],function(t,e){var r=e[0],n=e[1];return function(t,e,r,n){for(;r<=n;){var i=r+n>>1;if(e[i]===t)return!0;e[i]>t?n=i-1:r=i+1}return!1}(t.properties()[r.value],n.value,0,n.value.length-1)}],all:{type:jt,overloads:[[[jt,jt],function(t,e){var r=e[0],n=e[1];return r.evaluate(t)&&n.evaluate(t)}],[Pr(jt),function(t,e){for(var r=0,n=e;r0&&"string"==typeof t[0]&&t[0]in Sr}function Wr(t,e){var r=new Ue(Sr,[],e?function(t){var e={color:Ut,string:Nt,number:Bt,enum:Nt,boolean:jt,formatted:Gt,resolvedImage:Yt};if("array"===t.type)return Wt(e[t.value]||qt,t.length);return e[t.type]}(e):void 0),n=r.parse(t,void 0,void 0,void 0,e&&"string"===e.type?{typeAnnotation:"coerce"}:void 0);return n?Ir(new Gr(n,e)):Or(r.errors)}Gr.prototype.evaluateWithoutErrorHandling=function(t,e,r,n,i,a){return this._evaluator.globals=t,this._evaluator.feature=e,this._evaluator.featureState=r,this._evaluator.canonical=n,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a,this.expression.evaluate(this._evaluator)},Gr.prototype.evaluate=function(t,e,r,n,i,a){this._evaluator.globals=t,this._evaluator.feature=e||null,this._evaluator.featureState=r||null,this._evaluator.canonical=n,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a||null;try{var o=this.expression.evaluate(this._evaluator);if(null==o||"number"==typeof o&&o!=o)return this._defaultValue;if(this._enumValues&&!(o in this._enumValues))throw new ue("Expected value to be one of "+Object.keys(this._enumValues).map((function(t){return JSON.stringify(t)})).join(", ")+", but found "+JSON.stringify(o)+" instead.");return o}catch(t){return this._warningHistory[t.message]||(this._warningHistory[t.message]=!0,"undefined"!=typeof console&&console.warn(t.message)),this._defaultValue}};var Xr=function(t,e){this.kind=t,this._styleExpression=e,this.isStateDependent="constant"!==t&&!Be(e.expression)};Xr.prototype.evaluateWithoutErrorHandling=function(t,e,r,n,i,a){return this._styleExpression.evaluateWithoutErrorHandling(t,e,r,n,i,a)},Xr.prototype.evaluate=function(t,e,r,n,i,a){return this._styleExpression.evaluate(t,e,r,n,i,a)};var Zr=function(t,e,r,n){this.kind=t,this.zoomStops=r,this._styleExpression=e,this.isStateDependent="camera"!==t&&!Be(e.expression),this.interpolationType=n};function Jr(t,e){if("error"===(t=Wr(t,e)).result)return t;var r=t.value.expression,n=Fe(r);if(!n&&!zr(e))return Or([new Dt("","data expressions not supported")]);var i=Ne(r,["zoom"]);if(!i&&!Dr(e))return Or([new Dt("","zoom expressions not supported")]);var a=function t(e){var r=null;if(e instanceof cr)r=t(e.result);else if(e instanceof lr)for(var n=0,i=e.args;nn.maximum?[new Ct(e,r,r+" is greater than the maximum value "+n.maximum)]:[]}function en(t){var e,r,n,i=t.valueSpec,a=Ot(t.value.type),o={},s="categorical"!==a&&void 0===t.value.property,l=!s,c="array"===Fr(t.value.stops)&&"array"===Fr(t.value.stops[0])&&"object"===Fr(t.value.stops[0][0]),u=Qr({key:t.key,value:t.value,valueSpec:t.styleSpec.function,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{stops:function(t){if("identity"===a)return[new Ct(t.key,t.value,'identity function may not have a "stops" property')];var e=[],r=t.value;e=e.concat($r({key:t.key,value:r,valueSpec:t.valueSpec,style:t.style,styleSpec:t.styleSpec,arrayElementValidator:f})),"array"===Fr(r)&&0===r.length&&e.push(new Ct(t.key,r,"array must have at least one stop"));return e},default:function(t){return kn({key:t.key,value:t.value,valueSpec:i,style:t.style,styleSpec:t.styleSpec})}}});return"identity"===a&&s&&u.push(new Ct(t.key,t.value,'missing required property "property"')),"identity"===a||t.value.stops||u.push(new Ct(t.key,t.value,'missing required property "stops"')),"exponential"===a&&t.valueSpec.expression&&!Rr(t.valueSpec)&&u.push(new Ct(t.key,t.value,"exponential functions not supported")),t.styleSpec.$version>=8&&(l&&!zr(t.valueSpec)?u.push(new Ct(t.key,t.value,"property functions not supported")):s&&!Dr(t.valueSpec)&&u.push(new Ct(t.key,t.value,"zoom functions not supported"))),"categorical"!==a&&!c||void 0!==t.value.property||u.push(new Ct(t.key,t.value,'"property" property is required')),u;function f(t){var e=[],a=t.value,s=t.key;if("array"!==Fr(a))return[new Ct(s,a,"array expected, "+Fr(a)+" found")];if(2!==a.length)return[new Ct(s,a,"array length 2 expected, length "+a.length+" found")];if(c){if("object"!==Fr(a[0]))return[new Ct(s,a,"object expected, "+Fr(a[0])+" found")];if(void 0===a[0].zoom)return[new Ct(s,a,"object stop key must have zoom")];if(void 0===a[0].value)return[new Ct(s,a,"object stop key must have value")];if(n&&n>Ot(a[0].zoom))return[new Ct(s,a[0].zoom,"stop zoom values must appear in ascending order")];Ot(a[0].zoom)!==n&&(n=Ot(a[0].zoom),r=void 0,o={}),e=e.concat(Qr({key:s+"[0]",value:a[0],valueSpec:{zoom:{}},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:tn,value:h}}))}else e=e.concat(h({key:s+"[0]",value:a[0],valueSpec:{},style:t.style,styleSpec:t.styleSpec},a));return Yr(zt(a[1]))?e.concat([new Ct(s+"[1]",a[1],"expressions are not allowed in function stops.")]):e.concat(kn({key:s+"[1]",value:a[1],valueSpec:i,style:t.style,styleSpec:t.styleSpec}))}function h(t,n){var s=Fr(t.value),l=Ot(t.value),c=null!==t.value?t.value:n;if(e){if(s!==e)return[new Ct(t.key,c,s+" stop domain type must match previous stop domain type "+e)]}else e=s;if("number"!==s&&"string"!==s&&"boolean"!==s)return[new Ct(t.key,c,"stop domain value must be a number, string, or boolean")];if("number"!==s&&"categorical"!==a){var u="number expected, "+s+" found";return zr(i)&&void 0===a&&(u+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new Ct(t.key,c,u)]}return"categorical"!==a||"number"!==s||isFinite(l)&&Math.floor(l)===l?"categorical"!==a&&"number"===s&&void 0!==r&&l=2&&"$id"!==t[1]&&"$type"!==t[1];case"in":return t.length>=3&&("string"!=typeof t[1]||Array.isArray(t[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==t.length||Array.isArray(t[1])||Array.isArray(t[2]);case"any":case"all":for(var e=0,r=t.slice(1);ee?1:0}function cn(t){if(!t)return!0;var e,r=t[0];return t.length<=1?"any"!==r:"=="===r?un(t[1],t[2],"=="):"!="===r?pn(un(t[1],t[2],"==")):"<"===r||">"===r||"<="===r||">="===r?un(t[1],t[2],r):"any"===r?(e=t.slice(1),["any"].concat(e.map(cn))):"all"===r?["all"].concat(t.slice(1).map(cn)):"none"===r?["all"].concat(t.slice(1).map(cn).map(pn)):"in"===r?fn(t[1],t.slice(2)):"!in"===r?pn(fn(t[1],t.slice(2))):"has"===r?hn(t[1]):"!has"===r?pn(hn(t[1])):"within"!==r||t}function un(t,e,r){switch(t){case"$type":return["filter-type-"+r,e];case"$id":return["filter-id-"+r,e];default:return["filter-"+r,t,e]}}function fn(t,e){if(0===e.length)return!1;switch(t){case"$type":return["filter-type-in",["literal",e]];case"$id":return["filter-id-in",["literal",e]];default:return e.length>200&&!e.some((function(t){return typeof t!=typeof e[0]}))?["filter-in-large",t,["literal",e.sort(ln)]]:["filter-in-small",t,["literal",e]]}}function hn(t){switch(t){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",t]}}function pn(t){return["!",t]}function dn(t){return an(zt(t.value))?rn(It({},t,{expressionContext:"filter",valueSpec:{value:"boolean"}})):function t(e){var r=e.value,n=e.key;if("array"!==Fr(r))return[new Ct(n,r,"array expected, "+Fr(r)+" found")];var i,a=e.styleSpec,o=[];if(r.length<1)return[new Ct(n,r,"filter array must have at least 1 element")];switch(o=o.concat(nn({key:n+"[0]",value:r[0],valueSpec:a.filter_operator,style:e.style,styleSpec:e.styleSpec})),Ot(r[0])){case"<":case"<=":case">":case">=":r.length>=2&&"$type"===Ot(r[1])&&o.push(new Ct(n,r,'"$type" cannot be use with operator "'+r[0]+'"'));case"==":case"!=":3!==r.length&&o.push(new Ct(n,r,'filter array for operator "'+r[0]+'" must have 3 elements'));case"in":case"!in":r.length>=2&&"string"!==(i=Fr(r[1]))&&o.push(new Ct(n+"[1]",r[1],"string expected, "+i+" found"));for(var s=2;s=u[p+0]&&n>=u[p+1])?(o[h]=!0,a.push(c[h])):o[h]=!1}}},Dn.prototype._forEachCell=function(t,e,r,n,i,a,o,s){for(var l=this._convertToCellCoord(t),c=this._convertToCellCoord(e),u=this._convertToCellCoord(r),f=this._convertToCellCoord(n),h=l;h<=u;h++)for(var p=c;p<=f;p++){var d=this.d*p+h;if((!s||s(this._convertFromCellCoord(h),this._convertFromCellCoord(p),this._convertFromCellCoord(h+1),this._convertFromCellCoord(p+1)))&&i.call(this,t,e,r,n,d,a,o,s))return}},Dn.prototype._convertFromCellCoord=function(t){return(t-this.padding)/this.scale},Dn.prototype._convertToCellCoord=function(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))},Dn.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var t=this.cells,e=3+this.cells.length+1+1,r=0,n=0;n=0)){var f=t[u];c[u]=Bn[l].shallow.indexOf(u)>=0?f:qn(f,e)}t instanceof Error&&(c.message=t.message)}if(c.$name)throw new Error("$name property is reserved for worker serialization logic.");return"Object"!==l&&(c.$name=l),c}throw new Error("can't serialize object of type "+typeof t)}function Hn(t){if(null==t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||t instanceof Boolean||t instanceof Number||t instanceof String||t instanceof Date||t instanceof RegExp||Un(t)||Vn(t)||ArrayBuffer.isView(t)||t instanceof Rn)return t;if(Array.isArray(t))return t.map(Hn);if("object"==typeof t){var e=t.$name||"Object",r=Bn[e].klass;if(!r)throw new Error("can't deserialize unregistered class "+e);if(r.deserialize)return r.deserialize(t);for(var n=Object.create(r.prototype),i=0,a=Object.keys(t);i=0?s:Hn(s)}}return n}throw new Error("can't deserialize object of type "+typeof t)}var Gn=function(){this.first=!0};Gn.prototype.update=function(t,e){var r=Math.floor(t);return this.first?(this.first=!1,this.lastIntegerZoom=r,this.lastIntegerZoomTime=0,this.lastZoom=t,this.lastFloorZoom=r,!0):(this.lastFloorZoom>r?(this.lastIntegerZoom=r+1,this.lastIntegerZoomTime=e):this.lastFloorZoom=128&&t<=255},Arabic:function(t){return t>=1536&&t<=1791},"Arabic Supplement":function(t){return t>=1872&&t<=1919},"Arabic Extended-A":function(t){return t>=2208&&t<=2303},"Hangul Jamo":function(t){return t>=4352&&t<=4607},"Unified Canadian Aboriginal Syllabics":function(t){return t>=5120&&t<=5759},Khmer:function(t){return t>=6016&&t<=6143},"Unified Canadian Aboriginal Syllabics Extended":function(t){return t>=6320&&t<=6399},"General Punctuation":function(t){return t>=8192&&t<=8303},"Letterlike Symbols":function(t){return t>=8448&&t<=8527},"Number Forms":function(t){return t>=8528&&t<=8591},"Miscellaneous Technical":function(t){return t>=8960&&t<=9215},"Control Pictures":function(t){return t>=9216&&t<=9279},"Optical Character Recognition":function(t){return t>=9280&&t<=9311},"Enclosed Alphanumerics":function(t){return t>=9312&&t<=9471},"Geometric Shapes":function(t){return t>=9632&&t<=9727},"Miscellaneous Symbols":function(t){return t>=9728&&t<=9983},"Miscellaneous Symbols and Arrows":function(t){return t>=11008&&t<=11263},"CJK Radicals Supplement":function(t){return t>=11904&&t<=12031},"Kangxi Radicals":function(t){return t>=12032&&t<=12255},"Ideographic Description Characters":function(t){return t>=12272&&t<=12287},"CJK Symbols and Punctuation":function(t){return t>=12288&&t<=12351},Hiragana:function(t){return t>=12352&&t<=12447},Katakana:function(t){return t>=12448&&t<=12543},Bopomofo:function(t){return t>=12544&&t<=12591},"Hangul Compatibility Jamo":function(t){return t>=12592&&t<=12687},Kanbun:function(t){return t>=12688&&t<=12703},"Bopomofo Extended":function(t){return t>=12704&&t<=12735},"CJK Strokes":function(t){return t>=12736&&t<=12783},"Katakana Phonetic Extensions":function(t){return t>=12784&&t<=12799},"Enclosed CJK Letters and Months":function(t){return t>=12800&&t<=13055},"CJK Compatibility":function(t){return t>=13056&&t<=13311},"CJK Unified Ideographs Extension A":function(t){return t>=13312&&t<=19903},"Yijing Hexagram Symbols":function(t){return t>=19904&&t<=19967},"CJK Unified Ideographs":function(t){return t>=19968&&t<=40959},"Yi Syllables":function(t){return t>=40960&&t<=42127},"Yi Radicals":function(t){return t>=42128&&t<=42191},"Hangul Jamo Extended-A":function(t){return t>=43360&&t<=43391},"Hangul Syllables":function(t){return t>=44032&&t<=55215},"Hangul Jamo Extended-B":function(t){return t>=55216&&t<=55295},"Private Use Area":function(t){return t>=57344&&t<=63743},"CJK Compatibility Ideographs":function(t){return t>=63744&&t<=64255},"Arabic Presentation Forms-A":function(t){return t>=64336&&t<=65023},"Vertical Forms":function(t){return t>=65040&&t<=65055},"CJK Compatibility Forms":function(t){return t>=65072&&t<=65103},"Small Form Variants":function(t){return t>=65104&&t<=65135},"Arabic Presentation Forms-B":function(t){return t>=65136&&t<=65279},"Halfwidth and Fullwidth Forms":function(t){return t>=65280&&t<=65519}};function Wn(t){for(var e=0,r=t;e=65097&&t<=65103)||(!!Yn["CJK Compatibility Ideographs"](t)||(!!Yn["CJK Compatibility"](t)||(!!Yn["CJK Radicals Supplement"](t)||(!!Yn["CJK Strokes"](t)||(!(!Yn["CJK Symbols and Punctuation"](t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||(!!Yn["CJK Unified Ideographs Extension A"](t)||(!!Yn["CJK Unified Ideographs"](t)||(!!Yn["Enclosed CJK Letters and Months"](t)||(!!Yn["Hangul Compatibility Jamo"](t)||(!!Yn["Hangul Jamo Extended-A"](t)||(!!Yn["Hangul Jamo Extended-B"](t)||(!!Yn["Hangul Jamo"](t)||(!!Yn["Hangul Syllables"](t)||(!!Yn.Hiragana(t)||(!!Yn["Ideographic Description Characters"](t)||(!!Yn.Kanbun(t)||(!!Yn["Kangxi Radicals"](t)||(!!Yn["Katakana Phonetic Extensions"](t)||(!(!Yn.Katakana(t)||12540===t)||(!(!Yn["Halfwidth and Fullwidth Forms"](t)||65288===t||65289===t||65293===t||t>=65306&&t<=65310||65339===t||65341===t||65343===t||t>=65371&&t<=65503||65507===t||t>=65512&&t<=65519)||(!(!Yn["Small Form Variants"](t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||(!!Yn["Unified Canadian Aboriginal Syllabics"](t)||(!!Yn["Unified Canadian Aboriginal Syllabics Extended"](t)||(!!Yn["Vertical Forms"](t)||(!!Yn["Yijing Hexagram Symbols"](t)||(!!Yn["Yi Syllables"](t)||!!Yn["Yi Radicals"](t))))))))))))))))))))))))))))))}function Jn(t){return!(Zn(t)||function(t){return!(!Yn["Latin-1 Supplement"](t)||167!==t&&169!==t&&174!==t&&177!==t&&188!==t&&189!==t&&190!==t&&215!==t&&247!==t)||(!(!Yn["General Punctuation"](t)||8214!==t&&8224!==t&&8225!==t&&8240!==t&&8241!==t&&8251!==t&&8252!==t&&8258!==t&&8263!==t&&8264!==t&&8265!==t&&8273!==t)||(!!Yn["Letterlike Symbols"](t)||(!!Yn["Number Forms"](t)||(!(!Yn["Miscellaneous Technical"](t)||!(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||9003===t||t>=9085&&t<=9114||t>=9150&&t<=9165||9167===t||t>=9169&&t<=9179||t>=9186&&t<=9215))||(!(!Yn["Control Pictures"](t)||9251===t)||(!!Yn["Optical Character Recognition"](t)||(!!Yn["Enclosed Alphanumerics"](t)||(!!Yn["Geometric Shapes"](t)||(!(!Yn["Miscellaneous Symbols"](t)||t>=9754&&t<=9759)||(!(!Yn["Miscellaneous Symbols and Arrows"](t)||!(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243))||(!!Yn["CJK Symbols and Punctuation"](t)||(!!Yn.Katakana(t)||(!!Yn["Private Use Area"](t)||(!!Yn["CJK Compatibility Forms"](t)||(!!Yn["Small Form Variants"](t)||(!!Yn["Halfwidth and Fullwidth Forms"](t)||(8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)))))))))))))))))}(t))}function Kn(t){return t>=1424&&t<=2303||Yn["Arabic Presentation Forms-A"](t)||Yn["Arabic Presentation Forms-B"](t)}function Qn(t,e){return!(!e&&Kn(t))&&!(t>=2304&&t<=3583||t>=3840&&t<=4255||Yn.Khmer(t))}function $n(t){for(var e=0,r=t;e-1&&(ai=ni),ii&&ii(t)};function li(){ci.fire(new At("pluginStateChange",{pluginStatus:ai,pluginURL:oi}))}var ci=new Et,ui=function(){return ai},fi=function(){if(ai!==ti||!oi)throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");ai=ei,li(),oi&&xt({url:oi},(function(t){t?si(t):(ai=ri,li())}))},hi={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:function(){return ai===ri||null!=hi.applyArabicShaping},isLoading:function(){return ai===ei},setState:function(t){ai=t.pluginStatus,oi=t.pluginURL},isParsed:function(){return null!=hi.applyArabicShaping&&null!=hi.processBidirectionalText&&null!=hi.processStyledBidirectionalText},getPluginURL:function(){return oi}},pi=function(t,e){this.zoom=t,e?(this.now=e.now,this.fadeDuration=e.fadeDuration,this.zoomHistory=e.zoomHistory,this.transition=e.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new Gn,this.transition={})};pi.prototype.isSupportedScript=function(t){return function(t,e){for(var r=0,n=t;rthis.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:e+(1-e)*r}:{fromScale:.5,toScale:1,t:1-(1-r)*e}};var di=function(t,e){this.property=t,this.value=e,this.expression=function(t,e){if(Br(t))return new Kr(t,e);if(Yr(t)){var r=Jr(t,e);if("error"===r.result)throw new Error(r.value.map((function(t){return t.key+": "+t.message})).join(", "));return r.value}var n=t;return"string"==typeof t&&"color"===e.type&&(n=te.parse(t)),{kind:"constant",evaluate:function(){return n}}}(void 0===e?t.specification.default:e,t.specification)};di.prototype.isDataDriven=function(){return"source"===this.expression.kind||"composite"===this.expression.kind},di.prototype.possiblyEvaluate=function(t,e,r){return this.property.possiblyEvaluate(this,t,e,r)};var mi=function(t){this.property=t,this.value=new di(t,void 0)};mi.prototype.transitioned=function(t,e){return new vi(this.property,this.value,e,u({},t.transition,this.transition),t.now)},mi.prototype.untransitioned=function(){return new vi(this.property,this.value,null,{},0)};var gi=function(t){this._properties=t,this._values=Object.create(t.defaultTransitionablePropertyValues)};gi.prototype.getValue=function(t){return x(this._values[t].value.value)},gi.prototype.setValue=function(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new mi(this._values[t].property)),this._values[t].value=new di(this._values[t].property,null===e?void 0:x(e))},gi.prototype.getTransition=function(t){return x(this._values[t].transition)},gi.prototype.setTransition=function(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new mi(this._values[t].property)),this._values[t].transition=x(e)||void 0},gi.prototype.serialize=function(){for(var t={},e=0,r=Object.keys(this._values);ethis.end)return this.prior=null,i;if(this.value.isDataDriven())return this.prior=null,i;if(n=1)return 1;var e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)}(o))}return i};var yi=function(t){this._properties=t,this._values=Object.create(t.defaultTransitioningPropertyValues)};yi.prototype.possiblyEvaluate=function(t,e,r){for(var n=new _i(this._properties),i=0,a=Object.keys(this._values);in.zoomHistory.lastIntegerZoom?{from:t,to:e}:{from:r,to:e}},e.prototype.interpolate=function(t){return t},e}(Ti),Mi=function(t){this.specification=t};Mi.prototype.possiblyEvaluate=function(t,e,r,n){if(void 0!==t.value){if("constant"===t.expression.kind){var i=t.expression.evaluate(e,null,{},r,n);return this._calculate(i,i,i,e)}return this._calculate(t.expression.evaluate(new pi(Math.floor(e.zoom-1),e)),t.expression.evaluate(new pi(Math.floor(e.zoom),e)),t.expression.evaluate(new pi(Math.floor(e.zoom+1),e)),e)}},Mi.prototype._calculate=function(t,e,r,n){return n.zoom>n.zoomHistory.lastIntegerZoom?{from:t,to:e}:{from:r,to:e}},Mi.prototype.interpolate=function(t){return t};var Ai=function(t){this.specification=t};Ai.prototype.possiblyEvaluate=function(t,e,r,n){return!!t.expression.evaluate(e,null,{},r,n)},Ai.prototype.interpolate=function(){return!1};var Si=function(t){for(var e in this.properties=t,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[],t){var r=t[e];r.specification.overridable&&this.overridableProperties.push(e);var n=this.defaultPropertyValues[e]=new di(r,void 0),i=this.defaultTransitionablePropertyValues[e]=new mi(r);this.defaultTransitioningPropertyValues[e]=i.untransitioned(),this.defaultPossiblyEvaluatedValues[e]=n.possiblyEvaluate({})}};Nn("DataDrivenProperty",Ti),Nn("DataConstantProperty",wi),Nn("CrossFadedDataDrivenProperty",ki),Nn("CrossFadedProperty",Mi),Nn("ColorRampProperty",Ai);var Ei=function(t){function e(e,r){if(t.call(this),this.id=e.id,this.type=e.type,this._featureFilter={filter:function(){return!0},needGeometry:!1},"custom"!==e.type&&(e=e,this.metadata=e.metadata,this.minzoom=e.minzoom,this.maxzoom=e.maxzoom,"background"!==e.type&&(this.source=e.source,this.sourceLayer=e["source-layer"],this.filter=e.filter),r.layout&&(this._unevaluatedLayout=new xi(r.layout)),r.paint)){for(var n in this._transitionablePaint=new gi(r.paint),e.paint)this.setPaintProperty(n,e.paint[n],{validate:!1});for(var i in e.layout)this.setLayoutProperty(i,e.layout[i],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new _i(r.paint)}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getCrossfadeParameters=function(){return this._crossfadeParameters},e.prototype.getLayoutProperty=function(t){return"visibility"===t?this.visibility:this._unevaluatedLayout.getValue(t)},e.prototype.setLayoutProperty=function(t,e,r){if(void 0===r&&(r={}),null!=e){var n="layers."+this.id+".layout."+t;if(this._validate(In,n,t,e,r))return}"visibility"!==t?this._unevaluatedLayout.setValue(t,e):this.visibility=e},e.prototype.getPaintProperty=function(t){return g(t,"-transition")?this._transitionablePaint.getTransition(t.slice(0,-"-transition".length)):this._transitionablePaint.getValue(t)},e.prototype.setPaintProperty=function(t,e,r){if(void 0===r&&(r={}),null!=e){var n="layers."+this.id+".paint."+t;if(this._validate(Pn,n,t,e,r))return!1}if(g(t,"-transition"))return this._transitionablePaint.setTransition(t.slice(0,-"-transition".length),e||void 0),!1;var i=this._transitionablePaint._values[t],a="cross-faded-data-driven"===i.property.specification["property-type"],o=i.value.isDataDriven(),s=i.value;this._transitionablePaint.setValue(t,e),this._handleSpecialPaintPropertyUpdate(t);var l=this._transitionablePaint._values[t].value;return l.isDataDriven()||o||a||this._handleOverridablePaintPropertyUpdate(t,s,l)},e.prototype._handleSpecialPaintPropertyUpdate=function(t){},e.prototype._handleOverridablePaintPropertyUpdate=function(t,e,r){return!1},e.prototype.isHidden=function(t){return!!(this.minzoom&&t=this.maxzoom)||"none"===this.visibility)},e.prototype.updateTransitions=function(t){this._transitioningPaint=this._transitionablePaint.transitioned(t,this._transitioningPaint)},e.prototype.hasTransition=function(){return this._transitioningPaint.hasTransition()},e.prototype.recalculate=function(t,e){t.getCrossfadeParameters&&(this._crossfadeParameters=t.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(t,void 0,e)),this.paint=this._transitioningPaint.possiblyEvaluate(t,void 0,e)},e.prototype.serialize=function(){var t={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(t.layout=t.layout||{},t.layout.visibility=this.visibility),y(t,(function(t,e){return!(void 0===t||"layout"===e&&!Object.keys(t).length||"paint"===e&&!Object.keys(t).length)}))},e.prototype._validate=function(t,e,r,n,i){return void 0===i&&(i={}),(!i||!1!==i.validate)&&On(this,t.call(Ln,{key:e,layerType:this.type,objectKey:r,value:n,styleSpec:Lt,style:{glyphs:!0,sprite:!0}}))},e.prototype.is3D=function(){return!1},e.prototype.isTileClipped=function(){return!1},e.prototype.hasOffscreenPass=function(){return!1},e.prototype.resize=function(){},e.prototype.isStateDependent=function(){for(var t in this.paint._values){var e=this.paint.get(t);if(e instanceof bi&&zr(e.property.specification)&&(("source"===e.value.kind||"composite"===e.value.kind)&&e.value.isStateDependent))return!0}return!1},e}(Et),Li={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array},Ci=function(t,e){this._structArray=t,this._pos1=e*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8},Pi=function(){this.isTransferred=!1,this.capacity=-1,this.resize(0)};function Ii(t,e){void 0===e&&(e=1);var r=0,n=0;return{members:t.map((function(t){var i,a=(i=t.type,Li[i].BYTES_PER_ELEMENT),o=r=Oi(r,Math.max(e,a)),s=t.components||1;return n=Math.max(n,a),r+=a*s,{name:t.name,type:t.type,components:s,offset:o}})),size:Oi(r,Math.max(n,e)),alignment:e}}function Oi(t,e){return Math.ceil(t/e)*e}Pi.serialize=function(t,e){return t._trim(),e&&(t.isTransferred=!0,e.push(t.arrayBuffer)),{length:t.length,arrayBuffer:t.arrayBuffer}},Pi.deserialize=function(t){var e=Object.create(this.prototype);return e.arrayBuffer=t.arrayBuffer,e.length=t.length,e.capacity=t.arrayBuffer.byteLength/e.bytesPerElement,e._refreshViews(),e},Pi.prototype._trim=function(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())},Pi.prototype.clear=function(){this.length=0},Pi.prototype.resize=function(t){this.reserve(t),this.length=t},Pi.prototype.reserve=function(t){if(t>this.capacity){this.capacity=Math.max(t,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);var e=this.uint8;this._refreshViews(),e&&this.uint8.set(e)}},Pi.prototype._refreshViews=function(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")};var zi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;return this.resize(r+1),this.emplace(r,t,e)},e.prototype.emplace=function(t,e,r){var n=2*t;return this.int16[n+0]=e,this.int16[n+1]=r,t},e}(Pi);zi.prototype.bytesPerElement=4,Nn("StructArrayLayout2i4",zi);var Di=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n){var i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)},e.prototype.emplace=function(t,e,r,n,i){var a=4*t;return this.int16[a+0]=e,this.int16[a+1]=r,this.int16[a+2]=n,this.int16[a+3]=i,t},e}(Pi);Di.prototype.bytesPerElement=8,Nn("StructArrayLayout4i8",Di);var Ri=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a){var o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,a)},e.prototype.emplace=function(t,e,r,n,i,a,o){var s=6*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.int16[s+2]=n,this.int16[s+3]=i,this.int16[s+4]=a,this.int16[s+5]=o,t},e}(Pi);Ri.prototype.bytesPerElement=12,Nn("StructArrayLayout2i4i12",Ri);var Fi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a){var o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,a)},e.prototype.emplace=function(t,e,r,n,i,a,o){var s=4*t,l=8*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.uint8[l+4]=n,this.uint8[l+5]=i,this.uint8[l+6]=a,this.uint8[l+7]=o,t},e}(Pi);Fi.prototype.bytesPerElement=8,Nn("StructArrayLayout2i4ub8",Fi);var Bi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,c){var u=this.length;return this.resize(u+1),this.emplace(u,t,e,r,n,i,a,o,s,l,c)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,c,u){var f=9*t,h=18*t;return this.uint16[f+0]=e,this.uint16[f+1]=r,this.uint16[f+2]=n,this.uint16[f+3]=i,this.uint16[f+4]=a,this.uint16[f+5]=o,this.uint16[f+6]=s,this.uint16[f+7]=l,this.uint8[h+16]=c,this.uint8[h+17]=u,t},e}(Pi);Bi.prototype.bytesPerElement=18,Nn("StructArrayLayout8ui2ub18",Bi);var Ni=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,c,u,f){var h=this.length;return this.resize(h+1),this.emplace(h,t,e,r,n,i,a,o,s,l,c,u,f)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,c,u,f,h){var p=12*t;return this.int16[p+0]=e,this.int16[p+1]=r,this.int16[p+2]=n,this.int16[p+3]=i,this.uint16[p+4]=a,this.uint16[p+5]=o,this.uint16[p+6]=s,this.uint16[p+7]=l,this.int16[p+8]=c,this.int16[p+9]=u,this.int16[p+10]=f,this.int16[p+11]=h,t},e}(Pi);Ni.prototype.bytesPerElement=24,Nn("StructArrayLayout4i4ui4i24",Ni);var ji=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=3*t;return this.float32[i+0]=e,this.float32[i+1]=r,this.float32[i+2]=n,t},e}(Pi);ji.prototype.bytesPerElement=12,Nn("StructArrayLayout3f12",ji);var Ui=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t){var e=this.length;return this.resize(e+1),this.emplace(e,t)},e.prototype.emplace=function(t,e){var r=1*t;return this.uint32[r+0]=e,t},e}(Pi);Ui.prototype.bytesPerElement=4,Nn("StructArrayLayout1ul4",Ui);var Vi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l){var c=this.length;return this.resize(c+1),this.emplace(c,t,e,r,n,i,a,o,s,l)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,c){var u=10*t,f=5*t;return this.int16[u+0]=e,this.int16[u+1]=r,this.int16[u+2]=n,this.int16[u+3]=i,this.int16[u+4]=a,this.int16[u+5]=o,this.uint32[f+3]=s,this.uint16[u+8]=l,this.uint16[u+9]=c,t},e}(Pi);Vi.prototype.bytesPerElement=20,Nn("StructArrayLayout6i1ul2ui20",Vi);var qi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a){var o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,a)},e.prototype.emplace=function(t,e,r,n,i,a,o){var s=6*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.int16[s+2]=n,this.int16[s+3]=i,this.int16[s+4]=a,this.int16[s+5]=o,t},e}(Pi);qi.prototype.bytesPerElement=12,Nn("StructArrayLayout2i2i2i12",qi);var Hi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i){var a=this.length;return this.resize(a+1),this.emplace(a,t,e,r,n,i)},e.prototype.emplace=function(t,e,r,n,i,a){var o=4*t,s=8*t;return this.float32[o+0]=e,this.float32[o+1]=r,this.float32[o+2]=n,this.int16[s+6]=i,this.int16[s+7]=a,t},e}(Pi);Hi.prototype.bytesPerElement=16,Nn("StructArrayLayout2f1f2i16",Hi);var Gi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n){var i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)},e.prototype.emplace=function(t,e,r,n,i){var a=12*t,o=3*t;return this.uint8[a+0]=e,this.uint8[a+1]=r,this.float32[o+1]=n,this.float32[o+2]=i,t},e}(Pi);Gi.prototype.bytesPerElement=12,Nn("StructArrayLayout2ub2f12",Gi);var Yi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=3*t;return this.uint16[i+0]=e,this.uint16[i+1]=r,this.uint16[i+2]=n,t},e}(Pi);Yi.prototype.bytesPerElement=6,Nn("StructArrayLayout3ui6",Yi);var Wi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,m,g){var v=this.length;return this.resize(v+1),this.emplace(v,t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,m,g)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,m,g,v){var y=24*t,x=12*t,b=48*t;return this.int16[y+0]=e,this.int16[y+1]=r,this.uint16[y+2]=n,this.uint16[y+3]=i,this.uint32[x+2]=a,this.uint32[x+3]=o,this.uint32[x+4]=s,this.uint16[y+10]=l,this.uint16[y+11]=c,this.uint16[y+12]=u,this.float32[x+7]=f,this.float32[x+8]=h,this.uint8[b+36]=p,this.uint8[b+37]=d,this.uint8[b+38]=m,this.uint32[x+10]=g,this.int16[y+22]=v,t},e}(Pi);Wi.prototype.bytesPerElement=48,Nn("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",Wi);var Xi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,m,g,v,y,x,b,_,w,T,k,M,A,S){var E=this.length;return this.resize(E+1),this.emplace(E,t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,m,g,v,y,x,b,_,w,T,k,M,A,S)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,m,g,v,y,x,b,_,w,T,k,M,A,S,E){var L=34*t,C=17*t;return this.int16[L+0]=e,this.int16[L+1]=r,this.int16[L+2]=n,this.int16[L+3]=i,this.int16[L+4]=a,this.int16[L+5]=o,this.int16[L+6]=s,this.int16[L+7]=l,this.uint16[L+8]=c,this.uint16[L+9]=u,this.uint16[L+10]=f,this.uint16[L+11]=h,this.uint16[L+12]=p,this.uint16[L+13]=d,this.uint16[L+14]=m,this.uint16[L+15]=g,this.uint16[L+16]=v,this.uint16[L+17]=y,this.uint16[L+18]=x,this.uint16[L+19]=b,this.uint16[L+20]=_,this.uint16[L+21]=w,this.uint16[L+22]=T,this.uint32[C+12]=k,this.float32[C+13]=M,this.float32[C+14]=A,this.float32[C+15]=S,this.float32[C+16]=E,t},e}(Pi);Xi.prototype.bytesPerElement=68,Nn("StructArrayLayout8i15ui1ul4f68",Xi);var Zi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t){var e=this.length;return this.resize(e+1),this.emplace(e,t)},e.prototype.emplace=function(t,e){var r=1*t;return this.float32[r+0]=e,t},e}(Pi);Zi.prototype.bytesPerElement=4,Nn("StructArrayLayout1f4",Zi);var Ji=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=3*t;return this.int16[i+0]=e,this.int16[i+1]=r,this.int16[i+2]=n,t},e}(Pi);Ji.prototype.bytesPerElement=6,Nn("StructArrayLayout3i6",Ji);var Ki=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=2*t,a=4*t;return this.uint32[i+0]=e,this.uint16[a+2]=r,this.uint16[a+3]=n,t},e}(Pi);Ki.prototype.bytesPerElement=8,Nn("StructArrayLayout1ul2ui8",Ki);var Qi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;return this.resize(r+1),this.emplace(r,t,e)},e.prototype.emplace=function(t,e,r){var n=2*t;return this.uint16[n+0]=e,this.uint16[n+1]=r,t},e}(Pi);Qi.prototype.bytesPerElement=4,Nn("StructArrayLayout2ui4",Qi);var $i=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t){var e=this.length;return this.resize(e+1),this.emplace(e,t)},e.prototype.emplace=function(t,e){var r=1*t;return this.uint16[r+0]=e,t},e}(Pi);$i.prototype.bytesPerElement=2,Nn("StructArrayLayout1ui2",$i);var ta=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e){var r=this.length;return this.resize(r+1),this.emplace(r,t,e)},e.prototype.emplace=function(t,e,r){var n=2*t;return this.float32[n+0]=e,this.float32[n+1]=r,t},e}(Pi);ta.prototype.bytesPerElement=8,Nn("StructArrayLayout2f8",ta);var ea=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},e.prototype.emplaceBack=function(t,e,r,n){var i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)},e.prototype.emplace=function(t,e,r,n,i){var a=4*t;return this.float32[a+0]=e,this.float32[a+1]=r,this.float32[a+2]=n,this.float32[a+3]=i,t},e}(Pi);ea.prototype.bytesPerElement=16,Nn("StructArrayLayout4f16",ea);var ra=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={anchorPointX:{configurable:!0},anchorPointY:{configurable:!0},x1:{configurable:!0},y1:{configurable:!0},x2:{configurable:!0},y2:{configurable:!0},featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0},anchorPoint:{configurable:!0}};return r.anchorPointX.get=function(){return this._structArray.int16[this._pos2+0]},r.anchorPointY.get=function(){return this._structArray.int16[this._pos2+1]},r.x1.get=function(){return this._structArray.int16[this._pos2+2]},r.y1.get=function(){return this._structArray.int16[this._pos2+3]},r.x2.get=function(){return this._structArray.int16[this._pos2+4]},r.y2.get=function(){return this._structArray.int16[this._pos2+5]},r.featureIndex.get=function(){return this._structArray.uint32[this._pos4+3]},r.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+8]},r.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+9]},r.anchorPoint.get=function(){return new i(this.anchorPointX,this.anchorPointY)},Object.defineProperties(e.prototype,r),e}(Ci);ra.prototype.size=20;var na=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return new ra(this,t)},e}(Vi);Nn("CollisionBoxArray",na);var ia=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={anchorX:{configurable:!0},anchorY:{configurable:!0},glyphStartIndex:{configurable:!0},numGlyphs:{configurable:!0},vertexStartIndex:{configurable:!0},lineStartIndex:{configurable:!0},lineLength:{configurable:!0},segment:{configurable:!0},lowerSize:{configurable:!0},upperSize:{configurable:!0},lineOffsetX:{configurable:!0},lineOffsetY:{configurable:!0},writingMode:{configurable:!0},placedOrientation:{configurable:!0},hidden:{configurable:!0},crossTileID:{configurable:!0},associatedIconIndex:{configurable:!0}};return r.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},r.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},r.glyphStartIndex.get=function(){return this._structArray.uint16[this._pos2+2]},r.numGlyphs.get=function(){return this._structArray.uint16[this._pos2+3]},r.vertexStartIndex.get=function(){return this._structArray.uint32[this._pos4+2]},r.lineStartIndex.get=function(){return this._structArray.uint32[this._pos4+3]},r.lineLength.get=function(){return this._structArray.uint32[this._pos4+4]},r.segment.get=function(){return this._structArray.uint16[this._pos2+10]},r.lowerSize.get=function(){return this._structArray.uint16[this._pos2+11]},r.upperSize.get=function(){return this._structArray.uint16[this._pos2+12]},r.lineOffsetX.get=function(){return this._structArray.float32[this._pos4+7]},r.lineOffsetY.get=function(){return this._structArray.float32[this._pos4+8]},r.writingMode.get=function(){return this._structArray.uint8[this._pos1+36]},r.placedOrientation.get=function(){return this._structArray.uint8[this._pos1+37]},r.placedOrientation.set=function(t){this._structArray.uint8[this._pos1+37]=t},r.hidden.get=function(){return this._structArray.uint8[this._pos1+38]},r.hidden.set=function(t){this._structArray.uint8[this._pos1+38]=t},r.crossTileID.get=function(){return this._structArray.uint32[this._pos4+10]},r.crossTileID.set=function(t){this._structArray.uint32[this._pos4+10]=t},r.associatedIconIndex.get=function(){return this._structArray.int16[this._pos2+22]},Object.defineProperties(e.prototype,r),e}(Ci);ia.prototype.size=48;var aa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return new ia(this,t)},e}(Wi);Nn("PlacedSymbolArray",aa);var oa=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={anchorX:{configurable:!0},anchorY:{configurable:!0},rightJustifiedTextSymbolIndex:{configurable:!0},centerJustifiedTextSymbolIndex:{configurable:!0},leftJustifiedTextSymbolIndex:{configurable:!0},verticalPlacedTextSymbolIndex:{configurable:!0},placedIconSymbolIndex:{configurable:!0},verticalPlacedIconSymbolIndex:{configurable:!0},key:{configurable:!0},textBoxStartIndex:{configurable:!0},textBoxEndIndex:{configurable:!0},verticalTextBoxStartIndex:{configurable:!0},verticalTextBoxEndIndex:{configurable:!0},iconBoxStartIndex:{configurable:!0},iconBoxEndIndex:{configurable:!0},verticalIconBoxStartIndex:{configurable:!0},verticalIconBoxEndIndex:{configurable:!0},featureIndex:{configurable:!0},numHorizontalGlyphVertices:{configurable:!0},numVerticalGlyphVertices:{configurable:!0},numIconVertices:{configurable:!0},numVerticalIconVertices:{configurable:!0},useRuntimeCollisionCircles:{configurable:!0},crossTileID:{configurable:!0},textBoxScale:{configurable:!0},textOffset0:{configurable:!0},textOffset1:{configurable:!0},collisionCircleDiameter:{configurable:!0}};return r.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},r.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},r.rightJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+2]},r.centerJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+3]},r.leftJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+4]},r.verticalPlacedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+5]},r.placedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+6]},r.verticalPlacedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+7]},r.key.get=function(){return this._structArray.uint16[this._pos2+8]},r.textBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+9]},r.textBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+10]},r.verticalTextBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+11]},r.verticalTextBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+12]},r.iconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+13]},r.iconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+14]},r.verticalIconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+15]},r.verticalIconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+16]},r.featureIndex.get=function(){return this._structArray.uint16[this._pos2+17]},r.numHorizontalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+18]},r.numVerticalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+19]},r.numIconVertices.get=function(){return this._structArray.uint16[this._pos2+20]},r.numVerticalIconVertices.get=function(){return this._structArray.uint16[this._pos2+21]},r.useRuntimeCollisionCircles.get=function(){return this._structArray.uint16[this._pos2+22]},r.crossTileID.get=function(){return this._structArray.uint32[this._pos4+12]},r.crossTileID.set=function(t){this._structArray.uint32[this._pos4+12]=t},r.textBoxScale.get=function(){return this._structArray.float32[this._pos4+13]},r.textOffset0.get=function(){return this._structArray.float32[this._pos4+14]},r.textOffset1.get=function(){return this._structArray.float32[this._pos4+15]},r.collisionCircleDiameter.get=function(){return this._structArray.float32[this._pos4+16]},Object.defineProperties(e.prototype,r),e}(Ci);oa.prototype.size=68;var sa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return new oa(this,t)},e}(Xi);Nn("SymbolInstanceArray",sa);var la=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getoffsetX=function(t){return this.float32[1*t+0]},e}(Zi);Nn("GlyphOffsetArray",la);var ca=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getx=function(t){return this.int16[3*t+0]},e.prototype.gety=function(t){return this.int16[3*t+1]},e.prototype.gettileUnitDistanceFromAnchor=function(t){return this.int16[3*t+2]},e}(Ji);Nn("SymbolLineVertexArray",ca);var ua=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var r={featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0}};return r.featureIndex.get=function(){return this._structArray.uint32[this._pos4+0]},r.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+2]},r.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+3]},Object.defineProperties(e.prototype,r),e}(Ci);ua.prototype.size=8;var fa=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return new ua(this,t)},e}(Ki);Nn("FeatureIndexArray",fa);var ha=Ii([{name:"a_pos",components:2,type:"Int16"}],4).members,pa=function(t){void 0===t&&(t=[]),this.segments=t};function da(t,e){return 256*(t=l(Math.floor(t),0,255))+(e=l(Math.floor(e),0,255))}pa.prototype.prepareSegment=function(t,e,r,n){var i=this.segments[this.segments.length-1];return t>pa.MAX_VERTEX_ARRAY_LENGTH&&_("Max vertices per segment is "+pa.MAX_VERTEX_ARRAY_LENGTH+": bucket requested "+t),(!i||i.vertexLength+t>pa.MAX_VERTEX_ARRAY_LENGTH||i.sortKey!==n)&&(i={vertexOffset:e.length,primitiveOffset:r.length,vertexLength:0,primitiveLength:0},void 0!==n&&(i.sortKey=n),this.segments.push(i)),i},pa.prototype.get=function(){return this.segments},pa.prototype.destroy=function(){for(var t=0,e=this.segments;t>>16)*o&65535)<<16)&4294967295)<<15|l>>>17))*s+(((l>>>16)*s&65535)<<16)&4294967295)<<13|i>>>19))+((5*(i>>>16)&65535)<<16)&4294967295))+((58964+(a>>>16)&65535)<<16);switch(l=0,r){case 3:l^=(255&t.charCodeAt(c+2))<<16;case 2:l^=(255&t.charCodeAt(c+1))<<8;case 1:i^=l=(65535&(l=(l=(65535&(l^=255&t.charCodeAt(c)))*o+(((l>>>16)*o&65535)<<16)&4294967295)<<15|l>>>17))*s+(((l>>>16)*s&65535)<<16)&4294967295}return i^=t.length,i=2246822507*(65535&(i^=i>>>16))+((2246822507*(i>>>16)&65535)<<16)&4294967295,i=3266489909*(65535&(i^=i>>>13))+((3266489909*(i>>>16)&65535)<<16)&4294967295,(i^=i>>>16)>>>0}})),va=e((function(t){t.exports=function(t,e){for(var r,n=t.length,i=e^n,a=0;n>=4;)r=1540483477*(65535&(r=255&t.charCodeAt(a)|(255&t.charCodeAt(++a))<<8|(255&t.charCodeAt(++a))<<16|(255&t.charCodeAt(++a))<<24))+((1540483477*(r>>>16)&65535)<<16),i=1540483477*(65535&i)+((1540483477*(i>>>16)&65535)<<16)^(r=1540483477*(65535&(r^=r>>>24))+((1540483477*(r>>>16)&65535)<<16)),n-=4,++a;switch(n){case 3:i^=(255&t.charCodeAt(a+2))<<16;case 2:i^=(255&t.charCodeAt(a+1))<<8;case 1:i=1540483477*(65535&(i^=255&t.charCodeAt(a)))+((1540483477*(i>>>16)&65535)<<16)}return i=1540483477*(65535&(i^=i>>>13))+((1540483477*(i>>>16)&65535)<<16),(i^=i>>>15)>>>0}})),ya=ga,xa=ga,ba=va;ya.murmur3=xa,ya.murmur2=ba;var _a=function(){this.ids=[],this.positions=[],this.indexed=!1};_a.prototype.add=function(t,e,r,n){this.ids.push(Ta(t)),this.positions.push(e,r,n)},_a.prototype.getPositions=function(t){for(var e=Ta(t),r=0,n=this.ids.length-1;r>1;this.ids[i]>=e?n=i:r=i+1}for(var a=[];this.ids[r]===e;){var o=this.positions[3*r],s=this.positions[3*r+1],l=this.positions[3*r+2];a.push({index:o,start:s,end:l}),r++}return a},_a.serialize=function(t,e){var r=new Float64Array(t.ids),n=new Uint32Array(t.positions);return function t(e,r,n,i){for(;n>1],o=n-1,s=i+1;;){do{o++}while(e[o]a);if(o>=s)break;ka(e,o,s),ka(r,3*o,3*s),ka(r,3*o+1,3*s+1),ka(r,3*o+2,3*s+2)}s-nGa.max||o.yGa.max)&&(_("Geometry exceeds allowed extent, reduce your vector tile buffer size"),o.x=l(o.x,Ga.min,Ga.max),o.y=l(o.y,Ga.min,Ga.max))}return r}function Wa(t,e,r,n,i){t.emplaceBack(2*e+(n+1)/2,2*r+(i+1)/2)}var Xa=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((function(t){return t.id})),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new zi,this.indexArray=new Yi,this.segments=new pa,this.programConfigurations=new Ua(ha,t.layers,t.zoom),this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id}))};function Za(t,e){for(var r=0;r1){if($a(t,e))return!0;for(var n=0;n1?t.distSqr(r):t.distSqr(r.sub(e)._mult(i)._add(e))}function no(t,e){for(var r,n,i,a=!1,o=0;oe.y!=i.y>e.y&&e.x<(i.x-n.x)*(e.y-n.y)/(i.y-n.y)+n.x&&(a=!a);return a}function io(t,e){for(var r=!1,n=0,i=t.length-1;ne.y!=o.y>e.y&&e.x<(o.x-a.x)*(e.y-a.y)/(o.y-a.y)+a.x&&(r=!r)}return r}function ao(t,e,r){var n=r[0],i=r[2];if(t.xi.x&&e.x>i.x||t.yi.y&&e.y>i.y)return!1;var a=w(t,e,r[0]);return a!==w(t,e,r[1])||a!==w(t,e,r[2])||a!==w(t,e,r[3])}function oo(t,e,r){var n=e.paint.get(t).value;return"constant"===n.kind?n.value:r.programConfigurations.get(e.id).getMaxValue(t)}function so(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function lo(t,e,r,n,a){if(!e[0]&&!e[1])return t;var o=i.convert(e)._mult(a);"viewport"===r&&o._rotate(-n);for(var s=[],l=0;l=8192||u<0||u>=8192)){var f=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,t.sortKey),h=f.vertexLength;Wa(this.layoutVertexArray,c,u,-1,-1),Wa(this.layoutVertexArray,c,u,1,-1),Wa(this.layoutVertexArray,c,u,1,1),Wa(this.layoutVertexArray,c,u,-1,1),this.indexArray.emplaceBack(h,h+1,h+2),this.indexArray.emplaceBack(h,h+3,h+2),f.vertexLength+=4,f.primitiveLength+=2}}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,{},n)},Nn("CircleBucket",Xa,{omit:["layers"]});var co=new Si({"circle-sort-key":new Ti(Lt.layout_circle["circle-sort-key"])}),uo={paint:new Si({"circle-radius":new Ti(Lt.paint_circle["circle-radius"]),"circle-color":new Ti(Lt.paint_circle["circle-color"]),"circle-blur":new Ti(Lt.paint_circle["circle-blur"]),"circle-opacity":new Ti(Lt.paint_circle["circle-opacity"]),"circle-translate":new wi(Lt.paint_circle["circle-translate"]),"circle-translate-anchor":new wi(Lt.paint_circle["circle-translate-anchor"]),"circle-pitch-scale":new wi(Lt.paint_circle["circle-pitch-scale"]),"circle-pitch-alignment":new wi(Lt.paint_circle["circle-pitch-alignment"]),"circle-stroke-width":new Ti(Lt.paint_circle["circle-stroke-width"]),"circle-stroke-color":new Ti(Lt.paint_circle["circle-stroke-color"]),"circle-stroke-opacity":new Ti(Lt.paint_circle["circle-stroke-opacity"])}),layout:co},fo="undefined"!=typeof Float32Array?Float32Array:Array;function ho(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function po(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],l=e[5],c=e[6],u=e[7],f=e[8],h=e[9],p=e[10],d=e[11],m=e[12],g=e[13],v=e[14],y=e[15],x=r[0],b=r[1],_=r[2],w=r[3];return t[0]=x*n+b*s+_*f+w*m,t[1]=x*i+b*l+_*h+w*g,t[2]=x*a+b*c+_*p+w*v,t[3]=x*o+b*u+_*d+w*y,x=r[4],b=r[5],_=r[6],w=r[7],t[4]=x*n+b*s+_*f+w*m,t[5]=x*i+b*l+_*h+w*g,t[6]=x*a+b*c+_*p+w*v,t[7]=x*o+b*u+_*d+w*y,x=r[8],b=r[9],_=r[10],w=r[11],t[8]=x*n+b*s+_*f+w*m,t[9]=x*i+b*l+_*h+w*g,t[10]=x*a+b*c+_*p+w*v,t[11]=x*o+b*u+_*d+w*y,x=r[12],b=r[13],_=r[14],w=r[15],t[12]=x*n+b*s+_*f+w*m,t[13]=x*i+b*l+_*h+w*g,t[14]=x*a+b*c+_*p+w*v,t[15]=x*o+b*u+_*d+w*y,t}Math.hypot||(Math.hypot=function(){for(var t=arguments,e=0,r=arguments.length;r--;)e+=t[r]*t[r];return Math.sqrt(e)});var mo=po;var go,vo,yo=function(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t};go=new fo(3),fo!=Float32Array&&(go[0]=0,go[1]=0,go[2]=0),vo=go;function xo(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3];return t[0]=r[0]*n+r[4]*i+r[8]*a+r[12]*o,t[1]=r[1]*n+r[5]*i+r[9]*a+r[13]*o,t[2]=r[2]*n+r[6]*i+r[10]*a+r[14]*o,t[3]=r[3]*n+r[7]*i+r[11]*a+r[15]*o,t}!function(){var t=function(){var t=new fo(4);return fo!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}()}();var bo=function(t){var e=t[0],r=t[1];return e*e+r*r},_o=(function(){var t=function(){var t=new fo(2);return fo!=Float32Array&&(t[0]=0,t[1]=0),t}()}(),function(t){function e(e){t.call(this,e,uo)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createBucket=function(t){return new Xa(t)},e.prototype.queryRadius=function(t){var e=t;return oo("circle-radius",this,e)+oo("circle-stroke-width",this,e)+so(this.paint.get("circle-translate"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,a,o,s){for(var l=lo(t,this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),a.angle,o),c=this.paint.get("circle-radius").evaluate(e,r)+this.paint.get("circle-stroke-width").evaluate(e,r),u="map"===this.paint.get("circle-pitch-alignment"),f=u?l:function(t,e){return t.map((function(t){return wo(t,e)}))}(l,s),h=u?c*o:c,p=0,d=n;pt.width||i.height>t.height||r.x>t.width-i.width||r.y>t.height-i.height)throw new RangeError("out of range source coordinates for image copy");if(i.width>e.width||i.height>e.height||n.x>e.width-i.width||n.y>e.height-i.height)throw new RangeError("out of range destination coordinates for image copy");for(var o=t.data,s=e.data,l=0;l80*r){n=a=t[0],i=o=t[1];for(var d=r;da&&(a=s),l>o&&(o=l);c=0!==(c=Math.max(a-n,o-i))?1/c:0}return jo(h,p,r,n,i,c),p}function Bo(t,e,r,n,i){var a,o;if(i===ls(t,e,r,n)>0)for(a=e;a=e;a-=n)o=as(a,t[a],t[a+1],o);return o&&$o(o,o.next)&&(os(o),o=o.next),o}function No(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!$o(n,n.next)&&0!==Qo(n.prev,n,n.next))n=n.next;else{if(os(n),(n=e=n.prev)===n.next)break;r=!0}}while(r||n!==e);return e}function jo(t,e,r,n,i,a,o){if(t){!o&&a&&function(t,e,r,n){var i=t;do{null===i.z&&(i.z=Xo(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,r,n,i,a,o,s,l,c=1;do{for(r=t,t=null,a=null,o=0;r;){for(o++,n=r,s=0,e=0;e0||l>0&&n;)0!==s&&(0===l||!n||r.z<=n.z)?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,l--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;r=n}a.nextZ=null,c*=2}while(o>1)}(i)}(t,n,i,a);for(var s,l,c=t;t.prev!==t.next;)if(s=t.prev,l=t.next,a?Vo(t,n,i,a):Uo(t))e.push(s.i/r),e.push(t.i/r),e.push(l.i/r),os(t),t=l.next,c=l.next;else if((t=l)===c){o?1===o?jo(t=qo(No(t),e,r),e,r,n,i,a,2):2===o&&Ho(t,e,r,n,i,a):jo(No(t),e,r,n,i,a,1);break}}}function Uo(t){var e=t.prev,r=t,n=t.next;if(Qo(e,r,n)>=0)return!1;for(var i=t.next.next;i!==t.prev;){if(Jo(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&Qo(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function Vo(t,e,r,n){var i=t.prev,a=t,o=t.next;if(Qo(i,a,o)>=0)return!1;for(var s=i.xa.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,u=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=Xo(s,l,e,r,n),h=Xo(c,u,e,r,n),p=t.prevZ,d=t.nextZ;p&&p.z>=f&&d&&d.z<=h;){if(p!==t.prev&&p!==t.next&&Jo(i.x,i.y,a.x,a.y,o.x,o.y,p.x,p.y)&&Qo(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,d!==t.prev&&d!==t.next&&Jo(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&Qo(d.prev,d,d.next)>=0)return!1;d=d.nextZ}for(;p&&p.z>=f;){if(p!==t.prev&&p!==t.next&&Jo(i.x,i.y,a.x,a.y,o.x,o.y,p.x,p.y)&&Qo(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;d&&d.z<=h;){if(d!==t.prev&&d!==t.next&&Jo(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&Qo(d.prev,d,d.next)>=0)return!1;d=d.nextZ}return!0}function qo(t,e,r){var n=t;do{var i=n.prev,a=n.next.next;!$o(i,a)&&ts(i,n,n.next,a)&&ns(i,a)&&ns(a,i)&&(e.push(i.i/r),e.push(n.i/r),e.push(a.i/r),os(n),os(n.next),n=t=a),n=n.next}while(n!==t);return No(n)}function Ho(t,e,r,n,i,a){var o=t;do{for(var s=o.next.next;s!==o.prev;){if(o.i!==s.i&&Ko(o,s)){var l=is(o,s);return o=No(o,o.next),l=No(l,l.next),jo(o,e,r,n,i,a),void jo(l,e,r,n,i,a)}s=s.next}o=o.next}while(o!==t)}function Go(t,e){return t.x-e.x}function Yo(t,e){if(e=function(t,e){var r,n=e,i=t.x,a=t.y,o=-1/0;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){var s=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=i&&s>o){if(o=s,s===i){if(a===n.y)return n;if(a===n.next.y)return n.next}r=n.x=n.x&&n.x>=u&&i!==n.x&&Jo(ar.x||n.x===r.x&&Wo(r,n)))&&(r=n,h=l)),n=n.next}while(n!==c);return r}(t,e)){var r=is(e,t);No(e,e.next),No(r,r.next)}}function Wo(t,e){return Qo(t.prev,t,e.prev)<0&&Qo(e.next,t,t.next)<0}function Xo(t,e,r,n,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Zo(t){var e=t,r=t;do{(e.x=0&&(t-o)*(n-s)-(r-o)*(e-s)>=0&&(r-o)*(a-s)-(i-o)*(n-s)>=0}function Ko(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&ts(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}(t,e)&&(ns(t,e)&&ns(e,t)&&function(t,e){var r=t,n=!1,i=(t.x+e.x)/2,a=(t.y+e.y)/2;do{r.y>a!=r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==t);return n}(t,e)&&(Qo(t.prev,t,e.prev)||Qo(t,e.prev,e))||$o(t,e)&&Qo(t.prev,t,t.next)>0&&Qo(e.prev,e,e.next)>0)}function Qo(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function $o(t,e){return t.x===e.x&&t.y===e.y}function ts(t,e,r,n){var i=rs(Qo(t,e,r)),a=rs(Qo(t,e,n)),o=rs(Qo(r,n,t)),s=rs(Qo(r,n,e));return i!==a&&o!==s||(!(0!==i||!es(t,r,e))||(!(0!==a||!es(t,n,e))||(!(0!==o||!es(r,t,n))||!(0!==s||!es(r,e,n)))))}function es(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function rs(t){return t>0?1:t<0?-1:0}function ns(t,e){return Qo(t.prev,t,t.next)<0?Qo(t,e,t.next)>=0&&Qo(t,t.prev,e)>=0:Qo(t,e,t.prev)<0||Qo(t,t.next,e)<0}function is(t,e){var r=new ss(t.i,t.x,t.y),n=new ss(e.i,e.x,e.y),i=t.next,a=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function as(t,e,r,n){var i=new ss(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function os(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function ss(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function ls(t,e,r,n){for(var i=0,a=e,o=r-n;an;){if(i-n>600){var o=i-n+1,s=r-n+1,l=Math.log(o),c=.5*Math.exp(2*l/3),u=.5*Math.sqrt(l*c*(o-c)/o)*(s-o/2<0?-1:1),f=Math.max(n,Math.floor(r-s*c/o+u)),h=Math.min(i,Math.floor(r+(o-s)*c/o+u));t(e,r,f,h,a)}var p=e[r],d=n,m=i;for(us(e,n,r),a(e[i],p)>0&&us(e,n,i);d0;)m--}0===a(e[n],p)?us(e,n,m):(m++,us(e,m,i)),m<=r&&(n=m+1),r<=m&&(i=m-1)}}(t,e,r||0,n||t.length-1,i||fs)}function us(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function fs(t,e){return te?1:0}function hs(t,e){var r=t.length;if(r<=1)return[t];for(var n,i,a=[],o=0;o1)for(var l=0;l0&&(n+=t[i-1].length,r.holes.push(n))}return r},Do.default=Ro;var gs=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((function(t){return t.id})),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new zi,this.indexArray=new Yi,this.indexArray2=new Qi,this.programConfigurations=new Ua(zo,t.layers,t.zoom),this.segments=new pa,this.segments2=new pa,this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id}))};gs.prototype.populate=function(t,e,r){this.hasPattern=ds("fill",this.layers,e);for(var n=this.layers[0].layout.get("fill-sort-key"),i=[],a=0,o=t;a>3}if(a--,1===n||2===n)o+=t.readSVarint(),s+=t.readSVarint(),1===n&&(e&&l.push(e),e=[]),e.push(new i(o,s));else{if(7!==n)throw new Error("unknown command "+n);e&&e.push(e[0].clone())}}return e&&l.push(e),l},ws.prototype.bbox=function(){var t=this._pbf;t.pos=this._geometry;for(var e=t.readVarint()+t.pos,r=1,n=0,i=0,a=0,o=1/0,s=-1/0,l=1/0,c=-1/0;t.pos>3}if(n--,1===r||2===r)(i+=t.readSVarint())s&&(s=i),(a+=t.readSVarint())c&&(c=a);else if(7!==r)throw new Error("unknown command "+r)}return[o,l,s,c]},ws.prototype.toGeoJSON=function(t,e,r){var n,i,a=this.extent*Math.pow(2,r),o=this.extent*t,s=this.extent*e,l=this.loadGeometry(),c=ws.types[this.type];function u(t){for(var e=0;e>3;e=1===n?t.readString():2===n?t.readFloat():3===n?t.readDouble():4===n?t.readVarint64():5===n?t.readVarint():6===n?t.readSVarint():7===n?t.readBoolean():null}return e}(r))}function Es(t,e,r){if(3===t){var n=new Ms(r,r.readVarint()+r.pos);n.length&&(e[n.name]=n)}}As.prototype.feature=function(t){if(t<0||t>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];var e=this._pbf.readVarint()+this._pbf.pos;return new _s(this._pbf,e,this.extent,this._keys,this._values)};var Ls={VectorTile:function(t,e){this.layers=t.readFields(Es,{},e)},VectorTileFeature:_s,VectorTileLayer:Ms},Cs=Ls.VectorTileFeature.types,Ps=Math.pow(2,13);function Is(t,e,r,n,i,a,o,s){t.emplaceBack(e,r,2*Math.floor(n*Ps)+o,i*Ps*2,a*Ps*2,Math.round(s))}var Os=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((function(t){return t.id})),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new Ri,this.indexArray=new Yi,this.programConfigurations=new Ua(bs,t.layers,t.zoom),this.segments=new pa,this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id}))};function zs(t,e){return t.x===e.x&&(t.x<0||t.x>8192)||t.y===e.y&&(t.y<0||t.y>8192)}function Ds(t){return t.every((function(t){return t.x<0}))||t.every((function(t){return t.x>8192}))||t.every((function(t){return t.y<0}))||t.every((function(t){return t.y>8192}))}Os.prototype.populate=function(t,e,r){this.features=[],this.hasPattern=ds("fill-extrusion",this.layers,e);for(var n=0,i=t;n=1){var y=d[g-1];if(!zs(v,y)){f.vertexLength+4>pa.MAX_VERTEX_ARRAY_LENGTH&&(f=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));var x=v.sub(y)._perp()._unit(),b=y.dist(v);m+b>32768&&(m=0),Is(this.layoutVertexArray,v.x,v.y,x.x,x.y,0,0,m),Is(this.layoutVertexArray,v.x,v.y,x.x,x.y,0,1,m),m+=b,Is(this.layoutVertexArray,y.x,y.y,x.x,x.y,0,0,m),Is(this.layoutVertexArray,y.x,y.y,x.x,x.y,0,1,m);var _=f.vertexLength;this.indexArray.emplaceBack(_,_+2,_+1),this.indexArray.emplaceBack(_+1,_+2,_+3),f.vertexLength+=4,f.primitiveLength+=2}}}}if(f.vertexLength+l>pa.MAX_VERTEX_ARRAY_LENGTH&&(f=this.segments.prepareSegment(l,this.layoutVertexArray,this.indexArray)),"Polygon"===Cs[t.type]){for(var w=[],T=[],k=f.vertexLength,M=0,A=s;M=2&&t[l-1].equals(t[l-2]);)l--;for(var c=0;c0;if(T&&v>c){var M=u.dist(p);if(M>2*f){var A=u.sub(u.sub(p)._mult(f/M)._round());this.updateDistance(p,A),this.addCurrentVertex(A,m,0,0,h),p=A}}var S=p&&d,E=S?r:s?"butt":n;if(S&&"round"===E&&(_i&&(E="bevel"),"bevel"===E&&(_>2&&(E="flipbevel"),_100)y=g.mult(-1);else{var L=_*m.add(g).mag()/m.sub(g).mag();y._perp()._mult(L*(k?-1:1))}this.addCurrentVertex(u,y,0,0,h),this.addCurrentVertex(u,y.mult(-1),0,0,h)}else if("bevel"===E||"fakeround"===E){var C=-Math.sqrt(_*_-1),P=k?C:0,I=k?0:C;if(p&&this.addCurrentVertex(u,m,P,I,h),"fakeround"===E)for(var O=Math.round(180*w/Math.PI/20),z=1;z2*f){var j=u.add(d.sub(u)._mult(f/N)._round());this.updateDistance(u,j),this.addCurrentVertex(j,g,0,0,h),u=j}}}}},Hs.prototype.addCurrentVertex=function(t,e,r,n,i,a){void 0===a&&(a=!1);var o=e.x+e.y*r,s=e.y-e.x*r,l=-e.x+e.y*n,c=-e.y-e.x*n;this.addHalfVertex(t,o,s,a,!1,r,i),this.addHalfVertex(t,l,c,a,!0,-n,i),this.distance>qs/2&&0===this.totalDistance&&(this.distance=0,this.addCurrentVertex(t,e,r,n,i,a))},Hs.prototype.addHalfVertex=function(t,e,r,n,i,a,o){var s=t.x,l=t.y,c=.5*this.scaledDistance;this.layoutVertexArray.emplaceBack((s<<1)+(n?1:0),(l<<1)+(i?1:0),Math.round(63*e)+128,Math.round(63*r)+128,1+(0===a?0:a<0?-1:1)|(63&c)<<2,c>>6);var u=o.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,u),o.primitiveLength++),i?this.e2=u:this.e1=u},Hs.prototype.updateScaledDistance=function(){this.scaledDistance=this.totalDistance>0?(this.clipStart+(this.clipEnd-this.clipStart)*this.distance/this.totalDistance)*(qs-1):this.distance},Hs.prototype.updateDistance=function(t,e){this.distance+=t.dist(e),this.updateScaledDistance()},Nn("LineBucket",Hs,{omit:["layers","patternFeatures"]});var Gs=new Si({"line-cap":new wi(Lt.layout_line["line-cap"]),"line-join":new Ti(Lt.layout_line["line-join"]),"line-miter-limit":new wi(Lt.layout_line["line-miter-limit"]),"line-round-limit":new wi(Lt.layout_line["line-round-limit"]),"line-sort-key":new Ti(Lt.layout_line["line-sort-key"])}),Ys={paint:new Si({"line-opacity":new Ti(Lt.paint_line["line-opacity"]),"line-color":new Ti(Lt.paint_line["line-color"]),"line-translate":new wi(Lt.paint_line["line-translate"]),"line-translate-anchor":new wi(Lt.paint_line["line-translate-anchor"]),"line-width":new Ti(Lt.paint_line["line-width"]),"line-gap-width":new Ti(Lt.paint_line["line-gap-width"]),"line-offset":new Ti(Lt.paint_line["line-offset"]),"line-blur":new Ti(Lt.paint_line["line-blur"]),"line-dasharray":new Mi(Lt.paint_line["line-dasharray"]),"line-pattern":new ki(Lt.paint_line["line-pattern"]),"line-gradient":new Ai(Lt.paint_line["line-gradient"])}),layout:Gs},Ws=new(function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.possiblyEvaluate=function(e,r){return r=new pi(Math.floor(r.zoom),{now:r.now,fadeDuration:r.fadeDuration,zoomHistory:r.zoomHistory,transition:r.transition}),t.prototype.possiblyEvaluate.call(this,e,r)},e.prototype.evaluate=function(e,r,n,i){return r=u({},r,{zoom:Math.floor(r.zoom)}),t.prototype.evaluate.call(this,e,r,n,i)},e}(Ti))(Ys.paint.properties["line-width"].specification);Ws.useIntegerZoom=!0;var Xs=function(t){function e(e){t.call(this,e,Ys)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype._handleSpecialPaintPropertyUpdate=function(t){"line-gradient"===t&&this._updateGradient()},e.prototype._updateGradient=function(){var t=this._transitionablePaint._values["line-gradient"].value.expression;this.gradient=Co(t,"lineProgress"),this.gradientTexture=null},e.prototype.recalculate=function(e,r){t.prototype.recalculate.call(this,e,r),this.paint._values["line-floorwidth"]=Ws.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,e)},e.prototype.createBucket=function(t){return new Hs(t)},e.prototype.queryRadius=function(t){var e=t,r=Zs(oo("line-width",this,e),oo("line-gap-width",this,e)),n=oo("line-offset",this,e);return r/2+Math.abs(n)+so(this.paint.get("line-translate"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,a,o,s){var l=lo(t,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),o.angle,s),c=s/2*Zs(this.paint.get("line-width").evaluate(e,r),this.paint.get("line-gap-width").evaluate(e,r)),u=this.paint.get("line-offset").evaluate(e,r);return u&&(n=function(t,e){for(var r=[],n=new i(0,0),a=0;a=3)for(var a=0;a0?e+2*t:t}var Js=Ii([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),Ks=Ii([{name:"a_projected_pos",components:3,type:"Float32"}],4),Qs=(Ii([{name:"a_fade_opacity",components:1,type:"Uint32"}],4),Ii([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}])),$s=(Ii([{type:"Int16",name:"anchorPointX"},{type:"Int16",name:"anchorPointY"},{type:"Int16",name:"x1"},{type:"Int16",name:"y1"},{type:"Int16",name:"x2"},{type:"Int16",name:"y2"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]),Ii([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4)),tl=Ii([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);Ii([{name:"triangle",components:3,type:"Uint16"}]),Ii([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Uint16",name:"glyphStartIndex"},{type:"Uint16",name:"numGlyphs"},{type:"Uint32",name:"vertexStartIndex"},{type:"Uint32",name:"lineStartIndex"},{type:"Uint32",name:"lineLength"},{type:"Uint16",name:"segment"},{type:"Uint16",name:"lowerSize"},{type:"Uint16",name:"upperSize"},{type:"Float32",name:"lineOffsetX"},{type:"Float32",name:"lineOffsetY"},{type:"Uint8",name:"writingMode"},{type:"Uint8",name:"placedOrientation"},{type:"Uint8",name:"hidden"},{type:"Uint32",name:"crossTileID"},{type:"Int16",name:"associatedIconIndex"}]),Ii([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Int16",name:"rightJustifiedTextSymbolIndex"},{type:"Int16",name:"centerJustifiedTextSymbolIndex"},{type:"Int16",name:"leftJustifiedTextSymbolIndex"},{type:"Int16",name:"verticalPlacedTextSymbolIndex"},{type:"Int16",name:"placedIconSymbolIndex"},{type:"Int16",name:"verticalPlacedIconSymbolIndex"},{type:"Uint16",name:"key"},{type:"Uint16",name:"textBoxStartIndex"},{type:"Uint16",name:"textBoxEndIndex"},{type:"Uint16",name:"verticalTextBoxStartIndex"},{type:"Uint16",name:"verticalTextBoxEndIndex"},{type:"Uint16",name:"iconBoxStartIndex"},{type:"Uint16",name:"iconBoxEndIndex"},{type:"Uint16",name:"verticalIconBoxStartIndex"},{type:"Uint16",name:"verticalIconBoxEndIndex"},{type:"Uint16",name:"featureIndex"},{type:"Uint16",name:"numHorizontalGlyphVertices"},{type:"Uint16",name:"numVerticalGlyphVertices"},{type:"Uint16",name:"numIconVertices"},{type:"Uint16",name:"numVerticalIconVertices"},{type:"Uint16",name:"useRuntimeCollisionCircles"},{type:"Uint32",name:"crossTileID"},{type:"Float32",name:"textBoxScale"},{type:"Float32",components:2,name:"textOffset"},{type:"Float32",name:"collisionCircleDiameter"}]),Ii([{type:"Float32",name:"offsetX"}]),Ii([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]);function el(t,e,r){return t.sections.forEach((function(t){t.text=function(t,e,r){var n=e.layout.get("text-transform").evaluate(r,{});return"uppercase"===n?t=t.toLocaleUpperCase():"lowercase"===n&&(t=t.toLocaleLowerCase()),hi.applyArabicShaping&&(t=hi.applyArabicShaping(t)),t}(t.text,e,r)})),t}var rl={"!":"\ufe15","#":"\uff03",$:"\uff04","%":"\uff05","&":"\uff06","(":"\ufe35",")":"\ufe36","*":"\uff0a","+":"\uff0b",",":"\ufe10","-":"\ufe32",".":"\u30fb","/":"\uff0f",":":"\ufe13",";":"\ufe14","<":"\ufe3f","=":"\uff1d",">":"\ufe40","?":"\ufe16","@":"\uff20","[":"\ufe47","\\":"\uff3c","]":"\ufe48","^":"\uff3e",_:"\ufe33","`":"\uff40","{":"\ufe37","|":"\u2015","}":"\ufe38","~":"\uff5e","\xa2":"\uffe0","\xa3":"\uffe1","\xa5":"\uffe5","\xa6":"\uffe4","\xac":"\uffe2","\xaf":"\uffe3","\u2013":"\ufe32","\u2014":"\ufe31","\u2018":"\ufe43","\u2019":"\ufe44","\u201c":"\ufe41","\u201d":"\ufe42","\u2026":"\ufe19","\u2027":"\u30fb","\u20a9":"\uffe6","\u3001":"\ufe11","\u3002":"\ufe12","\u3008":"\ufe3f","\u3009":"\ufe40","\u300a":"\ufe3d","\u300b":"\ufe3e","\u300c":"\ufe41","\u300d":"\ufe42","\u300e":"\ufe43","\u300f":"\ufe44","\u3010":"\ufe3b","\u3011":"\ufe3c","\u3014":"\ufe39","\u3015":"\ufe3a","\u3016":"\ufe17","\u3017":"\ufe18","\uff01":"\ufe15","\uff08":"\ufe35","\uff09":"\ufe36","\uff0c":"\ufe10","\uff0d":"\ufe32","\uff0e":"\u30fb","\uff1a":"\ufe13","\uff1b":"\ufe14","\uff1c":"\ufe3f","\uff1e":"\ufe40","\uff1f":"\ufe16","\uff3b":"\ufe47","\uff3d":"\ufe48","\uff3f":"\ufe33","\uff5b":"\ufe37","\uff5c":"\u2015","\uff5d":"\ufe38","\uff5f":"\ufe35","\uff60":"\ufe36","\uff61":"\ufe12","\uff62":"\ufe41","\uff63":"\ufe42"};var nl=function(t,e,r,n,i){var a,o,s=8*i-n-1,l=(1<>1,u=-7,f=r?i-1:0,h=r?-1:1,p=t[e+f];for(f+=h,a=p&(1<<-u)-1,p>>=-u,u+=s;u>0;a=256*a+t[e+f],f+=h,u-=8);for(o=a&(1<<-u)-1,a>>=-u,u+=n;u>0;o=256*o+t[e+f],f+=h,u-=8);if(0===a)a=1-c;else{if(a===l)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),a-=c}return(p?-1:1)*o*Math.pow(2,a-n)},il=function(t,e,r,n,i,a){var o,s,l,c=8*a-i-1,u=(1<>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:a-1,d=n?1:-1,m=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=u):(o=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-o))<1&&(o--,l*=2),(e+=o+f>=1?h/l:h*Math.pow(2,1-f))*l>=2&&(o++,l/=2),o+f>=u?(s=0,o=u):o+f>=1?(s=(e*l-1)*Math.pow(2,i),o+=f):(s=e*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;t[r+p]=255&s,p+=d,s/=256,i-=8);for(o=o<0;t[r+p]=255&o,p+=d,o/=256,c-=8);t[r+p-d]|=128*m},al=ol;function ol(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}ol.Varint=0,ol.Fixed64=1,ol.Bytes=2,ol.Fixed32=5;var sl="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function ll(t){return t.type===ol.Bytes?t.readVarint()+t.pos:t.pos+1}function cl(t,e,r){return r?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function ul(t,e,r){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));r.realloc(n);for(var i=r.pos-1;i>=t;i--)r.buf[i+n]=r.buf[i]}function fl(t,e){for(var r=0;r>>8,t[r+2]=e>>>16,t[r+3]=e>>>24}function wl(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}ol.prototype={destroy:function(){this.buf=null},readFields:function(t,e,r){for(r=r||this.length;this.pos>3,a=this.pos;this.type=7&n,t(i,e,this),this.pos===a&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=bl(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=wl(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=bl(this.buf,this.pos)+4294967296*bl(this.buf,this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=bl(this.buf,this.pos)+4294967296*wl(this.buf,this.pos+4);return this.pos+=8,t},readFloat:function(){var t=nl(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=nl(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,r,n=this.buf;return e=127&(r=n[this.pos++]),r<128?e:(e|=(127&(r=n[this.pos++]))<<7,r<128?e:(e|=(127&(r=n[this.pos++]))<<14,r<128?e:(e|=(127&(r=n[this.pos++]))<<21,r<128?e:function(t,e,r){var n,i,a=r.buf;if(i=a[r.pos++],n=(112&i)>>4,i<128)return cl(t,n,e);if(i=a[r.pos++],n|=(127&i)<<3,i<128)return cl(t,n,e);if(i=a[r.pos++],n|=(127&i)<<10,i<128)return cl(t,n,e);if(i=a[r.pos++],n|=(127&i)<<17,i<128)return cl(t,n,e);if(i=a[r.pos++],n|=(127&i)<<24,i<128)return cl(t,n,e);if(i=a[r.pos++],n|=(1&i)<<31,i<128)return cl(t,n,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(r=n[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=12&&sl?function(t,e,r){return sl.decode(t.subarray(e,r))}(this.buf,e,t):function(t,e,r){var n="",i=e;for(;i239?4:l>223?3:l>191?2:1;if(i+u>r)break;1===u?l<128&&(c=l):2===u?128==(192&(a=t[i+1]))&&(c=(31&l)<<6|63&a)<=127&&(c=null):3===u?(a=t[i+1],o=t[i+2],128==(192&a)&&128==(192&o)&&((c=(15&l)<<12|(63&a)<<6|63&o)<=2047||c>=55296&&c<=57343)&&(c=null)):4===u&&(a=t[i+1],o=t[i+2],s=t[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&((c=(15&l)<<18|(63&a)<<12|(63&o)<<6|63&s)<=65535||c>=1114112)&&(c=null)),null===c?(c=65533,u=1):c>65535&&(c-=65536,n+=String.fromCharCode(c>>>10&1023|55296),c=56320|1023&c),n+=String.fromCharCode(c),i+=u}return n}(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==ol.Bytes)return t.push(this.readVarint(e));var r=ll(this);for(t=t||[];this.pos127;);else if(e===ol.Bytes)this.pos=this.readVarint()+this.pos;else if(e===ol.Fixed32)this.pos+=4;else{if(e!==ol.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8}},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e268435455||t<0?function(t,e){var r,n;t>=0?(r=t%4294967296|0,n=t/4294967296|0):(n=~(-t/4294967296),4294967295^(r=~(-t%4294967296))?r=r+1|0:(r=0,n=n+1|0));if(t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,r){r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos]=127&t}(r,0,e),function(t,e){var r=(7&t)<<4;if(e.buf[e.pos++]|=r|((t>>>=3)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),!t)return;e.buf[e.pos++]=127&t}(n,e)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,r){for(var n,i,a=0;a55295&&n<57344){if(!i){n>56319||a+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):i=n;continue}if(n<56320){t[r++]=239,t[r++]=191,t[r++]=189,i=n;continue}n=i-55296<<10|n-56320|65536,i=null}else i&&(t[r++]=239,t[r++]=191,t[r++]=189,i=null);n<128?t[r++]=n:(n<2048?t[r++]=n>>6|192:(n<65536?t[r++]=n>>12|224:(t[r++]=n>>18|240,t[r++]=n>>12&63|128),t[r++]=n>>6&63|128),t[r++]=63&n|128)}return r}(this.buf,t,this.pos);var r=this.pos-e;r>=128&&ul(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(t){this.realloc(4),il(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),il(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r=128&&ul(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,r){this.writeTag(t,ol.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,fl,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,hl,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,ml,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,pl,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,dl,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,gl,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,vl,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,yl,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,xl,e)},writeBytesField:function(t,e){this.writeTag(t,ol.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,ol.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,ol.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,ol.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,ol.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,ol.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,ol.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,ol.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,ol.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,ol.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}};function Tl(t,e,r){1===t&&r.readMessage(kl,e)}function kl(t,e,r){if(3===t){var n=r.readMessage(Ml,{}),i=n.id,a=n.bitmap,o=n.width,s=n.height,l=n.left,c=n.top,u=n.advance;e.push({id:i,bitmap:new So({width:o+6,height:s+6},a),metrics:{width:o,height:s,left:l,top:c,advance:u}})}}function Ml(t,e,r){1===t?e.id=r.readVarint():2===t?e.bitmap=r.readBytes():3===t?e.width=r.readVarint():4===t?e.height=r.readVarint():5===t?e.left=r.readSVarint():6===t?e.top=r.readSVarint():7===t&&(e.advance=r.readVarint())}function Al(t){for(var e=0,r=0,n=0,i=t;n=0;h--){var p=o[h];if(!(f.w>p.w||f.h>p.h)){if(f.x=p.x,f.y=p.y,l=Math.max(l,f.y+f.h),s=Math.max(s,f.x+f.w),f.w===p.w&&f.h===p.h){var d=o.pop();h0&&N>M&&(M=N)}else{var j=r[S.fontStack],U=j&&j[L];if(U&&U.rect)I=U.rect,P=U.metrics;else{var V=e[S.fontStack],q=V&&V[L];if(!q)continue;P=q.metrics}C=24*(_-S.scale)}D?(t.verticalizable=!0,k.push({glyph:L,imageName:O,x:h,y:p+C,vertical:D,scale:S.scale,fontStack:S.fontStack,sectionIndex:E,metrics:P,rect:I}),h+=z*S.scale+c):(k.push({glyph:L,imageName:O,x:h,y:p+C,vertical:D,scale:S.scale,fontStack:S.fontStack,sectionIndex:E,metrics:P,rect:I}),h+=P.advance*S.scale+c)}if(0!==k.length){var H=h-c;d=Math.max(H,d),Vl(k,0,k.length-1,g,M)}h=0;var G=a*_+M;T.lineOffset=Math.max(M,w),p+=G,m=Math.max(G,m),++v}else p+=a,++v}var Y;var W=p- -17,X=Ul(o),Z=X.horizontalAlign,J=X.verticalAlign;(function(t,e,r,n,i,a,o,s,l){var c=(e-r)*i,u=0;u=a!==o?-s*n- -17:(-n*l+.5)*o;for(var f=0,h=t;f=0&&n>=t&&zl[this.text.charCodeAt(n)];n--)r--;this.text=this.text.substring(t,r),this.sectionIndex=this.sectionIndex.slice(t,r)},Il.prototype.substring=function(t,e){var r=new Il;return r.text=this.text.substring(t,e),r.sectionIndex=this.sectionIndex.slice(t,e),r.sections=this.sections,r},Il.prototype.toString=function(){return this.text},Il.prototype.getMaxScale=function(){var t=this;return this.sectionIndex.reduce((function(e,r){return Math.max(e,t.sections[r].scale)}),0)},Il.prototype.addTextSection=function(t,e){this.text+=t.text,this.sections.push(Pl.forText(t.scale,t.fontStack||e));for(var r=this.sections.length-1,n=0;n=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)};var zl={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},Dl={};function Rl(t,e,r,n,i,a){if(e.imageName){var o=n[e.imageName];return o?o.displaySize[0]*e.scale*24/a+i:0}var s=r[e.fontStack],l=s&&s[t];return l?l.metrics.advance*e.scale+i:0}function Fl(t,e,r,n){var i=Math.pow(t-e,2);return n?t=0,f=0,h=0;h-r/2;){if(--o<0)return!1;s-=t[o].dist(a),a=t[o]}s+=t[o].dist(t[o+1]),o++;for(var l=[],c=0;sn;)c-=l.shift().angleDelta;if(c>i)return!1;o++,s+=f.dist(h)}return!0}function Jl(t){for(var e=0,r=0;rc){var d=(c-l)/p,m=He(f.x,h.x,d),g=He(f.y,h.y,d),v=new Hl(m,g,h.angleTo(f),u);return v._round(),!o||Zl(t,v,s,o,e)?v:void 0}l+=p}}function tc(t,e,r,n,i,a,o,s,l){var c=Kl(n,a,o),u=Ql(n,i),f=u*o,h=0===t[0].x||t[0].x===l||0===t[0].y||t[0].y===l;return e-f=0&&_=0&&w=0&&p+u<=f){var T=new Hl(_,w,x,m);T._round(),i&&!Zl(e,T,o,i,a)||d.push(T)}}h+=y}l||d.length||s||(d=t(e,h/2,n,i,a,o,s,!0,c));return d}(t,h?e/2*s%e:(u/2+2*a)*o*s%e,e,c,r,f,h,!1,l)}function ec(t,e,r,n,a){for(var o=[],s=0;s=n&&h.x>=n||(f.x>=n?f=new i(n,f.y+(h.y-f.y)*((n-f.x)/(h.x-f.x)))._round():h.x>=n&&(h=new i(n,f.y+(h.y-f.y)*((n-f.x)/(h.x-f.x)))._round()),f.y>=a&&h.y>=a||(f.y>=a?f=new i(f.x+(h.x-f.x)*((a-f.y)/(h.y-f.y)),a)._round():h.y>=a&&(h=new i(f.x+(h.x-f.x)*((a-f.y)/(h.y-f.y)),a)._round()),c&&f.equals(c[c.length-1])||(c=[f],o.push(c)),c.push(h)))))}return o}function rc(t,e,r,n){var a=[],o=t.image,s=o.pixelRatio,l=o.paddedRect.w-2,c=o.paddedRect.h-2,u=t.right-t.left,f=t.bottom-t.top,h=o.stretchX||[[0,l]],p=o.stretchY||[[0,c]],d=function(t,e){return t+e[1]-e[0]},m=h.reduce(d,0),g=p.reduce(d,0),v=l-m,y=c-g,x=0,b=m,_=0,w=g,T=0,k=v,M=0,A=y;if(o.content&&n){var S=o.content;x=nc(h,0,S[0]),_=nc(p,0,S[1]),b=nc(h,S[0],S[2]),w=nc(p,S[1],S[3]),T=S[0]-x,M=S[1]-_,k=S[2]-S[0]-b,A=S[3]-S[1]-w}var E=function(n,a,l,c){var h=ac(n.stretch-x,b,u,t.left),p=oc(n.fixed-T,k,n.stretch,m),d=ac(a.stretch-_,w,f,t.top),v=oc(a.fixed-M,A,a.stretch,g),y=ac(l.stretch-x,b,u,t.left),S=oc(l.fixed-T,k,l.stretch,m),E=ac(c.stretch-_,w,f,t.top),L=oc(c.fixed-M,A,c.stretch,g),C=new i(h,d),P=new i(y,d),I=new i(y,E),O=new i(h,E),z=new i(p/s,v/s),D=new i(S/s,L/s),R=e*Math.PI/180;if(R){var F=Math.sin(R),B=Math.cos(R),N=[B,-F,F,B];C._matMult(N),P._matMult(N),O._matMult(N),I._matMult(N)}var j=n.stretch+n.fixed,U=l.stretch+l.fixed,V=a.stretch+a.fixed,q=c.stretch+c.fixed;return{tl:C,tr:P,bl:O,br:I,tex:{x:o.paddedRect.x+1+j,y:o.paddedRect.y+1+V,w:U-j,h:q-V},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:z,pixelOffsetBR:D,minFontScaleX:k/s/u,minFontScaleY:A/s/f,isSDF:r}};if(n&&(o.stretchX||o.stretchY))for(var L=ic(h,v,m),C=ic(p,y,g),P=0;P0&&(d=Math.max(10,d),this.circleDiameter=d)}else{var m=o.top*s-l,g=o.bottom*s+l,v=o.left*s-l,y=o.right*s+l,x=o.collisionPadding;if(x&&(v-=x[0]*s,m-=x[1]*s,y+=x[2]*s,g+=x[3]*s),u){var b=new i(v,m),_=new i(y,m),w=new i(v,g),T=new i(y,g),k=u*Math.PI/180;b._rotate(k),_._rotate(k),w._rotate(k),T._rotate(k),v=Math.min(b.x,_.x,w.x,T.x),y=Math.max(b.x,_.x,w.x,T.x),m=Math.min(b.y,_.y,w.y,T.y),g=Math.max(b.y,_.y,w.y,T.y)}t.emplaceBack(e.x,e.y,v,m,y,g,r,n,a)}this.boxEndIndex=t.length},lc=function(t,e){if(void 0===t&&(t=[]),void 0===e&&(e=cc),this.data=t,this.length=this.data.length,this.compare=e,this.length>0)for(var r=(this.length>>1)-1;r>=0;r--)this._down(r)};function cc(t,e){return te?1:0}function uc(t,e,r){void 0===e&&(e=1),void 0===r&&(r=!1);for(var n=1/0,a=1/0,o=-1/0,s=-1/0,l=t[0],c=0;co)&&(o=u.x),(!c||u.y>s)&&(s=u.y)}var f=o-n,h=s-a,p=Math.min(f,h),d=p/2,m=new lc([],fc);if(0===p)return new i(n,a);for(var g=n;gy.d||!y.d)&&(y=b,r&&console.log("found best %d after %d probes",Math.round(1e4*b.d)/1e4,x)),b.max-y.d<=e||(d=b.h/2,m.push(new hc(b.p.x-d,b.p.y-d,d,t)),m.push(new hc(b.p.x+d,b.p.y-d,d,t)),m.push(new hc(b.p.x-d,b.p.y+d,d,t)),m.push(new hc(b.p.x+d,b.p.y+d,d,t)),x+=4)}return r&&(console.log("num probes: "+x),console.log("best distance: "+y.d)),y.p}function fc(t,e){return e.max-t.max}function hc(t,e,r,n){this.p=new i(t,e),this.h=r,this.d=function(t,e){for(var r=!1,n=1/0,i=0;it.y!=u.y>t.y&&t.x<(u.x-c.x)*(t.y-c.y)/(u.y-c.y)+c.x&&(r=!r),n=Math.min(n,ro(t,c,u))}return(r?1:-1)*Math.sqrt(n)}(this.p,n),this.max=this.d+this.h*Math.SQRT2}lc.prototype.push=function(t){this.data.push(t),this.length++,this._up(this.length-1)},lc.prototype.pop=function(){if(0!==this.length){var t=this.data[0],e=this.data.pop();return this.length--,this.length>0&&(this.data[0]=e,this._down(0)),t}},lc.prototype.peek=function(){return this.data[0]},lc.prototype._up=function(t){for(var e=this.data,r=this.compare,n=e[t];t>0;){var i=t-1>>1,a=e[i];if(r(n,a)>=0)break;e[t]=a,t=i}e[t]=n},lc.prototype._down=function(t){for(var e=this.data,r=this.compare,n=this.length>>1,i=e[t];t=0)break;e[t]=o,t=a}e[t]=i};var pc=Number.POSITIVE_INFINITY;function dc(t,e){return e[1]!==pc?function(t,e,r){var n=0,i=0;switch(e=Math.abs(e),r=Math.abs(r),t){case"top-right":case"top-left":case"top":i=r-7;break;case"bottom-right":case"bottom-left":case"bottom":i=7-r}switch(t){case"top-right":case"bottom-right":case"right":n=-e;break;case"top-left":case"bottom-left":case"left":n=e}return[n,i]}(t,e[0],e[1]):function(t,e){var r=0,n=0;e<0&&(e=0);var i=e/Math.sqrt(2);switch(t){case"top-right":case"top-left":n=i-7;break;case"bottom-right":case"bottom-left":n=7-i;break;case"bottom":n=7-e;break;case"top":n=e-7}switch(t){case"top-right":case"bottom-right":r=-i;break;case"top-left":case"bottom-left":r=i;break;case"left":r=e;break;case"right":r=-e}return[r,n]}(t,e[0])}function mc(t){switch(t){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function gc(t,e,r,n,a,o,s,l,c,u,f,h,p,d,m){var g=function(t,e,r,n,a,o,s,l){for(var c=n.layout.get("text-rotate").evaluate(o,{})*Math.PI/180,u=[],f=0,h=e.positionedLines;f32640&&_(t.layerIds[0]+': Value for "text-size" is >= 255. Reduce your "text-size".'):"composite"===v.kind&&((y=[128*d.compositeTextSizes[0].evaluate(s,{},m),128*d.compositeTextSizes[1].evaluate(s,{},m)])[0]>32640||y[1]>32640)&&_(t.layerIds[0]+': Value for "text-size" is >= 255. Reduce your "text-size".'),t.addSymbols(t.text,g,y,l,o,s,u,e,c.lineStartIndex,c.lineLength,p,m);for(var x=0,b=f;x=0;o--)if(n.dist(a[o])0)&&("constant"!==a.value.kind||a.value.value.length>0),c="constant"!==s.value.kind||!!s.value.value||Object.keys(s.parameters).length>0,u=i.get("symbol-sort-key");if(this.features=[],l||c){for(var f=e.iconDependencies,h=e.glyphDependencies,p=e.availableImages,d=new pi(this.zoom),m=0,g=t;m=0;for(var O=0,z=k.sections;O=0;s--)a[s]={x:e[s].x,y:e[s].y,tileUnitDistanceFromAnchor:i},s>0&&(i+=e[s-1].dist(e[s]));for(var l=0;l0},Ac.prototype.hasIconData=function(){return this.icon.segments.get().length>0},Ac.prototype.hasDebugData=function(){return this.textCollisionBox&&this.iconCollisionBox},Ac.prototype.hasTextCollisionBoxData=function(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0},Ac.prototype.hasIconCollisionBoxData=function(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0},Ac.prototype.addIndicesForPlacedSymbol=function(t,e){for(var r=t.placedSymbolArray.get(e),n=r.vertexStartIndex+4*r.numGlyphs,i=r.vertexStartIndex;i1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(t),this.sortedAngle=t,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(var r=0,n=this.symbolInstanceIndexes;r=0&&n.indexOf(t)===r&&e.addIndicesForPlacedSymbol(e.text,t)})),a.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,a.verticalPlacedTextSymbolIndex),a.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,a.placedIconSymbolIndex),a.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,a.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}},Nn("SymbolBucket",Ac,{omit:["layers","collisionBoxArray","features","compareText"]}),Ac.MAX_GLYPHS=65535,Ac.addDynamicAttributes=wc;var Sc=new Si({"symbol-placement":new wi(Lt.layout_symbol["symbol-placement"]),"symbol-spacing":new wi(Lt.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new wi(Lt.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new Ti(Lt.layout_symbol["symbol-sort-key"]),"symbol-z-order":new wi(Lt.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new wi(Lt.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new wi(Lt.layout_symbol["icon-ignore-placement"]),"icon-optional":new wi(Lt.layout_symbol["icon-optional"]),"icon-rotation-alignment":new wi(Lt.layout_symbol["icon-rotation-alignment"]),"icon-size":new Ti(Lt.layout_symbol["icon-size"]),"icon-text-fit":new wi(Lt.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new wi(Lt.layout_symbol["icon-text-fit-padding"]),"icon-image":new Ti(Lt.layout_symbol["icon-image"]),"icon-rotate":new Ti(Lt.layout_symbol["icon-rotate"]),"icon-padding":new wi(Lt.layout_symbol["icon-padding"]),"icon-keep-upright":new wi(Lt.layout_symbol["icon-keep-upright"]),"icon-offset":new Ti(Lt.layout_symbol["icon-offset"]),"icon-anchor":new Ti(Lt.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new wi(Lt.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new wi(Lt.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new wi(Lt.layout_symbol["text-rotation-alignment"]),"text-field":new Ti(Lt.layout_symbol["text-field"]),"text-font":new Ti(Lt.layout_symbol["text-font"]),"text-size":new Ti(Lt.layout_symbol["text-size"]),"text-max-width":new Ti(Lt.layout_symbol["text-max-width"]),"text-line-height":new wi(Lt.layout_symbol["text-line-height"]),"text-letter-spacing":new Ti(Lt.layout_symbol["text-letter-spacing"]),"text-justify":new Ti(Lt.layout_symbol["text-justify"]),"text-radial-offset":new Ti(Lt.layout_symbol["text-radial-offset"]),"text-variable-anchor":new wi(Lt.layout_symbol["text-variable-anchor"]),"text-anchor":new Ti(Lt.layout_symbol["text-anchor"]),"text-max-angle":new wi(Lt.layout_symbol["text-max-angle"]),"text-writing-mode":new wi(Lt.layout_symbol["text-writing-mode"]),"text-rotate":new Ti(Lt.layout_symbol["text-rotate"]),"text-padding":new wi(Lt.layout_symbol["text-padding"]),"text-keep-upright":new wi(Lt.layout_symbol["text-keep-upright"]),"text-transform":new Ti(Lt.layout_symbol["text-transform"]),"text-offset":new Ti(Lt.layout_symbol["text-offset"]),"text-allow-overlap":new wi(Lt.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new wi(Lt.layout_symbol["text-ignore-placement"]),"text-optional":new wi(Lt.layout_symbol["text-optional"])}),Ec={paint:new Si({"icon-opacity":new Ti(Lt.paint_symbol["icon-opacity"]),"icon-color":new Ti(Lt.paint_symbol["icon-color"]),"icon-halo-color":new Ti(Lt.paint_symbol["icon-halo-color"]),"icon-halo-width":new Ti(Lt.paint_symbol["icon-halo-width"]),"icon-halo-blur":new Ti(Lt.paint_symbol["icon-halo-blur"]),"icon-translate":new wi(Lt.paint_symbol["icon-translate"]),"icon-translate-anchor":new wi(Lt.paint_symbol["icon-translate-anchor"]),"text-opacity":new Ti(Lt.paint_symbol["text-opacity"]),"text-color":new Ti(Lt.paint_symbol["text-color"],{runtimeType:Ut,getOverride:function(t){return t.textColor},hasOverride:function(t){return!!t.textColor}}),"text-halo-color":new Ti(Lt.paint_symbol["text-halo-color"]),"text-halo-width":new Ti(Lt.paint_symbol["text-halo-width"]),"text-halo-blur":new Ti(Lt.paint_symbol["text-halo-blur"]),"text-translate":new wi(Lt.paint_symbol["text-translate"]),"text-translate-anchor":new wi(Lt.paint_symbol["text-translate-anchor"])}),layout:Sc},Lc=function(t){this.type=t.property.overrides?t.property.overrides.runtimeType:Ft,this.defaultValue=t};Lc.prototype.evaluate=function(t){if(t.formattedSection){var e=this.defaultValue.property.overrides;if(e&&e.hasOverride(t.formattedSection))return e.getOverride(t.formattedSection)}return t.feature&&t.featureState?this.defaultValue.evaluate(t.feature,t.featureState):this.defaultValue.property.specification.default},Lc.prototype.eachChild=function(t){this.defaultValue.isConstant()||t(this.defaultValue.value._styleExpression.expression)},Lc.prototype.outputDefined=function(){return!1},Lc.prototype.serialize=function(){return null},Nn("FormatSectionOverride",Lc,{omit:["defaultValue"]});var Cc=function(t){function e(e){t.call(this,e,Ec)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.recalculate=function(e,r){if(t.prototype.recalculate.call(this,e,r),"auto"===this.layout.get("icon-rotation-alignment")&&("point"!==this.layout.get("symbol-placement")?this.layout._values["icon-rotation-alignment"]="map":this.layout._values["icon-rotation-alignment"]="viewport"),"auto"===this.layout.get("text-rotation-alignment")&&("point"!==this.layout.get("symbol-placement")?this.layout._values["text-rotation-alignment"]="map":this.layout._values["text-rotation-alignment"]="viewport"),"auto"===this.layout.get("text-pitch-alignment")&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")),"auto"===this.layout.get("icon-pitch-alignment")&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment")),"point"===this.layout.get("symbol-placement")){var n=this.layout.get("text-writing-mode");if(n){for(var i=[],a=0,o=n;a",targetMapId:n,sourceMapId:a.mapId})}}},Hc.prototype.receive=function(t){var e=t.data,r=e.id;if(r&&(!e.targetMapId||this.mapId===e.targetMapId))if(""===e.type){delete this.tasks[r];var n=this.cancelCallbacks[r];delete this.cancelCallbacks[r],n&&n()}else k()||e.mustQueue?(this.tasks[r]=e,this.taskQueue.push(r),this.invoker.trigger()):this.processTask(r,e)},Hc.prototype.process=function(){if(this.taskQueue.length){var t=this.taskQueue.shift(),e=this.tasks[t];delete this.tasks[t],this.taskQueue.length&&this.invoker.trigger(),e&&this.processTask(t,e)}},Hc.prototype.processTask=function(t,e){var r=this;if(""===e.type){var n=this.callbacks[t];delete this.callbacks[t],n&&(e.error?n(Hn(e.error)):n(null,Hn(e.data)))}else{var i=!1,a=S(this.globalScope)?void 0:[],o=e.hasCallback?function(e,n){i=!0,delete r.cancelCallbacks[t],r.target.postMessage({id:t,type:"",sourceMapId:r.mapId,error:e?qn(e):null,data:qn(n,a)},a)}:function(t){i=!0},s=null,l=Hn(e.data);if(this.parent[e.type])s=this.parent[e.type](e.sourceMapId,l,o);else if(this.parent.getWorkerSource){var c=e.type.split(".");s=this.parent.getWorkerSource(e.sourceMapId,c[0],l.source)[c[1]](l,o)}else o(new Error("Could not find function "+e.type));!i&&s&&s.cancel&&(this.cancelCallbacks[t]=s.cancel)}},Hc.prototype.remove=function(){this.invoker.remove(),this.target.removeEventListener("message",this.receive,!1)};var Yc=function(t,e){t&&(e?this.setSouthWest(t).setNorthEast(e):4===t.length?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1]))};Yc.prototype.setNorthEast=function(t){return this._ne=t instanceof Wc?new Wc(t.lng,t.lat):Wc.convert(t),this},Yc.prototype.setSouthWest=function(t){return this._sw=t instanceof Wc?new Wc(t.lng,t.lat):Wc.convert(t),this},Yc.prototype.extend=function(t){var e,r,n=this._sw,i=this._ne;if(t instanceof Wc)e=t,r=t;else{if(!(t instanceof Yc)){if(Array.isArray(t)){if(4===t.length||t.every(Array.isArray)){var a=t;return this.extend(Yc.convert(a))}var o=t;return this.extend(Wc.convert(o))}return this}if(e=t._sw,r=t._ne,!e||!r)return this}return n||i?(n.lng=Math.min(e.lng,n.lng),n.lat=Math.min(e.lat,n.lat),i.lng=Math.max(r.lng,i.lng),i.lat=Math.max(r.lat,i.lat)):(this._sw=new Wc(e.lng,e.lat),this._ne=new Wc(r.lng,r.lat)),this},Yc.prototype.getCenter=function(){return new Wc((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},Yc.prototype.getSouthWest=function(){return this._sw},Yc.prototype.getNorthEast=function(){return this._ne},Yc.prototype.getNorthWest=function(){return new Wc(this.getWest(),this.getNorth())},Yc.prototype.getSouthEast=function(){return new Wc(this.getEast(),this.getSouth())},Yc.prototype.getWest=function(){return this._sw.lng},Yc.prototype.getSouth=function(){return this._sw.lat},Yc.prototype.getEast=function(){return this._ne.lng},Yc.prototype.getNorth=function(){return this._ne.lat},Yc.prototype.toArray=function(){return[this._sw.toArray(),this._ne.toArray()]},Yc.prototype.toString=function(){return"LngLatBounds("+this._sw.toString()+", "+this._ne.toString()+")"},Yc.prototype.isEmpty=function(){return!(this._sw&&this._ne)},Yc.prototype.contains=function(t){var e=Wc.convert(t),r=e.lng,n=e.lat,i=this._sw.lat<=n&&n<=this._ne.lat,a=this._sw.lng<=r&&r<=this._ne.lng;return this._sw.lng>this._ne.lng&&(a=this._sw.lng>=r&&r>=this._ne.lng),i&&a},Yc.convert=function(t){return!t||t instanceof Yc?t:new Yc(t)};var Wc=function(t,e){if(isNaN(t)||isNaN(e))throw new Error("Invalid LngLat object: ("+t+", "+e+")");if(this.lng=+t,this.lat=+e,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")};Wc.prototype.wrap=function(){return new Wc(c(this.lng,-180,180),this.lat)},Wc.prototype.toArray=function(){return[this.lng,this.lat]},Wc.prototype.toString=function(){return"LngLat("+this.lng+", "+this.lat+")"},Wc.prototype.distanceTo=function(t){var e=Math.PI/180,r=this.lat*e,n=t.lat*e,i=Math.sin(r)*Math.sin(n)+Math.cos(r)*Math.cos(n)*Math.cos((t.lng-this.lng)*e);return 6371008.8*Math.acos(Math.min(i,1))},Wc.prototype.toBounds=function(t){void 0===t&&(t=0);var e=360*t/40075017,r=e/Math.cos(Math.PI/180*this.lat);return new Yc(new Wc(this.lng-r,this.lat-e),new Wc(this.lng+r,this.lat+e))},Wc.convert=function(t){if(t instanceof Wc)return t;if(Array.isArray(t)&&(2===t.length||3===t.length))return new Wc(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&"object"==typeof t&&null!==t)return new Wc(Number("lng"in t?t.lng:t.lon),Number(t.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")};var Xc=2*Math.PI*6371008.8;function Zc(t){return Xc*Math.cos(t*Math.PI/180)}function Jc(t){return(180+t)/360}function Kc(t){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360)))/360}function Qc(t,e){return t/Zc(e)}function $c(t){var e=180-360*t;return 360/Math.PI*Math.atan(Math.exp(e*Math.PI/180))-90}var tu=function(t,e,r){void 0===r&&(r=0),this.x=+t,this.y=+e,this.z=+r};tu.fromLngLat=function(t,e){void 0===e&&(e=0);var r=Wc.convert(t);return new tu(Jc(r.lng),Kc(r.lat),Qc(e,r.lat))},tu.prototype.toLngLat=function(){return new Wc(360*this.x-180,$c(this.y))},tu.prototype.toAltitude=function(){return t=this.z,e=this.y,t*Zc($c(e));var t,e},tu.prototype.meterInMercatorCoordinateUnits=function(){return 1/Xc*(t=$c(this.y),1/Math.cos(t*Math.PI/180));var t};var eu=function(t,e,r){this.z=t,this.x=e,this.y=r,this.key=iu(0,t,t,e,r)};eu.prototype.equals=function(t){return this.z===t.z&&this.x===t.x&&this.y===t.y},eu.prototype.url=function(t,e){var r,n,i,a,o,s=(r=this.x,n=this.y,i=this.z,a=Gc(256*r,256*(n=Math.pow(2,i)-n-1),i),o=Gc(256*(r+1),256*(n+1),i),a[0]+","+a[1]+","+o[0]+","+o[1]),l=function(t,e,r){for(var n,i="",a=t;a>0;a--)i+=(e&(n=1<this.canonical.z?new nu(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new nu(t,this.wrap,t,this.canonical.x>>e,this.canonical.y>>e)},nu.prototype.calculateScaledKey=function(t,e){var r=this.canonical.z-t;return t>this.canonical.z?iu(this.wrap*+e,t,this.canonical.z,this.canonical.x,this.canonical.y):iu(this.wrap*+e,t,t,this.canonical.x>>r,this.canonical.y>>r)},nu.prototype.isChildOf=function(t){if(t.wrap!==this.wrap)return!1;var e=this.canonical.z-t.canonical.z;return 0===t.overscaledZ||t.overscaledZ>e&&t.canonical.y===this.canonical.y>>e},nu.prototype.children=function(t){if(this.overscaledZ>=t)return[new nu(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];var e=this.canonical.z+1,r=2*this.canonical.x,n=2*this.canonical.y;return[new nu(e,this.wrap,e,r,n),new nu(e,this.wrap,e,r+1,n),new nu(e,this.wrap,e,r,n+1),new nu(e,this.wrap,e,r+1,n+1)]},nu.prototype.isLessThan=function(t){return this.wrapt.wrap)&&(this.overscaledZt.overscaledZ)&&(this.canonical.xt.canonical.x)&&this.canonical.y=this.dim+1||e<-1||e>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return(e+1)*this.stride+(t+1)},au.prototype._unpackMapbox=function(t,e,r){return(256*t*256+256*e+r)/10-1e4},au.prototype._unpackTerrarium=function(t,e,r){return 256*t+e+r/256-32768},au.prototype.getPixels=function(){return new Eo({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))},au.prototype.backfillBorder=function(t,e,r){if(this.dim!==t.dim)throw new Error("dem dimension mismatch");var n=e*this.dim,i=e*this.dim+this.dim,a=r*this.dim,o=r*this.dim+this.dim;switch(e){case-1:n=i-1;break;case 1:i=n+1}switch(r){case-1:a=o-1;break;case 1:o=a+1}for(var s=-e*this.dim,l=-r*this.dim,c=a;c=0&&u[3]>=0&&s.insert(o,u[0],u[1],u[2],u[3])}},uu.prototype.loadVTLayers=function(){return this.vtLayers||(this.vtLayers=new Ls.VectorTile(new al(this.rawTileData)).layers,this.sourceLayerCoder=new ou(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"])),this.vtLayers},uu.prototype.query=function(t,e,r,n){var a=this;this.loadVTLayers();for(var o=t.params||{},s=8192/t.tileSize/t.scale,l=sn(o.filter),c=t.queryGeometry,u=t.queryPadding*s,f=hu(c),h=this.grid.query(f.minX-u,f.minY-u,f.maxX+u,f.maxY+u),p=hu(t.cameraQueryGeometry),d=this.grid3D.query(p.minX-u,p.minY-u,p.maxX+u,p.maxY+u,(function(e,r,n,a){return function(t,e,r,n,a){for(var o=0,s=t;o=l.x&&a>=l.y)return!0}var c=[new i(e,r),new i(e,a),new i(n,a),new i(n,r)];if(t.length>2)for(var u=0,f=c;u=0)return!0;return!1}(a,f)){var h=this.sourceLayerCoder.decode(r),p=this.vtLayers[h].feature(n);if(i.filter(new pi(this.tileID.overscaledZ),p))for(var d=this.getId(p,h),m=0;mn)i=!1;else if(e)if(this.expirationTimeot&&(t.getActor().send("enforceCacheSizeLimit",at),ht=0)},t.clamp=l,t.clearTileCache=function(t){var e=self.caches.delete("mapbox-tiles");t&&e.catch(t).then((function(){return t()}))},t.clipLine=ec,t.clone=function(t){var e=new fo(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e},t.clone$1=x,t.clone$2=function(t){var e=new fo(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e},t.collisionCircleLayout=tl,t.config=F,t.create=function(){var t=new fo(16);return fo!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t},t.create$1=function(){var t=new fo(9);return fo!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t},t.create$2=function(){var t=new fo(4);return fo!=Float32Array&&(t[1]=0,t[2]=0),t[0]=1,t[3]=1,t},t.createCommonjsModule=e,t.createExpression=Wr,t.createLayout=Ii,t.createStyleLayer=function(t){return"custom"===t.type?new Dc(t):new Rc[t.type](t)},t.cross=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],l=r[2];return t[0]=i*l-a*s,t[1]=a*o-n*l,t[2]=n*s-i*o,t},t.deepEqual=function t(e,r){if(Array.isArray(e)){if(!Array.isArray(r)||e.length!==r.length)return!1;for(var n=0;n0&&(a=1/Math.sqrt(a)),t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a,t},t.number=He,t.offscreenCanvasSupported=pt,t.ortho=function(t,e,r,n,i,a,o){var s=1/(e-r),l=1/(n-i),c=1/(a-o);return t[0]=-2*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*l,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*c,t[11]=0,t[12]=(e+r)*s,t[13]=(i+n)*l,t[14]=(o+a)*c,t[15]=1,t},t.parseGlyphPBF=function(t){return new al(t).readFields(Tl,[])},t.pbf=al,t.performSymbolLayout=function(t,e,r,n,i,a,o){t.createArrays();var s=512*t.overscaling;t.tilePixelRatio=8192/s,t.compareText={},t.iconsNeedLinear=!1;var l=t.layers[0].layout,c=t.layers[0]._unevaluatedLayout._values,u={};if("composite"===t.textSizeData.kind){var f=t.textSizeData,h=f.minZoom,p=f.maxZoom;u.compositeTextSizes=[c["text-size"].possiblyEvaluate(new pi(h),o),c["text-size"].possiblyEvaluate(new pi(p),o)]}if("composite"===t.iconSizeData.kind){var d=t.iconSizeData,m=d.minZoom,g=d.maxZoom;u.compositeIconSizes=[c["icon-size"].possiblyEvaluate(new pi(m),o),c["icon-size"].possiblyEvaluate(new pi(g),o)]}u.layoutTextSize=c["text-size"].possiblyEvaluate(new pi(t.zoom+1),o),u.layoutIconSize=c["icon-size"].possiblyEvaluate(new pi(t.zoom+1),o),u.textMaxSize=c["text-size"].possiblyEvaluate(new pi(18));for(var v=24*l.get("text-line-height"),y="map"===l.get("text-rotation-alignment")&&"point"!==l.get("symbol-placement"),x=l.get("text-keep-upright"),b=l.get("text-size"),w=function(){var a=k[T],s=l.get("text-font").evaluate(a,{},o).join(","),c=b.evaluate(a,{},o),f=u.layoutTextSize.evaluate(a,{},o),h=u.layoutIconSize.evaluate(a,{},o),p={horizontal:{},vertical:void 0},d=a.text,m=[0,0];if(d){var g=d.toString(),w=24*l.get("text-letter-spacing").evaluate(a,{},o),M=function(t){for(var e=0,r=t;e=8192||f.y<0||f.y>=8192||function(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,m,g,v,y,x,b,w,T,k,M){var A,S,E,L,C,P=t.addToLineVertexArray(e,r),I=0,O=0,z=0,D=0,R=-1,F=-1,B={},N=ya(""),j=0,U=0;void 0===s._unevaluatedLayout.getValue("text-radial-offset")?(A=s.layout.get("text-offset").evaluate(b,{},k).map((function(t){return 24*t})),j=A[0],U=A[1]):(j=24*s.layout.get("text-radial-offset").evaluate(b,{},k),U=pc);if(t.allowVerticalPlacement&&n.vertical){var V=s.layout.get("text-rotate").evaluate(b,{},k)+90,q=n.vertical;L=new sc(l,e,c,u,f,q,h,p,d,V),o&&(C=new sc(l,e,c,u,f,o,g,v,d,V))}if(i){var H=s.layout.get("icon-rotate").evaluate(b,{}),G="none"!==s.layout.get("icon-text-fit"),Y=rc(i,H,T,G),W=o?rc(o,H,T,G):void 0;E=new sc(l,e,c,u,f,i,g,v,!1,H),I=4*Y.length;var X=t.iconSizeData,Z=null;"source"===X.kind?(Z=[128*s.layout.get("icon-size").evaluate(b,{})])[0]>32640&&_(t.layerIds[0]+': Value for "icon-size" is >= 255. Reduce your "icon-size".'):"composite"===X.kind&&((Z=[128*w.compositeIconSizes[0].evaluate(b,{},k),128*w.compositeIconSizes[1].evaluate(b,{},k)])[0]>32640||Z[1]>32640)&&_(t.layerIds[0]+': Value for "icon-size" is >= 255. Reduce your "icon-size".'),t.addSymbols(t.icon,Y,Z,x,y,b,!1,e,P.lineStartIndex,P.lineLength,-1,k),R=t.icon.placedSymbolArray.length-1,W&&(O=4*W.length,t.addSymbols(t.icon,W,Z,x,y,b,Cl.vertical,e,P.lineStartIndex,P.lineLength,-1,k),F=t.icon.placedSymbolArray.length-1)}for(var J in n.horizontal){var K=n.horizontal[J];if(!S){N=ya(K.text);var Q=s.layout.get("text-rotate").evaluate(b,{},k);S=new sc(l,e,c,u,f,K,h,p,d,Q)}var $=1===K.positionedLines.length;if(z+=gc(t,e,K,a,s,d,b,m,P,n.vertical?Cl.horizontal:Cl.horizontalOnly,$?Object.keys(n.horizontal):[J],B,R,w,k),$)break}n.vertical&&(D+=gc(t,e,n.vertical,a,s,d,b,m,P,Cl.vertical,["vertical"],B,F,w,k));var tt=S?S.boxStartIndex:t.collisionBoxArray.length,et=S?S.boxEndIndex:t.collisionBoxArray.length,rt=L?L.boxStartIndex:t.collisionBoxArray.length,nt=L?L.boxEndIndex:t.collisionBoxArray.length,it=E?E.boxStartIndex:t.collisionBoxArray.length,at=E?E.boxEndIndex:t.collisionBoxArray.length,ot=C?C.boxStartIndex:t.collisionBoxArray.length,st=C?C.boxEndIndex:t.collisionBoxArray.length,lt=-1,ct=function(t,e){return t&&t.circleDiameter?Math.max(t.circleDiameter,e):e};lt=ct(S,lt),lt=ct(L,lt),lt=ct(E,lt);var ut=(lt=ct(C,lt))>-1?1:0;ut&&(lt*=M/24);t.glyphOffsetArray.length>=Ac.MAX_GLYPHS&&_("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907");void 0!==b.sortKey&&t.addToSortKeyRanges(t.symbolInstances.length,b.sortKey);t.symbolInstances.emplaceBack(e.x,e.y,B.right>=0?B.right:-1,B.center>=0?B.center:-1,B.left>=0?B.left:-1,B.vertical||-1,R,F,N,tt,et,rt,nt,it,at,ot,st,c,z,D,I,O,ut,0,h,j,U,lt)}(t,f,s,r,n,i,h,t.layers[0],t.collisionBoxArray,e.index,e.sourceLayerIndex,t.index,v,w,M,l,x,T,A,d,e,a,c,u,o)};if("line"===S)for(var P=0,I=ec(e.geometry,0,0,8192,8192);P1){var V=$l(U,k,r.vertical||m,n,24,y);V&&C(U,V)}}else if("Polygon"===e.type)for(var q=0,H=hs(e.geometry,0);q=E.maxzoom))if("none"!==E.visibility)o(S,this.zoom,n),(m[E.id]=E.createBucket({index:u.bucketLayerIDs.length,layers:S,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:b,sourceID:this.source})).populate(_,g,this.tileID.canonical),u.bucketLayerIDs.push(S.map((function(t){return t.id})))}}}var L=t.mapObject(g.glyphDependencies,(function(t){return Object.keys(t).map(Number)}));Object.keys(L).length?a.send("getGlyphs",{uid:this.uid,stacks:L},(function(t,e){f||(f=t,h=e,I.call(l))})):h={};var C=Object.keys(g.iconDependencies);C.length?a.send("getImages",{icons:C,source:this.source,tileID:this.tileID,type:"icons"},(function(t,e){f||(f=t,p=e,I.call(l))})):p={};var P=Object.keys(g.patternDependencies);function I(){if(f)return s(f);if(h&&p&&d){var e=new i(h),r=new t.ImageAtlas(p,d);for(var a in m){var l=m[a];l instanceof t.SymbolBucket?(o(l.layers,this.zoom,n),t.performSymbolLayout(l,h,e.positions,p,r.iconPositions,this.showCollisionBoxes,this.tileID.canonical)):l.hasPattern&&(l instanceof t.LineBucket||l instanceof t.FillBucket||l instanceof t.FillExtrusionBucket)&&(o(l.layers,this.zoom,n),l.addFeatures(g,this.tileID.canonical,r.patternPositions))}this.status="done",s(null,{buckets:t.values(m).filter((function(t){return!t.isEmpty()})),featureIndex:u,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:e.image,imageAtlas:r,glyphMap:this.returnDependencies?h:null,iconMap:this.returnDependencies?p:null,glyphPositions:this.returnDependencies?e.positions:null})}}P.length?a.send("getImages",{icons:P,source:this.source,tileID:this.tileID,type:"patterns"},(function(t,e){f||(f=t,d=e,I.call(l))})):d={},I.call(this)};var l=function(t,e,r,n){this.actor=t,this.layerIndex=e,this.availableImages=r,this.loadVectorData=n||s,this.loading={},this.loaded={}};l.prototype.loadTile=function(e,r){var n=this,i=e.uid;this.loading||(this.loading={});var o=!!(e&&e.request&&e.request.collectResourceTiming)&&new t.RequestPerformance(e.request),s=this.loading[i]=new a(e);s.abort=this.loadVectorData(e,(function(e,a){if(delete n.loading[i],e||!a)return s.status="done",n.loaded[i]=s,r(e);var l=a.rawData,c={};a.expires&&(c.expires=a.expires),a.cacheControl&&(c.cacheControl=a.cacheControl);var u={};if(o){var f=o.finish();f&&(u.resourceTiming=JSON.parse(JSON.stringify(f)))}s.vectorTile=a.vectorTile,s.parse(a.vectorTile,n.layerIndex,n.availableImages,n.actor,(function(e,n){if(e||!n)return r(e);r(null,t.extend({rawTileData:l.slice(0)},n,c,u))})),n.loaded=n.loaded||{},n.loaded[i]=s}))},l.prototype.reloadTile=function(t,e){var r=this,n=this.loaded,i=t.uid,a=this;if(n&&n[i]){var o=n[i];o.showCollisionBoxes=t.showCollisionBoxes;var s=function(t,n){var i=o.reloadCallback;i&&(delete o.reloadCallback,o.parse(o.vectorTile,a.layerIndex,r.availableImages,a.actor,i)),e(t,n)};"parsing"===o.status?o.reloadCallback=s:"done"===o.status&&(o.vectorTile?o.parse(o.vectorTile,this.layerIndex,this.availableImages,this.actor,s):s())}},l.prototype.abortTile=function(t,e){var r=this.loading,n=t.uid;r&&r[n]&&r[n].abort&&(r[n].abort(),delete r[n]),e()},l.prototype.removeTile=function(t,e){var r=this.loaded,n=t.uid;r&&r[n]&&delete r[n],e()};var c=t.window.ImageBitmap,u=function(){this.loaded={}};u.prototype.loadTile=function(e,r){var n=e.uid,i=e.encoding,a=e.rawImageData,o=c&&a instanceof c?this.getImageData(a):a,s=new t.DEMData(n,o,i);this.loaded=this.loaded||{},this.loaded[n]=s,r(null,s)},u.prototype.getImageData=function(e){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(e.width,e.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d")),this.offscreenCanvas.width=e.width,this.offscreenCanvas.height=e.height,this.offscreenCanvasContext.drawImage(e,0,0,e.width,e.height);var r=this.offscreenCanvasContext.getImageData(-1,-1,e.width+2,e.height+2);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),new t.RGBAImage({width:r.width,height:r.height},r.data)},u.prototype.removeTile=function(t){var e=this.loaded,r=t.uid;e&&e[r]&&delete e[r]};var f=function t(e,r){var n,i=e&&e.type;if("FeatureCollection"===i)for(n=0;n=0!=!!e&&t.reverse()}var d=t.vectorTile.VectorTileFeature.prototype.toGeoJSON,m=function(e){this._feature=e,this.extent=t.EXTENT,this.type=e.type,this.properties=e.tags,"id"in e&&!isNaN(e.id)&&(this.id=parseInt(e.id,10))};m.prototype.loadGeometry=function(){if(1===this._feature.type){for(var e=[],r=0,n=this._feature.geometry;r>31}function P(t,e){for(var r=t.loadGeometry(),n=t.type,i=0,a=0,o=r.length,s=0;s>1;!function t(e,r,n,i,a,o){for(;a>i;){if(a-i>600){var s=a-i+1,l=n-i+1,c=Math.log(s),u=.5*Math.exp(2*c/3),f=.5*Math.sqrt(c*u*(s-u)/s)*(l-s/2<0?-1:1),h=Math.max(i,Math.floor(n-l*u/s+f)),p=Math.min(a,Math.floor(n+(s-l)*u/s+f));t(e,r,n,h,p,o)}var d=r[2*n+o],m=i,g=a;for(z(e,r,i,n),r[2*a+o]>d&&z(e,r,i,a);md;)g--}r[2*i+o]===d?z(e,r,i,g):(g++,z(e,r,g,a)),g<=n&&(i=g+1),n<=g&&(a=g-1)}}(t,e,o,n,i,a%2),O(t,e,r,n,o-1,a+1),O(t,e,r,o+1,i,a+1)}}function z(t,e,r,n){D(t,r,n),D(e,2*r,2*n),D(e,2*r+1,2*n+1)}function D(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function R(t,e,r,n){var i=t-r,a=e-n;return i*i+a*a}_.fromVectorTileJs=w,_.fromGeojsonVt=T,_.GeoJSONWrapper=k;var F=function(t){return t[0]},B=function(t){return t[1]},N=function(t,e,r,n,i){void 0===e&&(e=F),void 0===r&&(r=B),void 0===n&&(n=64),void 0===i&&(i=Float64Array),this.nodeSize=n,this.points=t;for(var a=t.length<65536?Uint16Array:Uint32Array,o=this.ids=new a(t.length),s=this.coords=new i(2*t.length),l=0;l=r&&s<=i&&l>=n&&l<=a&&u.push(t[d]);else{var m=Math.floor((p+h)/2);s=e[2*m],l=e[2*m+1],s>=r&&s<=i&&l>=n&&l<=a&&u.push(t[m]);var g=(f+1)%2;(0===f?r<=s:n<=l)&&(c.push(p),c.push(m-1),c.push(g)),(0===f?i>=s:a>=l)&&(c.push(m+1),c.push(h),c.push(g))}}return u}(this.ids,this.coords,t,e,r,n,this.nodeSize)},N.prototype.within=function(t,e,r){return function(t,e,r,n,i,a){for(var o=[0,t.length-1,0],s=[],l=i*i;o.length;){var c=o.pop(),u=o.pop(),f=o.pop();if(u-f<=a)for(var h=f;h<=u;h++)R(e[2*h],e[2*h+1],r,n)<=l&&s.push(t[h]);else{var p=Math.floor((f+u)/2),d=e[2*p],m=e[2*p+1];R(d,m,r,n)<=l&&s.push(t[p]);var g=(c+1)%2;(0===c?r-i<=d:n-i<=m)&&(o.push(f),o.push(p-1),o.push(g)),(0===c?r+i>=d:n+i>=m)&&(o.push(p+1),o.push(u),o.push(g))}}return s}(this.ids,this.coords,t,e,r,this.nodeSize)};var j={minZoom:0,maxZoom:16,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:function(t){return t}},U=function(t){this.options=X(Object.create(j),t),this.trees=new Array(this.options.maxZoom+1)};function V(t,e,r,n,i){return{x:t,y:e,zoom:1/0,id:r,parentId:-1,numPoints:n,properties:i}}function q(t,e){var r=t.geometry.coordinates,n=r[0],i=r[1];return{x:Y(n),y:W(i),zoom:1/0,index:e,parentId:-1}}function H(t){return{type:"Feature",id:t.id,properties:G(t),geometry:{type:"Point",coordinates:[(n=t.x,360*(n-.5)),(e=t.y,r=(180-360*e)*Math.PI/180,360*Math.atan(Math.exp(r))/Math.PI-90)]}};var e,r,n}function G(t){var e=t.numPoints,r=e>=1e4?Math.round(e/1e3)+"k":e>=1e3?Math.round(e/100)/10+"k":e;return X(X({},t.properties),{cluster:!0,cluster_id:t.id,point_count:e,point_count_abbreviated:r})}function Y(t){return t/360+.5}function W(t){var e=Math.sin(t*Math.PI/180),r=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return r<0?0:r>1?1:r}function X(t,e){for(var r in e)t[r]=e[r];return t}function Z(t){return t.x}function J(t){return t.y}function K(t,e,r,n,i,a){var o=i-r,s=a-n;if(0!==o||0!==s){var l=((t-r)*o+(e-n)*s)/(o*o+s*s);l>1?(r=i,n=a):l>0&&(r+=o*l,n+=s*l)}return(o=t-r)*o+(s=e-n)*s}function Q(t,e,r,n){var i={id:void 0===t?null:t,type:e,geometry:r,tags:n,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(t){var e=t.geometry,r=t.type;if("Point"===r||"MultiPoint"===r||"LineString"===r)$(t,e);else if("Polygon"===r||"MultiLineString"===r)for(var n=0;n0&&(o+=n?(i*c-l*a)/2:Math.sqrt(Math.pow(l-i,2)+Math.pow(c-a,2))),i=l,a=c}var u=e.length-3;e[2]=1,function t(e,r,n,i){for(var a,o=i,s=n-r>>1,l=n-r,c=e[r],u=e[r+1],f=e[n],h=e[n+1],p=r+3;po)a=p,o=d;else if(d===o){var m=Math.abs(p-s);mi&&(a-r>3&&t(e,r,a,i),e[a+2]=o,n-a>3&&t(e,a,n,i))}(e,0,u,r),e[u+2]=1,e.size=Math.abs(o),e.start=0,e.end=e.size}function nt(t,e,r,n){for(var i=0;i1?1:r}function ot(t,e,r,n,i,a,o,s){if(n/=e,a>=(r/=e)&&o=n)return null;for(var l=[],c=0;c=r&&d=n)){var m=[];if("Point"===h||"MultiPoint"===h)st(f,m,r,n,i);else if("LineString"===h)lt(f,m,r,n,i,!1,s.lineMetrics);else if("MultiLineString"===h)ut(f,m,r,n,i,!1);else if("Polygon"===h)ut(f,m,r,n,i,!0);else if("MultiPolygon"===h)for(var g=0;g=r&&o<=n&&(e.push(t[a]),e.push(t[a+1]),e.push(t[a+2]))}}function lt(t,e,r,n,i,a,o){for(var s,l,c=ct(t),u=0===i?ht:pt,f=t.start,h=0;hr&&(l=u(c,p,d,g,v,r),o&&(c.start=f+s*l)):y>n?x=r&&(l=u(c,p,d,g,v,r),b=!0),x>n&&y<=n&&(l=u(c,p,d,g,v,n),b=!0),!a&&b&&(o&&(c.end=f+s*l),e.push(c),c=ct(t)),o&&(f+=s)}var _=t.length-3;p=t[_],d=t[_+1],m=t[_+2],(y=0===i?p:d)>=r&&y<=n&&ft(c,p,d,m),_=c.length-3,a&&_>=3&&(c[_]!==c[0]||c[_+1]!==c[1])&&ft(c,c[0],c[1],c[2]),c.length&&e.push(c)}function ct(t){var e=[];return e.size=t.size,e.start=t.start,e.end=t.end,e}function ut(t,e,r,n,i,a){for(var o=0;oo.maxX&&(o.maxX=u),f>o.maxY&&(o.maxY=f)}return o}function xt(t,e,r,n){var i=e.geometry,a=e.type,o=[];if("Point"===a||"MultiPoint"===a)for(var s=0;s0&&e.size<(i?o:n))r.numPoints+=e.length/3;else{for(var s=[],l=0;lo)&&(r.numSimplified++,s.push(e[l]),s.push(e[l+1])),r.numPoints++;i&&function(t,e){for(var r=0,n=0,i=t.length,a=i-2;n0===e)for(n=0,i=t.length;n24)throw new Error("maxZoom should be in the 0-24 range");if(e.promoteId&&e.generateId)throw new Error("promoteId and generateId cannot be used together.");var n=function(t,e){var r=[];if("FeatureCollection"===t.type)for(var n=0;n=n;c--){var u=+Date.now();s=this._cluster(s,c),this.trees[c]=new N(s,Z,J,a,Float32Array),r&&console.log("z%d: %d clusters in %dms",c,s.length,+Date.now()-u)}return r&&console.timeEnd("total time"),this},U.prototype.getClusters=function(t,e){var r=((t[0]+180)%360+360)%360-180,n=Math.max(-90,Math.min(90,t[1])),i=180===t[2]?180:((t[2]+180)%360+360)%360-180,a=Math.max(-90,Math.min(90,t[3]));if(t[2]-t[0]>=360)r=-180,i=180;else if(r>i){var o=this.getClusters([r,n,180,a],e),s=this.getClusters([-180,n,i,a],e);return o.concat(s)}for(var l=this.trees[this._limitZoom(e)],c=[],u=0,f=l.range(Y(r),W(a),Y(i),W(n));u1?this._map(c,!0):null,g=(l<<5)+(e+1)+this.points.length,v=0,y=f;v>5},U.prototype._getOriginZoom=function(t){return(t-this.points.length)%32},U.prototype._map=function(t,e){if(t.numPoints)return e?X({},t.properties):t.properties;var r=this.points[t.index].properties,n=this.options.map(r);return e&&n===r?X({},n):n},_t.prototype.options={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,debug:0},_t.prototype.splitTile=function(t,e,r,n,i,a,o){for(var s=[t,e,r,n],l=this.options,c=l.debug;s.length;){n=s.pop(),r=s.pop(),e=s.pop(),t=s.pop();var u=1<1&&console.time("creation"),h=this.tiles[f]=yt(t,e,r,n,l),this.tileCoords.push({z:e,x:r,y:n}),c)){c>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",e,r,n,h.numFeatures,h.numPoints,h.numSimplified),console.timeEnd("creation"));var p="z"+e;this.stats[p]=(this.stats[p]||0)+1,this.total++}if(h.source=t,i){if(e===l.maxZoom||e===i)continue;var d=1<1&&console.time("clipping");var m,g,v,y,x,b,_=.5*l.buffer/l.extent,w=.5-_,T=.5+_,k=1+_;m=g=v=y=null,x=ot(t,u,r-_,r+T,0,h.minX,h.maxX,l),b=ot(t,u,r+w,r+k,0,h.minX,h.maxX,l),t=null,x&&(m=ot(x,u,n-_,n+T,1,h.minY,h.maxY,l),g=ot(x,u,n+w,n+k,1,h.minY,h.maxY,l),x=null),b&&(v=ot(b,u,n-_,n+T,1,h.minY,h.maxY,l),y=ot(b,u,n+w,n+k,1,h.minY,h.maxY,l),b=null),c>1&&console.timeEnd("clipping"),s.push(m||[],e+1,2*r,2*n),s.push(g||[],e+1,2*r,2*n+1),s.push(v||[],e+1,2*r+1,2*n),s.push(y||[],e+1,2*r+1,2*n+1)}}},_t.prototype.getTile=function(t,e,r){var n=this.options,i=n.extent,a=n.debug;if(t<0||t>24)return null;var o=1<1&&console.log("drilling down to z%d-%d-%d",t,e,r);for(var l,c=t,u=e,f=r;!l&&c>0;)c--,u=Math.floor(u/2),f=Math.floor(f/2),l=this.tiles[wt(c,u,f)];return l&&l.source?(a>1&&console.log("found parent tile z%d-%d-%d",c,u,f),a>1&&console.time("drilling down"),this.splitTile(l.source,c,u,f,t,e,r),a>1&&console.timeEnd("drilling down"),this.tiles[s]?gt(this.tiles[s],i):null):null};var kt=function(e){function r(t,r,n,i){e.call(this,t,r,n,Tt),i&&(this.loadGeoJSON=i)}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.loadData=function(t,e){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),this._pendingCallback=e,this._pendingLoadDataParams=t,this._state&&"Idle"!==this._state?this._state="NeedsLoadData":(this._state="Coalescing",this._loadData())},r.prototype._loadData=function(){var e=this;if(this._pendingCallback&&this._pendingLoadDataParams){var r=this._pendingCallback,n=this._pendingLoadDataParams;delete this._pendingCallback,delete this._pendingLoadDataParams;var i=!!(n&&n.request&&n.request.collectResourceTiming)&&new t.RequestPerformance(n.request);this.loadGeoJSON(n,(function(a,o){if(a||!o)return r(a);if("object"!=typeof o)return r(new Error("Input data given to '"+n.source+"' is not a valid GeoJSON object."));f(o,!0);try{e._geoJSONIndex=n.cluster?new U(function(e){var r=e.superclusterOptions,n=e.clusterProperties;if(!n||!r)return r;for(var i={},a={},o={accumulated:null,zoom:0},s={properties:null},l=Object.keys(n),c=0,u=l;c=0?0:e.button},r.remove=function(t){t.parentNode&&t.parentNode.removeChild(t)};var h=function(e){function r(){e.call(this),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new t.RGBAImage({width:1,height:1}),this.dirty=!0}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.isLoaded=function(){return this.loaded},r.prototype.setLoaded=function(t){if(this.loaded!==t&&(this.loaded=t,t)){for(var e=0,r=this.requestors;e=0?1.2:1))}function v(t,e,r,n,i,a,o){for(var s=0;s65535)e(new Error("glyphs > 65535 not supported"));else if(a.ranges[s])e(null,{stack:r,id:i,glyph:o});else{var l=a.requests[s];l||(l=a.requests[s]=[],x.loadGlyphRange(r,s,n.url,n.requestManager,(function(t,e){if(e){for(var r in e)n._doesCharSupportLocalGlyph(+r)||(a.glyphs[+r]=e[+r]);a.ranges[s]=!0}for(var i=0,o=l;i1&&(l=t[++s]);var u=Math.abs(c-l.left),f=Math.abs(c-l.right),h=Math.min(u,f),p=void 0,d=i/r*(n+1);if(l.isDash){var m=n-Math.abs(d);p=Math.sqrt(h*h+m*m)}else p=n-Math.sqrt(h*h+d*d);this.data[o+c]=Math.max(0,Math.min(255,p+128))}},T.prototype.addRegularDash=function(t){for(var e=t.length-1;e>=0;--e){var r=t[e],n=t[e+1];r.zeroLength?t.splice(e,1):n&&n.isDash===r.isDash&&(n.left=r.left,t.splice(e,1))}var i=t[0],a=t[t.length-1];i.isDash===a.isDash&&(i.left=a.left-this.width,a.right=i.right+this.width);for(var o=this.width*this.nextRow,s=0,l=t[s],c=0;c1&&(l=t[++s]);var u=Math.abs(c-l.left),f=Math.abs(c-l.right),h=Math.min(u,f),p=l.isDash?h:-h;this.data[o+c]=Math.max(0,Math.min(255,p+128))}},T.prototype.addDash=function(e,r){var n=r?7:0,i=2*n+1;if(this.nextRow+i>this.height)return t.warnOnce("LineAtlas out of space"),null;for(var a=0,o=0;o=n&&e.x=i&&e.y0&&(l[new t.OverscaledTileID(e.overscaledZ,a,r.z,i,r.y-1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,e.wrap,r.z,r.x,r.y-1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,s,r.z,o,r.y-1).key]={backfilled:!1}),r.y+10&&(n.resourceTiming=e._resourceTiming,e._resourceTiming=[]),e.fire(new t.Event("data",n))}}))},r.prototype.onAdd=function(t){this.map=t,this.load()},r.prototype.setData=function(e){var r=this;return this._data=e,this.fire(new t.Event("dataloading",{dataType:"source"})),this._updateWorkerData((function(e){if(e)r.fire(new t.ErrorEvent(e));else{var n={dataType:"source",sourceDataType:"content"};r._collectResourceTiming&&r._resourceTiming&&r._resourceTiming.length>0&&(n.resourceTiming=r._resourceTiming,r._resourceTiming=[]),r.fire(new t.Event("data",n))}})),this},r.prototype.getClusterExpansionZoom=function(t,e){return this.actor.send("geojson.getClusterExpansionZoom",{clusterId:t,source:this.id},e),this},r.prototype.getClusterChildren=function(t,e){return this.actor.send("geojson.getClusterChildren",{clusterId:t,source:this.id},e),this},r.prototype.getClusterLeaves=function(t,e,r,n){return this.actor.send("geojson.getClusterLeaves",{source:this.id,clusterId:t,limit:e,offset:r},n),this},r.prototype._updateWorkerData=function(e){var r=this;this._loaded=!1;var n=t.extend({},this.workerOptions),i=this._data;"string"==typeof i?(n.request=this.map._requestManager.transformRequest(t.browser.resolveURL(i),t.ResourceType.Source),n.request.collectResourceTiming=this._collectResourceTiming):n.data=JSON.stringify(i),this.actor.send(this.type+".loadData",n,(function(t,i){r._removed||i&&i.abandoned||(r._loaded=!0,i&&i.resourceTiming&&i.resourceTiming[r.id]&&(r._resourceTiming=i.resourceTiming[r.id].slice(0)),r.actor.send(r.type+".coalesce",{source:n.source},null),e(t))}))},r.prototype.loaded=function(){return this._loaded},r.prototype.loadTile=function(e,r){var n=this,i=e.actor?"reloadTile":"loadTile";e.actor=this.actor;var a={type:this.type,uid:e.uid,tileID:e.tileID,zoom:e.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:t.browser.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};e.request=this.actor.send(i,a,(function(t,a){return delete e.request,e.unloadVectorData(),e.aborted?r(null):t?r(t):(e.loadVectorData(a,n.map.painter,"reloadTile"===i),r(null))}))},r.prototype.abortTile=function(t){t.request&&(t.request.cancel(),delete t.request),t.aborted=!0},r.prototype.unloadTile=function(t){t.unloadVectorData(),this.actor.send("removeTile",{uid:t.uid,type:this.type,source:this.id})},r.prototype.onRemove=function(){this._removed=!0,this.actor.send("removeSource",{type:this.type,source:this.id})},r.prototype.serialize=function(){return t.extend({},this._options,{type:this.type,data:this._data})},r.prototype.hasTransition=function(){return!1},r}(t.Evented),P=t.createLayout([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]),I=function(e){function r(t,r,n,i){e.call(this),this.id=t,this.dispatcher=n,this.coordinates=r.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(i),this.options=r}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.load=function(e,r){var n=this;this._loaded=!1,this.fire(new t.Event("dataloading",{dataType:"source"})),this.url=this.options.url,t.getImage(this.map._requestManager.transformRequest(this.url,t.ResourceType.Image),(function(i,a){n._loaded=!0,i?n.fire(new t.ErrorEvent(i)):a&&(n.image=a,e&&(n.coordinates=e),r&&r(),n._finishLoading())}))},r.prototype.loaded=function(){return this._loaded},r.prototype.updateImage=function(t){var e=this;return this.image&&t.url?(this.options.url=t.url,this.load(t.coordinates,(function(){e.texture=null})),this):this},r.prototype._finishLoading=function(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new t.Event("data",{dataType:"source",sourceDataType:"metadata"})))},r.prototype.onAdd=function(t){this.map=t,this.load()},r.prototype.setCoordinates=function(e){var r=this;this.coordinates=e;var n=e.map(t.MercatorCoordinate.fromLngLat);this.tileID=function(e){for(var r=1/0,n=1/0,i=-1/0,a=-1/0,o=0,s=e;or.end(0)?this.fire(new t.ErrorEvent(new t.ValidationError("sources."+this.id,null,"Playback for this video can be set only between the "+r.start(0)+" and "+r.end(0)+"-second mark."))):this.video.currentTime=e}},r.prototype.getVideo=function(){return this.video},r.prototype.onAdd=function(t){this.map||(this.map=t,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))},r.prototype.prepare=function(){if(!(0===Object.keys(this.tiles).length||this.video.readyState<2)){var e=this.map.painter.context,r=e.gl;for(var n in this.boundsBuffer||(this.boundsBuffer=e.createVertexBuffer(this._boundsArray,P.members)),this.boundsSegments||(this.boundsSegments=t.SegmentVector.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE),r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,this.video)):(this.texture=new t.Texture(e,this.video,r.RGBA),this.texture.bind(r.LINEAR,r.CLAMP_TO_EDGE)),this.tiles){var i=this.tiles[n];"loaded"!==i.state&&(i.state="loaded",i.texture=this.texture)}}},r.prototype.serialize=function(){return{type:"video",urls:this.urls,coordinates:this.coordinates}},r.prototype.hasTransition=function(){return this.video&&!this.video.paused},r}(I),z=function(e){function r(r,n,i,a){e.call(this,r,n,i,a),n.coordinates?Array.isArray(n.coordinates)&&4===n.coordinates.length&&!n.coordinates.some((function(t){return!Array.isArray(t)||2!==t.length||t.some((function(t){return"number"!=typeof t}))}))||this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'missing required property "coordinates"'))),n.animate&&"boolean"!=typeof n.animate&&this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'optional "animate" property must be a boolean value'))),n.canvas?"string"==typeof n.canvas||n.canvas instanceof t.window.HTMLCanvasElement||this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new t.ErrorEvent(new t.ValidationError("sources."+r,null,'missing required property "canvas"'))),this.options=n,this.animate=void 0===n.animate||n.animate}return e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r,r.prototype.load=function(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof t.window.HTMLCanvasElement?this.options.canvas:t.window.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new t.ErrorEvent(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())},r.prototype.getCanvas=function(){return this.canvas},r.prototype.onAdd=function(t){this.map=t,this.load(),this.canvas&&this.animate&&this.play()},r.prototype.onRemove=function(){this.pause()},r.prototype.prepare=function(){var e=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,e=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,e=!0),!this._hasInvalidDimensions()&&0!==Object.keys(this.tiles).length){var r=this.map.painter.context,n=r.gl;for(var i in this.boundsBuffer||(this.boundsBuffer=r.createVertexBuffer(this._boundsArray,P.members)),this.boundsSegments||(this.boundsSegments=t.SegmentVector.simpleSegment(0,0,4,2)),this.texture?(e||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new t.Texture(r,this.canvas,n.RGBA,{premultiply:!0}),this.tiles){var a=this.tiles[i];"loaded"!==a.state&&(a.state="loaded",a.texture=this.texture)}}},r.prototype.serialize=function(){return{type:"canvas",coordinates:this.coordinates}},r.prototype.hasTransition=function(){return this._playing},r.prototype._hasInvalidDimensions=function(){for(var t=0,e=[this.canvas.width,this.canvas.height];tthis.max){var o=this._getAndRemoveByKey(this.order[0]);o&&this.onRemove(o)}return this},N.prototype.has=function(t){return t.wrapped().key in this.data},N.prototype.getAndRemove=function(t){return this.has(t)?this._getAndRemoveByKey(t.wrapped().key):null},N.prototype._getAndRemoveByKey=function(t){var e=this.data[t].shift();return e.timeout&&clearTimeout(e.timeout),0===this.data[t].length&&delete this.data[t],this.order.splice(this.order.indexOf(t),1),e.value},N.prototype.getByKey=function(t){var e=this.data[t];return e?e[0].value:null},N.prototype.get=function(t){return this.has(t)?this.data[t.wrapped().key][0].value:null},N.prototype.remove=function(t,e){if(!this.has(t))return this;var r=t.wrapped().key,n=void 0===e?0:this.data[r].indexOf(e),i=this.data[r][n];return this.data[r].splice(n,1),i.timeout&&clearTimeout(i.timeout),0===this.data[r].length&&delete this.data[r],this.onRemove(i.value),this.order.splice(this.order.indexOf(r),1),this},N.prototype.setMaxSize=function(t){for(this.max=t;this.order.length>this.max;){var e=this._getAndRemoveByKey(this.order[0]);e&&this.onRemove(e)}return this},N.prototype.filter=function(t){var e=[];for(var r in this.data)for(var n=0,i=this.data[r];n1||(Math.abs(r)>1&&(1===Math.abs(r+i)?r+=i:1===Math.abs(r-i)&&(r-=i)),e.dem&&t.dem&&(t.dem.backfillBorder(e.dem,r,n),t.neighboringTiles&&t.neighboringTiles[a]&&(t.neighboringTiles[a].backfilled=!0)))}},r.prototype.getTile=function(t){return this.getTileByID(t.key)},r.prototype.getTileByID=function(t){return this._tiles[t]},r.prototype._retainLoadedChildren=function(t,e,r,n){for(var i in this._tiles){var a=this._tiles[i];if(!(n[i]||!a.hasData()||a.tileID.overscaledZ<=e||a.tileID.overscaledZ>r)){for(var o=a.tileID;a&&a.tileID.overscaledZ>e+1;){var s=a.tileID.scaledTo(a.tileID.overscaledZ-1);(a=this._tiles[s.key])&&a.hasData()&&(o=s)}for(var l=o;l.overscaledZ>e;)if(t[(l=l.scaledTo(l.overscaledZ-1)).key]){n[o.key]=o;break}}}},r.prototype.findLoadedParent=function(t,e){if(t.key in this._loadedParentTiles){var r=this._loadedParentTiles[t.key];return r&&r.tileID.overscaledZ>=e?r:null}for(var n=t.overscaledZ-1;n>=e;n--){var i=t.scaledTo(n),a=this._getLoadedTile(i);if(a)return a}},r.prototype._getLoadedTile=function(t){var e=this._tiles[t.key];return e&&e.hasData()?e:this._cache.getByKey(t.wrapped().key)},r.prototype.updateCacheSize=function(t){var e=(Math.ceil(t.width/this._source.tileSize)+1)*(Math.ceil(t.height/this._source.tileSize)+1),r=Math.floor(5*e),n="number"==typeof this._maxTileCacheSize?Math.min(this._maxTileCacheSize,r):r;this._cache.setMaxSize(n)},r.prototype.handleWrapJump=function(t){var e=(t-(void 0===this._prevLng?t:this._prevLng))/360,r=Math.round(e);if(this._prevLng=t,r){var n={};for(var i in this._tiles){var a=this._tiles[i];a.tileID=a.tileID.unwrapTo(a.tileID.wrap+r),n[a.tileID.key]=a}for(var o in this._tiles=n,this._timers)clearTimeout(this._timers[o]),delete this._timers[o];for(var s in this._tiles){var l=this._tiles[s];this._setTileReloadTimer(s,l)}}},r.prototype.update=function(e){var n=this;if(this.transform=e,this._sourceLoaded&&!this._paused){var i;this.updateCacheSize(e),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used?this._source.tileID?i=e.getVisibleUnwrappedCoordinates(this._source.tileID).map((function(e){return new t.OverscaledTileID(e.canonical.z,e.wrap,e.canonical.z,e.canonical.x,e.canonical.y)})):(i=e.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}),this._source.hasTile&&(i=i.filter((function(t){return n._source.hasTile(t)})))):i=[];var a=e.coveringZoomLevel(this._source),o=Math.max(a-r.maxOverzooming,this._source.minzoom),s=Math.max(a+r.maxUnderzooming,this._source.minzoom),l=this._updateRetainedTiles(i,a);if(It(this._source.type)){for(var c={},u={},f=0,h=Object.keys(l);fthis._source.maxzoom){var g=d.children(this._source.maxzoom)[0],v=this.getTile(g);if(v&&v.hasData()){n[g.key]=g;continue}}else{var y=d.children(this._source.maxzoom);if(n[y[0].key]&&n[y[1].key]&&n[y[2].key]&&n[y[3].key])continue}for(var x=m.wasRequested(),b=d.overscaledZ-1;b>=a;--b){var _=d.scaledTo(b);if(i[_.key])break;if(i[_.key]=!0,!(m=this.getTile(_))&&x&&(m=this._addTile(_)),m&&(n[_.key]=_,x=m.wasRequested(),m.hasData()))break}}}return n},r.prototype._updateLoadedParentTileCache=function(){for(var t in this._loadedParentTiles={},this._tiles){for(var e=[],r=void 0,n=this._tiles[t].tileID;n.overscaledZ>0;){if(n.key in this._loadedParentTiles){r=this._loadedParentTiles[n.key];break}e.push(n.key);var i=n.scaledTo(n.overscaledZ-1);if(r=this._getLoadedTile(i))break;n=i}for(var a=0,o=e;a0||(e.hasData()&&"reloading"!==e.state?this._cache.add(e.tileID,e,e.getExpiryTimeout()):(e.aborted=!0,this._abortTile(e),this._unloadTile(e))))},r.prototype.clearTiles=function(){for(var t in this._shouldReloadOnResume=!1,this._paused=!1,this._tiles)this._removeTile(t);this._cache.reset()},r.prototype.tilesIn=function(e,r,n){var i=this,a=[],o=this.transform;if(!o)return a;for(var s=n?o.getCameraQueryGeometry(e):e,l=e.map((function(t){return o.pointCoordinate(t)})),c=s.map((function(t){return o.pointCoordinate(t)})),u=this.getIds(),f=1/0,h=1/0,p=-1/0,d=-1/0,m=0,g=c;m=0&&v[1].y+g>=0){var y=l.map((function(t){return s.getTilePoint(t)})),x=c.map((function(t){return s.getTilePoint(t)}));a.push({tile:n,tileID:s,queryGeometry:y,cameraQueryGeometry:x,scale:m})}}},x=0;x=t.browser.now())return!0}return!1},r.prototype.setFeatureState=function(t,e,r){t=t||"_geojsonTileLayer",this._state.updateState(t,e,r)},r.prototype.removeFeatureState=function(t,e,r){t=t||"_geojsonTileLayer",this._state.removeFeatureState(t,e,r)},r.prototype.getFeatureState=function(t,e){return t=t||"_geojsonTileLayer",this._state.getState(t,e)},r.prototype.setDependencies=function(t,e,r){var n=this._tiles[t];n&&n.setDependencies(e,r)},r.prototype.reloadTilesForDependencies=function(t,e){for(var r in this._tiles){this._tiles[r].hasDependency(t,e)&&this._reloadTile(r,"reloading")}this._cache.filter((function(r){return!r.hasDependency(t,e)}))},r}(t.Evented);function Pt(t,e){var r=Math.abs(2*t.wrap)-+(t.wrap<0),n=Math.abs(2*e.wrap)-+(e.wrap<0);return t.overscaledZ-e.overscaledZ||n-r||e.canonical.y-t.canonical.y||e.canonical.x-t.canonical.x}function It(t){return"raster"===t||"image"===t||"video"===t}function Ot(){return new t.window.Worker(Zi.workerUrl)}Ct.maxOverzooming=10,Ct.maxUnderzooming=3;var zt="mapboxgl_preloaded_worker_pool",Dt=function(){this.active={}};Dt.prototype.acquire=function(t){if(!this.workers)for(this.workers=[];this.workers.length0?(i-o)/s:0;return this.points[a].mult(1-l).add(this.points[r].mult(l))};var Kt=function(t,e,r){var n=this.boxCells=[],i=this.circleCells=[];this.xCellCount=Math.ceil(t/r),this.yCellCount=Math.ceil(e/r);for(var a=0;a=-e[0]&&r<=e[0]&&n>=-e[1]&&n<=e[1]}function ne(e,r,n,i,a,o,s,l){var c=i?e.textSizeData:e.iconSizeData,u=t.evaluateSizeForZoom(c,n.transform.zoom),f=[256/n.width*2+1,256/n.height*2+1],h=i?e.text.dynamicLayoutVertexArray:e.icon.dynamicLayoutVertexArray;h.clear();for(var p=e.lineVertexArray,d=i?e.text.placedSymbolArray:e.icon.placedSymbolArray,m=n.transform.width/n.transform.height,g=!1,v=0;vMath.abs(n.x-r.x)*i)return{useVertical:!0};return(e===t.WritingMode.vertical?r.yn.x)?{needsFlipping:!0}:null}function oe(e,r,n,i,a,o,s,l,c,u,f,h,p,d){var m,g=r/24,v=e.lineOffsetX*g,y=e.lineOffsetY*g;if(e.numGlyphs>1){var x=e.glyphStartIndex+e.numGlyphs,b=e.lineStartIndex,_=e.lineStartIndex+e.lineLength,w=ie(g,l,v,y,n,f,h,e,c,o,p);if(!w)return{notEnoughRoom:!0};var T=te(w.first.point,s).point,k=te(w.last.point,s).point;if(i&&!n){var M=ae(e.writingMode,T,k,d);if(M)return M}m=[w.first];for(var A=e.glyphStartIndex+1;A0?C.point:se(h,L,S,1,a),I=ae(e.writingMode,S,P,d);if(I)return I}var O=le(g*l.getoffsetX(e.glyphStartIndex),v,y,n,f,h,e.segment,e.lineStartIndex,e.lineStartIndex+e.lineLength,c,o,p);if(!O)return{notEnoughRoom:!0};m=[O]}for(var z=0,D=m;z0?1:-1,m=0;i&&(d*=-1,m=Math.PI),d<0&&(m+=Math.PI);for(var g=d>0?l+s:l+s+1,v=a,y=a,x=0,b=0,_=Math.abs(p),w=[];x+b<=_;){if((g+=d)=c)return null;if(y=v,w.push(v),void 0===(v=h[g])){var T=new t.Point(u.getx(g),u.gety(g)),k=te(T,f);if(k.signedDistanceFromCamera>0)v=h[g]=k.point;else{var M=g-d;v=se(0===x?o:new t.Point(u.getx(M),u.gety(M)),T,y,_-x+1,f)}}x+=b,b=y.dist(v)}var A=(_-x)/b,S=v.sub(y),E=S.mult(A)._add(y);E._add(S._unit()._perp()._mult(n*d));var L=m+Math.atan2(v.y-y.y,v.x-y.x);return w.push(E),{point:E,angle:L,path:w}}Kt.prototype.keysLength=function(){return this.boxKeys.length+this.circleKeys.length},Kt.prototype.insert=function(t,e,r,n,i){this._forEachCell(e,r,n,i,this._insertBoxCell,this.boxUid++),this.boxKeys.push(t),this.bboxes.push(e),this.bboxes.push(r),this.bboxes.push(n),this.bboxes.push(i)},Kt.prototype.insertCircle=function(t,e,r,n){this._forEachCell(e-n,r-n,e+n,r+n,this._insertCircleCell,this.circleUid++),this.circleKeys.push(t),this.circles.push(e),this.circles.push(r),this.circles.push(n)},Kt.prototype._insertBoxCell=function(t,e,r,n,i,a){this.boxCells[i].push(a)},Kt.prototype._insertCircleCell=function(t,e,r,n,i,a){this.circleCells[i].push(a)},Kt.prototype._query=function(t,e,r,n,i,a){if(r<0||t>this.width||n<0||e>this.height)return!i&&[];var o=[];if(t<=0&&e<=0&&this.width<=r&&this.height<=n){if(i)return!0;for(var s=0;s0:o},Kt.prototype._queryCircle=function(t,e,r,n,i){var a=t-r,o=t+r,s=e-r,l=e+r;if(o<0||a>this.width||l<0||s>this.height)return!n&&[];var c=[],u={hitTest:n,circle:{x:t,y:e,radius:r},seenUids:{box:{},circle:{}}};return this._forEachCell(a,s,o,l,this._queryCellCircle,c,u,i),n?c.length>0:c},Kt.prototype.query=function(t,e,r,n,i){return this._query(t,e,r,n,!1,i)},Kt.prototype.hitTest=function(t,e,r,n,i){return this._query(t,e,r,n,!0,i)},Kt.prototype.hitTestCircle=function(t,e,r,n){return this._queryCircle(t,e,r,!0,n)},Kt.prototype._queryCell=function(t,e,r,n,i,a,o,s){var l=o.seenUids,c=this.boxCells[i];if(null!==c)for(var u=this.bboxes,f=0,h=c;f=u[d+0]&&n>=u[d+1]&&(!s||s(this.boxKeys[p]))){if(o.hitTest)return a.push(!0),!0;a.push({key:this.boxKeys[p],x1:u[d],y1:u[d+1],x2:u[d+2],y2:u[d+3]})}}}var m=this.circleCells[i];if(null!==m)for(var g=this.circles,v=0,y=m;vo*o+s*s},Kt.prototype._circleAndRectCollide=function(t,e,r,n,i,a,o){var s=(a-n)/2,l=Math.abs(t-(n+s));if(l>s+r)return!1;var c=(o-i)/2,u=Math.abs(e-(i+c));if(u>c+r)return!1;if(l<=s||u<=c)return!0;var f=l-s,h=u-c;return f*f+h*h<=r*r};var ce=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function ue(t,e){for(var r=0;r=1;P--)C.push(E.path[P]);for(var I=1;I0){for(var R=C[0].clone(),F=C[0].clone(),B=1;B=M.x&&F.x<=A.x&&R.y>=M.y&&F.y<=A.y?[C]:F.xA.x||F.yA.y?[]:t.clipLine([C],M.x,M.y,A.x,A.y)}for(var N=0,j=D;N=this.screenRightBoundary||n<100||e>this.screenBottomBoundary},he.prototype.isInsideGrid=function(t,e,r,n){return r>=0&&t=0&&e0)return this.prevPlacement&&this.prevPlacement.variableOffsets[f.crossTileID]&&this.prevPlacement.placements[f.crossTileID]&&this.prevPlacement.placements[f.crossTileID].text&&(m=this.prevPlacement.variableOffsets[f.crossTileID].anchor),this.variableOffsets[f.crossTileID]={textOffset:g,width:r,height:n,anchor:t,textBoxScale:i,prevAnchor:m},this.markUsedJustification(h,t,f,p),h.allowVerticalPlacement&&(this.markUsedOrientation(h,p,f),this.placedOrientations[f.crossTileID]=p),{shift:v,placedGlyphBoxes:y}},we.prototype.placeLayerBucketPart=function(e,r,n){var i=this,a=e.parameters,o=a.bucket,s=a.layout,l=a.posMatrix,c=a.textLabelPlaneMatrix,u=a.labelToScreenMatrix,f=a.textPixelRatio,h=a.holdingForFade,p=a.collisionBoxArray,d=a.partiallyEvaluatedTextSize,m=a.collisionGroup,g=s.get("text-optional"),v=s.get("icon-optional"),y=s.get("text-allow-overlap"),x=s.get("icon-allow-overlap"),b="map"===s.get("text-rotation-alignment"),_="map"===s.get("text-pitch-alignment"),w="none"!==s.get("icon-text-fit"),T="viewport-y"===s.get("symbol-z-order"),k=y&&(x||!o.hasIconData()||v),M=x&&(y||!o.hasTextData()||g);!o.collisionArrays&&p&&o.deserializeCollisionBoxes(p);var A=function(e,a){if(!r[e.crossTileID])if(h)i.placements[e.crossTileID]=new ge(!1,!1,!1);else{var p,T=!1,A=!1,S=!0,E=null,L={box:null,offscreen:null},C={box:null,offscreen:null},P=null,I=null,O=0,z=0,D=0;a.textFeatureIndex?O=a.textFeatureIndex:e.useRuntimeCollisionCircles&&(O=e.featureIndex),a.verticalTextFeatureIndex&&(z=a.verticalTextFeatureIndex);var R=a.textBox;if(R){var F=function(r){var n=t.WritingMode.horizontal;if(o.allowVerticalPlacement&&!r&&i.prevPlacement){var a=i.prevPlacement.placedOrientations[e.crossTileID];a&&(i.placedOrientations[e.crossTileID]=a,n=a,i.markUsedOrientation(o,n,e))}return n},B=function(r,n){if(o.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&a.verticalTextBox)for(var i=0,s=o.writingModes;i0&&(N=N.filter((function(t){return t!==j.anchor}))).unshift(j.anchor)}var U=function(t,r,n){for(var a=t.x2-t.x1,s=t.y2-t.y1,c=e.textBoxScale,u=w&&!x?r:null,h={box:[],offscreen:!1},p=y?2*N.length:N.length,d=0;d=N.length,k=i.attemptAnchorPlacement(g,t,a,s,c,b,_,f,l,m,v,e,o,n,u);if(k&&(h=k.placedGlyphBoxes)&&h.box&&h.box.length){T=!0,E=k.shift;break}}return h};B((function(){return U(R,a.iconBox,t.WritingMode.horizontal)}),(function(){var r=a.verticalTextBox,n=L&&L.box&&L.box.length;return o.allowVerticalPlacement&&!n&&e.numVerticalGlyphVertices>0&&r?U(r,a.verticalIconBox,t.WritingMode.vertical):{box:null,offscreen:null}})),L&&(T=L.box,S=L.offscreen);var V=F(L&&L.box);if(!T&&i.prevPlacement){var q=i.prevPlacement.variableOffsets[e.crossTileID];q&&(i.variableOffsets[e.crossTileID]=q,i.markUsedJustification(o,q.anchor,e,V))}}else{var H=function(t,r){var n=i.collisionIndex.placeCollisionBox(t,y,f,l,m.predicate);return n&&n.box&&n.box.length&&(i.markUsedOrientation(o,r,e),i.placedOrientations[e.crossTileID]=r),n};B((function(){return H(R,t.WritingMode.horizontal)}),(function(){var r=a.verticalTextBox;return o.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&r?H(r,t.WritingMode.vertical):{box:null,offscreen:null}})),F(L&&L.box&&L.box.length)}}if(T=(p=L)&&p.box&&p.box.length>0,S=p&&p.offscreen,e.useRuntimeCollisionCircles){var G=o.text.placedSymbolArray.get(e.centerJustifiedTextSymbolIndex),Y=t.evaluateSizeForFeature(o.textSizeData,d,G),W=s.get("text-padding"),X=e.collisionCircleDiameter;P=i.collisionIndex.placeCollisionCircles(y,G,o.lineVertexArray,o.glyphOffsetArray,Y,l,c,u,n,_,m.predicate,X,W),T=y||P.circles.length>0&&!P.collisionDetected,S=S&&P.offscreen}if(a.iconFeatureIndex&&(D=a.iconFeatureIndex),a.iconBox){var Z=function(t){var e=w&&E?_e(t,E.x,E.y,b,_,i.transform.angle):t;return i.collisionIndex.placeCollisionBox(e,x,f,l,m.predicate)};A=C&&C.box&&C.box.length&&a.verticalIconBox?(I=Z(a.verticalIconBox)).box.length>0:(I=Z(a.iconBox)).box.length>0,S=S&&I.offscreen}var J=g||0===e.numHorizontalGlyphVertices&&0===e.numVerticalGlyphVertices,K=v||0===e.numIconVertices;if(J||K?K?J||(A=A&&T):T=A&&T:A=T=A&&T,T&&p&&p.box&&(C&&C.box&&z?i.collisionIndex.insertCollisionBox(p.box,s.get("text-ignore-placement"),o.bucketInstanceId,z,m.ID):i.collisionIndex.insertCollisionBox(p.box,s.get("text-ignore-placement"),o.bucketInstanceId,O,m.ID)),A&&I&&i.collisionIndex.insertCollisionBox(I.box,s.get("icon-ignore-placement"),o.bucketInstanceId,D,m.ID),P&&(T&&i.collisionIndex.insertCollisionCircles(P.circles,s.get("text-ignore-placement"),o.bucketInstanceId,O,m.ID),n)){var Q=o.bucketInstanceId,$=i.collisionCircleArrays[Q];void 0===$&&($=i.collisionCircleArrays[Q]=new ve);for(var tt=0;tt=0;--E){var L=S[E];A(o.symbolInstances.get(L),o.collisionArrays[L])}else for(var C=e.symbolInstanceStart;C=0&&(e.text.placedSymbolArray.get(c).crossTileID=a>=0&&c!==a?0:n.crossTileID)}},we.prototype.markUsedOrientation=function(e,r,n){for(var i=r===t.WritingMode.horizontal||r===t.WritingMode.horizontalOnly?r:0,a=r===t.WritingMode.vertical?r:0,o=0,s=[n.leftJustifiedTextSymbolIndex,n.centerJustifiedTextSymbolIndex,n.rightJustifiedTextSymbolIndex];o0||l>0,x=a.numIconVertices>0,b=i.placedOrientations[a.crossTileID],_=b===t.WritingMode.vertical,w=b===t.WritingMode.horizontal||b===t.WritingMode.horizontalOnly;if(y){var T=Pe(v.text),k=_?Ie:T;d(e.text,s,k);var M=w?Ie:T;d(e.text,l,M);var A=v.text.isHidden();[a.rightJustifiedTextSymbolIndex,a.centerJustifiedTextSymbolIndex,a.leftJustifiedTextSymbolIndex].forEach((function(t){t>=0&&(e.text.placedSymbolArray.get(t).hidden=A||_?1:0)})),a.verticalPlacedTextSymbolIndex>=0&&(e.text.placedSymbolArray.get(a.verticalPlacedTextSymbolIndex).hidden=A||w?1:0);var S=i.variableOffsets[a.crossTileID];S&&i.markUsedJustification(e,S.anchor,a,b);var E=i.placedOrientations[a.crossTileID];E&&(i.markUsedJustification(e,"left",a,E),i.markUsedOrientation(e,E,a))}if(x){var L=Pe(v.icon),C=!(h&&a.verticalPlacedIconSymbolIndex&&_);if(a.placedIconSymbolIndex>=0){var P=C?L:Ie;d(e.icon,a.numIconVertices,P),e.icon.placedSymbolArray.get(a.placedIconSymbolIndex).hidden=v.icon.isHidden()}if(a.verticalPlacedIconSymbolIndex>=0){var I=C?Ie:L;d(e.icon,a.numVerticalIconVertices,I),e.icon.placedSymbolArray.get(a.verticalPlacedIconSymbolIndex).hidden=v.icon.isHidden()}}if(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData()){var O=e.collisionArrays[n];if(O){var z=new t.Point(0,0);if(O.textBox||O.verticalTextBox){var D=!0;if(c){var R=i.variableOffsets[m];R?(z=be(R.anchor,R.width,R.height,R.textOffset,R.textBoxScale),u&&z._rotate(f?i.transform.angle:-i.transform.angle)):D=!1}O.textBox&&Te(e.textCollisionBox.collisionVertexArray,v.text.placed,!D||_,z.x,z.y),O.verticalTextBox&&Te(e.textCollisionBox.collisionVertexArray,v.text.placed,!D||w,z.x,z.y)}var F=Boolean(!w&&O.verticalIconBox);O.iconBox&&Te(e.iconCollisionBox.collisionVertexArray,v.icon.placed,F,h?z.x:0,h?z.y:0),O.verticalIconBox&&Te(e.iconCollisionBox.collisionVertexArray,v.icon.placed,!F,h?z.x:0,h?z.y:0)}}},g=0;gt},we.prototype.setStale=function(){this.stale=!0};var ke=Math.pow(2,25),Me=Math.pow(2,24),Ae=Math.pow(2,17),Se=Math.pow(2,16),Ee=Math.pow(2,9),Le=Math.pow(2,8),Ce=Math.pow(2,1);function Pe(t){if(0===t.opacity&&!t.placed)return 0;if(1===t.opacity&&t.placed)return 4294967295;var e=t.placed?1:0,r=Math.floor(127*t.opacity);return r*ke+e*Me+r*Ae+e*Se+r*Ee+e*Le+r*Ce+e}var Ie=0,Oe=function(t){this._sortAcrossTiles="viewport-y"!==t.layout.get("symbol-z-order")&&void 0!==t.layout.get("symbol-sort-key").constantOr(1),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]};Oe.prototype.continuePlacement=function(t,e,r,n,i){for(var a=this._bucketParts;this._currentTileIndex2};this._currentPlacementIndex>=0;){var s=r[e[this._currentPlacementIndex]],l=this.placement.collisionIndex.transform.zoom;if("symbol"===s.type&&(!s.minzoom||s.minzoom<=l)&&(!s.maxzoom||s.maxzoom>l)){if(this._inProgressLayer||(this._inProgressLayer=new Oe(s)),this._inProgressLayer.continuePlacement(n[s.source],this.placement,this._showCollisionBoxes,s,o))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0},ze.prototype.commit=function(t){return this.placement.commit(t),this.placement};var De=512/t.EXTENT/2,Re=function(t,e,r){this.tileID=t,this.indexedSymbolInstances={},this.bucketInstanceId=r;for(var n=0;nt.overscaledZ)for(var s in o){var l=o[s];l.tileID.isChildOf(t)&&l.findMatches(e.symbolInstances,t,i)}else{var c=o[t.scaledTo(Number(a)).key];c&&c.findMatches(e.symbolInstances,t,i)}}for(var u=0;u1?"@2x":"",l=t.getJSON(r.transformRequest(r.normalizeSpriteURL(e,s,".json"),t.ResourceType.SpriteJSON),(function(t,e){l=null,o||(o=t,i=e,u())})),c=t.getImage(r.transformRequest(r.normalizeSpriteURL(e,s,".png"),t.ResourceType.SpriteImage),(function(t,e){c=null,o||(o=t,a=e,u())}));function u(){if(o)n(o);else if(i&&a){var e=t.browser.getImageData(a),r={};for(var s in i){var l=i[s],c=l.width,u=l.height,f=l.x,h=l.y,p=l.sdf,d=l.pixelRatio,m=l.stretchX,g=l.stretchY,v=l.content,y=new t.RGBAImage({width:c,height:u});t.RGBAImage.copy(e,y,{x:f,y:h},{x:0,y:0},{width:c,height:u}),r[s]={data:y,pixelRatio:d,sdf:p,stretchX:m,stretchY:g,content:v}}n(null,r)}}return{cancel:function(){l&&(l.cancel(),l=null),c&&(c.cancel(),c=null)}}}(e,this.map._requestManager,(function(e,n){if(r._spriteRequest=null,e)r.fire(new t.ErrorEvent(e));else if(n)for(var i in n)r.imageManager.addImage(i,n[i]);r.imageManager.setLoaded(!0),r._availableImages=r.imageManager.listImages(),r.dispatcher.broadcast("setImages",r._availableImages),r.fire(new t.Event("data",{dataType:"style"}))}))},r.prototype._validateLayer=function(e){var r=this.sourceCaches[e.source];if(r){var n=e.sourceLayer;if(n){var i=r.getSource();("geojson"===i.type||i.vectorLayerIds&&-1===i.vectorLayerIds.indexOf(n))&&this.fire(new t.ErrorEvent(new Error('Source layer "'+n+'" does not exist on source "'+i.id+'" as specified by style layer "'+e.id+'"')))}}},r.prototype.loaded=function(){if(!this._loaded)return!1;if(Object.keys(this._updatedSources).length)return!1;for(var t in this.sourceCaches)if(!this.sourceCaches[t].loaded())return!1;return!!this.imageManager.isLoaded()},r.prototype._serializeLayers=function(t){for(var e=[],r=0,n=t;r0)throw new Error("Unimplemented: "+i.map((function(t){return t.command})).join(", ")+".");return n.forEach((function(t){"setTransition"!==t.command&&r[t.command].apply(r,t.args)})),this.stylesheet=e,!0},r.prototype.addImage=function(e,r){if(this.getImage(e))return this.fire(new t.ErrorEvent(new Error("An image with this name already exists.")));this.imageManager.addImage(e,r),this._availableImages=this.imageManager.listImages(),this._changedImages[e]=!0,this._changed=!0,this.fire(new t.Event("data",{dataType:"style"}))},r.prototype.updateImage=function(t,e){this.imageManager.updateImage(t,e)},r.prototype.getImage=function(t){return this.imageManager.getImage(t)},r.prototype.removeImage=function(e){if(!this.getImage(e))return this.fire(new t.ErrorEvent(new Error("No image with this name exists.")));this.imageManager.removeImage(e),this._availableImages=this.imageManager.listImages(),this._changedImages[e]=!0,this._changed=!0,this.fire(new t.Event("data",{dataType:"style"}))},r.prototype.listImages=function(){return this._checkLoaded(),this.imageManager.listImages()},r.prototype.addSource=function(e,r,n){var i=this;if(void 0===n&&(n={}),this._checkLoaded(),void 0!==this.sourceCaches[e])throw new Error("There is already a source with this ID");if(!r.type)throw new Error("The type property must be defined, but the only the following properties were given: "+Object.keys(r).join(", ")+".");if(!(["vector","raster","geojson","video","image"].indexOf(r.type)>=0)||!this._validate(t.validateStyle.source,"sources."+e,r,null,n)){this.map&&this.map._collectResourceTiming&&(r.collectResourceTiming=!0);var a=this.sourceCaches[e]=new Ct(e,r,this.dispatcher);a.style=this,a.setEventedParent(this,(function(){return{isSourceLoaded:i.loaded(),source:a.serialize(),sourceId:e}})),a.onAdd(this.map),this._changed=!0}},r.prototype.removeSource=function(e){if(this._checkLoaded(),void 0===this.sourceCaches[e])throw new Error("There is no source with this ID");for(var r in this._layers)if(this._layers[r].source===e)return this.fire(new t.ErrorEvent(new Error('Source "'+e+'" cannot be removed while layer "'+r+'" is using it.')));var n=this.sourceCaches[e];delete this.sourceCaches[e],delete this._updatedSources[e],n.fire(new t.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:e})),n.setEventedParent(null),n.clearTiles(),n.onRemove&&n.onRemove(this.map),this._changed=!0},r.prototype.setGeoJSONSourceData=function(t,e){this._checkLoaded(),this.sourceCaches[t].getSource().setData(e),this._changed=!0},r.prototype.getSource=function(t){return this.sourceCaches[t]&&this.sourceCaches[t].getSource()},r.prototype.addLayer=function(e,r,n){void 0===n&&(n={}),this._checkLoaded();var i=e.id;if(this.getLayer(i))this.fire(new t.ErrorEvent(new Error('Layer with id "'+i+'" already exists on this map')));else{var a;if("custom"===e.type){if(je(this,t.validateCustomStyleLayer(e)))return;a=t.createStyleLayer(e)}else{if("object"==typeof e.source&&(this.addSource(i,e.source),e=t.clone$1(e),e=t.extend(e,{source:i})),this._validate(t.validateStyle.layer,"layers."+i,e,{arrayIndex:-1},n))return;a=t.createStyleLayer(e),this._validateLayer(a),a.setEventedParent(this,{layer:{id:i}}),this._serializedLayers[a.id]=a.serialize()}var o=r?this._order.indexOf(r):this._order.length;if(r&&-1===o)this.fire(new t.ErrorEvent(new Error('Layer with id "'+r+'" does not exist on this map.')));else{if(this._order.splice(o,0,i),this._layerOrderChanged=!0,this._layers[i]=a,this._removedLayers[i]&&a.source&&"custom"!==a.type){var s=this._removedLayers[i];delete this._removedLayers[i],s.type!==a.type?this._updatedSources[a.source]="clear":(this._updatedSources[a.source]="reload",this.sourceCaches[a.source].pause())}this._updateLayer(a),a.onAdd&&a.onAdd(this.map)}}},r.prototype.moveLayer=function(e,r){if(this._checkLoaded(),this._changed=!0,this._layers[e]){if(e!==r){var n=this._order.indexOf(e);this._order.splice(n,1);var i=r?this._order.indexOf(r):this._order.length;r&&-1===i?this.fire(new t.ErrorEvent(new Error('Layer with id "'+r+'" does not exist on this map.'))):(this._order.splice(i,0,e),this._layerOrderChanged=!0)}}else this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be moved.")))},r.prototype.removeLayer=function(e){this._checkLoaded();var r=this._layers[e];if(r){r.setEventedParent(null);var n=this._order.indexOf(e);this._order.splice(n,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[e]=r,delete this._layers[e],delete this._serializedLayers[e],delete this._updatedLayers[e],delete this._updatedPaintProps[e],r.onRemove&&r.onRemove(this.map)}else this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be removed.")))},r.prototype.getLayer=function(t){return this._layers[t]},r.prototype.hasLayer=function(t){return t in this._layers},r.prototype.setLayerZoomRange=function(e,r,n){this._checkLoaded();var i=this.getLayer(e);i?i.minzoom===r&&i.maxzoom===n||(null!=r&&(i.minzoom=r),null!=n&&(i.maxzoom=n),this._updateLayer(i)):this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot have zoom extent.")))},r.prototype.setFilter=function(e,r,n){void 0===n&&(n={}),this._checkLoaded();var i=this.getLayer(e);if(i){if(!t.deepEqual(i.filter,r))return null==r?(i.filter=void 0,void this._updateLayer(i)):void(this._validate(t.validateStyle.filter,"layers."+i.id+".filter",r,null,n)||(i.filter=t.clone$1(r),this._updateLayer(i)))}else this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be filtered.")))},r.prototype.getFilter=function(e){return t.clone$1(this.getLayer(e).filter)},r.prototype.setLayoutProperty=function(e,r,n,i){void 0===i&&(i={}),this._checkLoaded();var a=this.getLayer(e);a?t.deepEqual(a.getLayoutProperty(r),n)||(a.setLayoutProperty(r,n,i),this._updateLayer(a)):this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be styled.")))},r.prototype.getLayoutProperty=function(e,r){var n=this.getLayer(e);if(n)return n.getLayoutProperty(r);this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style.")))},r.prototype.setPaintProperty=function(e,r,n,i){void 0===i&&(i={}),this._checkLoaded();var a=this.getLayer(e);a?t.deepEqual(a.getPaintProperty(r),n)||(a.setPaintProperty(r,n,i)&&this._updateLayer(a),this._changed=!0,this._updatedPaintProps[e]=!0):this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be styled.")))},r.prototype.getPaintProperty=function(t,e){return this.getLayer(t).getPaintProperty(e)},r.prototype.setFeatureState=function(e,r){this._checkLoaded();var n=e.source,i=e.sourceLayer,a=this.sourceCaches[n];if(void 0!==a){var o=a.getSource().type;"geojson"===o&&i?this.fire(new t.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):"vector"!==o||i?(void 0===e.id&&this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))),a.setFeatureState(i,e.id,r)):this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new t.ErrorEvent(new Error("The source '"+n+"' does not exist in the map's style.")))},r.prototype.removeFeatureState=function(e,r){this._checkLoaded();var n=e.source,i=this.sourceCaches[n];if(void 0!==i){var a=i.getSource().type,o="vector"===a?e.sourceLayer:void 0;"vector"!==a||o?r&&"string"!=typeof e.id&&"number"!=typeof e.id?this.fire(new t.ErrorEvent(new Error("A feature id is requred to remove its specific state property."))):i.removeFeatureState(o,e.id,r):this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new t.ErrorEvent(new Error("The source '"+n+"' does not exist in the map's style.")))},r.prototype.getFeatureState=function(e){this._checkLoaded();var r=e.source,n=e.sourceLayer,i=this.sourceCaches[r];if(void 0!==i){if("vector"!==i.getSource().type||n)return void 0===e.id&&this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))),i.getFeatureState(n,e.id);this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new t.ErrorEvent(new Error("The source '"+r+"' does not exist in the map's style.")))},r.prototype.getTransition=function(){return t.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},r.prototype.serialize=function(){return t.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,sources:t.mapObject(this.sourceCaches,(function(t){return t.serialize()})),layers:this._serializeLayers(this._order)},(function(t){return void 0!==t}))},r.prototype._updateLayer=function(t){this._updatedLayers[t.id]=!0,t.source&&!this._updatedSources[t.source]&&"raster"!==this.sourceCaches[t.source].getSource().type&&(this._updatedSources[t.source]="reload",this.sourceCaches[t.source].pause()),this._changed=!0},r.prototype._flattenAndSortRenderedFeatures=function(t){for(var e=this,r=function(t){return"fill-extrusion"===e._layers[t].type},n={},i=[],a=this._order.length-1;a>=0;a--){var o=this._order[a];if(r(o)){n[o]=a;for(var s=0,l=t;s=0;d--){var m=this._order[d];if(r(m))for(var g=i.length-1;g>=0;g--){var v=i[g].feature;if(n[v.layer.id] 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}","attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,0.0,1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}"),tr=yr("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}","attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"),er=yr("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}","attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,0,1);}"),rr=yr("#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_FragColor=color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);}"),nr=yr("varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}"),ir=yr("uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}"),ar=yr("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}"),or=yr("varying vec4 v_color;void main() {gl_FragColor=v_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec4 v_color;\n#pragma mapbox: define highp float base\n#pragma mapbox: define highp float height\n#pragma mapbox: define highp vec4 color\nvoid main() {\n#pragma mapbox: initialize highp float base\n#pragma mapbox: initialize highp float height\n#pragma mapbox: initialize highp vec4 color\nvec3 normal=a_normal_ed.xyz;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}"),sr=yr("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0\n? a_pos\n: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}"),lr=yr("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform float u_maxzoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggeration=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/ pow(2.0,(u_zoom-u_maxzoom)*exaggeration+19.2562-u_zoom);gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),cr=yr("uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;\n#define PI 3.141592653589793\nvoid main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}"),ur=yr("uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}"),fr=yr("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp float v_lineprogress;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,vec2(v_lineprogress,0.5));gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define MAX_LINE_DISTANCE 32767.0\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_lineprogress;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_lineprogress=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0/MAX_LINE_DISTANCE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}"),hr=yr("uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}"),pr=yr("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}"),dr=yr("uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}"),mr=yr("uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),0.0,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));}"),gr=yr("#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}"),vr=yr("#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}");function yr(t,e){var r=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,n={};return{fragmentSource:t=t.replace(r,(function(t,e,r,i,a){return n[a]=!0,"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nvarying "+r+" "+i+" "+a+";\n#else\nuniform "+r+" "+i+" u_"+a+";\n#endif\n":"\n#ifdef HAS_UNIFORM_u_"+a+"\n "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n"})),vertexSource:e=e.replace(r,(function(t,e,r,i,a){var o="float"===i?"vec2":"vec4",s=a.match(/color/)?"color":o;return n[a]?"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nuniform lowp float u_"+a+"_t;\nattribute "+r+" "+o+" a_"+a+";\nvarying "+r+" "+i+" "+a+";\n#else\nuniform "+r+" "+i+" u_"+a+";\n#endif\n":"vec4"===s?"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+a+" = a_"+a+";\n#else\n "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n":"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+a+" = unpack_mix_"+s+"(a_"+a+", u_"+a+"_t);\n#else\n "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n":"define"===e?"\n#ifndef HAS_UNIFORM_u_"+a+"\nuniform lowp float u_"+a+"_t;\nattribute "+r+" "+o+" a_"+a+";\n#else\nuniform "+r+" "+i+" u_"+a+";\n#endif\n":"vec4"===s?"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+r+" "+i+" "+a+" = a_"+a+";\n#else\n "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n":"\n#ifndef HAS_UNIFORM_u_"+a+"\n "+r+" "+i+" "+a+" = unpack_mix_"+s+"(a_"+a+", u_"+a+"_t);\n#else\n "+r+" "+i+" "+a+" = u_"+a+";\n#endif\n"}))}}var xr=Object.freeze({__proto__:null,prelude:Ye,background:We,backgroundPattern:Xe,circle:Ze,clippingMask:Je,heatmap:Ke,heatmapTexture:Qe,collisionBox:$e,collisionCircle:tr,debug:er,fill:rr,fillOutline:nr,fillOutlinePattern:ir,fillPattern:ar,fillExtrusion:or,fillExtrusionPattern:sr,hillshadePrepare:lr,hillshade:cr,line:ur,lineGradient:fr,linePattern:hr,lineSDF:pr,raster:dr,symbolIcon:mr,symbolSDF:gr,symbolTextAndIcon:vr}),br=function(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null};br.prototype.bind=function(t,e,r,n,i,a,o,s){this.context=t;for(var l=this.boundPaintVertexBuffers.length!==n.length,c=0;!l&&c>16,s>>16],u_pixel_coord_lower:[65535&o,65535&s]}}_r.prototype.draw=function(t,e,r,n,i,a,o,s,l,c,u,f,h,p,d,m){var g,v=t.gl;if(!this.failedToCreate){for(var y in t.program.set(this.program),t.setDepthMode(r),t.setStencilMode(n),t.setColorMode(i),t.setCullFace(a),this.fixedUniforms)this.fixedUniforms[y].set(o[y]);p&&p.setUniforms(t,this.binderUniforms,f,{zoom:h});for(var x=(g={},g[v.LINES]=2,g[v.TRIANGLES]=3,g[v.LINE_STRIP]=1,g)[e],b=0,_=u.get();b<_.length;b+=1){var w=_[b],T=w.vaos||(w.vaos={});(T[s]||(T[s]=new br)).bind(t,this,l,p?p.getPaintVertexBuffers():[],c,w.vertexOffset,d,m),v.drawElements(e,w.primitiveLength*x,v.UNSIGNED_SHORT,w.primitiveOffset*x*2)}}};var Tr=function(e,r,n,i){var a=r.style.light,o=a.properties.get("position"),s=[o.x,o.y,o.z],l=t.create$1();"viewport"===a.properties.get("anchor")&&t.fromRotation(l,-r.transform.angle),t.transformMat3(s,s,l);var c=a.properties.get("color");return{u_matrix:e,u_lightpos:s,u_lightintensity:a.properties.get("intensity"),u_lightcolor:[c.r,c.g,c.b],u_vertical_gradient:+n,u_opacity:i}},kr=function(e,r,n,i,a,o,s){return t.extend(Tr(e,r,n,i),wr(o,r,s),{u_height_factor:-Math.pow(2,a.overscaledZ)/s.tileSize/8})},Mr=function(t){return{u_matrix:t}},Ar=function(e,r,n,i){return t.extend(Mr(e),wr(n,r,i))},Sr=function(t,e){return{u_matrix:t,u_world:e}},Er=function(e,r,n,i,a){return t.extend(Ar(e,r,n,i),{u_world:a})},Lr=function(e,r,n,i){var a,o,s=e.transform;if("map"===i.paint.get("circle-pitch-alignment")){var l=pe(n,1,s.zoom);a=!0,o=[l,l]}else a=!1,o=s.pixelsToGLUnits;return{u_camera_to_center_distance:s.cameraToCenterDistance,u_scale_with_map:+("map"===i.paint.get("circle-pitch-scale")),u_matrix:e.translatePosMatrix(r.posMatrix,n,i.paint.get("circle-translate"),i.paint.get("circle-translate-anchor")),u_pitch_with_map:+a,u_device_pixel_ratio:t.browser.devicePixelRatio,u_extrude_scale:o}},Cr=function(t,e,r){var n=pe(r,1,e.zoom),i=Math.pow(2,e.zoom-r.tileID.overscaledZ),a=r.tileID.overscaleFactor();return{u_matrix:t,u_camera_to_center_distance:e.cameraToCenterDistance,u_pixels_to_tile_units:n,u_extrude_scale:[e.pixelsToGLUnits[0]/(n*i),e.pixelsToGLUnits[1]/(n*i)],u_overscale_factor:a}},Pr=function(t,e,r){return{u_matrix:t,u_inv_matrix:e,u_camera_to_center_distance:r.cameraToCenterDistance,u_viewport_size:[r.width,r.height]}},Ir=function(t,e,r){return void 0===r&&(r=1),{u_matrix:t,u_color:e,u_overlay:0,u_overlay_scale:r}},Or=function(t){return{u_matrix:t}},zr=function(t,e,r,n){return{u_matrix:t,u_extrude_scale:pe(e,1,r),u_intensity:n}};function Dr(e,r){var n=Math.pow(2,r.canonical.z),i=r.canonical.y;return[new t.MercatorCoordinate(0,i/n).toLngLat().lat,new t.MercatorCoordinate(0,(i+1)/n).toLngLat().lat]}var Rr=function(e,r,n){var i=e.transform;return{u_matrix:Ur(e,r,n),u_ratio:1/pe(r,1,i.zoom),u_device_pixel_ratio:t.browser.devicePixelRatio,u_units_to_pixels:[1/i.pixelsToGLUnits[0],1/i.pixelsToGLUnits[1]]}},Fr=function(e,r,n){return t.extend(Rr(e,r,n),{u_image:0})},Br=function(e,r,n,i){var a=e.transform,o=jr(r,a);return{u_matrix:Ur(e,r,n),u_texsize:r.imageAtlasTexture.size,u_ratio:1/pe(r,1,a.zoom),u_device_pixel_ratio:t.browser.devicePixelRatio,u_image:0,u_scale:[o,i.fromScale,i.toScale],u_fade:i.t,u_units_to_pixels:[1/a.pixelsToGLUnits[0],1/a.pixelsToGLUnits[1]]}},Nr=function(e,r,n,i,a){var o=e.transform,s=e.lineAtlas,l=jr(r,o),c="round"===n.layout.get("line-cap"),u=s.getDash(i.from,c),f=s.getDash(i.to,c),h=u.width*a.fromScale,p=f.width*a.toScale;return t.extend(Rr(e,r,n),{u_patternscale_a:[l/h,-u.height/2],u_patternscale_b:[l/p,-f.height/2],u_sdfgamma:s.width/(256*Math.min(h,p)*t.browser.devicePixelRatio)/2,u_image:0,u_tex_y_a:u.y,u_tex_y_b:f.y,u_mix:a.t})};function jr(t,e){return 1/pe(t,1,e.tileZoom)}function Ur(t,e,r){return t.translatePosMatrix(e.tileID.posMatrix,e,r.paint.get("line-translate"),r.paint.get("line-translate-anchor"))}var Vr=function(t,e,r,n,i){return{u_matrix:t,u_tl_parent:e,u_scale_parent:r,u_buffer_scale:1,u_fade_t:n.mix,u_opacity:n.opacity*i.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:i.paint.get("raster-brightness-min"),u_brightness_high:i.paint.get("raster-brightness-max"),u_saturation_factor:(o=i.paint.get("raster-saturation"),o>0?1-1/(1.001-o):-o),u_contrast_factor:(a=i.paint.get("raster-contrast"),a>0?1/(1-a):1+a),u_spin_weights:qr(i.paint.get("raster-hue-rotate"))};var a,o};function qr(t){t*=Math.PI/180;var e=Math.sin(t),r=Math.cos(t);return[(2*r+1)/3,(-Math.sqrt(3)*e-r+1)/3,(Math.sqrt(3)*e-r+1)/3]}var Hr,Gr=function(t,e,r,n,i,a,o,s,l,c){var u=i.transform;return{u_is_size_zoom_constant:+("constant"===t||"source"===t),u_is_size_feature_constant:+("constant"===t||"camera"===t),u_size_t:e?e.uSizeT:0,u_size:e?e.uSize:0,u_camera_to_center_distance:u.cameraToCenterDistance,u_pitch:u.pitch/360*2*Math.PI,u_rotate_symbol:+r,u_aspect_ratio:u.width/u.height,u_fade_change:i.options.fadeDuration?i.symbolFadeChange:1,u_matrix:a,u_label_plane_matrix:o,u_coord_matrix:s,u_is_text:+l,u_pitch_with_map:+n,u_texsize:c,u_texture:0}},Yr=function(e,r,n,i,a,o,s,l,c,u,f){var h=a.transform;return t.extend(Gr(e,r,n,i,a,o,s,l,c,u),{u_gamma_scale:i?Math.cos(h._pitch)*h.cameraToCenterDistance:1,u_device_pixel_ratio:t.browser.devicePixelRatio,u_is_halo:+f})},Wr=function(e,r,n,i,a,o,s,l,c,u){return t.extend(Yr(e,r,n,i,a,o,s,l,!0,c,!0),{u_texsize_icon:u,u_texture_icon:1})},Xr=function(t,e,r){return{u_matrix:t,u_opacity:e,u_color:r}},Zr=function(e,r,n,i,a,o){return t.extend(function(t,e,r,n){var i=r.imageManager.getPattern(t.from.toString()),a=r.imageManager.getPattern(t.to.toString()),o=r.imageManager.getPixelSize(),s=o.width,l=o.height,c=Math.pow(2,n.tileID.overscaledZ),u=n.tileSize*Math.pow(2,r.transform.tileZoom)/c,f=u*(n.tileID.canonical.x+n.tileID.wrap*c),h=u*n.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:i.tl,u_pattern_br_a:i.br,u_pattern_tl_b:a.tl,u_pattern_br_b:a.br,u_texsize:[s,l],u_mix:e.t,u_pattern_size_a:i.displaySize,u_pattern_size_b:a.displaySize,u_scale_a:e.fromScale,u_scale_b:e.toScale,u_tile_units_to_pixels:1/pe(n,1,r.transform.tileZoom),u_pixel_coord_upper:[f>>16,h>>16],u_pixel_coord_lower:[65535&f,65535&h]}}(i,o,n,a),{u_matrix:e,u_opacity:r})},Jr={fillExtrusion:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_lightpos:new t.Uniform3f(e,r.u_lightpos),u_lightintensity:new t.Uniform1f(e,r.u_lightintensity),u_lightcolor:new t.Uniform3f(e,r.u_lightcolor),u_vertical_gradient:new t.Uniform1f(e,r.u_vertical_gradient),u_opacity:new t.Uniform1f(e,r.u_opacity)}},fillExtrusionPattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_lightpos:new t.Uniform3f(e,r.u_lightpos),u_lightintensity:new t.Uniform1f(e,r.u_lightintensity),u_lightcolor:new t.Uniform3f(e,r.u_lightcolor),u_vertical_gradient:new t.Uniform1f(e,r.u_vertical_gradient),u_height_factor:new t.Uniform1f(e,r.u_height_factor),u_image:new t.Uniform1i(e,r.u_image),u_texsize:new t.Uniform2f(e,r.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,r.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,r.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,r.u_scale),u_fade:new t.Uniform1f(e,r.u_fade),u_opacity:new t.Uniform1f(e,r.u_opacity)}},fill:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix)}},fillPattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_image:new t.Uniform1i(e,r.u_image),u_texsize:new t.Uniform2f(e,r.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,r.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,r.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,r.u_scale),u_fade:new t.Uniform1f(e,r.u_fade)}},fillOutline:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_world:new t.Uniform2f(e,r.u_world)}},fillOutlinePattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_world:new t.Uniform2f(e,r.u_world),u_image:new t.Uniform1i(e,r.u_image),u_texsize:new t.Uniform2f(e,r.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,r.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,r.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,r.u_scale),u_fade:new t.Uniform1f(e,r.u_fade)}},circle:function(e,r){return{u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_scale_with_map:new t.Uniform1i(e,r.u_scale_with_map),u_pitch_with_map:new t.Uniform1i(e,r.u_pitch_with_map),u_extrude_scale:new t.Uniform2f(e,r.u_extrude_scale),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_matrix:new t.UniformMatrix4f(e,r.u_matrix)}},collisionBox:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_pixels_to_tile_units:new t.Uniform1f(e,r.u_pixels_to_tile_units),u_extrude_scale:new t.Uniform2f(e,r.u_extrude_scale),u_overscale_factor:new t.Uniform1f(e,r.u_overscale_factor)}},collisionCircle:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_inv_matrix:new t.UniformMatrix4f(e,r.u_inv_matrix),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_viewport_size:new t.Uniform2f(e,r.u_viewport_size)}},debug:function(e,r){return{u_color:new t.UniformColor(e,r.u_color),u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_overlay:new t.Uniform1i(e,r.u_overlay),u_overlay_scale:new t.Uniform1f(e,r.u_overlay_scale)}},clippingMask:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix)}},heatmap:function(e,r){return{u_extrude_scale:new t.Uniform1f(e,r.u_extrude_scale),u_intensity:new t.Uniform1f(e,r.u_intensity),u_matrix:new t.UniformMatrix4f(e,r.u_matrix)}},heatmapTexture:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_world:new t.Uniform2f(e,r.u_world),u_image:new t.Uniform1i(e,r.u_image),u_color_ramp:new t.Uniform1i(e,r.u_color_ramp),u_opacity:new t.Uniform1f(e,r.u_opacity)}},hillshade:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_image:new t.Uniform1i(e,r.u_image),u_latrange:new t.Uniform2f(e,r.u_latrange),u_light:new t.Uniform2f(e,r.u_light),u_shadow:new t.UniformColor(e,r.u_shadow),u_highlight:new t.UniformColor(e,r.u_highlight),u_accent:new t.UniformColor(e,r.u_accent)}},hillshadePrepare:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_image:new t.Uniform1i(e,r.u_image),u_dimension:new t.Uniform2f(e,r.u_dimension),u_zoom:new t.Uniform1f(e,r.u_zoom),u_maxzoom:new t.Uniform1f(e,r.u_maxzoom),u_unpack:new t.Uniform4f(e,r.u_unpack)}},line:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_ratio:new t.Uniform1f(e,r.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,r.u_units_to_pixels)}},lineGradient:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_ratio:new t.Uniform1f(e,r.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,r.u_units_to_pixels),u_image:new t.Uniform1i(e,r.u_image)}},linePattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_texsize:new t.Uniform2f(e,r.u_texsize),u_ratio:new t.Uniform1f(e,r.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_image:new t.Uniform1i(e,r.u_image),u_units_to_pixels:new t.Uniform2f(e,r.u_units_to_pixels),u_scale:new t.Uniform3f(e,r.u_scale),u_fade:new t.Uniform1f(e,r.u_fade)}},lineSDF:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_ratio:new t.Uniform1f(e,r.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,r.u_units_to_pixels),u_patternscale_a:new t.Uniform2f(e,r.u_patternscale_a),u_patternscale_b:new t.Uniform2f(e,r.u_patternscale_b),u_sdfgamma:new t.Uniform1f(e,r.u_sdfgamma),u_image:new t.Uniform1i(e,r.u_image),u_tex_y_a:new t.Uniform1f(e,r.u_tex_y_a),u_tex_y_b:new t.Uniform1f(e,r.u_tex_y_b),u_mix:new t.Uniform1f(e,r.u_mix)}},raster:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_tl_parent:new t.Uniform2f(e,r.u_tl_parent),u_scale_parent:new t.Uniform1f(e,r.u_scale_parent),u_buffer_scale:new t.Uniform1f(e,r.u_buffer_scale),u_fade_t:new t.Uniform1f(e,r.u_fade_t),u_opacity:new t.Uniform1f(e,r.u_opacity),u_image0:new t.Uniform1i(e,r.u_image0),u_image1:new t.Uniform1i(e,r.u_image1),u_brightness_low:new t.Uniform1f(e,r.u_brightness_low),u_brightness_high:new t.Uniform1f(e,r.u_brightness_high),u_saturation_factor:new t.Uniform1f(e,r.u_saturation_factor),u_contrast_factor:new t.Uniform1f(e,r.u_contrast_factor),u_spin_weights:new t.Uniform3f(e,r.u_spin_weights)}},symbolIcon:function(e,r){return{u_is_size_zoom_constant:new t.Uniform1i(e,r.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,r.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,r.u_size_t),u_size:new t.Uniform1f(e,r.u_size),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,r.u_pitch),u_rotate_symbol:new t.Uniform1i(e,r.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,r.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,r.u_fade_change),u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,r.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,r.u_coord_matrix),u_is_text:new t.Uniform1i(e,r.u_is_text),u_pitch_with_map:new t.Uniform1i(e,r.u_pitch_with_map),u_texsize:new t.Uniform2f(e,r.u_texsize),u_texture:new t.Uniform1i(e,r.u_texture)}},symbolSDF:function(e,r){return{u_is_size_zoom_constant:new t.Uniform1i(e,r.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,r.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,r.u_size_t),u_size:new t.Uniform1f(e,r.u_size),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,r.u_pitch),u_rotate_symbol:new t.Uniform1i(e,r.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,r.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,r.u_fade_change),u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,r.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,r.u_coord_matrix),u_is_text:new t.Uniform1i(e,r.u_is_text),u_pitch_with_map:new t.Uniform1i(e,r.u_pitch_with_map),u_texsize:new t.Uniform2f(e,r.u_texsize),u_texture:new t.Uniform1i(e,r.u_texture),u_gamma_scale:new t.Uniform1f(e,r.u_gamma_scale),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_is_halo:new t.Uniform1i(e,r.u_is_halo)}},symbolTextAndIcon:function(e,r){return{u_is_size_zoom_constant:new t.Uniform1i(e,r.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,r.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,r.u_size_t),u_size:new t.Uniform1f(e,r.u_size),u_camera_to_center_distance:new t.Uniform1f(e,r.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,r.u_pitch),u_rotate_symbol:new t.Uniform1i(e,r.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,r.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,r.u_fade_change),u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,r.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,r.u_coord_matrix),u_is_text:new t.Uniform1i(e,r.u_is_text),u_pitch_with_map:new t.Uniform1i(e,r.u_pitch_with_map),u_texsize:new t.Uniform2f(e,r.u_texsize),u_texsize_icon:new t.Uniform2f(e,r.u_texsize_icon),u_texture:new t.Uniform1i(e,r.u_texture),u_texture_icon:new t.Uniform1i(e,r.u_texture_icon),u_gamma_scale:new t.Uniform1f(e,r.u_gamma_scale),u_device_pixel_ratio:new t.Uniform1f(e,r.u_device_pixel_ratio),u_is_halo:new t.Uniform1i(e,r.u_is_halo)}},background:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_opacity:new t.Uniform1f(e,r.u_opacity),u_color:new t.UniformColor(e,r.u_color)}},backgroundPattern:function(e,r){return{u_matrix:new t.UniformMatrix4f(e,r.u_matrix),u_opacity:new t.Uniform1f(e,r.u_opacity),u_image:new t.Uniform1i(e,r.u_image),u_pattern_tl_a:new t.Uniform2f(e,r.u_pattern_tl_a),u_pattern_br_a:new t.Uniform2f(e,r.u_pattern_br_a),u_pattern_tl_b:new t.Uniform2f(e,r.u_pattern_tl_b),u_pattern_br_b:new t.Uniform2f(e,r.u_pattern_br_b),u_texsize:new t.Uniform2f(e,r.u_texsize),u_mix:new t.Uniform1f(e,r.u_mix),u_pattern_size_a:new t.Uniform2f(e,r.u_pattern_size_a),u_pattern_size_b:new t.Uniform2f(e,r.u_pattern_size_b),u_scale_a:new t.Uniform1f(e,r.u_scale_a),u_scale_b:new t.Uniform1f(e,r.u_scale_b),u_pixel_coord_upper:new t.Uniform2f(e,r.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,r.u_pixel_coord_lower),u_tile_units_to_pixels:new t.Uniform1f(e,r.u_tile_units_to_pixels)}}};function Kr(e,r,n,i,a,o,s){for(var l=e.context,c=l.gl,u=e.useProgram("collisionBox"),f=[],h=0,p=0,d=0;d0){var _=t.create(),w=y;t.mul(_,v.placementInvProjMatrix,e.transform.glCoordMatrix),t.mul(_,_,v.placementViewportMatrix),f.push({circleArray:b,circleOffset:p,transform:w,invTransform:_}),p=h+=b.length/4}x&&u.draw(l,c.LINES,Mt.disabled,At.disabled,e.colorModeForRenderPass(),Et.disabled,Cr(y,e.transform,g),n.id,x.layoutVertexBuffer,x.indexBuffer,x.segments,null,e.transform.zoom,null,null,x.collisionVertexBuffer)}}if(s&&f.length){var T=e.useProgram("collisionCircle"),k=new t.StructArrayLayout2f1f2i16;k.resize(4*h),k._trim();for(var M=0,A=0,S=f;A=0&&(m[v.associatedIconIndex]={shiftedAnchor:S,angle:E})}else ue(v.numGlyphs,p)}if(f){d.clear();for(var C=e.icon.placedSymbolArray,P=0;P0){var s=t.browser.now(),l=(s-e.timeAdded)/o,c=r?(s-r.timeAdded)/o:-1,u=n.getSource(),f=a.coveringZoomLevel({tileSize:u.tileSize,roundZoom:u.roundZoom}),h=!r||Math.abs(r.tileID.overscaledZ-f)>Math.abs(e.tileID.overscaledZ-f),p=h&&e.refreshedUponExpiration?1:t.clamp(h?l:1-c,0,1);return e.refreshedUponExpiration&&l>=1&&(e.refreshedUponExpiration=!1),r?{opacity:1,mix:1-p}:{opacity:p,mix:0}}return{opacity:1,mix:0}}var un=new t.Color(1,0,0,1),fn=new t.Color(0,1,0,1),hn=new t.Color(0,0,1,1),pn=new t.Color(1,0,1,1),dn=new t.Color(0,1,1,1);function mn(t){var e=t.transform.padding;gn(t,t.transform.height-(e.top||0),3,un),gn(t,e.bottom||0,3,fn),vn(t,e.left||0,3,hn),vn(t,t.transform.width-(e.right||0),3,pn);var r=t.transform.centerPoint;!function(t,e,r,n){yn(t,e-1,r-10,2,20,n),yn(t,e-10,r-1,20,2,n)}(t,r.x,t.transform.height-r.y,dn)}function gn(t,e,r,n){yn(t,0,e+r/2,t.transform.width,r,n)}function vn(t,e,r,n){yn(t,e-r/2,0,r,t.transform.height,n)}function yn(e,r,n,i,a,o){var s=e.context,l=s.gl;l.enable(l.SCISSOR_TEST),l.scissor(r*t.browser.devicePixelRatio,n*t.browser.devicePixelRatio,i*t.browser.devicePixelRatio,a*t.browser.devicePixelRatio),s.clear({color:o}),l.disable(l.SCISSOR_TEST)}function xn(e,r,n){var i=e.context,a=i.gl,o=n.posMatrix,s=e.useProgram("debug"),l=Mt.disabled,c=At.disabled,u=e.colorModeForRenderPass();i.activeTexture.set(a.TEXTURE0),e.emptyTexture.bind(a.LINEAR,a.CLAMP_TO_EDGE),s.draw(i,a.LINE_STRIP,l,c,u,Et.disabled,Ir(o,t.Color.red),"$debug",e.debugBuffer,e.tileBorderIndexBuffer,e.debugSegments);var f=r.getTileByID(n.key).latestRawTileData,h=f&&f.byteLength||0,p=Math.floor(h/1024),d=r.getTile(n).tileSize,m=512/Math.min(d,512)*(n.overscaledZ/e.transform.zoom)*.5,g=n.canonical.toString();n.overscaledZ!==n.canonical.z&&(g+=" => "+n.overscaledZ),function(t,e){t.initDebugOverlayCanvas();var r=t.debugOverlayCanvas,n=t.context.gl,i=t.debugOverlayCanvas.getContext("2d");i.clearRect(0,0,r.width,r.height),i.shadowColor="white",i.shadowBlur=2,i.lineWidth=1.5,i.strokeStyle="white",i.textBaseline="top",i.font="bold 36px Open Sans, sans-serif",i.fillText(e,5,5),i.strokeText(e,5,5),t.debugOverlayTexture.update(r),t.debugOverlayTexture.bind(n.LINEAR,n.CLAMP_TO_EDGE)}(e,g+" "+p+"kb"),s.draw(i,a.TRIANGLES,l,c,St.alphaBlended,Et.disabled,Ir(o,t.Color.transparent,m),"$debug",e.debugBuffer,e.quadTriangleIndexBuffer,e.debugSegments)}var bn={symbol:function(e,r,n,i,a){if("translucent"===e.renderPass){var o=At.disabled,s=e.colorModeForRenderPass();n.layout.get("text-variable-anchor")&&function(e,r,n,i,a,o,s){for(var l=r.transform,c="map"===a,u="map"===o,f=0,h=e;f256&&this.clearStencil(),r.setColorMode(St.disabled),r.setDepthMode(Mt.disabled);var i=this.useProgram("clippingMask");this._tileClippingMaskIDs={};for(var a=0,o=e;a256&&this.clearStencil();var t=this.nextStencilID++,e=this.context.gl;return new At({func:e.NOTEQUAL,mask:255},t,255,e.KEEP,e.KEEP,e.REPLACE)},_n.prototype.stencilModeForClipping=function(t){var e=this.context.gl;return new At({func:e.EQUAL,mask:255},this._tileClippingMaskIDs[t.key],0,e.KEEP,e.KEEP,e.REPLACE)},_n.prototype.stencilConfigForOverlap=function(t){var e,r=this.context.gl,n=t.sort((function(t,e){return e.overscaledZ-t.overscaledZ})),i=n[n.length-1].overscaledZ,a=n[0].overscaledZ-i+1;if(a>1){this.currentStencilSource=void 0,this.nextStencilID+a>256&&this.clearStencil();for(var o={},s=0;s=0;this.currentLayer--){var w=this.style._layers[i[this.currentLayer]],T=a[w.source],k=u[w.source];this._renderTileClippingMasks(w,k),this.renderLayer(this,T,w,k)}for(this.renderPass="translucent",this.currentLayer=0;this.currentLayer0?e.pop():null},_n.prototype.isPatternMissing=function(t){if(!t)return!1;if(!t.from||!t.to)return!0;var e=this.imageManager.getPattern(t.from.toString()),r=this.imageManager.getPattern(t.to.toString());return!e||!r},_n.prototype.useProgram=function(t,e){this.cache=this.cache||{};var r=""+t+(e?e.cacheKey:"")+(this._showOverdrawInspector?"/overdraw":"");return this.cache[r]||(this.cache[r]=new _r(this.context,xr[t],e,Jr[t],this._showOverdrawInspector)),this.cache[r]},_n.prototype.setCustomLayerDefaults=function(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()},_n.prototype.setBaseState=function(){var t=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(t.FUNC_ADD)},_n.prototype.initDebugOverlayCanvas=function(){if(null==this.debugOverlayCanvas){this.debugOverlayCanvas=t.window.document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512;var e=this.context.gl;this.debugOverlayTexture=new t.Texture(this.context,this.debugOverlayCanvas,e.RGBA)}},_n.prototype.destroy=function(){this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy()};var wn=function(t,e){this.points=t,this.planes=e};wn.fromInvProjectionMatrix=function(e,r,n){var i=Math.pow(2,n),a=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map((function(r){return t.transformMat4([],r,e)})).map((function(e){return t.scale$1([],e,1/e[3]/r*i)})),o=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map((function(e){var r=t.sub([],a[e[0]],a[e[1]]),n=t.sub([],a[e[2]],a[e[1]]),i=t.normalize([],t.cross([],r,n)),o=-t.dot(i,a[e[1]]);return i.concat(o)}));return new wn(a,o)};var Tn=function(e,r){this.min=e,this.max=r,this.center=t.scale$2([],t.add([],this.min,this.max),.5)};Tn.prototype.quadrant=function(e){for(var r=[e%2==0,e<2],n=t.clone$2(this.min),i=t.clone$2(this.max),a=0;a=0;if(0===o)return 0;o!==r.length&&(n=!1)}if(n)return 2;for(var l=0;l<3;l++){for(var c=Number.MAX_VALUE,u=-Number.MAX_VALUE,f=0;fthis.max[l]-this.min[l])return 0}return 1};var kn=function(t,e,r,n){if(void 0===t&&(t=0),void 0===e&&(e=0),void 0===r&&(r=0),void 0===n&&(n=0),isNaN(t)||t<0||isNaN(e)||e<0||isNaN(r)||r<0||isNaN(n)||n<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=t,this.bottom=e,this.left=r,this.right=n};kn.prototype.interpolate=function(e,r,n){return null!=r.top&&null!=e.top&&(this.top=t.number(e.top,r.top,n)),null!=r.bottom&&null!=e.bottom&&(this.bottom=t.number(e.bottom,r.bottom,n)),null!=r.left&&null!=e.left&&(this.left=t.number(e.left,r.left,n)),null!=r.right&&null!=e.right&&(this.right=t.number(e.right,r.right,n)),this},kn.prototype.getCenter=function(e,r){var n=t.clamp((this.left+e-this.right)/2,0,e),i=t.clamp((this.top+r-this.bottom)/2,0,r);return new t.Point(n,i)},kn.prototype.equals=function(t){return this.top===t.top&&this.bottom===t.bottom&&this.left===t.left&&this.right===t.right},kn.prototype.clone=function(){return new kn(this.top,this.bottom,this.left,this.right)},kn.prototype.toJSON=function(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}};var Mn=function(e,r,n,i,a){this.tileSize=512,this.maxValidLatitude=85.051129,this._renderWorldCopies=void 0===a||a,this._minZoom=e||0,this._maxZoom=r||22,this._minPitch=null==n?0:n,this._maxPitch=null==i?60:i,this.setMaxBounds(),this.width=0,this.height=0,this._center=new t.LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._edgeInsets=new kn,this._posMatrixCache={},this._alignedPosMatrixCache={}},An={minZoom:{configurable:!0},maxZoom:{configurable:!0},minPitch:{configurable:!0},maxPitch:{configurable:!0},renderWorldCopies:{configurable:!0},worldSize:{configurable:!0},centerOffset:{configurable:!0},size:{configurable:!0},bearing:{configurable:!0},pitch:{configurable:!0},fov:{configurable:!0},zoom:{configurable:!0},center:{configurable:!0},padding:{configurable:!0},centerPoint:{configurable:!0},unmodified:{configurable:!0},point:{configurable:!0}};Mn.prototype.clone=function(){var t=new Mn(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies);return t.tileSize=this.tileSize,t.latRange=this.latRange,t.width=this.width,t.height=this.height,t._center=this._center,t.zoom=this.zoom,t.angle=this.angle,t._fov=this._fov,t._pitch=this._pitch,t._unmodified=this._unmodified,t._edgeInsets=this._edgeInsets.clone(),t._calcMatrices(),t},An.minZoom.get=function(){return this._minZoom},An.minZoom.set=function(t){this._minZoom!==t&&(this._minZoom=t,this.zoom=Math.max(this.zoom,t))},An.maxZoom.get=function(){return this._maxZoom},An.maxZoom.set=function(t){this._maxZoom!==t&&(this._maxZoom=t,this.zoom=Math.min(this.zoom,t))},An.minPitch.get=function(){return this._minPitch},An.minPitch.set=function(t){this._minPitch!==t&&(this._minPitch=t,this.pitch=Math.max(this.pitch,t))},An.maxPitch.get=function(){return this._maxPitch},An.maxPitch.set=function(t){this._maxPitch!==t&&(this._maxPitch=t,this.pitch=Math.min(this.pitch,t))},An.renderWorldCopies.get=function(){return this._renderWorldCopies},An.renderWorldCopies.set=function(t){void 0===t?t=!0:null===t&&(t=!1),this._renderWorldCopies=t},An.worldSize.get=function(){return this.tileSize*this.scale},An.centerOffset.get=function(){return this.centerPoint._sub(this.size._div(2))},An.size.get=function(){return new t.Point(this.width,this.height)},An.bearing.get=function(){return-this.angle/Math.PI*180},An.bearing.set=function(e){var r=-t.wrap(e,-180,180)*Math.PI/180;this.angle!==r&&(this._unmodified=!1,this.angle=r,this._calcMatrices(),this.rotationMatrix=t.create$2(),t.rotate(this.rotationMatrix,this.rotationMatrix,this.angle))},An.pitch.get=function(){return this._pitch/Math.PI*180},An.pitch.set=function(e){var r=t.clamp(e,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==r&&(this._unmodified=!1,this._pitch=r,this._calcMatrices())},An.fov.get=function(){return this._fov/Math.PI*180},An.fov.set=function(t){t=Math.max(.01,Math.min(60,t)),this._fov!==t&&(this._unmodified=!1,this._fov=t/180*Math.PI,this._calcMatrices())},An.zoom.get=function(){return this._zoom},An.zoom.set=function(t){var e=Math.min(Math.max(t,this.minZoom),this.maxZoom);this._zoom!==e&&(this._unmodified=!1,this._zoom=e,this.scale=this.zoomScale(e),this.tileZoom=Math.floor(e),this.zoomFraction=e-this.tileZoom,this._constrain(),this._calcMatrices())},An.center.get=function(){return this._center},An.center.set=function(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this._constrain(),this._calcMatrices())},An.padding.get=function(){return this._edgeInsets.toJSON()},An.padding.set=function(t){this._edgeInsets.equals(t)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,t,1),this._calcMatrices())},An.centerPoint.get=function(){return this._edgeInsets.getCenter(this.width,this.height)},Mn.prototype.isPaddingEqual=function(t){return this._edgeInsets.equals(t)},Mn.prototype.interpolatePadding=function(t,e,r){this._unmodified=!1,this._edgeInsets.interpolate(t,e,r),this._constrain(),this._calcMatrices()},Mn.prototype.coveringZoomLevel=function(t){var e=(t.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/t.tileSize));return Math.max(0,e)},Mn.prototype.getVisibleUnwrappedCoordinates=function(e){var r=[new t.UnwrappedTileID(0,e)];if(this._renderWorldCopies)for(var n=this.pointCoordinate(new t.Point(0,0)),i=this.pointCoordinate(new t.Point(this.width,0)),a=this.pointCoordinate(new t.Point(this.width,this.height)),o=this.pointCoordinate(new t.Point(0,this.height)),s=Math.floor(Math.min(n.x,i.x,a.x,o.x)),l=Math.floor(Math.max(n.x,i.x,a.x,o.x)),c=s-1;c<=l+1;c++)0!==c&&r.push(new t.UnwrappedTileID(c,e));return r},Mn.prototype.coveringTiles=function(e){var r=this.coveringZoomLevel(e),n=r;if(void 0!==e.minzoom&&re.maxzoom&&(r=e.maxzoom);var i=t.MercatorCoordinate.fromLngLat(this.center),a=Math.pow(2,r),o=[a*i.x,a*i.y,0],s=wn.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,r),l=e.minzoom||0;this.pitch<=60&&this._edgeInsets.top<.1&&(l=r);var c=function(t){return{aabb:new Tn([t*a,0,0],[(t+1)*a,a,0]),zoom:0,x:0,y:0,wrap:t,fullyVisible:!1}},u=[],f=[],h=r,p=e.reparseOverscaled?n:r;if(this._renderWorldCopies)for(var d=1;d<=3;d++)u.push(c(-d)),u.push(c(d));for(u.push(c(0));u.length>0;){var m=u.pop(),g=m.x,v=m.y,y=m.fullyVisible;if(!y){var x=m.aabb.intersects(s);if(0===x)continue;y=2===x}var b=m.aabb.distanceX(o),_=m.aabb.distanceY(o),w=Math.max(Math.abs(b),Math.abs(_)),T=3+(1<T&&m.zoom>=l)f.push({tileID:new t.OverscaledTileID(m.zoom===h?p:m.zoom,m.wrap,m.zoom,g,v),distanceSq:t.sqrLen([o[0]-.5-g,o[1]-.5-v])});else for(var k=0;k<4;k++){var M=(g<<1)+k%2,A=(v<<1)+(k>>1);u.push({aabb:m.aabb.quadrant(k),zoom:m.zoom+1,x:M,y:A,wrap:m.wrap,fullyVisible:y})}}return f.sort((function(t,e){return t.distanceSq-e.distanceSq})).map((function(t){return t.tileID}))},Mn.prototype.resize=function(t,e){this.width=t,this.height=e,this.pixelsToGLUnits=[2/t,-2/e],this._constrain(),this._calcMatrices()},An.unmodified.get=function(){return this._unmodified},Mn.prototype.zoomScale=function(t){return Math.pow(2,t)},Mn.prototype.scaleZoom=function(t){return Math.log(t)/Math.LN2},Mn.prototype.project=function(e){var r=t.clamp(e.lat,-this.maxValidLatitude,this.maxValidLatitude);return new t.Point(t.mercatorXfromLng(e.lng)*this.worldSize,t.mercatorYfromLat(r)*this.worldSize)},Mn.prototype.unproject=function(e){return new t.MercatorCoordinate(e.x/this.worldSize,e.y/this.worldSize).toLngLat()},An.point.get=function(){return this.project(this.center)},Mn.prototype.setLocationAtPoint=function(e,r){var n=this.pointCoordinate(r),i=this.pointCoordinate(this.centerPoint),a=this.locationCoordinate(e),o=new t.MercatorCoordinate(a.x-(n.x-i.x),a.y-(n.y-i.y));this.center=this.coordinateLocation(o),this._renderWorldCopies&&(this.center=this.center.wrap())},Mn.prototype.locationPoint=function(t){return this.coordinatePoint(this.locationCoordinate(t))},Mn.prototype.pointLocation=function(t){return this.coordinateLocation(this.pointCoordinate(t))},Mn.prototype.locationCoordinate=function(e){return t.MercatorCoordinate.fromLngLat(e)},Mn.prototype.coordinateLocation=function(t){return t.toLngLat()},Mn.prototype.pointCoordinate=function(e){var r=[e.x,e.y,0,1],n=[e.x,e.y,1,1];t.transformMat4(r,r,this.pixelMatrixInverse),t.transformMat4(n,n,this.pixelMatrixInverse);var i=r[3],a=n[3],o=r[0]/i,s=n[0]/a,l=r[1]/i,c=n[1]/a,u=r[2]/i,f=n[2]/a,h=u===f?0:(0-u)/(f-u);return new t.MercatorCoordinate(t.number(o,s,h)/this.worldSize,t.number(l,c,h)/this.worldSize)},Mn.prototype.coordinatePoint=function(e){var r=[e.x*this.worldSize,e.y*this.worldSize,0,1];return t.transformMat4(r,r,this.pixelMatrix),new t.Point(r[0]/r[3],r[1]/r[3])},Mn.prototype.getBounds=function(){return(new t.LngLatBounds).extend(this.pointLocation(new t.Point(0,0))).extend(this.pointLocation(new t.Point(this.width,0))).extend(this.pointLocation(new t.Point(this.width,this.height))).extend(this.pointLocation(new t.Point(0,this.height)))},Mn.prototype.getMaxBounds=function(){return this.latRange&&2===this.latRange.length&&this.lngRange&&2===this.lngRange.length?new t.LngLatBounds([this.lngRange[0],this.latRange[0]],[this.lngRange[1],this.latRange[1]]):null},Mn.prototype.setMaxBounds=function(t){t?(this.lngRange=[t.getWest(),t.getEast()],this.latRange=[t.getSouth(),t.getNorth()],this._constrain()):(this.lngRange=null,this.latRange=[-this.maxValidLatitude,this.maxValidLatitude])},Mn.prototype.calculatePosMatrix=function(e,r){void 0===r&&(r=!1);var n=e.key,i=r?this._alignedPosMatrixCache:this._posMatrixCache;if(i[n])return i[n];var a=e.canonical,o=this.worldSize/this.zoomScale(a.z),s=a.x+Math.pow(2,a.z)*e.wrap,l=t.identity(new Float64Array(16));return t.translate(l,l,[s*o,a.y*o,0]),t.scale(l,l,[o/t.EXTENT,o/t.EXTENT,1]),t.multiply(l,r?this.alignedProjMatrix:this.projMatrix,l),i[n]=new Float32Array(l),i[n]},Mn.prototype.customLayerMatrix=function(){return this.mercatorMatrix.slice()},Mn.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var e,r,n,i,a=-90,o=90,s=-180,l=180,c=this.size,u=this._unmodified;if(this.latRange){var f=this.latRange;a=t.mercatorYfromLat(f[1])*this.worldSize,e=(o=t.mercatorYfromLat(f[0])*this.worldSize)-ao&&(i=o-g)}if(this.lngRange){var v=p.x,y=c.x/2;v-yl&&(n=l-y)}void 0===n&&void 0===i||(this.center=this.unproject(new t.Point(void 0!==n?n:p.x,void 0!==i?i:p.y))),this._unmodified=u,this._constraining=!1}},Mn.prototype._calcMatrices=function(){if(this.height){var e=this._fov/2,r=this.centerOffset;this.cameraToCenterDistance=.5/Math.tan(e)*this.height;var n=Math.PI/2+this._pitch,i=this._fov*(.5+r.y/this.height),a=Math.sin(i)*this.cameraToCenterDistance/Math.sin(t.clamp(Math.PI-n-i,.01,Math.PI-.01)),o=this.point,s=o.x,l=o.y,c=1.01*(Math.cos(Math.PI/2-this._pitch)*a+this.cameraToCenterDistance),u=this.height/50,f=new Float64Array(16);t.perspective(f,this._fov,this.width/this.height,u,c),f[8]=2*-r.x/this.width,f[9]=2*r.y/this.height,t.scale(f,f,[1,-1,1]),t.translate(f,f,[0,0,-this.cameraToCenterDistance]),t.rotateX(f,f,this._pitch),t.rotateZ(f,f,this.angle),t.translate(f,f,[-s,-l,0]),this.mercatorMatrix=t.scale([],f,[this.worldSize,this.worldSize,this.worldSize]),t.scale(f,f,[1,1,t.mercatorZfromAltitude(1,this.center.lat)*this.worldSize,1]),this.projMatrix=f,this.invProjMatrix=t.invert([],this.projMatrix);var h=this.width%2/2,p=this.height%2/2,d=Math.cos(this.angle),m=Math.sin(this.angle),g=s-Math.round(s)+d*h+m*p,v=l-Math.round(l)+d*p+m*h,y=new Float64Array(f);if(t.translate(y,y,[g>.5?g-1:g,v>.5?v-1:v,0]),this.alignedProjMatrix=y,f=t.create(),t.scale(f,f,[this.width/2,-this.height/2,1]),t.translate(f,f,[1,-1,0]),this.labelPlaneMatrix=f,f=t.create(),t.scale(f,f,[1,-1,1]),t.translate(f,f,[-1,-1,0]),t.scale(f,f,[2/this.width,2/this.height,1]),this.glCoordMatrix=f,this.pixelMatrix=t.multiply(new Float64Array(16),this.labelPlaneMatrix,this.projMatrix),!(f=t.invert(new Float64Array(16),this.pixelMatrix)))throw new Error("failed to invert matrix");this.pixelMatrixInverse=f,this._posMatrixCache={},this._alignedPosMatrixCache={}}},Mn.prototype.maxPitchScaleFactor=function(){if(!this.pixelMatrixInverse)return 1;var e=this.pointCoordinate(new t.Point(0,0)),r=[e.x*this.worldSize,e.y*this.worldSize,0,1];return t.transformMat4(r,r,this.pixelMatrix)[3]/this.cameraToCenterDistance},Mn.prototype.getCameraPoint=function(){var e=this._pitch,r=Math.tan(e)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new t.Point(0,r))},Mn.prototype.getCameraQueryGeometry=function(e){var r=this.getCameraPoint();if(1===e.length)return[e[0],r];for(var n=r.x,i=r.y,a=r.x,o=r.y,s=0,l=e;s=3&&!t.some((function(t){return isNaN(t)}))){var e=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(t[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+t[2],+t[1]],zoom:+t[0],bearing:e,pitch:+(t[4]||0)}),!0}return!1},Sn.prototype._updateHashUnthrottled=function(){var e=this.getHashString();try{t.window.history.replaceState(t.window.history.state,"",e)}catch(t){}};var En={linearity:.3,easing:t.bezier(0,0,.3,1)},Ln=t.extend({deceleration:2500,maxSpeed:1400},En),Cn=t.extend({deceleration:20,maxSpeed:1400},En),Pn=t.extend({deceleration:1e3,maxSpeed:360},En),In=t.extend({deceleration:1e3,maxSpeed:90},En),On=function(t){this._map=t,this.clear()};function zn(t,e){(!t.duration||t.duration0&&r-e[0].time>160;)e.shift()},On.prototype._onMoveEnd=function(e){if(this._drainInertiaBuffer(),!(this._inertiaBuffer.length<2)){for(var r={zoom:0,bearing:0,pitch:0,pan:new t.Point(0,0),pinchAround:void 0,around:void 0},n=0,i=this._inertiaBuffer;n=this._clickTolerance||this._map.fire(new Rn(t.type,this._map,t))},Nn.prototype.dblclick=function(t){return this._firePreventable(new Rn(t.type,this._map,t))},Nn.prototype.mouseover=function(t){this._map.fire(new Rn(t.type,this._map,t))},Nn.prototype.mouseout=function(t){this._map.fire(new Rn(t.type,this._map,t))},Nn.prototype.touchstart=function(t){return this._firePreventable(new Fn(t.type,this._map,t))},Nn.prototype.touchmove=function(t){this._map.fire(new Fn(t.type,this._map,t))},Nn.prototype.touchend=function(t){this._map.fire(new Fn(t.type,this._map,t))},Nn.prototype.touchcancel=function(t){this._map.fire(new Fn(t.type,this._map,t))},Nn.prototype._firePreventable=function(t){if(this._map.fire(t),t.defaultPrevented)return{}},Nn.prototype.isEnabled=function(){return!0},Nn.prototype.isActive=function(){return!1},Nn.prototype.enable=function(){},Nn.prototype.disable=function(){};var jn=function(t){this._map=t};jn.prototype.reset=function(){this._delayContextMenu=!1,delete this._contextMenuEvent},jn.prototype.mousemove=function(t){this._map.fire(new Rn(t.type,this._map,t))},jn.prototype.mousedown=function(){this._delayContextMenu=!0},jn.prototype.mouseup=function(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new Rn("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)},jn.prototype.contextmenu=function(t){this._delayContextMenu?this._contextMenuEvent=t:this._map.fire(new Rn(t.type,this._map,t)),this._map.listens("contextmenu")&&t.preventDefault()},jn.prototype.isEnabled=function(){return!0},jn.prototype.isActive=function(){return!1},jn.prototype.enable=function(){},jn.prototype.disable=function(){};var Un=function(t,e){this._map=t,this._el=t.getCanvasContainer(),this._container=t.getContainer(),this._clickTolerance=e.clickTolerance||1};function Vn(t,e){for(var r={},n=0;nthis.numTouches)&&(this.aborted=!0),this.aborted||(void 0===this.startTime&&(this.startTime=e.timeStamp),n.length===this.numTouches&&(this.centroid=function(e){for(var r=new t.Point(0,0),n=0,i=e;n30)&&(this.aborted=!0)}}},qn.prototype.touchend=function(t,e,r){if((!this.centroid||t.timeStamp-this.startTime>500)&&(this.aborted=!0),0===r.length){var n=!this.aborted&&this.centroid;if(this.reset(),n)return n}};var Hn=function(t){this.singleTap=new qn(t),this.numTaps=t.numTaps,this.reset()};Hn.prototype.reset=function(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()},Hn.prototype.touchstart=function(t,e,r){this.singleTap.touchstart(t,e,r)},Hn.prototype.touchmove=function(t,e,r){this.singleTap.touchmove(t,e,r)},Hn.prototype.touchend=function(t,e,r){var n=this.singleTap.touchend(t,e,r);if(n){var i=t.timeStamp-this.lastTime<500,a=!this.lastTap||this.lastTap.dist(n)<30;if(i&&a||this.reset(),this.count++,this.lastTime=t.timeStamp,this.lastTap=n,this.count===this.numTaps)return this.reset(),n}};var Gn=function(){this._zoomIn=new Hn({numTouches:1,numTaps:2}),this._zoomOut=new Hn({numTouches:2,numTaps:1}),this.reset()};Gn.prototype.reset=function(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()},Gn.prototype.touchstart=function(t,e,r){this._zoomIn.touchstart(t,e,r),this._zoomOut.touchstart(t,e,r)},Gn.prototype.touchmove=function(t,e,r){this._zoomIn.touchmove(t,e,r),this._zoomOut.touchmove(t,e,r)},Gn.prototype.touchend=function(t,e,r){var n=this,i=this._zoomIn.touchend(t,e,r),a=this._zoomOut.touchend(t,e,r);return i?(this._active=!0,t.preventDefault(),setTimeout((function(){return n.reset()}),0),{cameraAnimation:function(e){return e.easeTo({duration:300,zoom:e.getZoom()+1,around:e.unproject(i)},{originalEvent:t})}}):a?(this._active=!0,t.preventDefault(),setTimeout((function(){return n.reset()}),0),{cameraAnimation:function(e){return e.easeTo({duration:300,zoom:e.getZoom()-1,around:e.unproject(a)},{originalEvent:t})}}):void 0},Gn.prototype.touchcancel=function(){this.reset()},Gn.prototype.enable=function(){this._enabled=!0},Gn.prototype.disable=function(){this._enabled=!1,this.reset()},Gn.prototype.isEnabled=function(){return this._enabled},Gn.prototype.isActive=function(){return this._active};var Yn=function(t){this.reset(),this._clickTolerance=t.clickTolerance||1};Yn.prototype.reset=function(){this._active=!1,this._moved=!1,delete this._lastPoint,delete this._eventButton},Yn.prototype._correctButton=function(t,e){return!1},Yn.prototype._move=function(t,e){return{}},Yn.prototype.mousedown=function(t,e){if(!this._lastPoint){var n=r.mouseButton(t);this._correctButton(t,n)&&(this._lastPoint=e,this._eventButton=n)}},Yn.prototype.mousemoveWindow=function(t,e){var r=this._lastPoint;if(r&&(t.preventDefault(),this._moved||!(e.dist(r)0&&(this._active=!0);var i=Vn(n,r),a=new t.Point(0,0),o=new t.Point(0,0),s=0;for(var l in i){var c=i[l],u=this._touches[l];u&&(a._add(c),o._add(c.sub(u)),s++,i[l]=c)}if(this._touches=i,!(sMath.abs(t.x)}var ii=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.reset=function(){t.prototype.reset.call(this),this._valid=void 0,delete this._firstMove,delete this._lastPoints},e.prototype._start=function(t){this._lastPoints=t,ni(t[0].sub(t[1]))&&(this._valid=!1)},e.prototype._move=function(t,e,r){var n=t[0].sub(this._lastPoints[0]),i=t[1].sub(this._lastPoints[1]);if(this._valid=this.gestureBeginsVertically(n,i,r.timeStamp),this._valid){this._lastPoints=t,this._active=!0;return{pitchDelta:-.5*((n.y+i.y)/2)}}},e.prototype.gestureBeginsVertically=function(t,e,r){if(void 0!==this._valid)return this._valid;var n=t.mag()>=2,i=e.mag()>=2;if(n||i){if(!n||!i)return void 0===this._firstMove&&(this._firstMove=r),r-this._firstMove<100&&void 0;var a=t.y>0==e.y>0;return ni(t)&&ni(e)&&a}},e}(Kn),ai={panStep:100,bearingStep:15,pitchStep:10},oi=function(){var t=ai;this._panStep=t.panStep,this._bearingStep=t.bearingStep,this._pitchStep=t.pitchStep};function si(t){return t*(2-t)}oi.prototype.reset=function(){this._active=!1},oi.prototype.keydown=function(t){var e=this;if(!(t.altKey||t.ctrlKey||t.metaKey)){var r=0,n=0,i=0,a=0,o=0;switch(t.keyCode){case 61:case 107:case 171:case 187:r=1;break;case 189:case 109:case 173:r=-1;break;case 37:t.shiftKey?n=-1:(t.preventDefault(),a=-1);break;case 39:t.shiftKey?n=1:(t.preventDefault(),a=1);break;case 38:t.shiftKey?i=1:(t.preventDefault(),o=-1);break;case 40:t.shiftKey?i=-1:(t.preventDefault(),o=1);break;default:return}return{cameraAnimation:function(s){var l=s.getZoom();s.easeTo({duration:300,easeId:"keyboardHandler",easing:si,zoom:r?Math.round(l)+r*(t.shiftKey?2:1):l,bearing:s.getBearing()+n*e._bearingStep,pitch:s.getPitch()+i*e._pitchStep,offset:[-a*e._panStep,-o*e._panStep],center:s.getCenter()},{originalEvent:t})}}}},oi.prototype.enable=function(){this._enabled=!0},oi.prototype.disable=function(){this._enabled=!1,this.reset()},oi.prototype.isEnabled=function(){return this._enabled},oi.prototype.isActive=function(){return this._active};var li=function(e,r){this._map=e,this._el=e.getCanvasContainer(),this._handler=r,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=1/450,t.bindAll(["_onWheel","_onTimeout","_onScrollFrame","_onScrollFinished"],this)};li.prototype.setZoomRate=function(t){this._defaultZoomRate=t},li.prototype.setWheelZoomRate=function(t){this._wheelZoomRate=t},li.prototype.isEnabled=function(){return!!this._enabled},li.prototype.isActive=function(){return!!this._active||void 0!==this._finishTimeout},li.prototype.isZooming=function(){return!!this._zooming},li.prototype.enable=function(t){this.isEnabled()||(this._enabled=!0,this._aroundCenter=t&&"center"===t.around)},li.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)},li.prototype.wheel=function(e){if(this.isEnabled()){var r=e.deltaMode===t.window.WheelEvent.DOM_DELTA_LINE?40*e.deltaY:e.deltaY,n=t.browser.now(),i=n-(this._lastWheelEventTime||0);this._lastWheelEventTime=n,0!==r&&r%4.000244140625==0?this._type="wheel":0!==r&&Math.abs(r)<4?this._type="trackpad":i>400?(this._type=null,this._lastValue=r,this._timeout=setTimeout(this._onTimeout,40,e)):this._type||(this._type=Math.abs(i*r)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,r+=this._lastValue)),e.shiftKey&&r&&(r/=4),this._type&&(this._lastWheelEvent=e,this._delta-=r,this._active||this._start(e)),e.preventDefault()}},li.prototype._onTimeout=function(t){this._type="wheel",this._delta-=this._lastValue,this._active||this._start(t)},li.prototype._start=function(e){if(this._delta){this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);var n=r.mousePos(this._el,e);this._around=t.LngLat.convert(this._aroundCenter?this._map.getCenter():this._map.unproject(n)),this._aroundPoint=this._map.transform.locationPoint(this._around),this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame())}},li.prototype.renderFrame=function(){return this._onScrollFrame()},li.prototype._onScrollFrame=function(){var e=this;if(this._frameId&&(this._frameId=null,this.isActive())){var r=this._map.transform;if(0!==this._delta){var n="wheel"===this._type&&Math.abs(this._delta)>4.000244140625?this._wheelZoomRate:this._defaultZoomRate,i=2/(1+Math.exp(-Math.abs(this._delta*n)));this._delta<0&&0!==i&&(i=1/i);var a="number"==typeof this._targetZoom?r.zoomScale(this._targetZoom):r.scale;this._targetZoom=Math.min(r.maxZoom,Math.max(r.minZoom,r.scaleZoom(a*i))),"wheel"===this._type&&(this._startZoom=r.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}var o,s="number"==typeof this._targetZoom?this._targetZoom:r.zoom,l=this._startZoom,c=this._easing,u=!1;if("wheel"===this._type&&l&&c){var f=Math.min((t.browser.now()-this._lastWheelEventTime)/200,1),h=c(f);o=t.number(l,s,h),f<1?this._frameId||(this._frameId=!0):u=!0}else o=s,u=!0;return this._active=!0,u&&(this._active=!1,this._finishTimeout=setTimeout((function(){e._zooming=!1,e._handler._triggerRenderFrame(),delete e._targetZoom,delete e._finishTimeout}),200)),{noInertia:!0,needsRenderFrame:!u,zoomDelta:o-r.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}},li.prototype._smoothOutEasing=function(e){var r=t.ease;if(this._prevEase){var n=this._prevEase,i=(t.browser.now()-n.start)/n.duration,a=n.easing(i+.01)-n.easing(i),o=.27/Math.sqrt(a*a+1e-4)*.01,s=Math.sqrt(.0729-o*o);r=t.bezier(o,s,.25,1)}return this._prevEase={start:t.browser.now(),duration:e,easing:r},r},li.prototype.reset=function(){this._active=!1};var ci=function(t,e){this._clickZoom=t,this._tapZoom=e};ci.prototype.enable=function(){this._clickZoom.enable(),this._tapZoom.enable()},ci.prototype.disable=function(){this._clickZoom.disable(),this._tapZoom.disable()},ci.prototype.isEnabled=function(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()},ci.prototype.isActive=function(){return this._clickZoom.isActive()||this._tapZoom.isActive()};var ui=function(){this.reset()};ui.prototype.reset=function(){this._active=!1},ui.prototype.dblclick=function(t,e){return t.preventDefault(),{cameraAnimation:function(r){r.easeTo({duration:300,zoom:r.getZoom()+(t.shiftKey?-1:1),around:r.unproject(e)},{originalEvent:t})}}},ui.prototype.enable=function(){this._enabled=!0},ui.prototype.disable=function(){this._enabled=!1,this.reset()},ui.prototype.isEnabled=function(){return this._enabled},ui.prototype.isActive=function(){return this._active};var fi=function(){this._tap=new Hn({numTouches:1,numTaps:1}),this.reset()};fi.prototype.reset=function(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,this._tap.reset()},fi.prototype.touchstart=function(t,e,r){this._swipePoint||(this._tapTime&&t.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?r.length>0&&(this._swipePoint=e[0],this._swipeTouch=r[0].identifier):this._tap.touchstart(t,e,r))},fi.prototype.touchmove=function(t,e,r){if(this._tapTime){if(this._swipePoint){if(r[0].identifier!==this._swipeTouch)return;var n=e[0],i=n.y-this._swipePoint.y;return this._swipePoint=n,t.preventDefault(),this._active=!0,{zoomDelta:i/128}}}else this._tap.touchmove(t,e,r)},fi.prototype.touchend=function(t,e,r){this._tapTime?this._swipePoint&&0===r.length&&this.reset():this._tap.touchend(t,e,r)&&(this._tapTime=t.timeStamp)},fi.prototype.touchcancel=function(){this.reset()},fi.prototype.enable=function(){this._enabled=!0},fi.prototype.disable=function(){this._enabled=!1,this.reset()},fi.prototype.isEnabled=function(){return this._enabled},fi.prototype.isActive=function(){return this._active};var hi=function(t,e,r){this._el=t,this._mousePan=e,this._touchPan=r};hi.prototype.enable=function(t){this._inertiaOptions=t||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("mapboxgl-touch-drag-pan")},hi.prototype.disable=function(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("mapboxgl-touch-drag-pan")},hi.prototype.isEnabled=function(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()},hi.prototype.isActive=function(){return this._mousePan.isActive()||this._touchPan.isActive()};var pi=function(t,e,r){this._pitchWithRotate=t.pitchWithRotate,this._mouseRotate=e,this._mousePitch=r};pi.prototype.enable=function(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable()},pi.prototype.disable=function(){this._mouseRotate.disable(),this._mousePitch.disable()},pi.prototype.isEnabled=function(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())},pi.prototype.isActive=function(){return this._mouseRotate.isActive()||this._mousePitch.isActive()};var di=function(t,e,r,n){this._el=t,this._touchZoom=e,this._touchRotate=r,this._tapDragZoom=n,this._rotationDisabled=!1,this._enabled=!0};di.prototype.enable=function(t){this._touchZoom.enable(t),this._rotationDisabled||this._touchRotate.enable(t),this._tapDragZoom.enable(),this._el.classList.add("mapboxgl-touch-zoom-rotate")},di.prototype.disable=function(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("mapboxgl-touch-zoom-rotate")},di.prototype.isEnabled=function(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()},di.prototype.isActive=function(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()},di.prototype.disableRotation=function(){this._rotationDisabled=!0,this._touchRotate.disable()},di.prototype.enableRotation=function(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()};var mi=function(t){return t.zoom||t.drag||t.pitch||t.rotate},gi=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(t.Event);function vi(t){return t.panDelta&&t.panDelta.mag()||t.zoomDelta||t.bearingDelta||t.pitchDelta}var yi=function(e,n){this._map=e,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new On(e),this._bearingSnap=n.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(n),t.bindAll(["handleEvent","handleWindowEvent"],this);var i=this._el;this._listeners=[[i,"touchstart",{passive:!1}],[i,"touchmove",{passive:!1}],[i,"touchend",void 0],[i,"touchcancel",void 0],[i,"mousedown",void 0],[i,"mousemove",void 0],[i,"mouseup",void 0],[t.window.document,"mousemove",{capture:!0}],[t.window.document,"mouseup",void 0],[i,"mouseover",void 0],[i,"mouseout",void 0],[i,"dblclick",void 0],[i,"click",void 0],[i,"keydown",{capture:!1}],[i,"keyup",void 0],[i,"wheel",{passive:!1}],[i,"contextmenu",void 0],[t.window,"blur",void 0]];for(var a=0,o=this._listeners;aa?Math.min(2,_):Math.max(.5,_),w=Math.pow(g,1-e),T=i.unproject(x.add(b.mult(e*w)).mult(m));i.setLocationAtPoint(i.renderWorldCopies?T.wrap():T,d)}n._fireMoveEvents(r)}),(function(t){n._afterEase(r,t)}),e),this},r.prototype._prepareEase=function(e,r,n){void 0===n&&(n={}),this._moving=!0,r||n.moving||this.fire(new t.Event("movestart",e)),this._zooming&&!n.zooming&&this.fire(new t.Event("zoomstart",e)),this._rotating&&!n.rotating&&this.fire(new t.Event("rotatestart",e)),this._pitching&&!n.pitching&&this.fire(new t.Event("pitchstart",e))},r.prototype._fireMoveEvents=function(e){this.fire(new t.Event("move",e)),this._zooming&&this.fire(new t.Event("zoom",e)),this._rotating&&this.fire(new t.Event("rotate",e)),this._pitching&&this.fire(new t.Event("pitch",e))},r.prototype._afterEase=function(e,r){if(!this._easeId||!r||this._easeId!==r){delete this._easeId;var n=this._zooming,i=this._rotating,a=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,n&&this.fire(new t.Event("zoomend",e)),i&&this.fire(new t.Event("rotateend",e)),a&&this.fire(new t.Event("pitchend",e)),this.fire(new t.Event("moveend",e))}},r.prototype.flyTo=function(e,r){var n=this;if(!e.essential&&t.browser.prefersReducedMotion){var i=t.pick(e,["center","zoom","bearing","pitch","around"]);return this.jumpTo(i,r)}this.stop(),e=t.extend({offset:[0,0],speed:1.2,curve:1.42,easing:t.ease},e);var a=this.transform,o=this.getZoom(),s=this.getBearing(),l=this.getPitch(),c=this.getPadding(),u="zoom"in e?t.clamp(+e.zoom,a.minZoom,a.maxZoom):o,f="bearing"in e?this._normalizeBearing(e.bearing,s):s,h="pitch"in e?+e.pitch:l,p="padding"in e?e.padding:a.padding,d=a.zoomScale(u-o),m=t.Point.convert(e.offset),g=a.centerPoint.add(m),v=a.pointLocation(g),y=t.LngLat.convert(e.center||v);this._normalizeCenter(y);var x=a.project(v),b=a.project(y).sub(x),_=e.curve,w=Math.max(a.width,a.height),T=w/d,k=b.mag();if("minZoom"in e){var M=t.clamp(Math.min(e.minZoom,o,u),a.minZoom,a.maxZoom),A=w/a.zoomScale(M-o);_=Math.sqrt(A/k*2)}var S=_*_;function E(t){var e=(T*T-w*w+(t?-1:1)*S*S*k*k)/(2*(t?T:w)*S*k);return Math.log(Math.sqrt(e*e+1)-e)}function L(t){return(Math.exp(t)-Math.exp(-t))/2}function C(t){return(Math.exp(t)+Math.exp(-t))/2}var P=E(0),I=function(t){return C(P)/C(P+_*t)},O=function(t){return w*((C(P)*(L(e=P+_*t)/C(e))-L(P))/S)/k;var e},z=(E(1)-P)/_;if(Math.abs(k)<1e-6||!isFinite(z)){if(Math.abs(w-T)<1e-6)return this.easeTo(e,r);var D=Te.maxDuration&&(e.duration=0),this._zooming=!0,this._rotating=s!==f,this._pitching=h!==l,this._padding=!a.isPaddingEqual(p),this._prepareEase(r,!1),this._ease((function(e){var i=e*z,d=1/I(i);a.zoom=1===e?u:o+a.scaleZoom(d),n._rotating&&(a.bearing=t.number(s,f,e)),n._pitching&&(a.pitch=t.number(l,h,e)),n._padding&&(a.interpolatePadding(c,p,e),g=a.centerPoint.add(m));var v=1===e?y:a.unproject(x.add(b.mult(O(i))).mult(d));a.setLocationAtPoint(a.renderWorldCopies?v.wrap():v,g),n._fireMoveEvents(r)}),(function(){return n._afterEase(r)}),e),this},r.prototype.isEasing=function(){return!!this._easeFrameId},r.prototype.stop=function(){return this._stop()},r.prototype._stop=function(t,e){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){var r=this._onEaseEnd;delete this._onEaseEnd,r.call(this,e)}if(!t){var n=this.handlers;n&&n.stop()}return this},r.prototype._ease=function(e,r,n){!1===n.animate||0===n.duration?(e(1),r()):(this._easeStart=t.browser.now(),this._easeOptions=n,this._onEaseFrame=e,this._onEaseEnd=r,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))},r.prototype._renderFrameCallback=function(){var e=Math.min((t.browser.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(e)),e<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},r.prototype._normalizeBearing=function(e,r){e=t.wrap(e,-180,180);var n=Math.abs(e-r);return Math.abs(e-360-r)180?-360:r<-180?360:0}},r}(t.Evented),bi=function(e){void 0===e&&(e={}),this.options=e,t.bindAll(["_updateEditLink","_updateData","_updateCompact"],this)};bi.prototype.getDefaultPosition=function(){return"bottom-right"},bi.prototype.onAdd=function(t){var e=this.options&&this.options.compact;return this._map=t,this._container=r.create("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),this._innerContainer=r.create("div","mapboxgl-ctrl-attrib-inner",this._container),e&&this._container.classList.add("mapboxgl-compact"),this._updateAttributions(),this._updateEditLink(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("moveend",this._updateEditLink),void 0===e&&(this._map.on("resize",this._updateCompact),this._updateCompact()),this._container},bi.prototype.onRemove=function(){r.remove(this._container),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("moveend",this._updateEditLink),this._map.off("resize",this._updateCompact),this._map=void 0,this._attribHTML=void 0},bi.prototype._updateEditLink=function(){var e=this._editLink;e||(e=this._editLink=this._container.querySelector(".mapbox-improve-map"));var r=[{key:"owner",value:this.styleOwner},{key:"id",value:this.styleId},{key:"access_token",value:this._map._requestManager._customAccessToken||t.config.ACCESS_TOKEN}];if(e){var n=r.reduce((function(t,e,n){return e.value&&(t+=e.key+"="+e.value+(n=0)return!1;return!0}))).join(" | ");o!==this._attribHTML&&(this._attribHTML=o,t.length?(this._innerContainer.innerHTML=o,this._container.classList.remove("mapboxgl-attrib-empty")):this._container.classList.add("mapboxgl-attrib-empty"),this._editLink=null)}},bi.prototype._updateCompact=function(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add("mapboxgl-compact"):this._container.classList.remove("mapboxgl-compact")};var _i=function(){t.bindAll(["_updateLogo"],this),t.bindAll(["_updateCompact"],this)};_i.prototype.onAdd=function(t){this._map=t,this._container=r.create("div","mapboxgl-ctrl");var e=r.create("a","mapboxgl-ctrl-logo");return e.target="_blank",e.rel="noopener nofollow",e.href="https://www.mapbox.com/",e.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),e.setAttribute("rel","noopener nofollow"),this._container.appendChild(e),this._container.style.display="none",this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._map.on("resize",this._updateCompact),this._updateCompact(),this._container},_i.prototype.onRemove=function(){r.remove(this._container),this._map.off("sourcedata",this._updateLogo),this._map.off("resize",this._updateCompact)},_i.prototype.getDefaultPosition=function(){return"bottom-left"},_i.prototype._updateLogo=function(t){t&&"metadata"!==t.sourceDataType||(this._container.style.display=this._logoRequired()?"block":"none")},_i.prototype._logoRequired=function(){if(this._map.style){var t=this._map.style.sourceCaches;for(var e in t){if(t[e].getSource().mapbox_logo)return!0}return!1}},_i.prototype._updateCompact=function(){var t=this._container.children;if(t.length){var e=t[0];this._map.getCanvasContainer().offsetWidth<250?e.classList.add("mapboxgl-compact"):e.classList.remove("mapboxgl-compact")}};var wi=function(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1};wi.prototype.add=function(t){var e=++this._id;return this._queue.push({callback:t,id:e,cancelled:!1}),e},wi.prototype.remove=function(t){for(var e=this._currentlyRunning,r=0,n=e?this._queue.concat(e):this._queue;re.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(null!=e.minPitch&&null!=e.maxPitch&&e.minPitch>e.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(null!=e.minPitch&&e.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(null!=e.maxPitch&&e.maxPitch>60)throw new Error("maxPitch must be less than or equal to 60");var i=new Mn(e.minZoom,e.maxZoom,e.minPitch,e.maxPitch,e.renderWorldCopies);if(n.call(this,i,e),this._interactive=e.interactive,this._maxTileCacheSize=e.maxTileCacheSize,this._failIfMajorPerformanceCaveat=e.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=e.preserveDrawingBuffer,this._antialias=e.antialias,this._trackResize=e.trackResize,this._bearingSnap=e.bearingSnap,this._refreshExpiredTiles=e.refreshExpiredTiles,this._fadeDuration=e.fadeDuration,this._crossSourceCollisions=e.crossSourceCollisions,this._crossFadingFactor=1,this._collectResourceTiming=e.collectResourceTiming,this._renderTaskQueue=new wi,this._controls=[],this._mapId=t.uniqueId(),this._locale=t.extend({},Ti,e.locale),this._requestManager=new t.RequestManager(e.transformRequest,e.accessToken),"string"==typeof e.container){if(this._container=t.window.document.getElementById(e.container),!this._container)throw new Error("Container '"+e.container+"' not found.")}else{if(!(e.container instanceof Mi))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=e.container}if(e.maxBounds&&this.setMaxBounds(e.maxBounds),t.bindAll(["_onWindowOnline","_onWindowResize","_contextLost","_contextRestored"],this),this._setupContainer(),this._setupPainter(),void 0===this.painter)throw new Error("Failed to initialize WebGL.");this.on("move",(function(){return r._update(!1)})),this.on("moveend",(function(){return r._update(!1)})),this.on("zoom",(function(){return r._update(!0)})),void 0!==t.window&&(t.window.addEventListener("online",this._onWindowOnline,!1),t.window.addEventListener("resize",this._onWindowResize,!1)),this.handlers=new yi(this,e);var a="string"==typeof e.hash&&e.hash||void 0;this._hash=e.hash&&new Sn(a).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:e.center,zoom:e.zoom,bearing:e.bearing,pitch:e.pitch}),e.bounds&&(this.resize(),this.fitBounds(e.bounds,t.extend({},e.fitBoundsOptions,{duration:0})))),this.resize(),this._localIdeographFontFamily=e.localIdeographFontFamily,e.style&&this.setStyle(e.style,{localIdeographFontFamily:e.localIdeographFontFamily}),e.attributionControl&&this.addControl(new bi({customAttribution:e.customAttribution})),this.addControl(new _i,e.logoPosition),this.on("style.load",(function(){r.transform.unmodified&&r.jumpTo(r.style.stylesheet)})),this.on("data",(function(e){r._update("style"===e.dataType),r.fire(new t.Event(e.dataType+"data",e))})),this.on("dataloading",(function(e){r.fire(new t.Event(e.dataType+"dataloading",e))}))}n&&(i.__proto__=n),i.prototype=Object.create(n&&n.prototype),i.prototype.constructor=i;var a={showTileBoundaries:{configurable:!0},showPadding:{configurable:!0},showCollisionBoxes:{configurable:!0},showOverdrawInspector:{configurable:!0},repaint:{configurable:!0},vertices:{configurable:!0},version:{configurable:!0}};return i.prototype._getMapId=function(){return this._mapId},i.prototype.addControl=function(e,r){if(void 0===r&&e.getDefaultPosition&&(r=e.getDefaultPosition()),void 0===r&&(r="top-right"),!e||!e.onAdd)return this.fire(new t.ErrorEvent(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));var n=e.onAdd(this);this._controls.push(e);var i=this._controlPositions[r];return-1!==r.indexOf("bottom")?i.insertBefore(n,i.firstChild):i.appendChild(n),this},i.prototype.removeControl=function(e){if(!e||!e.onRemove)return this.fire(new t.ErrorEvent(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));var r=this._controls.indexOf(e);return r>-1&&this._controls.splice(r,1),e.onRemove(this),this},i.prototype.resize=function(e){var r=this._containerDimensions(),n=r[0],i=r[1];this._resizeCanvas(n,i),this.transform.resize(n,i),this.painter.resize(n,i);var a=!this._moving;return a&&(this.stop(),this.fire(new t.Event("movestart",e)).fire(new t.Event("move",e))),this.fire(new t.Event("resize",e)),a&&this.fire(new t.Event("moveend",e)),this},i.prototype.getBounds=function(){return this.transform.getBounds()},i.prototype.getMaxBounds=function(){return this.transform.getMaxBounds()},i.prototype.setMaxBounds=function(e){return this.transform.setMaxBounds(t.LngLatBounds.convert(e)),this._update()},i.prototype.setMinZoom=function(t){if((t=null==t?-2:t)>=-2&&t<=this.transform.maxZoom)return this.transform.minZoom=t,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=t,this._update(),this.getZoom()>t&&this.setZoom(t),this;throw new Error("maxZoom must be greater than the current minZoom")},i.prototype.getMaxZoom=function(){return this.transform.maxZoom},i.prototype.setMinPitch=function(t){if((t=null==t?0:t)<0)throw new Error("minPitch must be greater than or equal to 0");if(t>=0&&t<=this.transform.maxPitch)return this.transform.minPitch=t,this._update(),this.getPitch()60)throw new Error("maxPitch must be less than or equal to 60");if(t>=this.transform.minPitch)return this.transform.maxPitch=t,this._update(),this.getPitch()>t&&this.setPitch(t),this;throw new Error("maxPitch must be greater than the current minPitch")},i.prototype.getMaxPitch=function(){return this.transform.maxPitch},i.prototype.getRenderWorldCopies=function(){return this.transform.renderWorldCopies},i.prototype.setRenderWorldCopies=function(t){return this.transform.renderWorldCopies=t,this._update()},i.prototype.project=function(e){return this.transform.locationPoint(t.LngLat.convert(e))},i.prototype.unproject=function(e){return this.transform.pointLocation(t.Point.convert(e))},i.prototype.isMoving=function(){return this._moving||this.handlers.isMoving()},i.prototype.isZooming=function(){return this._zooming||this.handlers.isZooming()},i.prototype.isRotating=function(){return this._rotating||this.handlers.isRotating()},i.prototype._createDelegatedListener=function(t,e,r){var n,i=this;if("mouseenter"===t||"mouseover"===t){var a=!1;return{layer:e,listener:r,delegates:{mousemove:function(n){var o=i.getLayer(e)?i.queryRenderedFeatures(n.point,{layers:[e]}):[];o.length?a||(a=!0,r.call(i,new Rn(t,i,n.originalEvent,{features:o}))):a=!1},mouseout:function(){a=!1}}}}if("mouseleave"===t||"mouseout"===t){var o=!1;return{layer:e,listener:r,delegates:{mousemove:function(n){(i.getLayer(e)?i.queryRenderedFeatures(n.point,{layers:[e]}):[]).length?o=!0:o&&(o=!1,r.call(i,new Rn(t,i,n.originalEvent)))},mouseout:function(e){o&&(o=!1,r.call(i,new Rn(t,i,e.originalEvent)))}}}}return{layer:e,listener:r,delegates:(n={},n[t]=function(t){var n=i.getLayer(e)?i.queryRenderedFeatures(t.point,{layers:[e]}):[];n.length&&(t.features=n,r.call(i,t),delete t.features)},n)}},i.prototype.on=function(t,e,r){if(void 0===r)return n.prototype.on.call(this,t,e);var i=this._createDelegatedListener(t,e,r);for(var a in this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[t]=this._delegatedListeners[t]||[],this._delegatedListeners[t].push(i),i.delegates)this.on(a,i.delegates[a]);return this},i.prototype.once=function(t,e,r){if(void 0===r)return n.prototype.once.call(this,t,e);var i=this._createDelegatedListener(t,e,r);for(var a in i.delegates)this.once(a,i.delegates[a]);return this},i.prototype.off=function(t,e,r){var i=this;if(void 0===r)return n.prototype.off.call(this,t,e);return this._delegatedListeners&&this._delegatedListeners[t]&&function(n){for(var a=n[t],o=0;o180;){var s=n.locationPoint(e);if(s.x>=0&&s.y>=0&&s.x<=n.width&&s.y<=n.height)break;e.lng>n.center.lng?e.lng-=360:e.lng+=360}return e}Ii.prototype.down=function(t,e){this.mouseRotate.mousedown(t,e),this.mousePitch&&this.mousePitch.mousedown(t,e),r.disableDrag()},Ii.prototype.move=function(t,e){var r=this.map,n=this.mouseRotate.mousemoveWindow(t,e);if(n&&n.bearingDelta&&r.setBearing(r.getBearing()+n.bearingDelta),this.mousePitch){var i=this.mousePitch.mousemoveWindow(t,e);i&&i.pitchDelta&&r.setPitch(r.getPitch()+i.pitchDelta)}},Ii.prototype.off=function(){var t=this.element;r.removeEventListener(t,"mousedown",this.mousedown),r.removeEventListener(t,"touchstart",this.touchstart,{passive:!1}),r.removeEventListener(t,"touchmove",this.touchmove),r.removeEventListener(t,"touchend",this.touchend),r.removeEventListener(t,"touchcancel",this.reset),this.offTemp()},Ii.prototype.offTemp=function(){r.enableDrag(),r.removeEventListener(t.window,"mousemove",this.mousemove),r.removeEventListener(t.window,"mouseup",this.mouseup)},Ii.prototype.mousedown=function(e){this.down(t.extend({},e,{ctrlKey:!0,preventDefault:function(){return e.preventDefault()}}),r.mousePos(this.element,e)),r.addEventListener(t.window,"mousemove",this.mousemove),r.addEventListener(t.window,"mouseup",this.mouseup)},Ii.prototype.mousemove=function(t){this.move(t,r.mousePos(this.element,t))},Ii.prototype.mouseup=function(t){this.mouseRotate.mouseupWindow(t),this.mousePitch&&this.mousePitch.mouseupWindow(t),this.offTemp()},Ii.prototype.touchstart=function(t){1!==t.targetTouches.length?this.reset():(this._startPos=this._lastPos=r.touchPos(this.element,t.targetTouches)[0],this.down({type:"mousedown",button:0,ctrlKey:!0,preventDefault:function(){return t.preventDefault()}},this._startPos))},Ii.prototype.touchmove=function(t){1!==t.targetTouches.length?this.reset():(this._lastPos=r.touchPos(this.element,t.targetTouches)[0],this.move({preventDefault:function(){return t.preventDefault()}},this._lastPos))},Ii.prototype.touchend=function(t){0===t.targetTouches.length&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)e.getEast()||r.latitudee.getNorth())},n.prototype._setErrorState=function(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting")}},n.prototype._onSuccess=function(e){if(this._map){if(this._isOutOfMapMaxBounds(e))return this._setErrorState(),this.fire(new t.Event("outofmaxbounds",e)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=e,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background")}this.options.showUserLocation&&"OFF"!==this._watchState&&this._updateMarker(e),this.options.trackUserLocation&&"ACTIVE_LOCK"!==this._watchState||this._updateCamera(e),this.options.showUserLocation&&this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"),this.fire(new t.Event("geolocate",e)),this._finish()}},n.prototype._updateCamera=function(e){var r=new t.LngLat(e.coords.longitude,e.coords.latitude),n=e.coords.accuracy,i=this._map.getBearing(),a=t.extend({bearing:i},this.options.fitBoundsOptions);this._map.fitBounds(r.toBounds(n),a,{geolocateSource:!0})},n.prototype._updateMarker=function(e){if(e){var r=new t.LngLat(e.coords.longitude,e.coords.latitude);this._accuracyCircleMarker.setLngLat(r).addTo(this._map),this._userLocationDotMarker.setLngLat(r).addTo(this._map),this._accuracy=e.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},n.prototype._updateCircleRadius=function(){var t=this._map._container.clientHeight/2,e=this._map.unproject([0,t]),r=this._map.unproject([1,t]),n=e.distanceTo(r),i=Math.ceil(2*this._accuracy/n);this._circleElement.style.width=i+"px",this._circleElement.style.height=i+"px"},n.prototype._onZoom=function(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()},n.prototype._onError=function(e){if(this._map){if(this.options.trackUserLocation)if(1===e.code){this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;var r=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=r,this._geolocateButton.setAttribute("aria-label",r),void 0!==this._geolocationWatchID&&this._clearWatch()}else{if(3===e.code&&ji)return;this._setErrorState()}"OFF"!==this._watchState&&this.options.showUserLocation&&this._dotElement.classList.add("mapboxgl-user-location-dot-stale"),this.fire(new t.Event("error",e)),this._finish()}},n.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},n.prototype._setupUI=function(e){var n=this;if(this._container.addEventListener("contextmenu",(function(t){return t.preventDefault()})),this._geolocateButton=r.create("button","mapboxgl-ctrl-geolocate",this._container),r.create("span","mapboxgl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden",!0),this._geolocateButton.type="button",!1===e){t.warnOnce("Geolocation support is not available so the GeolocateControl will be disabled.");var i=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=i,this._geolocateButton.setAttribute("aria-label",i)}else{var a=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.title=a,this._geolocateButton.setAttribute("aria-label",a)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=r.create("div","mapboxgl-user-location-dot"),this._userLocationDotMarker=new Fi(this._dotElement),this._circleElement=r.create("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new Fi({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",(function(e){var r=e.originalEvent&&"resize"===e.originalEvent.type;e.geolocateSource||"ACTIVE_LOCK"!==n._watchState||r||(n._watchState="BACKGROUND",n._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),n._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),n.fire(new t.Event("trackuserlocationend")))}))},n.prototype.trigger=function(){if(!this._setup)return t.warnOnce("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new t.Event("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":Ni--,ji=!1,this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this.fire(new t.Event("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new t.Event("trackuserlocationstart"))}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"BACKGROUND":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");break;case"BACKGROUND_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error")}if("OFF"===this._watchState&&void 0!==this._geolocationWatchID)this._clearWatch();else if(void 0===this._geolocationWatchID){var e;this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),++Ni>1?(e={maximumAge:6e5,timeout:0},ji=!0):(e=this.options.positionOptions,ji=!1),this._geolocationWatchID=t.window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,e)}}else t.window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0},n.prototype._clearWatch=function(){t.window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null)},n}(t.Evented),Vi={maxWidth:100,unit:"metric"},qi=function(e){this.options=t.extend({},Vi,e),t.bindAll(["_onMove","setUnit"],this)};function Hi(t,e,r){var n=r&&r.maxWidth||100,i=t._container.clientHeight/2,a=t.unproject([0,i]),o=t.unproject([n,i]),s=a.distanceTo(o);if(r&&"imperial"===r.unit){var l=3.2808*s;if(l>5280)Gi(e,n,l/5280,t._getUIString("ScaleControl.Miles"));else Gi(e,n,l,t._getUIString("ScaleControl.Feet"))}else if(r&&"nautical"===r.unit){Gi(e,n,s/1852,t._getUIString("ScaleControl.NauticalMiles"))}else s>=1e3?Gi(e,n,s/1e3,t._getUIString("ScaleControl.Kilometers")):Gi(e,n,s,t._getUIString("ScaleControl.Meters"))}function Gi(t,e,r,n){var i,a,o,s=(i=r,a=Math.pow(10,(""+Math.floor(i)).length-1),o=(o=i/a)>=10?10:o>=5?5:o>=3?3:o>=2?2:o>=1?1:function(t){var e=Math.pow(10,Math.ceil(-Math.log(t)/Math.LN10));return Math.round(t*e)/e}(o),a*o),l=s/r;t.style.width=e*l+"px",t.innerHTML=s+" "+n}qi.prototype.getDefaultPosition=function(){return"bottom-left"},qi.prototype._onMove=function(){Hi(this._map,this._container,this.options)},qi.prototype.onAdd=function(t){return this._map=t,this._container=r.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",t.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container},qi.prototype.onRemove=function(){r.remove(this._container),this._map.off("move",this._onMove),this._map=void 0},qi.prototype.setUnit=function(t){this.options.unit=t,Hi(this._map,this._container,this.options)};var Yi=function(e){this._fullscreen=!1,e&&e.container&&(e.container instanceof t.window.HTMLElement?this._container=e.container:t.warnOnce("Full screen control 'container' must be a DOM element.")),t.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in t.window.document?this._fullscreenchange="fullscreenchange":"onmozfullscreenchange"in t.window.document?this._fullscreenchange="mozfullscreenchange":"onwebkitfullscreenchange"in t.window.document?this._fullscreenchange="webkitfullscreenchange":"onmsfullscreenchange"in t.window.document&&(this._fullscreenchange="MSFullscreenChange")};Yi.prototype.onAdd=function(e){return this._map=e,this._container||(this._container=this._map.getContainer()),this._controlContainer=r.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display="none",t.warnOnce("This device does not support fullscreen mode.")),this._controlContainer},Yi.prototype.onRemove=function(){r.remove(this._controlContainer),this._map=null,t.window.document.removeEventListener(this._fullscreenchange,this._changeIcon)},Yi.prototype._checkFullscreenSupport=function(){return!!(t.window.document.fullscreenEnabled||t.window.document.mozFullScreenEnabled||t.window.document.msFullscreenEnabled||t.window.document.webkitFullscreenEnabled)},Yi.prototype._setupUI=function(){var e=this._fullscreenButton=r.create("button","mapboxgl-ctrl-fullscreen",this._controlContainer);r.create("span","mapboxgl-ctrl-icon",e).setAttribute("aria-hidden",!0),e.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),t.window.document.addEventListener(this._fullscreenchange,this._changeIcon)},Yi.prototype._updateTitle=function(){var t=this._getTitle();this._fullscreenButton.setAttribute("aria-label",t),this._fullscreenButton.title=t},Yi.prototype._getTitle=function(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")},Yi.prototype._isFullscreen=function(){return this._fullscreen},Yi.prototype._changeIcon=function(){(t.window.document.fullscreenElement||t.window.document.mozFullScreenElement||t.window.document.webkitFullscreenElement||t.window.document.msFullscreenElement)===this._container!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"),this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"),this._updateTitle())},Yi.prototype._onClickFullscreen=function(){this._isFullscreen()?t.window.document.exitFullscreen?t.window.document.exitFullscreen():t.window.document.mozCancelFullScreen?t.window.document.mozCancelFullScreen():t.window.document.msExitFullscreen?t.window.document.msExitFullscreen():t.window.document.webkitCancelFullScreen&&t.window.document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen()};var Wi={closeButton:!0,closeOnClick:!0,className:"",maxWidth:"240px"},Xi=function(e){function n(r){e.call(this),this.options=t.extend(Object.create(Wi),r),t.bindAll(["_update","_onClose","remove","_onMouseMove","_onMouseUp","_onDrag"],this)}return e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n,n.prototype.addTo=function(e){return this._map&&this.remove(),this._map=e,this.options.closeOnClick&&this._map.on("click",this._onClose),this.options.closeOnMove&&this._map.on("move",this._onClose),this._map.on("remove",this.remove),this._update(),this._trackPointer?(this._map.on("mousemove",this._onMouseMove),this._map.on("mouseup",this._onMouseUp),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")):this._map.on("move",this._update),this.fire(new t.Event("open")),this},n.prototype.isOpen=function(){return!!this._map},n.prototype.remove=function(){return this._content&&r.remove(this._content),this._container&&(r.remove(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("move",this._onClose),this._map.off("click",this._onClose),this._map.off("remove",this.remove),this._map.off("mousemove",this._onMouseMove),this._map.off("mouseup",this._onMouseUp),this._map.off("drag",this._onDrag),delete this._map),this.fire(new t.Event("close")),this},n.prototype.getLngLat=function(){return this._lngLat},n.prototype.setLngLat=function(e){return this._lngLat=t.LngLat.convert(e),this._pos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on("move",this._update),this._map.off("mousemove",this._onMouseMove),this._container&&this._container.classList.remove("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.remove("mapboxgl-track-pointer")),this},n.prototype.trackPointer=function(){return this._trackPointer=!0,this._pos=null,this._update(),this._map&&(this._map.off("move",this._update),this._map.on("mousemove",this._onMouseMove),this._map.on("drag",this._onDrag),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")),this},n.prototype.getElement=function(){return this._container},n.prototype.setText=function(e){return this.setDOMContent(t.window.document.createTextNode(e))},n.prototype.setHTML=function(e){var r,n=t.window.document.createDocumentFragment(),i=t.window.document.createElement("body");for(i.innerHTML=e;r=i.firstChild;)n.appendChild(r);return this.setDOMContent(n)},n.prototype.getMaxWidth=function(){return this._container&&this._container.style.maxWidth},n.prototype.setMaxWidth=function(t){return this.options.maxWidth=t,this._update(),this},n.prototype.setDOMContent=function(t){return this._createContent(),this._content.appendChild(t),this._update(),this},n.prototype.addClassName=function(t){this._container&&this._container.classList.add(t)},n.prototype.removeClassName=function(t){this._container&&this._container.classList.remove(t)},n.prototype.toggleClassName=function(t){if(this._container)return this._container.classList.toggle(t)},n.prototype._createContent=function(){this._content&&r.remove(this._content),this._content=r.create("div","mapboxgl-popup-content",this._container),this.options.closeButton&&(this._closeButton=r.create("button","mapboxgl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.setAttribute("aria-label","Close popup"),this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClose))},n.prototype._onMouseUp=function(t){this._update(t.point)},n.prototype._onMouseMove=function(t){this._update(t.point)},n.prototype._onDrag=function(t){this._update(t.point)},n.prototype._update=function(e){var n=this,i=this._lngLat||this._trackPointer;if(this._map&&i&&this._content&&(this._container||(this._container=r.create("div","mapboxgl-popup",this._map.getContainer()),this._tip=r.create("div","mapboxgl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className&&this.options.className.split(" ").forEach((function(t){return n._container.classList.add(t)})),this._trackPointer&&this._container.classList.add("mapboxgl-popup-track-pointer")),this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._map.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=Oi(this._lngLat,this._pos,this._map.transform)),!this._trackPointer||e)){var a=this._pos=this._trackPointer&&e?e:this._map.project(this._lngLat),o=this.options.anchor,s=function e(r){if(r){if("number"==typeof r){var n=Math.round(Math.sqrt(.5*Math.pow(r,2)));return{center:new t.Point(0,0),top:new t.Point(0,r),"top-left":new t.Point(n,n),"top-right":new t.Point(-n,n),bottom:new t.Point(0,-r),"bottom-left":new t.Point(n,-n),"bottom-right":new t.Point(-n,-n),left:new t.Point(r,0),right:new t.Point(-r,0)}}if(r instanceof t.Point||Array.isArray(r)){var i=t.Point.convert(r);return{center:i,top:i,"top-left":i,"top-right":i,bottom:i,"bottom-left":i,"bottom-right":i,left:i,right:i}}return{center:t.Point.convert(r.center||[0,0]),top:t.Point.convert(r.top||[0,0]),"top-left":t.Point.convert(r["top-left"]||[0,0]),"top-right":t.Point.convert(r["top-right"]||[0,0]),bottom:t.Point.convert(r.bottom||[0,0]),"bottom-left":t.Point.convert(r["bottom-left"]||[0,0]),"bottom-right":t.Point.convert(r["bottom-right"]||[0,0]),left:t.Point.convert(r.left||[0,0]),right:t.Point.convert(r.right||[0,0])}}return e(new t.Point(0,0))}(this.options.offset);if(!o){var l,c=this._container.offsetWidth,u=this._container.offsetHeight;l=a.y+s.bottom.ythis._map.transform.height-u?["bottom"]:[],a.xthis._map.transform.width-c/2&&l.push("right"),o=0===l.length?"bottom":l.join("-")}var f=a.add(s[o]).round();r.setTransform(this._container,zi[o]+" translate("+f.x+"px,"+f.y+"px)"),Di(this._container,o,"popup")}},n.prototype._onClose=function(){this.remove()},n}(t.Evented);var Zi={version:t.version,supported:e,setRTLTextPlugin:t.setRTLTextPlugin,getRTLTextPluginStatus:t.getRTLTextPluginStatus,Map:Ei,NavigationControl:Pi,GeolocateControl:Ui,AttributionControl:bi,ScaleControl:qi,FullscreenControl:Yi,Popup:Xi,Marker:Fi,Style:He,LngLat:t.LngLat,LngLatBounds:t.LngLatBounds,Point:t.Point,MercatorCoordinate:t.MercatorCoordinate,Evented:t.Evented,config:t.config,prewarm:function(){Bt().acquire(zt)},clearPrewarmedResources:function(){var t=Rt;t&&(t.isPreloaded()&&1===t.numActive()?(t.release(zt),Rt=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"))},get accessToken(){return t.config.ACCESS_TOKEN},set accessToken(e){t.config.ACCESS_TOKEN=e},get baseApiUrl(){return t.config.API_URL},set baseApiUrl(e){t.config.API_URL=e},get workerCount(){return Dt.workerCount},set workerCount(t){Dt.workerCount=t},get maxParallelImageRequests(){return t.config.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(e){t.config.MAX_PARALLEL_IMAGE_REQUESTS=e},clearStorage:function(e){t.clearTileCache(e)},workerUrl:""};return Zi})),r}))},{}],453:[function(t,e,r){"use strict";e.exports=function(t){for(var e=1<p[1][2]&&(v[0]=-v[0]),p[0][2]>p[2][0]&&(v[1]=-v[1]),p[1][0]>p[0][1]&&(v[2]=-v[2]),!0}},{"./normalize":455,"gl-mat4/clone":275,"gl-mat4/create":277,"gl-mat4/determinant":278,"gl-mat4/invert":290,"gl-mat4/transpose":303,"gl-vec3/cross":359,"gl-vec3/dot":364,"gl-vec3/length":374,"gl-vec3/normalize":381}],455:[function(t,e,r){e.exports=function(t,e){var r=e[15];if(0===r)return!1;for(var n=1/r,i=0;i<16;i++)t[i]=e[i]*n;return!0}},{}],456:[function(t,e,r){var n=t("gl-vec3/lerp"),i=t("mat4-recompose"),a=t("mat4-decompose"),o=t("gl-mat4/determinant"),s=t("quat-slerp"),l=f(),c=f(),u=f();function f(){return{translate:h(),scale:h(1),skew:h(),perspective:[0,0,0,1],quaternion:[0,0,0,1]}}function h(t){return[t||0,t||0,t||0]}e.exports=function(t,e,r,f){if(0===o(e)||0===o(r))return!1;var h=a(e,l.translate,l.scale,l.skew,l.perspective,l.quaternion),p=a(r,c.translate,c.scale,c.skew,c.perspective,c.quaternion);return!(!h||!p)&&(n(u.translate,l.translate,c.translate,f),n(u.skew,l.skew,c.skew,f),n(u.scale,l.scale,c.scale,f),n(u.perspective,l.perspective,c.perspective,f),s(u.quaternion,l.quaternion,c.quaternion,f),i(t,u.translate,u.scale,u.skew,u.perspective,u.quaternion),!0)}},{"gl-mat4/determinant":278,"gl-vec3/lerp":375,"mat4-decompose":454,"mat4-recompose":457,"quat-slerp":521}],457:[function(t,e,r){var n={identity:t("gl-mat4/identity"),translate:t("gl-mat4/translate"),multiply:t("gl-mat4/multiply"),create:t("gl-mat4/create"),scale:t("gl-mat4/scale"),fromRotationTranslation:t("gl-mat4/fromRotationTranslation")},i=(n.create(),n.create());e.exports=function(t,e,r,a,o,s){return n.identity(t),n.fromRotationTranslation(t,s,e),t[3]=o[0],t[7]=o[1],t[11]=o[2],t[15]=o[3],n.identity(i),0!==a[2]&&(i[9]=a[2],n.multiply(t,t,i)),0!==a[1]&&(i[9]=0,i[8]=a[1],n.multiply(t,t,i)),0!==a[0]&&(i[8]=0,i[4]=a[0],n.multiply(t,t,i)),n.scale(t,t,r),t}},{"gl-mat4/create":277,"gl-mat4/fromRotationTranslation":281,"gl-mat4/identity":288,"gl-mat4/multiply":292,"gl-mat4/scale":300,"gl-mat4/translate":302}],458:[function(t,e,r){"use strict";e.exports=Math.log2||function(t){return Math.log(t)*Math.LOG2E}},{}],459:[function(t,e,r){"use strict";var n=t("binary-search-bounds"),i=t("mat4-interpolate"),a=t("gl-mat4/invert"),o=t("gl-mat4/rotateX"),s=t("gl-mat4/rotateY"),l=t("gl-mat4/rotateZ"),c=t("gl-mat4/lookAt"),u=t("gl-mat4/translate"),f=(t("gl-mat4/scale"),t("gl-vec3/normalize")),h=[0,0,0];function p(t){this._components=t.slice(),this._time=[0],this.prevMatrix=t.slice(),this.nextMatrix=t.slice(),this.computedMatrix=t.slice(),this.computedInverse=t.slice(),this.computedEye=[0,0,0],this.computedUp=[0,0,0],this.computedCenter=[0,0,0],this.computedRadius=[0],this._limits=[-1/0,1/0]}e.exports=function(t){return new p((t=t||{}).matrix||[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])};var d=p.prototype;d.recalcMatrix=function(t){var e=this._time,r=n.le(e,t),o=this.computedMatrix;if(!(r<0)){var s=this._components;if(r===e.length-1)for(var l=16*r,c=0;c<16;++c)o[c]=s[l++];else{var u=e[r+1]-e[r],h=(l=16*r,this.prevMatrix),p=!0;for(c=0;c<16;++c)h[c]=s[l++];var d=this.nextMatrix;for(c=0;c<16;++c)d[c]=s[l++],p=p&&h[c]===d[c];if(u<1e-6||p)for(c=0;c<16;++c)o[c]=h[c];else i(o,h,d,(t-e[r])/u)}var m=this.computedUp;m[0]=o[1],m[1]=o[5],m[2]=o[9],f(m,m);var g=this.computedInverse;a(g,o);var v=this.computedEye,y=g[15];v[0]=g[12]/y,v[1]=g[13]/y,v[2]=g[14]/y;var x=this.computedCenter,b=Math.exp(this.computedRadius[0]);for(c=0;c<3;++c)x[c]=v[c]-o[2+4*c]*b}},d.idle=function(t){if(!(t1&&n(t[o[u-2]],t[o[u-1]],c)<=0;)u-=1,o.pop();for(o.push(l),u=s.length;u>1&&n(t[s[u-2]],t[s[u-1]],c)>=0;)u-=1,s.pop();s.push(l)}r=new Array(s.length+o.length-2);for(var f=0,h=(i=0,o.length);i0;--p)r[f++]=s[p];return r};var n=t("robust-orientation")[3]},{"robust-orientation":540}],462:[function(t,e,r){"use strict";e.exports=function(t,e){e||(e=t,t=window);var r=0,i=0,a=0,o={shift:!1,alt:!1,control:!1,meta:!1},s=!1;function l(t){var e=!1;return"altKey"in t&&(e=e||t.altKey!==o.alt,o.alt=!!t.altKey),"shiftKey"in t&&(e=e||t.shiftKey!==o.shift,o.shift=!!t.shiftKey),"ctrlKey"in t&&(e=e||t.ctrlKey!==o.control,o.control=!!t.ctrlKey),"metaKey"in t&&(e=e||t.metaKey!==o.meta,o.meta=!!t.metaKey),e}function c(t,s){var c=n.x(s),u=n.y(s);"buttons"in s&&(t=0|s.buttons),(t!==r||c!==i||u!==a||l(s))&&(r=0|t,i=c||0,a=u||0,e&&e(r,i,a,o))}function u(t){c(0,t)}function f(){(r||i||a||o.shift||o.alt||o.meta||o.control)&&(i=a=0,r=0,o.shift=o.alt=o.control=o.meta=!1,e&&e(0,0,0,o))}function h(t){l(t)&&e&&e(r,i,a,o)}function p(t){0===n.buttons(t)?c(0,t):c(r,t)}function d(t){c(r|n.buttons(t),t)}function m(t){c(r&~n.buttons(t),t)}function g(){s||(s=!0,t.addEventListener("mousemove",p),t.addEventListener("mousedown",d),t.addEventListener("mouseup",m),t.addEventListener("mouseleave",u),t.addEventListener("mouseenter",u),t.addEventListener("mouseout",u),t.addEventListener("mouseover",u),t.addEventListener("blur",f),t.addEventListener("keyup",h),t.addEventListener("keydown",h),t.addEventListener("keypress",h),t!==window&&(window.addEventListener("blur",f),window.addEventListener("keyup",h),window.addEventListener("keydown",h),window.addEventListener("keypress",h)))}g();var v={element:t};return Object.defineProperties(v,{enabled:{get:function(){return s},set:function(e){e?g():function(){if(!s)return;s=!1,t.removeEventListener("mousemove",p),t.removeEventListener("mousedown",d),t.removeEventListener("mouseup",m),t.removeEventListener("mouseleave",u),t.removeEventListener("mouseenter",u),t.removeEventListener("mouseout",u),t.removeEventListener("mouseover",u),t.removeEventListener("blur",f),t.removeEventListener("keyup",h),t.removeEventListener("keydown",h),t.removeEventListener("keypress",h),t!==window&&(window.removeEventListener("blur",f),window.removeEventListener("keyup",h),window.removeEventListener("keydown",h),window.removeEventListener("keypress",h))}()},enumerable:!0},buttons:{get:function(){return r},enumerable:!0},x:{get:function(){return i},enumerable:!0},y:{get:function(){return a},enumerable:!0},mods:{get:function(){return o},enumerable:!0}}),v};var n=t("mouse-event")},{"mouse-event":464}],463:[function(t,e,r){var n={left:0,top:0};e.exports=function(t,e,r){e=e||t.currentTarget||t.srcElement,Array.isArray(r)||(r=[0,0]);var i=t.clientX||0,a=t.clientY||0,o=(s=e,s===window||s===document||s===document.body?n:s.getBoundingClientRect());var s;return r[0]=i-o.left,r[1]=a-o.top,r}},{}],464:[function(t,e,r){"use strict";function n(t){return t.target||t.srcElement||window}r.buttons=function(t){if("object"==typeof t){if("buttons"in t)return t.buttons;if("which"in t){if(2===(e=t.which))return 4;if(3===e)return 2;if(e>0)return 1<=0)return 1<0&&o(l,r))}catch(t){f.call(new p(r),t)}}}function f(t){var e=this;e.triggered||(e.triggered=!0,e.def&&(e=e.def),e.msg=t,e.state=2,e.chain.length>0&&o(l,e))}function h(t,e,r,n){for(var i=0;i 0");"function"!=typeof t.vertex&&e("Must specify vertex creation function");"function"!=typeof t.cell&&e("Must specify cell creation function");"function"!=typeof t.phase&&e("Must specify phase function");for(var w=t.getters||[],T=new Array(b),k=0;k=0?T[k]=!0:T[k]=!1;return function(t,e,r,b,_,w){var T=w.length,k=_.length;if(k<2)throw new Error("ndarray-extract-contour: Dimension must be at least 2");for(var M="extractContour"+_.join("_"),A=[],S=[],E=[],L=0;L0&&O.push(l(L,_[C-1])+"*"+s(_[C-1])),S.push(d(L,_[C])+"=("+O.join("-")+")|0")}for(L=0;L=0;--L)z.push(s(_[L]));S.push("Q=("+z.join("*")+")|0","P=mallocUint32(Q)","V=mallocUint32(Q)","X=0"),S.push(m(0)+"=0");for(C=1;C<1<0;_=_-1&d)x.push("V[X+"+v(_)+"]");x.push(y(0));for(_=0;_=0;--e)N(e,0);var r=[];for(e=0;e0){",p(_[e]),"=1;"),t(e-1,r|1<<_[e]);for(var n=0;n=0?s.push("0"):e.indexOf(-(l+1))>=0?s.push("s["+l+"]-1"):(s.push("-1"),a.push("1"),o.push("s["+l+"]-2"));var c=".lo("+a.join()+").hi("+o.join()+")";if(0===a.length&&(c=""),i>0){n.push("if(1");for(l=0;l=0||e.indexOf(-(l+1))>=0||n.push("&&s[",l,"]>2");n.push("){grad",i,"(src.pick(",s.join(),")",c);for(l=0;l=0||e.indexOf(-(l+1))>=0||n.push(",dst.pick(",s.join(),",",l,")",c);n.push(");")}for(l=0;l1){dst.set(",s.join(),",",u,",0.5*(src.get(",h.join(),")-src.get(",p.join(),")))}else{dst.set(",s.join(),",",u,",0)};"):n.push("if(s[",u,"]>1){diff(",f,",src.pick(",h.join(),")",c,",src.pick(",p.join(),")",c,");}else{zero(",f,");};");break;case"mirror":0===i?n.push("dst.set(",s.join(),",",u,",0);"):n.push("zero(",f,");");break;case"wrap":var d=s.slice(),m=s.slice();e[l]<0?(d[u]="s["+u+"]-2",m[u]="0"):(d[u]="s["+u+"]-1",m[u]="1"),0===i?n.push("if(s[",u,"]>2){dst.set(",s.join(),",",u,",0.5*(src.get(",d.join(),")-src.get(",m.join(),")))}else{dst.set(",s.join(),",",u,",0)};"):n.push("if(s[",u,"]>2){diff(",f,",src.pick(",d.join(),")",c,",src.pick(",m.join(),")",c,");}else{zero(",f,");};");break;default:throw new Error("ndarray-gradient: Invalid boundary condition")}}i>0&&n.push("};")}for(var s=0;s<1<>",rrshift:">>>"};!function(){for(var t in s){var e=s[t];r[t]=o({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+e+"c"},funcName:t}),r[t+"eq"]=o({args:["array","array"],body:{args:["a","b"],body:"a"+e+"=b"},rvalue:!0,funcName:t+"eq"}),r[t+"s"]=o({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+e+"s"},funcName:t+"s"}),r[t+"seq"]=o({args:["array","scalar"],body:{args:["a","s"],body:"a"+e+"=s"},rvalue:!0,funcName:t+"seq"})}}();var l={not:"!",bnot:"~",neg:"-",recip:"1.0/"};!function(){for(var t in l){var e=l[t];r[t]=o({args:["array","array"],body:{args:["a","b"],body:"a="+e+"b"},funcName:t}),r[t+"eq"]=o({args:["array"],body:{args:["a"],body:"a="+e+"a"},rvalue:!0,count:2,funcName:t+"eq"})}}();var c={and:"&&",or:"||",eq:"===",neq:"!==",lt:"<",gt:">",leq:"<=",geq:">="};!function(){for(var t in c){var e=c[t];r[t]=o({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+e+"c"},funcName:t}),r[t+"s"]=o({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+e+"s"},funcName:t+"s"}),r[t+"eq"]=o({args:["array","array"],body:{args:["a","b"],body:"a=a"+e+"b"},rvalue:!0,count:2,funcName:t+"eq"}),r[t+"seq"]=o({args:["array","scalar"],body:{args:["a","s"],body:"a=a"+e+"s"},rvalue:!0,count:2,funcName:t+"seq"})}}();var u=["abs","acos","asin","atan","ceil","cos","exp","floor","log","round","sin","sqrt","tan"];!function(){for(var t=0;tthis_s){this_s=-a}else if(a>this_s){this_s=a}",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norminf"}),r.norm1=n({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:3}],body:"this_s+=a<0?-a:a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norm1"}),r.sup=n({args:["array"],pre:{body:"this_h=-Infinity",args:[],thisVars:["this_h"],localVars:[]},body:{body:"if(_inline_1_arg0_>this_h)this_h=_inline_1_arg0_",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_h"],localVars:[]},post:{body:"return this_h",args:[],thisVars:["this_h"],localVars:[]}}),r.inf=n({args:["array"],pre:{body:"this_h=Infinity",args:[],thisVars:["this_h"],localVars:[]},body:{body:"if(_inline_1_arg0_this_v){this_v=_inline_1_arg1_;for(var _inline_1_k=0;_inline_1_k<_inline_1_arg0_.length;++_inline_1_k){this_i[_inline_1_k]=_inline_1_arg0_[_inline_1_k]}}}",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2},{name:"_inline_1_arg1_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_i","this_v"],localVars:["_inline_1_k"]},post:{body:"{return this_i}",args:[],thisVars:["this_i"],localVars:[]}}),r.random=o({args:["array"],pre:{args:[],body:"this_f=Math.random",thisVars:["this_f"]},body:{args:["a"],body:"a=this_f()",thisVars:["this_f"]},funcName:"random"}),r.assign=o({args:["array","array"],body:{args:["a","b"],body:"a=b"},funcName:"assign"}),r.assigns=o({args:["array","scalar"],body:{args:["a","b"],body:"a=b"},funcName:"assigns"}),r.equals=n({args:["array","array"],pre:i,body:{args:[{name:"x",lvalue:!1,rvalue:!0,count:1},{name:"y",lvalue:!1,rvalue:!0,count:1}],body:"if(x!==y){return false}",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:"return true"},funcName:"equals"})},{"cwise-compiler":152}],471:[function(t,e,r){"use strict";var n=t("ndarray"),i=t("./doConvert.js");e.exports=function(t,e){for(var r=[],a=t,o=1;Array.isArray(a);)r.push(a.length),o*=a.length,a=a[0];return 0===r.length?n():(e||(e=n(new Float64Array(o),r)),i(e,t),e)}},{"./doConvert.js":472,ndarray:475}],472:[function(t,e,r){e.exports=t("cwise-compiler")({args:["array","scalar","index"],pre:{body:"{}",args:[],thisVars:[],localVars:[]},body:{body:"{\nvar _inline_1_v=_inline_1_arg1_,_inline_1_i\nfor(_inline_1_i=0;_inline_1_i<_inline_1_arg2_.length-1;++_inline_1_i) {\n_inline_1_v=_inline_1_v[_inline_1_arg2_[_inline_1_i]]\n}\n_inline_1_arg0_=_inline_1_v[_inline_1_arg2_[_inline_1_arg2_.length-1]]\n}",args:[{name:"_inline_1_arg0_",lvalue:!0,rvalue:!1,count:1},{name:"_inline_1_arg1_",lvalue:!1,rvalue:!0,count:1},{name:"_inline_1_arg2_",lvalue:!1,rvalue:!0,count:4}],thisVars:[],localVars:["_inline_1_i","_inline_1_v"]},post:{body:"{}",args:[],thisVars:[],localVars:[]},funcName:"convert",blockSize:64})},{"cwise-compiler":152}],473:[function(t,e,r){"use strict";var n=t("typedarray-pool"),i=32;function a(t){switch(t){case"uint8":return[n.mallocUint8,n.freeUint8];case"uint16":return[n.mallocUint16,n.freeUint16];case"uint32":return[n.mallocUint32,n.freeUint32];case"int8":return[n.mallocInt8,n.freeInt8];case"int16":return[n.mallocInt16,n.freeInt16];case"int32":return[n.mallocInt32,n.freeInt32];case"float32":return[n.mallocFloat,n.freeFloat];case"float64":return[n.mallocDouble,n.freeDouble];default:return null}}function o(t){for(var e=[],r=0;r0?s.push(["d",d,"=s",d,"-d",f,"*n",f].join("")):s.push(["d",d,"=s",d].join("")),f=d),0!==(p=t.length-1-l)&&(h>0?s.push(["e",p,"=s",p,"-e",h,"*n",h,",f",p,"=",c[p],"-f",h,"*n",h].join("")):s.push(["e",p,"=s",p,",f",p,"=",c[p]].join("")),h=p)}r.push("var "+s.join(","));var m=["0","n0-1","data","offset"].concat(o(t.length));r.push(["if(n0<=",i,"){","insertionSort(",m.join(","),")}else{","quickSort(",m.join(","),")}"].join("")),r.push("}return "+n);var g=new Function("insertionSort","quickSort",r.join("\n")),v=function(t,e){var r=["'use strict'"],n=["ndarrayInsertionSort",t.join("d"),e].join(""),i=["left","right","data","offset"].concat(o(t.length)),s=a(e),l=["i,j,cptr,ptr=left*s0+offset"];if(t.length>1){for(var c=[],u=1;u1){r.push("dptr=0;sptr=ptr");for(u=t.length-1;u>=0;--u){0!==(p=t[u])&&r.push(["for(i",p,"=0;i",p,"b){break __l}"].join(""));for(u=t.length-1;u>=1;--u)r.push("sptr+=e"+u,"dptr+=f"+u,"}");r.push("dptr=cptr;sptr=cptr-s0");for(u=t.length-1;u>=0;--u){0!==(p=t[u])&&r.push(["for(i",p,"=0;i",p,"=0;--u){0!==(p=t[u])&&r.push(["for(i",p,"=0;i",p,"scratch)){",h("cptr",f("cptr-s0")),"cptr-=s0","}",h("cptr","scratch"));return r.push("}"),t.length>1&&s&&r.push("free(scratch)"),r.push("} return "+n),s?new Function("malloc","free",r.join("\n"))(s[0],s[1]):new Function(r.join("\n"))()}(t,e),y=function(t,e,r){var n=["'use strict'"],s=["ndarrayQuickSort",t.join("d"),e].join(""),l=["left","right","data","offset"].concat(o(t.length)),c=a(e),u=0;n.push(["function ",s,"(",l.join(","),"){"].join(""));var f=["sixth=((right-left+1)/6)|0","index1=left+sixth","index5=right-sixth","index3=(left+right)>>1","index2=index3-sixth","index4=index3+sixth","el1=index1","el2=index2","el3=index3","el4=index4","el5=index5","less=left+1","great=right-1","pivots_are_equal=true","tmp","tmp0","x","y","z","k","ptr0","ptr1","ptr2","comp_pivot1=0","comp_pivot2=0","comp=0"];if(t.length>1){for(var h=[],p=1;p=0;--a){0!==(o=t[a])&&n.push(["for(i",o,"=0;i",o,"1)for(a=0;a1?n.push("ptr_shift+=d"+o):n.push("ptr0+=d"+o),n.push("}"))}}function y(e,r,i,a){if(1===r.length)n.push("ptr0="+d(r[0]));else{for(var o=0;o1)for(o=0;o=1;--o)i&&n.push("pivot_ptr+=f"+o),r.length>1?n.push("ptr_shift+=e"+o):n.push("ptr0+=e"+o),n.push("}")}function x(){t.length>1&&c&&n.push("free(pivot1)","free(pivot2)")}function b(e,r){var i="el"+e,a="el"+r;if(t.length>1){var o="__l"+ ++u;y(o,[i,a],!1,["comp=",m("ptr0"),"-",m("ptr1"),"\n","if(comp>0){tmp0=",i,";",i,"=",a,";",a,"=tmp0;break ",o,"}\n","if(comp<0){break ",o,"}"].join(""))}else n.push(["if(",m(d(i)),">",m(d(a)),"){tmp0=",i,";",i,"=",a,";",a,"=tmp0}"].join(""))}function _(e,r){t.length>1?v([e,r],!1,g("ptr0",m("ptr1"))):n.push(g(d(e),m(d(r))))}function w(e,r,i){if(t.length>1){var a="__l"+ ++u;y(a,[r],!0,[e,"=",m("ptr0"),"-pivot",i,"[pivot_ptr]\n","if(",e,"!==0){break ",a,"}"].join(""))}else n.push([e,"=",m(d(r)),"-pivot",i].join(""))}function T(e,r){t.length>1?v([e,r],!1,["tmp=",m("ptr0"),"\n",g("ptr0",m("ptr1")),"\n",g("ptr1","tmp")].join("")):n.push(["ptr0=",d(e),"\n","ptr1=",d(r),"\n","tmp=",m("ptr0"),"\n",g("ptr0",m("ptr1")),"\n",g("ptr1","tmp")].join(""))}function k(e,r,i){t.length>1?(v([e,r,i],!1,["tmp=",m("ptr0"),"\n",g("ptr0",m("ptr1")),"\n",g("ptr1",m("ptr2")),"\n",g("ptr2","tmp")].join("")),n.push("++"+r,"--"+i)):n.push(["ptr0=",d(e),"\n","ptr1=",d(r),"\n","ptr2=",d(i),"\n","++",r,"\n","--",i,"\n","tmp=",m("ptr0"),"\n",g("ptr0",m("ptr1")),"\n",g("ptr1",m("ptr2")),"\n",g("ptr2","tmp")].join(""))}function M(t,e){T(t,e),n.push("--"+e)}function A(e,r,i){t.length>1?v([e,r],!0,[g("ptr0",m("ptr1")),"\n",g("ptr1",["pivot",i,"[pivot_ptr]"].join(""))].join("")):n.push(g(d(e),m(d(r))),g(d(r),"pivot"+i))}function S(e,r){n.push(["if((",r,"-",e,")<=",i,"){\n","insertionSort(",e,",",r,",data,offset,",o(t.length).join(","),")\n","}else{\n",s,"(",e,",",r,",data,offset,",o(t.length).join(","),")\n","}"].join(""))}function E(e,r,i){t.length>1?(n.push(["__l",++u,":while(true){"].join("")),v([e],!0,["if(",m("ptr0"),"!==pivot",r,"[pivot_ptr]){break __l",u,"}"].join("")),n.push(i,"}")):n.push(["while(",m(d(e)),"===pivot",r,"){",i,"}"].join(""))}return n.push("var "+f.join(",")),b(1,2),b(4,5),b(1,3),b(2,3),b(1,4),b(3,4),b(2,5),b(2,3),b(4,5),t.length>1?v(["el1","el2","el3","el4","el5","index1","index3","index5"],!0,["pivot1[pivot_ptr]=",m("ptr1"),"\n","pivot2[pivot_ptr]=",m("ptr3"),"\n","pivots_are_equal=pivots_are_equal&&(pivot1[pivot_ptr]===pivot2[pivot_ptr])\n","x=",m("ptr0"),"\n","y=",m("ptr2"),"\n","z=",m("ptr4"),"\n",g("ptr5","x"),"\n",g("ptr6","y"),"\n",g("ptr7","z")].join("")):n.push(["pivot1=",m(d("el2")),"\n","pivot2=",m(d("el4")),"\n","pivots_are_equal=pivot1===pivot2\n","x=",m(d("el1")),"\n","y=",m(d("el3")),"\n","z=",m(d("el5")),"\n",g(d("index1"),"x"),"\n",g(d("index3"),"y"),"\n",g(d("index5"),"z")].join("")),_("index2","left"),_("index4","right"),n.push("if(pivots_are_equal){"),n.push("for(k=less;k<=great;++k){"),w("comp","k",1),n.push("if(comp===0){continue}"),n.push("if(comp<0){"),n.push("if(k!==less){"),T("k","less"),n.push("}"),n.push("++less"),n.push("}else{"),n.push("while(true){"),w("comp","great",1),n.push("if(comp>0){"),n.push("great--"),n.push("}else if(comp<0){"),k("k","less","great"),n.push("break"),n.push("}else{"),M("k","great"),n.push("break"),n.push("}"),n.push("}"),n.push("}"),n.push("}"),n.push("}else{"),n.push("for(k=less;k<=great;++k){"),w("comp_pivot1","k",1),n.push("if(comp_pivot1<0){"),n.push("if(k!==less){"),T("k","less"),n.push("}"),n.push("++less"),n.push("}else{"),w("comp_pivot2","k",2),n.push("if(comp_pivot2>0){"),n.push("while(true){"),w("comp","great",2),n.push("if(comp>0){"),n.push("if(--greatindex5){"),E("less",1,"++less"),E("great",2,"--great"),n.push("for(k=less;k<=great;++k){"),w("comp_pivot1","k",1),n.push("if(comp_pivot1===0){"),n.push("if(k!==less){"),T("k","less"),n.push("}"),n.push("++less"),n.push("}else{"),w("comp_pivot2","k",2),n.push("if(comp_pivot2===0){"),n.push("while(true){"),w("comp","great",2),n.push("if(comp===0){"),n.push("if(--great1&&c?new Function("insertionSort","malloc","free",n.join("\n"))(r,c[0],c[1]):new Function("insertionSort",n.join("\n"))(r)}(t,e,v);return g(v,y)}},{"typedarray-pool":609}],474:[function(t,e,r){"use strict";var n=t("./lib/compile_sort.js"),i={};e.exports=function(t){var e=t.order,r=t.dtype,a=[e,r].join(":"),o=i[a];return o||(i[a]=o=n(e,r)),o(t),t}},{"./lib/compile_sort.js":473}],475:[function(t,e,r){var n=t("iota-array"),i=t("is-buffer"),a="undefined"!=typeof Float64Array;function o(t,e){return t[0]-e[0]}function s(){var t,e=this.stride,r=new Array(e.length);for(t=0;tMath.abs(this.stride[1]))?[1,0]:[0,1]}})"):3===e&&a.push("var s0=Math.abs(this.stride[0]),s1=Math.abs(this.stride[1]),s2=Math.abs(this.stride[2]);if(s0>s1){if(s1>s2){return [2,1,0];}else if(s0>s2){return [1,2,0];}else{return [1,0,2];}}else if(s0>s2){return [2,0,1];}else if(s2>s1){return [0,1,2];}else{return [0,2,1];}}})")):a.push("ORDER})")),a.push("proto.set=function "+r+"_set("+l.join(",")+",v){"),i?a.push("return this.data.set("+u+",v)}"):a.push("return this.data["+u+"]=v}"),a.push("proto.get=function "+r+"_get("+l.join(",")+"){"),i?a.push("return this.data.get("+u+")}"):a.push("return this.data["+u+"]}"),a.push("proto.index=function "+r+"_index(",l.join(),"){return "+u+"}"),a.push("proto.hi=function "+r+"_hi("+l.join(",")+"){return new "+r+"(this.data,"+o.map((function(t){return["(typeof i",t,"!=='number'||i",t,"<0)?this.shape[",t,"]:i",t,"|0"].join("")})).join(",")+","+o.map((function(t){return"this.stride["+t+"]"})).join(",")+",this.offset)}");var p=o.map((function(t){return"a"+t+"=this.shape["+t+"]"})),d=o.map((function(t){return"c"+t+"=this.stride["+t+"]"}));a.push("proto.lo=function "+r+"_lo("+l.join(",")+"){var b=this.offset,d=0,"+p.join(",")+","+d.join(","));for(var m=0;m=0){d=i"+m+"|0;b+=c"+m+"*d;a"+m+"-=d}");a.push("return new "+r+"(this.data,"+o.map((function(t){return"a"+t})).join(",")+","+o.map((function(t){return"c"+t})).join(",")+",b)}"),a.push("proto.step=function "+r+"_step("+l.join(",")+"){var "+o.map((function(t){return"a"+t+"=this.shape["+t+"]"})).join(",")+","+o.map((function(t){return"b"+t+"=this.stride["+t+"]"})).join(",")+",c=this.offset,d=0,ceil=Math.ceil");for(m=0;m=0){c=(c+this.stride["+m+"]*i"+m+")|0}else{a.push(this.shape["+m+"]);b.push(this.stride["+m+"])}");return a.push("var ctor=CTOR_LIST[a.length+1];return ctor(this.data,a,b,c)}"),a.push("return function construct_"+r+"(data,shape,stride,offset){return new "+r+"(data,"+o.map((function(t){return"shape["+t+"]"})).join(",")+","+o.map((function(t){return"stride["+t+"]"})).join(",")+",offset)}"),new Function("CTOR_LIST","ORDER",a.join("\n"))(c[t],s)}var c={float32:[],float64:[],int8:[],int16:[],int32:[],uint8:[],uint16:[],uint32:[],array:[],uint8_clamped:[],bigint64:[],biguint64:[],buffer:[],generic:[]};e.exports=function(t,e,r,n){if(void 0===t)return(0,c.array[0])([]);"number"==typeof t&&(t=[t]),void 0===e&&(e=[t.length]);var o=e.length;if(void 0===r){r=new Array(o);for(var s=o-1,u=1;s>=0;--s)r[s]=u,u*=e[s]}if(void 0===n){n=0;for(s=0;st==t>0?a===-1>>>0?(r+=1,a=0):a+=1:0===a?(a=-1>>>0,r-=1):a-=1;return n.pack(a,r)}},{"double-bits":173}],477:[function(t,e,r){var n=Math.PI,i=c(120);function a(t,e,r,n){return["C",t,e,r,n,r,n]}function o(t,e,r,n,i,a){return["C",t/3+2/3*r,e/3+2/3*n,i/3+2/3*r,a/3+2/3*n,i,a]}function s(t,e,r,a,o,c,u,f,h,p){if(p)T=p[0],k=p[1],_=p[2],w=p[3];else{var d=l(t,e,-o);t=d.x,e=d.y;var m=(t-(f=(d=l(f,h,-o)).x))/2,g=(e-(h=d.y))/2,v=m*m/(r*r)+g*g/(a*a);v>1&&(r*=v=Math.sqrt(v),a*=v);var y=r*r,x=a*a,b=(c==u?-1:1)*Math.sqrt(Math.abs((y*x-y*g*g-x*m*m)/(y*g*g+x*m*m)));b==1/0&&(b=1);var _=b*r*g/a+(t+f)/2,w=b*-a*m/r+(e+h)/2,T=Math.asin(((e-w)/a).toFixed(9)),k=Math.asin(((h-w)/a).toFixed(9));(T=t<_?n-T:T)<0&&(T=2*n+T),(k=f<_?n-k:k)<0&&(k=2*n+k),u&&T>k&&(T-=2*n),!u&&k>T&&(k-=2*n)}if(Math.abs(k-T)>i){var M=k,A=f,S=h;k=T+i*(u&&k>T?1:-1);var E=s(f=_+r*Math.cos(k),h=w+a*Math.sin(k),r,a,o,0,u,A,S,[k,M,_,w])}var L=Math.tan((k-T)/4),C=4/3*r*L,P=4/3*a*L,I=[2*t-(t+C*Math.sin(T)),2*e-(e-P*Math.cos(T)),f+C*Math.sin(k),h-P*Math.cos(k),f,h];if(p)return I;E&&(I=I.concat(E));for(var O=0;O7&&(r.push(v.splice(0,7)),v.unshift("C"));break;case"S":var x=p,b=d;"C"!=e&&"S"!=e||(x+=x-n,b+=b-i),v=["C",x,b,v[1],v[2],v[3],v[4]];break;case"T":"Q"==e||"T"==e?(f=2*p-f,h=2*d-h):(f=p,h=d),v=o(p,d,f,h,v[1],v[2]);break;case"Q":f=v[1],h=v[2],v=o(p,d,v[1],v[2],v[3],v[4]);break;case"L":v=a(p,d,v[1],v[2]);break;case"H":v=a(p,d,v[1],d);break;case"V":v=a(p,d,p,v[1]);break;case"Z":v=a(p,d,l,u)}e=y,p=v[v.length-2],d=v[v.length-1],v.length>4?(n=v[v.length-4],i=v[v.length-3]):(n=p,i=d),r.push(v)}return r}},{}],478:[function(t,e,r){r.vertexNormals=function(t,e,r){for(var n=e.length,i=new Array(n),a=void 0===r?1e-6:r,o=0;oa){var b=i[c],_=1/Math.sqrt(g*y);for(x=0;x<3;++x){var w=(x+1)%3,T=(x+2)%3;b[x]+=_*(v[w]*m[T]-v[T]*m[w])}}}for(o=0;oa)for(_=1/Math.sqrt(k),x=0;x<3;++x)b[x]*=_;else for(x=0;x<3;++x)b[x]=0}return i},r.faceNormals=function(t,e,r){for(var n=t.length,i=new Array(n),a=void 0===r?1e-6:r,o=0;oa?1/Math.sqrt(p):0;for(c=0;c<3;++c)h[c]*=p;i[o]=h}return i}},{}],479:[function(t,e,r){ /* object-assign (c) Sindre Sorhus @license MIT */ -"use strict";var n=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;function o(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}e.exports=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(e).map((function(t){return e[t]})).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach((function(t){n[t]=t})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var r,s,l=o(t),c=1;c0){var f=Math.sqrt(u+1);t[0]=.5*(o-l)/f,t[1]=.5*(s-n)/f,t[2]=.5*(r-a)/f,t[3]=.5*f}else{var h=Math.max(e,a,c);f=Math.sqrt(2*h-u+1);e>=h?(t[0]=.5*f,t[1]=.5*(i+r)/f,t[2]=.5*(s+n)/f,t[3]=.5*(o-l)/f):a>=h?(t[0]=.5*(r+i)/f,t[1]=.5*f,t[2]=.5*(l+o)/f,t[3]=.5*(s-n)/f):(t[0]=.5*(n+s)/f,t[1]=.5*(o+l)/f,t[2]=.5*f,t[3]=.5*(r-i)/f)}return t}},{}],501:[function(t,e,r){"use strict";e.exports=function(t){var e=(t=t||{}).center||[0,0,0],r=t.rotation||[0,0,0,1],n=t.radius||1;e=[].slice.call(e,0,3),u(r=[].slice.call(r,0,4),r);var i=new f(r,e,Math.log(n));i.setDistanceLimits(t.zoomMin,t.zoomMax),("eye"in t||"up"in t)&&i.lookAt(0,t.eye,t.center,t.up);return i};var n=t("filtered-vector"),i=t("gl-mat4/lookAt"),a=t("gl-mat4/fromQuat"),o=t("gl-mat4/invert"),s=t("./lib/quatFromFrame");function l(t,e,r){return Math.sqrt(Math.pow(t,2)+Math.pow(e,2)+Math.pow(r,2))}function c(t,e,r,n){return Math.sqrt(Math.pow(t,2)+Math.pow(e,2)+Math.pow(r,2)+Math.pow(n,2))}function u(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=c(r,n,i,a);o>1e-6?(t[0]=r/o,t[1]=n/o,t[2]=i/o,t[3]=a/o):(t[0]=t[1]=t[2]=0,t[3]=1)}function f(t,e,r){this.radius=n([r]),this.center=n(e),this.rotation=n(t),this.computedRadius=this.radius.curve(0),this.computedCenter=this.center.curve(0),this.computedRotation=this.rotation.curve(0),this.computedUp=[.1,0,0],this.computedEye=[.1,0,0],this.computedMatrix=[.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],this.recalcMatrix(0)}var h=f.prototype;h.lastT=function(){return Math.max(this.radius.lastT(),this.center.lastT(),this.rotation.lastT())},h.recalcMatrix=function(t){this.radius.curve(t),this.center.curve(t),this.rotation.curve(t);var e=this.computedRotation;u(e,e);var r=this.computedMatrix;a(r,e);var n=this.computedCenter,i=this.computedEye,o=this.computedUp,s=Math.exp(this.computedRadius[0]);i[0]=n[0]+s*r[2],i[1]=n[1]+s*r[6],i[2]=n[2]+s*r[10],o[0]=r[1],o[1]=r[5],o[2]=r[9];for(var l=0;l<3;++l){for(var c=0,f=0;f<3;++f)c+=r[l+4*f]*i[f];r[12+l]=-c}},h.getMatrix=function(t,e){this.recalcMatrix(t);var r=this.computedMatrix;if(e){for(var n=0;n<16;++n)e[n]=r[n];return e}return r},h.idle=function(t){this.center.idle(t),this.radius.idle(t),this.rotation.idle(t)},h.flush=function(t){this.center.flush(t),this.radius.flush(t),this.rotation.flush(t)},h.pan=function(t,e,r,n){e=e||0,r=r||0,n=n||0,this.recalcMatrix(t);var i=this.computedMatrix,a=i[1],o=i[5],s=i[9],c=l(a,o,s);a/=c,o/=c,s/=c;var u=i[0],f=i[4],h=i[8],p=u*a+f*o+h*s,d=l(u-=a*p,f-=o*p,h-=s*p);u/=d,f/=d,h/=d;var g=i[2],m=i[6],v=i[10],y=g*a+m*o+v*s,x=g*u+m*f+v*h,b=l(g-=y*a+x*u,m-=y*o+x*f,v-=y*s+x*h);g/=b,m/=b,v/=b;var _=u*e+a*r,w=f*e+o*r,T=h*e+s*r;this.center.move(t,_,w,T);var k=Math.exp(this.computedRadius[0]);k=Math.max(1e-4,k+n),this.radius.set(t,Math.log(k))},h.rotate=function(t,e,r,n){this.recalcMatrix(t),e=e||0,r=r||0;var i=this.computedMatrix,a=i[0],o=i[4],s=i[8],u=i[1],f=i[5],h=i[9],p=i[2],d=i[6],g=i[10],m=e*a+r*u,v=e*o+r*f,y=e*s+r*h,x=-(d*y-g*v),b=-(g*m-p*y),_=-(p*v-d*m),w=Math.sqrt(Math.max(0,1-Math.pow(x,2)-Math.pow(b,2)-Math.pow(_,2))),T=c(x,b,_,w);T>1e-6?(x/=T,b/=T,_/=T,w/=T):(x=b=_=0,w=1);var k=this.computedRotation,M=k[0],A=k[1],S=k[2],E=k[3],C=M*w+E*x+A*_-S*b,L=A*w+E*b+S*x-M*_,I=S*w+E*_+M*b-A*x,P=E*w-M*x-A*b-S*_;if(n){x=p,b=d,_=g;var z=Math.sin(n)/l(x,b,_);x*=z,b*=z,_*=z,P=P*(w=Math.cos(e))-(C=C*w+P*x+L*_-I*b)*x-(L=L*w+P*b+I*x-C*_)*b-(I=I*w+P*_+C*b-L*x)*_}var O=c(C,L,I,P);O>1e-6?(C/=O,L/=O,I/=O,P/=O):(C=L=I=0,P=1),this.rotation.set(t,C,L,I,P)},h.lookAt=function(t,e,r,n){this.recalcMatrix(t),r=r||this.computedCenter,e=e||this.computedEye,n=n||this.computedUp;var a=this.computedMatrix;i(a,e,r,n);var o=this.computedRotation;s(o,a[0],a[1],a[2],a[4],a[5],a[6],a[8],a[9],a[10]),u(o,o),this.rotation.set(t,o[0],o[1],o[2],o[3]);for(var l=0,c=0;c<3;++c)l+=Math.pow(r[c]-e[c],2);this.radius.set(t,.5*Math.log(Math.max(l,1e-6))),this.center.set(t,r[0],r[1],r[2])},h.translate=function(t,e,r,n){this.center.move(t,e||0,r||0,n||0)},h.setMatrix=function(t,e){var r=this.computedRotation;s(r,e[0],e[1],e[2],e[4],e[5],e[6],e[8],e[9],e[10]),u(r,r),this.rotation.set(t,r[0],r[1],r[2],r[3]);var n=this.computedMatrix;o(n,e);var i=n[15];if(Math.abs(i)>1e-6){var a=n[12]/i,l=n[13]/i,c=n[14]/i;this.recalcMatrix(t);var f=Math.exp(this.computedRadius[0]);this.center.set(t,a-n[2]*f,l-n[6]*f,c-n[10]*f),this.radius.idle(t)}else this.center.idle(t),this.radius.idle(t)},h.setDistance=function(t,e){e>0&&this.radius.set(t,Math.log(e))},h.setDistanceLimits=function(t,e){t=t>0?Math.log(t):-1/0,e=e>0?Math.log(e):1/0,e=Math.max(e,t),this.radius.bounds[0][0]=t,this.radius.bounds[1][0]=e},h.getDistanceLimits=function(t){var e=this.radius.bounds;return t?(t[0]=Math.exp(e[0][0]),t[1]=Math.exp(e[1][0]),t):[Math.exp(e[0][0]),Math.exp(e[1][0])]},h.toJSON=function(){return this.recalcMatrix(this.lastT()),{center:this.computedCenter.slice(),rotation:this.computedRotation.slice(),distance:Math.log(this.computedRadius[0]),zoomMin:this.radius.bounds[0][0],zoomMax:this.radius.bounds[1][0]}},h.fromJSON=function(t){var e=this.lastT(),r=t.center;r&&this.center.set(e,r[0],r[1],r[2]);var n=t.rotation;n&&this.rotation.set(e,n[0],n[1],n[2],n[3]);var i=t.distance;i&&i>0&&this.radius.set(e,Math.log(i)),this.setDistanceLimits(t.zoomMin,t.zoomMax)}},{"./lib/quatFromFrame":500,"filtered-vector":242,"gl-mat4/fromQuat":282,"gl-mat4/invert":293,"gl-mat4/lookAt":294}],502:[function(t,e,r){ +"use strict";var n=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;function o(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}e.exports=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(e).map((function(t){return e[t]})).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach((function(t){n[t]=t})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var r,s,l=o(t),c=1;c0){var f=Math.sqrt(u+1);t[0]=.5*(o-l)/f,t[1]=.5*(s-n)/f,t[2]=.5*(r-a)/f,t[3]=.5*f}else{var h=Math.max(e,a,c);f=Math.sqrt(2*h-u+1);e>=h?(t[0]=.5*f,t[1]=.5*(i+r)/f,t[2]=.5*(s+n)/f,t[3]=.5*(o-l)/f):a>=h?(t[0]=.5*(r+i)/f,t[1]=.5*f,t[2]=.5*(l+o)/f,t[3]=.5*(s-n)/f):(t[0]=.5*(n+s)/f,t[1]=.5*(o+l)/f,t[2]=.5*f,t[3]=.5*(r-i)/f)}return t}},{}],481:[function(t,e,r){"use strict";e.exports=function(t){var e=(t=t||{}).center||[0,0,0],r=t.rotation||[0,0,0,1],n=t.radius||1;e=[].slice.call(e,0,3),u(r=[].slice.call(r,0,4),r);var i=new f(r,e,Math.log(n));i.setDistanceLimits(t.zoomMin,t.zoomMax),("eye"in t||"up"in t)&&i.lookAt(0,t.eye,t.center,t.up);return i};var n=t("filtered-vector"),i=t("gl-mat4/lookAt"),a=t("gl-mat4/fromQuat"),o=t("gl-mat4/invert"),s=t("./lib/quatFromFrame");function l(t,e,r){return Math.sqrt(Math.pow(t,2)+Math.pow(e,2)+Math.pow(r,2))}function c(t,e,r,n){return Math.sqrt(Math.pow(t,2)+Math.pow(e,2)+Math.pow(r,2)+Math.pow(n,2))}function u(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=c(r,n,i,a);o>1e-6?(t[0]=r/o,t[1]=n/o,t[2]=i/o,t[3]=a/o):(t[0]=t[1]=t[2]=0,t[3]=1)}function f(t,e,r){this.radius=n([r]),this.center=n(e),this.rotation=n(t),this.computedRadius=this.radius.curve(0),this.computedCenter=this.center.curve(0),this.computedRotation=this.rotation.curve(0),this.computedUp=[.1,0,0],this.computedEye=[.1,0,0],this.computedMatrix=[.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],this.recalcMatrix(0)}var h=f.prototype;h.lastT=function(){return Math.max(this.radius.lastT(),this.center.lastT(),this.rotation.lastT())},h.recalcMatrix=function(t){this.radius.curve(t),this.center.curve(t),this.rotation.curve(t);var e=this.computedRotation;u(e,e);var r=this.computedMatrix;a(r,e);var n=this.computedCenter,i=this.computedEye,o=this.computedUp,s=Math.exp(this.computedRadius[0]);i[0]=n[0]+s*r[2],i[1]=n[1]+s*r[6],i[2]=n[2]+s*r[10],o[0]=r[1],o[1]=r[5],o[2]=r[9];for(var l=0;l<3;++l){for(var c=0,f=0;f<3;++f)c+=r[l+4*f]*i[f];r[12+l]=-c}},h.getMatrix=function(t,e){this.recalcMatrix(t);var r=this.computedMatrix;if(e){for(var n=0;n<16;++n)e[n]=r[n];return e}return r},h.idle=function(t){this.center.idle(t),this.radius.idle(t),this.rotation.idle(t)},h.flush=function(t){this.center.flush(t),this.radius.flush(t),this.rotation.flush(t)},h.pan=function(t,e,r,n){e=e||0,r=r||0,n=n||0,this.recalcMatrix(t);var i=this.computedMatrix,a=i[1],o=i[5],s=i[9],c=l(a,o,s);a/=c,o/=c,s/=c;var u=i[0],f=i[4],h=i[8],p=u*a+f*o+h*s,d=l(u-=a*p,f-=o*p,h-=s*p);u/=d,f/=d,h/=d;var m=i[2],g=i[6],v=i[10],y=m*a+g*o+v*s,x=m*u+g*f+v*h,b=l(m-=y*a+x*u,g-=y*o+x*f,v-=y*s+x*h);m/=b,g/=b,v/=b;var _=u*e+a*r,w=f*e+o*r,T=h*e+s*r;this.center.move(t,_,w,T);var k=Math.exp(this.computedRadius[0]);k=Math.max(1e-4,k+n),this.radius.set(t,Math.log(k))},h.rotate=function(t,e,r,n){this.recalcMatrix(t),e=e||0,r=r||0;var i=this.computedMatrix,a=i[0],o=i[4],s=i[8],u=i[1],f=i[5],h=i[9],p=i[2],d=i[6],m=i[10],g=e*a+r*u,v=e*o+r*f,y=e*s+r*h,x=-(d*y-m*v),b=-(m*g-p*y),_=-(p*v-d*g),w=Math.sqrt(Math.max(0,1-Math.pow(x,2)-Math.pow(b,2)-Math.pow(_,2))),T=c(x,b,_,w);T>1e-6?(x/=T,b/=T,_/=T,w/=T):(x=b=_=0,w=1);var k=this.computedRotation,M=k[0],A=k[1],S=k[2],E=k[3],L=M*w+E*x+A*_-S*b,C=A*w+E*b+S*x-M*_,P=S*w+E*_+M*b-A*x,I=E*w-M*x-A*b-S*_;if(n){x=p,b=d,_=m;var O=Math.sin(n)/l(x,b,_);x*=O,b*=O,_*=O,I=I*(w=Math.cos(e))-(L=L*w+I*x+C*_-P*b)*x-(C=C*w+I*b+P*x-L*_)*b-(P=P*w+I*_+L*b-C*x)*_}var z=c(L,C,P,I);z>1e-6?(L/=z,C/=z,P/=z,I/=z):(L=C=P=0,I=1),this.rotation.set(t,L,C,P,I)},h.lookAt=function(t,e,r,n){this.recalcMatrix(t),r=r||this.computedCenter,e=e||this.computedEye,n=n||this.computedUp;var a=this.computedMatrix;i(a,e,r,n);var o=this.computedRotation;s(o,a[0],a[1],a[2],a[4],a[5],a[6],a[8],a[9],a[10]),u(o,o),this.rotation.set(t,o[0],o[1],o[2],o[3]);for(var l=0,c=0;c<3;++c)l+=Math.pow(r[c]-e[c],2);this.radius.set(t,.5*Math.log(Math.max(l,1e-6))),this.center.set(t,r[0],r[1],r[2])},h.translate=function(t,e,r,n){this.center.move(t,e||0,r||0,n||0)},h.setMatrix=function(t,e){var r=this.computedRotation;s(r,e[0],e[1],e[2],e[4],e[5],e[6],e[8],e[9],e[10]),u(r,r),this.rotation.set(t,r[0],r[1],r[2],r[3]);var n=this.computedMatrix;o(n,e);var i=n[15];if(Math.abs(i)>1e-6){var a=n[12]/i,l=n[13]/i,c=n[14]/i;this.recalcMatrix(t);var f=Math.exp(this.computedRadius[0]);this.center.set(t,a-n[2]*f,l-n[6]*f,c-n[10]*f),this.radius.idle(t)}else this.center.idle(t),this.radius.idle(t)},h.setDistance=function(t,e){e>0&&this.radius.set(t,Math.log(e))},h.setDistanceLimits=function(t,e){t=t>0?Math.log(t):-1/0,e=e>0?Math.log(e):1/0,e=Math.max(e,t),this.radius.bounds[0][0]=t,this.radius.bounds[1][0]=e},h.getDistanceLimits=function(t){var e=this.radius.bounds;return t?(t[0]=Math.exp(e[0][0]),t[1]=Math.exp(e[1][0]),t):[Math.exp(e[0][0]),Math.exp(e[1][0])]},h.toJSON=function(){return this.recalcMatrix(this.lastT()),{center:this.computedCenter.slice(),rotation:this.computedRotation.slice(),distance:Math.log(this.computedRadius[0]),zoomMin:this.radius.bounds[0][0],zoomMax:this.radius.bounds[1][0]}},h.fromJSON=function(t){var e=this.lastT(),r=t.center;r&&this.center.set(e,r[0],r[1],r[2]);var n=t.rotation;n&&this.rotation.set(e,n[0],n[1],n[2],n[3]);var i=t.distance;i&&i>0&&this.radius.set(e,Math.log(i)),this.setDistanceLimits(t.zoomMin,t.zoomMax)}},{"./lib/quatFromFrame":480,"filtered-vector":241,"gl-mat4/fromQuat":279,"gl-mat4/invert":290,"gl-mat4/lookAt":291}],482:[function(t,e,r){ /*! * pad-left * * Copyright (c) 2014-2015, Jon Schlinkert. * Licensed under the MIT license. */ -"use strict";var n=t("repeat-string");e.exports=function(t,e,r){return n(r="undefined"!=typeof r?r+"":" ",e)+t}},{"repeat-string":541}],503:[function(t,e,r){"use strict";function n(t,e){if("string"!=typeof t)return[t];var r=[t];"string"==typeof e||Array.isArray(e)?e={brackets:e}:e||(e={});var n=e.brackets?Array.isArray(e.brackets)?e.brackets:[e.brackets]:["{}","[]","()"],i=e.escape||"___",a=!!e.flat;n.forEach((function(t){var e=new RegExp(["\\",t[0],"[^\\",t[0],"\\",t[1],"]*\\",t[1]].join("")),n=[];function a(e,a,o){var s=r.push(e.slice(t[0].length,-t[1].length))-1;return n.push(s),i+s+i}r.forEach((function(t,n){for(var i,o=0;t!=i;)if(i=t,t=t.replace(e,a),o++>1e4)throw Error("References have circular dependency. Please, check them.");r[n]=t})),n=n.reverse(),r=r.map((function(e){return n.forEach((function(r){e=e.replace(new RegExp("(\\"+i+r+"\\"+i+")","g"),t[0]+"$1"+t[1])})),e}))}));var o=new RegExp("\\"+i+"([0-9]+)\\"+i);return a?r:function t(e,r,n){for(var i,a=[],s=0;i=o.exec(e);){if(s++>1e4)throw Error("Circular references in parenthesis");a.push(e.slice(0,i.index)),a.push(t(r[i[1]],r)),e=e.slice(i.index+i[0].length)}return a.push(e),a}(r[0],r)}function i(t,e){if(e&&e.flat){var r,n=e&&e.escape||"___",i=t[0];if(!i)return"";for(var a=new RegExp("\\"+n+"([0-9]+)\\"+n),o=0;i!=r;){if(o++>1e4)throw Error("Circular references in "+t);r=i,i=i.replace(a,s)}return i}return t.reduce((function t(e,r){return Array.isArray(r)&&(r=r.reduce(t,"")),e+r}),"");function s(e,r){if(null==t[r])throw Error("Reference "+r+"is undefined");return t[r]}}function a(t,e){return Array.isArray(t)?i(t,e):n(t,e)}a.parse=n,a.stringify=i,e.exports=a},{}],504:[function(t,e,r){"use strict";var n=t("pick-by-alias");e.exports=function(t){var e;arguments.length>1&&(t=arguments);"string"==typeof t?t=t.split(/\s/).map(parseFloat):"number"==typeof t&&(t=[t]);t.length&&"number"==typeof t[0]?e=1===t.length?{width:t[0],height:t[0],x:0,y:0}:2===t.length?{width:t[0],height:t[1],x:0,y:0}:{x:t[0],y:t[1],width:t[2]-t[0]||0,height:t[3]-t[1]||0}:t&&(t=n(t,{left:"x l left Left",top:"y t top Top",width:"w width W Width",height:"h height W Width",bottom:"b bottom Bottom",right:"r right Right"}),e={x:t.left||0,y:t.top||0},null==t.width?t.right?e.width=t.right-e.x:e.width=0:e.width=t.width,null==t.height?t.bottom?e.height=t.bottom-e.y:e.height=0:e.height=t.height);return e}},{"pick-by-alias":511}],505:[function(t,e,r){e.exports=function(t){var e=[];return t.replace(i,(function(t,r,i){var o=r.toLowerCase();for(i=function(t){var e=t.match(a);return e?e.map(Number):[]}(i),"m"==o&&i.length>2&&(e.push([r].concat(i.splice(0,2))),o="l",r="m"==r?"l":"L");;){if(i.length==n[o])return i.unshift(r),e.push(i);if(i.length2){var l=n.lastIndexOf("/");if(l!==n.length-1){-1===l?(n="",i=0):i=(n=n.slice(0,l)).length-1-n.lastIndexOf("/"),a=s,o=0;continue}}else if(2===n.length||1===n.length){n="",i=0,a=s,o=0;continue}e&&(n.length>0?n+="/..":n="..",i=2)}else n.length>0?n+="/"+t.slice(a+1,s):n=t.slice(a+1,s),i=s-a-1;a=s,o=0}else 46===r&&-1!==o?++o:o=-1}return n}var i={resolve:function(){for(var e,i="",a=!1,o=arguments.length-1;o>=-1&&!a;o--){var s;o>=0?s=arguments[o]:(void 0===e&&(e=t.cwd()),s=e),r(s),0!==s.length&&(i=s+"/"+i,a=47===s.charCodeAt(0))}return i=n(i,!a),a?i.length>0?"/"+i:"/":i.length>0?i:"."},normalize:function(t){if(r(t),0===t.length)return".";var e=47===t.charCodeAt(0),i=47===t.charCodeAt(t.length-1);return 0!==(t=n(t,!e)).length||e||(t="."),t.length>0&&i&&(t+="/"),e?"/"+t:t},isAbsolute:function(t){return r(t),t.length>0&&47===t.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var t,e=0;e0&&(void 0===t?t=n:t+="/"+n)}return void 0===t?".":i.normalize(t)},relative:function(t,e){if(r(t),r(e),t===e)return"";if((t=i.resolve(t))===(e=i.resolve(e)))return"";for(var n=1;nc){if(47===e.charCodeAt(s+f))return e.slice(s+f+1);if(0===f)return e.slice(s+f)}else o>c&&(47===t.charCodeAt(n+f)?u=f:0===f&&(u=0));break}var h=t.charCodeAt(n+f);if(h!==e.charCodeAt(s+f))break;47===h&&(u=f)}var p="";for(f=n+u+1;f<=a;++f)f!==a&&47!==t.charCodeAt(f)||(0===p.length?p+="..":p+="/..");return p.length>0?p+e.slice(s+u):(s+=u,47===e.charCodeAt(s)&&++s,e.slice(s))},_makeLong:function(t){return t},dirname:function(t){if(r(t),0===t.length)return".";for(var e=t.charCodeAt(0),n=47===e,i=-1,a=!0,o=t.length-1;o>=1;--o)if(47===(e=t.charCodeAt(o))){if(!a){i=o;break}}else a=!1;return-1===i?n?"/":".":n&&1===i?"//":t.slice(0,i)},basename:function(t,e){if(void 0!==e&&"string"!=typeof e)throw new TypeError('"ext" argument must be a string');r(t);var n,i=0,a=-1,o=!0;if(void 0!==e&&e.length>0&&e.length<=t.length){if(e.length===t.length&&e===t)return"";var s=e.length-1,l=-1;for(n=t.length-1;n>=0;--n){var c=t.charCodeAt(n);if(47===c){if(!o){i=n+1;break}}else-1===l&&(o=!1,l=n+1),s>=0&&(c===e.charCodeAt(s)?-1==--s&&(a=n):(s=-1,a=l))}return i===a?a=l:-1===a&&(a=t.length),t.slice(i,a)}for(n=t.length-1;n>=0;--n)if(47===t.charCodeAt(n)){if(!o){i=n+1;break}}else-1===a&&(o=!1,a=n+1);return-1===a?"":t.slice(i,a)},extname:function(t){r(t);for(var e=-1,n=0,i=-1,a=!0,o=0,s=t.length-1;s>=0;--s){var l=t.charCodeAt(s);if(47!==l)-1===i&&(a=!1,i=s+1),46===l?-1===e?e=s:1!==o&&(o=1):-1!==e&&(o=-1);else if(!a){n=s+1;break}}return-1===e||-1===i||0===o||1===o&&e===i-1&&e===n+1?"":t.slice(e,i)},format:function(t){if(null===t||"object"!=typeof t)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof t);return function(t,e){var r=e.dir||e.root,n=e.base||(e.name||"")+(e.ext||"");return r?r===e.root?r+n:r+t+n:n}("/",t)},parse:function(t){r(t);var e={root:"",dir:"",base:"",ext:"",name:""};if(0===t.length)return e;var n,i=t.charCodeAt(0),a=47===i;a?(e.root="/",n=1):n=0;for(var o=-1,s=0,l=-1,c=!0,u=t.length-1,f=0;u>=n;--u)if(47!==(i=t.charCodeAt(u)))-1===l&&(c=!1,l=u+1),46===i?-1===o?o=u:1!==f&&(f=1):-1!==o&&(f=-1);else if(!c){s=u+1;break}return-1===o||-1===l||0===f||1===f&&o===l-1&&o===s+1?-1!==l&&(e.base=e.name=0===s&&a?t.slice(1,l):t.slice(s,l)):(0===s&&a?(e.name=t.slice(1,o),e.base=t.slice(1,l)):(e.name=t.slice(s,o),e.base=t.slice(s,l)),e.ext=t.slice(o,l)),s>0?e.dir=t.slice(0,s-1):a&&(e.dir="/"),e},sep:"/",delimiter:":",win32:null,posix:null};i.posix=i,e.exports=i}).call(this)}).call(this,t("_process"))},{_process:526}],508:[function(t,e,r){(function(t){(function(){(function(){var r,n,i,a,o,s;"undefined"!=typeof performance&&null!==performance&&performance.now?e.exports=function(){return performance.now()}:"undefined"!=typeof t&&null!==t&&t.hrtime?(e.exports=function(){return(r()-o)/1e6},n=t.hrtime,a=(r=function(){var t;return 1e9*(t=n())[0]+t[1]})(),s=1e9*t.uptime(),o=a-s):Date.now?(e.exports=function(){return Date.now()-i},i=Date.now()):(e.exports=function(){return(new Date).getTime()-i},i=(new Date).getTime())}).call(this)}).call(this)}).call(this,t("_process"))},{_process:526}],509:[function(t,e,r){"use strict";e.exports=function(t){var e=t.length;if(e<32){for(var r=1,i=0;i0;--o)a=l[o],r=s[o],s[o]=s[a],s[a]=r,l[o]=l[r],l[r]=a,c=(c+r)*o;return n.freeUint32(l),n.freeUint32(s),c},r.unrank=function(t,e,r){switch(t){case 0:return r||[];case 1:return r?(r[0]=0,r):[0];case 2:return r?(e?(r[0]=0,r[1]=1):(r[0]=1,r[1]=0),r):e?[0,1]:[1,0]}var n,i,a,o=1;for((r=r||new Array(t))[0]=0,a=1;a0;--a)e=e-(n=e/o|0)*o|0,o=o/a|0,i=0|r[a],r[a]=0|r[n],r[n]=0|i;return r}},{"invert-permutation":462,"typedarray-pool":595}],511:[function(t,e,r){"use strict";e.exports=function(t,e,r){var n,a,o={};if("string"==typeof e&&(e=i(e)),Array.isArray(e)){var s={};for(a=0;a0){o=a[u][r][0],l=u;break}s=o[1^l];for(var f=0;f<2;++f)for(var h=a[f][r],p=0;p0&&(o=d,s=g,l=f)}return i||o&&c(o,l),s}function f(t,r){var i=a[r][t][0],o=[t];c(i,r);for(var s=i[1^r];;){for(;s!==t;)o.push(s),s=u(o[o.length-2],s,!1);if(a[0][t].length+a[1][t].length===0)break;var l=o[o.length-1],f=t,h=o[1],p=u(l,f,!0);if(n(e[l],e[f],e[h],e[p])<0)break;o.push(t),s=u(l,f)}return o}function h(t,e){return e[1]===e[e.length-1]}for(o=0;o0;){a[0][o].length;var g=f(o,p);h(0,g)?d.push.apply(d,g):(d.length>0&&l.push(d),d=g)}d.length>0&&l.push(d)}return l};var n=t("compare-angle")},{"compare-angle":132}],513:[function(t,e,r){"use strict";e.exports=function(t,e){for(var r=n(t,e.length),i=new Array(e.length),a=new Array(e.length),o=[],s=0;s0;){var c=o.pop();i[c]=!1;var u=r[c];for(s=0;s0}))).length,m=new Array(g),v=new Array(g);for(p=0;p0;){var B=R.pop(),N=E[B];l(N,(function(t,e){return t-e}));var j,U=N.length,V=F[B];if(0===V){var q=d[B];j=[q]}for(p=0;p=0))if(F[H]=1^V,R.push(H),0===V)D(q=d[H])||(q.reverse(),j.push(q))}0===V&&r.push(j)}return r};var n=t("edges-to-adjacency-list"),i=t("planar-dual"),a=t("point-in-big-polygon"),o=t("two-product"),s=t("robust-sum"),l=t("uniq"),c=t("./lib/trim-leaves");function u(t,e){for(var r=new Array(t),n=0;n0&&e[i]===r[0]))return 1;a=t[i-1]}for(var s=1;a;){var l=a.key,c=n(r,l[0],l[1]);if(l[0][0]0))return 0;s=-1,a=a.right}else if(c>0)a=a.left;else{if(!(c<0))return 0;s=1,a=a.right}}return s}}(v.slabs,v.coordinates);return 0===a.length?y:function(t,e){return function(r){return t(r[0],r[1])?0:e(r)}}(l(a),y)};var n=t("robust-orientation")[3],i=t("slab-decomposition"),a=t("interval-tree-1d"),o=t("binary-search-bounds");function s(){return!0}function l(t){for(var e={},r=0;r1e4)throw Error("References have circular dependency. Please, check them.");r[n]=t})),n=n.reverse(),r=r.map((function(e){return n.forEach((function(r){e=e.replace(new RegExp("(\\"+i+r+"\\"+i+")","g"),t[0]+"$1"+t[1])})),e}))}));var o=new RegExp("\\"+i+"([0-9]+)\\"+i);return a?r:function t(e,r,n){for(var i,a=[],s=0;i=o.exec(e);){if(s++>1e4)throw Error("Circular references in parenthesis");a.push(e.slice(0,i.index)),a.push(t(r[i[1]],r)),e=e.slice(i.index+i[0].length)}return a.push(e),a}(r[0],r)}function i(t,e){if(e&&e.flat){var r,n=e&&e.escape||"___",i=t[0];if(!i)return"";for(var a=new RegExp("\\"+n+"([0-9]+)\\"+n),o=0;i!=r;){if(o++>1e4)throw Error("Circular references in "+t);r=i,i=i.replace(a,s)}return i}return t.reduce((function t(e,r){return Array.isArray(r)&&(r=r.reduce(t,"")),e+r}),"");function s(e,r){if(null==t[r])throw Error("Reference "+r+"is undefined");return t[r]}}function a(t,e){return Array.isArray(t)?i(t,e):n(t,e)}a.parse=n,a.stringify=i,e.exports=a},{}],484:[function(t,e,r){"use strict";var n=t("pick-by-alias");e.exports=function(t){var e;arguments.length>1&&(t=arguments);"string"==typeof t?t=t.split(/\s/).map(parseFloat):"number"==typeof t&&(t=[t]);t.length&&"number"==typeof t[0]?e=1===t.length?{width:t[0],height:t[0],x:0,y:0}:2===t.length?{width:t[0],height:t[1],x:0,y:0}:{x:t[0],y:t[1],width:t[2]-t[0]||0,height:t[3]-t[1]||0}:t&&(t=n(t,{left:"x l left Left",top:"y t top Top",width:"w width W Width",height:"h height W Width",bottom:"b bottom Bottom",right:"r right Right"}),e={x:t.left||0,y:t.top||0},null==t.width?t.right?e.width=t.right-e.x:e.width=0:e.width=t.width,null==t.height?t.bottom?e.height=t.bottom-e.y:e.height=0:e.height=t.height);return e}},{"pick-by-alias":490}],485:[function(t,e,r){e.exports=function(t){var e=[];return t.replace(i,(function(t,r,i){var o=r.toLowerCase();for(i=function(t){var e=t.match(a);return e?e.map(Number):[]}(i),"m"==o&&i.length>2&&(e.push([r].concat(i.splice(0,2))),o="l",r="m"==r?"l":"L");;){if(i.length==n[o])return i.unshift(r),e.push(i);if(i.length0;--o)a=l[o],r=s[o],s[o]=s[a],s[a]=r,l[o]=l[r],l[r]=a,c=(c+r)*o;return n.freeUint32(l),n.freeUint32(s),c},r.unrank=function(t,e,r){switch(t){case 0:return r||[];case 1:return r?(r[0]=0,r):[0];case 2:return r?(e?(r[0]=0,r[1]=1):(r[0]=1,r[1]=0),r):e?[0,1]:[1,0]}var n,i,a,o=1;for((r=r||new Array(t))[0]=0,a=1;a0;--a)e=e-(n=e/o|0)*o|0,o=o/a|0,i=0|r[a],r[a]=0|r[n],r[n]=0|i;return r}},{"invert-permutation":441,"typedarray-pool":609}],490:[function(t,e,r){"use strict";e.exports=function(t,e,r){var n,a,o={};if("string"==typeof e&&(e=i(e)),Array.isArray(e)){var s={};for(a=0;a0){o=a[u][r][0],l=u;break}s=o[1^l];for(var f=0;f<2;++f)for(var h=a[f][r],p=0;p0&&(o=d,s=m,l=f)}return i||o&&c(o,l),s}function f(t,r){var i=a[r][t][0],o=[t];c(i,r);for(var s=i[1^r];;){for(;s!==t;)o.push(s),s=u(o[o.length-2],s,!1);if(a[0][t].length+a[1][t].length===0)break;var l=o[o.length-1],f=t,h=o[1],p=u(l,f,!0);if(n(e[l],e[f],e[h],e[p])<0)break;o.push(t),s=u(l,f)}return o}function h(t,e){return e[1]===e[e.length-1]}for(o=0;o0;){a[0][o].length;var m=f(o,p);h(0,m)?d.push.apply(d,m):(d.length>0&&l.push(d),d=m)}d.length>0&&l.push(d)}return l};var n=t("compare-angle")},{"compare-angle":133}],492:[function(t,e,r){"use strict";e.exports=function(t,e){for(var r=n(t,e.length),i=new Array(e.length),a=new Array(e.length),o=[],s=0;s0;){var c=o.pop();i[c]=!1;var u=r[c];for(s=0;s0}))).length,g=new Array(m),v=new Array(m);for(p=0;p0;){var B=R.pop(),N=E[B];l(N,(function(t,e){return t-e}));var j,U=N.length,V=F[B];if(0===V){var q=d[B];j=[q]}for(p=0;p=0))if(F[H]=1^V,R.push(H),0===V)D(q=d[H])||(q.reverse(),j.push(q))}0===V&&r.push(j)}return r};var n=t("edges-to-adjacency-list"),i=t("planar-dual"),a=t("point-in-big-polygon"),o=t("two-product"),s=t("robust-sum"),l=t("uniq"),c=t("./lib/trim-leaves");function u(t,e){for(var r=new Array(t),n=0;n0&&e[i]===r[0]))return 1;a=t[i-1]}for(var s=1;a;){var l=a.key,c=n(r,l[0],l[1]);if(l[0][0]0))return 0;s=-1,a=a.right}else if(c>0)a=a.left;else{if(!(c<0))return 0;s=1,a=a.right}}return s}}(v.slabs,v.coordinates);return 0===a.length?y:function(t,e){return function(r){return t(r[0],r[1])?0:e(r)}}(l(a),y)};var n=t("robust-orientation")[3],i=t("slab-decomposition"),a=t("interval-tree-1d"),o=t("binary-search-bounds");function s(){return!0}function l(t){for(var e={},r=0;r=-t},pointBetween:function(e,r,n){var i=e[1]-r[1],a=n[0]-r[0],o=e[0]-r[0],s=n[1]-r[1],l=o*a+i*s;return!(l-t)},pointsSameX:function(e,r){return Math.abs(e[0]-r[0])t!=o-i>t&&(a-c)*(i-u)/(o-u)+c-n>t&&(s=!s),a=c,o=u}return s}};return e}},{}],520:[function(t,e,r){var n={toPolygon:function(t,e){function r(e){if(e.length<=0)return t.segments({inverted:!1,regions:[]});function r(e){var r=e.slice(0,e.length-1);return t.segments({inverted:!1,regions:[r]})}for(var n=r(e[0]),i=1;i0}))}function u(t,n){var i=t.seg,a=n.seg,o=i.start,s=i.end,c=a.start,u=a.end;r&&r.checkIntersection(i,a);var f=e.linesIntersect(o,s,c,u);if(!1===f){if(!e.pointsCollinear(o,s,c))return!1;if(e.pointsSame(o,u)||e.pointsSame(s,c))return!1;var h=e.pointsSame(o,c),p=e.pointsSame(s,u);if(h&&p)return n;var d=!h&&e.pointBetween(o,c,u),g=!p&&e.pointBetween(s,c,u);if(h)return g?l(n,s):l(t,u),n;d&&(p||(g?l(n,s):l(t,u)),l(n,o))}else 0===f.alongA&&(-1===f.alongB?l(t,c):0===f.alongB?l(t,f.pt):1===f.alongB&&l(t,u)),0===f.alongB&&(-1===f.alongA?l(n,o):0===f.alongA?l(n,f.pt):1===f.alongA&&l(n,s));return!1}for(var f=[];!a.isEmpty();){var h=a.getHead();if(r&&r.vert(h.pt[0]),h.isStart){r&&r.segmentNew(h.seg,h.primary);var p=c(h),d=p.before?p.before.ev:null,g=p.after?p.after.ev:null;function m(){if(d){var t=u(h,d);if(t)return t}return!!g&&u(h,g)}r&&r.tempStatus(h.seg,!!d&&d.seg,!!g&&g.seg);var v,y=m();if(y){var x;if(t)(x=null===h.seg.myFill.below||h.seg.myFill.above!==h.seg.myFill.below)&&(y.seg.myFill.above=!y.seg.myFill.above);else y.seg.otherFill=h.seg.myFill;r&&r.segmentUpdate(y.seg),h.other.remove(),h.remove()}if(a.getHead()!==h){r&&r.rewind(h.seg);continue}if(t)x=null===h.seg.myFill.below||h.seg.myFill.above!==h.seg.myFill.below,h.seg.myFill.below=g?g.seg.myFill.above:i,h.seg.myFill.above=x?!h.seg.myFill.below:h.seg.myFill.below;else if(null===h.seg.otherFill)v=g?h.primary===g.primary?g.seg.otherFill.above:g.seg.myFill.above:h.primary?o:i,h.seg.otherFill={above:v,below:v};r&&r.status(h.seg,!!d&&d.seg,!!g&&g.seg),h.other.status=p.insert(n.node({ev:h}))}else{var b=h.status;if(null===b)throw new Error("PolyBool: Zero-length segment detected; your epsilon is probably too small or too large");if(s.exists(b.prev)&&s.exists(b.next)&&u(b.prev.ev,b.next.ev),r&&r.statusRemove(b.ev.seg),b.remove(),!h.primary){var _=h.seg.myFill;h.seg.myFill=h.seg.otherFill,h.seg.otherFill=_}f.push(h.seg)}a.getHead().remove()}return r&&r.done(),f}return t?{addRegion:function(t){for(var n,i,a,o=t[t.length-1],l=0;l=c?(k=1,y=c+2*h+d):y=h*(k=-h/c)+d):(k=0,p>=0?(M=0,y=d):-p>=f?(M=1,y=f+2*p+d):y=p*(M=-p/f)+d);else if(M<0)M=0,h>=0?(k=0,y=d):-h>=c?(k=1,y=c+2*h+d):y=h*(k=-h/c)+d;else{var A=1/T;y=(k*=A)*(c*k+u*(M*=A)+2*h)+M*(u*k+f*M+2*p)+d}else k<0?(b=f+p)>(x=u+h)?(_=b-x)>=(w=c-2*u+f)?(k=1,M=0,y=c+2*h+d):y=(k=_/w)*(c*k+u*(M=1-k)+2*h)+M*(u*k+f*M+2*p)+d:(k=0,b<=0?(M=1,y=f+2*p+d):p>=0?(M=0,y=d):y=p*(M=-p/f)+d):M<0?(b=c+h)>(x=u+p)?(_=b-x)>=(w=c-2*u+f)?(M=1,k=0,y=f+2*p+d):y=(k=1-(M=_/w))*(c*k+u*M+2*h)+M*(u*k+f*M+2*p)+d:(M=0,b<=0?(k=1,y=c+2*h+d):h>=0?(k=0,y=d):y=h*(k=-h/c)+d):(_=f+p-u-h)<=0?(k=0,M=1,y=f+2*p+d):_>=(w=c-2*u+f)?(k=1,M=0,y=c+2*h+d):y=(k=_/w)*(c*k+u*(M=1-k)+2*h)+M*(u*k+f*M+2*p)+d;var S=1-k-M;for(l=0;l1)for(var r=1;r0){var c=t[r-1];if(0===n(s,c)&&a(c)!==l){r-=1;continue}}t[r++]=s}}return t.length=r,t}},{"cell-orientation":117,"compare-cell":133,"compare-oriented-cell":134}],534:[function(t,e,r){"use strict";var n=t("array-bounds"),i=t("color-normalize"),a=t("update-diff"),o=t("pick-by-alias"),s=t("object-assign"),l=t("flatten-vertex-data"),c=t("to-float32"),u=c.float32,f=c.fract32;e.exports=function(t,e){"function"==typeof t?(e||(e={}),e.regl=t):e=t;e.length&&(e.positions=e);if(!(t=e.regl).hasExtension("ANGLE_instanced_arrays"))throw Error("regl-error2d: `ANGLE_instanced_arrays` extension should be enabled");var r,c,p,d,g,m,v=t._gl,y={color:"black",capSize:5,lineWidth:1,opacity:1,viewport:null,range:null,offset:0,count:0,bounds:null,positions:[],errors:[]},x=[];return d=t.buffer({usage:"dynamic",type:"uint8",data:new Uint8Array(0)}),c=t.buffer({usage:"dynamic",type:"float",data:new Uint8Array(0)}),p=t.buffer({usage:"dynamic",type:"float",data:new Uint8Array(0)}),g=t.buffer({usage:"dynamic",type:"float",data:new Uint8Array(0)}),m=t.buffer({usage:"static",type:"float",data:h}),T(e),r=t({vert:"\n\t\tprecision highp float;\n\n\t\tattribute vec2 position, positionFract;\n\t\tattribute vec4 error;\n\t\tattribute vec4 color;\n\n\t\tattribute vec2 direction, lineOffset, capOffset;\n\n\t\tuniform vec4 viewport;\n\t\tuniform float lineWidth, capSize;\n\t\tuniform vec2 scale, scaleFract, translate, translateFract;\n\n\t\tvarying vec4 fragColor;\n\n\t\tvoid main() {\n\t\t\tfragColor = color / 255.;\n\n\t\t\tvec2 pixelOffset = lineWidth * lineOffset + (capSize + lineWidth) * capOffset;\n\n\t\t\tvec2 dxy = -step(.5, direction.xy) * error.xz + step(direction.xy, vec2(-.5)) * error.yw;\n\n\t\t\tvec2 position = position + dxy;\n\n\t\t\tvec2 pos = (position + translate) * scale\n\t\t\t\t+ (positionFract + translateFract) * scale\n\t\t\t\t+ (position + translate) * scaleFract\n\t\t\t\t+ (positionFract + translateFract) * scaleFract;\n\n\t\t\tpos += pixelOffset / viewport.zw;\n\n\t\t\tgl_Position = vec4(pos * 2. - 1., 0, 1);\n\t\t}\n\t\t",frag:"\n\t\tprecision highp float;\n\n\t\tvarying vec4 fragColor;\n\n\t\tuniform float opacity;\n\n\t\tvoid main() {\n\t\t\tgl_FragColor = fragColor;\n\t\t\tgl_FragColor.a *= opacity;\n\t\t}\n\t\t",uniforms:{range:t.prop("range"),lineWidth:t.prop("lineWidth"),capSize:t.prop("capSize"),opacity:t.prop("opacity"),scale:t.prop("scale"),translate:t.prop("translate"),scaleFract:t.prop("scaleFract"),translateFract:t.prop("translateFract"),viewport:function(t,e){return[e.viewport.x,e.viewport.y,t.viewportWidth,t.viewportHeight]}},attributes:{color:{buffer:d,offset:function(t,e){return 4*e.offset},divisor:1},position:{buffer:c,offset:function(t,e){return 8*e.offset},divisor:1},positionFract:{buffer:p,offset:function(t,e){return 8*e.offset},divisor:1},error:{buffer:g,offset:function(t,e){return 16*e.offset},divisor:1},direction:{buffer:m,stride:24,offset:0},lineOffset:{buffer:m,stride:24,offset:8},capOffset:{buffer:m,stride:24,offset:16}},primitive:"triangles",blend:{enable:!0,color:[0,0,0,0],equation:{rgb:"add",alpha:"add"},func:{srcRGB:"src alpha",dstRGB:"one minus src alpha",srcAlpha:"one minus dst alpha",dstAlpha:"one"}},depth:{enable:!1},scissor:{enable:!0,box:t.prop("viewport")},viewport:t.prop("viewport"),stencil:!1,instances:t.prop("count"),count:h.length}),s(b,{update:T,draw:_,destroy:k,regl:t,gl:v,canvas:v.canvas,groups:x}),b;function b(t){t?T(t):null===t&&k(),_()}function _(e){if("number"==typeof e)return w(e);e&&!Array.isArray(e)&&(e=[e]),t._refresh(),x.forEach((function(t,r){t&&(e&&(e[r]?t.draw=!0:t.draw=!1),t.draw?w(r):t.draw=!0)}))}function w(t){"number"==typeof t&&(t=x[t]),null!=t&&t&&t.count&&t.color&&t.opacity&&t.positions&&t.positions.length>1&&(t.scaleRatio=[t.scale[0]*t.viewport.width,t.scale[1]*t.viewport.height],r(t),t.after&&t.after(t))}function T(t){if(t){null!=t.length?"number"==typeof t[0]&&(t=[{positions:t}]):Array.isArray(t)||(t=[t]);var e=0,r=0;if(b.groups=x=t.map((function(t,c){var u=x[c];return t?("function"==typeof t?t={after:t}:"number"==typeof t[0]&&(t={positions:t}),t=o(t,{color:"color colors fill",capSize:"capSize cap capsize cap-size",lineWidth:"lineWidth line-width width line thickness",opacity:"opacity alpha",range:"range dataBox",viewport:"viewport viewBox",errors:"errors error",positions:"positions position data points"}),u||(x[c]=u={id:c,scale:null,translate:null,scaleFract:null,translateFract:null,draw:!0},t=s({},y,t)),a(u,t,[{lineWidth:function(t){return.5*+t},capSize:function(t){return.5*+t},opacity:parseFloat,errors:function(t){return t=l(t),r+=t.length,t},positions:function(t,r){return t=l(t,"float64"),r.count=Math.floor(t.length/2),r.bounds=n(t,2),r.offset=e,e+=r.count,t}},{color:function(t,e){var r=e.count;if(t||(t="transparent"),!Array.isArray(t)||"number"==typeof t[0]){var n=t;t=Array(r);for(var a=0;a 0. && baClipping < length(normalWidth * endBotJoin)) {\n\t\t//handle miter clipping\n\t\tbTopCoord -= normalWidth * endTopJoin;\n\t\tbTopCoord += normalize(endTopJoin * normalWidth) * baClipping;\n\t}\n\n\tif (nextReverse) {\n\t\t//make join rectangular\n\t\tvec2 miterShift = normalWidth * endJoinDirection * miterLimit * .5;\n\t\tfloat normalAdjust = 1. - min(miterLimit / endMiterRatio, 1.);\n\t\tbBotCoord = bCoord + miterShift - normalAdjust * normalWidth * currNormal * .5;\n\t\tbTopCoord = bCoord + miterShift + normalAdjust * normalWidth * currNormal * .5;\n\t}\n\telse if (!prevReverse && abClipping > 0. && abClipping < length(normalWidth * startBotJoin)) {\n\t\t//handle miter clipping\n\t\taBotCoord -= normalWidth * startBotJoin;\n\t\taBotCoord += normalize(startBotJoin * normalWidth) * abClipping;\n\t}\n\n\tvec2 aTopPosition = (aTopCoord) * adjustedScale + translate;\n\tvec2 aBotPosition = (aBotCoord) * adjustedScale + translate;\n\n\tvec2 bTopPosition = (bTopCoord) * adjustedScale + translate;\n\tvec2 bBotPosition = (bBotCoord) * adjustedScale + translate;\n\n\t//position is normalized 0..1 coord on the screen\n\tvec2 position = (aTopPosition * lineTop + aBotPosition * lineBot) * lineStart + (bTopPosition * lineTop + bBotPosition * lineBot) * lineEnd;\n\n\tstartCoord = aCoord * scaleRatio + translate * viewport.zw + viewport.xy;\n\tendCoord = bCoord * scaleRatio + translate * viewport.zw + viewport.xy;\n\n\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\n\n\tenableStartMiter = step(dot(currTangent, prevTangent), .5);\n\tenableEndMiter = step(dot(currTangent, nextTangent), .5);\n\n\t//bevel miter cutoffs\n\tif (miterMode == 1.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tvec2 startMiterWidth = vec2(startJoinDirection) * thickness * miterLimit * .5;\n\t\t\tstartCutoff = vec4(aCoord, aCoord);\n\t\t\tstartCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;\n\t\t\tstartCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tstartCutoff += viewport.xyxy;\n\t\t\tstartCutoff += startMiterWidth.xyxy;\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tvec2 endMiterWidth = vec2(endJoinDirection) * thickness * miterLimit * .5;\n\t\t\tendCutoff = vec4(bCoord, bCoord);\n\t\t\tendCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x) / scaleRatio;\n\t\t\tendCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tendCutoff += viewport.xyxy;\n\t\t\tendCutoff += endMiterWidth.xyxy;\n\t\t}\n\t}\n\n\t//round miter cutoffs\n\telse if (miterMode == 2.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tvec2 startMiterWidth = vec2(startJoinDirection) * thickness * abs(dot(startJoinDirection, currNormal)) * .5;\n\t\t\tstartCutoff = vec4(aCoord, aCoord);\n\t\t\tstartCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;\n\t\t\tstartCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tstartCutoff += viewport.xyxy;\n\t\t\tstartCutoff += startMiterWidth.xyxy;\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tvec2 endMiterWidth = vec2(endJoinDirection) * thickness * abs(dot(endJoinDirection, currNormal)) * .5;\n\t\t\tendCutoff = vec4(bCoord, bCoord);\n\t\t\tendCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x) / scaleRatio;\n\t\t\tendCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tendCutoff += viewport.xyxy;\n\t\t\tendCutoff += endMiterWidth.xyxy;\n\t\t}\n\t}\n}\n"]),frag:o(["precision highp float;\n#define GLSLIFY 1\n\nuniform sampler2D dashPattern;\nuniform float dashSize, pixelRatio, thickness, opacity, id, miterMode;\n\nvarying vec4 fragColor;\nvarying vec2 tangent;\nvarying vec4 startCutoff, endCutoff;\nvarying vec2 startCoord, endCoord;\nvarying float enableStartMiter, enableEndMiter;\n\nfloat distToLine(vec2 p, vec2 a, vec2 b) {\n\tvec2 diff = b - a;\n\tvec2 perp = normalize(vec2(-diff.y, diff.x));\n\treturn dot(p - a, perp);\n}\n\nvoid main() {\n\tfloat alpha = 1., distToStart, distToEnd;\n\tfloat cutoff = thickness * .5;\n\n\t//bevel miter\n\tif (miterMode == 1.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tdistToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);\n\t\t\tif (distToStart < -1.) {\n\t\t\t\tdiscard;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\talpha *= min(max(distToStart + 1., 0.), 1.);\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tdistToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);\n\t\t\tif (distToEnd < -1.) {\n\t\t\t\tdiscard;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\talpha *= min(max(distToEnd + 1., 0.), 1.);\n\t\t}\n\t}\n\n\t// round miter\n\telse if (miterMode == 2.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tdistToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);\n\t\t\tif (distToStart < 0.) {\n\t\t\t\tfloat radius = length(gl_FragCoord.xy - startCoord);\n\n\t\t\t\tif(radius > cutoff + .5) {\n\t\t\t\t\tdiscard;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\talpha -= smoothstep(cutoff - .5, cutoff + .5, radius);\n\t\t\t}\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tdistToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);\n\t\t\tif (distToEnd < 0.) {\n\t\t\t\tfloat radius = length(gl_FragCoord.xy - endCoord);\n\n\t\t\t\tif(radius > cutoff + .5) {\n\t\t\t\t\tdiscard;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\talpha -= smoothstep(cutoff - .5, cutoff + .5, radius);\n\t\t\t}\n\t\t}\n\t}\n\n\tfloat t = fract(dot(tangent, gl_FragCoord.xy) / dashSize) * .5 + .25;\n\tfloat dash = texture2D(dashPattern, vec2(t, .5)).r;\n\n\tgl_FragColor = fragColor;\n\tgl_FragColor.a *= alpha * opacity * dash;\n}\n"]),attributes:{lineEnd:{buffer:r,divisor:0,stride:8,offset:0},lineTop:{buffer:r,divisor:0,stride:8,offset:4},aColor:{buffer:t.prop("colorBuffer"),stride:4,offset:0,divisor:1},bColor:{buffer:t.prop("colorBuffer"),stride:4,offset:4,divisor:1},prevCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:0,divisor:1},aCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:8,divisor:1},bCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:16,divisor:1},nextCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:24,divisor:1}}},n))}catch(t){e=i}return{fill:t({primitive:"triangle",elements:function(t,e){return e.triangles},offset:0,vert:o(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec2 position, positionFract;\n\nuniform vec4 color;\nuniform vec2 scale, scaleFract, translate, translateFract;\nuniform float pixelRatio, id;\nuniform vec4 viewport;\nuniform float opacity;\n\nvarying vec4 fragColor;\n\nconst float MAX_LINES = 256.;\n\nvoid main() {\n\tfloat depth = (MAX_LINES - 4. - id) / (MAX_LINES);\n\n\tvec2 position = position * scale + translate\n + positionFract * scale + translateFract\n + position * scaleFract\n + positionFract * scaleFract;\n\n\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\n\n\tfragColor = color / 255.;\n\tfragColor.a *= opacity;\n}\n"]),frag:o(["precision highp float;\n#define GLSLIFY 1\n\nvarying vec4 fragColor;\n\nvoid main() {\n\tgl_FragColor = fragColor;\n}\n"]),uniforms:{scale:t.prop("scale"),color:t.prop("fill"),scaleFract:t.prop("scaleFract"),translateFract:t.prop("translateFract"),translate:t.prop("translate"),opacity:t.prop("opacity"),pixelRatio:t.context("pixelRatio"),id:t.prop("id"),viewport:function(t,e){return[e.viewport.x,e.viewport.y,t.viewportWidth,t.viewportHeight]}},attributes:{position:{buffer:t.prop("positionBuffer"),stride:8,offset:8},positionFract:{buffer:t.prop("positionFractBuffer"),stride:8,offset:8}},blend:n.blend,depth:{enable:!1},scissor:n.scissor,stencil:n.stencil,viewport:n.viewport}),rect:i,miter:e}},m.defaults={dashes:null,join:"miter",miterLimit:1,thickness:10,cap:"square",color:"black",opacity:1,overlay:!1,viewport:null,range:null,close:!1,fill:null},m.prototype.render=function(){for(var t,e=[],r=arguments.length;r--;)e[r]=arguments[r];e.length&&(t=this).update.apply(t,e),this.draw()},m.prototype.draw=function(){for(var t=this,e=[],r=arguments.length;r--;)e[r]=arguments[r];return(e.length?e:this.passes).forEach((function(e,r){var n;if(e&&Array.isArray(e))return(n=t).draw.apply(n,e);"number"==typeof e&&(e=t.passes[e]),e&&e.count>1&&e.opacity&&(t.regl._refresh(),e.fill&&e.triangles&&e.triangles.length>2&&t.shaders.fill(e),e.thickness&&(e.scale[0]*e.viewport.width>m.precisionThreshold||e.scale[1]*e.viewport.height>m.precisionThreshold||"rect"===e.join||!e.join&&(e.thickness<=2||e.count>=m.maxPoints)?t.shaders.rect(e):t.shaders.miter(e)))})),this},m.prototype.update=function(t){var e=this;if(t){null!=t.length?"number"==typeof t[0]&&(t=[{positions:t}]):Array.isArray(t)||(t=[t]);var r=this.regl,o=this.gl;if(t.forEach((function(t,f){var d=e.passes[f];if(void 0!==t)if(null!==t){if("number"==typeof t[0]&&(t={positions:t}),t=s(t,{positions:"positions points data coords",thickness:"thickness lineWidth lineWidths line-width linewidth width stroke-width strokewidth strokeWidth",join:"lineJoin linejoin join type mode",miterLimit:"miterlimit miterLimit",dashes:"dash dashes dasharray dash-array dashArray",color:"color colour stroke colors colours stroke-color strokeColor",fill:"fill fill-color fillColor",opacity:"alpha opacity",overlay:"overlay crease overlap intersect",close:"closed close closed-path closePath",range:"range dataBox",viewport:"viewport viewBox",hole:"holes hole hollow"}),d||(e.passes[f]=d={id:f,scale:null,scaleFract:null,translate:null,translateFract:null,count:0,hole:[],depth:0,dashLength:1,dashTexture:r.texture({channels:1,data:new Uint8Array([255]),width:1,height:1,mag:"linear",min:"linear"}),colorBuffer:r.buffer({usage:"dynamic",type:"uint8",data:new Uint8Array}),positionBuffer:r.buffer({usage:"dynamic",type:"float",data:new Uint8Array}),positionFractBuffer:r.buffer({usage:"dynamic",type:"float",data:new Uint8Array})},t=a({},m.defaults,t)),null!=t.thickness&&(d.thickness=parseFloat(t.thickness)),null!=t.opacity&&(d.opacity=parseFloat(t.opacity)),null!=t.miterLimit&&(d.miterLimit=parseFloat(t.miterLimit)),null!=t.overlay&&(d.overlay=!!t.overlay,ft.length)&&(e=t.length);for(var r=0,n=new Array(e);r 1.0 + delta) {\n\t\tdiscard;\n\t}\n\n\talpha -= smoothstep(1.0 - delta, 1.0 + delta, radius);\n\n\tfloat borderRadius = fragBorderRadius;\n\tfloat ratio = smoothstep(borderRadius - delta, borderRadius + delta, radius);\n\tvec4 color = mix(fragColor, fragBorderColor, ratio);\n\tcolor.a *= alpha * opacity;\n\tgl_FragColor = color;\n}\n"]),l.vert=h(["precision highp float;\n#define GLSLIFY 1\n\nattribute float x, y, xFract, yFract;\nattribute float size, borderSize;\nattribute vec4 colorId, borderColorId;\nattribute float isActive;\n\nuniform vec2 scale, scaleFract, translate, translateFract;\nuniform float pixelRatio;\nuniform bool constPointSize;\nuniform sampler2D palette;\nuniform vec2 paletteSize;\n\nconst float maxSize = 100.;\n\nvarying vec4 fragColor, fragBorderColor;\nvarying float fragBorderRadius, fragWidth;\n\nfloat pointSizeScale = (constPointSize) ? 2. : pixelRatio;\n\nbool isDirect = (paletteSize.x < 1.);\n\nvec4 getColor(vec4 id) {\n return isDirect ? id / 255. : texture2D(palette,\n vec2(\n (id.x + .5) / paletteSize.x,\n (id.y + .5) / paletteSize.y\n )\n );\n}\n\nvoid main() {\n // ignore inactive points\n if (isActive == 0.) return;\n\n vec2 position = vec2(x, y);\n vec2 positionFract = vec2(xFract, yFract);\n\n vec4 color = getColor(colorId);\n vec4 borderColor = getColor(borderColorId);\n\n float size = size * maxSize / 255.;\n float borderSize = borderSize * maxSize / 255.;\n\n gl_PointSize = (size + borderSize) * pointSizeScale;\n\n vec2 pos = (position + translate) * scale\n + (positionFract + translateFract) * scale\n + (position + translate) * scaleFract\n + (positionFract + translateFract) * scaleFract;\n\n gl_Position = vec4(pos * 2. - 1., 0., 1.);\n\n fragBorderRadius = 1. - 2. * borderSize / (size + borderSize);\n fragColor = color;\n fragBorderColor = borderColor.a == 0. || borderSize == 0. ? vec4(color.rgb, 0.) : borderColor;\n fragWidth = 1. / gl_PointSize;\n}\n"]),m&&(l.frag=l.frag.replace("smoothstep","smoothStep"),s.frag=s.frag.replace("smoothstep","smoothStep")),this.drawCircle=t(l)}b.defaults={color:"black",borderColor:"transparent",borderSize:0,size:12,opacity:1,marker:void 0,viewport:null,range:null,pixelSize:null,count:0,offset:0,bounds:null,positions:[],snap:1e4},b.prototype.render=function(){return arguments.length&&this.update.apply(this,arguments),this.draw(),this},b.prototype.draw=function(){for(var t=this,e=arguments.length,r=new Array(e),n=0;nn)?e.tree=u(t,{bounds:f}):n&&n.length&&(e.tree=n),e.tree){var h={primitive:"points",usage:"static",data:e.tree,type:"uint32"};e.elements?e.elements(h):e.elements=o.elements(h)}return i({data:v.float(t),usage:"dynamic"}),a({data:v.fract(t),usage:"dynamic"}),s({data:new Uint8Array(c),type:"uint8",usage:"stream"}),t}},{marker:function(e,r,n){var i=r.activation;if(i.forEach((function(t){return t&&t.destroy&&t.destroy()})),i.length=0,e&&"number"!=typeof e[0]){for(var a=[],s=0,l=Math.min(e.length,r.count);s=0)return a;if(t instanceof Uint8Array||t instanceof Uint8ClampedArray)e=t;else{e=new Uint8Array(t.length);for(var o=0,s=t.length;o4*n&&(this.tooManyColors=!0),this.updatePalette(r),1===i.length?i[0]:i},b.prototype.updatePalette=function(t){if(!this.tooManyColors){var e=this.maxColors,r=this.paletteTexture,n=Math.ceil(.25*t.length/e);if(n>1)for(var i=.25*(t=t.slice()).length%e;i2?(s[0],s[2],n=s[1],i=s[3]):s.length?(n=s[0],i=s[1]):(s.x,n=s.y,s.x+s.width,i=s.y+s.height),l.length>2?(a=l[0],o=l[2],l[1],l[3]):l.length?(a=l[0],o=l[1]):(a=l.x,l.y,o=l.x+l.width,l.y+l.height),[a,n,o,i]}function p(t){if("number"==typeof t)return[t,t,t,t];if(2===t.length)return[t[0],t[1],t[0],t[1]];var e=l(t);return[e.x,e.y,e.x+e.width,e.y+e.height]}e.exports=u,u.prototype.render=function(){for(var t,e=this,r=[],n=arguments.length;n--;)r[n]=arguments[n];return r.length&&(t=this).update.apply(t,r),this.regl.attributes.preserveDrawingBuffer?this.draw():(this.dirty?null==this.planned&&(this.planned=o((function(){e.draw(),e.dirty=!0,e.planned=null}))):(this.draw(),this.dirty=!0,o((function(){e.dirty=!1}))),this)},u.prototype.update=function(){for(var t,e=[],r=arguments.length;r--;)e[r]=arguments[r];if(e.length){for(var n=0;nk))&&(s.lower||!(T>>=e))<<3,(e|=r=(15<(t>>>=r))<<2)|(r=(3<(t>>>=r))<<1)|t>>>r>>1}function s(){function t(t){t:{for(var e=16;268435456>=e;e*=16)if(t<=e){t=e;break t}t=0}return 0<(e=r[o(t)>>2]).length?e.pop():new ArrayBuffer(t)}function e(t){r[o(t.byteLength)>>2].push(t)}var r=a(8,(function(){return[]}));return{alloc:t,free:e,allocType:function(e,r){var n=null;switch(e){case 5120:n=new Int8Array(t(r),0,r);break;case 5121:n=new Uint8Array(t(r),0,r);break;case 5122:n=new Int16Array(t(2*r),0,r);break;case 5123:n=new Uint16Array(t(2*r),0,r);break;case 5124:n=new Int32Array(t(4*r),0,r);break;case 5125:n=new Uint32Array(t(4*r),0,r);break;case 5126:n=new Float32Array(t(4*r),0,r);break;default:return null}return n.length!==r?n.subarray(0,r):n},freeType:function(t){e(t.buffer)}}}function l(t){return!!t&&"object"==typeof t&&Array.isArray(t.shape)&&Array.isArray(t.stride)&&"number"==typeof t.offset&&t.shape.length===t.stride.length&&(Array.isArray(t.data)||X(t.data))}function c(t,e,r,n,i,a){for(var o=0;o(i=s)&&(i=n.buffer.byteLength,5123===f?i>>=1:5125===f&&(i>>=2)),n.vertCount=i,i=o,0>o&&(i=4,1===(o=n.buffer.dimension)&&(i=0),2===o&&(i=1),3===o&&(i=4)),n.primType=i}function o(t){n.elementsCount--,delete s[t.id],t.buffer.destroy(),t.buffer=null}var s={},c=0,u={uint8:5121,uint16:5123};e.oes_element_index_uint&&(u.uint32=5125),i.prototype.bind=function(){this.buffer.bind()};var f=[];return{create:function(t,e){function s(t){if(t)if("number"==typeof t)c(t),f.primType=4,f.vertCount=0|t,f.type=5121;else{var e=null,r=35044,n=-1,i=-1,o=0,h=0;Array.isArray(t)||X(t)||l(t)?e=t:("data"in t&&(e=t.data),"usage"in t&&(r=$[t.usage]),"primitive"in t&&(n=nt[t.primitive]),"count"in t&&(i=0|t.count),"type"in t&&(h=u[t.type]),"length"in t?o=0|t.length:(o=i,5123===h||5122===h?o*=2:5125!==h&&5124!==h||(o*=4))),a(f,e,r,n,i,o,h)}else c(),f.primType=4,f.vertCount=0,f.type=5121;return s}var c=r.create(null,34963,!0),f=new i(c._buffer);return n.elementsCount++,s(t),s._reglType="elements",s._elements=f,s.subdata=function(t,e){return c.subdata(t,e),s},s.destroy=function(){o(f)},s},createStream:function(t){var e=f.pop();return e||(e=new i(r.create(null,34963,!0,!1)._buffer)),a(e,t,35040,-1,-1,0,0),e},destroyStream:function(t){f.push(t)},getElements:function(t){return"function"==typeof t&&t._elements instanceof i?t._elements:null},clear:function(){Z(s).forEach(o)}}}function g(t){for(var e=Y.allocType(5123,t.length),r=0;r>>31<<15,i=(a<<1>>>24)-127,a=a>>13&1023;e[r]=-24>i?n:-14>i?n+(a+1024>>-14-i):15>=i,r.height>>=i,p(r,n[i]),t.mipmask|=1<e;++e)t.images[e]=null;return t}function L(t){for(var e=t.images,r=0;re){for(var r=0;r=--this.refCount&&F(this)}}),o.profile&&(a.getTotalTextureSize=function(){var t=0;return Object.keys(yt).forEach((function(e){t+=yt[e].stats.size})),t}),{create2D:function(e,r){function n(t,e){var r=i.texInfo;I.call(r);var a=C();return"number"==typeof t?A(a,0|t,"number"==typeof e?0|e:0|t):t?(P(r,t),S(a,t)):A(a,1,1),r.genMipmaps&&(a.mipmask=(a.width<<1)-1),i.mipmask=a.mipmask,c(i,a),i.internalformat=a.internalformat,n.width=a.width,n.height=a.height,D(i),E(a,3553),z(r,3553),R(),L(a),o.profile&&(i.stats.size=T(i.internalformat,i.type,a.width,a.height,r.genMipmaps,!1)),n.format=tt[i.internalformat],n.type=et[i.type],n.mag=rt[r.magFilter],n.min=nt[r.minFilter],n.wrapS=it[r.wrapS],n.wrapT=it[r.wrapT],n}var i=new O(3553);return yt[i.id]=i,a.textureCount++,n(e,r),n.subimage=function(t,e,r,a){e|=0,r|=0,a|=0;var o=v();return c(o,i),o.width=0,o.height=0,p(o,t),o.width=o.width||(i.width>>a)-e,o.height=o.height||(i.height>>a)-r,D(i),d(o,3553,e,r,a),R(),k(o),n},n.resize=function(e,r){var a=0|e,s=0|r||a;if(a===i.width&&s===i.height)return n;n.width=i.width=a,n.height=i.height=s,D(i);for(var l=0;i.mipmask>>l;++l){var c=a>>l,u=s>>l;if(!c||!u)break;t.texImage2D(3553,l,i.format,c,u,0,i.format,i.type,null)}return R(),o.profile&&(i.stats.size=T(i.internalformat,i.type,a,s,!1,!1)),n},n._reglType="texture2d",n._texture=i,o.profile&&(n.stats=i.stats),n.destroy=function(){i.decRef()},n},createCube:function(e,r,n,i,s,l){function f(t,e,r,n,i,a){var s,l=h.texInfo;for(I.call(l),s=0;6>s;++s)g[s]=C();if("number"!=typeof t&&t){if("object"==typeof t)if(e)S(g[0],t),S(g[1],e),S(g[2],r),S(g[3],n),S(g[4],i),S(g[5],a);else if(P(l,t),u(h,t),"faces"in t)for(t=t.faces,s=0;6>s;++s)c(g[s],h),S(g[s],t[s]);else for(s=0;6>s;++s)S(g[s],t)}else for(t=0|t||1,s=0;6>s;++s)A(g[s],t,t);for(c(h,g[0]),h.mipmask=l.genMipmaps?(g[0].width<<1)-1:g[0].mipmask,h.internalformat=g[0].internalformat,f.width=g[0].width,f.height=g[0].height,D(h),s=0;6>s;++s)E(g[s],34069+s);for(z(l,34067),R(),o.profile&&(h.stats.size=T(h.internalformat,h.type,f.width,f.height,l.genMipmaps,!0)),f.format=tt[h.internalformat],f.type=et[h.type],f.mag=rt[l.magFilter],f.min=nt[l.minFilter],f.wrapS=it[l.wrapS],f.wrapT=it[l.wrapT],s=0;6>s;++s)L(g[s]);return f}var h=new O(34067);yt[h.id]=h,a.cubeCount++;var g=Array(6);return f(e,r,n,i,s,l),f.subimage=function(t,e,r,n,i){r|=0,n|=0,i|=0;var a=v();return c(a,h),a.width=0,a.height=0,p(a,e),a.width=a.width||(h.width>>i)-r,a.height=a.height||(h.height>>i)-n,D(h),d(a,34069+t,r,n,i),R(),k(a),f},f.resize=function(e){if((e|=0)!==h.width){f.width=h.width=e,f.height=h.height=e,D(h);for(var r=0;6>r;++r)for(var n=0;h.mipmask>>n;++n)t.texImage2D(34069+r,n,h.format,e>>n,e>>n,0,h.format,h.type,null);return R(),o.profile&&(h.stats.size=T(h.internalformat,h.type,f.width,f.height,!1,!0)),f}},f._reglType="textureCube",f._texture=h,o.profile&&(f.stats=h.stats),f.destroy=function(){h.decRef()},f},clear:function(){for(var e=0;er;++r)if(0!=(e.mipmask&1<>r,e.height>>r,0,e.internalformat,e.type,null);else for(var n=0;6>n;++n)t.texImage2D(34069+n,r,e.internalformat,e.width>>r,e.height>>r,0,e.internalformat,e.type,null);z(e.texInfo,e.target)}))}}}function M(t,e,r,n,i,a){function o(t,e,r){this.target=t,this.texture=e,this.renderbuffer=r;var n=t=0;e?(t=e.width,n=e.height):r&&(t=r.width,n=r.height),this.width=t,this.height=n}function s(t){t&&(t.texture&&t.texture._texture.decRef(),t.renderbuffer&&t.renderbuffer._renderbuffer.decRef())}function l(t,e,r){t&&(t.texture?t.texture._texture.refCount+=1:t.renderbuffer._renderbuffer.refCount+=1)}function c(e,r){r&&(r.texture?t.framebufferTexture2D(36160,e,r.target,r.texture._texture.texture,0):t.framebufferRenderbuffer(36160,e,36161,r.renderbuffer._renderbuffer.renderbuffer))}function u(t){var e=3553,r=null,n=null,i=t;return"object"==typeof t&&(i=t.data,"target"in t&&(e=0|t.target)),"texture2d"===(t=i._reglType)||"textureCube"===t?r=i:"renderbuffer"===t&&(n=i,e=36161),new o(e,r,n)}function f(t,e,r,a,s){return r?((t=n.create2D({width:t,height:e,format:a,type:s}))._texture.refCount=0,new o(3553,t,null)):((t=i.create({width:t,height:e,format:a}))._renderbuffer.refCount=0,new o(36161,null,t))}function h(t){return t&&(t.texture||t.renderbuffer)}function p(t,e,r){t&&(t.texture?t.texture.resize(e,r):t.renderbuffer&&t.renderbuffer.resize(e,r),t.width=e,t.height=r)}function d(){this.id=T++,k[this.id]=this,this.framebuffer=t.createFramebuffer(),this.height=this.width=0,this.colorAttachments=[],this.depthStencilAttachment=this.stencilAttachment=this.depthAttachment=null}function g(t){t.colorAttachments.forEach(s),s(t.depthAttachment),s(t.stencilAttachment),s(t.depthStencilAttachment)}function m(e){t.deleteFramebuffer(e.framebuffer),e.framebuffer=null,a.framebufferCount--,delete k[e.id]}function v(e){var n;t.bindFramebuffer(36160,e.framebuffer);var i=e.colorAttachments;for(n=0;ni;++i){for(c=0;ct;++t)r[t].resize(n);return e.width=e.height=n,e},_reglType:"framebufferCube",destroy:function(){r.forEach((function(t){t.destroy()}))}})},clear:function(){Z(k).forEach(m)},restore:function(){x.cur=null,x.next=null,x.dirty=!0,Z(k).forEach((function(e){e.framebuffer=t.createFramebuffer(),v(e)}))}})}function A(){this.w=this.z=this.y=this.x=this.state=0,this.buffer=null,this.size=0,this.normalized=!1,this.type=5126,this.divisor=this.stride=this.offset=0}function S(t,e,r,n,i){function a(){this.id=++c,this.attributes=[];var t=e.oes_vertex_array_object;this.vao=t?t.createVertexArrayOES():null,u[this.id]=this,this.buffers=[]}var o=r.maxAttributes,s=Array(o);for(r=0;rt&&(t=e.stats.uniformsCount)})),t},r.getMaxAttributesCount=function(){var t=0;return h.forEach((function(e){e.stats.attributesCount>t&&(t=e.stats.attributesCount)})),t}),{clear:function(){var e=t.deleteShader.bind(t);Z(c).forEach(e),c={},Z(u).forEach(e),u={},h.forEach((function(e){t.deleteProgram(e.program)})),h.length=0,f={},r.shaderCount=0},program:function(t,e,n,i){var a=f[e];a||(a=f[e]={});var o=a[t];return o&&!i?o:(e=new s(e,t),r.shaderCount++,l(e,n,i),o||(a[t]=e),h.push(e),e)},restore:function(){c={},u={};for(var t=0;t"+e+"?"+i+".constant["+e+"]:0;"})).join(""),"}}else{","if(",s,"(",i,".buffer)){",u,"=",a,".createStream(",34962,",",i,".buffer);","}else{",u,"=",a,".getBuffer(",i,".buffer);","}",f,'="type" in ',i,"?",o.glTypes,"[",i,".type]:",u,".dtype;",l.normalized,"=!!",i,".normalized;"),n("size"),n("offset"),n("stride"),n("divisor"),r("}}"),r.exit("if(",l.isStream,"){",a,".destroyStream(",u,");","}"),l}))})),o}function M(t,e,n,i,o){function s(t){var e=c[t];e&&(h[t]=e)}var l=function(t,e){if("string"==typeof(r=t.static).frag&&"string"==typeof r.vert){if(0>1)",s],");")}function e(){r(l,".drawArraysInstancedANGLE(",[d,g,m,s],");")}p?y?t():(r("if(",p,"){"),t(),r("}else{"),e(),r("}")):e()}function o(){function t(){r(u+".drawElements("+[d,m,v,g+"<<(("+v+"-5121)>>1)"]+");")}function e(){r(u+".drawArrays("+[d,g,m]+");")}p?y?t():(r("if(",p,"){"),t(),r("}else{"),e(),r("}")):e()}var s,l,c=t.shared,u=c.gl,f=c.draw,h=n.draw,p=function(){var i=h.elements,a=e;return i?((i.contextDep&&n.contextDynamic||i.propDep)&&(a=r),i=i.append(t,a)):i=a.def(f,".","elements"),i&&a("if("+i+")"+u+".bindBuffer(34963,"+i+".buffer.buffer);"),i}(),d=i("primitive"),g=i("offset"),m=function(){var i=h.count,a=e;return i?((i.contextDep&&n.contextDynamic||i.propDep)&&(a=r),i=i.append(t,a)):i=a.def(f,".","count"),i}();if("number"==typeof m){if(0===m)return}else r("if(",m,"){"),r.exit("}");K&&(s=i("instances"),l=t.instancing);var v=p+".type",y=h.elements&&R(h.elements);K&&("number"!=typeof s||0<=s)?"string"==typeof s?(r("if(",s,">0){"),a(),r("}else if(",s,"<0){"),o(),r("}")):a():o()}function V(t,e,r,n,i){return i=(e=b()).proc("body",i),K&&(e.instancing=i.def(e.shared.extensions,".angle_instanced_arrays")),t(e,i,r,n),e.compile().body}function H(t,e,r,n){L(t,e),r.useVAO?r.drawVAO?e(t.shared.vao,".setVAO(",r.drawVAO.append(t,e),");"):e(t.shared.vao,".setVAO(",t.shared.vao,".targetVAO);"):(e(t.shared.vao,".setVAO(null);"),N(t,e,r,n.attributes,(function(){return!0}))),j(t,e,r,n.uniforms,(function(){return!0})),U(t,e,e,r)}function G(t,e,r,n){function i(){return!0}t.batchId="a1",L(t,e),N(t,e,r,n.attributes,i),j(t,e,r,n.uniforms,i),U(t,e,e,r)}function Y(t,e,r,n){function i(t){return t.contextDep&&o||t.propDep}function a(t){return!i(t)}L(t,e);var o=r.contextDep,s=e.def(),l=e.def();t.shared.props=l,t.batchId=s;var c=t.scope(),u=t.scope();e(c.entry,"for(",s,"=0;",s,"<","a1",";++",s,"){",l,"=","a0","[",s,"];",u,"}",c.exit),r.needsContext&&A(t,u,r.context),r.needsFramebuffer&&S(t,u,r.framebuffer),C(t,u,r.state,i),r.profile&&i(r.profile)&&I(t,u,r,!1,!0),n?(r.useVAO?r.drawVAO?i(r.drawVAO)?u(t.shared.vao,".setVAO(",r.drawVAO.append(t,u),");"):c(t.shared.vao,".setVAO(",r.drawVAO.append(t,c),");"):c(t.shared.vao,".setVAO(",t.shared.vao,".targetVAO);"):(c(t.shared.vao,".setVAO(null);"),N(t,c,r,n.attributes,a),N(t,u,r,n.attributes,i)),j(t,c,r,n.uniforms,a),j(t,u,r,n.uniforms,i),U(t,c,u,r)):(e=t.global.def("{}"),n=r.shader.progVar.append(t,u),l=u.def(n,".id"),c=u.def(e,"[",l,"]"),u(t.shared.gl,".useProgram(",n,".program);","if(!",c,"){",c,"=",e,"[",l,"]=",t.link((function(e){return V(G,t,r,e,2)})),"(",n,");}",c,".call(this,a0[",s,"],",s,");"))}function W(t,r){function n(e){var n=r.shader[e];n&&i.set(a.shader,"."+e,n.append(t,i))}var i=t.proc("scope",3);t.batchId="a2";var a=t.shared,o=a.current;A(t,i,r.context),r.framebuffer&&r.framebuffer.append(t,i),O(Object.keys(r.state)).forEach((function(e){var n=r.state[e].append(t,i);m(n)?n.forEach((function(r,n){i.set(t.next[e],"["+n+"]",r)})):i.set(a.next,"."+e,n)})),I(t,i,r,!0,!0),["elements","offset","count","instances","primitive"].forEach((function(e){var n=r.draw[e];n&&i.set(a.draw,"."+e,""+n.append(t,i))})),Object.keys(r.uniforms).forEach((function(n){i.set(a.uniforms,"["+e.id(n)+"]",r.uniforms[n].append(t,i))})),Object.keys(r.attributes).forEach((function(e){var n=r.attributes[e].append(t,i),a=t.scopeAttrib(e);Object.keys(new Z).forEach((function(t){i.set(a,"."+t,n[t])}))})),r.scopeVAO&&i.set(a.vao,".targetVAO",r.scopeVAO.append(t,i)),n("vert"),n("frag"),0=--this.refCount&&o(this)},i.profile&&(n.getTotalRenderbufferSize=function(){var t=0;return Object.keys(u).forEach((function(e){t+=u[e].stats.size})),t}),{create:function(e,r){function o(e,r){var n=0,a=0,u=32854;if("object"==typeof e&&e?("shape"in e?(n=0|(a=e.shape)[0],a=0|a[1]):("radius"in e&&(n=a=0|e.radius),"width"in e&&(n=0|e.width),"height"in e&&(a=0|e.height)),"format"in e&&(u=s[e.format])):"number"==typeof e?(n=0|e,a="number"==typeof r?0|r:n):e||(n=a=1),n!==c.width||a!==c.height||u!==c.format)return o.width=c.width=n,o.height=c.height=a,c.format=u,t.bindRenderbuffer(36161,c.renderbuffer),t.renderbufferStorage(36161,u,n,a),i.profile&&(c.stats.size=yt[c.format]*c.width*c.height),o.format=l[c.format],o}var c=new a(t.createRenderbuffer());return u[c.id]=c,n.renderbufferCount++,o(e,r),o.resize=function(e,r){var n=0|e,a=0|r||n;return n===c.width&&a===c.height||(o.width=c.width=n,o.height=c.height=a,t.bindRenderbuffer(36161,c.renderbuffer),t.renderbufferStorage(36161,c.format,n,a),i.profile&&(c.stats.size=yt[c.format]*c.width*c.height)),o},o._reglType="renderbuffer",o._renderbuffer=c,i.profile&&(o.stats=c.stats),o.destroy=function(){c.decRef()},o},clear:function(){Z(u).forEach(o)},restore:function(){Z(u).forEach((function(e){e.renderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(36161,e.renderbuffer),t.renderbufferStorage(36161,e.format,e.width,e.height)})),t.bindRenderbuffer(36161,null)}}},bt=[];bt[6408]=4,bt[6407]=3;var _t=[];_t[5121]=1,_t[5126]=4,_t[36193]=2;var wt=["x","y","z","w"],Tt="blend.func blend.equation stencil.func stencil.opFront stencil.opBack sample.coverage viewport scissor.box polygonOffset.offset".split(" "),kt={0:0,1:1,zero:0,one:1,"src color":768,"one minus src color":769,"src alpha":770,"one minus src alpha":771,"dst color":774,"one minus dst color":775,"dst alpha":772,"one minus dst alpha":773,"constant color":32769,"one minus constant color":32770,"constant alpha":32771,"one minus constant alpha":32772,"src alpha saturate":776},Mt={never:512,less:513,"<":513,equal:514,"=":514,"==":514,"===":514,lequal:515,"<=":515,greater:516,">":516,notequal:517,"!=":517,"!==":517,gequal:518,">=":518,always:519},At={0:0,zero:0,keep:7680,replace:7681,increment:7682,decrement:7683,"increment wrap":34055,"decrement wrap":34056,invert:5386},St={cw:2304,ccw:2305},Et=new D(!1,!1,!1,(function(){}));return function(t){function e(){if(0===J.length)w&&w.update(),tt=null;else{tt=H.next(e),f();for(var t=J.length-1;0<=t;--t){var r=J[t];r&&r(I,null,0)}m.flush(),w&&w.update()}}function r(){!tt&&0=J.length&&n()}}}}function u(){var t=X.viewport,e=X.scissor_box;t[0]=t[1]=e[0]=e[1]=0,I.viewportWidth=I.framebufferWidth=I.drawingBufferWidth=t[2]=e[2]=m.drawingBufferWidth,I.viewportHeight=I.framebufferHeight=I.drawingBufferHeight=t[3]=e[3]=m.drawingBufferHeight}function f(){I.tick+=1,I.time=g(),u(),Y.procs.poll()}function h(){u(),Y.procs.refresh(),w&&w.update()}function g(){return(G()-T)/1e3}if(!(t=i(t)))return null;var m=t.gl,v=m.getContextAttributes();m.isContextLost();var y=function(t,e){function r(e){var r;e=e.toLowerCase();try{r=n[e]=t.getExtension(e)}catch(t){}return!!r}for(var n={},i=0;ie;++e)et(U({framebuffer:t.framebuffer.faces[e]},t),l);else et(t,l);else l(0,t)},prop:q.define.bind(null,1),context:q.define.bind(null,2),this:q.define.bind(null,3),draw:s({}),buffer:function(t){return z.create(t,34962,!1,!1)},elements:function(t){return D.create(t,!1)},texture:F.create2D,cube:F.createCube,renderbuffer:B.create,framebuffer:V.create,framebufferCube:V.createCube,vao:O.createVAO,attributes:v,frame:c,on:function(t,e){var r;switch(t){case"frame":return c(e);case"lost":r=K;break;case"restore":r=Q;break;case"destroy":r=$}return r.push(e),{cancel:function(){for(var t=0;t=-t},pointBetween:function(e,r,n){var i=e[1]-r[1],a=n[0]-r[0],o=e[0]-r[0],s=n[1]-r[1],l=o*a+i*s;return!(l-t)},pointsSameX:function(e,r){return Math.abs(e[0]-r[0])t!=o-i>t&&(a-c)*(i-u)/(o-u)+c-n>t&&(s=!s),a=c,o=u}return s}};return e}},{}],499:[function(t,e,r){var n={toPolygon:function(t,e){function r(e){if(e.length<=0)return t.segments({inverted:!1,regions:[]});function r(e){var r=e.slice(0,e.length-1);return t.segments({inverted:!1,regions:[r]})}for(var n=r(e[0]),i=1;i0}))}function u(t,n){var i=t.seg,a=n.seg,o=i.start,s=i.end,c=a.start,u=a.end;r&&r.checkIntersection(i,a);var f=e.linesIntersect(o,s,c,u);if(!1===f){if(!e.pointsCollinear(o,s,c))return!1;if(e.pointsSame(o,u)||e.pointsSame(s,c))return!1;var h=e.pointsSame(o,c),p=e.pointsSame(s,u);if(h&&p)return n;var d=!h&&e.pointBetween(o,c,u),m=!p&&e.pointBetween(s,c,u);if(h)return m?l(n,s):l(t,u),n;d&&(p||(m?l(n,s):l(t,u)),l(n,o))}else 0===f.alongA&&(-1===f.alongB?l(t,c):0===f.alongB?l(t,f.pt):1===f.alongB&&l(t,u)),0===f.alongB&&(-1===f.alongA?l(n,o):0===f.alongA?l(n,f.pt):1===f.alongA&&l(n,s));return!1}for(var f=[];!a.isEmpty();){var h=a.getHead();if(r&&r.vert(h.pt[0]),h.isStart){r&&r.segmentNew(h.seg,h.primary);var p=c(h),d=p.before?p.before.ev:null,m=p.after?p.after.ev:null;function g(){if(d){var t=u(h,d);if(t)return t}return!!m&&u(h,m)}r&&r.tempStatus(h.seg,!!d&&d.seg,!!m&&m.seg);var v,y=g();if(y){var x;if(t)(x=null===h.seg.myFill.below||h.seg.myFill.above!==h.seg.myFill.below)&&(y.seg.myFill.above=!y.seg.myFill.above);else y.seg.otherFill=h.seg.myFill;r&&r.segmentUpdate(y.seg),h.other.remove(),h.remove()}if(a.getHead()!==h){r&&r.rewind(h.seg);continue}if(t)x=null===h.seg.myFill.below||h.seg.myFill.above!==h.seg.myFill.below,h.seg.myFill.below=m?m.seg.myFill.above:i,h.seg.myFill.above=x?!h.seg.myFill.below:h.seg.myFill.below;else if(null===h.seg.otherFill)v=m?h.primary===m.primary?m.seg.otherFill.above:m.seg.myFill.above:h.primary?o:i,h.seg.otherFill={above:v,below:v};r&&r.status(h.seg,!!d&&d.seg,!!m&&m.seg),h.other.status=p.insert(n.node({ev:h}))}else{var b=h.status;if(null===b)throw new Error("PolyBool: Zero-length segment detected; your epsilon is probably too small or too large");if(s.exists(b.prev)&&s.exists(b.next)&&u(b.prev.ev,b.next.ev),r&&r.statusRemove(b.ev.seg),b.remove(),!h.primary){var _=h.seg.myFill;h.seg.myFill=h.seg.otherFill,h.seg.otherFill=_}f.push(h.seg)}a.getHead().remove()}return r&&r.done(),f}return t?{addRegion:function(t){for(var n,i,a,o=t[t.length-1],l=0;l=c?(k=1,y=c+2*h+d):y=h*(k=-h/c)+d):(k=0,p>=0?(M=0,y=d):-p>=f?(M=1,y=f+2*p+d):y=p*(M=-p/f)+d);else if(M<0)M=0,h>=0?(k=0,y=d):-h>=c?(k=1,y=c+2*h+d):y=h*(k=-h/c)+d;else{var A=1/T;y=(k*=A)*(c*k+u*(M*=A)+2*h)+M*(u*k+f*M+2*p)+d}else k<0?(b=f+p)>(x=u+h)?(_=b-x)>=(w=c-2*u+f)?(k=1,M=0,y=c+2*h+d):y=(k=_/w)*(c*k+u*(M=1-k)+2*h)+M*(u*k+f*M+2*p)+d:(k=0,b<=0?(M=1,y=f+2*p+d):p>=0?(M=0,y=d):y=p*(M=-p/f)+d):M<0?(b=c+h)>(x=u+p)?(_=b-x)>=(w=c-2*u+f)?(M=1,k=0,y=f+2*p+d):y=(k=1-(M=_/w))*(c*k+u*M+2*h)+M*(u*k+f*M+2*p)+d:(M=0,b<=0?(k=1,y=c+2*h+d):h>=0?(k=0,y=d):y=h*(k=-h/c)+d):(_=f+p-u-h)<=0?(k=0,M=1,y=f+2*p+d):_>=(w=c-2*u+f)?(k=1,M=0,y=c+2*h+d):y=(k=_/w)*(c*k+u*(M=1-k)+2*h)+M*(u*k+f*M+2*p)+d;var S=1-k-M;for(l=0;l0&&!this.aborted;){var r=this.ifds_to_read.shift();r.offset&&this.scan_ifd(r.id,r.offset,t)}},a.prototype.read_uint16=function(t){var e=this.input;if(t+2>e.length)throw n("unexpected EOF","EBADDATA");return this.big_endian?256*e[t]+e[t+1]:e[t]+256*e[t+1]},a.prototype.read_uint32=function(t){var e=this.input;if(t+4>e.length)throw n("unexpected EOF","EBADDATA");return this.big_endian?16777216*e[t]+65536*e[t+1]+256*e[t+2]+e[t+3]:e[t]+256*e[t+1]+65536*e[t+2]+16777216*e[t+3]},a.prototype.is_subifd_link=function(t,e){return 0===t&&34665===e||0===t&&34853===e||34665===t&&40965===e},a.prototype.exif_format_length=function(t){switch(t){case 1:case 2:case 6:case 7:return 1;case 3:case 8:return 2;case 4:case 9:case 11:return 4;case 5:case 10:case 12:return 8;default:return 0}},a.prototype.exif_format_read=function(t,e){var r;switch(t){case 1:case 2:return r=this.input[e];case 6:return(r=this.input[e])|33554430*(128&r);case 3:return r=this.read_uint16(e);case 8:return(r=this.read_uint16(e))|131070*(32768&r);case 4:return r=this.read_uint32(e);case 9:return 0|(r=this.read_uint32(e));case 5:case 10:case 11:case 12:case 7:default:return null}},a.prototype.scan_ifd=function(t,e,r){var a=this.read_uint16(e);e+=2;for(var o=0;othis.input.length)throw n("unexpected EOF","EBADDATA");for(var d=[],m=h,g=0;g0&&(this.ifds_to_read.push({id:s,offset:d[0]}),p=!0),!1===r({is_big_endian:this.big_endian,ifd:t,tag:s,format:l,count:c,entry_offset:e+this.start,data_length:f,data_offset:h+this.start,value:d,is_subifd_link:p}))return void(this.aborted=!0);e+=12}0===t&&this.ifds_to_read.push({id:1,offset:this.read_uint32(e)})},e.exports.ExifParser=a,e.exports.get_orientation=function(t){var e=0;try{return new a(t,0,t.length).each((function(t){if(0===t.ifd&&274===t.tag&&Array.isArray(t.value))return e=t.value[0],!1})),e}catch(t){return-1}}},{}],507:[function(t,e,r){"use strict";var n=t("./common").readUInt16BE,i=t("./common").readUInt32BE;function a(t,e){if(t.length<4+e)return null;var r=i(t,e);return t.length>4&15,i=15&t[4],a=t[5]>>4&15,o=n(t,6),l=8,c=0;ce.width||t.width===e.width&&t.height>e.height?t:e})),i=r.reduce((function(t,e){return t.height>e.height||t.height===e.height&&t.width>e.width?t:e})),n.width>i.height||n.width===i.height&&n.height>i.width?n:i),s=1;e.transforms.forEach((function(t){var e={1:6,2:5,3:8,4:7,5:4,6:3,7:2,8:1},r={1:4,2:3,3:2,4:1,5:6,6:5,7:8,8:7};if("imir"===t.type&&(s=0===t.value?r[s]:e[s=e[s=r[s]]]),"irot"===t.type)for(var n=0;n1&&(h.variants=f.variants),f.orientation&&(h.orientation=f.orientation),f.exif_location&&f.exif_location.offset+f.exif_location.length<=t.length){var p=a(t,f.exif_location.offset),d=t.slice(f.exif_location.offset+p+4,f.exif_location.offset+f.exif_location.length),m=s.get_orientation(d);m>0&&(h.orientation=m)}return h}}}}}}},{"../common":505,"../exif_utils":506,"../miaf_utils":507}],509:[function(t,e,r){"use strict";var n=t("../common").str2arr,i=t("../common").sliceEq,a=t("../common").readUInt16LE,o=n("BM");e.exports=function(t){if(!(t.length<26)&&i(t,0,o))return{width:a(t,18),height:a(t,22),type:"bmp",mime:"image/bmp",wUnits:"px",hUnits:"px"}}},{"../common":505}],510:[function(t,e,r){"use strict";var n=t("../common").str2arr,i=t("../common").sliceEq,a=t("../common").readUInt16LE,o=n("GIF87a"),s=n("GIF89a");e.exports=function(t){if(!(t.length<10)&&(i(t,0,o)||i(t,0,s)))return{width:a(t,6),height:a(t,8),type:"gif",mime:"image/gif",wUnits:"px",hUnits:"px"}}},{"../common":505}],511:[function(t,e,r){"use strict";var n=t("../common").readUInt16LE;e.exports=function(t){var e=n(t,0),r=n(t,2),i=n(t,4);if(0===e&&1===r&&i){for(var a=[],o={width:0,height:0},s=0;so.width||c>o.height)&&(o=u)}return{width:o.width,height:o.height,variants:a,type:"ico",mime:"image/x-icon",wUnits:"px",hUnits:"px"}}}},{"../common":505}],512:[function(t,e,r){"use strict";var n=t("../common").readUInt16BE,i=t("../common").str2arr,a=t("../common").sliceEq,o=t("../exif_utils"),s=i("Exif\0\0");e.exports=function(t){if(!(t.length<2)&&255===t[0]&&216===t[1])for(var e=2;;){if(t.length-e<2)return;if(255!==t[e++])return;for(var r,i,l=t[e++];255===l;)l=t[e++];if(208<=l&&l<=217||1===l)r=0;else{if(!(192<=l&&l<=254))return;if(t.length-e<2)return;r=n(t,e)-2,e+=2}if(217===l||218===l)return;if(225===l&&r>=10&&a(t,e,s)&&(i=o.get_orientation(t.slice(e+6,e+r))),r>=5&&192<=l&&l<=207&&196!==l&&200!==l&&204!==l){if(t.length-e0&&(c.orientation=i),c}e+=r}}},{"../common":505,"../exif_utils":506}],513:[function(t,e,r){"use strict";var n=t("../common").str2arr,i=t("../common").sliceEq,a=t("../common").readUInt32BE,o=n("\x89PNG\r\n\x1a\n"),s=n("IHDR");e.exports=function(t){if(!(t.length<24)&&i(t,0,o)&&i(t,12,s))return{width:a(t,16),height:a(t,20),type:"png",mime:"image/png",wUnits:"px",hUnits:"px"}}},{"../common":505}],514:[function(t,e,r){"use strict";var n=t("../common").str2arr,i=t("../common").sliceEq,a=t("../common").readUInt32BE,o=n("8BPS\0\x01");e.exports=function(t){if(!(t.length<22)&&i(t,0,o))return{width:a(t,18),height:a(t,14),type:"psd",mime:"image/vnd.adobe.photoshop",wUnits:"px",hUnits:"px"}}},{"../common":505}],515:[function(t,e,r){"use strict";function n(t){return"number"==typeof t&&isFinite(t)&&t>0}var i=/]+>/,a=/[^-]\bwidth="([^%]+?)"|[^-]\bwidth='([^%]+?)'/,o=/\bheight="([^%]+?)"|\bheight='([^%]+?)'/,s=/\bview[bB]ox="(.+?)"|\bview[bB]ox='(.+?)'/,l=/in$|mm$|cm$|pt$|pc$|px$|em$|ex$/;function c(t){return l.test(t)?t.match(l)[0]:"px"}e.exports=function(t){if(function(t){for(var e,r=0,n=t.length;r>14&16383),type:"webp",mime:"image/webp",wUnits:"px",hUnits:"px"}}}function h(t,e){return{width:1+(t[e+6]<<16|t[e+5]<<8|t[e+4]),height:1+(t[e+9]<t.length)){for(;e+8=10?r=r||u(t,e+8):"VP8L"===p&&d>=9?r=r||f(t,e+8):"VP8X"===p&&d>=10?r=r||h(t,e+8):"EXIF"===p&&(n=s.get_orientation(t.slice(e+8,e+8+d)),e=1/0),e+=8+d}else e++;if(r)return n>0&&(r.orientation=n),r}}}},{"../common":505,"../exif_utils":506}],518:[function(t,e,r){"use strict";e.exports={avif:t("./parse_sync/avif"),bmp:t("./parse_sync/bmp"),gif:t("./parse_sync/gif"),ico:t("./parse_sync/ico"),jpeg:t("./parse_sync/jpeg"),png:t("./parse_sync/png"),psd:t("./parse_sync/psd"),svg:t("./parse_sync/svg"),tiff:t("./parse_sync/tiff"),webp:t("./parse_sync/webp")}},{"./parse_sync/avif":508,"./parse_sync/bmp":509,"./parse_sync/gif":510,"./parse_sync/ico":511,"./parse_sync/jpeg":512,"./parse_sync/png":513,"./parse_sync/psd":514,"./parse_sync/svg":515,"./parse_sync/tiff":516,"./parse_sync/webp":517}],519:[function(t,e,r){"use strict";var n=t("./lib/parsers_sync");e.exports=function(t){return function(t){for(var e=Object.keys(n),r=0;r1)for(var r=1;r0){var c=t[r-1];if(0===n(s,c)&&a(c)!==l){r-=1;continue}}t[r++]=s}}return t.length=r,t}},{"cell-orientation":118,"compare-cell":134,"compare-oriented-cell":135}],528:[function(t,e,r){"use strict";var n=t("array-bounds"),i=t("color-normalize"),a=t("update-diff"),o=t("pick-by-alias"),s=t("object-assign"),l=t("flatten-vertex-data"),c=t("to-float32"),u=c.float32,f=c.fract32;e.exports=function(t,e){"function"==typeof t?(e||(e={}),e.regl=t):e=t;e.length&&(e.positions=e);if(!(t=e.regl).hasExtension("ANGLE_instanced_arrays"))throw Error("regl-error2d: `ANGLE_instanced_arrays` extension should be enabled");var r,c,p,d,m,g,v=t._gl,y={color:"black",capSize:5,lineWidth:1,opacity:1,viewport:null,range:null,offset:0,count:0,bounds:null,positions:[],errors:[]},x=[];return d=t.buffer({usage:"dynamic",type:"uint8",data:new Uint8Array(0)}),c=t.buffer({usage:"dynamic",type:"float",data:new Uint8Array(0)}),p=t.buffer({usage:"dynamic",type:"float",data:new Uint8Array(0)}),m=t.buffer({usage:"dynamic",type:"float",data:new Uint8Array(0)}),g=t.buffer({usage:"static",type:"float",data:h}),T(e),r=t({vert:"\n\t\tprecision highp float;\n\n\t\tattribute vec2 position, positionFract;\n\t\tattribute vec4 error;\n\t\tattribute vec4 color;\n\n\t\tattribute vec2 direction, lineOffset, capOffset;\n\n\t\tuniform vec4 viewport;\n\t\tuniform float lineWidth, capSize;\n\t\tuniform vec2 scale, scaleFract, translate, translateFract;\n\n\t\tvarying vec4 fragColor;\n\n\t\tvoid main() {\n\t\t\tfragColor = color / 255.;\n\n\t\t\tvec2 pixelOffset = lineWidth * lineOffset + (capSize + lineWidth) * capOffset;\n\n\t\t\tvec2 dxy = -step(.5, direction.xy) * error.xz + step(direction.xy, vec2(-.5)) * error.yw;\n\n\t\t\tvec2 position = position + dxy;\n\n\t\t\tvec2 pos = (position + translate) * scale\n\t\t\t\t+ (positionFract + translateFract) * scale\n\t\t\t\t+ (position + translate) * scaleFract\n\t\t\t\t+ (positionFract + translateFract) * scaleFract;\n\n\t\t\tpos += pixelOffset / viewport.zw;\n\n\t\t\tgl_Position = vec4(pos * 2. - 1., 0, 1);\n\t\t}\n\t\t",frag:"\n\t\tprecision highp float;\n\n\t\tvarying vec4 fragColor;\n\n\t\tuniform float opacity;\n\n\t\tvoid main() {\n\t\t\tgl_FragColor = fragColor;\n\t\t\tgl_FragColor.a *= opacity;\n\t\t}\n\t\t",uniforms:{range:t.prop("range"),lineWidth:t.prop("lineWidth"),capSize:t.prop("capSize"),opacity:t.prop("opacity"),scale:t.prop("scale"),translate:t.prop("translate"),scaleFract:t.prop("scaleFract"),translateFract:t.prop("translateFract"),viewport:function(t,e){return[e.viewport.x,e.viewport.y,t.viewportWidth,t.viewportHeight]}},attributes:{color:{buffer:d,offset:function(t,e){return 4*e.offset},divisor:1},position:{buffer:c,offset:function(t,e){return 8*e.offset},divisor:1},positionFract:{buffer:p,offset:function(t,e){return 8*e.offset},divisor:1},error:{buffer:m,offset:function(t,e){return 16*e.offset},divisor:1},direction:{buffer:g,stride:24,offset:0},lineOffset:{buffer:g,stride:24,offset:8},capOffset:{buffer:g,stride:24,offset:16}},primitive:"triangles",blend:{enable:!0,color:[0,0,0,0],equation:{rgb:"add",alpha:"add"},func:{srcRGB:"src alpha",dstRGB:"one minus src alpha",srcAlpha:"one minus dst alpha",dstAlpha:"one"}},depth:{enable:!1},scissor:{enable:!0,box:t.prop("viewport")},viewport:t.prop("viewport"),stencil:!1,instances:t.prop("count"),count:h.length}),s(b,{update:T,draw:_,destroy:k,regl:t,gl:v,canvas:v.canvas,groups:x}),b;function b(t){t?T(t):null===t&&k(),_()}function _(e){if("number"==typeof e)return w(e);e&&!Array.isArray(e)&&(e=[e]),t._refresh(),x.forEach((function(t,r){t&&(e&&(e[r]?t.draw=!0:t.draw=!1),t.draw?w(r):t.draw=!0)}))}function w(t){"number"==typeof t&&(t=x[t]),null!=t&&t&&t.count&&t.color&&t.opacity&&t.positions&&t.positions.length>1&&(t.scaleRatio=[t.scale[0]*t.viewport.width,t.scale[1]*t.viewport.height],r(t),t.after&&t.after(t))}function T(t){if(t){null!=t.length?"number"==typeof t[0]&&(t=[{positions:t}]):Array.isArray(t)||(t=[t]);var e=0,r=0;if(b.groups=x=t.map((function(t,c){var u=x[c];return t?("function"==typeof t?t={after:t}:"number"==typeof t[0]&&(t={positions:t}),t=o(t,{color:"color colors fill",capSize:"capSize cap capsize cap-size",lineWidth:"lineWidth line-width width line thickness",opacity:"opacity alpha",range:"range dataBox",viewport:"viewport viewBox",errors:"errors error",positions:"positions position data points"}),u||(x[c]=u={id:c,scale:null,translate:null,scaleFract:null,translateFract:null,draw:!0},t=s({},y,t)),a(u,t,[{lineWidth:function(t){return.5*+t},capSize:function(t){return.5*+t},opacity:parseFloat,errors:function(t){return t=l(t),r+=t.length,t},positions:function(t,r){return t=l(t,"float64"),r.count=Math.floor(t.length/2),r.bounds=n(t,2),r.offset=e,e+=r.count,t}},{color:function(t,e){var r=e.count;if(t||(t="transparent"),!Array.isArray(t)||"number"==typeof t[0]){var n=t;t=Array(r);for(var a=0;a 0. && baClipping < length(normalWidth * endBotJoin)) {\n\t\t//handle miter clipping\n\t\tbTopCoord -= normalWidth * endTopJoin;\n\t\tbTopCoord += normalize(endTopJoin * normalWidth) * baClipping;\n\t}\n\n\tif (nextReverse) {\n\t\t//make join rectangular\n\t\tvec2 miterShift = normalWidth * endJoinDirection * miterLimit * .5;\n\t\tfloat normalAdjust = 1. - min(miterLimit / endMiterRatio, 1.);\n\t\tbBotCoord = bCoord + miterShift - normalAdjust * normalWidth * currNormal * .5;\n\t\tbTopCoord = bCoord + miterShift + normalAdjust * normalWidth * currNormal * .5;\n\t}\n\telse if (!prevReverse && abClipping > 0. && abClipping < length(normalWidth * startBotJoin)) {\n\t\t//handle miter clipping\n\t\taBotCoord -= normalWidth * startBotJoin;\n\t\taBotCoord += normalize(startBotJoin * normalWidth) * abClipping;\n\t}\n\n\tvec2 aTopPosition = (aTopCoord) * adjustedScale + translate;\n\tvec2 aBotPosition = (aBotCoord) * adjustedScale + translate;\n\n\tvec2 bTopPosition = (bTopCoord) * adjustedScale + translate;\n\tvec2 bBotPosition = (bBotCoord) * adjustedScale + translate;\n\n\t//position is normalized 0..1 coord on the screen\n\tvec2 position = (aTopPosition * lineTop + aBotPosition * lineBot) * lineStart + (bTopPosition * lineTop + bBotPosition * lineBot) * lineEnd;\n\n\tstartCoord = aCoord * scaleRatio + translate * viewport.zw + viewport.xy;\n\tendCoord = bCoord * scaleRatio + translate * viewport.zw + viewport.xy;\n\n\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\n\n\tenableStartMiter = step(dot(currTangent, prevTangent), .5);\n\tenableEndMiter = step(dot(currTangent, nextTangent), .5);\n\n\t//bevel miter cutoffs\n\tif (miterMode == 1.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tvec2 startMiterWidth = vec2(startJoinDirection) * thickness * miterLimit * .5;\n\t\t\tstartCutoff = vec4(aCoord, aCoord);\n\t\t\tstartCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;\n\t\t\tstartCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tstartCutoff += viewport.xyxy;\n\t\t\tstartCutoff += startMiterWidth.xyxy;\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tvec2 endMiterWidth = vec2(endJoinDirection) * thickness * miterLimit * .5;\n\t\t\tendCutoff = vec4(bCoord, bCoord);\n\t\t\tendCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x) / scaleRatio;\n\t\t\tendCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tendCutoff += viewport.xyxy;\n\t\t\tendCutoff += endMiterWidth.xyxy;\n\t\t}\n\t}\n\n\t//round miter cutoffs\n\telse if (miterMode == 2.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tvec2 startMiterWidth = vec2(startJoinDirection) * thickness * abs(dot(startJoinDirection, currNormal)) * .5;\n\t\t\tstartCutoff = vec4(aCoord, aCoord);\n\t\t\tstartCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;\n\t\t\tstartCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tstartCutoff += viewport.xyxy;\n\t\t\tstartCutoff += startMiterWidth.xyxy;\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tvec2 endMiterWidth = vec2(endJoinDirection) * thickness * abs(dot(endJoinDirection, currNormal)) * .5;\n\t\t\tendCutoff = vec4(bCoord, bCoord);\n\t\t\tendCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x) / scaleRatio;\n\t\t\tendCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tendCutoff += viewport.xyxy;\n\t\t\tendCutoff += endMiterWidth.xyxy;\n\t\t}\n\t}\n}\n"]),frag:o(["precision highp float;\n#define GLSLIFY 1\n\nuniform sampler2D dashPattern;\nuniform float dashSize, pixelRatio, thickness, opacity, id, miterMode;\n\nvarying vec4 fragColor;\nvarying vec2 tangent;\nvarying vec4 startCutoff, endCutoff;\nvarying vec2 startCoord, endCoord;\nvarying float enableStartMiter, enableEndMiter;\n\nfloat distToLine(vec2 p, vec2 a, vec2 b) {\n\tvec2 diff = b - a;\n\tvec2 perp = normalize(vec2(-diff.y, diff.x));\n\treturn dot(p - a, perp);\n}\n\nvoid main() {\n\tfloat alpha = 1., distToStart, distToEnd;\n\tfloat cutoff = thickness * .5;\n\n\t//bevel miter\n\tif (miterMode == 1.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tdistToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);\n\t\t\tif (distToStart < -1.) {\n\t\t\t\tdiscard;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\talpha *= min(max(distToStart + 1., 0.), 1.);\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tdistToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);\n\t\t\tif (distToEnd < -1.) {\n\t\t\t\tdiscard;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\talpha *= min(max(distToEnd + 1., 0.), 1.);\n\t\t}\n\t}\n\n\t// round miter\n\telse if (miterMode == 2.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tdistToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);\n\t\t\tif (distToStart < 0.) {\n\t\t\t\tfloat radius = length(gl_FragCoord.xy - startCoord);\n\n\t\t\t\tif(radius > cutoff + .5) {\n\t\t\t\t\tdiscard;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\talpha -= smoothstep(cutoff - .5, cutoff + .5, radius);\n\t\t\t}\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tdistToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);\n\t\t\tif (distToEnd < 0.) {\n\t\t\t\tfloat radius = length(gl_FragCoord.xy - endCoord);\n\n\t\t\t\tif(radius > cutoff + .5) {\n\t\t\t\t\tdiscard;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\talpha -= smoothstep(cutoff - .5, cutoff + .5, radius);\n\t\t\t}\n\t\t}\n\t}\n\n\tfloat t = fract(dot(tangent, gl_FragCoord.xy) / dashSize) * .5 + .25;\n\tfloat dash = texture2D(dashPattern, vec2(t, .5)).r;\n\n\tgl_FragColor = fragColor;\n\tgl_FragColor.a *= alpha * opacity * dash;\n}\n"]),attributes:{lineEnd:{buffer:r,divisor:0,stride:8,offset:0},lineTop:{buffer:r,divisor:0,stride:8,offset:4},aColor:{buffer:t.prop("colorBuffer"),stride:4,offset:0,divisor:1},bColor:{buffer:t.prop("colorBuffer"),stride:4,offset:4,divisor:1},prevCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:0,divisor:1},aCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:8,divisor:1},bCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:16,divisor:1},nextCoord:{buffer:t.prop("positionBuffer"),stride:8,offset:24,divisor:1}}},n))}catch(t){e=i}return{fill:t({primitive:"triangle",elements:function(t,e){return e.triangles},offset:0,vert:o(["precision highp float;\n#define GLSLIFY 1\n\nattribute vec2 position, positionFract;\n\nuniform vec4 color;\nuniform vec2 scale, scaleFract, translate, translateFract;\nuniform float pixelRatio, id;\nuniform vec4 viewport;\nuniform float opacity;\n\nvarying vec4 fragColor;\n\nconst float MAX_LINES = 256.;\n\nvoid main() {\n\tfloat depth = (MAX_LINES - 4. - id) / (MAX_LINES);\n\n\tvec2 position = position * scale + translate\n + positionFract * scale + translateFract\n + position * scaleFract\n + positionFract * scaleFract;\n\n\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\n\n\tfragColor = color / 255.;\n\tfragColor.a *= opacity;\n}\n"]),frag:o(["precision highp float;\n#define GLSLIFY 1\n\nvarying vec4 fragColor;\n\nvoid main() {\n\tgl_FragColor = fragColor;\n}\n"]),uniforms:{scale:t.prop("scale"),color:t.prop("fill"),scaleFract:t.prop("scaleFract"),translateFract:t.prop("translateFract"),translate:t.prop("translate"),opacity:t.prop("opacity"),pixelRatio:t.context("pixelRatio"),id:t.prop("id"),viewport:function(t,e){return[e.viewport.x,e.viewport.y,t.viewportWidth,t.viewportHeight]}},attributes:{position:{buffer:t.prop("positionBuffer"),stride:8,offset:8},positionFract:{buffer:t.prop("positionFractBuffer"),stride:8,offset:8}},blend:n.blend,depth:{enable:!1},scissor:n.scissor,stencil:n.stencil,viewport:n.viewport}),rect:i,miter:e}},v.defaults={dashes:null,join:"miter",miterLimit:1,thickness:10,cap:"square",color:"black",opacity:1,overlay:!1,viewport:null,range:null,close:!1,fill:null},v.prototype.render=function(){for(var t,e=[],r=arguments.length;r--;)e[r]=arguments[r];e.length&&(t=this).update.apply(t,e),this.draw()},v.prototype.draw=function(){for(var t=this,e=[],r=arguments.length;r--;)e[r]=arguments[r];return(e.length?e:this.passes).forEach((function(e,r){var n;if(e&&Array.isArray(e))return(n=t).draw.apply(n,e);"number"==typeof e&&(e=t.passes[e]),e&&e.count>1&&e.opacity&&(t.regl._refresh(),e.fill&&e.triangles&&e.triangles.length>2&&t.shaders.fill(e),e.thickness&&(e.scale[0]*e.viewport.width>v.precisionThreshold||e.scale[1]*e.viewport.height>v.precisionThreshold||"rect"===e.join||!e.join&&(e.thickness<=2||e.count>=v.maxPoints)?t.shaders.rect(e):t.shaders.miter(e)))})),this},v.prototype.update=function(t){var e=this;if(t){null!=t.length?"number"==typeof t[0]&&(t=[{positions:t}]):Array.isArray(t)||(t=[t]);var r=this.regl,o=this.gl;if(t.forEach((function(t,f){var d=e.passes[f];if(void 0!==t)if(null!==t){if("number"==typeof t[0]&&(t={positions:t}),t=s(t,{positions:"positions points data coords",thickness:"thickness lineWidth lineWidths line-width linewidth width stroke-width strokewidth strokeWidth",join:"lineJoin linejoin join type mode",miterLimit:"miterlimit miterLimit",dashes:"dash dashes dasharray dash-array dashArray",color:"color colour stroke colors colours stroke-color strokeColor",fill:"fill fill-color fillColor",opacity:"alpha opacity",overlay:"overlay crease overlap intersect",close:"closed close closed-path closePath",range:"range dataBox",viewport:"viewport viewBox",hole:"holes hole hollow",splitNull:"splitNull"}),d||(e.passes[f]=d={id:f,scale:null,scaleFract:null,translate:null,translateFract:null,count:0,hole:[],depth:0,dashLength:1,dashTexture:r.texture({channels:1,data:new Uint8Array([255]),width:1,height:1,mag:"linear",min:"linear"}),colorBuffer:r.buffer({usage:"dynamic",type:"uint8",data:new Uint8Array}),positionBuffer:r.buffer({usage:"dynamic",type:"float",data:new Uint8Array}),positionFractBuffer:r.buffer({usage:"dynamic",type:"float",data:new Uint8Array})},t=a({},v.defaults,t)),null!=t.thickness&&(d.thickness=parseFloat(t.thickness)),null!=t.opacity&&(d.opacity=parseFloat(t.opacity)),null!=t.miterLimit&&(d.miterLimit=parseFloat(t.miterLimit)),null!=t.overlay&&(d.overlay=!!t.overlay,f=D}));(I=I.slice(0,R)).push(D)}for(var F=function(t){var e=k.slice(2*z,2*I[t]).concat(D?k.slice(2*D):[]),r=(d.hole||[]).map((function(e){return e-D+(I[t]-z)})),n=c(e,r);n=n.map((function(e){return e+z+(e+zt.length)&&(e=t.length);for(var r=0,n=new Array(e);r 1.0 + delta) {\n\t\tdiscard;\n\t}\n\n\talpha -= smoothstep(1.0 - delta, 1.0 + delta, radius);\n\n\tfloat borderRadius = fragBorderRadius;\n\tfloat ratio = smoothstep(borderRadius - delta, borderRadius + delta, radius);\n\tvec4 color = mix(fragColor, fragBorderColor, ratio);\n\tcolor.a *= alpha * opacity;\n\tgl_FragColor = color;\n}\n"]),l.vert=h(["precision highp float;\n#define GLSLIFY 1\n\nattribute float x, y, xFract, yFract;\nattribute float size, borderSize;\nattribute vec4 colorId, borderColorId;\nattribute float isActive;\n\nuniform vec2 scale, scaleFract, translate, translateFract;\nuniform float pixelRatio;\nuniform bool constPointSize;\nuniform sampler2D palette;\nuniform vec2 paletteSize;\n\nconst float maxSize = 100.;\n\nvarying vec4 fragColor, fragBorderColor;\nvarying float fragBorderRadius, fragWidth;\n\nfloat pointSizeScale = (constPointSize) ? 2. : pixelRatio;\n\nbool isDirect = (paletteSize.x < 1.);\n\nvec4 getColor(vec4 id) {\n return isDirect ? id / 255. : texture2D(palette,\n vec2(\n (id.x + .5) / paletteSize.x,\n (id.y + .5) / paletteSize.y\n )\n );\n}\n\nvoid main() {\n // ignore inactive points\n if (isActive == 0.) return;\n\n vec2 position = vec2(x, y);\n vec2 positionFract = vec2(xFract, yFract);\n\n vec4 color = getColor(colorId);\n vec4 borderColor = getColor(borderColorId);\n\n float size = size * maxSize / 255.;\n float borderSize = borderSize * maxSize / 255.;\n\n gl_PointSize = (size + borderSize) * pointSizeScale;\n\n vec2 pos = (position + translate) * scale\n + (positionFract + translateFract) * scale\n + (position + translate) * scaleFract\n + (positionFract + translateFract) * scaleFract;\n\n gl_Position = vec4(pos * 2. - 1., 0., 1.);\n\n fragBorderRadius = 1. - 2. * borderSize / (size + borderSize);\n fragColor = color;\n fragBorderColor = borderColor.a == 0. || borderSize == 0. ? vec4(color.rgb, 0.) : borderColor;\n fragWidth = 1. / gl_PointSize;\n}\n"]),g&&(l.frag=l.frag.replace("smoothstep","smoothStep"),s.frag=s.frag.replace("smoothstep","smoothStep")),this.drawCircle=t(l)}b.defaults={color:"black",borderColor:"transparent",borderSize:0,size:12,opacity:1,marker:void 0,viewport:null,range:null,pixelSize:null,count:0,offset:0,bounds:null,positions:[],snap:1e4},b.prototype.render=function(){return arguments.length&&this.update.apply(this,arguments),this.draw(),this},b.prototype.draw=function(){for(var t=this,e=arguments.length,r=new Array(e),n=0;nn)?e.tree=u(t,{bounds:f}):n&&n.length&&(e.tree=n),e.tree){var h={primitive:"points",usage:"static",data:e.tree,type:"uint32"};e.elements?e.elements(h):e.elements=o.elements(h)}return i({data:v.float(t),usage:"dynamic"}),a({data:v.fract(t),usage:"dynamic"}),s({data:new Uint8Array(c),type:"uint8",usage:"stream"}),t}},{marker:function(e,r,n){var i=r.activation;if(i.forEach((function(t){return t&&t.destroy&&t.destroy()})),i.length=0,e&&"number"!=typeof e[0]){for(var a=[],s=0,l=Math.min(e.length,r.count);s=0)return a;if(t instanceof Uint8Array||t instanceof Uint8ClampedArray)e=t;else{e=new Uint8Array(t.length);for(var o=0,s=t.length;o4*n&&(this.tooManyColors=!0),this.updatePalette(r),1===i.length?i[0]:i},b.prototype.updatePalette=function(t){if(!this.tooManyColors){var e=this.maxColors,r=this.paletteTexture,n=Math.ceil(.25*t.length/e);if(n>1)for(var i=.25*(t=t.slice()).length%e;i2?(s[0],s[2],n=s[1],i=s[3]):s.length?(n=s[0],i=s[1]):(s.x,n=s.y,s.x+s.width,i=s.y+s.height),l.length>2?(a=l[0],o=l[2],l[1],l[3]):l.length?(a=l[0],o=l[1]):(a=l.x,l.y,o=l.x+l.width,l.y+l.height),[a,n,o,i]}function p(t){if("number"==typeof t)return[t,t,t,t];if(2===t.length)return[t[0],t[1],t[0],t[1]];var e=l(t);return[e.x,e.y,e.x+e.width,e.y+e.height]}e.exports=u,u.prototype.render=function(){for(var t,e=this,r=[],n=arguments.length;n--;)r[n]=arguments[n];return r.length&&(t=this).update.apply(t,r),this.regl.attributes.preserveDrawingBuffer?this.draw():(this.dirty?null==this.planned&&(this.planned=o((function(){e.draw(),e.dirty=!0,e.planned=null}))):(this.draw(),this.dirty=!0,o((function(){e.dirty=!1}))),this)},u.prototype.update=function(){for(var t,e=[],r=arguments.length;r--;)e[r]=arguments[r];if(e.length){for(var n=0;nk))&&(s.lower||!(T>>=e))<<3,(e|=r=(15<(t>>>=r))<<2)|(r=(3<(t>>>=r))<<1)|t>>>r>>1}function s(){function t(t){t:{for(var e=16;268435456>=e;e*=16)if(t<=e){t=e;break t}t=0}return 0<(e=r[o(t)>>2]).length?e.pop():new ArrayBuffer(t)}function e(t){r[o(t.byteLength)>>2].push(t)}var r=a(8,(function(){return[]}));return{alloc:t,free:e,allocType:function(e,r){var n=null;switch(e){case 5120:n=new Int8Array(t(r),0,r);break;case 5121:n=new Uint8Array(t(r),0,r);break;case 5122:n=new Int16Array(t(2*r),0,r);break;case 5123:n=new Uint16Array(t(2*r),0,r);break;case 5124:n=new Int32Array(t(4*r),0,r);break;case 5125:n=new Uint32Array(t(4*r),0,r);break;case 5126:n=new Float32Array(t(4*r),0,r);break;default:return null}return n.length!==r?n.subarray(0,r):n},freeType:function(t){e(t.buffer)}}}function l(t){return!!t&&"object"==typeof t&&Array.isArray(t.shape)&&Array.isArray(t.stride)&&"number"==typeof t.offset&&t.shape.length===t.stride.length&&(Array.isArray(t.data)||X(t.data))}function c(t,e,r,n,i,a){for(var o=0;o(i=s)&&(i=n.buffer.byteLength,5123===f?i>>=1:5125===f&&(i>>=2)),n.vertCount=i,i=o,0>o&&(i=4,1===(o=n.buffer.dimension)&&(i=0),2===o&&(i=1),3===o&&(i=4)),n.primType=i}function o(t){n.elementsCount--,delete s[t.id],t.buffer.destroy(),t.buffer=null}var s={},c=0,u={uint8:5121,uint16:5123};e.oes_element_index_uint&&(u.uint32=5125),i.prototype.bind=function(){this.buffer.bind()};var f=[];return{create:function(t,e){function s(t){if(t)if("number"==typeof t)c(t),f.primType=4,f.vertCount=0|t,f.type=5121;else{var e=null,r=35044,n=-1,i=-1,o=0,h=0;Array.isArray(t)||X(t)||l(t)?e=t:("data"in t&&(e=t.data),"usage"in t&&(r=$[t.usage]),"primitive"in t&&(n=nt[t.primitive]),"count"in t&&(i=0|t.count),"type"in t&&(h=u[t.type]),"length"in t?o=0|t.length:(o=i,5123===h||5122===h?o*=2:5125!==h&&5124!==h||(o*=4))),a(f,e,r,n,i,o,h)}else c(),f.primType=4,f.vertCount=0,f.type=5121;return s}var c=r.create(null,34963,!0),f=new i(c._buffer);return n.elementsCount++,s(t),s._reglType="elements",s._elements=f,s.subdata=function(t,e){return c.subdata(t,e),s},s.destroy=function(){o(f)},s},createStream:function(t){var e=f.pop();return e||(e=new i(r.create(null,34963,!0,!1)._buffer)),a(e,t,35040,-1,-1,0,0),e},destroyStream:function(t){f.push(t)},getElements:function(t){return"function"==typeof t&&t._elements instanceof i?t._elements:null},clear:function(){Z(s).forEach(o)}}}function m(t){for(var e=Y.allocType(5123,t.length),r=0;r>>31<<15,i=(a<<1>>>24)-127,a=a>>13&1023;e[r]=-24>i?n:-14>i?n+(a+1024>>-14-i):15>=i,r.height>>=i,p(r,n[i]),t.mipmask|=1<e;++e)t.images[e]=null;return t}function C(t){for(var e=t.images,r=0;re){for(var r=0;r=--this.refCount&&F(this)}}),o.profile&&(a.getTotalTextureSize=function(){var t=0;return Object.keys(yt).forEach((function(e){t+=yt[e].stats.size})),t}),{create2D:function(e,r){function n(t,e){var r=i.texInfo;P.call(r);var a=L();return"number"==typeof t?A(a,0|t,"number"==typeof e?0|e:0|t):t?(I(r,t),S(a,t)):A(a,1,1),r.genMipmaps&&(a.mipmask=(a.width<<1)-1),i.mipmask=a.mipmask,c(i,a),i.internalformat=a.internalformat,n.width=a.width,n.height=a.height,D(i),E(a,3553),O(r,3553),R(),C(a),o.profile&&(i.stats.size=T(i.internalformat,i.type,a.width,a.height,r.genMipmaps,!1)),n.format=tt[i.internalformat],n.type=et[i.type],n.mag=rt[r.magFilter],n.min=nt[r.minFilter],n.wrapS=it[r.wrapS],n.wrapT=it[r.wrapT],n}var i=new z(3553);return yt[i.id]=i,a.textureCount++,n(e,r),n.subimage=function(t,e,r,a){e|=0,r|=0,a|=0;var o=v();return c(o,i),o.width=0,o.height=0,p(o,t),o.width=o.width||(i.width>>a)-e,o.height=o.height||(i.height>>a)-r,D(i),d(o,3553,e,r,a),R(),k(o),n},n.resize=function(e,r){var a=0|e,s=0|r||a;if(a===i.width&&s===i.height)return n;n.width=i.width=a,n.height=i.height=s,D(i);for(var l=0;i.mipmask>>l;++l){var c=a>>l,u=s>>l;if(!c||!u)break;t.texImage2D(3553,l,i.format,c,u,0,i.format,i.type,null)}return R(),o.profile&&(i.stats.size=T(i.internalformat,i.type,a,s,!1,!1)),n},n._reglType="texture2d",n._texture=i,o.profile&&(n.stats=i.stats),n.destroy=function(){i.decRef()},n},createCube:function(e,r,n,i,s,l){function f(t,e,r,n,i,a){var s,l=h.texInfo;for(P.call(l),s=0;6>s;++s)m[s]=L();if("number"!=typeof t&&t){if("object"==typeof t)if(e)S(m[0],t),S(m[1],e),S(m[2],r),S(m[3],n),S(m[4],i),S(m[5],a);else if(I(l,t),u(h,t),"faces"in t)for(t=t.faces,s=0;6>s;++s)c(m[s],h),S(m[s],t[s]);else for(s=0;6>s;++s)S(m[s],t)}else for(t=0|t||1,s=0;6>s;++s)A(m[s],t,t);for(c(h,m[0]),h.mipmask=l.genMipmaps?(m[0].width<<1)-1:m[0].mipmask,h.internalformat=m[0].internalformat,f.width=m[0].width,f.height=m[0].height,D(h),s=0;6>s;++s)E(m[s],34069+s);for(O(l,34067),R(),o.profile&&(h.stats.size=T(h.internalformat,h.type,f.width,f.height,l.genMipmaps,!0)),f.format=tt[h.internalformat],f.type=et[h.type],f.mag=rt[l.magFilter],f.min=nt[l.minFilter],f.wrapS=it[l.wrapS],f.wrapT=it[l.wrapT],s=0;6>s;++s)C(m[s]);return f}var h=new z(34067);yt[h.id]=h,a.cubeCount++;var m=Array(6);return f(e,r,n,i,s,l),f.subimage=function(t,e,r,n,i){r|=0,n|=0,i|=0;var a=v();return c(a,h),a.width=0,a.height=0,p(a,e),a.width=a.width||(h.width>>i)-r,a.height=a.height||(h.height>>i)-n,D(h),d(a,34069+t,r,n,i),R(),k(a),f},f.resize=function(e){if((e|=0)!==h.width){f.width=h.width=e,f.height=h.height=e,D(h);for(var r=0;6>r;++r)for(var n=0;h.mipmask>>n;++n)t.texImage2D(34069+r,n,h.format,e>>n,e>>n,0,h.format,h.type,null);return R(),o.profile&&(h.stats.size=T(h.internalformat,h.type,f.width,f.height,!1,!0)),f}},f._reglType="textureCube",f._texture=h,o.profile&&(f.stats=h.stats),f.destroy=function(){h.decRef()},f},clear:function(){for(var e=0;er;++r)if(0!=(e.mipmask&1<>r,e.height>>r,0,e.internalformat,e.type,null);else for(var n=0;6>n;++n)t.texImage2D(34069+n,r,e.internalformat,e.width>>r,e.height>>r,0,e.internalformat,e.type,null);O(e.texInfo,e.target)}))}}}function M(t,e,r,n,i,a){function o(t,e,r){this.target=t,this.texture=e,this.renderbuffer=r;var n=t=0;e?(t=e.width,n=e.height):r&&(t=r.width,n=r.height),this.width=t,this.height=n}function s(t){t&&(t.texture&&t.texture._texture.decRef(),t.renderbuffer&&t.renderbuffer._renderbuffer.decRef())}function l(t,e,r){t&&(t.texture?t.texture._texture.refCount+=1:t.renderbuffer._renderbuffer.refCount+=1)}function c(e,r){r&&(r.texture?t.framebufferTexture2D(36160,e,r.target,r.texture._texture.texture,0):t.framebufferRenderbuffer(36160,e,36161,r.renderbuffer._renderbuffer.renderbuffer))}function u(t){var e=3553,r=null,n=null,i=t;return"object"==typeof t&&(i=t.data,"target"in t&&(e=0|t.target)),"texture2d"===(t=i._reglType)||"textureCube"===t?r=i:"renderbuffer"===t&&(n=i,e=36161),new o(e,r,n)}function f(t,e,r,a,s){return r?((t=n.create2D({width:t,height:e,format:a,type:s}))._texture.refCount=0,new o(3553,t,null)):((t=i.create({width:t,height:e,format:a}))._renderbuffer.refCount=0,new o(36161,null,t))}function h(t){return t&&(t.texture||t.renderbuffer)}function p(t,e,r){t&&(t.texture?t.texture.resize(e,r):t.renderbuffer&&t.renderbuffer.resize(e,r),t.width=e,t.height=r)}function d(){this.id=T++,k[this.id]=this,this.framebuffer=t.createFramebuffer(),this.height=this.width=0,this.colorAttachments=[],this.depthStencilAttachment=this.stencilAttachment=this.depthAttachment=null}function m(t){t.colorAttachments.forEach(s),s(t.depthAttachment),s(t.stencilAttachment),s(t.depthStencilAttachment)}function g(e){t.deleteFramebuffer(e.framebuffer),e.framebuffer=null,a.framebufferCount--,delete k[e.id]}function v(e){var n;t.bindFramebuffer(36160,e.framebuffer);var i=e.colorAttachments;for(n=0;ni;++i){for(c=0;ct;++t)r[t].resize(n);return e.width=e.height=n,e},_reglType:"framebufferCube",destroy:function(){r.forEach((function(t){t.destroy()}))}})},clear:function(){Z(k).forEach(g)},restore:function(){x.cur=null,x.next=null,x.dirty=!0,Z(k).forEach((function(e){e.framebuffer=t.createFramebuffer(),v(e)}))}})}function A(){this.w=this.z=this.y=this.x=this.state=0,this.buffer=null,this.size=0,this.normalized=!1,this.type=5126,this.divisor=this.stride=this.offset=0}function S(t,e,r,n,i){function a(){this.id=++c,this.attributes=[];var t=e.oes_vertex_array_object;this.vao=t?t.createVertexArrayOES():null,u[this.id]=this,this.buffers=[]}var o=r.maxAttributes,s=Array(o);for(r=0;rt&&(t=e.stats.uniformsCount)})),t},r.getMaxAttributesCount=function(){var t=0;return h.forEach((function(e){e.stats.attributesCount>t&&(t=e.stats.attributesCount)})),t}),{clear:function(){var e=t.deleteShader.bind(t);Z(c).forEach(e),c={},Z(u).forEach(e),u={},h.forEach((function(e){t.deleteProgram(e.program)})),h.length=0,f={},r.shaderCount=0},program:function(t,e,n,i){var a=f[e];a||(a=f[e]={});var o=a[t];return o&&!i?o:(e=new s(e,t),r.shaderCount++,l(e,n,i),o||(a[t]=e),h.push(e),e)},restore:function(){c={},u={};for(var t=0;t"+e+"?"+i+".constant["+e+"]:0;"})).join(""),"}}else{","if(",s,"(",i,".buffer)){",u,"=",a,".createStream(",34962,",",i,".buffer);","}else{",u,"=",a,".getBuffer(",i,".buffer);","}",f,'="type" in ',i,"?",o.glTypes,"[",i,".type]:",u,".dtype;",l.normalized,"=!!",i,".normalized;"),n("size"),n("offset"),n("stride"),n("divisor"),r("}}"),r.exit("if(",l.isStream,"){",a,".destroyStream(",u,");","}"),l}))})),o}function M(t,e,n,i,o){function s(t){var e=c[t];e&&(h[t]=e)}var l=function(t,e){if("string"==typeof(r=t.static).frag&&"string"==typeof r.vert){if(0>1)",s],");")}function e(){r(l,".drawArraysInstancedANGLE(",[d,m,g,s],");")}p?y?t():(r("if(",p,"){"),t(),r("}else{"),e(),r("}")):e()}function o(){function t(){r(u+".drawElements("+[d,g,v,m+"<<(("+v+"-5121)>>1)"]+");")}function e(){r(u+".drawArrays("+[d,m,g]+");")}p?y?t():(r("if(",p,"){"),t(),r("}else{"),e(),r("}")):e()}var s,l,c=t.shared,u=c.gl,f=c.draw,h=n.draw,p=function(){var i=h.elements,a=e;return i?((i.contextDep&&n.contextDynamic||i.propDep)&&(a=r),i=i.append(t,a)):i=a.def(f,".","elements"),i&&a("if("+i+")"+u+".bindBuffer(34963,"+i+".buffer.buffer);"),i}(),d=i("primitive"),m=i("offset"),g=function(){var i=h.count,a=e;return i?((i.contextDep&&n.contextDynamic||i.propDep)&&(a=r),i=i.append(t,a)):i=a.def(f,".","count"),i}();if("number"==typeof g){if(0===g)return}else r("if(",g,"){"),r.exit("}");K&&(s=i("instances"),l=t.instancing);var v=p+".type",y=h.elements&&R(h.elements);K&&("number"!=typeof s||0<=s)?"string"==typeof s?(r("if(",s,">0){"),a(),r("}else if(",s,"<0){"),o(),r("}")):a():o()}function V(t,e,r,n,i){return i=(e=b()).proc("body",i),K&&(e.instancing=i.def(e.shared.extensions,".angle_instanced_arrays")),t(e,i,r,n),e.compile().body}function H(t,e,r,n){C(t,e),r.useVAO?r.drawVAO?e(t.shared.vao,".setVAO(",r.drawVAO.append(t,e),");"):e(t.shared.vao,".setVAO(",t.shared.vao,".targetVAO);"):(e(t.shared.vao,".setVAO(null);"),N(t,e,r,n.attributes,(function(){return!0}))),j(t,e,r,n.uniforms,(function(){return!0})),U(t,e,e,r)}function G(t,e,r,n){function i(){return!0}t.batchId="a1",C(t,e),N(t,e,r,n.attributes,i),j(t,e,r,n.uniforms,i),U(t,e,e,r)}function Y(t,e,r,n){function i(t){return t.contextDep&&o||t.propDep}function a(t){return!i(t)}C(t,e);var o=r.contextDep,s=e.def(),l=e.def();t.shared.props=l,t.batchId=s;var c=t.scope(),u=t.scope();e(c.entry,"for(",s,"=0;",s,"<","a1",";++",s,"){",l,"=","a0","[",s,"];",u,"}",c.exit),r.needsContext&&A(t,u,r.context),r.needsFramebuffer&&S(t,u,r.framebuffer),L(t,u,r.state,i),r.profile&&i(r.profile)&&P(t,u,r,!1,!0),n?(r.useVAO?r.drawVAO?i(r.drawVAO)?u(t.shared.vao,".setVAO(",r.drawVAO.append(t,u),");"):c(t.shared.vao,".setVAO(",r.drawVAO.append(t,c),");"):c(t.shared.vao,".setVAO(",t.shared.vao,".targetVAO);"):(c(t.shared.vao,".setVAO(null);"),N(t,c,r,n.attributes,a),N(t,u,r,n.attributes,i)),j(t,c,r,n.uniforms,a),j(t,u,r,n.uniforms,i),U(t,c,u,r)):(e=t.global.def("{}"),n=r.shader.progVar.append(t,u),l=u.def(n,".id"),c=u.def(e,"[",l,"]"),u(t.shared.gl,".useProgram(",n,".program);","if(!",c,"){",c,"=",e,"[",l,"]=",t.link((function(e){return V(G,t,r,e,2)})),"(",n,");}",c,".call(this,a0[",s,"],",s,");"))}function W(t,r){function n(e){var n=r.shader[e];n&&i.set(a.shader,"."+e,n.append(t,i))}var i=t.proc("scope",3);t.batchId="a2";var a=t.shared,o=a.current;A(t,i,r.context),r.framebuffer&&r.framebuffer.append(t,i),z(Object.keys(r.state)).forEach((function(e){var n=r.state[e].append(t,i);g(n)?n.forEach((function(r,n){i.set(t.next[e],"["+n+"]",r)})):i.set(a.next,"."+e,n)})),P(t,i,r,!0,!0),["elements","offset","count","instances","primitive"].forEach((function(e){var n=r.draw[e];n&&i.set(a.draw,"."+e,""+n.append(t,i))})),Object.keys(r.uniforms).forEach((function(n){i.set(a.uniforms,"["+e.id(n)+"]",r.uniforms[n].append(t,i))})),Object.keys(r.attributes).forEach((function(e){var n=r.attributes[e].append(t,i),a=t.scopeAttrib(e);Object.keys(new Z).forEach((function(t){i.set(a,"."+t,n[t])}))})),r.scopeVAO&&i.set(a.vao,".targetVAO",r.scopeVAO.append(t,i)),n("vert"),n("frag"),0=--this.refCount&&o(this)},i.profile&&(n.getTotalRenderbufferSize=function(){var t=0;return Object.keys(u).forEach((function(e){t+=u[e].stats.size})),t}),{create:function(e,r){function o(e,r){var n=0,a=0,u=32854;if("object"==typeof e&&e?("shape"in e?(n=0|(a=e.shape)[0],a=0|a[1]):("radius"in e&&(n=a=0|e.radius),"width"in e&&(n=0|e.width),"height"in e&&(a=0|e.height)),"format"in e&&(u=s[e.format])):"number"==typeof e?(n=0|e,a="number"==typeof r?0|r:n):e||(n=a=1),n!==c.width||a!==c.height||u!==c.format)return o.width=c.width=n,o.height=c.height=a,c.format=u,t.bindRenderbuffer(36161,c.renderbuffer),t.renderbufferStorage(36161,u,n,a),i.profile&&(c.stats.size=yt[c.format]*c.width*c.height),o.format=l[c.format],o}var c=new a(t.createRenderbuffer());return u[c.id]=c,n.renderbufferCount++,o(e,r),o.resize=function(e,r){var n=0|e,a=0|r||n;return n===c.width&&a===c.height||(o.width=c.width=n,o.height=c.height=a,t.bindRenderbuffer(36161,c.renderbuffer),t.renderbufferStorage(36161,c.format,n,a),i.profile&&(c.stats.size=yt[c.format]*c.width*c.height)),o},o._reglType="renderbuffer",o._renderbuffer=c,i.profile&&(o.stats=c.stats),o.destroy=function(){c.decRef()},o},clear:function(){Z(u).forEach(o)},restore:function(){Z(u).forEach((function(e){e.renderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(36161,e.renderbuffer),t.renderbufferStorage(36161,e.format,e.width,e.height)})),t.bindRenderbuffer(36161,null)}}},bt=[];bt[6408]=4,bt[6407]=3;var _t=[];_t[5121]=1,_t[5126]=4,_t[36193]=2;var wt=["x","y","z","w"],Tt="blend.func blend.equation stencil.func stencil.opFront stencil.opBack sample.coverage viewport scissor.box polygonOffset.offset".split(" "),kt={0:0,1:1,zero:0,one:1,"src color":768,"one minus src color":769,"src alpha":770,"one minus src alpha":771,"dst color":774,"one minus dst color":775,"dst alpha":772,"one minus dst alpha":773,"constant color":32769,"one minus constant color":32770,"constant alpha":32771,"one minus constant alpha":32772,"src alpha saturate":776},Mt={never:512,less:513,"<":513,equal:514,"=":514,"==":514,"===":514,lequal:515,"<=":515,greater:516,">":516,notequal:517,"!=":517,"!==":517,gequal:518,">=":518,always:519},At={0:0,zero:0,keep:7680,replace:7681,increment:7682,decrement:7683,"increment wrap":34055,"decrement wrap":34056,invert:5386},St={cw:2304,ccw:2305},Et=new D(!1,!1,!1,(function(){}));return function(t){function e(){if(0===J.length)w&&w.update(),tt=null;else{tt=H.next(e),f();for(var t=J.length-1;0<=t;--t){var r=J[t];r&&r(P,null,0)}g.flush(),w&&w.update()}}function r(){!tt&&0=J.length&&n()}}}}function u(){var t=X.viewport,e=X.scissor_box;t[0]=t[1]=e[0]=e[1]=0,P.viewportWidth=P.framebufferWidth=P.drawingBufferWidth=t[2]=e[2]=g.drawingBufferWidth,P.viewportHeight=P.framebufferHeight=P.drawingBufferHeight=t[3]=e[3]=g.drawingBufferHeight}function f(){P.tick+=1,P.time=m(),u(),Y.procs.poll()}function h(){u(),Y.procs.refresh(),w&&w.update()}function m(){return(G()-T)/1e3}if(!(t=i(t)))return null;var g=t.gl,v=g.getContextAttributes();g.isContextLost();var y=function(t,e){function r(e){var r;e=e.toLowerCase();try{r=n[e]=t.getExtension(e)}catch(t){}return!!r}for(var n={},i=0;ie;++e)et(U({framebuffer:t.framebuffer.faces[e]},t),l);else et(t,l);else l(0,t)},prop:q.define.bind(null,1),context:q.define.bind(null,2),this:q.define.bind(null,3),draw:s({}),buffer:function(t){return O.create(t,34962,!1,!1)},elements:function(t){return D.create(t,!1)},texture:F.create2D,cube:F.createCube,renderbuffer:B.create,framebuffer:V.create,framebufferCube:V.createCube,vao:z.createVAO,attributes:v,frame:c,on:function(t,e){var r;switch(t){case"frame":return c(e);case"lost":r=K;break;case"restore":r=Q;break;case"destroy":r=$}return r.push(e),{cancel:function(){for(var t=0;t * * Copyright (c) 2014-2015, Jon Schlinkert. * Licensed under the MIT License. */ -"use strict";var n,i="";e.exports=function(t,e){if("string"!=typeof t)throw new TypeError("expected a string");if(1===e)return t;if(2===e)return t+t;var r=t.length*e;if(n!==t||"undefined"==typeof n)n=t,i="";else if(i.length>=r)return i.substr(0,r);for(;r>i.length&&e>1;)1&e&&(i+=t),e>>=1,t+=t;return i=(i+=t).substr(0,r)}},{}],542:[function(t,e,r){(function(t){(function(){e.exports=t.performance&&t.performance.now?function(){return performance.now()}:Date.now||function(){return+new Date}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],543:[function(t,e,r){"use strict";e.exports=function(t){for(var e=t.length,r=t[t.length-1],n=e,i=e-2;i>=0;--i){var a=r,o=t[i];(l=o-((r=a+o)-a))&&(t[--n]=r,r=l)}var s=0;for(i=n;i>1;return["sum(",t(e.slice(0,r)),",",t(e.slice(r)),")"].join("")}(e);var n}function u(t){return new Function("sum","scale","prod","compress",["function robustDeterminant",t,"(m){return compress(",c(l(t)),")};return robustDeterminant",t].join(""))(i,a,n,o)}var f=[function(){return[0]},function(t){return[t[0][0]]}];!function(){for(;f.length<6;)f.push(u(f.length));for(var t=[],r=["function robustDeterminant(m){switch(m.length){"],n=0;n<6;++n)t.push("det"+n),r.push("case ",n,":return det",n,"(m);");r.push("}var det=CACHE[m.length];if(!det)det=CACHE[m.length]=gen(m.length);return det(m);}return robustDeterminant"),t.push("CACHE","gen",r.join(""));var i=Function.apply(void 0,t);for(e.exports=i.apply(void 0,f.concat([f,u])),n=0;n>1;return["sum(",l(t.slice(0,e)),",",l(t.slice(e)),")"].join("")}function c(t,e){if("m"===t.charAt(0)){if("w"===e.charAt(0)){var r=t.split("[");return["w",e.substr(1),"m",r[0].substr(1)].join("")}return["prod(",t,",",e,")"].join("")}return c(e,t)}function u(t){if(2===t.length)return[["diff(",c(t[0][0],t[1][1]),",",c(t[1][0],t[0][1]),")"].join("")];for(var e=[],r=0;r0&&r.push(","),r.push("[");for(var o=0;o0&&r.push(","),o===i?r.push("+b[",a,"]"):r.push("+A[",a,"][",o,"]");r.push("]")}r.push("]),")}r.push("det(A)]}return ",e);var s=new Function("det",r.join(""));return s(t<6?n[t]:n)}var a=[function(){return[0]},function(t,e){return[[e[0]],[t[0][0]]]}];!function(){for(;a.length<6;)a.push(i(a.length));for(var t=[],r=["function dispatchLinearSolve(A,b){switch(A.length){"],n=0;n<6;++n)t.push("s"+n),r.push("case ",n,":return s",n,"(A,b);");r.push("}var s=CACHE[A.length];if(!s)s=CACHE[A.length]=g(A.length);return s(A,b)}return dispatchLinearSolve"),t.push("CACHE","g",r.join(""));var o=Function.apply(void 0,t);for(e.exports=o.apply(void 0,a.concat([a,i])),n=0;n<6;++n)e.exports[n]=a[n]}()},{"robust-determinant":544}],548:[function(t,e,r){"use strict";var n=t("two-product"),i=t("robust-sum"),a=t("robust-scale"),o=t("robust-subtract");function s(t,e){for(var r=new Array(t.length-1),n=1;n>1;return["sum(",l(t.slice(0,e)),",",l(t.slice(e)),")"].join("")}function c(t){if(2===t.length)return[["sum(prod(",t[0][0],",",t[1][1],"),prod(-",t[0][1],",",t[1][0],"))"].join("")];for(var e=[],r=0;r0){if(a<=0)return o;n=i+a}else{if(!(i<0))return o;if(a>=0)return o;n=-(i+a)}var s=33306690738754716e-32*n;return o>=s||o<=-s?o:f(t,e,r)},function(t,e,r,n){var i=t[0]-n[0],a=e[0]-n[0],o=r[0]-n[0],s=t[1]-n[1],l=e[1]-n[1],c=r[1]-n[1],u=t[2]-n[2],f=e[2]-n[2],p=r[2]-n[2],d=a*c,g=o*l,m=o*s,v=i*c,y=i*l,x=a*s,b=u*(d-g)+f*(m-v)+p*(y-x),_=7771561172376103e-31*((Math.abs(d)+Math.abs(g))*Math.abs(u)+(Math.abs(m)+Math.abs(v))*Math.abs(f)+(Math.abs(y)+Math.abs(x))*Math.abs(p));return b>_||-b>_?b:h(t,e,r,n)}];function d(t){var e=p[t.length];return e||(e=p[t.length]=u(t.length)),e.apply(void 0,t)}!function(){for(;p.length<=5;)p.push(u(p.length));for(var t=[],r=["slow"],n=0;n<=5;++n)t.push("a"+n),r.push("o"+n);var i=["function getOrientation(",t.join(),"){switch(arguments.length){case 0:case 1:return 0;"];for(n=2;n<=5;++n)i.push("case ",n,":return o",n,"(",t.slice(0,n).join(),");");i.push("}var s=new Array(arguments.length);for(var i=0;i0&&o>0||a<0&&o<0)return!1;var s=n(r,t,e),l=n(i,t,e);if(s>0&&l>0||s<0&&l<0)return!1;if(0===a&&0===o&&0===s&&0===l)return function(t,e,r,n){for(var i=0;i<2;++i){var a=t[i],o=e[i],s=Math.min(a,o),l=Math.max(a,o),c=r[i],u=n[i],f=Math.min(c,u);if(Math.max(c,u)=n?(i=f,(l+=1)=n?(i=f,(l+=1)0?1:0}},{}],555:[function(t,e,r){"use strict";e.exports=function(t){return i(n(t))};var n=t("boundary-cells"),i=t("reduce-simplicial-complex")},{"boundary-cells":100,"reduce-simplicial-complex":533}],556:[function(t,e,r){"use strict";e.exports=function(t,e,r,s){r=r||0,"undefined"==typeof s&&(s=function(t){for(var e=t.length,r=0,n=0;n>1,v=E[2*m+1];","if(v===b){return m}","if(b0&&l.push(","),l.push("[");for(var n=0;n0&&l.push(","),l.push("B(C,E,c[",i[0],"],c[",i[1],"])")}l.push("]")}l.push(");")}}for(a=t+1;a>1;--a){a>1,s=a(t[o],e);s<=0?(0===s&&(i=o),r=o+1):s>0&&(n=o-1)}return i}function u(t,e){for(var r=new Array(t.length),i=0,o=r.length;i=t.length||0!==a(t[m],s)););}return r}function f(t,e){if(e<0)return[];for(var r=[],i=(1<>>u&1&&c.push(i[u]);e.push(c)}return s(e)},r.skeleton=f,r.boundary=function(t){for(var e=[],r=0,n=t.length;r>1:(t>>1)-1}function x(t){for(var e=v(t);;){var r=e,n=2*t+1,i=2*(t+1),a=t;if(n0;){var r=y(t);if(r>=0)if(e0){var t=k[0];return m(0,A-1),A-=1,x(0),t}return-1}function w(t,e){var r=k[t];return c[r]===e?t:(c[r]=-1/0,b(t),_(),c[r]=e,b((A+=1)-1))}function T(t){if(!u[t]){u[t]=!0;var e=s[t],r=l[t];s[r]>=0&&(s[r]=e),l[e]>=0&&(l[e]=r),M[e]>=0&&w(M[e],g(e)),M[r]>=0&&w(M[r],g(r))}}var k=[],M=new Array(a);for(f=0;f>1;f>=0;--f)x(f);for(;;){var S=_();if(S<0||c[S]>r)break;T(S)}var E=[];for(f=0;f=0&&r>=0&&e!==r){var n=M[e],i=M[r];n!==i&&L.push([n,i])}})),i.unique(i.normalize(L)),{positions:E,edges:L}};var n=t("robust-orientation"),i=t("simplicial-complex")},{"robust-orientation":548,"simplicial-complex":560}],563:[function(t,e,r){"use strict";e.exports=function(t,e){var r,a,o,s;if(e[0][0]e[1][0]))return i(e,t);r=e[1],a=e[0]}if(t[0][0]t[1][0]))return-i(t,e);o=t[1],s=t[0]}var l=n(r,a,s),c=n(r,a,o);if(l<0){if(c<=0)return l}else if(l>0){if(c>=0)return l}else if(c)return c;if(l=n(s,o,a),c=n(s,o,r),l<0){if(c<=0)return l}else if(l>0){if(c>=0)return l}else if(c)return c;return a[0]-s[0]};var n=t("robust-orientation");function i(t,e){var r,i,a,o;if(e[0][0]e[1][0])){var s=Math.min(t[0][1],t[1][1]),l=Math.max(t[0][1],t[1][1]),c=Math.min(e[0][1],e[1][1]),u=Math.max(e[0][1],e[1][1]);return lu?s-u:l-u}r=e[1],i=e[0]}t[0][1]0)if(e[0]!==o[1][0])r=t,t=t.right;else{if(l=c(t.right,e))return l;t=t.left}else{if(e[0]!==o[1][0])return t;var l;if(l=c(t.right,e))return l;t=t.left}}return r}function u(t,e,r,n){this.y=t,this.index=e,this.start=r,this.closed=n}function f(t,e,r,n){this.x=t,this.segment=e,this.create=r,this.index=n}s.prototype.castUp=function(t){var e=n.le(this.coordinates,t[0]);if(e<0)return-1;this.slabs[e];var r=c(this.slabs[e],t),i=-1;if(r&&(i=r.value),this.coordinates[e]===t[0]){var s=null;if(r&&(s=r.key),e>0){var u=c(this.slabs[e-1],t);u&&(s?o(u.key,s)>0&&(s=u.key,i=u.value):(i=u.value,s=u.key))}var f=this.horizontal[e];if(f.length>0){var h=n.ge(f,t[1],l);if(h=f.length)return i;p=f[h]}}if(p.start)if(s){var d=a(s[0],s[1],[t[0],p.y]);s[0][0]>s[1][0]&&(d=-d),d>0&&(i=p.index)}else i=p.index;else p.y!==t[1]&&(i=p.index)}}}return i}},{"./lib/order-segments":563,"binary-search-bounds":564,"functional-red-black-tree":247,"robust-orientation":548}],566:[function(t,e,r){"use strict";var n=t("robust-dot-product"),i=t("robust-sum");function a(t,e){var r=i(n(t,e),[e[e.length-1]]);return r[r.length-1]}function o(t,e,r,n){var i=-e/(n-e);i<0?i=0:i>1&&(i=1);for(var a=1-i,o=t.length,s=new Array(o),l=0;l0||i>0&&u<0){var f=o(s,u,l,i);r.push(f),n.push(f.slice())}u<0?n.push(l.slice()):u>0?r.push(l.slice()):(r.push(l.slice()),n.push(l.slice())),i=u}return{positive:r,negative:n}},e.exports.positive=function(t,e){for(var r=[],n=a(t[t.length-1],e),i=t[t.length-1],s=t[0],l=0;l0||n>0&&c<0)&&r.push(o(i,c,s,n)),c>=0&&r.push(s.slice()),n=c}return r},e.exports.negative=function(t,e){for(var r=[],n=a(t[t.length-1],e),i=t[t.length-1],s=t[0],l=0;l0||n>0&&c<0)&&r.push(o(i,c,s,n)),c<=0&&r.push(s.slice()),n=c}return r}},{"robust-dot-product":545,"robust-sum":553}],567:[function(t,e,r){!function(){"use strict";var t={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function e(t){return i(o(t),arguments)}function n(t,r){return e.apply(null,[t].concat(r||[]))}function i(r,n){var i,a,o,s,l,c,u,f,h,p=1,d=r.length,g="";for(a=0;a=0),s.type){case"b":i=parseInt(i,10).toString(2);break;case"c":i=String.fromCharCode(parseInt(i,10));break;case"d":case"i":i=parseInt(i,10);break;case"j":i=JSON.stringify(i,null,s.width?parseInt(s.width):0);break;case"e":i=s.precision?parseFloat(i).toExponential(s.precision):parseFloat(i).toExponential();break;case"f":i=s.precision?parseFloat(i).toFixed(s.precision):parseFloat(i);break;case"g":i=s.precision?String(Number(i.toPrecision(s.precision))):parseFloat(i);break;case"o":i=(parseInt(i,10)>>>0).toString(8);break;case"s":i=String(i),i=s.precision?i.substring(0,s.precision):i;break;case"t":i=String(!!i),i=s.precision?i.substring(0,s.precision):i;break;case"T":i=Object.prototype.toString.call(i).slice(8,-1).toLowerCase(),i=s.precision?i.substring(0,s.precision):i;break;case"u":i=parseInt(i,10)>>>0;break;case"v":i=i.valueOf(),i=s.precision?i.substring(0,s.precision):i;break;case"x":i=(parseInt(i,10)>>>0).toString(16);break;case"X":i=(parseInt(i,10)>>>0).toString(16).toUpperCase()}t.json.test(s.type)?g+=i:(!t.number.test(s.type)||f&&!s.sign?h="":(h=f?"+":"-",i=i.toString().replace(t.sign,"")),c=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",u=s.width-(h+i).length,l=s.width&&u>0?c.repeat(u):"",g+=s.align?h+i+l:"0"===c?h+l+i:l+h+i)}return g}var a=Object.create(null);function o(e){if(a[e])return a[e];for(var r,n=e,i=[],o=0;n;){if(null!==(r=t.text.exec(n)))i.push(r[0]);else if(null!==(r=t.modulo.exec(n)))i.push("%");else{if(null===(r=t.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(r[2]){o|=1;var s=[],l=r[2],c=[];if(null===(c=t.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(s.push(c[1]);""!==(l=l.substring(c[0].length));)if(null!==(c=t.key_access.exec(l)))s.push(c[1]);else{if(null===(c=t.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");s.push(c[1])}r[2]=s}else o|=2;if(3===o)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");i.push({placeholder:r[0],param_no:r[1],keys:r[2],sign:r[3],pad_char:r[4],align:r[5],width:r[6],precision:r[7],type:r[8]})}n=n.substring(r[0].length)}return a[e]=i}"undefined"!=typeof r&&(r.sprintf=e,r.vsprintf=n),"undefined"!=typeof window&&(window.sprintf=e,window.vsprintf=n)}()},{}],568:[function(t,e,r){"use strict";var n=t("parenthesis");e.exports=function(t,e,r){if(null==t)throw Error("First argument should be a string");if(null==e)throw Error("Separator should be a string or a RegExp");r?("string"==typeof r||Array.isArray(r))&&(r={ignore:r}):r={},null==r.escape&&(r.escape=!0),null==r.ignore?r.ignore=["[]","()","{}","<>",'""',"''","``","\u201c\u201d","\xab\xbb"]:("string"==typeof r.ignore&&(r.ignore=[r.ignore]),r.ignore=r.ignore.map((function(t){return 1===t.length&&(t+=t),t})));var i=n.parse(t,{flat:!0,brackets:r.ignore}),a=i[0].split(e);if(r.escape){for(var o=[],s=0;s0;){e=c[c.length-1];var p=t[e];if(a[e]=0&&s[e].push(o[g])}a[e]=d}else{if(n[e]===r[e]){var m=[],v=[],y=0;for(d=l.length-1;d>=0;--d){var x=l[d];if(i[x]=!1,m.push(x),v.push(s[x]),y+=s[x].length,o[x]=f.length,x===e){l.length=d;break}}f.push(m);var b=new Array(y);for(d=0;d c)|0 },"),"generic"===e&&a.push("getters:[0],");for(var s=[],l=[],c=0;c>>7){");for(c=0;c<1<<(1<128&&c%128==0){f.length>0&&h.push("}}");var p="vExtra"+f.length;a.push("case ",c>>>7,":",p,"(m&0x7f,",l.join(),");break;"),h=["function ",p,"(m,",l.join(),"){switch(m){"],f.push(h)}h.push("case ",127&c,":");for(var d=new Array(r),g=new Array(r),m=new Array(r),v=new Array(r),y=0,x=0;xx)&&!(c&1<<_)!=!(c&1<0&&(M="+"+m[b]+"*c");var A=d[b].length/y*.5,S=.5+v[b]/y*.5;k.push("d"+b+"-"+S+"-"+A+"*("+d[b].join("+")+M+")/("+g[b].join("+")+")")}h.push("a.push([",k.join(),"]);","break;")}a.push("}},"),f.length>0&&h.push("}}");var E=[];for(c=0;c<1<1&&(i=1),i<-1&&(i=-1),(t*n-e*r<0?-1:1)*Math.acos(i)};r.default=function(t){var e=t.px,r=t.py,l=t.cx,c=t.cy,u=t.rx,f=t.ry,h=t.xAxisRotation,p=void 0===h?0:h,d=t.largeArcFlag,g=void 0===d?0:d,m=t.sweepFlag,v=void 0===m?0:m,y=[];if(0===u||0===f)return[];var x=Math.sin(p*i/360),b=Math.cos(p*i/360),_=b*(e-l)/2+x*(r-c)/2,w=-x*(e-l)/2+b*(r-c)/2;if(0===_&&0===w)return[];u=Math.abs(u),f=Math.abs(f);var T=Math.pow(_,2)/Math.pow(u,2)+Math.pow(w,2)/Math.pow(f,2);T>1&&(u*=Math.sqrt(T),f*=Math.sqrt(T));var k=function(t,e,r,n,a,o,l,c,u,f,h,p){var d=Math.pow(a,2),g=Math.pow(o,2),m=Math.pow(h,2),v=Math.pow(p,2),y=d*g-d*v-g*m;y<0&&(y=0),y/=d*v+g*m;var x=(y=Math.sqrt(y)*(l===c?-1:1))*a/o*p,b=y*-o/a*h,_=f*x-u*b+(t+r)/2,w=u*x+f*b+(e+n)/2,T=(h-x)/a,k=(p-b)/o,M=(-h-x)/a,A=(-p-b)/o,S=s(1,0,T,k),E=s(T,k,M,A);return 0===c&&E>0&&(E-=i),1===c&&E<0&&(E+=i),[_,w,S,E]}(e,r,l,c,u,f,g,v,x,b,_,w),M=n(k,4),A=M[0],S=M[1],E=M[2],C=M[3],L=Math.abs(C)/(i/4);Math.abs(1-L)<1e-7&&(L=1);var I=Math.max(Math.ceil(L),1);C/=I;for(var P=0;Pe[2]&&(e[2]=c[u+0]),c[u+1]>e[3]&&(e[3]=c[u+1]);return e}},{"abs-svg-path":65,assert:73,"is-svg-path":471,"normalize-svg-path":573,"parse-svg-path":505}],573:[function(t,e,r){"use strict";e.exports=function(t){for(var e,r=[],o=0,s=0,l=0,c=0,u=null,f=null,h=0,p=0,d=0,g=t.length;d4?(o=m[m.length-4],s=m[m.length-3]):(o=h,s=p),r.push(m)}return r};var n=t("svg-arc-to-cubic-bezier");function i(t,e,r,n){return["C",t,e,r,n,r,n]}function a(t,e,r,n,i,a){return["C",t/3+2/3*r,e/3+2/3*n,i/3+2/3*r,a/3+2/3*n,i,a]}},{"svg-arc-to-cubic-bezier":571}],574:[function(t,e,r){"use strict";var n,i=t("svg-path-bounds"),a=t("parse-svg-path"),o=t("draw-svg-path"),s=t("is-svg-path"),l=t("bitmap-sdf"),c=document.createElement("canvas"),u=c.getContext("2d");e.exports=function(t,e){if(!s(t))throw Error("Argument should be valid svg path string");e||(e={});var r,f;e.shape?(r=e.shape[0],f=e.shape[1]):(r=c.width=e.w||e.width||200,f=c.height=e.h||e.height||200);var h=Math.min(r,f),p=e.stroke||0,d=e.viewbox||e.viewBox||i(t),g=[r/(d[2]-d[0]),f/(d[3]-d[1])],m=Math.min(g[0]||0,g[1]||0)/2;u.fillStyle="black",u.fillRect(0,0,r,f),u.fillStyle="white",p&&("number"!=typeof p&&(p=1),u.strokeStyle=p>0?"white":"black",u.lineWidth=Math.abs(p));if(u.translate(.5*r,.5*f),u.scale(m,m),function(){if(null!=n)return n;var t=document.createElement("canvas").getContext("2d");if(t.canvas.width=t.canvas.height=1,!window.Path2D)return n=!1;var e=new Path2D("M0,0h1v1h-1v-1Z");t.fillStyle="black",t.fill(e);var r=t.getImageData(0,0,1,1);return n=r&&r.data&&255===r.data[3]}()){var v=new Path2D(t);u.fill(v),p&&u.stroke(v)}else{var y=a(t);o(u,y),u.fill(),p&&u.stroke()}return u.setTransform(1,0,0,1,0,0),l(u,{cutoff:null!=e.cutoff?e.cutoff:.5,radius:null!=e.radius?e.radius:.5*h})}},{"bitmap-sdf":98,"draw-svg-path":174,"is-svg-path":471,"parse-svg-path":505,"svg-path-bounds":572}],575:[function(t,e,r){(function(r){(function(){"use strict";e.exports=function t(e,r,i){i=i||{};var o=a[e];o||(o=a[e]={" ":{data:new Float32Array(0),shape:.2}});var s=o[r];if(!s)if(r.length<=1||!/\d/.test(r))s=o[r]=function(t){for(var e=t.cells,r=t.positions,n=new Float32Array(6*e.length),i=0,a=0,o=0;o0&&(f+=.02);var p=new Float32Array(u),d=0,g=-.5*f;for(h=0;h1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}if(t=L(t,360),e=L(e,100),r=L(r,100),0===e)n=i=a=r;else{var s=r<.5?r*(1+e):r+e-r*e,l=2*r-s;n=o(l,s,t+1/3),i=o(l,s,t),a=o(l,s,t-1/3)}return{r:255*n,g:255*i,b:255*a}}(e.h,l,u),f=!0,h="hsl"),e.hasOwnProperty("a")&&(a=e.a));var p,d,g;return a=C(a),{ok:f,format:e.format||h,r:o(255,s(i.r,0)),g:o(255,s(i.g,0)),b:o(255,s(i.b,0)),a:a}}(e);this._originalInput=e,this._r=u.r,this._g=u.g,this._b=u.b,this._a=u.a,this._roundA=a(100*this._a)/100,this._format=l.format||u.format,this._gradientType=l.gradientType,this._r<1&&(this._r=a(this._r)),this._g<1&&(this._g=a(this._g)),this._b<1&&(this._b=a(this._b)),this._ok=u.ok,this._tc_id=i++}function u(t,e,r){t=L(t,255),e=L(e,255),r=L(r,255);var n,i,a=s(t,e,r),l=o(t,e,r),c=(a+l)/2;if(a==l)n=i=0;else{var u=a-l;switch(i=c>.5?u/(2-a-l):u/(a+l),a){case t:n=(e-r)/u+(e>1)+720)%360;--e;)n.h=(n.h+i)%360,a.push(c(n));return a}function A(t,e){e=e||6;for(var r=c(t).toHsv(),n=r.h,i=r.s,a=r.v,o=[],s=1/e;e--;)o.push(c({h:n,s:i,v:a})),a=(a+s)%1;return o}c.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},getLuminance:function(){var e,r,n,i=this.toRgb();return e=i.r/255,r=i.g/255,n=i.b/255,.2126*(e<=.03928?e/12.92:t.pow((e+.055)/1.055,2.4))+.7152*(r<=.03928?r/12.92:t.pow((r+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:t.pow((n+.055)/1.055,2.4))},setAlpha:function(t){return this._a=C(t),this._roundA=a(100*this._a)/100,this},toHsv:function(){var t=f(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=f(this._r,this._g,this._b),e=a(360*t.h),r=a(100*t.s),n=a(100*t.v);return 1==this._a?"hsv("+e+", "+r+"%, "+n+"%)":"hsva("+e+", "+r+"%, "+n+"%, "+this._roundA+")"},toHsl:function(){var t=u(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=u(this._r,this._g,this._b),e=a(360*t.h),r=a(100*t.s),n=a(100*t.l);return 1==this._a?"hsl("+e+", "+r+"%, "+n+"%)":"hsla("+e+", "+r+"%, "+n+"%, "+this._roundA+")"},toHex:function(t){return h(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(t){return function(t,e,r,n,i){var o=[z(a(t).toString(16)),z(a(e).toString(16)),z(a(r).toString(16)),z(D(n))];if(i&&o[0].charAt(0)==o[0].charAt(1)&&o[1].charAt(0)==o[1].charAt(1)&&o[2].charAt(0)==o[2].charAt(1)&&o[3].charAt(0)==o[3].charAt(1))return o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0)+o[3].charAt(0);return o.join("")}(this._r,this._g,this._b,this._a,t)},toHex8String:function(t){return"#"+this.toHex8(t)},toRgb:function(){return{r:a(this._r),g:a(this._g),b:a(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+a(this._r)+", "+a(this._g)+", "+a(this._b)+")":"rgba("+a(this._r)+", "+a(this._g)+", "+a(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:a(100*L(this._r,255))+"%",g:a(100*L(this._g,255))+"%",b:a(100*L(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+a(100*L(this._r,255))+"%, "+a(100*L(this._g,255))+"%, "+a(100*L(this._b,255))+"%)":"rgba("+a(100*L(this._r,255))+"%, "+a(100*L(this._g,255))+"%, "+a(100*L(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(E[h(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var e="#"+p(this._r,this._g,this._b,this._a),r=e,n=this._gradientType?"GradientType = 1, ":"";if(t){var i=c(t);r="#"+p(i._r,i._g,i._b,i._a)}return"progid:DXImageTransform.Microsoft.gradient("+n+"startColorstr="+e+",endColorstr="+r+")"},toString:function(t){var e=!!t;t=t||this._format;var r=!1,n=this._a<1&&this._a>=0;return e||!n||"hex"!==t&&"hex6"!==t&&"hex3"!==t&&"hex4"!==t&&"hex8"!==t&&"name"!==t?("rgb"===t&&(r=this.toRgbString()),"prgb"===t&&(r=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(r=this.toHexString()),"hex3"===t&&(r=this.toHexString(!0)),"hex4"===t&&(r=this.toHex8String(!0)),"hex8"===t&&(r=this.toHex8String()),"name"===t&&(r=this.toName()),"hsl"===t&&(r=this.toHslString()),"hsv"===t&&(r=this.toHsvString()),r||this.toHexString()):"name"===t&&0===this._a?this.toName():this.toRgbString()},clone:function(){return c(this.toString())},_applyModification:function(t,e){var r=t.apply(null,[this].concat([].slice.call(e)));return this._r=r._r,this._g=r._g,this._b=r._b,this.setAlpha(r._a),this},lighten:function(){return this._applyModification(v,arguments)},brighten:function(){return this._applyModification(y,arguments)},darken:function(){return this._applyModification(x,arguments)},desaturate:function(){return this._applyModification(d,arguments)},saturate:function(){return this._applyModification(g,arguments)},greyscale:function(){return this._applyModification(m,arguments)},spin:function(){return this._applyModification(b,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(M,arguments)},complement:function(){return this._applyCombination(_,arguments)},monochromatic:function(){return this._applyCombination(A,arguments)},splitcomplement:function(){return this._applyCombination(k,arguments)},triad:function(){return this._applyCombination(w,arguments)},tetrad:function(){return this._applyCombination(T,arguments)}},c.fromRatio=function(t,e){if("object"==typeof t){var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]="a"===n?t[n]:O(t[n]));t=r}return c(t,e)},c.equals=function(t,e){return!(!t||!e)&&c(t).toRgbString()==c(e).toRgbString()},c.random=function(){return c.fromRatio({r:l(),g:l(),b:l()})},c.mix=function(t,e,r){r=0===r?0:r||50;var n=c(t).toRgb(),i=c(e).toRgb(),a=r/100;return c({r:(i.r-n.r)*a+n.r,g:(i.g-n.g)*a+n.g,b:(i.b-n.b)*a+n.b,a:(i.a-n.a)*a+n.a})},c.readability=function(e,r){var n=c(e),i=c(r);return(t.max(n.getLuminance(),i.getLuminance())+.05)/(t.min(n.getLuminance(),i.getLuminance())+.05)},c.isReadable=function(t,e,r){var n,i,a=c.readability(t,e);switch(i=!1,(n=function(t){var e,r;e=((t=t||{level:"AA",size:"small"}).level||"AA").toUpperCase(),r=(t.size||"small").toLowerCase(),"AA"!==e&&"AAA"!==e&&(e="AA");"small"!==r&&"large"!==r&&(r="small");return{level:e,size:r}}(r)).level+n.size){case"AAsmall":case"AAAlarge":i=a>=4.5;break;case"AAlarge":i=a>=3;break;case"AAAsmall":i=a>=7}return i},c.mostReadable=function(t,e,r){var n,i,a,o,s=null,l=0;i=(r=r||{}).includeFallbackColors,a=r.level,o=r.size;for(var u=0;ul&&(l=n,s=c(e[u]));return c.isReadable(t,s,{level:a,size:o})||!i?s:(r.includeFallbackColors=!1,c.mostReadable(t,["#fff","#000"],r))};var S=c.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},E=c.hexNames=function(t){var e={};for(var r in t)t.hasOwnProperty(r)&&(e[t[r]]=r);return e}(S);function C(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function L(e,r){(function(t){return"string"==typeof t&&-1!=t.indexOf(".")&&1===parseFloat(t)})(e)&&(e="100%");var n=function(t){return"string"==typeof t&&-1!=t.indexOf("%")}(e);return e=o(r,s(0,parseFloat(e))),n&&(e=parseInt(e*r,10)/100),t.abs(e-r)<1e-6?1:e%r/parseFloat(r)}function I(t){return o(1,s(0,t))}function P(t){return parseInt(t,16)}function z(t){return 1==t.length?"0"+t:""+t}function O(t){return t<=1&&(t=100*t+"%"),t}function D(e){return t.round(255*parseFloat(e)).toString(16)}function R(t){return P(t)/255}var F,B,N,j=(B="[\\s|\\(]+("+(F="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+F+")[,|\\s]+("+F+")\\s*\\)?",N="[\\s|\\(]+("+F+")[,|\\s]+("+F+")[,|\\s]+("+F+")[,|\\s]+("+F+")\\s*\\)?",{CSS_UNIT:new RegExp(F),rgb:new RegExp("rgb"+B),rgba:new RegExp("rgba"+N),hsl:new RegExp("hsl"+B),hsla:new RegExp("hsla"+N),hsv:new RegExp("hsv"+B),hsva:new RegExp("hsva"+N),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function U(t){return!!j.CSS_UNIT.exec(t)}"undefined"!=typeof e&&e.exports?e.exports=c:window.tinycolor=c}(Math)},{}],577:[function(t,e,r){"use strict";e.exports=i,e.exports.float32=e.exports.float=i,e.exports.fract32=e.exports.fract=function(t){if(t.length){for(var e=i(t),r=0,n=e.length;ro&&(o=t[0]),t[1]s&&(s=t[1])}function c(t){switch(t.type){case"GeometryCollection":t.geometries.forEach(c);break;case"Point":l(t.coordinates);break;case"MultiPoint":t.coordinates.forEach(l)}}for(e in t.arcs.forEach((function(t){for(var e,r=-1,l=t.length;++ro&&(o=e[0]),e[1]s&&(s=e[1])})),t.objects)c(t.objects[e]);return[i,a,o,s]}function i(t,e){var r=e.id,n=e.bbox,i=null==e.properties?{}:e.properties,o=a(t,e);return null==r&&null==n?{type:"Feature",properties:i,geometry:o}:null==n?{type:"Feature",id:r,properties:i,geometry:o}:{type:"Feature",id:r,bbox:n,properties:i,geometry:o}}function a(t,e){var n=r(t.transform),i=t.arcs;function a(t,e){e.length&&e.pop();for(var r=i[t<0?~t:t],a=0,o=r.length;a1)n=l(t,e,r);else for(i=0,n=new Array(a=t.arcs.length);i1)for(var a,s,c=1,u=l(i[0]);cu&&(s=i[0],i[0]=i[c],i[c]=s,u=a);return i})).filter((function(t){return t.length>0}))}}function u(t,e){for(var r=0,n=t.length;r>>1;t[i]=2))throw new Error("n must be \u22652");var r,i=(l=t.bbox||n(t))[0],a=l[1],o=l[2],s=l[3];e={scale:[o-i?(o-i)/(r-1):1,s-a?(s-a)/(r-1):1],translate:[i,a]}}var l,c,u=f(e),h=t.objects,p={};function d(t){return u(t)}function g(t){var e;switch(t.type){case"GeometryCollection":e={type:"GeometryCollection",geometries:t.geometries.map(g)};break;case"Point":e={type:"Point",coordinates:d(t.coordinates)};break;case"MultiPoint":e={type:"MultiPoint",coordinates:t.coordinates.map(d)};break;default:return t}return null!=t.id&&(e.id=t.id),null!=t.bbox&&(e.bbox=t.bbox),null!=t.properties&&(e.properties=t.properties),e}for(c in h)p[c]=g(h[c]);return{type:"Topology",bbox:l,transform:e,objects:p,arcs:t.arcs.map((function(t){var e,r=0,n=1,i=t.length,a=new Array(i);for(a[0]=u(t[0],0);++rMath.max(r,n)?i[2]=1:r>Math.max(e,n)?i[0]=1:i[1]=1;for(var a=0,o=0,l=0;l<3;++l)a+=t[l]*t[l],o+=i[l]*t[l];for(l=0;l<3;++l)i[l]-=o/a*t[l];return s(i,i),i}function h(t,e,r,i,a,o,s,l){this.center=n(r),this.up=n(i),this.right=n(a),this.radius=n([o]),this.angle=n([s,l]),this.angle.bounds=[[-1/0,-Math.PI/2],[1/0,Math.PI/2]],this.setDistanceLimits(t,e),this.computedCenter=this.center.curve(0),this.computedUp=this.up.curve(0),this.computedRight=this.right.curve(0),this.computedRadius=this.radius.curve(0),this.computedAngle=this.angle.curve(0),this.computedToward=[0,0,0],this.computedEye=[0,0,0],this.computedMatrix=new Array(16);for(var c=0;c<16;++c)this.computedMatrix[c]=.5;this.recalcMatrix(0)}var p=h.prototype;p.setDistanceLimits=function(t,e){t=t>0?Math.log(t):-1/0,e=e>0?Math.log(e):1/0,e=Math.max(e,t),this.radius.bounds[0][0]=t,this.radius.bounds[1][0]=e},p.getDistanceLimits=function(t){var e=this.radius.bounds[0];return t?(t[0]=Math.exp(e[0][0]),t[1]=Math.exp(e[1][0]),t):[Math.exp(e[0][0]),Math.exp(e[1][0])]},p.recalcMatrix=function(t){this.center.curve(t),this.up.curve(t),this.right.curve(t),this.radius.curve(t),this.angle.curve(t);for(var e=this.computedUp,r=this.computedRight,n=0,i=0,a=0;a<3;++a)i+=e[a]*r[a],n+=e[a]*e[a];var l=Math.sqrt(n),u=0;for(a=0;a<3;++a)r[a]-=e[a]*i/n,u+=r[a]*r[a],e[a]/=l;var f=Math.sqrt(u);for(a=0;a<3;++a)r[a]/=f;var h=this.computedToward;o(h,e,r),s(h,h);var p=Math.exp(this.computedRadius[0]),d=this.computedAngle[0],g=this.computedAngle[1],m=Math.cos(d),v=Math.sin(d),y=Math.cos(g),x=Math.sin(g),b=this.computedCenter,_=m*y,w=v*y,T=x,k=-m*x,M=-v*x,A=y,S=this.computedEye,E=this.computedMatrix;for(a=0;a<3;++a){var C=_*r[a]+w*h[a]+T*e[a];E[4*a+1]=k*r[a]+M*h[a]+A*e[a],E[4*a+2]=C,E[4*a+3]=0}var L=E[1],I=E[5],P=E[9],z=E[2],O=E[6],D=E[10],R=I*D-P*O,F=P*z-L*D,B=L*O-I*z,N=c(R,F,B);R/=N,F/=N,B/=N,E[0]=R,E[4]=F,E[8]=B;for(a=0;a<3;++a)S[a]=b[a]+E[2+4*a]*p;for(a=0;a<3;++a){u=0;for(var j=0;j<3;++j)u+=E[a+4*j]*S[j];E[12+a]=-u}E[15]=1},p.getMatrix=function(t,e){this.recalcMatrix(t);var r=this.computedMatrix;if(e){for(var n=0;n<16;++n)e[n]=r[n];return e}return r};var d=[0,0,0];p.rotate=function(t,e,r,n){if(this.angle.move(t,e,r),n){this.recalcMatrix(t);var i=this.computedMatrix;d[0]=i[2],d[1]=i[6],d[2]=i[10];for(var o=this.computedUp,s=this.computedRight,l=this.computedToward,c=0;c<3;++c)i[4*c]=o[c],i[4*c+1]=s[c],i[4*c+2]=l[c];a(i,i,n,d);for(c=0;c<3;++c)o[c]=i[4*c],s[c]=i[4*c+1];this.up.set(t,o[0],o[1],o[2]),this.right.set(t,s[0],s[1],s[2])}},p.pan=function(t,e,r,n){e=e||0,r=r||0,n=n||0,this.recalcMatrix(t);var i=this.computedMatrix,a=(Math.exp(this.computedRadius[0]),i[1]),o=i[5],s=i[9],l=c(a,o,s);a/=l,o/=l,s/=l;var u=i[0],f=i[4],h=i[8],p=u*a+f*o+h*s,d=c(u-=a*p,f-=o*p,h-=s*p),g=(u/=d)*e+a*r,m=(f/=d)*e+o*r,v=(h/=d)*e+s*r;this.center.move(t,g,m,v);var y=Math.exp(this.computedRadius[0]);y=Math.max(1e-4,y+n),this.radius.set(t,Math.log(y))},p.translate=function(t,e,r,n){this.center.move(t,e||0,r||0,n||0)},p.setMatrix=function(t,e,r,n){var a=1;"number"==typeof r&&(a=0|r),(a<0||a>3)&&(a=1);var o=(a+2)%3;e||(this.recalcMatrix(t),e=this.computedMatrix);var s=e[a],l=e[a+4],f=e[a+8];if(n){var h=Math.abs(s),p=Math.abs(l),d=Math.abs(f),g=Math.max(h,p,d);h===g?(s=s<0?-1:1,l=f=0):d===g?(f=f<0?-1:1,s=l=0):(l=l<0?-1:1,s=f=0)}else{var m=c(s,l,f);s/=m,l/=m,f/=m}var v,y,x=e[o],b=e[o+4],_=e[o+8],w=x*s+b*l+_*f,T=c(x-=s*w,b-=l*w,_-=f*w),k=l*(_/=T)-f*(b/=T),M=f*(x/=T)-s*_,A=s*b-l*x,S=c(k,M,A);if(k/=S,M/=S,A/=S,this.center.jump(t,H,G,Y),this.radius.idle(t),this.up.jump(t,s,l,f),this.right.jump(t,x,b,_),2===a){var E=e[1],C=e[5],L=e[9],I=E*x+C*b+L*_,P=E*k+C*M+L*A;v=R<0?-Math.PI/2:Math.PI/2,y=Math.atan2(P,I)}else{var z=e[2],O=e[6],D=e[10],R=z*s+O*l+D*f,F=z*x+O*b+D*_,B=z*k+O*M+D*A;v=Math.asin(u(R)),y=Math.atan2(B,F)}this.angle.jump(t,y,v),this.recalcMatrix(t);var N=e[2],j=e[6],U=e[10],V=this.computedMatrix;i(V,e);var q=V[15],H=V[12]/q,G=V[13]/q,Y=V[14]/q,W=Math.exp(this.computedRadius[0]);this.center.jump(t,H-N*W,G-j*W,Y-U*W)},p.lastT=function(){return Math.max(this.center.lastT(),this.up.lastT(),this.right.lastT(),this.radius.lastT(),this.angle.lastT())},p.idle=function(t){this.center.idle(t),this.up.idle(t),this.right.idle(t),this.radius.idle(t),this.angle.idle(t)},p.flush=function(t){this.center.flush(t),this.up.flush(t),this.right.flush(t),this.radius.flush(t),this.angle.flush(t)},p.setDistance=function(t,e){e>0&&this.radius.set(t,Math.log(e))},p.lookAt=function(t,e,r,n){this.recalcMatrix(t),e=e||this.computedEye,r=r||this.computedCenter;var i=(n=n||this.computedUp)[0],a=n[1],o=n[2],s=c(i,a,o);if(!(s<1e-6)){i/=s,a/=s,o/=s;var l=e[0]-r[0],f=e[1]-r[1],h=e[2]-r[2],p=c(l,f,h);if(!(p<1e-6)){l/=p,f/=p,h/=p;var d=this.computedRight,g=d[0],m=d[1],v=d[2],y=i*g+a*m+o*v,x=c(g-=y*i,m-=y*a,v-=y*o);if(!(x<.01&&(x=c(g=a*h-o*f,m=o*l-i*h,v=i*f-a*l))<1e-6)){g/=x,m/=x,v/=x,this.up.set(t,i,a,o),this.right.set(t,g,m,v),this.center.set(t,r[0],r[1],r[2]),this.radius.set(t,Math.log(p));var b=a*v-o*m,_=o*g-i*v,w=i*m-a*g,T=c(b,_,w),k=i*l+a*f+o*h,M=g*l+m*f+v*h,A=(b/=T)*l+(_/=T)*f+(w/=T)*h,S=Math.asin(u(k)),E=Math.atan2(A,M),C=this.angle._state,L=C[C.length-1],I=C[C.length-2];L%=2*Math.PI;var P=Math.abs(L+2*Math.PI-E),z=Math.abs(L-E),O=Math.abs(L-2*Math.PI-E);P":(e.length>100&&(e=e.slice(0,99)+"\u2026"),e=e.replace(i,(function(t){switch(t){case"\n":return"\\n";case"\r":return"\\r";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";default:throw new Error("Unexpected character")}})))}},{"./safe-to-string":586}],588:[function(t,e,r){"use strict";var n=t("../value/is"),i={object:!0,function:!0,undefined:!0};e.exports=function(t){return!!n(t)&&hasOwnProperty.call(i,typeof t)}},{"../value/is":594}],589:[function(t,e,r){"use strict";var n=t("../lib/resolve-exception"),i=t("./is");e.exports=function(t){return i(t)?t:n(t,"%v is not a plain function",arguments[1])}},{"../lib/resolve-exception":585,"./is":590}],590:[function(t,e,r){"use strict";var n=t("../function/is"),i=/^\s*class[\s{/}]/,a=Function.prototype.toString;e.exports=function(t){return!!n(t)&&!i.test(a.call(t))}},{"../function/is":584}],591:[function(t,e,r){"use strict";var n=t("../object/is");e.exports=function(t){if(!n(t))return!1;try{return!!t.constructor&&t.constructor.prototype===t}catch(t){return!1}}},{"../object/is":588}],592:[function(t,e,r){"use strict";var n=t("../value/is"),i=t("../object/is"),a=Object.prototype.toString;e.exports=function(t){if(!n(t))return null;if(i(t)){var e=t.toString;if("function"!=typeof e)return null;if(e===a)return null}try{return""+t}catch(t){return null}}},{"../object/is":588,"../value/is":594}],593:[function(t,e,r){"use strict";var n=t("../lib/resolve-exception"),i=t("./is");e.exports=function(t){return i(t)?t:n(t,"Cannot use %v",arguments[1])}},{"../lib/resolve-exception":585,"./is":594}],594:[function(t,e,r){"use strict";e.exports=function(t){return null!=t}},{}],595:[function(t,e,r){(function(e){(function(){"use strict";var n=t("bit-twiddle"),i=t("dup"),a=t("buffer").Buffer;e.__TYPEDARRAY_POOL||(e.__TYPEDARRAY_POOL={UINT8:i([32,0]),UINT16:i([32,0]),UINT32:i([32,0]),BIGUINT64:i([32,0]),INT8:i([32,0]),INT16:i([32,0]),INT32:i([32,0]),BIGINT64:i([32,0]),FLOAT:i([32,0]),DOUBLE:i([32,0]),DATA:i([32,0]),UINT8C:i([32,0]),BUFFER:i([32,0])});var o="undefined"!=typeof Uint8ClampedArray,s="undefined"!=typeof BigUint64Array,l="undefined"!=typeof BigInt64Array,c=e.__TYPEDARRAY_POOL;c.UINT8C||(c.UINT8C=i([32,0])),c.BIGUINT64||(c.BIGUINT64=i([32,0])),c.BIGINT64||(c.BIGINT64=i([32,0])),c.BUFFER||(c.BUFFER=i([32,0]));var u=c.DATA,f=c.BUFFER;function h(t){if(t){var e=t.length||t.byteLength,r=n.log2(e);u[r].push(t)}}function p(t){t=n.nextPow2(t);var e=n.log2(t),r=u[e];return r.length>0?r.pop():new ArrayBuffer(t)}function d(t){return new Uint8Array(p(t),0,t)}function g(t){return new Uint16Array(p(2*t),0,t)}function m(t){return new Uint32Array(p(4*t),0,t)}function v(t){return new Int8Array(p(t),0,t)}function y(t){return new Int16Array(p(2*t),0,t)}function x(t){return new Int32Array(p(4*t),0,t)}function b(t){return new Float32Array(p(4*t),0,t)}function _(t){return new Float64Array(p(8*t),0,t)}function w(t){return o?new Uint8ClampedArray(p(t),0,t):d(t)}function T(t){return s?new BigUint64Array(p(8*t),0,t):null}function k(t){return l?new BigInt64Array(p(8*t),0,t):null}function M(t){return new DataView(p(t),0,t)}function A(t){t=n.nextPow2(t);var e=n.log2(t),r=f[e];return r.length>0?r.pop():new a(t)}r.free=function(t){if(a.isBuffer(t))f[n.log2(t.length)].push(t);else{if("[object ArrayBuffer]"!==Object.prototype.toString.call(t)&&(t=t.buffer),!t)return;var e=t.length||t.byteLength,r=0|n.log2(e);u[r].push(t)}},r.freeUint8=r.freeUint16=r.freeUint32=r.freeBigUint64=r.freeInt8=r.freeInt16=r.freeInt32=r.freeBigInt64=r.freeFloat32=r.freeFloat=r.freeFloat64=r.freeDouble=r.freeUint8Clamped=r.freeDataView=function(t){h(t.buffer)},r.freeArrayBuffer=h,r.freeBuffer=function(t){f[n.log2(t.length)].push(t)},r.malloc=function(t,e){if(void 0===e||"arraybuffer"===e)return p(t);switch(e){case"uint8":return d(t);case"uint16":return g(t);case"uint32":return m(t);case"int8":return v(t);case"int16":return y(t);case"int32":return x(t);case"float":case"float32":return b(t);case"double":case"float64":return _(t);case"uint8_clamped":return w(t);case"bigint64":return k(t);case"biguint64":return T(t);case"buffer":return A(t);case"data":case"dataview":return M(t);default:return null}return null},r.mallocArrayBuffer=p,r.mallocUint8=d,r.mallocUint16=g,r.mallocUint32=m,r.mallocInt8=v,r.mallocInt16=y,r.mallocInt32=x,r.mallocFloat32=r.mallocFloat=b,r.mallocFloat64=r.mallocDouble=_,r.mallocUint8Clamped=w,r.mallocBigUint64=T,r.mallocBigInt64=k,r.mallocDataView=M,r.mallocBuffer=A,r.clearCache=function(){for(var t=0;t<32;++t)c.UINT8[t].length=0,c.UINT16[t].length=0,c.UINT32[t].length=0,c.INT8[t].length=0,c.INT16[t].length=0,c.INT32[t].length=0,c.FLOAT[t].length=0,c.DOUBLE[t].length=0,c.BIGUINT64[t].length=0,c.BIGINT64[t].length=0,c.UINT8C[t].length=0,u[t].length=0,f[t].length=0}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"bit-twiddle":97,buffer:111,dup:176}],596:[function(t,e,r){"use strict";function n(t){this.roots=new Array(t),this.ranks=new Array(t);for(var e=0;e0&&(a=n.size),n.lineSpacing&&n.lineSpacing>0&&(o=n.lineSpacing),n.styletags&&n.styletags.breaklines&&(s.breaklines=!!n.styletags.breaklines),n.styletags&&n.styletags.bolds&&(s.bolds=!!n.styletags.bolds),n.styletags&&n.styletags.italics&&(s.italics=!!n.styletags.italics),n.styletags&&n.styletags.subscripts&&(s.subscripts=!!n.styletags.subscripts),n.styletags&&n.styletags.superscripts&&(s.superscripts=!!n.styletags.superscripts));return r.font=[n.fontStyle,n.fontVariant,n.fontWeight,a+"px",n.font].filter((function(t){return t})).join(" "),r.textAlign="start",r.textBaseline="alphabetic",r.direction="ltr",h(function(t,e,r,n,a,o){r=r.replace(/\n/g,""),r=!0===o.breaklines?r.replace(/\/g,"\n"):r.replace(/\/g," ");var s="",l=[];for(p=0;p-1?parseInt(t[1+i]):0,l=a>-1?parseInt(r[1+a]):0;s!==l&&(n=n.replace(S(),"?px "),m*=Math.pow(.75,l-s),n=n.replace("?px ",S())),g+=.25*x*(l-s)}if(!0===o.superscripts){var c=t.indexOf("+"),u=r.indexOf("+"),f=c>-1?parseInt(t[1+c]):0,h=u>-1?parseInt(r[1+u]):0;f!==h&&(n=n.replace(S(),"?px "),m*=Math.pow(.75,h-f),n=n.replace("?px ",S())),g-=.25*x*(h-f)}if(!0===o.bolds){var p=t.indexOf("b|")>-1,d=r.indexOf("b|")>-1;!p&&d&&(n=v?n.replace("italic ","italic bold "):"bold "+n),p&&!d&&(n=n.replace("bold ",""))}if(!0===o.italics){var v=t.indexOf("i|")>-1,y=r.indexOf("i|")>-1;!v&&y&&(n="italic "+n),v&&!y&&(n=n.replace("italic ",""))}e.font=n}for(h=0;h",a="",o=i.length,s=a.length,l="+"===e[0]||"-"===e[0],c=0,u=-s;c>-1&&-1!==(c=r.indexOf(i,c))&&-1!==(u=r.indexOf(a,c+o))&&!(u<=c);){for(var f=c;f=u)n[f]=null,r=r.substr(0,f)+" "+r.substr(f+1);else if(null!==n[f]){var h=n[f].indexOf(e[0]);-1===h?n[f]+=e:l&&(n[f]=n[f].substr(0,h+1)+(1+parseInt(n[f][h+1]))+n[f].substr(h+2))}var p=c+o,d=r.substr(p,u-p).indexOf(i);c=-1!==d?d:u+s}return n}function u(t,e){var r=n(t,128);return e?a(r.cells,r.positions,.25):{edges:r.cells,positions:r.positions}}function f(t,e,r,n){var i=u(t,n),a=function(t,e,r){for(var n=e.textAlign||"start",i=e.textBaseline||"alphabetic",a=[1<<30,1<<30],o=[0,0],s=t.length,l=0;l=0?e[a]:i}))},has___:{value:y((function(e){var n=v(e);return n?r in n:t.indexOf(e)>=0}))},set___:{value:y((function(n,i){var a,o=v(n);return o?o[r]=i:(a=t.indexOf(n))>=0?e[a]=i:(a=t.length,e[a]=i,t[a]=n),this}))},delete___:{value:y((function(n){var i,a,o=v(n);return o?r in o&&delete o[r]:!((i=t.indexOf(n))<0)&&(a=t.length-1,t[i]=void 0,e[i]=e[a],t[i]=t[a],t.length=a,e.length=a,!0)}))}})};d.prototype=Object.create(Object.prototype,{get:{value:function(t,e){return this.get___(t,e)},writable:!0,configurable:!0},has:{value:function(t){return this.has___(t)},writable:!0,configurable:!0},set:{value:function(t,e){return this.set___(t,e)},writable:!0,configurable:!0},delete:{value:function(t){return this.delete___(t)},writable:!0,configurable:!0}}),"function"==typeof r?function(){function n(){this instanceof d||x();var e,n=new r,i=void 0,a=!1;return e=t?function(t,e){return n.set(t,e),n.has(t)||(i||(i=new d),i.set(t,e)),this}:function(t,e){if(a)try{n.set(t,e)}catch(r){i||(i=new d),i.set___(t,e)}else n.set(t,e);return this},Object.create(d.prototype,{get___:{value:y((function(t,e){return i?n.has(t)?n.get(t):i.get___(t,e):n.get(t,e)}))},has___:{value:y((function(t){return n.has(t)||!!i&&i.has___(t)}))},set___:{value:y(e)},delete___:{value:y((function(t){var e=!!n.delete(t);return i&&i.delete___(t)||e}))},permitHostObjects___:{value:y((function(t){if(t!==g)throw new Error("bogus call to permitHostObjects___");a=!0}))}})}t&&"undefined"!=typeof Proxy&&(Proxy=void 0),n.prototype=d.prototype,e.exports=n,Object.defineProperty(WeakMap.prototype,"constructor",{value:WeakMap,enumerable:!1,configurable:!0,writable:!0})}():("undefined"!=typeof Proxy&&(Proxy=void 0),e.exports=d)}function g(t){t.permitHostObjects___&&t.permitHostObjects___(g)}function m(t){return!("weakmap:"==t.substr(0,"weakmap:".length)&&"___"===t.substr(t.length-3))}function v(t){if(t!==Object(t))throw new TypeError("Not an object: "+t);var e=t[l];if(e&&e.key===t)return e;if(s(t)){e={key:t};try{return o(t,l,{value:e,writable:!1,enumerable:!1,configurable:!1}),e}catch(t){return}}}function y(t){return t.prototype=null,Object.freeze(t)}function x(){h||"undefined"==typeof console||(h=!0,console.warn("WeakMap should be invoked as new WeakMap(), not WeakMap(). This will be an error in the future."))}}()},{}],603:[function(t,e,r){var n=t("./hidden-store.js");e.exports=function(){var t={};return function(e){if(("object"!=typeof e||null===e)&&"function"!=typeof e)throw new Error("Weakmap-shim: Key must be object");var r=e.valueOf(t);return r&&r.identity===t?r:n(e,t)}}},{"./hidden-store.js":604}],604:[function(t,e,r){e.exports=function(t,e){var r={identity:e},n=t.valueOf;return Object.defineProperty(t,"valueOf",{value:function(t){return t!==e?n.apply(this,arguments):r},writable:!0}),r}},{}],605:[function(t,e,r){var n=t("./create-store.js");e.exports=function(){var t=n();return{get:function(e,r){var n=t(e);return n.hasOwnProperty("value")?n.value:r},set:function(e,r){return t(e).value=r,this},has:function(e){return"value"in t(e)},delete:function(e){return delete t(e).value}}}},{"./create-store.js":603}],606:[function(t,e,r){var n=t("get-canvas-context");e.exports=function(t){return n("webgl",t)}},{"get-canvas-context":249}],607:[function(t,e,r){var n=t("../main"),i=t("object-assign"),a=n.instance();function o(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}o.prototype=new n.baseCalendar,i(o.prototype,{name:"Chinese",jdEpoch:1721425.5,hasYearZero:!1,minMonth:0,firstMonth:0,minDay:1,regionalOptions:{"":{name:"Chinese",epochs:["BEC","EC"],monthNumbers:function(t,e){if("string"==typeof t){var r=t.match(l);return r?r[0]:""}var n=this._validateYear(t),i=t.month(),a=""+this.toChineseMonth(n,i);return e&&a.length<2&&(a="0"+a),this.isIntercalaryMonth(n,i)&&(a+="i"),a},monthNames:function(t){if("string"==typeof t){var e=t.match(c);return e?e[0]:""}var r=this._validateYear(t),n=t.month(),i=["\u4e00\u6708","\u4e8c\u6708","\u4e09\u6708","\u56db\u6708","\u4e94\u6708","\u516d\u6708","\u4e03\u6708","\u516b\u6708","\u4e5d\u6708","\u5341\u6708","\u5341\u4e00\u6708","\u5341\u4e8c\u6708"][this.toChineseMonth(r,n)-1];return this.isIntercalaryMonth(r,n)&&(i="\u95f0"+i),i},monthNamesShort:function(t){if("string"==typeof t){var e=t.match(u);return e?e[0]:""}var r=this._validateYear(t),n=t.month(),i=["\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d","\u4e03","\u516b","\u4e5d","\u5341","\u5341\u4e00","\u5341\u4e8c"][this.toChineseMonth(r,n)-1];return this.isIntercalaryMonth(r,n)&&(i="\u95f0"+i),i},parseMonth:function(t,e){t=this._validateYear(t);var r,n=parseInt(e);if(isNaN(n))"\u95f0"===e[0]&&(r=!0,e=e.substring(1)),"\u6708"===e[e.length-1]&&(e=e.substring(0,e.length-1)),n=1+["\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d","\u4e03","\u516b","\u4e5d","\u5341","\u5341\u4e00","\u5341\u4e8c"].indexOf(e);else{var i=e[e.length-1];r="i"===i||"I"===i}return this.toMonthIndex(t,n,r)},dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:1,isRTL:!1}},_validateYear:function(t,e){if(t.year&&(t=t.year()),"number"!=typeof t||t<1888||t>2111)throw e.replace(/\{0\}/,this.local.name);return t},toMonthIndex:function(t,e,r){var i=this.intercalaryMonth(t);if(r&&e!==i||e<1||e>12)throw n.local.invalidMonth.replace(/\{0\}/,this.local.name);return i?!r&&e<=i?e-1:e:e-1},toChineseMonth:function(t,e){t.year&&(e=(t=t.year()).month());var r=this.intercalaryMonth(t);if(e<0||e>(r?12:11))throw n.local.invalidMonth.replace(/\{0\}/,this.local.name);return r?e>13},isIntercalaryMonth:function(t,e){t.year&&(e=(t=t.year()).month());var r=this.intercalaryMonth(t);return!!r&&r===e},leapYear:function(t){return 0!==this.intercalaryMonth(t)},weekOfYear:function(t,e,r){var i,o=this._validateYear(t,n.local.invalidyear),s=h[o-h[0]],l=s>>9&4095,c=s>>5&15,u=31&s;(i=a.newDate(l,c,u)).add(4-(i.dayOfWeek()||7),"d");var f=this.toJD(t,e,r)-i.toJD();return 1+Math.floor(f/7)},monthsInYear:function(t){return this.leapYear(t)?13:12},daysInMonth:function(t,e){t.year&&(e=t.month(),t=t.year()),t=this._validateYear(t);var r=f[t-f[0]];if(e>(r>>13?12:11))throw n.local.invalidMonth.replace(/\{0\}/,this.local.name);return r&1<<12-e?30:29},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,s,r,n.local.invalidDate);t=this._validateYear(i.year()),e=i.month(),r=i.day();var o=this.isIntercalaryMonth(t,e),s=this.toChineseMonth(t,e),l=function(t,e,r,n,i){var a,o,s;if("object"==typeof t)o=t,a=e||{};else{var l;if(!("number"==typeof t&&t>=1888&&t<=2111))throw new Error("Lunar year outside range 1888-2111");if(!("number"==typeof e&&e>=1&&e<=12))throw new Error("Lunar month outside range 1 - 12");if(!("number"==typeof r&&r>=1&&r<=30))throw new Error("Lunar day outside range 1 - 30");"object"==typeof n?(l=!1,a=n):(l=!!n,a=i||{}),o={year:t,month:e,day:r,isIntercalary:l}}s=o.day-1;var c,u=f[o.year-f[0]],p=u>>13;c=p&&(o.month>p||o.isIntercalary)?o.month:o.month-1;for(var d=0;d>9&4095,(g>>5&15)-1,(31&g)+s);return a.year=m.getFullYear(),a.month=1+m.getMonth(),a.day=m.getDate(),a}(t,s,r,o);return a.toJD(l.year,l.month,l.day)},fromJD:function(t){var e=a.fromJD(t),r=function(t,e,r,n){var i,a;if("object"==typeof t)i=t,a=e||{};else{if(!("number"==typeof t&&t>=1888&&t<=2111))throw new Error("Solar year outside range 1888-2111");if(!("number"==typeof e&&e>=1&&e<=12))throw new Error("Solar month outside range 1 - 12");if(!("number"==typeof r&&r>=1&&r<=31))throw new Error("Solar day outside range 1 - 31");i={year:t,month:e,day:r},a=n||{}}var o=h[i.year-h[0]],s=i.year<<9|i.month<<5|i.day;a.year=s>=o?i.year:i.year-1,o=h[a.year-h[0]];var l,c=new Date(o>>9&4095,(o>>5&15)-1,31&o),u=new Date(i.year,i.month-1,i.day);l=Math.round((u-c)/864e5);var p,d=f[a.year-f[0]];for(p=0;p<13;p++){var g=d&1<<12-p?30:29;if(l>13;!m||p=2&&n<=6},extraInfo:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return{century:o[Math.floor((i.year()-1)/100)+1]||""}},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=i.year()+(i.year()<0?1:0),e=i.month(),(r=i.day())+(e>1?16:0)+(e>2?32*(e-2):0)+400*(t-1)+this.jdEpoch-1},fromJD:function(t){t=Math.floor(t+.5)-Math.floor(this.jdEpoch)-1;var e=Math.floor(t/400)+1;t-=400*(e-1),t+=t>15?16:0;var r=Math.floor(t/32)+1,n=t-32*(r-1)+1;return this.newDate(e<=0?e-1:e,r,n)}});var o={20:"Fruitbat",21:"Anchovy"};n.calendars.discworld=a},{"../main":621,"object-assign":499}],610:[function(t,e,r){var n=t("../main"),i=t("object-assign");function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Ethiopian",jdEpoch:1724220.5,daysPerMonth:[30,30,30,30,30,30,30,30,30,30,30,30,5],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Ethiopian",epochs:["BEE","EE"],monthNames:["Meskerem","Tikemet","Hidar","Tahesas","Tir","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehase","Pagume"],monthNamesShort:["Mes","Tik","Hid","Tah","Tir","Yek","Meg","Mia","Gen","Sen","Ham","Neh","Pag"],dayNames:["Ehud","Segno","Maksegno","Irob","Hamus","Arb","Kidame"],dayNamesShort:["Ehu","Seg","Mak","Iro","Ham","Arb","Kid"],dayNamesMin:["Eh","Se","Ma","Ir","Ha","Ar","Ki"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return(t=e.year()+(e.year()<0?1:0))%4==3||t%4==-1},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear||n.regionalOptions[""].invalidYear),13},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(13===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return(t=i.year())<0&&t++,i.day()+30*(i.month()-1)+365*(t-1)+Math.floor(t/4)+this.jdEpoch-1},fromJD:function(t){var e=Math.floor(t)+.5-this.jdEpoch,r=Math.floor((e-Math.floor((e+366)/1461))/365)+1;r<=0&&r--,e=Math.floor(t)+.5-this.newDate(r,1,1).toJD();var n=Math.floor(e/30)+1,i=e-30*(n-1)+1;return this.newDate(r,n,i)}}),n.calendars.ethiopian=a},{"../main":621,"object-assign":499}],611:[function(t,e,r){var n=t("../main"),i=t("object-assign");function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}function o(t,e){return t-e*Math.floor(t/e)}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Hebrew",jdEpoch:347995.5,daysPerMonth:[30,29,30,29,30,29,30,29,30,29,30,29,29],hasYearZero:!1,minMonth:1,firstMonth:7,minDay:1,regionalOptions:{"":{name:"Hebrew",epochs:["BAM","AM"],monthNames:["Nisan","Iyar","Sivan","Tammuz","Av","Elul","Tishrei","Cheshvan","Kislev","Tevet","Shevat","Adar","Adar II"],monthNamesShort:["Nis","Iya","Siv","Tam","Av","Elu","Tis","Che","Kis","Tev","She","Ada","Ad2"],dayNames:["Yom Rishon","Yom Sheni","Yom Shlishi","Yom Revi'i","Yom Chamishi","Yom Shishi","Yom Shabbat"],dayNamesShort:["Ris","She","Shl","Rev","Cha","Shi","Sha"],dayNamesMin:["Ri","She","Shl","Re","Ch","Shi","Sha"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return this._leapYear(e.year())},_leapYear:function(t){return o(7*(t=t<0?t+1:t)+1,19)<7},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),this._leapYear(t.year?t.year():t)?13:12},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){return t=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year(),this.toJD(-1===t?1:t+1,7,1)-this.toJD(t,7,1)},daysInMonth:function(t,e){return t.year&&(e=t.month(),t=t.year()),this._validate(t,e,this.minDay,n.local.invalidMonth),12===e&&this.leapYear(t)||8===e&&5===o(this.daysInYear(t),10)?30:9===e&&3===o(this.daysInYear(t),10)?29:this.daysPerMonth[e-1]},weekDay:function(t,e,r){return 6!==this.dayOfWeek(t,e,r)},extraInfo:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return{yearType:(this.leapYear(i)?"embolismic":"common")+" "+["deficient","regular","complete"][this.daysInYear(i)%10-3]}},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=i.year(),e=i.month(),r=i.day();var a=t<=0?t+1:t,o=this.jdEpoch+this._delay1(a)+this._delay2(a)+r+1;if(e<7){for(var s=7;s<=this.monthsInYear(t);s++)o+=this.daysInMonth(t,s);for(s=1;s=this.toJD(-1===e?1:e+1,7,1);)e++;for(var r=tthis.toJD(e,r,this.daysInMonth(e,r));)r++;var n=t-this.toJD(e,r,1)+1;return this.newDate(e,r,n)}}),n.calendars.hebrew=a},{"../main":621,"object-assign":499}],612:[function(t,e,r){var n=t("../main"),i=t("object-assign");function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Islamic",jdEpoch:1948439.5,daysPerMonth:[30,29,30,29,30,29,30,29,30,29,30,29],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Islamic",epochs:["BH","AH"],monthNames:["Muharram","Safar","Rabi' al-awwal","Rabi' al-thani","Jumada al-awwal","Jumada al-thani","Rajab","Sha'aban","Ramadan","Shawwal","Dhu al-Qi'dah","Dhu al-Hijjah"],monthNamesShort:["Muh","Saf","Rab1","Rab2","Jum1","Jum2","Raj","Sha'","Ram","Shaw","DhuQ","DhuH"],dayNames:["Yawm al-ahad","Yawm al-ithnayn","Yawm ath-thulaathaa'","Yawm al-arbi'aa'","Yawm al-kham\u012bs","Yawm al-jum'a","Yawm as-sabt"],dayNamesShort:["Aha","Ith","Thu","Arb","Kha","Jum","Sab"],dayNamesMin:["Ah","It","Th","Ar","Kh","Ju","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:6,isRTL:!1}},leapYear:function(t){return(11*this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year()+14)%30<11},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){return this.leapYear(t)?355:354},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=i.year(),e=i.month(),t=t<=0?t+1:t,(r=i.day())+Math.ceil(29.5*(e-1))+354*(t-1)+Math.floor((3+11*t)/30)+this.jdEpoch-1},fromJD:function(t){t=Math.floor(t)+.5;var e=Math.floor((30*(t-this.jdEpoch)+10646)/10631);e=e<=0?e-1:e;var r=Math.min(12,Math.ceil((t-29-this.toJD(e,1,1))/29.5)+1),n=t-this.toJD(e,r,1)+1;return this.newDate(e,r,n)}}),n.calendars.islamic=a},{"../main":621,"object-assign":499}],613:[function(t,e,r){var n=t("../main"),i=t("object-assign");function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Julian",jdEpoch:1721423.5,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Julian",epochs:["BC","AD"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"mm/dd/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return(t=e.year()<0?e.year()+1:e.year())%4==0},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(4-(n.dayOfWeek()||7),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=i.year(),e=i.month(),r=i.day(),t<0&&t++,e<=2&&(t--,e+=12),Math.floor(365.25*(t+4716))+Math.floor(30.6001*(e+1))+r-1524.5},fromJD:function(t){var e=Math.floor(t+.5)+1524,r=Math.floor((e-122.1)/365.25),n=Math.floor(365.25*r),i=Math.floor((e-n)/30.6001),a=i-Math.floor(i<14?1:13),o=r-Math.floor(a>2?4716:4715),s=e-n-Math.floor(30.6001*i);return o<=0&&o--,this.newDate(o,a,s)}}),n.calendars.julian=a},{"../main":621,"object-assign":499}],614:[function(t,e,r){var n=t("../main"),i=t("object-assign");function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}function o(t,e){return t-e*Math.floor(t/e)}function s(t,e){return o(t-1,e)+1}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Mayan",jdEpoch:584282.5,hasYearZero:!0,minMonth:0,firstMonth:0,minDay:0,regionalOptions:{"":{name:"Mayan",epochs:["",""],monthNames:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17"],monthNamesShort:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17"],dayNames:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],dayNamesShort:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],dayNamesMin:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],digits:null,dateFormat:"YYYY.m.d",firstDay:0,isRTL:!1,haabMonths:["Pop","Uo","Zip","Zotz","Tzec","Xul","Yaxkin","Mol","Chen","Yax","Zac","Ceh","Mac","Kankin","Muan","Pax","Kayab","Cumku","Uayeb"],tzolkinMonths:["Imix","Ik","Akbal","Kan","Chicchan","Cimi","Manik","Lamat","Muluc","Oc","Chuen","Eb","Ben","Ix","Men","Cib","Caban","Etznab","Cauac","Ahau"]}},leapYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),!1},formatYear:function(t){t=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year();var e=Math.floor(t/400);return t%=400,t+=t<0?400:0,e+"."+Math.floor(t/20)+"."+t%20},forYear:function(t){if((t=t.split(".")).length<3)throw"Invalid Mayan year";for(var e=0,r=0;r19||r>0&&n<0)throw"Invalid Mayan year";e=20*e+n}return e},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),18},weekOfYear:function(t,e,r){return this._validate(t,e,r,n.local.invalidDate),0},daysInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),360},daysInMonth:function(t,e){return this._validate(t,e,this.minDay,n.local.invalidMonth),20},daysInWeek:function(){return 5},dayOfWeek:function(t,e,r){return this._validate(t,e,r,n.local.invalidDate).day()},weekDay:function(t,e,r){return this._validate(t,e,r,n.local.invalidDate),!0},extraInfo:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate).toJD(),a=this._toHaab(i),o=this._toTzolkin(i);return{haabMonthName:this.local.haabMonths[a[0]-1],haabMonth:a[0],haabDay:a[1],tzolkinDayName:this.local.tzolkinMonths[o[0]-1],tzolkinDay:o[0],tzolkinTrecena:o[1]}},_toHaab:function(t){var e=o((t-=this.jdEpoch)+8+340,365);return[Math.floor(e/20)+1,o(e,20)]},_toTzolkin:function(t){return[s((t-=this.jdEpoch)+20,20),s(t+4,13)]},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return i.day()+20*i.month()+360*i.year()+this.jdEpoch},fromJD:function(t){t=Math.floor(t)+.5-this.jdEpoch;var e=Math.floor(t/360);t%=360,t+=t<0?360:0;var r=Math.floor(t/20),n=t%20;return this.newDate(e,r,n)}}),n.calendars.mayan=a},{"../main":621,"object-assign":499}],615:[function(t,e,r){var n=t("../main"),i=t("object-assign");function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar;var o=n.instance("gregorian");i(a.prototype,{name:"Nanakshahi",jdEpoch:2257673.5,daysPerMonth:[31,31,31,31,31,30,30,30,30,30,30,30],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Nanakshahi",epochs:["BN","AN"],monthNames:["Chet","Vaisakh","Jeth","Harh","Sawan","Bhadon","Assu","Katak","Maghar","Poh","Magh","Phagun"],monthNamesShort:["Che","Vai","Jet","Har","Saw","Bha","Ass","Kat","Mgr","Poh","Mgh","Pha"],dayNames:["Somvaar","Mangalvar","Budhvaar","Veervaar","Shukarvaar","Sanicharvaar","Etvaar"],dayNamesShort:["Som","Mangal","Budh","Veer","Shukar","Sanichar","Et"],dayNamesMin:["So","Ma","Bu","Ve","Sh","Sa","Et"],digits:null,dateFormat:"dd-mm-yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear||n.regionalOptions[""].invalidYear);return o.leapYear(e.year()+(e.year()<1?1:0)+1469)},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(1-(n.dayOfWeek()||7),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidMonth);(t=i.year())<0&&t++;for(var a=i.day(),s=1;s=this.toJD(e+1,1,1);)e++;for(var r=t-Math.floor(this.toJD(e,1,1)+.5)+1,n=1;r>this.daysInMonth(e,n);)r-=this.daysInMonth(e,n),n++;return this.newDate(e,n,r)}}),n.calendars.nanakshahi=a},{"../main":621,"object-assign":499}],616:[function(t,e,r){var n=t("../main"),i=t("object-assign");function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Nepali",jdEpoch:1700709.5,daysPerMonth:[31,31,32,32,31,30,30,29,30,29,30,30],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,daysPerYear:365,regionalOptions:{"":{name:"Nepali",epochs:["BBS","ABS"],monthNames:["Baisakh","Jestha","Ashadh","Shrawan","Bhadra","Ashwin","Kartik","Mangsir","Paush","Mangh","Falgun","Chaitra"],monthNamesShort:["Bai","Je","As","Shra","Bha","Ash","Kar","Mang","Pau","Ma","Fal","Chai"],dayNames:["Aaitabaar","Sombaar","Manglbaar","Budhabaar","Bihibaar","Shukrabaar","Shanibaar"],dayNamesShort:["Aaita","Som","Mangl","Budha","Bihi","Shukra","Shani"],dayNamesMin:["Aai","So","Man","Bu","Bi","Shu","Sha"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:1,isRTL:!1}},leapYear:function(t){return this.daysInYear(t)!==this.daysPerYear},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){if(t=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year(),"undefined"==typeof this.NEPALI_CALENDAR_DATA[t])return this.daysPerYear;for(var e=0,r=this.minMonth;r<=12;r++)e+=this.NEPALI_CALENDAR_DATA[t][r];return e},daysInMonth:function(t,e){return t.year&&(e=t.month(),t=t.year()),this._validate(t,e,this.minDay,n.local.invalidMonth),"undefined"==typeof this.NEPALI_CALENDAR_DATA[t]?this.daysPerMonth[e-1]:this.NEPALI_CALENDAR_DATA[t][e]},weekDay:function(t,e,r){return 6!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=i.year(),e=i.month(),r=i.day();var a=n.instance(),o=0,s=e,l=t;this._createMissingCalendarData(t);var c=t-(s>9||9===s&&r>=this.NEPALI_CALENDAR_DATA[l][0]?56:57);for(9!==e&&(o=r,s--);9!==s;)s<=0&&(s=12,l--),o+=this.NEPALI_CALENDAR_DATA[l][s],s--;return 9===e?(o+=r-this.NEPALI_CALENDAR_DATA[l][0])<0&&(o+=a.daysInYear(c)):o+=this.NEPALI_CALENDAR_DATA[l][9]-this.NEPALI_CALENDAR_DATA[l][0],a.newDate(c,1,1).add(o,"d").toJD()},fromJD:function(t){var e=n.instance().fromJD(t),r=e.year(),i=e.dayOfYear(),a=r+56;this._createMissingCalendarData(a);for(var o=9,s=this.NEPALI_CALENDAR_DATA[a][0],l=this.NEPALI_CALENDAR_DATA[a][o]-s+1;i>l;)++o>12&&(o=1,a++),l+=this.NEPALI_CALENDAR_DATA[a][o];var c=this.NEPALI_CALENDAR_DATA[a][o]-(l-i);return this.newDate(a,o,c)},_createMissingCalendarData:function(t){var e=this.daysPerMonth.slice(0);e.unshift(17);for(var r=t-1;r0?474:473))%2820+474+38)%2816<682},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-(n.dayOfWeek()+1)%7,"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=i.year(),e=i.month(),r=i.day();var a=t-(t>=0?474:473),s=474+o(a,2820);return r+(e<=7?31*(e-1):30*(e-1)+6)+Math.floor((682*s-110)/2816)+365*(s-1)+1029983*Math.floor(a/2820)+this.jdEpoch-1},fromJD:function(t){var e=(t=Math.floor(t)+.5)-this.toJD(475,1,1),r=Math.floor(e/1029983),n=o(e,1029983),i=2820;if(1029982!==n){var a=Math.floor(n/366),s=o(n,366);i=Math.floor((2134*a+2816*s+2815)/1028522)+a+1}var l=i+2820*r+474;l=l<=0?l-1:l;var c=t-this.toJD(l,1,1)+1,u=c<=186?Math.ceil(c/31):Math.ceil((c-6)/30),f=t-this.toJD(l,u,1)+1;return this.newDate(l,u,f)}}),n.calendars.persian=a,n.calendars.jalali=a},{"../main":621,"object-assign":499}],618:[function(t,e,r){var n=t("../main"),i=t("object-assign"),a=n.instance();function o(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}o.prototype=new n.baseCalendar,i(o.prototype,{name:"Taiwan",jdEpoch:2419402.5,yearsOffset:1911,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Taiwan",epochs:["BROC","ROC"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:1,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);t=this._t2gYear(e.year());return a.leapYear(t)},weekOfYear:function(t,e,r){var i=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);t=this._t2gYear(i.year());return a.weekOfYear(t,i.month(),i.day())},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=this._t2gYear(i.year());return a.toJD(t,i.month(),i.day())},fromJD:function(t){var e=a.fromJD(t),r=this._g2tYear(e.year());return this.newDate(r,e.month(),e.day())},_t2gYear:function(t){return t+this.yearsOffset+(t>=-this.yearsOffset&&t<=-1?1:0)},_g2tYear:function(t){return t-this.yearsOffset-(t>=1&&t<=this.yearsOffset?1:0)}}),n.calendars.taiwan=o},{"../main":621,"object-assign":499}],619:[function(t,e,r){var n=t("../main"),i=t("object-assign"),a=n.instance();function o(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}o.prototype=new n.baseCalendar,i(o.prototype,{name:"Thai",jdEpoch:1523098.5,yearsOffset:543,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Thai",epochs:["BBE","BE"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);t=this._t2gYear(e.year());return a.leapYear(t)},weekOfYear:function(t,e,r){var i=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);t=this._t2gYear(i.year());return a.weekOfYear(t,i.month(),i.day())},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=this._t2gYear(i.year());return a.toJD(t,i.month(),i.day())},fromJD:function(t){var e=a.fromJD(t),r=this._g2tYear(e.year());return this.newDate(r,e.month(),e.day())},_t2gYear:function(t){return t-this.yearsOffset-(t>=1&&t<=this.yearsOffset?1:0)},_g2tYear:function(t){return t+this.yearsOffset+(t>=-this.yearsOffset&&t<=-1?1:0)}}),n.calendars.thai=o},{"../main":621,"object-assign":499}],620:[function(t,e,r){var n=t("../main"),i=t("object-assign");function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"UmmAlQura",hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Umm al-Qura",epochs:["BH","AH"],monthNames:["Al-Muharram","Safar","Rabi' al-awwal","Rabi' Al-Thani","Jumada Al-Awwal","Jumada Al-Thani","Rajab","Sha'aban","Ramadan","Shawwal","Dhu al-Qi'dah","Dhu al-Hijjah"],monthNamesShort:["Muh","Saf","Rab1","Rab2","Jum1","Jum2","Raj","Sha'","Ram","Shaw","DhuQ","DhuH"],dayNames:["Yawm al-Ahad","Yawm al-Ithnain","Yawm al-Thal\u0101th\u0101\u2019","Yawm al-Arba\u2018\u0101\u2019","Yawm al-Kham\u012bs","Yawm al-Jum\u2018a","Yawm al-Sabt"],dayNamesMin:["Ah","Ith","Th","Ar","Kh","Ju","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:6,isRTL:!0}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return 355===this.daysInYear(e.year())},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){for(var e=0,r=1;r<=12;r++)e+=this.daysInMonth(t,r);return e},daysInMonth:function(t,e){for(var r=this._validate(t,e,this.minDay,n.local.invalidMonth).toJD()-24e5+.5,i=0,a=0;ar)return o[i]-o[i-1];i++}return 30},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate),a=12*(i.year()-1)+i.month()-15292;return i.day()+o[a-1]-1+24e5-.5},fromJD:function(t){for(var e=t-24e5+.5,r=0,n=0;ne);n++)r++;var i=r+15292,a=Math.floor((i-1)/12),s=a+1,l=i-12*a,c=e-o[r-1]+1;return this.newDate(s,l,c)},isValid:function(t,e,r){var i=n.baseCalendar.prototype.isValid.apply(this,arguments);return i&&(i=(t=null!=t.year?t.year:t)>=1276&&t<=1500),i},_validate:function(t,e,r,i){var a=n.baseCalendar.prototype._validate.apply(this,arguments);if(a.year<1276||a.year>1500)throw i.replace(/\{0\}/,this.local.name);return a}}),n.calendars.ummalqura=a;var o=[20,50,79,109,138,168,197,227,256,286,315,345,374,404,433,463,492,522,551,581,611,641,670,700,729,759,788,818,847,877,906,936,965,995,1024,1054,1083,1113,1142,1172,1201,1231,1260,1290,1320,1350,1379,1409,1438,1468,1497,1527,1556,1586,1615,1645,1674,1704,1733,1763,1792,1822,1851,1881,1910,1940,1969,1999,2028,2058,2087,2117,2146,2176,2205,2235,2264,2294,2323,2353,2383,2413,2442,2472,2501,2531,2560,2590,2619,2649,2678,2708,2737,2767,2796,2826,2855,2885,2914,2944,2973,3003,3032,3062,3091,3121,3150,3180,3209,3239,3268,3298,3327,3357,3386,3416,3446,3476,3505,3535,3564,3594,3623,3653,3682,3712,3741,3771,3800,3830,3859,3889,3918,3948,3977,4007,4036,4066,4095,4125,4155,4185,4214,4244,4273,4303,4332,4362,4391,4421,4450,4480,4509,4539,4568,4598,4627,4657,4686,4716,4745,4775,4804,4834,4863,4893,4922,4952,4981,5011,5040,5070,5099,5129,5158,5188,5218,5248,5277,5307,5336,5366,5395,5425,5454,5484,5513,5543,5572,5602,5631,5661,5690,5720,5749,5779,5808,5838,5867,5897,5926,5956,5985,6015,6044,6074,6103,6133,6162,6192,6221,6251,6281,6311,6340,6370,6399,6429,6458,6488,6517,6547,6576,6606,6635,6665,6694,6724,6753,6783,6812,6842,6871,6901,6930,6960,6989,7019,7048,7078,7107,7137,7166,7196,7225,7255,7284,7314,7344,7374,7403,7433,7462,7492,7521,7551,7580,7610,7639,7669,7698,7728,7757,7787,7816,7846,7875,7905,7934,7964,7993,8023,8053,8083,8112,8142,8171,8201,8230,8260,8289,8319,8348,8378,8407,8437,8466,8496,8525,8555,8584,8614,8643,8673,8702,8732,8761,8791,8821,8850,8880,8909,8938,8968,8997,9027,9056,9086,9115,9145,9175,9205,9234,9264,9293,9322,9352,9381,9410,9440,9470,9499,9529,9559,9589,9618,9648,9677,9706,9736,9765,9794,9824,9853,9883,9913,9943,9972,10002,10032,10061,10090,10120,10149,10178,10208,10237,10267,10297,10326,10356,10386,10415,10445,10474,10504,10533,10562,10592,10621,10651,10680,10710,10740,10770,10799,10829,10858,10888,10917,10947,10976,11005,11035,11064,11094,11124,11153,11183,11213,11242,11272,11301,11331,11360,11389,11419,11448,11478,11507,11537,11567,11596,11626,11655,11685,11715,11744,11774,11803,11832,11862,11891,11921,11950,11980,12010,12039,12069,12099,12128,12158,12187,12216,12246,12275,12304,12334,12364,12393,12423,12453,12483,12512,12542,12571,12600,12630,12659,12688,12718,12747,12777,12807,12837,12866,12896,12926,12955,12984,13014,13043,13072,13102,13131,13161,13191,13220,13250,13280,13310,13339,13368,13398,13427,13456,13486,13515,13545,13574,13604,13634,13664,13693,13723,13752,13782,13811,13840,13870,13899,13929,13958,13988,14018,14047,14077,14107,14136,14166,14195,14224,14254,14283,14313,14342,14372,14401,14431,14461,14490,14520,14550,14579,14609,14638,14667,14697,14726,14756,14785,14815,14844,14874,14904,14933,14963,14993,15021,15051,15081,15110,15140,15169,15199,15228,15258,15287,15317,15347,15377,15406,15436,15465,15494,15524,15553,15582,15612,15641,15671,15701,15731,15760,15790,15820,15849,15878,15908,15937,15966,15996,16025,16055,16085,16114,16144,16174,16204,16233,16262,16292,16321,16350,16380,16409,16439,16468,16498,16528,16558,16587,16617,16646,16676,16705,16734,16764,16793,16823,16852,16882,16912,16941,16971,17001,17030,17060,17089,17118,17148,17177,17207,17236,17266,17295,17325,17355,17384,17414,17444,17473,17502,17532,17561,17591,17620,17650,17679,17709,17738,17768,17798,17827,17857,17886,17916,17945,17975,18004,18034,18063,18093,18122,18152,18181,18211,18241,18270,18300,18330,18359,18388,18418,18447,18476,18506,18535,18565,18595,18625,18654,18684,18714,18743,18772,18802,18831,18860,18890,18919,18949,18979,19008,19038,19068,19098,19127,19156,19186,19215,19244,19274,19303,19333,19362,19392,19422,19452,19481,19511,19540,19570,19599,19628,19658,19687,19717,19746,19776,19806,19836,19865,19895,19924,19954,19983,20012,20042,20071,20101,20130,20160,20190,20219,20249,20279,20308,20338,20367,20396,20426,20455,20485,20514,20544,20573,20603,20633,20662,20692,20721,20751,20780,20810,20839,20869,20898,20928,20957,20987,21016,21046,21076,21105,21135,21164,21194,21223,21253,21282,21312,21341,21371,21400,21430,21459,21489,21519,21548,21578,21607,21637,21666,21696,21725,21754,21784,21813,21843,21873,21902,21932,21962,21991,22021,22050,22080,22109,22138,22168,22197,22227,22256,22286,22316,22346,22375,22405,22434,22464,22493,22522,22552,22581,22611,22640,22670,22700,22730,22759,22789,22818,22848,22877,22906,22936,22965,22994,23024,23054,23083,23113,23143,23173,23202,23232,23261,23290,23320,23349,23379,23408,23438,23467,23497,23527,23556,23586,23616,23645,23674,23704,23733,23763,23792,23822,23851,23881,23910,23940,23970,23999,24029,24058,24088,24117,24147,24176,24206,24235,24265,24294,24324,24353,24383,24413,24442,24472,24501,24531,24560,24590,24619,24648,24678,24707,24737,24767,24796,24826,24856,24885,24915,24944,24974,25003,25032,25062,25091,25121,25150,25180,25210,25240,25269,25299,25328,25358,25387,25416,25446,25475,25505,25534,25564,25594,25624,25653,25683,25712,25742,25771,25800,25830,25859,25888,25918,25948,25977,26007,26037,26067,26096,26126,26155,26184,26214,26243,26272,26302,26332,26361,26391,26421,26451,26480,26510,26539,26568,26598,26627,26656,26686,26715,26745,26775,26805,26834,26864,26893,26923,26952,26982,27011,27041,27070,27099,27129,27159,27188,27218,27248,27277,27307,27336,27366,27395,27425,27454,27484,27513,27542,27572,27602,27631,27661,27691,27720,27750,27779,27809,27838,27868,27897,27926,27956,27985,28015,28045,28074,28104,28134,28163,28193,28222,28252,28281,28310,28340,28369,28399,28428,28458,28488,28517,28547,28577,28607,28636,28665,28695,28724,28754,28783,28813,28843,28872,28901,28931,28960,28990,29019,29049,29078,29108,29137,29167,29196,29226,29255,29285,29315,29345,29375,29404,29434,29463,29492,29522,29551,29580,29610,29640,29669,29699,29729,29759,29788,29818,29847,29876,29906,29935,29964,29994,30023,30053,30082,30112,30141,30171,30200,30230,30259,30289,30318,30348,30378,30408,30437,30467,30496,30526,30555,30585,30614,30644,30673,30703,30732,30762,30791,30821,30850,30880,30909,30939,30968,30998,31027,31057,31086,31116,31145,31175,31204,31234,31263,31293,31322,31352,31381,31411,31441,31471,31500,31530,31559,31589,31618,31648,31676,31706,31736,31766,31795,31825,31854,31884,31913,31943,31972,32002,32031,32061,32090,32120,32150,32180,32209,32239,32268,32298,32327,32357,32386,32416,32445,32475,32504,32534,32563,32593,32622,32652,32681,32711,32740,32770,32799,32829,32858,32888,32917,32947,32976,33006,33035,33065,33094,33124,33153,33183,33213,33243,33272,33302,33331,33361,33390,33420,33450,33479,33509,33539,33568,33598,33627,33657,33686,33716,33745,33775,33804,33834,33863,33893,33922,33952,33981,34011,34040,34069,34099,34128,34158,34187,34217,34247,34277,34306,34336,34365,34395,34424,34454,34483,34512,34542,34571,34601,34631,34660,34690,34719,34749,34778,34808,34837,34867,34896,34926,34955,34985,35015,35044,35074,35103,35133,35162,35192,35222,35251,35280,35310,35340,35370,35399,35429,35458,35488,35517,35547,35576,35605,35635,35665,35694,35723,35753,35782,35811,35841,35871,35901,35930,35960,35989,36019,36048,36078,36107,36136,36166,36195,36225,36254,36284,36314,36343,36373,36403,36433,36462,36492,36521,36551,36580,36610,36639,36669,36698,36728,36757,36786,36816,36845,36875,36904,36934,36963,36993,37022,37052,37081,37111,37141,37170,37200,37229,37259,37288,37318,37347,37377,37406,37436,37465,37495,37524,37554,37584,37613,37643,37672,37701,37731,37760,37790,37819,37849,37878,37908,37938,37967,37997,38027,38056,38085,38115,38144,38174,38203,38233,38262,38292,38322,38351,38381,38410,38440,38469,38499,38528,38558,38587,38617,38646,38676,38705,38735,38764,38794,38823,38853,38882,38912,38941,38971,39001,39030,39059,39089,39118,39148,39178,39208,39237,39267,39297,39326,39355,39385,39414,39444,39473,39503,39532,39562,39592,39621,39650,39680,39709,39739,39768,39798,39827,39857,39886,39916,39946,39975,40005,40035,40064,40094,40123,40153,40182,40212,40241,40271,40300,40330,40359,40389,40418,40448,40477,40507,40536,40566,40595,40625,40655,40685,40714,40744,40773,40803,40832,40862,40892,40921,40951,40980,41009,41039,41068,41098,41127,41157,41186,41216,41245,41275,41304,41334,41364,41393,41422,41452,41481,41511,41540,41570,41599,41629,41658,41688,41718,41748,41777,41807,41836,41865,41894,41924,41953,41983,42012,42042,42072,42102,42131,42161,42190,42220,42249,42279,42308,42337,42367,42397,42426,42456,42485,42515,42545,42574,42604,42633,42662,42692,42721,42751,42780,42810,42839,42869,42899,42929,42958,42988,43017,43046,43076,43105,43135,43164,43194,43223,43253,43283,43312,43342,43371,43401,43430,43460,43489,43519,43548,43578,43607,43637,43666,43696,43726,43755,43785,43814,43844,43873,43903,43932,43962,43991,44021,44050,44080,44109,44139,44169,44198,44228,44258,44287,44317,44346,44375,44405,44434,44464,44493,44523,44553,44582,44612,44641,44671,44700,44730,44759,44788,44818,44847,44877,44906,44936,44966,44996,45025,45055,45084,45114,45143,45172,45202,45231,45261,45290,45320,45350,45380,45409,45439,45468,45498,45527,45556,45586,45615,45644,45674,45704,45733,45763,45793,45823,45852,45882,45911,45940,45970,45999,46028,46058,46088,46117,46147,46177,46206,46236,46265,46295,46324,46354,46383,46413,46442,46472,46501,46531,46560,46590,46620,46649,46679,46708,46738,46767,46797,46826,46856,46885,46915,46944,46974,47003,47033,47063,47092,47122,47151,47181,47210,47240,47269,47298,47328,47357,47387,47417,47446,47476,47506,47535,47565,47594,47624,47653,47682,47712,47741,47771,47800,47830,47860,47890,47919,47949,47978,48008,48037,48066,48096,48125,48155,48184,48214,48244,48273,48303,48333,48362,48392,48421,48450,48480,48509,48538,48568,48598,48627,48657,48687,48717,48746,48776,48805,48834,48864,48893,48922,48952,48982,49011,49041,49071,49100,49130,49160,49189,49218,49248,49277,49306,49336,49365,49395,49425,49455,49484,49514,49543,49573,49602,49632,49661,49690,49720,49749,49779,49809,49838,49868,49898,49927,49957,49986,50016,50045,50075,50104,50133,50163,50192,50222,50252,50281,50311,50340,50370,50400,50429,50459,50488,50518,50547,50576,50606,50635,50665,50694,50724,50754,50784,50813,50843,50872,50902,50931,50960,50990,51019,51049,51078,51108,51138,51167,51197,51227,51256,51286,51315,51345,51374,51403,51433,51462,51492,51522,51552,51582,51611,51641,51670,51699,51729,51758,51787,51816,51846,51876,51906,51936,51965,51995,52025,52054,52083,52113,52142,52171,52200,52230,52260,52290,52319,52349,52379,52408,52438,52467,52497,52526,52555,52585,52614,52644,52673,52703,52733,52762,52792,52822,52851,52881,52910,52939,52969,52998,53028,53057,53087,53116,53146,53176,53205,53235,53264,53294,53324,53353,53383,53412,53441,53471,53500,53530,53559,53589,53619,53648,53678,53708,53737,53767,53796,53825,53855,53884,53913,53943,53973,54003,54032,54062,54092,54121,54151,54180,54209,54239,54268,54297,54327,54357,54387,54416,54446,54476,54505,54535,54564,54593,54623,54652,54681,54711,54741,54770,54800,54830,54859,54889,54919,54948,54977,55007,55036,55066,55095,55125,55154,55184,55213,55243,55273,55302,55332,55361,55391,55420,55450,55479,55508,55538,55567,55597,55627,55657,55686,55716,55745,55775,55804,55834,55863,55892,55922,55951,55981,56011,56040,56070,56100,56129,56159,56188,56218,56247,56276,56306,56335,56365,56394,56424,56454,56483,56513,56543,56572,56601,56631,56660,56690,56719,56749,56778,56808,56837,56867,56897,56926,56956,56985,57015,57044,57074,57103,57133,57162,57192,57221,57251,57280,57310,57340,57369,57399,57429,57458,57487,57517,57546,57576,57605,57634,57664,57694,57723,57753,57783,57813,57842,57871,57901,57930,57959,57989,58018,58048,58077,58107,58137,58167,58196,58226,58255,58285,58314,58343,58373,58402,58432,58461,58491,58521,58551,58580,58610,58639,58669,58698,58727,58757,58786,58816,58845,58875,58905,58934,58964,58994,59023,59053,59082,59111,59141,59170,59200,59229,59259,59288,59318,59348,59377,59407,59436,59466,59495,59525,59554,59584,59613,59643,59672,59702,59731,59761,59791,59820,59850,59879,59909,59939,59968,59997,60027,60056,60086,60115,60145,60174,60204,60234,60264,60293,60323,60352,60381,60411,60440,60469,60499,60528,60558,60588,60618,60648,60677,60707,60736,60765,60795,60824,60853,60883,60912,60942,60972,61002,61031,61061,61090,61120,61149,61179,61208,61237,61267,61296,61326,61356,61385,61415,61445,61474,61504,61533,61563,61592,61621,61651,61680,61710,61739,61769,61799,61828,61858,61888,61917,61947,61976,62006,62035,62064,62094,62123,62153,62182,62212,62242,62271,62301,62331,62360,62390,62419,62448,62478,62507,62537,62566,62596,62625,62655,62685,62715,62744,62774,62803,62832,62862,62891,62921,62950,62980,63009,63039,63069,63099,63128,63157,63187,63216,63246,63275,63305,63334,63363,63393,63423,63453,63482,63512,63541,63571,63600,63630,63659,63689,63718,63747,63777,63807,63836,63866,63895,63925,63955,63984,64014,64043,64073,64102,64131,64161,64190,64220,64249,64279,64309,64339,64368,64398,64427,64457,64486,64515,64545,64574,64603,64633,64663,64692,64722,64752,64782,64811,64841,64870,64899,64929,64958,64987,65017,65047,65076,65106,65136,65166,65195,65225,65254,65283,65313,65342,65371,65401,65431,65460,65490,65520,65549,65579,65608,65638,65667,65697,65726,65755,65785,65815,65844,65874,65903,65933,65963,65992,66022,66051,66081,66110,66140,66169,66199,66228,66258,66287,66317,66346,66376,66405,66435,66465,66494,66524,66553,66583,66612,66641,66671,66700,66730,66760,66789,66819,66849,66878,66908,66937,66967,66996,67025,67055,67084,67114,67143,67173,67203,67233,67262,67292,67321,67351,67380,67409,67439,67468,67497,67527,67557,67587,67617,67646,67676,67705,67735,67764,67793,67823,67852,67882,67911,67941,67971,68e3,68030,68060,68089,68119,68148,68177,68207,68236,68266,68295,68325,68354,68384,68414,68443,68473,68502,68532,68561,68591,68620,68650,68679,68708,68738,68768,68797,68827,68857,68886,68916,68946,68975,69004,69034,69063,69092,69122,69152,69181,69211,69240,69270,69300,69330,69359,69388,69418,69447,69476,69506,69535,69565,69595,69624,69654,69684,69713,69743,69772,69802,69831,69861,69890,69919,69949,69978,70008,70038,70067,70097,70126,70156,70186,70215,70245,70274,70303,70333,70362,70392,70421,70451,70481,70510,70540,70570,70599,70629,70658,70687,70717,70746,70776,70805,70835,70864,70894,70924,70954,70983,71013,71042,71071,71101,71130,71159,71189,71218,71248,71278,71308,71337,71367,71397,71426,71455,71485,71514,71543,71573,71602,71632,71662,71691,71721,71751,71781,71810,71839,71869,71898,71927,71957,71986,72016,72046,72075,72105,72135,72164,72194,72223,72253,72282,72311,72341,72370,72400,72429,72459,72489,72518,72548,72577,72607,72637,72666,72695,72725,72754,72784,72813,72843,72872,72902,72931,72961,72991,73020,73050,73080,73109,73139,73168,73197,73227,73256,73286,73315,73345,73375,73404,73434,73464,73493,73523,73552,73581,73611,73640,73669,73699,73729,73758,73788,73818,73848,73877,73907,73936,73965,73995,74024,74053,74083,74113,74142,74172,74202,74231,74261,74291,74320,74349,74379,74408,74437,74467,74497,74526,74556,74586,74615,74645,74675,74704,74733,74763,74792,74822,74851,74881,74910,74940,74969,74999,75029,75058,75088,75117,75147,75176,75206,75235,75264,75294,75323,75353,75383,75412,75442,75472,75501,75531,75560,75590,75619,75648,75678,75707,75737,75766,75796,75826,75856,75885,75915,75944,75974,76003,76032,76062,76091,76121,76150,76180,76210,76239,76269,76299,76328,76358,76387,76416,76446,76475,76505,76534,76564,76593,76623,76653,76682,76712,76741,76771,76801,76830,76859,76889,76918,76948,76977,77007,77036,77066,77096,77125,77155,77185,77214,77243,77273,77302,77332,77361,77390,77420,77450,77479,77509,77539,77569,77598,77627,77657,77686,77715,77745,77774,77804,77833,77863,77893,77923,77952,77982,78011,78041,78070,78099,78129,78158,78188,78217,78247,78277,78307,78336,78366,78395,78425,78454,78483,78513,78542,78572,78601,78631,78661,78690,78720,78750,78779,78808,78838,78867,78897,78926,78956,78985,79015,79044,79074,79104,79133,79163,79192,79222,79251,79281,79310,79340,79369,79399,79428,79458,79487,79517,79546,79576,79606,79635,79665,79695,79724,79753,79783,79812,79841,79871,79900,79930,79960,79990]},{"../main":621,"object-assign":499}],621:[function(t,e,r){var n=t("object-assign");function i(){this.regionalOptions=[],this.regionalOptions[""]={invalidCalendar:"Calendar {0} not found",invalidDate:"Invalid {0} date",invalidMonth:"Invalid {0} month",invalidYear:"Invalid {0} year",differentCalendars:"Cannot mix {0} and {1} dates"},this.local=this.regionalOptions[""],this.calendars={},this._localCals={}}function a(t,e,r,n){if(this._calendar=t,this._year=e,this._month=r,this._day=n,0===this._calendar._validateLevel&&!this._calendar.isValid(this._year,this._month,this._day))throw(c.local.invalidDate||c.regionalOptions[""].invalidDate).replace(/\{0\}/,this._calendar.local.name)}function o(t,e){return"000000".substring(0,e-(t=""+t).length)+t}function s(){this.shortYearCutoff="+10"}function l(t){this.local=this.regionalOptions[t]||this.regionalOptions[""]}n(i.prototype,{instance:function(t,e){t=(t||"gregorian").toLowerCase(),e=e||"";var r=this._localCals[t+"-"+e];if(!r&&this.calendars[t]&&(r=new this.calendars[t](e),this._localCals[t+"-"+e]=r),!r)throw(this.local.invalidCalendar||this.regionalOptions[""].invalidCalendar).replace(/\{0\}/,t);return r},newDate:function(t,e,r,n,i){return(n=(null!=t&&t.year?t.calendar():"string"==typeof n?this.instance(n,i):n)||this.instance()).newDate(t,e,r)},substituteDigits:function(t){return function(e){return(e+"").replace(/[0-9]/g,(function(e){return t[e]}))}},substituteChineseDigits:function(t,e){return function(r){for(var n="",i=0;r>0;){var a=r%10;n=(0===a?"":t[a]+e[i])+n,i++,r=Math.floor(r/10)}return 0===n.indexOf(t[1]+e[1])&&(n=n.substr(1)),n||t[0]}}}),n(a.prototype,{newDate:function(t,e,r){return this._calendar.newDate(null==t?this:t,e,r)},year:function(t){return 0===arguments.length?this._year:this.set(t,"y")},month:function(t){return 0===arguments.length?this._month:this.set(t,"m")},day:function(t){return 0===arguments.length?this._day:this.set(t,"d")},date:function(t,e,r){if(!this._calendar.isValid(t,e,r))throw(c.local.invalidDate||c.regionalOptions[""].invalidDate).replace(/\{0\}/,this._calendar.local.name);return this._year=t,this._month=e,this._day=r,this},leapYear:function(){return this._calendar.leapYear(this)},epoch:function(){return this._calendar.epoch(this)},formatYear:function(){return this._calendar.formatYear(this)},monthOfYear:function(){return this._calendar.monthOfYear(this)},weekOfYear:function(){return this._calendar.weekOfYear(this)},daysInYear:function(){return this._calendar.daysInYear(this)},dayOfYear:function(){return this._calendar.dayOfYear(this)},daysInMonth:function(){return this._calendar.daysInMonth(this)},dayOfWeek:function(){return this._calendar.dayOfWeek(this)},weekDay:function(){return this._calendar.weekDay(this)},extraInfo:function(){return this._calendar.extraInfo(this)},add:function(t,e){return this._calendar.add(this,t,e)},set:function(t,e){return this._calendar.set(this,t,e)},compareTo:function(t){if(this._calendar.name!==t._calendar.name)throw(c.local.differentCalendars||c.regionalOptions[""].differentCalendars).replace(/\{0\}/,this._calendar.local.name).replace(/\{1\}/,t._calendar.local.name);var e=this._year!==t._year?this._year-t._year:this._month!==t._month?this.monthOfYear()-t.monthOfYear():this._day-t._day;return 0===e?0:e<0?-1:1},calendar:function(){return this._calendar},toJD:function(){return this._calendar.toJD(this)},fromJD:function(t){return this._calendar.fromJD(t)},toJSDate:function(){return this._calendar.toJSDate(this)},fromJSDate:function(t){return this._calendar.fromJSDate(t)},toString:function(){return(this.year()<0?"-":"")+o(Math.abs(this.year()),4)+"-"+o(this.month(),2)+"-"+o(this.day(),2)}}),n(s.prototype,{_validateLevel:0,newDate:function(t,e,r){return null==t?this.today():(t.year&&(this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[""].invalidDate),r=t.day(),e=t.month(),t=t.year()),new a(this,t,e,r))},today:function(){return this.fromJSDate(new Date)},epoch:function(t){return this._validate(t,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[""].invalidYear).year()<0?this.local.epochs[0]:this.local.epochs[1]},formatYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[""].invalidYear);return(e.year()<0?"-":"")+o(Math.abs(e.year()),4)},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[""].invalidYear),12},monthOfYear:function(t,e){var r=this._validate(t,e,this.minDay,c.local.invalidMonth||c.regionalOptions[""].invalidMonth);return(r.month()+this.monthsInYear(r)-this.firstMonth)%this.monthsInYear(r)+this.minMonth},fromMonthOfYear:function(t,e){var r=(e+this.firstMonth-2*this.minMonth)%this.monthsInYear(t)+this.minMonth;return this._validate(t,r,this.minDay,c.local.invalidMonth||c.regionalOptions[""].invalidMonth),r},daysInYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[""].invalidYear);return this.leapYear(e)?366:365},dayOfYear:function(t,e,r){var n=this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[""].invalidDate);return n.toJD()-this.newDate(n.year(),this.fromMonthOfYear(n.year(),this.minMonth),this.minDay).toJD()+1},daysInWeek:function(){return 7},dayOfWeek:function(t,e,r){var n=this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[""].invalidDate);return(Math.floor(this.toJD(n))+2)%this.daysInWeek()},extraInfo:function(t,e,r){return this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[""].invalidDate),{}},add:function(t,e,r){return this._validate(t,this.minMonth,this.minDay,c.local.invalidDate||c.regionalOptions[""].invalidDate),this._correctAdd(t,this._add(t,e,r),e,r)},_add:function(t,e,r){if(this._validateLevel++,"d"===r||"w"===r){var n=t.toJD()+e*("w"===r?this.daysInWeek():1),i=t.calendar().fromJD(n);return this._validateLevel--,[i.year(),i.month(),i.day()]}try{var a=t.year()+("y"===r?e:0),o=t.monthOfYear()+("m"===r?e:0);i=t.day();"y"===r?(t.month()!==this.fromMonthOfYear(a,o)&&(o=this.newDate(a,t.month(),this.minDay).monthOfYear()),o=Math.min(o,this.monthsInYear(a)),i=Math.min(i,this.daysInMonth(a,this.fromMonthOfYear(a,o)))):"m"===r&&(!function(t){for(;oe-1+t.minMonth;)a++,o-=e,e=t.monthsInYear(a)}(this),i=Math.min(i,this.daysInMonth(a,this.fromMonthOfYear(a,o))));var s=[a,this.fromMonthOfYear(a,o),i];return this._validateLevel--,s}catch(t){throw this._validateLevel--,t}},_correctAdd:function(t,e,r,n){if(!(this.hasYearZero||"y"!==n&&"m"!==n||0!==e[0]&&t.year()>0==e[0]>0)){var i={y:[1,1,"y"],m:[1,this.monthsInYear(-1),"m"],w:[this.daysInWeek(),this.daysInYear(-1),"d"],d:[1,this.daysInYear(-1),"d"]}[n],a=r<0?-1:1;e=this._add(t,r*i[0]+a*i[1],i[2])}return t.date(e[0],e[1],e[2])},set:function(t,e,r){this._validate(t,this.minMonth,this.minDay,c.local.invalidDate||c.regionalOptions[""].invalidDate);var n="y"===r?e:t.year(),i="m"===r?e:t.month(),a="d"===r?e:t.day();return"y"!==r&&"m"!==r||(a=Math.min(a,this.daysInMonth(n,i))),t.date(n,i,a)},isValid:function(t,e,r){this._validateLevel++;var n=this.hasYearZero||0!==t;if(n){var i=this.newDate(t,e,this.minDay);n=e>=this.minMonth&&e-this.minMonth=this.minDay&&r-this.minDay13.5?13:1),c=i-(l>2.5?4716:4715);return c<=0&&c--,this.newDate(c,l,s)},toJSDate:function(t,e,r){var n=this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[""].invalidDate),i=new Date(n.year(),n.month()-1,n.day());return i.setHours(0),i.setMinutes(0),i.setSeconds(0),i.setMilliseconds(0),i.setHours(i.getHours()>12?i.getHours()+2:0),i},fromJSDate:function(t){return this.newDate(t.getFullYear(),t.getMonth()+1,t.getDate())}});var c=e.exports=new i;c.cdate=a,c.baseCalendar=s,c.calendars.gregorian=l},{"object-assign":499}],622:[function(t,e,r){var n=t("object-assign"),i=t("./main");n(i.regionalOptions[""],{invalidArguments:"Invalid arguments",invalidFormat:"Cannot format a date from another calendar",missingNumberAt:"Missing number at position {0}",unknownNameAt:"Unknown name at position {0}",unexpectedLiteralAt:"Unexpected literal at position {0}",unexpectedText:"Additional text found at end"}),i.local=i.regionalOptions[""],n(i.cdate.prototype,{formatDate:function(t,e){return"string"!=typeof t&&(e=t,t=""),this._calendar.formatDate(t||"",this,e)}}),n(i.baseCalendar.prototype,{UNIX_EPOCH:i.instance().newDate(1970,1,1).toJD(),SECS_PER_DAY:86400,TICKS_EPOCH:i.instance().jdEpoch,TICKS_PER_DAY:864e9,ATOM:"yyyy-mm-dd",COOKIE:"D, dd M yyyy",FULL:"DD, MM d, yyyy",ISO_8601:"yyyy-mm-dd",JULIAN:"J",RFC_822:"D, d M yy",RFC_850:"DD, dd-M-yy",RFC_1036:"D, d M yy",RFC_1123:"D, d M yyyy",RFC_2822:"D, d M yyyy",RSS:"D, d M yy",TICKS:"!",TIMESTAMP:"@",W3C:"yyyy-mm-dd",formatDate:function(t,e,r){if("string"!=typeof t&&(r=e,e=t,t=""),!e)return"";if(e.calendar()!==this)throw i.local.invalidFormat||i.regionalOptions[""].invalidFormat;t=t||this.local.dateFormat;for(var n,a,o,s,l=(r=r||{}).dayNamesShort||this.local.dayNamesShort,c=r.dayNames||this.local.dayNames,u=r.monthNumbers||this.local.monthNumbers,f=r.monthNamesShort||this.local.monthNamesShort,h=r.monthNames||this.local.monthNames,p=(r.calculateWeek||this.local.calculateWeek,function(e,r){for(var n=1;w+n1}),d=function(t,e,r,n){var i=""+e;if(p(t,n))for(;i.length1},x=function(t,r){var n=y(t,r),a=[2,3,n?4:2,n?4:2,10,11,20]["oyYJ@!".indexOf(t)+1],o=new RegExp("^-?\\d{1,"+a+"}"),s=e.substring(M).match(o);if(!s)throw(i.local.missingNumberAt||i.regionalOptions[""].missingNumberAt).replace(/\{0\}/,M);return M+=s[0].length,parseInt(s[0],10)},b=this,_=function(){if("function"==typeof l){y("m");var t=l.call(b,e.substring(M));return M+=t.length,t}return x("m")},w=function(t,r,n,a){for(var o=y(t,a)?n:r,s=0;s-1){p=1,d=g;for(var E=this.daysInMonth(h,p);d>E;E=this.daysInMonth(h,p))p++,d-=E}return f>-1?this.fromJD(f):this.newDate(h,p,d)},determineDate:function(t,e,r,n,i){r&&"object"!=typeof r&&(i=n,n=r,r=null),"string"!=typeof n&&(i=n,n="");var a=this;return e=e?e.newDate():null,t=null==t?e:"string"==typeof t?function(t){try{return a.parseDate(n,t,i)}catch(t){}for(var e=((t=t.toLowerCase()).match(/^c/)&&r?r.newDate():null)||a.today(),o=/([+-]?[0-9]+)\s*(d|w|m|y)?/g,s=o.exec(t);s;)e.add(parseInt(s[1],10),s[2]||"d"),s=o.exec(t);return e}(t):"number"==typeof t?isNaN(t)||t===1/0||t===-1/0?e:a.today().add(t,"d"):a.newDate(t)}})},{"./main":621,"object-assign":499}],623:[function(t,e,r){e.exports=t("cwise-compiler")({args:["array",{offset:[1],array:0},"scalar","scalar","index"],pre:{body:"{}",args:[],thisVars:[],localVars:[]},post:{body:"{}",args:[],thisVars:[],localVars:[]},body:{body:"{\n var _inline_1_da = _inline_1_arg0_ - _inline_1_arg3_\n var _inline_1_db = _inline_1_arg1_ - _inline_1_arg3_\n if((_inline_1_da >= 0) !== (_inline_1_db >= 0)) {\n _inline_1_arg2_.push(_inline_1_arg4_[0] + 0.5 + 0.5 * (_inline_1_da + _inline_1_db) / (_inline_1_da - _inline_1_db))\n }\n }",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:1},{name:"_inline_1_arg1_",lvalue:!1,rvalue:!0,count:1},{name:"_inline_1_arg2_",lvalue:!1,rvalue:!0,count:1},{name:"_inline_1_arg3_",lvalue:!1,rvalue:!0,count:2},{name:"_inline_1_arg4_",lvalue:!1,rvalue:!0,count:1}],thisVars:[],localVars:["_inline_1_da","_inline_1_db"]},funcName:"zeroCrossings"})},{"cwise-compiler":151}],624:[function(t,e,r){"use strict";e.exports=function(t,e){var r=[];return e=+e||0,n(t.hi(t.shape[0]-1),r,e),r};var n=t("./lib/zc-core")},{"./lib/zc-core":623}],625:[function(t,e,r){"use strict";e.exports=[{path:"",backoff:0},{path:"M-2.4,-3V3L0.6,0Z",backoff:.6},{path:"M-3.7,-2.5V2.5L1.3,0Z",backoff:1.3},{path:"M-4.45,-3L-1.65,-0.2V0.2L-4.45,3L1.55,0Z",backoff:1.55},{path:"M-2.2,-2.2L-0.2,-0.2V0.2L-2.2,2.2L-1.4,3L1.6,0L-1.4,-3Z",backoff:1.6},{path:"M-4.4,-2.1L-0.6,-0.2V0.2L-4.4,2.1L-4,3L2,0L-4,-3Z",backoff:2},{path:"M2,0A2,2 0 1,1 0,-2A2,2 0 0,1 2,0Z",backoff:0,noRotate:!0},{path:"M2,2V-2H-2V2Z",backoff:0,noRotate:!0}]},{}],626:[function(t,e,r){"use strict";var n=t("./arrow_paths"),i=t("../../plots/font_attributes"),a=t("../../plots/cartesian/constants"),o=t("../../plot_api/plot_template").templatedArray;t("../../constants/axis_placeable_objects");e.exports=o("annotation",{visible:{valType:"boolean",dflt:!0,editType:"calc+arraydraw"},text:{valType:"string",editType:"calc+arraydraw"},textangle:{valType:"angle",dflt:0,editType:"calc+arraydraw"},font:i({editType:"calc+arraydraw",colorEditType:"arraydraw"}),width:{valType:"number",min:1,dflt:null,editType:"calc+arraydraw"},height:{valType:"number",min:1,dflt:null,editType:"calc+arraydraw"},opacity:{valType:"number",min:0,max:1,dflt:1,editType:"arraydraw"},align:{valType:"enumerated",values:["left","center","right"],dflt:"center",editType:"arraydraw"},valign:{valType:"enumerated",values:["top","middle","bottom"],dflt:"middle",editType:"arraydraw"},bgcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"arraydraw"},bordercolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"arraydraw"},borderpad:{valType:"number",min:0,dflt:1,editType:"calc+arraydraw"},borderwidth:{valType:"number",min:0,dflt:1,editType:"calc+arraydraw"},showarrow:{valType:"boolean",dflt:!0,editType:"calc+arraydraw"},arrowcolor:{valType:"color",editType:"arraydraw"},arrowhead:{valType:"integer",min:0,max:n.length,dflt:1,editType:"arraydraw"},startarrowhead:{valType:"integer",min:0,max:n.length,dflt:1,editType:"arraydraw"},arrowside:{valType:"flaglist",flags:["end","start"],extras:["none"],dflt:"end",editType:"arraydraw"},arrowsize:{valType:"number",min:.3,dflt:1,editType:"calc+arraydraw"},startarrowsize:{valType:"number",min:.3,dflt:1,editType:"calc+arraydraw"},arrowwidth:{valType:"number",min:.1,editType:"calc+arraydraw"},standoff:{valType:"number",min:0,dflt:0,editType:"calc+arraydraw"},startstandoff:{valType:"number",min:0,dflt:0,editType:"calc+arraydraw"},ax:{valType:"any",editType:"calc+arraydraw"},ay:{valType:"any",editType:"calc+arraydraw"},axref:{valType:"enumerated",dflt:"pixel",values:["pixel",a.idRegex.x.toString()],editType:"calc"},ayref:{valType:"enumerated",dflt:"pixel",values:["pixel",a.idRegex.y.toString()],editType:"calc"},xref:{valType:"enumerated",values:["paper",a.idRegex.x.toString()],editType:"calc"},x:{valType:"any",editType:"calc+arraydraw"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"auto",editType:"calc+arraydraw"},xshift:{valType:"number",dflt:0,editType:"calc+arraydraw"},yref:{valType:"enumerated",values:["paper",a.idRegex.y.toString()],editType:"calc"},y:{valType:"any",editType:"calc+arraydraw"},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"auto",editType:"calc+arraydraw"},yshift:{valType:"number",dflt:0,editType:"calc+arraydraw"},clicktoshow:{valType:"enumerated",values:[!1,"onoff","onout"],dflt:!1,editType:"arraydraw"},xclick:{valType:"any",editType:"arraydraw"},yclick:{valType:"any",editType:"arraydraw"},hovertext:{valType:"string",editType:"arraydraw"},hoverlabel:{bgcolor:{valType:"color",editType:"arraydraw"},bordercolor:{valType:"color",editType:"arraydraw"},font:i({editType:"arraydraw"}),editType:"arraydraw"},captureevents:{valType:"boolean",editType:"arraydraw"},editType:"calc",_deprecated:{ref:{valType:"string",editType:"calc"}}})},{"../../constants/axis_placeable_objects":746,"../../plot_api/plot_template":817,"../../plots/cartesian/constants":834,"../../plots/font_attributes":856,"./arrow_paths":625}],627:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../plots/cartesian/axes"),a=t("./draw").draw;function o(t){var e=t._fullLayout;n.filterVisible(e.annotations).forEach((function(e){var r=i.getFromId(t,e.xref),n=i.getFromId(t,e.yref),a=i.getRefType(e.xref),o=i.getRefType(e.yref);e._extremes={},"range"===a&&s(e,r),"range"===o&&s(e,n)}))}function s(t,e){var r,n=e._id,a=n.charAt(0),o=t[a],s=t["a"+a],l=t[a+"ref"],c=t["a"+a+"ref"],u=t["_"+a+"padplus"],f=t["_"+a+"padminus"],h={x:1,y:-1}[a]*t[a+"shift"],p=3*t.arrowsize*t.arrowwidth||0,d=p+h,g=p-h,m=3*t.startarrowsize*t.arrowwidth||0,v=m+h,y=m-h;if(c===l){var x=i.findExtremes(e,[e.r2c(o)],{ppadplus:d,ppadminus:g}),b=i.findExtremes(e,[e.r2c(s)],{ppadplus:Math.max(u,v),ppadminus:Math.max(f,y)});r={min:[x.min[0],b.min[0]],max:[x.max[0],b.max[0]]}}else v=s?v+s:v,y=s?y-s:y,r=i.findExtremes(e,[e.r2c(o)],{ppadplus:Math.max(u,d,v),ppadminus:Math.max(f,g,y)});t._extremes[n]=r}e.exports=function(t){var e=t._fullLayout;if(n.filterVisible(e.annotations).length&&t._fullData.length)return n.syncOrAsync([a,o],t)}},{"../../lib":778,"../../plots/cartesian/axes":828,"./draw":632}],628:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../registry"),a=t("../../plot_api/plot_template").arrayEditor;function o(t,e){var r,n,i,a,o,l,c,u=t._fullLayout.annotations,f=[],h=[],p=[],d=(e||[]).length;for(r=0;r0||r.explicitOff.length>0},onClick:function(t,e){var r,s,l=o(t,e),c=l.on,u=l.off.concat(l.explicitOff),f={},h=t._fullLayout.annotations;if(!c.length&&!u.length)return;for(r=0;r2/3?"right":"center"),{center:0,middle:0,left:.5,bottom:-.5,right:-.5,top:.5}[e]}for(var W=!1,X=["x","y"],Z=0;Z1)&&(nt===rt?((pt=it.r2fraction(e["a"+et]))<0||pt>1)&&(W=!0):W=!0),J=it._offset+it.r2p(e[et]),$=.5}else{var dt="domain"===ht;"x"===et?(Q=e[et],J=dt?it._offset+it._length*Q:J=T.l+T.w*Q):(Q=1-e[et],J=dt?it._offset+it._length*Q:J=T.t+T.h*Q),$=e.showarrow?.5:Q}if(e.showarrow){ft.head=J;var gt=e["a"+et];if(tt=ot*H(.5,e.xanchor)-st*H(.5,e.yanchor),nt===rt){var mt=l.getRefType(nt);"domain"===mt?("y"===et&&(gt=1-gt),ft.tail=it._offset+it._length*gt):"paper"===mt?"y"===et?(gt=1-gt,ft.tail=T.t+T.h*gt):ft.tail=T.l+T.w*gt:ft.tail=it._offset+it.r2p(gt),K=tt}else ft.tail=J+gt,K=tt+gt;ft.text=ft.tail+tt;var vt=w["x"===et?"width":"height"];if("paper"===rt&&(ft.head=o.constrain(ft.head,1,vt-1)),"pixel"===nt){var yt=-Math.max(ft.tail-3,ft.text),xt=Math.min(ft.tail+3,ft.text)-vt;yt>0?(ft.tail+=yt,ft.text+=yt):xt>0&&(ft.tail-=xt,ft.text-=xt)}ft.tail+=ut,ft.head+=ut}else K=tt=lt*H($,ct),ft.text=J+tt;ft.text+=ut,tt+=ut,K+=ut,e["_"+et+"padplus"]=lt/2+K,e["_"+et+"padminus"]=lt/2-K,e["_"+et+"size"]=lt,e["_"+et+"shift"]=tt}if(W)R.remove();else{var bt=0,_t=0;if("left"!==e.align&&(bt=(M-b)*("center"===e.align?.5:1)),"top"!==e.valign&&(_t=(D-_)*("middle"===e.valign?.5:1)),f)n.select("svg").attr({x:N+bt-1,y:N+_t}).call(u.setClipUrl,U?C:null,t);else{var wt=N+_t-g.top,Tt=N+bt-g.left;G.call(h.positionText,Tt,wt).call(u.setClipUrl,U?C:null,t)}V.select("rect").call(u.setRect,N,N,M,D),j.call(u.setRect,F/2,F/2,B-F,q-F),R.call(u.setTranslate,Math.round(L.x.text-B/2),Math.round(L.y.text-q/2)),z.attr({transform:"rotate("+I+","+L.x.text+","+L.y.text+")"});var kt,Mt=function(r,n){P.selectAll(".annotation-arrow-g").remove();var l=L.x.head,f=L.y.head,h=L.x.tail+r,p=L.y.tail+n,g=L.x.text+r,b=L.y.text+n,_=o.rotationXYMatrix(I,g,b),w=o.apply2DTransform(_),M=o.apply2DTransform2(_),C=+j.attr("width"),O=+j.attr("height"),D=g-.5*C,F=D+C,B=b-.5*O,N=B+O,U=[[D,B,D,N],[D,N,F,N],[F,N,F,B],[F,B,D,B]].map(M);if(!U.reduce((function(t,e){return t^!!o.segmentsIntersect(l,f,l+1e6,f+1e6,e[0],e[1],e[2],e[3])}),!1)){U.forEach((function(t){var e=o.segmentsIntersect(h,p,l,f,t[0],t[1],t[2],t[3]);e&&(h=e.x,p=e.y)}));var V=e.arrowwidth,q=e.arrowcolor,H=e.arrowside,G=P.append("g").style({opacity:c.opacity(q)}).classed("annotation-arrow-g",!0),Y=G.append("path").attr("d","M"+h+","+p+"L"+l+","+f).style("stroke-width",V+"px").call(c.stroke,c.rgb(q));if(m(Y,H,e),k.annotationPosition&&Y.node().parentNode&&!a){var W=l,X=f;if(e.standoff){var Z=Math.sqrt(Math.pow(l-h,2)+Math.pow(f-p,2));W+=e.standoff*(h-l)/Z,X+=e.standoff*(p-f)/Z}var J,K,Q=G.append("path").classed("annotation-arrow",!0).classed("anndrag",!0).classed("cursor-move",!0).attr({d:"M3,3H-3V-3H3ZM0,0L"+(h-W)+","+(p-X),transform:s(W,X)}).style("stroke-width",V+6+"px").call(c.stroke,"rgba(0,0,0,0)").call(c.fill,"rgba(0,0,0,0)");d.init({element:Q.node(),gd:t,prepFn:function(){var t=u.getTranslate(R);J=t.x,K=t.y,v&&v.autorange&&A(v._name+".autorange",!0),x&&x.autorange&&A(x._name+".autorange",!0)},moveFn:function(t,r){var n=w(J,K),i=n[0]+t,a=n[1]+r;R.call(u.setTranslate,i,a),S("x",y(v,t,"x",T,e)),S("y",y(x,r,"y",T,e)),e.axref===e.xref&&S("ax",y(v,t,"ax",T,e)),e.ayref===e.yref&&S("ay",y(x,r,"ay",T,e)),G.attr("transform",s(t,r)),z.attr({transform:"rotate("+I+","+i+","+a+")"})},doneFn:function(){i.call("_guiRelayout",t,E());var e=document.querySelector(".js-notes-box-panel");e&&e.redraw(e.selectedObj)}})}}};if(e.showarrow&&Mt(0,0),O)d.init({element:R.node(),gd:t,prepFn:function(){kt=z.attr("transform")},moveFn:function(t,r){var n="pointer";if(e.showarrow)e.axref===e.xref?S("ax",y(v,t,"ax",T,e)):S("ax",e.ax+t),e.ayref===e.yref?S("ay",y(x,r,"ay",T.w,e)):S("ay",e.ay+r),Mt(t,r);else{if(a)return;var i,o;if(v)i=y(v,t,"x",T,e);else{var l=e._xsize/T.w,c=e.x+(e._xshift-e.xshift)/T.w-l/2;i=d.align(c+t/T.w,l,0,1,e.xanchor)}if(x)o=y(x,r,"y",T,e);else{var u=e._ysize/T.h,f=e.y-(e._yshift+e.yshift)/T.h-u/2;o=d.align(f-r/T.h,u,0,1,e.yanchor)}S("x",i),S("y",o),v&&x||(n=d.getCursor(v?.5:i,x?.5:o,e.xanchor,e.yanchor))}z.attr({transform:s(t,r)+kt}),p(R,n)},clickFn:function(r,n){e.captureevents&&t.emit("plotly_clickannotation",Y(n))},doneFn:function(){p(R),i.call("_guiRelayout",t,E());var e=document.querySelector(".js-notes-box-panel");e&&e.redraw(e.selectedObj)}})}}}e.exports={draw:function(t){var e=t._fullLayout;e._infolayer.selectAll(".annotation").remove();for(var r=0;r=0,x=e.indexOf("end")>=0,b=d.backoff*m+r.standoff,_=g.backoff*v+r.startstandoff;if("line"===p.nodeName){o={x:+t.attr("x1"),y:+t.attr("y1")},u={x:+t.attr("x2"),y:+t.attr("y2")};var w=o.x-u.x,T=o.y-u.y;if(h=(f=Math.atan2(T,w))+Math.PI,b&&_&&b+_>Math.sqrt(w*w+T*T))return void O();if(b){if(b*b>w*w+T*T)return void O();var k=b*Math.cos(f),M=b*Math.sin(f);u.x+=k,u.y+=M,t.attr({x2:u.x,y2:u.y})}if(_){if(_*_>w*w+T*T)return void O();var A=_*Math.cos(f),S=_*Math.sin(f);o.x-=A,o.y-=S,t.attr({x1:o.x,y1:o.y})}}else if("path"===p.nodeName){var E=p.getTotalLength(),C="";if(E1){c=!0;break}}c?t.fullLayout._infolayer.select(".annotation-"+t.id+'[data-index="'+s+'"]').remove():(l._pdata=i(t.glplot.cameraParams,[e.xaxis.r2l(l.x)*r[0],e.yaxis.r2l(l.y)*r[1],e.zaxis.r2l(l.z)*r[2]]),n(t.graphDiv,l,s,t.id,l._xa,l._ya))}}},{"../../plots/gl3d/project":879,"../annotations/draw":632}],639:[function(t,e,r){"use strict";var n=t("../../registry"),i=t("../../lib");e.exports={moduleType:"component",name:"annotations3d",schema:{subplots:{scene:{annotations:t("./attributes")}}},layoutAttributes:t("./attributes"),handleDefaults:t("./defaults"),includeBasePlot:function(t,e){var r=n.subplotsRegistry.gl3d;if(!r)return;for(var a=r.attrRegex,o=Object.keys(t),s=0;s=0))return t;if(3===o)n[o]>1&&(n[o]=1);else if(n[o]>=1)return t}var s=Math.round(255*n[0])+", "+Math.round(255*n[1])+", "+Math.round(255*n[2]);return a?"rgba("+s+", "+n[3]+")":"rgb("+s+")"}a.tinyRGB=function(t){var e=t.toRgb();return"rgb("+Math.round(e.r)+", "+Math.round(e.g)+", "+Math.round(e.b)+")"},a.rgb=function(t){return a.tinyRGB(n(t))},a.opacity=function(t){return t?n(t).getAlpha():0},a.addOpacity=function(t,e){var r=n(t).toRgb();return"rgba("+Math.round(r.r)+", "+Math.round(r.g)+", "+Math.round(r.b)+", "+e+")"},a.combine=function(t,e){var r=n(t).toRgb();if(1===r.a)return n(t).toRgbString();var i=n(e||l).toRgb(),a=1===i.a?i:{r:255*(1-i.a)+i.r*i.a,g:255*(1-i.a)+i.g*i.a,b:255*(1-i.a)+i.b*i.a},o={r:a.r*(1-r.a)+r.r*r.a,g:a.g*(1-r.a)+r.g*r.a,b:a.b*(1-r.a)+r.b*r.a};return n(o).toRgbString()},a.contrast=function(t,e,r){var i=n(t);return 1!==i.getAlpha()&&(i=n(a.combine(t,l))),(i.isDark()?e?i.lighten(e):l:r?i.darken(r):s).toString()},a.stroke=function(t,e){var r=n(e);t.style({stroke:a.tinyRGB(r),"stroke-opacity":r.getAlpha()})},a.fill=function(t,e){var r=n(e);t.style({fill:a.tinyRGB(r),"fill-opacity":r.getAlpha()})},a.clean=function(t){if(t&&"object"==typeof t){var e,r,n,i,o=Object.keys(t);for(e=0;e0?n>=l:n<=l));i++)n>u&&n0?n>=l:n<=l));i++)n>r[0]&&n1){var J=Math.pow(10,Math.floor(Math.log(Z)/Math.LN10));W*=J*c.roundUp(Z/J,[2,5,10]),(Math.abs(L.start)/L.size+1e-6)%1<2e-6&&(Y.tick0=0)}Y.dtick=W}Y.domain=[q+j,q+F-j],Y.setScale(),t.attr("transform",u(Math.round(l.l),Math.round(l.t)));var K,Q=t.select("."+M.cbtitleunshift).attr("transform",u(-Math.round(l.l),-Math.round(l.t))),$=t.select("."+M.cbaxis),tt=0;function et(n,i){var a={propContainer:Y,propName:e._propPrefix+"title",traceIndex:e._traceIndex,_meta:e._meta,placeholder:o._dfltTitle.colorbar,containerGroup:t.select("."+M.cbtitle)},s="h"===n.charAt(0)?n.substr(1):"h"+n;t.selectAll("."+s+",."+s+"-math-group").remove(),g.draw(r,n,f(a,i||{}))}return c.syncOrAsync([a.previousPromises,function(){if(-1!==["top","bottom"].indexOf(A)){var t,r=l.l+(e.x+B)*l.w,n=Y.title.font.size;t="top"===A?(1-(q+F-j))*l.h+l.t+3+.75*n:(1-(q+j))*l.h+l.t-3-.25*n,et(Y._id+"title",{attributes:{x:r,y:t,"text-anchor":"start"}})}},function(){if(-1!==["top","bottom"].indexOf(A)){var a=t.select("."+M.cbtitle),o=a.select("text"),f=[-e.outlinewidth/2,e.outlinewidth/2],h=a.select(".h"+Y._id+"title-math-group").node(),d=15.6;if(o.node()&&(d=parseInt(o.node().style.fontSize,10)*w),h?(tt=p.bBox(h).height)>d&&(f[1]-=(tt-d)/2):o.node()&&!o.classed(M.jsPlaceholder)&&(tt=p.bBox(o.node()).height),tt){if(tt+=5,"top"===A)Y.domain[1]-=tt/l.h,f[1]*=-1;else{Y.domain[0]+=tt/l.h;var g=m.lineCount(o);f[1]+=(1-g)*d}a.attr("transform",u(f[0],f[1])),Y.setScale()}}t.selectAll("."+M.cbfills+",."+M.cblines).attr("transform",u(0,Math.round(l.h*(1-Y.domain[1])))),$.attr("transform",u(0,Math.round(-l.t)));var y=t.select("."+M.cbfills).selectAll("rect."+M.cbfill).attr("style","").data(P);y.enter().append("rect").classed(M.cbfill,!0).style("stroke","none"),y.exit().remove();var x=S.map(Y.c2p).map(Math.round).sort((function(t,e){return t-e}));y.each((function(t,a){var o=[0===a?S[0]:(P[a]+P[a-1])/2,a===P.length-1?S[1]:(P[a]+P[a+1])/2].map(Y.c2p).map(Math.round);o[1]=c.constrain(o[1]+(o[1]>o[0])?1:-1,x[0],x[1]);var s=n.select(this).attr({x:U,width:Math.max(O,2),y:n.min(o),height:Math.max(n.max(o)-n.min(o),2)});if(e._fillgradient)p.gradient(s,r,e._id,"vertical",e._fillgradient,"fill");else{var l=C(t).replace("e-","");s.attr("fill",i(l).toHexString())}}));var b=t.select("."+M.cblines).selectAll("path."+M.cbline).data(v.color&&v.width?z:[]);b.enter().append("path").classed(M.cbline,!0),b.exit().remove(),b.each((function(t){n.select(this).attr("d","M"+U+","+(Math.round(Y.c2p(t))+v.width/2%1)+"h"+O).call(p.lineGroupStyle,v.width,E(t),v.dash)})),$.selectAll("g."+Y._id+"tick,path").remove();var _=U+O+(e.outlinewidth||0)/2-("outside"===e.ticks?1:0),T=s.calcTicks(Y),k=s.getTickSigns(Y)[2];return s.drawTicks(r,Y,{vals:"inside"===Y.ticks?s.clipEnds(Y,T):T,layer:$,path:s.makeTickPath(Y,_,k),transFn:s.makeTransTickFn(Y)}),s.drawLabels(r,Y,{vals:T,layer:$,transFn:s.makeTransTickLabelFn(Y),labelFns:s.makeLabelFns(Y,_)})},function(){if(-1===["top","bottom"].indexOf(A)){var t=Y.title.font.size,e=Y._offset+Y._length/2,i=l.l+(Y.position||0)*l.w+("right"===Y.side?10+t*(Y.showticklabels?1:.5):-10-t*(Y.showticklabels?.5:0));et("h"+Y._id+"title",{avoid:{selection:n.select(r).selectAll("g."+Y._id+"tick"),side:A,offsetLeft:l.l,offsetTop:0,maxShift:o.width},attributes:{x:i,y:e,"text-anchor":"middle"},transform:{rotate:"-90",offset:0}})}},a.previousPromises,function(){var n=O+e.outlinewidth/2;if(-1===Y.ticklabelposition.indexOf("inside")&&(n+=p.bBox($.node()).width),(K=Q.select("text")).node()&&!K.classed(M.jsPlaceholder)){var i,o=Q.select(".h"+Y._id+"title-math-group").node();i=o&&-1!==["top","bottom"].indexOf(A)?p.bBox(o).width:p.bBox(Q.node()).right-U-l.l,n=Math.max(n,i)}var s=2*e.xpad+n+e.borderwidth+e.outlinewidth/2,c=H-G;t.select("."+M.cbbg).attr({x:U-e.xpad-(e.borderwidth+e.outlinewidth)/2,y:G-N,width:Math.max(s,2),height:Math.max(c+2*N,2)}).call(d.fill,e.bgcolor).call(d.stroke,e.bordercolor).style("stroke-width",e.borderwidth),t.selectAll("."+M.cboutline).attr({x:U,y:G+e.ypad+("top"===A?tt:0),width:Math.max(O,2),height:Math.max(c-2*e.ypad-tt,2)}).call(d.stroke,e.outlinecolor).style({fill:"none","stroke-width":e.outlinewidth});var f=({center:.5,right:1}[e.xanchor]||0)*s;t.attr("transform",u(l.l-f,l.t));var h={},g=T[e.yanchor],m=k[e.yanchor];"pixels"===e.lenmode?(h.y=e.y,h.t=c*g,h.b=c*m):(h.t=h.b=0,h.yt=e.y+e.len*g,h.yb=e.y-e.len*m);var v=T[e.xanchor],y=k[e.xanchor];if("pixels"===e.thicknessmode)h.x=e.x,h.l=s*v,h.r=s*y;else{var x=s-O;h.l=x*v,h.r=x*y,h.xl=e.x-e.thickness*v,h.xr=e.x+e.thickness*y}a.autoMargin(r,e._id,h)}],r)}(r,e,t);v&&v.then&&(t._promises||[]).push(v),t._context.edits.colorbarPosition&&function(t,e,r){var n,i,a,s=r._fullLayout._size;l.init({element:t.node(),gd:r,prepFn:function(){n=t.attr("transform"),h(t)},moveFn:function(r,o){t.attr("transform",n+u(r,o)),i=l.align(e._xLeftFrac+r/s.w,e._thickFrac,0,1,e.xanchor),a=l.align(e._yBottomFrac-o/s.h,e._lenFrac,0,1,e.yanchor);var c=l.getCursor(i,a,e.xanchor,e.yanchor);h(t,c)},doneFn:function(){if(h(t),void 0!==i&&void 0!==a){var n={};n[e._propPrefix+"x"]=i,n[e._propPrefix+"y"]=a,void 0!==e._traceIndex?o.call("_guiRestyle",r,n,e._traceIndex):o.call("_guiRelayout",r,n)}}})}(r,e,t)})),e.exit().each((function(e){a.autoMargin(t,e._id)})).remove(),e.order()}}},{"../../constants/alignment":745,"../../lib":778,"../../lib/extend":768,"../../lib/setcursor":799,"../../lib/svg_text_utils":803,"../../plots/cartesian/axes":828,"../../plots/cartesian/axis_defaults":830,"../../plots/cartesian/layout_attributes":842,"../../plots/cartesian/position_defaults":845,"../../plots/plots":891,"../../registry":911,"../color":643,"../colorscale/helpers":654,"../dragelement":662,"../drawing":665,"../titles":738,"./constants":645,d3:169,tinycolor2:576}],648:[function(t,e,r){"use strict";var n=t("../../lib");e.exports=function(t){return n.isPlainObject(t.colorbar)}},{"../../lib":778}],649:[function(t,e,r){"use strict";e.exports={moduleType:"component",name:"colorbar",attributes:t("./attributes"),supplyDefaults:t("./defaults"),draw:t("./draw").draw,hasColorbar:t("./has_colorbar")}},{"./attributes":644,"./defaults":646,"./draw":647,"./has_colorbar":648}],650:[function(t,e,r){"use strict";var n=t("../colorbar/attributes"),i=t("../../lib/regex").counter,a=t("./scales.js").scales;Object.keys(a);function o(t){return"`"+t+"`"}e.exports=function(t,e){t=t||"";var r,s=(e=e||{}).cLetter||"c",l=("onlyIfNumerical"in e?e.onlyIfNumerical:Boolean(t),"noScale"in e?e.noScale:"marker.line"===t),c="showScaleDflt"in e?e.showScaleDflt:"z"===s,u="string"==typeof e.colorscaleDflt?a[e.colorscaleDflt]:null,f=e.editTypeOverride||"",h=t?t+".":"";"colorAttr"in e?(r=e.colorAttr,e.colorAttr):o(h+(r={z:"z",c:"color"}[s]));var p=s+"auto",d=s+"min",g=s+"max",m=s+"mid",v=(o(h+p),o(h+d),o(h+g),{});v[d]=v[g]=void 0;var y={};y[p]=!1;var x={};return"color"===r&&(x.color={valType:"color",arrayOk:!0,editType:f||"style"},e.anim&&(x.color.anim=!0)),x[p]={valType:"boolean",dflt:!0,editType:"calc",impliedEdits:v},x[d]={valType:"number",dflt:null,editType:f||"plot",impliedEdits:y},x[g]={valType:"number",dflt:null,editType:f||"plot",impliedEdits:y},x[m]={valType:"number",dflt:null,editType:"calc",impliedEdits:v},x.colorscale={valType:"colorscale",editType:"calc",dflt:u,impliedEdits:{autocolorscale:!1}},x.autocolorscale={valType:"boolean",dflt:!1!==e.autoColorDflt,editType:"calc",impliedEdits:{colorscale:void 0}},x.reversescale={valType:"boolean",dflt:!1,editType:"plot"},l||(x.showscale={valType:"boolean",dflt:c,editType:"calc"},x.colorbar=n),e.noColorAxis||(x.coloraxis={valType:"subplotid",regex:i("coloraxis"),dflt:null,editType:"calc"}),x}},{"../../lib/regex":795,"../colorbar/attributes":644,"./scales.js":658}],651:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("../../lib"),a=t("./helpers").extractOpts;e.exports=function(t,e,r){var o,s=t._fullLayout,l=r.vals,c=r.containerStr,u=c?i.nestedProperty(e,c).get():e,f=a(u),h=!1!==f.auto,p=f.min,d=f.max,g=f.mid,m=function(){return i.aggNums(Math.min,null,l)},v=function(){return i.aggNums(Math.max,null,l)};(void 0===p?p=m():h&&(p=u._colorAx&&n(p)?Math.min(p,m()):m()),void 0===d?d=v():h&&(d=u._colorAx&&n(d)?Math.max(d,v()):v()),h&&void 0!==g&&(d-g>g-p?p=g-(d-g):d-g=0?s.colorscale.sequential:s.colorscale.sequentialminus,f._sync("colorscale",o))}},{"../../lib":778,"./helpers":654,"fast-isnumeric":241}],652:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./helpers").hasColorscale,a=t("./helpers").extractOpts;e.exports=function(t,e){function r(t,e){var r=t["_"+e];void 0!==r&&(t[e]=r)}function o(t,i){var o=i.container?n.nestedProperty(t,i.container).get():t;if(o)if(o.coloraxis)o._colorAx=e[o.coloraxis];else{var s=a(o),l=s.auto;(l||void 0===s.min)&&r(o,i.min),(l||void 0===s.max)&&r(o,i.max),s.autocolorscale&&r(o,"colorscale")}}for(var s=0;s=0;n--,i++){var a=t[n];r[i]=[1-a[0],a[1]]}return r}function d(t,e){e=e||{};for(var r=t.domain,o=t.range,l=o.length,c=new Array(l),u=0;u4/3-s?o:s}},{}],660:[function(t,e,r){"use strict";var n=t("../../lib"),i=[["sw-resize","s-resize","se-resize"],["w-resize","move","e-resize"],["nw-resize","n-resize","ne-resize"]];e.exports=function(t,e,r,a){return t="left"===r?0:"center"===r?1:"right"===r?2:n.constrain(Math.floor(3*t),0,2),e="bottom"===a?0:"middle"===a?1:"top"===a?2:n.constrain(Math.floor(3*e),0,2),i[e][t]}},{"../../lib":778}],661:[function(t,e,r){"use strict";r.selectMode=function(t){return"lasso"===t||"select"===t},r.drawMode=function(t){return"drawclosedpath"===t||"drawopenpath"===t||"drawline"===t||"drawrect"===t||"drawcircle"===t},r.openMode=function(t){return"drawline"===t||"drawopenpath"===t},r.rectMode=function(t){return"select"===t||"drawline"===t||"drawrect"===t||"drawcircle"===t},r.freeMode=function(t){return"lasso"===t||"drawclosedpath"===t||"drawopenpath"===t},r.selectingOrDrawing=function(t){return r.freeMode(t)||r.rectMode(t)}},{}],662:[function(t,e,r){"use strict";var n=t("mouse-event-offset"),i=t("has-hover"),a=t("has-passive-events"),o=t("../../lib").removeElement,s=t("../../plots/cartesian/constants"),l=e.exports={};l.align=t("./align"),l.getCursor=t("./cursor");var c=t("./unhover");function u(){var t=document.createElement("div");t.className="dragcover";var e=t.style;return e.position="fixed",e.left=0,e.right=0,e.top=0,e.bottom=0,e.zIndex=999999999,e.background="none",document.body.appendChild(t),t}function f(t){return n(t.changedTouches?t.changedTouches[0]:t,document.body)}l.unhover=c.wrapped,l.unhoverRaw=c.raw,l.init=function(t){var e,r,n,c,h,p,d,g,m=t.gd,v=1,y=m._context.doubleClickDelay,x=t.element;m._mouseDownTime||(m._mouseDownTime=0),x.style.pointerEvents="all",x.onmousedown=_,a?(x._ontouchstart&&x.removeEventListener("touchstart",x._ontouchstart),x._ontouchstart=_,x.addEventListener("touchstart",_,{passive:!1})):x.ontouchstart=_;var b=t.clampFn||function(t,e,r){return Math.abs(t)y&&(v=Math.max(v-1,1)),m._dragged)t.doneFn&&t.doneFn();else if(t.clickFn&&t.clickFn(v,p),!g){var r;try{r=new MouseEvent("click",e)}catch(t){var n=f(e);(r=document.createEvent("MouseEvents")).initMouseEvent("click",e.bubbles,e.cancelable,e.view,e.detail,e.screenX,e.screenY,n[0],n[1],e.ctrlKey,e.altKey,e.shiftKey,e.metaKey,e.button,e.relatedTarget)}d.dispatchEvent(r)}m._dragging=!1,m._dragged=!1}else m._dragged=!1}},l.coverSlip=u},{"../../lib":778,"../../plots/cartesian/constants":834,"./align":659,"./cursor":660,"./unhover":663,"has-hover":440,"has-passive-events":441,"mouse-event-offset":484}],663:[function(t,e,r){"use strict";var n=t("../../lib/events"),i=t("../../lib/throttle"),a=t("../../lib/dom").getGraphDiv,o=t("../fx/constants"),s=e.exports={};s.wrapped=function(t,e,r){(t=a(t))._fullLayout&&i.clear(t._fullLayout._uid+o.HOVERID),s.raw(t,e,r)},s.raw=function(t,e){var r=t._fullLayout,i=t._hoverdata;e||(e={}),e.target&&!1===n.triggerHandler(t,"plotly_beforehover",e)||(r._hoverlayer.selectAll("g").remove(),r._hoverlayer.selectAll("line").remove(),r._hoverlayer.selectAll("circle").remove(),t._hoverdata=void 0,e.target&&i&&t.emit("plotly_unhover",{event:e,points:i}))}},{"../../lib/dom":766,"../../lib/events":767,"../../lib/throttle":804,"../fx/constants":677}],664:[function(t,e,r){"use strict";r.dash={valType:"string",values:["solid","dot","dash","longdash","dashdot","longdashdot"],dflt:"solid",editType:"style"}},{}],665:[function(t,e,r){"use strict";var n=t("d3"),i=t("fast-isnumeric"),a=t("tinycolor2"),o=t("../../registry"),s=t("../color"),l=t("../colorscale"),c=t("../../lib"),u=c.strTranslate,f=t("../../lib/svg_text_utils"),h=t("../../constants/xmlns_namespaces"),p=t("../../constants/alignment").LINE_SPACING,d=t("../../constants/interactions").DESELECTDIM,g=t("../../traces/scatter/subtypes"),m=t("../../traces/scatter/make_bubble_size_func"),v=t("../../components/fx/helpers").appendArrayPointValue,y=e.exports={};y.font=function(t,e,r,n){c.isPlainObject(e)&&(n=e.color,r=e.size,e=e.family),e&&t.style("font-family",e),r+1&&t.style("font-size",r+"px"),n&&t.call(s.fill,n)},y.setPosition=function(t,e,r){t.attr("x",e).attr("y",r)},y.setSize=function(t,e,r){t.attr("width",e).attr("height",r)},y.setRect=function(t,e,r,n,i){t.call(y.setPosition,e,r).call(y.setSize,n,i)},y.translatePoint=function(t,e,r,n){var a=r.c2p(t.x),o=n.c2p(t.y);return!!(i(a)&&i(o)&&e.node())&&("text"===e.node().nodeName?e.attr("x",a).attr("y",o):e.attr("transform",u(a,o)),!0)},y.translatePoints=function(t,e,r){t.each((function(t){var i=n.select(this);y.translatePoint(t,i,e,r)}))},y.hideOutsideRangePoint=function(t,e,r,n,i,a){e.attr("display",r.isPtWithinRange(t,i)&&n.isPtWithinRange(t,a)?null:"none")},y.hideOutsideRangePoints=function(t,e){if(e._hasClipOnAxisFalse){var r=e.xaxis,i=e.yaxis;t.each((function(e){var a=e[0].trace,s=a.xcalendar,l=a.ycalendar,c=o.traceIs(a,"bar-like")?".bartext":".point,.textpoint";t.selectAll(c).each((function(t){y.hideOutsideRangePoint(t,n.select(this),r,i,s,l)}))}))}},y.crispRound=function(t,e,r){return e&&i(e)?t._context.staticPlot?e:e<1?1:Math.round(e):r||0},y.singleLineStyle=function(t,e,r,n,i){e.style("fill","none");var a=(((t||[])[0]||{}).trace||{}).line||{},o=r||a.width||0,l=i||a.dash||"";s.stroke(e,n||a.color),y.dashLine(e,l,o)},y.lineGroupStyle=function(t,e,r,i){t.style("fill","none").each((function(t){var a=(((t||[])[0]||{}).trace||{}).line||{},o=e||a.width||0,l=i||a.dash||"";n.select(this).call(s.stroke,r||a.color).call(y.dashLine,l,o)}))},y.dashLine=function(t,e,r){r=+r||0,e=y.dashStyle(e,r),t.style({"stroke-dasharray":e,"stroke-width":r+"px"})},y.dashStyle=function(t,e){e=+e||1;var r=Math.max(e,3);return"solid"===t?t="":"dot"===t?t=r+"px,"+r+"px":"dash"===t?t=3*r+"px,"+3*r+"px":"longdash"===t?t=5*r+"px,"+5*r+"px":"dashdot"===t?t=3*r+"px,"+r+"px,"+r+"px,"+r+"px":"longdashdot"===t&&(t=5*r+"px,"+2*r+"px,"+r+"px,"+2*r+"px"),t},y.singleFillStyle=function(t){var e=(((n.select(t.node()).data()[0]||[])[0]||{}).trace||{}).fillcolor;e&&t.call(s.fill,e)},y.fillGroupStyle=function(t){t.style("stroke-width",0).each((function(t){var e=n.select(this);t[0].trace&&e.call(s.fill,t[0].trace.fillcolor)}))};var x=t("./symbol_defs");y.symbolNames=[],y.symbolFuncs=[],y.symbolNeedLines={},y.symbolNoDot={},y.symbolNoFill={},y.symbolList=[],Object.keys(x).forEach((function(t){var e=x[t],r=e.n;y.symbolList.push(r,String(r),t,r+100,String(r+100),t+"-open"),y.symbolNames[r]=t,y.symbolFuncs[r]=e.f,e.needLine&&(y.symbolNeedLines[r]=!0),e.noDot?y.symbolNoDot[r]=!0:y.symbolList.push(r+200,String(r+200),t+"-dot",r+300,String(r+300),t+"-open-dot"),e.noFill&&(y.symbolNoFill[r]=!0)}));var b=y.symbolNames.length;function _(t,e){var r=t%100;return y.symbolFuncs[r](e)+(t>=200?"M0,0.5L0.5,0L0,-0.5L-0.5,0Z":"")}y.symbolNumber=function(t){if(i(t))t=+t;else if("string"==typeof t){var e=0;t.indexOf("-open")>0&&(e=100,t=t.replace("-open","")),t.indexOf("-dot")>0&&(e+=200,t=t.replace("-dot","")),(t=y.symbolNames.indexOf(t))>=0&&(t+=e)}return t%100>=b||t>=400?0:Math.floor(Math.max(t,0))};var w={x1:1,x2:0,y1:0,y2:0},T={x1:0,x2:0,y1:1,y2:0},k=n.format("~.1f"),M={radial:{node:"radialGradient"},radialreversed:{node:"radialGradient",reversed:!0},horizontal:{node:"linearGradient",attrs:w},horizontalreversed:{node:"linearGradient",attrs:w,reversed:!0},vertical:{node:"linearGradient",attrs:T},verticalreversed:{node:"linearGradient",attrs:T,reversed:!0}};y.gradient=function(t,e,r,i,o,l){for(var u=o.length,f=M[i],h=new Array(u),p=0;p"+v(t);d._gradientUrlQueryParts[y]=1},y.initGradients=function(t){var e=t._fullLayout;c.ensureSingle(e._defs,"g","gradients").selectAll("linearGradient,radialGradient").remove(),e._gradientUrlQueryParts={}},y.pointStyle=function(t,e,r){if(t.size()){var i=y.makePointStyleFns(e);t.each((function(t){y.singlePointStyle(t,n.select(this),e,i,r)}))}},y.singlePointStyle=function(t,e,r,n,i){var a=r.marker,o=a.line;if(e.style("opacity",n.selectedOpacityFn?n.selectedOpacityFn(t):void 0===t.mo?a.opacity:t.mo),n.ms2mrc){var l;l="various"===t.ms||"various"===a.size?3:n.ms2mrc(t.ms),t.mrc=l,n.selectedSizeFn&&(l=t.mrc=n.selectedSizeFn(t));var u=y.symbolNumber(t.mx||a.symbol)||0;t.om=u%200>=100,e.attr("d",_(u,l))}var f,h,p,d=!1;if(t.so)p=o.outlierwidth,h=o.outliercolor,f=a.outliercolor;else{var g=(o||{}).width;p=(t.mlw+1||g+1||(t.trace?(t.trace.marker.line||{}).width:0)+1)-1||0,h="mlc"in t?t.mlcc=n.lineScale(t.mlc):c.isArrayOrTypedArray(o.color)?s.defaultLine:o.color,c.isArrayOrTypedArray(a.color)&&(f=s.defaultLine,d=!0),f="mc"in t?t.mcc=n.markerScale(t.mc):a.color||"rgba(0,0,0,0)",n.selectedColorFn&&(f=n.selectedColorFn(t))}if(t.om)e.call(s.stroke,f).style({"stroke-width":(p||1)+"px",fill:"none"});else{e.style("stroke-width",(t.isBlank?0:p)+"px");var m=a.gradient,v=t.mgt;if(v?d=!0:v=m&&m.type,Array.isArray(v)&&(v=v[0],M[v]||(v=0)),v&&"none"!==v){var x=t.mgc;x?d=!0:x=m.color;var b=r.uid;d&&(b+="-"+t.i),y.gradient(e,i,b,v,[[0,x],[1,f]],"fill")}else s.fill(e,f);p&&s.stroke(e,h)}},y.makePointStyleFns=function(t){var e={},r=t.marker;return e.markerScale=y.tryColorscale(r,""),e.lineScale=y.tryColorscale(r,"line"),o.traceIs(t,"symbols")&&(e.ms2mrc=g.isBubble(t)?m(t):function(){return(r.size||6)/2}),t.selectedpoints&&c.extendFlat(e,y.makeSelectedPointStyleFns(t)),e},y.makeSelectedPointStyleFns=function(t){var e={},r=t.selected||{},n=t.unselected||{},i=t.marker||{},a=r.marker||{},s=n.marker||{},l=i.opacity,u=a.opacity,f=s.opacity,h=void 0!==u,p=void 0!==f;(c.isArrayOrTypedArray(l)||h||p)&&(e.selectedOpacityFn=function(t){var e=void 0===t.mo?i.opacity:t.mo;return t.selected?h?u:e:p?f:d*e});var g=i.color,m=a.color,v=s.color;(m||v)&&(e.selectedColorFn=function(t){var e=t.mcc||g;return t.selected?m||e:v||e});var y=i.size,x=a.size,b=s.size,_=void 0!==x,w=void 0!==b;return o.traceIs(t,"symbols")&&(_||w)&&(e.selectedSizeFn=function(t){var e=t.mrc||y/2;return t.selected?_?x/2:e:w?b/2:e}),e},y.makeSelectedTextStyleFns=function(t){var e={},r=t.selected||{},n=t.unselected||{},i=t.textfont||{},a=r.textfont||{},o=n.textfont||{},l=i.color,c=a.color,u=o.color;return e.selectedTextColorFn=function(t){var e=t.tc||l;return t.selected?c||e:u||(c?e:s.addOpacity(e,d))},e},y.selectedPointStyle=function(t,e){if(t.size()&&e.selectedpoints){var r=y.makeSelectedPointStyleFns(e),i=e.marker||{},a=[];r.selectedOpacityFn&&a.push((function(t,e){t.style("opacity",r.selectedOpacityFn(e))})),r.selectedColorFn&&a.push((function(t,e){s.fill(t,r.selectedColorFn(e))})),r.selectedSizeFn&&a.push((function(t,e){var n=e.mx||i.symbol||0,a=r.selectedSizeFn(e);t.attr("d",_(y.symbolNumber(n),a)),e.mrc2=a})),a.length&&t.each((function(t){for(var e=n.select(this),r=0;r0?r:0}y.textPointStyle=function(t,e,r){if(t.size()){var i;if(e.selectedpoints){var a=y.makeSelectedTextStyleFns(e);i=a.selectedTextColorFn}var o=e.texttemplate,s=r._fullLayout;t.each((function(t){var a=n.select(this),l=o?c.extractOption(t,e,"txt","texttemplate"):c.extractOption(t,e,"tx","text");if(l||0===l){if(o){var u=e._module.formatLabels?e._module.formatLabels(t,e,s):{},h={};v(h,e,t.i);var p=e._meta||{};l=c.texttemplateString(l,u,s._d3locale,h,t,p)}var d=t.tp||e.textposition,g=E(t,e),m=i?i(t):t.tc||e.textfont.color;a.call(y.font,t.tf||e.textfont.family,g,m).text(l).call(f.convertToTspans,r).call(S,d,g,t.mrc)}else a.remove()}))}},y.selectedTextStyle=function(t,e){if(t.size()&&e.selectedpoints){var r=y.makeSelectedTextStyleFns(e);t.each((function(t){var i=n.select(this),a=r.selectedTextColorFn(t),o=t.tp||e.textposition,l=E(t,e);s.fill(i,a),S(i,o,l,t.mrc2||t.mrc)}))}};function C(t,e,r,i){var a=t[0]-e[0],o=t[1]-e[1],s=r[0]-e[0],l=r[1]-e[1],c=Math.pow(a*a+o*o,.25),u=Math.pow(s*s+l*l,.25),f=(u*u*a-c*c*s)*i,h=(u*u*o-c*c*l)*i,p=3*u*(c+u),d=3*c*(c+u);return[[n.round(e[0]+(p&&f/p),2),n.round(e[1]+(p&&h/p),2)],[n.round(e[0]-(d&&f/d),2),n.round(e[1]-(d&&h/d),2)]]}y.smoothopen=function(t,e){if(t.length<3)return"M"+t.join("L");var r,n="M"+t[0],i=[];for(r=1;r=1e4&&(y.savedBBoxes={},P=0),r&&(y.savedBBoxes[r]=m),P++,c.extendFlat({},m)},y.setClipUrl=function(t,e,r){t.attr("clip-path",O(e,r))},y.getTranslate=function(t){var e=(t[t.attr?"attr":"getAttribute"]("transform")||"").replace(/.*\btranslate\((-?\d*\.?\d*)[^-\d]*(-?\d*\.?\d*)[^\d].*/,(function(t,e,r){return[e,r].join(" ")})).split(" ");return{x:+e[0]||0,y:+e[1]||0}},y.setTranslate=function(t,e,r){var n=t.attr?"attr":"getAttribute",i=t.attr?"attr":"setAttribute",a=t[n]("transform")||"";return e=e||0,r=r||0,a=a.replace(/(\btranslate\(.*?\);?)/,"").trim(),a=(a+=u(e,r)).trim(),t[i]("transform",a),a},y.getScale=function(t){var e=(t[t.attr?"attr":"getAttribute"]("transform")||"").replace(/.*\bscale\((\d*\.?\d*)[^\d]*(\d*\.?\d*)[^\d].*/,(function(t,e,r){return[e,r].join(" ")})).split(" ");return{x:+e[0]||1,y:+e[1]||1}},y.setScale=function(t,e,r){var n=t.attr?"attr":"getAttribute",i=t.attr?"attr":"setAttribute",a=t[n]("transform")||"";return e=e||1,r=r||1,a=a.replace(/(\bscale\(.*?\);?)/,"").trim(),a=(a+="scale("+e+","+r+")").trim(),t[i]("transform",a),a};var D=/\s*sc.*/;y.setPointGroupScale=function(t,e,r){if(e=e||1,r=r||1,t){var n=1===e&&1===r?"":"scale("+e+","+r+")";t.each((function(){var t=(this.getAttribute("transform")||"").replace(D,"");t=(t+=n).trim(),this.setAttribute("transform",t)}))}};var R=/translate\([^)]*\)\s*$/;y.setTextPointsScale=function(t,e,r){t&&t.each((function(){var t,i=n.select(this),a=i.select("text");if(a.node()){var o=parseFloat(a.attr("x")||0),s=parseFloat(a.attr("y")||0),l=(i.attr("transform")||"").match(R);t=1===e&&1===r?[]:[u(o,s),"scale("+e+","+r+")",u(-o,-s)],l&&t.push(l),i.attr("transform",t.join(""))}}))}},{"../../components/fx/helpers":679,"../../constants/alignment":745,"../../constants/interactions":752,"../../constants/xmlns_namespaces":754,"../../lib":778,"../../lib/svg_text_utils":803,"../../registry":911,"../../traces/scatter/make_bubble_size_func":1204,"../../traces/scatter/subtypes":1212,"../color":643,"../colorscale":655,"./symbol_defs":666,d3:169,"fast-isnumeric":241,tinycolor2:576}],666:[function(t,e,r){"use strict";var n=t("d3");e.exports={circle:{n:0,f:function(t){var e=n.round(t,2);return"M"+e+",0A"+e+","+e+" 0 1,1 0,-"+e+"A"+e+","+e+" 0 0,1 "+e+",0Z"}},square:{n:1,f:function(t){var e=n.round(t,2);return"M"+e+","+e+"H-"+e+"V-"+e+"H"+e+"Z"}},diamond:{n:2,f:function(t){var e=n.round(1.3*t,2);return"M"+e+",0L0,"+e+"L-"+e+",0L0,-"+e+"Z"}},cross:{n:3,f:function(t){var e=n.round(.4*t,2),r=n.round(1.2*t,2);return"M"+r+","+e+"H"+e+"V"+r+"H-"+e+"V"+e+"H-"+r+"V-"+e+"H-"+e+"V-"+r+"H"+e+"V-"+e+"H"+r+"Z"}},x:{n:4,f:function(t){var e=n.round(.8*t/Math.sqrt(2),2),r="l"+e+","+e,i="l"+e+",-"+e,a="l-"+e+",-"+e,o="l-"+e+","+e;return"M0,"+e+r+i+a+i+a+o+a+o+r+o+r+"Z"}},"triangle-up":{n:5,f:function(t){var e=n.round(2*t/Math.sqrt(3),2);return"M-"+e+","+n.round(t/2,2)+"H"+e+"L0,-"+n.round(t,2)+"Z"}},"triangle-down":{n:6,f:function(t){var e=n.round(2*t/Math.sqrt(3),2);return"M-"+e+",-"+n.round(t/2,2)+"H"+e+"L0,"+n.round(t,2)+"Z"}},"triangle-left":{n:7,f:function(t){var e=n.round(2*t/Math.sqrt(3),2);return"M"+n.round(t/2,2)+",-"+e+"V"+e+"L-"+n.round(t,2)+",0Z"}},"triangle-right":{n:8,f:function(t){var e=n.round(2*t/Math.sqrt(3),2);return"M-"+n.round(t/2,2)+",-"+e+"V"+e+"L"+n.round(t,2)+",0Z"}},"triangle-ne":{n:9,f:function(t){var e=n.round(.6*t,2),r=n.round(1.2*t,2);return"M-"+r+",-"+e+"H"+e+"V"+r+"Z"}},"triangle-se":{n:10,f:function(t){var e=n.round(.6*t,2),r=n.round(1.2*t,2);return"M"+e+",-"+r+"V"+e+"H-"+r+"Z"}},"triangle-sw":{n:11,f:function(t){var e=n.round(.6*t,2),r=n.round(1.2*t,2);return"M"+r+","+e+"H-"+e+"V-"+r+"Z"}},"triangle-nw":{n:12,f:function(t){var e=n.round(.6*t,2),r=n.round(1.2*t,2);return"M-"+e+","+r+"V-"+e+"H"+r+"Z"}},pentagon:{n:13,f:function(t){var e=n.round(.951*t,2),r=n.round(.588*t,2),i=n.round(-t,2),a=n.round(-.309*t,2);return"M"+e+","+a+"L"+r+","+n.round(.809*t,2)+"H-"+r+"L-"+e+","+a+"L0,"+i+"Z"}},hexagon:{n:14,f:function(t){var e=n.round(t,2),r=n.round(t/2,2),i=n.round(t*Math.sqrt(3)/2,2);return"M"+i+",-"+r+"V"+r+"L0,"+e+"L-"+i+","+r+"V-"+r+"L0,-"+e+"Z"}},hexagon2:{n:15,f:function(t){var e=n.round(t,2),r=n.round(t/2,2),i=n.round(t*Math.sqrt(3)/2,2);return"M-"+r+","+i+"H"+r+"L"+e+",0L"+r+",-"+i+"H-"+r+"L-"+e+",0Z"}},octagon:{n:16,f:function(t){var e=n.round(.924*t,2),r=n.round(.383*t,2);return"M-"+r+",-"+e+"H"+r+"L"+e+",-"+r+"V"+r+"L"+r+","+e+"H-"+r+"L-"+e+","+r+"V-"+r+"Z"}},star:{n:17,f:function(t){var e=1.4*t,r=n.round(.225*e,2),i=n.round(.951*e,2),a=n.round(.363*e,2),o=n.round(.588*e,2),s=n.round(-e,2),l=n.round(-.309*e,2),c=n.round(.118*e,2),u=n.round(.809*e,2);return"M"+r+","+l+"H"+i+"L"+a+","+c+"L"+o+","+u+"L0,"+n.round(.382*e,2)+"L-"+o+","+u+"L-"+a+","+c+"L-"+i+","+l+"H-"+r+"L0,"+s+"Z"}},hexagram:{n:18,f:function(t){var e=n.round(.66*t,2),r=n.round(.38*t,2),i=n.round(.76*t,2);return"M-"+i+",0l-"+r+",-"+e+"h"+i+"l"+r+",-"+e+"l"+r+","+e+"h"+i+"l-"+r+","+e+"l"+r+","+e+"h-"+i+"l-"+r+","+e+"l-"+r+",-"+e+"h-"+i+"Z"}},"star-triangle-up":{n:19,f:function(t){var e=n.round(t*Math.sqrt(3)*.8,2),r=n.round(.8*t,2),i=n.round(1.6*t,2),a=n.round(4*t,2),o="A "+a+","+a+" 0 0 1 ";return"M-"+e+","+r+o+e+","+r+o+"0,-"+i+o+"-"+e+","+r+"Z"}},"star-triangle-down":{n:20,f:function(t){var e=n.round(t*Math.sqrt(3)*.8,2),r=n.round(.8*t,2),i=n.round(1.6*t,2),a=n.round(4*t,2),o="A "+a+","+a+" 0 0 1 ";return"M"+e+",-"+r+o+"-"+e+",-"+r+o+"0,"+i+o+e+",-"+r+"Z"}},"star-square":{n:21,f:function(t){var e=n.round(1.1*t,2),r=n.round(2*t,2),i="A "+r+","+r+" 0 0 1 ";return"M-"+e+",-"+e+i+"-"+e+","+e+i+e+","+e+i+e+",-"+e+i+"-"+e+",-"+e+"Z"}},"star-diamond":{n:22,f:function(t){var e=n.round(1.4*t,2),r=n.round(1.9*t,2),i="A "+r+","+r+" 0 0 1 ";return"M-"+e+",0"+i+"0,"+e+i+e+",0"+i+"0,-"+e+i+"-"+e+",0Z"}},"diamond-tall":{n:23,f:function(t){var e=n.round(.7*t,2),r=n.round(1.4*t,2);return"M0,"+r+"L"+e+",0L0,-"+r+"L-"+e+",0Z"}},"diamond-wide":{n:24,f:function(t){var e=n.round(1.4*t,2),r=n.round(.7*t,2);return"M0,"+r+"L"+e+",0L0,-"+r+"L-"+e+",0Z"}},hourglass:{n:25,f:function(t){var e=n.round(t,2);return"M"+e+","+e+"H-"+e+"L"+e+",-"+e+"H-"+e+"Z"},noDot:!0},bowtie:{n:26,f:function(t){var e=n.round(t,2);return"M"+e+","+e+"V-"+e+"L-"+e+","+e+"V-"+e+"Z"},noDot:!0},"circle-cross":{n:27,f:function(t){var e=n.round(t,2);return"M0,"+e+"V-"+e+"M"+e+",0H-"+e+"M"+e+",0A"+e+","+e+" 0 1,1 0,-"+e+"A"+e+","+e+" 0 0,1 "+e+",0Z"},needLine:!0,noDot:!0},"circle-x":{n:28,f:function(t){var e=n.round(t,2),r=n.round(t/Math.sqrt(2),2);return"M"+r+","+r+"L-"+r+",-"+r+"M"+r+",-"+r+"L-"+r+","+r+"M"+e+",0A"+e+","+e+" 0 1,1 0,-"+e+"A"+e+","+e+" 0 0,1 "+e+",0Z"},needLine:!0,noDot:!0},"square-cross":{n:29,f:function(t){var e=n.round(t,2);return"M0,"+e+"V-"+e+"M"+e+",0H-"+e+"M"+e+","+e+"H-"+e+"V-"+e+"H"+e+"Z"},needLine:!0,noDot:!0},"square-x":{n:30,f:function(t){var e=n.round(t,2);return"M"+e+","+e+"L-"+e+",-"+e+"M"+e+",-"+e+"L-"+e+","+e+"M"+e+","+e+"H-"+e+"V-"+e+"H"+e+"Z"},needLine:!0,noDot:!0},"diamond-cross":{n:31,f:function(t){var e=n.round(1.3*t,2);return"M"+e+",0L0,"+e+"L-"+e+",0L0,-"+e+"ZM0,-"+e+"V"+e+"M-"+e+",0H"+e},needLine:!0,noDot:!0},"diamond-x":{n:32,f:function(t){var e=n.round(1.3*t,2),r=n.round(.65*t,2);return"M"+e+",0L0,"+e+"L-"+e+",0L0,-"+e+"ZM-"+r+",-"+r+"L"+r+","+r+"M-"+r+","+r+"L"+r+",-"+r},needLine:!0,noDot:!0},"cross-thin":{n:33,f:function(t){var e=n.round(1.4*t,2);return"M0,"+e+"V-"+e+"M"+e+",0H-"+e},needLine:!0,noDot:!0,noFill:!0},"x-thin":{n:34,f:function(t){var e=n.round(t,2);return"M"+e+","+e+"L-"+e+",-"+e+"M"+e+",-"+e+"L-"+e+","+e},needLine:!0,noDot:!0,noFill:!0},asterisk:{n:35,f:function(t){var e=n.round(1.2*t,2),r=n.round(.85*t,2);return"M0,"+e+"V-"+e+"M"+e+",0H-"+e+"M"+r+","+r+"L-"+r+",-"+r+"M"+r+",-"+r+"L-"+r+","+r},needLine:!0,noDot:!0,noFill:!0},hash:{n:36,f:function(t){var e=n.round(t/2,2),r=n.round(t,2);return"M"+e+","+r+"V-"+r+"m-"+r+",0V"+r+"M"+r+","+e+"H-"+r+"m0,-"+r+"H"+r},needLine:!0,noFill:!0},"y-up":{n:37,f:function(t){var e=n.round(1.2*t,2),r=n.round(1.6*t,2),i=n.round(.8*t,2);return"M-"+e+","+i+"L0,0M"+e+","+i+"L0,0M0,-"+r+"L0,0"},needLine:!0,noDot:!0,noFill:!0},"y-down":{n:38,f:function(t){var e=n.round(1.2*t,2),r=n.round(1.6*t,2),i=n.round(.8*t,2);return"M-"+e+",-"+i+"L0,0M"+e+",-"+i+"L0,0M0,"+r+"L0,0"},needLine:!0,noDot:!0,noFill:!0},"y-left":{n:39,f:function(t){var e=n.round(1.2*t,2),r=n.round(1.6*t,2),i=n.round(.8*t,2);return"M"+i+","+e+"L0,0M"+i+",-"+e+"L0,0M-"+r+",0L0,0"},needLine:!0,noDot:!0,noFill:!0},"y-right":{n:40,f:function(t){var e=n.round(1.2*t,2),r=n.round(1.6*t,2),i=n.round(.8*t,2);return"M-"+i+","+e+"L0,0M-"+i+",-"+e+"L0,0M"+r+",0L0,0"},needLine:!0,noDot:!0,noFill:!0},"line-ew":{n:41,f:function(t){var e=n.round(1.4*t,2);return"M"+e+",0H-"+e},needLine:!0,noDot:!0,noFill:!0},"line-ns":{n:42,f:function(t){var e=n.round(1.4*t,2);return"M0,"+e+"V-"+e},needLine:!0,noDot:!0,noFill:!0},"line-ne":{n:43,f:function(t){var e=n.round(t,2);return"M"+e+",-"+e+"L-"+e+","+e},needLine:!0,noDot:!0,noFill:!0},"line-nw":{n:44,f:function(t){var e=n.round(t,2);return"M"+e+","+e+"L-"+e+",-"+e},needLine:!0,noDot:!0,noFill:!0},"arrow-up":{n:45,f:function(t){var e=n.round(t,2);return"M0,0L-"+e+","+n.round(2*t,2)+"H"+e+"Z"},noDot:!0},"arrow-down":{n:46,f:function(t){var e=n.round(t,2);return"M0,0L-"+e+",-"+n.round(2*t,2)+"H"+e+"Z"},noDot:!0},"arrow-left":{n:47,f:function(t){var e=n.round(2*t,2),r=n.round(t,2);return"M0,0L"+e+",-"+r+"V"+r+"Z"},noDot:!0},"arrow-right":{n:48,f:function(t){var e=n.round(2*t,2),r=n.round(t,2);return"M0,0L-"+e+",-"+r+"V"+r+"Z"},noDot:!0},"arrow-bar-up":{n:49,f:function(t){var e=n.round(t,2);return"M-"+e+",0H"+e+"M0,0L-"+e+","+n.round(2*t,2)+"H"+e+"Z"},needLine:!0,noDot:!0},"arrow-bar-down":{n:50,f:function(t){var e=n.round(t,2);return"M-"+e+",0H"+e+"M0,0L-"+e+",-"+n.round(2*t,2)+"H"+e+"Z"},needLine:!0,noDot:!0},"arrow-bar-left":{n:51,f:function(t){var e=n.round(2*t,2),r=n.round(t,2);return"M0,-"+r+"V"+r+"M0,0L"+e+",-"+r+"V"+r+"Z"},needLine:!0,noDot:!0},"arrow-bar-right":{n:52,f:function(t){var e=n.round(2*t,2),r=n.round(t,2);return"M0,-"+r+"V"+r+"M0,0L-"+e+",-"+r+"V"+r+"Z"},needLine:!0,noDot:!0}}},{d3:169}],667:[function(t,e,r){"use strict";e.exports={visible:{valType:"boolean",editType:"calc"},type:{valType:"enumerated",values:["percent","constant","sqrt","data"],editType:"calc"},symmetric:{valType:"boolean",editType:"calc"},array:{valType:"data_array",editType:"calc"},arrayminus:{valType:"data_array",editType:"calc"},value:{valType:"number",min:0,dflt:10,editType:"calc"},valueminus:{valType:"number",min:0,dflt:10,editType:"calc"},traceref:{valType:"integer",min:0,dflt:0,editType:"style"},tracerefminus:{valType:"integer",min:0,dflt:0,editType:"style"},copy_ystyle:{valType:"boolean",editType:"plot"},copy_zstyle:{valType:"boolean",editType:"style"},color:{valType:"color",editType:"style"},thickness:{valType:"number",min:0,dflt:2,editType:"style"},width:{valType:"number",min:0,editType:"plot"},editType:"calc",_deprecated:{opacity:{valType:"number",editType:"style"}}}},{}],668:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("../../registry"),a=t("../../plots/cartesian/axes"),o=t("../../lib"),s=t("./compute_error");function l(t,e,r,i){var l=e["error_"+i]||{},c=[];if(l.visible&&-1!==["linear","log"].indexOf(r.type)){for(var u=s(l),f=0;f0;e.each((function(e){var f,h=e[0].trace,p=h.error_x||{},d=h.error_y||{};h.ids&&(f=function(t){return t.id});var g=o.hasMarkers(h)&&h.marker.maxdisplayed>0;d.visible||p.visible||(e=[]);var m=n.select(this).selectAll("g.errorbar").data(e,f);if(m.exit().remove(),e.length){p.visible||m.selectAll("path.xerror").remove(),d.visible||m.selectAll("path.yerror").remove(),m.style("opacity",1);var v=m.enter().append("g").classed("errorbar",!0);u&&v.style("opacity",0).transition().duration(s.duration).style("opacity",1),a.setClipUrl(m,r.layerClipId,t),m.each((function(t){var e=n.select(this),r=function(t,e,r){var n={x:e.c2p(t.x),y:r.c2p(t.y)};void 0!==t.yh&&(n.yh=r.c2p(t.yh),n.ys=r.c2p(t.ys),i(n.ys)||(n.noYS=!0,n.ys=r.c2p(t.ys,!0)));void 0!==t.xh&&(n.xh=e.c2p(t.xh),n.xs=e.c2p(t.xs),i(n.xs)||(n.noXS=!0,n.xs=e.c2p(t.xs,!0)));return n}(t,l,c);if(!g||t.vis){var a,o=e.select("path.yerror");if(d.visible&&i(r.x)&&i(r.yh)&&i(r.ys)){var f=d.width;a="M"+(r.x-f)+","+r.yh+"h"+2*f+"m-"+f+",0V"+r.ys,r.noYS||(a+="m-"+f+",0h"+2*f),!o.size()?o=e.append("path").style("vector-effect","non-scaling-stroke").classed("yerror",!0):u&&(o=o.transition().duration(s.duration).ease(s.easing)),o.attr("d",a)}else o.remove();var h=e.select("path.xerror");if(p.visible&&i(r.y)&&i(r.xh)&&i(r.xs)){var m=(p.copy_ystyle?d:p).width;a="M"+r.xh+","+(r.y-m)+"v"+2*m+"m0,-"+m+"H"+r.xs,r.noXS||(a+="m0,-"+m+"v"+2*m),!h.size()?h=e.append("path").style("vector-effect","non-scaling-stroke").classed("xerror",!0):u&&(h=h.transition().duration(s.duration).ease(s.easing)),h.attr("d",a)}else h.remove()}}))}}))}},{"../../traces/scatter/subtypes":1212,"../drawing":665,d3:169,"fast-isnumeric":241}],673:[function(t,e,r){"use strict";var n=t("d3"),i=t("../color");e.exports=function(t){t.each((function(t){var e=t[0].trace,r=e.error_y||{},a=e.error_x||{},o=n.select(this);o.selectAll("path.yerror").style("stroke-width",r.thickness+"px").call(i.stroke,r.color),a.copy_ystyle&&(a=r),o.selectAll("path.xerror").style("stroke-width",a.thickness+"px").call(i.stroke,a.color)}))}},{"../color":643,d3:169}],674:[function(t,e,r){"use strict";var n=t("../../plots/font_attributes"),i=t("./layout_attributes").hoverlabel,a=t("../../lib/extend").extendFlat;e.exports={hoverlabel:{bgcolor:a({},i.bgcolor,{arrayOk:!0}),bordercolor:a({},i.bordercolor,{arrayOk:!0}),font:n({arrayOk:!0,editType:"none"}),align:a({},i.align,{arrayOk:!0}),namelength:a({},i.namelength,{arrayOk:!0}),editType:"none"}}},{"../../lib/extend":768,"../../plots/font_attributes":856,"./layout_attributes":684}],675:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../registry");function a(t,e,r,i){i=i||n.identity,Array.isArray(t)&&(e[0][r]=i(t))}e.exports=function(t){var e=t.calcdata,r=t._fullLayout;function o(t){return function(e){return n.coerceHoverinfo({hoverinfo:e},{_module:t._module},r)}}for(var s=0;s=0&&r.indexb[0]._length||tt<0||tt>_[0]._length)return d.unhoverRaw(t,e)}if(e.pointerX=$+b[0]._offset,e.pointerY=tt+_[0]._offset,C="xval"in e?v.flat(s,e.xval):v.p2c(b,$),I="yval"in e?v.flat(s,e.yval):v.p2c(_,tt),!i(C[0])||!i(I[0]))return o.warn("Fx.hover failed",e,t),d.unhoverRaw(t,e)}var nt=1/0;function it(t,r){for(F=0;FY&&(Z.splice(0,Y),nt=Z[0].distance),g&&0!==X&&0===Z.length){G.distance=X,G.index=!1;var f=N._module.hoverPoints(G,q,H,"closest",l._hoverlayer);if(f&&(f=f.filter((function(t){return t.spikeDistance<=X}))),f&&f.length){var h,d=f.filter((function(t){return t.xa.showspikes&&"hovered data"!==t.xa.spikesnap}));if(d.length){var m=d[0];i(m.x0)&&i(m.y0)&&(h=ot(m),(!K.vLinePoint||K.vLinePoint.spikeDistance>h.spikeDistance)&&(K.vLinePoint=h))}var y=f.filter((function(t){return t.ya.showspikes&&"hovered data"!==t.ya.spikesnap}));if(y.length){var x=y[0];i(x.x0)&&i(x.y0)&&(h=ot(x),(!K.hLinePoint||K.hLinePoint.spikeDistance>h.spikeDistance)&&(K.hLinePoint=h))}}}}}function at(t,e){for(var r,n=null,i=1/0,a=0;a1||Z.length>1)||"closest"===S&&Q&&Z.length>1,At=p.combine(l.plot_bgcolor||p.background,l.paper_bgcolor),St={hovermode:S,rotateLabels:Mt,bgColor:At,container:l._hoverlayer,outerContainer:l._paperdiv,commonLabelOpts:l.hoverlabel,hoverdistance:l.hoverdistance},Et=L(Z,St,t);v.isUnifiedHover(S)||(!function(t,e,r){var n,i,a,o,s,l,c,u=0,f=1,h=t.size(),p=new Array(h),d=0;function g(t){var e=t[0],r=t[t.length-1];if(i=e.pmin-e.pos-e.dp+e.size,a=r.pos+r.dp+r.size-e.pmax,i>.01){for(s=t.length-1;s>=0;s--)t[s].dp+=i;n=!1}if(!(a<.01)){if(i<-.01){for(s=t.length-1;s>=0;s--)t[s].dp-=a;n=!1}if(n){var c=0;for(o=0;oe.pmax&&c++;for(o=t.length-1;o>=0&&!(c<=0);o--)(l=t[o]).pos>e.pmax-1&&(l.del=!0,c--);for(o=0;o=0;s--)t[s].dp-=a;for(o=t.length-1;o>=0&&!(c<=0);o--)(l=t[o]).pos+l.dp+l.size>e.pmax&&(l.del=!0,c--)}}}t.each((function(t){var n=t[e],i="x"===n._id.charAt(0),a=n.range;0===d&&a&&a[0]>a[1]!==i&&(f=-1),p[d++]=[{datum:t,traceIndex:t.trace.index,dp:0,pos:t.pos,posref:t.posref,size:t.by*(i?T:1)/2,pmin:0,pmax:i?r.width:r.height}]})),p.sort((function(t,e){return t[0].posref-e[0].posref||f*(e[0].traceIndex-t[0].traceIndex)}));for(;!n&&u<=h;){for(u++,n=!0,o=0;o.01&&y.pmin===x.pmin&&y.pmax===x.pmax){for(s=v.length-1;s>=0;s--)v[s].dp+=i;for(m.push.apply(m,v),p.splice(o+1,1),c=0,s=m.length-1;s>=0;s--)c+=m[s].dp;for(a=c/m.length,s=m.length-1;s>=0;s--)m[s].dp-=a;n=!1}else o++}p.forEach(g)}for(o=p.length-1;o>=0;o--){var b=p[o];for(s=b.length-1;s>=0;s--){var _=b[s],w=_.datum;w.offset=_.dp,w.del=_.del}}}(Et,Mt?"xa":"ya",l),P(Et,Mt,l._invScaleX,l._invScaleY));if(e.target&&e.target.tagName){var Ct=m.getComponentMethod("annotations","hasClickToShow")(t,_t);f(n.select(e.target),Ct?"pointer":"")}if(!e.target||a||!function(t,e,r){if(!r||r.length!==t._hoverdata.length)return!0;for(var n=r.length-1;n>=0;n--){var i=r[n],a=t._hoverdata[n];if(i.curveNumber!==a.curveNumber||String(i.pointNumber)!==String(a.pointNumber)||String(i.pointNumbers)!==String(a.pointNumbers))return!0}return!1}(t,0,bt))return;bt&&t.emit("plotly_unhover",{event:e,points:bt});t.emit("plotly_hover",{event:e,points:t._hoverdata,xaxes:b,yaxes:_,xvals:C,yvals:I})}(t,e,r,a)}))},r.loneHover=function(t,e){var r=!0;Array.isArray(t)||(r=!1,t=[t]);var i=t.map((function(t){return{color:t.color||p.defaultLine,x0:t.x0||t.x||0,x1:t.x1||t.x||0,y0:t.y0||t.y||0,y1:t.y1||t.y||0,xLabel:t.xLabel,yLabel:t.yLabel,zLabel:t.zLabel,text:t.text,name:t.name,idealAlign:t.idealAlign,borderColor:t.borderColor,fontFamily:t.fontFamily,fontSize:t.fontSize,fontColor:t.fontColor,nameLength:t.nameLength,textAlign:t.textAlign,trace:t.trace||{index:0,hoverinfo:""},xa:{_offset:0},ya:{_offset:0},index:0,hovertemplate:t.hovertemplate||!1,eventData:t.eventData||!1,hovertemplateLabels:t.hovertemplateLabels||!1}})),a=n.select(e.container),o=e.outerContainer?n.select(e.outerContainer):a,s={hovermode:"closest",rotateLabels:!1,bgColor:e.bgColor||p.background,container:a,outerContainer:o},l=L(i,s,e.gd),c=0,u=0;l.sort((function(t,e){return t.y0-e.y0})).each((function(t,r){var n=t.y0-t.by/2;t.offset=n-5([\s\S]*)<\/extra>/;function L(t,e,r){var i=r._fullLayout,a=e.hovermode,c=e.rotateLabels,f=e.bgColor,d=e.container,g=e.outerContainer,m=e.commonLabelOpts||{},w=e.fontFamily||y.HOVERFONT,T=e.fontSize||y.HOVERFONTSIZE,k=t[0],M=k.xa,C=k.ya,L="y"===a.charAt(0)?"yLabel":"xLabel",P=k[L],z=(String(P)||"").split(" ")[0],O=g.node().getBoundingClientRect(),D=O.top,R=O.width,F=O.height,B=void 0!==P&&k.distance<=e.hoverdistance&&("x"===a||"y"===a);if(B){var N,j,U=!0;for(N=0;Ni.width-E?(y=i.width-E,l.attr("d","M"+(E-A)+",0L"+E+","+_+A+"v"+_+(2*S+b.height)+"H-"+E+"V"+_+A+"H"+(E-2*A)+"Z")):l.attr("d","M0,0L"+A+","+_+A+"H"+(S+b.width/2)+"v"+_+(2*S+b.height)+"H-"+(S+b.width/2)+"V"+_+A+"H-"+A+"Z")}else{var L,I,z;"right"===C.side?(L="start",I=1,z="",y=M._offset+M._length):(L="end",I=-1,z="-",y=M._offset),x=C._offset+(k.y0+k.y1)/2,c.attr("text-anchor",L),l.attr("d","M0,0L"+z+A+","+A+"V"+(S+b.height/2)+"h"+z+(2*S+b.width)+"V-"+(S+b.height/2)+"H"+z+A+"V-"+A+"Z");var O,R=b.height/2,F=D-b.top-R,B="clip"+i._uid+"commonlabel"+C._id;if(y=0?et-=it:et+=2*S;var at=nt.height+2*S,ot=tt+at>=F;return at<=F&&(tt<=D?tt=C._offset+2*S:ot&&(tt=F-at)),rt.attr("transform",s(et,tt)),rt}var st=d.selectAll("g.hovertext").data(t,(function(t){return E(t)}));return st.enter().append("g").classed("hovertext",!0).each((function(){var t=n.select(this);t.append("rect").call(p.fill,p.addOpacity(f,.8)),t.append("text").classed("name",!0),t.append("path").style("stroke-width","1px"),t.append("text").classed("nums",!0).call(h.font,w,T)})),st.exit().remove(),st.each((function(t){var e=n.select(this).attr("transform",""),o=t.color;Array.isArray(o)&&(o=o[t.eventData[0].pointNumber]);var d=t.bgcolor||o,g=p.combine(p.opacity(d)?d:p.defaultLine,f),m=p.combine(p.opacity(o)?o:p.defaultLine,f),v=t.borderColor||p.contrast(g),y=I(t,B,a,i,P,e),x=y[0],b=y[1],k=e.select("text.nums").call(h.font,t.fontFamily||w,t.fontSize||T,t.fontColor||v).text(x).attr("data-notex",1).call(u.positionText,0,0).call(u.convertToTspans,r),M=e.select("text.name"),E=0,C=0;if(b&&b!==x){M.call(h.font,t.fontFamily||w,t.fontSize||T,m).text(b).attr("data-notex",1).call(u.positionText,0,0).call(u.convertToTspans,r);var L=M.node().getBoundingClientRect();E=L.width+2*S,C=L.height+2*S}else M.remove(),e.select("rect").remove();e.select("path").style({fill:g,stroke:v});var z,O,N=k.node().getBoundingClientRect(),j=t.xa._offset+(t.x0+t.x1)/2,U=t.ya._offset+(t.y0+t.y1)/2,V=Math.abs(t.x1-t.x0),q=Math.abs(t.y1-t.y0),H=N.width+A+S+E;if(t.ty0=D-N.top,t.bx=N.width+2*S,t.by=Math.max(N.height+2*S,C),t.anchor="start",t.txwidth=N.width,t.tx2width=E,t.offset=0,c)t.pos=j,z=U+q/2+H<=F,O=U-q/2-H>=0,"top"!==t.idealAlign&&z||!O?z?(U+=q/2,t.anchor="start"):t.anchor="middle":(U-=q/2,t.anchor="end");else if(t.pos=U,z=j+V/2+H<=R,O=j-V/2-H>=0,"left"!==t.idealAlign&&z||!O)if(z)j+=V/2,t.anchor="start";else{t.anchor="middle";var G=H/2,Y=j+G-R,W=j-G;Y>0&&(j-=Y),W<0&&(j+=-W)}else j-=V/2,t.anchor="end";k.attr("text-anchor",t.anchor),E&&M.attr("text-anchor",t.anchor),e.attr("transform",s(j,U)+(c?l(_):""))})),st}function I(t,e,r,n,i,a){var s="",l="";void 0!==t.nameOverride&&(t.name=t.nameOverride),t.name&&(t.trace._meta&&(t.name=o.templateString(t.name,t.trace._meta)),s=R(t.name,t.nameLength)),void 0!==t.zLabel?(void 0!==t.xLabel&&(l+="x: "+t.xLabel+"
    "),void 0!==t.yLabel&&(l+="y: "+t.yLabel+"
    "),"choropleth"!==t.trace.type&&"choroplethmapbox"!==t.trace.type&&(l+=(l?"z: ":"")+t.zLabel)):e&&t[r.charAt(0)+"Label"]===i?l=t[("x"===r.charAt(0)?"y":"x")+"Label"]||"":void 0===t.xLabel?void 0!==t.yLabel&&"scattercarpet"!==t.trace.type&&(l=t.yLabel):l=void 0===t.yLabel?t.xLabel:"("+t.xLabel+", "+t.yLabel+")",!t.text&&0!==t.text||Array.isArray(t.text)||(l+=(l?"
    ":"")+t.text),void 0!==t.extraText&&(l+=(l?"
    ":"")+t.extraText),a&&""===l&&!t.hovertemplate&&(""===s&&a.remove(),l=s);var c=n._d3locale,u=t.hovertemplate||!1,f=t.hovertemplateLabels||t,h=t.eventData[0]||{};return u&&(l=(l=o.hovertemplateString(u,f,c,h,t.trace._meta)).replace(C,(function(e,r){return s=R(r,t.nameLength),""}))),[l,s]}function P(t,e,r,i){var a=function(t){return t*r},o=function(t){return t*i};t.each((function(t){var r=n.select(this);if(t.del)return r.remove();var i=r.select("text.nums"),s=t.anchor,l="end"===s?-1:1,c={start:1,end:-1,middle:0}[s],f=c*(A+S),p=f+c*(t.txwidth+S),d=0,g=t.offset,m="middle"===s;m&&(f-=t.tx2width/2,p+=t.txwidth/2+S),e&&(g*=-M,d=t.offset*k),r.select("path").attr("d",m?"M-"+a(t.bx/2+t.tx2width/2)+","+o(g-t.by/2)+"h"+a(t.bx)+"v"+o(t.by)+"h-"+a(t.bx)+"Z":"M0,0L"+a(l*A+d)+","+o(A+g)+"v"+o(t.by/2-A)+"h"+a(l*t.bx)+"v-"+o(t.by)+"H"+a(l*A+d)+"V"+o(g-A)+"Z");var v=d+f,y=g+t.ty0-t.by/2+S,x=t.textAlign||"auto";"auto"!==x&&("left"===x&&"start"!==s?(i.attr("text-anchor","start"),v=m?-t.bx/2-t.tx2width/2+S:-t.bx-S):"right"===x&&"end"!==s&&(i.attr("text-anchor","end"),v=m?t.bx/2-t.tx2width/2-S:t.bx+S)),i.call(u.positionText,a(v),o(y)),t.tx2width&&(r.select("text.name").call(u.positionText,a(p+c*S+d),o(g+t.ty0-t.by/2+S)),r.select("rect").call(h.setRect,a(p+(c-1)*t.tx2width/2+d),o(g-t.by/2-1),a(t.tx2width),o(t.by+2)))}))}function z(t,e){var r=t.index,n=t.trace||{},a=t.cd[0],s=t.cd[r]||{};function l(t){return t||i(t)&&0===t}var c=Array.isArray(r)?function(t,e){var i=o.castOption(a,r,t);return l(i)?i:o.extractOption({},n,"",e)}:function(t,e){return o.extractOption(s,n,t,e)};function u(e,r,n){var i=c(r,n);l(i)&&(t[e]=i)}if(u("hoverinfo","hi","hoverinfo"),u("bgcolor","hbg","hoverlabel.bgcolor"),u("borderColor","hbc","hoverlabel.bordercolor"),u("fontFamily","htf","hoverlabel.font.family"),u("fontSize","hts","hoverlabel.font.size"),u("fontColor","htc","hoverlabel.font.color"),u("nameLength","hnl","hoverlabel.namelength"),u("textAlign","hta","hoverlabel.align"),t.posref="y"===e||"closest"===e&&"h"===n.orientation?t.xa._offset+(t.x0+t.x1)/2:t.ya._offset+(t.y0+t.y1)/2,t.x0=o.constrain(t.x0,0,t.xa._length),t.x1=o.constrain(t.x1,0,t.xa._length),t.y0=o.constrain(t.y0,0,t.ya._length),t.y1=o.constrain(t.y1,0,t.ya._length),void 0!==t.xLabelVal&&(t.xLabel="xLabel"in t?t.xLabel:g.hoverLabelText(t.xa,t.xLabelVal),t.xVal=t.xa.c2d(t.xLabelVal)),void 0!==t.yLabelVal&&(t.yLabel="yLabel"in t?t.yLabel:g.hoverLabelText(t.ya,t.yLabelVal),t.yVal=t.ya.c2d(t.yLabelVal)),void 0!==t.zLabelVal&&void 0===t.zLabel&&(t.zLabel=String(t.zLabelVal)),!(isNaN(t.xerr)||"log"===t.xa.type&&t.xerr<=0)){var f=g.tickText(t.xa,t.xa.c2l(t.xerr),"hover").text;void 0!==t.xerrneg?t.xLabel+=" +"+f+" / -"+g.tickText(t.xa,t.xa.c2l(t.xerrneg),"hover").text:t.xLabel+=" \xb1 "+f,"x"===e&&(t.distance+=1)}if(!(isNaN(t.yerr)||"log"===t.ya.type&&t.yerr<=0)){var h=g.tickText(t.ya,t.ya.c2l(t.yerr),"hover").text;void 0!==t.yerrneg?t.yLabel+=" +"+h+" / -"+g.tickText(t.ya,t.ya.c2l(t.yerrneg),"hover").text:t.yLabel+=" \xb1 "+h,"y"===e&&(t.distance+=1)}var p=t.hoverinfo||t.trace.hoverinfo;return p&&"all"!==p&&(-1===(p=Array.isArray(p)?p:p.split("+")).indexOf("x")&&(t.xLabel=void 0),-1===p.indexOf("y")&&(t.yLabel=void 0),-1===p.indexOf("z")&&(t.zLabel=void 0),-1===p.indexOf("text")&&(t.text=void 0),-1===p.indexOf("name")&&(t.name=void 0)),t}function O(t,e,r){var n,i,o=r.container,s=r.fullLayout,l=s._size,c=r.event,u=!!e.hLinePoint,f=!!e.vLinePoint;if(o.selectAll(".spikeline").remove(),f||u){var d=p.combine(s.plot_bgcolor,s.paper_bgcolor);if(u){var m,v,y=e.hLinePoint;n=y&&y.xa,"cursor"===(i=y&&y.ya).spikesnap?(m=c.pointerX,v=c.pointerY):(m=n._offset+y.x,v=i._offset+y.y);var x,b,_=a.readability(y.color,d)<1.5?p.contrast(d):y.color,w=i.spikemode,T=i.spikethickness,k=i.spikecolor||_,M=g.getPxPosition(t,i);if(-1!==w.indexOf("toaxis")||-1!==w.indexOf("across")){if(-1!==w.indexOf("toaxis")&&(x=M,b=m),-1!==w.indexOf("across")){var A=i._counterDomainMin,S=i._counterDomainMax;"free"===i.anchor&&(A=Math.min(A,i.position),S=Math.max(S,i.position)),x=l.l+A*l.w,b=l.l+S*l.w}o.insert("line",":first-child").attr({x1:x,x2:b,y1:v,y2:v,"stroke-width":T,stroke:k,"stroke-dasharray":h.dashStyle(i.spikedash,T)}).classed("spikeline",!0).classed("crisp",!0),o.insert("line",":first-child").attr({x1:x,x2:b,y1:v,y2:v,"stroke-width":T+2,stroke:d}).classed("spikeline",!0).classed("crisp",!0)}-1!==w.indexOf("marker")&&o.insert("circle",":first-child").attr({cx:M+("right"!==i.side?T:-T),cy:v,r:T,fill:k}).classed("spikeline",!0)}if(f){var E,C,L=e.vLinePoint;n=L&&L.xa,i=L&&L.ya,"cursor"===n.spikesnap?(E=c.pointerX,C=c.pointerY):(E=n._offset+L.x,C=i._offset+L.y);var I,P,z=a.readability(L.color,d)<1.5?p.contrast(d):L.color,O=n.spikemode,D=n.spikethickness,R=n.spikecolor||z,F=g.getPxPosition(t,n);if(-1!==O.indexOf("toaxis")||-1!==O.indexOf("across")){if(-1!==O.indexOf("toaxis")&&(I=F,P=C),-1!==O.indexOf("across")){var B=n._counterDomainMin,N=n._counterDomainMax;"free"===n.anchor&&(B=Math.min(B,n.position),N=Math.max(N,n.position)),I=l.t+(1-N)*l.h,P=l.t+(1-B)*l.h}o.insert("line",":first-child").attr({x1:E,x2:E,y1:I,y2:P,"stroke-width":D,stroke:R,"stroke-dasharray":h.dashStyle(n.spikedash,D)}).classed("spikeline",!0).classed("crisp",!0),o.insert("line",":first-child").attr({x1:E,x2:E,y1:I,y2:P,"stroke-width":D+2,stroke:d}).classed("spikeline",!0).classed("crisp",!0)}-1!==O.indexOf("marker")&&o.insert("circle",":first-child").attr({cx:E,cy:F-("top"!==n.side?D:-D),r:D,fill:R}).classed("spikeline",!0)}}}function D(t,e){return!e||(e.vLinePoint!==t._spikepoints.vLinePoint||e.hLinePoint!==t._spikepoints.hLinePoint)}function R(t,e){return u.plainText(t||"",{len:e,allowedTags:["br","sub","sup","b","i","em"]})}},{"../../lib":778,"../../lib/events":767,"../../lib/override_cursor":789,"../../lib/svg_text_utils":803,"../../plots/cartesian/axes":828,"../../registry":911,"../color":643,"../dragelement":662,"../drawing":665,"../legend/defaults":695,"../legend/draw":696,"./constants":677,"./helpers":679,d3:169,"fast-isnumeric":241,tinycolor2:576}],681:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../color"),a=t("./helpers").isUnifiedHover;e.exports=function(t,e,r,o){function s(t){o.font[t]||(o.font[t]=e.legend?e.legend.font[t]:e.font[t])}o=o||{},e&&a(e.hovermode)&&(o.font||(o.font={}),s("size"),s("family"),s("color"),e.legend?(o.bgcolor||(o.bgcolor=i.combine(e.legend.bgcolor,e.paper_bgcolor)),o.bordercolor||(o.bordercolor=e.legend.bordercolor)):o.bgcolor||(o.bgcolor=e.paper_bgcolor)),r("hoverlabel.bgcolor",o.bgcolor),r("hoverlabel.bordercolor",o.bordercolor),r("hoverlabel.namelength",o.namelength),n.coerceFont(r,"hoverlabel.font",o.font),r("hoverlabel.align",o.align)}},{"../../lib":778,"../color":643,"./helpers":679}],682:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./layout_attributes");e.exports=function(t,e,r){function a(r,a){return void 0!==e[r]?e[r]:n.coerce(t,e,i,r,a)}var o,s=a("clickmode");return e._has("cartesian")?s.indexOf("select")>-1?o="closest":(e._isHoriz=function(t,e){for(var r=e._scatterStackOpts||{},n=0;n1){if(!h&&!p&&!d)"independent"===k("pattern")&&(h=!0);m._hasSubplotGrid=h;var x,b,_="top to bottom"===k("roworder"),w=h?.2:.1,T=h?.3:.1;g&&e._splomGridDflt&&(x=e._splomGridDflt.xside,b=e._splomGridDflt.yside),m._domains={x:u("x",k,w,x,y),y:u("y",k,T,b,v,_)}}else delete e.grid}function k(t,e){return n.coerce(r,m,l,t,e)}},contentDefaults:function(t,e){var r=e.grid;if(r&&r._domains){var n,i,a,o,s,l,u,h=t.grid||{},p=e._subplots,d=r._hasSubplotGrid,g=r.rows,m=r.columns,v="independent"===r.pattern,y=r._axisMap={};if(d){var x=h.subplots||[];l=r.subplots=new Array(g);var b=1;for(n=0;n1);if(!1!==g||c.uirevision){var m=a.newContainer(e,"legend");if(_("uirevision",e.uirevision),!1!==g){_("bgcolor",e.paper_bgcolor),_("bordercolor"),_("borderwidth"),i.coerceFont(_,"font",e.font);var v,y,x,b=_("orientation");"h"===b?(v=0,n.getComponentMethod("rangeslider","isVisible")(t.xaxis)?(y=1.1,x="bottom"):(y=-.1,x="top")):(v=1.02,y=1,x="auto"),_("traceorder",h),l.isGrouped(e.legend)&&_("tracegroupgap"),_("itemsizing"),_("itemwidth"),_("itemclick"),_("itemdoubleclick"),_("x",v),_("xanchor"),_("y",y),_("yanchor",x),_("valign"),i.noneOrAll(c,m,["x","y"]),_("title.text")&&(_("title.side","h"===b?"left":"top"),i.coerceFont(_,"title.font",e.font))}}function _(t,e){return i.coerce(c,m,o,t,e)}}},{"../../lib":778,"../../plot_api/plot_template":817,"../../plots/layout_attributes":882,"../../registry":911,"./attributes":693,"./helpers":699}],696:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../lib"),a=t("../../plots/plots"),o=t("../../registry"),s=t("../../lib/events"),l=t("../dragelement"),c=t("../drawing"),u=t("../color"),f=t("../../lib/svg_text_utils"),h=t("./handle_click"),p=t("./constants"),d=t("../../constants/alignment"),g=d.LINE_SPACING,m=d.FROM_TL,v=d.FROM_BR,y=t("./get_legend_data"),x=t("./style"),b=t("./helpers");function _(t,e,r,n,i){var a=r.data()[0][0].trace,l={event:i,node:r.node(),curveNumber:a.index,expandedIndex:a._expandedIndex,data:t.data,layout:t.layout,frames:t._transitionData._frames,config:t._context,fullData:t._fullData,fullLayout:t._fullLayout};if(a._group&&(l.group=a._group),o.traceIs(a,"pie-like")&&(l.label=r.datum()[0].label),!1!==s.triggerHandler(t,"plotly_legendclick",l))if(1===n)e._clickTimeout=setTimeout((function(){h(r,t,n)}),t._context.doubleClickDelay);else if(2===n){e._clickTimeout&&clearTimeout(e._clickTimeout),t._legendMouseDownTime=0,!1!==s.triggerHandler(t,"plotly_legenddoubleclick",l)&&h(r,t,n)}}function w(t,e,r){var n,a=t.data()[0][0],s=a.trace,l=o.traceIs(s,"pie-like"),u=s.index,h=r._main&&e._context.edits.legendText&&!l,d=r._maxNameLength;r.entries?n=a.text:(n=l?a.label:s.name,s._meta&&(n=i.templateString(n,s._meta)));var g=i.ensureSingle(t,"text","legendtext");g.attr("text-anchor","start").call(c.font,r.font).text(h?T(n,d):n);var m=r.itemwidth+2*p.itemGap;f.positionText(g,m,0),h?g.call(f.makeEditable,{gd:e,text:n}).call(M,t,e,r).on("edit",(function(n){this.text(T(n,d)).call(M,t,e,r);var s=a.trace._fullInput||{},l={};if(o.hasTransform(s,"groupby")){var c=o.getTransformIndices(s,"groupby"),f=c[c.length-1],h=i.keyedContainer(s,"transforms["+f+"].styles","target","value.name");h.set(a.trace._group,n),l=h.constructUpdate()}else l.name=n;return o.call("_guiRestyle",e,l,u)})):M(g,t,e,r)}function T(t,e){var r=Math.max(4,e);if(t&&t.trim().length>=r/2)return t;for(var n=r-(t=t||"").length;n>0;n--)t+=" ";return t}function k(t,e){var r,a=e._context.doubleClickDelay,o=1,s=i.ensureSingle(t,"rect","legendtoggle",(function(t){e._context.staticPlot||t.style("cursor","pointer").attr("pointer-events","all"),t.call(u.fill,"rgba(0,0,0,0)")}));e._context.staticPlot||(s.on("mousedown",(function(){(r=(new Date).getTime())-e._legendMouseDownTimea&&(o=Math.max(o-1,1)),_(e,r,t,o,n.event)}})))}function M(t,e,r,n){n._main||t.attr("data-notex",!0),f.convertToTspans(t,r,(function(){!function(t,e,r){var n=t.data()[0][0];if(r._main&&n&&!n.trace.showlegend)return void t.remove();var i=t.select("g[class*=math-group]"),a=i.node();r||(r=e._fullLayout.legend);var o,s,l=r.borderwidth,u=(n?r:r.title).font.size*g;if(a){var h=c.bBox(a);o=h.height,s=h.width,n?c.setTranslate(i,0,.25*o):c.setTranslate(i,l,.75*o+l)}else{var d=t.select(n?".legendtext":".legendtitletext"),m=f.lineCount(d),v=d.node();o=u*m,s=v?c.bBox(v).width:0;var y=u*((m-1)/2-.3);if(n){var x=r.itemwidth+2*p.itemGap;f.positionText(d,x,-y)}else f.positionText(d,p.titlePad+l,u+l)}n?(n.lineHeight=u,n.height=Math.max(o,16)+3,n.width=s):(r._titleWidth=s,r._titleHeight=o)}(e,r,n)}))}function A(t){return i.isRightAnchor(t)?"right":i.isCenterAnchor(t)?"center":"left"}function S(t){return i.isBottomAnchor(t)?"bottom":i.isMiddleAnchor(t)?"middle":"top"}e.exports=function(t,e){var r,s=t._fullLayout,f="legend"+s._uid;if(e?(r=e.layer,f+="-hover"):((e=s.legend||{})._main=!0,r=s._infolayer),r){var h;if(t._legendMouseDownTime||(t._legendMouseDownTime=0),e._main){if(!t.calcdata)return;h=s.showlegend&&y(t.calcdata,e)}else{if(!e.entries)return;h=y(e.entries,e)}var d=s.hiddenlabels||[];if(e._main&&(!s.showlegend||!h.length))return r.selectAll(".legend").remove(),s._topdefs.select("#"+f).remove(),a.autoMargin(t,"legend");var g=i.ensureSingle(r,"g","legend",(function(t){e._main&&t.attr("pointer-events","all")})),T=i.ensureSingleById(s._topdefs,"clipPath",f,(function(t){t.append("rect")})),E=i.ensureSingle(g,"rect","bg",(function(t){t.attr("shape-rendering","crispEdges")}));E.call(u.stroke,e.bordercolor).call(u.fill,e.bgcolor).style("stroke-width",e.borderwidth+"px");var C=i.ensureSingle(g,"g","scrollbox"),L=e.title;if(e._titleWidth=0,e._titleHeight=0,L.text){var I=i.ensureSingle(C,"text","legendtitletext");I.attr("text-anchor","start").call(c.font,L.font).text(L.text),M(I,C,t,e)}else C.selectAll(".legendtitletext").remove();var P=i.ensureSingle(g,"rect","scrollbar",(function(t){t.attr(p.scrollBarEnterAttrs).call(u.fill,p.scrollBarColor)})),z=C.selectAll("g.groups").data(h);z.enter().append("g").attr("class","groups"),z.exit().remove();var O=z.selectAll("g.traces").data(i.identity);O.enter().append("g").attr("class","traces"),O.exit().remove(),O.style("opacity",(function(t){var e=t[0].trace;return o.traceIs(e,"pie-like")?-1!==d.indexOf(t[0].label)?.5:1:"legendonly"===e.visible?.5:1})).each((function(){n.select(this).call(w,t,e)})).call(x,t,e).each((function(){e._main&&n.select(this).call(k,t)})),i.syncOrAsync([a.previousPromises,function(){return function(t,e,r,i){var a=t._fullLayout;i||(i=a.legend);var o=a._size,s=b.isVertical(i),l=b.isGrouped(i),u=i.borderwidth,f=2*u,h=p.itemGap,d=i.itemwidth+2*h,g=2*(u+h),m=S(i),v=i.y<0||0===i.y&&"top"===m,y=i.y>1||1===i.y&&"bottom"===m;i._maxHeight=Math.max(v||y?a.height/2:o.h,30);var x=0;i._width=0,i._height=0;var _=function(t){var e=0,r=0,n=t.title.side;n&&(-1!==n.indexOf("left")&&(e=t._titleWidth),-1!==n.indexOf("top")&&(r=t._titleHeight));return[e,r]}(i);if(s)r.each((function(t){var e=t[0].height;c.setTranslate(this,u+_[0],u+_[1]+i._height+e/2+h),i._height+=e,i._width=Math.max(i._width,t[0].width)})),x=d+i._width,i._width+=h+d+f,i._height+=g,l&&(e.each((function(t,e){c.setTranslate(this,0,e*i.tracegroupgap)})),i._height+=(i._lgroupsLength-1)*i.tracegroupgap);else{var w=A(i),T=i.x<0||0===i.x&&"right"===w,k=i.x>1||1===i.x&&"left"===w,M=y||v,E=a.width/2;i._maxWidth=Math.max(T?M&&"left"===w?o.l+o.w:E:k?M&&"right"===w?o.r+o.w:E:o.w,2*d);var C=0,L=0;r.each((function(t){var e=t[0].width+d;C=Math.max(C,e),L+=e})),x=null;var I=0;if(l){var P=0,z=0,O=0;e.each((function(){var t=0,e=0;n.select(this).selectAll("g.traces").each((function(r){var n=r[0].height;c.setTranslate(this,_[0],_[1]+u+h+n/2+e),e+=n,t=Math.max(t,d+r[0].width)})),P=Math.max(P,e);var r=t+h;r+u+z>i._maxWidth&&(I=Math.max(I,z),z=0,O+=P+i.tracegroupgap,P=e),c.setTranslate(this,z,O),z+=r})),i._width=Math.max(I,z)+u,i._height=O+P+g}else{var D=r.size(),R=L+f+(D-1)*h=i._maxWidth&&(I=Math.max(I,j),B=0,N+=F,i._height+=F,F=0),c.setTranslate(this,_[0]+u+B,_[1]+u+N+e/2+h),j=B+r+h,B+=n,F=Math.max(F,e)})),R?(i._width=B+f,i._height=F+g):(i._width=Math.max(I,j)+f,i._height+=F+g)}}i._width=Math.ceil(Math.max(i._width+_[0],i._titleWidth+2*(u+p.titlePad))),i._height=Math.ceil(Math.max(i._height+_[1],i._titleHeight+2*(u+p.itemGap))),i._effHeight=Math.min(i._height,i._maxHeight);var U=t._context.edits,V=U.legendText||U.legendPosition;r.each((function(t){var e=n.select(this).select(".legendtoggle"),r=t[0].height,i=V?d:x||d+t[0].width;s||(i+=h/2),c.setRect(e,0,-r/2,i,r)}))}(t,z,O,e)},function(){if(!e._main||!function(t){var e=t._fullLayout.legend,r=A(e),n=S(e);return a.autoMargin(t,"legend",{x:e.x,y:e.y,l:e._width*m[r],r:e._width*v[r],b:e._effHeight*v[n],t:e._effHeight*m[n]})}(t)){var u,h,d,y,x=s._size,b=e.borderwidth,w=x.l+x.w*e.x-m[A(e)]*e._width,k=x.t+x.h*(1-e.y)-m[S(e)]*e._effHeight;if(e._main&&s.margin.autoexpand){var M=w,L=k;w=i.constrain(w,0,s.width-e._width),k=i.constrain(k,0,s.height-e._effHeight),w!==M&&i.log("Constrain legend.x to make legend fit inside graph"),k!==L&&i.log("Constrain legend.y to make legend fit inside graph")}if(e._main&&c.setTranslate(g,w,k),P.on(".drag",null),g.on("wheel",null),!e._main||e._height<=e._maxHeight||t._context.staticPlot){var I=e._effHeight;e._main||(I=e._height),E.attr({width:e._width-b,height:I-b,x:b/2,y:b/2}),c.setTranslate(C,0,0),T.select("rect").attr({width:e._width-2*b,height:I-2*b,x:b,y:b}),c.setClipUrl(C,f,t),c.setRect(P,0,0,0,0),delete e._scrollY}else{var z,O,D,R=Math.max(p.scrollBarMinHeight,e._effHeight*e._effHeight/e._height),F=e._effHeight-R-2*p.scrollBarMargin,B=e._height-e._effHeight,N=F/B,j=Math.min(e._scrollY||0,B);E.attr({width:e._width-2*b+p.scrollBarWidth+p.scrollBarMargin,height:e._effHeight-b,x:b/2,y:b/2}),T.select("rect").attr({width:e._width-2*b+p.scrollBarWidth+p.scrollBarMargin,height:e._effHeight-2*b,x:b,y:b+j}),c.setClipUrl(C,f,t),q(j,R,N),g.on("wheel",(function(){q(j=i.constrain(e._scrollY+n.event.deltaY/F*B,0,B),R,N),0!==j&&j!==B&&n.event.preventDefault()}));var U=n.behavior.drag().on("dragstart",(function(){var t=n.event.sourceEvent;z="touchstart"===t.type?t.changedTouches[0].clientY:t.clientY,D=j})).on("drag",(function(){var t=n.event.sourceEvent;2===t.buttons||t.ctrlKey||(O="touchmove"===t.type?t.changedTouches[0].clientY:t.clientY,q(j=function(t,e,r){var n=(r-e)/N+t;return i.constrain(n,0,B)}(D,z,O),R,N))}));P.call(U);var V=n.behavior.drag().on("dragstart",(function(){var t=n.event.sourceEvent;"touchstart"===t.type&&(z=t.changedTouches[0].clientY,D=j)})).on("drag",(function(){var t=n.event.sourceEvent;"touchmove"===t.type&&(O=t.changedTouches[0].clientY,q(j=function(t,e,r){var n=(e-r)/N+t;return i.constrain(n,0,B)}(D,z,O),R,N))}));C.call(V)}if(t._context.edits.legendPosition)g.classed("cursor-move",!0),l.init({element:g.node(),gd:t,prepFn:function(){var t=c.getTranslate(g);d=t.x,y=t.y},moveFn:function(t,r){var n=d+t,i=y+r;c.setTranslate(g,n,i),u=l.align(n,0,x.l,x.l+x.w,e.xanchor),h=l.align(i,0,x.t+x.h,x.t,e.yanchor)},doneFn:function(){void 0!==u&&void 0!==h&&o.call("_guiRelayout",t,{"legend.x":u,"legend.y":h})},clickFn:function(e,n){var i=r.selectAll("g.traces").filter((function(){var t=this.getBoundingClientRect();return n.clientX>=t.left&&n.clientX<=t.right&&n.clientY>=t.top&&n.clientY<=t.bottom}));i.size()>0&&_(t,g,i,e,n)}})}function q(r,n,i){e._scrollY=t._fullLayout.legend._scrollY=r,c.setTranslate(C,0,-r),c.setRect(P,e._width,p.scrollBarMargin+r*i,p.scrollBarWidth,n),T.select("rect").attr("y",b+r)}}],t)}}},{"../../constants/alignment":745,"../../lib":778,"../../lib/events":767,"../../lib/svg_text_utils":803,"../../plots/plots":891,"../../registry":911,"../color":643,"../dragelement":662,"../drawing":665,"./constants":694,"./get_legend_data":697,"./handle_click":698,"./helpers":699,"./style":701,d3:169}],697:[function(t,e,r){"use strict";var n=t("../../registry"),i=t("./helpers");e.exports=function(t,e){var r,a,o={},s=[],l=!1,c={},u=0,f=0,h=e._main;function p(t,r){if(""!==t&&i.isGrouped(e))-1===s.indexOf(t)?(s.push(t),l=!0,o[t]=[[r]]):o[t].push([r]);else{var n="~~i"+u;s.push(n),o[n]=[[r]],u++}}for(r=0;r0))return 0;i=e.width}return m?n:Math.min(i,r)};function _(t,e,r){var a=t[0].trace,o=a.marker||{},s=o.line||{},c=r?a.visible&&a.type===r:i.traceIs(a,"bar"),u=n.select(e).select("g.legendpoints").selectAll("path.legend"+r).data(c?[t]:[]);u.enter().append("path").classed("legend"+r,!0).attr("d","M6,6H-6V-6H6Z").attr("transform",x),u.exit().remove(),u.each((function(t){var e=n.select(this),r=t[0],i=b(r.mlw,o.line,5,2);e.style("stroke-width",i+"px").call(l.fill,r.mc||o.color),i&&l.stroke(e,r.mlc||s.color)}))}function w(t,e,r){var o=t[0],s=o.trace,l=r?s.visible&&s.type===r:i.traceIs(s,r),c=n.select(e).select("g.legendpoints").selectAll("path.legend"+r).data(l?[t]:[]);if(c.enter().append("path").classed("legend"+r,!0).attr("d","M6,6H-6V-6H6Z").attr("transform",x),c.exit().remove(),c.size()){var u=(s.marker||{}).line,p=b(h(u.width,o.pts),u,5,2),d=a.minExtend(s,{marker:{line:{width:p}}});d.marker.line.color=u.color;var g=a.minExtend(o,{trace:d});f(c,g,d)}}t.each((function(t){var e=n.select(this),i=a.ensureSingle(e,"g","layers");i.style("opacity",t[0].trace.opacity);var s=r.valign,l=t[0].lineHeight,c=t[0].height;if("middle"!==s&&l&&c){var u={top:1,bottom:-1}[s]*(.5*(l-c+3));i.attr("transform",o(0,u))}else i.attr("transform",null);i.selectAll("g.legendfill").data([t]).enter().append("g").classed("legendfill",!0),i.selectAll("g.legendlines").data([t]).enter().append("g").classed("legendlines",!0);var f=i.selectAll("g.legendsymbols").data([t]);f.enter().append("g").classed("legendsymbols",!0),f.selectAll("g.legendpoints").data([t]).enter().append("g").classed("legendpoints",!0)})).each((function(t){var r,i=t[0].trace,o=[];if(i.visible)switch(i.type){case"histogram2d":case"heatmap":o=[["M-15,-2V4H15V-2Z"]],r=!0;break;case"choropleth":case"choroplethmapbox":o=[["M-6,-6V6H6V-6Z"]],r=!0;break;case"densitymapbox":o=[["M-6,0 a6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0"]],r="radial";break;case"cone":o=[["M-6,2 A2,2 0 0,0 -6,6 V6L6,4Z"],["M-6,-6 A2,2 0 0,0 -6,-2 L6,-4Z"],["M-6,-2 A2,2 0 0,0 -6,2 L6,0Z"]],r=!1;break;case"streamtube":o=[["M-6,2 A2,2 0 0,0 -6,6 H6 A2,2 0 0,1 6,2 Z"],["M-6,-6 A2,2 0 0,0 -6,-2 H6 A2,2 0 0,1 6,-6 Z"],["M-6,-2 A2,2 0 0,0 -6,2 H6 A2,2 0 0,1 6,-2 Z"]],r=!1;break;case"surface":o=[["M-6,-6 A2,3 0 0,0 -6,0 H6 A2,3 0 0,1 6,-6 Z"],["M-6,1 A2,3 0 0,1 -6,6 H6 A2,3 0 0,0 6,0 Z"]],r=!0;break;case"mesh3d":o=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6H6L0,6Z"]],r=!1;break;case"volume":o=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6H6L0,6Z"]],r=!0;break;case"isosurface":o=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6 A12,24 0 0,0 6,-6 L0,6Z"]],r=!1}var u=n.select(this).select("g.legendpoints").selectAll("path.legend3dandfriends").data(o);u.enter().append("path").classed("legend3dandfriends",!0).attr("transform",x).style("stroke-miterlimit",1),u.exit().remove(),u.each((function(t,o){var u,f=n.select(this),h=c(i),p=h.colorscale,g=h.reversescale;if(p){if(!r){var m=p.length;u=0===o?p[g?m-1:0][1]:1===o?p[g?0:m-1][1]:p[Math.floor((m-1)/2)][1]}}else{var v=i.vertexcolor||i.facecolor||i.color;u=a.isArrayOrTypedArray(v)?v[o]||v[0]:v}f.attr("d",t[0]),u?f.call(l.fill,u):f.call((function(t){if(t.size()){var n="legendfill-"+i.uid;s.gradient(t,e,n,d(g,"radial"===r),p,"fill")}}))}))})).each((function(t){var e=t[0].trace,r="waterfall"===e.type;if(t[0]._distinct&&r){var i=t[0].trace[t[0].dir].marker;return t[0].mc=i.color,t[0].mlw=i.line.width,t[0].mlc=i.line.color,_(t,this,"waterfall")}var a=[];e.visible&&r&&(a=t[0].hasTotals?[["increasing","M-6,-6V6H0Z"],["totals","M6,6H0L-6,-6H-0Z"],["decreasing","M6,6V-6H0Z"]]:[["increasing","M-6,-6V6H6Z"],["decreasing","M6,6V-6H-6Z"]]);var o=n.select(this).select("g.legendpoints").selectAll("path.legendwaterfall").data(a);o.enter().append("path").classed("legendwaterfall",!0).attr("transform",x).style("stroke-miterlimit",1),o.exit().remove(),o.each((function(t){var r=n.select(this),i=e[t[0]].marker,a=b(void 0,i.line,5,2);r.attr("d",t[1]).style("stroke-width",a+"px").call(l.fill,i.color),a&&r.call(l.stroke,i.line.color)}))})).each((function(t){_(t,this,"funnel")})).each((function(t){_(t,this)})).each((function(t){var r=t[0].trace,o=n.select(this).select("g.legendpoints").selectAll("path.legendbox").data(r.visible&&i.traceIs(r,"box-violin")?[t]:[]);o.enter().append("path").classed("legendbox",!0).attr("d","M6,6H-6V-6H6Z").attr("transform",x),o.exit().remove(),o.each((function(){var t=n.select(this);if("all"!==r.boxpoints&&"all"!==r.points||0!==l.opacity(r.fillcolor)||0!==l.opacity((r.line||{}).color)){var i=b(void 0,r.line,5,2);t.style("stroke-width",i+"px").call(l.fill,r.fillcolor),i&&l.stroke(t,r.line.color)}else{var c=a.minExtend(r,{marker:{size:m?12:a.constrain(r.marker.size,2,16),sizeref:1,sizemin:1,sizemode:"diameter"}});o.call(s.pointStyle,c,e)}}))})).each((function(t){w(t,this,"funnelarea")})).each((function(t){w(t,this,"pie")})).each((function(t){var r,i,o=t[0],l=o.trace,f=l.visible&&l.fill&&"none"!==l.fill,h=u.hasLines(l),p=l.contours,g=!1,m=!1,y=c(l),x=y.colorscale,_=y.reversescale;if(p){var w=p.coloring;"lines"===w?g=!0:h="none"===w||"heatmap"===w||p.showlines,"constraint"===p.type?f="="!==p._operation:"fill"!==w&&"heatmap"!==w||(m=!0)}var T=u.hasMarkers(l)||u.hasText(l),k=f||m,M=h||g,A=T||!k?"M5,0":M?"M5,-2":"M5,-3",S=n.select(this),E=S.select(".legendfill").selectAll("path").data(f||m?[t]:[]);if(E.enter().append("path").classed("js-fill",!0),E.exit().remove(),E.attr("d",A+"h"+v+"v6h-"+v+"z").call(f?s.fillGroupStyle:function(t){if(t.size()){var r="legendfill-"+l.uid;s.gradient(t,e,r,d(_),x,"fill")}}),h||g){var C=b(void 0,l.line,10,5);i=a.minExtend(l,{line:{width:C}}),r=[a.minExtend(o,{trace:i})]}var L=S.select(".legendlines").selectAll("path").data(h||g?[r]:[]);L.enter().append("path").classed("js-line",!0),L.exit().remove(),L.attr("d",A+(g?"l"+v+",0.0001":"h"+v)).call(h?s.lineGroupStyle:function(t){if(t.size()){var r="legendline-"+l.uid;s.lineGroupStyle(t),s.gradient(t,e,r,d(_),x,"stroke")}})})).each((function(t){var r,i,o=t[0],l=o.trace,c=u.hasMarkers(l),f=u.hasText(l),h=u.hasLines(l);function p(t,e,r,n){var i=a.nestedProperty(l,t).get(),o=a.isArrayOrTypedArray(i)&&e?e(i):i;if(m&&o&&void 0!==n&&(o=n),r){if(or[1])return r[1]}return o}function d(t){return o._distinct&&o.index&&t[o.index]?t[o.index]:t[0]}if(c||f||h){var g={},v={};if(c){g.mc=p("marker.color",d),g.mx=p("marker.symbol",d),g.mo=p("marker.opacity",a.mean,[.2,1]),g.mlc=p("marker.line.color",d),g.mlw=p("marker.line.width",a.mean,[0,5],2),v.marker={sizeref:1,sizemin:1,sizemode:"diameter"};var y=p("marker.size",a.mean,[2,16],12);g.ms=y,v.marker.size=y}h&&(v.line={width:p("line.width",d,[0,10],5)}),f&&(g.tx="Aa",g.tp=p("textposition",d),g.ts=10,g.tc=p("textfont.color",d),g.tf=p("textfont.family",d)),r=[a.minExtend(o,g)],(i=a.minExtend(l,v)).selectedpoints=null,i.texttemplate=null}var b=n.select(this).select("g.legendpoints"),_=b.selectAll("path.scatterpts").data(c?r:[]);_.enter().insert("path",":first-child").classed("scatterpts",!0).attr("transform",x),_.exit().remove(),_.call(s.pointStyle,i,e),c&&(r[0].mrc=3);var w=b.selectAll("g.pointtext").data(f?r:[]);w.enter().append("g").classed("pointtext",!0).append("text").attr("transform",x),w.exit().remove(),w.selectAll("text").call(s.textPointStyle,i,e)})).each((function(t){var e=t[0].trace,r=n.select(this).select("g.legendpoints").selectAll("path.legendcandle").data(e.visible&&"candlestick"===e.type?[t,t]:[]);r.enter().append("path").classed("legendcandle",!0).attr("d",(function(t,e){return e?"M-15,0H-8M-8,6V-6H8Z":"M15,0H8M8,-6V6H-8Z"})).attr("transform",x).style("stroke-miterlimit",1),r.exit().remove(),r.each((function(t,r){var i=n.select(this),a=e[r?"increasing":"decreasing"],o=b(void 0,a.line,5,2);i.style("stroke-width",o+"px").call(l.fill,a.fillcolor),o&&l.stroke(i,a.line.color)}))})).each((function(t){var e=t[0].trace,r=n.select(this).select("g.legendpoints").selectAll("path.legendohlc").data(e.visible&&"ohlc"===e.type?[t,t]:[]);r.enter().append("path").classed("legendohlc",!0).attr("d",(function(t,e){return e?"M-15,0H0M-8,-6V0":"M15,0H0M8,6V0"})).attr("transform",x).style("stroke-miterlimit",1),r.exit().remove(),r.each((function(t,r){var i=n.select(this),a=e[r?"increasing":"decreasing"],o=b(void 0,a.line,5,2);i.style("fill","none").call(s.dashLine,a.line.dash,o),o&&l.stroke(i,a.line.color)}))}))}},{"../../lib":778,"../../registry":911,"../../traces/pie/helpers":1166,"../../traces/pie/style_one":1172,"../../traces/scatter/subtypes":1212,"../color":643,"../colorscale/helpers":654,"../drawing":665,"./constants":694,d3:169}],702:[function(t,e,r){"use strict";var n=t("../../registry"),i=t("../../plots/plots"),a=t("../../plots/cartesian/axis_ids"),o=t("../../fonts/ploticon"),s=t("../shapes/draw").eraseActiveShape,l=t("../../lib"),c=l._,u=e.exports={};function f(t,e){var r,i,o=e.currentTarget,s=o.getAttribute("data-attr"),l=o.getAttribute("data-val")||!0,c=t._fullLayout,u={},f=a.list(t,null,!0),h=c._cartesianSpikesEnabled;if("zoom"===s){var p,d="in"===l?.5:2,g=(1+d)/2,m=(1-d)/2;for(i=0;i1?(E=["toggleHover"],C=["resetViews"]):d?(S=["zoomInGeo","zoomOutGeo"],E=["hoverClosestGeo"],C=["resetGeo"]):p?(E=["hoverClosest3d"],C=["resetCameraDefault3d","resetCameraLastSave3d"]):x?(S=["zoomInMapbox","zoomOutMapbox"],E=["toggleHover"],C=["resetViewMapbox"]):v?E=["hoverClosestGl2d"]:g?E=["hoverClosestPie"]:_?(E=["hoverClosestCartesian","hoverCompareCartesian"],C=["resetViewSankey"]):E=["toggleHover"];h&&(E=["toggleSpikelines","hoverClosestCartesian","hoverCompareCartesian"]);(function(t){for(var e=0;e0)){var g=function(t,e,r){for(var n=r.filter((function(r){return e[r].anchor===t._id})),i=0,a=0;a=n.max)e=F[r+1];else if(t=n.pmax)e=F[r+1];else if(t0?h+c:c;return{ppad:c,ppadplus:u?d:g,ppadminus:u?g:d}}return{ppad:c}}function u(t,e,r,n,i){var s="category"===t.type||"multicategory"===t.type?t.r2c:t.d2c;if(void 0!==e)return[s(e),s(r)];if(n){var l,c,u,f,h=1/0,p=-1/0,d=n.match(a.segmentRE);for("date"===t.type&&(s=o.decodeDate(s)),l=0;lp&&(p=f)));return p>=h?[h,p]:void 0}}e.exports=function(t){var e=t._fullLayout,r=n.filterVisible(e.shapes);if(r.length&&t._fullData.length)for(var o=0;oy?(k=f,E="y0",M=y,C="y1"):(k=y,E="y1",M=f,C="y0");Z(n),Q(s,r),function(t,e,r){var n=e.xref,i=e.yref,o=a.getFromId(r,n),s=a.getFromId(r,i),l="";"paper"===n||o.autorange||(l+=n);"paper"===i||s.autorange||(l+=i);u.setClipUrl(t,l?"clip"+r._fullLayout._uid+l:null,r)}(e,r,t),X.moveFn="move"===z?J:K,X.altKey=n.altKey},doneFn:function(){if(v(t))return;p(e),$(s),b(e,t,r),n.call("_guiRelayout",t,l.getUpdateObj())},clickFn:function(){if(v(t))return;$(s)}};function Z(r){if(v(t))z=null;else if(R)z="path"===r.target.tagName?"move":"start-point"===r.target.attributes["data-line-point"].value?"resize-over-start-point":"resize-over-end-point";else{var n=X.element.getBoundingClientRect(),i=n.right-n.left,a=n.bottom-n.top,o=r.clientX-n.left,s=r.clientY-n.top,l=!F&&i>10&&a>10&&!r.shiftKey?h.getCursor(o/i,1-s/a):"move";p(e,l),z=l.split("-")[0]}}function J(n,i){if("path"===r.type){var a=function(t){return t},o=a,l=a;O?B("xanchor",r.xanchor=G(x+n)):(o=function(t){return G(q(t)+n)},N&&"date"===N.type&&(o=g.encodeDate(o))),D?B("yanchor",r.yanchor=Y(T+i)):(l=function(t){return Y(H(t)+i)},U&&"date"===U.type&&(l=g.encodeDate(l))),B("path",r.path=w(P,o,l))}else O?B("xanchor",r.xanchor=G(x+n)):(B("x0",r.x0=G(c+n)),B("x1",r.x1=G(m+n))),D?B("yanchor",r.yanchor=Y(T+i)):(B("y0",r.y0=Y(f+i)),B("y1",r.y1=Y(y+i)));e.attr("d",_(t,r)),Q(s,r)}function K(n,i){if(F){var a=function(t){return t},o=a,l=a;O?B("xanchor",r.xanchor=G(x+n)):(o=function(t){return G(q(t)+n)},N&&"date"===N.type&&(o=g.encodeDate(o))),D?B("yanchor",r.yanchor=Y(T+i)):(l=function(t){return Y(H(t)+i)},U&&"date"===U.type&&(l=g.encodeDate(l))),B("path",r.path=w(P,o,l))}else if(R){if("resize-over-start-point"===z){var u=c+n,h=D?f-i:f+i;B("x0",r.x0=O?u:G(u)),B("y0",r.y0=D?h:Y(h))}else if("resize-over-end-point"===z){var p=m+n,d=D?y-i:y+i;B("x1",r.x1=O?p:G(p)),B("y1",r.y1=D?d:Y(d))}}else{var v=function(t){return-1!==z.indexOf(t)},b=v("n"),j=v("s"),V=v("w"),W=v("e"),X=b?k+i:k,Z=j?M+i:M,J=V?A+n:A,K=W?S+n:S;D&&(b&&(X=k-i),j&&(Z=M-i)),(!D&&Z-X>10||D&&X-Z>10)&&(B(E,r[E]=D?X:Y(X)),B(C,r[C]=D?Z:Y(Z))),K-J>10&&(B(L,r[L]=O?J:G(J)),B(I,r[I]=O?K:G(K)))}e.attr("d",_(t,r)),Q(s,r)}function Q(t,e){(O||D)&&function(){var r="path"!==e.type,n=t.selectAll(".visual-cue").data([0]);n.enter().append("path").attr({fill:"#fff","fill-rule":"evenodd",stroke:"#000","stroke-width":1}).classed("visual-cue",!0);var a=q(O?e.xanchor:i.midRange(r?[e.x0,e.x1]:g.extractPathCoords(e.path,d.paramIsX))),o=H(D?e.yanchor:i.midRange(r?[e.y0,e.y1]:g.extractPathCoords(e.path,d.paramIsY)));if(a=g.roundPositionForSharpStrokeRendering(a,1),o=g.roundPositionForSharpStrokeRendering(o,1),O&&D){var s="M"+(a-1-1)+","+(o-1-1)+"h-8v2h8 v8h2v-8 h8v-2h-8 v-8h-2 Z";n.attr("d",s)}else if(O){var l="M"+(a-1-1)+","+(o-9-1)+"v18 h2 v-18 Z";n.attr("d",l)}else{var c="M"+(a-9-1)+","+(o-1-1)+"h18 v2 h-18 Z";n.attr("d",c)}}()}function $(t){t.selectAll(".visual-cue").remove()}h.init(X),W.node().onmousemove=Z}(t,O,l,e,r,z):!0===l.editable&&O.style("pointer-events",I||c.opacity(S)*A<=.5?"stroke":"all");O.node().addEventListener("click",(function(){return function(t,e){if(!y(t))return;var r=+e.node().getAttribute("data-index");if(r>=0){if(r===t._fullLayout._activeShapeIndex)return void T(t);t._fullLayout._activeShapeIndex=r,t._fullLayout._deactivateShape=T,m(t)}}(t,O)}))}}function b(t,e,r){var n=(r.xref+r.yref).replace(/paper/g,"").replace(/[xyz][1-9]* *domain/g,"");u.setClipUrl(t,n?"clip"+e._fullLayout._uid+n:null,e)}function _(t,e){var r,n,o,s,l,c,u,f,h=e.type,p=a.getRefType(e.xref),m=a.getRefType(e.yref),v=a.getFromId(t,e.xref),y=a.getFromId(t,e.yref),x=t._fullLayout._size;if(v?"domain"===p?n=function(t){return v._offset+v._length*t}:(r=g.shapePositionToRange(v),n=function(t){return v._offset+v.r2p(r(t,!0))}):n=function(t){return x.l+x.w*t},y?"domain"===m?s=function(t){return y._offset+y._length*(1-t)}:(o=g.shapePositionToRange(y),s=function(t){return y._offset+y.r2p(o(t,!0))}):s=function(t){return x.t+x.h*(1-t)},"path"===h)return v&&"date"===v.type&&(n=g.decodeDate(n)),y&&"date"===y.type&&(s=g.decodeDate(s)),function(t,e,r){var n=t.path,a=t.xsizemode,o=t.ysizemode,s=t.xanchor,l=t.yanchor;return n.replace(d.segmentRE,(function(t){var n=0,c=t.charAt(0),u=d.paramIsX[c],f=d.paramIsY[c],h=d.numParams[c],p=t.substr(1).replace(d.paramRE,(function(t){return u[n]?t="pixel"===a?e(s)+Number(t):e(t):f[n]&&(t="pixel"===o?r(l)-Number(t):r(t)),++n>h&&(t="X"),t}));return n>h&&(p=p.replace(/[\s,]*X.*/,""),i.log("Ignoring extra params in segment "+t)),c+p}))}(e,n,s);if("pixel"===e.xsizemode){var b=n(e.xanchor);l=b+e.x0,c=b+e.x1}else l=n(e.x0),c=n(e.x1);if("pixel"===e.ysizemode){var _=s(e.yanchor);u=_-e.y0,f=_-e.y1}else u=s(e.y0),f=s(e.y1);if("line"===h)return"M"+l+","+u+"L"+c+","+f;if("rect"===h)return"M"+l+","+u+"H"+c+"V"+f+"H"+l+"Z";var w=(l+c)/2,T=(u+f)/2,k=Math.abs(w-l),M=Math.abs(T-u),A="A"+k+","+M,S=w+k+","+T;return"M"+S+A+" 0 1,1 "+(w+","+(T-M))+A+" 0 0,1 "+S+"Z"}function w(t,e,r){return t.replace(d.segmentRE,(function(t){var n=0,i=t.charAt(0),a=d.paramIsX[i],o=d.paramIsY[i],s=d.numParams[i];return i+t.substr(1).replace(d.paramRE,(function(t){return n>=s||(a[n]?t=e(t):o[n]&&(t=r(t)),n++),t}))}))}function T(t){y(t)&&(t._fullLayout._activeShapeIndex>=0&&(l(t),delete t._fullLayout._activeShapeIndex,m(t)))}e.exports={draw:m,drawOne:x,eraseActiveShape:function(t){if(!y(t))return;l(t);var e=t._fullLayout._activeShapeIndex,r=(t.layout||{}).shapes||[];if(e=0&&f(v),r.attr("d",g(e)),M&&!h)&&(k=function(t,e){for(var r=0;r1&&(2!==t.length||"Z"!==t[1][0])&&(0===T&&(t[0][0]="M"),e[w]=t,y(),x())}}()}}function P(t,r){!function(t,r){if(e.length)for(var n=0;n0&&l0&&(s=s.transition().duration(e.transition.duration).ease(e.transition.easing)),s.attr("transform",l(o-.5*f.gripWidth,e._dims.currentValueTotalHeight))}}function E(t,e){var r=t._dims;return r.inputAreaStart+f.stepInset+(r.inputAreaLength-2*f.stepInset)*Math.min(1,Math.max(0,e))}function C(t,e){var r=t._dims;return Math.min(1,Math.max(0,(e-f.stepInset-r.inputAreaStart)/(r.inputAreaLength-2*f.stepInset-2*r.inputAreaStart)))}function L(t,e,r){var n=r._dims,i=s.ensureSingle(t,"rect",f.railTouchRectClass,(function(n){n.call(M,e,t,r).style("pointer-events","all")}));i.attr({width:n.inputAreaLength,height:Math.max(n.inputAreaWidth,f.tickOffset+r.ticklen+n.labelHeight)}).call(a.fill,r.bgcolor).attr("opacity",0),o.setTranslate(i,0,n.currentValueTotalHeight)}function I(t,e){var r=e._dims,n=r.inputAreaLength-2*f.railInset,i=s.ensureSingle(t,"rect",f.railRectClass);i.attr({width:n,height:f.railWidth,rx:f.railRadius,ry:f.railRadius,"shape-rendering":"crispEdges"}).call(a.stroke,e.bordercolor).call(a.fill,e.bgcolor).style("stroke-width",e.borderwidth+"px"),o.setTranslate(i,f.railInset,.5*(r.inputAreaWidth-f.railWidth)+r.currentValueTotalHeight)}e.exports=function(t){var e=t._fullLayout,r=function(t,e){for(var r=t[f.name],n=[],i=0;i0?[0]:[]);function s(e){e._commandObserver&&(e._commandObserver.remove(),delete e._commandObserver),i.autoMargin(t,m(e))}if(a.enter().append("g").classed(f.containerClassName,!0).style("cursor","ew-resize"),a.exit().each((function(){n.select(this).selectAll("g."+f.groupClassName).each(s)})).remove(),0!==r.length){var l=a.selectAll("g."+f.groupClassName).data(r,v);l.enter().append("g").classed(f.groupClassName,!0),l.exit().each(s).remove();for(var c=0;c0||h<0){var v={left:[-d,0],right:[d,0],top:[0,-d],bottom:[0,d]}[b.side];e.attr("transform",l(v[0],v[1]))}}}return D.call(R),z&&(E?D.on(".opacity",null):(M=0,A=!0,D.text(y).on("mouseover.opacity",(function(){n.select(this).transition().duration(h.SHOW_PLACEHOLDER).style("opacity",1)})).on("mouseout.opacity",(function(){n.select(this).transition().duration(h.HIDE_PLACEHOLDER).style("opacity",0)}))),D.call(f.makeEditable,{gd:t}).on("edit",(function(e){void 0!==x?o.call("_guiRestyle",t,v,e,x):o.call("_guiRelayout",t,v,e)})).on("cancel",(function(){this.text(this.attr("data-unformatted")).call(R)})).on("input",(function(t){this.text(t||" ").call(f.positionText,_.x,_.y)}))),D.classed("js-placeholder",A),T}}},{"../../constants/alignment":745,"../../constants/interactions":752,"../../lib":778,"../../lib/svg_text_utils":803,"../../plots/plots":891,"../../registry":911,"../color":643,"../drawing":665,d3:169,"fast-isnumeric":241}],739:[function(t,e,r){"use strict";var n=t("../../plots/font_attributes"),i=t("../color/attributes"),a=t("../../lib/extend").extendFlat,o=t("../../plot_api/edit_types").overrideAll,s=t("../../plots/pad_attributes"),l=t("../../plot_api/plot_template").templatedArray,c=l("button",{visible:{valType:"boolean"},method:{valType:"enumerated",values:["restyle","relayout","animate","update","skip"],dflt:"restyle"},args:{valType:"info_array",freeLength:!0,items:[{valType:"any"},{valType:"any"},{valType:"any"}]},args2:{valType:"info_array",freeLength:!0,items:[{valType:"any"},{valType:"any"},{valType:"any"}]},label:{valType:"string",dflt:""},execute:{valType:"boolean",dflt:!0}});e.exports=o(l("updatemenu",{_arrayAttrRegexps:[/^updatemenus\[(0|[1-9][0-9]+)\]\.buttons/],visible:{valType:"boolean"},type:{valType:"enumerated",values:["dropdown","buttons"],dflt:"dropdown"},direction:{valType:"enumerated",values:["left","right","up","down"],dflt:"down"},active:{valType:"integer",min:-1,dflt:0},showactive:{valType:"boolean",dflt:!0},buttons:c,x:{valType:"number",min:-2,max:3,dflt:-.05},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"right"},y:{valType:"number",min:-2,max:3,dflt:1},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"top"},pad:a(s({editType:"arraydraw"}),{}),font:n({}),bgcolor:{valType:"color"},bordercolor:{valType:"color",dflt:i.borderLine},borderwidth:{valType:"number",min:0,dflt:1,editType:"arraydraw"}}),"arraydraw","from-root")},{"../../lib/extend":768,"../../plot_api/edit_types":810,"../../plot_api/plot_template":817,"../../plots/font_attributes":856,"../../plots/pad_attributes":890,"../color/attributes":642}],740:[function(t,e,r){"use strict";e.exports={name:"updatemenus",containerClassName:"updatemenu-container",headerGroupClassName:"updatemenu-header-group",headerClassName:"updatemenu-header",headerArrowClassName:"updatemenu-header-arrow",dropdownButtonGroupClassName:"updatemenu-dropdown-button-group",dropdownButtonClassName:"updatemenu-dropdown-button",buttonClassName:"updatemenu-button",itemRectClassName:"updatemenu-item-rect",itemTextClassName:"updatemenu-item-text",menuIndexAttrName:"updatemenu-active-index",autoMarginIdRoot:"updatemenu-",blankHeaderOpts:{label:" "},minWidth:30,minHeight:30,textPadX:24,arrowPadX:16,rx:2,ry:2,textOffsetX:12,textOffsetY:3,arrowOffsetX:4,gapButtonHeader:5,gapButton:2,activeColor:"#F4FAFF",hoverColor:"#F4FAFF",arrowSymbol:{left:"\u25c4",right:"\u25ba",up:"\u25b2",down:"\u25bc"}}},{}],741:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../plots/array_container_defaults"),a=t("./attributes"),o=t("./constants").name,s=a.buttons;function l(t,e,r){function o(r,i){return n.coerce(t,e,a,r,i)}o("visible",i(t,e,{name:"buttons",handleItemDefaults:c}).length>0)&&(o("active"),o("direction"),o("type"),o("showactive"),o("x"),o("y"),n.noneOrAll(t,e,["x","y"]),o("xanchor"),o("yanchor"),o("pad.t"),o("pad.r"),o("pad.b"),o("pad.l"),n.coerceFont(o,"font",r.font),o("bgcolor",r.paper_bgcolor),o("bordercolor"),o("borderwidth"))}function c(t,e){function r(r,i){return n.coerce(t,e,s,r,i)}r("visible","skip"===t.method||Array.isArray(t.args))&&(r("method"),r("args"),r("args2"),r("label"),r("execute"))}e.exports=function(t,e){i(t,e,{name:o,handleItemDefaults:l})}},{"../../lib":778,"../../plots/array_container_defaults":823,"./attributes":739,"./constants":740}],742:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../plots/plots"),a=t("../color"),o=t("../drawing"),s=t("../../lib"),l=t("../../lib/svg_text_utils"),c=t("../../plot_api/plot_template").arrayEditor,u=t("../../constants/alignment").LINE_SPACING,f=t("./constants"),h=t("./scrollbox");function p(t){return t._index}function d(t,e){return+t.attr(f.menuIndexAttrName)===e._index}function g(t,e,r,n,i,a,o,s){e.active=o,c(t.layout,f.name,e).applyUpdate("active",o),"buttons"===e.type?v(t,n,null,null,e):"dropdown"===e.type&&(i.attr(f.menuIndexAttrName,"-1"),m(t,n,i,a,e),s||v(t,n,i,a,e))}function m(t,e,r,n,i){var a=s.ensureSingle(e,"g",f.headerClassName,(function(t){t.style("pointer-events","all")})),l=i._dims,c=i.active,u=i.buttons[c]||f.blankHeaderOpts,h={y:i.pad.t,yPad:0,x:i.pad.l,xPad:0,index:0},p={width:l.headerWidth,height:l.headerHeight};a.call(y,i,u,t).call(A,i,h,p),s.ensureSingle(e,"text",f.headerArrowClassName,(function(t){t.attr("text-anchor","end").call(o.font,i.font).text(f.arrowSymbol[i.direction])})).attr({x:l.headerWidth-f.arrowOffsetX+i.pad.l,y:l.headerHeight/2+f.textOffsetY+i.pad.t}),a.on("click",(function(){r.call(S,String(d(r,i)?-1:i._index)),v(t,e,r,n,i)})),a.on("mouseover",(function(){a.call(w)})),a.on("mouseout",(function(){a.call(T,i)})),o.setTranslate(e,l.lx,l.ly)}function v(t,e,r,a,o){r||(r=e).attr("pointer-events","all");var l=function(t){return-1==+t.attr(f.menuIndexAttrName)}(r)&&"buttons"!==o.type?[]:o.buttons,c="dropdown"===o.type?f.dropdownButtonClassName:f.buttonClassName,u=r.selectAll("g."+c).data(s.filterVisible(l)),h=u.enter().append("g").classed(c,!0),p=u.exit();"dropdown"===o.type?(h.attr("opacity","0").transition().attr("opacity","1"),p.transition().attr("opacity","0").remove()):p.remove();var d=0,m=0,v=o._dims,x=-1!==["up","down"].indexOf(o.direction);"dropdown"===o.type&&(x?m=v.headerHeight+f.gapButtonHeader:d=v.headerWidth+f.gapButtonHeader),"dropdown"===o.type&&"up"===o.direction&&(m=-f.gapButtonHeader+f.gapButton-v.openHeight),"dropdown"===o.type&&"left"===o.direction&&(d=-f.gapButtonHeader+f.gapButton-v.openWidth);var b={x:v.lx+d+o.pad.l,y:v.ly+m+o.pad.t,yPad:f.gapButton,xPad:f.gapButton,index:0},k={l:b.x+o.borderwidth,t:b.y+o.borderwidth};u.each((function(s,l){var c=n.select(this);c.call(y,o,s,t).call(A,o,b),c.on("click",(function(){n.event.defaultPrevented||(s.execute&&(s.args2&&o.active===l?(g(t,o,0,e,r,a,-1),i.executeAPICommand(t,s.method,s.args2)):(g(t,o,0,e,r,a,l),i.executeAPICommand(t,s.method,s.args))),t.emit("plotly_buttonclicked",{menu:o,button:s,active:o.active}))})),c.on("mouseover",(function(){c.call(w)})),c.on("mouseout",(function(){c.call(T,o),u.call(_,o)}))})),u.call(_,o),x?(k.w=Math.max(v.openWidth,v.headerWidth),k.h=b.y-k.t):(k.w=b.x-k.l,k.h=Math.max(v.openHeight,v.headerHeight)),k.direction=o.direction,a&&(u.size()?function(t,e,r,n,i,a){var o,s,l,c=i.direction,u="up"===c||"down"===c,h=i._dims,p=i.active;if(u)for(s=0,l=0;l0?[0]:[]);if(o.enter().append("g").classed(f.containerClassName,!0).style("cursor","pointer"),o.exit().each((function(){n.select(this).selectAll("g."+f.headerGroupClassName).each(a)})).remove(),0!==r.length){var l=o.selectAll("g."+f.headerGroupClassName).data(r,p);l.enter().append("g").classed(f.headerGroupClassName,!0);for(var c=s.ensureSingle(o,"g",f.dropdownButtonGroupClassName,(function(t){t.style("pointer-events","all")})),u=0;uw,M=s.barLength+2*s.barPad,A=s.barWidth+2*s.barPad,S=d,E=m+v;E+A>c&&(E=c-A);var C=this.container.selectAll("rect.scrollbar-horizontal").data(k?[0]:[]);C.exit().on(".drag",null).remove(),C.enter().append("rect").classed("scrollbar-horizontal",!0).call(i.fill,s.barColor),k?(this.hbar=C.attr({rx:s.barRadius,ry:s.barRadius,x:S,y:E,width:M,height:A}),this._hbarXMin=S+M/2,this._hbarTranslateMax=w-M):(delete this.hbar,delete this._hbarXMin,delete this._hbarTranslateMax);var L=v>T,I=s.barWidth+2*s.barPad,P=s.barLength+2*s.barPad,z=d+g,O=m;z+I>l&&(z=l-I);var D=this.container.selectAll("rect.scrollbar-vertical").data(L?[0]:[]);D.exit().on(".drag",null).remove(),D.enter().append("rect").classed("scrollbar-vertical",!0).call(i.fill,s.barColor),L?(this.vbar=D.attr({rx:s.barRadius,ry:s.barRadius,x:z,y:O,width:I,height:P}),this._vbarYMin=O+P/2,this._vbarTranslateMax=T-P):(delete this.vbar,delete this._vbarYMin,delete this._vbarTranslateMax);var R=this.id,F=u-.5,B=L?f+I+.5:f+.5,N=h-.5,j=k?p+A+.5:p+.5,U=o._topdefs.selectAll("#"+R).data(k||L?[0]:[]);if(U.exit().remove(),U.enter().append("clipPath").attr("id",R).append("rect"),k||L?(this._clipRect=U.select("rect").attr({x:Math.floor(F),y:Math.floor(N),width:Math.ceil(B)-Math.floor(F),height:Math.ceil(j)-Math.floor(N)}),this.container.call(a.setClipUrl,R,this.gd),this.bg.attr({x:d,y:m,width:g,height:v})):(this.bg.attr({width:0,height:0}),this.container.on("wheel",null).on(".drag",null).call(a.setClipUrl,null),delete this._clipRect),k||L){var V=n.behavior.drag().on("dragstart",(function(){n.event.sourceEvent.preventDefault()})).on("drag",this._onBoxDrag.bind(this));this.container.on("wheel",null).on("wheel",this._onBoxWheel.bind(this)).on(".drag",null).call(V);var q=n.behavior.drag().on("dragstart",(function(){n.event.sourceEvent.preventDefault(),n.event.sourceEvent.stopPropagation()})).on("drag",this._onBarDrag.bind(this));k&&this.hbar.on(".drag",null).call(q),L&&this.vbar.on(".drag",null).call(q)}this.setTranslate(e,r)},s.prototype.disable=function(){(this.hbar||this.vbar)&&(this.bg.attr({width:0,height:0}),this.container.on("wheel",null).on(".drag",null).call(a.setClipUrl,null),delete this._clipRect),this.hbar&&(this.hbar.on(".drag",null),this.hbar.remove(),delete this.hbar,delete this._hbarXMin,delete this._hbarTranslateMax),this.vbar&&(this.vbar.on(".drag",null),this.vbar.remove(),delete this.vbar,delete this._vbarYMin,delete this._vbarTranslateMax)},s.prototype._onBoxDrag=function(){var t=this.translateX,e=this.translateY;this.hbar&&(t-=n.event.dx),this.vbar&&(e-=n.event.dy),this.setTranslate(t,e)},s.prototype._onBoxWheel=function(){var t=this.translateX,e=this.translateY;this.hbar&&(t+=n.event.deltaY),this.vbar&&(e+=n.event.deltaY),this.setTranslate(t,e)},s.prototype._onBarDrag=function(){var t=this.translateX,e=this.translateY;if(this.hbar){var r=t+this._hbarXMin,i=r+this._hbarTranslateMax;t=(o.constrain(n.event.x,r,i)-r)/(i-r)*(this.position.w-this._box.w)}if(this.vbar){var a=e+this._vbarYMin,s=a+this._vbarTranslateMax;e=(o.constrain(n.event.y,a,s)-a)/(s-a)*(this.position.h-this._box.h)}this.setTranslate(t,e)},s.prototype.setTranslate=function(t,e){var r=this.position.w-this._box.w,n=this.position.h-this._box.h;if(t=o.constrain(t||0,0,r),e=o.constrain(e||0,0,n),this.translateX=t,this.translateY=e,this.container.call(a.setTranslate,this._box.l-this.position.l-t,this._box.t-this.position.t-e),this._clipRect&&this._clipRect.attr({x:Math.floor(this.position.l+t-.5),y:Math.floor(this.position.t+e-.5)}),this.hbar){var i=t/r;this.hbar.call(a.setTranslate,t+i*this._hbarTranslateMax,e)}if(this.vbar){var s=e/n;this.vbar.call(a.setTranslate,t,e+s*this._vbarTranslateMax)}}},{"../../lib":778,"../color":643,"../drawing":665,d3:169}],745:[function(t,e,r){"use strict";e.exports={FROM_BL:{left:0,center:.5,right:1,bottom:0,middle:.5,top:1},FROM_TL:{left:0,center:.5,right:1,bottom:1,middle:.5,top:0},FROM_BR:{left:1,center:.5,right:0,bottom:0,middle:.5,top:1},LINE_SPACING:1.3,CAP_SHIFT:.7,MID_SHIFT:.35,OPPOSITE_SIDE:{left:"right",right:"left",top:"bottom",bottom:"top"}}},{}],746:[function(t,e,r){"use strict";e.exports={axisRefDescription:function(t,e,r){return["If set to a",t,"axis id (e.g. *"+t+"* or","*"+t+"2*), the `"+t+"` position refers to a",t,"coordinate. If set to *paper*, the `"+t+"`","position refers to the distance from the",e,"of the plotting","area in normalized coordinates where *0* (*1*) corresponds to the",e,"("+r+"). If set to a",t,"axis ID followed by","*domain* (separated by a space), the position behaves like for","*paper*, but refers to the distance in fractions of the domain","length from the",e,"of the domain of that axis: e.g.,","*"+t+"2 domain* refers to the domain of the second",t," axis and a",t,"position of 0.5 refers to the","point between the",e,"and the",r,"of the domain of the","second",t,"axis."].join(" ")}}},{}],747:[function(t,e,r){"use strict";e.exports={INCREASING:{COLOR:"#3D9970",SYMBOL:"\u25b2"},DECREASING:{COLOR:"#FF4136",SYMBOL:"\u25bc"}}},{}],748:[function(t,e,r){"use strict";e.exports={FORMAT_LINK:"https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format",DATE_FORMAT_LINK:"https://github.com/d3/d3-time-format#locale_format"}},{}],749:[function(t,e,r){"use strict";e.exports={COMPARISON_OPS:["=","!=","<",">=",">","<="],COMPARISON_OPS2:["=","<",">=",">","<="],INTERVAL_OPS:["[]","()","[)","(]","][",")(","](",")["],SET_OPS:["{}","}{"],CONSTRAINT_REDUCTION:{"=":"=","<":"<","<=":"<",">":">",">=":">","[]":"[]","()":"[]","[)":"[]","(]":"[]","][":"][",")(":"][","](":"][",")[":"]["}}},{}],750:[function(t,e,r){"use strict";e.exports={solid:[[],0],dot:[[.5,1],200],dash:[[.5,1],50],longdash:[[.5,1],10],dashdot:[[.5,.625,.875,1],50],longdashdot:[[.5,.7,.8,1],10]}},{}],751:[function(t,e,r){"use strict";e.exports={circle:"\u25cf","circle-open":"\u25cb",square:"\u25a0","square-open":"\u25a1",diamond:"\u25c6","diamond-open":"\u25c7",cross:"+",x:"\u274c"}},{}],752:[function(t,e,r){"use strict";e.exports={SHOW_PLACEHOLDER:100,HIDE_PLACEHOLDER:1e3,DESELECTDIM:.2}},{}],753:[function(t,e,r){"use strict";e.exports={BADNUM:void 0,FP_SAFE:Number.MAX_VALUE/1e4,ONEMAXYEAR:316224e5,ONEAVGYEAR:315576e5,ONEMINYEAR:31536e6,ONEMAXQUARTER:79488e5,ONEAVGQUARTER:78894e5,ONEMINQUARTER:76896e5,ONEMAXMONTH:26784e5,ONEAVGMONTH:26298e5,ONEMINMONTH:24192e5,ONEWEEK:6048e5,ONEDAY:864e5,ONEHOUR:36e5,ONEMIN:6e4,ONESEC:1e3,EPOCHJD:2440587.5,ALMOST_EQUAL:.999999,LOG_CLIP:10,MINUS_SIGN:"\u2212"}},{}],754:[function(t,e,r){"use strict";r.xmlns="http://www.w3.org/2000/xmlns/",r.svg="http://www.w3.org/2000/svg",r.xlink="http://www.w3.org/1999/xlink",r.svgAttrs={xmlns:r.svg,"xmlns:xlink":r.xlink}},{}],755:[function(t,e,r){"use strict";r.version=t("./version").version,t("es6-promise").polyfill(),t("../build/plotcss"),t("./fonts/mathjax_config")();for(var n=t("./registry"),i=r.register=n.register,a=t("./plot_api"),o=Object.keys(a),s=0;splotly-logomark"}}},{}],758:[function(t,e,r){"use strict";r.isLeftAnchor=function(t){return"left"===t.xanchor||"auto"===t.xanchor&&t.x<=1/3},r.isCenterAnchor=function(t){return"center"===t.xanchor||"auto"===t.xanchor&&t.x>1/3&&t.x<2/3},r.isRightAnchor=function(t){return"right"===t.xanchor||"auto"===t.xanchor&&t.x>=2/3},r.isTopAnchor=function(t){return"top"===t.yanchor||"auto"===t.yanchor&&t.y>=2/3},r.isMiddleAnchor=function(t){return"middle"===t.yanchor||"auto"===t.yanchor&&t.y>1/3&&t.y<2/3},r.isBottomAnchor=function(t){return"bottom"===t.yanchor||"auto"===t.yanchor&&t.y<=1/3}},{}],759:[function(t,e,r){"use strict";var n=t("./mod"),i=n.mod,a=n.modHalf,o=Math.PI,s=2*o;function l(t){return Math.abs(t[1]-t[0])>s-1e-14}function c(t,e){return a(e-t,s)}function u(t,e){if(l(e))return!0;var r,n;e[0](n=i(n,s))&&(n+=s);var a=i(t,s),o=a+s;return a>=r&&a<=n||o>=r&&o<=n}function f(t,e,r,n,i,a,c){i=i||0,a=a||0;var u,f,h,p,d,g=l([r,n]);function m(t,e){return[t*Math.cos(e)+i,a-t*Math.sin(e)]}g?(u=0,f=o,h=s):r=i&&t<=a);var i,a},pathArc:function(t,e,r,n,i){return f(null,t,e,r,n,i,0)},pathSector:function(t,e,r,n,i){return f(null,t,e,r,n,i,1)},pathAnnulus:function(t,e,r,n,i,a){return f(t,e,r,n,i,a,1)}}},{"./mod":785}],760:[function(t,e,r){"use strict";var n=Array.isArray,i="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer:{isView:function(){return!1}},a="undefined"==typeof DataView?function(){}:DataView;function o(t){return i.isView(t)&&!(t instanceof a)}function s(t){return n(t)||o(t)}function l(t,e,r){if(s(t)){if(s(t[0])){for(var n=r,i=0;ii.max?e.set(r):e.set(+t)}},integer:{coerceFunction:function(t,e,r,i){t%1||!n(t)||void 0!==i.min&&ti.max?e.set(r):e.set(+t)}},string:{coerceFunction:function(t,e,r,n){if("string"!=typeof t){var i="number"==typeof t;!0!==n.strict&&i?e.set(String(t)):e.set(r)}else n.noBlank&&!t?e.set(r):e.set(t)}},color:{coerceFunction:function(t,e,r){i(t).isValid()?e.set(t):e.set(r)}},colorlist:{coerceFunction:function(t,e,r){Array.isArray(t)&&t.length&&t.every((function(t){return i(t).isValid()}))?e.set(t):e.set(r)}},colorscale:{coerceFunction:function(t,e,r){e.set(o.get(t,r))}},angle:{coerceFunction:function(t,e,r){"auto"===t?e.set("auto"):n(t)?e.set(u(+t,360)):e.set(r)}},subplotid:{coerceFunction:function(t,e,r,n){var i=n.regex||c(r);"string"==typeof t&&i.test(t)?e.set(t):e.set(r)},validateFunction:function(t,e){var r=e.dflt;return t===r||"string"==typeof t&&!!c(r).test(t)}},flaglist:{coerceFunction:function(t,e,r,n){if("string"==typeof t)if(-1===(n.extras||[]).indexOf(t)){for(var i=t.split("+"),a=0;a=n&&t<=i?t:u}if("string"!=typeof t&&"number"!=typeof t)return u;t=String(t);var c=_(e),v=t.charAt(0);!c||"G"!==v&&"g"!==v||(t=t.substr(1),e="");var w=c&&"chinese"===e.substr(0,7),T=t.match(w?x:y);if(!T)return u;var k=T[1],M=T[3]||"1",A=Number(T[5]||1),S=Number(T[7]||0),E=Number(T[9]||0),C=Number(T[11]||0);if(c){if(2===k.length)return u;var L;k=Number(k);try{var I=m.getComponentMethod("calendars","getCal")(e);if(w){var P="i"===M.charAt(M.length-1);M=parseInt(M,10),L=I.newDate(k,I.toMonthIndex(k,M,P),A)}else L=I.newDate(k,Number(M),A)}catch(t){return u}return L?(L.toJD()-g)*f+S*h+E*p+C*d:u}k=2===k.length?(Number(k)+2e3-b)%100+b:Number(k),M-=1;var z=new Date(Date.UTC(2e3,M,A,S,E));return z.setUTCFullYear(k),z.getUTCMonth()!==M||z.getUTCDate()!==A?u:z.getTime()+C*d},n=r.MIN_MS=r.dateTime2ms("-9999"),i=r.MAX_MS=r.dateTime2ms("9999-12-31 23:59:59.9999"),r.isDateTime=function(t,e){return r.dateTime2ms(t,e)!==u};var T=90*f,k=3*h,M=5*p;function A(t,e,r,n,i){if((e||r||n||i)&&(t+=" "+w(e,2)+":"+w(r,2),(n||i)&&(t+=":"+w(n,2),i))){for(var a=4;i%10==0;)a-=1,i/=10;t+="."+w(i,a)}return t}r.ms2DateTime=function(t,e,r){if("number"!=typeof t||!(t>=n&&t<=i))return u;e||(e=0);var a,o,s,c,y,x,b=Math.floor(10*l(t+.05,1)),w=Math.round(t-b/10);if(_(r)){var S=Math.floor(w/f)+g,E=Math.floor(l(t,f));try{a=m.getComponentMethod("calendars","getCal")(r).fromJD(S).formatDate("yyyy-mm-dd")}catch(t){a=v("G%Y-%m-%d")(new Date(w))}if("-"===a.charAt(0))for(;a.length<11;)a="-0"+a.substr(1);else for(;a.length<10;)a="0"+a;o=e=n+f&&t<=i-f))return u;var e=Math.floor(10*l(t+.05,1)),r=new Date(Math.round(t-e/10));return A(a("%Y-%m-%d")(r),r.getHours(),r.getMinutes(),r.getSeconds(),10*r.getUTCMilliseconds()+e)},r.cleanDate=function(t,e,n){if(t===u)return e;if(r.isJSDate(t)||"number"==typeof t&&isFinite(t)){if(_(n))return s.error("JS Dates and milliseconds are incompatible with world calendars",t),e;if(!(t=r.ms2DateTimeLocal(+t))&&void 0!==e)return e}else if(!r.isDateTime(t,n))return s.error("unrecognized date",t),e;return t};var S=/%\d?f/g;function E(t,e,r,n){t=t.replace(S,(function(t){var r=Math.min(+t.charAt(1)||6,6);return(e/1e3%1+2).toFixed(r).substr(2).replace(/0+$/,"")||"0"}));var i=new Date(Math.floor(e+.05));if(_(n))try{t=m.getComponentMethod("calendars","worldCalFmt")(t,e,n)}catch(t){return"Invalid"}return r(t)(i)}var C=[59,59.9,59.99,59.999,59.9999];r.formatDate=function(t,e,r,n,i,a){if(i=_(i)&&i,!e)if("y"===r)e=a.year;else if("m"===r)e=a.month;else{if("d"!==r)return function(t,e){var r=l(t+.05,f),n=w(Math.floor(r/h),2)+":"+w(l(Math.floor(r/p),60),2);if("M"!==e){o(e)||(e=0);var i=(100+Math.min(l(t/d,60),C[e])).toFixed(e).substr(1);e>0&&(i=i.replace(/0+$/,"").replace(/[\.]$/,"")),n+=":"+i}return n}(t,r)+"\n"+E(a.dayMonthYear,t,n,i);e=a.dayMonth+"\n"+a.year}return E(e,t,n,i)};var L=3*f;r.incrementMonth=function(t,e,r){r=_(r)&&r;var n=l(t,f);if(t=Math.round(t-n),r)try{var i=Math.round(t/f)+g,a=m.getComponentMethod("calendars","getCal")(r),o=a.fromJD(i);return e%12?a.add(o,e,"m"):a.add(o,e/12,"y"),(o.toJD()-g)*f+n}catch(e){s.error("invalid ms "+t+" in calendar "+r)}var c=new Date(t+L);return c.setUTCMonth(c.getUTCMonth()+e)+n-L},r.findExactDates=function(t,e){for(var r,n,i=0,a=0,s=0,l=0,c=_(e)&&m.getComponentMethod("calendars","getCal")(e),u=0;u0&&t[e+1][0]<0)return e;return null}switch(e="RUS"===s||"FJI"===s?function(t){var e;if(null===c(t))e=t;else for(e=new Array(t.length),i=0;ie?r[n++]=[t[i][0]+360,t[i][1]]:i===e?(r[n++]=t[i],r[n++]=[t[i][0],-90]):r[n++]=t[i];var a=h.tester(r);a.pts.pop(),l.push(a)}:function(t){l.push(h.tester(t))},a.type){case"MultiPolygon":for(r=0;ri&&(i=c,e=l)}else e=r;return o.default(e).geometry.coordinates}(u),n.fIn=t,n.fOut=u,s.push(u)}else c.log(["Location",n.loc,"does not have a valid GeoJSON geometry.","Traces with locationmode *geojson-id* only support","*Polygon* and *MultiPolygon* geometries."].join(" "))}delete i[r]}switch(r.type){case"FeatureCollection":var h=r.features;for(n=0;n100?(clearInterval(a),n("Unexpected error while fetching from "+t)):void i++}),50)}))}for(var o=0;o0&&(r.push(i),i=[])}return i.length>0&&r.push(i),r},r.makeLine=function(t){return 1===t.length?{type:"LineString",coordinates:t[0]}:{type:"MultiLineString",coordinates:t}},r.makePolygon=function(t){if(1===t.length)return{type:"Polygon",coordinates:t};for(var e=new Array(t.length),r=0;r1||g<0||g>1?null:{x:t+l*g,y:e+f*g}}function l(t,e,r,n,i){var a=n*t+i*e;if(a<0)return n*n+i*i;if(a>r){var o=n-t,s=i-e;return o*o+s*s}var l=n*e-i*t;return l*l/r}r.segmentsIntersect=s,r.segmentDistance=function(t,e,r,n,i,a,o,c){if(s(t,e,r,n,i,a,o,c))return 0;var u=r-t,f=n-e,h=o-i,p=c-a,d=u*u+f*f,g=h*h+p*p,m=Math.min(l(u,f,d,i-t,a-e),l(u,f,d,o-t,c-e),l(h,p,g,t-i,e-a),l(h,p,g,r-i,n-a));return Math.sqrt(m)},r.getTextLocation=function(t,e,r,s){if(t===i&&s===a||(n={},i=t,a=s),n[r])return n[r];var l=t.getPointAtLength(o(r-s/2,e)),c=t.getPointAtLength(o(r+s/2,e)),u=Math.atan((c.y-l.y)/(c.x-l.x)),f=t.getPointAtLength(o(r,e)),h={x:(4*f.x+l.x+c.x)/6,y:(4*f.y+l.y+c.y)/6,theta:u};return n[r]=h,h},r.clearLocationCache=function(){i=null},r.getVisibleSegment=function(t,e,r){var n,i,a=e.left,o=e.right,s=e.top,l=e.bottom,c=0,u=t.getTotalLength(),f=u;function h(e){var r=t.getPointAtLength(e);0===e?n=r:e===u&&(i=r);var c=r.xo?r.x-o:0,f=r.yl?r.y-l:0;return Math.sqrt(c*c+f*f)}for(var p=h(c);p;){if((c+=p+r)>f)return;p=h(c)}for(p=h(f);p;){if(c>(f-=p+r))return;p=h(f)}return{min:c,max:f,len:f-c,total:u,isClosed:0===c&&f===u&&Math.abs(n.x-i.x)<.1&&Math.abs(n.y-i.y)<.1}},r.findPointOnPath=function(t,e,r,n){for(var i,a,o,s=(n=n||{}).pathLength||t.getTotalLength(),l=n.tolerance||.001,c=n.iterationLimit||30,u=t.getPointAtLength(0)[r]>t.getPointAtLength(s)[r]?-1:1,f=0,h=0,p=s;f0?p=i:h=i,f++}return a}},{"./mod":785}],774:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("tinycolor2"),a=t("color-normalize"),o=t("../components/colorscale"),s=t("../components/color/attributes").defaultLine,l=t("./array").isArrayOrTypedArray,c=a(s);function u(t,e){var r=t;return r[3]*=e,r}function f(t){if(n(t))return c;var e=a(t);return e.length?e:c}function h(t){return n(t)?t:1}e.exports={formatColor:function(t,e,r){var n,i,s,p,d,g=t.color,m=l(g),v=l(e),y=o.extractOpts(t),x=[];if(n=void 0!==y.colorscale?o.makeColorScaleFuncFromTrace(t):f,i=m?function(t,e){return void 0===t[e]?c:a(n(t[e]))}:f,s=v?function(t,e){return void 0===t[e]?1:h(t[e])}:h,m||v)for(var b=0;b1?(r*t+r*e)/r:t+e,i=String(n).length;if(i>16){var a=String(e).length;if(i>=String(t).length+a){var o=parseFloat(n).toPrecision(12);-1===o.indexOf("e+")&&(n=+o)}}return n}},{}],778:[function(t,e,r){"use strict";var n=t("d3"),i=t("d3-time-format").utcFormat,a=t("fast-isnumeric"),o=t("../constants/numerical"),s=o.FP_SAFE,l=o.BADNUM,c=e.exports={};c.nestedProperty=t("./nested_property"),c.keyedContainer=t("./keyed_container"),c.relativeAttr=t("./relative_attr"),c.isPlainObject=t("./is_plain_object"),c.toLogRange=t("./to_log_range"),c.relinkPrivateKeys=t("./relink_private");var u=t("./array");c.isTypedArray=u.isTypedArray,c.isArrayOrTypedArray=u.isArrayOrTypedArray,c.isArray1D=u.isArray1D,c.ensureArray=u.ensureArray,c.concat=u.concat,c.maxRowLength=u.maxRowLength,c.minRowLength=u.minRowLength;var f=t("./mod");c.mod=f.mod,c.modHalf=f.modHalf;var h=t("./coerce");c.valObjectMeta=h.valObjectMeta,c.coerce=h.coerce,c.coerce2=h.coerce2,c.coerceFont=h.coerceFont,c.coerceHoverinfo=h.coerceHoverinfo,c.coerceSelectionMarkerOpacity=h.coerceSelectionMarkerOpacity,c.validate=h.validate;var p=t("./dates");c.dateTime2ms=p.dateTime2ms,c.isDateTime=p.isDateTime,c.ms2DateTime=p.ms2DateTime,c.ms2DateTimeLocal=p.ms2DateTimeLocal,c.cleanDate=p.cleanDate,c.isJSDate=p.isJSDate,c.formatDate=p.formatDate,c.incrementMonth=p.incrementMonth,c.dateTick0=p.dateTick0,c.dfltRange=p.dfltRange,c.findExactDates=p.findExactDates,c.MIN_MS=p.MIN_MS,c.MAX_MS=p.MAX_MS;var d=t("./search");c.findBin=d.findBin,c.sorterAsc=d.sorterAsc,c.sorterDes=d.sorterDes,c.distinctVals=d.distinctVals,c.roundUp=d.roundUp,c.sort=d.sort,c.findIndexOfMin=d.findIndexOfMin;var g=t("./stats");c.aggNums=g.aggNums,c.len=g.len,c.mean=g.mean,c.median=g.median,c.midRange=g.midRange,c.variance=g.variance,c.stdev=g.stdev,c.interp=g.interp;var m=t("./matrix");c.init2dArray=m.init2dArray,c.transposeRagged=m.transposeRagged,c.dot=m.dot,c.translationMatrix=m.translationMatrix,c.rotationMatrix=m.rotationMatrix,c.rotationXYMatrix=m.rotationXYMatrix,c.apply3DTransform=m.apply3DTransform,c.apply2DTransform=m.apply2DTransform,c.apply2DTransform2=m.apply2DTransform2,c.convertCssMatrix=m.convertCssMatrix,c.inverseTransformMatrix=m.inverseTransformMatrix;var v=t("./angles");c.deg2rad=v.deg2rad,c.rad2deg=v.rad2deg,c.angleDelta=v.angleDelta,c.angleDist=v.angleDist,c.isFullCircle=v.isFullCircle,c.isAngleInsideSector=v.isAngleInsideSector,c.isPtInsideSector=v.isPtInsideSector,c.pathArc=v.pathArc,c.pathSector=v.pathSector,c.pathAnnulus=v.pathAnnulus;var y=t("./anchor_utils");c.isLeftAnchor=y.isLeftAnchor,c.isCenterAnchor=y.isCenterAnchor,c.isRightAnchor=y.isRightAnchor,c.isTopAnchor=y.isTopAnchor,c.isMiddleAnchor=y.isMiddleAnchor,c.isBottomAnchor=y.isBottomAnchor;var x=t("./geometry2d");c.segmentsIntersect=x.segmentsIntersect,c.segmentDistance=x.segmentDistance,c.getTextLocation=x.getTextLocation,c.clearLocationCache=x.clearLocationCache,c.getVisibleSegment=x.getVisibleSegment,c.findPointOnPath=x.findPointOnPath;var b=t("./extend");c.extendFlat=b.extendFlat,c.extendDeep=b.extendDeep,c.extendDeepAll=b.extendDeepAll,c.extendDeepNoArrays=b.extendDeepNoArrays;var _=t("./loggers");c.log=_.log,c.warn=_.warn,c.error=_.error;var w=t("./regex");c.counterRegex=w.counter;var T=t("./throttle");c.throttle=T.throttle,c.throttleDone=T.done,c.clearThrottle=T.clear;var k=t("./dom");function M(t){var e={};for(var r in t)for(var n=t[r],i=0;is?l:a(t)?Number(t):l:l},c.isIndex=function(t,e){return!(void 0!==e&&t>=e)&&(a(t)&&t>=0&&t%1==0)},c.noop=t("./noop"),c.identity=t("./identity"),c.repeat=function(t,e){for(var r=new Array(e),n=0;nr?Math.max(r,Math.min(e,t)):Math.max(e,Math.min(r,t))},c.bBoxIntersect=function(t,e,r){return r=r||0,t.left<=e.right+r&&e.left<=t.right+r&&t.top<=e.bottom+r&&e.top<=t.bottom+r},c.simpleMap=function(t,e,r,n,i){for(var a=t.length,o=new Array(a),s=0;s=Math.pow(2,r)?i>10?(c.warn("randstr failed uniqueness"),l):t(e,r,n,(i||0)+1):l},c.OptionControl=function(t,e){t||(t={}),e||(e="opt");var r={optionList:[],_newoption:function(n){n[e]=t,r[n.name]=n,r.optionList.push(n)}};return r["_"+e]=t,r},c.smooth=function(t,e){if((e=Math.round(e)||0)<2)return t;var r,n,i,a,o=t.length,s=2*o,l=2*e-1,c=new Array(l),u=new Array(o);for(r=0;r=s&&(i-=s*Math.floor(i/s)),i<0?i=-1-i:i>=o&&(i=s-1-i),a+=t[i]*c[n];u[r]=a}return u},c.syncOrAsync=function(t,e,r){var n;function i(){return c.syncOrAsync(t,e,r)}for(;t.length;)if((n=(0,t.splice(0,1)[0])(e))&&n.then)return n.then(i).then(void 0,c.promiseError);return r&&r(e)},c.stripTrailingSlash=function(t){return"/"===t.substr(-1)?t.substr(0,t.length-1):t},c.noneOrAll=function(t,e,r){if(t){var n,i=!1,a=!0;for(n=0;n0?e:0}))},c.fillArray=function(t,e,r,n){if(n=n||c.identity,c.isArrayOrTypedArray(t))for(var i=0;i1?i+o[1]:"";if(a&&(o.length>1||s.length>4||r))for(;n.test(s);)s=s.replace(n,"$1"+a+"$2");return s+l},c.TEMPLATE_STRING_REGEX=/%{([^\s%{}:]*)([:|\|][^}]*)?}/g;var I=/^\w*$/;c.templateString=function(t,e){var r={};return t.replace(c.TEMPLATE_STRING_REGEX,(function(t,n){var i;return I.test(n)?i=e[n]:(r[n]=r[n]||c.nestedProperty(e,n).get,i=r[n]()),c.isValidTextValue(i)?i:""}))};var P={max:10,count:0,name:"hovertemplate"};c.hovertemplateString=function(){return D.apply(P,arguments)};var z={max:10,count:0,name:"texttemplate"};c.texttemplateString=function(){return D.apply(z,arguments)};var O=/^[:|\|]/;function D(t,e,r){var a=this,o=arguments;e||(e={});var s={};return t.replace(c.TEMPLATE_STRING_REGEX,(function(t,l,u){var f,h,p,d;for(p=3;p=48&&o<=57,c=s>=48&&s<=57;if(l&&(n=10*n+o-48),c&&(i=10*i+s-48),!l||!c){if(n!==i)return n-i;if(o!==s)return o-s}}return i-n};var R=2e9;c.seedPseudoRandom=function(){R=2e9},c.pseudoRandom=function(){var t=R;return R=(69069*R+1)%4294967296,Math.abs(R-t)<429496729?c.pseudoRandom():R/4294967296},c.fillText=function(t,e,r){var n=Array.isArray(r)?function(t){r.push(t)}:function(t){r.text=t},i=c.extractOption(t,e,"htx","hovertext");if(c.isValidTextValue(i))return n(i);var a=c.extractOption(t,e,"tx","text");return c.isValidTextValue(a)?n(a):void 0},c.isValidTextValue=function(t){return t||0===t},c.formatPercent=function(t,e){e=e||0;for(var r=(Math.round(100*t*Math.pow(10,e))*Math.pow(.1,e)).toFixed(e)+"%",n=0;n1&&(u=1):u=0,c.strTranslate(i-u*(r+o),a-u*(n+s))+c.strScale(u)+(l?"rotate("+l+(e?"":" "+r+" "+n)+")":"")},c.ensureUniformFontSize=function(t,e){var r=c.extendFlat({},e);return r.size=Math.max(e.size,t._fullLayout.uniformtext.minsize||0),r},c.join2=function(t,e,r){var n=t.length;return n>1?t.slice(0,-1).join(e)+r+t[n-1]:t.join(e)}},{"../constants/numerical":753,"./anchor_utils":758,"./angles":759,"./array":760,"./clean_number":761,"./clear_responsive":763,"./coerce":764,"./dates":765,"./dom":766,"./extend":768,"./filter_unique":769,"./filter_visible":770,"./geometry2d":773,"./identity":776,"./increment":777,"./is_plain_object":779,"./keyed_container":780,"./localize":781,"./loggers":782,"./make_trace_groups":783,"./matrix":784,"./mod":785,"./nested_property":786,"./noop":787,"./notifier":788,"./preserve_drawing_buffer":792,"./push_unique":793,"./regex":795,"./relative_attr":796,"./relink_private":797,"./search":798,"./stats":801,"./throttle":804,"./to_log_range":805,d3:169,"d3-time-format":166,"fast-isnumeric":241}],779:[function(t,e,r){"use strict";e.exports=function(t){return window&&window.process&&window.process.versions?"[object Object]"===Object.prototype.toString.call(t):"[object Object]"===Object.prototype.toString.call(t)&&Object.getPrototypeOf(t)===Object.prototype}},{}],780:[function(t,e,r){"use strict";var n=t("./nested_property"),i=/^\w*$/;e.exports=function(t,e,r,a){var o,s,l;r=r||"name",a=a||"value";var c={};e&&e.length?(l=n(t,e),s=l.get()):s=t,e=e||"";var u={};if(s)for(o=0;o2)return c[e]=2|c[e],h.set(t,null);if(f){for(o=e;o1){var e=["LOG:"];for(t=0;t1){var r=[];for(t=0;t"),"long")}},a.warn=function(){var t;if(n.logging>0){var e=["WARN:"];for(t=0;t0){var r=[];for(t=0;t"),"stick")}},a.error=function(){var t;if(n.logging>0){var e=["ERROR:"];for(t=0;t0){var r=[];for(t=0;t"),"stick")}}},{"../plot_api/plot_config":815,"./notifier":788}],783:[function(t,e,r){"use strict";var n=t("d3");e.exports=function(t,e,r){var i=t.selectAll("g."+r.replace(/\s/g,".")).data(e,(function(t){return t[0].trace.uid}));i.exit().remove(),i.enter().append("g").attr("class",r),i.order();var a=t.classed("rangeplot")?"nodeRangePlot3":"node3";return i.each((function(t){t[0][a]=n.select(this)})),i}},{d3:169}],784:[function(t,e,r){"use strict";var n=t("gl-mat4");r.init2dArray=function(t,e){for(var r=new Array(t),n=0;ne/2?t-Math.round(t/e)*e:t}}},{}],786:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("./array").isArrayOrTypedArray;function a(t,e){return function(){var r,n,o,s,l,c=t;for(s=0;s/g),l=0;la||c===i||cs)&&(!e||!l(t))}:function(t,e){var l=t[0],c=t[1];if(l===i||la||c===i||cs)return!1;var u,f,h,p,d,g=r.length,m=r[0][0],v=r[0][1],y=0;for(u=1;uMath.max(f,m)||c>Math.max(h,v)))if(cu||Math.abs(n(o,h))>i)return!0;return!1},a.filter=function(t,e){var r=[t[0]],n=0,i=0;function o(o){t.push(o);var s=r.length,l=n;r.splice(i+1);for(var c=l+1;c1&&o(t.pop());return{addPt:o,raw:t,filtered:r}}},{"../constants/numerical":753,"./matrix":784}],791:[function(t,e,r){(function(r){(function(){"use strict";var n=t("./show_no_webgl_msg"),i=t("regl");e.exports=function(t,e){var a=t._fullLayout,o=!0;return a._glcanvas.each((function(n){if(!n.regl&&(!n.pick||a._has("parcoords"))){try{n.regl=i({canvas:this,attributes:{antialias:!n.pick,preserveDrawingBuffer:!0},pixelRatio:t._context.plotGlPixelRatio||r.devicePixelRatio,extensions:e||[]})}catch(t){o=!1}n.regl||(o=!1),o&&this.addEventListener("webglcontextlost",(function(e){t&&t.emit&&t.emit("plotly_webglcontextlost",{event:e,layer:n.key})}),!1)}})),o||n({container:a._glcontainer.node()}),o}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./show_no_webgl_msg":800,regl:540}],792:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("is-mobile");e.exports=function(t){var e;if("string"!=typeof(e=t&&t.hasOwnProperty("userAgent")?t.userAgent:function(){var t;"undefined"!=typeof navigator&&(t=navigator.userAgent);t&&t.headers&&"string"==typeof t.headers["user-agent"]&&(t=t.headers["user-agent"]);return t}()))return!0;var r=i({ua:{headers:{"user-agent":e}},tablet:!0,featureDetect:!1});if(!r)for(var a=e.split(" "),o=1;o-1;s--){var l=a[s];if("Version/"===l.substr(0,8)){var c=l.substr(8).split(".")[0];if(n(c)&&(c=+c),c>=13)return!0}}}return r}},{"fast-isnumeric":241,"is-mobile":467}],793:[function(t,e,r){"use strict";e.exports=function(t,e){if(e instanceof RegExp){for(var r=e.toString(),n=0;ni.queueLength&&(t.undoQueue.queue.shift(),t.undoQueue.index--))},startSequence:function(t){t.undoQueue=t.undoQueue||{index:0,queue:[],sequence:!1},t.undoQueue.sequence=!0,t.undoQueue.beginSequence=!0},stopSequence:function(t){t.undoQueue=t.undoQueue||{index:0,queue:[],sequence:!1},t.undoQueue.sequence=!1,t.undoQueue.beginSequence=!1},undo:function(t){var e,r;if(t.framework&&t.framework.isPolar)t.framework.undo();else if(!(void 0===t.undoQueue||isNaN(t.undoQueue.index)||t.undoQueue.index<=0)){for(t.undoQueue.index--,e=t.undoQueue.queue[t.undoQueue.index],t.undoQueue.inSequence=!0,r=0;r=t.undoQueue.queue.length)){for(e=t.undoQueue.queue[t.undoQueue.index],t.undoQueue.inSequence=!0,r=0;re}function u(t,e){return t>=e}r.findBin=function(t,e,r){if(n(e.start))return r?Math.ceil((t-e.start)/e.size-1e-9)-1:Math.floor((t-e.start)/e.size+1e-9);var a,o,f=0,h=e.length,p=0,d=h>1?(e[h-1]-e[0])/(h-1):1;for(o=d>=0?r?s:l:r?u:c,t+=1e-9*d*(r?-1:1)*(d>=0?1:-1);f90&&i.log("Long binary search..."),f-1},r.sorterAsc=function(t,e){return t-e},r.sorterDes=function(t,e){return e-t},r.distinctVals=function(t,e){var n,i=(e||{}).unitMinDiff,a=t.slice();for(a.sort(r.sorterAsc),n=a.length-1;n>-1&&a[n]===o;n--);var s=1;i||(s=a[n]-a[0]||1);for(var l,c=s/(n||1)/1e4,u=[],f=0;f<=n;f++){var h=a[f],p=h-l;void 0===l?(u.push(h),l=h):p>c&&(s=Math.min(s,p),u.push(h),l=h)}return{vals:u,minDiff:s}},r.roundUp=function(t,e,r){for(var n,i=0,a=e.length-1,o=0,s=r?0:1,l=r?1:0,c=r?Math.ceil:Math.floor;i0&&(n=1),r&&n)return t.sort(e)}return n?t:t.reverse()},r.findIndexOfMin=function(t,e){e=e||a;for(var r,n=1/0,i=0;ia.length)&&(o=a.length),n(e)||(e=!1),i(a[0])){for(l=new Array(o),s=0;st.length-1)return t[t.length-1];var r=e%1;return r*t[Math.ceil(e)]+(1-r)*t[Math.floor(e)]}},{"./array":760,"fast-isnumeric":241}],802:[function(t,e,r){"use strict";var n=t("color-normalize");e.exports=function(t){return t?n(t):[0,0,0,1]}},{"color-normalize":125}],803:[function(t,e,r){"use strict";var n=t("d3"),i=t("../lib"),a=i.strTranslate,o=t("../constants/xmlns_namespaces"),s=t("../constants/alignment").LINE_SPACING;function l(t,e){return t.node().getBoundingClientRect()[e]}var c=/([^$]*)([$]+[^$]*[$]+)([^$]*)/;r.convertToTspans=function(t,e,A){var S=t.text(),C=!t.attr("data-notex")&&"undefined"!=typeof MathJax&&S.match(c),L=n.select(t.node().parentNode);if(!L.empty()){var I=t.attr("class")?t.attr("class").split(" ")[0]:"text";return I+="-math",L.selectAll("svg."+I).remove(),L.selectAll("g."+I+"-group").remove(),t.style("display",null).attr({"data-unformatted":S,"data-math":"N"}),C?(e&&e._promises||[]).push(new Promise((function(e){t.style("display","none");var r=parseInt(t.node().style.fontSize,10),o={fontSize:r};!function(t,e,r){var a,o,s,l;MathJax.Hub.Queue((function(){return o=i.extendDeepAll({},MathJax.Hub.config),s=MathJax.Hub.processSectionDelay,void 0!==MathJax.Hub.processSectionDelay&&(MathJax.Hub.processSectionDelay=0),MathJax.Hub.Config({messageStyle:"none",tex2jax:{inlineMath:[["$","$"],["\\(","\\)"]]},displayAlign:"left"})}),(function(){if("SVG"!==(a=MathJax.Hub.config.menuSettings.renderer))return MathJax.Hub.setRenderer("SVG")}),(function(){var r="math-output-"+i.randstr({},64);return l=n.select("body").append("div").attr({id:r}).style({visibility:"hidden",position:"absolute"}).style({"font-size":e.fontSize+"px"}).text(t.replace(u,"\\lt ").replace(f,"\\gt ")),MathJax.Hub.Typeset(l.node())}),(function(){var e=n.select("body").select("#MathJax_SVG_glyphs");if(l.select(".MathJax_SVG").empty()||!l.select("svg").node())i.log("There was an error in the tex syntax.",t),r();else{var o=l.select("svg").node().getBoundingClientRect();r(l.select(".MathJax_SVG"),e,o)}if(l.remove(),"SVG"!==a)return MathJax.Hub.setRenderer(a)}),(function(){return void 0!==s&&(MathJax.Hub.processSectionDelay=s),MathJax.Hub.Config(o)}))}(C[2],o,(function(n,i,o){L.selectAll("svg."+I).remove(),L.selectAll("g."+I+"-group").remove();var s=n&&n.select("svg");if(!s||!s.node())return P(),void e();var c=L.append("g").classed(I+"-group",!0).attr({"pointer-events":"none","data-unformatted":S,"data-math":"Y"});c.node().appendChild(s.node()),i&&i.node()&&s.node().insertBefore(i.node().cloneNode(!0),s.node().firstChild),s.attr({class:I,height:o.height,preserveAspectRatio:"xMinYMin meet"}).style({overflow:"visible","pointer-events":"none"});var u=t.node().style.fill||"black",f=s.select("g");f.attr({fill:u,stroke:u});var h=l(f,"width"),p=l(f,"height"),d=+t.attr("x")-h*{start:0,middle:.5,end:1}[t.attr("text-anchor")||"start"],g=-(r||l(t,"height"))/4;"y"===I[0]?(c.attr({transform:"rotate("+[-90,+t.attr("x"),+t.attr("y")]+")"+a(-h/2,g-p/2)}),s.attr({x:+t.attr("x"),y:+t.attr("y")})):"l"===I[0]?s.attr({x:t.attr("x"),y:g-p/2}):"a"===I[0]&&0!==I.indexOf("atitle")?s.attr({x:0,y:g}):s.attr({x:d,y:+t.attr("y")+g-p/2}),A&&A.call(t,c),e(c)}))}))):P(),t}function P(){L.empty()||(I=t.attr("class")+"-math",L.select("svg."+I).remove()),t.text("").style("white-space","pre"),function(t,e){e=e.replace(m," ");var r,a=!1,l=[],c=-1;function u(){c++;var e=document.createElementNS(o.svg,"tspan");n.select(e).attr({class:"line",dy:c*s+"em"}),t.appendChild(e),r=e;var i=l;if(l=[{node:e}],i.length>1)for(var a=1;a doesnt match end tag <"+t+">. Pretending it did match.",e),r=l[l.length-1].node}else i.log("Ignoring unexpected end tag .",e)}x.test(e)?u():(r=t,l=[{node:t}]);for(var C=e.split(v),L=0;L|>|>)/g;var h={sup:"font-size:70%",sub:"font-size:70%",b:"font-weight:bold",i:"font-style:italic",a:"cursor:pointer",span:"",em:"font-style:italic;font-weight:bold"},p={sub:"0.3em",sup:"-0.6em"},d={sub:"-0.21em",sup:"0.42em"},g=["http:","https:","mailto:","",void 0,":"],m=r.NEWLINES=/(\r\n?|\n)/g,v=/(<[^<>]*>)/,y=/<(\/?)([^ >]*)(\s+(.*))?>/i,x=//i;r.BR_TAG_ALL=//gi;var b=/(^|[\s"'])style\s*=\s*("([^"]*);?"|'([^']*);?')/i,_=/(^|[\s"'])href\s*=\s*("([^"]*)"|'([^']*)')/i,w=/(^|[\s"'])target\s*=\s*("([^"\s]*)"|'([^'\s]*)')/i,T=/(^|[\s"'])popup\s*=\s*("([\w=,]*)"|'([\w=,]*)')/i;function k(t,e){if(!t)return null;var r=t.match(e),n=r&&(r[3]||r[4]);return n&&E(n)}var M=/(^|;)\s*color:/;r.plainText=function(t,e){for(var r=void 0!==(e=e||{}).len&&-1!==e.len?e.len:1/0,n=void 0!==e.allowedTags?e.allowedTags:["br"],i="...".length,a=t.split(v),o=[],s="",l=0,c=0;ci?o.push(u.substr(0,d-i)+"..."):o.push(u.substr(0,d));break}s=""}}return o.join("")};var A={mu:"\u03bc",amp:"&",lt:"<",gt:">",nbsp:"\xa0",times:"\xd7",plusmn:"\xb1",deg:"\xb0"},S=/&(#\d+|#x[\da-fA-F]+|[a-z]+);/g;function E(t){return t.replace(S,(function(t,e){return("#"===e.charAt(0)?function(t){if(t>1114111)return;var e=String.fromCodePoint;if(e)return e(t);var r=String.fromCharCode;return t<=65535?r(t):r(55232+(t>>10),t%1024+56320)}("x"===e.charAt(1)?parseInt(e.substr(2),16):parseInt(e.substr(1),10)):A[e])||t}))}function C(t,e,r){var n,a,o,s=r.horizontalAlign,l=r.verticalAlign||"top",c=t.node().getBoundingClientRect(),u=e.node().getBoundingClientRect();return a="bottom"===l?function(){return c.bottom-n.height}:"middle"===l?function(){return c.top+(c.height-n.height)/2}:function(){return c.top},o="right"===s?function(){return c.right-n.width}:"center"===s?function(){return c.left+(c.width-n.width)/2}:function(){return c.left},function(){n=this.node().getBoundingClientRect();var t=o()-u.left,e=a()-u.top,s=r.gd||{};if(r.gd){s._fullLayout._calcInverseTransform(s);var l=i.apply3DTransform(s._fullLayout._invTransform)(t,e);t=l[0],e=l[1]}return this.style({top:e+"px",left:t+"px","z-index":1e3}),this}}r.convertEntities=E,r.sanitizeHTML=function(t){t=t.replace(m," ");for(var e=document.createElement("p"),r=e,i=[],a=t.split(v),o=0;oa.ts+e?l():a.timer=setTimeout((function(){l(),a.timer=null}),e)},r.done=function(t){var e=n[t];return e&&e.timer?new Promise((function(t){var r=e.onDone;e.onDone=function(){r&&r(),t(),e.onDone=null}})):Promise.resolve()},r.clear=function(t){if(t)i(n[t]),delete n[t];else for(var e in n)r.clear(e)}},{}],805:[function(t,e,r){"use strict";var n=t("fast-isnumeric");e.exports=function(t,e){if(t>0)return Math.log(t)/Math.LN10;var r=Math.log(Math.min(e[0],e[1]))/Math.LN10;return n(r)||(r=Math.log(Math.max(e[0],e[1]))/Math.LN10-6),r}},{"fast-isnumeric":241}],806:[function(t,e,r){"use strict";var n=e.exports={},i=t("../plots/geo/constants").locationmodeToLayer,a=t("topojson-client").feature;n.getTopojsonName=function(t){return[t.scope.replace(/ /g,"-"),"_",t.resolution.toString(),"m"].join("")},n.getTopojsonPath=function(t,e){return t+e+".json"},n.getTopojsonFeatures=function(t,e){var r=i[t.locationmode],n=e.objects[r];return a(e,n).features}},{"../plots/geo/constants":858,"topojson-client":579}],807:[function(t,e,r){"use strict";e.exports={moduleType:"locale",name:"en-US",dictionary:{"Click to enter Colorscale title":"Click to enter Colorscale title"},format:{date:"%m/%d/%Y"}}},{}],808:[function(t,e,r){"use strict";e.exports={moduleType:"locale",name:"en",dictionary:{"Click to enter Colorscale title":"Click to enter Colourscale title"},format:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],periods:["AM","PM"],dateTime:"%a %b %e %X %Y",date:"%d/%m/%Y",time:"%H:%M:%S",decimal:".",thousands:",",grouping:[3],currency:["$",""],year:"%Y",month:"%b %Y",dayMonth:"%b %-d",dayMonthYear:"%b %-d, %Y"}}},{}],809:[function(t,e,r){"use strict";var n=t("../registry");e.exports=function(t){for(var e,r,i=n.layoutArrayContainers,a=n.layoutArrayRegexes,o=t.split("[")[0],s=0;s0&&o.log("Clearing previous rejected promises from queue."),t._promises=[]},r.cleanLayout=function(t){var e,n;t||(t={}),t.xaxis1&&(t.xaxis||(t.xaxis=t.xaxis1),delete t.xaxis1),t.yaxis1&&(t.yaxis||(t.yaxis=t.yaxis1),delete t.yaxis1),t.scene1&&(t.scene||(t.scene=t.scene1),delete t.scene1);var a=(s.subplotsRegistry.cartesian||{}).attrRegex,l=(s.subplotsRegistry.polar||{}).attrRegex,f=(s.subplotsRegistry.ternary||{}).attrRegex,h=(s.subplotsRegistry.gl3d||{}).attrRegex,g=Object.keys(t);for(e=0;e3?(z.x=1.02,z.xanchor="left"):z.x<-2&&(z.x=-.02,z.xanchor="right"),z.y>3?(z.y=1.02,z.yanchor="bottom"):z.y<-2&&(z.y=-.02,z.yanchor="top")),d(t),"rotate"===t.dragmode&&(t.dragmode="orbit"),c.clean(t),t.template&&t.template.layout&&r.cleanLayout(t.template.layout),t},r.cleanData=function(t){for(var e=0;e0)return t.substr(0,e)}r.hasParent=function(t,e){for(var r=b(e);r;){if(r in t)return!0;r=b(r)}return!1};var _=["x","y","z"];r.clearAxisTypes=function(t,e,r){for(var n=0;n1&&a.warn("Full array edits are incompatible with other edits",f);var y=r[""][""];if(c(y))e.set(null);else{if(!Array.isArray(y))return a.warn("Unrecognized full array edit value",f,y),!0;e.set(y)}return!g&&(h(m,v),p(t),!0)}var x,b,_,w,T,k,M,A,S=Object.keys(r).map(Number).sort(o),E=e.get(),C=E||[],L=u(v,f).get(),I=[],P=-1,z=C.length;for(x=0;xC.length-(M?0:1))a.warn("index out of range",f,_);else if(void 0!==k)T.length>1&&a.warn("Insertion & removal are incompatible with edits to the same index.",f,_),c(k)?I.push(_):M?("add"===k&&(k={}),C.splice(_,0,k),L&&L.splice(_,0,{})):a.warn("Unrecognized full object edit value",f,_,k),-1===P&&(P=_);else for(b=0;b=0;x--)C.splice(I[x],1),L&&L.splice(I[x],1);if(C.length?E||e.set(C):e.set(null),g)return!1;if(h(m,v),d!==i){var O;if(-1===P)O=S;else{for(z=Math.max(C.length,z),O=[],x=0;x=P);x++)O.push(_);for(x=P;x=t.data.length||i<-t.data.length)throw new Error(r+" must be valid indices for gd.data.");if(e.indexOf(i,n+1)>-1||i>=0&&e.indexOf(-t.data.length+i)>-1||i<0&&e.indexOf(t.data.length+i)>-1)throw new Error("each index in "+r+" must be unique.")}}function O(t,e,r){if(!Array.isArray(t.data))throw new Error("gd.data must be an array.");if("undefined"==typeof e)throw new Error("currentIndices is a required argument.");if(Array.isArray(e)||(e=[e]),z(t,e,"currentIndices"),"undefined"==typeof r||Array.isArray(r)||(r=[r]),"undefined"!=typeof r&&z(t,r,"newIndices"),"undefined"!=typeof r&&e.length!==r.length)throw new Error("current and new indices must be of equal length.")}function D(t,e,r,n,a){!function(t,e,r,n){var i=o.isPlainObject(n);if(!Array.isArray(t.data))throw new Error("gd.data must be an array");if(!o.isPlainObject(e))throw new Error("update must be a key:value object");if("undefined"==typeof r)throw new Error("indices must be an integer or array of integers");for(var a in z(t,r,"indices"),e){if(!Array.isArray(e[a])||e[a].length!==r.length)throw new Error("attribute "+a+" must be an array of length equal to indices array length");if(i&&(!(a in n)||!Array.isArray(n[a])||n[a].length!==e[a].length))throw new Error("when maxPoints is set as a key:value object it must contain a 1:1 corrispondence with the keys and number of traces in the update object")}}(t,e,r,n);for(var l=function(t,e,r,n){var a,l,c,u,f,h=o.isPlainObject(n),p=[];for(var d in Array.isArray(r)||(r=[r]),r=P(r,t.data.length-1),e)for(var g=0;g-1?l(r,r.replace("titlefont","title.font")):r.indexOf("titleposition")>-1?l(r,r.replace("titleposition","title.position")):r.indexOf("titleside")>-1?l(r,r.replace("titleside","title.side")):r.indexOf("titleoffset")>-1&&l(r,r.replace("titleoffset","title.offset")):l(r,r.replace("title","title.text"));function l(e,r){t[r]=t[e],delete t[e]}}function q(t,e,r){if(t=o.getGraphDiv(t),T.clearPromiseQueue(t),t.framework&&t.framework.isPolar)return Promise.resolve(t);var n={};if("string"==typeof e)n[e]=r;else{if(!o.isPlainObject(e))return o.warn("Relayout fail.",e,r),Promise.reject();n=o.extendFlat({},e)}Object.keys(n).length&&(t.changed=!0);var i=Z(t,n),a=i.flags;a.calc&&(t.calcdata=void 0);var s=[h.previousPromises];a.layoutReplot?s.push(k.layoutReplot):Object.keys(n).length&&(H(t,a,i)||h.supplyDefaults(t),a.legend&&s.push(k.doLegend),a.layoutstyle&&s.push(k.layoutStyles),a.axrange&&G(s,i.rangesAltered),a.ticks&&s.push(k.doTicksRelayout),a.modebar&&s.push(k.doModeBar),a.camera&&s.push(k.doCamera),a.colorbars&&s.push(k.doColorBars),s.push(E)),s.push(h.rehover,h.redrag),c.add(t,q,[t,i.undoit],q,[t,i.redoit]);var l=o.syncOrAsync(s,t);return l&&l.then||(l=Promise.resolve(t)),l.then((function(){return t.emit("plotly_relayout",i.eventData),t}))}function H(t,e,r){var n=t._fullLayout;if(!e.axrange)return!1;for(var i in e)if("axrange"!==i&&e[i])return!1;for(var a in r.rangesAltered){var o=d.id2name(a),s=t.layout[o],l=n[o];if(l.autorange=s.autorange,s.range&&(l.range=s.range.slice()),l.cleanRange(),l._matchGroup)for(var c in l._matchGroup)if(c!==a){var u=n[d.id2name(c)];u.autorange=l.autorange,u.range=l.range.slice(),u._input.range=l.range.slice()}}return!0}function G(t,e){var r=e?function(t){var r=[],n=!0;for(var i in e){var a=d.getFromId(t,i);if(r.push(i),-1!==(a.ticklabelposition||"").indexOf("inside")&&a._anchorAxis&&r.push(a._anchorAxis._id),a._matchGroup)for(var o in a._matchGroup)e[o]||r.push(o);a.automargin&&(n=!1)}return d.draw(t,r,{skipTitle:n})}:function(t){return d.draw(t,"redraw")};t.push(b,k.doAutoRangeAndConstraints,r,k.drawData,k.finalDraw)}var Y=/^[xyz]axis[0-9]*\.range(\[[0|1]\])?$/,W=/^[xyz]axis[0-9]*\.autorange$/,X=/^[xyz]axis[0-9]*\.domain(\[[0|1]\])?$/;function Z(t,e){var r,n,i,a=t.layout,l=t._fullLayout,c=l._guiEditing,h=N(l._preGUI,c),p=Object.keys(e),g=d.list(t),m=o.extendDeepAll({},e),v={};for(V(e),p=Object.keys(e),n=0;n0&&"string"!=typeof z.parts[D];)D--;var R=z.parts[D],F=z.parts[D-1]+"."+R,j=z.parts.slice(0,D).join("."),U=s(t.layout,j).get(),q=s(l,j).get(),H=z.get();if(void 0!==O){k[P]=O,S[P]="reverse"===R?O:B(H);var G=f.getLayoutValObject(l,z.parts);if(G&&G.impliedEdits&&null!==O)for(var Z in G.impliedEdits)E(o.relativeAttr(P,Z),G.impliedEdits[Z]);if(-1!==["width","height"].indexOf(P))if(O){E("autosize",null);var K="height"===P?"width":"height";E(K,l[K])}else l[P]=t._initialAutoSize[P];else if("autosize"===P)E("width",O?null:l.width),E("height",O?null:l.height);else if(F.match(Y))I(F),s(l,j+"._inputRange").set(null);else if(F.match(W)){I(F),s(l,j+"._inputRange").set(null);var Q=s(l,j).get();Q._inputDomain&&(Q._input.domain=Q._inputDomain.slice())}else F.match(X)&&s(l,j+"._inputDomain").set(null);if("type"===R){C=U;var $="linear"===q.type&&"log"===O,tt="log"===q.type&&"linear"===O;if($||tt){if(C&&C.range)if(q.autorange)$&&(C.range=C.range[1]>C.range[0]?[1,2]:[2,1]);else{var et=C.range[0],rt=C.range[1];$?(et<=0&&rt<=0&&E(j+".autorange",!0),et<=0?et=rt/1e6:rt<=0&&(rt=et/1e6),E(j+".range[0]",Math.log(et)/Math.LN10),E(j+".range[1]",Math.log(rt)/Math.LN10)):(E(j+".range[0]",Math.pow(10,et)),E(j+".range[1]",Math.pow(10,rt)))}else E(j+".autorange",!0);Array.isArray(l._subplots.polar)&&l._subplots.polar.length&&l[z.parts[0]]&&"radialaxis"===z.parts[1]&&delete l[z.parts[0]]._subplot.viewInitial["radialaxis.range"],u.getComponentMethod("annotations","convertCoords")(t,q,O,E),u.getComponentMethod("images","convertCoords")(t,q,O,E)}else E(j+".autorange",!0),E(j+".range",null);s(l,j+"._inputRange").set(null)}else if(R.match(A)){var nt=s(l,P).get(),it=(O||{}).type;it&&"-"!==it||(it="linear"),u.getComponentMethod("annotations","convertCoords")(t,nt,it,E),u.getComponentMethod("images","convertCoords")(t,nt,it,E)}var at=w.containerArrayMatch(P);if(at){r=at.array,n=at.index;var ot=at.property,st=G||{editType:"calc"};""!==n&&""===ot&&(w.isAddVal(O)?S[P]=null:w.isRemoveVal(O)?S[P]=(s(a,r).get()||[])[n]:o.warn("unrecognized full object value",e)),M.update(_,st),v[r]||(v[r]={});var lt=v[r][n];lt||(lt=v[r][n]={}),lt[ot]=O,delete e[P]}else"reverse"===R?(U.range?U.range.reverse():(E(j+".autorange",!0),U.range=[1,0]),q.autorange?_.calc=!0:_.plot=!0):(l._has("scatter-like")&&l._has("regl")&&"dragmode"===P&&("lasso"===O||"select"===O)&&"lasso"!==H&&"select"!==H||l._has("gl2d")?_.plot=!0:G?M.update(_,G):_.calc=!0,z.set(O))}}for(r in v){w.applyContainerArrayChanges(t,h(a,r),v[r],_,h)||(_.plot=!0)}for(var ct in L){var ut=(C=d.getFromId(t,ct))&&C._constraintGroup;if(ut)for(var ft in _.calc=!0,ut)L[ft]||(d.getFromId(t,ft)._constraintShrinkable=!0)}return(J(t)||e.height||e.width)&&(_.plot=!0),(_.plot||_.calc)&&(_.layoutReplot=!0),{flags:_,rangesAltered:L,undoit:S,redoit:k,eventData:m}}function J(t){var e=t._fullLayout,r=e.width,n=e.height;return t.layout.autosize&&h.plotAutoSize(t,t.layout,e),e.width!==r||e.height!==n}function K(t,e,n,i){if(t=o.getGraphDiv(t),T.clearPromiseQueue(t),t.framework&&t.framework.isPolar)return Promise.resolve(t);o.isPlainObject(e)||(e={}),o.isPlainObject(n)||(n={}),Object.keys(e).length&&(t.changed=!0),Object.keys(n).length&&(t.changed=!0);var a=T.coerceTraceIndices(t,i),s=U(t,o.extendFlat({},e),a),l=s.flags,u=Z(t,o.extendFlat({},n)),f=u.flags;(l.calc||f.calc)&&(t.calcdata=void 0),l.clearAxisTypes&&T.clearAxisTypes(t,a,n);var p=[];f.layoutReplot?p.push(k.layoutReplot):l.fullReplot?p.push(r.plot):(p.push(h.previousPromises),H(t,f,u)||h.supplyDefaults(t),l.style&&p.push(k.doTraceStyle),(l.colorbars||f.colorbars)&&p.push(k.doColorBars),f.legend&&p.push(k.doLegend),f.layoutstyle&&p.push(k.layoutStyles),f.axrange&&G(p,u.rangesAltered),f.ticks&&p.push(k.doTicksRelayout),f.modebar&&p.push(k.doModeBar),f.camera&&p.push(k.doCamera),p.push(E)),p.push(h.rehover,h.redrag),c.add(t,K,[t,s.undoit,u.undoit,s.traces],K,[t,s.redoit,u.redoit,s.traces]);var d=o.syncOrAsync(p,t);return d&&d.then||(d=Promise.resolve(t)),d.then((function(){return t.emit("plotly_update",{data:s.eventData,layout:u.eventData}),t}))}function Q(t){return function(e){e._fullLayout._guiEditing=!0;var r=t.apply(null,arguments);return e._fullLayout._guiEditing=!1,r}}var $=[{pattern:/^hiddenlabels/,attr:"legend.uirevision"},{pattern:/^((x|y)axis\d*)\.((auto)?range|title\.text)/},{pattern:/axis\d*\.showspikes$/,attr:"modebar.uirevision"},{pattern:/(hover|drag)mode$/,attr:"modebar.uirevision"},{pattern:/^(scene\d*)\.camera/},{pattern:/^(geo\d*)\.(projection|center|fitbounds)/},{pattern:/^(ternary\d*\.[abc]axis)\.(min|title\.text)$/},{pattern:/^(polar\d*\.radialaxis)\.((auto)?range|angle|title\.text)/},{pattern:/^(polar\d*\.angularaxis)\.rotation/},{pattern:/^(mapbox\d*)\.(center|zoom|bearing|pitch)/},{pattern:/^legend\.(x|y)$/,attr:"editrevision"},{pattern:/^(shapes|annotations)/,attr:"editrevision"},{pattern:/^title\.text$/,attr:"editrevision"}],tt=[{pattern:/^selectedpoints$/,attr:"selectionrevision"},{pattern:/(^|value\.)visible$/,attr:"legend.uirevision"},{pattern:/^dimensions\[\d+\]\.constraintrange/},{pattern:/^node\.(x|y|groups)/},{pattern:/^level$/},{pattern:/(^|value\.)name$/},{pattern:/colorbar\.title\.text$/},{pattern:/colorbar\.(x|y)$/,attr:"editrevision"}];function et(t,e){for(var r=0;r1;)if(n.pop(),void 0!==(r=s(e,n.join(".")+".uirevision").get()))return r;return e.uirevision}function nt(t,e){for(var r=0;r=i.length?i[0]:i[t]:i}function l(t){return Array.isArray(a)?t>=a.length?a[0]:a[t]:a}function c(t,e){var r=0;return function(){if(t&&++r===e)return t()}}return void 0===n._frameWaitingCnt&&(n._frameWaitingCnt=0),new Promise((function(a,u){function f(){n._currentFrame&&n._currentFrame.onComplete&&n._currentFrame.onComplete();var e=n._currentFrame=n._frameQueue.shift();if(e){var r=e.name?e.name.toString():null;t._fullLayout._currentFrame=r,n._lastFrameAt=Date.now(),n._timeToNext=e.frameOpts.duration,h.transition(t,e.frame.data,e.frame.layout,T.coerceTraceIndices(t,e.frame.traces),e.frameOpts,e.transitionOpts).then((function(){e.onComplete&&e.onComplete()})),t.emit("plotly_animatingframe",{name:r,frame:e.frame,animation:{frame:e.frameOpts,transition:e.transitionOpts}})}else t.emit("plotly_animated"),window.cancelAnimationFrame(n._animationRaf),n._animationRaf=null}function p(){t.emit("plotly_animating"),n._lastFrameAt=-1/0,n._timeToNext=0,n._runningTransitions=0,n._currentFrame=null;var e=function(){n._animationRaf=window.requestAnimationFrame(e),Date.now()-n._lastFrameAt>n._timeToNext&&f()};e()}var d,g,m=0;function v(t){return Array.isArray(i)?m>=i.length?t.transitionOpts=i[m]:t.transitionOpts=i[0]:t.transitionOpts=i,m++,t}var y=[],x=null==e,b=Array.isArray(e);if(!x&&!b&&o.isPlainObject(e))y.push({type:"object",data:v(o.extendFlat({},e))});else if(x||-1!==["string","number"].indexOf(typeof e))for(d=0;d0&&kk)&&M.push(g);y=M}}y.length>0?function(e){if(0!==e.length){for(var i=0;i=0;n--)if(o.isPlainObject(e[n])){var g=e[n].name,m=(u[g]||d[g]||{}).name,v=e[n].name,y=u[m]||d[m];m&&v&&"number"==typeof v&&y&&S<5&&(S++,o.warn('addFrames: overwriting frame "'+(u[m]||d[m]).name+'" with a frame whose name of type "number" also equates to "'+m+'". This is valid but may potentially lead to unexpected behavior since all plotly.js frame names are stored internally as strings.'),5===S&&o.warn("addFrames: This API call has yielded too many of these warnings. For the rest of this call, further warnings about numeric frame names will be suppressed.")),d[g]={name:g},p.push({frame:h.supplyFrameDefaults(e[n]),index:r&&void 0!==r[n]&&null!==r[n]?r[n]:f+n})}p.sort((function(t,e){return t.index>e.index?-1:t.index=0;n--){if("number"==typeof(i=p[n].frame).name&&o.warn("Warning: addFrames accepts frames with numeric names, but the numbers areimplicitly cast to strings"),!i.name)for(;u[i.name="frame "+t._transitionData._counter++];);if(u[i.name]){for(a=0;a=0;r--)n=e[r],a.push({type:"delete",index:n}),s.unshift({type:"insert",index:n,value:i[n]});var l=h.modifyFrames,u=h.modifyFrames,f=[t,s],p=[t,a];return c&&c.add(t,l,f,u,p),h.modifyFrames(t,a)},r.addTraces=function t(e,n,i){e=o.getGraphDiv(e);var a,s,l=[],u=r.deleteTraces,f=t,h=[e,l],p=[e,n];for(function(t,e,r){var n,i;if(!Array.isArray(t.data))throw new Error("gd.data must be an array.");if("undefined"==typeof e)throw new Error("traces must be defined.");for(Array.isArray(e)||(e=[e]),n=0;n=0&&r=0&&r=a.length)return!1;if(2===t.dimensions){if(r++,e.length===r)return t;var o=e[r];if(!_(o))return!1;t=a[i][o]}else t=a[i]}else t=a}}return t}function _(t){return t===Math.round(t)&&t>=0}function w(){var t,e,r={};for(t in d(r,o),n.subplotsRegistry){if((e=n.subplotsRegistry[t]).layoutAttributes)if(Array.isArray(e.attr))for(var i=0;i=l.length)return!1;i=(r=(n.transformsRegistry[l[c].type]||{}).attributes)&&r[e[2]],s=3}else if("area"===t.type)i=u[o];else{var f=t._module;if(f||(f=(n.modules[t.type||a.type.dflt]||{})._module),!f)return!1;if(!(i=(r=f.attributes)&&r[o])){var h=f.basePlotModule;h&&h.attributes&&(i=h.attributes[o])}i||(i=a[o])}return b(i,e,s)},r.getLayoutValObject=function(t,e){return b(function(t,e){var r,i,a,s,l=t._basePlotModules;if(l){var c;for(r=0;r=i&&(r._input||{})._templateitemname;o&&(a=i);var s,l=e+"["+a+"]";function c(){s={},o&&(s[l]={},s[l].templateitemname=o)}function u(t,e){o?n.nestedProperty(s[l],t).set(e):s[l+"."+t]=e}function f(){var t=s;return c(),t}return c(),{modifyBase:function(t,e){s[t]=e},modifyItem:u,getUpdateObj:f,applyUpdate:function(e,r){e&&u(e,r);var i=f();for(var a in i)n.nestedProperty(t,a).set(i[a])}}}},{"../lib":778,"../plots/attributes":824}],818:[function(t,e,r){"use strict";var n=t("d3"),i=t("../registry"),a=t("../plots/plots"),o=t("../lib"),s=t("../lib/clear_gl_canvases"),l=t("../components/color"),c=t("../components/drawing"),u=t("../components/titles"),f=t("../components/modebar"),h=t("../plots/cartesian/axes"),p=t("../constants/alignment"),d=t("../plots/cartesian/constraints"),g=d.enforce,m=d.clean,v=t("../plots/cartesian/autorange").doAutoRange;function y(t,e,r){for(var n=0;n=t[1]||i[1]<=t[0])&&(a[0]e[0]))return!0}return!1}function x(t){var e,i,s,u,d,g,m=t._fullLayout,v=m._size,x=v.p,_=h.list(t,"",!0);if(m._paperdiv.style({width:t._context.responsive&&m.autosize&&!t._context._hasZeroWidth&&!t.layout.width?"100%":m.width+"px",height:t._context.responsive&&m.autosize&&!t._context._hasZeroHeight&&!t.layout.height?"100%":m.height+"px"}).selectAll(".main-svg").call(c.setSize,m.width,m.height),t._context.setBackground(t,m.paper_bgcolor),r.drawMainTitle(t),f.manage(t),!m._has("cartesian"))return a.previousPromises(t);function T(t,e,r){var n=t._lw/2;return"x"===t._id.charAt(0)?e?"top"===r?e._offset-x-n:e._offset+e._length+x+n:v.t+v.h*(1-(t.position||0))+n%1:e?"right"===r?e._offset+e._length+x+n:e._offset-x-n:v.l+v.w*(t.position||0)+n%1}for(e=0;e<_.length;e++){var k=(u=_[e])._anchorAxis;u._linepositions={},u._lw=c.crispRound(t,u.linewidth,1),u._mainLinePosition=T(u,k,u.side),u._mainMirrorPosition=u.mirror&&k?T(u,k,p.OPPOSITE_SIDE[u.side]):null}var M=[],A=[],S=[],E=1===l.opacity(m.paper_bgcolor)&&1===l.opacity(m.plot_bgcolor)&&m.paper_bgcolor===m.plot_bgcolor;for(i in m._plots)if((s=m._plots[i]).mainplot)s.bg&&s.bg.remove(),s.bg=void 0;else{var C=s.xaxis.domain,L=s.yaxis.domain,I=s.plotgroup;if(y(C,L,S)){var P=I.node(),z=s.bg=o.ensureSingle(I,"rect","bg");P.insertBefore(z.node(),P.childNodes[0]),A.push(i)}else I.select("rect.bg").remove(),S.push([C,L]),E||(M.push(i),A.push(i))}var O,D,R,F,B,N,j,U,V,q,H,G,Y,W=m._bgLayer.selectAll(".bg").data(M);for(W.enter().append("rect").classed("bg",!0),W.exit().remove(),W.each((function(t){m._plots[t].bg=n.select(this)})),e=0;eT?u.push({code:"unused",traceType:y,templateCount:w,dataCount:T}):T>w&&u.push({code:"reused",traceType:y,templateCount:w,dataCount:T})}}else u.push({code:"data"});if(function t(e,r){for(var n in e)if("_"!==n.charAt(0)){var a=e[n],o=g(e,n,r);i(a)?(Array.isArray(e)&&!1===a._template&&a.templateitemname&&u.push({code:"missing",path:o,templateitemname:a.templateitemname}),t(a,o)):Array.isArray(a)&&m(a)&&t(a,o)}}({data:p,layout:h},""),u.length)return u.map(v)}},{"../lib":778,"../plots/attributes":824,"../plots/plots":891,"./plot_config":815,"./plot_schema":816,"./plot_template":817}],820:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("./plot_api"),a=t("../plots/plots"),o=t("../lib"),s=t("../snapshot/helpers"),l=t("../snapshot/tosvg"),c=t("../snapshot/svgtoimg"),u=t("../version").version,f={format:{valType:"enumerated",values:["png","jpeg","webp","svg","full-json"],dflt:"png"},width:{valType:"number",min:1},height:{valType:"number",min:1},scale:{valType:"number",min:0,dflt:1},setBackground:{valType:"any",dflt:!1},imageDataOnly:{valType:"boolean",dflt:!1}};e.exports=function(t,e){var r,h,p,d;function g(t){return!(t in e)||o.validate(e[t],f[t])}if(e=e||{},o.isPlainObject(t)?(r=t.data||[],h=t.layout||{},p=t.config||{},d={}):(t=o.getGraphDiv(t),r=o.extendDeep([],t.data),h=o.extendDeep({},t.layout),p=t._context,d=t._fullLayout||{}),!g("width")&&null!==e.width||!g("height")&&null!==e.height)throw new Error("Height and width should be pixel values.");if(!g("format"))throw new Error("Export format is not "+o.join2(f.format.values,", "," or ")+".");var m={};function v(t,r){return o.coerce(e,m,f,t,r)}var y=v("format"),x=v("width"),b=v("height"),_=v("scale"),w=v("setBackground"),T=v("imageDataOnly"),k=document.createElement("div");k.style.position="absolute",k.style.left="-5000px",document.body.appendChild(k);var M=o.extendFlat({},h);x?M.width=x:null===e.width&&n(d.width)&&(M.width=d.width),b?M.height=b:null===e.height&&n(d.height)&&(M.height=d.height);var A=o.extendFlat({},p,{_exportedPlot:!0,staticPlot:!0,setBackground:w}),S=s.getRedrawFunc(k);function E(){return new Promise((function(t){setTimeout(t,s.getDelay(k._fullLayout))}))}function C(){return new Promise((function(t,e){var r=l(k,y,_),n=k._fullLayout.width,f=k._fullLayout.height;function h(){i.purge(k),document.body.removeChild(k)}if("full-json"===y){var p=a.graphJson(k,!1,"keepdata","object",!0,!0);return p.version=u,p=JSON.stringify(p),h(),t(T?p:s.encodeJSON(p))}if(h(),"svg"===y)return t(T?r:s.encodeSVG(r));var d=document.createElement("canvas");d.id=o.randstr(),c({format:y,width:n,height:f,scale:_,canvas:d,svg:r,promise:!0}).then(t).catch(e)}))}return new Promise((function(t,e){i.plot(k,r,M,A).then(S).then(E).then(C).then((function(e){t(function(t){return T?t.replace(s.IMAGE_URL_PREFIX,""):t}(e))})).catch((function(t){e(t)}))}))}},{"../lib":778,"../plots/plots":891,"../snapshot/helpers":915,"../snapshot/svgtoimg":917,"../snapshot/tosvg":919,"../version":1370,"./plot_api":814,"fast-isnumeric":241}],821:[function(t,e,r){"use strict";var n=t("../lib"),i=t("../plots/plots"),a=t("./plot_schema"),o=t("./plot_config").dfltConfig,s=n.isPlainObject,l=Array.isArray,c=n.isArrayOrTypedArray;function u(t,e,r,i,a,o){o=o||[];for(var f=Object.keys(t),h=0;hx.length&&i.push(d("unused",a,v.concat(x.length)));var M,A,S,E,C,L=x.length,I=Array.isArray(k);if(I&&(L=Math.min(L,k.length)),2===b.dimensions)for(A=0;Ax[A].length&&i.push(d("unused",a,v.concat(A,x[A].length)));var P=x[A].length;for(M=0;M<(I?Math.min(P,k[A].length):P);M++)S=I?k[A][M]:k,E=y[A][M],C=x[A][M],n.validate(E,S)?C!==E&&C!==+E&&i.push(d("dynamic",a,v.concat(A,M),E,C)):i.push(d("value",a,v.concat(A,M),E))}else i.push(d("array",a,v.concat(A),y[A]));else for(A=0;A1&&p.push(d("object","layout"))),i.supplyDefaults(g);for(var m=g._fullData,v=r.length,y=0;y0&&Math.round(f)===f))return i;c=f}for(var h=e.calendar,p="start"===l,d="end"===l,g=t[r+"period0"],m=a(g,h)||0,v=[],y=i.length,x=0;xT;)w=o(w,-c,h);for(;w<=T;)w=o(w,c,h);_=o(w,-c,h)}else{for(w=m+(b=Math.round((T-m)/u))*u;w>T;)w-=u;for(;w<=T;)w+=u;_=w-u}v[x]=p?_:d?w:(_+w)/2}return v}},{"../../constants/numerical":753,"../../lib":778,"fast-isnumeric":241}],826:[function(t,e,r){"use strict";e.exports={xaxis:{valType:"subplotid",dflt:"x",editType:"calc+clearAxisTypes"},yaxis:{valType:"subplotid",dflt:"y",editType:"calc+clearAxisTypes"}}},{}],827:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("../../lib"),a=t("../../constants/numerical").FP_SAFE,o=t("../../registry"),s=t("./axis_ids"),l=s.getFromId,c=s.isLinked;function u(t,e){var r,n,a=[],o=t._fullLayout,s=h(o,e,0),l=h(o,e,1),c=p(t,e),u=c.min,d=c.max;if(0===u.length||0===d.length)return i.simpleMap(e.range,e.r2l);var g=u[0].val,m=d[0].val;for(r=1;r0&&((T=E-s(x)-l(b))>C?k/T>L&&(_=x,w=b,L=k/T):k/E>L&&(_={val:x.val,nopad:1},w={val:b.val,nopad:1},L=k/E));if(g===m){var I=g-1,P=g+1;if(A)if(0===g)a=[0,1];else{var z=(g>0?d:u).reduce((function(t,e){return Math.max(t,l(e))}),0),O=g/(1-Math.min(.5,z/E));a=g>0?[0,O]:[O,0]}else a=S?[Math.max(0,I),Math.max(1,P)]:[I,P]}else A?(_.val>=0&&(_={val:0,nopad:1}),w.val<=0&&(w={val:0,nopad:1})):S&&(_.val-L*s(_)<0&&(_={val:0,nopad:1}),w.val<=0&&(w={val:1,nopad:1})),L=(w.val-_.val-f(e,x.val,b.val))/(E-s(_)-l(w)),a=[_.val-L*s(_),w.val+L*l(w)];return v&&a.reverse(),i.simpleMap(a,e.l2r||Number)}function f(t,e,r){var n=0;if(t.rangebreaks)for(var i=t.locateBreaks(e,r),a=0;a0?r.ppadplus:r.ppadminus)||r.ppad||0),S=M((t._m>0?r.ppadminus:r.ppadplus)||r.ppad||0),E=M(r.vpadplus||r.vpad),C=M(r.vpadminus||r.vpad);if(!T){if(h=1/0,p=-1/0,w)for(i=0;i0&&(h=o),o>p&&o-a&&(h=o),o>p&&o=P;i--)I(i);return{min:m,max:y,opts:r}},concatExtremes:p};function p(t,e,r){var n,i,a,o=e._id,s=t._fullData,c=t._fullLayout,u=[],f=[];function h(t,e){for(n=0;n=r&&(c.extrapad||!o)){s=!1;break}i(e,c.val)&&c.pad<=r&&(o||!c.extrapad)&&(t.splice(l,1),l--)}if(s){var u=a&&0===e;t.push({val:e,pad:u?0:r,extrapad:!u&&o})}}function v(t){return n(t)&&Math.abs(t)=e}},{"../../constants/numerical":753,"../../lib":778,"../../registry":911,"./axis_ids":831,"fast-isnumeric":241}],828:[function(t,e,r){"use strict";var n=t("d3"),i=t("fast-isnumeric"),a=t("../../plots/plots"),o=t("../../registry"),s=t("../../lib"),l=s.strTranslate,c=t("../../lib/svg_text_utils"),u=t("../../components/titles"),f=t("../../components/color"),h=t("../../components/drawing"),p=t("./layout_attributes"),d=t("./clean_ticks"),g=t("../../constants/numerical"),m=g.ONEMAXYEAR,v=g.ONEAVGYEAR,y=g.ONEMINYEAR,x=g.ONEMAXQUARTER,b=g.ONEAVGQUARTER,_=g.ONEMINQUARTER,w=g.ONEMAXMONTH,T=g.ONEAVGMONTH,k=g.ONEMINMONTH,M=g.ONEWEEK,A=g.ONEDAY,S=A/2,E=g.ONEHOUR,C=g.ONEMIN,L=g.ONESEC,I=g.MINUS_SIGN,P=g.BADNUM,z=t("../../constants/alignment"),O=z.MID_SHIFT,D=z.CAP_SHIFT,R=z.LINE_SPACING,F=z.OPPOSITE_SIDE,B=e.exports={};B.setConvert=t("./set_convert");var N=t("./axis_autotype"),j=t("./axis_ids"),U=j.idSort,V=j.isLinked;B.id2name=j.id2name,B.name2id=j.name2id,B.cleanId=j.cleanId,B.list=j.list,B.listIds=j.listIds,B.getFromId=j.getFromId,B.getFromTrace=j.getFromTrace;var q=t("./autorange");B.getAutoRange=q.getAutoRange,B.findExtremes=q.findExtremes;function H(t){var e=1e-4*(t[1]-t[0]);return[t[0]-e,t[1]+e]}B.coerceRef=function(t,e,r,n,i,a){var o=n.charAt(n.length-1),l=r._fullLayout._subplots[o+"axis"],c=n+"ref",u={};return i||(i=l[0]||("string"==typeof a?a:a[0])),a||(a=i),l=l.concat(l.map((function(t){return t+" domain"}))),u[c]={valType:"enumerated",values:l.concat(a?"string"==typeof a?[a]:a:[]),dflt:i},s.coerce(t,e,u,c)},B.getRefType=function(t){return void 0===t?t:"paper"===t?"paper":"pixel"===t?"pixel":/( domain)$/.test(t)?"domain":"range"},B.coercePosition=function(t,e,r,n,i,a){var o,l;if("range"!==B.getRefType(n))o=s.ensureNumber,l=r(i,a);else{var c=B.getFromId(e,n);l=r(i,a=c.fraction2r(a)),o=c.cleanPos}t[i]=o(l)},B.cleanPosition=function(t,e,r){return("paper"===r||"pixel"===r?s.ensureNumber:B.getFromId(e,r).cleanPos)(t)},B.redrawComponents=function(t,e){e=e||B.listIds(t);var r=t._fullLayout;function n(n,i,a,s){for(var l=o.getComponentMethod(n,i),c={},u=0;u2e-6||((r-t._forceTick0)/t._minDtick%1+1.000001)%1>2e-6)&&(t._minDtick=0)):t._minDtick=0},B.saveRangeInitial=function(t,e){for(var r=B.list(t,"",!0),n=!1,i=0;i.3*h||u(n)||u(a))){var p=r.dtick/2;t+=t+p.8){var o=Number(r.substr(1));a.exactYears>.8&&o%12==0?t=B.tickIncrement(t,"M6","reverse")+1.5*A:a.exactMonths>.8?t=B.tickIncrement(t,"M1","reverse")+15.5*A:t-=S;var l=B.tickIncrement(t,r);if(l<=n)return l}return t}(y,t,v,c,a)),m=y,0;m<=u;)m=B.tickIncrement(m,v,!1,a);return{start:e.c2r(y,0,a),end:e.c2r(m,0,a),size:v,_dataSpan:u-c}},B.prepTicks=function(t,e){var r=s.simpleMap(t.range,t.r2l,void 0,void 0,e);if(t._dtickInit=t.dtick,t._tick0Init=t.tick0,"auto"===t.tickmode||!t.dtick){var n,a=t.nticks;a||("category"===t.type||"multicategory"===t.type?(n=t.tickfont?1.2*(t.tickfont.size||12):15,a=t._length/n):(n="y"===t._id.charAt(0)?40:80,a=s.constrain(t._length/n,4,9)+1),"radialaxis"===t._name&&(a*=2)),"array"===t.tickmode&&(a*=100),t._roughDTick=Math.abs(r[1]-r[0])/a,B.autoTicks(t,t._roughDTick),t._minDtick>0&&t.dtick<2*t._minDtick&&(t.dtick=t._minDtick,t.tick0=t.l2r(t._forceTick0))}"period"===t.ticklabelmode&&function(t){var e;function r(){return!(i(t.dtick)||"M"!==t.dtick.charAt(0))}var n=r(),a=B.getTickFormat(t);if(a){var o=t._dtickInit!==t.dtick;/%[fLQsSMX]/.test(a)||(/%[HI]/.test(a)?(e=E,o&&!n&&t.dticka&&f=o:p<=o;p=B.tickIncrement(p,t.dtick,l,t.calendar)){if(t.rangebreaks&&!l){if(p=u)break}if(C.length>g||p===L)break;L=p;var I=!1;f&&p!==(0|p)&&(I=!0),C.push({minor:I,value:p})}if(h&&function(t,e,r){for(var n=0;n0?(a=n-1,o=n):(a=n,o=n);var s,l=t[a].value,c=t[o].value,u=Math.abs(c-l),f=r||u,h=0;f>=y?h=u>=y&&u<=m?u:v:r===b&&f>=_?h=u>=_&&u<=x?u:b:f>=k?h=u>=k&&u<=w?u:T:r===M&&f>=M?h=M:f>=A?h=A:r===S&&f>=S?h=S:r===E&&f>=E&&(h=E),h>=u&&(h=u,s=!0);var p=i+h;if(e.rangebreaks&&h>0){for(var d=0,g=0;g<84;g++){var C=(g+.5)/84;e.maskBreaks(i*(1-C)+C*p)!==P&&d++}(h*=d/84)||(t[n].drop=!0),s&&u>M&&(h=u)}(h>0||0===n)&&(t[n].periodX=i+h/2)}}(C,t,t._definedDelta),t.rangebreaks){var z="y"===t._id.charAt(0),O=1;"auto"===t.tickmode&&(O=t.tickfont?t.tickfont.size:12);var D=NaN;for(d=C.length-1;d>-1;d--)if(C[d].drop)C.splice(d,1);else{C[d].value=wt(C[d].value,t);var R=t.c2p(C[d].value);(z?D>R-O:Du||Nu&&(F.periodX=u),N10||"01-01"!==n.substr(5)?t._tickround="d":t._tickround=+e.substr(1)%12==0?"y":"m";else if(e>=A&&a<=10||e>=15*A)t._tickround="d";else if(e>=C&&a<=16||e>=E)t._tickround="M";else if(e>=L&&a<=19||e>=C)t._tickround="S";else{var o=t.l2r(r+e).replace(/^-/,"").length;t._tickround=Math.max(a,o)-20,t._tickround<0&&(t._tickround=4)}}else if(i(e)||"L"===e.charAt(0)){var s=t.range.map(t.r2d||Number);i(e)||(e=Number(e.substr(1))),t._tickround=2-Math.floor(Math.log(e)/Math.LN10+.01);var l=Math.max(Math.abs(s[0]),Math.abs(s[1])),c=Math.floor(Math.log(l)/Math.LN10+.01),u=void 0===t.minexponent?3:t.minexponent;Math.abs(c)>u&&(ot(t.exponentformat)&&!st(c)?t._tickexponent=3*Math.round((c-1)/3):t._tickexponent=c)}else t._tickround=null}function it(t,e,r){var n=t.tickfont||{};return{x:e,dx:0,dy:0,text:r||"",fontSize:n.size,font:n.family,fontColor:n.color}}B.autoTicks=function(t,e){var r;function n(t){return Math.pow(t,Math.floor(Math.log(e)/Math.LN10))}if("date"===t.type){t.tick0=s.dateTick0(t.calendar,0);var a=2*e;if(a>v)e/=v,r=n(10),t.dtick="M"+12*rt(e,r,Z);else if(a>T)e/=T,t.dtick="M"+rt(e,1,J);else if(a>A){t.dtick=rt(e,A,t._hasDayOfWeekBreaks?[1,2,7,14]:Q);var o=B.getTickFormat(t),l="period"===t.ticklabelmode;l&&(t._rawTick0=t.tick0),/%[uVW]/.test(o)?t.tick0=s.dateTick0(t.calendar,2):t.tick0=s.dateTick0(t.calendar,1),l&&(t._dowTick0=t.tick0)}else a>E?t.dtick=rt(e,E,J):a>C?t.dtick=rt(e,C,K):a>L?t.dtick=rt(e,L,K):(r=n(10),t.dtick=rt(e,r,Z))}else if("log"===t.type){t.tick0=0;var c=s.simpleMap(t.range,t.r2l);if(e>.7)t.dtick=Math.ceil(e);else if(Math.abs(c[1]-c[0])<1){var u=1.5*Math.abs((c[1]-c[0])/e);e=Math.abs(Math.pow(10,c[1])-Math.pow(10,c[0]))/u,r=n(10),t.dtick="L"+rt(e,r,Z)}else t.dtick=e>.3?"D2":"D1"}else"category"===t.type||"multicategory"===t.type?(t.tick0=0,t.dtick=Math.ceil(Math.max(e,1))):_t(t)?(t.tick0=0,r=1,t.dtick=rt(e,r,et)):(t.tick0=0,r=n(10),t.dtick=rt(e,r,Z));if(0===t.dtick&&(t.dtick=1),!i(t.dtick)&&"string"!=typeof t.dtick){var f=t.dtick;throw t.dtick=1,"ax.dtick error: "+String(f)}},B.tickIncrement=function(t,e,r,a){var o=r?-1:1;if(i(e))return s.increment(t,o*e);var l=e.charAt(0),c=o*Number(e.substr(1));if("M"===l)return s.incrementMonth(t,c,a);if("L"===l)return Math.log(Math.pow(10,t)+c)/Math.LN10;if("D"===l){var u="D2"===e?tt:$,f=t+.01*o,h=s.roundUp(s.mod(f,1),u,r);return Math.floor(f)+Math.log(n.round(Math.pow(10,h),1))/Math.LN10}throw"unrecognized dtick "+String(e)},B.tickFirst=function(t,e){var r=t.r2l||Number,a=s.simpleMap(t.range,r,void 0,void 0,e),o=a[1] ")}else t._prevDateHead=l,c+="
    "+l;e.text=c}(t,o,r,c):"log"===u?function(t,e,r,n,a){var o=t.dtick,l=e.x,c=t.tickformat,u="string"==typeof o&&o.charAt(0);"never"===a&&(a="");n&&"L"!==u&&(o="L3",u="L");if(c||"L"===u)e.text=lt(Math.pow(10,l),t,a,n);else if(i(o)||"D"===u&&s.mod(l+.01,1)<.1){var f=Math.round(l),h=Math.abs(f),p=t.exponentformat;"power"===p||ot(p)&&st(f)?(e.text=0===f?1:1===f?"10":"10"+(f>1?"":I)+h+"",e.fontSize*=1.25):("e"===p||"E"===p)&&h>2?e.text="1"+p+(f>0?"+":I)+h:(e.text=lt(Math.pow(10,l),t,"","fakehover"),"D1"===o&&"y"===t._id.charAt(0)&&(e.dy-=e.fontSize/6))}else{if("D"!==u)throw"unrecognized dtick "+String(o);e.text=String(Math.round(Math.pow(10,s.mod(l,1)))),e.fontSize*=.75}if("D1"===t.dtick){var d=String(e.text).charAt(0);"0"!==d&&"1"!==d||("y"===t._id.charAt(0)?e.dx-=e.fontSize/4:(e.dy+=e.fontSize/2,e.dx+=(t.range[1]>t.range[0]?1:-1)*e.fontSize*(l<0?.5:.25)))}}(t,o,0,c,g):"category"===u?function(t,e){var r=t._categories[Math.round(e.x)];void 0===r&&(r="");e.text=String(r)}(t,o):"multicategory"===u?function(t,e,r){var n=Math.round(e.x),i=t._categories[n]||[],a=void 0===i[1]?"":String(i[1]),o=void 0===i[0]?"":String(i[0]);r?e.text=o+" - "+a:(e.text=a,e.text2=o)}(t,o,r):_t(t)?function(t,e,r,n,i){if("radians"!==t.thetaunit||r)e.text=lt(e.x,t,i,n);else{var a=e.x/180;if(0===a)e.text="0";else{var o=function(t){function e(t,e){return Math.abs(t-e)<=1e-6}var r=function(t){for(var r=1;!e(Math.round(t*r)/r,t);)r*=10;return r}(t),n=t*r,i=Math.abs(function t(r,n){return e(n,0)?r:t(n,r%n)}(n,r));return[Math.round(n/i),Math.round(r/i)]}(a);if(o[1]>=100)e.text=lt(s.deg2rad(e.x),t,i,n);else{var l=e.x<0;1===o[1]?1===o[0]?e.text="\u03c0":e.text=o[0]+"\u03c0":e.text=["",o[0],"","\u2044","",o[1],"","\u03c0"].join(""),l&&(e.text=I+e.text)}}}}(t,o,r,c,g):function(t,e,r,n,i){"never"===i?i="":"all"===t.showexponent&&Math.abs(e.x/t.dtick)<1e-6&&(i="hide");e.text=lt(e.x,t,i,n)}(t,o,0,c,g),n||(t.tickprefix&&!d(t.showtickprefix)&&(o.text=t.tickprefix+o.text),t.ticksuffix&&!d(t.showticksuffix)&&(o.text+=t.ticksuffix)),"boundaries"===t.tickson||t.showdividers){var m=function(e){var r=t.l2p(e);return r>=0&&r<=t._length?e:null};o.xbnd=[m(o.x-.5),m(o.x+t.dtick-.5)]}return o},B.hoverLabelText=function(t,e,r){if(r!==P&&r!==e)return B.hoverLabelText(t,e)+" - "+B.hoverLabelText(t,r);var n="log"===t.type&&e<=0,i=B.tickText(t,t.c2l(n?-e:e),"hover").text;return n?0===e?"0":I+i:i};var at=["f","p","n","\u03bc","m","","k","M","G","T"];function ot(t){return"SI"===t||"B"===t}function st(t){return t>14||t<-15}function lt(t,e,r,n){var a=t<0,o=e._tickround,l=r||e.exponentformat||"B",c=e._tickexponent,u=B.getTickFormat(e),f=e.separatethousands;if(n){var h={exponentformat:l,minexponent:e.minexponent,dtick:"none"===e.showexponent?e.dtick:i(t)&&Math.abs(t)||1,range:"none"===e.showexponent?e.range.map(e.r2d):[0,t||1]};nt(h),o=(Number(h._tickround)||0)+4,c=h._tickexponent,e.hoverformat&&(u=e.hoverformat)}if(u)return e._numFormat(u)(t).replace(/-/g,I);var p,d=Math.pow(10,-o)/2;if("none"===l&&(c=0),(t=Math.abs(t))"+p+"
    ":"B"===l&&9===c?t+="B":ot(l)&&(t+=at[c/3+5]));return a?I+t:t}function ct(t,e){for(var r=[],n={},i=0;i1&&r=i.min&&t=0,a=u(t,e[1])<=0;return(r||i)&&(n||a)}if(t.tickformatstops&&t.tickformatstops.length>0)switch(t.type){case"date":case"linear":for(e=0;e=o(i)))){r=n;break}break;case"log":for(e=0;e0?r.bottom-f:0,h)))),e.automargin){n={x:0,y:0,r:0,l:0,t:0,b:0};var p=[0,1];if("x"===d){if("b"===l?n[l]=e._depth:(n[l]=e._depth=Math.max(r.width>0?f-r.top:0,h),p.reverse()),r.width>0){var m=r.right-(e._offset+e._length);m>0&&(n.xr=1,n.r=m);var v=e._offset-r.left;v>0&&(n.xl=0,n.l=v)}}else if("l"===l?n[l]=e._depth=Math.max(r.height>0?f-r.left:0,h):(n[l]=e._depth=Math.max(r.height>0?r.right-f:0,h),p.reverse()),r.height>0){var y=r.bottom-(e._offset+e._length);y>0&&(n.yb=0,n.b=y);var x=e._offset-r.top;x>0&&(n.yt=1,n.t=x)}n[g]="free"===e.anchor?e.position:e._anchorAxis.domain[p[0]],e.title.text!==c._dfltTitle[d]&&(n[l]+=ht(e)+(e.title.standoff||0)),e.mirror&&"free"!==e.anchor&&((i={x:0,y:0,r:0,l:0,t:0,b:0})[u]=e.linewidth,e.mirror&&!0!==e.mirror&&(i[u]+=h),!0===e.mirror||"ticks"===e.mirror?i[g]=e._anchorAxis.domain[p[1]]:"all"!==e.mirror&&"allticks"!==e.mirror||(i[g]=[e._counterDomainMin,e._counterDomainMax][p[1]]))}K&&(s=o.getComponentMethod("rangeslider","autoMarginOpts")(t,e)),a.autoMargin(t,gt(e),n),a.autoMargin(t,mt(e),i),a.autoMargin(t,vt(e),s)})),r.skipTitle||K&&"bottom"===e.side||Z.push((function(){return function(t,e){var r,n=t._fullLayout,i=e._id,a=i.charAt(0),o=e.title.font.size;if(e.title.hasOwnProperty("standoff"))r=e._depth+e.title.standoff+ht(e);else{var s=-1!==(e.ticklabelposition||"").indexOf("inside");if("multicategory"===e.type)r=e._depth;else{var l=1.5*o;s&&(l=.5*o,"outside"===e.ticks&&(l+=e.ticklen)),r=10+l+(e.linewidth?e.linewidth-1:0)}s||(r+="x"===a?"top"===e.side?o*(e.showticklabels?1:0):o*(e.showticklabels?1.5:.5):"right"===e.side?o*(e.showticklabels?1:.5):o*(e.showticklabels?.5:0))}var c,f,p,d,g=B.getPxPosition(t,e);"x"===a?(f=e._offset+e._length/2,p="top"===e.side?g-r:g+r):(p=e._offset+e._length/2,f="right"===e.side?g+r:g-r,c={rotate:"-90",offset:0});if("multicategory"!==e.type){var m=e._selections[e._id+"tick"];if(d={selection:m,side:e.side},m&&m.node()&&m.node().parentNode){var v=h.getTranslate(m.node().parentNode);d.offsetLeft=v.x,d.offsetTop=v.y}e.title.hasOwnProperty("standoff")&&(d.pad=0)}return u.draw(t,i+"title",{propContainer:e,propName:e._name+".title.text",placeholder:n._dfltTitle[a],avoid:d,transform:c,attributes:{x:f,y:p,"text-anchor":"middle"}})}(t,e)})),s.syncOrAsync(Z)}}function Q(t){var r=p+(t||"tick");return w[r]||(w[r]=function(t,e){var r,n,i,a;t._selections[e].size()?(r=1/0,n=-1/0,i=1/0,a=-1/0,t._selections[e].each((function(){var t=dt(this),e=h.bBox(t.node().parentNode);r=Math.min(r,e.top),n=Math.max(n,e.bottom),i=Math.min(i,e.left),a=Math.max(a,e.right)}))):(r=0,n=0,i=0,a=0);return{top:r,bottom:n,left:i,right:a,height:n-r,width:a-i}}(e,r)),w[r]}},B.getTickSigns=function(t){var e=t._id.charAt(0),r={x:"top",y:"right"}[e],n=t.side===r?1:-1,i=[-1,1,n,-n];return"inside"!==t.ticks==("x"===e)&&(i=i.map((function(t){return-t}))),t.side&&i.push({l:-1,t:-1,r:1,b:1}[t.side.charAt(0)]),i},B.makeTransTickFn=function(t){return"x"===t._id.charAt(0)?function(e){return l(t._offset+t.l2p(e.x),0)}:function(e){return l(0,t._offset+t.l2p(e.x))}},B.makeTransTickLabelFn=function(t){var e=function(t){var e=t.ticklabelposition||"",r=function(t){return-1!==e.indexOf(t)},n=r("top"),i=r("left"),a=r("right"),o=r("bottom"),s=r("inside"),l=o||i||n||a;if(!l&&!s)return[0,0];var c=t.side,u=l?(t.tickwidth||0)/2:0,f=3,h=t.tickfont?t.tickfont.size:12;(o||n)&&(u+=h*D,f+=(t.linewidth||0)/2);(i||a)&&(u+=(t.linewidth||0)/2,f+=3);s&&"top"===c&&(f-=h*(1-D));(i||n)&&(u=-u);"bottom"!==c&&"right"!==c||(f=-f);return[l?u:0,s?f:0]}(t),r=e[0],n=e[1];return"x"===t._id.charAt(0)?function(e){return l(r+t._offset+t.l2p(ut(e)),n)}:function(e){return l(n,r+t._offset+t.l2p(ut(e)))}},B.makeTickPath=function(t,e,r,n){n=void 0!==n?n:t.ticklen;var i=t._id.charAt(0),a=(t.linewidth||1)/2;return"x"===i?"M0,"+(e+a*r)+"v"+n*r:"M"+(e+a*r)+",0h"+n*r},B.makeLabelFns=function(t,e,r){var n=t.ticklabelposition||"",a=function(t){return-1!==n.indexOf(t)},o=a("top"),l=a("left"),c=a("right"),u=a("bottom")||l||o||c,f=a("inside"),h="inside"===n&&"inside"===t.ticks||!f&&"outside"===t.ticks&&"boundaries"!==t.tickson,p=0,d=0,g=h?t.ticklen:0;if(f?g*=-1:u&&(g=0),h&&(p+=g,r)){var m=s.deg2rad(r);p=g*Math.cos(m)+1,d=g*Math.sin(m)}t.showticklabels&&(h||t.showline)&&(p+=.2*t.tickfont.size);var v,y,x,b,_,w={labelStandoff:p+=(t.linewidth||1)/2*(f?-1:1),labelShift:d},T=0,k=t.side,M=t._id.charAt(0),A=t.tickangle;if("x"===M)b=(_=!f&&"bottom"===k||f&&"top"===k)?1:-1,f&&(b*=-1),v=d*b,y=e+p*b,x=_?1:-.2,90===Math.abs(A)&&(f?x+=O:x=-90===A&&"bottom"===k?D:90===A&&"top"===k?O:.5,T=O/2*(A/90)),w.xFn=function(t){return t.dx+v+T*t.fontSize},w.yFn=function(t){return t.dy+y+t.fontSize*x},w.anchorFn=function(t,e){if(u){if(l)return"end";if(c)return"start"}return i(e)&&0!==e&&180!==e?e*b<0!==f?"end":"start":"middle"},w.heightFn=function(e,r,n){return r<-60||r>60?-.5*n:"top"===t.side!==f?-n:0};else if("y"===M){if(b=(_=!f&&"left"===k||f&&"right"===k)?1:-1,f&&(b*=-1),v=p,y=d*b,x=0,f||90!==Math.abs(A)||(x=-90===A&&"left"===k||90===A&&"right"===k?D:.5),f){var S=i(A)?+A:0;if(0!==S){var E=s.deg2rad(S);T=Math.abs(Math.sin(E))*D*b,x=0}}w.xFn=function(t){return t.dx+e-(v+t.fontSize*x)*b+T*t.fontSize},w.yFn=function(t){return t.dy+y+t.fontSize*O},w.anchorFn=function(t,e){return i(e)&&90===Math.abs(e)?"middle":_?"end":"start"},w.heightFn=function(e,r,n){return"right"===t.side&&(r*=-1),r<-30?-n:r<30?-.5*n:0}}return w},B.drawTicks=function(t,e,r){r=r||{};var n=e._id+"tick",i=r.vals;"period"===e.ticklabelmode&&(i=i.slice()).shift();var a=r.layer.selectAll("path."+n).data(e.ticks?i:[],ft);a.exit().remove(),a.enter().append("path").classed(n,1).classed("ticks",1).classed("crisp",!1!==r.crisp).call(f.stroke,e.tickcolor).style("stroke-width",h.crispRound(t,e.tickwidth,1)+"px").attr("d",r.path),a.attr("transform",r.transFn)},B.drawGrid=function(t,e,r){r=r||{};var n=e._id+"grid",i=r.vals,a=r.counterAxis;if(!1===e.showgrid)i=[];else if(a&&B.shouldShowZeroLine(t,e,a))for(var o="array"===e.tickmode,s=0;so||i.lefto||i.top+(e.tickangle?0:t.fontSize/4)1)for(n=1;n2*o}(i,e))return"date";var m="strict"!==r.autotypenumbers;return function(t,e){for(var r=t.length,n=f(r),i=0,o=0,s={},u=0;u2*i}(i,m)?"category":function(t,e){for(var r=t.length,n=0;n=2){var l,c,u="";if(2===o.length)for(l=0;l<2;l++)if(c=y(o[l])){u=d;break}var f=i("pattern",u);if(f===d)for(l=0;l<2;l++)(c=y(o[l]))&&(e.bounds[l]=o[l]=c-1);if(f)for(l=0;l<2;l++)switch(c=o[l],f){case d:if(!n(c))return void(e.enabled=!1);if((c=+c)!==Math.floor(c)||c<0||c>=7)return void(e.enabled=!1);e.bounds[l]=o[l]=c;break;case g:if(!n(c))return void(e.enabled=!1);if((c=+c)<0||c>24)return void(e.enabled=!1);e.bounds[l]=o[l]=c}if(!1===r.autorange){var h=r.range;if(h[0]h[1])return void(e.enabled=!1)}else if(o[0]>h[0]&&o[1]n?1:-1:+(t.substr(1)||1)-+(e.substr(1)||1)},r.ref2id=function(t){return!!/^[xyz]/.test(t)&&t.split(" ")[0]},r.isLinked=function(t,e){return a(e,t._axisMatchGroups)||a(e,t._axisConstraintGroups)}},{"../../registry":911,"./constants":834}],832:[function(t,e,r){"use strict";e.exports=function(t,e,r,n){if("category"===e.type){var i,a=t.categoryarray,o=Array.isArray(a)&&a.length>0;o&&(i="array");var s,l=r("categoryorder",i);"array"===l&&(s=r("categoryarray")),o||"array"!==l||(l=e.categoryorder="trace"),"trace"===l?e._initialCategories=[]:"array"===l?e._initialCategories=s.slice():(s=function(t,e){var r,n,i,a=e.dataAttr||t._id.charAt(0),o={};if(e.axData)r=e.axData;else for(r=[],n=0;nn?i.substr(n):a.substr(r))+o:i+a+t*e:o}function m(t,e){for(var r=e._size,n=r.h/r.w,i={},a=Object.keys(t),o=0;oc*x)||T)for(r=0;rz&&FI&&(I=F);h/=(I-L)/(2*P),L=l.l2r(L),I=l.l2r(I),l.range=l._input.range=S=0?Math.min(t,.9):1/(1/Math.max(t,-.3)+3.222))}function B(t,e,r,n,i){return t.append("path").attr("class","zoombox").style({fill:e>.2?"rgba(0,0,0,0)":"rgba(255,255,255,0)","stroke-width":0}).attr("transform",l(r,n)).attr("d",i+"Z")}function N(t,e,r){return t.append("path").attr("class","zoombox-corners").style({fill:u.background,stroke:u.defaultLine,"stroke-width":1,opacity:0}).attr("transform",l(e,r)).attr("d","M0,0Z")}function j(t,e,r,n,i,a){t.attr("d",n+"M"+r.l+","+r.t+"v"+r.h+"h"+r.w+"v-"+r.h+"h-"+r.w+"Z"),U(t,e,i,a)}function U(t,e,r,n){r||(t.transition().style("fill",n>.2?"rgba(0,0,0,0.4)":"rgba(255,255,255,0.3)").duration(200),e.transition().style("opacity",1).duration(200))}function V(t){n.select(t).selectAll(".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners").remove()}function q(t){I&&t.data&&t._context.showTips&&(s.notifier(s._(t,"Double-click to zoom back out"),"long"),I=!1)}function H(t){var e=Math.floor(Math.min(t.b-t.t,t.r-t.l,L)/2);return"M"+(t.l-3.5)+","+(t.t-.5+e)+"h3v"+-e+"h"+e+"v-3h-"+(e+3)+"ZM"+(t.r+3.5)+","+(t.t-.5+e)+"h-3v"+-e+"h"+-e+"v-3h"+(e+3)+"ZM"+(t.r+3.5)+","+(t.b+.5-e)+"h-3v"+e+"h"+-e+"v3h"+(e+3)+"ZM"+(t.l-3.5)+","+(t.b+.5-e)+"h3v"+e+"h"+e+"v3h-"+(e+3)+"Z"}function G(t,e,r,n,i){for(var a,o,l,c,u=!1,f={},h={},p=(i||{}).xaHash,d=(i||{}).yaHash,g=0;g=0)i._fullLayout._deactivateShape(i);else{var a=i._fullLayout.clickmode;if(V(i),2!==t||mt||qt(),gt)a.indexOf("select")>-1&&A(r,i,Z,J,e.id,Lt),a.indexOf("event")>-1&&h.click(i,r,e.id);else if(1===t&&mt){var s=d?P:I,l="s"===d||"w"===m?0:1,u=s._name+".range["+l+"]",f=function(t,e){var r,i=t.range[e],a=Math.abs(i-t.range[1-e]);return"date"===t.type?i:"log"===t.type?(r=Math.ceil(Math.max(0,-Math.log(a)/Math.LN10))+3,n.format("."+r+"g")(Math.pow(10,i))):(r=Math.floor(Math.log(Math.abs(i))/Math.LN10)-Math.floor(Math.log(a)/Math.LN10)+4,n.format("."+String(r)+"g")(i))}(s,l),p="left",g="middle";if(s.fixedrange)return;d?(g="n"===d?"top":"bottom","right"===s.side&&(p="right")):"e"===m&&(p="right"),i._context.showAxisRangeEntryBoxes&&n.select(xt).call(c.makeEditable,{gd:i,immediate:!0,background:i._fullLayout.paper_bgcolor,text:String(f),fill:s.tickfont?s.tickfont.color:"#444",horizontalAlign:p,verticalAlign:g}).on("edit",(function(t){var e=s.d2r(t);void 0!==e&&o.call("_guiRelayout",i,u,e)}))}}}function zt(e,r){if(t._transitioningWithDuration)return!1;var n=Math.max(0,Math.min($,ht*e+bt)),i=Math.max(0,Math.min(tt,pt*r+_t)),a=Math.abs(n-bt),o=Math.abs(i-_t);function s(){At="",wt.r=wt.l,wt.t=wt.b,Et.attr("d","M0,0Z")}if(wt.l=Math.min(bt,n),wt.r=Math.max(bt,n),wt.t=Math.min(_t,i),wt.b=Math.max(_t,i),et.isSubplotConstrained)a>L||o>L?(At="xy",a/$>o/tt?(o=a*tt/$,_t>i?wt.t=_t-o:wt.b=_t+o):(a=o*$/tt,bt>n?wt.l=bt-a:wt.r=bt+a),Et.attr("d",H(wt))):s();else if(rt.isSubplotConstrained)if(a>L||o>L){At="xy";var l=Math.min(wt.l/$,(tt-wt.b)/tt),c=Math.max(wt.r/$,(tt-wt.t)/tt);wt.l=l*$,wt.r=c*$,wt.b=(1-l)*tt,wt.t=(1-c)*tt,Et.attr("d",H(wt))}else s();else!it||o0){var u;if(rt.isSubplotConstrained||!nt&&1===it.length){for(u=0;ug[1]-1/4096&&(e.domain=s),i.noneOrAll(t.domain,e.domain,s)}return r("layer"),e}},{"../../lib":778,"fast-isnumeric":241}],846:[function(t,e,r){"use strict";var n=t("../../constants/alignment").FROM_BL;e.exports=function(t,e,r){void 0===r&&(r=n[t.constraintoward||"center"]);var i=[t.r2l(t.range[0]),t.r2l(t.range[1])],a=i[0]+(i[1]-i[0])*r;t.range=t._input.range=[t.l2r(a+(i[0]-a)*e),t.l2r(a+(i[1]-a)*e)],t.setScale()}},{"../../constants/alignment":745}],847:[function(t,e,r){"use strict";var n=t("polybooljs"),i=t("../../registry"),a=t("../../components/drawing").dashStyle,o=t("../../components/color"),s=t("../../components/fx"),l=t("../../components/fx/helpers").makeEventData,c=t("../../components/dragelement/helpers"),u=c.freeMode,f=c.rectMode,h=c.drawMode,p=c.openMode,d=c.selectMode,g=t("../../components/shapes/draw_newshape/display_outlines"),m=t("../../components/shapes/draw_newshape/helpers").handleEllipse,v=t("../../components/shapes/draw_newshape/newshapes"),y=t("../../lib"),x=t("../../lib/polygon"),b=t("../../lib/throttle"),_=t("./axis_ids").getFromId,w=t("../../lib/clear_gl_canvases"),T=t("../../plot_api/subroutines").redrawReglTraces,k=t("./constants"),M=k.MINSELECT,A=x.filter,S=x.tester,E=t("./handle_outline").clearSelect,C=t("./helpers"),L=C.p2r,I=C.axValue,P=C.getTransform;function z(t,e,r,n,i,a,o){var s,l,c,u,f,h,d,m,v,y=e._hoverdata,x=e._fullLayout.clickmode.indexOf("event")>-1,b=[];if(function(t){return t&&Array.isArray(t)&&!0!==t[0].hoverOnBox}(y)){F(t,e,a);var _=function(t,e){var r,n,i=t[0],a=-1,o=[];for(n=0;n0?function(t,e){var r,n,i,a=[];for(i=0;i0&&a.push(r);if(1===a.length&&a[0]===e.searchInfo&&(n=e.searchInfo.cd[0].trace).selectedpoints.length===e.pointNumbers.length){for(i=0;i1)return!1;if((i+=r.selectedpoints.length)>1)return!1}return 1===i}(s)&&(h=j(_))){for(o&&o.remove(),v=0;v=0&&n._fullLayout._deactivateShape(n),h(e)){var a=n._fullLayout._zoomlayer.selectAll(".select-outline-"+r.id);if(a&&n._fullLayout._drawing){var o=v(a,t);o&&i.call("_guiRelayout",n,{shapes:o}),n._fullLayout._drawing=!1}}r.selection={},r.selection.selectionDefs=t.selectionDefs=[],r.selection.mergedPolygons=t.mergedPolygons=[]}function N(t,e,r,n){var i,a,o,s=[],l=e.map((function(t){return t._id})),c=r.map((function(t){return t._id}));for(o=0;o0?n[0]:r;return!!e.selectedpoints&&e.selectedpoints.indexOf(i)>-1}function U(t,e,r){var n,a,o,s;for(n=0;n=0)C._fullLayout._deactivateShape(C);else if(!_){var r=O.clickmode;b.done(gt).then((function(){if(b.clear(gt),2===t){for(ft.remove(),$=0;$-1&&z(e,C,i.xaxes,i.yaxes,i.subplot,i,ft),"event"===r&&C.emit("plotly_selected",void 0);s.click(C,e)})).catch(y.error)}},i.doneFn=function(){dt.remove(),b.done(gt).then((function(){b.clear(gt),i.gd.emit("plotly_selected",et),Q&&i.selectionDefs&&(Q.subtract=ut,i.selectionDefs.push(Q),i.mergedPolygons.length=0,[].push.apply(i.mergedPolygons,K)),i.doneFnCompleted&&i.doneFnCompleted(mt)})).catch(y.error),_&&B(i)}},clearSelect:E,clearSelectionsCache:B,selectOnClick:z}},{"../../components/color":643,"../../components/dragelement/helpers":661,"../../components/drawing":665,"../../components/fx":683,"../../components/fx/helpers":679,"../../components/shapes/draw_newshape/display_outlines":728,"../../components/shapes/draw_newshape/helpers":729,"../../components/shapes/draw_newshape/newshapes":730,"../../lib":778,"../../lib/clear_gl_canvases":762,"../../lib/polygon":790,"../../lib/throttle":804,"../../plot_api/subroutines":818,"../../registry":911,"./axis_ids":831,"./constants":834,"./handle_outline":838,"./helpers":839,polybooljs:517}],848:[function(t,e,r){"use strict";var n=t("d3"),i=t("d3-time-format").utcFormat,a=t("fast-isnumeric"),o=t("../../lib"),s=o.cleanNumber,l=o.ms2DateTime,c=o.dateTime2ms,u=o.ensureNumber,f=o.isArrayOrTypedArray,h=t("../../constants/numerical"),p=h.FP_SAFE,d=h.BADNUM,g=h.LOG_CLIP,m=h.ONEWEEK,v=h.ONEDAY,y=h.ONEHOUR,x=h.ONEMIN,b=h.ONESEC,_=t("./axis_ids"),w=t("./constants"),T=w.HOUR_PATTERN,k=w.WEEKDAY_PATTERN;function M(t){return Math.pow(10,t)}function A(t){return null!=t}e.exports=function(t,e){e=e||{};var r=t._id||"x",h=r.charAt(0);function S(e,r){if(e>0)return Math.log(e)/Math.LN10;if(e<=0&&r&&t.range&&2===t.range.length){var n=t.range[0],i=t.range[1];return.5*(n+i-2*g*Math.abs(n-i))}return d}function E(e,r,n,i){if((i||{}).msUTC&&a(e))return+e;var s=c(e,n||t.calendar);if(s===d){if(!a(e))return d;e=+e;var l=Math.floor(10*o.mod(e+.05,1)),u=Math.round(e-l/10);s=c(new Date(u))+l/10}return s}function C(e,r,n){return l(e,r,n||t.calendar)}function L(e){return t._categories[Math.round(e)]}function I(e){if(A(e)){if(void 0===t._categoriesMap&&(t._categoriesMap={}),void 0!==t._categoriesMap[e])return t._categoriesMap[e];t._categories.push("number"==typeof e?String(e):e);var r=t._categories.length-1;return t._categoriesMap[e]=r,r}return d}function P(e){if(t._categoriesMap)return t._categoriesMap[e]}function z(t){var e=P(t);return void 0!==e?e:a(t)?+t:void 0}function O(t){return a(t)?+t:P(t)}function D(t,e,r){return n.round(r+e*t,2)}function R(t,e,r){return(t-r)/e}var F=function(e){return a(e)?D(e,t._m,t._b):d},B=function(e){return R(e,t._m,t._b)};if(t.rangebreaks){var N="y"===h;F=function(e){if(!a(e))return d;var r=t._rangebreaks.length;if(!r)return D(e,t._m,t._b);var n=N;t.range[0]>t.range[1]&&(n=!n);for(var i=n?-1:1,o=i*e,s=0,l=0;lu)){s=o<(c+u)/2?l:l+1;break}s=l+1}var f=t._B[s]||0;return isFinite(f)?D(e,t._m2,f):0},B=function(e){var r=t._rangebreaks.length;if(!r)return R(e,t._m,t._b);for(var n=0,i=0;it._rangebreaks[i].pmax&&(n=i+1);return R(e,t._m2,t._B[n])}}t.c2l="log"===t.type?S:u,t.l2c="log"===t.type?M:u,t.l2p=F,t.p2l=B,t.c2p="log"===t.type?function(t,e){return F(S(t,e))}:F,t.p2c="log"===t.type?function(t){return M(B(t))}:B,-1!==["linear","-"].indexOf(t.type)?(t.d2r=t.r2d=t.d2c=t.r2c=t.d2l=t.r2l=s,t.c2d=t.c2r=t.l2d=t.l2r=u,t.d2p=t.r2p=function(e){return t.l2p(s(e))},t.p2d=t.p2r=B,t.cleanPos=u):"log"===t.type?(t.d2r=t.d2l=function(t,e){return S(s(t),e)},t.r2d=t.r2c=function(t){return M(s(t))},t.d2c=t.r2l=s,t.c2d=t.l2r=u,t.c2r=S,t.l2d=M,t.d2p=function(e,r){return t.l2p(t.d2r(e,r))},t.p2d=function(t){return M(B(t))},t.r2p=function(e){return t.l2p(s(e))},t.p2r=B,t.cleanPos=u):"date"===t.type?(t.d2r=t.r2d=o.identity,t.d2c=t.r2c=t.d2l=t.r2l=E,t.c2d=t.c2r=t.l2d=t.l2r=C,t.d2p=t.r2p=function(e,r,n){return t.l2p(E(e,0,n))},t.p2d=t.p2r=function(t,e,r){return C(B(t),e,r)},t.cleanPos=function(e){return o.cleanDate(e,d,t.calendar)}):"category"===t.type?(t.d2c=t.d2l=I,t.r2d=t.c2d=t.l2d=L,t.d2r=t.d2l_noadd=z,t.r2c=function(e){var r=O(e);return void 0!==r?r:t.fraction2r(.5)},t.l2r=t.c2r=u,t.r2l=O,t.d2p=function(e){return t.l2p(t.r2c(e))},t.p2d=function(t){return L(B(t))},t.r2p=t.d2p,t.p2r=B,t.cleanPos=function(t){return"string"==typeof t&&""!==t?t:u(t)}):"multicategory"===t.type&&(t.r2d=t.c2d=t.l2d=L,t.d2r=t.d2l_noadd=z,t.r2c=function(e){var r=z(e);return void 0!==r?r:t.fraction2r(.5)},t.r2c_just_indices=P,t.l2r=t.c2r=u,t.r2l=z,t.d2p=function(e){return t.l2p(t.r2c(e))},t.p2d=function(t){return L(B(t))},t.r2p=t.d2p,t.p2r=B,t.cleanPos=function(t){return Array.isArray(t)||"string"==typeof t&&""!==t?t:u(t)},t.setupMultiCategory=function(n){var i,a,s=t._traceIndices,l=t._matchGroup;if(l&&0===t._categories.length)for(var c in l)if(c!==r){var u=e[_.id2name(c)];s=s.concat(u._traceIndices)}var p=[[0,{}],[0,{}]],d=[];for(i=0;ip&&(s[n]=p),s[0]===s[1]){var c=Math.max(1,Math.abs(1e-6*s[0]));s[0]-=c,s[1]+=c}}else o.nestedProperty(t,e).set(i)},t.setScale=function(r){var n=e._size;if(t.overlaying){var i=_.getFromId({_fullLayout:e},t.overlaying);t.domain=i.domain}var a=r&&t._r?"_r":"range",o=t.calendar;t.cleanRange(a);var s,l,c=t.r2l(t[a][0],o),u=t.r2l(t[a][1],o),f="y"===h;if((f?(t._offset=n.t+(1-t.domain[1])*n.h,t._length=n.h*(t.domain[1]-t.domain[0]),t._m=t._length/(c-u),t._b=-t._m*u):(t._offset=n.l+t.domain[0]*n.w,t._length=n.w*(t.domain[1]-t.domain[0]),t._m=t._length/(u-c),t._b=-t._m*c),t._rangebreaks=[],t._lBreaks=0,t._m2=0,t._B=[],t.rangebreaks)&&(t._rangebreaks=t.locateBreaks(Math.min(c,u),Math.max(c,u)),t._rangebreaks.length)){for(s=0;su&&(p=!p),p&&t._rangebreaks.reverse();var d=p?-1:1;for(t._m2=d*t._length/(Math.abs(u-c)-t._lBreaks),t._B.push(-t._m2*(f?u:c)),s=0;si&&(i+=7,ai&&(i+=24,a=n&&a=n&&e=s.min&&(ts.max&&(s.max=n),i=!1)}i&&c.push({min:t,max:n})}};for(n=0;nr.duration?(!function(){for(var r={},n=0;n rect").call(o.setTranslate,0,0).call(o.setScale,1,1),t.plot.call(o.setTranslate,e._offset,r._offset).call(o.setScale,1,1);var n=t.plot.selectAll(".scatterlayer .trace");n.selectAll(".point").call(o.setPointGroupScale,1,1),n.selectAll(".textpoint").call(o.setTextPointsScale,1,1),n.call(o.hideOutsideRangePoints,t)}function m(e,r){var n=e.plotinfo,i=n.xaxis,l=n.yaxis,c=i._length,u=l._length,f=!!e.xr1,h=!!e.yr1,p=[];if(f){var d=a.simpleMap(e.xr0,i.r2l),g=a.simpleMap(e.xr1,i.r2l),m=d[1]-d[0],v=g[1]-g[0];p[0]=(d[0]*(1-r)+r*g[0]-d[0])/(d[1]-d[0])*c,p[2]=c*(1-r+r*v/m),i.range[0]=i.l2r(d[0]*(1-r)+r*g[0]),i.range[1]=i.l2r(d[1]*(1-r)+r*g[1])}else p[0]=0,p[2]=c;if(h){var y=a.simpleMap(e.yr0,l.r2l),x=a.simpleMap(e.yr1,l.r2l),b=y[1]-y[0],_=x[1]-x[0];p[1]=(y[1]*(1-r)+r*x[1]-y[1])/(y[0]-y[1])*u,p[3]=u*(1-r+r*_/b),l.range[0]=i.l2r(y[0]*(1-r)+r*x[0]),l.range[1]=l.l2r(y[1]*(1-r)+r*x[1])}else p[1]=0,p[3]=u;s.drawOne(t,i,{skipTitle:!0}),s.drawOne(t,l,{skipTitle:!0}),s.redrawComponents(t,[i._id,l._id]);var w=f?c/p[2]:1,T=h?u/p[3]:1,k=f?p[0]:0,M=h?p[1]:0,A=f?p[0]/p[2]*c:0,S=h?p[1]/p[3]*u:0,E=i._offset-A,C=l._offset-S;n.clipRect.call(o.setTranslate,k,M).call(o.setScale,1/w,1/T),n.plot.call(o.setTranslate,E,C).call(o.setScale,w,T),o.setPointGroupScale(n.zoomScalePts,1/w,1/T),o.setTextPointsScale(n.zoomScaleTxt,1/w,1/T)}s.redrawComponents(t)}},{"../../components/drawing":665,"../../lib":778,"../../registry":911,"./axes":828,d3:169}],853:[function(t,e,r){"use strict";var n=t("../../registry").traceIs,i=t("./axis_autotype");function a(t){return{v:"x",h:"y"}[t.orientation||"v"]}function o(t,e){var r=a(t),i=n(t,"box-violin"),o=n(t._fullInput||{},"candlestick");return i&&!o&&e===r&&void 0===t[r]&&void 0===t[r+"0"]}e.exports=function(t,e,r,s){r("autotypenumbers",s.autotypenumbersDflt),"-"===r("type",(s.splomStash||{}).type)&&(!function(t,e){if("-"!==t.type)return;var r,s=t._id,l=s.charAt(0);-1!==s.indexOf("scene")&&(s=l);var c=function(t,e,r){for(var n=0;n0&&(i["_"+r+"axes"]||{})[e])return i;if((i[r+"axis"]||r)===e){if(o(i,r))return i;if((i[r]||[]).length||i[r+"0"])return i}}}(e,s,l);if(!c)return;if("histogram"===c.type&&l==={v:"y",h:"x"}[c.orientation||"v"])return void(t.type="linear");var u=l+"calendar",f=c[u],h={noMultiCategory:!n(c,"cartesian")||n(c,"noMultiCategory")};"box"===c.type&&c._hasPreCompStats&&l==={h:"x",v:"y"}[c.orientation||"v"]&&(h.noMultiCategory=!0);if(h.autotypenumbers=t.autotypenumbers,o(c,l)){var p=a(c),d=[];for(r=0;r0?".":"")+a;i.isPlainObject(o)?l(o,e,s,n+1):e(s,a,o)}}))}r.manageCommandObserver=function(t,e,n,o){var s={},l=!0;e&&e._commandObserver&&(s=e._commandObserver),s.cache||(s.cache={}),s.lookupTable={};var c=r.hasSimpleAPICommandBindings(t,n,s.lookupTable);if(e&&e._commandObserver){if(c)return s;if(e._commandObserver.remove)return e._commandObserver.remove(),e._commandObserver=null,s}if(c){a(t,c,s.cache),s.check=function(){if(l){var e=a(t,c,s.cache);return e.changed&&o&&void 0!==s.lookupTable[e.value]&&(s.disable(),Promise.resolve(o({value:e.value,type:c.type,prop:c.prop,traces:c.traces,index:s.lookupTable[e.value]})).then(s.enable,s.enable)),e.changed}};for(var u=["plotly_relayout","plotly_redraw","plotly_restyle","plotly_update","plotly_animatingframe","plotly_afterplot"],f=0;f0&&i<0&&(i+=360);var s=(i-n)/4;return{type:"Polygon",coordinates:[[[n,a],[n,o],[n+s,o],[n+2*s,o],[n+3*s,o],[i,o],[i,a],[i-s,a],[i-2*s,a],[i-3*s,a],[n,a]]]}}e.exports=function(t){return new w(t)},T.plot=function(t,e,r){var n=this,i=e[this.id],a=[],o=!1;for(var s in y.layerNameToAdjective)if("frame"!==s&&i["show"+s]){o=!0;break}for(var l=0;l0&&a._module.calcGeoJSON(i,e)}if(!this.updateProjection(t,e)){this.viewInitial&&this.scope===r.scope||this.saveViewInitial(r),this.scope=r.scope,this.updateBaseLayers(e,r),this.updateDims(e,r),this.updateFx(e,r),u.generalUpdatePerTraceModule(this.graphDiv,this,t,r);var o=this.layers.frontplot.select(".scatterlayer");this.dataPoints.point=o.selectAll(".point"),this.dataPoints.text=o.selectAll("text"),this.dataPaths.line=o.selectAll(".js-line");var s=this.layers.backplot.select(".choroplethlayer");this.dataPaths.choropleth=s.selectAll("path"),this.render()}},T.updateProjection=function(t,e){var r=this.graphDiv,o=e[this.id],s=e._size,l=o.domain,c=o.projection,u=o.lonaxis,f=o.lataxis,p=u._ax,d=f._ax,g=this.projection=function(t){for(var e=t.projection.type,r=n.geo[y.projNames[e]](),i=t._isClipped?y.lonaxisSpan[e]/2:null,a=["center","rotate","parallels","clipExtent"],o=function(t){return t?r:[]},s=0;si*Math.PI/180}return!1},r.getPath=function(){return n.geo.path().projection(r)},r.getBounds=function(t){return r.getPath().bounds(t)},r.fitExtent=function(t,e){var n=t[1][0]-t[0][0],i=t[1][1]-t[0][1],a=r.clipExtent&&r.clipExtent();r.scale(150).translate([0,0]),a&&r.clipExtent(null);var o=r.getBounds(e),s=Math.min(n/(o[1][0]-o[0][0]),i/(o[1][1]-o[0][1])),l=+t[0][0]+(n-s*(o[1][0]+o[0][0]))/2,c=+t[0][1]+(i-s*(o[1][1]+o[0][1]))/2;return a&&r.clipExtent(a),r.scale(150*s).translate([l,c])},r.precision(y.precision),i&&r.clipAngle(i-y.clipPad);return r}(o),m=[[s.l+s.w*l.x[0],s.t+s.h*(1-l.y[1])],[s.l+s.w*l.x[1],s.t+s.h*(1-l.y[0])]],v=o.center||{},x=c.rotation||{},b=u.range||[],_=f.range||[];if(o.fitbounds){p._length=m[1][0]-m[0][0],d._length=m[1][1]-m[0][1],p.range=h(r,p),d.range=h(r,d);var w=(p.range[0]+p.range[1])/2,T=(d.range[0]+d.range[1])/2;if(o._isScoped)v={lon:w,lat:T};else if(o._isClipped){v={lon:w,lat:T},x={lon:w,lat:T,roll:x.roll};var M=c.type,A=y.lonaxisSpan[M]/2||180,S=y.lataxisSpan[M]/2||90;b=[w-A,w+A],_=[T-S,T+S]}else v={lon:w,lat:T},x={lon:w,lat:x.lat,roll:x.roll}}g.center([v.lon-x.lon,v.lat-x.lat]).rotate([-x.lon,-x.lat,x.roll]).parallels(c.parallels);var E=k(b,_);g.fitExtent(m,E);var C=this.bounds=g.getBounds(E),L=this.fitScale=g.scale(),I=g.translate();if(!isFinite(C[0][0])||!isFinite(C[0][1])||!isFinite(C[1][0])||!isFinite(C[1][1])||isNaN(I[0])||isNaN(I[0])){for(var P=["fitbounds","projection.rotation","center","lonaxis.range","lataxis.range"],z="Invalid geo settings, relayout'ing to default view.",O={},D=0;D-1&&m(n.event,a,[r.xaxis],[r.yaxis],r.id,f),l.indexOf("event")>-1&&c.click(a,n.event))}))}function h(t){return r.projection.invert([t[0]+r.xaxis._offset,t[1]+r.yaxis._offset])}},T.makeFramework=function(){var t=this,e=t.graphDiv,r=e._fullLayout,i="clip"+r._uid+t.id;t.clipDef=r._clips.append("clipPath").attr("id",i),t.clipRect=t.clipDef.append("rect"),t.framework=n.select(t.container).append("g").attr("class","geo "+t.id).call(l.setClipUrl,i,e),t.project=function(e){var r=t.projection(e);return r?[r[0]-t.xaxis._offset,r[1]-t.yaxis._offset]:[null,null]},t.xaxis={_id:"x",c2p:function(e){return t.project(e)[0]}},t.yaxis={_id:"y",c2p:function(e){return t.project(e)[1]}},t.mockAxis={type:"linear",showexponent:"all",exponentformat:"B"},f.setConvert(t.mockAxis,r)},T.saveViewInitial=function(t){var e,r=t.center||{},n=t.projection,i=n.rotation||{};this.viewInitial={fitbounds:t.fitbounds,"projection.scale":n.scale},e=t._isScoped?{"center.lon":r.lon,"center.lat":r.lat}:t._isClipped?{"projection.rotation.lon":i.lon,"projection.rotation.lat":i.lat}:{"center.lon":r.lon,"center.lat":r.lat,"projection.rotation.lon":i.lon},a.extendFlat(this.viewInitial,e)},T.render=function(){var t,e=this.projection,r=e.getPath();function n(t){var r=e(t.lonlat);return r?o(r[0],r[1]):null}function i(t){return e.isLonLatOverEdges(t.lonlat)?"none":null}for(t in this.basePaths)this.basePaths[t].attr("d",r);for(t in this.dataPaths)this.dataPaths[t].attr("d",(function(t){return r(t.geojson)}));for(t in this.dataPoints)this.dataPoints[t].attr("display",i).attr("transform",n)}},{"../../components/color":643,"../../components/dragelement":662,"../../components/drawing":665,"../../components/fx":683,"../../lib":778,"../../lib/geo_location_utils":771,"../../lib/topojson_utils":806,"../../registry":911,"../cartesian/autorange":827,"../cartesian/axes":828,"../cartesian/select":847,"../plots":891,"./constants":858,"./projections":863,"./zoom":864,d3:169,"topojson-client":579}],860:[function(t,e,r){"use strict";var n=t("../../plots/get_data").getSubplotCalcData,i=t("../../lib").counterRegex,a=t("./geo"),o="geo",s=i(o),l={};l.geo={valType:"subplotid",dflt:o,editType:"calc"},e.exports={attr:o,name:o,idRoot:o,idRegex:s,attrRegex:s,attributes:l,layoutAttributes:t("./layout_attributes"),supplyLayoutDefaults:t("./layout_defaults"),plot:function(t){for(var e=t._fullLayout,r=t.calcdata,i=e._subplots.geo,s=0;s0&&L<0&&(L+=360);var I,P,z,O=(C+L)/2;if(!p){var D=d?f.projRotate:[O,0,0];I=r("projection.rotation.lon",D[0]),r("projection.rotation.lat",D[1]),r("projection.rotation.roll",D[2]),r("showcoastlines",!d&&y)&&(r("coastlinecolor"),r("coastlinewidth")),r("showocean",!!y&&void 0)&&r("oceancolor")}(p?(P=-96.6,z=38.7):(P=d?O:I,z=(E[0]+E[1])/2),r("center.lon",P),r("center.lat",z),g)&&r("projection.parallels",f.projParallels||[0,60]);r("projection.scale"),r("showland",!!y&&void 0)&&r("landcolor"),r("showlakes",!!y&&void 0)&&r("lakecolor"),r("showrivers",!!y&&void 0)&&(r("rivercolor"),r("riverwidth")),r("showcountries",d&&"usa"!==u&&y)&&(r("countrycolor"),r("countrywidth")),("usa"===u||"north america"===u&&50===c)&&(r("showsubunits",y),r("subunitcolor"),r("subunitwidth")),d||r("showframe",y)&&(r("framecolor"),r("framewidth")),r("bgcolor"),r("fitbounds")&&(delete e.projection.scale,d?(delete e.center.lon,delete e.center.lat):m?(delete e.center.lon,delete e.center.lat,delete e.projection.rotation.lon,delete e.projection.rotation.lat,delete e.lonaxis.range,delete e.lataxis.range):(delete e.center.lon,delete e.center.lat,delete e.projection.rotation.lon))}e.exports=function(t,e,r){i(t,e,r,{type:"geo",attributes:s,handleDefaults:c,fullData:r,partition:"y"})}},{"../../lib":778,"../get_data":865,"../subplot_defaults":905,"./constants":858,"./layout_attributes":861}],863:[function(t,e,r){"use strict";e.exports=function(t){function e(t,e){return{type:"Feature",id:t.id,properties:t.properties,geometry:r(t.geometry,e)}}function r(e,n){if(!e)return null;if("GeometryCollection"===e.type)return{type:"GeometryCollection",geometries:object.geometries.map((function(t){return r(t,n)}))};if(!c.hasOwnProperty(e.type))return null;var i=c[e.type];return t.geo.stream(e,n(i)),i.result()}t.geo.project=function(t,e){var i=e.stream;if(!i)throw new Error("not yet supported");return(t&&n.hasOwnProperty(t.type)?n[t.type]:r)(t,i)};var n={Feature:e,FeatureCollection:function(t,r){return{type:"FeatureCollection",features:t.features.map((function(t){return e(t,r)}))}}},i=[],a=[],o={point:function(t,e){i.push([t,e])},result:function(){var t=i.length?i.length<2?{type:"Point",coordinates:i[0]}:{type:"MultiPoint",coordinates:i}:null;return i=[],t}},s={lineStart:u,point:function(t,e){i.push([t,e])},lineEnd:function(){i.length&&(a.push(i),i=[])},result:function(){var t=a.length?a.length<2?{type:"LineString",coordinates:a[0]}:{type:"MultiLineString",coordinates:a}:null;return a=[],t}},l={polygonStart:u,lineStart:u,point:function(t,e){i.push([t,e])},lineEnd:function(){var t=i.length;if(t){do{i.push(i[0].slice())}while(++t<4);a.push(i),i=[]}},polygonEnd:u,result:function(){if(!a.length)return null;var t=[],e=[];return a.forEach((function(r){!function(t){if((e=t.length)<4)return!1;var e,r=0,n=t[e-1][1]*t[0][0]-t[e-1][0]*t[0][1];for(;++rn^p>n&&r<(h-c)*(n-u)/(p-u)+c&&(i=!i)}return i}(t[0],r))return t.push(e),!0}))||t.push([e])})),a=[],t.length?t.length>1?{type:"MultiPolygon",coordinates:t}:{type:"Polygon",coordinates:t[0]}:null}},c={Point:o,MultiPoint:o,LineString:s,MultiLineString:s,Polygon:l,MultiPolygon:l,Sphere:l};function u(){}var f=1e-6,h=Math.PI,p=h/2,d=(Math.sqrt(h),h/180),g=180/h;function m(t){return t>1?p:t<-1?-p:Math.asin(t)}function v(t){return t>1?0:t<-1?h:Math.acos(t)}var y=t.geo.projection,x=t.geo.projectionMutator;function b(t,e){var r=(2+p)*Math.sin(e);e/=2;for(var n=0,i=1/0;n<10&&Math.abs(i)>f;n++){var a=Math.cos(e);e-=i=(e+Math.sin(e)*(a+2)-r)/(2*a*(1+a))}return[2/Math.sqrt(h*(4+h))*t*(1+Math.cos(e)),2*Math.sqrt(h/(4+h))*Math.sin(e)]}t.geo.interrupt=function(e){var r,n=[[[[-h,0],[0,p],[h,0]]],[[[-h,0],[0,-p],[h,0]]]];function i(t,r){for(var i=r<0?-1:1,a=n[+(r<0)],o=0,s=a.length-1;oa[o][2][0];++o);var l=e(t-a[o][1][0],r);return l[0]+=e(a[o][1][0],i*r>i*a[o][0][1]?a[o][0][1]:r)[0],l}function a(){r=n.map((function(t){return t.map((function(t){var r,n=e(t[0][0],t[0][1])[0],i=e(t[2][0],t[2][1])[0],a=e(t[1][0],t[0][1])[1],o=e(t[1][0],t[1][1])[1];return a>o&&(r=a,a=o,o=r),[[n,a],[i,o]]}))}))}e.invert&&(i.invert=function(t,a){for(var o=r[+(a<0)],s=n[+(a<0)],l=0,u=o.length;l=0;--i){var p;o=180*(p=n[1][i])[0][0]/h,s=180*p[0][1]/h,c=180*p[1][1]/h,u=180*p[2][0]/h,f=180*p[2][1]/h;r.push(l([[u-e,f-e],[u-e,c+e],[o+e,c+e],[o+e,s-e]],30))}return{type:"Polygon",coordinates:[t.merge(r)]}}(),a)},i},o.lobes=function(t){return arguments.length?(n=t.map((function(t){return t.map((function(t){return[[t[0][0]*h/180,t[0][1]*h/180],[t[1][0]*h/180,t[1][1]*h/180],[t[2][0]*h/180,t[2][1]*h/180]]}))})),a(),o):n.map((function(t){return t.map((function(t){return[[180*t[0][0]/h,180*t[0][1]/h],[180*t[1][0]/h,180*t[1][1]/h],[180*t[2][0]/h,180*t[2][1]/h]]}))}))},o},b.invert=function(t,e){var r=.5*e*Math.sqrt((4+h)/h),n=m(r),i=Math.cos(n);return[t/(2/Math.sqrt(h*(4+h))*(1+i)),m((n+r*(i+2))/(2+p))]},(t.geo.eckert4=function(){return y(b)}).raw=b;var _=t.geo.azimuthalEqualArea.raw;function w(t,e){if(arguments.length<2&&(e=t),1===e)return _;if(e===1/0)return T;function r(r,n){var i=_(r/e,n);return i[0]*=t,i}return r.invert=function(r,n){var i=_.invert(r/t,n);return i[0]*=e,i},r}function T(t,e){return[t*Math.cos(e)/Math.cos(e/=2),2*Math.sin(e)]}function k(t,e){return[3*t/(2*h)*Math.sqrt(h*h/3-e*e),e]}function M(t,e){return[t,1.25*Math.log(Math.tan(h/4+.4*e))]}function A(t){return function(e){var r,n=t*Math.sin(e),i=30;do{e-=r=(e+Math.sin(e)-n)/(1+Math.cos(e))}while(Math.abs(r)>f&&--i>0);return e/2}}T.invert=function(t,e){var r=2*m(e/2);return[t*Math.cos(r/2)/Math.cos(r),r]},(t.geo.hammer=function(){var t=2,e=x(w),r=e(t);return r.coefficient=function(r){return arguments.length?e(t=+r):t},r}).raw=w,k.invert=function(t,e){return[2/3*h*t/Math.sqrt(h*h/3-e*e),e]},(t.geo.kavrayskiy7=function(){return y(k)}).raw=k,M.invert=function(t,e){return[t,2.5*Math.atan(Math.exp(.8*e))-.625*h]},(t.geo.miller=function(){return y(M)}).raw=M,A(h);var S=function(t,e,r){var n=A(r);function i(r,i){return[t*r*Math.cos(i=n(i)),e*Math.sin(i)]}return i.invert=function(n,i){var a=m(i/e);return[n/(t*Math.cos(a)),m((2*a+Math.sin(2*a))/r)]},i}(Math.SQRT2/p,Math.SQRT2,h);function E(t,e){var r=e*e,n=r*r;return[t*(.8707-.131979*r+n*(n*(.003971*r-.001529*n)-.013791)),e*(1.007226+r*(.015085+n*(.028874*r-.044475-.005916*n)))]}(t.geo.mollweide=function(){return y(S)}).raw=S,E.invert=function(t,e){var r,n=e,i=25;do{var a=n*n,o=a*a;n-=r=(n*(1.007226+a*(.015085+o*(.028874*a-.044475-.005916*o)))-e)/(1.007226+a*(.045255+o*(.259866*a-.311325-.005916*11*o)))}while(Math.abs(r)>f&&--i>0);return[t/(.8707+(a=n*n)*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979)),n]},(t.geo.naturalEarth=function(){return y(E)}).raw=E;var C=[[.9986,-.062],[1,0],[.9986,.062],[.9954,.124],[.99,.186],[.9822,.248],[.973,.31],[.96,.372],[.9427,.434],[.9216,.4958],[.8962,.5571],[.8679,.6176],[.835,.6769],[.7986,.7346],[.7597,.7903],[.7186,.8435],[.6732,.8936],[.6213,.9394],[.5722,.9761],[.5322,1]];function L(t,e){var r,n=Math.min(18,36*Math.abs(e)/h),i=Math.floor(n),a=n-i,o=(r=C[i])[0],s=r[1],l=(r=C[++i])[0],c=r[1],u=(r=C[Math.min(19,++i)])[0],f=r[1];return[t*(l+a*(u-o)/2+a*a*(u-2*l+o)/2),(e>0?p:-p)*(c+a*(f-s)/2+a*a*(f-2*c+s)/2)]}function I(t,e){return[t*Math.cos(e),e]}function P(t,e){var r,n=Math.cos(e),i=(r=v(n*Math.cos(t/=2)))?r/Math.sin(r):1;return[2*n*Math.sin(t)*i,Math.sin(e)*i]}function z(t,e){var r=P(t,e);return[(r[0]+t/p)/2,(r[1]+e)/2]}C.forEach((function(t){t[1]*=1.0144})),L.invert=function(t,e){var r=e/p,n=90*r,i=Math.min(18,Math.abs(n/5)),a=Math.max(0,Math.floor(i));do{var o=C[a][1],s=C[a+1][1],l=C[Math.min(19,a+2)][1],c=l-o,u=l-2*s+o,f=2*(Math.abs(r)-s)/c,h=u/c,m=f*(1-h*f*(1-2*h*f));if(m>=0||1===a){n=(e>=0?5:-5)*(m+i);var v,y=50;do{m=(i=Math.min(18,Math.abs(n)/5))-(a=Math.floor(i)),o=C[a][1],s=C[a+1][1],l=C[Math.min(19,a+2)][1],n-=(v=(e>=0?p:-p)*(s+m*(l-o)/2+m*m*(l-2*s+o)/2)-e)*g}while(Math.abs(v)>1e-12&&--y>0);break}}while(--a>=0);var x=C[a][0],b=C[a+1][0],_=C[Math.min(19,a+2)][0];return[t/(b+m*(_-x)/2+m*m*(_-2*b+x)/2),n*d]},(t.geo.robinson=function(){return y(L)}).raw=L,I.invert=function(t,e){return[t/Math.cos(e),e]},(t.geo.sinusoidal=function(){return y(I)}).raw=I,P.invert=function(t,e){if(!(t*t+4*e*e>h*h+f)){var r=t,n=e,i=25;do{var a,o=Math.sin(r),s=Math.sin(r/2),l=Math.cos(r/2),c=Math.sin(n),u=Math.cos(n),p=Math.sin(2*n),d=c*c,g=u*u,m=s*s,y=1-g*l*l,x=y?v(u*l)*Math.sqrt(a=1/y):a=0,b=2*x*u*s-t,_=x*c-e,w=a*(g*m+x*u*l*d),T=a*(.5*o*p-2*x*c*s),k=.25*a*(p*s-x*c*g*o),M=a*(d*l+x*m*u),A=T*k-M*w;if(!A)break;var S=(_*T-b*M)/A,E=(b*k-_*w)/A;r-=S,n-=E}while((Math.abs(S)>f||Math.abs(E)>f)&&--i>0);return[r,n]}},(t.geo.aitoff=function(){return y(P)}).raw=P,z.invert=function(t,e){var r=t,n=e,i=25;do{var a,o=Math.cos(n),s=Math.sin(n),l=Math.sin(2*n),c=s*s,u=o*o,h=Math.sin(r),d=Math.cos(r/2),g=Math.sin(r/2),m=g*g,y=1-u*d*d,x=y?v(o*d)*Math.sqrt(a=1/y):a=0,b=.5*(2*x*o*g+r/p)-t,_=.5*(x*s+n)-e,w=.5*a*(u*m+x*o*d*c)+.5/p,T=a*(h*l/4-x*s*g),k=.125*a*(l*g-x*s*u*h),M=.5*a*(c*d+x*m*o)+.5,A=T*k-M*w,S=(_*T-b*M)/A,E=(b*k-_*w)/A;r-=S,n-=E}while((Math.abs(S)>f||Math.abs(E)>f)&&--i>0);return[r,n]},(t.geo.winkel3=function(){return y(z)}).raw=z}},{}],864:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../lib"),a=t("../../registry"),o=Math.PI/180,s=180/Math.PI,l={cursor:"pointer"},c={cursor:"auto"};function u(t,e){return n.behavior.zoom().translate(e.translate()).scale(e.scale())}function f(t,e,r){var n=t.id,o=t.graphDiv,s=o.layout,l=s[n],c=o._fullLayout,u=c[n],f={},h={};function p(t,e){f[n+"."+t]=i.nestedProperty(l,t).get(),a.call("_storeDirectGUIEdit",s,c._preGUI,f);var r=i.nestedProperty(u,t);r.get()!==e&&(r.set(e),i.nestedProperty(l,t).set(e),h[n+"."+t]=e)}r(p),p("projection.scale",e.scale()/t.fitScale),p("fitbounds",!1),o.emit("plotly_relayout",h)}function h(t,e){var r=u(0,e);function i(r){var n=e.invert(t.midPt);r("center.lon",n[0]),r("center.lat",n[1])}return r.on("zoomstart",(function(){n.select(this).style(l)})).on("zoom",(function(){e.scale(n.event.scale).translate(n.event.translate),t.render();var r=e.invert(t.midPt);t.graphDiv.emit("plotly_relayouting",{"geo.projection.scale":e.scale()/t.fitScale,"geo.center.lon":r[0],"geo.center.lat":r[1]})})).on("zoomend",(function(){n.select(this).style(c),f(t,e,i)})),r}function p(t,e){var r,i,a,o,s,h,p,d,g,m=u(0,e);function v(t){return e.invert(t)}function y(r){var n=e.rotate(),i=e.invert(t.midPt);r("projection.rotation.lon",-n[0]),r("center.lon",i[0]),r("center.lat",i[1])}return m.on("zoomstart",(function(){n.select(this).style(l),r=n.mouse(this),i=e.rotate(),a=e.translate(),o=i,s=v(r)})).on("zoom",(function(){if(h=n.mouse(this),function(t){var r=v(t);if(!r)return!0;var n=e(r);return Math.abs(n[0]-t[0])>2||Math.abs(n[1]-t[1])>2}(r))return m.scale(e.scale()),void m.translate(e.translate());e.scale(n.event.scale),e.translate([a[0],n.event.translate[1]]),s?v(h)&&(d=v(h),p=[o[0]+(d[0]-s[0]),i[1],i[2]],e.rotate(p),o=p):s=v(r=h),g=!0,t.render();var l=e.rotate(),c=e.invert(t.midPt);t.graphDiv.emit("plotly_relayouting",{"geo.projection.scale":e.scale()/t.fitScale,"geo.center.lon":c[0],"geo.center.lat":c[1],"geo.projection.rotation.lon":-l[0]})})).on("zoomend",(function(){n.select(this).style(c),g&&f(t,e,y)})),m}function d(t,e){var r,i={r:e.rotate(),k:e.scale()},a=u(0,e),o=function(t){var e=0,r=arguments.length,i=[];for(;++ed?(a=(f>0?90:-90)-p,i=0):(a=Math.asin(f/d)*s-p,i=Math.sqrt(d*d-f*f));var g=180-a-2*p,m=(Math.atan2(h,u)-Math.atan2(c,i))*s,v=(Math.atan2(h,u)-Math.atan2(c,-i))*s;return b(r[0],r[1],a,m)<=b(r[0],r[1],g,v)?[a,m,r[2]]:[g,v,r[2]]}function b(t,e,r,n){var i=_(r-t),a=_(n-e);return Math.sqrt(i*i+a*a)}function _(t){return(t%360+540)%360-180}function w(t,e,r){var n=r*o,i=t.slice(),a=0===e?1:0,s=2===e?1:2,l=Math.cos(n),c=Math.sin(n);return i[a]=t[a]*l-t[s]*c,i[s]=t[s]*l+t[a]*c,i}function T(t){return[Math.atan2(2*(t[0]*t[1]+t[2]*t[3]),1-2*(t[1]*t[1]+t[2]*t[2]))*s,Math.asin(Math.max(-1,Math.min(1,2*(t[0]*t[2]-t[3]*t[1]))))*s,Math.atan2(2*(t[0]*t[3]+t[1]*t[2]),1-2*(t[2]*t[2]+t[3]*t[3]))*s]}function k(t,e){for(var r=0,n=0,i=t.length;nMath.abs(s)?(c.boxEnd[1]=c.boxStart[1]+Math.abs(a)*_*(s>=0?1:-1),c.boxEnd[1]l[3]&&(c.boxEnd[1]=l[3],c.boxEnd[0]=c.boxStart[0]+(l[3]-c.boxStart[1])/Math.abs(_))):(c.boxEnd[0]=c.boxStart[0]+Math.abs(s)/_*(a>=0?1:-1),c.boxEnd[0]l[2]&&(c.boxEnd[0]=l[2],c.boxEnd[1]=c.boxStart[1]+(l[2]-c.boxStart[0])*Math.abs(_)))}}else c.boxEnabled?(a=c.boxStart[0]!==c.boxEnd[0],s=c.boxStart[1]!==c.boxEnd[1],a||s?(a&&(m(0,c.boxStart[0],c.boxEnd[0]),t.xaxis.autorange=!1),s&&(m(1,c.boxStart[1],c.boxEnd[1]),t.yaxis.autorange=!1),t.relayoutCallback()):t.glplot.setDirty(),c.boxEnabled=!1,c.boxInited=!1):c.boxInited&&(c.boxInited=!1);break;case"pan":c.boxEnabled=!1,c.boxInited=!1,e?(c.panning||(c.dragStart[0]=n,c.dragStart[1]=i),Math.abs(c.dragStart[0]-n).999&&(g="turntable"):g="turntable")}else g="turntable";r("dragmode",g),r("hovermode",n.getDfltFromLayout("hovermode"))}e.exports=function(t,e,r){var i=e._basePlotModules.length>1;o(t,e,r,{type:"gl3d",attributes:l,handleDefaults:u,fullLayout:e,font:e.font,fullData:r,getDfltFromLayout:function(e){if(!i)return n.validate(t[e],l[e])?t[e]:void 0},autotypenumbersDflt:e.autotypenumbers,paper_bgcolor:e.paper_bgcolor,calendar:e.calendar})}},{"../../../components/color":643,"../../../lib":778,"../../../registry":911,"../../get_data":865,"../../subplot_defaults":905,"./axis_defaults":873,"./layout_attributes":876}],876:[function(t,e,r){"use strict";var n=t("./axis_attributes"),i=t("../../domain").attributes,a=t("../../../lib/extend").extendFlat,o=t("../../../lib").counterRegex;function s(t,e,r){return{x:{valType:"number",dflt:t,editType:"camera"},y:{valType:"number",dflt:e,editType:"camera"},z:{valType:"number",dflt:r,editType:"camera"},editType:"camera"}}e.exports={_arrayAttrRegexps:[o("scene",".annotations",!0)],bgcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"plot"},camera:{up:a(s(0,0,1),{}),center:a(s(0,0,0),{}),eye:a(s(1.25,1.25,1.25),{}),projection:{type:{valType:"enumerated",values:["perspective","orthographic"],dflt:"perspective",editType:"calc"},editType:"calc"},editType:"camera"},domain:i({name:"scene",editType:"plot"}),aspectmode:{valType:"enumerated",values:["auto","cube","data","manual"],dflt:"auto",editType:"plot",impliedEdits:{"aspectratio.x":void 0,"aspectratio.y":void 0,"aspectratio.z":void 0}},aspectratio:{x:{valType:"number",min:0,editType:"plot",impliedEdits:{"^aspectmode":"manual"}},y:{valType:"number",min:0,editType:"plot",impliedEdits:{"^aspectmode":"manual"}},z:{valType:"number",min:0,editType:"plot",impliedEdits:{"^aspectmode":"manual"}},editType:"plot",impliedEdits:{aspectmode:"manual"}},xaxis:n,yaxis:n,zaxis:n,dragmode:{valType:"enumerated",values:["orbit","turntable","zoom","pan",!1],editType:"plot"},hovermode:{valType:"enumerated",values:["closest",!1],dflt:"closest",editType:"modebar"},uirevision:{valType:"any",editType:"none"},editType:"plot",_deprecated:{cameraposition:{valType:"info_array",editType:"camera"}}}},{"../../../lib":778,"../../../lib/extend":768,"../../domain":855,"./axis_attributes":872}],877:[function(t,e,r){"use strict";var n=t("../../../lib/str2rgbarray"),i=["xaxis","yaxis","zaxis"];function a(){this.enabled=[!0,!0,!0],this.colors=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.drawSides=[!0,!0,!0],this.lineWidth=[1,1,1]}a.prototype.merge=function(t){for(var e=0;e<3;++e){var r=t[i[e]];r.visible?(this.enabled[e]=r.showspikes,this.colors[e]=n(r.spikecolor),this.drawSides[e]=r.spikesides,this.lineWidth[e]=r.spikethickness):(this.enabled[e]=!1,this.drawSides[e]=!1)}},e.exports=function(t){var e=new a;return e.merge(t),e}},{"../../../lib/str2rgbarray":802}],878:[function(t,e,r){"use strict";e.exports=function(t){for(var e=t.axesOptions,r=t.glplot.axesPixels,s=t.fullSceneLayout,l=[[],[],[]],c=0;c<3;++c){var u=s[a[c]];if(u._length=(r[c].hi-r[c].lo)*r[c].pixelsPerDataUnit/t.dataScale[c],Math.abs(u._length)===1/0||isNaN(u._length))l[c]=[];else{u._input_range=u.range.slice(),u.range[0]=r[c].lo/t.dataScale[c],u.range[1]=r[c].hi/t.dataScale[c],u._m=1/(t.dataScale[c]*r[c].pixelsPerDataUnit),u.range[0]===u.range[1]&&(u.range[0]-=1,u.range[1]+=1);var f=u.tickmode;if("auto"===u.tickmode){u.tickmode="linear";var h=u.nticks||i.constrain(u._length/40,4,9);n.autoTicks(u,Math.abs(u.range[1]-u.range[0])/h)}for(var p=n.calcTicks(u,{msUTC:!0}),d=0;d/g," "));l[c]=p,u.tickmode=f}}e.ticks=l;for(c=0;c<3;++c){o[c]=.5*(t.glplot.bounds[0][c]+t.glplot.bounds[1][c]);for(d=0;d<2;++d)e.bounds[d][c]=t.glplot.bounds[d][c]}t.contourLevels=function(t){for(var e=new Array(3),r=0;r<3;++r){for(var n=t[r],i=new Array(n.length),a=0;ar.deltaY?1.1:1/1.1,a=t.glplot.getAspectratio();t.glplot.setAspectratio({x:n*a.x,y:n*a.y,z:n*a.z})}i(t)}}),!!c&&{passive:!1}),t.glplot.canvas.addEventListener("mousemove",(function(){if(!1!==t.fullSceneLayout.dragmode&&0!==t.camera.mouseListener.buttons){var e=n();t.graphDiv.emit("plotly_relayouting",e)}})),t.staticMode||t.glplot.canvas.addEventListener("webglcontextlost",(function(r){e&&e.emit&&e.emit("plotly_webglcontextlost",{event:r,layer:t.id})}),!1)),t.glplot.oncontextloss=function(){t.recoverContext()},t.glplot.onrender=function(){t.render()},!0},w.render=function(){var t,e=this,r=e.graphDiv,n=e.svgContainer,i=e.container.getBoundingClientRect();r._fullLayout._calcInverseTransform(r);var a=r._fullLayout._invScaleX,o=r._fullLayout._invScaleY,s=i.width*a,l=i.height*o;n.setAttributeNS(null,"viewBox","0 0 "+s+" "+l),n.setAttributeNS(null,"width",s),n.setAttributeNS(null,"height",l),b(e),e.glplot.axes.update(e.axesOptions);for(var c,u=Object.keys(e.traces),h=null,g=e.glplot.selection,m=0;m")):"isosurface"===t.type||"volume"===t.type?(k.valueLabel=p.tickText(e._mockAxis,e._mockAxis.d2l(g.traceCoordinate[3]),"hover").text,E.push("value: "+k.valueLabel),g.textLabel&&E.push(g.textLabel),_=E.join("
    ")):_=g.textLabel;var C={x:g.traceCoordinate[0],y:g.traceCoordinate[1],z:g.traceCoordinate[2],data:w._input,fullData:w,curveNumber:w.index,pointNumber:T};d.appendArrayPointValue(C,w,T),t._module.eventData&&(C=w._module.eventData(C,g,w,{},T));var L={points:[C]};e.fullSceneLayout.hovermode&&d.loneHover({trace:w,x:(.5+.5*x[0]/x[3])*s,y:(.5-.5*x[1]/x[3])*l,xLabel:k.xLabel,yLabel:k.yLabel,zLabel:k.zLabel,text:_,name:h.name,color:d.castHoverOption(w,T,"bgcolor")||h.color,borderColor:d.castHoverOption(w,T,"bordercolor"),fontFamily:d.castHoverOption(w,T,"font.family"),fontSize:d.castHoverOption(w,T,"font.size"),fontColor:d.castHoverOption(w,T,"font.color"),nameLength:d.castHoverOption(w,T,"namelength"),textAlign:d.castHoverOption(w,T,"align"),hovertemplate:f.castOption(w,T,"hovertemplate"),hovertemplateLabels:f.extendFlat({},C,k),eventData:[C]},{container:n,gd:r}),g.buttons&&g.distance<5?r.emit("plotly_click",L):r.emit("plotly_hover",L),c=L}else d.loneUnhover(n),r.emit("plotly_unhover",c);e.drawAnnotations(e)},w.recoverContext=function(){var t=this;t.glplot.dispose();var e=function(){t.glplot.gl.isContextLost()?requestAnimationFrame(e):t.initializeGLPlot()?t.plot.apply(t,t.plotArgs):f.error("Catastrophic and unrecoverable WebGL error. Context lost.")};requestAnimationFrame(e)};var k=["xaxis","yaxis","zaxis"];function M(t,e,r){for(var n=t.fullSceneLayout,i=0;i<3;i++){var a=k[i],o=a.charAt(0),s=n[a],l=e[o],c=e[o+"calendar"],u=e["_"+o+"length"];if(f.isArrayOrTypedArray(l))for(var h,p=0;p<(u||l.length);p++)if(f.isArrayOrTypedArray(l[p]))for(var d=0;dm[1][a])m[0][a]=-1,m[1][a]=1;else{var C=m[1][a]-m[0][a];m[0][a]-=C/32,m[1][a]+=C/32}if("reversed"===s.autorange){var L=m[0][a];m[0][a]=m[1][a],m[1][a]=L}}else{var I=s.range;m[0][a]=s.r2l(I[0]),m[1][a]=s.r2l(I[1])}m[0][a]===m[1][a]&&(m[0][a]-=1,m[1][a]+=1),v[a]=m[1][a]-m[0][a],this.glplot.setBounds(a,{min:m[0][a]*h[a],max:m[1][a]*h[a]})}var P=c.aspectmode;if("cube"===P)d=[1,1,1];else if("manual"===P){var z=c.aspectratio;d=[z.x,z.y,z.z]}else{if("auto"!==P&&"data"!==P)throw new Error("scene.js aspectRatio was not one of the enumerated types");var O=[1,1,1];for(a=0;a<3;++a){var D=y[l=(s=c[k[a]]).type];O[a]=Math.pow(D.acc,1/D.count)/h[a]}d="data"===P||Math.max.apply(null,O)/Math.min.apply(null,O)<=4?O:[1,1,1]}c.aspectratio.x=u.aspectratio.x=d[0],c.aspectratio.y=u.aspectratio.y=d[1],c.aspectratio.z=u.aspectratio.z=d[2],this.glplot.setAspectratio(c.aspectratio),this.viewInitial.aspectratio||(this.viewInitial.aspectratio={x:c.aspectratio.x,y:c.aspectratio.y,z:c.aspectratio.z}),this.viewInitial.aspectmode||(this.viewInitial.aspectmode=c.aspectmode);var R=c.domain||null,F=e._size||null;if(R&&F){var B=this.container.style;B.position="absolute",B.left=F.l+R.x[0]*F.w+"px",B.top=F.t+(1-R.y[1])*F.h+"px",B.width=F.w*(R.x[1]-R.x[0])+"px",B.height=F.h*(R.y[1]-R.y[0])+"px"}this.glplot.redraw()}},w.destroy=function(){this.glplot&&(this.camera.mouseListener.enabled=!1,this.container.removeEventListener("wheel",this.camera.wheelListener),this.camera=null,this.glplot.dispose(),this.container.parentNode.removeChild(this.container),this.glplot=null)},w.getCamera=function(){var t;return this.camera.view.recalcMatrix(this.camera.view.lastT()),{up:{x:(t=this.camera).up[0],y:t.up[1],z:t.up[2]},center:{x:t.center[0],y:t.center[1],z:t.center[2]},eye:{x:t.eye[0],y:t.eye[1],z:t.eye[2]},projection:{type:!0===t._ortho?"orthographic":"perspective"}}},w.setViewport=function(t){var e,r=t.camera;this.camera.lookAt.apply(this,[[(e=r).eye.x,e.eye.y,e.eye.z],[e.center.x,e.center.y,e.center.z],[e.up.x,e.up.y,e.up.z]]),this.glplot.setAspectratio(t.aspectratio),"orthographic"===r.projection.type!==this.camera._ortho&&(this.glplot.redraw(),this.glplot.clearRGBA(),this.glplot.dispose(),this.initializeGLPlot())},w.isCameraChanged=function(t){var e=this.getCamera(),r=f.nestedProperty(t,this.id+".camera").get();function n(t,e,r,n){var i=["up","center","eye"],a=["x","y","z"];return e[i[r]]&&t[i[r]][a[n]]===e[i[r]][a[n]]}var i=!1;if(void 0===r)i=!0;else{for(var a=0;a<3;a++)for(var o=0;o<3;o++)if(!n(e,r,a,o)){i=!0;break}(!r.projection||e.projection&&e.projection.type!==r.projection.type)&&(i=!0)}return i},w.isAspectChanged=function(t){var e=this.glplot.getAspectratio(),r=f.nestedProperty(t,this.id+".aspectratio").get();return void 0===r||r.x!==e.x||r.y!==e.y||r.z!==e.z},w.saveLayout=function(t){var e,r,n,i,a,o,s=this.fullLayout,l=this.isCameraChanged(t),c=this.isAspectChanged(t),h=l||c;if(h){var p={};if(l&&(e=this.getCamera(),n=(r=f.nestedProperty(t,this.id+".camera")).get(),p[this.id+".camera"]=n),c&&(i=this.glplot.getAspectratio(),o=(a=f.nestedProperty(t,this.id+".aspectratio")).get(),p[this.id+".aspectratio"]=o),u.call("_storeDirectGUIEdit",t,s._preGUI,p),l)r.set(e),f.nestedProperty(s,this.id+".camera").set(e);if(c)a.set(i),f.nestedProperty(s,this.id+".aspectratio").set(i),this.glplot.redraw()}return h},w.updateFx=function(t,e){var r=this.camera;if(r)if("orbit"===t)r.mode="orbit",r.keyBindingMode="rotate";else if("turntable"===t){r.up=[0,0,1],r.mode="turntable",r.keyBindingMode="rotate";var n=this.graphDiv,i=n._fullLayout,a=this.fullSceneLayout.camera,o=a.up.x,s=a.up.y,l=a.up.z;if(l/Math.sqrt(o*o+s*s+l*l)<.999){var c=this.id+".camera.up",h={x:0,y:0,z:1},p={};p[c]=h;var d=n.layout;u.call("_storeDirectGUIEdit",d,i._preGUI,p),a.up=h,f.nestedProperty(d,c).set(h)}}else r.keyBindingMode=t;this.fullSceneLayout.hovermode=e},w.toImage=function(t){t||(t="png"),this.staticMode&&this.container.appendChild(n),this.glplot.redraw();var e=this.glplot.gl,r=e.drawingBufferWidth,i=e.drawingBufferHeight;e.bindFramebuffer(e.FRAMEBUFFER,null);var a=new Uint8Array(r*i*4);e.readPixels(0,0,r,i,e.RGBA,e.UNSIGNED_BYTE,a),function(t,e,r){for(var n=0,i=r-1;n0)for(var s=255/o,l=0;l<3;++l)t[a+l]=Math.min(s*t[a+l],255)}}(a,r,i);var o=document.createElement("canvas");o.width=r,o.height=i;var s,l=o.getContext("2d"),c=l.createImageData(r,i);switch(c.data.set(a),l.putImageData(c,0,0),t){case"jpeg":s=o.toDataURL("image/jpeg");break;case"webp":s=o.toDataURL("image/webp");break;default:s=o.toDataURL("image/png")}return this.staticMode&&this.container.removeChild(n),s},w.setConvert=function(){for(var t=0;t<3;t++){var e=this.fullSceneLayout[k[t]];p.setConvert(e,this.fullLayout),e.setScale=f.noop}},w.make4thDimension=function(){var t=this.graphDiv._fullLayout;this._mockAxis={type:"linear",showexponent:"all",exponentformat:"B"},p.setConvert(this._mockAxis,t)},e.exports=_},{"../../components/fx":683,"../../lib":778,"../../lib/show_no_webgl_msg":800,"../../lib/str2rgbarray":802,"../../plots/cartesian/axes":828,"../../registry":911,"./layout/convert":874,"./layout/spikes":877,"./layout/tick_marks":878,"./project":879,"gl-plot3d":321,"has-passive-events":441,"webgl-context":606}],881:[function(t,e,r){"use strict";e.exports=function(t,e,r,n){n=n||t.length;for(var i=new Array(n),a=0;a\xa9 OpenStreetMap',tiles:["https://a.tile.openstreetmap.org/{z}/{x}/{y}.png","https://b.tile.openstreetmap.org/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-osm-tiles",type:"raster",source:"plotly-osm-tiles",minzoom:0,maxzoom:22}]},"white-bg":{id:"white-bg",version:8,sources:{},layers:[{id:"white-bg",type:"background",paint:{"background-color":"#FFFFFF"},minzoom:0,maxzoom:22}]},"carto-positron":{id:"carto-positron",version:8,sources:{"plotly-carto-positron":{type:"raster",attribution:'\xa9 CARTO',tiles:["https://cartodb-basemaps-c.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-carto-positron",type:"raster",source:"plotly-carto-positron",minzoom:0,maxzoom:22}]},"carto-darkmatter":{id:"carto-darkmatter",version:8,sources:{"plotly-carto-darkmatter":{type:"raster",attribution:'\xa9 CARTO',tiles:["https://cartodb-basemaps-c.global.ssl.fastly.net/dark_all/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-carto-darkmatter",type:"raster",source:"plotly-carto-darkmatter",minzoom:0,maxzoom:22}]},"stamen-terrain":{id:"stamen-terrain",version:8,sources:{"plotly-stamen-terrain":{type:"raster",attribution:'Map tiles by Stamen Design, under CC BY 3.0 | Data by OpenStreetMap, under ODbL.',tiles:["https://stamen-tiles.a.ssl.fastly.net/terrain/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-stamen-terrain",type:"raster",source:"plotly-stamen-terrain",minzoom:0,maxzoom:22}]},"stamen-toner":{id:"stamen-toner",version:8,sources:{"plotly-stamen-toner":{type:"raster",attribution:'Map tiles by Stamen Design, under CC BY 3.0 | Data by OpenStreetMap, under ODbL.',tiles:["https://stamen-tiles.a.ssl.fastly.net/toner/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-stamen-toner",type:"raster",source:"plotly-stamen-toner",minzoom:0,maxzoom:22}]},"stamen-watercolor":{id:"stamen-watercolor",version:8,sources:{"plotly-stamen-watercolor":{type:"raster",attribution:'Map tiles by Stamen Design, under CC BY 3.0 | Data by OpenStreetMap, under CC BY SA.',tiles:["https://stamen-tiles.a.ssl.fastly.net/watercolor/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-stamen-watercolor",type:"raster",source:"plotly-stamen-watercolor",minzoom:0,maxzoom:22}]}},i=Object.keys(n);e.exports={requiredVersion:"1.10.1",styleUrlPrefix:"mapbox://styles/mapbox/",styleUrlSuffix:"v9",styleValuesMapbox:["basic","streets","outdoors","light","dark","satellite","satellite-streets"],styleValueDflt:"basic",stylesNonMapbox:n,styleValuesNonMapbox:i,traceLayerPrefix:"plotly-trace-layer-",layoutLayerPrefix:"plotly-layout-layer-",wrongVersionErrorMsg:["Your custom plotly.js bundle is not using the correct mapbox-gl version","Please install mapbox-gl@1.10.1."].join("\n"),noAccessTokenErrorMsg:["Missing Mapbox access token.","Mapbox trace type require a Mapbox access token to be registered.","For example:"," Plotly.plot(gd, data, layout, { mapboxAccessToken: 'my-access-token' });","More info here: https://www.mapbox.com/help/define-access-token/"].join("\n"),missingStyleErrorMsg:["No valid mapbox style found, please set `mapbox.style` to one of:",i.join(", "),"or register a Mapbox access token to use a Mapbox-served style."].join("\n"),multipleTokensErrorMsg:["Set multiple mapbox access token across different mapbox subplot,","using first token found as mapbox-gl does not allow multipleaccess tokens on the same page."].join("\n"),mapOnErrorMsg:"Mapbox error.",mapboxLogo:{path0:"m 10.5,1.24 c -5.11,0 -9.25,4.15 -9.25,9.25 0,5.1 4.15,9.25 9.25,9.25 5.1,0 9.25,-4.15 9.25,-9.25 0,-5.11 -4.14,-9.25 -9.25,-9.25 z m 4.39,11.53 c -1.93,1.93 -4.78,2.31 -6.7,2.31 -0.7,0 -1.41,-0.05 -2.1,-0.16 0,0 -1.02,-5.64 2.14,-8.81 0.83,-0.83 1.95,-1.28 3.13,-1.28 1.27,0 2.49,0.51 3.39,1.42 1.84,1.84 1.89,4.75 0.14,6.52 z",path1:"M 10.5,-0.01 C 4.7,-0.01 0,4.7 0,10.49 c 0,5.79 4.7,10.5 10.5,10.5 5.8,0 10.5,-4.7 10.5,-10.5 C 20.99,4.7 16.3,-0.01 10.5,-0.01 Z m 0,19.75 c -5.11,0 -9.25,-4.15 -9.25,-9.25 0,-5.1 4.14,-9.26 9.25,-9.26 5.11,0 9.25,4.15 9.25,9.25 0,5.13 -4.14,9.26 -9.25,9.26 z",path2:"M 14.74,6.25 C 12.9,4.41 9.98,4.35 8.23,6.1 5.07,9.27 6.09,14.91 6.09,14.91 c 0,0 5.64,1.02 8.81,-2.14 C 16.64,11 16.59,8.09 14.74,6.25 Z m -2.27,4.09 -0.91,1.87 -0.9,-1.87 -1.86,-0.91 1.86,-0.9 0.9,-1.87 0.91,1.87 1.86,0.9 z",polygon:"11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 14.33,9.43 12.47,10.34"},styleRules:{map:"overflow:hidden;position:relative;","missing-css":"display:none;",canary:"background-color:salmon;","ctrl-bottom-left":"position: absolute; pointer-events: none; z-index: 2; bottom: 0; left: 0;","ctrl-bottom-right":"position: absolute; pointer-events: none; z-index: 2; right: 0; bottom: 0;",ctrl:"clear: both; pointer-events: auto; transform: translate(0, 0);","ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner":"display: none;","ctrl-attrib.mapboxgl-compact:hover .mapboxgl-ctrl-attrib-inner":"display: block; margin-top:2px","ctrl-attrib.mapboxgl-compact:hover":"padding: 2px 24px 2px 4px; visibility: visible; margin-top: 6px;","ctrl-attrib.mapboxgl-compact::after":'content: ""; cursor: pointer; position: absolute; background-image: url(\'data:image/svg+xml;charset=utf-8,%3Csvg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"%3E %3Cpath fill="%23333333" fill-rule="evenodd" d="M4,10a6,6 0 1,0 12,0a6,6 0 1,0 -12,0 M9,7a1,1 0 1,0 2,0a1,1 0 1,0 -2,0 M9,10a1,1 0 1,1 2,0l0,3a1,1 0 1,1 -2,0"/%3E %3C/svg%3E\'); background-color: rgba(255, 255, 255, 0.5); width: 24px; height: 24px; box-sizing: border-box; border-radius: 12px;',"ctrl-attrib.mapboxgl-compact":"min-height: 20px; padding: 0; margin: 10px; position: relative; background-color: #fff; border-radius: 3px 12px 12px 3px;","ctrl-bottom-right > .mapboxgl-ctrl-attrib.mapboxgl-compact::after":"bottom: 0; right: 0","ctrl-bottom-left > .mapboxgl-ctrl-attrib.mapboxgl-compact::after":"bottom: 0; left: 0","ctrl-bottom-left .mapboxgl-ctrl":"margin: 0 0 10px 10px; float: left;","ctrl-bottom-right .mapboxgl-ctrl":"margin: 0 10px 10px 0; float: right;","ctrl-attrib":"color: rgba(0, 0, 0, 0.75); text-decoration: none; font-size: 12px","ctrl-attrib a":"color: rgba(0, 0, 0, 0.75); text-decoration: none; font-size: 12px","ctrl-attrib a:hover":"color: inherit; text-decoration: underline;","ctrl-attrib .mapbox-improve-map":"font-weight: bold; margin-left: 2px;","attrib-empty":"display: none;","ctrl-logo":'display:block; width: 21px; height: 21px; background-image: url(\'data:image/svg+xml;charset=utf-8,%3C?xml version="1.0" encoding="utf-8"?%3E %3Csvg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 21 21" style="enable-background:new 0 0 21 21;" xml:space="preserve"%3E%3Cg transform="translate(0,0.01)"%3E%3Cpath d="m 10.5,1.24 c -5.11,0 -9.25,4.15 -9.25,9.25 0,5.1 4.15,9.25 9.25,9.25 5.1,0 9.25,-4.15 9.25,-9.25 0,-5.11 -4.14,-9.25 -9.25,-9.25 z m 4.39,11.53 c -1.93,1.93 -4.78,2.31 -6.7,2.31 -0.7,0 -1.41,-0.05 -2.1,-0.16 0,0 -1.02,-5.64 2.14,-8.81 0.83,-0.83 1.95,-1.28 3.13,-1.28 1.27,0 2.49,0.51 3.39,1.42 1.84,1.84 1.89,4.75 0.14,6.52 z" style="opacity:0.9;fill:%23ffffff;enable-background:new" class="st0"/%3E%3Cpath d="M 10.5,-0.01 C 4.7,-0.01 0,4.7 0,10.49 c 0,5.79 4.7,10.5 10.5,10.5 5.8,0 10.5,-4.7 10.5,-10.5 C 20.99,4.7 16.3,-0.01 10.5,-0.01 Z m 0,19.75 c -5.11,0 -9.25,-4.15 -9.25,-9.25 0,-5.1 4.14,-9.26 9.25,-9.26 5.11,0 9.25,4.15 9.25,9.25 0,5.13 -4.14,9.26 -9.25,9.26 z" style="opacity:0.35;enable-background:new" class="st1"/%3E%3Cpath d="M 14.74,6.25 C 12.9,4.41 9.98,4.35 8.23,6.1 5.07,9.27 6.09,14.91 6.09,14.91 c 0,0 5.64,1.02 8.81,-2.14 C 16.64,11 16.59,8.09 14.74,6.25 Z m -2.27,4.09 -0.91,1.87 -0.9,-1.87 -1.86,-0.91 1.86,-0.9 0.9,-1.87 0.91,1.87 1.86,0.9 z" style="opacity:0.35;enable-background:new" class="st1"/%3E%3Cpolygon points="11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 14.33,9.43 12.47,10.34 " style="opacity:0.9;fill:%23ffffff;enable-background:new" class="st0"/%3E%3C/g%3E%3C/svg%3E\')'}}},{}],884:[function(t,e,r){"use strict";var n=t("../../lib");e.exports=function(t,e){var r=t.split(" "),i=r[0],a=r[1],o=n.isArrayOrTypedArray(e)?n.mean(e):e,s=.5+o/100,l=1.5+o/100,c=["",""],u=[0,0];switch(i){case"top":c[0]="top",u[1]=-l;break;case"bottom":c[0]="bottom",u[1]=l}switch(a){case"left":c[1]="right",u[0]=-s;break;case"right":c[1]="left",u[0]=s}return{anchor:c[0]&&c[1]?c.join("-"):c[0]?c[0]:c[1]?c[1]:"center",offset:u}}},{"../../lib":778}],885:[function(t,e,r){"use strict";var n=t("mapbox-gl"),i=t("../../lib"),a=i.strTranslate,o=i.strScale,s=t("../../plots/get_data").getSubplotCalcData,l=t("../../constants/xmlns_namespaces"),c=t("d3"),u=t("../../components/drawing"),f=t("../../lib/svg_text_utils"),h=t("./mapbox"),p=r.constants=t("./constants");function d(t){return"string"==typeof t&&(-1!==p.styleValuesMapbox.indexOf(t)||0===t.indexOf("mapbox://"))}r.name="mapbox",r.attr="subplot",r.idRoot="mapbox",r.idRegex=r.attrRegex=i.counterRegex("mapbox"),r.attributes={subplot:{valType:"subplotid",dflt:"mapbox",editType:"calc"}},r.layoutAttributes=t("./layout_attributes"),r.supplyLayoutDefaults=t("./layout_defaults"),r.plot=function(t){var e=t._fullLayout,r=t.calcdata,a=e._subplots.mapbox;if(n.version!==p.requiredVersion)throw new Error(p.wrongVersionErrorMsg);var o=function(t,e){var r=t._fullLayout;if(""===t._context.mapboxAccessToken)return"";for(var n=[],a=[],o=!1,s=!1,l=0;l1&&i.warn(p.multipleTokensErrorMsg),n[0]):(a.length&&i.log(["Listed mapbox access token(s)",a.join(","),"but did not use a Mapbox map style, ignoring token(s)."].join(" ")),"")}(t,a);n.accessToken=o;for(var l=0;l_/2){var w=v.split("|").join("
    ");x.text(w).attr("data-unformatted",w).call(f.convertToTspans,t),b=u.bBox(x.node())}x.attr("transform",a(-3,8-b.height)),y.insert("rect",".static-attribution").attr({x:-b.width-6,y:-b.height-3,width:b.width+6,height:b.height+3,fill:"rgba(255, 255, 255, 0.75)"});var T=1;b.width+6>_&&(T=_/(b.width+6));var k=[n.l+n.w*h.x[1],n.t+n.h*(1-h.y[0])];y.attr("transform",a(k[0],k[1])+o(T))}},r.updateFx=function(t){for(var e=t._fullLayout,r=e._subplots.mapbox,n=0;n0){for(var r=0;r0}function u(t){var e={},r={};switch(t.type){case"circle":n.extendFlat(r,{"circle-radius":t.circle.radius,"circle-color":t.color,"circle-opacity":t.opacity});break;case"line":n.extendFlat(r,{"line-width":t.line.width,"line-color":t.color,"line-opacity":t.opacity,"line-dasharray":t.line.dash});break;case"fill":n.extendFlat(r,{"fill-color":t.color,"fill-outline-color":t.fill.outlinecolor,"fill-opacity":t.opacity});break;case"symbol":var i=t.symbol,o=a(i.textposition,i.iconsize);n.extendFlat(e,{"icon-image":i.icon+"-15","icon-size":i.iconsize/10,"text-field":i.text,"text-size":i.textfont.size,"text-anchor":o.anchor,"text-offset":o.offset,"symbol-placement":i.placement}),n.extendFlat(r,{"icon-color":t.color,"text-color":i.textfont.color,"text-opacity":t.opacity});break;case"raster":n.extendFlat(r,{"raster-fade-duration":0,"raster-opacity":t.opacity})}return{layout:e,paint:r}}l.update=function(t){this.visible?this.needsNewImage(t)?this.updateImage(t):this.needsNewSource(t)?(this.removeLayer(),this.updateSource(t),this.updateLayer(t)):this.needsNewLayer(t)?this.updateLayer(t):this.updateStyle(t):(this.updateSource(t),this.updateLayer(t)),this.visible=c(t)},l.needsNewImage=function(t){return this.subplot.map.getSource(this.idSource)&&"image"===this.sourceType&&"image"===t.sourcetype&&(this.source!==t.source||JSON.stringify(this.coordinates)!==JSON.stringify(t.coordinates))},l.needsNewSource=function(t){return this.sourceType!==t.sourcetype||JSON.stringify(this.source)!==JSON.stringify(t.source)||this.layerType!==t.type},l.needsNewLayer=function(t){return this.layerType!==t.type||this.below!==this.subplot.belowLookup["layout-"+this.index]},l.lookupBelow=function(){return this.subplot.belowLookup["layout-"+this.index]},l.updateImage=function(t){this.subplot.map.getSource(this.idSource).updateImage({url:t.source,coordinates:t.coordinates});var e=this.findFollowingMapboxLayerId(this.lookupBelow());null!==e&&this.subplot.map.moveLayer(this.idLayer,e)},l.updateSource=function(t){var e=this.subplot.map;if(e.getSource(this.idSource)&&e.removeSource(this.idSource),this.sourceType=t.sourcetype,this.source=t.source,c(t)){var r=function(t){var e,r=t.sourcetype,n=t.source,a={type:r};"geojson"===r?e="data":"vector"===r?e="string"==typeof n?"url":"tiles":"raster"===r?(e="tiles",a.tileSize=256):"image"===r&&(e="url",a.coordinates=t.coordinates);a[e]=n,t.sourceattribution&&(a.attribution=i(t.sourceattribution));return a}(t);e.addSource(this.idSource,r)}},l.findFollowingMapboxLayerId=function(t){if("traces"===t)for(var e=this.subplot.getMapLayers(),r=0;r1)for(r=0;r-1&&v(e.originalEvent,n,[r.xaxis],[r.yaxis],r.id,t),i.indexOf("event")>-1&&c.click(n,e.originalEvent)}}},_.updateFx=function(t){var e=this,r=e.map,n=e.gd;if(!e.isStatic){var a,o=t.dragmode;a=f(o)?function(t,r){(t.range={})[e.id]=[c([r.xmin,r.ymin]),c([r.xmax,r.ymax])]}:function(t,r,n){(t.lassoPoints={})[e.id]=n.filtered.map(c)};var s=e.dragOptions;e.dragOptions=i.extendDeep(s||{},{dragmode:t.dragmode,element:e.div,gd:n,plotinfo:{id:e.id,domain:t[e.id].domain,xaxis:e.xaxis,yaxis:e.yaxis,fillRangeItems:a},xaxes:[e.xaxis],yaxes:[e.yaxis],subplot:e.id}),r.off("click",e.onClickInPanHandler),p(o)||h(o)?(r.dragPan.disable(),r.on("zoomstart",e.clearSelect),e.dragOptions.prepFn=function(t,r,n){d(t,r,n,e.dragOptions,o)},l.init(e.dragOptions)):(r.dragPan.enable(),r.off("zoomstart",e.clearSelect),e.div.onmousedown=null,e.onClickInPanHandler=e.onClickInPanFn(e.dragOptions),r.on("click",e.onClickInPanHandler))}function c(t){var r=e.map.unproject(t);return[r.lng,r.lat]}},_.updateFramework=function(t){var e=t[this.id].domain,r=t._size,n=this.div.style;n.width=r.w*(e.x[1]-e.x[0])+"px",n.height=r.h*(e.y[1]-e.y[0])+"px",n.left=r.l+e.x[0]*r.w+"px",n.top=r.t+(1-e.y[1])*r.h+"px",this.xaxis._offset=r.l+e.x[0]*r.w,this.xaxis._length=r.w*(e.x[1]-e.x[0]),this.yaxis._offset=r.t+(1-e.y[1])*r.h,this.yaxis._length=r.h*(e.y[1]-e.y[0])},_.updateLayers=function(t){var e,r=t[this.id].layers,n=this.layerList;if(r.length!==n.length){for(e=0;e=e.width-20?(a["text-anchor"]="start",a.x=5):(a["text-anchor"]="end",a.x=e._paper.attr("width")-7),r.attr(a);var o=r.select(".js-link-to-tool"),s=r.select(".js-link-spacer"),l=r.select(".js-sourcelinks");t._context.showSources&&t._context.showSources(t),t._context.showLink&&function(t,e){e.text("");var r=e.append("a").attr({"xlink:xlink:href":"#",class:"link--impt link--embedview","font-weight":"bold"}).text(t._context.linkText+" "+String.fromCharCode(187));if(t._context.sendData)r.on("click",(function(){x.sendDataToCloud(t)}));else{var n=window.location.pathname.split("/"),i=window.location.search;r.attr({"xlink:xlink:show":"new","xlink:xlink:href":"/"+n[2].split(".")[0]+"/"+n[1]+i})}}(t,o),s.text(o.text()&&l.text()?" - ":"")}},x.sendDataToCloud=function(t){var e=(window.PLOTLYENV||{}).BASE_URL||t._context.plotlyServerURL;if(e){t.emit("plotly_beforeexport");var r=n.select(t).append("div").attr("id","hiddenform").style("display","none"),i=r.append("form").attr({action:e+"/external",method:"post",target:"_blank"});return i.append("input").attr({type:"text",name:"data"}).node().value=x.graphJson(t,!1,"keepdata"),i.node().submit(),r.remove(),t.emit("plotly_afterexport"),!1}};var w=["days","shortDays","months","shortMonths","periods","dateTime","date","time","decimal","thousands","grouping","currency"],T=["year","month","dayMonth","dayMonthYear"];function k(t,e){var r=t._context.locale;r||(r="en-US");var n=!1,i={};function a(t){for(var r=!0,a=0;a1&&O.length>1){for(o.getComponentMethod("grid","sizeDefaults")(u,l),s=0;s15&&O.length>15&&0===l.shapes.length&&0===l.images.length,l._hasCartesian=l._has("cartesian"),l._hasGeo=l._has("geo"),l._hasGL3D=l._has("gl3d"),l._hasGL2D=l._has("gl2d"),l._hasTernary=l._has("ternary"),l._hasPie=l._has("pie"),x.linkSubplots(h,l,f,a),x.cleanPlot(h,l,f,a);var N=!(!a._has||!a._has("gl2d")),j=!(!l._has||!l._has("gl2d")),U=!(!a._has||!a._has("cartesian"))||N,V=!(!l._has||!l._has("cartesian"))||j;U&&!V?a._bgLayer.remove():V&&!U&&(l._shouldCreateBgLayer=!0),a._zoomlayer&&!t._dragging&&p({_fullLayout:a}),function(t,e){var r,n=[];e.meta&&(r=e._meta={meta:e.meta,layout:{meta:e.meta}});for(var i=0;i0){var f=1-2*s;n=Math.round(f*n),i=Math.round(f*i)}}var h=x.layoutAttributes.width.min,p=x.layoutAttributes.height.min;n1,g=!e.height&&Math.abs(r.height-i)>1;(g||d)&&(d&&(r.width=n),g&&(r.height=i)),t._initialAutoSize||(t._initialAutoSize={width:n,height:i}),x.sanitizeMargins(r)},x.supplyLayoutModuleDefaults=function(t,e,r,n){var i,a,s,l=o.componentsRegistry,u=e._basePlotModules,f=o.subplotsRegistry.cartesian;for(i in l)(s=l[i]).includeBasePlot&&s.includeBasePlot(t,e);for(var h in u.length||u.push(f),e._has("cartesian")&&(o.getComponentMethod("grid","contentDefaults")(t,e),f.finalizeSubplots(t,e)),e._subplots)e._subplots[h].sort(c.subplotSort);for(a=0;a1&&(r.l/=g,r.r/=g)}if(f){var m=(r.t+r.b)/f;m>1&&(r.t/=m,r.b/=m)}var v=void 0!==r.xl?r.xl:r.x,y=void 0!==r.xr?r.xr:r.x,b=void 0!==r.yt?r.yt:r.y,_=void 0!==r.yb?r.yb:r.y;h[e]={l:{val:v,size:r.l+d},r:{val:y,size:r.r+d},b:{val:_,size:r.b+d},t:{val:b,size:r.t+d}},p[e]=1}else delete h[e],delete p[e];if(!n._replotting)return x.doAutoMargin(t)}},x.doAutoMargin=function(t){var e=t._fullLayout,r=e.width,n=e.height;e._size||(e._size={}),C(e);var i=e._size,s=e.margin,l=c.extendFlat({},i),u=s.l,f=s.r,p=s.t,d=s.b,g=e._pushmargin,m=e._pushmarginIds;if(!1!==e.margin.autoexpand){for(var v in g)m[v]||delete g[v];for(var y in g.base={l:{val:0,size:u},r:{val:1,size:f},t:{val:1,size:p},b:{val:0,size:d}},g){var b=g[y].l||{},_=g[y].b||{},w=b.val,T=b.size,k=_.val,M=_.size;for(var A in g){if(a(T)&&g[A].r){var S=g[A].r.val,E=g[A].r.size;if(S>w){var L=(T*S+(E-r)*w)/(S-w),I=(E*(1-w)+(T-r)*(1-S))/(S-w);L+I>u+f&&(u=L,f=I)}}if(a(M)&&g[A].t){var P=g[A].t.val,z=g[A].t.size;if(P>k){var O=(M*P+(z-n)*k)/(P-k),D=(z*(1-k)+(M-n)*(1-P))/(P-k);O+D>d+p&&(d=O,p=D)}}}}}var R=c.constrain(r-s.l-s.r,2,64),F=c.constrain(n-s.t-s.b,2,64),B=Math.max(0,r-R),N=Math.max(0,n-F);if(B){var j=(u+f)/B;j>1&&(u/=j,f/=j)}if(N){var U=(d+p)/N;U>1&&(d/=U,p/=U)}if(i.l=Math.round(u),i.r=Math.round(f),i.t=Math.round(p),i.b=Math.round(d),i.p=Math.round(s.pad),i.w=Math.round(r)-i.l-i.r,i.h=Math.round(n)-i.t-i.b,!e._replotting&&x.didMarginChange(l,i)){"_redrawFromAutoMarginCount"in e?e._redrawFromAutoMarginCount++:e._redrawFromAutoMarginCount=1;var V=3*(1+Object.keys(m).length);if(e._redrawFromAutoMarginCount0&&(t._transitioningWithDuration=!0),t._transitionData._interruptCallbacks.push((function(){n=!0})),r.redraw&&t._transitionData._interruptCallbacks.push((function(){return o.call("redraw",t)})),t._transitionData._interruptCallbacks.push((function(){t.emit("plotly_transitioninterrupted",[])}));var a=0,s=0;function l(){return a++,function(){s++,n||s!==a||function(e){if(!t._transitionData)return;(function(t){if(t)for(;t.length;)t.shift()})(t._transitionData._interruptCallbacks),Promise.resolve().then((function(){if(r.redraw)return o.call("redraw",t)})).then((function(){t._transitioning=!1,t._transitioningWithDuration=!1,t.emit("plotly_transitioned",[])})).then(e)}(i)}}r.runFn(l),setTimeout(l())}))}],a=c.syncOrAsync(i,t);return a&&a.then||(a=Promise.resolve()),a.then((function(){return t}))}x.didMarginChange=function(t,e){for(var r=0;r1)return!0}return!1},x.graphJson=function(t,e,r,n,i,a){(i&&e&&!t._fullData||i&&!e&&!t._fullLayout)&&x.supplyDefaults(t);var o=i?t._fullData:t.data,s=i?t._fullLayout:t.layout,l=(t._transitionData||{})._frames;function u(t,e){if("function"==typeof t)return e?"_function_":null;if(c.isPlainObject(t)){var n,i={};return Object.keys(t).sort().forEach((function(a){if(-1===["_","["].indexOf(a.charAt(0)))if("function"!=typeof t[a]){if("keepdata"===r){if("src"===a.substr(a.length-3))return}else if("keepstream"===r){if("string"==typeof(n=t[a+"src"])&&n.indexOf(":")>0&&!c.isPlainObject(t.stream))return}else if("keepall"!==r&&"string"==typeof(n=t[a+"src"])&&n.indexOf(":")>0)return;i[a]=u(t[a],e)}else e&&(i[a]="_function")})),i}return Array.isArray(t)?t.map((function(t){return u(t,e)})):c.isTypedArray(t)?c.simpleMap(t,c.identity):c.isJSDate(t)?c.ms2DateTimeLocal(+t):t}var f={data:(o||[]).map((function(t){var r=u(t);return e&&delete r.fit,r}))};if(!e&&(f.layout=u(s),i)){var h=s._size;f.layout.computed={margin:{b:h.b,l:h.l,r:h.r,t:h.t}}}return t.framework&&t.framework.isPolar&&(f=t.framework.getConfig()),l&&(f.frames=u(l)),a&&(f.config=u(t._context,!0)),"object"===n?f:JSON.stringify(f)},x.modifyFrames=function(t,e){var r,n,i,a=t._transitionData._frames,o=t._transitionData._frameHash;for(r=0;r=0;a--)if(s[a].enabled){r._indexToPoints=s[a]._indexToPoints;break}n&&n.calc&&(o=n.calc(t,r))}Array.isArray(o)&&o[0]||(o=[{x:f,y:f}]),o[0].t||(o[0].t={}),o[0].trace=r,d[e]=o}}for(z(l,u,p),i=0;i1e-10?t:0}function h(t,e,r){e=e||0,r=r||0;for(var n=t.length,i=new Array(n),a=0;a0?r:1/0})),i=n.mod(r+1,e.length);return[e[r],e[i]]},findIntersectionXY:c,findXYatLength:function(t,e,r,n){var i=-e*r,a=e*e+1,o=2*(e*i-r),s=i*i+r*r-t*t,l=Math.sqrt(o*o-4*a*s),c=(-o+l)/(2*a),u=(-o-l)/(2*a);return[[c,e*c+i+n],[u,e*u+i+n]]},clampTiny:f,pathPolygon:function(t,e,r,n,i,a){return"M"+h(u(t,e,r,n),i,a).join("L")},pathPolygonAnnulus:function(t,e,r,n,i,a,o){var s,l;t=0?h.angularAxis.domain:n.extent(T),E=Math.abs(T[1]-T[0]);M&&!k&&(E=0);var C=S.slice();A&&k&&(C[1]+=E);var L=h.angularAxis.ticksCount||4;L>8&&(L=L/(L/8)+L%8),h.angularAxis.ticksStep&&(L=(C[1]-C[0])/L);var I=h.angularAxis.ticksStep||(C[1]-C[0])/(L*(h.minorTicks+1));w&&(I=Math.max(Math.round(I),1)),C[2]||(C[2]=I);var P=n.range.apply(this,C);if(P=P.map((function(t,e){return parseFloat(t.toPrecision(12))})),s=n.scale.linear().domain(C.slice(0,2)).range("clockwise"===h.direction?[0,360]:[360,0]),u.layout.angularAxis.domain=s.domain(),u.layout.angularAxis.endPadding=A?E:0,"undefined"==typeof(t=n.select(this).select("svg.chart-root"))||t.empty()){var z=(new DOMParser).parseFromString("' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '","application/xml"),O=this.appendChild(this.ownerDocument.importNode(z.documentElement,!0));t=n.select(O)}t.select(".guides-group").style({"pointer-events":"none"}),t.select(".angular.axis-group").style({"pointer-events":"none"}),t.select(".radial.axis-group").style({"pointer-events":"none"});var D,R=t.select(".chart-group"),F={fill:"none",stroke:h.tickColor},B={"font-size":h.font.size,"font-family":h.font.family,fill:h.font.color,"text-shadow":["-1px 0px","1px -1px","-1px 1px","1px 1px"].map((function(t,e){return" "+t+" 0 "+h.font.outlineColor})).join(",")};if(h.showLegend){D=t.select(".legend-group").attr({transform:"translate("+[x,h.margin.top]+")"}).style({display:"block"});var N=p.map((function(t,e){var r=o.util.cloneJson(t);return r.symbol="DotPlot"===t.geometry?t.dotType||"circle":"LinePlot"!=t.geometry?"square":"line",r.visibleInLegend="undefined"==typeof t.visibleInLegend||t.visibleInLegend,r.color="LinePlot"===t.geometry?t.strokeColor:t.color,r}));o.Legend().config({data:p.map((function(t,e){return t.name||"Element"+e})),legendConfig:i({},o.Legend.defaultConfig().legendConfig,{container:D,elements:N,reverseOrder:h.legend.reverseOrder})})();var j=D.node().getBBox();x=Math.min(h.width-j.width-h.margin.left-h.margin.right,h.height-h.margin.top-h.margin.bottom)/2,x=Math.max(10,x),_=[h.margin.left+x,h.margin.top+x],r.range([0,x]),u.layout.radialAxis.domain=r.domain(),D.attr("transform","translate("+[_[0]+x,_[1]-x]+")")}else D=t.select(".legend-group").style({display:"none"});t.attr({width:h.width,height:h.height}).style({opacity:h.opacity}),R.attr("transform","translate("+_+")").style({cursor:"crosshair"});var U=[(h.width-(h.margin.left+h.margin.right+2*x+(j?j.width:0)))/2,(h.height-(h.margin.top+h.margin.bottom+2*x))/2];if(U[0]=Math.max(0,U[0]),U[1]=Math.max(0,U[1]),t.select(".outer-group").attr("transform","translate("+U+")"),h.title&&h.title.text){var V=t.select("g.title-group text").style(B).text(h.title.text),q=V.node().getBBox();V.attr({x:_[0]-q.width/2,y:_[1]-x-20})}var H=t.select(".radial.axis-group");if(h.radialAxis.gridLinesVisible){var G=H.selectAll("circle.grid-circle").data(r.ticks(5));G.enter().append("circle").attr({class:"grid-circle"}).style(F),G.attr("r",r),G.exit().remove()}H.select("circle.outside-circle").attr({r:x}).style(F);var Y=t.select("circle.background-circle").attr({r:x}).style({fill:h.backgroundColor,stroke:h.stroke});function W(t,e){return s(t)%360+h.orientation}if(h.radialAxis.visible){var X=n.svg.axis().scale(r).ticks(5).tickSize(5);H.call(X).attr({transform:"rotate("+h.radialAxis.orientation+")"}),H.selectAll(".domain").style(F),H.selectAll("g>text").text((function(t,e){return this.textContent+h.radialAxis.ticksSuffix})).style(B).style({"text-anchor":"start"}).attr({x:0,y:0,dx:0,dy:0,transform:function(t,e){return"horizontal"===h.radialAxis.tickOrientation?"rotate("+-h.radialAxis.orientation+") translate("+[0,B["font-size"]]+")":"translate("+[0,B["font-size"]]+")"}}),H.selectAll("g>line").style({stroke:"black"})}var Z=t.select(".angular.axis-group").selectAll("g.angular-tick").data(P),J=Z.enter().append("g").classed("angular-tick",!0);Z.attr({transform:function(t,e){return"rotate("+W(t)+")"}}).style({display:h.angularAxis.visible?"block":"none"}),Z.exit().remove(),J.append("line").classed("grid-line",!0).classed("major",(function(t,e){return e%(h.minorTicks+1)==0})).classed("minor",(function(t,e){return!(e%(h.minorTicks+1)==0)})).style(F),J.selectAll(".minor").style({stroke:h.minorTickColor}),Z.select("line.grid-line").attr({x1:h.tickLength?x-h.tickLength:0,x2:x}).style({display:h.angularAxis.gridLinesVisible?"block":"none"}),J.append("text").classed("axis-text",!0).style(B);var K=Z.select("text.axis-text").attr({x:x+h.labelOffset,dy:a+"em",transform:function(t,e){var r=W(t),n=x+h.labelOffset,i=h.angularAxis.tickOrientation;return"horizontal"==i?"rotate("+-r+" "+n+" 0)":"radial"==i?r<270&&r>90?"rotate(180 "+n+" 0)":null:"rotate("+(r<=180&&r>0?-90:90)+" "+n+" 0)"}}).style({"text-anchor":"middle",display:h.angularAxis.labelsVisible?"block":"none"}).text((function(t,e){return e%(h.minorTicks+1)!=0?"":w?w[t]+h.angularAxis.ticksSuffix:t+h.angularAxis.ticksSuffix})).style(B);h.angularAxis.rewriteTicks&&K.text((function(t,e){return e%(h.minorTicks+1)!=0?"":h.angularAxis.rewriteTicks(this.textContent,e)}));var Q=n.max(R.selectAll(".angular-tick text")[0].map((function(t,e){return t.getCTM().e+t.getBBox().width})));D.attr({transform:"translate("+[x+Q,h.margin.top]+")"});var $=t.select("g.geometry-group").selectAll("g").size()>0,tt=t.select("g.geometry-group").selectAll("g.geometry").data(p);if(tt.enter().append("g").attr({class:function(t,e){return"geometry geometry"+e}}),tt.exit().remove(),p[0]||$){var et=[];p.forEach((function(t,e){var n={};n.radialScale=r,n.angularScale=s,n.container=tt.filter((function(t,r){return r==e})),n.geometry=t.geometry,n.orientation=h.orientation,n.direction=h.direction,n.index=e,et.push({data:t,geometryConfig:n})}));var rt=n.nest().key((function(t,e){return"undefined"!=typeof t.data.groupId||"unstacked"})).entries(et),nt=[];rt.forEach((function(t,e){"unstacked"===t.key?nt=nt.concat(t.values.map((function(t,e){return[t]}))):nt.push(t.values)})),nt.forEach((function(t,e){var r;r=Array.isArray(t)?t[0].geometryConfig.geometry:t.geometryConfig.geometry;var n=t.map((function(t,e){return i(o[r].defaultConfig(),t)}));o[r]().config(n)()}))}var it,at,ot=t.select(".guides-group"),st=t.select(".tooltips-group"),lt=o.tooltipPanel().config({container:st,fontSize:8})(),ct=o.tooltipPanel().config({container:st,fontSize:8})(),ut=o.tooltipPanel().config({container:st,hasTick:!0})();if(!k){var ft=ot.select("line").attr({x1:0,y1:0,y2:0}).style({stroke:"grey","pointer-events":"none"});R.on("mousemove.angular-guide",(function(t,e){var r=o.util.getMousePos(Y).angle;ft.attr({x2:-x,transform:"rotate("+r+")"}).style({opacity:.5});var n=(r+180+360-h.orientation)%360;it=s.invert(n);var i=o.util.convertToCartesian(x+12,r+180);lt.text(o.util.round(it)).move([i[0]+_[0],i[1]+_[1]])})).on("mouseout.angular-guide",(function(t,e){ot.select("line").style({opacity:0})}))}var ht=ot.select("circle").style({stroke:"grey",fill:"none"});R.on("mousemove.radial-guide",(function(t,e){var n=o.util.getMousePos(Y).radius;ht.attr({r:n}).style({opacity:.5}),at=r.invert(o.util.getMousePos(Y).radius);var i=o.util.convertToCartesian(n,h.radialAxis.orientation);ct.text(o.util.round(at)).move([i[0]+_[0],i[1]+_[1]])})).on("mouseout.radial-guide",(function(t,e){ht.style({opacity:0}),ut.hide(),lt.hide(),ct.hide()})),t.selectAll(".geometry-group .mark").on("mouseover.tooltip",(function(e,r){var i=n.select(this),a=this.style.fill,s="black",l=this.style.opacity||1;if(i.attr({"data-opacity":l}),a&&"none"!==a){i.attr({"data-fill":a}),s=n.hsl(a).darker().toString(),i.style({fill:s,opacity:1});var c={t:o.util.round(e[0]),r:o.util.round(e[1])};k&&(c.t=w[e[0]]);var u="t: "+c.t+", r: "+c.r,f=this.getBoundingClientRect(),h=t.node().getBoundingClientRect(),p=[f.left+f.width/2-U[0]-h.left,f.top+f.height/2-U[1]-h.top];ut.config({color:s}).text(u),ut.move(p)}else a=this.style.stroke||"black",i.attr({"data-stroke":a}),s=n.hsl(a).darker().toString(),i.style({stroke:s,opacity:1})})).on("mousemove.tooltip",(function(t,e){if(0!=n.event.which)return!1;n.select(this).attr("data-fill")&&ut.show()})).on("mouseout.tooltip",(function(t,e){ut.hide();var r=n.select(this),i=r.attr("data-fill");i?r.style({fill:i,opacity:r.attr("data-opacity")}):r.style({stroke:r.attr("data-stroke"),opacity:r.attr("data-opacity")})}))}))}(c),this},h.config=function(t){if(!arguments.length)return l;var e=o.util.cloneJson(t);return e.data.forEach((function(t,e){l.data[e]||(l.data[e]={}),i(l.data[e],o.Axis.defaultConfig().data[0]),i(l.data[e],t)})),i(l.layout,o.Axis.defaultConfig().layout),i(l.layout,e.layout),this},h.getLiveConfig=function(){return u},h.getinputConfig=function(){return c},h.radialScale=function(t){return r},h.angularScale=function(t){return s},h.svg=function(){return t},n.rebind(h,f,"on"),h},o.Axis.defaultConfig=function(t,e){return{data:[{t:[1,2,3,4],r:[10,11,12,13],name:"Line1",geometry:"LinePlot",color:null,strokeDash:"solid",strokeColor:null,strokeSize:"1",visibleInLegend:!0,opacity:1}],layout:{defaultColorRange:n.scale.category10().range(),title:null,height:450,width:500,margin:{top:40,right:40,bottom:40,left:40},font:{size:12,color:"gray",outlineColor:"white",family:"Tahoma, sans-serif"},direction:"clockwise",orientation:0,labelOffset:10,radialAxis:{domain:null,orientation:-45,ticksSuffix:"",visible:!0,gridLinesVisible:!0,tickOrientation:"horizontal",rewriteTicks:null},angularAxis:{domain:[0,360],ticksSuffix:"",visible:!0,gridLinesVisible:!0,labelsVisible:!0,tickOrientation:"horizontal",rewriteTicks:null,ticksCount:null,ticksStep:null},minorTicks:0,tickLength:null,tickColor:"silver",minorTickColor:"#eee",backgroundColor:"none",needsEndSpacing:null,showLegend:!0,legend:{reverseOrder:!1},opacity:1}}},o.util={},o.DATAEXTENT="dataExtent",o.AREA="AreaChart",o.LINE="LinePlot",o.DOT="DotPlot",o.BAR="BarChart",o.util._override=function(t,e){for(var r in t)r in e&&(e[r]=t[r])},o.util._extend=function(t,e){for(var r in t)e[r]=t[r]},o.util._rndSnd=function(){return 2*Math.random()-1+(2*Math.random()-1)+(2*Math.random()-1)},o.util.dataFromEquation2=function(t,e){var r=e||6;return n.range(0,360+r,r).map((function(e,r){var n=e*Math.PI/180;return[e,t(n)]}))},o.util.dataFromEquation=function(t,e,r){var i=e||6,a=[],o=[];n.range(0,360+i,i).forEach((function(e,r){var n=e*Math.PI/180,i=t(n);a.push(e),o.push(i)}));var s={t:a,r:o};return r&&(s.name=r),s},o.util.ensureArray=function(t,e){if("undefined"==typeof t)return null;var r=[].concat(t);return n.range(e).map((function(t,e){return r[e]||r[0]}))},o.util.fillArrays=function(t,e,r){return e.forEach((function(e,n){t[e]=o.util.ensureArray(t[e],r)})),t},o.util.cloneJson=function(t){return JSON.parse(JSON.stringify(t))},o.util.validateKeys=function(t,e){"string"==typeof e&&(e=e.split("."));var r=e.shift();return t[r]&&(!e.length||objHasKeys(t[r],e))},o.util.sumArrays=function(t,e){return n.zip(t,e).map((function(t,e){return n.sum(t)}))},o.util.arrayLast=function(t){return t[t.length-1]},o.util.arrayEqual=function(t,e){for(var r=Math.max(t.length,e.length,1);r-- >=0&&t[r]===e[r];);return-2===r},o.util.flattenArray=function(t){for(var e=[];!o.util.arrayEqual(e,t);)e=t,t=[].concat.apply([],t);return t},o.util.deduplicate=function(t){return t.filter((function(t,e,r){return r.indexOf(t)==e}))},o.util.convertToCartesian=function(t,e){var r=e*Math.PI/180;return[t*Math.cos(r),t*Math.sin(r)]},o.util.round=function(t,e){var r=e||2,n=Math.pow(10,r);return Math.round(t*n)/n},o.util.getMousePos=function(t){var e=n.mouse(t.node()),r=e[0],i=e[1],a={};return a.x=r,a.y=i,a.pos=e,a.angle=180*(Math.atan2(i,r)+Math.PI)/Math.PI,a.radius=Math.sqrt(r*r+i*i),a},o.util.duplicatesCount=function(t){for(var e,r={},n={},i=0,a=t.length;i0)){var l=n.select(this.parentNode).selectAll("path.line").data([0]);l.enter().insert("path"),l.attr({class:"line",d:u(s),transform:function(t,r){return"rotate("+(e.orientation+90)+")"},"pointer-events":"none"}).style({fill:function(t,e){return d.fill(r,i,a)},"fill-opacity":0,stroke:function(t,e){return d.stroke(r,i,a)},"stroke-width":function(t,e){return d["stroke-width"](r,i,a)},"stroke-dasharray":function(t,e){return d["stroke-dasharray"](r,i,a)},opacity:function(t,e){return d.opacity(r,i,a)},display:function(t,e){return d.display(r,i,a)}})}};var f=e.angularScale.range(),h=Math.abs(f[1]-f[0])/o[0].length*Math.PI/180,p=n.svg.arc().startAngle((function(t){return-h/2})).endAngle((function(t){return h/2})).innerRadius((function(t){return e.radialScale(l+(t[2]||0))})).outerRadius((function(t){return e.radialScale(l+(t[2]||0))+e.radialScale(t[1])}));c.arc=function(t,r,i){n.select(this).attr({class:"mark arc",d:p,transform:function(t,r){return"rotate("+(e.orientation+s(t[0])+90)+")"}})};var d={fill:function(e,r,n){return t[n].data.color},stroke:function(e,r,n){return t[n].data.strokeColor},"stroke-width":function(e,r,n){return t[n].data.strokeSize+"px"},"stroke-dasharray":function(e,n,i){return r[t[i].data.strokeDash]},opacity:function(e,r,n){return t[n].data.opacity},display:function(e,r,n){return"undefined"==typeof t[n].data.visible||t[n].data.visible?"block":"none"}},g=n.select(this).selectAll("g.layer").data(o);g.enter().append("g").attr({class:"layer"});var m=g.selectAll("path.mark").data((function(t,e){return t}));m.enter().append("path").attr({class:"mark"}),m.style(d).each(c[e.geometryType]),m.exit().remove(),g.exit().remove()}))}return a.config=function(e){return arguments.length?(e.forEach((function(e,r){t[r]||(t[r]={}),i(t[r],o.PolyChart.defaultConfig()),i(t[r],e)})),this):t},a.getColorScale=function(){},n.rebind(a,e,"on"),a},o.PolyChart.defaultConfig=function(){return{data:{name:"geom1",t:[[1,2,3,4]],r:[[1,2,3,4]],dotType:"circle",dotSize:64,dotVisible:!1,barWidth:20,color:"#ffa500",strokeSize:1,strokeColor:"silver",strokeDash:"solid",opacity:1,index:0,visible:!0,visibleInLegend:!0},geometryConfig:{geometry:"LinePlot",geometryType:"arc",direction:"clockwise",orientation:0,container:"body",radialScale:null,angularScale:null,colorScale:n.scale.category20()}}},o.BarChart=function(){return o.PolyChart()},o.BarChart.defaultConfig=function(){return{geometryConfig:{geometryType:"bar"}}},o.AreaChart=function(){return o.PolyChart()},o.AreaChart.defaultConfig=function(){return{geometryConfig:{geometryType:"arc"}}},o.DotPlot=function(){return o.PolyChart()},o.DotPlot.defaultConfig=function(){return{geometryConfig:{geometryType:"dot",dotType:"circle"}}},o.LinePlot=function(){return o.PolyChart()},o.LinePlot.defaultConfig=function(){return{geometryConfig:{geometryType:"line"}}},o.Legend=function(){var t=o.Legend.defaultConfig(),e=n.dispatch("hover");function r(){var e=t.legendConfig,a=t.data.map((function(t,r){return[].concat(t).map((function(t,n){var a=i({},e.elements[r]);return a.name=t,a.color=[].concat(e.elements[r].color)[n],a}))})),o=n.merge(a);o=o.filter((function(t,r){return e.elements[r]&&(e.elements[r].visibleInLegend||"undefined"==typeof e.elements[r].visibleInLegend)})),e.reverseOrder&&(o=o.reverse());var s=e.container;("string"==typeof s||s.nodeName)&&(s=n.select(s));var l=o.map((function(t,e){return t.color})),c=e.fontSize,u=null==e.isContinuous?"number"==typeof o[0]:e.isContinuous,f=u?e.height:c*o.length,h=s.classed("legend-group",!0).selectAll("svg").data([0]),p=h.enter().append("svg").attr({width:300,height:f+c,xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",version:"1.1"});p.append("g").classed("legend-axis",!0),p.append("g").classed("legend-marks",!0);var d=n.range(o.length),g=n.scale[u?"linear":"ordinal"]().domain(d).range(l),m=n.scale[u?"linear":"ordinal"]().domain(d)[u?"range":"rangePoints"]([0,f]);if(u){var v=h.select(".legend-marks").append("defs").append("linearGradient").attr({id:"grad1",x1:"0%",y1:"0%",x2:"0%",y2:"100%"}).selectAll("stop").data(l);v.enter().append("stop"),v.attr({offset:function(t,e){return e/(l.length-1)*100+"%"}}).style({"stop-color":function(t,e){return t}}),h.append("rect").classed("legend-mark",!0).attr({height:e.height,width:e.colorBandWidth,fill:"url(#grad1)"})}else{var y=h.select(".legend-marks").selectAll("path.legend-mark").data(o);y.enter().append("path").classed("legend-mark",!0),y.attr({transform:function(t,e){return"translate("+[c/2,m(e)+c/2]+")"},d:function(t,e){var r,i,a,o=t.symbol;return a=3*(i=c),"line"===(r=o)?"M"+[[-i/2,-i/12],[i/2,-i/12],[i/2,i/12],[-i/2,i/12]]+"Z":-1!=n.svg.symbolTypes.indexOf(r)?n.svg.symbol().type(r).size(a)():n.svg.symbol().type("square").size(a)()},fill:function(t,e){return g(e)}}),y.exit().remove()}var x=n.svg.axis().scale(m).orient("right"),b=h.select("g.legend-axis").attr({transform:"translate("+[u?e.colorBandWidth:c,c/2]+")"}).call(x);return b.selectAll(".domain").style({fill:"none",stroke:"none"}),b.selectAll("line").style({fill:"none",stroke:u?e.textColor:"none"}),b.selectAll("text").style({fill:e.textColor,"font-size":e.fontSize}).text((function(t,e){return o[e].name})),r}return r.config=function(e){return arguments.length?(i(t,e),this):t},n.rebind(r,e,"on"),r},o.Legend.defaultConfig=function(t,e){return{data:["a","b","c"],legendConfig:{elements:[{symbol:"line",color:"red"},{symbol:"square",color:"yellow"},{symbol:"diamond",color:"limegreen"}],height:150,colorBandWidth:30,fontSize:12,container:"body",isContinuous:null,textColor:"grey",reverseOrder:!1}}},o.tooltipPanel=function(){var t,e,r,a={container:null,hasTick:!1,fontSize:12,color:"white",padding:5},s="tooltip-"+o.tooltipPanel.uid++,l=10,c=function(){var n=(t=a.container.selectAll("g."+s).data([0])).enter().append("g").classed(s,!0).style({"pointer-events":"none",display:"none"});return r=n.append("path").style({fill:"white","fill-opacity":.9}).attr({d:"M0 0"}),e=n.append("text").attr({dx:a.padding+l,dy:.3*+a.fontSize}),c};return c.text=function(i){var o=n.hsl(a.color).l,s=o>=.5?"#aaa":"white",u=o>=.5?"black":"white",f=i||"";e.style({fill:u,"font-size":a.fontSize+"px"}).text(f);var h=a.padding,p=e.node().getBBox(),d={fill:a.color,stroke:s,"stroke-width":"2px"},g=p.width+2*h+l,m=p.height+2*h;return r.attr({d:"M"+[[l,-m/2],[l,-m/4],[a.hasTick?0:l,0],[l,m/4],[l,m/2],[g,m/2],[g,-m/2]].join("L")+"Z"}).style(d),t.attr({transform:"translate("+[l,-m/2+2*h]+")"}),t.style({display:"block"}),c},c.move=function(e){if(t)return t.attr({transform:"translate("+[e[0],e[1]]+")"}).style({display:"block"}),c},c.hide=function(){if(t)return t.style({display:"none"}),c},c.show=function(){if(t)return t.style({display:"block"}),c},c.config=function(t){return i(a,t),c},c},o.tooltipPanel.uid=1,o.adapter={},o.adapter.plotly=function(){var t={convert:function(t,e){var r={};if(t.data&&(r.data=t.data.map((function(t,r){var n=i({},t);return[[n,["marker","color"],["color"]],[n,["marker","opacity"],["opacity"]],[n,["marker","line","color"],["strokeColor"]],[n,["marker","line","dash"],["strokeDash"]],[n,["marker","line","width"],["strokeSize"]],[n,["marker","symbol"],["dotType"]],[n,["marker","size"],["dotSize"]],[n,["marker","barWidth"],["barWidth"]],[n,["line","interpolation"],["lineInterpolation"]],[n,["showlegend"],["visibleInLegend"]]].forEach((function(t,r){o.util.translator.apply(null,t.concat(e))})),e||delete n.marker,e&&delete n.groupId,e?("LinePlot"===n.geometry?(n.type="scatter",!0===n.dotVisible?(delete n.dotVisible,n.mode="lines+markers"):n.mode="lines"):"DotPlot"===n.geometry?(n.type="scatter",n.mode="markers"):"AreaChart"===n.geometry?n.type="area":"BarChart"===n.geometry&&(n.type="bar"),delete n.geometry):("scatter"===n.type?"lines"===n.mode?n.geometry="LinePlot":"markers"===n.mode?n.geometry="DotPlot":"lines+markers"===n.mode&&(n.geometry="LinePlot",n.dotVisible=!0):"area"===n.type?n.geometry="AreaChart":"bar"===n.type&&(n.geometry="BarChart"),delete n.mode,delete n.type),n})),!e&&t.layout&&"stack"===t.layout.barmode)){var a=o.util.duplicates(r.data.map((function(t,e){return t.geometry})));r.data.forEach((function(t,e){var n=a.indexOf(t.geometry);-1!=n&&(r.data[e].groupId=n)}))}if(t.layout){var s=i({},t.layout);if([[s,["plot_bgcolor"],["backgroundColor"]],[s,["showlegend"],["showLegend"]],[s,["radialaxis"],["radialAxis"]],[s,["angularaxis"],["angularAxis"]],[s.angularaxis,["showline"],["gridLinesVisible"]],[s.angularaxis,["showticklabels"],["labelsVisible"]],[s.angularaxis,["nticks"],["ticksCount"]],[s.angularaxis,["tickorientation"],["tickOrientation"]],[s.angularaxis,["ticksuffix"],["ticksSuffix"]],[s.angularaxis,["range"],["domain"]],[s.angularaxis,["endpadding"],["endPadding"]],[s.radialaxis,["showline"],["gridLinesVisible"]],[s.radialaxis,["tickorientation"],["tickOrientation"]],[s.radialaxis,["ticksuffix"],["ticksSuffix"]],[s.radialaxis,["range"],["domain"]],[s.angularAxis,["showline"],["gridLinesVisible"]],[s.angularAxis,["showticklabels"],["labelsVisible"]],[s.angularAxis,["nticks"],["ticksCount"]],[s.angularAxis,["tickorientation"],["tickOrientation"]],[s.angularAxis,["ticksuffix"],["ticksSuffix"]],[s.angularAxis,["range"],["domain"]],[s.angularAxis,["endpadding"],["endPadding"]],[s.radialAxis,["showline"],["gridLinesVisible"]],[s.radialAxis,["tickorientation"],["tickOrientation"]],[s.radialAxis,["ticksuffix"],["ticksSuffix"]],[s.radialAxis,["range"],["domain"]],[s.font,["outlinecolor"],["outlineColor"]],[s.legend,["traceorder"],["reverseOrder"]],[s,["labeloffset"],["labelOffset"]],[s,["defaultcolorrange"],["defaultColorRange"]]].forEach((function(t,r){o.util.translator.apply(null,t.concat(e))})),e?("undefined"!=typeof s.tickLength&&(s.angularaxis.ticklen=s.tickLength,delete s.tickLength),s.tickColor&&(s.angularaxis.tickcolor=s.tickColor,delete s.tickColor)):(s.angularAxis&&"undefined"!=typeof s.angularAxis.ticklen&&(s.tickLength=s.angularAxis.ticklen),s.angularAxis&&"undefined"!=typeof s.angularAxis.tickcolor&&(s.tickColor=s.angularAxis.tickcolor)),s.legend&&"boolean"!=typeof s.legend.reverseOrder&&(s.legend.reverseOrder="normal"!=s.legend.reverseOrder),s.legend&&"boolean"==typeof s.legend.traceorder&&(s.legend.traceorder=s.legend.traceorder?"reversed":"normal",delete s.legend.reverseOrder),s.margin&&"undefined"!=typeof s.margin.t){var l=["t","r","b","l","pad"],c=["top","right","bottom","left","pad"],u={};n.entries(s.margin).forEach((function(t,e){u[c[l.indexOf(t.key)]]=t.value})),s.margin=u}e&&(delete s.needsEndSpacing,delete s.minorTickColor,delete s.minorTicks,delete s.angularaxis.ticksCount,delete s.angularaxis.ticksCount,delete s.angularaxis.ticksStep,delete s.angularaxis.rewriteTicks,delete s.angularaxis.nticks,delete s.radialaxis.ticksCount,delete s.radialaxis.ticksCount,delete s.radialaxis.ticksStep,delete s.radialaxis.rewriteTicks,delete s.radialaxis.nticks),r.layout=s}return r}};return t}},{"../../../constants/alignment":745,"../../../lib":778,d3:169}],901:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../../lib"),a=t("../../../components/color"),o=t("./micropolar"),s=t("./undo_manager"),l=i.extendDeepAll,c=e.exports={};c.framework=function(t){var e,r,i,a,u,f=new s;function h(r,s){return s&&(u=s),n.select(n.select(u).node().parentNode).selectAll(".svg-container>*:not(.chart-root)").remove(),e=e?l(e,r):r,i||(i=o.Axis()),a=o.adapter.plotly().convert(e),i.config(a).render(u),t.data=e.data,t.layout=e.layout,c.fillLayout(t),e}return h.isPolar=!0,h.svg=function(){return i.svg()},h.getConfig=function(){return e},h.getLiveConfig=function(){return o.adapter.plotly().convert(i.getLiveConfig(),!0)},h.getLiveScales=function(){return{t:i.angularScale(),r:i.radialScale()}},h.setUndoPoint=function(){var t,n,i=this,a=o.util.cloneJson(e);t=a,n=r,f.add({undo:function(){n&&i(n)},redo:function(){i(t)}}),r=o.util.cloneJson(a)},h.undo=function(){f.undo()},h.redo=function(){f.redo()},h},c.fillLayout=function(t){var e=n.select(t).selectAll(".plot-container"),r=e.selectAll(".svg-container"),i=t.framework&&t.framework.svg&&t.framework.svg(),o={width:800,height:600,paper_bgcolor:a.background,_container:e,_paperdiv:r,_paper:i};t._fullLayout=l(o,t.layout)}},{"../../../components/color":643,"../../../lib":778,"./micropolar":900,"./undo_manager":902,d3:169}],902:[function(t,e,r){"use strict";e.exports=function(){var t,e=[],r=-1,n=!1;function i(t,e){return t?(n=!0,t[e](),n=!1,this):this}return{add:function(t){return n||(e.splice(r+1,e.length-r),e.push(t),r=e.length-1),this},setCallback:function(e){t=e},undo:function(){var n=e[r];return n?(i(n,"undo"),r-=1,t&&t(n.undo),this):this},redo:function(){var n=e[r+1];return n?(i(n,"redo"),r+=1,t&&t(n.redo),this):this},clear:function(){e=[],r=-1},hasUndo:function(){return-1!==r},hasRedo:function(){return r=90||s>90&&l>=450?1:u<=0&&h<=0?0:Math.max(u,h);e=s<=180&&l>=180||s>180&&l>=540?-1:c>=0&&f>=0?0:Math.min(c,f);r=s<=270&&l>=270||s>270&&l>=630?-1:u>=0&&h>=0?0:Math.min(u,h);n=l>=360?1:c<=0&&f<=0?0:Math.max(c,f);return[e,r,n,i]}(p),b=x[2]-x[0],_=x[3]-x[1],w=h/f,T=Math.abs(_/b);w>T?(d=f,y=(h-(g=f*T))/n.h/2,m=[o[0],o[1]],v=[s[0]+y,s[1]-y]):(g=h,y=(f-(d=h/T))/n.w/2,m=[o[0]+y,o[1]-y],v=[s[0],s[1]]),this.xLength2=d,this.yLength2=g,this.xDomain2=m,this.yDomain2=v;var k=this.xOffset2=n.l+n.w*m[0],M=this.yOffset2=n.t+n.h*(1-v[1]),A=this.radius=d/b,S=this.innerRadius=e.hole*A,E=this.cx=k-A*x[0],C=this.cy=M+A*x[3],P=this.cxx=E-k,z=this.cyy=C-M;this.radialAxis=this.mockAxis(t,e,i,{_id:"x",side:{counterclockwise:"top",clockwise:"bottom"}[i.side],_realSide:i.side,domain:[S/n.w,A/n.w]}),this.angularAxis=this.mockAxis(t,e,a,{side:"right",domain:[0,Math.PI],autorange:!1}),this.doAutoRange(t,e),this.updateAngularAxis(t,e),this.updateRadialAxis(t,e),this.updateRadialAxisTitle(t,e),this.xaxis=this.mockCartesianAxis(t,e,{_id:"x",domain:m}),this.yaxis=this.mockCartesianAxis(t,e,{_id:"y",domain:v});var O=this.pathSubplot();this.clipPaths.forTraces.select("path").attr("d",O).attr("transform",l(P,z)),r.frontplot.attr("transform",l(k,M)).call(u.setClipUrl,this._hasClipOnAxisFalse?null:this.clipIds.forTraces,this.gd),r.bg.attr("d",O).attr("transform",l(E,C)).call(c.fill,e.bgcolor)},O.mockAxis=function(t,e,r,n){var i=o.extendFlat({},r,n);return d(i,e,t),i},O.mockCartesianAxis=function(t,e,r){var n=this,i=r._id,a=o.extendFlat({type:"linear"},r);p(a,t);var s={x:[0,2],y:[1,3]};return a.setRange=function(){var t=n.sectorBBox,r=s[i],o=n.radialAxis._rl,l=(o[1]-o[0])/(1-e.hole);a.range=[t[r[0]]*l,t[r[1]]*l]},a.isPtWithinRange="x"===i?function(t){return n.isPtInside(t)}:function(){return!0},a.setRange(),a.setScale(),a},O.doAutoRange=function(t,e){var r=this.gd,n=this.radialAxis,i=e.radialaxis;n.setScale(),g(r,n);var a=n.range;i.range=a.slice(),i._input.range=a.slice(),n._rl=[n.r2l(a[0],null,"gregorian"),n.r2l(a[1],null,"gregorian")]},O.updateRadialAxis=function(t,e){var r=this,n=r.gd,i=r.layers,a=r.radius,u=r.innerRadius,f=r.cx,p=r.cy,d=e.radialaxis,g=L(e.sector[0],360),m=r.radialAxis,v=u90&&g<=270&&(m.tickangle=180);var y=function(t){return l(m.l2p(t.x)+u,0)},x=D(d);if(r.radialTickLayout!==x&&(i["radial-axis"].selectAll(".xtick").remove(),r.radialTickLayout=x),v){m.setScale();var b=h.calcTicks(m),_=h.clipEnds(m,b),w=h.getTickSigns(m)[2];h.drawTicks(n,m,{vals:b,layer:i["radial-axis"],path:h.makeTickPath(m,0,w),transFn:y,crisp:!1}),h.drawGrid(n,m,{vals:_,layer:i["radial-grid"],path:function(t){return r.pathArc(m.r2p(t.x)+u)},transFn:o.noop,crisp:!1}),h.drawLabels(n,m,{vals:b,layer:i["radial-axis"],transFn:y,labelFns:h.makeLabelFns(m,0)})}var T=r.radialAxisAngle=r.vangles?P(R(I(d.angle),r.vangles)):d.angle,k=l(f,p),M=k+s(-T);F(i["radial-axis"],v&&(d.showticklabels||d.ticks),{transform:M}),F(i["radial-grid"],v&&d.showgrid,{transform:k}),F(i["radial-line"].select("line"),v&&d.showline,{x1:u,y1:0,x2:a,y2:0,transform:M}).attr("stroke-width",d.linewidth).call(c.stroke,d.linecolor)},O.updateRadialAxisTitle=function(t,e,r){var n=this.gd,i=this.radius,a=this.cx,o=this.cy,s=e.radialaxis,l=this.id+"title",c=void 0!==r?r:this.radialAxisAngle,f=I(c),h=Math.cos(f),p=Math.sin(f),d=0;if(s.title){var g=u.bBox(this.layers["radial-axis"].node()).height,m=s.title.font.size;d="counterclockwise"===s.side?-g-.4*m:g+.8*m}this.layers["radial-axis-title"]=x.draw(n,l,{propContainer:s,propName:this.id+".radialaxis.title",placeholder:C(n,"Click to enter radial axis title"),attributes:{x:a+i/2*h+d*p,y:o-i/2*p+d*h,"text-anchor":"middle"},transform:{rotate:-c}})},O.updateAngularAxis=function(t,e){var r=this,n=r.gd,i=r.layers,a=r.radius,u=r.innerRadius,f=r.cx,p=r.cy,d=e.angularaxis,g=r.angularAxis;r.fillViewInitialKey("angularaxis.rotation",d.rotation),g.setGeometry(),g.setScale();var m=function(t){return g.t2g(t.x)};"linear"===g.type&&"radians"===g.thetaunit&&(g.tick0=P(g.tick0),g.dtick=P(g.dtick));var v=function(t){return l(f+a*Math.cos(t),p-a*Math.sin(t))},y=h.makeLabelFns(g,0).labelStandoff,x={xFn:function(t){var e=m(t);return Math.cos(e)*y},yFn:function(t){var e=m(t),r=Math.sin(e)>0?.2:1;return-Math.sin(e)*(y+t.fontSize*r)+Math.abs(Math.cos(e))*(t.fontSize*A)},anchorFn:function(t){var e=m(t),r=Math.cos(e);return Math.abs(r)<.1?"middle":r>0?"start":"end"},heightFn:function(t,e,r){var n=m(t);return-.5*(1+Math.sin(n))*r}},b=D(d);r.angularTickLayout!==b&&(i["angular-axis"].selectAll("."+g._id+"tick").remove(),r.angularTickLayout=b);var _,w=h.calcTicks(g);if("linear"===e.gridshape?(_=w.map(m),o.angleDelta(_[0],_[1])<0&&(_=_.slice().reverse())):_=null,r.vangles=_,"category"===g.type&&(w=w.filter((function(t){return o.isAngleInsideSector(m(t),r.sectorInRad)}))),g.visible){var T="inside"===g.ticks?-1:1,k=(g.linewidth||1)/2;h.drawTicks(n,g,{vals:w,layer:i["angular-axis"],path:"M"+T*k+",0h"+T*g.ticklen,transFn:function(t){var e=m(t);return v(e)+s(-P(e))},crisp:!1}),h.drawGrid(n,g,{vals:w,layer:i["angular-grid"],path:function(t){var e=m(t),r=Math.cos(e),n=Math.sin(e);return"M"+[f+u*r,p-u*n]+"L"+[f+a*r,p-a*n]},transFn:o.noop,crisp:!1}),h.drawLabels(n,g,{vals:w,layer:i["angular-axis"],repositionOnUpdate:!0,transFn:function(t){return v(m(t))},labelFns:x})}F(i["angular-line"].select("path"),d.showline,{d:r.pathSubplot(),transform:l(f,p)}).attr("stroke-width",d.linewidth).call(c.stroke,d.linecolor)},O.updateFx=function(t,e){this.gd._context.staticPlot||(this.updateAngularDrag(t),this.updateRadialDrag(t,e,0),this.updateRadialDrag(t,e,1),this.updateMainDrag(t))},O.updateMainDrag=function(t){var e,r,s=this,c=s.gd,u=s.layers,f=t._zoomlayer,h=S.MINZOOM,p=S.OFFEDGE,d=s.radius,g=s.innerRadius,x=s.cx,T=s.cy,k=s.cxx,M=s.cyy,A=s.sectorInRad,C=s.vangles,L=s.radialAxis,I=E.clampTiny,P=E.findXYatLength,z=E.findEnclosingVertexAngles,O=S.cornerHalfWidth,D=S.cornerLen/2,R=m.makeDragger(u,"path","maindrag","crosshair");n.select(R).attr("d",s.pathSubplot()).attr("transform",l(x,T));var F,B,N,j,U,V,q,H,G,Y={element:R,gd:c,subplot:s.id,plotinfo:{id:s.id,xaxis:s.xaxis,yaxis:s.yaxis},xaxes:[s.xaxis],yaxes:[s.yaxis]};function W(t,e){return Math.sqrt(t*t+e*e)}function X(t,e){return W(t-k,e-M)}function Z(t,e){return Math.atan2(M-e,t-k)}function J(t,e){return[t*Math.cos(e),t*Math.sin(-e)]}function K(t,e){if(0===t)return s.pathSector(2*O);var r=D/t,n=e-r,i=e+r,a=Math.max(0,Math.min(t,d)),o=a-O,l=a+O;return"M"+J(o,n)+"A"+[o,o]+" 0,0,0 "+J(o,i)+"L"+J(l,i)+"A"+[l,l]+" 0,0,1 "+J(l,n)+"Z"}function Q(t,e,r){if(0===t)return s.pathSector(2*O);var n,i,a=J(t,e),o=J(t,r),l=I((a[0]+o[0])/2),c=I((a[1]+o[1])/2);if(l&&c){var u=c/l,f=-1/u,h=P(O,u,l,c);n=P(D,f,h[0][0],h[0][1]),i=P(D,f,h[1][0],h[1][1])}else{var p,d;c?(p=D,d=O):(p=O,d=D),n=[[l-p,c-d],[l+p,c-d]],i=[[l-p,c+d],[l+p,c+d]]}return"M"+n.join("L")+"L"+i.reverse().join("L")+"Z"}function $(t,e){return e=Math.max(Math.min(e,d),g),th?(t-1&&1===t&&_(e,c,[s.xaxis],[s.yaxis],s.id,Y),r.indexOf("event")>-1&&y.click(c,e,s.id)}Y.prepFn=function(t,n,a){var l=c._fullLayout.dragmode,u=R.getBoundingClientRect();c._fullLayout._calcInverseTransform(c);var h=c._fullLayout._invTransform;e=c._fullLayout._invScaleX,r=c._fullLayout._invScaleY;var p=o.apply3DTransform(h)(n-u.left,a-u.top);if(F=p[0],B=p[1],C){var g=E.findPolygonOffset(d,A[0],A[1],C);F+=k+g[0],B+=M+g[1]}switch(l){case"zoom":Y.moveFn=C?nt:et,Y.clickFn=ot,Y.doneFn=it,function(){N=null,j=null,U=s.pathSubplot(),V=!1;var t=c._fullLayout[s.id];q=i(t.bgcolor).getLuminance(),(H=m.makeZoombox(f,q,x,T,U)).attr("fill-rule","evenodd"),G=m.makeCorners(f,x,T),w(c)}();break;case"select":case"lasso":b(t,n,a,Y,l)}},R.onmousemove=function(t){y.hover(c,t,s.id),c._fullLayout._lasthover=R,c._fullLayout._hoversubplot=s.id},R.onmouseout=function(t){c._dragging||v.unhover(c,t)},v.init(Y)},O.updateRadialDrag=function(t,e,r){var i=this,c=i.gd,u=i.layers,f=i.radius,h=i.innerRadius,p=i.cx,d=i.cy,g=i.radialAxis,y=S.radialDragBoxSize,x=y/2;if(g.visible){var b,_,T,A=I(i.radialAxisAngle),E=g._rl,C=E[0],L=E[1],z=E[r],O=.75*(E[1]-E[0])/(1-e.hole)/f;r?(b=p+(f+x)*Math.cos(A),_=d-(f+x)*Math.sin(A),T="radialdrag"):(b=p+(h-x)*Math.cos(A),_=d-(h-x)*Math.sin(A),T="radialdrag-inner");var D,B,N,j=m.makeRectDragger(u,T,"crosshair",-x,-x,y,y),U={element:j,gd:c};F(n.select(j),g.visible&&h0==(r?N>C:Nn?function(t){return t<=0}:function(t){return t>=0};t.c2g=function(r){var n=t.c2l(r)-e;return(s(n)?n:0)+o},t.g2c=function(r){return t.l2c(r+e-o)},t.g2p=function(t){return t*a},t.c2p=function(e){return t.g2p(t.c2g(e))}}}(t,e);break;case"angularaxis":!function(t,e){var r=t.type;if("linear"===r){var i=t.d2c,s=t.c2d;t.d2c=function(t,e){return function(t,e){return"degrees"===e?a(t):t}(i(t),e)},t.c2d=function(t,e){return s(function(t,e){return"degrees"===e?o(t):t}(t,e))}}t.makeCalcdata=function(e,i){var a,o,s=e[i],l=e._length,c=function(r){return t.d2c(r,e.thetaunit)};if(s){if(n.isTypedArray(s)&&"linear"===r){if(l===s.length)return s;if(s.subarray)return s.subarray(0,l)}for(a=new Array(l),o=0;o0){for(var n=[],i=0;i=u&&(p.min=0,g.min=0,m.min=0,t.aaxis&&delete t.aaxis.min,t.baxis&&delete t.baxis.min,t.caxis&&delete t.caxis.min)}function d(t,e,r,n){var i=f[e._name];function o(r,n){return a.coerce(t,e,i,r,n)}o("uirevision",n.uirevision),e.type="linear";var h=o("color"),p=h!==i.color.dflt?h:r.font.color,d=e._name.charAt(0).toUpperCase(),g="Component "+d,m=o("title.text",g);e._hovertitle=m===g?m:d,a.coerceFont(o,"title.font",{family:r.font.family,size:Math.round(1.2*r.font.size),color:p}),o("min"),c(t,e,o,"linear"),s(t,e,o,"linear",{}),l(t,e,o,{outerTicks:!0}),o("showticklabels")&&(a.coerceFont(o,"tickfont",{family:r.font.family,size:r.font.size,color:p}),o("tickangle"),o("tickformat")),u(t,e,o,{dfltColor:h,bgColor:r.bgColor,blend:60,showLine:!0,showGrid:!0,noZeroLine:!0,attributes:i}),o("hoverformat"),o("layer")}e.exports=function(t,e,r){o(t,e,r,{type:"ternary",attributes:f,handleDefaults:p,font:e.font,paper_bgcolor:e.paper_bgcolor})}},{"../../components/color":643,"../../lib":778,"../../plot_api/plot_template":817,"../cartesian/line_grid_defaults":844,"../cartesian/tick_label_defaults":849,"../cartesian/tick_mark_defaults":850,"../cartesian/tick_value_defaults":851,"../subplot_defaults":905,"./layout_attributes":908}],910:[function(t,e,r){"use strict";var n=t("d3"),i=t("tinycolor2"),a=t("../../registry"),o=t("../../lib"),s=o.strTranslate,l=o._,c=t("../../components/color"),u=t("../../components/drawing"),f=t("../cartesian/set_convert"),h=t("../../lib/extend").extendFlat,p=t("../plots"),d=t("../cartesian/axes"),g=t("../../components/dragelement"),m=t("../../components/fx"),v=t("../../components/dragelement/helpers"),y=v.freeMode,x=v.rectMode,b=t("../../components/titles"),_=t("../cartesian/select").prepSelect,w=t("../cartesian/select").selectOnClick,T=t("../cartesian/select").clearSelect,k=t("../cartesian/select").clearSelectionsCache,M=t("../cartesian/constants");function A(t,e){this.id=t.id,this.graphDiv=t.graphDiv,this.init(e),this.makeFramework(e),this.aTickLayout=null,this.bTickLayout=null,this.cTickLayout=null}e.exports=A;var S=A.prototype;S.init=function(t){this.container=t._ternarylayer,this.defs=t._defs,this.layoutId=t._uid,this.traceHash={},this.layers={}},S.plot=function(t,e){var r=e[this.id],n=e._size;this._hasClipOnAxisFalse=!1;for(var i=0;iE*b?i=(a=b)*E:a=(i=x)/E,o=v*i/x,l=y*a/b,r=e.l+e.w*g-i/2,n=e.t+e.h*(1-m)-a/2,p.x0=r,p.y0=n,p.w=i,p.h=a,p.sum=_,p.xaxis={type:"linear",range:[w+2*k-_,_-w-2*T],domain:[g-o/2,g+o/2],_id:"x"},f(p.xaxis,p.graphDiv._fullLayout),p.xaxis.setScale(),p.xaxis.isPtWithinRange=function(t){return t.a>=p.aaxis.range[0]&&t.a<=p.aaxis.range[1]&&t.b>=p.baxis.range[1]&&t.b<=p.baxis.range[0]&&t.c>=p.caxis.range[1]&&t.c<=p.caxis.range[0]},p.yaxis={type:"linear",range:[w,_-T-k],domain:[m-l/2,m+l/2],_id:"y"},f(p.yaxis,p.graphDiv._fullLayout),p.yaxis.setScale(),p.yaxis.isPtWithinRange=function(){return!0};var M=p.yaxis.domain[0],A=p.aaxis=h({},t.aaxis,{range:[w,_-T-k],side:"left",tickangle:(+t.aaxis.tickangle||0)-30,domain:[M,M+l*E],anchor:"free",position:0,_id:"y",_length:i});f(A,p.graphDiv._fullLayout),A.setScale();var S=p.baxis=h({},t.baxis,{range:[_-w-k,T],side:"bottom",domain:p.xaxis.domain,anchor:"free",position:0,_id:"x",_length:i});f(S,p.graphDiv._fullLayout),S.setScale();var C=p.caxis=h({},t.caxis,{range:[_-w-T,k],side:"right",tickangle:(+t.caxis.tickangle||0)+30,domain:[M,M+l*E],anchor:"free",position:0,_id:"y",_length:i});f(C,p.graphDiv._fullLayout),C.setScale();var L="M"+r+","+(n+a)+"h"+i+"l-"+i/2+",-"+a+"Z";p.clipDef.select("path").attr("d",L),p.layers.plotbg.select("path").attr("d",L);var I="M0,"+a+"h"+i+"l-"+i/2+",-"+a+"Z";p.clipDefRelative.select("path").attr("d",I);var P=s(r,n);p.plotContainer.selectAll(".scatterlayer,.maplayer").attr("transform",P),p.clipDefRelative.select("path").attr("transform",null);var z=s(r-S._offset,n+a);p.layers.baxis.attr("transform",z),p.layers.bgrid.attr("transform",z);var O=s(r+i/2,n)+"rotate(30)"+s(0,-A._offset);p.layers.aaxis.attr("transform",O),p.layers.agrid.attr("transform",O);var D=s(r+i/2,n)+"rotate(-30)"+s(0,-C._offset);p.layers.caxis.attr("transform",D),p.layers.cgrid.attr("transform",D),p.drawAxes(!0),p.layers.aline.select("path").attr("d",A.showline?"M"+r+","+(n+a)+"l"+i/2+",-"+a:"M0,0").call(c.stroke,A.linecolor||"#000").style("stroke-width",(A.linewidth||0)+"px"),p.layers.bline.select("path").attr("d",S.showline?"M"+r+","+(n+a)+"h"+i:"M0,0").call(c.stroke,S.linecolor||"#000").style("stroke-width",(S.linewidth||0)+"px"),p.layers.cline.select("path").attr("d",C.showline?"M"+(r+i/2)+","+n+"l"+i/2+","+a:"M0,0").call(c.stroke,C.linecolor||"#000").style("stroke-width",(C.linewidth||0)+"px"),p.graphDiv._context.staticPlot||p.initInteractions(),u.setClipUrl(p.layers.frontplot,p._hasClipOnAxisFalse?null:p.clipId,p.graphDiv)},S.drawAxes=function(t){var e=this.graphDiv,r=this.id.substr(7)+"title",n=this.layers,i=this.aaxis,a=this.baxis,o=this.caxis;if(this.drawAx(i),this.drawAx(a),this.drawAx(o),t){var s=Math.max(i.showticklabels?i.tickfont.size/2:0,(o.showticklabels?.75*o.tickfont.size:0)+("outside"===o.ticks?.87*o.ticklen:0)),c=(a.showticklabels?a.tickfont.size:0)+("outside"===a.ticks?a.ticklen:0)+3;n["a-title"]=b.draw(e,"a"+r,{propContainer:i,propName:this.id+".aaxis.title",placeholder:l(e,"Click to enter Component A title"),attributes:{x:this.x0+this.w/2,y:this.y0-i.title.font.size/3-s,"text-anchor":"middle"}}),n["b-title"]=b.draw(e,"b"+r,{propContainer:a,propName:this.id+".baxis.title",placeholder:l(e,"Click to enter Component B title"),attributes:{x:this.x0-c,y:this.y0+this.h+.83*a.title.font.size+c,"text-anchor":"middle"}}),n["c-title"]=b.draw(e,"c"+r,{propContainer:o,propName:this.id+".caxis.title",placeholder:l(e,"Click to enter Component C title"),attributes:{x:this.x0+this.w+c,y:this.y0+this.h+.83*o.title.font.size+c,"text-anchor":"middle"}})}},S.drawAx=function(t){var e,r=this.graphDiv,n=t._name,i=n.charAt(0),a=t._id,s=this.layers[n],l=i+"tickLayout",c=(e=t).ticks+String(e.ticklen)+String(e.showticklabels);this[l]!==c&&(s.selectAll("."+a+"tick").remove(),this[l]=c),t.setScale();var u=d.calcTicks(t),f=d.clipEnds(t,u),h=d.makeTransTickFn(t),p=d.getTickSigns(t)[2],g=o.deg2rad(30),m=p*(t.linewidth||1)/2,v=p*t.ticklen,y=this.w,x=this.h,b="b"===i?"M0,"+m+"l"+Math.sin(g)*v+","+Math.cos(g)*v:"M"+m+",0l"+Math.cos(g)*v+","+-Math.sin(g)*v,_={a:"M0,0l"+x+",-"+y/2,b:"M0,0l-"+y/2+",-"+x,c:"M0,0l-"+x+","+y/2}[i];d.drawTicks(r,t,{vals:"inside"===t.ticks?f:u,layer:s,path:b,transFn:h,crisp:!1}),d.drawGrid(r,t,{vals:f,layer:this.layers[i+"grid"],path:_,transFn:h,crisp:!1}),d.drawLabels(r,t,{vals:u,layer:s,transFn:h,labelFns:d.makeLabelFns(t,0,30)})};var C=M.MINZOOM/2+.87,L="m-0.87,.5h"+C+"v3h-"+(C+5.2)+"l"+(C/2+2.6)+",-"+(.87*C+4.5)+"l2.6,1.5l-"+C/2+","+.87*C+"Z",I="m0.87,.5h-"+C+"v3h"+(C+5.2)+"l-"+(C/2+2.6)+",-"+(.87*C+4.5)+"l-2.6,1.5l"+C/2+","+.87*C+"Z",P="m0,1l"+C/2+","+.87*C+"l2.6,-1.5l-"+(C/2+2.6)+",-"+(.87*C+4.5)+"l-"+(C/2+2.6)+","+(.87*C+4.5)+"l2.6,1.5l"+C/2+",-"+.87*C+"Z",z=!0;function O(t){n.select(t).selectAll(".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners").remove()}S.clearSelect=function(){k(this.dragOptions),T(this.dragOptions.gd)},S.initInteractions=function(){var t,e,r,n,f,h,p,d,v,b,T,k,A=this,S=A.layers.plotbg.select("path").node(),C=A.graphDiv,D=C._fullLayout._zoomlayer;function R(t){var e={};return e[A.id+".aaxis.min"]=t.a,e[A.id+".baxis.min"]=t.b,e[A.id+".caxis.min"]=t.c,e}function F(t,e){var r=C._fullLayout.clickmode;O(C),2===t&&(C.emit("plotly_doubleclick",null),a.call("_guiRelayout",C,R({a:0,b:0,c:0}))),r.indexOf("select")>-1&&1===t&&w(e,C,[A.xaxis],[A.yaxis],A.id,A.dragOptions),r.indexOf("event")>-1&&m.click(C,e,A.id)}function B(t,e){return 1-e/A.h}function N(t,e){return 1-(t+(A.h-e)/Math.sqrt(3))/A.w}function j(t,e){return(t-(A.h-e)/Math.sqrt(3))/A.w}function U(i,a){var o=r+i*t,s=n+a*e,l=Math.max(0,Math.min(1,B(0,n),B(0,s))),c=Math.max(0,Math.min(1,N(r,n),N(o,s))),u=Math.max(0,Math.min(1,j(r,n),j(o,s))),g=(l/2+u)*A.w,m=(1-l/2-c)*A.w,y=(g+m)/2,x=m-g,_=(1-l)*A.h,w=_-x/E;x.2?"rgba(0,0,0,0.4)":"rgba(255,255,255,0.3)").duration(200),k.transition().style("opacity",1).duration(200),b=!0),C.emit("plotly_relayouting",R(p))}function V(){O(C),p!==f&&(a.call("_guiRelayout",C,R(p)),z&&C.data&&C._context.showTips&&(o.notifier(l(C,"Double-click to zoom back out"),"long"),z=!1))}function q(t,e){var r=t/A.xaxis._m,n=e/A.yaxis._m,i=[(p={a:f.a-n,b:f.b+(r+n)/2,c:f.c-(r-n)/2}).a,p.b,p.c].sort(o.sorterAsc),a=i.indexOf(p.a),l=i.indexOf(p.b),c=i.indexOf(p.c);i[0]<0&&(i[1]+i[0]/2<0?(i[2]+=i[0]+i[1],i[0]=i[1]=0):(i[2]+=i[0]/2,i[1]+=i[0]/2,i[0]=0),p={a:i[a],b:i[l],c:i[c]},e=(f.a-p.a)*A.yaxis._m,t=(f.c-p.c-f.b+p.b)*A.xaxis._m);var h=s(A.x0+t,A.y0+e);A.plotContainer.selectAll(".scatterlayer,.maplayer").attr("transform",h);var d=s(-t,-e);A.clipDefRelative.select("path").attr("transform",d),A.aaxis.range=[p.a,A.sum-p.b-p.c],A.baxis.range=[A.sum-p.a-p.c,p.b],A.caxis.range=[A.sum-p.a-p.b,p.c],A.drawAxes(!1),A._hasClipOnAxisFalse&&A.plotContainer.select(".scatterlayer").selectAll(".trace").call(u.hideOutsideRangePoints,A),C.emit("plotly_relayouting",R(p))}function H(){a.call("_guiRelayout",C,R(p))}this.dragOptions={element:S,gd:C,plotinfo:{id:A.id,domain:C._fullLayout[A.id].domain,xaxis:A.xaxis,yaxis:A.yaxis},subplot:A.id,prepFn:function(a,l,u){A.dragOptions.xaxes=[A.xaxis],A.dragOptions.yaxes=[A.yaxis],t=C._fullLayout._invScaleX,e=C._fullLayout._invScaleY;var g=A.dragOptions.dragmode=C._fullLayout.dragmode;y(g)?A.dragOptions.minDrag=1:A.dragOptions.minDrag=void 0,"zoom"===g?(A.dragOptions.moveFn=U,A.dragOptions.clickFn=F,A.dragOptions.doneFn=V,function(t,e,a){var l=S.getBoundingClientRect();r=e-l.left,n=a-l.top,C._fullLayout._calcInverseTransform(C);var u=C._fullLayout._invTransform,g=o.apply3DTransform(u)(r,n);r=g[0],n=g[1],f={a:A.aaxis.range[0],b:A.baxis.range[1],c:A.caxis.range[1]},p=f,h=A.aaxis.range[1]-f.a,d=i(A.graphDiv._fullLayout[A.id].bgcolor).getLuminance(),v="M0,"+A.h+"L"+A.w/2+", 0L"+A.w+","+A.h+"Z",b=!1,T=D.append("path").attr("class","zoombox").attr("transform",s(A.x0,A.y0)).style({fill:d>.2?"rgba(0,0,0,0)":"rgba(255,255,255,0)","stroke-width":0}).attr("d",v),k=D.append("path").attr("class","zoombox-corners").attr("transform",s(A.x0,A.y0)).style({fill:c.background,stroke:c.defaultLine,"stroke-width":1,opacity:0}).attr("d","M0,0Z"),A.clearSelect(C)}(0,l,u)):"pan"===g?(A.dragOptions.moveFn=q,A.dragOptions.clickFn=F,A.dragOptions.doneFn=H,f={a:A.aaxis.range[0],b:A.baxis.range[1],c:A.caxis.range[1]},p=f,A.clearSelect(C)):(x(g)||y(g))&&_(a,l,u,A.dragOptions,g)}},S.onmousemove=function(t){m.hover(C,t,A.id),C._fullLayout._lasthover=S,C._fullLayout._hoversubplot=A.id},S.onmouseout=function(t){C._dragging||g.unhover(C,t)},g.init(this.dragOptions)}},{"../../components/color":643,"../../components/dragelement":662,"../../components/dragelement/helpers":661,"../../components/drawing":665,"../../components/fx":683,"../../components/titles":738,"../../lib":778,"../../lib/extend":768,"../../registry":911,"../cartesian/axes":828,"../cartesian/constants":834,"../cartesian/select":847,"../cartesian/set_convert":848,"../plots":891,d3:169,tinycolor2:576}],911:[function(t,e,r){"use strict";var n=t("./lib/loggers"),i=t("./lib/noop"),a=t("./lib/push_unique"),o=t("./lib/is_plain_object"),s=t("./lib/dom").addStyleRule,l=t("./lib/extend"),c=t("./plots/attributes"),u=t("./plots/layout_attributes"),f=l.extendFlat,h=l.extendDeepAll;function p(t){var e=t.name,i=t.categories,a=t.meta;if(r.modules[e])n.log("Type "+e+" already registered");else{r.subplotsRegistry[t.basePlotModule.name]||function(t){var e=t.name;if(r.subplotsRegistry[e])return void n.log("Plot type "+e+" already registered.");for(var i in v(t),r.subplotsRegistry[e]=t,r.componentsRegistry)b(i,t.name)}(t.basePlotModule);for(var o={},l=0;l-1&&(f[p[r]].title={text:""});for(r=0;r")?"":e.html(t).text()}));return e.remove(),r}(T),T=(T=T.replace(/&(?!\w+;|\#[0-9]+;| \#x[0-9A-F]+;)/g,"&")).replace(c,"'"),i.isIE()&&(T=(T=(T=T.replace(/"/gi,"'")).replace(/(\('#)([^']*)('\))/gi,'("#$2")')).replace(/(\\')/gi,'"')),T}},{"../components/color":643,"../components/drawing":665,"../constants/xmlns_namespaces":754,"../lib":778,d3:169}],920:[function(t,e,r){"use strict";var n=t("../../lib");e.exports=function(t,e){for(var r=0;rf+c||!n(u))}for(var p=0;pa))return e}return void 0!==r?r:t.dflt},r.coerceColor=function(t,e,r){return i(e).isValid()?e:void 0!==r?r:t.dflt},r.coerceEnumerated=function(t,e,r){return t.coerceNumber&&(e=+e),-1!==t.values.indexOf(e)?e:void 0!==r?r:t.dflt},r.getValue=function(t,e){var r;return Array.isArray(t)?e0?i+=a:e<0&&(i-=a)}return n.inbox(r-e,i-e,b+(i-e)/(i-r)-1)}"h"===m.orientation?(a=r,s=e,u="y",f="x",h=S,p=A):(a=e,s=r,u="x",f="y",p=S,h=A);var E=t[u+"a"],C=t[f+"a"];d=Math.abs(E.r2c(E.range[1])-E.r2c(E.range[0]));var L=n.getDistanceFunction(i,h,p,(function(t){return(h(t)+p(t))/2}));if(n.getClosest(g,L,t),!1!==t.index&&g[t.index].p!==c){y||(T=function(t){return Math.min(_(t),t.p-v.bargroupwidth/2)},k=function(t){return Math.max(w(t),t.p+v.bargroupwidth/2)});var I=g[t.index],P=m.base?I.b+I.s:I.s;t[f+"0"]=t[f+"1"]=C.c2p(I[f],!0),t[f+"LabelVal"]=P;var z=v.extents[v.extents.round(I.p)];t[u+"0"]=E.c2p(y?T(I):z[0],!0),t[u+"1"]=E.c2p(y?k(I):z[1],!0);var O=void 0!==I.orig_p;return t[u+"LabelVal"]=O?I.orig_p:I.p,t.labelLabel=l(E,t[u+"LabelVal"]),t.valueLabel=l(C,t[f+"LabelVal"]),t.baseLabel=l(C,I.b),t.spikeDistance=(S(I)+function(t){return M(_(t),w(t))}(I))/2-b,t[u+"Spike"]=E.c2p(I.p,!0),o(I,m,t),t.hovertemplate=m.hovertemplate,t}}function f(t,e){var r=e.mcc||t.marker.color,n=e.mlcc||t.marker.line.color,i=s(t,e);return a.opacity(r)?r:a.opacity(n)&&i?n:void 0}e.exports={hoverPoints:function(t,e,r,n){var a=u(t,e,r,n);if(a){var o=a.cd,s=o[0].trace,l=o[a.index];return a.color=f(s,l),i.getComponentMethod("errorbars","hoverInfo")(l,s,a),[a]}},hoverOnBars:u,getTraceColor:f}},{"../../components/color":643,"../../components/fx":683,"../../constants/numerical":753,"../../lib":778,"../../plots/cartesian/axes":828,"../../registry":911,"./helpers":927}],929:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),layoutAttributes:t("./layout_attributes"),supplyDefaults:t("./defaults").supplyDefaults,crossTraceDefaults:t("./defaults").crossTraceDefaults,supplyLayoutDefaults:t("./layout_defaults"),calc:t("./calc"),crossTraceCalc:t("./cross_trace_calc").crossTraceCalc,colorbar:t("../scatter/marker_colorbar"),arraysToCalcdata:t("./arrays_to_calcdata"),plot:t("./plot").plot,style:t("./style").style,styleOnSelect:t("./style").styleOnSelect,hoverPoints:t("./hover").hoverPoints,eventData:t("./event_data"),selectPoints:t("./select"),moduleType:"trace",name:"bar",basePlotModule:t("../../plots/cartesian"),categories:["bar-like","cartesian","svg","bar","oriented","errorBarsOK","showLegend","zoomScale"],animatable:!0,meta:{}}},{"../../plots/cartesian":841,"../scatter/marker_colorbar":1205,"./arrays_to_calcdata":920,"./attributes":921,"./calc":922,"./cross_trace_calc":924,"./defaults":925,"./event_data":926,"./hover":928,"./layout_attributes":930,"./layout_defaults":931,"./plot":932,"./select":933,"./style":935}],930:[function(t,e,r){"use strict";e.exports={barmode:{valType:"enumerated",values:["stack","group","overlay","relative"],dflt:"group",editType:"calc"},barnorm:{valType:"enumerated",values:["","fraction","percent"],dflt:"",editType:"calc"},bargap:{valType:"number",min:0,max:1,editType:"calc"},bargroupgap:{valType:"number",min:0,max:1,dflt:0,editType:"calc"}}},{}],931:[function(t,e,r){"use strict";var n=t("../../registry"),i=t("../../plots/cartesian/axes"),a=t("../../lib"),o=t("./layout_attributes");e.exports=function(t,e,r){function s(r,n){return a.coerce(t,e,o,r,n)}for(var l=!1,c=!1,u=!1,f={},h=s("barmode"),p=0;p0}function S(t){return"auto"===t?0:t}function E(t,e){var r=Math.PI/180*e,n=Math.abs(Math.sin(r)),i=Math.abs(Math.cos(r));return{x:t.width*i+t.height*n,y:t.width*n+t.height*i}}function C(t,e,r,n,i,a){var o=!!a.isHorizontal,s=!!a.constrained,l=a.angle||0,c=a.anchor||"end",u="end"===c,f="start"===c,h=((a.leftToRight||0)+1)/2,p=1-h,d=i.width,g=i.height,m=Math.abs(e-t),v=Math.abs(n-r),y=m>2*_&&v>2*_?_:0;m-=2*y,v-=2*y;var x=S(l);"auto"!==l||d<=m&&g<=v||!(d>m||g>v)||(d>v||g>m)&&d.01?H:function(t,e,r){return r&&t===e?t:Math.abs(t-e)>=2?H(t):t>e?Math.ceil(t):Math.floor(t)};B=G(B,N,D),N=G(N,B,D),j=G(j,U,!D),U=G(U,j,!D)}var Y=M(a.ensureSingle(P,"path"),I,m,v);if(Y.style("vector-effect","non-scaling-stroke").attr("d",isNaN((N-B)*(U-j))||V&&t._context.staticPlot?"M0,0Z":"M"+B+","+j+"V"+U+"H"+N+"V"+j+"Z").call(l.setClipUrl,e.layerClipId,t),!I.uniformtext.mode&&R){var W=l.makePointStyleFns(f);l.singlePointStyle(c,Y,f,W,t)}!function(t,e,r,n,i,s,c,f,p,m,v){var w,T=e.xaxis,A=e.yaxis,L=t._fullLayout;function I(e,r,n){return a.ensureSingle(e,"text").text(r).attr({class:"bartext bartext-"+w,"text-anchor":"middle","data-notex":1}).call(l.font,n).call(o.convertToTspans,t)}var P=n[0].trace,z="h"===P.orientation,O=function(t,e,r,n,i){var o,s=e[0].trace;o=s.texttemplate?function(t,e,r,n,i){var o=e[0].trace,s=a.castOption(o,r,"texttemplate");if(!s)return"";var l,c,f,h,p="waterfall"===o.type,d="funnel"===o.type;"h"===o.orientation?(l="y",c=i,f="x",h=n):(l="x",c=n,f="y",h=i);function g(t){return u(h,+t,!0).text}var m=e[r],v={};v.label=m.p,v.labelLabel=v[l+"Label"]=(y=m.p,u(c,y,!0).text);var y;var x=a.castOption(o,m.i,"text");(0===x||x)&&(v.text=x);v.value=m.s,v.valueLabel=v[f+"Label"]=g(m.s);var _={};b(_,o,m.i),p&&(v.delta=+m.rawS||m.s,v.deltaLabel=g(v.delta),v.final=m.v,v.finalLabel=g(v.final),v.initial=v.final-v.delta,v.initialLabel=g(v.initial));d&&(v.value=m.s,v.valueLabel=g(v.value),v.percentInitial=m.begR,v.percentInitialLabel=a.formatPercent(m.begR),v.percentPrevious=m.difR,v.percentPreviousLabel=a.formatPercent(m.difR),v.percentTotal=m.sumR,v.percenTotalLabel=a.formatPercent(m.sumR));var w=a.castOption(o,m.i,"customdata");w&&(v.customdata=w);return a.texttemplateString(s,v,t._d3locale,_,v,o._meta||{})}(t,e,r,n,i):s.textinfo?function(t,e,r,n){var i=t[0].trace,o="h"===i.orientation,s="waterfall"===i.type,l="funnel"===i.type;function c(t){return u(o?r:n,+t,!0).text}var f,h=i.textinfo,p=t[e],d=h.split("+"),g=[],m=function(t){return-1!==d.indexOf(t)};m("label")&&g.push((v=t[e].p,u(o?n:r,v,!0).text));var v;m("text")&&(0===(f=a.castOption(i,p.i,"text"))||f)&&g.push(f);if(s){var y=+p.rawS||p.s,x=p.v,b=x-y;m("initial")&&g.push(c(b)),m("delta")&&g.push(c(y)),m("final")&&g.push(c(x))}if(l){m("value")&&g.push(c(p.s));var _=0;m("percent initial")&&_++,m("percent previous")&&_++,m("percent total")&&_++;var w=_>1;m("percent initial")&&(f=a.formatPercent(p.begR),w&&(f+=" of initial"),g.push(f)),m("percent previous")&&(f=a.formatPercent(p.difR),w&&(f+=" of previous"),g.push(f)),m("percent total")&&(f=a.formatPercent(p.sumR),w&&(f+=" of total"),g.push(f))}return g.join("
    ")}(e,r,n,i):g.getValue(s.text,r);return g.coerceString(y,o)}(L,n,i,T,A);w=function(t,e){var r=g.getValue(t.textposition,e);return g.coerceEnumerated(x,r)}(P,i);var D="stack"===m.mode||"relative"===m.mode,R=n[i],F=!D||R._outmost;if(!O||"none"===w||(R.isBlank||s===c||f===p)&&("auto"===w||"inside"===w))return void r.select("text").remove();var B=L.font,N=d.getBarColor(n[i],P),j=d.getInsideTextFont(P,i,B,N),U=d.getOutsideTextFont(P,i,B),V=r.datum();z?"log"===T.type&&V.s0<=0&&(s=T.range[0]=G*(Z/Y):Z>=Y*(X/G);G>0&&Y>0&&(J||K||Q)?w="inside":(w="outside",q.remove(),q=null)}else w="inside";if(!q){W=a.ensureUniformFontSize(t,"outside"===w?U:j);var $=(q=I(r,O,W)).attr("transform");if(q.attr("transform",""),H=l.bBox(q.node()),G=H.width,Y=H.height,q.attr("transform",$),G<=0||Y<=0)return void q.remove()}var tt,et,rt=P.textangle;"outside"===w?(et="both"===P.constraintext||"outside"===P.constraintext,tt=function(t,e,r,n,i,a){var o,s=!!a.isHorizontal,l=!!a.constrained,c=a.angle||0,u=i.width,f=i.height,h=Math.abs(e-t),p=Math.abs(n-r);o=s?p>2*_?_:0:h>2*_?_:0;var d=1;l&&(d=s?Math.min(1,p/f):Math.min(1,h/u));var g=S(c),m=E(i,g),v=(s?m.x:m.y)/2,y=(i.left+i.right)/2,x=(i.top+i.bottom)/2,b=(t+e)/2,w=(r+n)/2,T=0,M=0,A=s?k(e,t):k(r,n);s?(b=e-A*o,T=A*v):(w=n+A*o,M=-A*v);return{textX:y,textY:x,targetX:b,targetY:w,anchorX:T,anchorY:M,scale:d,rotate:g}}(s,c,f,p,H,{isHorizontal:z,constrained:et,angle:rt})):(et="both"===P.constraintext||"inside"===P.constraintext,tt=C(s,c,f,p,H,{isHorizontal:z,constrained:et,angle:rt,anchor:P.insidetextanchor}));tt.fontSize=W.size,h(P.type,tt,L),R.transform=tt,M(q,L,m,v).attr("transform",a.getTextTransform(tt))}(t,e,P,r,p,B,N,j,U,m,v),e.layerClipId&&l.hideOutsideRangePoint(c,P.select("text"),w,L,f.xcalendar,f.ycalendar)}));var j=!1===f.cliponaxis;l.setClipUrl(c,j?null:e.layerClipId,t)}));c.getComponentMethod("errorbars","plot")(t,P,e,m)},toMoveInsideBar:C}},{"../../components/color":643,"../../components/drawing":665,"../../components/fx/helpers":679,"../../lib":778,"../../lib/svg_text_utils":803,"../../plots/cartesian/axes":828,"../../registry":911,"./attributes":921,"./constants":923,"./helpers":927,"./style":935,"./uniform_text":937,d3:169,"fast-isnumeric":241}],933:[function(t,e,r){"use strict";function n(t,e,r,n,i){var a=e.c2p(n?t.s0:t.p0,!0),o=e.c2p(n?t.s1:t.p1,!0),s=r.c2p(n?t.p0:t.s0,!0),l=r.c2p(n?t.p1:t.s1,!0);return i?[(a+o)/2,(s+l)/2]:n?[o,(s+l)/2]:[(a+o)/2,l]}e.exports=function(t,e){var r,i=t.cd,a=t.xaxis,o=t.yaxis,s=i[0].trace,l="funnel"===s.type,c="h"===s.orientation,u=[];if(!1===e)for(r=0;r1||0===i.bargap&&0===i.bargroupgap&&!t[0].trace.marker.line.width)&&n.select(this).attr("shape-rendering","crispEdges")})),e.selectAll("g.points").each((function(e){d(n.select(this),e[0].trace,t)})),s.getComponentMethod("errorbars","style")(e)},styleTextPoints:g,styleOnSelect:function(t,e,r){var i=e[0].trace;i.selectedpoints?function(t,e,r){a.selectedPointStyle(t.selectAll("path"),e),function(t,e,r){t.each((function(t){var i,s=n.select(this);if(t.selected){i=o.ensureUniformFontSize(r,m(s,t,e,r));var l=e.selected.textfont&&e.selected.textfont.color;l&&(i.color=l),a.font(s,i)}else a.selectedTextStyle(s,e)}))}(t.selectAll("text"),e,r)}(r,i,t):(d(r,i,t),s.getComponentMethod("errorbars","style")(r))},getInsideTextFont:y,getOutsideTextFont:x,getBarColor:_,resizeText:l}},{"../../components/color":643,"../../components/drawing":665,"../../lib":778,"../../registry":911,"./attributes":921,"./helpers":927,"./uniform_text":937,d3:169}],936:[function(t,e,r){"use strict";var n=t("../../components/color"),i=t("../../components/colorscale/helpers").hasColorscale,a=t("../../components/colorscale/defaults");e.exports=function(t,e,r,o,s){r("marker.color",o),i(t,"marker")&&a(t,e,s,r,{prefix:"marker.",cLetter:"c"}),r("marker.line.color",n.defaultLine),i(t,"marker.line")&&a(t,e,s,r,{prefix:"marker.line.",cLetter:"c"}),r("marker.line.width"),r("marker.opacity"),r("selected.marker.color"),r("unselected.marker.color")}},{"../../components/color":643,"../../components/colorscale/defaults":653,"../../components/colorscale/helpers":654}],937:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../lib");function a(t){return"_"+t+"Text_minsize"}e.exports={recordMinTextSize:function(t,e,r){if(r.uniformtext.mode){var n=a(t),i=r.uniformtext.minsize,o=e.scale*e.fontSize;e.hide=oh.range[1]&&(x+=Math.PI);if(n.getClosest(c,(function(t){return g(y,x,[t.rp0,t.rp1],[t.thetag0,t.thetag1],d)?m+Math.min(1,Math.abs(t.thetag1-t.thetag0)/v)-1+(t.rp1-y)/(t.rp1-t.rp0)-1:1/0}),t),!1!==t.index){var b=c[t.index];t.x0=t.x1=b.ct[0],t.y0=t.y1=b.ct[1];var _=i.extendFlat({},b,{r:b.s,theta:b.p});return o(b,u,t),s(_,u,f,t),t.hovertemplate=u.hovertemplate,t.color=a(u,b),t.xLabelVal=t.yLabelVal=void 0,b.s<0&&(t.idealAlign="left"),[t]}}},{"../../components/fx":683,"../../lib":778,"../../plots/polar/helpers":893,"../bar/hover":928,"../scatterpolar/hover":1265}],942:[function(t,e,r){"use strict";e.exports={moduleType:"trace",name:"barpolar",basePlotModule:t("../../plots/polar"),categories:["polar","bar","showLegend"],attributes:t("./attributes"),layoutAttributes:t("./layout_attributes"),supplyDefaults:t("./defaults"),supplyLayoutDefaults:t("./layout_defaults"),calc:t("./calc").calc,crossTraceCalc:t("./calc").crossTraceCalc,plot:t("./plot"),colorbar:t("../scatter/marker_colorbar"),formatLabels:t("../scatterpolar/format_labels"),style:t("../bar/style").style,styleOnSelect:t("../bar/style").styleOnSelect,hoverPoints:t("./hover"),selectPoints:t("../bar/select"),meta:{}}},{"../../plots/polar":894,"../bar/select":933,"../bar/style":935,"../scatter/marker_colorbar":1205,"../scatterpolar/format_labels":1264,"./attributes":938,"./calc":939,"./defaults":940,"./hover":941,"./layout_attributes":943,"./layout_defaults":944,"./plot":945}],943:[function(t,e,r){"use strict";e.exports={barmode:{valType:"enumerated",values:["stack","overlay"],dflt:"stack",editType:"calc"},bargap:{valType:"number",dflt:.1,min:0,max:1,editType:"calc"}}},{}],944:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./layout_attributes");e.exports=function(t,e,r){var a,o={};function s(r,o){return n.coerce(t[a]||{},e[a],i,r,o)}for(var l=0;l0?(c=o,u=l):(c=l,u=o);var f=[s.findEnclosingVertexAngles(c,t.vangles)[0],(c+u)/2,s.findEnclosingVertexAngles(u,t.vangles)[1]];return s.pathPolygonAnnulus(n,i,c,u,f,e,r)};return function(t,n,i,o){return a.pathAnnulus(t,n,i,o,e,r)}}(e),p=e.layers.frontplot.select("g.barlayer");a.makeTraceGroups(p,r,"trace bars").each((function(){var r=n.select(this),s=a.ensureSingle(r,"g","points").selectAll("g.point").data(a.identity);s.enter().append("g").style("vector-effect","non-scaling-stroke").style("stroke-miterlimit",2).classed("point",!0),s.exit().remove(),s.each((function(t){var e,r=n.select(this),o=t.rp0=u.c2p(t.s0),s=t.rp1=u.c2p(t.s1),p=t.thetag0=f.c2g(t.p0),d=t.thetag1=f.c2g(t.p1);if(i(o)&&i(s)&&i(p)&&i(d)&&o!==s&&p!==d){var g=u.c2g(t.s1),m=(p+d)/2;t.ct=[l.c2p(g*Math.cos(m)),c.c2p(g*Math.sin(m))],e=h(o,s,p,d)}else e="M0,0Z";a.ensureSingle(r,"path").attr("d",e)})),o.setClipUrl(r,e._hasClipOnAxisFalse?e.clipIds.forTraces:null,t)}))}},{"../../components/drawing":665,"../../lib":778,"../../plots/polar/helpers":893,d3:169,"fast-isnumeric":241}],946:[function(t,e,r){"use strict";var n=t("../scatter/attributes"),i=t("../bar/attributes"),a=t("../../components/color/attributes"),o=t("../../plots/template_attributes").hovertemplateAttrs,s=t("../../lib/extend").extendFlat,l=n.marker,c=l.line;e.exports={y:{valType:"data_array",editType:"calc+clearAxisTypes"},x:{valType:"data_array",editType:"calc+clearAxisTypes"},x0:{valType:"any",editType:"calc+clearAxisTypes"},y0:{valType:"any",editType:"calc+clearAxisTypes"},dx:{valType:"number",editType:"calc"},dy:{valType:"number",editType:"calc"},xperiod:n.xperiod,yperiod:n.yperiod,xperiod0:n.xperiod0,yperiod0:n.yperiod0,xperiodalignment:n.xperiodalignment,yperiodalignment:n.yperiodalignment,name:{valType:"string",editType:"calc+clearAxisTypes"},q1:{valType:"data_array",editType:"calc+clearAxisTypes"},median:{valType:"data_array",editType:"calc+clearAxisTypes"},q3:{valType:"data_array",editType:"calc+clearAxisTypes"},lowerfence:{valType:"data_array",editType:"calc"},upperfence:{valType:"data_array",editType:"calc"},notched:{valType:"boolean",editType:"calc"},notchwidth:{valType:"number",min:0,max:.5,dflt:.25,editType:"calc"},notchspan:{valType:"data_array",editType:"calc"},boxpoints:{valType:"enumerated",values:["all","outliers","suspectedoutliers",!1],editType:"calc"},jitter:{valType:"number",min:0,max:1,editType:"calc"},pointpos:{valType:"number",min:-2,max:2,editType:"calc"},boxmean:{valType:"enumerated",values:[!0,"sd",!1],editType:"calc"},mean:{valType:"data_array",editType:"calc"},sd:{valType:"data_array",editType:"calc"},orientation:{valType:"enumerated",values:["v","h"],editType:"calc+clearAxisTypes"},quartilemethod:{valType:"enumerated",values:["linear","exclusive","inclusive"],dflt:"linear",editType:"calc"},width:{valType:"number",min:0,dflt:0,editType:"calc"},marker:{outliercolor:{valType:"color",dflt:"rgba(0, 0, 0, 0)",editType:"style"},symbol:s({},l.symbol,{arrayOk:!1,editType:"plot"}),opacity:s({},l.opacity,{arrayOk:!1,dflt:1,editType:"style"}),size:s({},l.size,{arrayOk:!1,editType:"calc"}),color:s({},l.color,{arrayOk:!1,editType:"style"}),line:{color:s({},c.color,{arrayOk:!1,dflt:a.defaultLine,editType:"style"}),width:s({},c.width,{arrayOk:!1,dflt:0,editType:"style"}),outliercolor:{valType:"color",editType:"style"},outlierwidth:{valType:"number",min:0,dflt:1,editType:"style"},editType:"style"},editType:"plot"},line:{color:{valType:"color",editType:"style"},width:{valType:"number",min:0,dflt:2,editType:"style"},editType:"plot"},fillcolor:n.fillcolor,whiskerwidth:{valType:"number",min:0,max:1,dflt:.5,editType:"calc"},offsetgroup:i.offsetgroup,alignmentgroup:i.alignmentgroup,selected:{marker:n.selected.marker,editType:"style"},unselected:{marker:n.unselected.marker,editType:"style"},text:s({},n.text,{}),hovertext:s({},n.hovertext,{}),hovertemplate:o({}),hoveron:{valType:"flaglist",flags:["boxes","points"],dflt:"boxes+points",editType:"style"}}},{"../../components/color/attributes":642,"../../lib/extend":768,"../../plots/template_attributes":906,"../bar/attributes":921,"../scatter/attributes":1187}],947:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("../../plots/cartesian/axes"),a=t("../../plots/cartesian/align_period"),o=t("../../lib"),s=t("../../constants/numerical").BADNUM,l=o._;e.exports=function(t,e){var r,c,y,x,b,_,w,T=t._fullLayout,k=i.getFromId(t,e.xaxis||"x"),M=i.getFromId(t,e.yaxis||"y"),A=[],S="violin"===e.type?"_numViolins":"_numBoxes";"h"===e.orientation?(y=k,x="x",b=M,_="y",w=!!e.yperiodalignment):(y=M,x="y",b=k,_="x",w=!!e.xperiodalignment);var E,C,L,I,P,z,O=function(t,e,r,i){var s,l=e+"0"in t,c="d"+e in t;if(e in t||l&&c){var u=r.makeCalcdata(t,e);return[a(t,r,e,u),u]}s=l?t[e+"0"]:"name"in t&&("category"===r.type||n(t.name)&&-1!==["linear","log"].indexOf(r.type)||o.isDateTime(t.name)&&"date"===r.type)?t.name:i;for(var f="multicategory"===r.type?r.r2c_just_indices(s):r.d2c(s,0,t[e+"calendar"]),h=t._length,p=new Array(h),d=0;dE.uf};if(e._hasPreCompStats){var U=e[x],V=function(t){return y.d2c((e[t]||[])[r])},q=1/0,H=-1/0;for(r=0;r=E.q1&&E.q3>=E.med){var Y=V("lowerfence");E.lf=Y!==s&&Y<=E.q1?Y:p(E,L,I);var W=V("upperfence");E.uf=W!==s&&W>=E.q3?W:d(E,L,I);var X=V("mean");E.mean=X!==s?X:I?o.mean(L,I):(E.q1+E.q3)/2;var Z=V("sd");E.sd=X!==s&&Z>=0?Z:I?o.stdev(L,I,E.mean):E.q3-E.q1,E.lo=g(E),E.uo=m(E);var J=V("notchspan");J=J!==s&&J>0?J:v(E,I),E.ln=E.med-J,E.un=E.med+J;var K=E.lf,Q=E.uf;e.boxpoints&&L.length&&(K=Math.min(K,L[0]),Q=Math.max(Q,L[I-1])),e.notched&&(K=Math.min(K,E.ln),Q=Math.max(Q,E.un)),E.min=K,E.max=Q}else{var $;o.warn(["Invalid input - make sure that q1 <= median <= q3","q1 = "+E.q1,"median = "+E.med,"q3 = "+E.q3].join("\n")),$=E.med!==s?E.med:E.q1!==s?E.q3!==s?(E.q1+E.q3)/2:E.q1:E.q3!==s?E.q3:0,E.med=$,E.q1=E.q3=$,E.lf=E.uf=$,E.mean=E.sd=$,E.ln=E.un=$,E.min=E.max=$}q=Math.min(q,E.min),H=Math.max(H,E.max),E.pts2=C.filter(j),A.push(E)}}e._extremes[y._id]=i.findExtremes(y,[q,H],{padded:!0})}else{var tt=y.makeCalcdata(e,x),et=function(t,e){for(var r=t.length,n=new Array(r+1),i=0;i=0&&it0){var ut,ft;if((E={}).pos=E[_]=B[r],C=E.pts=nt[r].sort(f),I=(L=E[x]=C.map(h)).length,E.min=L[0],E.max=L[I-1],E.mean=o.mean(L,I),E.sd=o.stdev(L,I,E.mean),E.med=o.interp(L,.5),I%2&&(lt||ct))lt?(ut=L.slice(0,I/2),ft=L.slice(I/2+1)):ct&&(ut=L.slice(0,I/2+1),ft=L.slice(I/2)),E.q1=o.interp(ut,.5),E.q3=o.interp(ft,.5);else E.q1=o.interp(L,.25),E.q3=o.interp(L,.75);E.lf=p(E,L,I),E.uf=d(E,L,I),E.lo=g(E),E.uo=m(E);var ht=v(E,I);E.ln=E.med-ht,E.un=E.med+ht,at=Math.min(at,E.ln),ot=Math.max(ot,E.un),E.pts2=C.filter(j),A.push(E)}e._extremes[y._id]=i.findExtremes(y,e.notched?tt.concat([at,ot]):tt,{padded:!0})}return function(t,e){if(o.isArrayOrTypedArray(e.selectedpoints))for(var r=0;r0?(A[0].t={num:T[S],dPos:N,posLetter:_,valLetter:x,labels:{med:l(t,"median:"),min:l(t,"min:"),q1:l(t,"q1:"),q3:l(t,"q3:"),max:l(t,"max:"),mean:"sd"===e.boxmean?l(t,"mean \xb1 \u03c3:"):l(t,"mean:"),lf:l(t,"lower fence:"),uf:l(t,"upper fence:")}},T[S]++,A):[{t:{empty:!0}}]};var c={text:"tx",hovertext:"htx"};function u(t,e,r){for(var n in c)o.isArrayOrTypedArray(e[n])&&(Array.isArray(r)?o.isArrayOrTypedArray(e[n][r[0]])&&(t[c[n]]=e[n][r[0]][r[1]]):t[c[n]]=e[n][r])}function f(t,e){return t.v-e.v}function h(t){return t.v}function p(t,e,r){return 0===r?t.q1:Math.min(t.q1,e[Math.min(o.findBin(2.5*t.q1-1.5*t.q3,e,!0)+1,r-1)])}function d(t,e,r){return 0===r?t.q3:Math.max(t.q3,e[Math.max(o.findBin(2.5*t.q3-1.5*t.q1,e),0)])}function g(t){return 4*t.q1-3*t.q3}function m(t){return 4*t.q3-3*t.q1}function v(t,e){return 0===e?0:1.57*(t.q3-t.q1)/Math.sqrt(e)}},{"../../constants/numerical":753,"../../lib":778,"../../plots/cartesian/align_period":825,"../../plots/cartesian/axes":828,"fast-isnumeric":241}],948:[function(t,e,r){"use strict";var n=t("../../plots/cartesian/axes"),i=t("../../lib"),a=t("../../plots/cartesian/constraints").getAxisGroup,o=["v","h"];function s(t,e,r,o){var s,l,c,u=e.calcdata,f=e._fullLayout,h=o._id,p=h.charAt(0),d=[],g=0;for(s=0;s1,b=1-f[t+"gap"],_=1-f[t+"groupgap"];for(s=0;s0){var H=E.pointpos,G=E.jitter,Y=E.marker.size/2,W=0;H+G>=0&&((W=V*(H+G))>A?(q=!0,j=Y,B=W):W>R&&(j=Y,B=A)),W<=A&&(B=A);var X=0;H-G<=0&&((X=-V*(H-G))>S?(q=!0,U=Y,N=X):X>F&&(U=Y,N=S)),X<=S&&(N=S)}else B=A,N=S;var Z=new Array(c.length);for(l=0;l0?(m="v",v=x>0?Math.min(_,b):Math.min(b)):x>0?(m="h",v=Math.min(_)):v=0;if(v){e._length=v;var S=r("orientation",m);e._hasPreCompStats?"v"===S&&0===x?(r("x0",0),r("dx",1)):"h"===S&&0===y&&(r("y0",0),r("dy",1)):"v"===S&&0===x?r("x0"):"h"===S&&0===y&&r("y0"),i.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x","y"],a)}else e.visible=!1}function f(t,e,r,i){var a=i.prefix,o=n.coerce2(t,e,c,"marker.outliercolor"),s=r("marker.line.outliercolor"),l="outliers";e._hasPreCompStats?l="all":(o||s)&&(l="suspectedoutliers");var u=r(a+"points",l);u?(r("jitter","all"===u?.3:0),r("pointpos","all"===u?-1.5:0),r("marker.symbol"),r("marker.opacity"),r("marker.size"),r("marker.color",e.line.color),r("marker.line.color"),r("marker.line.width"),"suspectedoutliers"===u&&(r("marker.line.outliercolor",e.marker.color),r("marker.line.outlierwidth")),r("selected.marker.color"),r("unselected.marker.color"),r("selected.marker.size"),r("unselected.marker.size"),r("text"),r("hovertext")):delete e.marker;var f=r("hoveron");"all"!==f&&-1===f.indexOf("points")||r("hovertemplate"),n.coerceSelectionMarkerOpacity(e,r)}e.exports={supplyDefaults:function(t,e,r,i){function s(r,i){return n.coerce(t,e,c,r,i)}if(u(t,e,s,i),!1!==e.visible){o(t,e,i,s);var l=e._hasPreCompStats;l&&(s("lowerfence"),s("upperfence")),s("line.color",(t.marker||{}).color||r),s("line.width"),s("fillcolor",a.addOpacity(e.line.color,.5));var h=!1;if(l){var p=s("mean"),d=s("sd");p&&p.length&&(h=!0,d&&d.length&&(h="sd"))}s("boxmean",h),s("whiskerwidth"),s("width"),s("quartilemethod");var g=!1;if(l){var m=s("notchspan");m&&m.length&&(g=!0)}else n.validate(t.notchwidth,c.notchwidth)&&(g=!0);s("notched",g)&&s("notchwidth"),f(t,e,s,{prefix:"box"})}},crossTraceDefaults:function(t,e){var r,i;function a(t){return n.coerce(i._input,i,c,t)}for(var o=0;ot.lo&&(x.so=!0)}return a}));h.enter().append("path").classed("point",!0),h.exit().remove(),h.call(a.translatePoints,o,s)}function l(t,e,r,a){var o,s,l=e.val,c=e.pos,u=!!c.rangebreaks,f=a.bPos,h=a.bPosPxOffset||0,p=r.boxmean||(r.meanline||{}).visible;Array.isArray(a.bdPos)?(o=a.bdPos[0],s=a.bdPos[1]):(o=a.bdPos,s=a.bdPos);var d=t.selectAll("path.mean").data("box"===r.type&&r.boxmean||"violin"===r.type&&r.box.visible&&r.meanline.visible?i.identity:[]);d.enter().append("path").attr("class","mean").style({fill:"none","vector-effect":"non-scaling-stroke"}),d.exit().remove(),d.each((function(t){var e=c.c2l(t.pos+f,!0),i=c.l2p(e-o)+h,a=c.l2p(e+s)+h,d=u?(i+a)/2:c.l2p(e)+h,g=l.c2p(t.mean,!0),m=l.c2p(t.mean-t.sd,!0),v=l.c2p(t.mean+t.sd,!0);"h"===r.orientation?n.select(this).attr("d","M"+g+","+i+"V"+a+("sd"===p?"m0,0L"+m+","+d+"L"+g+","+i+"L"+v+","+d+"Z":"")):n.select(this).attr("d","M"+i+","+g+"H"+a+("sd"===p?"m0,0L"+d+","+m+"L"+i+","+g+"L"+d+","+v+"Z":""))}))}e.exports={plot:function(t,e,r,a){var c=e.xaxis,u=e.yaxis;i.makeTraceGroups(a,r,"trace boxes").each((function(t){var e,r,i=n.select(this),a=t[0],f=a.t,h=a.trace;(f.wdPos=f.bdPos*h.whiskerwidth,!0!==h.visible||f.empty)?i.remove():("h"===h.orientation?(e=u,r=c):(e=c,r=u),o(i,{pos:e,val:r},h,f),s(i,{x:c,y:u},h,f),l(i,{pos:e,val:r},h,f))}))},plotBoxAndWhiskers:o,plotPoints:s,plotBoxMean:l}},{"../../components/drawing":665,"../../lib":778,d3:169}],956:[function(t,e,r){"use strict";e.exports=function(t,e){var r,n,i=t.cd,a=t.xaxis,o=t.yaxis,s=[];if(!1===e)for(r=0;r=10)return null;for(var i=1/0,a=-1/0,o=e.length,s=0;s0?Math.floor:Math.ceil,P=C>0?Math.ceil:Math.floor,z=C>0?Math.min:Math.max,O=C>0?Math.max:Math.min,D=I(S+L),R=P(E-L),F=[[f=A(S)]];for(a=D;a*C=0;i--)a[u-i]=t[f][i],o[u-i]=e[f][i];for(s.push({x:a,y:o,bicubic:l}),i=f,a=[],o=[];i>=0;i--)a[f-i]=t[i][0],o[f-i]=e[i][0];return s.push({x:a,y:o,bicubic:c}),s}},{}],970:[function(t,e,r){"use strict";var n=t("../../plots/cartesian/axes"),i=t("../../lib/extend").extendFlat;e.exports=function(t,e,r){var a,o,s,l,c,u,f,h,p,d,g,m,v,y,x=t["_"+e],b=t[e+"axis"],_=b._gridlines=[],w=b._minorgridlines=[],T=b._boundarylines=[],k=t["_"+r],M=t[r+"axis"];"array"===b.tickmode&&(b.tickvals=x.slice());var A=t._xctrl,S=t._yctrl,E=A[0].length,C=A.length,L=t._a.length,I=t._b.length;n.prepTicks(b),"array"===b.tickmode&&delete b.tickvals;var P=b.smoothing?3:1;function z(n){var i,a,o,s,l,c,u,f,p,d,g,m,v=[],y=[],x={};if("b"===e)for(a=t.b2j(n),o=Math.floor(Math.max(0,Math.min(I-2,a))),s=a-o,x.length=I,x.crossLength=L,x.xy=function(e){return t.evalxy([],e,a)},x.dxy=function(e,r){return t.dxydi([],e,o,r,s)},i=0;i0&&(p=t.dxydi([],i-1,o,0,s),v.push(l[0]+p[0]/3),y.push(l[1]+p[1]/3),d=t.dxydi([],i-1,o,1,s),v.push(f[0]-d[0]/3),y.push(f[1]-d[1]/3)),v.push(f[0]),y.push(f[1]),l=f;else for(i=t.a2i(n),c=Math.floor(Math.max(0,Math.min(L-2,i))),u=i-c,x.length=L,x.crossLength=I,x.xy=function(e){return t.evalxy([],i,e)},x.dxy=function(e,r){return t.dxydj([],c,e,u,r)},a=0;a0&&(g=t.dxydj([],c,a-1,u,0),v.push(l[0]+g[0]/3),y.push(l[1]+g[1]/3),m=t.dxydj([],c,a-1,u,1),v.push(f[0]-m[0]/3),y.push(f[1]-m[1]/3)),v.push(f[0]),y.push(f[1]),l=f;return x.axisLetter=e,x.axis=b,x.crossAxis=M,x.value=n,x.constvar=r,x.index=h,x.x=v,x.y=y,x.smoothing=M.smoothing,x}function O(n){var i,a,o,s,l,c=[],u=[],f={};if(f.length=x.length,f.crossLength=k.length,"b"===e)for(o=Math.max(0,Math.min(I-2,n)),l=Math.min(1,Math.max(0,n-o)),f.xy=function(e){return t.evalxy([],e,n)},f.dxy=function(e,r){return t.dxydi([],e,o,r,l)},i=0;ix.length-1||_.push(i(O(o),{color:b.gridcolor,width:b.gridwidth}));for(h=u;hx.length-1||g<0||g>x.length-1))for(m=x[s],v=x[g],a=0;ax[x.length-1]||w.push(i(z(d),{color:b.minorgridcolor,width:b.minorgridwidth}));b.startline&&T.push(i(O(0),{color:b.startlinecolor,width:b.startlinewidth})),b.endline&&T.push(i(O(x.length-1),{color:b.endlinecolor,width:b.endlinewidth}))}else{for(l=5e-15,u=(c=[Math.floor((x[x.length-1]-b.tick0)/b.dtick*(1+l)),Math.ceil((x[0]-b.tick0)/b.dtick/(1+l))].sort((function(t,e){return t-e})))[0],f=c[1],h=u;h<=f;h++)p=b.tick0+b.dtick*h,_.push(i(z(p),{color:b.gridcolor,width:b.gridwidth}));for(h=u-1;hx[x.length-1]||w.push(i(z(d),{color:b.minorgridcolor,width:b.minorgridwidth}));b.startline&&T.push(i(z(x[0]),{color:b.startlinecolor,width:b.startlinewidth})),b.endline&&T.push(i(z(x[x.length-1]),{color:b.endlinecolor,width:b.endlinewidth}))}}},{"../../lib/extend":768,"../../plots/cartesian/axes":828}],971:[function(t,e,r){"use strict";var n=t("../../plots/cartesian/axes"),i=t("../../lib/extend").extendFlat;e.exports=function(t,e){var r,a,o,s=e._labels=[],l=e._gridlines;for(r=0;re.length&&(t=t.slice(0,e.length)):t=[],i=0;i90&&(p-=180,l=-l),{angle:p,flip:l,p:t.c2p(n,e,r),offsetMultplier:c}}},{}],985:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../components/drawing"),a=t("./map_1d_array"),o=t("./makepath"),s=t("./orient_text"),l=t("../../lib/svg_text_utils"),c=t("../../lib"),u=c.strRotate,f=c.strTranslate,h=t("../../constants/alignment");function p(t,e,r,i,s,l){var c="const-"+s+"-lines",u=r.selectAll("."+c).data(l);u.enter().append("path").classed(c,!0).style("vector-effect","non-scaling-stroke"),u.each((function(r){var i=r,s=i.x,l=i.y,c=a([],s,t.c2p),u=a([],l,e.c2p),f="M"+o(c,u,i.smoothing);n.select(this).attr("d",f).style("stroke-width",i.width).style("stroke",i.color).style("fill","none")})),u.exit().remove()}function d(t,e,r,a,o,c,h,p){var d=c.selectAll("text."+p).data(h);d.enter().append("text").classed(p,!0);var g=0,m={};return d.each((function(o,c){var h;if("auto"===o.axis.tickangle)h=s(a,e,r,o.xy,o.dxy);else{var p=(o.axis.tickangle+180)*Math.PI/180;h=s(a,e,r,o.xy,[Math.cos(p),Math.sin(p)])}c||(m={angle:h.angle,flip:h.flip});var d=(o.endAnchor?-1:1)*h.flip,v=n.select(this).attr({"text-anchor":d>0?"start":"end","data-notex":1}).call(i.font,o.font).text(o.text).call(l.convertToTspans,t),y=i.bBox(this);v.attr("transform",f(h.p[0],h.p[1])+u(h.angle)+f(o.axis.labelpadding*d,.3*y.height)),g=Math.max(g,y.width+o.axis.labelpadding)})),d.exit().remove(),m.maxExtent=g,m}e.exports=function(t,e,r,i){var l=e.xaxis,u=e.yaxis,f=t._fullLayout._clips;c.makeTraceGroups(i,r,"trace").each((function(e){var r=n.select(this),i=e[0],h=i.trace,g=h.aaxis,m=h.baxis,y=c.ensureSingle(r,"g","minorlayer"),x=c.ensureSingle(r,"g","majorlayer"),b=c.ensureSingle(r,"g","boundarylayer"),_=c.ensureSingle(r,"g","labellayer");r.style("opacity",h.opacity),p(l,u,x,g,"a",g._gridlines),p(l,u,x,m,"b",m._gridlines),p(l,u,y,g,"a",g._minorgridlines),p(l,u,y,m,"b",m._minorgridlines),p(l,u,b,g,"a-boundary",g._boundarylines),p(l,u,b,m,"b-boundary",m._boundarylines);var w=d(t,l,u,h,i,_,g._labels,"a-label"),T=d(t,l,u,h,i,_,m._labels,"b-label");!function(t,e,r,n,i,a,o,l){var u,f,h,p,d=c.aggNums(Math.min,null,r.a),g=c.aggNums(Math.max,null,r.a),m=c.aggNums(Math.min,null,r.b),y=c.aggNums(Math.max,null,r.b);u=.5*(d+g),f=m,h=r.ab2xy(u,f,!0),p=r.dxyda_rough(u,f),void 0===o.angle&&c.extendFlat(o,s(r,i,a,h,r.dxydb_rough(u,f)));v(t,e,r,n,h,p,r.aaxis,i,a,o,"a-title"),u=d,f=.5*(m+y),h=r.ab2xy(u,f,!0),p=r.dxydb_rough(u,f),void 0===l.angle&&c.extendFlat(l,s(r,i,a,h,r.dxyda_rough(u,f)));v(t,e,r,n,h,p,r.baxis,i,a,l,"b-title")}(t,_,h,i,l,u,w,T),function(t,e,r,n,i){var s,l,u,f,h=r.select("#"+t._clipPathId);h.size()||(h=r.append("clipPath").classed("carpetclip",!0));var p=c.ensureSingle(h,"path","carpetboundary"),d=e.clipsegments,g=[];for(f=0;f90&&y<270,b=n.select(this);b.text(h.title.text).call(l.convertToTspans,t),x&&(_=(-l.lineCount(b)+m)*g*a-_),b.attr("transform",f(e.p[0],e.p[1])+u(e.angle)+f(0,_)).attr("text-anchor","middle").call(i.font,h.title.font)})),b.exit().remove()}},{"../../components/drawing":665,"../../constants/alignment":745,"../../lib":778,"../../lib/svg_text_utils":803,"./makepath":982,"./map_1d_array":983,"./orient_text":984,d3:169}],986:[function(t,e,r){"use strict";var n=t("./constants"),i=t("../../lib/search").findBin,a=t("./compute_control_points"),o=t("./create_spline_evaluator"),s=t("./create_i_derivative_evaluator"),l=t("./create_j_derivative_evaluator");e.exports=function(t){var e=t._a,r=t._b,c=e.length,u=r.length,f=t.aaxis,h=t.baxis,p=e[0],d=e[c-1],g=r[0],m=r[u-1],v=e[e.length-1]-e[0],y=r[r.length-1]-r[0],x=v*n.RELATIVE_CULL_TOLERANCE,b=y*n.RELATIVE_CULL_TOLERANCE;p-=x,d+=x,g-=b,m+=b,t.isVisible=function(t,e){return t>p&&tg&&ed||em},t.setScale=function(){var e=t._x,r=t._y,n=a(t._xctrl,t._yctrl,e,r,f.smoothing,h.smoothing);t._xctrl=n[0],t._yctrl=n[1],t.evalxy=o([t._xctrl,t._yctrl],c,u,f.smoothing,h.smoothing),t.dxydi=s([t._xctrl,t._yctrl],f.smoothing,h.smoothing),t.dxydj=l([t._xctrl,t._yctrl],f.smoothing,h.smoothing)},t.i2a=function(t){var r=Math.max(0,Math.floor(t[0]),c-2),n=t[0]-r;return(1-n)*e[r]+n*e[r+1]},t.j2b=function(t){var e=Math.max(0,Math.floor(t[1]),c-2),n=t[1]-e;return(1-n)*r[e]+n*r[e+1]},t.ij2ab=function(e){return[t.i2a(e[0]),t.j2b(e[1])]},t.a2i=function(t){var r=Math.max(0,Math.min(i(t,e),c-2)),n=e[r],a=e[r+1];return Math.max(0,Math.min(c-1,r+(t-n)/(a-n)))},t.b2j=function(t){var e=Math.max(0,Math.min(i(t,r),u-2)),n=r[e],a=r[e+1];return Math.max(0,Math.min(u-1,e+(t-n)/(a-n)))},t.ab2ij=function(e){return[t.a2i(e[0]),t.b2j(e[1])]},t.i2c=function(e,r){return t.evalxy([],e,r)},t.ab2xy=function(n,i,a){if(!a&&(ne[c-1]|ir[u-1]))return[!1,!1];var o=t.a2i(n),s=t.b2j(i),l=t.evalxy([],o,s);if(a){var f,h,p,d,g=0,m=0,v=[];ne[c-1]?(f=c-2,h=1,g=(n-e[c-1])/(e[c-1]-e[c-2])):h=o-(f=Math.max(0,Math.min(c-2,Math.floor(o)))),ir[u-1]?(p=u-2,d=1,m=(i-r[u-1])/(r[u-1]-r[u-2])):d=s-(p=Math.max(0,Math.min(u-2,Math.floor(s)))),g&&(t.dxydi(v,f,p,h,d),l[0]+=v[0]*g,l[1]+=v[1]*g),m&&(t.dxydj(v,f,p,h,d),l[0]+=v[0]*m,l[1]+=v[1]*m)}return l},t.c2p=function(t,e,r){return[e.c2p(t[0]),r.c2p(t[1])]},t.p2x=function(t,e,r){return[e.p2c(t[0]),r.p2c(t[1])]},t.dadi=function(t){var r=Math.max(0,Math.min(e.length-2,t));return e[r+1]-e[r]},t.dbdj=function(t){var e=Math.max(0,Math.min(r.length-2,t));return r[e+1]-r[e]},t.dxyda=function(e,r,n,i){var a=t.dxydi(null,e,r,n,i),o=t.dadi(e,n);return[a[0]/o,a[1]/o]},t.dxydb=function(e,r,n,i){var a=t.dxydj(null,e,r,n,i),o=t.dbdj(r,i);return[a[0]/o,a[1]/o]},t.dxyda_rough=function(e,r,n){var i=v*(n||.1),a=t.ab2xy(e+i,r,!0),o=t.ab2xy(e-i,r,!0);return[.5*(a[0]-o[0])/i,.5*(a[1]-o[1])/i]},t.dxydb_rough=function(e,r,n){var i=y*(n||.1),a=t.ab2xy(e,r+i,!0),o=t.ab2xy(e,r-i,!0);return[.5*(a[0]-o[0])/i,.5*(a[1]-o[1])/i]},t.dpdx=function(t){return t._m},t.dpdy=function(t){return t._m}}},{"../../lib/search":798,"./compute_control_points":974,"./constants":975,"./create_i_derivative_evaluator":976,"./create_j_derivative_evaluator":977,"./create_spline_evaluator":978}],987:[function(t,e,r){"use strict";var n=t("../../lib");e.exports=function(t,e,r){var i,a,o,s=[],l=[],c=t[0].length,u=t.length;function f(e,r){var n,i=0,a=0;return e>0&&void 0!==(n=t[r][e-1])&&(a++,i+=n),e0&&void 0!==(n=t[r-1][e])&&(a++,i+=n),r0&&a0&&i1e-5);return n.log("Smoother converged to",k,"after",M,"iterations"),t}},{"../../lib":778}],988:[function(t,e,r){"use strict";var n=t("../../lib").isArray1D;e.exports=function(t,e,r){var i=r("x"),a=i&&i.length,o=r("y"),s=o&&o.length;if(!a&&!s)return!1;if(e._cheater=!i,a&&!n(i)||s&&!n(o))e._length=null;else{var l=a?i.length:1/0;s&&(l=Math.min(l,o.length)),e.a&&e.a.length&&(l=Math.min(l,e.a.length)),e.b&&e.b.length&&(l=Math.min(l,e.b.length)),e._length=l}return!0}},{"../../lib":778}],989:[function(t,e,r){"use strict";var n=t("../../plots/template_attributes").hovertemplateAttrs,i=t("../scattergeo/attributes"),a=t("../../components/colorscale/attributes"),o=t("../../plots/attributes"),s=t("../../components/color/attributes").defaultLine,l=t("../../lib/extend").extendFlat,c=i.marker.line;e.exports=l({locations:{valType:"data_array",editType:"calc"},locationmode:i.locationmode,z:{valType:"data_array",editType:"calc"},geojson:l({},i.geojson,{}),featureidkey:i.featureidkey,text:l({},i.text,{}),hovertext:l({},i.hovertext,{}),marker:{line:{color:l({},c.color,{dflt:s}),width:l({},c.width,{dflt:1}),editType:"calc"},opacity:{valType:"number",arrayOk:!0,min:0,max:1,dflt:1,editType:"style"},editType:"calc"},selected:{marker:{opacity:i.selected.marker.opacity,editType:"plot"},editType:"plot"},unselected:{marker:{opacity:i.unselected.marker.opacity,editType:"plot"},editType:"plot"},hoverinfo:l({},o.hoverinfo,{editType:"calc",flags:["location","z","text","name"]}),hovertemplate:n(),showlegend:l({},o.showlegend,{dflt:!1})},a("",{cLetter:"z",editTypeOverride:"calc"}))},{"../../components/color/attributes":642,"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"../scattergeo/attributes":1229}],990:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("../../constants/numerical").BADNUM,a=t("../../components/colorscale/calc"),o=t("../scatter/arrays_to_calcdata"),s=t("../scatter/calc_selection");function l(t){return t&&"string"==typeof t}e.exports=function(t,e){var r,c=e._length,u=new Array(c);r=e.geojson?function(t){return l(t)||n(t)}:l;for(var f=0;f")}(t,f,o),[t]}},{"../../lib":778,"../../plots/cartesian/axes":828,"./attributes":989}],994:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),colorbar:t("../heatmap/colorbar"),calc:t("./calc"),calcGeoJSON:t("./plot").calcGeoJSON,plot:t("./plot").plot,style:t("./style").style,styleOnSelect:t("./style").styleOnSelect,hoverPoints:t("./hover"),eventData:t("./event_data"),selectPoints:t("./select"),moduleType:"trace",name:"choropleth",basePlotModule:t("../../plots/geo"),categories:["geo","noOpacity","showLegend"],meta:{}}},{"../../plots/geo":860,"../heatmap/colorbar":1068,"./attributes":989,"./calc":990,"./defaults":991,"./event_data":992,"./hover":993,"./plot":995,"./select":996,"./style":997}],995:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../lib"),a=t("../../lib/geo_location_utils"),o=t("../../lib/topojson_utils").getTopojsonFeatures,s=t("../../plots/cartesian/autorange").findExtremes,l=t("./style").style;e.exports={calcGeoJSON:function(t,e){for(var r=t[0].trace,n=e[r.geo],i=n._subplot,l=r.locationmode,c=r._length,u="geojson-id"===l?a.extractTraceFeature(t):o(r,i.topojson),f=[],h=[],p=0;p=0;n--){var i=r[n].id;if("string"==typeof i&&0===i.indexOf("water"))for(var a=n+1;a=0;r--)t.removeLayer(e[r][1])},s.dispose=function(){var t=this.subplot.map;this._removeLayers(),t.removeSource(this.sourceId)},e.exports=function(t,e){var r=e[0].trace,i=new o(t,r.uid),a=i.sourceId,s=n(e),l=i.below=t.belowLookup["trace-"+r.uid];return t.map.addSource(a,{type:"geojson",data:s.geojson}),i._addLayers(s,l),e[0].trace._glTrace=i,i}},{"../../plots/mapbox/constants":883,"./convert":999}],1003:[function(t,e,r){"use strict";var n=t("../../components/colorscale/attributes"),i=t("../../plots/template_attributes").hovertemplateAttrs,a=t("../mesh3d/attributes"),o=t("../../plots/attributes"),s=t("../../lib/extend").extendFlat,l={x:{valType:"data_array",editType:"calc+clearAxisTypes"},y:{valType:"data_array",editType:"calc+clearAxisTypes"},z:{valType:"data_array",editType:"calc+clearAxisTypes"},u:{valType:"data_array",editType:"calc"},v:{valType:"data_array",editType:"calc"},w:{valType:"data_array",editType:"calc"},sizemode:{valType:"enumerated",values:["scaled","absolute"],editType:"calc",dflt:"scaled"},sizeref:{valType:"number",editType:"calc",min:0},anchor:{valType:"enumerated",editType:"calc",values:["tip","tail","cm","center"],dflt:"cm"},text:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertemplate:i({editType:"calc"},{keys:["norm"]}),showlegend:s({},o.showlegend,{dflt:!1})};s(l,n("",{colorAttr:"u/v/w norm",showScaleDflt:!0,editTypeOverride:"calc"}));["opacity","lightposition","lighting"].forEach((function(t){l[t]=a[t]})),l.hoverinfo=s({},o.hoverinfo,{editType:"calc",flags:["x","y","z","u","v","w","norm","text","name"],dflt:"x+y+z+norm+text+name"}),l.transforms=void 0,e.exports=l},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"../mesh3d/attributes":1128}],1004:[function(t,e,r){"use strict";var n=t("../../components/colorscale/calc");e.exports=function(t,e){for(var r=e.u,i=e.v,a=e.w,o=Math.min(e.x.length,e.y.length,e.z.length,r.length,i.length,a.length),s=-1/0,l=1/0,c=0;co.level||o.starts.length&&a===o.level)}break;case"constraint":if(n.prefixBoundary=!1,n.edgepaths.length)return;var s=n.x.length,l=n.y.length,c=-1/0,u=1/0;for(r=0;r":p>c&&(n.prefixBoundary=!0);break;case"<":(pc||n.starts.length&&h===u)&&(n.prefixBoundary=!0);break;case"][":f=Math.min(p[0],p[1]),h=Math.max(p[0],p[1]),fc&&(n.prefixBoundary=!0)}}}},{}],1011:[function(t,e,r){"use strict";var n=t("../../components/colorscale"),i=t("./make_color_map"),a=t("./end_plus");e.exports={min:"zmin",max:"zmax",calc:function(t,e,r){var o=e.contours,s=e.line,l=o.size||1,c=o.coloring,u=i(e,{isColorbar:!0});if("heatmap"===c){var f=n.extractOpts(e);r._fillgradient=f.reversescale?n.flipScale(f.colorscale):f.colorscale,r._zrange=[f.min,f.max]}else"fill"===c&&(r._fillcolor=u);r._line={color:"lines"===c?u:s.color,width:!1!==o.showlines?s.width:0,dash:s.dash},r._levels={start:o.start,end:a(o),size:l}}}},{"../../components/colorscale":655,"./end_plus":1019,"./make_color_map":1024}],1012:[function(t,e,r){"use strict";e.exports={BOTTOMSTART:[1,9,13,104,713],TOPSTART:[4,6,7,104,713],LEFTSTART:[8,12,14,208,1114],RIGHTSTART:[2,3,11,208,1114],NEWDELTA:[null,[-1,0],[0,-1],[-1,0],[1,0],null,[0,-1],[-1,0],[0,1],[0,1],null,[0,1],[1,0],[1,0],[0,-1]],CHOOSESADDLE:{104:[4,1],208:[2,8],713:[7,13],1114:[11,14]},SADDLEREMAINDER:{1:4,2:8,4:1,7:13,8:2,11:14,13:7,14:11},LABELDISTANCE:2,LABELINCREASE:10,LABELMIN:3,LABELMAX:10,LABELOPTIMIZER:{EDGECOST:1,ANGLECOST:1,NEIGHBORCOST:5,SAMELEVELFACTOR:10,SAMELEVELDISTANCE:5,MAXCOST:100,INITIALSEARCHPOINTS:10,ITERATIONS:5}}},{}],1013:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("./label_defaults"),a=t("../../components/color"),o=a.addOpacity,s=a.opacity,l=t("../../constants/filter_ops"),c=l.CONSTRAINT_REDUCTION,u=l.COMPARISON_OPS2;e.exports=function(t,e,r,a,l,f){var h,p,d,g=e.contours,m=r("contours.operation");(g._operation=c[m],function(t,e){var r;-1===u.indexOf(e.operation)?(t("contours.value",[0,1]),Array.isArray(e.value)?e.value.length>2?e.value=e.value.slice(2):0===e.length?e.value=[0,1]:e.length<2?(r=parseFloat(e.value[0]),e.value=[r,r+1]):e.value=[parseFloat(e.value[0]),parseFloat(e.value[1])]:n(e.value)&&(r=parseFloat(e.value),e.value=[r,r+1])):(t("contours.value",0),n(e.value)||(Array.isArray(e.value)?e.value=parseFloat(e.value[0]):e.value=0))}(r,g),"="===m?h=g.showlines=!0:(h=r("contours.showlines"),d=r("fillcolor",o((t.line||{}).color||l,.5))),h)&&(p=r("line.color",d&&s(d)?o(e.fillcolor,1):l),r("line.width",2),r("line.dash"));r("line.smoothing"),i(r,a,p,f)}},{"../../components/color":643,"../../constants/filter_ops":749,"./label_defaults":1023,"fast-isnumeric":241}],1014:[function(t,e,r){"use strict";var n=t("../../constants/filter_ops"),i=t("fast-isnumeric");function a(t,e){var r,a=Array.isArray(e);function o(t){return i(t)?+t:null}return-1!==n.COMPARISON_OPS2.indexOf(t)?r=o(a?e[0]:e):-1!==n.INTERVAL_OPS.indexOf(t)?r=a?[o(e[0]),o(e[1])]:[o(e),o(e)]:-1!==n.SET_OPS.indexOf(t)&&(r=a?e.map(o):[o(e)]),r}function o(t){return function(e){e=a(t,e);var r=Math.min(e[0],e[1]),n=Math.max(e[0],e[1]);return{start:r,end:n,size:n-r}}}function s(t){return function(e){return{start:e=a(t,e),end:1/0,size:1/0}}}e.exports={"[]":o("[]"),"][":o("]["),">":s(">"),"<":s("<"),"=":s("=")}},{"../../constants/filter_ops":749,"fast-isnumeric":241}],1015:[function(t,e,r){"use strict";e.exports=function(t,e,r,n){var i=n("contours.start"),a=n("contours.end"),o=!1===i||!1===a,s=r("contours.size");!(o?e.autocontour=!0:r("autocontour",!1))&&s||r("ncontours")}},{}],1016:[function(t,e,r){"use strict";var n=t("../../lib");function i(t){return n.extendFlat({},t,{edgepaths:n.extendDeep([],t.edgepaths),paths:n.extendDeep([],t.paths),starts:n.extendDeep([],t.starts)})}e.exports=function(t,e){var r,a,o,s=function(t){return t.reverse()},l=function(t){return t};switch(e){case"=":case"<":return t;case">":for(1!==t.length&&n.warn("Contour data invalid for the specified inequality operation."),a=t[0],r=0;r1e3){n.warn("Too many contours, clipping at 1000",t);break}return l}},{"../../lib":778,"./constraint_mapping":1014,"./end_plus":1019}],1019:[function(t,e,r){"use strict";e.exports=function(t){return t.end+t.size/1e6}},{}],1020:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./constants");function a(t,e,r,n){return Math.abs(t[0]-e[0])20&&e?208===t||1114===t?n=0===r[0]?1:-1:a=0===r[1]?1:-1:-1!==i.BOTTOMSTART.indexOf(t)?a=1:-1!==i.LEFTSTART.indexOf(t)?n=1:-1!==i.TOPSTART.indexOf(t)?a=-1:n=-1;return[n,a]}(f,r,e),p=[s(t,e,[-h[0],-h[1]])],d=t.z.length,g=t.z[0].length,m=e.slice(),v=h.slice();for(c=0;c<1e4;c++){if(f>20?(f=i.CHOOSESADDLE[f][(h[0]||h[1])<0?0:1],t.crossings[u]=i.SADDLEREMAINDER[f]):delete t.crossings[u],!(h=i.NEWDELTA[f])){n.log("Found bad marching index:",f,e,t.level);break}p.push(s(t,e,h)),e[0]+=h[0],e[1]+=h[1],u=e.join(","),a(p[p.length-1],p[p.length-2],o,l)&&p.pop();var y=h[0]&&(e[0]<0||e[0]>g-2)||h[1]&&(e[1]<0||e[1]>d-2);if(e[0]===m[0]&&e[1]===m[1]&&h[0]===v[0]&&h[1]===v[1]||r&&y)break;f=t.crossings[u]}1e4===c&&n.log("Infinite loop in contour?");var x,b,_,w,T,k,M,A,S,E,C,L,I,P,z,O=a(p[0],p[p.length-1],o,l),D=0,R=.2*t.smoothing,F=[],B=0;for(c=1;c=B;c--)if((x=F[c])=B&&x+F[b]A&&S--,t.edgepaths[S]=C.concat(p,E));break}V||(t.edgepaths[A]=p.concat(E))}for(A=0;At?0:1)+(e[0][1]>t?0:2)+(e[1][1]>t?0:4)+(e[1][0]>t?0:8);return 5===r||10===r?t>(e[0][0]+e[0][1]+e[1][0]+e[1][1])/4?5===r?713:1114:5===r?104:208:15===r?0:r}e.exports=function(t){var e,r,a,o,s,l,c,u,f,h=t[0].z,p=h.length,d=h[0].length,g=2===p||2===d;for(r=0;r=0&&(n=y,s=l):Math.abs(r[1]-n[1])<.01?Math.abs(r[1]-y[1])<.01&&(y[0]-r[0])*(n[0]-y[0])>=0&&(n=y,s=l):i.log("endpt to newendpt is not vert. or horz.",r,n,y)}if(r=n,s>=0)break;f+="L"+n}if(s===t.edgepaths.length){i.log("unclosed perimeter path");break}h=s,(d=-1===p.indexOf(h))&&(h=p[0],f+="Z")}for(h=0;hn.center?n.right-s:s-n.left)/(u+Math.abs(Math.sin(c)*o)),p=(l>n.middle?n.bottom-l:l-n.top)/(Math.abs(f)+Math.cos(c)*o);if(h<1||p<1)return 1/0;var d=v.EDGECOST*(1/(h-1)+1/(p-1));d+=v.ANGLECOST*c*c;for(var g=s-u,m=l-f,y=s+u,x=l+f,b=0;b2*v.MAXCOST)break;p&&(s/=2),l=(o=c-s/2)+1.5*s}if(h<=v.MAXCOST)return u},r.addLabelData=function(t,e,r,n){var i=e.fontSize,a=e.width+i/3,o=Math.max(0,e.height-i/3),s=t.x,l=t.y,c=t.theta,u=Math.sin(c),f=Math.cos(c),h=function(t,e){return[s+t*f-e*u,l+t*u+e*f]},p=[h(-a/2,-o/2),h(-a/2,o/2),h(a/2,o/2),h(a/2,-o/2)];r.push({text:e.text,x:s,y:l,dy:e.dy,theta:c,level:e.level,width:a,height:o}),n.push(p)},r.drawLabels=function(t,e,r,a,o){var l=t.selectAll("text").data(e,(function(t){return t.text+","+t.x+","+t.y+","+t.theta}));if(l.exit().remove(),l.enter().append("text").attr({"data-notex":1,"text-anchor":"middle"}).each((function(t){var e=t.x+Math.sin(t.theta)*t.dy,i=t.y-Math.cos(t.theta)*t.dy;n.select(this).text(t.text).attr({x:e,y:i,transform:"rotate("+180*t.theta/Math.PI+" "+e+" "+i+")"}).call(s.convertToTspans,r)})),o){for(var c="",u=0;ur.end&&(r.start=r.end=(r.start+r.end)/2),t._input.contours||(t._input.contours={}),i.extendFlat(t._input.contours,{start:r.start,end:r.end,size:r.size}),t._input.autocontour=!0}else if("constraint"!==r.type){var c,u=r.start,f=r.end,h=t._input.contours;if(u>f&&(r.start=h.start=f,f=r.end=h.end=u,u=r.start),!(r.size>0))c=u===f?1:a(u,f,t.ncontours).dtick,h.size=r.size=c}}},{"../../lib":778,"../../plots/cartesian/axes":828}],1028:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../components/drawing"),a=t("../heatmap/style"),o=t("./make_color_map");e.exports=function(t){var e=n.select(t).selectAll("g.contour");e.style("opacity",(function(t){return t[0].trace.opacity})),e.each((function(t){var e=n.select(this),r=t[0].trace,a=r.contours,s=r.line,l=a.size||1,c=a.start,u="constraint"===a.type,f=!u&&"lines"===a.coloring,h=!u&&"fill"===a.coloring,p=f||h?o(r):null;e.selectAll("g.contourlevel").each((function(t){n.select(this).selectAll("path").call(i.lineGroupStyle,s.width,f?p(t.level):s.color,s.dash)}));var d=a.labelfont;if(e.selectAll("g.contourlabels text").each((function(t){i.font(n.select(this),{family:d.family,size:d.size,color:d.color||(f?p(t.level):s.color)})})),u)e.selectAll("g.contourfill path").style("fill",r.fillcolor);else if(h){var g;e.selectAll("g.contourfill path").style("fill",(function(t){return void 0===g&&(g=t.level),p(t.level+.5*l)})),void 0===g&&(g=c),e.selectAll("g.contourbg path").style("fill",p(g-.5*l))}})),a(t)}},{"../../components/drawing":665,"../heatmap/style":1077,"./make_color_map":1024,d3:169}],1029:[function(t,e,r){"use strict";var n=t("../../components/colorscale/defaults"),i=t("./label_defaults");e.exports=function(t,e,r,a,o){var s,l=r("contours.coloring"),c="";"fill"===l&&(s=r("contours.showlines")),!1!==s&&("lines"!==l&&(c=r("line.color","#000")),r("line.width",.5),r("line.dash")),"none"!==l&&(!0!==t.showlegend&&(e.showlegend=!1),e._dfltShowLegend=!1,n(t,e,a,r,{prefix:"",cLetter:"z"})),r("line.smoothing"),i(r,a,c,o)}},{"../../components/colorscale/defaults":653,"./label_defaults":1023}],1030:[function(t,e,r){"use strict";var n=t("../heatmap/attributes"),i=t("../contour/attributes"),a=t("../../components/colorscale/attributes"),o=t("../../lib/extend").extendFlat,s=i.contours;e.exports=o({carpet:{valType:"string",editType:"calc"},z:n.z,a:n.x,a0:n.x0,da:n.dx,b:n.y,b0:n.y0,db:n.dy,text:n.text,hovertext:n.hovertext,transpose:n.transpose,atype:n.xtype,btype:n.ytype,fillcolor:i.fillcolor,autocontour:i.autocontour,ncontours:i.ncontours,contours:{type:s.type,start:s.start,end:s.end,size:s.size,coloring:{valType:"enumerated",values:["fill","lines","none"],dflt:"fill",editType:"calc"},showlines:s.showlines,showlabels:s.showlabels,labelfont:s.labelfont,labelformat:s.labelformat,operation:s.operation,value:s.value,editType:"calc",impliedEdits:{autocontour:!1}},line:{color:i.line.color,width:i.line.width,dash:i.line.dash,smoothing:i.line.smoothing,editType:"plot"},transforms:void 0},a("",{cLetter:"z",autoColorDflt:!1}))},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../contour/attributes":1008,"../heatmap/attributes":1065}],1031:[function(t,e,r){"use strict";var n=t("../../components/colorscale/calc"),i=t("../../lib"),a=t("../heatmap/convert_column_xyz"),o=t("../heatmap/clean_2d_array"),s=t("../heatmap/interp2d"),l=t("../heatmap/find_empties"),c=t("../heatmap/make_bound_array"),u=t("./defaults"),f=t("../carpet/lookup_carpetid"),h=t("../contour/set_contours");e.exports=function(t,e){var r=e._carpetTrace=f(t,e);if(r&&r.visible&&"legendonly"!==r.visible){if(!e.a||!e.b){var p=t.data[r.index],d=t.data[e.index];d.a||(d.a=p.a),d.b||(d.b=p.b),u(d,e,e._defaultColor,t._fullLayout)}var g=function(t,e){var r,u,f,h,p,d,g,m=e._carpetTrace,v=m.aaxis,y=m.baxis;v._minDtick=0,y._minDtick=0,i.isArray1D(e.z)&&a(e,v,y,"a","b",["z"]);r=e._a=e._a||e.a,h=e._b=e._b||e.b,r=r?v.makeCalcdata(e,"_a"):[],h=h?y.makeCalcdata(e,"_b"):[],u=e.a0||0,f=e.da||1,p=e.b0||0,d=e.db||1,g=e._z=o(e._z||e.z,e.transpose),e._emptypoints=l(g),s(g,e._emptypoints);var x=i.maxRowLength(g),b="scaled"===e.xtype?"":r,_=c(e,b,u,f,x,v),w="scaled"===e.ytype?"":h,T=c(e,w,p,d,g.length,y),k={a:_,b:T,z:g};"levels"===e.contours.type&&"none"!==e.contours.coloring&&n(t,e,{vals:g,containerStr:"",cLetter:"z"});return[k]}(t,e);return h(e,e._z),g}}},{"../../components/colorscale/calc":651,"../../lib":778,"../carpet/lookup_carpetid":981,"../contour/set_contours":1027,"../heatmap/clean_2d_array":1067,"../heatmap/convert_column_xyz":1069,"../heatmap/find_empties":1071,"../heatmap/interp2d":1074,"../heatmap/make_bound_array":1075,"./defaults":1032}],1032:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../heatmap/xyz_defaults"),a=t("./attributes"),o=t("../contour/constraint_defaults"),s=t("../contour/contours_defaults"),l=t("../contour/style_defaults");e.exports=function(t,e,r,c){function u(r,i){return n.coerce(t,e,a,r,i)}if(u("carpet"),t.a&&t.b){if(!i(t,e,u,c,"a","b"))return void(e.visible=!1);u("text"),"constraint"===u("contours.type")?o(t,e,u,c,r,{hasHover:!1}):(s(t,e,u,(function(r){return n.coerce2(t,e,a,r)})),l(t,e,u,c,{hasHover:!1}))}else e._defaultColor=r,e._length=null}},{"../../lib":778,"../contour/constraint_defaults":1013,"../contour/contours_defaults":1015,"../contour/style_defaults":1029,"../heatmap/xyz_defaults":1079,"./attributes":1030}],1033:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),colorbar:t("../contour/colorbar"),calc:t("./calc"),plot:t("./plot"),style:t("../contour/style"),moduleType:"trace",name:"contourcarpet",basePlotModule:t("../../plots/cartesian"),categories:["cartesian","svg","carpet","contour","symbols","showLegend","hasLines","carpetDependent","noHover","noSortingByValue"],meta:{}}},{"../../plots/cartesian":841,"../contour/colorbar":1011,"../contour/style":1028,"./attributes":1030,"./calc":1031,"./defaults":1032,"./plot":1034}],1034:[function(t,e,r){"use strict";var n=t("d3"),i=t("../carpet/map_1d_array"),a=t("../carpet/makepath"),o=t("../../components/drawing"),s=t("../../lib"),l=t("../contour/make_crossings"),c=t("../contour/find_all_paths"),u=t("../contour/plot"),f=t("../contour/constants"),h=t("../contour/convert_to_constraints"),p=t("../contour/empty_pathinfo"),d=t("../contour/close_boundaries"),g=t("../carpet/lookup_carpetid"),m=t("../carpet/axis_aligned_line");function v(t,e,r){var n=t.getPointAtLength(e),i=t.getPointAtLength(r),a=i.x-n.x,o=i.y-n.y,s=Math.sqrt(a*a+o*o);return[a/s,o/s]}function y(t){var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[t[0]/e,t[1]/e]}function x(t,e){var r=Math.abs(t[0]*e[0]+t[1]*e[1]);return Math.sqrt(1-r*r)/r}e.exports=function(t,e,r,b){var _=e.xaxis,w=e.yaxis;s.makeTraceGroups(b,r,"contour").each((function(r){var b=n.select(this),T=r[0],k=T.trace,M=k._carpetTrace=g(t,k),A=t.calcdata[M.index][0];if(M.visible&&"legendonly"!==M.visible){var S=T.a,E=T.b,C=k.contours,L=p(C,e,T),I="constraint"===C.type,P=C._operation,z=I?"="===P?"lines":"fill":C.coloring,O=[[S[0],E[E.length-1]],[S[S.length-1],E[E.length-1]],[S[S.length-1],E[0]],[S[0],E[0]]];l(L);var D=1e-8*(S[S.length-1]-S[0]),R=1e-8*(E[E.length-1]-E[0]);c(L,D,R);var F,B,N,j,U=L;"constraint"===C.type&&(U=h(L,P)),function(t,e){var r,n,i,a,o,s,l,c,u;for(r=0;r=0;j--)F=A.clipsegments[j],B=i([],F.x,_.c2p),N=i([],F.y,w.c2p),B.reverse(),N.reverse(),V.push(a(B,N,F.bicubic));var q="M"+V.join("L")+"Z";!function(t,e,r,n,o,l){var c,u,f,h,p=s.ensureSingle(t,"g","contourbg").selectAll("path").data("fill"!==l||o?[]:[0]);p.enter().append("path"),p.exit().remove();var d=[];for(h=0;h=0&&(h=C,d=g):Math.abs(f[1]-h[1])=0&&(h=C,d=g):s.log("endpt to newendpt is not vert. or horz.",f,h,C)}if(d>=0)break;y+=S(f,h),f=h}if(d===e.edgepaths.length){s.log("unclosed perimeter path");break}u=d,(b=-1===x.indexOf(u))&&(u=x[0],y+=S(f,h)+"Z",f=null)}for(u=0;um&&(n.max=m);n.len=n.max-n.min}(this,r,t,n,c,e.height),!(n.len<(e.width+e.height)*f.LABELMIN)))for(var i=Math.min(Math.ceil(n.len/P),f.LABELMAX),a=0;a0?+p[u]:0),f.push({type:"Feature",geometry:{type:"Point",coordinates:v},properties:y})}}var b=o.extractOpts(e),_=b.reversescale?o.flipScale(b.colorscale):b.colorscale,w=_[0][1],T=["interpolate",["linear"],["heatmap-density"],0,a.opacity(w)<1?w:a.addOpacity(w,0)];for(u=1;u<_.length;u++)T.push(_[u][0],_[u][1]);var k=["interpolate",["linear"],["get","z"],b.min,0,b.max,1];return i.extendFlat(c.heatmap.paint,{"heatmap-weight":d?k:1/(b.max-b.min),"heatmap-color":T,"heatmap-radius":g?{type:"identity",property:"r"}:e.radius,"heatmap-opacity":e.opacity}),c.geojson={type:"FeatureCollection",features:f},c.heatmap.layout.visibility="visible",c}},{"../../components/color":643,"../../components/colorscale":655,"../../constants/numerical":753,"../../lib":778,"../../lib/geojson_utils":772,"fast-isnumeric":241}],1038:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../components/colorscale/defaults"),a=t("./attributes");e.exports=function(t,e,r,o){function s(r,i){return n.coerce(t,e,a,r,i)}var l=s("lon")||[],c=s("lat")||[],u=Math.min(l.length,c.length);u?(e._length=u,s("z"),s("radius"),s("below"),s("text"),s("hovertext"),s("hovertemplate"),i(t,e,o,s,{prefix:"",cLetter:"z"})):e.visible=!1}},{"../../components/colorscale/defaults":653,"../../lib":778,"./attributes":1035}],1039:[function(t,e,r){"use strict";e.exports=function(t,e){return t.lon=e.lon,t.lat=e.lat,t.z=e.z,t}},{}],1040:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../plots/cartesian/axes"),a=t("../scattermapbox/hover");e.exports=function(t,e,r){var o=a(t,e,r);if(o){var s=o[0],l=s.cd,c=l[0].trace,u=l[s.index];if(delete s.color,"z"in u){var f=s.subplot.mockAxis;s.z=u.z,s.zLabel=i.tickText(f,f.c2l(u.z),"hover").text}return s.extraText=function(t,e,r){if(t.hovertemplate)return;var i=(e.hi||t.hoverinfo).split("+"),a=-1!==i.indexOf("all"),o=-1!==i.indexOf("lon"),s=-1!==i.indexOf("lat"),l=e.lonlat,c=[];function u(t){return t+"\xb0"}a||o&&s?c.push("("+u(l[0])+", "+u(l[1])+")"):o?c.push(r.lon+u(l[0])):s&&c.push(r.lat+u(l[1]));(a||-1!==i.indexOf("text"))&&n.fillText(e,t,c);return c.join("
    ")}(c,u,l[0].t.labels),[s]}}},{"../../lib":778,"../../plots/cartesian/axes":828,"../scattermapbox/hover":1257}],1041:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),colorbar:t("../heatmap/colorbar"),formatLabels:t("../scattermapbox/format_labels"),calc:t("./calc"),plot:t("./plot"),hoverPoints:t("./hover"),eventData:t("./event_data"),getBelow:function(t,e){for(var r=e.getMapLayers(),n=0;n=0;r--)t.removeLayer(e[r][1])},o.dispose=function(){var t=this.subplot.map;this._removeLayers(),t.removeSource(this.sourceId)},e.exports=function(t,e){var r=e[0].trace,i=new a(t,r.uid),o=i.sourceId,s=n(e),l=i.below=t.belowLookup["trace-"+r.uid];return t.map.addSource(o,{type:"geojson",data:s.geojson}),i._addLayers(s,l),i}},{"../../plots/mapbox/constants":883,"./convert":1037}],1043:[function(t,e,r){"use strict";var n=t("../../lib");e.exports=function(t,e){for(var r=0;r"),s.color=function(t,e){var r=t.marker,i=e.mc||r.color,a=e.mlc||r.line.color,o=e.mlw||r.line.width;if(n(i))return i;if(n(a)&&o)return a}(c,f),[s]}}},{"../../components/color":643,"../../lib":778,"../bar/hover":928}],1051:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),layoutAttributes:t("./layout_attributes"),supplyDefaults:t("./defaults").supplyDefaults,crossTraceDefaults:t("./defaults").crossTraceDefaults,supplyLayoutDefaults:t("./layout_defaults"),calc:t("./calc"),crossTraceCalc:t("./cross_trace_calc"),plot:t("./plot"),style:t("./style").style,hoverPoints:t("./hover"),eventData:t("./event_data"),selectPoints:t("../bar/select"),moduleType:"trace",name:"funnel",basePlotModule:t("../../plots/cartesian"),categories:["bar-like","cartesian","svg","oriented","showLegend","zoomScale"],meta:{}}},{"../../plots/cartesian":841,"../bar/select":933,"./attributes":1044,"./calc":1045,"./cross_trace_calc":1047,"./defaults":1048,"./event_data":1049,"./hover":1050,"./layout_attributes":1052,"./layout_defaults":1053,"./plot":1054,"./style":1055}],1052:[function(t,e,r){"use strict";e.exports={funnelmode:{valType:"enumerated",values:["stack","group","overlay"],dflt:"stack",editType:"calc"},funnelgap:{valType:"number",min:0,max:1,editType:"calc"},funnelgroupgap:{valType:"number",min:0,max:1,dflt:0,editType:"calc"}}},{}],1053:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./layout_attributes");e.exports=function(t,e,r){var a=!1;function o(r,a){return n.coerce(t,e,i,r,a)}for(var s=0;s path").each((function(t){if(!t.isBlank){var e=s.marker;n.select(this).call(a.fill,t.mc||e.color).call(a.stroke,t.mlc||e.line.color).call(i.dashLine,e.line.dash,t.mlw||e.line.width).style("opacity",s.selectedpoints&&!t.selected?o:1)}})),c(r,s,t),r.selectAll(".regions").each((function(){n.select(this).selectAll("path").style("stroke-width",0).call(a.fill,s.connector.fillcolor)})),r.selectAll(".lines").each((function(){var t=s.connector.line;i.lineGroupStyle(n.select(this).selectAll("path"),t.width,t.color,t.dash)}))}))}}},{"../../components/color":643,"../../components/drawing":665,"../../constants/interactions":752,"../bar/style":935,"../bar/uniform_text":937,d3:169}],1056:[function(t,e,r){"use strict";var n=t("../pie/attributes"),i=t("../../plots/attributes"),a=t("../../plots/domain").attributes,o=t("../../plots/template_attributes").hovertemplateAttrs,s=t("../../plots/template_attributes").texttemplateAttrs,l=t("../../lib/extend").extendFlat;e.exports={labels:n.labels,label0:n.label0,dlabel:n.dlabel,values:n.values,marker:{colors:n.marker.colors,line:{color:l({},n.marker.line.color,{dflt:null}),width:l({},n.marker.line.width,{dflt:1}),editType:"calc"},editType:"calc"},text:n.text,hovertext:n.hovertext,scalegroup:l({},n.scalegroup,{}),textinfo:l({},n.textinfo,{flags:["label","text","value","percent"]}),texttemplate:s({editType:"plot"},{keys:["label","color","value","text","percent"]}),hoverinfo:l({},i.hoverinfo,{flags:["label","text","value","percent","name"]}),hovertemplate:o({},{keys:["label","color","value","text","percent"]}),textposition:l({},n.textposition,{values:["inside","none"],dflt:"inside"}),textfont:n.textfont,insidetextfont:n.insidetextfont,title:{text:n.title.text,font:n.title.font,position:l({},n.title.position,{values:["top left","top center","top right"],dflt:"top center"}),editType:"plot"},domain:a({name:"funnelarea",trace:!0,editType:"calc"}),aspectratio:{valType:"number",min:0,dflt:1,editType:"plot"},baseratio:{valType:"number",min:0,max:1,dflt:.333,editType:"plot"}}},{"../../lib/extend":768,"../../plots/attributes":824,"../../plots/domain":855,"../../plots/template_attributes":906,"../pie/attributes":1161}],1057:[function(t,e,r){"use strict";var n=t("../../plots/plots");r.name="funnelarea",r.plot=function(t,e,i,a){n.plotBasePlot(r.name,t,e,i,a)},r.clean=function(t,e,i,a){n.cleanBasePlot(r.name,t,e,i,a)}},{"../../plots/plots":891}],1058:[function(t,e,r){"use strict";var n=t("../pie/calc");e.exports={calc:function(t,e){return n.calc(t,e)},crossTraceCalc:function(t){n.crossTraceCalc(t,{type:"funnelarea"})}}},{"../pie/calc":1163}],1059:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./attributes"),a=t("../../plots/domain").defaults,o=t("../bar/defaults").handleText,s=t("../pie/defaults").handleLabelsAndValues;e.exports=function(t,e,r,l){function c(r,a){return n.coerce(t,e,i,r,a)}var u=c("labels"),f=c("values"),h=s(u,f),p=h.len;if(e._hasLabels=h.hasLabels,e._hasValues=h.hasValues,!e._hasLabels&&e._hasValues&&(c("label0"),c("dlabel")),p){e._length=p,c("marker.line.width")&&c("marker.line.color",l.paper_bgcolor),c("marker.colors"),c("scalegroup");var d,g=c("text"),m=c("texttemplate");if(m||(d=c("textinfo",Array.isArray(g)?"text+percent":"percent")),c("hovertext"),c("hovertemplate"),m||d&&"none"!==d){var v=c("textposition");o(t,e,l,c,v,{moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1})}a(e,l,c),c("title.text")&&(c("title.position"),n.coerceFont(c,"title.font",l.font)),c("aspectratio"),c("baseratio")}else e.visible=!1}},{"../../lib":778,"../../plots/domain":855,"../bar/defaults":925,"../pie/defaults":1164,"./attributes":1056}],1060:[function(t,e,r){"use strict";e.exports={moduleType:"trace",name:"funnelarea",basePlotModule:t("./base_plot"),categories:["pie-like","funnelarea","showLegend"],attributes:t("./attributes"),layoutAttributes:t("./layout_attributes"),supplyDefaults:t("./defaults"),supplyLayoutDefaults:t("./layout_defaults"),calc:t("./calc").calc,crossTraceCalc:t("./calc").crossTraceCalc,plot:t("./plot"),style:t("./style"),styleOne:t("../pie/style_one"),meta:{}}},{"../pie/style_one":1172,"./attributes":1056,"./base_plot":1057,"./calc":1058,"./defaults":1059,"./layout_attributes":1061,"./layout_defaults":1062,"./plot":1063,"./style":1064}],1061:[function(t,e,r){"use strict";var n=t("../pie/layout_attributes").hiddenlabels;e.exports={hiddenlabels:n,funnelareacolorway:{valType:"colorlist",editType:"calc"},extendfunnelareacolors:{valType:"boolean",dflt:!0,editType:"calc"}}},{"../pie/layout_attributes":1168}],1062:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./layout_attributes");e.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}r("hiddenlabels"),r("funnelareacolorway",e.colorway),r("extendfunnelareacolors")}},{"../../lib":778,"./layout_attributes":1061}],1063:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../components/drawing"),a=t("../../lib"),o=a.strScale,s=a.strTranslate,l=t("../../lib/svg_text_utils"),c=t("../bar/plot").toMoveInsideBar,u=t("../bar/uniform_text"),f=u.recordMinTextSize,h=u.clearMinTextSize,p=t("../pie/helpers"),d=t("../pie/plot"),g=d.attachFxHandlers,m=d.determineInsideTextFont,v=d.layoutAreas,y=d.prerenderTitles,x=d.positionTitleOutside,b=d.formatSliceLabel;function _(t,e){return"l"+(e[0]-t[0])+","+(e[1]-t[1])}e.exports=function(t,e){var r=t._fullLayout;h("funnelarea",r),y(e,t),v(e,r._size),a.makeTraceGroups(r._funnelarealayer,e,"trace").each((function(e){var u=n.select(this),h=e[0],d=h.trace;!function(t){if(!t.length)return;var e=t[0],r=e.trace,n=r.aspectratio,i=r.baseratio;i>.999&&(i=.999);var a,o=Math.pow(i,2),s=e.vTotal,l=s,c=s*o/(1-o)/s;function u(){var t,e={x:t=Math.sqrt(c),y:-t};return[e.x,e.y]}var f,h,p=[];for(p.push(u()),f=t.length-1;f>-1;f--)if(!(h=t[f]).hidden){var d=h.v/l;c+=d,p.push(u())}var g=1/0,m=-1/0;for(f=0;f-1;f--)if(!(h=t[f]).hidden){var M=p[k+=1][0],A=p[k][1];h.TL=[-M,A],h.TR=[M,A],h.BL=w,h.BR=T,h.pxmid=(S=h.TR,E=h.BR,[.5*(S[0]+E[0]),.5*(S[1]+E[1])]),w=h.TL,T=h.TR}var S,E}(e),u.each((function(){var u=n.select(this).selectAll("g.slice").data(e);u.enter().append("g").classed("slice",!0),u.exit().remove(),u.each((function(o,s){if(o.hidden)n.select(this).selectAll("path,g").remove();else{o.pointNumber=o.i,o.curveNumber=d.index;var u=h.cx,v=h.cy,y=n.select(this),x=y.selectAll("path.surface").data([o]);x.enter().append("path").classed("surface",!0).style({"pointer-events":"all"}),y.call(g,t,e);var w="M"+(u+o.TR[0])+","+(v+o.TR[1])+_(o.TR,o.BR)+_(o.BR,o.BL)+_(o.BL,o.TL)+"Z";x.attr("d",w),b(t,o,h);var T=p.castOption(d.textposition,o.pts),k=y.selectAll("g.slicetext").data(o.text&&"none"!==T?[0]:[]);k.enter().append("g").classed("slicetext",!0),k.exit().remove(),k.each((function(){var h=a.ensureSingle(n.select(this),"text","",(function(t){t.attr("data-notex",1)})),p=a.ensureUniformFontSize(t,m(d,o,r.font));h.text(o.text).attr({class:"slicetext",transform:"","text-anchor":"middle"}).call(i.font,p).call(l.convertToTspans,t);var g,y,x,b=i.bBox(h.node()),_=Math.min(o.BL[1],o.BR[1])+v,w=Math.max(o.TL[1],o.TR[1])+v;y=Math.max(o.TL[0],o.BL[0])+u,x=Math.min(o.TR[0],o.BR[0])+u,(g=c(y,x,_,w,b,{isHorizontal:!0,constrained:!0,angle:0,anchor:"middle"})).fontSize=p.size,f(d.type,g,r),e[s].transform=g,h.attr("transform",a.getTextTransform(g))}))}}));var v=n.select(this).selectAll("g.titletext").data(d.title.text?[0]:[]);v.enter().append("g").classed("titletext",!0),v.exit().remove(),v.each((function(){var e=a.ensureSingle(n.select(this),"text","",(function(t){t.attr("data-notex",1)})),c=d.title.text;d._meta&&(c=a.templateString(c,d._meta)),e.text(c).attr({class:"titletext",transform:"","text-anchor":"middle"}).call(i.font,d.title.font).call(l.convertToTspans,t);var u=x(h,r._size);e.attr("transform",s(u.x,u.y)+o(Math.min(1,u.scale))+s(u.tx,u.ty))}))}))}))}},{"../../components/drawing":665,"../../lib":778,"../../lib/svg_text_utils":803,"../bar/plot":932,"../bar/uniform_text":937,"../pie/helpers":1166,"../pie/plot":1170,d3:169}],1064:[function(t,e,r){"use strict";var n=t("d3"),i=t("../pie/style_one"),a=t("../bar/uniform_text").resizeText;e.exports=function(t){var e=t._fullLayout._funnelarealayer.selectAll(".trace");a(t,e,"funnelarea"),e.each((function(t){var e=t[0].trace,r=n.select(this);r.style({opacity:e.opacity}),r.selectAll("path.surface").each((function(t){n.select(this).call(i,t,e)}))}))}},{"../bar/uniform_text":937,"../pie/style_one":1172,d3:169}],1065:[function(t,e,r){"use strict";var n=t("../scatter/attributes"),i=t("../../plots/attributes"),a=t("../../plots/template_attributes").hovertemplateAttrs,o=t("../../components/colorscale/attributes"),s=(t("../../constants/docs").FORMAT_LINK,t("../../lib/extend").extendFlat);e.exports=s({z:{valType:"data_array",editType:"calc"},x:s({},n.x,{impliedEdits:{xtype:"array"}}),x0:s({},n.x0,{impliedEdits:{xtype:"scaled"}}),dx:s({},n.dx,{impliedEdits:{xtype:"scaled"}}),y:s({},n.y,{impliedEdits:{ytype:"array"}}),y0:s({},n.y0,{impliedEdits:{ytype:"scaled"}}),dy:s({},n.dy,{impliedEdits:{ytype:"scaled"}}),xperiod:s({},n.xperiod,{impliedEdits:{xtype:"scaled"}}),yperiod:s({},n.yperiod,{impliedEdits:{ytype:"scaled"}}),xperiod0:s({},n.xperiod0,{impliedEdits:{xtype:"scaled"}}),yperiod0:s({},n.yperiod0,{impliedEdits:{ytype:"scaled"}}),xperiodalignment:s({},n.xperiodalignment,{impliedEdits:{xtype:"scaled"}}),yperiodalignment:s({},n.yperiodalignment,{impliedEdits:{ytype:"scaled"}}),text:{valType:"data_array",editType:"calc"},hovertext:{valType:"data_array",editType:"calc"},transpose:{valType:"boolean",dflt:!1,editType:"calc"},xtype:{valType:"enumerated",values:["array","scaled"],editType:"calc+clearAxisTypes"},ytype:{valType:"enumerated",values:["array","scaled"],editType:"calc+clearAxisTypes"},zsmooth:{valType:"enumerated",values:["fast","best",!1],dflt:!1,editType:"calc"},hoverongaps:{valType:"boolean",dflt:!0,editType:"none"},connectgaps:{valType:"boolean",editType:"calc"},xgap:{valType:"number",dflt:0,min:0,editType:"plot"},ygap:{valType:"number",dflt:0,min:0,editType:"plot"},zhoverformat:{valType:"string",dflt:"",editType:"none"},hovertemplate:a(),showlegend:s({},i.showlegend,{dflt:!1})},{transforms:void 0},o("",{cLetter:"z",autoColorDflt:!1}))},{"../../components/colorscale/attributes":650,"../../constants/docs":748,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"../scatter/attributes":1187}],1066:[function(t,e,r){"use strict";var n=t("../../registry"),i=t("../../lib"),a=t("../../plots/cartesian/axes"),o=t("../../plots/cartesian/align_period"),s=t("../histogram2d/calc"),l=t("../../components/colorscale/calc"),c=t("./convert_column_xyz"),u=t("./clean_2d_array"),f=t("./interp2d"),h=t("./find_empties"),p=t("./make_bound_array"),d=t("../../constants/numerical").BADNUM;function g(t){for(var e=[],r=t.length,n=0;nD){z("x scale is not linear");break}}if(x.length&&"fast"===I){var R=(x[x.length-1]-x[0])/(x.length-1),F=Math.abs(R/100);for(k=0;kF){z("y scale is not linear");break}}}var B=i.maxRowLength(T),N="scaled"===e.xtype?"":r,j=p(e,N,m,v,B,A),U="scaled"===e.ytype?"":x,V=p(e,U,b,_,T.length,S);L||(e._extremes[A._id]=a.findExtremes(A,j),e._extremes[S._id]=a.findExtremes(S,V));var q={x:j,y:V,z:T,text:e._text||e.text,hovertext:e._hovertext||e.hovertext};if(e.xperiodalignment&&y&&(q.orig_x=y),e.yperiodalignment&&w&&(q.orig_y=w),N&&N.length===j.length-1&&(q.xCenter=N),U&&U.length===V.length-1&&(q.yCenter=U),C&&(q.xRanges=M.xRanges,q.yRanges=M.yRanges,q.pts=M.pts),E||l(t,e,{vals:T,cLetter:"z"}),E&&e.contours&&"heatmap"===e.contours.coloring){var H={type:"contour"===e.type?"heatmap":"histogram2d",xcalendar:e.xcalendar,ycalendar:e.ycalendar};q.xfill=p(H,N,m,v,B,A),q.yfill=p(H,U,b,_,T.length,S)}return[q]}},{"../../components/colorscale/calc":651,"../../constants/numerical":753,"../../lib":778,"../../plots/cartesian/align_period":825,"../../plots/cartesian/axes":828,"../../registry":911,"../histogram2d/calc":1098,"./clean_2d_array":1067,"./convert_column_xyz":1069,"./find_empties":1071,"./interp2d":1074,"./make_bound_array":1075}],1067:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("../../lib"),a=t("../../constants/numerical").BADNUM;e.exports=function(t,e,r,o){var s,l,c,u,f,h;function p(t){if(n(t))return+t}if(e&&e.transpose){for(s=0,f=0;f=0;o--)(s=((f[[(r=(a=h[o])[0])-1,i=a[1]]]||g)[2]+(f[[r+1,i]]||g)[2]+(f[[r,i-1]]||g)[2]+(f[[r,i+1]]||g)[2])/20)&&(l[a]=[r,i,s],h.splice(o,1),c=!0);if(!c)throw"findEmpties iterated with no new neighbors";for(a in l)f[a]=l[a],u.push(l[a])}return u.sort((function(t,e){return e[2]-t[2]}))}},{"../../lib":778}],1072:[function(t,e,r){"use strict";var n=t("../../components/fx"),i=t("../../lib"),a=t("../../plots/cartesian/axes"),o=t("../../components/colorscale").extractOpts;e.exports=function(t,e,r,s,l,c){var u,f,h,p,d=t.cd[0],g=d.trace,m=t.xa,v=t.ya,y=d.x,x=d.y,b=d.z,_=d.xCenter,w=d.yCenter,T=d.zmask,k=g.zhoverformat,M=y,A=x;if(!1!==t.index){try{h=Math.round(t.index[1]),p=Math.round(t.index[0])}catch(e){return void i.error("Error hovering on heatmap, pointNumber must be [row,col], found:",t.index)}if(h<0||h>=b[0].length||p<0||p>b.length)return}else{if(n.inbox(e-y[0],e-y[y.length-1],0)>0||n.inbox(r-x[0],r-x[x.length-1],0)>0)return;if(c){var S;for(M=[2*y[0]-y[1]],S=1;Sg&&(v=Math.max(v,Math.abs(t[a][o]-d)/(m-g))))}return v}e.exports=function(t,e){var r,i=1;for(o(t,e),r=0;r.01;r++)i=o(t,e,a(i));return i>.01&&n.log("interp2d didn't converge quickly",i),t}},{"../../lib":778}],1075:[function(t,e,r){"use strict";var n=t("../../registry"),i=t("../../lib").isArrayOrTypedArray;e.exports=function(t,e,r,a,o,s){var l,c,u,f=[],h=n.traceIs(t,"contour"),p=n.traceIs(t,"histogram"),d=n.traceIs(t,"gl2d");if(i(e)&&e.length>1&&!p&&"category"!==s.type){var g=e.length;if(!(g<=o))return h?e.slice(0,o):e.slice(0,o+1);if(h||d)f=e.slice(0,o);else if(1===o)f=[e[0]-.5,e[0]+.5];else{for(f=[1.5*e[0]-.5*e[1]],u=1;u0;)h=p.c2p(T[y]),y--;for(h0;)v=d.c2p(k[y]),y--;if(v0&&(a=!0);for(var l=0;la){var o=a-r[t];return r[t]=a,o}}return 0},max:function(t,e,r,i){var a=i[e];if(n(a)){if(a=Number(a),!n(r[t]))return r[t]=a,a;if(r[t]c?t>o?t>1.1*i?i:t>1.1*a?a:o:t>s?s:t>l?l:c:Math.pow(10,Math.floor(Math.log(t)/Math.LN10))}function p(t,e,r,n,a,s){if(n&&t>o){var l=d(e,a,s),c=d(r,a,s),u=t===i?0:1;return l[u]!==c[u]}return Math.floor(r/t)-Math.floor(e/t)>.1}function d(t,e,r){var n=e.c2d(t,i,r).split("-");return""===n[0]&&(n.unshift(),n[0]="-"+n[0]),n}e.exports=function(t,e,r,n,a){var s,l,c=-1.1*e,h=-.1*e,p=t-h,d=r[0],g=r[1],m=Math.min(f(d+h,d+p,n,a),f(g+h,g+p,n,a)),v=Math.min(f(d+c,d+h,n,a),f(g+c,g+h,n,a));if(m>v&&vo){var y=s===i?1:6,x=s===i?"M12":"M1";return function(e,r){var o=n.c2d(e,i,a),s=o.indexOf("-",y);s>0&&(o=o.substr(0,s));var c=n.d2c(o,0,a);if(cr.r2l(B)&&(j=o.tickIncrement(j,b.size,!0,p)),O.start=r.l2r(j),F||i.nestedProperty(e,v+".start").set(O.start)}var U=b.end,V=r.r2l(z.end),q=void 0!==V;if((b.endFound||q)&&V!==r.r2l(U)){var H=q?V:i.aggNums(Math.max,null,d);O.end=r.l2r(H),q||i.nestedProperty(e,v+".start").set(O.end)}var G="autobin"+s;return!1===e._input[G]&&(e._input[v]=i.extendFlat({},e[v]||{}),delete e._input[G],delete e[G]),[O,d]}e.exports={calc:function(t,e){var r,a,p,d,g=[],m=[],v=o.getFromId(t,"h"===e.orientation?e.yaxis:e.xaxis),y="h"===e.orientation?"y":"x",x={x:"y",y:"x"}[y],b=e[y+"calendar"],_=e.cumulative,w=h(t,e,v,y),T=w[0],k=w[1],M="string"==typeof T.size,A=[],S=M?A:T,E=[],C=[],L=[],I=0,P=e.histnorm,z=e.histfunc,O=-1!==P.indexOf("density");_.enabled&&O&&(P=P.replace(/ ?density$/,""),O=!1);var D,R="max"===z||"min"===z?null:0,F=l.count,B=c[P],N=!1,j=function(t){return v.r2c(t,0,b)};for(i.isArrayOrTypedArray(e[x])&&"count"!==z&&(D=e[x],N="avg"===z,F=l[z]),r=j(T.start),p=j(T.end)+(r-o.tickIncrement(r,T.size,!1,b))/1e6;r=0&&d=0;n--)s(n);else if("increasing"===e){for(n=1;n=0;n--)t[n]+=t[n+1];"exclude"===r&&(t.push(0),t.shift())}}(m,_.direction,_.currentbin);var J=Math.min(g.length,m.length),K=[],Q=0,$=J-1;for(r=0;r=Q;r--)if(m[r]){$=r;break}for(r=Q;r<=$;r++)if(n(g[r])&&n(m[r])){var tt={p:g[r],s:m[r],b:0};_.enabled||(tt.pts=L[r],G?tt.ph0=tt.ph1=L[r].length?k[L[r][0]]:g[r]:(e._computePh=!0,tt.ph0=q(A[r]),tt.ph1=q(A[r+1],!0))),K.push(tt)}return 1===K.length&&(K[0].width1=o.tickIncrement(K[0].p,T.size,!1,b)-K[0].p),s(K,e),i.isArrayOrTypedArray(e.selectedpoints)&&i.tagSelected(K,e,X),K},calcAllAutoBins:h}},{"../../lib":778,"../../plots/cartesian/axes":828,"../../registry":911,"../bar/arrays_to_calcdata":920,"./average":1085,"./bin_functions":1087,"./bin_label_vals":1088,"./norm_functions":1096,"fast-isnumeric":241}],1090:[function(t,e,r){"use strict";e.exports={eventDataKeys:["binNumber"]}},{}],1091:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../plots/cartesian/axis_ids"),a=t("../../registry").traceIs,o=t("../bar/defaults").handleGroupingDefaults,s=n.nestedProperty,l=t("../../plots/cartesian/constraints").getAxisGroup,c=[{aStr:{x:"xbins.start",y:"ybins.start"},name:"start"},{aStr:{x:"xbins.end",y:"ybins.end"},name:"end"},{aStr:{x:"xbins.size",y:"ybins.size"},name:"size"},{aStr:{x:"nbinsx",y:"nbinsy"},name:"nbins"}],u=["x","y"];e.exports=function(t,e){var r,f,h,p,d,g,m,v=e._histogramBinOpts={},y=[],x={},b=[];function _(t,e){return n.coerce(r._input,r,r._module.attributes,t,e)}function w(t){return"v"===t.orientation?"x":"y"}function T(t,r,a){var o=t.uid+"__"+a;r||(r=o);var s=function(t,r){return i.getFromTrace({_fullLayout:e},t,r).type}(t,a),l=t[a+"calendar"]||"",c=v[r],u=!0;c&&(s===c.axType&&l===c.calendar?(u=!1,c.traces.push(t),c.dirs.push(a)):(r=o,s!==c.axType&&n.warn(["Attempted to group the bins of trace",t.index,"set on a","type:"+s,"axis","with bins on","type:"+c.axType,"axis."].join(" ")),l!==c.calendar&&n.warn(["Attempted to group the bins of trace",t.index,"set with a",l,"calendar","with bins",c.calendar?"on a "+c.calendar+" calendar":"w/o a set calendar"].join(" ")))),u&&(v[r]={traces:[t],dirs:[a],axType:s,calendar:t[a+"calendar"]||""}),t["_"+a+"bingroup"]=r}for(d=0;dS&&T.splice(S,T.length-S),A.length>S&&A.splice(S,A.length-S);var E=[],C=[],L=[],I="string"==typeof w.size,P="string"==typeof M.size,z=[],O=[],D=I?z:w,R=P?O:M,F=0,B=[],N=[],j=e.histnorm,U=e.histfunc,V=-1!==j.indexOf("density"),q="max"===U||"min"===U?null:0,H=a.count,G=o[j],Y=!1,W=[],X=[],Z="z"in e?e.z:"marker"in e&&Array.isArray(e.marker.color)?e.marker.color:"";Z&&"count"!==U&&(Y="avg"===U,H=a[U]);var J=w.size,K=x(w.start),Q=x(w.end)+(K-i.tickIncrement(K,J,!1,v))/1e6;for(r=K;r=0&&p=0&&d0||n.inbox(r-o.y0,r-(o.y0+o.h*s.dy),0)>0)){var u,f=Math.floor((e-o.x0)/s.dx),h=Math.floor(Math.abs(r-o.y0)/s.dy);if(s._hasZ?u=o.z[h][f]:s._hasSource&&(u=s._canvas.el.getContext("2d").getImageData(f,h,1,1).data),u){var p,d=o.hi||s.hoverinfo;if(d){var g=d.split("+");-1!==g.indexOf("all")&&(g=["color"]),-1!==g.indexOf("color")&&(p=!0)}var m,v=a.colormodel[s.colormodel],y=v.colormodel||s.colormodel,x=y.length,b=s._scaler(u),_=v.suffix,w=[];(s.hovertemplate||p)&&(w.push("["+[b[0]+_[0],b[1]+_[1],b[2]+_[2]].join(", ")),4===x&&w.push(", "+b[3]+_[3]),w.push("]"),w=w.join(""),t.extraText=y.toUpperCase()+": "+w),Array.isArray(s.hovertext)&&Array.isArray(s.hovertext[h])?m=s.hovertext[h][f]:Array.isArray(s.text)&&Array.isArray(s.text[h])&&(m=s.text[h][f]);var T=c.c2p(o.y0+(h+.5)*s.dy),k=o.x0+(f+.5)*s.dx,M=o.y0+(h+.5)*s.dy,A="["+u.slice(0,s.colormodel.length).join(", ")+"]";return[i.extendFlat(t,{index:[h,f],x0:l.c2p(o.x0+f*s.dx),x1:l.c2p(o.x0+(f+1)*s.dx),y0:T,y1:T,color:b,xVal:k,xLabelVal:k,yVal:M,yLabelVal:M,zLabelVal:A,text:m,hovertemplateLabels:{zLabel:A,colorLabel:w,"color[0]Label":b[0]+_[0],"color[1]Label":b[1]+_[1],"color[2]Label":b[2]+_[2],"color[3]Label":b[3]+_[3]}})]}}}},{"../../components/fx":683,"../../lib":778,"./constants":1108}],1113:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),calc:t("./calc"),plot:t("./plot"),style:t("./style"),hoverPoints:t("./hover"),eventData:t("./event_data"),moduleType:"trace",name:"image",basePlotModule:t("../../plots/cartesian"),categories:["cartesian","svg","2dMap","noSortingByValue"],animatable:!1,meta:{}}},{"../../plots/cartesian":841,"./attributes":1106,"./calc":1107,"./defaults":1109,"./event_data":1110,"./hover":1112,"./plot":1114,"./style":1115}],1114:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../lib"),a=i.strTranslate,o=t("../../constants/xmlns_namespaces"),s=t("./constants"),l=i.isIOS()||i.isSafari()||i.isIE();e.exports=function(t,e,r,c){var u=e.xaxis,f=e.yaxis,h=!(l||t._context._exportedPlot);i.makeTraceGroups(c,r,"im").each((function(e){var r=n.select(this),l=e[0],c=l.trace,p=h&&!c._hasZ&&c._hasSource&&"linear"===u.type&&"linear"===f.type;c._fastImage=p;var d,g,m,v,y,x,b=l.z,_=l.x0,w=l.y0,T=l.w,k=l.h,M=c.dx,A=c.dy;for(x=0;void 0===d&&x0;)g=u.c2p(_+x*M),x--;for(x=0;void 0===v&&x0;)y=f.c2p(w+x*A),x--;if(gP[0];if(z||O){var D=d+S/2,R=v+E/2;L+="transform:"+a(D+"px",R+"px")+"scale("+(z?-1:1)+","+(O?-1:1)+")"+a(-D+"px",-R+"px")+";"}}C.attr("style",L);var F=new Promise((function(t){if(c._hasZ)t();else if(c._hasSource)if(c._canvas&&c._canvas.el.width===T&&c._canvas.el.height===k&&c._canvas.source===c.source)t();else{var e=document.createElement("canvas");e.width=T,e.height=k;var r=e.getContext("2d");c._image=c._image||new Image;var n=c._image;n.onload=function(){r.drawImage(n,0,0),c._canvas={el:e,source:c.source},t()},n.setAttribute("src",c.source)}})).then((function(){var t;if(c._hasZ)t=B((function(t,e){return b[e][t]})).toDataURL("image/png");else if(c._hasSource)if(p)t=c.source;else{var e=c._canvas.el.getContext("2d").getImageData(0,0,T,k).data;t=B((function(t,r){var n=4*(r*T+t);return[e[n],e[n+1],e[n+2],e[n+3]]})).toDataURL("image/png")}C.attr({"xlink:href":t,height:E,width:S,x:d,y:v})}));t._promises.push(F)}function B(t){var e=document.createElement("canvas");e.width=S,e.height=E;var r,n=e.getContext("2d"),a=function(t){return i.constrain(Math.round(u.c2p(_+t*M)-d),0,S)},o=function(t){return i.constrain(Math.round(f.c2p(w+t*A)-v),0,E)},h=s.colormodel[c.colormodel],p=h.colormodel||c.colormodel,g=h.fmt;for(x=0;x0}function _(t){t.each((function(t){m.stroke(n.select(this),t.line.color)})).each((function(t){m.fill(n.select(this),t.color)})).style("stroke-width",(function(t){return t.line.width}))}function w(t,e,r){var n=t._fullLayout,a=i.extendFlat({type:"linear",ticks:"outside",range:r,showline:!0},e),o={type:"linear",_id:"x"+e._id},s={letter:"x",font:n.font,noHover:!0,noTickson:!0};function l(t,e){return i.coerce(a,o,g,t,e)}return p(a,o,l,s,n),d(a,o,l,s),o}function T(t,e,r){return[Math.min(e/t.width,r/t.height),t,e+"x"+r]}function k(t,e,r,i){var a=document.createElementNS("http://www.w3.org/2000/svg","text"),o=n.select(a);return o.text(t).attr("x",0).attr("y",0).attr("text-anchor",r).attr("data-unformatted",t).call(f.convertToTspans,i).call(c.font,e),c.bBox(o.node())}function M(t,e,r,n,a,o){var s="_cache"+e;t[s]&&t[s].key===a||(t[s]={key:a,value:r});var l=i.aggNums(o,null,[t[s].value,n],2);return t[s].value=l,l}e.exports=function(t,e,r,p){var d,g=t._fullLayout;b(r)&&p&&(d=p()),i.makeTraceGroups(g._indicatorlayer,e,"trace").each((function(e){var p,A,S,E,C,L=e[0].trace,I=n.select(this),P=L._hasGauge,z=L._isAngular,O=L._isBullet,D=L.domain,R={w:g._size.w*(D.x[1]-D.x[0]),h:g._size.h*(D.y[1]-D.y[0]),l:g._size.l+g._size.w*D.x[0],r:g._size.r+g._size.w*(1-D.x[1]),t:g._size.t+g._size.h*(1-D.y[1]),b:g._size.b+g._size.h*D.y[0]},F=R.l+R.w/2,B=R.t+R.h/2,N=Math.min(R.w/2,R.h),j=u.innerRadius*N,U=L.align||"center";if(A=B,P){if(z&&(p=F,A=B+N/2,S=function(t){return function(t,e){var r=Math.sqrt(t.width/2*(t.width/2)+t.height*t.height);return[e/r,t,e]}(t,.9*j)}),O){var V=u.bulletPadding,q=1-u.bulletNumberDomainSize+V;p=R.l+(q+(1-q)*y[U])*R.w,S=function(t){return T(t,(u.bulletNumberDomainSize-V)*R.w,R.h)}}}else p=R.l+y[U]*R.w,S=function(t){return T(t,R.w,R.h)};!function(t,e,r,s){var l,u,p,d=r[0].trace,g=s.numbersX,_=s.numbersY,T=d.align||"center",A=v[T],S=s.transitionOpts,E=s.onComplete,C=i.ensureSingle(e,"g","numbers"),L=[];d._hasNumber&&L.push("number");d._hasDelta&&(L.push("delta"),"left"===d.delta.position&&L.reverse());var I=C.selectAll("text").data(L);function P(e,r,n,i){if(!e.match("s")||n>=0==i>=0||r(n).slice(-1).match(x)||r(i).slice(-1).match(x))return r;var a=e.slice().replace("s","f").replace(/\d+/,(function(t){return parseInt(t)-1})),o=w(t,{tickformat:a});return function(t){return Math.abs(t)<1?h.tickText(o,t).text:r(t)}}I.enter().append("text"),I.attr("text-anchor",(function(){return A})).attr("class",(function(t){return t})).attr("x",null).attr("y",null).attr("dx",null).attr("dy",null),I.exit().remove();var z,O=d.mode+d.align;d._hasDelta&&(z=function(){var e=w(t,{tickformat:d.delta.valueformat},d._range);e.setScale(),h.prepTicks(e);var i=function(t){return h.tickText(e,t).text},a=function(t){return d.delta.relative?t.relativeDelta:t.delta},o=function(t,e){return 0===t||"number"!=typeof t||isNaN(t)?"-":(t>0?d.delta.increasing.symbol:d.delta.decreasing.symbol)+e(t)},s=function(t){return t.delta>=0?d.delta.increasing.color:d.delta.decreasing.color};void 0===d._deltaLastValue&&(d._deltaLastValue=a(r[0]));var l=C.select("text.delta");function p(){l.text(o(a(r[0]),i)).call(m.fill,s(r[0])).call(f.convertToTspans,t)}return l.call(c.font,d.delta.font).call(m.fill,s({delta:d._deltaLastValue})),b(S)?l.transition().duration(S.duration).ease(S.easing).tween("text",(function(){var t=n.select(this),e=a(r[0]),l=d._deltaLastValue,c=P(d.delta.valueformat,i,l,e),u=n.interpolateNumber(l,e);return d._deltaLastValue=e,function(e){t.text(o(u(e),c)),t.call(m.fill,s({delta:u(e)}))}})).each("end",(function(){p(),E&&E()})).each("interrupt",(function(){p(),E&&E()})):p(),u=k(o(a(r[0]),i),d.delta.font,A,t),l}(),O+=d.delta.position+d.delta.font.size+d.delta.font.family+d.delta.valueformat,O+=d.delta.increasing.symbol+d.delta.decreasing.symbol,p=u);d._hasNumber&&(!function(){var e=w(t,{tickformat:d.number.valueformat},d._range);e.setScale(),h.prepTicks(e);var i=function(t){return h.tickText(e,t).text},a=d.number.suffix,o=d.number.prefix,s=C.select("text.number");function u(){var e="number"==typeof r[0].y?o+i(r[0].y)+a:"-";s.text(e).call(c.font,d.number.font).call(f.convertToTspans,t)}b(S)?s.transition().duration(S.duration).ease(S.easing).each("end",(function(){u(),E&&E()})).each("interrupt",(function(){u(),E&&E()})).attrTween("text",(function(){var t=n.select(this),e=n.interpolateNumber(r[0].lastY,r[0].y);d._lastValue=r[0].y;var s=P(d.number.valueformat,i,r[0].lastY,r[0].y);return function(r){t.text(o+s(e(r))+a)}})):u(),l=k(o+i(r[0].y)+a,d.number.font,A,t)}(),O+=d.number.font.size+d.number.font.family+d.number.valueformat+d.number.suffix+d.number.prefix,p=l);if(d._hasDelta&&d._hasNumber){var D,R,F=[(l.left+l.right)/2,(l.top+l.bottom)/2],B=[(u.left+u.right)/2,(u.top+u.bottom)/2],N=.75*d.delta.font.size;"left"===d.delta.position&&(D=M(d,"deltaPos",0,-1*(l.width*y[d.align]+u.width*(1-y[d.align])+N),O,Math.min),R=F[1]-B[1],p={width:l.width+u.width+N,height:Math.max(l.height,u.height),left:u.left+D,right:l.right,top:Math.min(l.top,u.top+R),bottom:Math.max(l.bottom,u.bottom+R)}),"right"===d.delta.position&&(D=M(d,"deltaPos",0,l.width*(1-y[d.align])+u.width*y[d.align]+N,O,Math.max),R=F[1]-B[1],p={width:l.width+u.width+N,height:Math.max(l.height,u.height),left:l.left,right:u.right+D,top:Math.min(l.top,u.top+R),bottom:Math.max(l.bottom,u.bottom+R)}),"bottom"===d.delta.position&&(D=null,R=u.height,p={width:Math.max(l.width,u.width),height:l.height+u.height,left:Math.min(l.left,u.left),right:Math.max(l.right,u.right),top:l.bottom-l.height,bottom:l.bottom+u.height}),"top"===d.delta.position&&(D=null,R=l.top,p={width:Math.max(l.width,u.width),height:l.height+u.height,left:Math.min(l.left,u.left),right:Math.max(l.right,u.right),top:l.bottom-l.height-u.height,bottom:l.bottom}),z.attr({dx:D,dy:R})}(d._hasNumber||d._hasDelta)&&C.attr("transform",(function(){var t=s.numbersScaler(p);O+=t[2];var e,r=M(d,"numbersScale",1,t[0],O,Math.min);d._scaleNumbers||(r=1),e=d._isAngular?_-r*p.bottom:_-r*(p.top+p.bottom)/2,d._numbersTop=r*p.top+e;var n=p[T];"center"===T&&(n=(p.left+p.right)/2);var i=g-r*n;return i=M(d,"numbersTranslate",0,i,O,Math.max),o(i,e)+a(r)}))}(t,I,e,{numbersX:p,numbersY:A,numbersScaler:S,transitionOpts:r,onComplete:d}),P&&(E={range:L.gauge.axis.range,color:L.gauge.bgcolor,line:{color:L.gauge.bordercolor,width:0},thickness:1},C={range:L.gauge.axis.range,color:"rgba(0, 0, 0, 0)",line:{color:L.gauge.bordercolor,width:L.gauge.borderwidth},thickness:1});var H=I.selectAll("g.angular").data(z?e:[]);H.exit().remove();var G=I.selectAll("g.angularaxis").data(z?e:[]);G.exit().remove(),z&&function(t,e,r,i){var a,c,u,f,p=r[0].trace,d=i.size,g=i.radius,m=i.innerRadius,v=i.gaugeBg,y=i.gaugeOutline,x=[d.l+d.w/2,d.t+d.h/2+g/2],T=i.gauge,k=i.layer,M=i.transitionOpts,A=i.onComplete,S=Math.PI/2;function E(t){var e=p.gauge.axis.range[0],r=(t-e)/(p.gauge.axis.range[1]-e)*Math.PI-S;return r<-S?-S:r>S?S:r}function C(t){return n.svg.arc().innerRadius((m+g)/2-t/2*(g-m)).outerRadius((m+g)/2+t/2*(g-m)).startAngle(-S)}function L(t){t.attr("d",(function(t){return C(t.thickness).startAngle(E(t.range[0])).endAngle(E(t.range[1]))()}))}T.enter().append("g").classed("angular",!0),T.attr("transform",o(x[0],x[1])),k.enter().append("g").classed("angularaxis",!0).classed("crisp",!0),k.selectAll("g.xangularaxistick,path,text").remove(),(a=w(t,p.gauge.axis)).type="linear",a.range=p.gauge.axis.range,a._id="xangularaxis",a.setScale();var I=function(t){return(a.range[0]-t.x)/(a.range[1]-a.range[0])*Math.PI+Math.PI},P={},z=h.makeLabelFns(a,0).labelStandoff;P.xFn=function(t){var e=I(t);return Math.cos(e)*z},P.yFn=function(t){var e=I(t),r=Math.sin(e)>0?.2:1;return-Math.sin(e)*(z+t.fontSize*r)+Math.abs(Math.cos(e))*(t.fontSize*l)},P.anchorFn=function(t){var e=I(t),r=Math.cos(e);return Math.abs(r)<.1?"middle":r>0?"start":"end"},P.heightFn=function(t,e,r){var n=I(t);return-.5*(1+Math.sin(n))*r};var O=function(t){return o(x[0]+g*Math.cos(t),x[1]-g*Math.sin(t))};u=function(t){return O(I(t))};if(c=h.calcTicks(a),f=h.getTickSigns(a)[2],a.visible){f="inside"===a.ticks?-1:1;var D=(a.linewidth||1)/2;h.drawTicks(t,a,{vals:c,layer:k,path:"M"+f*D+",0h"+f*a.ticklen,transFn:function(t){var e=I(t);return O(e)+"rotate("+-s(e)+")"}}),h.drawLabels(t,a,{vals:c,layer:k,transFn:u,labelFns:P})}var R=[v].concat(p.gauge.steps),F=T.selectAll("g.bg-arc").data(R);F.enter().append("g").classed("bg-arc",!0).append("path"),F.select("path").call(L).call(_),F.exit().remove();var B=C(p.gauge.bar.thickness),N=T.selectAll("g.value-arc").data([p.gauge.bar]);N.enter().append("g").classed("value-arc",!0).append("path");var j=N.select("path");b(M)?(j.transition().duration(M.duration).ease(M.easing).each("end",(function(){A&&A()})).each("interrupt",(function(){A&&A()})).attrTween("d",(U=B,V=E(r[0].lastY),q=E(r[0].y),function(){var t=n.interpolate(V,q);return function(e){return U.endAngle(t(e))()}})),p._lastValue=r[0].y):j.attr("d","number"==typeof r[0].y?B.endAngle(E(r[0].y)):"M0,0Z");var U,V,q;j.call(_),N.exit().remove(),R=[];var H=p.gauge.threshold.value;H&&R.push({range:[H,H],color:p.gauge.threshold.color,line:{color:p.gauge.threshold.line.color,width:p.gauge.threshold.line.width},thickness:p.gauge.threshold.thickness});var G=T.selectAll("g.threshold-arc").data(R);G.enter().append("g").classed("threshold-arc",!0).append("path"),G.select("path").call(L).call(_),G.exit().remove();var Y=T.selectAll("g.gauge-outline").data([y]);Y.enter().append("g").classed("gauge-outline",!0).append("path"),Y.select("path").call(L).call(_),Y.exit().remove()}(t,0,e,{radius:N,innerRadius:j,gauge:H,layer:G,size:R,gaugeBg:E,gaugeOutline:C,transitionOpts:r,onComplete:d});var Y=I.selectAll("g.bullet").data(O?e:[]);Y.exit().remove();var W=I.selectAll("g.bulletaxis").data(O?e:[]);W.exit().remove(),O&&function(t,e,r,n){var i,a,s,l,c,f=r[0].trace,p=n.gauge,d=n.layer,g=n.gaugeBg,v=n.gaugeOutline,y=n.size,x=f.domain,T=n.transitionOpts,k=n.onComplete;p.enter().append("g").classed("bullet",!0),p.attr("transform",o(y.l,y.t)),d.enter().append("g").classed("bulletaxis",!0).classed("crisp",!0),d.selectAll("g.xbulletaxistick,path,text").remove();var M=y.h,A=f.gauge.bar.thickness*M,S=x.x[0],E=x.x[0]+(x.x[1]-x.x[0])*(f._hasNumber||f._hasDelta?1-u.bulletNumberDomainSize:1);(i=w(t,f.gauge.axis))._id="xbulletaxis",i.domain=[S,E],i.setScale(),a=h.calcTicks(i),s=h.makeTransTickFn(i),l=h.getTickSigns(i)[2],c=y.t+y.h,i.visible&&(h.drawTicks(t,i,{vals:"inside"===i.ticks?h.clipEnds(i,a):a,layer:d,path:h.makeTickPath(i,c,l),transFn:s}),h.drawLabels(t,i,{vals:a,layer:d,transFn:s,labelFns:h.makeLabelFns(i,c)}));function C(t){t.attr("width",(function(t){return Math.max(0,i.c2p(t.range[1])-i.c2p(t.range[0]))})).attr("x",(function(t){return i.c2p(t.range[0])})).attr("y",(function(t){return.5*(1-t.thickness)*M})).attr("height",(function(t){return t.thickness*M}))}var L=[g].concat(f.gauge.steps),I=p.selectAll("g.bg-bullet").data(L);I.enter().append("g").classed("bg-bullet",!0).append("rect"),I.select("rect").call(C).call(_),I.exit().remove();var P=p.selectAll("g.value-bullet").data([f.gauge.bar]);P.enter().append("g").classed("value-bullet",!0).append("rect"),P.select("rect").attr("height",A).attr("y",(M-A)/2).call(_),b(T)?P.select("rect").transition().duration(T.duration).ease(T.easing).each("end",(function(){k&&k()})).each("interrupt",(function(){k&&k()})).attr("width",Math.max(0,i.c2p(Math.min(f.gauge.axis.range[1],r[0].y)))):P.select("rect").attr("width","number"==typeof r[0].y?Math.max(0,i.c2p(Math.min(f.gauge.axis.range[1],r[0].y))):0);P.exit().remove();var z=r.filter((function(){return f.gauge.threshold.value})),O=p.selectAll("g.threshold-bullet").data(z);O.enter().append("g").classed("threshold-bullet",!0).append("line"),O.select("line").attr("x1",i.c2p(f.gauge.threshold.value)).attr("x2",i.c2p(f.gauge.threshold.value)).attr("y1",(1-f.gauge.threshold.thickness)/2*M).attr("y2",(1-(1-f.gauge.threshold.thickness)/2)*M).call(m.stroke,f.gauge.threshold.line.color).style("stroke-width",f.gauge.threshold.line.width),O.exit().remove();var D=p.selectAll("g.gauge-outline").data([v]);D.enter().append("g").classed("gauge-outline",!0).append("rect"),D.select("rect").call(C).call(_),D.exit().remove()}(t,0,e,{gauge:Y,layer:W,size:R,gaugeBg:E,gaugeOutline:C,transitionOpts:r,onComplete:d});var X=I.selectAll("text.title").data(e);X.exit().remove(),X.enter().append("text").classed("title",!0),X.attr("text-anchor",(function(){return O?v.right:v[L.title.align]})).text(L.title.text).call(c.font,L.title.font).call(f.convertToTspans,t),X.attr("transform",(function(){var t,e=R.l+R.w*y[L.title.align],r=u.titlePadding,n=c.bBox(X.node());if(P){if(z)if(L.gauge.axis.visible)t=c.bBox(G.node()).top-r-n.bottom;else t=R.t+R.h/2-N/2-n.bottom-r;O&&(t=A-(n.top+n.bottom)/2,e=R.l-u.bulletPadding*R.w)}else t=L._numbersTop-r-n.bottom;return o(e,t)}))}))}},{"../../components/color":643,"../../components/drawing":665,"../../constants/alignment":745,"../../lib":778,"../../lib/svg_text_utils":803,"../../plots/cartesian/axes":828,"../../plots/cartesian/axis_defaults":830,"../../plots/cartesian/layout_attributes":842,"../../plots/cartesian/position_defaults":845,"./constants":1119,d3:169}],1123:[function(t,e,r){"use strict";var n=t("../../components/colorscale/attributes"),i=t("../../plots/template_attributes").hovertemplateAttrs,a=t("../mesh3d/attributes"),o=t("../../plots/attributes"),s=t("../../lib/extend").extendFlat,l=t("../../plot_api/edit_types").overrideAll;var c=e.exports=l(s({x:{valType:"data_array"},y:{valType:"data_array"},z:{valType:"data_array"},value:{valType:"data_array"},isomin:{valType:"number"},isomax:{valType:"number"},surface:{show:{valType:"boolean",dflt:!0},count:{valType:"integer",dflt:2,min:1},fill:{valType:"number",min:0,max:1,dflt:1},pattern:{valType:"flaglist",flags:["A","B","C","D","E"],extras:["all","odd","even"],dflt:"all"}},spaceframe:{show:{valType:"boolean",dflt:!1},fill:{valType:"number",min:0,max:1,dflt:.15}},slices:{x:{show:{valType:"boolean",dflt:!1},locations:{valType:"data_array",dflt:[]},fill:{valType:"number",min:0,max:1,dflt:1}},y:{show:{valType:"boolean",dflt:!1},locations:{valType:"data_array",dflt:[]},fill:{valType:"number",min:0,max:1,dflt:1}},z:{show:{valType:"boolean",dflt:!1},locations:{valType:"data_array",dflt:[]},fill:{valType:"number",min:0,max:1,dflt:1}}},caps:{x:{show:{valType:"boolean",dflt:!0},fill:{valType:"number",min:0,max:1,dflt:1}},y:{show:{valType:"boolean",dflt:!0},fill:{valType:"number",min:0,max:1,dflt:1}},z:{show:{valType:"boolean",dflt:!0},fill:{valType:"number",min:0,max:1,dflt:1}}},text:{valType:"string",dflt:"",arrayOk:!0},hovertext:{valType:"string",dflt:"",arrayOk:!0},hovertemplate:i(),showlegend:s({},o.showlegend,{dflt:!1})},n("",{colorAttr:"`value`",showScaleDflt:!0,editTypeOverride:"calc"}),{opacity:a.opacity,lightposition:a.lightposition,lighting:a.lighting,flatshading:a.flatshading,contour:a.contour,hoverinfo:s({},o.hoverinfo)}),"calc","nested");c.flatshading.dflt=!0,c.lighting.facenormalsepsilon.dflt=0,c.x.editType=c.y.editType=c.z.editType=c.value.editType="calc+clearAxisTypes",c.transforms=void 0},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plot_api/edit_types":810,"../../plots/attributes":824,"../../plots/template_attributes":906,"../mesh3d/attributes":1128}],1124:[function(t,e,r){"use strict";var n=t("../../components/colorscale/calc"),i=t("../streamtube/calc").processGrid,a=t("../streamtube/calc").filter;e.exports=function(t,e){e._len=Math.min(e.x.length,e.y.length,e.z.length,e.value.length),e._x=a(e.x,e._len),e._y=a(e.y,e._len),e._z=a(e.z,e._len),e._value=a(e.value,e._len);var r=i(e);e._gridFill=r.fill,e._Xs=r.Xs,e._Ys=r.Ys,e._Zs=r.Zs,e._len=r.len;for(var o=1/0,s=-1/0,l=0;l0;r--){var n=Math.min(e[r],e[r-1]),i=Math.max(e[r],e[r-1]);if(i>n&&n-1}function R(t,e){return null===t?e:t}function F(e,r,n){L();var i,a,o,l=[r],c=[n];if(s>=1)l=[r],c=[n];else if(s>0){var u=function(t,e){var r=t[0],n=t[1],i=t[2],a=function(t,e,r){for(var n=[],i=0;i-1?n[p]:C(d,g,v);h[p]=x>-1?x:P(d,g,v,R(e,y))}i=h[0],a=h[1],o=h[2],t._meshI.push(i),t._meshJ.push(a),t._meshK.push(o),++m}}function B(t,e,r,n){var i=t[3];in&&(i=n);for(var a=(t[3]-i)/(t[3]-e[3]+1e-9),o=[],s=0;s<4;s++)o[s]=(1-a)*t[s]+a*e[s];return o}function N(t,e,r){return t>=e&&t<=r}function j(t){var e=.001*(E-S);return t>=S-e&&t<=E+e}function U(e){for(var r=[],n=0;n<4;n++){var i=e[n];r.push([t._x[i],t._y[i],t._z[i],t._value[i]])}return r}function V(t,e,r,n,i,a){a||(a=1),r=[-1,-1,-1];var o=!1,s=[N(e[0][3],n,i),N(e[1][3],n,i),N(e[2][3],n,i)];if(!s[0]&&!s[1]&&!s[2])return!1;var l=function(t,e,r){return j(e[0][3])&&j(e[1][3])&&j(e[2][3])?(F(t,e,r),!0):a<3&&V(t,e,r,S,E,++a)};if(s[0]&&s[1]&&s[2])return l(t,e,r)||o;var c=!1;return[[0,1,2],[2,0,1],[1,2,0]].forEach((function(a){if(s[a[0]]&&s[a[1]]&&!s[a[2]]){var u=e[a[0]],f=e[a[1]],h=e[a[2]],p=B(h,u,n,i),d=B(h,f,n,i);o=l(t,[d,p,u],[-1,-1,r[a[0]]])||o,o=l(t,[u,f,d],[r[a[0]],r[a[1]],-1])||o,c=!0}})),c||[[0,1,2],[1,2,0],[2,0,1]].forEach((function(a){if(s[a[0]]&&!s[a[1]]&&!s[a[2]]){var u=e[a[0]],f=e[a[1]],h=e[a[2]],p=B(f,u,n,i),d=B(h,u,n,i);o=l(t,[d,p,u],[-1,-1,r[a[0]]])||o,c=!0}})),o}function q(t,e,r,n){var i=!1,a=U(e),o=[N(a[0][3],r,n),N(a[1][3],r,n),N(a[2][3],r,n),N(a[3][3],r,n)];if(!(o[0]||o[1]||o[2]||o[3]))return i;if(o[0]&&o[1]&&o[2]&&o[3])return g&&(i=function(t,e,r){var n=function(n,i,a){F(t,[e[n],e[i],e[a]],[r[n],r[i],r[a]])};n(0,1,2),n(3,0,1),n(2,3,0),n(1,2,3)}(t,a,e)||i),i;var s=!1;return[[0,1,2,3],[3,0,1,2],[2,3,0,1],[1,2,3,0]].forEach((function(l){if(o[l[0]]&&o[l[1]]&&o[l[2]]&&!o[l[3]]){var c=a[l[0]],u=a[l[1]],f=a[l[2]],h=a[l[3]];if(g)i=F(t,[c,u,f],[e[l[0]],e[l[1]],e[l[2]]])||i;else{var p=B(h,c,r,n),d=B(h,u,r,n),m=B(h,f,r,n);i=F(null,[p,d,m],[-1,-1,-1])||i}s=!0}})),s?i:([[0,1,2,3],[1,2,3,0],[2,3,0,1],[3,0,1,2],[0,2,3,1],[1,3,2,0]].forEach((function(l){if(o[l[0]]&&o[l[1]]&&!o[l[2]]&&!o[l[3]]){var c=a[l[0]],u=a[l[1]],f=a[l[2]],h=a[l[3]],p=B(f,c,r,n),d=B(f,u,r,n),m=B(h,u,r,n),v=B(h,c,r,n);g?(i=F(t,[c,v,p],[e[l[0]],-1,-1])||i,i=F(t,[u,d,m],[e[l[1]],-1,-1])||i):i=function(t,e,r){var n=function(n,i,a){F(t,[e[n],e[i],e[a]],[r[n],r[i],r[a]])};n(0,1,2),n(2,3,0)}(null,[p,d,m,v],[-1,-1,-1,-1])||i,s=!0}})),s||[[0,1,2,3],[1,2,3,0],[2,3,0,1],[3,0,1,2]].forEach((function(l){if(o[l[0]]&&!o[l[1]]&&!o[l[2]]&&!o[l[3]]){var c=a[l[0]],u=a[l[1]],f=a[l[2]],h=a[l[3]],p=B(u,c,r,n),d=B(f,c,r,n),m=B(h,c,r,n);g?(i=F(t,[c,p,d],[e[l[0]],-1,-1])||i,i=F(t,[c,d,m],[e[l[0]],-1,-1])||i,i=F(t,[c,m,p],[e[l[0]],-1,-1])||i):i=F(null,[p,d,m],[-1,-1,-1])||i,s=!0}})),i)}function H(t,e,r,n,i,a,o,s,l,c,u){var f=!1;return d&&(D(t,"A")&&(f=q(null,[e,r,n,a],c,u)||f),D(t,"B")&&(f=q(null,[r,n,i,l],c,u)||f),D(t,"C")&&(f=q(null,[r,a,o,l],c,u)||f),D(t,"D")&&(f=q(null,[n,a,s,l],c,u)||f),D(t,"E")&&(f=q(null,[r,n,a,l],c,u)||f)),g&&(f=q(t,[r,n,a,l],c,u)||f),f}function G(t,e,r,n,i,a,o,s){return[!0===s[0]||V(t,U([e,r,n]),[e,r,n],a,o),!0===s[1]||V(t,U([n,i,e]),[n,i,e],a,o)]}function Y(t,e,r,n,i,a,o,s,l){return s?G(t,e,r,i,n,a,o,l):G(t,r,i,n,e,a,o,l)}function W(t,e,r,n,i,a,o){var s,l,c,u,f=!1,h=function(){f=V(t,[s,l,c],[-1,-1,-1],i,a)||f,f=V(t,[c,u,s],[-1,-1,-1],i,a)||f},p=o[0],d=o[1],g=o[2];return p&&(s=z(U([k(e,r-0,n-0)])[0],U([k(e-1,r-0,n-0)])[0],p),l=z(U([k(e,r-0,n-1)])[0],U([k(e-1,r-0,n-1)])[0],p),c=z(U([k(e,r-1,n-1)])[0],U([k(e-1,r-1,n-1)])[0],p),u=z(U([k(e,r-1,n-0)])[0],U([k(e-1,r-1,n-0)])[0],p),h()),d&&(s=z(U([k(e-0,r,n-0)])[0],U([k(e-0,r-1,n-0)])[0],d),l=z(U([k(e-0,r,n-1)])[0],U([k(e-0,r-1,n-1)])[0],d),c=z(U([k(e-1,r,n-1)])[0],U([k(e-1,r-1,n-1)])[0],d),u=z(U([k(e-1,r,n-0)])[0],U([k(e-1,r-1,n-0)])[0],d),h()),g&&(s=z(U([k(e-0,r-0,n)])[0],U([k(e-0,r-0,n-1)])[0],g),l=z(U([k(e-0,r-1,n)])[0],U([k(e-0,r-1,n-1)])[0],g),c=z(U([k(e-1,r-1,n)])[0],U([k(e-1,r-1,n-1)])[0],g),u=z(U([k(e-1,r-0,n)])[0],U([k(e-1,r-0,n-1)])[0],g),h()),f}function X(t,e,r,n,i,a,o,s,l,c,u,f){var h=t;return f?(d&&"even"===t&&(h=null),H(h,e,r,n,i,a,o,s,l,c,u)):(d&&"odd"===t&&(h=null),H(h,l,s,o,a,i,n,r,e,c,u))}function Z(t,e,r,n,i){for(var a=[],o=0,s=0;sMath.abs(d-A)?[M,d]:[d,A];$(e,T[0],T[1])}}var C=[[Math.min(S,A),Math.max(S,A)],[Math.min(M,E),Math.max(M,E)]];["x","y","z"].forEach((function(e){for(var r=[],n=0;n0&&(u.push(p.id),"x"===e?f.push([p.distRatio,0,0]):"y"===e?f.push([0,p.distRatio,0]):f.push([0,0,p.distRatio]))}else c=nt(1,"x"===e?b-1:"y"===e?_-1:w-1);u.length>0&&(r[i]="x"===e?tt(null,u,a,o,f,r[i]):"y"===e?et(null,u,a,o,f,r[i]):rt(null,u,a,o,f,r[i]),i++),c.length>0&&(r[i]="x"===e?Z(null,c,a,o,r[i]):"y"===e?J(null,c,a,o,r[i]):K(null,c,a,o,r[i]),i++)}var d=t.caps[e];d.show&&d.fill&&(O(d.fill),r[i]="x"===e?Z(null,[0,b-1],a,o,r[i]):"y"===e?J(null,[0,_-1],a,o,r[i]):K(null,[0,w-1],a,o,r[i]),i++)}})),0===m&&I(),t._meshX=n,t._meshY=i,t._meshZ=a,t._meshIntensity=o,t._Xs=v,t._Ys=y,t._Zs=x}(),t}e.exports={findNearestOnAxis:l,generateIsoMeshes:h,createIsosurfaceTrace:function(t,e){var r=t.glplot.gl,i=n({gl:r}),a=new c(t,i,e.uid);return i._trace=a,a.update(e),t.glplot.add(i),a}}},{"../../components/colorscale":655,"../../lib/gl_format_color":774,"../../lib/str2rgbarray":802,"../../plots/gl3d/zip3":881,"gl-mesh3d":309}],1126:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../registry"),a=t("./attributes"),o=t("../../components/colorscale/defaults");function s(t,e,r,n,a){var s=a("isomin"),l=a("isomax");null!=l&&null!=s&&s>l&&(e.isomin=null,e.isomax=null);var c=a("x"),u=a("y"),f=a("z"),h=a("value");c&&c.length&&u&&u.length&&f&&f.length&&h&&h.length?(i.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x","y","z"],n),["x","y","z"].forEach((function(t){var e="caps."+t;a(e+".show")&&a(e+".fill");var r="slices."+t;a(r+".show")&&(a(r+".fill"),a(r+".locations"))})),a("spaceframe.show")&&a("spaceframe.fill"),a("surface.show")&&(a("surface.count"),a("surface.fill"),a("surface.pattern")),a("contour.show")&&(a("contour.color"),a("contour.width")),["text","hovertext","hovertemplate","lighting.ambient","lighting.diffuse","lighting.specular","lighting.roughness","lighting.fresnel","lighting.vertexnormalsepsilon","lighting.facenormalsepsilon","lightposition.x","lightposition.y","lightposition.z","flatshading","opacity"].forEach((function(t){a(t)})),o(t,e,n,a,{prefix:"",cLetter:"c"}),e._length=null):e.visible=!1}e.exports={supplyDefaults:function(t,e,r,i){s(t,e,r,i,(function(r,i){return n.coerce(t,e,a,r,i)}))},supplyIsoDefaults:s}},{"../../components/colorscale/defaults":653,"../../lib":778,"../../registry":911,"./attributes":1123}],1127:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults").supplyDefaults,calc:t("./calc"),colorbar:{min:"cmin",max:"cmax"},plot:t("./convert").createIsosurfaceTrace,moduleType:"trace",name:"isosurface",basePlotModule:t("../../plots/gl3d"),categories:["gl3d","showLegend"],meta:{}}},{"../../plots/gl3d":870,"./attributes":1123,"./calc":1124,"./convert":1125,"./defaults":1126}],1128:[function(t,e,r){"use strict";var n=t("../../components/colorscale/attributes"),i=t("../../plots/template_attributes").hovertemplateAttrs,a=t("../surface/attributes"),o=t("../../plots/attributes"),s=t("../../lib/extend").extendFlat;e.exports=s({x:{valType:"data_array",editType:"calc+clearAxisTypes"},y:{valType:"data_array",editType:"calc+clearAxisTypes"},z:{valType:"data_array",editType:"calc+clearAxisTypes"},i:{valType:"data_array",editType:"calc"},j:{valType:"data_array",editType:"calc"},k:{valType:"data_array",editType:"calc"},text:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertemplate:i({editType:"calc"}),delaunayaxis:{valType:"enumerated",values:["x","y","z"],dflt:"z",editType:"calc"},alphahull:{valType:"number",dflt:-1,editType:"calc"},intensity:{valType:"data_array",editType:"calc"},intensitymode:{valType:"enumerated",values:["vertex","cell"],dflt:"vertex",editType:"calc"},color:{valType:"color",editType:"calc"},vertexcolor:{valType:"data_array",editType:"calc"},facecolor:{valType:"data_array",editType:"calc"},transforms:void 0},n("",{colorAttr:"`intensity`",showScaleDflt:!0,editTypeOverride:"calc"}),{opacity:a.opacity,flatshading:{valType:"boolean",dflt:!1,editType:"calc"},contour:{show:s({},a.contours.x.show,{}),color:a.contours.x.color,width:a.contours.x.width,editType:"calc"},lightposition:{x:s({},a.lightposition.x,{dflt:1e5}),y:s({},a.lightposition.y,{dflt:1e5}),z:s({},a.lightposition.z,{dflt:0}),editType:"calc"},lighting:s({vertexnormalsepsilon:{valType:"number",min:0,max:1,dflt:1e-12,editType:"calc"},facenormalsepsilon:{valType:"number",min:0,max:1,dflt:1e-6,editType:"calc"},editType:"calc"},a.lighting),hoverinfo:s({},o.hoverinfo,{editType:"calc"}),showlegend:s({},o.showlegend,{dflt:!1})})},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"../surface/attributes":1311}],1129:[function(t,e,r){"use strict";var n=t("../../components/colorscale/calc");e.exports=function(t,e){e.intensity&&n(t,e,{vals:e.intensity,containerStr:"",cLetter:"c"})}},{"../../components/colorscale/calc":651}],1130:[function(t,e,r){"use strict";var n=t("gl-mesh3d"),i=t("delaunay-triangulate"),a=t("alpha-shape"),o=t("convex-hull"),s=t("../../lib/gl_format_color").parseColorScale,l=t("../../lib/str2rgbarray"),c=t("../../components/colorscale").extractOpts,u=t("../../plots/gl3d/zip3");function f(t,e,r){this.scene=t,this.uid=r,this.mesh=e,this.name="",this.color="#fff",this.data=null,this.showContour=!1}var h=f.prototype;function p(t){for(var e=[],r=t.length,n=0;n=e-.5)return!1;return!0}h.handlePick=function(t){if(t.object===this.mesh){var e=t.index=t.data.index;t.data._cellCenter?t.traceCoordinate=t.data.dataCoordinate:t.traceCoordinate=[this.data.x[e],this.data.y[e],this.data.z[e]];var r=this.data.hovertext||this.data.text;return Array.isArray(r)&&void 0!==r[e]?t.textLabel=r[e]:r&&(t.textLabel=r),!0}},h.update=function(t){var e=this.scene,r=e.fullSceneLayout;this.data=t;var n,f=t.x.length,h=u(d(r.xaxis,t.x,e.dataScale[0],t.xcalendar),d(r.yaxis,t.y,e.dataScale[1],t.ycalendar),d(r.zaxis,t.z,e.dataScale[2],t.zcalendar));if(t.i&&t.j&&t.k){if(t.i.length!==t.j.length||t.j.length!==t.k.length||!m(t.i,f)||!m(t.j,f)||!m(t.k,f))return;n=u(g(t.i),g(t.j),g(t.k))}else n=0===t.alphahull?o(h):t.alphahull>0?a(t.alphahull,h):function(t,e){for(var r=["x","y","z"].indexOf(t),n=[],a=e.length,o=0;ov):m=M>w,v=M;var A=c(w,T,k,M);A.pos=_,A.yc=(w+M)/2,A.i=b,A.dir=m?"increasing":"decreasing",A.x=A.pos,A.y=[k,T],y&&(A.orig_p=r[b]),d&&(A.tx=e.text[b]),g&&(A.htx=e.hovertext[b]),x.push(A)}else x.push({pos:_,empty:!0})}return e._extremes[l._id]=a.findExtremes(l,n.concat(h,f),{padded:!0}),x.length&&(x[0].t={labels:{open:i(t,"open:")+" ",high:i(t,"high:")+" ",low:i(t,"low:")+" ",close:i(t,"close:")+" "}}),x}e.exports={calc:function(t,e){var r=a.getFromId(t,e.xaxis),i=a.getFromId(t,e.yaxis),s=function(t,e,r){var i=r._minDiff;if(!i){var a,s=t._fullData,l=[];for(i=1/0,a=0;a"+c.labels[x]+n.hoverLabelText(s,b):((y=i.extendFlat({},h)).y0=y.y1=_,y.yLabelVal=b,y.yLabel=c.labels[x]+n.hoverLabelText(s,b),y.name="",f.push(y),m[b]=y)}return f}function h(t,e,r,i){var a=t.cd,o=t.ya,l=a[0].trace,f=a[0].t,h=u(t,e,r,i);if(!h)return[];var p=a[h.index],d=h.index=p.i,g=p.dir;function m(t){return f.labels[t]+n.hoverLabelText(o,l[t][d])}var v=p.hi||l.hoverinfo,y=v.split("+"),x="all"===v,b=x||-1!==y.indexOf("y"),_=x||-1!==y.indexOf("text"),w=b?[m("open"),m("high"),m("low"),m("close")+" "+c[g]]:[];return _&&s(p,l,w),h.extraText=w.join("
    "),h.y0=h.y1=o.c2p(p.yc,!0),[h]}e.exports={hoverPoints:function(t,e,r,n){return t.cd[0].trace.hoverlabel.split?f(t,e,r,n):h(t,e,r,n)},hoverSplit:f,hoverOnPoints:h}},{"../../components/color":643,"../../components/fx":683,"../../constants/delta.js":747,"../../lib":778,"../../plots/cartesian/axes":828}],1137:[function(t,e,r){"use strict";e.exports={moduleType:"trace",name:"ohlc",basePlotModule:t("../../plots/cartesian"),categories:["cartesian","svg","showLegend"],meta:{},attributes:t("./attributes"),supplyDefaults:t("./defaults"),calc:t("./calc").calc,plot:t("./plot"),style:t("./style"),hoverPoints:t("./hover").hoverPoints,selectPoints:t("./select")}},{"../../plots/cartesian":841,"./attributes":1133,"./calc":1134,"./defaults":1135,"./hover":1136,"./plot":1139,"./select":1140,"./style":1141}],1138:[function(t,e,r){"use strict";var n=t("../../registry"),i=t("../../lib");e.exports=function(t,e,r,a){var o=r("x"),s=r("open"),l=r("high"),c=r("low"),u=r("close");if(r("hoverlabel.split"),n.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x"],a),s&&l&&c&&u){var f=Math.min(s.length,l.length,c.length,u.length);return o&&(f=Math.min(f,i.minRowLength(o))),e._length=f,f}}},{"../../lib":778,"../../registry":911}],1139:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../lib");e.exports=function(t,e,r,a){var o=e.yaxis,s=e.xaxis,l=!!s.rangebreaks;i.makeTraceGroups(a,r,"trace ohlc").each((function(t){var e=n.select(this),r=t[0],a=r.t;if(!0!==r.trace.visible||a.empty)e.remove();else{var c=a.tickLen,u=e.selectAll("path").data(i.identity);u.enter().append("path"),u.exit().remove(),u.attr("d",(function(t){if(t.empty)return"M0,0Z";var e=s.c2p(t.pos-c,!0),r=s.c2p(t.pos+c,!0),n=l?(e+r)/2:s.c2p(t.pos,!0);return"M"+e+","+o.c2p(t.o,!0)+"H"+n+"M"+n+","+o.c2p(t.h,!0)+"V"+o.c2p(t.l,!0)+"M"+r+","+o.c2p(t.c,!0)+"H"+n}))}}))}},{"../../lib":778,d3:169}],1140:[function(t,e,r){"use strict";e.exports=function(t,e){var r,n=t.cd,i=t.xaxis,a=t.yaxis,o=[],s=n[0].t.bPos||0;if(!1===e)for(r=0;r=t.length)return!1;if(void 0!==e[t[r]])return!1;e[t[r]]=!0}return!0}(t.map((function(t){return t.displayindex}))))for(e=0;e0;c&&(o="array");var u=r("categoryorder",o);"array"===u?(r("categoryarray"),r("ticktext")):(delete t.categoryarray,delete t.ticktext),c||"array"!==u||(e.categoryorder="trace")}}e.exports=function(t,e,r,f){function h(r,i){return n.coerce(t,e,l,r,i)}var p=s(t,e,{name:"dimensions",handleItemDefaults:u}),d=function(t,e,r,o,s){s("line.shape"),s("line.hovertemplate");var l=s("line.color",o.colorway[0]);if(i(t,"line")&&n.isArrayOrTypedArray(l)){if(l.length)return s("line.colorscale"),a(t,e,o,s,{prefix:"line.",cLetter:"c"}),l.length;e.line.color=r}return 1/0}(t,e,r,f,h);o(e,f,h),Array.isArray(p)&&p.length||(e.visible=!1),c(e,p,"values",d),h("hoveron"),h("hovertemplate"),h("arrangement"),h("bundlecolors"),h("sortpaths"),h("counts");var g={family:f.font.family,size:Math.round(f.font.size),color:f.font.color};n.coerceFont(h,"labelfont",g);var m={family:f.font.family,size:Math.round(f.font.size/1.2),color:f.font.color};n.coerceFont(h,"tickfont",m)}},{"../../components/colorscale/defaults":653,"../../components/colorscale/helpers":654,"../../lib":778,"../../plots/array_container_defaults":823,"../../plots/domain":855,"../parcoords/merge_length":1158,"./attributes":1142}],1146:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),calc:t("./calc"),plot:t("./plot"),colorbar:{container:"line",min:"cmin",max:"cmax"},moduleType:"trace",name:"parcats",basePlotModule:t("./base_plot"),categories:["noOpacity"],meta:{}}},{"./attributes":1142,"./base_plot":1143,"./calc":1144,"./defaults":1145,"./plot":1148}],1147:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../plot_api/plot_api"),a=t("../../components/fx"),o=t("../../lib"),s=o.strTranslate,l=t("../../components/drawing"),c=t("tinycolor2"),u=t("../../lib/svg_text_utils");function f(t,e,r,i){var a=t.map(R.bind(0,e,r)),c=i.selectAll("g.parcatslayer").data([null]);c.enter().append("g").attr("class","parcatslayer").style("pointer-events","all");var f=c.selectAll("g.trace.parcats").data(a,h),v=f.enter().append("g").attr("class","trace parcats");f.attr("transform",(function(t){return s(t.x,t.y)})),v.append("g").attr("class","paths");var y=f.select("g.paths").selectAll("path.path").data((function(t){return t.paths}),h);y.attr("fill",(function(t){return t.model.color}));var _=y.enter().append("path").attr("class","path").attr("stroke-opacity",0).attr("fill",(function(t){return t.model.color})).attr("fill-opacity",0);b(_),y.attr("d",(function(t){return t.svgD})),_.empty()||y.sort(d),y.exit().remove(),y.on("mouseover",g).on("mouseout",m).on("click",x),v.append("g").attr("class","dimensions");var k=f.select("g.dimensions").selectAll("g.dimension").data((function(t){return t.dimensions}),h);k.enter().append("g").attr("class","dimension"),k.attr("transform",(function(t){return s(t.x,0)})),k.exit().remove();var M=k.selectAll("g.category").data((function(t){return t.categories}),h),A=M.enter().append("g").attr("class","category");M.attr("transform",(function(t){return s(0,t.y)})),A.append("rect").attr("class","catrect").attr("pointer-events","none"),M.select("rect.catrect").attr("fill","none").attr("width",(function(t){return t.width})).attr("height",(function(t){return t.height})),w(A);var S=M.selectAll("rect.bandrect").data((function(t){return t.bands}),h);S.each((function(){o.raiseToTop(this)})),S.attr("fill",(function(t){return t.color}));var z=S.enter().append("rect").attr("class","bandrect").attr("stroke-opacity",0).attr("fill",(function(t){return t.color})).attr("fill-opacity",0);S.attr("fill",(function(t){return t.color})).attr("width",(function(t){return t.width})).attr("height",(function(t){return t.height})).attr("y",(function(t){return t.y})).attr("cursor",(function(t){return"fixed"===t.parcatsViewModel.arrangement?"default":"perpendicular"===t.parcatsViewModel.arrangement?"ns-resize":"move"})),T(z),S.exit().remove(),A.append("text").attr("class","catlabel").attr("pointer-events","none");var O=e._fullLayout.paper_bgcolor;M.select("text.catlabel").attr("text-anchor",(function(t){return p(t)?"start":"end"})).attr("alignment-baseline","middle").style("text-shadow",O+" -1px 1px 2px, "+O+" 1px 1px 2px, "+O+" 1px -1px 2px, "+O+" -1px -1px 2px").style("fill","rgb(0, 0, 0)").attr("x",(function(t){return p(t)?t.width+5:-5})).attr("y",(function(t){return t.height/2})).text((function(t){return t.model.categoryLabel})).each((function(t){l.font(n.select(this),t.parcatsViewModel.categorylabelfont),u.convertToTspans(n.select(this),e)})),A.append("text").attr("class","dimlabel"),M.select("text.dimlabel").attr("text-anchor","middle").attr("alignment-baseline","baseline").attr("cursor",(function(t){return"fixed"===t.parcatsViewModel.arrangement?"default":"ew-resize"})).attr("x",(function(t){return t.width/2})).attr("y",-5).text((function(t,e){return 0===e?t.parcatsViewModel.model.dimensions[t.model.dimensionInd].dimensionLabel:null})).each((function(t){l.font(n.select(this),t.parcatsViewModel.labelfont)})),M.selectAll("rect.bandrect").on("mouseover",E).on("mouseout",C),M.exit().remove(),k.call(n.behavior.drag().origin((function(t){return{x:t.x,y:0}})).on("dragstart",L).on("drag",I).on("dragend",P)),f.each((function(t){t.traceSelection=n.select(this),t.pathSelection=n.select(this).selectAll("g.paths").selectAll("path.path"),t.dimensionSelection=n.select(this).selectAll("g.dimensions").selectAll("g.dimension")})),f.exit().remove()}function h(t){return t.key}function p(t){var e=t.parcatsViewModel.dimensions.length,r=t.parcatsViewModel.dimensions[e-1].model.dimensionInd;return t.model.dimensionInd===r}function d(t,e){return t.model.rawColor>e.model.rawColor?1:t.model.rawColor"),C=n.mouse(f)[0];a.loneHover({trace:h,x:b-d.left+g.left,y:w-d.top+g.top,text:E,color:t.model.color,borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontSize:10,fontColor:T,idealAlign:C1&&h.displayInd===f.dimensions.length-1?(i=c.left,a="left"):(i=c.left+c.width,a="right");var g=u.model.count,m=u.model.categoryLabel,v=g/u.parcatsViewModel.model.count,y={countLabel:g,categoryLabel:m,probabilityLabel:v.toFixed(3)},x=[];-1!==u.parcatsViewModel.hoverinfoItems.indexOf("count")&&x.push(["Count:",y.countLabel].join(" ")),-1!==u.parcatsViewModel.hoverinfoItems.indexOf("probability")&&x.push(["P("+y.categoryLabel+"):",y.probabilityLabel].join(" "));var b=x.join("
    ");return{trace:p,x:o*(i-e.left),y:s*(d-e.top),text:b,color:"lightgray",borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontSize:12,fontColor:"black",idealAlign:a,hovertemplate:p.hovertemplate,hovertemplateLabels:y,eventData:[{data:p._input,fullData:p,count:g,category:m,probability:v}]}}function E(t){if(!t.parcatsViewModel.dragDimension&&-1===t.parcatsViewModel.hoverinfoItems.indexOf("skip")){if(n.mouse(this)[1]<-1)return;var e,r=t.parcatsViewModel.graphDiv,i=r._fullLayout,s=i._paperdiv.node().getBoundingClientRect(),l=t.parcatsViewModel.hoveron;if("color"===l?(!function(t){var e=n.select(t).datum(),r=k(e);_(r),r.each((function(){o.raiseToTop(this)})),n.select(t.parentNode).selectAll("rect.bandrect").filter((function(t){return t.color===e.color})).each((function(){o.raiseToTop(this),n.select(this).attr("stroke","black").attr("stroke-width",1.5)}))}(this),A(this,"plotly_hover",n.event)):(!function(t){n.select(t.parentNode).selectAll("rect.bandrect").each((function(t){var e=k(t);_(e),e.each((function(){o.raiseToTop(this)}))})),n.select(t.parentNode).select("rect.catrect").attr("stroke","black").attr("stroke-width",2.5)}(this),M(this,"plotly_hover",n.event)),-1===t.parcatsViewModel.hoverinfoItems.indexOf("none"))"category"===l?e=S(r,s,this):"color"===l?e=function(t,e,r){t._fullLayout._calcInverseTransform(t);var i,a,o=t._fullLayout._invScaleX,s=t._fullLayout._invScaleY,l=r.getBoundingClientRect(),u=n.select(r).datum(),f=u.categoryViewModel,h=f.parcatsViewModel,p=h.model.dimensions[f.model.dimensionInd],d=h.trace,g=l.y+l.height/2;h.dimensions.length>1&&p.displayInd===h.dimensions.length-1?(i=l.left,a="left"):(i=l.left+l.width,a="right");var m=f.model.categoryLabel,v=u.parcatsViewModel.model.count,y=0;u.categoryViewModel.bands.forEach((function(t){t.color===u.color&&(y+=t.count)}));var x=f.model.count,b=0;h.pathSelection.each((function(t){t.model.color===u.color&&(b+=t.model.count)}));var _=y/v,w=y/b,T=y/x,k={countLabel:v,categoryLabel:m,probabilityLabel:_.toFixed(3)},M=[];-1!==f.parcatsViewModel.hoverinfoItems.indexOf("count")&&M.push(["Count:",k.countLabel].join(" ")),-1!==f.parcatsViewModel.hoverinfoItems.indexOf("probability")&&(M.push("P(color \u2229 "+m+"): "+k.probabilityLabel),M.push("P("+m+" | color): "+w.toFixed(3)),M.push("P(color | "+m+"): "+T.toFixed(3)));var A=M.join("
    "),S=c.mostReadable(u.color,["black","white"]);return{trace:d,x:o*(i-e.left),y:s*(g-e.top),text:A,color:u.color,borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontColor:S,fontSize:10,idealAlign:a,hovertemplate:d.hovertemplate,hovertemplateLabels:k,eventData:[{data:d._input,fullData:d,category:m,count:v,probability:_,categorycount:x,colorcount:b,bandcolorcount:y}]}}(r,s,this):"dimension"===l&&(e=function(t,e,r){var i=[];return n.select(r.parentNode.parentNode).selectAll("g.category").select("rect.catrect").each((function(){i.push(S(t,e,this))})),i}(r,s,this)),e&&a.loneHover(e,{container:i._hoverlayer.node(),outerContainer:i._paper.node(),gd:r})}}function C(t){var e=t.parcatsViewModel;if(!e.dragDimension&&(b(e.pathSelection),w(e.dimensionSelection.selectAll("g.category")),T(e.dimensionSelection.selectAll("g.category").selectAll("rect.bandrect")),a.loneUnhover(e.graphDiv._fullLayout._hoverlayer.node()),e.pathSelection.sort(d),-1===e.hoverinfoItems.indexOf("skip"))){"color"===t.parcatsViewModel.hoveron?A(this,"plotly_unhover",n.event):M(this,"plotly_unhover",n.event)}}function L(t){"fixed"!==t.parcatsViewModel.arrangement&&(t.dragDimensionDisplayInd=t.model.displayInd,t.initialDragDimensionDisplayInds=t.parcatsViewModel.model.dimensions.map((function(t){return t.displayInd})),t.dragHasMoved=!1,t.dragCategoryDisplayInd=null,n.select(this).selectAll("g.category").select("rect.catrect").each((function(e){var r=n.mouse(this)[0],i=n.mouse(this)[1];-2<=r&&r<=e.width+2&&-2<=i&&i<=e.height+2&&(t.dragCategoryDisplayInd=e.model.displayInd,t.initialDragCategoryDisplayInds=t.model.categories.map((function(t){return t.displayInd})),e.model.dragY=e.y,o.raiseToTop(this.parentNode),n.select(this.parentNode).selectAll("rect.bandrect").each((function(e){e.yf.y+f.height/2&&(o.model.displayInd=f.model.displayInd,f.model.displayInd=l),t.dragCategoryDisplayInd=o.model.displayInd}if(null===t.dragCategoryDisplayInd||"freeform"===t.parcatsViewModel.arrangement){a.model.dragX=n.event.x;var h=t.parcatsViewModel.dimensions[r],p=t.parcatsViewModel.dimensions[i];void 0!==h&&a.model.dragXp.x&&(a.model.displayInd=p.model.displayInd,p.model.displayInd=t.dragDimensionDisplayInd),t.dragDimensionDisplayInd=a.model.displayInd}N(t.parcatsViewModel),B(t.parcatsViewModel),D(t.parcatsViewModel),O(t.parcatsViewModel)}}function P(t){if("fixed"!==t.parcatsViewModel.arrangement&&null!==t.dragDimensionDisplayInd){n.select(this).selectAll("text").attr("font-weight","normal");var e={},r=z(t.parcatsViewModel),a=t.parcatsViewModel.model.dimensions.map((function(t){return t.displayInd})),o=t.initialDragDimensionDisplayInds.some((function(t,e){return t!==a[e]}));o&&a.forEach((function(r,n){var i=t.parcatsViewModel.model.dimensions[n].containerInd;e["dimensions["+i+"].displayindex"]=r}));var s=!1;if(null!==t.dragCategoryDisplayInd){var l=t.model.categories.map((function(t){return t.displayInd}));if(s=t.initialDragCategoryDisplayInds.some((function(t,e){return t!==l[e]}))){var c=t.model.categories.slice().sort((function(t,e){return t.displayInd-e.displayInd})),u=c.map((function(t){return t.categoryValue})),f=c.map((function(t){return t.categoryLabel}));e["dimensions["+t.model.containerInd+"].categoryarray"]=[u],e["dimensions["+t.model.containerInd+"].ticktext"]=[f],e["dimensions["+t.model.containerInd+"].categoryorder"]="array"}}if(-1===t.parcatsViewModel.hoverinfoItems.indexOf("skip")&&!t.dragHasMoved&&t.potentialClickBand&&("color"===t.parcatsViewModel.hoveron?A(t.potentialClickBand,"plotly_click",n.event.sourceEvent):M(t.potentialClickBand,"plotly_click",n.event.sourceEvent)),t.model.dragX=null,null!==t.dragCategoryDisplayInd)t.parcatsViewModel.dimensions[t.dragDimensionDisplayInd].categories[t.dragCategoryDisplayInd].model.dragY=null,t.dragCategoryDisplayInd=null;t.dragDimensionDisplayInd=null,t.parcatsViewModel.dragDimension=null,t.dragHasMoved=null,t.potentialClickBand=null,N(t.parcatsViewModel),B(t.parcatsViewModel),n.transition().duration(300).ease("cubic-in-out").each((function(){D(t.parcatsViewModel,!0),O(t.parcatsViewModel,!0)})).each("end",(function(){(o||s)&&i.restyle(t.parcatsViewModel.graphDiv,e,[r])}))}}function z(t){for(var e,r=t.graphDiv._fullData,n=0;n=0;s--)u+="C"+c[s]+","+(e[s+1]+i)+" "+l[s]+","+(e[s]+i)+" "+(t[s]+r[s])+","+(e[s]+i),u+="l-"+r[s]+",0 ";return u+="Z"}function B(t){var e=t.dimensions,r=t.model,n=e.map((function(t){return t.categories.map((function(t){return t.y}))})),i=t.model.dimensions.map((function(t){return t.categories.map((function(t){return t.displayInd}))})),a=t.model.dimensions.map((function(t){return t.displayInd})),o=t.dimensions.map((function(t){return t.model.dimensionInd})),s=e.map((function(t){return t.x})),l=e.map((function(t){return t.width})),c=[];for(var u in r.paths)r.paths.hasOwnProperty(u)&&c.push(r.paths[u]);function f(t){var e=t.categoryInds.map((function(t,e){return i[e][t]}));return o.map((function(t){return e[t]}))}c.sort((function(e,r){var n=f(e),i=f(r);return"backward"===t.sortpaths&&(n.reverse(),i.reverse()),n.push(e.valueInds[0]),i.push(r.valueInds[0]),t.bundlecolors&&(n.unshift(e.rawColor),i.unshift(r.rawColor)),ni?1:0}));for(var h=new Array(c.length),p=e[0].model.count,d=e[0].categories.map((function(t){return t.height})).reduce((function(t,e){return t+e})),g=0;g0?d*(v.count/p):0;for(var y,x=new Array(n.length),b=0;b1?(t.width-80-16)/(n-1):0)*i;var a,o,s,l,c,u=[],f=t.model.maxCats,h=e.categories.length,p=e.count,d=t.height-8*(f-1),g=8*(f-h)/2,m=e.categories.map((function(t){return{displayInd:t.displayInd,categoryInd:t.categoryInd}}));for(m.sort((function(t,e){return t.displayInd-e.displayInd})),c=0;c0?o.count/p*d:0,s={key:o.valueInds[0],model:o,width:16,height:a,y:null!==o.dragY?o.dragY:g,bands:[],parcatsViewModel:t},g=g+a+8,u.push(s);return{key:e.dimensionInd,x:null!==e.dragX?e.dragX:r,y:0,width:16,model:e,categories:u,parcatsViewModel:t,dragCategoryDisplayInd:null,dragDimensionDisplayInd:null,initialDragDimensionDisplayInds:null,initialDragCategoryDisplayInds:null,dragHasMoved:null,potentialClickBand:null}}e.exports=function(t,e,r,n){f(r,t,n,e)}},{"../../components/drawing":665,"../../components/fx":683,"../../lib":778,"../../lib/svg_text_utils":803,"../../plot_api/plot_api":814,d3:169,tinycolor2:576}],1148:[function(t,e,r){"use strict";var n=t("./parcats");e.exports=function(t,e,r,i){var a=t._fullLayout,o=a._paper,s=a._size;n(t,o,e,{width:s.w,height:s.h,margin:{t:s.t,r:s.r,b:s.b,l:s.l}},r,i)}},{"./parcats":1147}],1149:[function(t,e,r){"use strict";var n=t("../../components/colorscale/attributes"),i=t("../../plots/cartesian/layout_attributes"),a=t("../../plots/font_attributes"),o=t("../../plots/domain").attributes,s=t("../../lib/extend").extendFlat,l=t("../../plot_api/plot_template").templatedArray;e.exports={domain:o({name:"parcoords",trace:!0,editType:"plot"}),labelangle:{valType:"angle",dflt:0,editType:"plot"},labelside:{valType:"enumerated",values:["top","bottom"],dflt:"top",editType:"plot"},labelfont:a({editType:"plot"}),tickfont:a({editType:"plot"}),rangefont:a({editType:"plot"}),dimensions:l("dimension",{label:{valType:"string",editType:"plot"},tickvals:s({},i.tickvals,{editType:"plot"}),ticktext:s({},i.ticktext,{editType:"plot"}),tickformat:s({},i.tickformat,{editType:"plot"}),visible:{valType:"boolean",dflt:!0,editType:"plot"},range:{valType:"info_array",items:[{valType:"number",editType:"plot"},{valType:"number",editType:"plot"}],editType:"plot"},constraintrange:{valType:"info_array",freeLength:!0,dimensions:"1-2",items:[{valType:"number",editType:"plot"},{valType:"number",editType:"plot"}],editType:"plot"},multiselect:{valType:"boolean",dflt:!0,editType:"plot"},values:{valType:"data_array",editType:"calc"},editType:"calc"}),line:s({editType:"calc"},n("line",{colorscaleDflt:"Viridis",autoColorDflt:!1,editTypeOverride:"calc"}))}},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plot_api/plot_template":817,"../../plots/cartesian/layout_attributes":842,"../../plots/domain":855,"../../plots/font_attributes":856}],1150:[function(t,e,r){"use strict";var n=t("./constants"),i=t("d3"),a=t("../../lib/gup").keyFun,o=t("../../lib/gup").repeat,s=t("../../lib").sorterAsc,l=t("../../lib").strTranslate,c=n.bar.snapRatio;function u(t,e){return t*(1-c)+e*c}var f=n.bar.snapClose;function h(t,e){return t*(1-f)+e*f}function p(t,e,r,n){if(function(t,e){for(var r=0;r=e[r][0]&&t<=e[r][1])return!0;return!1}(r,n))return r;var i=t?-1:1,a=0,o=e.length-1;if(i<0){var s=a;a=o,o=s}for(var l=e[a],c=l,f=a;i*fe){h=r;break}}if(a=u,isNaN(a)&&(a=isNaN(f)||isNaN(h)?isNaN(f)?h:f:e-c[f][1]t[1]+r||e=.9*t[1]+.1*t[0]?"n":e<=.9*t[0]+.1*t[1]?"s":"ns"}(d,e);g&&(o.interval=l[a],o.intervalPix=d,o.region=g)}}if(t.ordinal&&!o.region){var m=t.unitTickvals,y=t.unitToPaddedPx.invert(e);for(r=0;r=x[0]&&y<=x[1]){o.clickableOrdinalRange=x;break}}}return o}function w(t,e){i.event.sourceEvent.stopPropagation();var r=e.height-i.mouse(t)[1]-2*n.verticalPadding,a=e.brush.svgBrush;a.wasDragged=!0,a._dragging=!0,a.grabbingBar?a.newExtent=[r-a.grabPoint,r+a.barLength-a.grabPoint].map(e.unitToPaddedPx.invert):a.newExtent=[a.startExtent,e.unitToPaddedPx.invert(r)].sort(s),e.brush.filterSpecified=!0,a.extent=a.stayingIntervals.concat([a.newExtent]),a.brushCallback(e),b(t.parentNode)}function T(t,e){var r=_(e,e.height-i.mouse(t)[1]-2*n.verticalPadding),a="crosshair";r.clickableOrdinalRange?a="pointer":r.region&&(a=r.region+"-resize"),i.select(document.body).style("cursor",a)}function k(t){t.on("mousemove",(function(t){i.event.preventDefault(),t.parent.inBrushDrag||T(this,t)})).on("mouseleave",(function(t){t.parent.inBrushDrag||y()})).call(i.behavior.drag().on("dragstart",(function(t){!function(t,e){i.event.sourceEvent.stopPropagation();var r=e.height-i.mouse(t)[1]-2*n.verticalPadding,a=e.unitToPaddedPx.invert(r),o=e.brush,s=_(e,r),l=s.interval,c=o.svgBrush;if(c.wasDragged=!1,c.grabbingBar="ns"===s.region,c.grabbingBar){var u=l.map(e.unitToPaddedPx);c.grabPoint=r-u[0]-n.verticalPadding,c.barLength=u[1]-u[0]}c.clickableOrdinalRange=s.clickableOrdinalRange,c.stayingIntervals=e.multiselect&&o.filterSpecified?o.filter.getConsolidated():[],l&&(c.stayingIntervals=c.stayingIntervals.filter((function(t){return t[0]!==l[0]&&t[1]!==l[1]}))),c.startExtent=s.region?l["s"===s.region?1:0]:a,e.parent.inBrushDrag=!0,c.brushStartCallback()}(this,t)})).on("drag",(function(t){w(this,t)})).on("dragend",(function(t){!function(t,e){var r=e.brush,n=r.filter,a=r.svgBrush;a._dragging||(T(t,e),w(t,e),e.brush.svgBrush.wasDragged=!1),a._dragging=!1,i.event.sourceEvent.stopPropagation();var o=a.grabbingBar;if(a.grabbingBar=!1,a.grabLocation=void 0,e.parent.inBrushDrag=!1,y(),!a.wasDragged)return a.wasDragged=void 0,a.clickableOrdinalRange?r.filterSpecified&&e.multiselect?a.extent.push(a.clickableOrdinalRange):(a.extent=[a.clickableOrdinalRange],r.filterSpecified=!0):o?(a.extent=a.stayingIntervals,0===a.extent.length&&A(r)):A(r),a.brushCallback(e),b(t.parentNode),void a.brushEndCallback(r.filterSpecified?n.getConsolidated():[]);var s=function(){n.set(n.getConsolidated())};if(e.ordinal){var l=e.unitTickvals;l[l.length-1]a.newExtent[0];a.extent=a.stayingIntervals.concat(c?[a.newExtent]:[]),a.extent.length||A(r),a.brushCallback(e),c?b(t.parentNode,s):(s(),b(t.parentNode))}else s();a.brushEndCallback(r.filterSpecified?n.getConsolidated():[])}(this,t)})))}function M(t,e){return t[0]-e[0]}function A(t){t.filterSpecified=!1,t.svgBrush.extent=[[-1/0,1/0]]}function S(t){for(var e,r=t.slice(),n=[],i=r.shift();i;){for(e=i.slice();(i=r.shift())&&i[0]<=e[1];)e[1]=Math.max(e[1],i[1]);n.push(e)}return 1===n.length&&n[0][0]>n[0][1]&&(n=[]),n}e.exports={makeBrush:function(t,e,r,n,i,a){var o,l=function(){var t,e,r=[];return{set:function(n){1===(r=n.map((function(t){return t.slice().sort(s)})).sort(M)).length&&r[0][0]===-1/0&&r[0][1]===1/0&&(r=[[0,-1]]),t=S(r),e=r.reduce((function(t,e){return[Math.min(t[0],e[0]),Math.max(t[1],e[1])]}),[1/0,-1/0])},get:function(){return r.slice()},getConsolidated:function(){return t},getBounds:function(){return e}}}();return l.set(r),{filter:l,filterSpecified:e,svgBrush:{extent:[],brushStartCallback:n,brushCallback:(o=i,function(t){var e=t.brush,r=function(t){return t.svgBrush.extent.map((function(t){return t.slice()}))}(e).slice();e.filter.set(r),o()}),brushEndCallback:a}}},ensureAxisBrush:function(t){var e=t.selectAll("."+n.cn.axisBrush).data(o,a);e.enter().append("g").classed(n.cn.axisBrush,!0),function(t){var e=t.selectAll(".background").data(o);e.enter().append("rect").classed("background",!0).call(d).call(g).style("pointer-events","auto").attr("transform",l(0,n.verticalPadding)),e.call(k).attr("height",(function(t){return t.height-n.verticalPadding}));var r=t.selectAll(".highlight-shadow").data(o);r.enter().append("line").classed("highlight-shadow",!0).attr("x",-n.bar.width/2).attr("stroke-width",n.bar.width+n.bar.strokeWidth).attr("stroke",n.bar.strokeColor).attr("opacity",n.bar.strokeOpacity).attr("stroke-linecap","butt"),r.attr("y1",(function(t){return t.height})).call(x);var i=t.selectAll(".highlight").data(o);i.enter().append("line").classed("highlight",!0).attr("x",-n.bar.width/2).attr("stroke-width",n.bar.width-n.bar.strokeWidth).attr("stroke",n.bar.fillColor).attr("opacity",n.bar.fillOpacity).attr("stroke-linecap","butt"),i.attr("y1",(function(t){return t.height})).call(x)}(e)},cleanRanges:function(t,e){if(Array.isArray(t[0])?(t=t.map((function(t){return t.sort(s)})),t=e.multiselect?S(t.sort(M)):[t[0]]):t=[t.sort(s)],e.tickvals){var r=e.tickvals.slice().sort(s);if(!(t=t.map((function(t){var e=[p(0,r,t[0],[]),p(1,r,t[1],[])];if(e[1]>e[0])return e})).filter((function(t){return t}))).length)return}return t.length>1?t:t[0]}}},{"../../lib":778,"../../lib/gup":775,"./constants":1153,d3:169}],1151:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../plots/get_data").getModuleCalcData,a=t("./plot"),o=t("../../constants/xmlns_namespaces");r.name="parcoords",r.plot=function(t){var e=i(t.calcdata,"parcoords")[0];e.length&&a(t,e)},r.clean=function(t,e,r,n){var i=n._has&&n._has("parcoords"),a=e._has&&e._has("parcoords");i&&!a&&(n._paperdiv.selectAll(".parcoords").remove(),n._glimages.selectAll("*").remove())},r.toSVG=function(t){var e=t._fullLayout._glimages,r=n.select(t).selectAll(".svg-container");r.filter((function(t,e){return e===r.size()-1})).selectAll(".gl-canvas-context, .gl-canvas-focus").each((function(){var t=this.toDataURL("image/png");e.append("svg:image").attr({xmlns:o.svg,"xlink:href":t,preserveAspectRatio:"none",x:0,y:0,width:this.width,height:this.height})})),window.setTimeout((function(){n.selectAll("#filterBarPattern").attr("id","filterBarPattern")}),60)}},{"../../constants/xmlns_namespaces":754,"../../plots/get_data":865,"./plot":1160,d3:169}],1152:[function(t,e,r){"use strict";var n=t("../../lib").isArrayOrTypedArray,i=t("../../components/colorscale"),a=t("../../lib/gup").wrap;e.exports=function(t,e){var r,o;return i.hasColorscale(e,"line")&&n(e.line.color)?(r=e.line.color,o=i.extractOpts(e.line).colorscale,i.calc(t,e,{vals:r,containerStr:"line",cLetter:"c"})):(r=function(t){for(var e=new Array(t),r=0;rf&&(n.log("parcoords traces support up to "+f+" dimensions at the moment"),d.splice(f));var g=s(t,e,{name:"dimensions",layout:l,handleItemDefaults:p}),m=function(t,e,r,o,s){var l=s("line.color",r);if(i(t,"line")&&n.isArrayOrTypedArray(l)){if(l.length)return s("line.colorscale"),a(t,e,o,s,{prefix:"line.",cLetter:"c"}),l.length;e.line.color=r}return 1/0}(t,e,r,l,u);o(e,l,u),Array.isArray(g)&&g.length||(e.visible=!1),h(e,g,"values",m);var v={family:l.font.family,size:Math.round(l.font.size/1.2),color:l.font.color};n.coerceFont(u,"labelfont",v),n.coerceFont(u,"tickfont",v),n.coerceFont(u,"rangefont",v),u("labelangle"),u("labelside")}},{"../../components/colorscale/defaults":653,"../../components/colorscale/helpers":654,"../../lib":778,"../../plots/array_container_defaults":823,"../../plots/cartesian/axes":828,"../../plots/domain":855,"./attributes":1149,"./axisbrush":1150,"./constants":1153,"./merge_length":1158}],1155:[function(t,e,r){"use strict";var n=t("../../lib").isTypedArray;r.convertTypedArray=function(t){return n(t)?Array.prototype.slice.call(t):t},r.isOrdinal=function(t){return!!t.tickvals},r.isVisible=function(t){return t.visible||!("visible"in t)}},{"../../lib":778}],1156:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),calc:t("./calc"),plot:t("./plot"),colorbar:{container:"line",min:"cmin",max:"cmax"},moduleType:"trace",name:"parcoords",basePlotModule:t("./base_plot"),categories:["gl","regl","noOpacity","noHover"],meta:{}}},{"./attributes":1149,"./base_plot":1151,"./calc":1152,"./defaults":1154,"./plot":1160}],1157:[function(t,e,r){"use strict";var n=t("glslify"),i=n(["precision highp float;\n#define GLSLIFY 1\n\nvarying vec4 fragColor;\n\nattribute vec4 p01_04, p05_08, p09_12, p13_16,\n p17_20, p21_24, p25_28, p29_32,\n p33_36, p37_40, p41_44, p45_48,\n p49_52, p53_56, p57_60, colors;\n\nuniform mat4 dim0A, dim1A, dim0B, dim1B, dim0C, dim1C, dim0D, dim1D,\n loA, hiA, loB, hiB, loC, hiC, loD, hiD;\n\nuniform vec2 resolution, viewBoxPos, viewBoxSize;\nuniform sampler2D mask, palette;\nuniform float maskHeight;\nuniform float drwLayer; // 0: context, 1: focus, 2: pick\nuniform vec4 contextColor;\n\nbool isPick = (drwLayer > 1.5);\nbool isContext = (drwLayer < 0.5);\n\nconst vec4 ZEROS = vec4(0.0, 0.0, 0.0, 0.0);\nconst vec4 UNITS = vec4(1.0, 1.0, 1.0, 1.0);\n\nfloat val(mat4 p, mat4 v) {\n return dot(matrixCompMult(p, v) * UNITS, UNITS);\n}\n\nfloat axisY(float ratio, mat4 A, mat4 B, mat4 C, mat4 D) {\n float y1 = val(A, dim0A) + val(B, dim0B) + val(C, dim0C) + val(D, dim0D);\n float y2 = val(A, dim1A) + val(B, dim1B) + val(C, dim1C) + val(D, dim1D);\n return y1 * (1.0 - ratio) + y2 * ratio;\n}\n\nint iMod(int a, int b) {\n return a - b * (a / b);\n}\n\nbool fOutside(float p, float lo, float hi) {\n return (lo < hi) && (lo > p || p > hi);\n}\n\nbool vOutside(vec4 p, vec4 lo, vec4 hi) {\n return (\n fOutside(p[0], lo[0], hi[0]) ||\n fOutside(p[1], lo[1], hi[1]) ||\n fOutside(p[2], lo[2], hi[2]) ||\n fOutside(p[3], lo[3], hi[3])\n );\n}\n\nbool mOutside(mat4 p, mat4 lo, mat4 hi) {\n return (\n vOutside(p[0], lo[0], hi[0]) ||\n vOutside(p[1], lo[1], hi[1]) ||\n vOutside(p[2], lo[2], hi[2]) ||\n vOutside(p[3], lo[3], hi[3])\n );\n}\n\nbool outsideBoundingBox(mat4 A, mat4 B, mat4 C, mat4 D) {\n return mOutside(A, loA, hiA) ||\n mOutside(B, loB, hiB) ||\n mOutside(C, loC, hiC) ||\n mOutside(D, loD, hiD);\n}\n\nbool outsideRasterMask(mat4 A, mat4 B, mat4 C, mat4 D) {\n mat4 pnts[4];\n pnts[0] = A;\n pnts[1] = B;\n pnts[2] = C;\n pnts[3] = D;\n\n for(int i = 0; i < 4; ++i) {\n for(int j = 0; j < 4; ++j) {\n for(int k = 0; k < 4; ++k) {\n if(0 == iMod(\n int(255.0 * texture2D(mask,\n vec2(\n (float(i * 2 + j / 2) + 0.5) / 8.0,\n (pnts[i][j][k] * (maskHeight - 1.0) + 1.0) / maskHeight\n ))[3]\n ) / int(pow(2.0, float(iMod(j * 4 + k, 8)))),\n 2\n )) return true;\n }\n }\n }\n return false;\n}\n\nvec4 position(bool isContext, float v, mat4 A, mat4 B, mat4 C, mat4 D) {\n float x = 0.5 * sign(v) + 0.5;\n float y = axisY(x, A, B, C, D);\n float z = 1.0 - abs(v);\n\n z += isContext ? 0.0 : 2.0 * float(\n outsideBoundingBox(A, B, C, D) ||\n outsideRasterMask(A, B, C, D)\n );\n\n return vec4(\n 2.0 * (vec2(x, y) * viewBoxSize + viewBoxPos) / resolution - 1.0,\n z,\n 1.0\n );\n}\n\nvoid main() {\n mat4 A = mat4(p01_04, p05_08, p09_12, p13_16);\n mat4 B = mat4(p17_20, p21_24, p25_28, p29_32);\n mat4 C = mat4(p33_36, p37_40, p41_44, p45_48);\n mat4 D = mat4(p49_52, p53_56, p57_60, ZEROS);\n\n float v = colors[3];\n\n gl_Position = position(isContext, v, A, B, C, D);\n\n fragColor =\n isContext ? vec4(contextColor) :\n isPick ? vec4(colors.rgb, 1.0) : texture2D(palette, vec2(abs(v), 0.5));\n}\n"]),a=n(["precision highp float;\n#define GLSLIFY 1\n\nvarying vec4 fragColor;\n\nvoid main() {\n gl_FragColor = fragColor;\n}\n"]),o=t("./constants").maxDimensionCount,s=t("../../lib"),l=new Uint8Array(4),c=new Uint8Array(4),u={shape:[256,1],format:"rgba",type:"uint8",mag:"nearest",min:"nearest"};function f(t,e,r,n,i){var a=t._gl;a.enable(a.SCISSOR_TEST),a.scissor(e,r,n,i),t.clear({color:[0,0,0,0],depth:1})}function h(t,e,r,n,i,a){var o=a.key;r.drawCompleted||(!function(t){t.read({x:0,y:0,width:1,height:1,data:l})}(t),r.drawCompleted=!0),function s(l){var c=Math.min(n,i-l*n);0===l&&(window.cancelAnimationFrame(r.currentRafs[o]),delete r.currentRafs[o],f(t,a.scissorX,a.scissorY,a.scissorWidth,a.viewBoxSize[1])),r.clearOnly||(a.count=2*c,a.offset=2*l*n,e(a),l*n+c>>8*e)%256/255}function g(t,e,r){for(var n=new Array(8*e),i=0,a=0;au&&(u=t[i].dim1.canvasX,o=i);0===s&&f(T,0,0,r.canvasWidth,r.canvasHeight);var p=function(t){var e,r,n,i=[[],[]];for(n=0;n<64;n++){var a=!t&&ni._length&&(A=A.slice(0,i._length));var E,C=i.tickvals;function L(t,e){return{val:t,text:E[e]}}function I(t,e){return t.val-e.val}if(Array.isArray(C)&&C.length){E=i.ticktext,Array.isArray(E)&&E.length?E.length>C.length?E=E.slice(0,C.length):C.length>E.length&&(C=C.slice(0,E.length)):E=C.map(n.format(i.tickformat));for(var P=1;P=r||l>=a)return;var c=t.lineLayer.readPixel(s,a-1-l),u=0!==c[3],f=u?c[2]+256*(c[1]+256*c[0]):null,h={x:s,y:l,clientX:e.clientX,clientY:e.clientY,dataIndex:t.model.key,curveNumber:f};f!==R&&(u?i.hover(h):i.unhover&&i.unhover(h),R=f)}})),D.style("opacity",(function(t){return t.pick?0:1})),h.style("background","rgba(255, 255, 255, 0)");var F=h.selectAll("."+v.cn.parcoords).data(A,p);F.exit().remove(),F.enter().append("g").classed(v.cn.parcoords,!0).style("shape-rendering","crispEdges").style("pointer-events","none"),F.attr("transform",(function(t){return l(t.model.translateX,t.model.translateY)}));var B=F.selectAll("."+v.cn.parcoordsControlView).data(d,p);B.enter().append("g").classed(v.cn.parcoordsControlView,!0),B.attr("transform",(function(t){return l(t.model.pad.l,t.model.pad.t)}));var N=B.selectAll("."+v.cn.yAxis).data((function(t){return t.dimensions}),p);N.enter().append("g").classed(v.cn.yAxis,!0),B.each((function(t){P(N,t)})),D.each((function(t){if(t.viewModel){!t.lineLayer||i?t.lineLayer=x(this,t):t.lineLayer.update(t),(t.key||0===t.key)&&(t.viewModel[t.key]=t.lineLayer);var e=!t.context||i;t.lineLayer.render(t.viewModel.panels,e)}})),N.attr("transform",(function(t){return l(t.xScale(t.xIndex),0)})),N.call(n.behavior.drag().origin((function(t){return t})).on("drag",(function(t){var e=t.parent;M.linePickActive(!1),t.x=Math.max(-v.overdrag,Math.min(t.model.width+v.overdrag,n.event.x)),t.canvasX=t.x*t.model.canvasPixelRatio,N.sort((function(t,e){return t.x-e.x})).each((function(e,r){e.xIndex=r,e.x=t===e?e.x:e.xScale(e.xIndex),e.canvasX=e.x*e.model.canvasPixelRatio})),P(N,e),N.filter((function(e){return 0!==Math.abs(t.xIndex-e.xIndex)})).attr("transform",(function(t){return l(t.xScale(t.xIndex),0)})),n.select(this).attr("transform",l(t.x,0)),N.each((function(r,n,i){i===t.parent.key&&(e.dimensions[n]=r)})),e.contextLayer&&e.contextLayer.render(e.panels,!1,!S(e)),e.focusLayer.render&&e.focusLayer.render(e.panels)})).on("dragend",(function(t){var e=t.parent;t.x=t.xScale(t.xIndex),t.canvasX=t.x*t.model.canvasPixelRatio,P(N,e),n.select(this).attr("transform",(function(t){return l(t.x,0)})),e.contextLayer&&e.contextLayer.render(e.panels,!1,!S(e)),e.focusLayer&&e.focusLayer.render(e.panels),e.pickLayer&&e.pickLayer.render(e.panels,!0),M.linePickActive(!0),i&&i.axesMoved&&i.axesMoved(e.key,e.dimensions.map((function(t){return t.crossfilterDimensionIndex})))}))),N.exit().remove();var j=N.selectAll("."+v.cn.axisOverlays).data(d,p);j.enter().append("g").classed(v.cn.axisOverlays,!0),j.selectAll("."+v.cn.axis).remove();var U=j.selectAll("."+v.cn.axis).data(d,p);U.enter().append("g").classed(v.cn.axis,!0),U.each((function(t){var e=t.model.height/t.model.tickDistance,r=t.domainScale,i=r.domain();n.select(this).call(n.svg.axis().orient("left").tickSize(4).outerTickSize(2).ticks(e,t.tickFormat).tickValues(t.ordinal?i:null).tickFormat((function(e){return m.isOrdinal(t)?e:z(t.model.dimensions[t.visibleIndex],e)})).scale(r)),u.font(U.selectAll("text"),t.model.tickFont)})),U.selectAll(".domain, .tick>line").attr("fill","none").attr("stroke","black").attr("stroke-opacity",.25).attr("stroke-width","1px"),U.selectAll("text").style("text-shadow","1px 1px 1px #fff, -1px -1px 1px #fff, 1px -1px 1px #fff, -1px 1px 1px #fff").style("cursor","default");var V=j.selectAll("."+v.cn.axisHeading).data(d,p);V.enter().append("g").classed(v.cn.axisHeading,!0);var q=V.selectAll("."+v.cn.axisTitle).data(d,p);q.enter().append("text").classed(v.cn.axisTitle,!0).attr("text-anchor","middle").style("cursor","ew-resize").style("pointer-events","auto"),q.text((function(t){return t.label})).each((function(e){var r=n.select(this);u.font(r,e.model.labelFont),c.convertToTspans(r,t)})).attr("transform",(function(t){var e=I(t.model.labelAngle,t.model.labelSide),r=v.axisTitleOffset;return(e.dir>0?"":l(0,2*r+t.model.height))+s(e.degrees)+l(-r*e.dx,-r*e.dy)})).attr("text-anchor",(function(t){var e=I(t.model.labelAngle,t.model.labelSide);return 2*Math.abs(e.dx)>Math.abs(e.dy)?e.dir*e.dx<0?"start":"end":"middle"}));var H=j.selectAll("."+v.cn.axisExtent).data(d,p);H.enter().append("g").classed(v.cn.axisExtent,!0);var G=H.selectAll("."+v.cn.axisExtentTop).data(d,p);G.enter().append("g").classed(v.cn.axisExtentTop,!0),G.attr("transform",l(0,-v.axisExtentOffset));var Y=G.selectAll("."+v.cn.axisExtentTopText).data(d,p);Y.enter().append("text").classed(v.cn.axisExtentTopText,!0).call(L),Y.text((function(t){return O(t,!0)})).each((function(t){u.font(n.select(this),t.model.rangeFont)}));var W=H.selectAll("."+v.cn.axisExtentBottom).data(d,p);W.enter().append("g").classed(v.cn.axisExtentBottom,!0),W.attr("transform",(function(t){return l(0,t.model.height+v.axisExtentOffset)}));var X=W.selectAll("."+v.cn.axisExtentBottomText).data(d,p);X.enter().append("text").classed(v.cn.axisExtentBottomText,!0).attr("dy","0.75em").call(L),X.text((function(t){return O(t,!1)})).each((function(t){u.font(n.select(this),t.model.rangeFont)})),y.ensureAxisBrush(j)}},{"../../components/colorscale":655,"../../components/drawing":665,"../../lib":778,"../../lib/gup":775,"../../lib/svg_text_utils":803,"../../plots/cartesian/axes":828,"./axisbrush":1150,"./constants":1153,"./helpers":1155,"./lines":1157,"color-rgba":127,d3:169}],1160:[function(t,e,r){"use strict";var n=t("./parcoords"),i=t("../../lib/prepare_regl"),a=t("./helpers").isVisible;function o(t,e,r){var n=e.indexOf(r),i=t.indexOf(n);return-1===i&&(i+=e.length),i}e.exports=function(t,e){var r=t._fullLayout;if(i(t)){var s={},l={},c={},u={},f=r._size;e.forEach((function(e,r){var n=e[0].trace;c[r]=n.index;var i=u[r]=n._fullInput.index;s[r]=t.data[i].dimensions,l[r]=t.data[i].dimensions.slice()}));n(t,e,{width:f.w,height:f.h,margin:{t:f.t,r:f.r,b:f.b,l:f.l}},{filterChanged:function(e,n,i){var a=l[e][n],o=i.map((function(t){return t.slice()})),s="dimensions["+n+"].constraintrange",f=r._tracePreGUI[t._fullData[c[e]]._fullInput.uid];if(void 0===f[s]){var h=a.constraintrange;f[s]=h||null}var p=t._fullData[c[e]].dimensions[n];o.length?(1===o.length&&(o=o[0]),a.constraintrange=o,p.constraintrange=o.slice(),o=[o]):(delete a.constraintrange,delete p.constraintrange,o=null);var d={};d[s]=o,t.emit("plotly_restyle",[d,[u[e]]])},hover:function(e){t.emit("plotly_hover",e)},unhover:function(e){t.emit("plotly_unhover",e)},axesMoved:function(e,r){var n=function(t,e){return function(r,n){return o(t,e,r)-o(t,e,n)}}(r,l[e].filter(a));s[e].sort(n),l[e].filter((function(t){return!a(t)})).sort((function(t){return l[e].indexOf(t)})).forEach((function(t){s[e].splice(s[e].indexOf(t),1),s[e].splice(l[e].indexOf(t),0,t)})),t.emit("plotly_restyle",[{dimensions:[s[e]]},[u[e]]])}})}}},{"../../lib/prepare_regl":791,"./helpers":1155,"./parcoords":1159}],1161:[function(t,e,r){"use strict";var n=t("../../plots/attributes"),i=t("../../plots/domain").attributes,a=t("../../plots/font_attributes"),o=t("../../components/color/attributes"),s=t("../../plots/template_attributes").hovertemplateAttrs,l=t("../../plots/template_attributes").texttemplateAttrs,c=t("../../lib/extend").extendFlat,u=a({editType:"plot",arrayOk:!0,colorEditType:"plot"});e.exports={labels:{valType:"data_array",editType:"calc"},label0:{valType:"number",dflt:0,editType:"calc"},dlabel:{valType:"number",dflt:1,editType:"calc"},values:{valType:"data_array",editType:"calc"},marker:{colors:{valType:"data_array",editType:"calc"},line:{color:{valType:"color",dflt:o.defaultLine,arrayOk:!0,editType:"style"},width:{valType:"number",min:0,dflt:0,arrayOk:!0,editType:"style"},editType:"calc"},editType:"calc"},text:{valType:"data_array",editType:"plot"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"style"},scalegroup:{valType:"string",dflt:"",editType:"calc"},textinfo:{valType:"flaglist",flags:["label","text","value","percent"],extras:["none"],editType:"calc"},hoverinfo:c({},n.hoverinfo,{flags:["label","text","value","percent","name"]}),hovertemplate:s({},{keys:["label","color","value","percent","text"]}),texttemplate:l({editType:"plot"},{keys:["label","color","value","percent","text"]}),textposition:{valType:"enumerated",values:["inside","outside","auto","none"],dflt:"auto",arrayOk:!0,editType:"plot"},textfont:c({},u,{}),insidetextorientation:{valType:"enumerated",values:["horizontal","radial","tangential","auto"],dflt:"auto",editType:"plot"},insidetextfont:c({},u,{}),outsidetextfont:c({},u,{}),automargin:{valType:"boolean",dflt:!1,editType:"plot"},title:{text:{valType:"string",dflt:"",editType:"plot"},font:c({},u,{}),position:{valType:"enumerated",values:["top left","top center","top right","middle center","bottom left","bottom center","bottom right"],editType:"plot"},editType:"plot"},domain:i({name:"pie",trace:!0,editType:"calc"}),hole:{valType:"number",min:0,max:1,dflt:0,editType:"calc"},sort:{valType:"boolean",dflt:!0,editType:"calc"},direction:{valType:"enumerated",values:["clockwise","counterclockwise"],dflt:"counterclockwise",editType:"calc"},rotation:{valType:"number",min:-360,max:360,dflt:0,editType:"calc"},pull:{valType:"number",min:0,max:1,dflt:0,arrayOk:!0,editType:"calc"},_deprecated:{title:{valType:"string",dflt:"",editType:"calc"},titlefont:c({},u,{}),titleposition:{valType:"enumerated",values:["top left","top center","top right","middle center","bottom left","bottom center","bottom right"],editType:"calc"}}}},{"../../components/color/attributes":642,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/domain":855,"../../plots/font_attributes":856,"../../plots/template_attributes":906}],1162:[function(t,e,r){"use strict";var n=t("../../plots/plots");r.name="pie",r.plot=function(t,e,i,a){n.plotBasePlot(r.name,t,e,i,a)},r.clean=function(t,e,i,a){n.cleanBasePlot(r.name,t,e,i,a)}},{"../../plots/plots":891}],1163:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("tinycolor2"),a=t("../../components/color"),o={};function s(t){return function(e,r){return!!e&&(!!(e=i(e)).isValid()&&(e=a.addOpacity(e,e.getAlpha()),t[r]||(t[r]=e),e))}}function l(t,e){var r,n=JSON.stringify(t),a=e[n];if(!a){for(a=t.slice(),r=0;r0){s=!0;break}}s||(o=0)}return{hasLabels:r,hasValues:a,len:o}}e.exports={handleLabelsAndValues:l,supplyDefaults:function(t,e,r,n){function c(r,n){return i.coerce(t,e,a,r,n)}var u=l(c("labels"),c("values")),f=u.len;if(e._hasLabels=u.hasLabels,e._hasValues=u.hasValues,!e._hasLabels&&e._hasValues&&(c("label0"),c("dlabel")),f){e._length=f,c("marker.line.width")&&c("marker.line.color"),c("marker.colors"),c("scalegroup");var h,p=c("text"),d=c("texttemplate");if(d||(h=c("textinfo",Array.isArray(p)?"text+percent":"percent")),c("hovertext"),c("hovertemplate"),d||h&&"none"!==h){var g=c("textposition");s(t,e,n,c,g,{moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1}),(Array.isArray(g)||"auto"===g||"outside"===g)&&c("automargin"),("inside"===g||"auto"===g||Array.isArray(g))&&c("insidetextorientation")}o(e,n,c);var m=c("hole");if(c("title.text")){var v=c("title.position",m?"middle center":"top center");m||"middle center"!==v||(e.title.position="top center"),i.coerceFont(c,"title.font",n.font)}c("sort"),c("direction"),c("rotation"),c("pull")}else e.visible=!1}}},{"../../lib":778,"../../plots/domain":855,"../bar/defaults":925,"./attributes":1161,"fast-isnumeric":241}],1165:[function(t,e,r){"use strict";var n=t("../../components/fx/helpers").appendArrayMultiPointValues;e.exports=function(t,e){var r={curveNumber:e.index,pointNumbers:t.pts,data:e._input,fullData:e,label:t.label,color:t.color,value:t.v,percent:t.percent,text:t.text,v:t.v};return 1===t.pts.length&&(r.pointNumber=r.i=t.pts[0]),n(r,e,t.pts),"funnelarea"===e.type&&(delete r.v,delete r.i),r}},{"../../components/fx/helpers":679}],1166:[function(t,e,r){"use strict";var n=t("../../lib");function i(t){return-1!==t.indexOf("e")?t.replace(/[.]?0+e/,"e"):-1!==t.indexOf(".")?t.replace(/[.]?0+$/,""):t}r.formatPiePercent=function(t,e){var r=i((100*t).toPrecision(3));return n.numSeparate(r,e)+"%"},r.formatPieValue=function(t,e){var r=i(t.toPrecision(10));return n.numSeparate(r,e)},r.getFirstFilled=function(t,e){if(Array.isArray(t))for(var r=0;r"),name:u.hovertemplate||-1!==f.indexOf("name")?u.name:void 0,idealAlign:t.pxmid[0]<0?"left":"right",color:m.castOption(b.bgcolor,t.pts)||t.color,borderColor:m.castOption(b.bordercolor,t.pts),fontFamily:m.castOption(_.family,t.pts),fontSize:m.castOption(_.size,t.pts),fontColor:m.castOption(_.color,t.pts),nameLength:m.castOption(b.namelength,t.pts),textAlign:m.castOption(b.align,t.pts),hovertemplate:m.castOption(u.hovertemplate,t.pts),hovertemplateLabels:t,eventData:[v(t,u)]},{container:r._hoverlayer.node(),outerContainer:r._paper.node(),gd:e}),o._hasHoverLabel=!0}o._hasHoverEvent=!0,e.emit("plotly_hover",{points:[v(t,u)],event:n.event})}})),t.on("mouseout",(function(t){var r=e._fullLayout,i=e._fullData[o.index],s=n.select(this).datum();o._hasHoverEvent&&(t.originalEvent=n.event,e.emit("plotly_unhover",{points:[v(s,i)],event:n.event}),o._hasHoverEvent=!1),o._hasHoverLabel&&(a.loneUnhover(r._hoverlayer.node()),o._hasHoverLabel=!1)})),t.on("click",(function(t){var r=e._fullLayout,i=e._fullData[o.index];e._dragging||!1===r.hovermode||(e._hoverdata=[v(t,i)],a.click(e,n.event))}))}function b(t,e,r){var n=m.castOption(t.insidetextfont.color,e.pts);!n&&t._input.textfont&&(n=m.castOption(t._input.textfont.color,e.pts));var i=m.castOption(t.insidetextfont.family,e.pts)||m.castOption(t.textfont.family,e.pts)||r.family,a=m.castOption(t.insidetextfont.size,e.pts)||m.castOption(t.textfont.size,e.pts)||r.size;return{color:n||o.contrast(e.color),family:i,size:a}}function _(t,e){for(var r,n,i=0;ie&&e>n||r=-4;m-=2)v(Math.PI*m,"tan");for(m=4;m>=-4;m-=2)v(Math.PI*(m+1),"tan")}if(f||p){for(m=4;m>=-4;m-=2)v(Math.PI*(m+1.5),"rad");for(m=4;m>=-4;m-=2)v(Math.PI*(m+.5),"rad")}}if(s||d||f){var y=Math.sqrt(t.width*t.width+t.height*t.height);if((a={scale:i*n*2/y,rCenter:1-i,rotate:0}).textPosAngle=(e.startangle+e.stopangle)/2,a.scale>=1)return a;g.push(a)}(d||p)&&((a=T(t,n,o,l,c)).textPosAngle=(e.startangle+e.stopangle)/2,g.push(a)),(d||h)&&((a=k(t,n,o,l,c)).textPosAngle=(e.startangle+e.stopangle)/2,g.push(a));for(var x=0,b=0,_=0;_=1)break}return g[x]}function T(t,e,r,n,i){e=Math.max(0,e-2*g);var a=t.width/t.height,o=S(a,n,e,r);return{scale:2*o/t.height,rCenter:M(a,o/e),rotate:A(i)}}function k(t,e,r,n,i){e=Math.max(0,e-2*g);var a=t.height/t.width,o=S(a,n,e,r);return{scale:2*o/t.width,rCenter:M(a,o/e),rotate:A(i+Math.PI/2)}}function M(t,e){return Math.cos(e)-t*e}function A(t){return(180/Math.PI*t+720)%180-90}function S(t,e,r,n){var i=t+1/(2*Math.tan(e));return r*Math.min(1/(Math.sqrt(i*i+.5)+i),n/(Math.sqrt(t*t+n/2)+t))}function E(t,e){return t.v!==e.vTotal||e.trace.hole?Math.min(1/(1+1/Math.sin(t.halfangle)),t.ring/2):1}function C(t,e){var r=e.pxmid[0],n=e.pxmid[1],i=t.width/2,a=t.height/2;return r<0&&(i*=-1),n<0&&(a*=-1),{scale:1,rCenter:1,rotate:0,x:i+Math.abs(a)*(i>0?1:-1)/2,y:a/(1+r*r/(n*n)),outside:!0}}function L(t,e){var r,n,i,a=t.trace,o={x:t.cx,y:t.cy},s={tx:0,ty:0};s.ty+=a.title.font.size,i=P(a),-1!==a.title.position.indexOf("top")?(o.y-=(1+i)*t.r,s.ty-=t.titleBox.height):-1!==a.title.position.indexOf("bottom")&&(o.y+=(1+i)*t.r);var l,c,u=(l=t.r,c=t.trace.aspectratio,l/(void 0===c?1:c)),f=e.w*(a.domain.x[1]-a.domain.x[0])/2;return-1!==a.title.position.indexOf("left")?(f+=u,o.x-=(1+i)*u,s.tx+=t.titleBox.width/2):-1!==a.title.position.indexOf("center")?f*=2:-1!==a.title.position.indexOf("right")&&(f+=u,o.x+=(1+i)*u,s.tx-=t.titleBox.width/2),r=f/t.titleBox.width,n=I(t,e)/t.titleBox.height,{x:o.x,y:o.y,scale:Math.min(r,n),tx:s.tx,ty:s.ty}}function I(t,e){var r=t.trace,n=e.h*(r.domain.y[1]-r.domain.y[0]);return Math.min(t.titleBox.height,n/2)}function P(t){var e,r=t.pull;if(!r)return 0;if(Array.isArray(r))for(r=0,e=0;er&&(r=t.pull[e]);return r}function z(t,e){for(var r=[],n=0;n1?(c=r.r,u=c/i.aspectratio):(u=r.r,c=u*i.aspectratio),c*=(1+i.baseratio)/2,l=c*u}o=Math.min(o,l/r.vTotal)}for(n=0;n")}if(a){var x=l.castOption(i,e.i,"texttemplate");if(x){var b=function(t){return{label:t.label,value:t.v,valueLabel:m.formatPieValue(t.v,n.separators),percent:t.v/r.vTotal,percentLabel:m.formatPiePercent(t.v/r.vTotal,n.separators),color:t.color,text:t.text,customdata:l.castOption(i,t.i,"customdata")}}(e),_=m.getFirstFilled(i.text,e.pts);(y(_)||""===_)&&(b.text=_),e.text=l.texttemplateString(x,b,t._fullLayout._d3locale,b,i._meta||{})}else e.text=""}}function R(t,e){var r=t.rotate*Math.PI/180,n=Math.cos(r),i=Math.sin(r),a=(e.left+e.right)/2,o=(e.top+e.bottom)/2;t.textX=a*n-o*i,t.textY=a*i+o*n,t.noCenter=!0}e.exports={plot:function(t,e){var r=t._fullLayout,a=r._size;d("pie",r),_(e,t),z(e,a);var h=l.makeTraceGroups(r._pielayer,e,"trace").each((function(e){var h=n.select(this),d=e[0],g=d.trace;!function(t){var e,r,n,i=t[0],a=i.r,o=i.trace,s=m.getRotationAngle(o.rotation),l=2*Math.PI/i.vTotal,c="px0",u="px1";if("counterclockwise"===o.direction){for(e=0;ei.vTotal/2?1:0,r.halfangle=Math.PI*Math.min(r.v/i.vTotal,.5),r.ring=1-o.hole,r.rInscribed=E(r,i))}(e),h.attr("stroke-linejoin","round"),h.each((function(){var v=n.select(this).selectAll("g.slice").data(e);v.enter().append("g").classed("slice",!0),v.exit().remove();var y=[[[],[]],[[],[]]],_=!1;v.each((function(i,a){if(i.hidden)n.select(this).selectAll("path,g").remove();else{i.pointNumber=i.i,i.curveNumber=g.index,y[i.pxmid[1]<0?0:1][i.pxmid[0]<0?0:1].push(i);var o=d.cx,c=d.cy,u=n.select(this),h=u.selectAll("path.surface").data([i]);if(h.enter().append("path").classed("surface",!0).style({"pointer-events":"all"}),u.call(x,t,e),g.pull){var v=+m.castOption(g.pull,i.pts)||0;v>0&&(o+=v*i.pxmid[0],c+=v*i.pxmid[1])}i.cxFinal=o,i.cyFinal=c;var T=g.hole;if(i.v===d.vTotal){var k="M"+(o+i.px0[0])+","+(c+i.px0[1])+L(i.px0,i.pxmid,!0,1)+L(i.pxmid,i.px0,!0,1)+"Z";T?h.attr("d","M"+(o+T*i.px0[0])+","+(c+T*i.px0[1])+L(i.px0,i.pxmid,!1,T)+L(i.pxmid,i.px0,!1,T)+"Z"+k):h.attr("d",k)}else{var M=L(i.px0,i.px1,!0,1);if(T){var A=1-T;h.attr("d","M"+(o+T*i.px1[0])+","+(c+T*i.px1[1])+L(i.px1,i.px0,!1,T)+"l"+A*i.px0[0]+","+A*i.px0[1]+M+"Z")}else h.attr("d","M"+o+","+c+"l"+i.px0[0]+","+i.px0[1]+M+"Z")}D(t,i,d);var S=m.castOption(g.textposition,i.pts),E=u.selectAll("g.slicetext").data(i.text&&"none"!==S?[0]:[]);E.enter().append("g").classed("slicetext",!0),E.exit().remove(),E.each((function(){var u=l.ensureSingle(n.select(this),"text","",(function(t){t.attr("data-notex",1)})),h=l.ensureUniformFontSize(t,"outside"===S?function(t,e,r){var n=m.castOption(t.outsidetextfont.color,e.pts)||m.castOption(t.textfont.color,e.pts)||r.color,i=m.castOption(t.outsidetextfont.family,e.pts)||m.castOption(t.textfont.family,e.pts)||r.family,a=m.castOption(t.outsidetextfont.size,e.pts)||m.castOption(t.textfont.size,e.pts)||r.size;return{color:n,family:i,size:a}}(g,i,r.font):b(g,i,r.font));u.text(i.text).attr({class:"slicetext",transform:"","text-anchor":"middle"}).call(s.font,h).call(f.convertToTspans,t);var v,y=s.bBox(u.node());if("outside"===S)v=C(y,i);else if(v=w(y,i,d),"auto"===S&&v.scale<1){var x=l.ensureUniformFontSize(t,g.outsidetextfont);u.call(s.font,x),v=C(y=s.bBox(u.node()),i)}var T=v.textPosAngle,k=void 0===T?i.pxmid:O(d.r,T);if(v.targetX=o+k[0]*v.rCenter+(v.x||0),v.targetY=c+k[1]*v.rCenter+(v.y||0),R(v,y),v.outside){var M=v.targetY;i.yLabelMin=M-y.height/2,i.yLabelMid=M,i.yLabelMax=M+y.height/2,i.labelExtraX=0,i.labelExtraY=0,_=!0}v.fontSize=h.size,p(g.type,v,r),e[a].transform=v,u.attr("transform",l.getTextTransform(v))}))}function L(t,e,r,n){var a=n*(e[0]-t[0]),o=n*(e[1]-t[1]);return"a"+n*d.r+","+n*d.r+" 0 "+i.largeArc+(r?" 1 ":" 0 ")+a+","+o}}));var T=n.select(this).selectAll("g.titletext").data(g.title.text?[0]:[]);if(T.enter().append("g").classed("titletext",!0),T.exit().remove(),T.each((function(){var e,r=l.ensureSingle(n.select(this),"text","",(function(t){t.attr("data-notex",1)})),i=g.title.text;g._meta&&(i=l.templateString(i,g._meta)),r.text(i).attr({class:"titletext",transform:"","text-anchor":"middle"}).call(s.font,g.title.font).call(f.convertToTspans,t),e="middle center"===g.title.position?function(t){var e=Math.sqrt(t.titleBox.width*t.titleBox.width+t.titleBox.height*t.titleBox.height);return{x:t.cx,y:t.cy,scale:t.trace.hole*t.r*2/e,tx:0,ty:-t.titleBox.height/2+t.trace.title.font.size}}(d):L(d,a),r.attr("transform",u(e.x,e.y)+c(Math.min(1,e.scale))+u(e.tx,e.ty))})),_&&function(t,e){var r,n,i,a,o,s,l,c,u,f,h,p,d;function g(t,e){return t.pxmid[1]-e.pxmid[1]}function v(t,e){return e.pxmid[1]-t.pxmid[1]}function y(t,r){r||(r={});var i,c,u,h,p=r.labelExtraY+(n?r.yLabelMax:r.yLabelMin),d=n?t.yLabelMin:t.yLabelMax,g=n?t.yLabelMax:t.yLabelMin,v=t.cyFinal+o(t.px0[1],t.px1[1]),y=p-d;if(y*l>0&&(t.labelExtraY=y),Array.isArray(e.pull))for(c=0;c=(m.castOption(e.pull,u.pts)||0)||((t.pxmid[1]-u.pxmid[1])*l>0?(y=u.cyFinal+o(u.px0[1],u.px1[1])-d-t.labelExtraY)*l>0&&(t.labelExtraY+=y):(g+t.labelExtraY-v)*l>0&&(i=3*s*Math.abs(c-f.indexOf(t)),(h=u.cxFinal+a(u.px0[0],u.px1[0])+i-(t.cxFinal+t.pxmid[0])-t.labelExtraX)*s>0&&(t.labelExtraX+=h)))}for(n=0;n<2;n++)for(i=n?g:v,o=n?Math.max:Math.min,l=n?1:-1,r=0;r<2;r++){for(a=r?Math.max:Math.min,s=r?1:-1,(c=t[n][r]).sort(i),u=t[1-n][r],f=u.concat(c),p=[],h=0;hMath.abs(f)?s+="l"+f*t.pxmid[0]/t.pxmid[1]+","+f+"H"+(a+t.labelExtraX+c):s+="l"+t.labelExtraX+","+u+"v"+(f-u)+"h"+c}else s+="V"+(t.yLabelMid+t.labelExtraY)+"h"+c;l.ensureSingle(r,"path","textline").call(o.stroke,e.outsidetextfont.color).attr({"stroke-width":Math.min(2,e.outsidetextfont.size/8),d:s,fill:"none"})}else r.select("path.textline").remove()}))}(v,g),_&&g.automargin){var k=s.bBox(h.node()),M=g.domain,A=a.w*(M.x[1]-M.x[0]),S=a.h*(M.y[1]-M.y[0]),E=(.5*A-d.r)/a.w,I=(.5*S-d.r)/a.h;i.autoMargin(t,"pie."+g.uid+".automargin",{xl:M.x[0]-E,xr:M.x[1]+E,yb:M.y[0]-I,yt:M.y[1]+I,l:Math.max(d.cx-d.r-k.left,0),r:Math.max(k.right-(d.cx+d.r),0),b:Math.max(k.bottom-(d.cy+d.r),0),t:Math.max(d.cy-d.r-k.top,0),pad:5})}}))}));setTimeout((function(){h.selectAll("tspan").each((function(){var t=n.select(this);t.attr("dy")&&t.attr("dy",t.attr("dy"))}))}),0)},formatSliceLabel:D,transformInsideText:w,determineInsideTextFont:b,positionTitleOutside:L,prerenderTitles:_,layoutAreas:z,attachFxHandlers:x,computeTransform:R}},{"../../components/color":643,"../../components/drawing":665,"../../components/fx":683,"../../lib":778,"../../lib/svg_text_utils":803,"../../plots/plots":891,"../bar/constants":923,"../bar/uniform_text":937,"./event_data":1165,"./helpers":1166,d3:169}],1171:[function(t,e,r){"use strict";var n=t("d3"),i=t("./style_one"),a=t("../bar/uniform_text").resizeText;e.exports=function(t){var e=t._fullLayout._pielayer.selectAll(".trace");a(t,e,"pie"),e.each((function(t){var e=t[0].trace,r=n.select(this);r.style({opacity:e.opacity}),r.selectAll("path.surface").each((function(t){n.select(this).call(i,t,e)}))}))}},{"../bar/uniform_text":937,"./style_one":1172,d3:169}],1172:[function(t,e,r){"use strict";var n=t("../../components/color"),i=t("./helpers").castOption;e.exports=function(t,e,r){var a=r.marker.line,o=i(a.color,e.pts)||n.defaultLine,s=i(a.width,e.pts)||0;t.style("stroke-width",s).call(n.fill,e.color).call(n.stroke,o)}},{"../../components/color":643,"./helpers":1166}],1173:[function(t,e,r){"use strict";var n=t("../scatter/attributes");e.exports={x:n.x,y:n.y,xy:{valType:"data_array",editType:"calc"},indices:{valType:"data_array",editType:"calc"},xbounds:{valType:"data_array",editType:"calc"},ybounds:{valType:"data_array",editType:"calc"},text:n.text,marker:{color:{valType:"color",arrayOk:!1,editType:"calc"},opacity:{valType:"number",min:0,max:1,dflt:1,arrayOk:!1,editType:"calc"},blend:{valType:"boolean",dflt:null,editType:"calc"},sizemin:{valType:"number",min:.1,max:2,dflt:.5,editType:"calc"},sizemax:{valType:"number",min:.1,dflt:20,editType:"calc"},border:{color:{valType:"color",arrayOk:!1,editType:"calc"},arearatio:{valType:"number",min:0,max:1,dflt:0,editType:"calc"},editType:"calc"},editType:"calc"},transforms:void 0}},{"../scatter/attributes":1187}],1174:[function(t,e,r){"use strict";var n=t("gl-pointcloud2d"),i=t("../../lib/str2rgbarray"),a=t("../../plots/cartesian/autorange").findExtremes,o=t("../scatter/get_trace_color");function s(t,e){this.scene=t,this.uid=e,this.type="pointcloud",this.pickXData=[],this.pickYData=[],this.xData=[],this.yData=[],this.textLabels=[],this.color="rgb(0, 0, 0)",this.name="",this.hoverinfo="all",this.idToIndex=new Int32Array(0),this.bounds=[0,0,0,0],this.pointcloudOptions={positions:new Float32Array(0),idToIndex:this.idToIndex,sizemin:.5,sizemax:12,color:[0,0,0,1],areaRatio:1,borderColor:[0,0,0,1]},this.pointcloud=n(t.glplot,this.pointcloudOptions),this.pointcloud._trace=this}var l=s.prototype;l.handlePick=function(t){var e=this.idToIndex[t.pointId];return{trace:this,dataCoord:t.dataCoord,traceCoord:this.pickXYData?[this.pickXYData[2*e],this.pickXYData[2*e+1]]:[this.pickXData[e],this.pickYData[e]],textLabel:Array.isArray(this.textLabels)?this.textLabels[e]:this.textLabels,color:this.color,name:this.name,pointIndex:e,hoverinfo:this.hoverinfo}},l.update=function(t){this.index=t.index,this.textLabels=t.text,this.name=t.name,this.hoverinfo=t.hoverinfo,this.bounds=[1/0,1/0,-1/0,-1/0],this.updateFast(t),this.color=o(t,{})},l.updateFast=function(t){var e,r,n,o,s,l,c=this.xData=this.pickXData=t.x,u=this.yData=this.pickYData=t.y,f=this.pickXYData=t.xy,h=t.xbounds&&t.ybounds,p=t.indices,d=this.bounds;if(f){if(n=f,e=f.length>>>1,h)d[0]=t.xbounds[0],d[2]=t.xbounds[1],d[1]=t.ybounds[0],d[3]=t.ybounds[1];else for(l=0;ld[2]&&(d[2]=o),sd[3]&&(d[3]=s);if(p)r=p;else for(r=new Int32Array(e),l=0;ld[2]&&(d[2]=o),sd[3]&&(d[3]=s);this.idToIndex=r,this.pointcloudOptions.idToIndex=r,this.pointcloudOptions.positions=n;var g=i(t.marker.color),m=i(t.marker.border.color),v=t.opacity*t.marker.opacity;g[3]*=v,this.pointcloudOptions.color=g;var y=t.marker.blend;if(null===y){y=c.length<100||u.length<100}this.pointcloudOptions.blend=y,m[3]*=v,this.pointcloudOptions.borderColor=m;var x=t.marker.sizemin,b=Math.max(t.marker.sizemax,t.marker.sizemin);this.pointcloudOptions.sizeMin=x,this.pointcloudOptions.sizeMax=b,this.pointcloudOptions.areaRatio=t.marker.border.arearatio,this.pointcloud.update(this.pointcloudOptions);var _=this.scene.xaxis,w=this.scene.yaxis,T=b/2||.5;t._extremes[_._id]=a(_,[d[0],d[2]],{ppad:T}),t._extremes[w._id]=a(w,[d[1],d[3]],{ppad:T})},l.dispose=function(){this.pointcloud.dispose()},e.exports=function(t,e){var r=new s(t,e.uid);return r.update(e),r}},{"../../lib/str2rgbarray":802,"../../plots/cartesian/autorange":827,"../scatter/get_trace_color":1197,"gl-pointcloud2d":324}],1175:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./attributes");e.exports=function(t,e,r){function a(r,a){return n.coerce(t,e,i,r,a)}a("x"),a("y"),a("xbounds"),a("ybounds"),t.xy&&t.xy instanceof Float32Array&&(e.xy=t.xy),t.indices&&t.indices instanceof Int32Array&&(e.indices=t.indices),a("text"),a("marker.color",r),a("marker.opacity"),a("marker.blend"),a("marker.sizemin"),a("marker.sizemax"),a("marker.border.color",r),a("marker.border.arearatio"),e._length=null}},{"../../lib":778,"./attributes":1173}],1176:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),calc:t("../scatter3d/calc"),plot:t("./convert"),moduleType:"trace",name:"pointcloud",basePlotModule:t("../../plots/gl2d"),categories:["gl","gl2d","showLegend"],meta:{}}},{"../../plots/gl2d":868,"../scatter3d/calc":1216,"./attributes":1173,"./convert":1174,"./defaults":1175}],1177:[function(t,e,r){"use strict";var n=t("../../plots/font_attributes"),i=t("../../plots/attributes"),a=t("../../components/color/attributes"),o=t("../../components/fx/attributes"),s=t("../../plots/domain").attributes,l=t("../../plots/template_attributes").hovertemplateAttrs,c=t("../../components/colorscale/attributes"),u=t("../../plot_api/plot_template").templatedArray,f=t("../../lib/extend").extendFlat,h=t("../../plot_api/edit_types").overrideAll;t("../../constants/docs").FORMAT_LINK;(e.exports=h({hoverinfo:f({},i.hoverinfo,{flags:[],arrayOk:!1}),hoverlabel:o.hoverlabel,domain:s({name:"sankey",trace:!0}),orientation:{valType:"enumerated",values:["v","h"],dflt:"h"},valueformat:{valType:"string",dflt:".3s"},valuesuffix:{valType:"string",dflt:""},arrangement:{valType:"enumerated",values:["snap","perpendicular","freeform","fixed"],dflt:"snap"},textfont:n({}),customdata:void 0,node:{label:{valType:"data_array",dflt:[]},groups:{valType:"info_array",impliedEdits:{x:[],y:[]},dimensions:2,freeLength:!0,dflt:[],items:{valType:"number",editType:"calc"}},x:{valType:"data_array",dflt:[]},y:{valType:"data_array",dflt:[]},color:{valType:"color",arrayOk:!0},customdata:{valType:"data_array",editType:"calc"},line:{color:{valType:"color",dflt:a.defaultLine,arrayOk:!0},width:{valType:"number",min:0,dflt:.5,arrayOk:!0}},pad:{valType:"number",arrayOk:!1,min:0,dflt:20},thickness:{valType:"number",arrayOk:!1,min:1,dflt:20},hoverinfo:{valType:"enumerated",values:["all","none","skip"],dflt:"all"},hoverlabel:o.hoverlabel,hovertemplate:l({},{keys:["value","label"]})},link:{label:{valType:"data_array",dflt:[]},color:{valType:"color",arrayOk:!0},customdata:{valType:"data_array",editType:"calc"},line:{color:{valType:"color",dflt:a.defaultLine,arrayOk:!0},width:{valType:"number",min:0,dflt:0,arrayOk:!0}},source:{valType:"data_array",dflt:[]},target:{valType:"data_array",dflt:[]},value:{valType:"data_array",dflt:[]},hoverinfo:{valType:"enumerated",values:["all","none","skip"],dflt:"all"},hoverlabel:o.hoverlabel,hovertemplate:l({},{keys:["value","label"]}),colorscales:u("concentrationscales",{editType:"calc",label:{valType:"string",editType:"calc",dflt:""},cmax:{valType:"number",editType:"calc",dflt:1},cmin:{valType:"number",editType:"calc",dflt:0},colorscale:f(c().colorscale,{dflt:[[0,"white"],[1,"black"]]})})}},"calc","nested")).transforms=void 0},{"../../components/color/attributes":642,"../../components/colorscale/attributes":650,"../../components/fx/attributes":674,"../../constants/docs":748,"../../lib/extend":768,"../../plot_api/edit_types":810,"../../plot_api/plot_template":817,"../../plots/attributes":824,"../../plots/domain":855,"../../plots/font_attributes":856,"../../plots/template_attributes":906}],1178:[function(t,e,r){"use strict";var n=t("../../plot_api/edit_types").overrideAll,i=t("../../plots/get_data").getModuleCalcData,a=t("./plot"),o=t("../../components/fx/layout_attributes"),s=t("../../lib/setcursor"),l=t("../../components/dragelement"),c=t("../../plots/cartesian/select").prepSelect,u=t("../../lib"),f=t("../../registry");function h(t,e){var r=t._fullData[e],n=t._fullLayout,i=n.dragmode,a="pan"===n.dragmode?"move":"crosshair",o=r._bgRect;if("pan"!==i&&"zoom"!==i){s(o,a);var h={_id:"x",c2p:u.identity,_offset:r._sankey.translateX,_length:r._sankey.width},p={_id:"y",c2p:u.identity,_offset:r._sankey.translateY,_length:r._sankey.height},d={gd:t,element:o.node(),plotinfo:{id:e,xaxis:h,yaxis:p,fillRangeItems:u.noop},subplot:e,xaxes:[h],yaxes:[p],doneFnCompleted:function(r){var n,i=t._fullData[e],a=i.node.groups.slice(),o=[];function s(t){for(var e=i._sankey.graph.nodes,r=0;ry&&(y=a.source[e]),a.target[e]>y&&(y=a.target[e]);var x,b=y+1;t.node._count=b;var _=t.node.groups,w={};for(e=0;e<_.length;e++){var T=_[e];for(x=0;x0&&s(E,b)&&s(C,b)&&(!w.hasOwnProperty(E)||!w.hasOwnProperty(C)||w[E]!==w[C])){w.hasOwnProperty(C)&&(C=w[C]),w.hasOwnProperty(E)&&(E=w[E]),C=+C,h[E=+E]=h[C]=!0;var L="";a.label&&a.label[e]&&(L=a.label[e]);var I=null;L&&p.hasOwnProperty(L)&&(I=p[L]),c.push({pointNumber:e,label:L,color:u?a.color[e]:a.color,customdata:f?a.customdata[e]:a.customdata,concentrationscale:I,source:E,target:C,value:+S}),A.source.push(E),A.target.push(C)}}var P=b+_.length,z=o(r.color),O=o(r.customdata),D=[];for(e=0;eb-1,childrenNodes:[],pointNumber:e,label:R,color:z?r.color[e]:r.color,customdata:O?r.customdata[e]:r.customdata})}var F=!1;return function(t,e,r){for(var a=i.init2dArray(t,0),o=0;o1}))}(P,A.source,A.target)&&(F=!0),{circular:F,links:c,nodes:D,groups:_,groupLookup:w}}e.exports=function(t,e){var r=c(e);return a({circular:r.circular,_nodes:r.nodes,_links:r.links,_groups:r.groups,_groupLookup:r.groupLookup})}},{"../../components/colorscale":655,"../../lib":778,"../../lib/gup":775,"strongly-connected-components":569}],1180:[function(t,e,r){"use strict";e.exports={nodeTextOffsetHorizontal:4,nodeTextOffsetVertical:3,nodePadAcross:10,sankeyIterations:50,forceIterations:5,forceTicksPerFrame:10,duration:500,ease:"linear",cn:{sankey:"sankey",sankeyLinks:"sankey-links",sankeyLink:"sankey-link",sankeyNodeSet:"sankey-node-set",sankeyNode:"sankey-node",nodeRect:"node-rect",nodeCapture:"node-capture",nodeCentered:"node-entered",nodeLabelGuide:"node-label-guide",nodeLabel:"node-label",nodeLabelTextPath:"node-label-text-path"}}},{}],1181:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./attributes"),a=t("../../components/color"),o=t("tinycolor2"),s=t("../../plots/domain").defaults,l=t("../../components/fx/hoverlabel_defaults"),c=t("../../plot_api/plot_template"),u=t("../../plots/array_container_defaults");function f(t,e){function r(r,a){return n.coerce(t,e,i.link.colorscales,r,a)}r("label"),r("cmin"),r("cmax"),r("colorscale")}e.exports=function(t,e,r,h){function p(r,a){return n.coerce(t,e,i,r,a)}var d=n.extendDeep(h.hoverlabel,t.hoverlabel),g=t.node,m=c.newContainer(e,"node");function v(t,e){return n.coerce(g,m,i.node,t,e)}v("label"),v("groups"),v("x"),v("y"),v("pad"),v("thickness"),v("line.color"),v("line.width"),v("hoverinfo",t.hoverinfo),l(g,m,v,d),v("hovertemplate");var y=h.colorway;v("color",m.label.map((function(t,e){return a.addOpacity(function(t){return y[t%y.length]}(e),.8)}))),v("customdata");var x=t.link||{},b=c.newContainer(e,"link");function _(t,e){return n.coerce(x,b,i.link,t,e)}_("label"),_("source"),_("target"),_("value"),_("line.color"),_("line.width"),_("hoverinfo",t.hoverinfo),l(x,b,_,d),_("hovertemplate");var w,T=o(h.paper_bgcolor).getLuminance()<.333?"rgba(255, 255, 255, 0.6)":"rgba(0, 0, 0, 0.2)";_("color",n.repeat(T,b.value.length)),_("customdata"),u(x,b,{name:"colorscales",handleItemDefaults:f}),s(e,h,p),p("orientation"),p("valueformat"),p("valuesuffix"),m.x.length&&m.y.length&&(w="freeform"),p("arrangement",w),n.coerceFont(p,"textfont",n.extendFlat({},h.font)),e._length=null}},{"../../components/color":643,"../../components/fx/hoverlabel_defaults":681,"../../lib":778,"../../plot_api/plot_template":817,"../../plots/array_container_defaults":823,"../../plots/domain":855,"./attributes":1177,tinycolor2:576}],1182:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),calc:t("./calc"),plot:t("./plot"),moduleType:"trace",name:"sankey",basePlotModule:t("./base_plot"),selectPoints:t("./select.js"),categories:["noOpacity"],meta:{}}},{"./attributes":1177,"./base_plot":1178,"./calc":1179,"./defaults":1181,"./plot":1183,"./select.js":1185}],1183:[function(t,e,r){"use strict";var n=t("d3"),i=t("./render"),a=t("../../components/fx"),o=t("../../components/color"),s=t("../../lib"),l=t("./constants").cn,c=s._;function u(t){return""!==t}function f(t,e){return t.filter((function(t){return t.key===e.traceId}))}function h(t,e){n.select(t).select("path").style("fill-opacity",e),n.select(t).select("rect").style("fill-opacity",e)}function p(t){n.select(t).select("text.name").style("fill","black")}function d(t){return function(e){return-1!==t.node.sourceLinks.indexOf(e.link)||-1!==t.node.targetLinks.indexOf(e.link)}}function g(t){return function(e){return-1!==e.node.sourceLinks.indexOf(t.link)||-1!==e.node.targetLinks.indexOf(t.link)}}function m(t,e,r){e&&r&&f(r,e).selectAll("."+l.sankeyLink).filter(d(e)).call(y.bind(0,e,r,!1))}function v(t,e,r){e&&r&&f(r,e).selectAll("."+l.sankeyLink).filter(d(e)).call(x.bind(0,e,r,!1))}function y(t,e,r,n){var i=n.datum().link.label;n.style("fill-opacity",(function(t){if(!t.link.concentrationscale)return.4})),i&&f(e,t).selectAll("."+l.sankeyLink).filter((function(t){return t.link.label===i})).style("fill-opacity",(function(t){if(!t.link.concentrationscale)return.4})),r&&f(e,t).selectAll("."+l.sankeyNode).filter(g(t)).call(m)}function x(t,e,r,n){var i=n.datum().link.label;n.style("fill-opacity",(function(t){return t.tinyColorAlpha})),i&&f(e,t).selectAll("."+l.sankeyLink).filter((function(t){return t.link.label===i})).style("fill-opacity",(function(t){return t.tinyColorAlpha})),r&&f(e,t).selectAll(l.sankeyNode).filter(g(t)).call(v)}function b(t,e){var r=t.hoverlabel||{},n=s.nestedProperty(r,e).get();return!Array.isArray(n)&&n}e.exports=function(t,e){for(var r=t._fullLayout,s=r._paper,f=r._size,d=0;d"),color:b(s,"bgcolor")||o.addOpacity(d.color,1),borderColor:b(s,"bordercolor"),fontFamily:b(s,"font.family"),fontSize:b(s,"font.size"),fontColor:b(s,"font.color"),nameLength:b(s,"namelength"),textAlign:b(s,"align"),idealAlign:n.event.x"),color:b(o,"bgcolor")||i.tinyColorHue,borderColor:b(o,"bordercolor"),fontFamily:b(o,"font.family"),fontSize:b(o,"font.size"),fontColor:b(o,"font.color"),nameLength:b(o,"namelength"),textAlign:b(o,"align"),idealAlign:"left",hovertemplate:o.hovertemplate,hovertemplateLabels:v,eventData:[i.node]},{container:r._hoverlayer.node(),outerContainer:r._paper.node(),gd:t});h(_,.85),p(_)}}},unhover:function(e,i,o){!1!==t._fullLayout.hovermode&&(n.select(e).call(v,i,o),"skip"!==i.node.trace.node.hoverinfo&&(i.node.fullData=i.node.trace,t.emit("plotly_unhover",{event:n.event,points:[i.node]})),a.loneUnhover(r._hoverlayer.node()))},select:function(e,r,i){var o=r.node;o.originalEvent=n.event,t._hoverdata=[o],n.select(e).call(v,r,i),a.click(t,{target:!0})}}})}},{"../../components/color":643,"../../components/fx":683,"../../lib":778,"./constants":1180,"./render":1184,d3:169}],1184:[function(t,e,r){"use strict";var n=t("./constants"),i=t("d3"),a=t("tinycolor2"),o=t("../../components/color"),s=t("../../components/drawing"),l=t("@plotly/d3-sankey"),c=t("@plotly/d3-sankey-circular"),u=t("d3-force"),f=t("../../lib"),h=f.strTranslate,p=t("../../lib/gup"),d=p.keyFun,g=p.repeat,m=p.unwrap,v=t("d3-interpolate").interpolateNumber,y=t("../../registry");function x(t,e,r){var i,o=m(e),s=o.trace,u=s.domain,h="h"===s.orientation,p=s.node.pad,d=s.node.thickness,g=t.width*(u.x[1]-u.x[0]),v=t.height*(u.y[1]-u.y[0]),y=o._nodes,x=o._links,b=o.circular;(i=b?c.sankeyCircular().circularLinkGap(0):l.sankey()).iterations(n.sankeyIterations).size(h?[g,v]:[v,g]).nodeWidth(d).nodePadding(p).nodeId((function(t){return t.pointNumber})).nodes(y).links(x);var _,w,T,k=i();for(var M in i.nodePadding()=i||(r=i-e.y0)>1e-6&&(e.y0+=r,e.y1+=r),i=e.y1+p}))}(function(t){var e,r,n=t.map((function(t,e){return{x0:t.x0,index:e}})).sort((function(t,e){return t.x0-e.x0})),i=[],a=-1,o=-1/0;for(_=0;_o+d&&(a+=1,e=s.x0),o=s.x0,i[a]||(i[a]=[]),i[a].push(s),r=e-s.x0,s.x0+=r,s.x1+=r}return i}(y=k.nodes));i.update(k)}return{circular:b,key:r,trace:s,guid:f.randstr(),horizontal:h,width:g,height:v,nodePad:s.node.pad,nodeLineColor:s.node.line.color,nodeLineWidth:s.node.line.width,linkLineColor:s.link.line.color,linkLineWidth:s.link.line.width,valueFormat:s.valueformat,valueSuffix:s.valuesuffix,textFont:s.textfont,translateX:u.x[0]*t.width+t.margin.l,translateY:t.height-u.y[1]*t.height+t.margin.t,dragParallel:h?v:g,dragPerpendicular:h?g:v,arrangement:s.arrangement,sankey:i,graph:k,forceLayouts:{},interactionState:{dragInProgress:!1,hovered:!1}}}function b(t,e,r){var n=a(e.color),i=e.source.label+"|"+e.target.label+"__"+r;return e.trace=t.trace,e.curveNumber=t.trace.index,{circular:t.circular,key:i,traceId:t.key,pointNumber:e.pointNumber,link:e,tinyColorHue:o.tinyRGB(n),tinyColorAlpha:n.getAlpha(),linkPath:_,linkLineColor:t.linkLineColor,linkLineWidth:t.linkLineWidth,valueFormat:t.valueFormat,valueSuffix:t.valueSuffix,sankey:t.sankey,parent:t,interactionState:t.interactionState,flow:e.flow}}function _(){return function(t){if(t.link.circular)return e=t.link,r=e.width/2,n=e.circularPathData,"top"===e.circularLinkType?"M "+n.targetX+" "+(n.targetY+r)+" L"+n.rightInnerExtent+" "+(n.targetY+r)+"A"+(n.rightLargeArcRadius+r)+" "+(n.rightSmallArcRadius+r)+" 0 0 1 "+(n.rightFullExtent-r)+" "+(n.targetY-n.rightSmallArcRadius)+"L"+(n.rightFullExtent-r)+" "+n.verticalRightInnerExtent+"A"+(n.rightLargeArcRadius+r)+" "+(n.rightLargeArcRadius+r)+" 0 0 1 "+n.rightInnerExtent+" "+(n.verticalFullExtent-r)+"L"+n.leftInnerExtent+" "+(n.verticalFullExtent-r)+"A"+(n.leftLargeArcRadius+r)+" "+(n.leftLargeArcRadius+r)+" 0 0 1 "+(n.leftFullExtent+r)+" "+n.verticalLeftInnerExtent+"L"+(n.leftFullExtent+r)+" "+(n.sourceY-n.leftSmallArcRadius)+"A"+(n.leftLargeArcRadius+r)+" "+(n.leftSmallArcRadius+r)+" 0 0 1 "+n.leftInnerExtent+" "+(n.sourceY+r)+"L"+n.sourceX+" "+(n.sourceY+r)+"L"+n.sourceX+" "+(n.sourceY-r)+"L"+n.leftInnerExtent+" "+(n.sourceY-r)+"A"+(n.leftLargeArcRadius-r)+" "+(n.leftSmallArcRadius-r)+" 0 0 0 "+(n.leftFullExtent-r)+" "+(n.sourceY-n.leftSmallArcRadius)+"L"+(n.leftFullExtent-r)+" "+n.verticalLeftInnerExtent+"A"+(n.leftLargeArcRadius-r)+" "+(n.leftLargeArcRadius-r)+" 0 0 0 "+n.leftInnerExtent+" "+(n.verticalFullExtent+r)+"L"+n.rightInnerExtent+" "+(n.verticalFullExtent+r)+"A"+(n.rightLargeArcRadius-r)+" "+(n.rightLargeArcRadius-r)+" 0 0 0 "+(n.rightFullExtent+r)+" "+n.verticalRightInnerExtent+"L"+(n.rightFullExtent+r)+" "+(n.targetY-n.rightSmallArcRadius)+"A"+(n.rightLargeArcRadius-r)+" "+(n.rightSmallArcRadius-r)+" 0 0 0 "+n.rightInnerExtent+" "+(n.targetY-r)+"L"+n.targetX+" "+(n.targetY-r)+"Z":"M "+n.targetX+" "+(n.targetY-r)+" L"+n.rightInnerExtent+" "+(n.targetY-r)+"A"+(n.rightLargeArcRadius+r)+" "+(n.rightSmallArcRadius+r)+" 0 0 0 "+(n.rightFullExtent-r)+" "+(n.targetY+n.rightSmallArcRadius)+"L"+(n.rightFullExtent-r)+" "+n.verticalRightInnerExtent+"A"+(n.rightLargeArcRadius+r)+" "+(n.rightLargeArcRadius+r)+" 0 0 0 "+n.rightInnerExtent+" "+(n.verticalFullExtent+r)+"L"+n.leftInnerExtent+" "+(n.verticalFullExtent+r)+"A"+(n.leftLargeArcRadius+r)+" "+(n.leftLargeArcRadius+r)+" 0 0 0 "+(n.leftFullExtent+r)+" "+n.verticalLeftInnerExtent+"L"+(n.leftFullExtent+r)+" "+(n.sourceY+n.leftSmallArcRadius)+"A"+(n.leftLargeArcRadius+r)+" "+(n.leftSmallArcRadius+r)+" 0 0 0 "+n.leftInnerExtent+" "+(n.sourceY-r)+"L"+n.sourceX+" "+(n.sourceY-r)+"L"+n.sourceX+" "+(n.sourceY+r)+"L"+n.leftInnerExtent+" "+(n.sourceY+r)+"A"+(n.leftLargeArcRadius-r)+" "+(n.leftSmallArcRadius-r)+" 0 0 1 "+(n.leftFullExtent-r)+" "+(n.sourceY+n.leftSmallArcRadius)+"L"+(n.leftFullExtent-r)+" "+n.verticalLeftInnerExtent+"A"+(n.leftLargeArcRadius-r)+" "+(n.leftLargeArcRadius-r)+" 0 0 1 "+n.leftInnerExtent+" "+(n.verticalFullExtent-r)+"L"+n.rightInnerExtent+" "+(n.verticalFullExtent-r)+"A"+(n.rightLargeArcRadius-r)+" "+(n.rightLargeArcRadius-r)+" 0 0 1 "+(n.rightFullExtent+r)+" "+n.verticalRightInnerExtent+"L"+(n.rightFullExtent+r)+" "+(n.targetY+n.rightSmallArcRadius)+"A"+(n.rightLargeArcRadius-r)+" "+(n.rightSmallArcRadius-r)+" 0 0 1 "+n.rightInnerExtent+" "+(n.targetY+r)+"L"+n.targetX+" "+(n.targetY+r)+"Z";var e,r,n,i=t.link.source.x1,a=t.link.target.x0,o=v(i,a),s=o(.5),l=o(.5),c=t.link.y0-t.link.width/2,u=t.link.y0+t.link.width/2,f=t.link.y1-t.link.width/2,h=t.link.y1+t.link.width/2;return"M"+i+","+c+"C"+s+","+c+" "+l+","+f+" "+a+","+f+"L"+a+","+h+"C"+l+","+h+" "+s+","+u+" "+i+","+u+"Z"}}function w(t,e){var r=a(e.color),i=n.nodePadAcross,s=t.nodePad/2;e.dx=e.x1-e.x0,e.dy=e.y1-e.y0;var l=e.dx,c=Math.max(.5,e.dy),u="node_"+e.pointNumber;return e.group&&(u=f.randstr()),e.trace=t.trace,e.curveNumber=t.trace.index,{index:e.pointNumber,key:u,partOfGroup:e.partOfGroup||!1,group:e.group,traceId:t.key,trace:t.trace,node:e,nodePad:t.nodePad,nodeLineColor:t.nodeLineColor,nodeLineWidth:t.nodeLineWidth,textFont:t.textFont,size:t.horizontal?t.height:t.width,visibleWidth:Math.ceil(l),visibleHeight:c,zoneX:-i,zoneY:-s,zoneWidth:l+2*i,zoneHeight:c+2*s,labelY:t.horizontal?e.dy/2+1:e.dx/2+1,left:1===e.originalLayer,sizeAcross:t.width,forceLayouts:t.forceLayouts,horizontal:t.horizontal,darkBackground:r.getBrightness()<=128,tinyColorHue:o.tinyRGB(r),tinyColorAlpha:r.getAlpha(),valueFormat:t.valueFormat,valueSuffix:t.valueSuffix,sankey:t.sankey,graph:t.graph,arrangement:t.arrangement,uniqueNodeLabelPathId:[t.guid,t.key,u].join("_"),interactionState:t.interactionState,figure:t}}function T(t){t.attr("transform",(function(t){return h(t.node.x0.toFixed(3),t.node.y0.toFixed(3))}))}function k(t){t.call(T)}function M(t,e){t.call(k),e.attr("d",_())}function A(t){t.attr("width",(function(t){return t.node.x1-t.node.x0})).attr("height",(function(t){return t.visibleHeight}))}function S(t){return t.link.width>1||t.linkLineWidth>0}function E(t){return h(t.translateX,t.translateY)+(t.horizontal?"matrix(1 0 0 1 0 0)":"matrix(0 1 1 0 0 0)")}function C(t){return h(t.horizontal?0:t.labelY,t.horizontal?t.labelY:0)}function L(t){return i.svg.line()([[t.horizontal?t.left?-t.sizeAcross:t.visibleWidth+n.nodeTextOffsetHorizontal:n.nodeTextOffsetHorizontal,0],[t.horizontal?t.left?-n.nodeTextOffsetHorizontal:t.sizeAcross:t.visibleHeight-n.nodeTextOffsetHorizontal,0]])}function I(t){return t.horizontal?"matrix(1 0 0 1 0 0)":"matrix(0 1 1 0 0 0)"}function P(t){return t.horizontal?"scale(1 1)":"scale(-1 1)"}function z(t){return t.darkBackground&&!t.horizontal?"rgb(255,255,255)":"rgb(0,0,0)"}function O(t){return t.horizontal&&t.left?"100%":"0%"}function D(t,e,r){t.on(".basic",null).on("mouseover.basic",(function(t){t.interactionState.dragInProgress||t.partOfGroup||(r.hover(this,t,e),t.interactionState.hovered=[this,t])})).on("mousemove.basic",(function(t){t.interactionState.dragInProgress||t.partOfGroup||(r.follow(this,t),t.interactionState.hovered=[this,t])})).on("mouseout.basic",(function(t){t.interactionState.dragInProgress||t.partOfGroup||(r.unhover(this,t,e),t.interactionState.hovered=!1)})).on("click.basic",(function(t){t.interactionState.hovered&&(r.unhover(this,t,e),t.interactionState.hovered=!1),t.interactionState.dragInProgress||t.partOfGroup||r.select(this,t,e)}))}function R(t,e,r,a){var o=i.behavior.drag().origin((function(t){return{x:t.node.x0+t.visibleWidth/2,y:t.node.y0+t.visibleHeight/2}})).on("dragstart",(function(i){if("fixed"!==i.arrangement&&(f.ensureSingle(a._fullLayout._infolayer,"g","dragcover",(function(t){a._fullLayout._dragCover=t})),f.raiseToTop(this),i.interactionState.dragInProgress=i.node,B(i.node),i.interactionState.hovered&&(r.nodeEvents.unhover.apply(0,i.interactionState.hovered),i.interactionState.hovered=!1),"snap"===i.arrangement)){var o=i.traceId+"|"+i.key;i.forceLayouts[o]?i.forceLayouts[o].alpha(1):function(t,e,r,i){!function(t){for(var e=0;e0&&i.forceLayouts[e].alpha(0)}}(0,e,a,r)).stop()}(0,o,i),function(t,e,r,i,a){window.requestAnimationFrame((function o(){var s;for(s=0;s0)window.requestAnimationFrame(o);else{var l=r.node.originalX;r.node.x0=l-r.visibleWidth/2,r.node.x1=l+r.visibleWidth/2,F(r,a)}}))}(t,e,i,o,a)}})).on("drag",(function(r){if("fixed"!==r.arrangement){var n=i.event.x,a=i.event.y;"snap"===r.arrangement?(r.node.x0=n-r.visibleWidth/2,r.node.x1=n+r.visibleWidth/2,r.node.y0=a-r.visibleHeight/2,r.node.y1=a+r.visibleHeight/2):("freeform"===r.arrangement&&(r.node.x0=n-r.visibleWidth/2,r.node.x1=n+r.visibleWidth/2),a=Math.max(0,Math.min(r.size-r.visibleHeight/2,a)),r.node.y0=a-r.visibleHeight/2,r.node.y1=a+r.visibleHeight/2),B(r.node),"snap"!==r.arrangement&&(r.sankey.update(r.graph),M(t.filter(N(r)),e))}})).on("dragend",(function(t){if("fixed"!==t.arrangement){t.interactionState.dragInProgress=!1;for(var e=0;e5?t.node.label:""})).attr("text-anchor",(function(t){return t.horizontal&&t.left?"end":"start"})),q.transition().ease(n.ease).duration(n.duration).attr("startOffset",O).style("fill",z)}},{"../../components/color":643,"../../components/drawing":665,"../../lib":778,"../../lib/gup":775,"../../registry":911,"./constants":1180,"@plotly/d3-sankey":56,"@plotly/d3-sankey-circular":55,d3:169,"d3-force":160,"d3-interpolate":162,tinycolor2:576}],1185:[function(t,e,r){"use strict";e.exports=function(t,e){for(var r=[],n=t.cd[0].trace,i=n._sankey.graph.nodes,a=0;al&&E[v].gap;)v--;for(x=E[v].s,g=E.length-1;g>v;g--)E[g].s=x;for(;lA[u]&&u=0;i--){var a=t[i];if("scatter"===a.type&&a.xaxis===r.xaxis&&a.yaxis===r.yaxis){a.opacity=void 0;break}}}}}},{}],1194:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../registry"),a=t("./attributes"),o=t("./constants"),s=t("./subtypes"),l=t("./xy_defaults"),c=t("./period_defaults"),u=t("./stack_defaults"),f=t("./marker_defaults"),h=t("./line_defaults"),p=t("./line_shape_defaults"),d=t("./text_defaults"),g=t("./fillcolor_defaults");e.exports=function(t,e,r,m){function v(r,i){return n.coerce(t,e,a,r,i)}var y=l(t,e,m,v);if(y||(e.visible=!1),e.visible){c(t,e,m,v);var x=u(t,e,m,v),b=!x&&yG!=(F=P[L][1])>=G&&(O=P[L-1][0],D=P[L][0],F-R&&(z=O+(D-O)*(G-R)/(F-R),U=Math.min(U,z),V=Math.max(V,z)));U=Math.max(U,0),V=Math.min(V,h._length);var Y=s.defaultLine;return s.opacity(f.fillcolor)?Y=f.fillcolor:s.opacity((f.line||{}).color)&&(Y=f.line.color),n.extendFlat(t,{distance:t.maxHoverDistance,x0:U,x1:V,y0:G,y1:G,color:Y,hovertemplate:!1}),delete t.index,f.text&&!Array.isArray(f.text)?t.text=String(f.text):t.text=f.name,[t]}}}},{"../../components/color":643,"../../components/fx":683,"../../lib":778,"../../registry":911,"./get_trace_color":1197}],1199:[function(t,e,r){"use strict";var n=t("./subtypes");e.exports={hasLines:n.hasLines,hasMarkers:n.hasMarkers,hasText:n.hasText,isBubble:n.isBubble,attributes:t("./attributes"),supplyDefaults:t("./defaults"),crossTraceDefaults:t("./cross_trace_defaults"),calc:t("./calc").calc,crossTraceCalc:t("./cross_trace_calc"),arraysToCalcdata:t("./arrays_to_calcdata"),plot:t("./plot"),colorbar:t("./marker_colorbar"),formatLabels:t("./format_labels"),style:t("./style").style,styleOnSelect:t("./style").styleOnSelect,hoverPoints:t("./hover"),selectPoints:t("./select"),animatable:!0,moduleType:"trace",name:"scatter",basePlotModule:t("../../plots/cartesian"),categories:["cartesian","svg","symbols","errorBarsOK","showLegend","scatter-like","zoomScale"],meta:{}}},{"../../plots/cartesian":841,"./arrays_to_calcdata":1186,"./attributes":1187,"./calc":1188,"./cross_trace_calc":1192,"./cross_trace_defaults":1193,"./defaults":1194,"./format_labels":1196,"./hover":1198,"./marker_colorbar":1205,"./plot":1208,"./select":1209,"./style":1211,"./subtypes":1212}],1200:[function(t,e,r){"use strict";var n=t("../../lib").isArrayOrTypedArray,i=t("../../components/colorscale/helpers").hasColorscale,a=t("../../components/colorscale/defaults");e.exports=function(t,e,r,o,s,l){var c=(t.marker||{}).color;(s("line.color",r),i(t,"line"))?a(t,e,o,s,{prefix:"line.",cLetter:"c"}):s("line.color",!n(c)&&c||r);s("line.width"),(l||{}).noDash||s("line.dash")}},{"../../components/colorscale/defaults":653,"../../components/colorscale/helpers":654,"../../lib":778}],1201:[function(t,e,r){"use strict";var n=t("../../constants/numerical"),i=n.BADNUM,a=n.LOG_CLIP,o=a+.5,s=a-.5,l=t("../../lib"),c=l.segmentsIntersect,u=l.constrain,f=t("./constants");e.exports=function(t,e){var r,n,a,h,p,d,g,m,v,y,x,b,_,w,T,k,M,A,S=e.xaxis,E=e.yaxis,C="log"===S.type,L="log"===E.type,I=S._length,P=E._length,z=e.connectGaps,O=e.baseTolerance,D=e.shape,R="linear"===D,F=e.fill&&"none"!==e.fill,B=[],N=f.minTolerance,j=t.length,U=new Array(j),V=0;function q(r){var n=t[r];if(!n)return!1;var a=e.linearized?S.l2p(n.x):S.c2p(n.x),l=e.linearized?E.l2p(n.y):E.c2p(n.y);if(a===i){if(C&&(a=S.c2p(n.x,!0)),a===i)return!1;L&&l===i&&(a*=Math.abs(S._m*P*(S._m>0?o:s)/(E._m*I*(E._m>0?o:s)))),a*=1e3}if(l===i){if(L&&(l=E.c2p(n.y,!0)),l===i)return!1;l*=1e3}return[a,l]}function H(t,e,r,n){var i=r-t,a=n-e,o=.5-t,s=.5-e,l=i*i+a*a,c=i*o+a*s;if(c>0&&crt||t[1]it)return[u(t[0],et,rt),u(t[1],nt,it)]}function st(t,e){return t[0]===e[0]&&(t[0]===et||t[0]===rt)||(t[1]===e[1]&&(t[1]===nt||t[1]===it)||void 0)}function lt(t,e,r){return function(n,i){var a=ot(n),o=ot(i),s=[];if(a&&o&&st(a,o))return s;a&&s.push(a),o&&s.push(o);var c=2*l.constrain((n[t]+i[t])/2,e,r)-((a||n)[t]+(o||i)[t]);c&&((a&&o?c>0==a[t]>o[t]?a:o:a||o)[t]+=c);return s}}function ct(t){var e=t[0],r=t[1],n=e===U[V-1][0],i=r===U[V-1][1];if(!n||!i)if(V>1){var a=e===U[V-2][0],o=r===U[V-2][1];n&&(e===et||e===rt)&&a?o?V--:U[V-1]=t:i&&(r===nt||r===it)&&o?a?V--:U[V-1]=t:U[V++]=t}else U[V++]=t}function ut(t){U[V-1][0]!==t[0]&&U[V-1][1]!==t[1]&&ct([Z,J]),ct(t),K=null,Z=J=0}function ft(t){if(M=t[0]/I,A=t[1]/P,W=t[0]rt?rt:0,X=t[1]it?it:0,W||X){if(V)if(K){var e=$(K,t);e.length>1&&(ut(e[0]),U[V++]=e[1])}else Q=$(U[V-1],t)[0],U[V++]=Q;else U[V++]=[W||t[0],X||t[1]];var r=U[V-1];W&&X&&(r[0]!==W||r[1]!==X)?(K&&(Z!==W&&J!==X?ct(Z&&J?(n=K,a=(i=t)[0]-n[0],o=(i[1]-n[1])/a,(n[1]*i[0]-i[1]*n[0])/a>0?[o>0?et:rt,it]:[o>0?rt:et,nt]):[Z||W,J||X]):Z&&J&&ct([Z,J])),ct([W,X])):Z-W&&J-X&&ct([W||Z,X||J]),K=t,Z=W,J=X}else K&&ut($(K,t)[0]),U[V++]=t;var n,i,a,o}for("linear"===D||"spline"===D?$=function(t,e){for(var r=[],n=0,i=0;i<4;i++){var a=at[i],o=c(t[0],t[1],e[0],e[1],a[0],a[1],a[2],a[3]);o&&(!n||Math.abs(o.x-r[0][0])>1||Math.abs(o.y-r[0][1])>1)&&(o=[o.x,o.y],n&&Y(o,t)G(d,ht))break;a=d,(_=v[0]*m[0]+v[1]*m[1])>x?(x=_,h=d,g=!1):_=t.length||!d)break;ft(d),n=d}}else ft(h)}K&&ct([Z||K[0],J||K[1]]),B.push(U.slice(0,V))}return B}},{"../../constants/numerical":753,"../../lib":778,"./constants":1191}],1202:[function(t,e,r){"use strict";e.exports=function(t,e,r){"spline"===r("line.shape")&&r("line.smoothing")}},{}],1203:[function(t,e,r){"use strict";var n={tonextx:1,tonexty:1,tonext:1};e.exports=function(t,e,r){var i,a,o,s,l,c={},u=!1,f=-1,h=0,p=-1;for(a=0;a=0?l=p:(l=p=h,h++),l0?Math.max(e,i):0}}},{"fast-isnumeric":241}],1205:[function(t,e,r){"use strict";e.exports={container:"marker",min:"cmin",max:"cmax"}},{}],1206:[function(t,e,r){"use strict";var n=t("../../components/color"),i=t("../../components/colorscale/helpers").hasColorscale,a=t("../../components/colorscale/defaults"),o=t("./subtypes");e.exports=function(t,e,r,s,l,c){var u=o.isBubble(t),f=(t.line||{}).color;(c=c||{},f&&(r=f),l("marker.symbol"),l("marker.opacity",u?.7:1),l("marker.size"),l("marker.color",r),i(t,"marker")&&a(t,e,s,l,{prefix:"marker.",cLetter:"c"}),c.noSelect||(l("selected.marker.color"),l("unselected.marker.color"),l("selected.marker.size"),l("unselected.marker.size")),c.noLine||(l("marker.line.color",f&&!Array.isArray(f)&&e.marker.color!==f?f:u?n.background:n.defaultLine),i(t,"marker.line")&&a(t,e,s,l,{prefix:"marker.line.",cLetter:"c"}),l("marker.line.width",u?1:0)),u&&(l("marker.sizeref"),l("marker.sizemin"),l("marker.sizemode")),c.gradient)&&("none"!==l("marker.gradient.type")&&l("marker.gradient.color"))}},{"../../components/color":643,"../../components/colorscale/defaults":653,"../../components/colorscale/helpers":654,"./subtypes":1212}],1207:[function(t,e,r){"use strict";var n=t("../../lib").dateTick0,i=t("../../constants/numerical").ONEWEEK;function a(t,e){return n(e,t%i==0?1:0)}e.exports=function(t,e,r,n,i){if(i||(i={x:!0,y:!0}),i.x){var o=n("xperiod");o&&(n("xperiod0",a(o,e.xcalendar)),n("xperiodalignment"))}if(i.y){var s=n("yperiod");s&&(n("yperiod0",a(s,e.ycalendar)),n("yperiodalignment"))}}},{"../../constants/numerical":753,"../../lib":778}],1208:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../registry"),a=t("../../lib"),o=a.ensureSingle,s=a.identity,l=t("../../components/drawing"),c=t("./subtypes"),u=t("./line_points"),f=t("./link_traces"),h=t("../../lib/polygon").tester;function p(t,e,r,f,p,d,g){var m;!function(t,e,r,i,o){var s=r.xaxis,l=r.yaxis,u=n.extent(a.simpleMap(s.range,s.r2c)),f=n.extent(a.simpleMap(l.range,l.r2c)),h=i[0].trace;if(!c.hasMarkers(h))return;var p=h.marker.maxdisplayed;if(0===p)return;var d=i.filter((function(t){return t.x>=u[0]&&t.x<=u[1]&&t.y>=f[0]&&t.y<=f[1]})),g=Math.ceil(d.length/p),m=0;o.forEach((function(t,r){var n=t[0].trace;c.hasMarkers(n)&&n.marker.maxdisplayed>0&&r0;function y(t){return v?t.transition():t}var x=r.xaxis,b=r.yaxis,_=f[0].trace,w=_.line,T=n.select(d),k=o(T,"g","errorbars"),M=o(T,"g","lines"),A=o(T,"g","points"),S=o(T,"g","text");if(i.getComponentMethod("errorbars","plot")(t,k,r,g),!0===_.visible){var E,C;y(T).style("opacity",_.opacity);var L=_.fill.charAt(_.fill.length-1);"x"!==L&&"y"!==L&&(L=""),f[0][r.isRangePlot?"nodeRangePlot3":"node3"]=T;var I,P,z="",O=[],D=_._prevtrace;D&&(z=D._prevRevpath||"",C=D._nextFill,O=D._polygons);var R,F,B,N,j,U,V,q="",H="",G=[],Y=a.noop;if(E=_._ownFill,c.hasLines(_)||"none"!==_.fill){for(C&&C.datum(f),-1!==["hv","vh","hvh","vhv"].indexOf(w.shape)?(R=l.steps(w.shape),F=l.steps(w.shape.split("").reverse().join(""))):R=F="spline"===w.shape?function(t){var e=t[t.length-1];return t.length>1&&t[0][0]===e[0]&&t[0][1]===e[1]?l.smoothclosed(t.slice(1),w.smoothing):l.smoothopen(t,w.smoothing)}:function(t){return"M"+t.join("L")},B=function(t){return F(t.reverse())},G=u(f,{xaxis:x,yaxis:b,connectGaps:_.connectgaps,baseTolerance:Math.max(w.width||1,3)/4,shape:w.shape,simplify:w.simplify,fill:_.fill}),V=_._polygons=new Array(G.length),m=0;m1){var r=n.select(this);if(r.datum(f),t)y(r.style("opacity",0).attr("d",I).call(l.lineGroupStyle)).style("opacity",1);else{var i=y(r);i.attr("d",I),l.singleLineStyle(f,i)}}}}}var W=M.selectAll(".js-line").data(G);y(W.exit()).style("opacity",0).remove(),W.each(Y(!1)),W.enter().append("path").classed("js-line",!0).style("vector-effect","non-scaling-stroke").call(l.lineGroupStyle).each(Y(!0)),l.setClipUrl(W,r.layerClipId,t),G.length?(E?(E.datum(f),N&&U&&(L?("y"===L?N[1]=U[1]=b.c2p(0,!0):"x"===L&&(N[0]=U[0]=x.c2p(0,!0)),y(E).attr("d","M"+U+"L"+N+"L"+q.substr(1)).call(l.singleFillStyle)):y(E).attr("d",q+"Z").call(l.singleFillStyle))):C&&("tonext"===_.fill.substr(0,6)&&q&&z?("tonext"===_.fill?y(C).attr("d",q+"Z"+z+"Z").call(l.singleFillStyle):y(C).attr("d",q+"L"+z.substr(1)+"Z").call(l.singleFillStyle),_._polygons=_._polygons.concat(O)):(Z(C),_._polygons=null)),_._prevRevpath=H,_._prevPolygons=V):(E?Z(E):C&&Z(C),_._polygons=_._prevRevpath=_._prevPolygons=null),A.datum(f),S.datum(f),function(e,i,a){var o,u=a[0].trace,f=c.hasMarkers(u),h=c.hasText(u),p=tt(u),d=et,g=et;if(f||h){var m=s,_=u.stackgroup,w=_&&"infer zero"===t._fullLayout._scatterStackOpts[x._id+b._id][_].stackgaps;u.marker.maxdisplayed||u._needsCull?m=w?K:J:_&&!w&&(m=Q),f&&(d=m),h&&(g=m)}var T,k=(o=e.selectAll("path.point").data(d,p)).enter().append("path").classed("point",!0);v&&k.call(l.pointStyle,u,t).call(l.translatePoints,x,b).style("opacity",0).transition().style("opacity",1),o.order(),f&&(T=l.makePointStyleFns(u)),o.each((function(e){var i=n.select(this),a=y(i);l.translatePoint(e,a,x,b)?(l.singlePointStyle(e,a,u,T,t),r.layerClipId&&l.hideOutsideRangePoint(e,a,x,b,u.xcalendar,u.ycalendar),u.customdata&&i.classed("plotly-customdata",null!==e.data&&void 0!==e.data)):a.remove()})),v?o.exit().transition().style("opacity",0).remove():o.exit().remove(),(o=i.selectAll("g").data(g,p)).enter().append("g").classed("textpoint",!0).append("text"),o.order(),o.each((function(t){var e=n.select(this),i=y(e.select("text"));l.translatePoint(t,i,x,b)?r.layerClipId&&l.hideOutsideRangePoint(t,e,x,b,u.xcalendar,u.ycalendar):e.remove()})),o.selectAll("text").call(l.textPointStyle,u,t).each((function(t){var e=x.c2p(t.x),r=b.c2p(t.y);n.select(this).selectAll("tspan.line").each((function(){y(n.select(this)).attr({x:e,y:r})}))})),o.exit().remove()}(A,S,f);var X=!1===_.cliponaxis?null:r.layerClipId;l.setClipUrl(A,X,t),l.setClipUrl(S,X,t)}function Z(t){y(t).attr("d","M0,0Z")}function J(t){return t.filter((function(t){return!t.gap&&t.vis}))}function K(t){return t.filter((function(t){return t.vis}))}function Q(t){return t.filter((function(t){return!t.gap}))}function $(t){return t.id}function tt(t){if(t.ids)return $}function et(){return!1}}e.exports=function(t,e,r,i,a,c){var u,h,d=!a,g=!!a&&a.duration>0,m=f(t,e,r);((u=i.selectAll("g.trace").data(m,(function(t){return t[0].trace.uid}))).enter().append("g").attr("class",(function(t){return"trace scatter trace"+t[0].trace.uid})).style("stroke-miterlimit",2),u.order(),function(t,e,r){e.each((function(e){var i=o(n.select(this),"g","fills");l.setClipUrl(i,r.layerClipId,t);var a=e[0].trace,c=[];a._ownfill&&c.push("_ownFill"),a._nexttrace&&c.push("_nextFill");var u=i.selectAll("g").data(c,s);u.enter().append("g"),u.exit().each((function(t){a[t]=null})).remove(),u.order().each((function(t){a[t]=o(n.select(this),"path","js-fill")}))}))}(t,u,e),g)?(c&&(h=c()),n.transition().duration(a.duration).ease(a.easing).each("end",(function(){h&&h()})).each("interrupt",(function(){h&&h()})).each((function(){i.selectAll("g.trace").each((function(r,n){p(t,n,e,r,m,this,a)}))}))):u.each((function(r,n){p(t,n,e,r,m,this,a)}));d&&u.exit().remove(),i.selectAll("path:not([d])").remove()}},{"../../components/drawing":665,"../../lib":778,"../../lib/polygon":790,"../../registry":911,"./line_points":1201,"./link_traces":1203,"./subtypes":1212,d3:169}],1209:[function(t,e,r){"use strict";var n=t("./subtypes");e.exports=function(t,e){var r,i,a,o,s=t.cd,l=t.xaxis,c=t.yaxis,u=[],f=s[0].trace;if(!n.hasMarkers(f)&&!n.hasText(f))return[];if(!1===e)for(r=0;r0){var h=i.c2l(u);i._lowerLogErrorBound||(i._lowerLogErrorBound=h),i._lowerErrorBound=Math.min(i._lowerLogErrorBound,h)}}else o[s]=[-l[0]*r,l[1]*r]}return o}e.exports=function(t,e,r){var n=[i(t.x,t.error_x,e[0],r.xaxis),i(t.y,t.error_y,e[1],r.yaxis),i(t.z,t.error_z,e[2],r.zaxis)],a=function(t){for(var e=0;e-1?-1:t.indexOf("right")>-1?1:0}function b(t){return null==t?0:t.indexOf("top")>-1?-1:t.indexOf("bottom")>-1?1:0}function _(t,e){return e(4*t)}function w(t){return p[t]}function T(t,e,r,n,i){var a=null;if(l.isArrayOrTypedArray(t)){a=[];for(var o=0;o=0){var g=function(t,e,r){var n,i=(r+1)%3,a=(r+2)%3,o=[],l=[];for(n=0;n=0&&f("surfacecolor",h||p);for(var d=["x","y","z"],g=0;g<3;++g){var m="projection."+d[g];f(m+".show")&&(f(m+".opacity"),f(m+".scale"))}var v=n.getComponentMethod("errorbars","supplyDefaults");v(t,e,h||p||r,{axis:"z"}),v(t,e,h||p||r,{axis:"y",inherit:"z"}),v(t,e,h||p||r,{axis:"x",inherit:"z"})}else e.visible=!1}},{"../../lib":778,"../../registry":911,"../scatter/line_defaults":1200,"../scatter/marker_defaults":1206,"../scatter/subtypes":1212,"../scatter/text_defaults":1213,"./attributes":1215}],1220:[function(t,e,r){"use strict";e.exports={plot:t("./convert"),attributes:t("./attributes"),markerSymbols:t("../../constants/gl3d_markers"),supplyDefaults:t("./defaults"),colorbar:[{container:"marker",min:"cmin",max:"cmax"},{container:"line",min:"cmin",max:"cmax"}],calc:t("./calc"),moduleType:"trace",name:"scatter3d",basePlotModule:t("../../plots/gl3d"),categories:["gl3d","symbols","showLegend","scatter-like"],meta:{}}},{"../../constants/gl3d_markers":751,"../../plots/gl3d":870,"./attributes":1215,"./calc":1216,"./convert":1218,"./defaults":1219}],1221:[function(t,e,r){"use strict";var n=t("../scatter/attributes"),i=t("../../plots/attributes"),a=t("../../plots/template_attributes").hovertemplateAttrs,o=t("../../plots/template_attributes").texttemplateAttrs,s=t("../../components/colorscale/attributes"),l=t("../../lib/extend").extendFlat,c=n.marker,u=n.line,f=c.line;e.exports={carpet:{valType:"string",editType:"calc"},a:{valType:"data_array",editType:"calc"},b:{valType:"data_array",editType:"calc"},mode:l({},n.mode,{dflt:"markers"}),text:l({},n.text,{}),texttemplate:o({editType:"plot"},{keys:["a","b","text"]}),hovertext:l({},n.hovertext,{}),line:{color:u.color,width:u.width,dash:u.dash,shape:l({},u.shape,{values:["linear","spline"]}),smoothing:u.smoothing,editType:"calc"},connectgaps:n.connectgaps,fill:l({},n.fill,{values:["none","toself","tonext"],dflt:"none"}),fillcolor:n.fillcolor,marker:l({symbol:c.symbol,opacity:c.opacity,maxdisplayed:c.maxdisplayed,size:c.size,sizeref:c.sizeref,sizemin:c.sizemin,sizemode:c.sizemode,line:l({width:f.width,editType:"calc"},s("marker.line")),gradient:c.gradient,editType:"calc"},s("marker")),textfont:n.textfont,textposition:n.textposition,selected:n.selected,unselected:n.unselected,hoverinfo:l({},i.hoverinfo,{flags:["a","b","text","name"]}),hoveron:n.hoveron,hovertemplate:a()}},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"../scatter/attributes":1187}],1222:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("../scatter/colorscale_calc"),a=t("../scatter/arrays_to_calcdata"),o=t("../scatter/calc_selection"),s=t("../scatter/calc").calcMarkerSize,l=t("../carpet/lookup_carpetid");e.exports=function(t,e){var r=e._carpetTrace=l(t,e);if(r&&r.visible&&"legendonly"!==r.visible){var c;e.xaxis=r.xaxis,e.yaxis=r.yaxis;var u,f,h=e._length,p=new Array(h),d=!1;for(c=0;c")}return o}function y(t,e){var r;r=t.labelprefix&&t.labelprefix.length>0?t.labelprefix.replace(/ = $/,""):t._hovertitle,m.push(r+": "+e.toFixed(3)+t.labelsuffix)}}},{"../../lib":778,"../scatter/hover":1198}],1227:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),colorbar:t("../scatter/marker_colorbar"),formatLabels:t("./format_labels"),calc:t("./calc"),plot:t("./plot"),style:t("../scatter/style").style,styleOnSelect:t("../scatter/style").styleOnSelect,hoverPoints:t("./hover"),selectPoints:t("../scatter/select"),eventData:t("./event_data"),moduleType:"trace",name:"scattercarpet",basePlotModule:t("../../plots/cartesian"),categories:["svg","carpet","symbols","showLegend","carpetDependent","zoomScale"],meta:{}}},{"../../plots/cartesian":841,"../scatter/marker_colorbar":1205,"../scatter/select":1209,"../scatter/style":1211,"./attributes":1221,"./calc":1222,"./defaults":1223,"./event_data":1224,"./format_labels":1225,"./hover":1226,"./plot":1228}],1228:[function(t,e,r){"use strict";var n=t("../scatter/plot"),i=t("../../plots/cartesian/axes"),a=t("../../components/drawing");e.exports=function(t,e,r,o){var s,l,c,u=r[0][0].carpet,f={xaxis:i.getFromId(t,u.xaxis||"x"),yaxis:i.getFromId(t,u.yaxis||"y"),plot:e.plot};for(n(t,f,r,o),s=0;s")}(c,g,t,l[0].t.labels),t.hovertemplate=c.hovertemplate,[t]}}},{"../../components/fx":683,"../../constants/numerical":753,"../../lib":778,"../scatter/get_trace_color":1197,"./attributes":1229}],1235:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),colorbar:t("../scatter/marker_colorbar"),formatLabels:t("./format_labels"),calc:t("./calc"),calcGeoJSON:t("./plot").calcGeoJSON,plot:t("./plot").plot,style:t("./style"),styleOnSelect:t("../scatter/style").styleOnSelect,hoverPoints:t("./hover"),eventData:t("./event_data"),selectPoints:t("./select"),moduleType:"trace",name:"scattergeo",basePlotModule:t("../../plots/geo"),categories:["geo","symbols","showLegend","scatter-like"],meta:{}}},{"../../plots/geo":860,"../scatter/marker_colorbar":1205,"../scatter/style":1211,"./attributes":1229,"./calc":1230,"./defaults":1231,"./event_data":1232,"./format_labels":1233,"./hover":1234,"./plot":1236,"./select":1237,"./style":1238}],1236:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../lib"),a=t("../../lib/topojson_utils").getTopojsonFeatures,o=t("../../lib/geojson_utils"),s=t("../../lib/geo_location_utils"),l=t("../../plots/cartesian/autorange").findExtremes,c=t("../../constants/numerical").BADNUM,u=t("../scatter/calc").calcMarkerSize,f=t("../scatter/subtypes"),h=t("./style");e.exports={calcGeoJSON:function(t,e){var r,n,i=t[0].trace,o=e[i.geo],f=o._subplot,h=i._length;if(Array.isArray(i.locations)){var p=i.locationmode,d="geojson-id"===p?s.extractTraceFeature(t):a(i,f.topojson);for(r=0;r=m,k=2*w,M={},A=x.makeCalcdata(e,"x"),S=b.makeCalcdata(e,"y"),E=s(e,x,"x",A),C=s(e,b,"y",S);e._x=E,e._y=C,e.xperiodalignment&&(e._origX=A),e.yperiodalignment&&(e._origY=S);var L=new Array(k);for(r=0;r1&&i.extendFlat(s.line,p.linePositions(t,r,n));if(s.errorX||s.errorY){var l=p.errorBarPositions(t,r,n,a,o);s.errorX&&i.extendFlat(s.errorX,l.x),s.errorY&&i.extendFlat(s.errorY,l.y)}s.text&&(i.extendFlat(s.text,{positions:n},p.textPosition(t,r,s.text,s.marker)),i.extendFlat(s.textSel,{positions:n},p.textPosition(t,r,s.text,s.markerSel)),i.extendFlat(s.textUnsel,{positions:n},p.textPosition(t,r,s.text,s.markerUnsel)));return s}(t,0,e,L,E,C),O=d(t,_);return f(y,e),T?z.marker&&(P=2*(z.marker.sizeAvg||Math.max(z.marker.size,3))):P=c(e,w),u(t,e,x,b,E,C,P),z.errorX&&v(e,x,z.errorX),z.errorY&&v(e,b,z.errorY),z.fill&&!O.fill2d&&(O.fill2d=!0),z.marker&&!O.scatter2d&&(O.scatter2d=!0),z.line&&!O.line2d&&(O.line2d=!0),!z.errorX&&!z.errorY||O.error2d||(O.error2d=!0),z.text&&!O.glText&&(O.glText=!0),z.marker&&(z.marker.snap=w),O.lineOptions.push(z.line),O.errorXOptions.push(z.errorX),O.errorYOptions.push(z.errorY),O.fillOptions.push(z.fill),O.markerOptions.push(z.marker),O.markerSelectedOptions.push(z.markerSel),O.markerUnselectedOptions.push(z.markerUnsel),O.textOptions.push(z.text),O.textSelectedOptions.push(z.textSel),O.textUnselectedOptions.push(z.textUnsel),O.selectBatch.push([]),O.unselectBatch.push([]),M._scene=O,M.index=O.count,M.x=E,M.y=C,M.positions=L,O.count++,[{x:!1,y:!1,t:M,trace:e}]}},{"../../constants/numerical":753,"../../lib":778,"../../plots/cartesian/align_period":825,"../../plots/cartesian/autorange":827,"../../plots/cartesian/axis_ids":831,"../scatter/calc":1188,"../scatter/colorscale_calc":1190,"./constants":1241,"./convert":1242,"./scene_update":1250,"@plotly/point-cluster":57}],1241:[function(t,e,r){"use strict";e.exports={TOO_MANY_POINTS:1e5,SYMBOL_SDF_SIZE:200,SYMBOL_SIZE:20,SYMBOL_STROKE:1,DOT_RE:/-dot/,OPEN_RE:/-open/,DASHES:{solid:[1],dot:[1,1],dash:[4,1],longdash:[8,1],dashdot:[4,1,1,1],longdashdot:[8,1,1,1]}}},{}],1242:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("svg-path-sdf"),a=t("color-normalize"),o=t("../../registry"),s=t("../../lib"),l=t("../../components/drawing"),c=t("../../plots/cartesian/axis_ids"),u=t("../../lib/gl_format_color").formatColor,f=t("../scatter/subtypes"),h=t("../scatter/make_bubble_size_func"),p=t("./helpers"),d=t("./constants"),g=t("../../constants/interactions").DESELECTDIM,m={start:1,left:1,end:-1,right:-1,middle:0,center:0,bottom:1,top:-1},v=t("../../components/fx/helpers").appendArrayPointValue;function y(t,e){var r,i=t._fullLayout,a=e._length,o=e.textfont,l=e.textposition,c=Array.isArray(l)?l:[l],u=o.color,f=o.size,h=o.family,p={},d=e.texttemplate;if(d){p.text=[];var g=i._d3locale,m=Array.isArray(d),y=m?Math.min(d.length,a):a,x=m?function(t){return d[t]}:function(){return d};for(r=0;rd.TOO_MANY_POINTS||f.hasMarkers(e)?"rect":"round";if(c&&e.connectgaps){var h=n[0],p=n[1];for(i=0;i1?l[i]:l[0]:l,d=Array.isArray(c)?c.length>1?c[i]:c[0]:c,g=m[p],v=m[d],y=u?u/.8+1:0,x=-v*y-.5*v;o.offset[i]=[g*y/h,x/h]}}return o}}},{"../../components/drawing":665,"../../components/fx/helpers":679,"../../constants/interactions":752,"../../lib":778,"../../lib/gl_format_color":774,"../../plots/cartesian/axis_ids":831,"../../registry":911,"../scatter/make_bubble_size_func":1204,"../scatter/subtypes":1212,"./constants":1241,"./helpers":1246,"color-normalize":125,"fast-isnumeric":241,"svg-path-sdf":574}],1243:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../registry"),a=t("./helpers"),o=t("./attributes"),s=t("../scatter/constants"),l=t("../scatter/subtypes"),c=t("../scatter/xy_defaults"),u=t("../scatter/period_defaults"),f=t("../scatter/marker_defaults"),h=t("../scatter/line_defaults"),p=t("../scatter/fillcolor_defaults"),d=t("../scatter/text_defaults");e.exports=function(t,e,r,g){function m(r,i){return n.coerce(t,e,o,r,i)}var v=!!t.marker&&a.isOpenSymbol(t.marker.symbol),y=l.isBubble(t),x=c(t,e,g,m);if(x){u(t,e,g,m);var b=x100},r.isDotSymbol=function(t){return"string"==typeof t?n.DOT_RE.test(t):t>200}},{"./constants":1241}],1247:[function(t,e,r){"use strict";var n=t("../../registry"),i=t("../../lib"),a=t("../scatter/get_trace_color");function o(t,e,r,o){var s=t.xa,l=t.ya,c=t.distance,u=t.dxy,f=t.index,h={pointNumber:f,x:e[f],y:r[f]};h.tx=Array.isArray(o.text)?o.text[f]:o.text,h.htx=Array.isArray(o.hovertext)?o.hovertext[f]:o.hovertext,h.data=Array.isArray(o.customdata)?o.customdata[f]:o.customdata,h.tp=Array.isArray(o.textposition)?o.textposition[f]:o.textposition;var p=o.textfont;p&&(h.ts=i.isArrayOrTypedArray(p.size)?p.size[f]:p.size,h.tc=Array.isArray(p.color)?p.color[f]:p.color,h.tf=Array.isArray(p.family)?p.family[f]:p.family);var d=o.marker;d&&(h.ms=i.isArrayOrTypedArray(d.size)?d.size[f]:d.size,h.mo=i.isArrayOrTypedArray(d.opacity)?d.opacity[f]:d.opacity,h.mx=i.isArrayOrTypedArray(d.symbol)?d.symbol[f]:d.symbol,h.mc=i.isArrayOrTypedArray(d.color)?d.color[f]:d.color);var g=d&&d.line;g&&(h.mlc=Array.isArray(g.color)?g.color[f]:g.color,h.mlw=i.isArrayOrTypedArray(g.width)?g.width[f]:g.width);var m=d&&d.gradient;m&&"none"!==m.type&&(h.mgt=Array.isArray(m.type)?m.type[f]:m.type,h.mgc=Array.isArray(m.color)?m.color[f]:m.color);var v=s.c2p(h.x,!0),y=l.c2p(h.y,!0),x=h.mrc||1,b=o.hoverlabel;b&&(h.hbg=Array.isArray(b.bgcolor)?b.bgcolor[f]:b.bgcolor,h.hbc=Array.isArray(b.bordercolor)?b.bordercolor[f]:b.bordercolor,h.hts=i.isArrayOrTypedArray(b.font.size)?b.font.size[f]:b.font.size,h.htc=Array.isArray(b.font.color)?b.font.color[f]:b.font.color,h.htf=Array.isArray(b.font.family)?b.font.family[f]:b.font.family,h.hnl=i.isArrayOrTypedArray(b.namelength)?b.namelength[f]:b.namelength);var _=o.hoverinfo;_&&(h.hi=Array.isArray(_)?_[f]:_);var w=o.hovertemplate;w&&(h.ht=Array.isArray(w)?w[f]:w);var T={};T[t.index]=h;var k=o._origX,M=o._origY,A=i.extendFlat({},t,{color:a(o,h),x0:v-x,x1:v+x,xLabelVal:k?k[f]:h.x,y0:y-x,y1:y+x,yLabelVal:M?M[f]:h.y,cd:T,distance:c,spikeDistance:u,hovertemplate:h.ht});return h.htx?A.text=h.htx:h.tx?A.text=h.tx:o.text&&(A.text=o.text),i.fillText(h,o,A),n.getComponentMethod("errorbars","hoverInfo")(h,o,A),A}e.exports={hoverPoints:function(t,e,r,n){var i,a,s,l,c,u,f,h,p,d=t.cd,g=d[0].t,m=d[0].trace,v=t.xa,y=t.ya,x=g.x,b=g.y,_=v.c2p(e),w=y.c2p(r),T=t.distance;if(g.tree){var k=v.p2c(_-T),M=v.p2c(_+T),A=y.p2c(w-T),S=y.p2c(w+T);i="x"===n?g.tree.range(Math.min(k,M),Math.min(y._rl[0],y._rl[1]),Math.max(k,M),Math.max(y._rl[0],y._rl[1])):g.tree.range(Math.min(k,M),Math.min(A,S),Math.max(k,M),Math.max(A,S))}else i=g.ids;var E=T;if("x"===n)for(c=0;c-1;c--)s=x[i[c]],l=b[i[c]],u=v.c2p(s)-_,f=y.c2p(l)-w,(h=Math.sqrt(u*u+f*f))v.glText.length){var w=b-v.glText.length;for(d=0;dr&&(isNaN(e[n])||isNaN(e[n+1]));)n-=2;t.positions=e.slice(r,n+2)}return t})),v.line2d.update(v.lineOptions)),v.error2d){var k=(v.errorXOptions||[]).concat(v.errorYOptions||[]);v.error2d.update(k)}v.scatter2d&&v.scatter2d.update(v.markerOptions),v.fillOrder=s.repeat(null,b),v.fill2d&&(v.fillOptions=v.fillOptions.map((function(t,e){var n=r[e];if(t&&n&&n[0]&&n[0].trace){var i,a,o=n[0],s=o.trace,l=o.t,c=v.lineOptions[e],u=[];s._ownfill&&u.push(e),s._nexttrace&&u.push(e+1),u.length&&(v.fillOrder[e]=u);var f,h,p=[],d=c&&c.positions||l.positions;if("tozeroy"===s.fill){for(f=0;ff&&isNaN(d[h+1]);)h-=2;0!==d[f+1]&&(p=[d[f],0]),p=p.concat(d.slice(f,h+2)),0!==d[h+1]&&(p=p.concat([d[h],0]))}else if("tozerox"===s.fill){for(f=0;ff&&isNaN(d[h]);)h-=2;0!==d[f]&&(p=[0,d[f+1]]),p=p.concat(d.slice(f,h+2)),0!==d[h]&&(p=p.concat([0,d[h+1]]))}else if("toself"===s.fill||"tonext"===s.fill){for(p=[],i=0,a=0;a-1;for(d=0;d=0?Math.floor((e+180)/360):Math.ceil((e-180)/360)),d=e-p;if(n.getClosest(l,(function(t){var e=t.lonlat;if(e[0]===s)return 1/0;var n=i.modHalf(e[0],360),a=e[1],o=h.project([n,a]),l=o.x-u.c2p([d,a]),c=o.y-f.c2p([n,r]),p=Math.max(3,t.mrc||0);return Math.max(Math.sqrt(l*l+c*c)-p,1-3/p)}),t),!1!==t.index){var g=l[t.index],m=g.lonlat,v=[i.modHalf(m[0],360)+p,m[1]],y=u.c2p(v),x=f.c2p(v),b=g.mrc||1;t.x0=y-b,t.x1=y+b,t.y0=x-b,t.y1=x+b;var _={};_[c.subplot]={_subplot:h};var w=c._module.formatLabels(g,c,_);return t.lonLabel=w.lonLabel,t.latLabel=w.latLabel,t.color=a(c,g),t.extraText=function(t,e,r){if(t.hovertemplate)return;var n=(e.hi||t.hoverinfo).split("+"),i=-1!==n.indexOf("all"),a=-1!==n.indexOf("lon"),s=-1!==n.indexOf("lat"),l=e.lonlat,c=[];function u(t){return t+"\xb0"}i||a&&s?c.push("("+u(l[0])+", "+u(l[1])+")"):a?c.push(r.lon+u(l[0])):s&&c.push(r.lat+u(l[1]));(i||-1!==n.indexOf("text"))&&o(e,t,c);return c.join("
    ")}(c,g,l[0].t.labels),t.hovertemplate=c.hovertemplate,[t]}}},{"../../components/fx":683,"../../constants/numerical":753,"../../lib":778,"../scatter/get_trace_color":1197}],1258:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),colorbar:t("../scatter/marker_colorbar"),formatLabels:t("./format_labels"),calc:t("../scattergeo/calc"),plot:t("./plot"),hoverPoints:t("./hover"),eventData:t("./event_data"),selectPoints:t("./select"),styleOnSelect:function(t,e){e&&e[0].trace._glTrace.update(e)},moduleType:"trace",name:"scattermapbox",basePlotModule:t("../../plots/mapbox"),categories:["mapbox","gl","symbols","showLegend","scatter-like"],meta:{}}},{"../../plots/mapbox":885,"../scatter/marker_colorbar":1205,"../scattergeo/calc":1230,"./attributes":1252,"./defaults":1254,"./event_data":1255,"./format_labels":1256,"./hover":1257,"./plot":1259,"./select":1260}],1259:[function(t,e,r){"use strict";var n=t("./convert"),i=t("../../plots/mapbox/constants").traceLayerPrefix,a=["fill","line","circle","symbol"];function o(t,e){this.type="scattermapbox",this.subplot=t,this.uid=e,this.sourceIds={fill:"source-"+e+"-fill",line:"source-"+e+"-line",circle:"source-"+e+"-circle",symbol:"source-"+e+"-symbol"},this.layerIds={fill:i+e+"-fill",line:i+e+"-line",circle:i+e+"-circle",symbol:i+e+"-symbol"},this.below=null}var s=o.prototype;s.addSource=function(t,e){this.subplot.map.addSource(this.sourceIds[t],{type:"geojson",data:e.geojson})},s.setSourceData=function(t,e){this.subplot.map.getSource(this.sourceIds[t]).setData(e.geojson)},s.addLayer=function(t,e,r){this.subplot.addLayer({type:t,id:this.layerIds[t],source:this.sourceIds[t],layout:e.layout,paint:e.paint},r)},s.update=function(t){var e,r,i,o=this.subplot,s=o.map,l=n(o.gd,t),c=o.belowLookup["trace-"+this.uid];if(c!==this.below){for(e=a.length-1;e>=0;e--)r=a[e],s.removeLayer(this.layerIds[r]);for(e=0;e=0;e--){var r=a[e];t.removeLayer(this.layerIds[r]),t.removeSource(this.sourceIds[r])}},e.exports=function(t,e){for(var r=e[0].trace,i=new o(t,r.uid),s=n(t.gd,e),l=i.below=t.belowLookup["trace-"+r.uid],c=0;c")}}e.exports={hoverPoints:function(t,e,r,a){var o=n(t,e,r,a);if(o&&!1!==o[0].index){var s=o[0];if(void 0===s.index)return o;var l=t.subplot,c=s.cd[s.index],u=s.trace;if(l.isPtInside(c))return s.xLabelVal=void 0,s.yLabelVal=void 0,i(c,u,l,s),s.hovertemplate=u.hovertemplate,o}},makeHoverPointText:i}},{"../scatter/hover":1198}],1266:[function(t,e,r){"use strict";e.exports={moduleType:"trace",name:"scatterpolar",basePlotModule:t("../../plots/polar"),categories:["polar","symbols","showLegend","scatter-like"],attributes:t("./attributes"),supplyDefaults:t("./defaults").supplyDefaults,colorbar:t("../scatter/marker_colorbar"),formatLabels:t("./format_labels"),calc:t("./calc"),plot:t("./plot"),style:t("../scatter/style").style,styleOnSelect:t("../scatter/style").styleOnSelect,hoverPoints:t("./hover").hoverPoints,selectPoints:t("../scatter/select"),meta:{}}},{"../../plots/polar":894,"../scatter/marker_colorbar":1205,"../scatter/select":1209,"../scatter/style":1211,"./attributes":1261,"./calc":1262,"./defaults":1263,"./format_labels":1264,"./hover":1265,"./plot":1267}],1267:[function(t,e,r){"use strict";var n=t("../scatter/plot"),i=t("../../constants/numerical").BADNUM;e.exports=function(t,e,r){for(var a=e.layers.frontplot.select("g.scatterlayer"),o={xaxis:e.xaxis,yaxis:e.yaxis,plot:e.framework,layerClipId:e._hasClipOnAxisFalse?e.clipIds.forTraces:null},s=e.radialAxis,l=e.angularAxis,c=0;c=c&&(y.marker.cluster=d.tree),y.marker&&(y.markerSel.positions=y.markerUnsel.positions=y.marker.positions=_),y.line&&_.length>1&&l.extendFlat(y.line,s.linePositions(t,p,_)),y.text&&(l.extendFlat(y.text,{positions:_},s.textPosition(t,p,y.text,y.marker)),l.extendFlat(y.textSel,{positions:_},s.textPosition(t,p,y.text,y.markerSel)),l.extendFlat(y.textUnsel,{positions:_},s.textPosition(t,p,y.text,y.markerUnsel))),y.fill&&!h.fill2d&&(h.fill2d=!0),y.marker&&!h.scatter2d&&(h.scatter2d=!0),y.line&&!h.line2d&&(h.line2d=!0),y.text&&!h.glText&&(h.glText=!0),h.lineOptions.push(y.line),h.fillOptions.push(y.fill),h.markerOptions.push(y.marker),h.markerSelectedOptions.push(y.markerSel),h.markerUnselectedOptions.push(y.markerUnsel),h.textOptions.push(y.text),h.textSelectedOptions.push(y.textSel),h.textUnselectedOptions.push(y.textUnsel),h.selectBatch.push([]),h.unselectBatch.push([]),d.x=w,d.y=T,d.rawx=w,d.rawy=T,d.r=m,d.theta=v,d.positions=_,d._scene=h,d.index=h.count,h.count++}})),a(t,e,r)}}},{"../../lib":778,"../scattergl/constants":1241,"../scattergl/convert":1242,"../scattergl/plot":1249,"../scattergl/scene_update":1250,"@plotly/point-cluster":57,"fast-isnumeric":241}],1275:[function(t,e,r){"use strict";var n=t("../../plots/template_attributes").hovertemplateAttrs,i=t("../../plots/template_attributes").texttemplateAttrs,a=t("../scatter/attributes"),o=t("../../plots/attributes"),s=t("../../components/colorscale/attributes"),l=t("../../components/drawing/attributes").dash,c=t("../../lib/extend").extendFlat,u=a.marker,f=a.line,h=u.line;e.exports={a:{valType:"data_array",editType:"calc"},b:{valType:"data_array",editType:"calc"},c:{valType:"data_array",editType:"calc"},sum:{valType:"number",dflt:0,min:0,editType:"calc"},mode:c({},a.mode,{dflt:"markers"}),text:c({},a.text,{}),texttemplate:i({editType:"plot"},{keys:["a","b","c","text"]}),hovertext:c({},a.hovertext,{}),line:{color:f.color,width:f.width,dash:l,shape:c({},f.shape,{values:["linear","spline"]}),smoothing:f.smoothing,editType:"calc"},connectgaps:a.connectgaps,cliponaxis:a.cliponaxis,fill:c({},a.fill,{values:["none","toself","tonext"],dflt:"none"}),fillcolor:a.fillcolor,marker:c({symbol:u.symbol,opacity:u.opacity,maxdisplayed:u.maxdisplayed,size:u.size,sizeref:u.sizeref,sizemin:u.sizemin,sizemode:u.sizemode,line:c({width:h.width,editType:"calc"},s("marker.line")),gradient:u.gradient,editType:"calc"},s("marker")),textfont:a.textfont,textposition:a.textposition,selected:a.selected,unselected:a.unselected,hoverinfo:c({},o.hoverinfo,{flags:["a","b","c","text","name"]}),hoveron:a.hoveron,hovertemplate:n()}},{"../../components/colorscale/attributes":650,"../../components/drawing/attributes":664,"../../lib/extend":768,"../../plots/attributes":824,"../../plots/template_attributes":906,"../scatter/attributes":1187}],1276:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("../scatter/colorscale_calc"),a=t("../scatter/arrays_to_calcdata"),o=t("../scatter/calc_selection"),s=t("../scatter/calc").calcMarkerSize,l=["a","b","c"],c={a:["b","c"],b:["a","c"],c:["a","b"]};e.exports=function(t,e){var r,u,f,h,p,d,g=t._fullLayout[e.subplot].sum,m=e.sum||g,v={a:e.a,b:e.b,c:e.c};for(r=0;r"),o.hovertemplate=h.hovertemplate,a}function x(t,e){v.push(t._hovertitle+": "+e)}}},{"../scatter/hover":1198}],1281:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),colorbar:t("../scatter/marker_colorbar"),formatLabels:t("./format_labels"),calc:t("./calc"),plot:t("./plot"),style:t("../scatter/style").style,styleOnSelect:t("../scatter/style").styleOnSelect,hoverPoints:t("./hover"),selectPoints:t("../scatter/select"),eventData:t("./event_data"),moduleType:"trace",name:"scatterternary",basePlotModule:t("../../plots/ternary"),categories:["ternary","symbols","showLegend","scatter-like"],meta:{}}},{"../../plots/ternary":907,"../scatter/marker_colorbar":1205,"../scatter/select":1209,"../scatter/style":1211,"./attributes":1275,"./calc":1276,"./defaults":1277,"./event_data":1278,"./format_labels":1279,"./hover":1280,"./plot":1282}],1282:[function(t,e,r){"use strict";var n=t("../scatter/plot");e.exports=function(t,e,r){var i=e.plotContainer;i.select(".scatterlayer").selectAll("*").remove();var a={xaxis:e.xaxis,yaxis:e.yaxis,plot:i,layerClipId:e._hasClipOnAxisFalse?e.clipIdRelative:null},o=e.layers.frontplot.select("g.scatterlayer");n(t,a,r,o)}},{"../scatter/plot":1208}],1283:[function(t,e,r){"use strict";var n=t("../scatter/attributes"),i=t("../../components/colorscale/attributes"),a=t("../../plots/template_attributes").hovertemplateAttrs,o=t("../scattergl/attributes"),s=t("../../plots/cartesian/constants").idRegex,l=t("../../plot_api/plot_template").templatedArray,c=t("../../lib/extend").extendFlat,u=n.marker,f=u.line,h=c(i("marker.line",{editTypeOverride:"calc"}),{width:c({},f.width,{editType:"calc"}),editType:"calc"}),p=c(i("marker"),{symbol:u.symbol,size:c({},u.size,{editType:"markerSize"}),sizeref:u.sizeref,sizemin:u.sizemin,sizemode:u.sizemode,opacity:u.opacity,colorbar:u.colorbar,line:h,editType:"calc"});function d(t){return{valType:"info_array",freeLength:!0,editType:"calc",items:{valType:"subplotid",regex:s[t],editType:"plot"}}}p.color.editType=p.cmin.editType=p.cmax.editType="style",e.exports={dimensions:l("dimension",{visible:{valType:"boolean",dflt:!0,editType:"calc"},label:{valType:"string",editType:"calc"},values:{valType:"data_array",editType:"calc+clearAxisTypes"},axis:{type:{valType:"enumerated",values:["linear","log","date","category"],editType:"calc+clearAxisTypes"},matches:{valType:"boolean",dflt:!1,editType:"calc"},editType:"calc+clearAxisTypes"},editType:"calc+clearAxisTypes"}),text:c({},o.text,{}),hovertext:c({},o.hovertext,{}),hovertemplate:a(),marker:p,xaxes:d("x"),yaxes:d("y"),diagonal:{visible:{valType:"boolean",dflt:!0,editType:"calc"},editType:"calc"},showupperhalf:{valType:"boolean",dflt:!0,editType:"calc"},showlowerhalf:{valType:"boolean",dflt:!0,editType:"calc"},selected:{marker:o.selected.marker,editType:"calc"},unselected:{marker:o.unselected.marker,editType:"calc"},opacity:o.opacity}},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plot_api/plot_template":817,"../../plots/cartesian/constants":834,"../../plots/template_attributes":906,"../scatter/attributes":1187,"../scattergl/attributes":1239}],1284:[function(t,e,r){"use strict";var n=t("regl-line2d"),i=t("../../registry"),a=t("../../lib/prepare_regl"),o=t("../../plots/get_data").getModuleCalcData,s=t("../../plots/cartesian"),l=t("../../plots/cartesian/axis_ids").getFromId,c=t("../../plots/cartesian/axes").shouldShowZeroLine;function u(t,e,r){for(var n=r.matrixOptions.data.length,i=e._visibleDims,a=r.viewOpts.ranges=new Array(n),o=0;oh?2*(b.sizeAvg||Math.max(b.size,3)):a(e,x),p=0;pa&&l||i-1,A=!0;if(o(x)||!!p.selectedpoints||M){var S=p._length;if(p.selectedpoints){g.selectBatch=p.selectedpoints;var E=p.selectedpoints,C={};for(l=0;l1&&(u=g[y-1],h=m[y-1],d=v[y-1]),e=0;eu?"-":"+")+"x")).replace("y",(f>h?"-":"+")+"y")).replace("z",(p>d?"-":"+")+"z");var C=function(){y=0,A=[],S=[],E=[]};(!y||y2?t.slice(1,e-1):2===e?[(t[0]+t[1])/2]:t}function p(t){var e=t.length;return 1===e?[.5,.5]:[t[1]-t[0],t[e-1]-t[e-2]]}function d(t,e){var r=t.fullSceneLayout,i=t.dataScale,u=e._len,f={};function d(t,e){var n=r[e],o=i[c[e]];return a.simpleMap(t,(function(t){return n.d2l(t)*o}))}if(f.vectors=l(d(e._u,"xaxis"),d(e._v,"yaxis"),d(e._w,"zaxis"),u),!u)return{positions:[],cells:[]};var g=d(e._Xs,"xaxis"),m=d(e._Ys,"yaxis"),v=d(e._Zs,"zaxis");if(f.meshgrid=[g,m,v],f.gridFill=e._gridFill,e._slen)f.startingPositions=l(d(e._startsX,"xaxis"),d(e._startsY,"yaxis"),d(e._startsZ,"zaxis"));else{for(var y=m[0],x=h(g),b=h(v),_=new Array(x.length*b.length),w=0,T=0;T=0};v?(r=Math.min(m.length,x.length),l=function(t){return M(m[t])&&A(t)},f=function(t){return String(m[t])}):(r=Math.min(y.length,x.length),l=function(t){return M(y[t])&&A(t)},f=function(t){return String(y[t])}),_&&(r=Math.min(r,b.length));for(var S=0;S1){for(var I=a.randstr(),P=0;P"),name:k||z("name")?l.name:void 0,color:T("hoverlabel.bgcolor")||y.color,borderColor:T("hoverlabel.bordercolor"),fontFamily:T("hoverlabel.font.family"),fontSize:T("hoverlabel.font.size"),fontColor:T("hoverlabel.font.color"),nameLength:T("hoverlabel.namelength"),textAlign:T("hoverlabel.align"),hovertemplate:k,hovertemplateLabels:L,eventData:[f(i,l,h.eventDataKeys)]};m&&(R.x0=S-i.rInscribed*i.rpx1,R.x1=S+i.rInscribed*i.rpx1,R.idealAlign=i.pxmid[0]<0?"left":"right"),v&&(R.x=S,R.idealAlign=S<0?"left":"right"),o.loneHover(R,{container:a._hoverlayer.node(),outerContainer:a._paper.node(),gd:r}),d._hasHoverLabel=!0}if(v){var F=t.select("path.surface");h.styleOne(F,i,l,{hovered:!0})}d._hasHoverEvent=!0,r.emit("plotly_hover",{points:[f(i,l,h.eventDataKeys)],event:n.event})}})),t.on("mouseout",(function(e){var i=r._fullLayout,a=r._fullData[d.index],s=n.select(this).datum();if(d._hasHoverEvent&&(e.originalEvent=n.event,r.emit("plotly_unhover",{points:[f(s,a,h.eventDataKeys)],event:n.event}),d._hasHoverEvent=!1),d._hasHoverLabel&&(o.loneUnhover(i._hoverlayer.node()),d._hasHoverLabel=!1),v){var l=t.select("path.surface");h.styleOne(l,s,a,{hovered:!1})}})),t.on("click",(function(t){var e=r._fullLayout,a=r._fullData[d.index],s=m&&(c.isHierarchyRoot(t)||c.isLeaf(t)),u=c.getPtId(t),p=c.isEntry(t)?c.findEntryWithChild(g,u):c.findEntryWithLevel(g,u),v=c.getPtId(p),y={points:[f(t,a,h.eventDataKeys)],event:n.event};s||(y.nextLevel=v);var x=l.triggerHandler(r,"plotly_"+d.type+"click",y);if(!1!==x&&e.hovermode&&(r._hoverdata=[f(t,a,h.eventDataKeys)],o.click(r,n.event)),!s&&!1!==x&&!r._dragging&&!r._transitioning){i.call("_storeDirectGUIEdit",a,e._tracePreGUI[a.uid],{level:a.level});var b={data:[{level:v}],traces:[d.index]},_={frame:{redraw:!1,duration:h.transitionTime},transition:{duration:h.transitionTime,easing:h.transitionEasing},mode:"immediate",fromcurrent:!0};o.loneUnhover(e._hoverlayer.node()),i.call("animate",r,b,_)}}))}},{"../../components/fx":683,"../../components/fx/helpers":679,"../../lib":778,"../../lib/events":767,"../../registry":911,"../pie/helpers":1166,"./helpers":1305,d3:169}],1305:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../components/color"),a=t("../../lib/setcursor"),o=t("../pie/helpers");function s(t){return t.data.data.pid}r.findEntryWithLevel=function(t,e){var n;return e&&t.eachAfter((function(t){if(r.getPtId(t)===e)return n=t.copy()})),n||t},r.findEntryWithChild=function(t,e){var n;return t.eachAfter((function(t){for(var i=t.children||[],a=0;a0)},r.getMaxDepth=function(t){return t.maxdepth>=0?t.maxdepth:1/0},r.isHeader=function(t,e){return!(r.isLeaf(t)||t.depth===e._maxDepth-1)},r.getParent=function(t,e){return r.findEntryWithLevel(t,s(e))},r.listPath=function(t,e){var n=t.parent;if(!n)return[];var i=e?[n.data[e]]:[n];return r.listPath(n,e).concat(i)},r.getPath=function(t){return r.listPath(t,"label").join("/")+"/"},r.formatValue=o.formatPieValue,r.formatPercent=function(t,e){var r=n.formatPercent(t,0);return"0%"===r&&(r=o.formatPiePercent(t,e)),r}},{"../../components/color":643,"../../lib":778,"../../lib/setcursor":799,"../pie/helpers":1166}],1306:[function(t,e,r){"use strict";e.exports={moduleType:"trace",name:"sunburst",basePlotModule:t("./base_plot"),categories:[],animatable:!0,attributes:t("./attributes"),layoutAttributes:t("./layout_attributes"),supplyDefaults:t("./defaults"),supplyLayoutDefaults:t("./layout_defaults"),calc:t("./calc").calc,crossTraceCalc:t("./calc").crossTraceCalc,plot:t("./plot").plot,style:t("./style").style,colorbar:t("../scatter/marker_colorbar"),meta:{}}},{"../scatter/marker_colorbar":1205,"./attributes":1299,"./base_plot":1300,"./calc":1301,"./defaults":1303,"./layout_attributes":1307,"./layout_defaults":1308,"./plot":1309,"./style":1310}],1307:[function(t,e,r){"use strict";e.exports={sunburstcolorway:{valType:"colorlist",editType:"calc"},extendsunburstcolors:{valType:"boolean",dflt:!0,editType:"calc"}}},{}],1308:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./layout_attributes");e.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}r("sunburstcolorway",e.colorway),r("extendsunburstcolors")}},{"../../lib":778,"./layout_attributes":1307}],1309:[function(t,e,r){"use strict";var n=t("d3"),i=t("d3-hierarchy"),a=t("../../components/drawing"),o=t("../../lib"),s=t("../../lib/svg_text_utils"),l=t("../bar/uniform_text"),c=l.recordMinTextSize,u=l.clearMinTextSize,f=t("../pie/plot"),h=t("../pie/helpers").getRotationAngle,p=f.computeTransform,d=f.transformInsideText,g=t("./style").styleOne,m=t("../bar/style").resizeText,v=t("./fx"),y=t("./constants"),x=t("./helpers");function b(t,e,l,u){var f=t._fullLayout,m=!f.uniformtext.mode&&x.hasTransition(u),b=n.select(l).selectAll("g.slice"),w=e[0],T=w.trace,k=w.hierarchy,M=x.findEntryWithLevel(k,T.level),A=x.getMaxDepth(T),S=f._size,E=T.domain,C=S.w*(E.x[1]-E.x[0]),L=S.h*(E.y[1]-E.y[0]),I=.5*Math.min(C,L),P=w.cx=S.l+S.w*(E.x[1]+E.x[0])/2,z=w.cy=S.t+S.h*(1-E.y[0])-L/2;if(!M)return b.remove();var O=null,D={};m&&b.each((function(t){D[x.getPtId(t)]={rpx0:t.rpx0,rpx1:t.rpx1,x0:t.x0,x1:t.x1,transform:t.transform},!O&&x.isEntry(t)&&(O=t)}));var R=function(t){return i.partition().size([2*Math.PI,t.height+1])(t)}(M).descendants(),F=M.height+1,B=0,N=A;w.hasMultipleRoots&&x.isHierarchyRoot(M)&&(R=R.slice(1),F-=1,B=1,N+=1),R=R.filter((function(t){return t.y1<=N}));var j=h(T.rotation);j&&R.forEach((function(t){t.x0+=j,t.x1+=j}));var U=Math.min(F,A),V=function(t){return(t-B)/U*I},q=function(t,e){return[t*Math.cos(e),-t*Math.sin(e)]},H=function(t){return o.pathAnnulus(t.rpx0,t.rpx1,t.x0,t.x1,P,z)},G=function(t){return P+_(t)[0]*(t.transform.rCenter||0)+(t.transform.x||0)},Y=function(t){return z+_(t)[1]*(t.transform.rCenter||0)+(t.transform.y||0)};(b=b.data(R,x.getPtId)).enter().append("g").classed("slice",!0),m?b.exit().transition().each((function(){var t=n.select(this);t.select("path.surface").transition().attrTween("d",(function(t){var e=function(t){var e,r=x.getPtId(t),i=D[r],a=D[x.getPtId(M)];if(a){var o=(t.x1>a.x1?2*Math.PI:0)+j;e=t.rpx1W?2*Math.PI:0)+j;e={x0:a,x1:a}}else e={rpx0:I,rpx1:I},o.extendFlat(e,J(t));else e={rpx0:0,rpx1:0};else e={x0:j,x1:j};return n.interpolate(e,i)}(t);return function(t){return H(e(t))}})):u.attr("d",H),l.call(v,M,t,e,{eventDataKeys:y.eventDataKeys,transitionTime:y.CLICK_TRANSITION_TIME,transitionEasing:y.CLICK_TRANSITION_EASING}).call(x.setSliceCursor,t,{hideOnRoot:!0,hideOnLeaves:!0,isTransitioning:t._transitioning}),u.call(g,i,T);var h=o.ensureSingle(l,"g","slicetext"),b=o.ensureSingle(h,"text","",(function(t){t.attr("data-notex",1)})),_=o.ensureUniformFontSize(t,x.determineTextFont(T,i,f.font));b.text(r.formatSliceLabel(i,M,T,e,f)).classed("slicetext",!0).attr("text-anchor","middle").call(a.font,_).call(s.convertToTspans,t);var k=a.bBox(b.node());i.transform=d(k,i,w),i.transform.targetX=G(i),i.transform.targetY=Y(i);var A=function(t,e){var r=t.transform;return p(r,e),r.fontSize=_.size,c(T.type,r,f),o.getTextTransform(r)};m?b.transition().attrTween("transform",(function(t){var e=function(t){var e,r=D[x.getPtId(t)],i=t.transform;if(r)e=r;else if(e={rpx1:t.rpx1,transform:{textPosAngle:i.textPosAngle,scale:0,rotate:i.rotate,rCenter:i.rCenter,x:i.x,y:i.y}},O)if(t.parent)if(W){var a=t.x1>W?2*Math.PI:0;e.x0=e.x1=a}else o.extendFlat(e,J(t));else e.x0=e.x1=j;else e.x0=e.x1=j;var s=n.interpolate(e.transform.textPosAngle,t.transform.textPosAngle),l=n.interpolate(e.rpx1,t.rpx1),u=n.interpolate(e.x0,t.x0),h=n.interpolate(e.x1,t.x1),p=n.interpolate(e.transform.scale,i.scale),d=n.interpolate(e.transform.rotate,i.rotate),g=0===i.rCenter?3:0===e.transform.rCenter?1/3:1,m=n.interpolate(e.transform.rCenter,i.rCenter);return function(t){var e=l(t),r=u(t),n=h(t),a=function(t){return m(Math.pow(t,g))}(t),o={pxmid:q(e,(r+n)/2),rpx1:e,transform:{textPosAngle:s(t),rCenter:a,x:i.x,y:i.y}};return c(T.type,i,f),{transform:{targetX:G(o),targetY:Y(o),scale:p(t),rotate:d(t),rCenter:a}}}}(t);return function(t){return A(e(t),k)}})):b.attr("transform",A(i,k))}))}function _(t){return e=t.rpx1,r=t.transform.textPosAngle,[e*Math.sin(r),-e*Math.cos(r)];var e,r}r.plot=function(t,e,r,i){var a,o,s=t._fullLayout,l=s._sunburstlayer,c=!r,f=!s.uniformtext.mode&&x.hasTransition(r);(u("sunburst",s),(a=l.selectAll("g.trace.sunburst").data(e,(function(t){return t[0].trace.uid}))).enter().append("g").classed("trace",!0).classed("sunburst",!0).attr("stroke-linejoin","round"),a.order(),f)?(i&&(o=i()),n.transition().duration(r.duration).ease(r.easing).each("end",(function(){o&&o()})).each("interrupt",(function(){o&&o()})).each((function(){l.selectAll("g.trace").each((function(e){b(t,e,this,r)}))}))):(a.each((function(e){b(t,e,this,r)})),s.uniformtext.mode&&m(t,s._sunburstlayer.selectAll(".trace"),"sunburst"));c&&a.exit().remove()},r.formatSliceLabel=function(t,e,r,n,i){var a=r.texttemplate,s=r.textinfo;if(!(a||s&&"none"!==s))return"";var l=i.separators,c=n[0],u=t.data.data,f=c.hierarchy,h=x.isHierarchyRoot(t),p=x.getParent(f,t),d=x.getValue(t);if(!a){var g,m=s.split("+"),v=function(t){return-1!==m.indexOf(t)},y=[];if(v("label")&&u.label&&y.push(u.label),u.hasOwnProperty("v")&&v("value")&&y.push(x.formatValue(u.v,l)),!h){v("current path")&&y.push(x.getPath(t.data));var b=0;v("percent parent")&&b++,v("percent entry")&&b++,v("percent root")&&b++;var _=b>1;if(b){var w,T=function(t){g=x.formatPercent(w,l),_&&(g+=" of "+t),y.push(g)};v("percent parent")&&!h&&(w=d/x.getValue(p),T("parent")),v("percent entry")&&(w=d/x.getValue(e),T("entry")),v("percent root")&&(w=d/x.getValue(f),T("root"))}}return v("text")&&(g=o.castOption(r,u.i,"text"),o.isValidTextValue(g)&&y.push(g)),y.join("
    ")}var k=o.castOption(r,u.i,"texttemplate");if(!k)return"";var M={};u.label&&(M.label=u.label),u.hasOwnProperty("v")&&(M.value=u.v,M.valueLabel=x.formatValue(u.v,l)),M.currentPath=x.getPath(t.data),h||(M.percentParent=d/x.getValue(p),M.percentParentLabel=x.formatPercent(M.percentParent,l),M.parent=x.getPtLabel(p)),M.percentEntry=d/x.getValue(e),M.percentEntryLabel=x.formatPercent(M.percentEntry,l),M.entry=x.getPtLabel(e),M.percentRoot=d/x.getValue(f),M.percentRootLabel=x.formatPercent(M.percentRoot,l),M.root=x.getPtLabel(f),u.hasOwnProperty("color")&&(M.color=u.color);var A=o.castOption(r,u.i,"text");return(o.isValidTextValue(A)||""===A)&&(M.text=A),M.customdata=o.castOption(r,u.i,"customdata"),o.texttemplateString(k,M,i._d3locale,M,r._meta||{})}},{"../../components/drawing":665,"../../lib":778,"../../lib/svg_text_utils":803,"../bar/style":935,"../bar/uniform_text":937,"../pie/helpers":1166,"../pie/plot":1170,"./constants":1302,"./fx":1304,"./helpers":1305,"./style":1310,d3:169,"d3-hierarchy":161}],1310:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../components/color"),a=t("../../lib"),o=t("../bar/uniform_text").resizeText;function s(t,e,r){var n=e.data.data,o=!e.children,s=n.i,l=a.castOption(r,s,"marker.line.color")||i.defaultLine,c=a.castOption(r,s,"marker.line.width")||0;t.style("stroke-width",c).call(i.fill,n.color).call(i.stroke,l).style("opacity",o?r.leaf.opacity:null)}e.exports={style:function(t){var e=t._fullLayout._sunburstlayer.selectAll(".trace");o(t,e,"sunburst"),e.each((function(t){var e=n.select(this),r=t[0].trace;e.style("opacity",r.opacity),e.selectAll("path.surface").each((function(t){n.select(this).call(s,t,r)}))}))},styleOne:s}},{"../../components/color":643,"../../lib":778,"../bar/uniform_text":937,d3:169}],1311:[function(t,e,r){"use strict";var n=t("../../components/color"),i=t("../../components/colorscale/attributes"),a=t("../../plots/template_attributes").hovertemplateAttrs,o=t("../../plots/attributes"),s=t("../../lib/extend").extendFlat,l=t("../../plot_api/edit_types").overrideAll;function c(t){return{show:{valType:"boolean",dflt:!1},start:{valType:"number",dflt:null,editType:"plot"},end:{valType:"number",dflt:null,editType:"plot"},size:{valType:"number",dflt:null,min:0,editType:"plot"},project:{x:{valType:"boolean",dflt:!1},y:{valType:"boolean",dflt:!1},z:{valType:"boolean",dflt:!1}},color:{valType:"color",dflt:n.defaultLine},usecolormap:{valType:"boolean",dflt:!1},width:{valType:"number",min:1,max:16,dflt:2},highlight:{valType:"boolean",dflt:!0},highlightcolor:{valType:"color",dflt:n.defaultLine},highlightwidth:{valType:"number",min:1,max:16,dflt:2}}}var u=e.exports=l(s({z:{valType:"data_array"},x:{valType:"data_array"},y:{valType:"data_array"},text:{valType:"string",dflt:"",arrayOk:!0},hovertext:{valType:"string",dflt:"",arrayOk:!0},hovertemplate:a(),connectgaps:{valType:"boolean",dflt:!1,editType:"calc"},surfacecolor:{valType:"data_array"}},i("",{colorAttr:"z or surfacecolor",showScaleDflt:!0,autoColorDflt:!1,editTypeOverride:"calc"}),{contours:{x:c(),y:c(),z:c()},hidesurface:{valType:"boolean",dflt:!1},lightposition:{x:{valType:"number",min:-1e5,max:1e5,dflt:10},y:{valType:"number",min:-1e5,max:1e5,dflt:1e4},z:{valType:"number",min:-1e5,max:1e5,dflt:0}},lighting:{ambient:{valType:"number",min:0,max:1,dflt:.8},diffuse:{valType:"number",min:0,max:1,dflt:.8},specular:{valType:"number",min:0,max:2,dflt:.05},roughness:{valType:"number",min:0,max:1,dflt:.5},fresnel:{valType:"number",min:0,max:5,dflt:.2}},opacity:{valType:"number",min:0,max:1,dflt:1},opacityscale:{valType:"any",editType:"calc"},_deprecated:{zauto:s({},i.zauto,{}),zmin:s({},i.zmin,{}),zmax:s({},i.zmax,{})},hoverinfo:s({},o.hoverinfo),showlegend:s({},o.showlegend,{dflt:!1})}),"calc","nested");u.x.editType=u.y.editType=u.z.editType="calc+clearAxisTypes",u.transforms=void 0},{"../../components/color":643,"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plot_api/edit_types":810,"../../plots/attributes":824,"../../plots/template_attributes":906}],1312:[function(t,e,r){"use strict";var n=t("../../components/colorscale/calc");e.exports=function(t,e){e.surfacecolor?n(t,e,{vals:e.surfacecolor,containerStr:"",cLetter:"c"}):n(t,e,{vals:e.z,containerStr:"",cLetter:"c"})}},{"../../components/colorscale/calc":651}],1313:[function(t,e,r){"use strict";var n=t("gl-surface3d"),i=t("ndarray"),a=t("ndarray-linear-interpolate").d2,o=t("../heatmap/interp2d"),s=t("../heatmap/find_empties"),l=t("../../lib").isArrayOrTypedArray,c=t("../../lib/gl_format_color").parseColorScale,u=t("../../lib/str2rgbarray"),f=t("../../components/colorscale").extractOpts;function h(t,e,r){this.scene=t,this.uid=r,this.surface=e,this.data=null,this.showContour=[!1,!1,!1],this.contourStart=[null,null,null],this.contourEnd=[null,null,null],this.contourSize=[0,0,0],this.minValues=[1/0,1/0,1/0],this.maxValues=[-1/0,-1/0,-1/0],this.dataScaleX=1,this.dataScaleY=1,this.refineData=!0,this.objectOffset=[0,0,0]}var p=h.prototype;p.getXat=function(t,e,r,n){var i=l(this.data.x)?l(this.data.x[0])?this.data.x[e][t]:this.data.x[t]:t;return void 0===r?i:n.d2l(i,0,r)},p.getYat=function(t,e,r,n){var i=l(this.data.y)?l(this.data.y[0])?this.data.y[e][t]:this.data.y[e]:e;return void 0===r?i:n.d2l(i,0,r)},p.getZat=function(t,e,r,n){var i=this.data.z[e][t];return null===i&&this.data.connectgaps&&this.data._interpolatedZ&&(i=this.data._interpolatedZ[e][t]),void 0===r?i:n.d2l(i,0,r)},p.handlePick=function(t){if(t.object===this.surface){var e=(t.data.index[0]-1)/this.dataScaleX-1,r=(t.data.index[1]-1)/this.dataScaleY-1,n=Math.max(Math.min(Math.round(e),this.data.z[0].length-1),0),i=Math.max(Math.min(Math.round(r),this.data._ylength-1),0);t.index=[n,i],t.traceCoordinate=[this.getXat(n,i),this.getYat(n,i),this.getZat(n,i)],t.dataCoordinate=[this.getXat(n,i,this.data.xcalendar,this.scene.fullSceneLayout.xaxis),this.getYat(n,i,this.data.ycalendar,this.scene.fullSceneLayout.yaxis),this.getZat(n,i,this.data.zcalendar,this.scene.fullSceneLayout.zaxis)];for(var a=0;a<3;a++){var o=t.dataCoordinate[a];null!=o&&(t.dataCoordinate[a]*=this.scene.dataScale[a])}var s=this.data.hovertext||this.data.text;return Array.isArray(s)&&s[i]&&void 0!==s[i][n]?t.textLabel=s[i][n]:t.textLabel=s||"",t.data.dataCoordinate=t.dataCoordinate.slice(),this.surface.highlight(t.data),this.scene.glplot.spikes.position=t.dataCoordinate,!0}};var d=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999];function g(t,e){if(t0){r=d[n];break}return r}function y(t,e){if(!(t<1||e<1)){for(var r=m(t),n=m(e),i=1,a=0;a_;)r--,r/=v(r),++r1?n:1},p.refineCoords=function(t){for(var e=this.dataScaleX,r=this.dataScaleY,n=t[0].shape[0],a=t[0].shape[1],o=0|Math.floor(t[0].shape[0]*e+1),s=0|Math.floor(t[0].shape[1]*r+1),l=1+n+1,c=1+a+1,u=i(new Float32Array(l*c),[l,c]),f=[1/e,0,0,0,1/r,0,0,0,1],h=0;h0&&null!==this.contourStart[t]&&null!==this.contourEnd[t]&&this.contourEnd[t]>this.contourStart[t]))for(i[t]=!0,e=this.contourStart[t];ea&&(this.minValues[e]=a),this.maxValues[e]",maxDimensionCount:60,overdrag:45,releaseTransitionDuration:120,releaseTransitionEase:"cubic-out",scrollbarCaptureWidth:18,scrollbarHideDelay:1e3,scrollbarHideDuration:1e3,scrollbarOffset:5,scrollbarWidth:8,transitionDuration:100,transitionEase:"cubic-out",uplift:5,wrapSpacer:" ",wrapSplitCharacter:" ",cn:{table:"table",tableControlView:"table-control-view",scrollBackground:"scroll-background",yColumn:"y-column",columnBlock:"column-block",scrollAreaClip:"scroll-area-clip",scrollAreaClipRect:"scroll-area-clip-rect",columnBoundary:"column-boundary",columnBoundaryClippath:"column-boundary-clippath",columnBoundaryRect:"column-boundary-rect",columnCells:"column-cells",columnCell:"column-cell",cellRect:"cell-rect",cellText:"cell-text",cellTextHolder:"cell-text-holder",scrollbarKit:"scrollbar-kit",scrollbar:"scrollbar",scrollbarSlider:"scrollbar-slider",scrollbarGlyph:"scrollbar-glyph",scrollbarCaptureZone:"scrollbar-capture-zone"}}},{}],1320:[function(t,e,r){"use strict";var n=t("./constants"),i=t("../../lib/extend").extendFlat,a=t("fast-isnumeric");function o(t){if(Array.isArray(t)){for(var e=0,r=0;r=e||c===t.length-1)&&(n[i]=o,o.key=l++,o.firstRowIndex=s,o.lastRowIndex=c,o={firstRowIndex:null,lastRowIndex:null,rows:[]},i+=a,s=c+1,a=0);return n}e.exports=function(t,e){var r=l(e.cells.values),p=function(t){return t.slice(e.header.values.length,t.length)},d=l(e.header.values);d.length&&!d[0].length&&(d[0]=[""],d=l(d));var g=d.concat(p(r).map((function(){return c((d[0]||[""]).length)}))),m=e.domain,v=Math.floor(t._fullLayout._size.w*(m.x[1]-m.x[0])),y=Math.floor(t._fullLayout._size.h*(m.y[1]-m.y[0])),x=e.header.values.length?g[0].map((function(){return e.header.height})):[n.emptyHeaderHeight],b=r.length?r[0].map((function(){return e.cells.height})):[],_=x.reduce(s,0),w=h(b,y-_+n.uplift),T=f(h(x,_),[]),k=f(w,T),M={},A=e._fullInput.columnorder.concat(p(r.map((function(t,e){return e})))),S=g.map((function(t,r){var n=Array.isArray(e.columnwidth)?e.columnwidth[Math.min(r,e.columnwidth.length-1)]:e.columnwidth;return a(n)?Number(n):1})),E=S.reduce(s,0);S=S.map((function(t){return t/E*v}));var C=Math.max(o(e.header.line.width),o(e.cells.line.width)),L={key:e.uid+t._context.staticPlot,translateX:m.x[0]*t._fullLayout._size.w,translateY:t._fullLayout._size.h*(1-m.y[1]),size:t._fullLayout._size,width:v,maxLineWidth:C,height:y,columnOrder:A,groupHeight:y,rowBlocks:k,headerRowBlocks:T,scrollY:0,cells:i({},e.cells,{values:r}),headerCells:i({},e.header,{values:g}),gdColumns:g.map((function(t){return t[0]})),gdColumnsOriginalOrder:g.map((function(t){return t[0]})),prevPages:[0,0],scrollbarState:{scrollbarScrollInProgress:!1},columns:g.map((function(t,e){var r=M[t];return M[t]=(r||0)+1,{key:t+"__"+M[t],label:t,specIndex:e,xIndex:A[e],xScale:u,x:void 0,calcdata:void 0,columnWidth:S[e]}}))};return L.columns.forEach((function(t){t.calcdata=L,t.x=u(t)})),L}},{"../../lib/extend":768,"./constants":1319,"fast-isnumeric":241}],1321:[function(t,e,r){"use strict";var n=t("../../lib/extend").extendFlat;r.splitToPanels=function(t){var e=[0,0],r=n({},t,{key:"header",type:"header",page:0,prevPages:e,currentRepaint:[null,null],dragHandle:!0,values:t.calcdata.headerCells.values[t.specIndex],rowBlocks:t.calcdata.headerRowBlocks,calcdata:n({},t.calcdata,{cells:t.calcdata.headerCells})});return[n({},t,{key:"cells1",type:"cells",page:0,prevPages:e,currentRepaint:[null,null],dragHandle:!1,values:t.calcdata.cells.values[t.specIndex],rowBlocks:t.calcdata.rowBlocks}),n({},t,{key:"cells2",type:"cells",page:1,prevPages:e,currentRepaint:[null,null],dragHandle:!1,values:t.calcdata.cells.values[t.specIndex],rowBlocks:t.calcdata.rowBlocks}),r]},r.splitToCells=function(t){var e=function(t){var e=t.rowBlocks[t.page],r=e?e.rows[0].rowIndex:0,n=e?r+e.rows.length:0;return[r,n]}(t);return(t.values||[]).slice(e[0],e[1]).map((function(r,n){return{keyWithinBlock:n+("string"==typeof r&&r.match(/[<$&> ]/)?"_keybuster_"+Math.random():""),key:e[0]+n,column:t,calcdata:t.calcdata,page:t.page,rowBlocks:t.rowBlocks,value:r}}))}},{"../../lib/extend":768}],1322:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./attributes"),a=t("../../plots/domain").defaults;e.exports=function(t,e,r,o){function s(r,a){return n.coerce(t,e,i,r,a)}a(e,o,s),s("columnwidth"),s("header.values"),s("header.format"),s("header.align"),s("header.prefix"),s("header.suffix"),s("header.height"),s("header.line.width"),s("header.line.color"),s("header.fill.color"),n.coerceFont(s,"header.font",n.extendFlat({},o.font)),function(t,e){for(var r=t.columnorder||[],n=t.header.values.length,i=r.slice(0,n),a=i.slice().sort((function(t,e){return t-e})),o=i.map((function(t){return a.indexOf(t)})),s=o.length;s/i),l=!o||s;t.mayHaveMarkup=o&&a.match(/[<&>]/);var c,u="string"==typeof(c=a)&&c.match(n.latexCheck);t.latex=u;var f,h,p=u?"":w(t.calcdata.cells.prefix,e,r)||"",d=u?"":w(t.calcdata.cells.suffix,e,r)||"",g=u?null:w(t.calcdata.cells.format,e,r)||null,m=p+(g?i.format(g)(t.value):t.value)+d;if(t.wrappingNeeded=!t.wrapped&&!l&&!u&&(f=_(m)),t.cellHeightMayIncrease=s||u||t.mayHaveMarkup||(void 0===f?_(m):f),t.needsConvertToTspans=t.mayHaveMarkup||t.wrappingNeeded||t.latex,t.wrappingNeeded){var v=(" "===n.wrapSplitCharacter?m.replace(/i&&n.push(a),i+=l}return n}(i,l,s);1===u.length&&(u[0]===i.length-1?u.unshift(u[0]-1):u.push(u[0]+1)),u[0]%2&&u.reverse(),e.each((function(t,e){t.page=u[e],t.scrollY=l})),e.attr("transform",(function(t){var e=O(t.rowBlocks,t.page)-t.scrollY;return c(0,e)})),t&&(C(t,r,e,u,n.prevPages,n,0),C(t,r,e,u,n.prevPages,n,1),y(r,t))}}function E(t,e,r,a){return function(o){var s=o.calcdata?o.calcdata:o,l=e.filter((function(t){return s.key===t.key})),c=r||s.scrollbarState.dragMultiplier,u=s.scrollY;s.scrollY=void 0===a?s.scrollY+c*i.event.dy:a;var f=l.selectAll("."+n.cn.yColumn).selectAll("."+n.cn.columnBlock).filter(k);return S(t,f,l),s.scrollY===u}}function C(t,e,r,n,i,a,o){n[o]!==i[o]&&(clearTimeout(a.currentRepaint[o]),a.currentRepaint[o]=setTimeout((function(){var a=r.filter((function(t,e){return e===o&&n[e]!==i[e]}));x(t,e,a,r),i[o]=n[o]})))}function L(t,e,r,a){return function(){var o=i.select(e.parentNode);o.each((function(t){var e=t.fragments;o.selectAll("tspan.line").each((function(t,r){e[r].width=this.getComputedTextLength()}));var r,i,a=e[e.length-1].width,s=e.slice(0,-1),l=[],c=0,u=t.column.columnWidth-2*n.cellPad;for(t.value="";s.length;)c+(i=(r=s.shift()).width+a)>u&&(t.value+=l.join(n.wrapSpacer)+n.lineBreaker,l=[],c=0),l.push(r.text),c+=i;c&&(t.value+=l.join(n.wrapSpacer)),t.wrapped=!0})),o.selectAll("tspan.line").remove(),b(o.select("."+n.cn.cellText),r,t,a),i.select(e.parentNode.parentNode).call(z)}}function I(t,e,r,a,o){return function(){if(!o.settledY){var s=i.select(e.parentNode),l=F(o),u=o.key-l.firstRowIndex,f=l.rows[u].rowHeight,h=o.cellHeightMayIncrease?e.parentNode.getBoundingClientRect().height+2*n.cellPad:f,p=Math.max(h,f);p-l.rows[u].rowHeight&&(l.rows[u].rowHeight=p,t.selectAll("."+n.cn.columnCell).call(z),S(null,t.filter(k),0),y(r,a,!0)),s.attr("transform",(function(){var t=this.parentNode.getBoundingClientRect(),e=i.select(this.parentNode).select("."+n.cn.cellRect).node().getBoundingClientRect(),r=this.transform.baseVal.consolidate(),a=e.top-t.top+(r?r.matrix.f:n.cellPad);return c(P(o,i.select(this.parentNode).select("."+n.cn.cellTextHolder).node().getBoundingClientRect().width),a)})),o.settledY=!0}}}function P(t,e){switch(t.align){case"left":return n.cellPad;case"right":return t.column.columnWidth-(e||0)-n.cellPad;case"center":return(t.column.columnWidth-(e||0))/2;default:return n.cellPad}}function z(t){t.attr("transform",(function(t){var e=t.rowBlocks[0].auxiliaryBlocks.reduce((function(t,e){return t+D(e,1/0)}),0),r=D(F(t),t.key);return c(0,r+e)})).selectAll("."+n.cn.cellRect).attr("height",(function(t){return(e=F(t),r=t.key,e.rows[r-e.firstRowIndex]).rowHeight;var e,r}))}function O(t,e){for(var r=0,n=e-1;n>=0;n--)r+=R(t[n]);return r}function D(t,e){for(var r=0,n=0;n","<","|","/","\\"],dflt:">",editType:"plot"},thickness:{valType:"number",min:12,editType:"plot"},textfont:u({},s.textfont,{}),editType:"calc"},text:s.text,textinfo:l.textinfo,texttemplate:i({editType:"plot"},{keys:c.eventDataKeys.concat(["label","value"])}),hovertext:s.hovertext,hoverinfo:l.hoverinfo,hovertemplate:n({},{keys:c.eventDataKeys}),textfont:s.textfont,insidetextfont:s.insidetextfont,outsidetextfont:u({},s.outsidetextfont,{}),textposition:{valType:"enumerated",values:["top left","top center","top right","middle left","middle center","middle right","bottom left","bottom center","bottom right"],dflt:"top left",editType:"plot"},sort:s.sort,root:l.root,domain:o({name:"treemap",trace:!0,editType:"calc"})}},{"../../components/colorscale/attributes":650,"../../lib/extend":768,"../../plots/domain":855,"../../plots/template_attributes":906,"../pie/attributes":1161,"../sunburst/attributes":1299,"./constants":1328}],1326:[function(t,e,r){"use strict";var n=t("../../plots/plots");r.name="treemap",r.plot=function(t,e,i,a){n.plotBasePlot(r.name,t,e,i,a)},r.clean=function(t,e,i,a){n.cleanBasePlot(r.name,t,e,i,a)}},{"../../plots/plots":891}],1327:[function(t,e,r){"use strict";var n=t("../sunburst/calc");r.calc=function(t,e){return n.calc(t,e)},r.crossTraceCalc=function(t){return n._runCrossTraceCalc("treemap",t)}},{"../sunburst/calc":1301}],1328:[function(t,e,r){"use strict";e.exports={CLICK_TRANSITION_TIME:750,CLICK_TRANSITION_EASING:"poly",eventDataKeys:["currentPath","root","entry","percentRoot","percentEntry","percentParent"],gapWithPathbar:1}},{}],1329:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./attributes"),a=t("../../components/color"),o=t("../../plots/domain").defaults,s=t("../bar/defaults").handleText,l=t("../bar/constants").TEXTPAD,c=t("../../components/colorscale"),u=c.hasColorscale,f=c.handleDefaults;e.exports=function(t,e,r,c){function h(r,a){return n.coerce(t,e,i,r,a)}var p=h("labels"),d=h("parents");if(p&&p.length&&d&&d.length){var g=h("values");g&&g.length?h("branchvalues"):h("count"),h("level"),h("maxdepth"),"squarify"===h("tiling.packing")&&h("tiling.squarifyratio"),h("tiling.flip"),h("tiling.pad");var m=h("text");h("texttemplate"),e.texttemplate||h("textinfo",Array.isArray(m)?"text+label":"label"),h("hovertext"),h("hovertemplate");var v=h("pathbar.visible");s(t,e,c,h,"auto",{hasPathbar:v,moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1}),h("textposition");var y=-1!==e.textposition.indexOf("bottom");h("marker.line.width")&&h("marker.line.color",c.paper_bgcolor);var x=h("marker.colors"),b=e._hasColorscale=u(t,"marker","colors")||(t.marker||{}).coloraxis;b?f(t,e,c,h,{prefix:"marker.",cLetter:"c"}):h("marker.depthfade",!(x||[]).length);var _=2*e.textfont.size;h("marker.pad.t",y?_/4:_),h("marker.pad.l",_/4),h("marker.pad.r",_/4),h("marker.pad.b",y?_:_/4),b&&f(t,e,c,h,{prefix:"marker.",cLetter:"c"}),e._hovered={marker:{line:{width:2,color:a.contrast(c.paper_bgcolor)}}},v&&(h("pathbar.thickness",e.pathbar.textfont.size+2*l),h("pathbar.side"),h("pathbar.edgeshape")),h("sort"),h("root.color"),o(e,c,h),e._length=null}else e.visible=!1}},{"../../components/color":643,"../../components/colorscale":655,"../../lib":778,"../../plots/domain":855,"../bar/constants":923,"../bar/defaults":925,"./attributes":1325}],1330:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../lib"),a=t("../../components/drawing"),o=t("../../lib/svg_text_utils"),s=t("./partition"),l=t("./style").styleOne,c=t("./constants"),u=t("../sunburst/helpers"),f=t("../sunburst/fx");e.exports=function(t,e,r,h,p){var d=p.barDifY,g=p.width,m=p.height,v=p.viewX,y=p.viewY,x=p.pathSlice,b=p.toMoveInsideSlice,_=p.strTransform,w=p.hasTransition,T=p.handleSlicesExit,k=p.makeUpdateSliceInterpolator,M=p.makeUpdateTextInterpolator,A={},S=t._fullLayout,E=e[0],C=E.trace,L=E.hierarchy,I=g/C._entryDepth,P=u.listPath(r.data,"id"),z=s(L.copy(),[g,m],{packing:"dice",pad:{inner:0,top:0,left:0,right:0,bottom:0}}).descendants();(z=z.filter((function(t){var e=P.indexOf(t.data.id);return-1!==e&&(t.x0=I*e,t.x1=I*(e+1),t.y0=d,t.y1=d+m,t.onPathbar=!0,!0)}))).reverse(),(h=h.data(z,u.getPtId)).enter().append("g").classed("pathbar",!0),T(h,!0,A,[g,m],x),h.order();var O=h;w&&(O=O.transition().each("end",(function(){var e=n.select(this);u.setSliceCursor(e,t,{hideOnRoot:!1,hideOnLeaves:!1,isTransitioning:!1})}))),O.each((function(s){s._hoverX=v(s.x1-Math.min(g,m)/2),s._hoverY=y(s.y1-m/2);var h=n.select(this),p=i.ensureSingle(h,"path","surface",(function(t){t.style("pointer-events","all")}));w?p.transition().attrTween("d",(function(t){var e=k(t,!0,A,[g,m]);return function(t){return x(e(t))}})):p.attr("d",x),h.call(f,r,t,e,{styleOne:l,eventDataKeys:c.eventDataKeys,transitionTime:c.CLICK_TRANSITION_TIME,transitionEasing:c.CLICK_TRANSITION_EASING}).call(u.setSliceCursor,t,{hideOnRoot:!1,hideOnLeaves:!1,isTransitioning:t._transitioning}),p.call(l,s,C,{hovered:!1}),s._text=(u.getPtLabel(s)||"").split("
    ").join(" ")||"";var d=i.ensureSingle(h,"g","slicetext"),T=i.ensureSingle(d,"text","",(function(t){t.attr("data-notex",1)})),E=i.ensureUniformFontSize(t,u.determineTextFont(C,s,S.font,{onPathbar:!0}));T.text(s._text||" ").classed("slicetext",!0).attr("text-anchor","start").call(a.font,E).call(o.convertToTspans,t),s.textBB=a.bBox(T.node()),s.transform=b(s,{fontSize:E.size,onPathbar:!0}),s.transform.fontSize=E.size,w?T.transition().attrTween("transform",(function(t){var e=M(t,!0,A,[g,m]);return function(t){return _(e(t))}})):T.attr("transform",_(s))}))}},{"../../components/drawing":665,"../../lib":778,"../../lib/svg_text_utils":803,"../sunburst/fx":1304,"../sunburst/helpers":1305,"./constants":1328,"./partition":1335,"./style":1337,d3:169}],1331:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../lib"),a=t("../../components/drawing"),o=t("../../lib/svg_text_utils"),s=t("./partition"),l=t("./style").styleOne,c=t("./constants"),u=t("../sunburst/helpers"),f=t("../sunburst/fx"),h=t("../sunburst/plot").formatSliceLabel;e.exports=function(t,e,r,p,d){var g=d.width,m=d.height,v=d.viewX,y=d.viewY,x=d.pathSlice,b=d.toMoveInsideSlice,_=d.strTransform,w=d.hasTransition,T=d.handleSlicesExit,k=d.makeUpdateSliceInterpolator,M=d.makeUpdateTextInterpolator,A=d.prevEntry,S=t._fullLayout,E=e[0].trace,C=-1!==E.textposition.indexOf("left"),L=-1!==E.textposition.indexOf("right"),I=-1!==E.textposition.indexOf("bottom"),P=!I&&!E.marker.pad.t||I&&!E.marker.pad.b,z=s(r,[g,m],{packing:E.tiling.packing,squarifyratio:E.tiling.squarifyratio,flipX:E.tiling.flip.indexOf("x")>-1,flipY:E.tiling.flip.indexOf("y")>-1,pad:{inner:E.tiling.pad,top:E.marker.pad.t,left:E.marker.pad.l,right:E.marker.pad.r,bottom:E.marker.pad.b}}).descendants(),O=1/0,D=-1/0;z.forEach((function(t){var e=t.depth;e>=E._maxDepth?(t.x0=t.x1=(t.x0+t.x1)/2,t.y0=t.y1=(t.y0+t.y1)/2):(O=Math.min(O,e),D=Math.max(D,e))})),p=p.data(z,u.getPtId),E._maxVisibleLayers=isFinite(D)?D-O+1:0,p.enter().append("g").classed("slice",!0),T(p,!1,{},[g,m],x),p.order();var R=null;if(w&&A){var F=u.getPtId(A);p.each((function(t){null===R&&u.getPtId(t)===F&&(R={x0:t.x0,x1:t.x1,y0:t.y0,y1:t.y1})}))}var B=function(){return R||{x0:0,x1:g,y0:0,y1:m}},N=p;return w&&(N=N.transition().each("end",(function(){var e=n.select(this);u.setSliceCursor(e,t,{hideOnRoot:!0,hideOnLeaves:!1,isTransitioning:!1})}))),N.each((function(s){var p=u.isHeader(s,E);s._hoverX=v(s.x1-E.marker.pad.r),s._hoverY=y(I?s.y1-E.marker.pad.b/2:s.y0+E.marker.pad.t/2);var d=n.select(this),T=i.ensureSingle(d,"path","surface",(function(t){t.style("pointer-events","all")}));w?T.transition().attrTween("d",(function(t){var e=k(t,!1,B(),[g,m]);return function(t){return x(e(t))}})):T.attr("d",x),d.call(f,r,t,e,{styleOne:l,eventDataKeys:c.eventDataKeys,transitionTime:c.CLICK_TRANSITION_TIME,transitionEasing:c.CLICK_TRANSITION_EASING}).call(u.setSliceCursor,t,{isTransitioning:t._transitioning}),T.call(l,s,E,{hovered:!1}),s.x0===s.x1||s.y0===s.y1?s._text="":s._text=p?P?"":u.getPtLabel(s)||"":h(s,r,E,e,S)||"";var A=i.ensureSingle(d,"g","slicetext"),z=i.ensureSingle(A,"text","",(function(t){t.attr("data-notex",1)})),O=i.ensureUniformFontSize(t,u.determineTextFont(E,s,S.font));z.text(s._text||" ").classed("slicetext",!0).attr("text-anchor",L?"end":C||p?"start":"middle").call(a.font,O).call(o.convertToTspans,t),s.textBB=a.bBox(z.node()),s.transform=b(s,{fontSize:O.size,isHeader:p}),s.transform.fontSize=O.size,w?z.transition().attrTween("transform",(function(t){var e=M(t,!1,B(),[g,m]);return function(t){return _(e(t))}})):z.attr("transform",_(s))})),R}},{"../../components/drawing":665,"../../lib":778,"../../lib/svg_text_utils":803,"../sunburst/fx":1304,"../sunburst/helpers":1305,"../sunburst/plot":1309,"./constants":1328,"./partition":1335,"./style":1337,d3:169}],1332:[function(t,e,r){"use strict";e.exports={moduleType:"trace",name:"treemap",basePlotModule:t("./base_plot"),categories:[],animatable:!0,attributes:t("./attributes"),layoutAttributes:t("./layout_attributes"),supplyDefaults:t("./defaults"),supplyLayoutDefaults:t("./layout_defaults"),calc:t("./calc").calc,crossTraceCalc:t("./calc").crossTraceCalc,plot:t("./plot"),style:t("./style").style,colorbar:t("../scatter/marker_colorbar"),meta:{}}},{"../scatter/marker_colorbar":1205,"./attributes":1325,"./base_plot":1326,"./calc":1327,"./defaults":1329,"./layout_attributes":1333,"./layout_defaults":1334,"./plot":1336,"./style":1337}],1333:[function(t,e,r){"use strict";e.exports={treemapcolorway:{valType:"colorlist",editType:"calc"},extendtreemapcolors:{valType:"boolean",dflt:!0,editType:"calc"}}},{}],1334:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./layout_attributes");e.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}r("treemapcolorway",e.colorway),r("extendtreemapcolors")}},{"../../lib":778,"./layout_attributes":1333}],1335:[function(t,e,r){"use strict";var n=t("d3-hierarchy");e.exports=function(t,e,r){var i,a=r.flipX,o=r.flipY,s="dice-slice"===r.packing,l=r.pad[o?"bottom":"top"],c=r.pad[a?"right":"left"],u=r.pad[a?"left":"right"],f=r.pad[o?"top":"bottom"];s&&(i=c,c=l,l=i,i=u,u=f,f=i);var h=n.treemap().tile(function(t,e){switch(t){case"squarify":return n.treemapSquarify.ratio(e);case"binary":return n.treemapBinary;case"dice":return n.treemapDice;case"slice":return n.treemapSlice;default:return n.treemapSliceDice}}(r.packing,r.squarifyratio)).paddingInner(r.pad.inner).paddingLeft(c).paddingRight(u).paddingTop(l).paddingBottom(f).size(s?[e[1],e[0]]:e)(t);return(s||a||o)&&function t(e,r,n){var i;n.swapXY&&(i=e.x0,e.x0=e.y0,e.y0=i,i=e.x1,e.x1=e.y1,e.y1=i);n.flipX&&(i=e.x0,e.x0=r[0]-e.x1,e.x1=r[0]-i);n.flipY&&(i=e.y0,e.y0=r[1]-e.y1,e.y1=r[1]-i);var a=e.children;if(a)for(var o=0;o-1?E+I:-(L+I):0,z={x0:C,x1:C,y0:P,y1:P+L},O=function(t,e,r){var n=m.tiling.pad,i=function(t){return t-n<=e.x0},a=function(t){return t+n>=e.x1},o=function(t){return t-n<=e.y0},s=function(t){return t+n>=e.y1};return{x0:i(t.x0-n)?0:a(t.x0-n)?r[0]:t.x0,x1:i(t.x1+n)?0:a(t.x1+n)?r[0]:t.x1,y0:o(t.y0-n)?0:s(t.y0-n)?r[1]:t.y0,y1:o(t.y1+n)?0:s(t.y1+n)?r[1]:t.y1}},D=null,R={},F={},B=null,N=function(t,e){return e?R[g(t)]:F[g(t)]},j=function(t,e,r,n){if(e)return R[g(v)]||z;var i=F[m.level]||r;return function(t){return t.data.depth-y.data.depth=(n-=v.r-o)){var y=(r+n)/2;r=y,n=y}var x;h?i<(x=a-v.b)&&x"===Q?(l.x-=a,c.x-=a,u.x-=a,f.x-=a):"/"===Q?(u.x-=a,f.x-=a,o.x-=a/2,s.x-=a/2):"\\"===Q?(l.x-=a,c.x-=a,o.x-=a/2,s.x-=a/2):"<"===Q&&(o.x-=a,s.x-=a),K(l),K(f),K(o),K(c),K(u),K(s),"M"+Z(l.x,l.y)+"L"+Z(c.x,c.y)+"L"+Z(s.x,s.y)+"L"+Z(u.x,u.y)+"L"+Z(f.x,f.y)+"L"+Z(o.x,o.y)+"Z"},toMoveInsideSlice:$,makeUpdateSliceInterpolator:et,makeUpdateTextInterpolator:rt,handleSlicesExit:nt,hasTransition:T,strTransform:it}):b.remove()}e.exports=function(t,e,r,a){var o,s,l=t._fullLayout,c=l._treemaplayer,h=!r;(u("treemap",l),(o=c.selectAll("g.trace.treemap").data(e,(function(t){return t[0].trace.uid}))).enter().append("g").classed("trace",!0).classed("treemap",!0),o.order(),!l.uniformtext.mode&&i.hasTransition(r))?(a&&(s=a()),n.transition().duration(r.duration).ease(r.easing).each("end",(function(){s&&s()})).each("interrupt",(function(){s&&s()})).each((function(){c.selectAll("g.trace").each((function(e){m(t,e,this,r)}))}))):(o.each((function(e){m(t,e,this,r)})),l.uniformtext.mode&&f(t,l._treemaplayer.selectAll(".trace"),"treemap"));h&&o.exit().remove()}},{"../../lib":778,"../bar/constants":923,"../bar/plot":932,"../bar/style":935,"../bar/uniform_text":937,"../sunburst/helpers":1305,"./constants":1328,"./draw_ancestors":1330,"./draw_descendants":1331,d3:169}],1337:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../components/color"),a=t("../../lib"),o=t("../sunburst/helpers"),s=t("../bar/uniform_text").resizeText;function l(t,e,r,n){var s,l,c=(n||{}).hovered,u=e.data.data,f=u.i,h=u.color,p=o.isHierarchyRoot(e),d=1;if(c)s=r._hovered.marker.line.color,l=r._hovered.marker.line.width;else if(p&&h===r.root.color)d=100,s="rgba(0,0,0,0)",l=0;else if(s=a.castOption(r,f,"marker.line.color")||i.defaultLine,l=a.castOption(r,f,"marker.line.width")||0,!r._hasColorscale&&!e.onPathbar){var g=r.marker.depthfade;if(g){var m,v=i.combine(i.addOpacity(r._backgroundColor,.75),h);if(!0===g){var y=o.getMaxDepth(r);m=isFinite(y)?o.isLeaf(e)?0:r._maxVisibleLayers-(e.data.depth-r._entryDepth):e.data.height+1}else m=e.data.depth-r._entryDepth,r._atRootLevel||m++;if(m>0)for(var x=0;x0){var y,x,b,_,w,T=t.xa,k=t.ya;"h"===h.orientation?(w=e,y="y",b=k,x="x",_=T):(w=r,y="x",b=T,x="y",_=k);var M=f[t.index];if(w>=M.span[0]&&w<=M.span[1]){var A=n.extendFlat({},t),S=_.c2p(w,!0),E=o.getKdeValue(M,h,w),C=o.getPositionOnKdePath(M,h,S),L=b._offset,I=b._length;A[y+"0"]=C[0],A[y+"1"]=C[1],A[x+"0"]=A[x+"1"]=S,A[x+"Label"]=x+": "+i.hoverLabelText(_,w)+", "+f[0].t.labels.kde+" "+E.toFixed(3),A.spikeDistance=v[0].spikeDistance;var P=y+"Spike";A[P]=v[0][P],v[0].spikeDistance=void 0,v[0][P]=void 0,A.hovertemplate=!1,m.push(A),(u={stroke:t.color})[y+"1"]=n.constrain(L+C[0],L,L+I),u[y+"2"]=n.constrain(L+C[1],L,L+I),u[x+"1"]=u[x+"2"]=_._offset+S}}d&&(m=m.concat(v))}-1!==p.indexOf("points")&&(c=a.hoverOnPoints(t,e,r));var z=l.selectAll(".violinline-"+h.uid).data(u?[0]:[]);return z.enter().append("line").classed("violinline-"+h.uid,!0).attr("stroke-width",1.5),z.exit().remove(),z.attr(u),"closest"===s?c?[c]:m:c?(m.push(c),m):m}},{"../../lib":778,"../../plots/cartesian/axes":828,"../box/hover":951,"./helpers":1342}],1344:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),layoutAttributes:t("./layout_attributes"),supplyDefaults:t("./defaults"),crossTraceDefaults:t("../box/defaults").crossTraceDefaults,supplyLayoutDefaults:t("./layout_defaults"),calc:t("./calc"),crossTraceCalc:t("./cross_trace_calc"),plot:t("./plot"),style:t("./style"),styleOnSelect:t("../scatter/style").styleOnSelect,hoverPoints:t("./hover"),selectPoints:t("../box/select"),moduleType:"trace",name:"violin",basePlotModule:t("../../plots/cartesian"),categories:["cartesian","svg","symbols","oriented","box-violin","showLegend","violinLayout","zoomScale"],meta:{}}},{"../../plots/cartesian":841,"../box/defaults":949,"../box/select":956,"../scatter/style":1211,"./attributes":1338,"./calc":1339,"./cross_trace_calc":1340,"./defaults":1341,"./hover":1343,"./layout_attributes":1345,"./layout_defaults":1346,"./plot":1347,"./style":1348}],1345:[function(t,e,r){"use strict";var n=t("../box/layout_attributes"),i=t("../../lib").extendFlat;e.exports={violinmode:i({},n.boxmode,{}),violingap:i({},n.boxgap,{}),violingroupgap:i({},n.boxgroupgap,{})}},{"../../lib":778,"../box/layout_attributes":953}],1346:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./layout_attributes"),a=t("../box/layout_defaults");e.exports=function(t,e,r){a._supply(t,e,r,(function(r,a){return n.coerce(t,e,i,r,a)}),"violin")}},{"../../lib":778,"../box/layout_defaults":954,"./layout_attributes":1345}],1347:[function(t,e,r){"use strict";var n=t("d3"),i=t("../../lib"),a=t("../../components/drawing"),o=t("../box/plot"),s=t("../scatter/line_points"),l=t("./helpers");e.exports=function(t,e,r,c){var u=t._fullLayout,f=e.xaxis,h=e.yaxis;function p(t){var e=s(t,{xaxis:f,yaxis:h,connectGaps:!0,baseTolerance:.75,shape:"spline",simplify:!0,linearized:!0});return a.smoothopen(e[0],1)}i.makeTraceGroups(c,r,"trace violins").each((function(t){var r=n.select(this),a=t[0],s=a.t,c=a.trace;if(!0!==c.visible||s.empty)r.remove();else{var d=s.bPos,g=s.bdPos,m=e[s.valLetter+"axis"],v=e[s.posLetter+"axis"],y="both"===c.side,x=y||"positive"===c.side,b=y||"negative"===c.side,_=r.selectAll("path.violin").data(i.identity);_.enter().append("path").style("vector-effect","non-scaling-stroke").attr("class","violin"),_.exit().remove(),_.each((function(t){var e,r,i,a,o,l,f,h,_=n.select(this),w=t.density,T=w.length,k=v.c2l(t.pos+d,!0),M=v.l2p(k);if(c.width)e=s.maxKDE/g;else{var A=u._violinScaleGroupStats[c.scalegroup];e="count"===c.scalemode?A.maxKDE/g*(A.maxCount/t.pts.length):A.maxKDE/g}if(x){for(f=new Array(T),o=0;o")),c.color=function(t,e){var r=t[e.dir].marker,n=r.color,a=r.line.color,o=r.line.width;if(i(n))return n;if(i(a)&&o)return a}(f,d),[c]}function w(t){return n(p,t)}}},{"../../components/color":643,"../../constants/delta.js":747,"../../plots/cartesian/axes":828,"../bar/hover":928}],1360:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),layoutAttributes:t("./layout_attributes"),supplyDefaults:t("./defaults").supplyDefaults,crossTraceDefaults:t("./defaults").crossTraceDefaults,supplyLayoutDefaults:t("./layout_defaults"),calc:t("./calc"),crossTraceCalc:t("./cross_trace_calc"),plot:t("./plot"),style:t("./style").style,hoverPoints:t("./hover"),eventData:t("./event_data"),selectPoints:t("../bar/select"),moduleType:"trace",name:"waterfall",basePlotModule:t("../../plots/cartesian"),categories:["bar-like","cartesian","svg","oriented","showLegend","zoomScale"],meta:{}}},{"../../plots/cartesian":841,"../bar/select":933,"./attributes":1353,"./calc":1354,"./cross_trace_calc":1356,"./defaults":1357,"./event_data":1358,"./hover":1359,"./layout_attributes":1361,"./layout_defaults":1362,"./plot":1363,"./style":1364}],1361:[function(t,e,r){"use strict";e.exports={waterfallmode:{valType:"enumerated",values:["group","overlay"],dflt:"group",editType:"calc"},waterfallgap:{valType:"number",min:0,max:1,editType:"calc"},waterfallgroupgap:{valType:"number",min:0,max:1,dflt:0,editType:"calc"}}},{}],1362:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./layout_attributes");e.exports=function(t,e,r){var a=!1;function o(r,a){return n.coerce(t,e,i,r,a)}for(var s=0;s0&&(m+=h?"M"+f[0]+","+d[1]+"V"+d[0]:"M"+f[1]+","+d[0]+"H"+f[0]),"between"!==p&&(r.isSum||s path").each((function(t){if(!t.isBlank){var e=s[t.dir].marker;n.select(this).call(a.fill,e.color).call(a.stroke,e.line.color).call(i.dashLine,e.line.dash,e.line.width).style("opacity",s.selectedpoints&&!t.selected?o:1)}})),c(r,s,t),r.selectAll(".lines").each((function(){var t=s.connector.line;i.lineGroupStyle(n.select(this).selectAll("path"),t.width,t.color,t.dash)}))}))}}},{"../../components/color":643,"../../components/drawing":665,"../../constants/interactions":752,"../bar/style":935,"../bar/uniform_text":937,d3:169}],1365:[function(t,e,r){"use strict";var n=t("../plots/cartesian/axes"),i=t("../lib"),a=t("../plot_api/plot_schema"),o=t("./helpers").pointsAccessorFunction,s=t("../constants/numerical").BADNUM;r.moduleType="transform",r.name="aggregate";var l=r.attributes={enabled:{valType:"boolean",dflt:!0,editType:"calc"},groups:{valType:"string",strict:!0,noBlank:!0,arrayOk:!0,dflt:"x",editType:"calc"},aggregations:{_isLinkedToArray:"aggregation",target:{valType:"string",editType:"calc"},func:{valType:"enumerated",values:["count","sum","avg","median","mode","rms","stddev","min","max","first","last","change","range"],dflt:"first",editType:"calc"},funcmode:{valType:"enumerated",values:["sample","population"],dflt:"sample",editType:"calc"},enabled:{valType:"boolean",dflt:!0,editType:"calc"},editType:"calc"},editType:"calc"},c=l.aggregations;function u(t,e,r,a){if(a.enabled){for(var o=a.target,l=i.nestedProperty(e,o),c=l.get(),u=function(t,e){var r=t.func,n=e.d2c,a=e.c2d;switch(r){case"count":return f;case"first":return h;case"last":return p;case"sum":return function(t,e){for(var r=0,i=0;ii&&(i=u,o=c)}}return i?a(o):s};case"rms":return function(t,e){for(var r=0,i=0,o=0;o":return function(t){return h(t)>s};case">=":return function(t){return h(t)>=s};case"[]":return function(t){var e=h(t);return e>=s[0]&&e<=s[1]};case"()":return function(t){var e=h(t);return e>s[0]&&e=s[0]&&es[0]&&e<=s[1]};case"][":return function(t){var e=h(t);return e<=s[0]||e>=s[1]};case")(":return function(t){var e=h(t);return es[1]};case"](":return function(t){var e=h(t);return e<=s[0]||e>s[1]};case")[":return function(t){var e=h(t);return e=s[1]};case"{}":return function(t){return-1!==s.indexOf(h(t))};case"}{":return function(t){return-1===s.indexOf(h(t))}}}(r,a.getDataToCoordFunc(t,e,s,i),h),x={},b={},_=0;d?(m=function(t){x[t.astr]=n.extendDeep([],t.get()),t.set(new Array(f))},v=function(t,e){var r=x[t.astr][e];t.get()[e]=r}):(m=function(t){x[t.astr]=n.extendDeep([],t.get()),t.set([])},v=function(t,e){var r=x[t.astr][e];t.get().push(r)}),k(m);for(var w=o(e.transforms,r),T=0;T1?"%{group} (%{trace})":"%{group}");var l=t.styles,c=o.styles=[];if(l)for(a=0;a=r)return i.substr(0,r);for(;r>i.length&&e>1;)1&e&&(i+=t),e>>=1,t+=t;return i=(i+=t).substr(0,r)}},{}],534:[function(t,e,r){(function(t){(function(){e.exports=t.performance&&t.performance.now?function(){return performance.now()}:Date.now||function(){return+new Date}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],535:[function(t,e,r){"use strict";e.exports=function(t){for(var e=t.length,r=t[t.length-1],n=e,i=e-2;i>=0;--i){var a=r,o=t[i];(l=o-((r=a+o)-a))&&(t[--n]=r,r=l)}var s=0;for(i=n;i>1;return["sum(",t(e.slice(0,r)),",",t(e.slice(r)),")"].join("")}(e);var n}function u(t){return new Function("sum","scale","prod","compress",["function robustDeterminant",t,"(m){return compress(",c(l(t)),")};return robustDeterminant",t].join(""))(i,a,n,o)}var f=[function(){return[0]},function(t){return[t[0][0]]}];!function(){for(;f.length<6;)f.push(u(f.length));for(var t=[],r=["function robustDeterminant(m){switch(m.length){"],n=0;n<6;++n)t.push("det"+n),r.push("case ",n,":return det",n,"(m);");r.push("}var det=CACHE[m.length];if(!det)det=CACHE[m.length]=gen(m.length);return det(m);}return robustDeterminant"),t.push("CACHE","gen",r.join(""));var i=Function.apply(void 0,t);for(e.exports=i.apply(void 0,f.concat([f,u])),n=0;n>1;return["sum(",l(t.slice(0,e)),",",l(t.slice(e)),")"].join("")}function c(t,e){if("m"===t.charAt(0)){if("w"===e.charAt(0)){var r=t.split("[");return["w",e.substr(1),"m",r[0].substr(1)].join("")}return["prod(",t,",",e,")"].join("")}return c(e,t)}function u(t){if(2===t.length)return[["diff(",c(t[0][0],t[1][1]),",",c(t[1][0],t[0][1]),")"].join("")];for(var e=[],r=0;r0&&r.push(","),r.push("[");for(var o=0;o0&&r.push(","),o===i?r.push("+b[",a,"]"):r.push("+A[",a,"][",o,"]");r.push("]")}r.push("]),")}r.push("det(A)]}return ",e);var s=new Function("det",r.join(""));return s(t<6?n[t]:n)}var a=[function(){return[0]},function(t,e){return[[e[0]],[t[0][0]]]}];!function(){for(;a.length<6;)a.push(i(a.length));for(var t=[],r=["function dispatchLinearSolve(A,b){switch(A.length){"],n=0;n<6;++n)t.push("s"+n),r.push("case ",n,":return s",n,"(A,b);");r.push("}var s=CACHE[A.length];if(!s)s=CACHE[A.length]=g(A.length);return s(A,b)}return dispatchLinearSolve"),t.push("CACHE","g",r.join(""));var o=Function.apply(void 0,t);for(e.exports=o.apply(void 0,a.concat([a,i])),n=0;n<6;++n)e.exports[n]=a[n]}()},{"robust-determinant":536}],540:[function(t,e,r){"use strict";var n=t("two-product"),i=t("robust-sum"),a=t("robust-scale"),o=t("robust-subtract");function s(t,e){for(var r=new Array(t.length-1),n=1;n>1;return["sum(",l(t.slice(0,e)),",",l(t.slice(e)),")"].join("")}function c(t){if(2===t.length)return[["sum(prod(",t[0][0],",",t[1][1],"),prod(-",t[0][1],",",t[1][0],"))"].join("")];for(var e=[],r=0;r0){if(a<=0)return o;n=i+a}else{if(!(i<0))return o;if(a>=0)return o;n=-(i+a)}var s=33306690738754716e-32*n;return o>=s||o<=-s?o:f(t,e,r)},function(t,e,r,n){var i=t[0]-n[0],a=e[0]-n[0],o=r[0]-n[0],s=t[1]-n[1],l=e[1]-n[1],c=r[1]-n[1],u=t[2]-n[2],f=e[2]-n[2],p=r[2]-n[2],d=a*c,m=o*l,g=o*s,v=i*c,y=i*l,x=a*s,b=u*(d-m)+f*(g-v)+p*(y-x),_=7771561172376103e-31*((Math.abs(d)+Math.abs(m))*Math.abs(u)+(Math.abs(g)+Math.abs(v))*Math.abs(f)+(Math.abs(y)+Math.abs(x))*Math.abs(p));return b>_||-b>_?b:h(t,e,r,n)}];function d(t){var e=p[t.length];return e||(e=p[t.length]=u(t.length)),e.apply(void 0,t)}!function(){for(;p.length<=5;)p.push(u(p.length));for(var t=[],r=["slow"],n=0;n<=5;++n)t.push("a"+n),r.push("o"+n);var i=["function getOrientation(",t.join(),"){switch(arguments.length){case 0:case 1:return 0;"];for(n=2;n<=5;++n)i.push("case ",n,":return o",n,"(",t.slice(0,n).join(),");");i.push("}var s=new Array(arguments.length);for(var i=0;i0&&o>0||a<0&&o<0)return!1;var s=n(r,t,e),l=n(i,t,e);if(s>0&&l>0||s<0&&l<0)return!1;if(0===a&&0===o&&0===s&&0===l)return function(t,e,r,n){for(var i=0;i<2;++i){var a=t[i],o=e[i],s=Math.min(a,o),l=Math.max(a,o),c=r[i],u=n[i],f=Math.min(c,u);if(Math.max(c,u)=n?(i=f,(l+=1)=n?(i=f,(l+=1)0?1:0}},{}],548:[function(t,e,r){"use strict";e.exports=function(t){return i(n(t))};var n=t("boundary-cells"),i=t("reduce-simplicial-complex")},{"boundary-cells":102,"reduce-simplicial-complex":527}],549:[function(t,e,r){"use strict";e.exports=function(t,e,r,s){r=r||0,void 0===s&&(s=function(t){for(var e=t.length,r=0,n=0;n>1,v=E[2*m+1];","if(v===b){return m}","if(b0&&l.push(","),l.push("[");for(var n=0;n0&&l.push(","),l.push("B(C,E,c[",i[0],"],c[",i[1],"])")}l.push("]")}l.push(");")}}for(a=t+1;a>1;--a){a>1,s=a(t[o],e);s<=0?(0===s&&(i=o),r=o+1):s>0&&(n=o-1)}return i}function u(t,e){for(var r=new Array(t.length),i=0,o=r.length;i=t.length||0!==a(t[g],s)););}return r}function f(t,e){if(e<0)return[];for(var r=[],i=(1<>>u&1&&c.push(i[u]);e.push(c)}return s(e)},r.skeleton=f,r.boundary=function(t){for(var e=[],r=0,n=t.length;r>1:(t>>1)-1}function x(t){for(var e=v(t);;){var r=e,n=2*t+1,i=2*(t+1),a=t;if(n0;){var r=y(t);if(r>=0)if(e0){var t=k[0];return g(0,A-1),A-=1,x(0),t}return-1}function w(t,e){var r=k[t];return c[r]===e?t:(c[r]=-1/0,b(t),_(),c[r]=e,b((A+=1)-1))}function T(t){if(!u[t]){u[t]=!0;var e=s[t],r=l[t];s[r]>=0&&(s[r]=e),l[e]>=0&&(l[e]=r),M[e]>=0&&w(M[e],m(e)),M[r]>=0&&w(M[r],m(r))}}var k=[],M=new Array(a);for(f=0;f>1;f>=0;--f)x(f);for(;;){var S=_();if(S<0||c[S]>r)break;T(S)}var E=[];for(f=0;f=0&&r>=0&&e!==r){var n=M[e],i=M[r];n!==i&&C.push([n,i])}})),i.unique(i.normalize(C)),{positions:E,edges:C}};var n=t("robust-orientation"),i=t("simplicial-complex")},{"robust-orientation":540,"simplicial-complex":553}],556:[function(t,e,r){"use strict";e.exports=function(t,e){var r,a,o,s;if(e[0][0]e[1][0]))return i(e,t);r=e[1],a=e[0]}if(t[0][0]t[1][0]))return-i(t,e);o=t[1],s=t[0]}var l=n(r,a,s),c=n(r,a,o);if(l<0){if(c<=0)return l}else if(l>0){if(c>=0)return l}else if(c)return c;if(l=n(s,o,a),c=n(s,o,r),l<0){if(c<=0)return l}else if(l>0){if(c>=0)return l}else if(c)return c;return a[0]-s[0]};var n=t("robust-orientation");function i(t,e){var r,i,a,o;if(e[0][0]e[1][0])){var s=Math.min(t[0][1],t[1][1]),l=Math.max(t[0][1],t[1][1]),c=Math.min(e[0][1],e[1][1]),u=Math.max(e[0][1],e[1][1]);return lu?s-u:l-u}r=e[1],i=e[0]}t[0][1]0)if(e[0]!==o[1][0])r=t,t=t.right;else{if(l=c(t.right,e))return l;t=t.left}else{if(e[0]!==o[1][0])return t;var l;if(l=c(t.right,e))return l;t=t.left}}return r}function u(t,e,r,n){this.y=t,this.index=e,this.start=r,this.closed=n}function f(t,e,r,n){this.x=t,this.segment=e,this.create=r,this.index=n}s.prototype.castUp=function(t){var e=n.le(this.coordinates,t[0]);if(e<0)return-1;this.slabs[e];var r=c(this.slabs[e],t),i=-1;if(r&&(i=r.value),this.coordinates[e]===t[0]){var s=null;if(r&&(s=r.key),e>0){var u=c(this.slabs[e-1],t);u&&(s?o(u.key,s)>0&&(s=u.key,i=u.value):(i=u.value,s=u.key))}var f=this.horizontal[e];if(f.length>0){var h=n.ge(f,t[1],l);if(h=f.length)return i;p=f[h]}}if(p.start)if(s){var d=a(s[0],s[1],[t[0],p.y]);s[0][0]>s[1][0]&&(d=-d),d>0&&(i=p.index)}else i=p.index;else p.y!==t[1]&&(i=p.index)}}}return i}},{"./lib/order-segments":556,"binary-search-bounds":557,"functional-red-black-tree":246,"robust-orientation":540}],559:[function(t,e,r){"use strict";var n=t("robust-dot-product"),i=t("robust-sum");function a(t,e){var r=i(n(t,e),[e[e.length-1]]);return r[r.length-1]}function o(t,e,r,n){var i=-e/(n-e);i<0?i=0:i>1&&(i=1);for(var a=1-i,o=t.length,s=new Array(o),l=0;l0||i>0&&u<0){var f=o(s,u,l,i);r.push(f),n.push(f.slice())}u<0?n.push(l.slice()):u>0?r.push(l.slice()):(r.push(l.slice()),n.push(l.slice())),i=u}return{positive:r,negative:n}},e.exports.positive=function(t,e){for(var r=[],n=a(t[t.length-1],e),i=t[t.length-1],s=t[0],l=0;l0||n>0&&c<0)&&r.push(o(i,c,s,n)),c>=0&&r.push(s.slice()),n=c}return r},e.exports.negative=function(t,e){for(var r=[],n=a(t[t.length-1],e),i=t[t.length-1],s=t[0],l=0;l0||n>0&&c<0)&&r.push(o(i,c,s,n)),c<=0&&r.push(s.slice()),n=c}return r}},{"robust-dot-product":537,"robust-sum":545}],560:[function(t,e,r){!function(){"use strict";var t={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function e(t){return i(o(t),arguments)}function n(t,r){return e.apply(null,[t].concat(r||[]))}function i(r,n){var i,a,o,s,l,c,u,f,h,p=1,d=r.length,m="";for(a=0;a=0),s.type){case"b":i=parseInt(i,10).toString(2);break;case"c":i=String.fromCharCode(parseInt(i,10));break;case"d":case"i":i=parseInt(i,10);break;case"j":i=JSON.stringify(i,null,s.width?parseInt(s.width):0);break;case"e":i=s.precision?parseFloat(i).toExponential(s.precision):parseFloat(i).toExponential();break;case"f":i=s.precision?parseFloat(i).toFixed(s.precision):parseFloat(i);break;case"g":i=s.precision?String(Number(i.toPrecision(s.precision))):parseFloat(i);break;case"o":i=(parseInt(i,10)>>>0).toString(8);break;case"s":i=String(i),i=s.precision?i.substring(0,s.precision):i;break;case"t":i=String(!!i),i=s.precision?i.substring(0,s.precision):i;break;case"T":i=Object.prototype.toString.call(i).slice(8,-1).toLowerCase(),i=s.precision?i.substring(0,s.precision):i;break;case"u":i=parseInt(i,10)>>>0;break;case"v":i=i.valueOf(),i=s.precision?i.substring(0,s.precision):i;break;case"x":i=(parseInt(i,10)>>>0).toString(16);break;case"X":i=(parseInt(i,10)>>>0).toString(16).toUpperCase()}t.json.test(s.type)?m+=i:(!t.number.test(s.type)||f&&!s.sign?h="":(h=f?"+":"-",i=i.toString().replace(t.sign,"")),c=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",u=s.width-(h+i).length,l=s.width&&u>0?c.repeat(u):"",m+=s.align?h+i+l:"0"===c?h+l+i:l+h+i)}return m}var a=Object.create(null);function o(e){if(a[e])return a[e];for(var r,n=e,i=[],o=0;n;){if(null!==(r=t.text.exec(n)))i.push(r[0]);else if(null!==(r=t.modulo.exec(n)))i.push("%");else{if(null===(r=t.placeholder.exec(n)))throw new SyntaxError("[sprintf] unexpected placeholder");if(r[2]){o|=1;var s=[],l=r[2],c=[];if(null===(c=t.key.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(s.push(c[1]);""!==(l=l.substring(c[0].length));)if(null!==(c=t.key_access.exec(l)))s.push(c[1]);else{if(null===(c=t.index_access.exec(l)))throw new SyntaxError("[sprintf] failed to parse named argument key");s.push(c[1])}r[2]=s}else o|=2;if(3===o)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");i.push({placeholder:r[0],param_no:r[1],keys:r[2],sign:r[3],pad_char:r[4],align:r[5],width:r[6],precision:r[7],type:r[8]})}n=n.substring(r[0].length)}return a[e]=i}void 0!==r&&(r.sprintf=e,r.vsprintf=n),"undefined"!=typeof window&&(window.sprintf=e,window.vsprintf=n)}()},{}],561:[function(t,e,r){e.exports=i;var n=t("events").EventEmitter;function i(){n.call(this)}t("inherits")(i,n),i.Readable=t("readable-stream/lib/_stream_readable.js"),i.Writable=t("readable-stream/lib/_stream_writable.js"),i.Duplex=t("readable-stream/lib/_stream_duplex.js"),i.Transform=t("readable-stream/lib/_stream_transform.js"),i.PassThrough=t("readable-stream/lib/_stream_passthrough.js"),i.finished=t("readable-stream/lib/internal/streams/end-of-stream.js"),i.pipeline=t("readable-stream/lib/internal/streams/pipeline.js"),i.Stream=i,i.prototype.pipe=function(t,e){var r=this;function i(e){t.writable&&!1===t.write(e)&&r.pause&&r.pause()}function a(){r.readable&&r.resume&&r.resume()}r.on("data",i),t.on("drain",a),t._isStdio||e&&!1===e.end||(r.on("end",s),r.on("close",l));var o=!1;function s(){o||(o=!0,t.end())}function l(){o||(o=!0,"function"==typeof t.destroy&&t.destroy())}function c(t){if(u(),0===n.listenerCount(this,"error"))throw t}function u(){r.removeListener("data",i),t.removeListener("drain",a),r.removeListener("end",s),r.removeListener("close",l),r.removeListener("error",c),t.removeListener("error",c),r.removeListener("end",u),r.removeListener("close",u),t.removeListener("close",u)}return r.on("error",c),t.on("error",c),r.on("end",u),r.on("close",u),t.on("close",u),t.emit("pipe",r),t}},{events:111,inherits:438,"readable-stream/lib/_stream_duplex.js":563,"readable-stream/lib/_stream_passthrough.js":564,"readable-stream/lib/_stream_readable.js":565,"readable-stream/lib/_stream_transform.js":566,"readable-stream/lib/_stream_writable.js":567,"readable-stream/lib/internal/streams/end-of-stream.js":571,"readable-stream/lib/internal/streams/pipeline.js":573}],562:[function(t,e,r){"use strict";var n={};function i(t,e,r){r||(r=Error);var i=function(t){var r,n;function i(r,n,i){return t.call(this,function(t,r,n){return"string"==typeof e?e:e(t,r,n)}(r,n,i))||this}return n=t,(r=i).prototype=Object.create(n.prototype),r.prototype.constructor=r,r.__proto__=n,i}(r);i.prototype.name=r.name,i.prototype.code=t,n[t]=i}function a(t,e){if(Array.isArray(t)){var r=t.length;return t=t.map((function(t){return String(t)})),r>2?"one of ".concat(e," ").concat(t.slice(0,r-1).join(", "),", or ")+t[r-1]:2===r?"one of ".concat(e," ").concat(t[0]," or ").concat(t[1]):"of ".concat(e," ").concat(t[0])}return"of ".concat(e," ").concat(String(t))}i("ERR_INVALID_OPT_VALUE",(function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'}),TypeError),i("ERR_INVALID_ARG_TYPE",(function(t,e,r){var n,i,o,s;if("string"==typeof e&&(i="not ",e.substr(!o||o<0?0:+o,i.length)===i)?(n="must not be",e=e.replace(/^not /,"")):n="must be",function(t,e,r){return(void 0===r||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}(t," argument"))s="The ".concat(t," ").concat(n," ").concat(a(e,"type"));else{var l=function(t,e,r){return"number"!=typeof r&&(r=0),!(r+e.length>t.length)&&-1!==t.indexOf(e,r)}(t,".")?"property":"argument";s='The "'.concat(t,'" ').concat(l," ").concat(n," ").concat(a(e,"type"))}return s+=". Received type ".concat(typeof r)}),TypeError),i("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),i("ERR_METHOD_NOT_IMPLEMENTED",(function(t){return"The "+t+" method is not implemented"})),i("ERR_STREAM_PREMATURE_CLOSE","Premature close"),i("ERR_STREAM_DESTROYED",(function(t){return"Cannot call "+t+" after a stream was destroyed"})),i("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),i("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),i("ERR_STREAM_WRITE_AFTER_END","write after end"),i("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),i("ERR_UNKNOWN_ENCODING",(function(t){return"Unknown encoding: "+t}),TypeError),i("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.codes=n},{}],563:[function(t,e,r){(function(r){(function(){"use strict";var n=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};e.exports=c;var i=t("./_stream_readable"),a=t("./_stream_writable");t("inherits")(c,i);for(var o=n(a.prototype),s=0;s0)if("string"==typeof e||o.objectMode||Object.getPrototypeOf(e)===s.prototype||(e=function(t){return s.from(t)}(e)),n)o.endEmitted?w(t,new _):S(t,o,e,!0);else if(o.ended)w(t,new x);else{if(o.destroyed)return!1;o.reading=!1,o.decoder&&!r?(e=o.decoder.write(e),o.objectMode||0!==e.length?S(t,o,e,!1):P(t,o)):S(t,o,e,!1)}else n||(o.reading=!1,P(t,o));return!o.ended&&(o.lengthe.highWaterMark&&(e.highWaterMark=function(t){return t>=1073741824?t=1073741824:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function L(t){var e=t._readableState;c("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(c("emitReadable",e.flowing),e.emittedReadable=!0,r.nextTick(C,t))}function C(t){var e=t._readableState;c("emitReadable_",e.destroyed,e.length,e.ended),e.destroyed||!e.length&&!e.ended||(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,R(t)}function P(t,e){e.readingMore||(e.readingMore=!0,r.nextTick(I,t,e))}function I(t,e){for(;!e.reading&&!e.ended&&(e.length0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function z(t){c("readable nexttick read 0"),t.read(0)}function D(t,e){c("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),R(t),e.flowing&&!e.reading&&t.read(0)}function R(t){var e=t._readableState;for(c("flow",e.flowing);e.flowing&&null!==t.read(););}function F(t,e){return 0===e.length?null:(e.objectMode?r=e.buffer.shift():!t||t>=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.first():e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r);var r}function B(t){var e=t._readableState;c("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,r.nextTick(N,e,t))}function N(t,e){if(c("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&0===t.length&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}function j(t,e){for(var r=0,n=t.length;r=e.highWaterMark:e.length>0)||e.ended))return c("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?B(this):L(this),null;if(0===(t=E(t,e))&&e.ended)return 0===e.length&&B(this),null;var n,i=e.needReadable;return c("need readable",i),(0===e.length||e.length-t0?F(t,e):null)?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&B(this)),null!==n&&this.emit("data",n),n},M.prototype._read=function(t){w(this,new b("_read()"))},M.prototype.pipe=function(t,e){var n=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=t;break;case 1:i.pipes=[i.pipes,t];break;default:i.pipes.push(t)}i.pipesCount+=1,c("pipe count=%d opts=%j",i.pipesCount,e);var o=(!e||!1!==e.end)&&t!==r.stdout&&t!==r.stderr?l:g;function s(e,r){c("onunpipe"),e===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,c("cleanup"),t.removeListener("close",d),t.removeListener("finish",m),t.removeListener("drain",u),t.removeListener("error",p),t.removeListener("unpipe",s),n.removeListener("end",l),n.removeListener("end",g),n.removeListener("data",h),f=!0,!i.awaitDrain||t._writableState&&!t._writableState.needDrain||u())}function l(){c("onend"),t.end()}i.endEmitted?r.nextTick(o):n.once("end",o),t.on("unpipe",s);var u=function(t){return function(){var e=t._readableState;c("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&a(t,"data")&&(e.flowing=!0,R(t))}}(n);t.on("drain",u);var f=!1;function h(e){c("ondata");var r=t.write(e);c("dest.write",r),!1===r&&((1===i.pipesCount&&i.pipes===t||i.pipesCount>1&&-1!==j(i.pipes,t))&&!f&&(c("false write response, pause",i.awaitDrain),i.awaitDrain++),n.pause())}function p(e){c("onerror",e),g(),t.removeListener("error",p),0===a(t,"error")&&w(t,e)}function d(){t.removeListener("finish",m),g()}function m(){c("onfinish"),t.removeListener("close",d),g()}function g(){c("unpipe"),n.unpipe(t)}return n.on("data",h),function(t,e,r){if("function"==typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}(t,"error",p),t.once("close",d),t.once("finish",m),t.emit("pipe",n),i.flowing||(c("pipe resume"),n.resume()),t},M.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var n=e.pipes,i=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var a=0;a0,!1!==i.flowing&&this.resume()):"readable"===t&&(i.endEmitted||i.readableListening||(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,c("on readable",i.length,i.reading),i.length?L(this):i.reading||r.nextTick(z,this))),n},M.prototype.addListener=M.prototype.on,M.prototype.removeListener=function(t,e){var n=o.prototype.removeListener.call(this,t,e);return"readable"===t&&r.nextTick(O,this),n},M.prototype.removeAllListeners=function(t){var e=o.prototype.removeAllListeners.apply(this,arguments);return"readable"!==t&&void 0!==t||r.nextTick(O,this),e},M.prototype.resume=function(){var t=this._readableState;return t.flowing||(c("resume"),t.flowing=!t.readableListening,function(t,e){e.resumeScheduled||(e.resumeScheduled=!0,r.nextTick(D,t,e))}(this,t)),t.paused=!1,this},M.prototype.pause=function(){return c("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(c("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},M.prototype.wrap=function(t){var e=this,r=this._readableState,n=!1;for(var i in t.on("end",(function(){if(c("wrapped end"),r.decoder&&!r.ended){var t=r.decoder.end();t&&t.length&&e.push(t)}e.push(null)})),t.on("data",(function(i){(c("wrapped data"),r.decoder&&(i=r.decoder.write(i)),r.objectMode&&null==i)||(r.objectMode||i&&i.length)&&(e.push(i)||(n=!0,t.pause()))})),t)void 0===this[i]&&"function"==typeof t[i]&&(this[i]=function(e){return function(){return t[e].apply(t,arguments)}}(i));for(var a=0;a-1))throw new _(t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(M.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(M.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),M.prototype._write=function(t,e,r){r(new m("_write()"))},M.prototype._writev=null,M.prototype.end=function(t,e,n){var i=this._writableState;return"function"==typeof t?(n=t,t=null,e=null):"function"==typeof e&&(n=e,e=null),null!=t&&this.write(t,e),i.corked&&(i.corked=1,this.uncork()),i.ending||function(t,e,n){e.ending=!0,P(t,e),n&&(e.finished?r.nextTick(n):t.once("finish",n));e.ended=!0,t.writable=!1}(this,i,n),this},Object.defineProperty(M.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(M.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),M.prototype.destroy=f.destroy,M.prototype._undestroy=f.undestroy,M.prototype._destroy=function(t,e){e(t)}}).call(this)}).call(this,t("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../errors":562,"./_stream_duplex":563,"./internal/streams/destroy":570,"./internal/streams/state":574,"./internal/streams/stream":575,_process:520,buffer:112,inherits:438,"util-deprecate":614}],568:[function(t,e,r){(function(r){(function(){"use strict";var n;function i(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var a=t("./end-of-stream"),o=Symbol("lastResolve"),s=Symbol("lastReject"),l=Symbol("error"),c=Symbol("ended"),u=Symbol("lastPromise"),f=Symbol("handlePromise"),h=Symbol("stream");function p(t,e){return{value:t,done:e}}function d(t){var e=t[o];if(null!==e){var r=t[h].read();null!==r&&(t[u]=null,t[o]=null,t[s]=null,e(p(r,!1)))}}function m(t){r.nextTick(d,t)}var g=Object.getPrototypeOf((function(){})),v=Object.setPrototypeOf((i(n={get stream(){return this[h]},next:function(){var t=this,e=this[l];if(null!==e)return Promise.reject(e);if(this[c])return Promise.resolve(p(void 0,!0));if(this[h].destroyed)return new Promise((function(e,n){r.nextTick((function(){t[l]?n(t[l]):e(p(void 0,!0))}))}));var n,i=this[u];if(i)n=new Promise(function(t,e){return function(r,n){t.then((function(){e[c]?r(p(void 0,!0)):e[f](r,n)}),n)}}(i,this));else{var a=this[h].read();if(null!==a)return Promise.resolve(p(a,!1));n=new Promise(this[f])}return this[u]=n,n}},Symbol.asyncIterator,(function(){return this})),i(n,"return",(function(){var t=this;return new Promise((function(e,r){t[h].destroy(null,(function(t){t?r(t):e(p(void 0,!0))}))}))})),n),g);e.exports=function(t){var e,r=Object.create(v,(i(e={},h,{value:t,writable:!0}),i(e,o,{value:null,writable:!0}),i(e,s,{value:null,writable:!0}),i(e,l,{value:null,writable:!0}),i(e,c,{value:t._readableState.endEmitted,writable:!0}),i(e,f,{value:function(t,e){var n=r[h].read();n?(r[u]=null,r[o]=null,r[s]=null,t(p(n,!1))):(r[o]=t,r[s]=e)},writable:!0}),e));return r[u]=null,a(t,(function(t){if(t&&"ERR_STREAM_PREMATURE_CLOSE"!==t.code){var e=r[s];return null!==e&&(r[u]=null,r[o]=null,r[s]=null,e(t)),void(r[l]=t)}var n=r[o];null!==n&&(r[u]=null,r[o]=null,r[s]=null,n(p(void 0,!0))),r[c]=!0})),t.on("readable",m.bind(null,r)),r}}).call(this)}).call(this,t("_process"))},{"./end-of-stream":571,_process:520}],569:[function(t,e,r){"use strict";function n(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function i(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function a(t,e){for(var r=0;r0?this.tail.next=e:this.head=e,this.tail=e,++this.length}},{key:"unshift",value:function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length}},{key:"shift",value:function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(0===this.length)return"";for(var e=this.head,r=""+e.data;e=e.next;)r+=t+e.data;return r}},{key:"concat",value:function(t){if(0===this.length)return o.alloc(0);for(var e,r,n,i=o.allocUnsafe(t>>>0),a=this.head,s=0;a;)e=a.data,r=i,n=s,o.prototype.copy.call(e,r,n),s+=a.data.length,a=a.next;return i}},{key:"consume",value:function(t,e){var r;return ti.length?i.length:t;if(a===i.length?n+=i:n+=i.slice(0,t),0==(t-=a)){a===i.length?(++r,e.next?this.head=e.next:this.head=this.tail=null):(this.head=e,e.data=i.slice(a));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(t){var e=o.allocUnsafe(t),r=this.head,n=1;for(r.data.copy(e),t-=r.data.length;r=r.next;){var i=r.data,a=t>i.length?i.length:t;if(i.copy(e,e.length-t,0,a),0==(t-=a)){a===i.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=i.slice(a));break}++n}return this.length-=n,e}},{key:l,value:function(t,e){return s(this,function(t){for(var e=1;e0,(function(t){n||(n=t),t&&o.forEach(c),a||(o.forEach(c),i(n))}))}));return e.reduce(u)}},{"../../../errors":562,"./end-of-stream":571}],574:[function(t,e,r){"use strict";var n=t("../../../errors").codes.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(t,e,r,i){var a=function(t,e,r){return null!=t.highWaterMark?t.highWaterMark:e?t[r]:null}(e,i,r);if(null!=a){if(!isFinite(a)||Math.floor(a)!==a||a<0)throw new n(i?r:"highWaterMark",a);return Math.floor(a)}return t.objectMode?16:16384}}},{"../../../errors":562}],575:[function(t,e,r){e.exports=t("events").EventEmitter},{events:111}],576:[function(t,e,r){"use strict";var n=t("safe-buffer").Buffer,i=n.isEncoding||function(t){switch((t=""+t)&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function a(t){var e;switch(this.encoding=function(t){var e=function(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}(t);if("string"!=typeof e&&(n.isEncoding===i||!i(t)))throw new Error("Unknown encoding: "+t);return e||t}(t),this.encoding){case"utf16le":this.text=l,this.end=c,e=4;break;case"utf8":this.fillLast=s,e=4;break;case"base64":this.text=u,this.end=f,e=3;break;default:return this.write=h,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=n.allocUnsafe(e)}function o(t){return t<=127?0:t>>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function s(t){var e=this.lastTotal-this.lastNeed,r=function(t,e,r){if(128!=(192&e[0]))return t.lastNeed=0,"\ufffd";if(t.lastNeed>1&&e.length>1){if(128!=(192&e[1]))return t.lastNeed=1,"\ufffd";if(t.lastNeed>2&&e.length>2&&128!=(192&e[2]))return t.lastNeed=2,"\ufffd"}}(this,t);return void 0!==r?r:this.lastNeed<=t.length?(t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(t.copy(this.lastChar,e,0,t.length),void(this.lastNeed-=t.length))}function l(t,e){if((t.length-e)%2==0){var r=t.toString("utf16le",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function c(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function u(t,e){var r=(t.length-e)%3;return 0===r?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function f(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function h(t){return t.toString(this.encoding)}function p(t){return t&&t.length?this.write(t):""}r.StringDecoder=a,a.prototype.write=function(t){if(0===t.length)return"";var e,r;if(this.lastNeed){if(void 0===(e=this.fillLast(t)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r=0)return i>0&&(t.lastNeed=i-1),i;if(--n=0)return i>0&&(t.lastNeed=i-2),i;if(--n=0)return i>0&&(2===i?i=0:t.lastNeed=i-3),i;return 0}(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var n=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,n),t.toString("utf8",e,n)},a.prototype.fillLast=function(t){if(this.lastNeed<=t.length)return t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,this.lastTotal-this.lastNeed,0,t.length),this.lastNeed-=t.length}},{"safe-buffer":546}],577:[function(t,e,r){(function(r,n){(function(){var r=t("assert"),i=t("debug")("stream-parser");e.exports=function(t){var e=t&&"function"==typeof t._transform,r=t&&"function"==typeof t._write;if(!e&&!r)throw new Error("must pass a Writable or Transform stream in");i("extending Parser into stream"),t._bytes=o,t._skipBytes=s,e&&(t._passthrough=l);e?t._transform=u:t._write=c};function a(t){i("initializing parser stream"),t._parserBytesLeft=0,t._parserBuffers=[],t._parserBuffered=0,t._parserState=-1,t._parserCallback=null,"function"==typeof t.push&&(t._parserOutput=t.push.bind(t)),t._parserInit=!0}function o(t,e){r(!this._parserCallback,'there is already a "callback" set!'),r(isFinite(t)&&t>0,'can only buffer a finite number of bytes > 0, got "'+t+'"'),this._parserInit||a(this),i("buffering %o bytes",t),this._parserBytesLeft=t,this._parserCallback=e,this._parserState=0}function s(t,e){r(!this._parserCallback,'there is already a "callback" set!'),r(t>0,'can only skip > 0 bytes, got "'+t+'"'),this._parserInit||a(this),i("skipping %o bytes",t),this._parserBytesLeft=t,this._parserCallback=e,this._parserState=1}function l(t,e){r(!this._parserCallback,'There is already a "callback" set!'),r(t>0,'can only pass through > 0 bytes, got "'+t+'"'),this._parserInit||a(this),i("passing through %o bytes",t),this._parserBytesLeft=t,this._parserCallback=e,this._parserState=2}function c(t,e,r){this._parserInit||a(this),i("write(%o bytes)",t.length),"function"==typeof e&&(r=e),h(this,t,null,r)}function u(t,e,r){this._parserInit||a(this),i("transform(%o bytes)",t.length),"function"!=typeof e&&(e=this._parserOutput),h(this,t,e,r)}function f(t,e,r,a){if(t._parserBytesLeft-=e.length,i("%o bytes left for stream piece",t._parserBytesLeft),0===t._parserState?(t._parserBuffers.push(e),t._parserBuffered+=e.length):2===t._parserState&&r(e),0!==t._parserBytesLeft)return a;var o=t._parserCallback;if(o&&0===t._parserState&&t._parserBuffers.length>1&&(e=n.concat(t._parserBuffers,t._parserBuffered)),0!==t._parserState&&(e=null),t._parserCallback=null,t._parserBuffered=0,t._parserState=-1,t._parserBuffers.splice(0),o){var s=[];e&&s.push(e),r&&s.push(r);var l=o.length>s.length;l&&s.push(p(a));var c=o.apply(t,s);if(!l||a===c)return a}}var h=p((function t(e,r,n,i){return e._parserBytesLeft<=0?i(new Error("got data but not currently parsing anything")):r.length<=e._parserBytesLeft?function(){return f(e,r,n,i)}:function(){var a=r.slice(0,e._parserBytesLeft);return f(e,a,n,(function(o){return o?i(o):r.length>a.length?function(){return t(e,r.slice(a.length),n,i)}:void 0}))}}));function p(t){return function(){for(var e=t.apply(this,arguments);"function"==typeof e;)e=e();return e}}}).call(this)}).call(this,t("_process"),t("buffer").Buffer)},{_process:520,assert:75,buffer:112,debug:578}],578:[function(t,e,r){(function(n){(function(){function i(){var t;try{t=r.storage.debug}catch(t){}return!t&&void 0!==n&&"env"in n&&(t=n.env.DEBUG),t}(r=e.exports=t("./debug")).log=function(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)},r.formatArgs=function(t){var e=this.useColors;if(t[0]=(e?"%c":"")+this.namespace+(e?" %c":" ")+t[0]+(e?"%c ":" ")+"+"+r.humanize(this.diff),!e)return;var n="color: "+this.color;t.splice(1,0,n,"color: inherit");var i=0,a=0;t[0].replace(/%[a-zA-Z%]/g,(function(t){"%%"!==t&&(i++,"%c"===t&&(a=i))})),t.splice(a,0,n)},r.save=function(t){try{null==t?r.storage.removeItem("debug"):r.storage.debug=t}catch(t){}},r.load=i,r.useColors=function(){if("undefined"!=typeof window&&window.process&&"renderer"===window.process.type)return!0;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},r.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(t){}}(),r.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],r.formatters.j=function(t){try{return JSON.stringify(t)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}},r.enable(i())}).call(this)}).call(this,t("_process"))},{"./debug":579,_process:520}],579:[function(t,e,r){var n;function i(t){function e(){if(e.enabled){var t=e,i=+new Date,a=i-(n||i);t.diff=a,t.prev=n,t.curr=i,n=i;for(var o=new Array(arguments.length),s=0;s0)return function(t){if((t=String(t)).length>100)return;var e=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(!e)return;var r=parseFloat(e[1]);switch((e[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*r;case"days":case"day":case"d":return r*o;case"hours":case"hour":case"hrs":case"hr":case"h":return r*a;case"minutes":case"minute":case"mins":case"min":case"m":return r*i;case"seconds":case"second":case"secs":case"sec":case"s":return r*n;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}(t);if("number"===l&&!1===isNaN(t))return e.long?s(r=t,o,"day")||s(r,a,"hour")||s(r,i,"minute")||s(r,n,"second")||r+" ms":function(t){if(t>=o)return Math.round(t/o)+"d";if(t>=a)return Math.round(t/a)+"h";if(t>=i)return Math.round(t/i)+"m";if(t>=n)return Math.round(t/n)+"s";return t+"ms"}(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))}},{}],581:[function(t,e,r){"use strict";var n=t("parenthesis");e.exports=function(t,e,r){if(null==t)throw Error("First argument should be a string");if(null==e)throw Error("Separator should be a string or a RegExp");r?("string"==typeof r||Array.isArray(r))&&(r={ignore:r}):r={},null==r.escape&&(r.escape=!0),null==r.ignore?r.ignore=["[]","()","{}","<>",'""',"''","``","\u201c\u201d","\xab\xbb"]:("string"==typeof r.ignore&&(r.ignore=[r.ignore]),r.ignore=r.ignore.map((function(t){return 1===t.length&&(t+=t),t})));var i=n.parse(t,{flat:!0,brackets:r.ignore}),a=i[0].split(e);if(r.escape){for(var o=[],s=0;s0;){e=c[c.length-1];var p=t[e];if(a[e]=0&&s[e].push(o[m])}a[e]=d}else{if(n[e]===r[e]){var g=[],v=[],y=0;for(d=l.length-1;d>=0;--d){var x=l[d];if(i[x]=!1,g.push(x),v.push(s[x]),y+=s[x].length,o[x]=f.length,x===e){l.length=d;break}}f.push(g);var b=new Array(y);for(d=0;d c)|0 },"),"generic"===e&&a.push("getters:[0],");for(var s=[],l=[],c=0;c>>7){");for(c=0;c<1<<(1<128&&c%128==0){f.length>0&&h.push("}}");var p="vExtra"+f.length;a.push("case ",c>>>7,":",p,"(m&0x7f,",l.join(),");break;"),h=["function ",p,"(m,",l.join(),"){switch(m){"],f.push(h)}h.push("case ",127&c,":");for(var d=new Array(r),m=new Array(r),g=new Array(r),v=new Array(r),y=0,x=0;xx)&&!(c&1<<_)!=!(c&1<0&&(M="+"+g[b]+"*c");var A=d[b].length/y*.5,S=.5+v[b]/y*.5;k.push("d"+b+"-"+S+"-"+A+"*("+d[b].join("+")+M+")/("+m[b].join("+")+")")}h.push("a.push([",k.join(),"]);","break;")}a.push("}},"),f.length>0&&h.push("}}");var E=[];for(c=0;c<1<1&&(i=1),i<-1&&(i=-1),(t*n-e*r<0?-1:1)*Math.acos(i)};r.default=function(t){var e=t.px,r=t.py,l=t.cx,c=t.cy,u=t.rx,f=t.ry,h=t.xAxisRotation,p=void 0===h?0:h,d=t.largeArcFlag,m=void 0===d?0:d,g=t.sweepFlag,v=void 0===g?0:g,y=[];if(0===u||0===f)return[];var x=Math.sin(p*i/360),b=Math.cos(p*i/360),_=b*(e-l)/2+x*(r-c)/2,w=-x*(e-l)/2+b*(r-c)/2;if(0===_&&0===w)return[];u=Math.abs(u),f=Math.abs(f);var T=Math.pow(_,2)/Math.pow(u,2)+Math.pow(w,2)/Math.pow(f,2);T>1&&(u*=Math.sqrt(T),f*=Math.sqrt(T));var k=function(t,e,r,n,a,o,l,c,u,f,h,p){var d=Math.pow(a,2),m=Math.pow(o,2),g=Math.pow(h,2),v=Math.pow(p,2),y=d*m-d*v-m*g;y<0&&(y=0),y/=d*v+m*g;var x=(y=Math.sqrt(y)*(l===c?-1:1))*a/o*p,b=y*-o/a*h,_=f*x-u*b+(t+r)/2,w=u*x+f*b+(e+n)/2,T=(h-x)/a,k=(p-b)/o,M=(-h-x)/a,A=(-p-b)/o,S=s(1,0,T,k),E=s(T,k,M,A);return 0===c&&E>0&&(E-=i),1===c&&E<0&&(E+=i),[_,w,S,E]}(e,r,l,c,u,f,m,v,x,b,_,w),M=n(k,4),A=M[0],S=M[1],E=M[2],L=M[3],C=Math.abs(L)/(i/4);Math.abs(1-C)<1e-7&&(C=1);var P=Math.max(Math.ceil(C),1);L/=P;for(var I=0;Ie[2]&&(e[2]=c[u+0]),c[u+1]>e[3]&&(e[3]=c[u+1]);return e}},{"abs-svg-path":66,assert:75,"is-svg-path":450,"normalize-svg-path":586,"parse-svg-path":485}],586:[function(t,e,r){"use strict";e.exports=function(t){for(var e,r=[],o=0,s=0,l=0,c=0,u=null,f=null,h=0,p=0,d=0,m=t.length;d4?(o=g[g.length-4],s=g[g.length-3]):(o=h,s=p),r.push(g)}return r};var n=t("svg-arc-to-cubic-bezier");function i(t,e,r,n){return["C",t,e,r,n,r,n]}function a(t,e,r,n,i,a){return["C",t/3+2/3*r,e/3+2/3*n,i/3+2/3*r,a/3+2/3*n,i,a]}},{"svg-arc-to-cubic-bezier":584}],587:[function(t,e,r){"use strict";var n,i=t("svg-path-bounds"),a=t("parse-svg-path"),o=t("draw-svg-path"),s=t("is-svg-path"),l=t("bitmap-sdf"),c=document.createElement("canvas"),u=c.getContext("2d");e.exports=function(t,e){if(!s(t))throw Error("Argument should be valid svg path string");e||(e={});var r,f;e.shape?(r=e.shape[0],f=e.shape[1]):(r=c.width=e.w||e.width||200,f=c.height=e.h||e.height||200);var h=Math.min(r,f),p=e.stroke||0,d=e.viewbox||e.viewBox||i(t),m=[r/(d[2]-d[0]),f/(d[3]-d[1])],g=Math.min(m[0]||0,m[1]||0)/2;u.fillStyle="black",u.fillRect(0,0,r,f),u.fillStyle="white",p&&("number"!=typeof p&&(p=1),u.strokeStyle=p>0?"white":"black",u.lineWidth=Math.abs(p));if(u.translate(.5*r,.5*f),u.scale(g,g),function(){if(null!=n)return n;var t=document.createElement("canvas").getContext("2d");if(t.canvas.width=t.canvas.height=1,!window.Path2D)return n=!1;var e=new Path2D("M0,0h1v1h-1v-1Z");t.fillStyle="black",t.fill(e);var r=t.getImageData(0,0,1,1);return n=r&&r.data&&255===r.data[3]}()){var v=new Path2D(t);u.fill(v),p&&u.stroke(v)}else{var y=a(t);o(u,y),u.fill(),p&&u.stroke()}return u.setTransform(1,0,0,1,0,0),l(u,{cutoff:null!=e.cutoff?e.cutoff:.5,radius:null!=e.radius?e.radius:.5*h})}},{"bitmap-sdf":100,"draw-svg-path":174,"is-svg-path":450,"parse-svg-path":485,"svg-path-bounds":585}],588:[function(t,e,r){(function(r){(function(){"use strict";e.exports=function t(e,r,i){i=i||{};var o=a[e];o||(o=a[e]={" ":{data:new Float32Array(0),shape:.2}});var s=o[r];if(!s)if(r.length<=1||!/\d/.test(r))s=o[r]=function(t){for(var e=t.cells,r=t.positions,n=new Float32Array(6*e.length),i=0,a=0,o=0;o0&&(f+=.02);var p=new Float32Array(u),d=0,m=-.5*f;for(h=0;h=0&&(t._idleTimeoutId=setTimeout((function(){t._onTimeout&&t._onTimeout()}),e))},r.setImmediate="function"==typeof e?e:function(t){var e=l++,n=!(arguments.length<2)&&o.call(arguments,1);return s[e]=!0,i((function(){s[e]&&(n?t.apply(null,n):t.call(null),r.clearImmediate(e))})),e},r.clearImmediate="function"==typeof n?n:function(t){delete s[t]}}).call(this)}).call(this,t("timers").setImmediate,t("timers").clearImmediate)},{"process/browser.js":520,timers:589}],590:[function(t,e,r){!function(t){var r=/^\s+/,n=/\s+$/,i=0,a=t.round,o=t.min,s=t.max,l=t.random;function c(e,l){if(l=l||{},(e=e||"")instanceof c)return e;if(!(this instanceof c))return new c(e,l);var u=function(e){var i={r:0,g:0,b:0},a=1,l=null,c=null,u=null,f=!1,h=!1;"string"==typeof e&&(e=function(t){t=t.replace(r,"").replace(n,"").toLowerCase();var e,i=!1;if(S[t])t=S[t],i=!0;else if("transparent"==t)return{r:0,g:0,b:0,a:0,format:"name"};if(e=j.rgb.exec(t))return{r:e[1],g:e[2],b:e[3]};if(e=j.rgba.exec(t))return{r:e[1],g:e[2],b:e[3],a:e[4]};if(e=j.hsl.exec(t))return{h:e[1],s:e[2],l:e[3]};if(e=j.hsla.exec(t))return{h:e[1],s:e[2],l:e[3],a:e[4]};if(e=j.hsv.exec(t))return{h:e[1],s:e[2],v:e[3]};if(e=j.hsva.exec(t))return{h:e[1],s:e[2],v:e[3],a:e[4]};if(e=j.hex8.exec(t))return{r:I(e[1]),g:I(e[2]),b:I(e[3]),a:R(e[4]),format:i?"name":"hex8"};if(e=j.hex6.exec(t))return{r:I(e[1]),g:I(e[2]),b:I(e[3]),format:i?"name":"hex"};if(e=j.hex4.exec(t))return{r:I(e[1]+""+e[1]),g:I(e[2]+""+e[2]),b:I(e[3]+""+e[3]),a:R(e[4]+""+e[4]),format:i?"name":"hex8"};if(e=j.hex3.exec(t))return{r:I(e[1]+""+e[1]),g:I(e[2]+""+e[2]),b:I(e[3]+""+e[3]),format:i?"name":"hex"};return!1}(e));"object"==typeof e&&(U(e.r)&&U(e.g)&&U(e.b)?(p=e.r,d=e.g,m=e.b,i={r:255*C(p,255),g:255*C(d,255),b:255*C(m,255)},f=!0,h="%"===String(e.r).substr(-1)?"prgb":"rgb"):U(e.h)&&U(e.s)&&U(e.v)?(l=z(e.s),c=z(e.v),i=function(e,r,n){e=6*C(e,360),r=C(r,100),n=C(n,100);var i=t.floor(e),a=e-i,o=n*(1-r),s=n*(1-a*r),l=n*(1-(1-a)*r),c=i%6;return{r:255*[n,s,o,o,l,n][c],g:255*[l,n,n,s,o,o][c],b:255*[o,o,l,n,n,s][c]}}(e.h,l,c),f=!0,h="hsv"):U(e.h)&&U(e.s)&&U(e.l)&&(l=z(e.s),u=z(e.l),i=function(t,e,r){var n,i,a;function o(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}if(t=C(t,360),e=C(e,100),r=C(r,100),0===e)n=i=a=r;else{var s=r<.5?r*(1+e):r+e-r*e,l=2*r-s;n=o(l,s,t+1/3),i=o(l,s,t),a=o(l,s,t-1/3)}return{r:255*n,g:255*i,b:255*a}}(e.h,l,u),f=!0,h="hsl"),e.hasOwnProperty("a")&&(a=e.a));var p,d,m;return a=L(a),{ok:f,format:e.format||h,r:o(255,s(i.r,0)),g:o(255,s(i.g,0)),b:o(255,s(i.b,0)),a:a}}(e);this._originalInput=e,this._r=u.r,this._g=u.g,this._b=u.b,this._a=u.a,this._roundA=a(100*this._a)/100,this._format=l.format||u.format,this._gradientType=l.gradientType,this._r<1&&(this._r=a(this._r)),this._g<1&&(this._g=a(this._g)),this._b<1&&(this._b=a(this._b)),this._ok=u.ok,this._tc_id=i++}function u(t,e,r){t=C(t,255),e=C(e,255),r=C(r,255);var n,i,a=s(t,e,r),l=o(t,e,r),c=(a+l)/2;if(a==l)n=i=0;else{var u=a-l;switch(i=c>.5?u/(2-a-l):u/(a+l),a){case t:n=(e-r)/u+(e>1)+720)%360;--e;)n.h=(n.h+i)%360,a.push(c(n));return a}function A(t,e){e=e||6;for(var r=c(t).toHsv(),n=r.h,i=r.s,a=r.v,o=[],s=1/e;e--;)o.push(c({h:n,s:i,v:a})),a=(a+s)%1;return o}c.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},getLuminance:function(){var e,r,n,i=this.toRgb();return e=i.r/255,r=i.g/255,n=i.b/255,.2126*(e<=.03928?e/12.92:t.pow((e+.055)/1.055,2.4))+.7152*(r<=.03928?r/12.92:t.pow((r+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:t.pow((n+.055)/1.055,2.4))},setAlpha:function(t){return this._a=L(t),this._roundA=a(100*this._a)/100,this},toHsv:function(){var t=f(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=f(this._r,this._g,this._b),e=a(360*t.h),r=a(100*t.s),n=a(100*t.v);return 1==this._a?"hsv("+e+", "+r+"%, "+n+"%)":"hsva("+e+", "+r+"%, "+n+"%, "+this._roundA+")"},toHsl:function(){var t=u(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=u(this._r,this._g,this._b),e=a(360*t.h),r=a(100*t.s),n=a(100*t.l);return 1==this._a?"hsl("+e+", "+r+"%, "+n+"%)":"hsla("+e+", "+r+"%, "+n+"%, "+this._roundA+")"},toHex:function(t){return h(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(t){return function(t,e,r,n,i){var o=[O(a(t).toString(16)),O(a(e).toString(16)),O(a(r).toString(16)),O(D(n))];if(i&&o[0].charAt(0)==o[0].charAt(1)&&o[1].charAt(0)==o[1].charAt(1)&&o[2].charAt(0)==o[2].charAt(1)&&o[3].charAt(0)==o[3].charAt(1))return o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0)+o[3].charAt(0);return o.join("")}(this._r,this._g,this._b,this._a,t)},toHex8String:function(t){return"#"+this.toHex8(t)},toRgb:function(){return{r:a(this._r),g:a(this._g),b:a(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+a(this._r)+", "+a(this._g)+", "+a(this._b)+")":"rgba("+a(this._r)+", "+a(this._g)+", "+a(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:a(100*C(this._r,255))+"%",g:a(100*C(this._g,255))+"%",b:a(100*C(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+a(100*C(this._r,255))+"%, "+a(100*C(this._g,255))+"%, "+a(100*C(this._b,255))+"%)":"rgba("+a(100*C(this._r,255))+"%, "+a(100*C(this._g,255))+"%, "+a(100*C(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(E[h(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var e="#"+p(this._r,this._g,this._b,this._a),r=e,n=this._gradientType?"GradientType = 1, ":"";if(t){var i=c(t);r="#"+p(i._r,i._g,i._b,i._a)}return"progid:DXImageTransform.Microsoft.gradient("+n+"startColorstr="+e+",endColorstr="+r+")"},toString:function(t){var e=!!t;t=t||this._format;var r=!1,n=this._a<1&&this._a>=0;return e||!n||"hex"!==t&&"hex6"!==t&&"hex3"!==t&&"hex4"!==t&&"hex8"!==t&&"name"!==t?("rgb"===t&&(r=this.toRgbString()),"prgb"===t&&(r=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(r=this.toHexString()),"hex3"===t&&(r=this.toHexString(!0)),"hex4"===t&&(r=this.toHex8String(!0)),"hex8"===t&&(r=this.toHex8String()),"name"===t&&(r=this.toName()),"hsl"===t&&(r=this.toHslString()),"hsv"===t&&(r=this.toHsvString()),r||this.toHexString()):"name"===t&&0===this._a?this.toName():this.toRgbString()},clone:function(){return c(this.toString())},_applyModification:function(t,e){var r=t.apply(null,[this].concat([].slice.call(e)));return this._r=r._r,this._g=r._g,this._b=r._b,this.setAlpha(r._a),this},lighten:function(){return this._applyModification(v,arguments)},brighten:function(){return this._applyModification(y,arguments)},darken:function(){return this._applyModification(x,arguments)},desaturate:function(){return this._applyModification(d,arguments)},saturate:function(){return this._applyModification(m,arguments)},greyscale:function(){return this._applyModification(g,arguments)},spin:function(){return this._applyModification(b,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(M,arguments)},complement:function(){return this._applyCombination(_,arguments)},monochromatic:function(){return this._applyCombination(A,arguments)},splitcomplement:function(){return this._applyCombination(k,arguments)},triad:function(){return this._applyCombination(w,arguments)},tetrad:function(){return this._applyCombination(T,arguments)}},c.fromRatio=function(t,e){if("object"==typeof t){var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]="a"===n?t[n]:z(t[n]));t=r}return c(t,e)},c.equals=function(t,e){return!(!t||!e)&&c(t).toRgbString()==c(e).toRgbString()},c.random=function(){return c.fromRatio({r:l(),g:l(),b:l()})},c.mix=function(t,e,r){r=0===r?0:r||50;var n=c(t).toRgb(),i=c(e).toRgb(),a=r/100;return c({r:(i.r-n.r)*a+n.r,g:(i.g-n.g)*a+n.g,b:(i.b-n.b)*a+n.b,a:(i.a-n.a)*a+n.a})},c.readability=function(e,r){var n=c(e),i=c(r);return(t.max(n.getLuminance(),i.getLuminance())+.05)/(t.min(n.getLuminance(),i.getLuminance())+.05)},c.isReadable=function(t,e,r){var n,i,a=c.readability(t,e);switch(i=!1,(n=function(t){var e,r;e=((t=t||{level:"AA",size:"small"}).level||"AA").toUpperCase(),r=(t.size||"small").toLowerCase(),"AA"!==e&&"AAA"!==e&&(e="AA");"small"!==r&&"large"!==r&&(r="small");return{level:e,size:r}}(r)).level+n.size){case"AAsmall":case"AAAlarge":i=a>=4.5;break;case"AAlarge":i=a>=3;break;case"AAAsmall":i=a>=7}return i},c.mostReadable=function(t,e,r){var n,i,a,o,s=null,l=0;i=(r=r||{}).includeFallbackColors,a=r.level,o=r.size;for(var u=0;ul&&(l=n,s=c(e[u]));return c.isReadable(t,s,{level:a,size:o})||!i?s:(r.includeFallbackColors=!1,c.mostReadable(t,["#fff","#000"],r))};var S=c.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},E=c.hexNames=function(t){var e={};for(var r in t)t.hasOwnProperty(r)&&(e[t[r]]=r);return e}(S);function L(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function C(e,r){(function(t){return"string"==typeof t&&-1!=t.indexOf(".")&&1===parseFloat(t)})(e)&&(e="100%");var n=function(t){return"string"==typeof t&&-1!=t.indexOf("%")}(e);return e=o(r,s(0,parseFloat(e))),n&&(e=parseInt(e*r,10)/100),t.abs(e-r)<1e-6?1:e%r/parseFloat(r)}function P(t){return o(1,s(0,t))}function I(t){return parseInt(t,16)}function O(t){return 1==t.length?"0"+t:""+t}function z(t){return t<=1&&(t=100*t+"%"),t}function D(e){return t.round(255*parseFloat(e)).toString(16)}function R(t){return I(t)/255}var F,B,N,j=(B="[\\s|\\(]+("+(F="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+F+")[,|\\s]+("+F+")\\s*\\)?",N="[\\s|\\(]+("+F+")[,|\\s]+("+F+")[,|\\s]+("+F+")[,|\\s]+("+F+")\\s*\\)?",{CSS_UNIT:new RegExp(F),rgb:new RegExp("rgb"+B),rgba:new RegExp("rgba"+N),hsl:new RegExp("hsl"+B),hsla:new RegExp("hsla"+N),hsv:new RegExp("hsv"+B),hsva:new RegExp("hsva"+N),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function U(t){return!!j.CSS_UNIT.exec(t)}void 0!==e&&e.exports?e.exports=c:window.tinycolor=c}(Math)},{}],591:[function(t,e,r){"use strict";e.exports=i,e.exports.float32=e.exports.float=i,e.exports.fract32=e.exports.fract=function(t){if(t.length){for(var e=i(t),r=0,n=e.length;ro&&(o=t[0]),t[1]s&&(s=t[1])}function c(t){switch(t.type){case"GeometryCollection":t.geometries.forEach(c);break;case"Point":l(t.coordinates);break;case"MultiPoint":t.coordinates.forEach(l)}}for(e in t.arcs.forEach((function(t){for(var e,r=-1,l=t.length;++ro&&(o=e[0]),e[1]s&&(s=e[1])})),t.objects)c(t.objects[e]);return[i,a,o,s]}function i(t,e){var r=e.id,n=e.bbox,i=null==e.properties?{}:e.properties,o=a(t,e);return null==r&&null==n?{type:"Feature",properties:i,geometry:o}:null==n?{type:"Feature",id:r,properties:i,geometry:o}:{type:"Feature",id:r,bbox:n,properties:i,geometry:o}}function a(t,e){var n=r(t.transform),i=t.arcs;function a(t,e){e.length&&e.pop();for(var r=i[t<0?~t:t],a=0,o=r.length;a1)n=l(t,e,r);else for(i=0,n=new Array(a=t.arcs.length);i1)for(var a,s,c=1,u=l(i[0]);cu&&(s=i[0],i[0]=i[c],i[c]=s,u=a);return i})).filter((function(t){return t.length>0}))}}function u(t,e){for(var r=0,n=t.length;r>>1;t[i]=2))throw new Error("n must be \u22652");var r,i=(l=t.bbox||n(t))[0],a=l[1],o=l[2],s=l[3];e={scale:[o-i?(o-i)/(r-1):1,s-a?(s-a)/(r-1):1],translate:[i,a]}}var l,c,u=f(e),h=t.objects,p={};function d(t){return u(t)}function m(t){var e;switch(t.type){case"GeometryCollection":e={type:"GeometryCollection",geometries:t.geometries.map(m)};break;case"Point":e={type:"Point",coordinates:d(t.coordinates)};break;case"MultiPoint":e={type:"MultiPoint",coordinates:t.coordinates.map(d)};break;default:return t}return null!=t.id&&(e.id=t.id),null!=t.bbox&&(e.bbox=t.bbox),null!=t.properties&&(e.properties=t.properties),e}for(c in h)p[c]=m(h[c]);return{type:"Topology",bbox:l,transform:e,objects:p,arcs:t.arcs.map((function(t){var e,r=0,n=1,i=t.length,a=new Array(i);for(a[0]=u(t[0],0);++rMath.max(r,n)?i[2]=1:r>Math.max(e,n)?i[0]=1:i[1]=1;for(var a=0,o=0,l=0;l<3;++l)a+=t[l]*t[l],o+=i[l]*t[l];for(l=0;l<3;++l)i[l]-=o/a*t[l];return s(i,i),i}function h(t,e,r,i,a,o,s,l){this.center=n(r),this.up=n(i),this.right=n(a),this.radius=n([o]),this.angle=n([s,l]),this.angle.bounds=[[-1/0,-Math.PI/2],[1/0,Math.PI/2]],this.setDistanceLimits(t,e),this.computedCenter=this.center.curve(0),this.computedUp=this.up.curve(0),this.computedRight=this.right.curve(0),this.computedRadius=this.radius.curve(0),this.computedAngle=this.angle.curve(0),this.computedToward=[0,0,0],this.computedEye=[0,0,0],this.computedMatrix=new Array(16);for(var c=0;c<16;++c)this.computedMatrix[c]=.5;this.recalcMatrix(0)}var p=h.prototype;p.setDistanceLimits=function(t,e){t=t>0?Math.log(t):-1/0,e=e>0?Math.log(e):1/0,e=Math.max(e,t),this.radius.bounds[0][0]=t,this.radius.bounds[1][0]=e},p.getDistanceLimits=function(t){var e=this.radius.bounds[0];return t?(t[0]=Math.exp(e[0][0]),t[1]=Math.exp(e[1][0]),t):[Math.exp(e[0][0]),Math.exp(e[1][0])]},p.recalcMatrix=function(t){this.center.curve(t),this.up.curve(t),this.right.curve(t),this.radius.curve(t),this.angle.curve(t);for(var e=this.computedUp,r=this.computedRight,n=0,i=0,a=0;a<3;++a)i+=e[a]*r[a],n+=e[a]*e[a];var l=Math.sqrt(n),u=0;for(a=0;a<3;++a)r[a]-=e[a]*i/n,u+=r[a]*r[a],e[a]/=l;var f=Math.sqrt(u);for(a=0;a<3;++a)r[a]/=f;var h=this.computedToward;o(h,e,r),s(h,h);var p=Math.exp(this.computedRadius[0]),d=this.computedAngle[0],m=this.computedAngle[1],g=Math.cos(d),v=Math.sin(d),y=Math.cos(m),x=Math.sin(m),b=this.computedCenter,_=g*y,w=v*y,T=x,k=-g*x,M=-v*x,A=y,S=this.computedEye,E=this.computedMatrix;for(a=0;a<3;++a){var L=_*r[a]+w*h[a]+T*e[a];E[4*a+1]=k*r[a]+M*h[a]+A*e[a],E[4*a+2]=L,E[4*a+3]=0}var C=E[1],P=E[5],I=E[9],O=E[2],z=E[6],D=E[10],R=P*D-I*z,F=I*O-C*D,B=C*z-P*O,N=c(R,F,B);R/=N,F/=N,B/=N,E[0]=R,E[4]=F,E[8]=B;for(a=0;a<3;++a)S[a]=b[a]+E[2+4*a]*p;for(a=0;a<3;++a){u=0;for(var j=0;j<3;++j)u+=E[a+4*j]*S[j];E[12+a]=-u}E[15]=1},p.getMatrix=function(t,e){this.recalcMatrix(t);var r=this.computedMatrix;if(e){for(var n=0;n<16;++n)e[n]=r[n];return e}return r};var d=[0,0,0];p.rotate=function(t,e,r,n){if(this.angle.move(t,e,r),n){this.recalcMatrix(t);var i=this.computedMatrix;d[0]=i[2],d[1]=i[6],d[2]=i[10];for(var o=this.computedUp,s=this.computedRight,l=this.computedToward,c=0;c<3;++c)i[4*c]=o[c],i[4*c+1]=s[c],i[4*c+2]=l[c];a(i,i,n,d);for(c=0;c<3;++c)o[c]=i[4*c],s[c]=i[4*c+1];this.up.set(t,o[0],o[1],o[2]),this.right.set(t,s[0],s[1],s[2])}},p.pan=function(t,e,r,n){e=e||0,r=r||0,n=n||0,this.recalcMatrix(t);var i=this.computedMatrix,a=(Math.exp(this.computedRadius[0]),i[1]),o=i[5],s=i[9],l=c(a,o,s);a/=l,o/=l,s/=l;var u=i[0],f=i[4],h=i[8],p=u*a+f*o+h*s,d=c(u-=a*p,f-=o*p,h-=s*p),m=(u/=d)*e+a*r,g=(f/=d)*e+o*r,v=(h/=d)*e+s*r;this.center.move(t,m,g,v);var y=Math.exp(this.computedRadius[0]);y=Math.max(1e-4,y+n),this.radius.set(t,Math.log(y))},p.translate=function(t,e,r,n){this.center.move(t,e||0,r||0,n||0)},p.setMatrix=function(t,e,r,n){var a=1;"number"==typeof r&&(a=0|r),(a<0||a>3)&&(a=1);var o=(a+2)%3;e||(this.recalcMatrix(t),e=this.computedMatrix);var s=e[a],l=e[a+4],f=e[a+8];if(n){var h=Math.abs(s),p=Math.abs(l),d=Math.abs(f),m=Math.max(h,p,d);h===m?(s=s<0?-1:1,l=f=0):d===m?(f=f<0?-1:1,s=l=0):(l=l<0?-1:1,s=f=0)}else{var g=c(s,l,f);s/=g,l/=g,f/=g}var v,y,x=e[o],b=e[o+4],_=e[o+8],w=x*s+b*l+_*f,T=c(x-=s*w,b-=l*w,_-=f*w),k=l*(_/=T)-f*(b/=T),M=f*(x/=T)-s*_,A=s*b-l*x,S=c(k,M,A);if(k/=S,M/=S,A/=S,this.center.jump(t,H,G,Y),this.radius.idle(t),this.up.jump(t,s,l,f),this.right.jump(t,x,b,_),2===a){var E=e[1],L=e[5],C=e[9],P=E*x+L*b+C*_,I=E*k+L*M+C*A;v=R<0?-Math.PI/2:Math.PI/2,y=Math.atan2(I,P)}else{var O=e[2],z=e[6],D=e[10],R=O*s+z*l+D*f,F=O*x+z*b+D*_,B=O*k+z*M+D*A;v=Math.asin(u(R)),y=Math.atan2(B,F)}this.angle.jump(t,y,v),this.recalcMatrix(t);var N=e[2],j=e[6],U=e[10],V=this.computedMatrix;i(V,e);var q=V[15],H=V[12]/q,G=V[13]/q,Y=V[14]/q,W=Math.exp(this.computedRadius[0]);this.center.jump(t,H-N*W,G-j*W,Y-U*W)},p.lastT=function(){return Math.max(this.center.lastT(),this.up.lastT(),this.right.lastT(),this.radius.lastT(),this.angle.lastT())},p.idle=function(t){this.center.idle(t),this.up.idle(t),this.right.idle(t),this.radius.idle(t),this.angle.idle(t)},p.flush=function(t){this.center.flush(t),this.up.flush(t),this.right.flush(t),this.radius.flush(t),this.angle.flush(t)},p.setDistance=function(t,e){e>0&&this.radius.set(t,Math.log(e))},p.lookAt=function(t,e,r,n){this.recalcMatrix(t),e=e||this.computedEye,r=r||this.computedCenter;var i=(n=n||this.computedUp)[0],a=n[1],o=n[2],s=c(i,a,o);if(!(s<1e-6)){i/=s,a/=s,o/=s;var l=e[0]-r[0],f=e[1]-r[1],h=e[2]-r[2],p=c(l,f,h);if(!(p<1e-6)){l/=p,f/=p,h/=p;var d=this.computedRight,m=d[0],g=d[1],v=d[2],y=i*m+a*g+o*v,x=c(m-=y*i,g-=y*a,v-=y*o);if(!(x<.01&&(x=c(m=a*h-o*f,g=o*l-i*h,v=i*f-a*l))<1e-6)){m/=x,g/=x,v/=x,this.up.set(t,i,a,o),this.right.set(t,m,g,v),this.center.set(t,r[0],r[1],r[2]),this.radius.set(t,Math.log(p));var b=a*v-o*g,_=o*m-i*v,w=i*g-a*m,T=c(b,_,w),k=i*l+a*f+o*h,M=m*l+g*f+v*h,A=(b/=T)*l+(_/=T)*f+(w/=T)*h,S=Math.asin(u(k)),E=Math.atan2(A,M),L=this.angle._state,C=L[L.length-1],P=L[L.length-2];C%=2*Math.PI;var I=Math.abs(C+2*Math.PI-E),O=Math.abs(C-E),z=Math.abs(C-2*Math.PI-E);I":(e.length>100&&(e=e.slice(0,99)+"\u2026"),e=e.replace(i,(function(t){switch(t){case"\n":return"\\n";case"\r":return"\\r";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";default:throw new Error("Unexpected character")}})))}},{"./safe-to-string":600}],602:[function(t,e,r){"use strict";var n=t("../value/is"),i={object:!0,function:!0,undefined:!0};e.exports=function(t){return!!n(t)&&hasOwnProperty.call(i,typeof t)}},{"../value/is":608}],603:[function(t,e,r){"use strict";var n=t("../lib/resolve-exception"),i=t("./is");e.exports=function(t){return i(t)?t:n(t,"%v is not a plain function",arguments[1])}},{"../lib/resolve-exception":599,"./is":604}],604:[function(t,e,r){"use strict";var n=t("../function/is"),i=/^\s*class[\s{/}]/,a=Function.prototype.toString;e.exports=function(t){return!!n(t)&&!i.test(a.call(t))}},{"../function/is":598}],605:[function(t,e,r){"use strict";var n=t("../object/is");e.exports=function(t){if(!n(t))return!1;try{return!!t.constructor&&t.constructor.prototype===t}catch(t){return!1}}},{"../object/is":602}],606:[function(t,e,r){"use strict";var n=t("../value/is"),i=t("../object/is"),a=Object.prototype.toString;e.exports=function(t){if(!n(t))return null;if(i(t)){var e=t.toString;if("function"!=typeof e)return null;if(e===a)return null}try{return""+t}catch(t){return null}}},{"../object/is":602,"../value/is":608}],607:[function(t,e,r){"use strict";var n=t("../lib/resolve-exception"),i=t("./is");e.exports=function(t){return i(t)?t:n(t,"Cannot use %v",arguments[1])}},{"../lib/resolve-exception":599,"./is":608}],608:[function(t,e,r){"use strict";e.exports=function(t){return null!=t}},{}],609:[function(t,e,r){(function(e){(function(){"use strict";var n=t("bit-twiddle"),i=t("dup"),a=t("buffer").Buffer;e.__TYPEDARRAY_POOL||(e.__TYPEDARRAY_POOL={UINT8:i([32,0]),UINT16:i([32,0]),UINT32:i([32,0]),BIGUINT64:i([32,0]),INT8:i([32,0]),INT16:i([32,0]),INT32:i([32,0]),BIGINT64:i([32,0]),FLOAT:i([32,0]),DOUBLE:i([32,0]),DATA:i([32,0]),UINT8C:i([32,0]),BUFFER:i([32,0])});var o="undefined"!=typeof Uint8ClampedArray,s="undefined"!=typeof BigUint64Array,l="undefined"!=typeof BigInt64Array,c=e.__TYPEDARRAY_POOL;c.UINT8C||(c.UINT8C=i([32,0])),c.BIGUINT64||(c.BIGUINT64=i([32,0])),c.BIGINT64||(c.BIGINT64=i([32,0])),c.BUFFER||(c.BUFFER=i([32,0]));var u=c.DATA,f=c.BUFFER;function h(t){if(t){var e=t.length||t.byteLength,r=n.log2(e);u[r].push(t)}}function p(t){t=n.nextPow2(t);var e=n.log2(t),r=u[e];return r.length>0?r.pop():new ArrayBuffer(t)}function d(t){return new Uint8Array(p(t),0,t)}function m(t){return new Uint16Array(p(2*t),0,t)}function g(t){return new Uint32Array(p(4*t),0,t)}function v(t){return new Int8Array(p(t),0,t)}function y(t){return new Int16Array(p(2*t),0,t)}function x(t){return new Int32Array(p(4*t),0,t)}function b(t){return new Float32Array(p(4*t),0,t)}function _(t){return new Float64Array(p(8*t),0,t)}function w(t){return o?new Uint8ClampedArray(p(t),0,t):d(t)}function T(t){return s?new BigUint64Array(p(8*t),0,t):null}function k(t){return l?new BigInt64Array(p(8*t),0,t):null}function M(t){return new DataView(p(t),0,t)}function A(t){t=n.nextPow2(t);var e=n.log2(t),r=f[e];return r.length>0?r.pop():new a(t)}r.free=function(t){if(a.isBuffer(t))f[n.log2(t.length)].push(t);else{if("[object ArrayBuffer]"!==Object.prototype.toString.call(t)&&(t=t.buffer),!t)return;var e=t.length||t.byteLength,r=0|n.log2(e);u[r].push(t)}},r.freeUint8=r.freeUint16=r.freeUint32=r.freeBigUint64=r.freeInt8=r.freeInt16=r.freeInt32=r.freeBigInt64=r.freeFloat32=r.freeFloat=r.freeFloat64=r.freeDouble=r.freeUint8Clamped=r.freeDataView=function(t){h(t.buffer)},r.freeArrayBuffer=h,r.freeBuffer=function(t){f[n.log2(t.length)].push(t)},r.malloc=function(t,e){if(void 0===e||"arraybuffer"===e)return p(t);switch(e){case"uint8":return d(t);case"uint16":return m(t);case"uint32":return g(t);case"int8":return v(t);case"int16":return y(t);case"int32":return x(t);case"float":case"float32":return b(t);case"double":case"float64":return _(t);case"uint8_clamped":return w(t);case"bigint64":return k(t);case"biguint64":return T(t);case"buffer":return A(t);case"data":case"dataview":return M(t);default:return null}return null},r.mallocArrayBuffer=p,r.mallocUint8=d,r.mallocUint16=m,r.mallocUint32=g,r.mallocInt8=v,r.mallocInt16=y,r.mallocInt32=x,r.mallocFloat32=r.mallocFloat=b,r.mallocFloat64=r.mallocDouble=_,r.mallocUint8Clamped=w,r.mallocBigUint64=T,r.mallocBigInt64=k,r.mallocDataView=M,r.mallocBuffer=A,r.clearCache=function(){for(var t=0;t<32;++t)c.UINT8[t].length=0,c.UINT16[t].length=0,c.UINT32[t].length=0,c.INT8[t].length=0,c.INT16[t].length=0,c.INT32[t].length=0,c.FLOAT[t].length=0,c.DOUBLE[t].length=0,c.BIGUINT64[t].length=0,c.BIGINT64[t].length=0,c.UINT8C[t].length=0,u[t].length=0,f[t].length=0}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"bit-twiddle":99,buffer:112,dup:176}],610:[function(t,e,r){"use strict";function n(t){this.roots=new Array(t),this.ranks=new Array(t);for(var e=0;e0&&(a=n.size),n.lineSpacing&&n.lineSpacing>0&&(o=n.lineSpacing),n.styletags&&n.styletags.breaklines&&(s.breaklines=!!n.styletags.breaklines),n.styletags&&n.styletags.bolds&&(s.bolds=!!n.styletags.bolds),n.styletags&&n.styletags.italics&&(s.italics=!!n.styletags.italics),n.styletags&&n.styletags.subscripts&&(s.subscripts=!!n.styletags.subscripts),n.styletags&&n.styletags.superscripts&&(s.superscripts=!!n.styletags.superscripts));return r.font=[n.fontStyle,n.fontVariant,n.fontWeight,a+"px",n.font].filter((function(t){return t})).join(" "),r.textAlign="start",r.textBaseline="alphabetic",r.direction="ltr",h(function(t,e,r,n,a,o){r=r.replace(/\n/g,""),r=!0===o.breaklines?r.replace(/\/g,"\n"):r.replace(/\/g," ");var s="",l=[];for(p=0;p-1?parseInt(t[1+i]):0,l=a>-1?parseInt(r[1+a]):0;s!==l&&(n=n.replace(S(),"?px "),g*=Math.pow(.75,l-s),n=n.replace("?px ",S())),m+=.25*x*(l-s)}if(!0===o.superscripts){var c=t.indexOf("+"),u=r.indexOf("+"),f=c>-1?parseInt(t[1+c]):0,h=u>-1?parseInt(r[1+u]):0;f!==h&&(n=n.replace(S(),"?px "),g*=Math.pow(.75,h-f),n=n.replace("?px ",S())),m-=.25*x*(h-f)}if(!0===o.bolds){var p=t.indexOf("b|")>-1,d=r.indexOf("b|")>-1;!p&&d&&(n=v?n.replace("italic ","italic bold "):"bold "+n),p&&!d&&(n=n.replace("bold ",""))}if(!0===o.italics){var v=t.indexOf("i|")>-1,y=r.indexOf("i|")>-1;!v&&y&&(n="italic "+n),v&&!y&&(n=n.replace("italic ",""))}e.font=n}for(h=0;h",a="",o=i.length,s=a.length,l="+"===e[0]||"-"===e[0],c=0,u=-s;c>-1&&-1!==(c=r.indexOf(i,c))&&-1!==(u=r.indexOf(a,c+o))&&!(u<=c);){for(var f=c;f=u)n[f]=null,r=r.substr(0,f)+" "+r.substr(f+1);else if(null!==n[f]){var h=n[f].indexOf(e[0]);-1===h?n[f]+=e:l&&(n[f]=n[f].substr(0,h+1)+(1+parseInt(n[f][h+1]))+n[f].substr(h+2))}var p=c+o,d=r.substr(p,u-p).indexOf(i);c=-1!==d?d:u+s}return n}function u(t,e){var r=n(t,128);return e?a(r.cells,r.positions,.25):{edges:r.cells,positions:r.positions}}function f(t,e,r,n){var i=u(t,n),a=function(t,e,r){for(var n=e.textAlign||"start",i=e.textBaseline||"alphabetic",a=[1<<30,1<<30],o=[0,0],s=t.length,l=0;l=0?e[a]:i}))},has___:{value:y((function(e){var n=v(e);return n?r in n:t.indexOf(e)>=0}))},set___:{value:y((function(n,i){var a,o=v(n);return o?o[r]=i:(a=t.indexOf(n))>=0?e[a]=i:(a=t.length,e[a]=i,t[a]=n),this}))},delete___:{value:y((function(n){var i,a,o=v(n);return o?r in o&&delete o[r]:!((i=t.indexOf(n))<0)&&(a=t.length-1,t[i]=void 0,e[i]=e[a],t[i]=t[a],t.length=a,e.length=a,!0)}))}})};d.prototype=Object.create(Object.prototype,{get:{value:function(t,e){return this.get___(t,e)},writable:!0,configurable:!0},has:{value:function(t){return this.has___(t)},writable:!0,configurable:!0},set:{value:function(t,e){return this.set___(t,e)},writable:!0,configurable:!0},delete:{value:function(t){return this.delete___(t)},writable:!0,configurable:!0}}),"function"==typeof r?function(){function n(){this instanceof d||x();var e,n=new r,i=void 0,a=!1;return e=t?function(t,e){return n.set(t,e),n.has(t)||(i||(i=new d),i.set(t,e)),this}:function(t,e){if(a)try{n.set(t,e)}catch(r){i||(i=new d),i.set___(t,e)}else n.set(t,e);return this},Object.create(d.prototype,{get___:{value:y((function(t,e){return i?n.has(t)?n.get(t):i.get___(t,e):n.get(t,e)}))},has___:{value:y((function(t){return n.has(t)||!!i&&i.has___(t)}))},set___:{value:y(e)},delete___:{value:y((function(t){var e=!!n.delete(t);return i&&i.delete___(t)||e}))},permitHostObjects___:{value:y((function(t){if(t!==m)throw new Error("bogus call to permitHostObjects___");a=!0}))}})}t&&"undefined"!=typeof Proxy&&(Proxy=void 0),n.prototype=d.prototype,e.exports=n,Object.defineProperty(WeakMap.prototype,"constructor",{value:WeakMap,enumerable:!1,configurable:!0,writable:!0})}():("undefined"!=typeof Proxy&&(Proxy=void 0),e.exports=d)}function m(t){t.permitHostObjects___&&t.permitHostObjects___(m)}function g(t){return!("weakmap:"==t.substr(0,"weakmap:".length)&&"___"===t.substr(t.length-3))}function v(t){if(t!==Object(t))throw new TypeError("Not an object: "+t);var e=t[l];if(e&&e.key===t)return e;if(s(t)){e={key:t};try{return o(t,l,{value:e,writable:!1,enumerable:!1,configurable:!1}),e}catch(t){return}}}function y(t){return t.prototype=null,Object.freeze(t)}function x(){h||"undefined"==typeof console||(h=!0,console.warn("WeakMap should be invoked as new WeakMap(), not WeakMap(). This will be an error in the future."))}}()},{}],618:[function(t,e,r){var n=t("./hidden-store.js");e.exports=function(){var t={};return function(e){if(("object"!=typeof e||null===e)&&"function"!=typeof e)throw new Error("Weakmap-shim: Key must be object");var r=e.valueOf(t);return r&&r.identity===t?r:n(e,t)}}},{"./hidden-store.js":619}],619:[function(t,e,r){e.exports=function(t,e){var r={identity:e},n=t.valueOf;return Object.defineProperty(t,"valueOf",{value:function(t){return t!==e?n.apply(this,arguments):r},writable:!0}),r}},{}],620:[function(t,e,r){var n=t("./create-store.js");e.exports=function(){var t=n();return{get:function(e,r){var n=t(e);return n.hasOwnProperty("value")?n.value:r},set:function(e,r){return t(e).value=r,this},has:function(e){return"value"in t(e)},delete:function(e){return delete t(e).value}}}},{"./create-store.js":618}],621:[function(t,e,r){var n=t("get-canvas-context");e.exports=function(t){return n("webgl",t)}},{"get-canvas-context":248}],622:[function(t,e,r){var n=t("../main"),i=t("object-assign"),a=n.instance();function o(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}o.prototype=new n.baseCalendar,i(o.prototype,{name:"Chinese",jdEpoch:1721425.5,hasYearZero:!1,minMonth:0,firstMonth:0,minDay:1,regionalOptions:{"":{name:"Chinese",epochs:["BEC","EC"],monthNumbers:function(t,e){if("string"==typeof t){var r=t.match(l);return r?r[0]:""}var n=this._validateYear(t),i=t.month(),a=""+this.toChineseMonth(n,i);return e&&a.length<2&&(a="0"+a),this.isIntercalaryMonth(n,i)&&(a+="i"),a},monthNames:function(t){if("string"==typeof t){var e=t.match(c);return e?e[0]:""}var r=this._validateYear(t),n=t.month(),i=["\u4e00\u6708","\u4e8c\u6708","\u4e09\u6708","\u56db\u6708","\u4e94\u6708","\u516d\u6708","\u4e03\u6708","\u516b\u6708","\u4e5d\u6708","\u5341\u6708","\u5341\u4e00\u6708","\u5341\u4e8c\u6708"][this.toChineseMonth(r,n)-1];return this.isIntercalaryMonth(r,n)&&(i="\u95f0"+i),i},monthNamesShort:function(t){if("string"==typeof t){var e=t.match(u);return e?e[0]:""}var r=this._validateYear(t),n=t.month(),i=["\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d","\u4e03","\u516b","\u4e5d","\u5341","\u5341\u4e00","\u5341\u4e8c"][this.toChineseMonth(r,n)-1];return this.isIntercalaryMonth(r,n)&&(i="\u95f0"+i),i},parseMonth:function(t,e){t=this._validateYear(t);var r,n=parseInt(e);if(isNaN(n))"\u95f0"===e[0]&&(r=!0,e=e.substring(1)),"\u6708"===e[e.length-1]&&(e=e.substring(0,e.length-1)),n=1+["\u4e00","\u4e8c","\u4e09","\u56db","\u4e94","\u516d","\u4e03","\u516b","\u4e5d","\u5341","\u5341\u4e00","\u5341\u4e8c"].indexOf(e);else{var i=e[e.length-1];r="i"===i||"I"===i}return this.toMonthIndex(t,n,r)},dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:1,isRTL:!1}},_validateYear:function(t,e){if(t.year&&(t=t.year()),"number"!=typeof t||t<1888||t>2111)throw e.replace(/\{0\}/,this.local.name);return t},toMonthIndex:function(t,e,r){var i=this.intercalaryMonth(t);if(r&&e!==i||e<1||e>12)throw n.local.invalidMonth.replace(/\{0\}/,this.local.name);return i?!r&&e<=i?e-1:e:e-1},toChineseMonth:function(t,e){t.year&&(e=(t=t.year()).month());var r=this.intercalaryMonth(t);if(e<0||e>(r?12:11))throw n.local.invalidMonth.replace(/\{0\}/,this.local.name);return r?e>13},isIntercalaryMonth:function(t,e){t.year&&(e=(t=t.year()).month());var r=this.intercalaryMonth(t);return!!r&&r===e},leapYear:function(t){return 0!==this.intercalaryMonth(t)},weekOfYear:function(t,e,r){var i,o=this._validateYear(t,n.local.invalidyear),s=h[o-h[0]],l=s>>9&4095,c=s>>5&15,u=31&s;(i=a.newDate(l,c,u)).add(4-(i.dayOfWeek()||7),"d");var f=this.toJD(t,e,r)-i.toJD();return 1+Math.floor(f/7)},monthsInYear:function(t){return this.leapYear(t)?13:12},daysInMonth:function(t,e){t.year&&(e=t.month(),t=t.year()),t=this._validateYear(t);var r=f[t-f[0]];if(e>(r>>13?12:11))throw n.local.invalidMonth.replace(/\{0\}/,this.local.name);return r&1<<12-e?30:29},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,s,r,n.local.invalidDate);t=this._validateYear(i.year()),e=i.month(),r=i.day();var o=this.isIntercalaryMonth(t,e),s=this.toChineseMonth(t,e),l=function(t,e,r,n,i){var a,o,s;if("object"==typeof t)o=t,a=e||{};else{var l;if(!("number"==typeof t&&t>=1888&&t<=2111))throw new Error("Lunar year outside range 1888-2111");if(!("number"==typeof e&&e>=1&&e<=12))throw new Error("Lunar month outside range 1 - 12");if(!("number"==typeof r&&r>=1&&r<=30))throw new Error("Lunar day outside range 1 - 30");"object"==typeof n?(l=!1,a=n):(l=!!n,a=i||{}),o={year:t,month:e,day:r,isIntercalary:l}}s=o.day-1;var c,u=f[o.year-f[0]],p=u>>13;c=p&&(o.month>p||o.isIntercalary)?o.month:o.month-1;for(var d=0;d>9&4095,(m>>5&15)-1,(31&m)+s);return a.year=g.getFullYear(),a.month=1+g.getMonth(),a.day=g.getDate(),a}(t,s,r,o);return a.toJD(l.year,l.month,l.day)},fromJD:function(t){var e=a.fromJD(t),r=function(t,e,r,n){var i,a;if("object"==typeof t)i=t,a=e||{};else{if(!("number"==typeof t&&t>=1888&&t<=2111))throw new Error("Solar year outside range 1888-2111");if(!("number"==typeof e&&e>=1&&e<=12))throw new Error("Solar month outside range 1 - 12");if(!("number"==typeof r&&r>=1&&r<=31))throw new Error("Solar day outside range 1 - 31");i={year:t,month:e,day:r},a=n||{}}var o=h[i.year-h[0]],s=i.year<<9|i.month<<5|i.day;a.year=s>=o?i.year:i.year-1,o=h[a.year-h[0]];var l,c=new Date(o>>9&4095,(o>>5&15)-1,31&o),u=new Date(i.year,i.month-1,i.day);l=Math.round((u-c)/864e5);var p,d=f[a.year-f[0]];for(p=0;p<13;p++){var m=d&1<<12-p?30:29;if(l>13;!g||p=2&&n<=6},extraInfo:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return{century:o[Math.floor((i.year()-1)/100)+1]||""}},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=i.year()+(i.year()<0?1:0),e=i.month(),(r=i.day())+(e>1?16:0)+(e>2?32*(e-2):0)+400*(t-1)+this.jdEpoch-1},fromJD:function(t){t=Math.floor(t+.5)-Math.floor(this.jdEpoch)-1;var e=Math.floor(t/400)+1;t-=400*(e-1),t+=t>15?16:0;var r=Math.floor(t/32)+1,n=t-32*(r-1)+1;return this.newDate(e<=0?e-1:e,r,n)}});var o={20:"Fruitbat",21:"Anchovy"};n.calendars.discworld=a},{"../main":636,"object-assign":479}],625:[function(t,e,r){var n=t("../main"),i=t("object-assign");function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Ethiopian",jdEpoch:1724220.5,daysPerMonth:[30,30,30,30,30,30,30,30,30,30,30,30,5],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Ethiopian",epochs:["BEE","EE"],monthNames:["Meskerem","Tikemet","Hidar","Tahesas","Tir","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehase","Pagume"],monthNamesShort:["Mes","Tik","Hid","Tah","Tir","Yek","Meg","Mia","Gen","Sen","Ham","Neh","Pag"],dayNames:["Ehud","Segno","Maksegno","Irob","Hamus","Arb","Kidame"],dayNamesShort:["Ehu","Seg","Mak","Iro","Ham","Arb","Kid"],dayNamesMin:["Eh","Se","Ma","Ir","Ha","Ar","Ki"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return(t=e.year()+(e.year()<0?1:0))%4==3||t%4==-1},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear||n.regionalOptions[""].invalidYear),13},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(13===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return(t=i.year())<0&&t++,i.day()+30*(i.month()-1)+365*(t-1)+Math.floor(t/4)+this.jdEpoch-1},fromJD:function(t){var e=Math.floor(t)+.5-this.jdEpoch,r=Math.floor((e-Math.floor((e+366)/1461))/365)+1;r<=0&&r--,e=Math.floor(t)+.5-this.newDate(r,1,1).toJD();var n=Math.floor(e/30)+1,i=e-30*(n-1)+1;return this.newDate(r,n,i)}}),n.calendars.ethiopian=a},{"../main":636,"object-assign":479}],626:[function(t,e,r){var n=t("../main"),i=t("object-assign");function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}function o(t,e){return t-e*Math.floor(t/e)}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Hebrew",jdEpoch:347995.5,daysPerMonth:[30,29,30,29,30,29,30,29,30,29,30,29,29],hasYearZero:!1,minMonth:1,firstMonth:7,minDay:1,regionalOptions:{"":{name:"Hebrew",epochs:["BAM","AM"],monthNames:["Nisan","Iyar","Sivan","Tammuz","Av","Elul","Tishrei","Cheshvan","Kislev","Tevet","Shevat","Adar","Adar II"],monthNamesShort:["Nis","Iya","Siv","Tam","Av","Elu","Tis","Che","Kis","Tev","She","Ada","Ad2"],dayNames:["Yom Rishon","Yom Sheni","Yom Shlishi","Yom Revi'i","Yom Chamishi","Yom Shishi","Yom Shabbat"],dayNamesShort:["Ris","She","Shl","Rev","Cha","Shi","Sha"],dayNamesMin:["Ri","She","Shl","Re","Ch","Shi","Sha"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return this._leapYear(e.year())},_leapYear:function(t){return o(7*(t=t<0?t+1:t)+1,19)<7},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),this._leapYear(t.year?t.year():t)?13:12},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){return t=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year(),this.toJD(-1===t?1:t+1,7,1)-this.toJD(t,7,1)},daysInMonth:function(t,e){return t.year&&(e=t.month(),t=t.year()),this._validate(t,e,this.minDay,n.local.invalidMonth),12===e&&this.leapYear(t)||8===e&&5===o(this.daysInYear(t),10)?30:9===e&&3===o(this.daysInYear(t),10)?29:this.daysPerMonth[e-1]},weekDay:function(t,e,r){return 6!==this.dayOfWeek(t,e,r)},extraInfo:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return{yearType:(this.leapYear(i)?"embolismic":"common")+" "+["deficient","regular","complete"][this.daysInYear(i)%10-3]}},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=i.year(),e=i.month(),r=i.day();var a=t<=0?t+1:t,o=this.jdEpoch+this._delay1(a)+this._delay2(a)+r+1;if(e<7){for(var s=7;s<=this.monthsInYear(t);s++)o+=this.daysInMonth(t,s);for(s=1;s=this.toJD(-1===e?1:e+1,7,1);)e++;for(var r=tthis.toJD(e,r,this.daysInMonth(e,r));)r++;var n=t-this.toJD(e,r,1)+1;return this.newDate(e,r,n)}}),n.calendars.hebrew=a},{"../main":636,"object-assign":479}],627:[function(t,e,r){var n=t("../main"),i=t("object-assign");function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Islamic",jdEpoch:1948439.5,daysPerMonth:[30,29,30,29,30,29,30,29,30,29,30,29],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Islamic",epochs:["BH","AH"],monthNames:["Muharram","Safar","Rabi' al-awwal","Rabi' al-thani","Jumada al-awwal","Jumada al-thani","Rajab","Sha'aban","Ramadan","Shawwal","Dhu al-Qi'dah","Dhu al-Hijjah"],monthNamesShort:["Muh","Saf","Rab1","Rab2","Jum1","Jum2","Raj","Sha'","Ram","Shaw","DhuQ","DhuH"],dayNames:["Yawm al-ahad","Yawm al-ithnayn","Yawm ath-thulaathaa'","Yawm al-arbi'aa'","Yawm al-kham\u012bs","Yawm al-jum'a","Yawm as-sabt"],dayNamesShort:["Aha","Ith","Thu","Arb","Kha","Jum","Sab"],dayNamesMin:["Ah","It","Th","Ar","Kh","Ju","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:6,isRTL:!1}},leapYear:function(t){return(11*this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year()+14)%30<11},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){return this.leapYear(t)?355:354},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=i.year(),e=i.month(),t=t<=0?t+1:t,(r=i.day())+Math.ceil(29.5*(e-1))+354*(t-1)+Math.floor((3+11*t)/30)+this.jdEpoch-1},fromJD:function(t){t=Math.floor(t)+.5;var e=Math.floor((30*(t-this.jdEpoch)+10646)/10631);e=e<=0?e-1:e;var r=Math.min(12,Math.ceil((t-29-this.toJD(e,1,1))/29.5)+1),n=t-this.toJD(e,r,1)+1;return this.newDate(e,r,n)}}),n.calendars.islamic=a},{"../main":636,"object-assign":479}],628:[function(t,e,r){var n=t("../main"),i=t("object-assign");function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Julian",jdEpoch:1721423.5,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Julian",epochs:["BC","AD"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"mm/dd/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return(t=e.year()<0?e.year()+1:e.year())%4==0},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(4-(n.dayOfWeek()||7),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return t=i.year(),e=i.month(),r=i.day(),t<0&&t++,e<=2&&(t--,e+=12),Math.floor(365.25*(t+4716))+Math.floor(30.6001*(e+1))+r-1524.5},fromJD:function(t){var e=Math.floor(t+.5)+1524,r=Math.floor((e-122.1)/365.25),n=Math.floor(365.25*r),i=Math.floor((e-n)/30.6001),a=i-Math.floor(i<14?1:13),o=r-Math.floor(a>2?4716:4715),s=e-n-Math.floor(30.6001*i);return o<=0&&o--,this.newDate(o,a,s)}}),n.calendars.julian=a},{"../main":636,"object-assign":479}],629:[function(t,e,r){var n=t("../main"),i=t("object-assign");function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}function o(t,e){return t-e*Math.floor(t/e)}function s(t,e){return o(t-1,e)+1}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Mayan",jdEpoch:584282.5,hasYearZero:!0,minMonth:0,firstMonth:0,minDay:0,regionalOptions:{"":{name:"Mayan",epochs:["",""],monthNames:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17"],monthNamesShort:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17"],dayNames:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],dayNamesShort:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],dayNamesMin:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],digits:null,dateFormat:"YYYY.m.d",firstDay:0,isRTL:!1,haabMonths:["Pop","Uo","Zip","Zotz","Tzec","Xul","Yaxkin","Mol","Chen","Yax","Zac","Ceh","Mac","Kankin","Muan","Pax","Kayab","Cumku","Uayeb"],tzolkinMonths:["Imix","Ik","Akbal","Kan","Chicchan","Cimi","Manik","Lamat","Muluc","Oc","Chuen","Eb","Ben","Ix","Men","Cib","Caban","Etznab","Cauac","Ahau"]}},leapYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),!1},formatYear:function(t){t=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year();var e=Math.floor(t/400);return t%=400,t+=t<0?400:0,e+"."+Math.floor(t/20)+"."+t%20},forYear:function(t){if((t=t.split(".")).length<3)throw"Invalid Mayan year";for(var e=0,r=0;r19||r>0&&n<0)throw"Invalid Mayan year";e=20*e+n}return e},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),18},weekOfYear:function(t,e,r){return this._validate(t,e,r,n.local.invalidDate),0},daysInYear:function(t){return this._validate(t,this.minMonth,this.minDay,n.local.invalidYear),360},daysInMonth:function(t,e){return this._validate(t,e,this.minDay,n.local.invalidMonth),20},daysInWeek:function(){return 5},dayOfWeek:function(t,e,r){return this._validate(t,e,r,n.local.invalidDate).day()},weekDay:function(t,e,r){return this._validate(t,e,r,n.local.invalidDate),!0},extraInfo:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate).toJD(),a=this._toHaab(i),o=this._toTzolkin(i);return{haabMonthName:this.local.haabMonths[a[0]-1],haabMonth:a[0],haabDay:a[1],tzolkinDayName:this.local.tzolkinMonths[o[0]-1],tzolkinDay:o[0],tzolkinTrecena:o[1]}},_toHaab:function(t){var e=o((t-=this.jdEpoch)+8+340,365);return[Math.floor(e/20)+1,o(e,20)]},_toTzolkin:function(t){return[s((t-=this.jdEpoch)+20,20),s(t+4,13)]},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);return i.day()+20*i.month()+360*i.year()+this.jdEpoch},fromJD:function(t){t=Math.floor(t)+.5-this.jdEpoch;var e=Math.floor(t/360);t%=360,t+=t<0?360:0;var r=Math.floor(t/20),n=t%20;return this.newDate(e,r,n)}}),n.calendars.mayan=a},{"../main":636,"object-assign":479}],630:[function(t,e,r){var n=t("../main"),i=t("object-assign");function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar;var o=n.instance("gregorian");i(a.prototype,{name:"Nanakshahi",jdEpoch:2257673.5,daysPerMonth:[31,31,31,31,31,30,30,30,30,30,30,30],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Nanakshahi",epochs:["BN","AN"],monthNames:["Chet","Vaisakh","Jeth","Harh","Sawan","Bhadon","Assu","Katak","Maghar","Poh","Magh","Phagun"],monthNamesShort:["Che","Vai","Jet","Har","Saw","Bha","Ass","Kat","Mgr","Poh","Mgh","Pha"],dayNames:["Somvaar","Mangalvar","Budhvaar","Veervaar","Shukarvaar","Sanicharvaar","Etvaar"],dayNamesShort:["Som","Mangal","Budh","Veer","Shukar","Sanichar","Et"],dayNamesMin:["So","Ma","Bu","Ve","Sh","Sa","Et"],digits:null,dateFormat:"dd-mm-yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear||n.regionalOptions[""].invalidYear);return o.leapYear(e.year()+(e.year()<1?1:0)+1469)},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(1-(n.dayOfWeek()||7),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidMonth);(t=i.year())<0&&t++;for(var a=i.day(),s=1;s=this.toJD(e+1,1,1);)e++;for(var r=t-Math.floor(this.toJD(e,1,1)+.5)+1,n=1;r>this.daysInMonth(e,n);)r-=this.daysInMonth(e,n),n++;return this.newDate(e,n,r)}}),n.calendars.nanakshahi=a},{"../main":636,"object-assign":479}],631:[function(t,e,r){var n=t("../main"),i=t("object-assign");function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"Nepali",jdEpoch:1700709.5,daysPerMonth:[31,31,32,32,31,30,30,29,30,29,30,30],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,daysPerYear:365,regionalOptions:{"":{name:"Nepali",epochs:["BBS","ABS"],monthNames:["Baisakh","Jestha","Ashadh","Shrawan","Bhadra","Ashwin","Kartik","Mangsir","Paush","Mangh","Falgun","Chaitra"],monthNamesShort:["Bai","Je","As","Shra","Bha","Ash","Kar","Mang","Pau","Ma","Fal","Chai"],dayNames:["Aaitabaar","Sombaar","Manglbaar","Budhabaar","Bihibaar","Shukrabaar","Shanibaar"],dayNamesShort:["Aaita","Som","Mangl","Budha","Bihi","Shukra","Shani"],dayNamesMin:["Aai","So","Man","Bu","Bi","Shu","Sha"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:1,isRTL:!1}},leapYear:function(t){return this.daysInYear(t)!==this.daysPerYear},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){if(t=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear).year(),void 0===this.NEPALI_CALENDAR_DATA[t])return this.daysPerYear;for(var e=0,r=this.minMonth;r<=12;r++)e+=this.NEPALI_CALENDAR_DATA[t][r];return e},daysInMonth:function(t,e){return t.year&&(e=t.month(),t=t.year()),this._validate(t,e,this.minDay,n.local.invalidMonth),void 0===this.NEPALI_CALENDAR_DATA[t]?this.daysPerMonth[e-1]:this.NEPALI_CALENDAR_DATA[t][e]},weekDay:function(t,e,r){return 6!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=i.year(),e=i.month(),r=i.day();var a=n.instance(),o=0,s=e,l=t;this._createMissingCalendarData(t);var c=t-(s>9||9===s&&r>=this.NEPALI_CALENDAR_DATA[l][0]?56:57);for(9!==e&&(o=r,s--);9!==s;)s<=0&&(s=12,l--),o+=this.NEPALI_CALENDAR_DATA[l][s],s--;return 9===e?(o+=r-this.NEPALI_CALENDAR_DATA[l][0])<0&&(o+=a.daysInYear(c)):o+=this.NEPALI_CALENDAR_DATA[l][9]-this.NEPALI_CALENDAR_DATA[l][0],a.newDate(c,1,1).add(o,"d").toJD()},fromJD:function(t){var e=n.instance().fromJD(t),r=e.year(),i=e.dayOfYear(),a=r+56;this._createMissingCalendarData(a);for(var o=9,s=this.NEPALI_CALENDAR_DATA[a][0],l=this.NEPALI_CALENDAR_DATA[a][o]-s+1;i>l;)++o>12&&(o=1,a++),l+=this.NEPALI_CALENDAR_DATA[a][o];var c=this.NEPALI_CALENDAR_DATA[a][o]-(l-i);return this.newDate(a,o,c)},_createMissingCalendarData:function(t){var e=this.daysPerMonth.slice(0);e.unshift(17);for(var r=t-1;r0?474:473))%2820+474+38)%2816<682},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-(n.dayOfWeek()+1)%7,"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(12===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=i.year(),e=i.month(),r=i.day();var a=t-(t>=0?474:473),s=474+o(a,2820);return r+(e<=7?31*(e-1):30*(e-1)+6)+Math.floor((682*s-110)/2816)+365*(s-1)+1029983*Math.floor(a/2820)+this.jdEpoch-1},fromJD:function(t){var e=(t=Math.floor(t)+.5)-this.toJD(475,1,1),r=Math.floor(e/1029983),n=o(e,1029983),i=2820;if(1029982!==n){var a=Math.floor(n/366),s=o(n,366);i=Math.floor((2134*a+2816*s+2815)/1028522)+a+1}var l=i+2820*r+474;l=l<=0?l-1:l;var c=t-this.toJD(l,1,1)+1,u=c<=186?Math.ceil(c/31):Math.ceil((c-6)/30),f=t-this.toJD(l,u,1)+1;return this.newDate(l,u,f)}}),n.calendars.persian=a,n.calendars.jalali=a},{"../main":636,"object-assign":479}],633:[function(t,e,r){var n=t("../main"),i=t("object-assign"),a=n.instance();function o(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}o.prototype=new n.baseCalendar,i(o.prototype,{name:"Taiwan",jdEpoch:2419402.5,yearsOffset:1911,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Taiwan",epochs:["BROC","ROC"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:1,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);t=this._t2gYear(e.year());return a.leapYear(t)},weekOfYear:function(t,e,r){var i=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);t=this._t2gYear(i.year());return a.weekOfYear(t,i.month(),i.day())},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=this._t2gYear(i.year());return a.toJD(t,i.month(),i.day())},fromJD:function(t){var e=a.fromJD(t),r=this._g2tYear(e.year());return this.newDate(r,e.month(),e.day())},_t2gYear:function(t){return t+this.yearsOffset+(t>=-this.yearsOffset&&t<=-1?1:0)},_g2tYear:function(t){return t-this.yearsOffset-(t>=1&&t<=this.yearsOffset?1:0)}}),n.calendars.taiwan=o},{"../main":636,"object-assign":479}],634:[function(t,e,r){var n=t("../main"),i=t("object-assign"),a=n.instance();function o(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}o.prototype=new n.baseCalendar,i(o.prototype,{name:"Thai",jdEpoch:1523098.5,yearsOffset:543,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Thai",epochs:["BBE","BE"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);t=this._t2gYear(e.year());return a.leapYear(t)},weekOfYear:function(t,e,r){var i=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);t=this._t2gYear(i.year());return a.weekOfYear(t,i.month(),i.day())},daysInMonth:function(t,e){var r=this._validate(t,e,this.minDay,n.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(2===r.month()&&this.leapYear(r.year())?1:0)},weekDay:function(t,e,r){return(this.dayOfWeek(t,e,r)||7)<6},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate);t=this._t2gYear(i.year());return a.toJD(t,i.month(),i.day())},fromJD:function(t){var e=a.fromJD(t),r=this._g2tYear(e.year());return this.newDate(r,e.month(),e.day())},_t2gYear:function(t){return t-this.yearsOffset-(t>=1&&t<=this.yearsOffset?1:0)},_g2tYear:function(t){return t+this.yearsOffset+(t>=-this.yearsOffset&&t<=-1?1:0)}}),n.calendars.thai=o},{"../main":636,"object-assign":479}],635:[function(t,e,r){var n=t("../main"),i=t("object-assign");function a(t){this.local=this.regionalOptions[t||""]||this.regionalOptions[""]}a.prototype=new n.baseCalendar,i(a.prototype,{name:"UmmAlQura",hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Umm al-Qura",epochs:["BH","AH"],monthNames:["Al-Muharram","Safar","Rabi' al-awwal","Rabi' Al-Thani","Jumada Al-Awwal","Jumada Al-Thani","Rajab","Sha'aban","Ramadan","Shawwal","Dhu al-Qi'dah","Dhu al-Hijjah"],monthNamesShort:["Muh","Saf","Rab1","Rab2","Jum1","Jum2","Raj","Sha'","Ram","Shaw","DhuQ","DhuH"],dayNames:["Yawm al-Ahad","Yawm al-Ithnain","Yawm al-Thal\u0101th\u0101\u2019","Yawm al-Arba\u2018\u0101\u2019","Yawm al-Kham\u012bs","Yawm al-Jum\u2018a","Yawm al-Sabt"],dayNamesMin:["Ah","Ith","Th","Ar","Kh","Ju","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:6,isRTL:!0}},leapYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,n.local.invalidYear);return 355===this.daysInYear(e.year())},weekOfYear:function(t,e,r){var n=this.newDate(t,e,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(t){for(var e=0,r=1;r<=12;r++)e+=this.daysInMonth(t,r);return e},daysInMonth:function(t,e){for(var r=this._validate(t,e,this.minDay,n.local.invalidMonth).toJD()-24e5+.5,i=0,a=0;ar)return o[i]-o[i-1];i++}return 30},weekDay:function(t,e,r){return 5!==this.dayOfWeek(t,e,r)},toJD:function(t,e,r){var i=this._validate(t,e,r,n.local.invalidDate),a=12*(i.year()-1)+i.month()-15292;return i.day()+o[a-1]-1+24e5-.5},fromJD:function(t){for(var e=t-24e5+.5,r=0,n=0;ne);n++)r++;var i=r+15292,a=Math.floor((i-1)/12),s=a+1,l=i-12*a,c=e-o[r-1]+1;return this.newDate(s,l,c)},isValid:function(t,e,r){var i=n.baseCalendar.prototype.isValid.apply(this,arguments);return i&&(i=(t=null!=t.year?t.year:t)>=1276&&t<=1500),i},_validate:function(t,e,r,i){var a=n.baseCalendar.prototype._validate.apply(this,arguments);if(a.year<1276||a.year>1500)throw i.replace(/\{0\}/,this.local.name);return a}}),n.calendars.ummalqura=a;var o=[20,50,79,109,138,168,197,227,256,286,315,345,374,404,433,463,492,522,551,581,611,641,670,700,729,759,788,818,847,877,906,936,965,995,1024,1054,1083,1113,1142,1172,1201,1231,1260,1290,1320,1350,1379,1409,1438,1468,1497,1527,1556,1586,1615,1645,1674,1704,1733,1763,1792,1822,1851,1881,1910,1940,1969,1999,2028,2058,2087,2117,2146,2176,2205,2235,2264,2294,2323,2353,2383,2413,2442,2472,2501,2531,2560,2590,2619,2649,2678,2708,2737,2767,2796,2826,2855,2885,2914,2944,2973,3003,3032,3062,3091,3121,3150,3180,3209,3239,3268,3298,3327,3357,3386,3416,3446,3476,3505,3535,3564,3594,3623,3653,3682,3712,3741,3771,3800,3830,3859,3889,3918,3948,3977,4007,4036,4066,4095,4125,4155,4185,4214,4244,4273,4303,4332,4362,4391,4421,4450,4480,4509,4539,4568,4598,4627,4657,4686,4716,4745,4775,4804,4834,4863,4893,4922,4952,4981,5011,5040,5070,5099,5129,5158,5188,5218,5248,5277,5307,5336,5366,5395,5425,5454,5484,5513,5543,5572,5602,5631,5661,5690,5720,5749,5779,5808,5838,5867,5897,5926,5956,5985,6015,6044,6074,6103,6133,6162,6192,6221,6251,6281,6311,6340,6370,6399,6429,6458,6488,6517,6547,6576,6606,6635,6665,6694,6724,6753,6783,6812,6842,6871,6901,6930,6960,6989,7019,7048,7078,7107,7137,7166,7196,7225,7255,7284,7314,7344,7374,7403,7433,7462,7492,7521,7551,7580,7610,7639,7669,7698,7728,7757,7787,7816,7846,7875,7905,7934,7964,7993,8023,8053,8083,8112,8142,8171,8201,8230,8260,8289,8319,8348,8378,8407,8437,8466,8496,8525,8555,8584,8614,8643,8673,8702,8732,8761,8791,8821,8850,8880,8909,8938,8968,8997,9027,9056,9086,9115,9145,9175,9205,9234,9264,9293,9322,9352,9381,9410,9440,9470,9499,9529,9559,9589,9618,9648,9677,9706,9736,9765,9794,9824,9853,9883,9913,9943,9972,10002,10032,10061,10090,10120,10149,10178,10208,10237,10267,10297,10326,10356,10386,10415,10445,10474,10504,10533,10562,10592,10621,10651,10680,10710,10740,10770,10799,10829,10858,10888,10917,10947,10976,11005,11035,11064,11094,11124,11153,11183,11213,11242,11272,11301,11331,11360,11389,11419,11448,11478,11507,11537,11567,11596,11626,11655,11685,11715,11744,11774,11803,11832,11862,11891,11921,11950,11980,12010,12039,12069,12099,12128,12158,12187,12216,12246,12275,12304,12334,12364,12393,12423,12453,12483,12512,12542,12571,12600,12630,12659,12688,12718,12747,12777,12807,12837,12866,12896,12926,12955,12984,13014,13043,13072,13102,13131,13161,13191,13220,13250,13280,13310,13339,13368,13398,13427,13456,13486,13515,13545,13574,13604,13634,13664,13693,13723,13752,13782,13811,13840,13870,13899,13929,13958,13988,14018,14047,14077,14107,14136,14166,14195,14224,14254,14283,14313,14342,14372,14401,14431,14461,14490,14520,14550,14579,14609,14638,14667,14697,14726,14756,14785,14815,14844,14874,14904,14933,14963,14993,15021,15051,15081,15110,15140,15169,15199,15228,15258,15287,15317,15347,15377,15406,15436,15465,15494,15524,15553,15582,15612,15641,15671,15701,15731,15760,15790,15820,15849,15878,15908,15937,15966,15996,16025,16055,16085,16114,16144,16174,16204,16233,16262,16292,16321,16350,16380,16409,16439,16468,16498,16528,16558,16587,16617,16646,16676,16705,16734,16764,16793,16823,16852,16882,16912,16941,16971,17001,17030,17060,17089,17118,17148,17177,17207,17236,17266,17295,17325,17355,17384,17414,17444,17473,17502,17532,17561,17591,17620,17650,17679,17709,17738,17768,17798,17827,17857,17886,17916,17945,17975,18004,18034,18063,18093,18122,18152,18181,18211,18241,18270,18300,18330,18359,18388,18418,18447,18476,18506,18535,18565,18595,18625,18654,18684,18714,18743,18772,18802,18831,18860,18890,18919,18949,18979,19008,19038,19068,19098,19127,19156,19186,19215,19244,19274,19303,19333,19362,19392,19422,19452,19481,19511,19540,19570,19599,19628,19658,19687,19717,19746,19776,19806,19836,19865,19895,19924,19954,19983,20012,20042,20071,20101,20130,20160,20190,20219,20249,20279,20308,20338,20367,20396,20426,20455,20485,20514,20544,20573,20603,20633,20662,20692,20721,20751,20780,20810,20839,20869,20898,20928,20957,20987,21016,21046,21076,21105,21135,21164,21194,21223,21253,21282,21312,21341,21371,21400,21430,21459,21489,21519,21548,21578,21607,21637,21666,21696,21725,21754,21784,21813,21843,21873,21902,21932,21962,21991,22021,22050,22080,22109,22138,22168,22197,22227,22256,22286,22316,22346,22375,22405,22434,22464,22493,22522,22552,22581,22611,22640,22670,22700,22730,22759,22789,22818,22848,22877,22906,22936,22965,22994,23024,23054,23083,23113,23143,23173,23202,23232,23261,23290,23320,23349,23379,23408,23438,23467,23497,23527,23556,23586,23616,23645,23674,23704,23733,23763,23792,23822,23851,23881,23910,23940,23970,23999,24029,24058,24088,24117,24147,24176,24206,24235,24265,24294,24324,24353,24383,24413,24442,24472,24501,24531,24560,24590,24619,24648,24678,24707,24737,24767,24796,24826,24856,24885,24915,24944,24974,25003,25032,25062,25091,25121,25150,25180,25210,25240,25269,25299,25328,25358,25387,25416,25446,25475,25505,25534,25564,25594,25624,25653,25683,25712,25742,25771,25800,25830,25859,25888,25918,25948,25977,26007,26037,26067,26096,26126,26155,26184,26214,26243,26272,26302,26332,26361,26391,26421,26451,26480,26510,26539,26568,26598,26627,26656,26686,26715,26745,26775,26805,26834,26864,26893,26923,26952,26982,27011,27041,27070,27099,27129,27159,27188,27218,27248,27277,27307,27336,27366,27395,27425,27454,27484,27513,27542,27572,27602,27631,27661,27691,27720,27750,27779,27809,27838,27868,27897,27926,27956,27985,28015,28045,28074,28104,28134,28163,28193,28222,28252,28281,28310,28340,28369,28399,28428,28458,28488,28517,28547,28577,28607,28636,28665,28695,28724,28754,28783,28813,28843,28872,28901,28931,28960,28990,29019,29049,29078,29108,29137,29167,29196,29226,29255,29285,29315,29345,29375,29404,29434,29463,29492,29522,29551,29580,29610,29640,29669,29699,29729,29759,29788,29818,29847,29876,29906,29935,29964,29994,30023,30053,30082,30112,30141,30171,30200,30230,30259,30289,30318,30348,30378,30408,30437,30467,30496,30526,30555,30585,30614,30644,30673,30703,30732,30762,30791,30821,30850,30880,30909,30939,30968,30998,31027,31057,31086,31116,31145,31175,31204,31234,31263,31293,31322,31352,31381,31411,31441,31471,31500,31530,31559,31589,31618,31648,31676,31706,31736,31766,31795,31825,31854,31884,31913,31943,31972,32002,32031,32061,32090,32120,32150,32180,32209,32239,32268,32298,32327,32357,32386,32416,32445,32475,32504,32534,32563,32593,32622,32652,32681,32711,32740,32770,32799,32829,32858,32888,32917,32947,32976,33006,33035,33065,33094,33124,33153,33183,33213,33243,33272,33302,33331,33361,33390,33420,33450,33479,33509,33539,33568,33598,33627,33657,33686,33716,33745,33775,33804,33834,33863,33893,33922,33952,33981,34011,34040,34069,34099,34128,34158,34187,34217,34247,34277,34306,34336,34365,34395,34424,34454,34483,34512,34542,34571,34601,34631,34660,34690,34719,34749,34778,34808,34837,34867,34896,34926,34955,34985,35015,35044,35074,35103,35133,35162,35192,35222,35251,35280,35310,35340,35370,35399,35429,35458,35488,35517,35547,35576,35605,35635,35665,35694,35723,35753,35782,35811,35841,35871,35901,35930,35960,35989,36019,36048,36078,36107,36136,36166,36195,36225,36254,36284,36314,36343,36373,36403,36433,36462,36492,36521,36551,36580,36610,36639,36669,36698,36728,36757,36786,36816,36845,36875,36904,36934,36963,36993,37022,37052,37081,37111,37141,37170,37200,37229,37259,37288,37318,37347,37377,37406,37436,37465,37495,37524,37554,37584,37613,37643,37672,37701,37731,37760,37790,37819,37849,37878,37908,37938,37967,37997,38027,38056,38085,38115,38144,38174,38203,38233,38262,38292,38322,38351,38381,38410,38440,38469,38499,38528,38558,38587,38617,38646,38676,38705,38735,38764,38794,38823,38853,38882,38912,38941,38971,39001,39030,39059,39089,39118,39148,39178,39208,39237,39267,39297,39326,39355,39385,39414,39444,39473,39503,39532,39562,39592,39621,39650,39680,39709,39739,39768,39798,39827,39857,39886,39916,39946,39975,40005,40035,40064,40094,40123,40153,40182,40212,40241,40271,40300,40330,40359,40389,40418,40448,40477,40507,40536,40566,40595,40625,40655,40685,40714,40744,40773,40803,40832,40862,40892,40921,40951,40980,41009,41039,41068,41098,41127,41157,41186,41216,41245,41275,41304,41334,41364,41393,41422,41452,41481,41511,41540,41570,41599,41629,41658,41688,41718,41748,41777,41807,41836,41865,41894,41924,41953,41983,42012,42042,42072,42102,42131,42161,42190,42220,42249,42279,42308,42337,42367,42397,42426,42456,42485,42515,42545,42574,42604,42633,42662,42692,42721,42751,42780,42810,42839,42869,42899,42929,42958,42988,43017,43046,43076,43105,43135,43164,43194,43223,43253,43283,43312,43342,43371,43401,43430,43460,43489,43519,43548,43578,43607,43637,43666,43696,43726,43755,43785,43814,43844,43873,43903,43932,43962,43991,44021,44050,44080,44109,44139,44169,44198,44228,44258,44287,44317,44346,44375,44405,44434,44464,44493,44523,44553,44582,44612,44641,44671,44700,44730,44759,44788,44818,44847,44877,44906,44936,44966,44996,45025,45055,45084,45114,45143,45172,45202,45231,45261,45290,45320,45350,45380,45409,45439,45468,45498,45527,45556,45586,45615,45644,45674,45704,45733,45763,45793,45823,45852,45882,45911,45940,45970,45999,46028,46058,46088,46117,46147,46177,46206,46236,46265,46295,46324,46354,46383,46413,46442,46472,46501,46531,46560,46590,46620,46649,46679,46708,46738,46767,46797,46826,46856,46885,46915,46944,46974,47003,47033,47063,47092,47122,47151,47181,47210,47240,47269,47298,47328,47357,47387,47417,47446,47476,47506,47535,47565,47594,47624,47653,47682,47712,47741,47771,47800,47830,47860,47890,47919,47949,47978,48008,48037,48066,48096,48125,48155,48184,48214,48244,48273,48303,48333,48362,48392,48421,48450,48480,48509,48538,48568,48598,48627,48657,48687,48717,48746,48776,48805,48834,48864,48893,48922,48952,48982,49011,49041,49071,49100,49130,49160,49189,49218,49248,49277,49306,49336,49365,49395,49425,49455,49484,49514,49543,49573,49602,49632,49661,49690,49720,49749,49779,49809,49838,49868,49898,49927,49957,49986,50016,50045,50075,50104,50133,50163,50192,50222,50252,50281,50311,50340,50370,50400,50429,50459,50488,50518,50547,50576,50606,50635,50665,50694,50724,50754,50784,50813,50843,50872,50902,50931,50960,50990,51019,51049,51078,51108,51138,51167,51197,51227,51256,51286,51315,51345,51374,51403,51433,51462,51492,51522,51552,51582,51611,51641,51670,51699,51729,51758,51787,51816,51846,51876,51906,51936,51965,51995,52025,52054,52083,52113,52142,52171,52200,52230,52260,52290,52319,52349,52379,52408,52438,52467,52497,52526,52555,52585,52614,52644,52673,52703,52733,52762,52792,52822,52851,52881,52910,52939,52969,52998,53028,53057,53087,53116,53146,53176,53205,53235,53264,53294,53324,53353,53383,53412,53441,53471,53500,53530,53559,53589,53619,53648,53678,53708,53737,53767,53796,53825,53855,53884,53913,53943,53973,54003,54032,54062,54092,54121,54151,54180,54209,54239,54268,54297,54327,54357,54387,54416,54446,54476,54505,54535,54564,54593,54623,54652,54681,54711,54741,54770,54800,54830,54859,54889,54919,54948,54977,55007,55036,55066,55095,55125,55154,55184,55213,55243,55273,55302,55332,55361,55391,55420,55450,55479,55508,55538,55567,55597,55627,55657,55686,55716,55745,55775,55804,55834,55863,55892,55922,55951,55981,56011,56040,56070,56100,56129,56159,56188,56218,56247,56276,56306,56335,56365,56394,56424,56454,56483,56513,56543,56572,56601,56631,56660,56690,56719,56749,56778,56808,56837,56867,56897,56926,56956,56985,57015,57044,57074,57103,57133,57162,57192,57221,57251,57280,57310,57340,57369,57399,57429,57458,57487,57517,57546,57576,57605,57634,57664,57694,57723,57753,57783,57813,57842,57871,57901,57930,57959,57989,58018,58048,58077,58107,58137,58167,58196,58226,58255,58285,58314,58343,58373,58402,58432,58461,58491,58521,58551,58580,58610,58639,58669,58698,58727,58757,58786,58816,58845,58875,58905,58934,58964,58994,59023,59053,59082,59111,59141,59170,59200,59229,59259,59288,59318,59348,59377,59407,59436,59466,59495,59525,59554,59584,59613,59643,59672,59702,59731,59761,59791,59820,59850,59879,59909,59939,59968,59997,60027,60056,60086,60115,60145,60174,60204,60234,60264,60293,60323,60352,60381,60411,60440,60469,60499,60528,60558,60588,60618,60648,60677,60707,60736,60765,60795,60824,60853,60883,60912,60942,60972,61002,61031,61061,61090,61120,61149,61179,61208,61237,61267,61296,61326,61356,61385,61415,61445,61474,61504,61533,61563,61592,61621,61651,61680,61710,61739,61769,61799,61828,61858,61888,61917,61947,61976,62006,62035,62064,62094,62123,62153,62182,62212,62242,62271,62301,62331,62360,62390,62419,62448,62478,62507,62537,62566,62596,62625,62655,62685,62715,62744,62774,62803,62832,62862,62891,62921,62950,62980,63009,63039,63069,63099,63128,63157,63187,63216,63246,63275,63305,63334,63363,63393,63423,63453,63482,63512,63541,63571,63600,63630,63659,63689,63718,63747,63777,63807,63836,63866,63895,63925,63955,63984,64014,64043,64073,64102,64131,64161,64190,64220,64249,64279,64309,64339,64368,64398,64427,64457,64486,64515,64545,64574,64603,64633,64663,64692,64722,64752,64782,64811,64841,64870,64899,64929,64958,64987,65017,65047,65076,65106,65136,65166,65195,65225,65254,65283,65313,65342,65371,65401,65431,65460,65490,65520,65549,65579,65608,65638,65667,65697,65726,65755,65785,65815,65844,65874,65903,65933,65963,65992,66022,66051,66081,66110,66140,66169,66199,66228,66258,66287,66317,66346,66376,66405,66435,66465,66494,66524,66553,66583,66612,66641,66671,66700,66730,66760,66789,66819,66849,66878,66908,66937,66967,66996,67025,67055,67084,67114,67143,67173,67203,67233,67262,67292,67321,67351,67380,67409,67439,67468,67497,67527,67557,67587,67617,67646,67676,67705,67735,67764,67793,67823,67852,67882,67911,67941,67971,68e3,68030,68060,68089,68119,68148,68177,68207,68236,68266,68295,68325,68354,68384,68414,68443,68473,68502,68532,68561,68591,68620,68650,68679,68708,68738,68768,68797,68827,68857,68886,68916,68946,68975,69004,69034,69063,69092,69122,69152,69181,69211,69240,69270,69300,69330,69359,69388,69418,69447,69476,69506,69535,69565,69595,69624,69654,69684,69713,69743,69772,69802,69831,69861,69890,69919,69949,69978,70008,70038,70067,70097,70126,70156,70186,70215,70245,70274,70303,70333,70362,70392,70421,70451,70481,70510,70540,70570,70599,70629,70658,70687,70717,70746,70776,70805,70835,70864,70894,70924,70954,70983,71013,71042,71071,71101,71130,71159,71189,71218,71248,71278,71308,71337,71367,71397,71426,71455,71485,71514,71543,71573,71602,71632,71662,71691,71721,71751,71781,71810,71839,71869,71898,71927,71957,71986,72016,72046,72075,72105,72135,72164,72194,72223,72253,72282,72311,72341,72370,72400,72429,72459,72489,72518,72548,72577,72607,72637,72666,72695,72725,72754,72784,72813,72843,72872,72902,72931,72961,72991,73020,73050,73080,73109,73139,73168,73197,73227,73256,73286,73315,73345,73375,73404,73434,73464,73493,73523,73552,73581,73611,73640,73669,73699,73729,73758,73788,73818,73848,73877,73907,73936,73965,73995,74024,74053,74083,74113,74142,74172,74202,74231,74261,74291,74320,74349,74379,74408,74437,74467,74497,74526,74556,74586,74615,74645,74675,74704,74733,74763,74792,74822,74851,74881,74910,74940,74969,74999,75029,75058,75088,75117,75147,75176,75206,75235,75264,75294,75323,75353,75383,75412,75442,75472,75501,75531,75560,75590,75619,75648,75678,75707,75737,75766,75796,75826,75856,75885,75915,75944,75974,76003,76032,76062,76091,76121,76150,76180,76210,76239,76269,76299,76328,76358,76387,76416,76446,76475,76505,76534,76564,76593,76623,76653,76682,76712,76741,76771,76801,76830,76859,76889,76918,76948,76977,77007,77036,77066,77096,77125,77155,77185,77214,77243,77273,77302,77332,77361,77390,77420,77450,77479,77509,77539,77569,77598,77627,77657,77686,77715,77745,77774,77804,77833,77863,77893,77923,77952,77982,78011,78041,78070,78099,78129,78158,78188,78217,78247,78277,78307,78336,78366,78395,78425,78454,78483,78513,78542,78572,78601,78631,78661,78690,78720,78750,78779,78808,78838,78867,78897,78926,78956,78985,79015,79044,79074,79104,79133,79163,79192,79222,79251,79281,79310,79340,79369,79399,79428,79458,79487,79517,79546,79576,79606,79635,79665,79695,79724,79753,79783,79812,79841,79871,79900,79930,79960,79990]},{"../main":636,"object-assign":479}],636:[function(t,e,r){var n=t("object-assign");function i(){this.regionalOptions=[],this.regionalOptions[""]={invalidCalendar:"Calendar {0} not found",invalidDate:"Invalid {0} date",invalidMonth:"Invalid {0} month",invalidYear:"Invalid {0} year",differentCalendars:"Cannot mix {0} and {1} dates"},this.local=this.regionalOptions[""],this.calendars={},this._localCals={}}function a(t,e,r,n){if(this._calendar=t,this._year=e,this._month=r,this._day=n,0===this._calendar._validateLevel&&!this._calendar.isValid(this._year,this._month,this._day))throw(c.local.invalidDate||c.regionalOptions[""].invalidDate).replace(/\{0\}/,this._calendar.local.name)}function o(t,e){return"000000".substring(0,e-(t=""+t).length)+t}function s(){this.shortYearCutoff="+10"}function l(t){this.local=this.regionalOptions[t]||this.regionalOptions[""]}n(i.prototype,{instance:function(t,e){t=(t||"gregorian").toLowerCase(),e=e||"";var r=this._localCals[t+"-"+e];if(!r&&this.calendars[t]&&(r=new this.calendars[t](e),this._localCals[t+"-"+e]=r),!r)throw(this.local.invalidCalendar||this.regionalOptions[""].invalidCalendar).replace(/\{0\}/,t);return r},newDate:function(t,e,r,n,i){return(n=(null!=t&&t.year?t.calendar():"string"==typeof n?this.instance(n,i):n)||this.instance()).newDate(t,e,r)},substituteDigits:function(t){return function(e){return(e+"").replace(/[0-9]/g,(function(e){return t[e]}))}},substituteChineseDigits:function(t,e){return function(r){for(var n="",i=0;r>0;){var a=r%10;n=(0===a?"":t[a]+e[i])+n,i++,r=Math.floor(r/10)}return 0===n.indexOf(t[1]+e[1])&&(n=n.substr(1)),n||t[0]}}}),n(a.prototype,{newDate:function(t,e,r){return this._calendar.newDate(null==t?this:t,e,r)},year:function(t){return 0===arguments.length?this._year:this.set(t,"y")},month:function(t){return 0===arguments.length?this._month:this.set(t,"m")},day:function(t){return 0===arguments.length?this._day:this.set(t,"d")},date:function(t,e,r){if(!this._calendar.isValid(t,e,r))throw(c.local.invalidDate||c.regionalOptions[""].invalidDate).replace(/\{0\}/,this._calendar.local.name);return this._year=t,this._month=e,this._day=r,this},leapYear:function(){return this._calendar.leapYear(this)},epoch:function(){return this._calendar.epoch(this)},formatYear:function(){return this._calendar.formatYear(this)},monthOfYear:function(){return this._calendar.monthOfYear(this)},weekOfYear:function(){return this._calendar.weekOfYear(this)},daysInYear:function(){return this._calendar.daysInYear(this)},dayOfYear:function(){return this._calendar.dayOfYear(this)},daysInMonth:function(){return this._calendar.daysInMonth(this)},dayOfWeek:function(){return this._calendar.dayOfWeek(this)},weekDay:function(){return this._calendar.weekDay(this)},extraInfo:function(){return this._calendar.extraInfo(this)},add:function(t,e){return this._calendar.add(this,t,e)},set:function(t,e){return this._calendar.set(this,t,e)},compareTo:function(t){if(this._calendar.name!==t._calendar.name)throw(c.local.differentCalendars||c.regionalOptions[""].differentCalendars).replace(/\{0\}/,this._calendar.local.name).replace(/\{1\}/,t._calendar.local.name);var e=this._year!==t._year?this._year-t._year:this._month!==t._month?this.monthOfYear()-t.monthOfYear():this._day-t._day;return 0===e?0:e<0?-1:1},calendar:function(){return this._calendar},toJD:function(){return this._calendar.toJD(this)},fromJD:function(t){return this._calendar.fromJD(t)},toJSDate:function(){return this._calendar.toJSDate(this)},fromJSDate:function(t){return this._calendar.fromJSDate(t)},toString:function(){return(this.year()<0?"-":"")+o(Math.abs(this.year()),4)+"-"+o(this.month(),2)+"-"+o(this.day(),2)}}),n(s.prototype,{_validateLevel:0,newDate:function(t,e,r){return null==t?this.today():(t.year&&(this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[""].invalidDate),r=t.day(),e=t.month(),t=t.year()),new a(this,t,e,r))},today:function(){return this.fromJSDate(new Date)},epoch:function(t){return this._validate(t,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[""].invalidYear).year()<0?this.local.epochs[0]:this.local.epochs[1]},formatYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[""].invalidYear);return(e.year()<0?"-":"")+o(Math.abs(e.year()),4)},monthsInYear:function(t){return this._validate(t,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[""].invalidYear),12},monthOfYear:function(t,e){var r=this._validate(t,e,this.minDay,c.local.invalidMonth||c.regionalOptions[""].invalidMonth);return(r.month()+this.monthsInYear(r)-this.firstMonth)%this.monthsInYear(r)+this.minMonth},fromMonthOfYear:function(t,e){var r=(e+this.firstMonth-2*this.minMonth)%this.monthsInYear(t)+this.minMonth;return this._validate(t,r,this.minDay,c.local.invalidMonth||c.regionalOptions[""].invalidMonth),r},daysInYear:function(t){var e=this._validate(t,this.minMonth,this.minDay,c.local.invalidYear||c.regionalOptions[""].invalidYear);return this.leapYear(e)?366:365},dayOfYear:function(t,e,r){var n=this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[""].invalidDate);return n.toJD()-this.newDate(n.year(),this.fromMonthOfYear(n.year(),this.minMonth),this.minDay).toJD()+1},daysInWeek:function(){return 7},dayOfWeek:function(t,e,r){var n=this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[""].invalidDate);return(Math.floor(this.toJD(n))+2)%this.daysInWeek()},extraInfo:function(t,e,r){return this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[""].invalidDate),{}},add:function(t,e,r){return this._validate(t,this.minMonth,this.minDay,c.local.invalidDate||c.regionalOptions[""].invalidDate),this._correctAdd(t,this._add(t,e,r),e,r)},_add:function(t,e,r){if(this._validateLevel++,"d"===r||"w"===r){var n=t.toJD()+e*("w"===r?this.daysInWeek():1),i=t.calendar().fromJD(n);return this._validateLevel--,[i.year(),i.month(),i.day()]}try{var a=t.year()+("y"===r?e:0),o=t.monthOfYear()+("m"===r?e:0);i=t.day();"y"===r?(t.month()!==this.fromMonthOfYear(a,o)&&(o=this.newDate(a,t.month(),this.minDay).monthOfYear()),o=Math.min(o,this.monthsInYear(a)),i=Math.min(i,this.daysInMonth(a,this.fromMonthOfYear(a,o)))):"m"===r&&(!function(t){for(;oe-1+t.minMonth;)a++,o-=e,e=t.monthsInYear(a)}(this),i=Math.min(i,this.daysInMonth(a,this.fromMonthOfYear(a,o))));var s=[a,this.fromMonthOfYear(a,o),i];return this._validateLevel--,s}catch(t){throw this._validateLevel--,t}},_correctAdd:function(t,e,r,n){if(!(this.hasYearZero||"y"!==n&&"m"!==n||0!==e[0]&&t.year()>0==e[0]>0)){var i={y:[1,1,"y"],m:[1,this.monthsInYear(-1),"m"],w:[this.daysInWeek(),this.daysInYear(-1),"d"],d:[1,this.daysInYear(-1),"d"]}[n],a=r<0?-1:1;e=this._add(t,r*i[0]+a*i[1],i[2])}return t.date(e[0],e[1],e[2])},set:function(t,e,r){this._validate(t,this.minMonth,this.minDay,c.local.invalidDate||c.regionalOptions[""].invalidDate);var n="y"===r?e:t.year(),i="m"===r?e:t.month(),a="d"===r?e:t.day();return"y"!==r&&"m"!==r||(a=Math.min(a,this.daysInMonth(n,i))),t.date(n,i,a)},isValid:function(t,e,r){this._validateLevel++;var n=this.hasYearZero||0!==t;if(n){var i=this.newDate(t,e,this.minDay);n=e>=this.minMonth&&e-this.minMonth=this.minDay&&r-this.minDay13.5?13:1),c=i-(l>2.5?4716:4715);return c<=0&&c--,this.newDate(c,l,s)},toJSDate:function(t,e,r){var n=this._validate(t,e,r,c.local.invalidDate||c.regionalOptions[""].invalidDate),i=new Date(n.year(),n.month()-1,n.day());return i.setHours(0),i.setMinutes(0),i.setSeconds(0),i.setMilliseconds(0),i.setHours(i.getHours()>12?i.getHours()+2:0),i},fromJSDate:function(t){return this.newDate(t.getFullYear(),t.getMonth()+1,t.getDate())}});var c=e.exports=new i;c.cdate=a,c.baseCalendar=s,c.calendars.gregorian=l},{"object-assign":479}],637:[function(t,e,r){var n=t("object-assign"),i=t("./main");n(i.regionalOptions[""],{invalidArguments:"Invalid arguments",invalidFormat:"Cannot format a date from another calendar",missingNumberAt:"Missing number at position {0}",unknownNameAt:"Unknown name at position {0}",unexpectedLiteralAt:"Unexpected literal at position {0}",unexpectedText:"Additional text found at end"}),i.local=i.regionalOptions[""],n(i.cdate.prototype,{formatDate:function(t,e){return"string"!=typeof t&&(e=t,t=""),this._calendar.formatDate(t||"",this,e)}}),n(i.baseCalendar.prototype,{UNIX_EPOCH:i.instance().newDate(1970,1,1).toJD(),SECS_PER_DAY:86400,TICKS_EPOCH:i.instance().jdEpoch,TICKS_PER_DAY:864e9,ATOM:"yyyy-mm-dd",COOKIE:"D, dd M yyyy",FULL:"DD, MM d, yyyy",ISO_8601:"yyyy-mm-dd",JULIAN:"J",RFC_822:"D, d M yy",RFC_850:"DD, dd-M-yy",RFC_1036:"D, d M yy",RFC_1123:"D, d M yyyy",RFC_2822:"D, d M yyyy",RSS:"D, d M yy",TICKS:"!",TIMESTAMP:"@",W3C:"yyyy-mm-dd",formatDate:function(t,e,r){if("string"!=typeof t&&(r=e,e=t,t=""),!e)return"";if(e.calendar()!==this)throw i.local.invalidFormat||i.regionalOptions[""].invalidFormat;t=t||this.local.dateFormat;for(var n,a,o,s,l=(r=r||{}).dayNamesShort||this.local.dayNamesShort,c=r.dayNames||this.local.dayNames,u=r.monthNumbers||this.local.monthNumbers,f=r.monthNamesShort||this.local.monthNamesShort,h=r.monthNames||this.local.monthNames,p=(r.calculateWeek||this.local.calculateWeek,function(e,r){for(var n=1;w+n1}),d=function(t,e,r,n){var i=""+e;if(p(t,n))for(;i.length1},x=function(t,r){var n=y(t,r),a=[2,3,n?4:2,n?4:2,10,11,20]["oyYJ@!".indexOf(t)+1],o=new RegExp("^-?\\d{1,"+a+"}"),s=e.substring(M).match(o);if(!s)throw(i.local.missingNumberAt||i.regionalOptions[""].missingNumberAt).replace(/\{0\}/,M);return M+=s[0].length,parseInt(s[0],10)},b=this,_=function(){if("function"==typeof l){y("m");var t=l.call(b,e.substring(M));return M+=t.length,t}return x("m")},w=function(t,r,n,a){for(var o=y(t,a)?n:r,s=0;s-1){p=1,d=m;for(var E=this.daysInMonth(h,p);d>E;E=this.daysInMonth(h,p))p++,d-=E}return f>-1?this.fromJD(f):this.newDate(h,p,d)},determineDate:function(t,e,r,n,i){r&&"object"!=typeof r&&(i=n,n=r,r=null),"string"!=typeof n&&(i=n,n="");var a=this;return e=e?e.newDate():null,t=null==t?e:"string"==typeof t?function(t){try{return a.parseDate(n,t,i)}catch(t){}for(var e=((t=t.toLowerCase()).match(/^c/)&&r?r.newDate():null)||a.today(),o=/([+-]?[0-9]+)\s*(d|w|m|y)?/g,s=o.exec(t);s;)e.add(parseInt(s[1],10),s[2]||"d"),s=o.exec(t);return e}(t):"number"==typeof t?isNaN(t)||t===1/0||t===-1/0?e:a.today().add(t,"d"):a.newDate(t)}})},{"./main":636,"object-assign":479}],638:[function(t,e,r){e.exports=t("cwise-compiler")({args:["array",{offset:[1],array:0},"scalar","scalar","index"],pre:{body:"{}",args:[],thisVars:[],localVars:[]},post:{body:"{}",args:[],thisVars:[],localVars:[]},body:{body:"{\n var _inline_1_da = _inline_1_arg0_ - _inline_1_arg3_\n var _inline_1_db = _inline_1_arg1_ - _inline_1_arg3_\n if((_inline_1_da >= 0) !== (_inline_1_db >= 0)) {\n _inline_1_arg2_.push(_inline_1_arg4_[0] + 0.5 + 0.5 * (_inline_1_da + _inline_1_db) / (_inline_1_da - _inline_1_db))\n }\n }",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:1},{name:"_inline_1_arg1_",lvalue:!1,rvalue:!0,count:1},{name:"_inline_1_arg2_",lvalue:!1,rvalue:!0,count:1},{name:"_inline_1_arg3_",lvalue:!1,rvalue:!0,count:2},{name:"_inline_1_arg4_",lvalue:!1,rvalue:!0,count:1}],thisVars:[],localVars:["_inline_1_da","_inline_1_db"]},funcName:"zeroCrossings"})},{"cwise-compiler":152}],639:[function(t,e,r){"use strict";e.exports=function(t,e){var r=[];return e=+e||0,n(t.hi(t.shape[0]-1),r,e),r};var n=t("./lib/zc-core")},{"./lib/zc-core":638}],640:[function(t,e,r){"use strict";e.exports=[{path:"",backoff:0},{path:"M-2.4,-3V3L0.6,0Z",backoff:.6},{path:"M-3.7,-2.5V2.5L1.3,0Z",backoff:1.3},{path:"M-4.45,-3L-1.65,-0.2V0.2L-4.45,3L1.55,0Z",backoff:1.55},{path:"M-2.2,-2.2L-0.2,-0.2V0.2L-2.2,2.2L-1.4,3L1.6,0L-1.4,-3Z",backoff:1.6},{path:"M-4.4,-2.1L-0.6,-0.2V0.2L-4.4,2.1L-4,3L2,0L-4,-3Z",backoff:2},{path:"M2,0A2,2 0 1,1 0,-2A2,2 0 0,1 2,0Z",backoff:0,noRotate:!0},{path:"M2,2V-2H-2V2Z",backoff:0,noRotate:!0}]},{}],641:[function(t,e,r){"use strict";var n=t("./arrow_paths"),i=t("../../plots/font_attributes"),a=t("../../plots/cartesian/constants"),o=t("../../plot_api/plot_template").templatedArray;t("../../constants/axis_placeable_objects");e.exports=o("annotation",{visible:{valType:"boolean",dflt:!0,editType:"calc+arraydraw"},text:{valType:"string",editType:"calc+arraydraw"},textangle:{valType:"angle",dflt:0,editType:"calc+arraydraw"},font:i({editType:"calc+arraydraw",colorEditType:"arraydraw"}),width:{valType:"number",min:1,dflt:null,editType:"calc+arraydraw"},height:{valType:"number",min:1,dflt:null,editType:"calc+arraydraw"},opacity:{valType:"number",min:0,max:1,dflt:1,editType:"arraydraw"},align:{valType:"enumerated",values:["left","center","right"],dflt:"center",editType:"arraydraw"},valign:{valType:"enumerated",values:["top","middle","bottom"],dflt:"middle",editType:"arraydraw"},bgcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"arraydraw"},bordercolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"arraydraw"},borderpad:{valType:"number",min:0,dflt:1,editType:"calc+arraydraw"},borderwidth:{valType:"number",min:0,dflt:1,editType:"calc+arraydraw"},showarrow:{valType:"boolean",dflt:!0,editType:"calc+arraydraw"},arrowcolor:{valType:"color",editType:"arraydraw"},arrowhead:{valType:"integer",min:0,max:n.length,dflt:1,editType:"arraydraw"},startarrowhead:{valType:"integer",min:0,max:n.length,dflt:1,editType:"arraydraw"},arrowside:{valType:"flaglist",flags:["end","start"],extras:["none"],dflt:"end",editType:"arraydraw"},arrowsize:{valType:"number",min:.3,dflt:1,editType:"calc+arraydraw"},startarrowsize:{valType:"number",min:.3,dflt:1,editType:"calc+arraydraw"},arrowwidth:{valType:"number",min:.1,editType:"calc+arraydraw"},standoff:{valType:"number",min:0,dflt:0,editType:"calc+arraydraw"},startstandoff:{valType:"number",min:0,dflt:0,editType:"calc+arraydraw"},ax:{valType:"any",editType:"calc+arraydraw"},ay:{valType:"any",editType:"calc+arraydraw"},axref:{valType:"enumerated",dflt:"pixel",values:["pixel",a.idRegex.x.toString()],editType:"calc"},ayref:{valType:"enumerated",dflt:"pixel",values:["pixel",a.idRegex.y.toString()],editType:"calc"},xref:{valType:"enumerated",values:["paper",a.idRegex.x.toString()],editType:"calc"},x:{valType:"any",editType:"calc+arraydraw"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"auto",editType:"calc+arraydraw"},xshift:{valType:"number",dflt:0,editType:"calc+arraydraw"},yref:{valType:"enumerated",values:["paper",a.idRegex.y.toString()],editType:"calc"},y:{valType:"any",editType:"calc+arraydraw"},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"auto",editType:"calc+arraydraw"},yshift:{valType:"number",dflt:0,editType:"calc+arraydraw"},clicktoshow:{valType:"enumerated",values:[!1,"onoff","onout"],dflt:!1,editType:"arraydraw"},xclick:{valType:"any",editType:"arraydraw"},yclick:{valType:"any",editType:"arraydraw"},hovertext:{valType:"string",editType:"arraydraw"},hoverlabel:{bgcolor:{valType:"color",editType:"arraydraw"},bordercolor:{valType:"color",editType:"arraydraw"},font:i({editType:"arraydraw"}),editType:"arraydraw"},captureevents:{valType:"boolean",editType:"arraydraw"},editType:"calc",_deprecated:{ref:{valType:"string",editType:"calc"}}})},{"../../constants/axis_placeable_objects":764,"../../plot_api/plot_template":834,"../../plots/cartesian/constants":851,"../../plots/font_attributes":873,"./arrow_paths":640}],642:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../plots/cartesian/axes"),a=t("./draw").draw;function o(t){var e=t._fullLayout;n.filterVisible(e.annotations).forEach((function(e){var r=i.getFromId(t,e.xref),n=i.getFromId(t,e.yref),a=i.getRefType(e.xref),o=i.getRefType(e.yref);e._extremes={},"range"===a&&s(e,r),"range"===o&&s(e,n)}))}function s(t,e){var r,n=e._id,a=n.charAt(0),o=t[a],s=t["a"+a],l=t[a+"ref"],c=t["a"+a+"ref"],u=t["_"+a+"padplus"],f=t["_"+a+"padminus"],h={x:1,y:-1}[a]*t[a+"shift"],p=3*t.arrowsize*t.arrowwidth||0,d=p+h,m=p-h,g=3*t.startarrowsize*t.arrowwidth||0,v=g+h,y=g-h;if(c===l){var x=i.findExtremes(e,[e.r2c(o)],{ppadplus:d,ppadminus:m}),b=i.findExtremes(e,[e.r2c(s)],{ppadplus:Math.max(u,v),ppadminus:Math.max(f,y)});r={min:[x.min[0],b.min[0]],max:[x.max[0],b.max[0]]}}else v=s?v+s:v,y=s?y-s:y,r=i.findExtremes(e,[e.r2c(o)],{ppadplus:Math.max(u,d,v),ppadminus:Math.max(f,m,y)});t._extremes[n]=r}e.exports=function(t){var e=t._fullLayout;if(n.filterVisible(e.annotations).length&&t._fullData.length)return n.syncOrAsync([a,o],t)}},{"../../lib":795,"../../plots/cartesian/axes":845,"./draw":647}],643:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../registry"),a=t("../../plot_api/plot_template").arrayEditor;function o(t,e){var r,n,i,a,o,l,c,u=t._fullLayout.annotations,f=[],h=[],p=[],d=(e||[]).length;for(r=0;r0||r.explicitOff.length>0},onClick:function(t,e){var r,s,l=o(t,e),c=l.on,u=l.off.concat(l.explicitOff),f={},h=t._fullLayout.annotations;if(!c.length&&!u.length)return;for(r=0;r2/3?"right":"center"),{center:0,middle:0,left:.5,bottom:-.5,right:-.5,top:.5}[e]}for(var W=!1,X=["x","y"],Z=0;Z1)&&(nt===rt?((pt=it.r2fraction(e["a"+et]))<0||pt>1)&&(W=!0):W=!0),J=it._offset+it.r2p(e[et]),$=.5}else{var dt="domain"===ht;"x"===et?(Q=e[et],J=dt?it._offset+it._length*Q:J=T.l+T.w*Q):(Q=1-e[et],J=dt?it._offset+it._length*Q:J=T.t+T.h*Q),$=e.showarrow?.5:Q}if(e.showarrow){ft.head=J;var mt=e["a"+et];if(tt=ot*H(.5,e.xanchor)-st*H(.5,e.yanchor),nt===rt){var gt=l.getRefType(nt);"domain"===gt?("y"===et&&(mt=1-mt),ft.tail=it._offset+it._length*mt):"paper"===gt?"y"===et?(mt=1-mt,ft.tail=T.t+T.h*mt):ft.tail=T.l+T.w*mt:ft.tail=it._offset+it.r2p(mt),K=tt}else ft.tail=J+mt,K=tt+mt;ft.text=ft.tail+tt;var vt=w["x"===et?"width":"height"];if("paper"===rt&&(ft.head=o.constrain(ft.head,1,vt-1)),"pixel"===nt){var yt=-Math.max(ft.tail-3,ft.text),xt=Math.min(ft.tail+3,ft.text)-vt;yt>0?(ft.tail+=yt,ft.text+=yt):xt>0&&(ft.tail-=xt,ft.text-=xt)}ft.tail+=ut,ft.head+=ut}else K=tt=lt*H($,ct),ft.text=J+tt;ft.text+=ut,tt+=ut,K+=ut,e["_"+et+"padplus"]=lt/2+K,e["_"+et+"padminus"]=lt/2-K,e["_"+et+"size"]=lt,e["_"+et+"shift"]=tt}if(W)R.remove();else{var bt=0,_t=0;if("left"!==e.align&&(bt=(M-b)*("center"===e.align?.5:1)),"top"!==e.valign&&(_t=(D-_)*("middle"===e.valign?.5:1)),f)n.select("svg").attr({x:N+bt-1,y:N+_t}).call(u.setClipUrl,U?L:null,t);else{var wt=N+_t-m.top,Tt=N+bt-m.left;G.call(h.positionText,Tt,wt).call(u.setClipUrl,U?L:null,t)}V.select("rect").call(u.setRect,N,N,M,D),j.call(u.setRect,F/2,F/2,B-F,q-F),R.call(u.setTranslate,Math.round(C.x.text-B/2),Math.round(C.y.text-q/2)),O.attr({transform:"rotate("+P+","+C.x.text+","+C.y.text+")"});var kt,Mt=function(r,n){I.selectAll(".annotation-arrow-g").remove();var l=C.x.head,f=C.y.head,h=C.x.tail+r,p=C.y.tail+n,m=C.x.text+r,b=C.y.text+n,_=o.rotationXYMatrix(P,m,b),w=o.apply2DTransform(_),M=o.apply2DTransform2(_),L=+j.attr("width"),z=+j.attr("height"),D=m-.5*L,F=D+L,B=b-.5*z,N=B+z,U=[[D,B,D,N],[D,N,F,N],[F,N,F,B],[F,B,D,B]].map(M);if(!U.reduce((function(t,e){return t^!!o.segmentsIntersect(l,f,l+1e6,f+1e6,e[0],e[1],e[2],e[3])}),!1)){U.forEach((function(t){var e=o.segmentsIntersect(h,p,l,f,t[0],t[1],t[2],t[3]);e&&(h=e.x,p=e.y)}));var V=e.arrowwidth,q=e.arrowcolor,H=e.arrowside,G=I.append("g").style({opacity:c.opacity(q)}).classed("annotation-arrow-g",!0),Y=G.append("path").attr("d","M"+h+","+p+"L"+l+","+f).style("stroke-width",V+"px").call(c.stroke,c.rgb(q));if(g(Y,H,e),k.annotationPosition&&Y.node().parentNode&&!a){var W=l,X=f;if(e.standoff){var Z=Math.sqrt(Math.pow(l-h,2)+Math.pow(f-p,2));W+=e.standoff*(h-l)/Z,X+=e.standoff*(p-f)/Z}var J,K,Q=G.append("path").classed("annotation-arrow",!0).classed("anndrag",!0).classed("cursor-move",!0).attr({d:"M3,3H-3V-3H3ZM0,0L"+(h-W)+","+(p-X),transform:s(W,X)}).style("stroke-width",V+6+"px").call(c.stroke,"rgba(0,0,0,0)").call(c.fill,"rgba(0,0,0,0)");d.init({element:Q.node(),gd:t,prepFn:function(){var t=u.getTranslate(R);J=t.x,K=t.y,v&&v.autorange&&A(v._name+".autorange",!0),x&&x.autorange&&A(x._name+".autorange",!0)},moveFn:function(t,r){var n=w(J,K),i=n[0]+t,a=n[1]+r;R.call(u.setTranslate,i,a),S("x",y(v,t,"x",T,e)),S("y",y(x,r,"y",T,e)),e.axref===e.xref&&S("ax",y(v,t,"ax",T,e)),e.ayref===e.yref&&S("ay",y(x,r,"ay",T,e)),G.attr("transform",s(t,r)),O.attr({transform:"rotate("+P+","+i+","+a+")"})},doneFn:function(){i.call("_guiRelayout",t,E());var e=document.querySelector(".js-notes-box-panel");e&&e.redraw(e.selectedObj)}})}}};if(e.showarrow&&Mt(0,0),z)d.init({element:R.node(),gd:t,prepFn:function(){kt=O.attr("transform")},moveFn:function(t,r){var n="pointer";if(e.showarrow)e.axref===e.xref?S("ax",y(v,t,"ax",T,e)):S("ax",e.ax+t),e.ayref===e.yref?S("ay",y(x,r,"ay",T.w,e)):S("ay",e.ay+r),Mt(t,r);else{if(a)return;var i,o;if(v)i=y(v,t,"x",T,e);else{var l=e._xsize/T.w,c=e.x+(e._xshift-e.xshift)/T.w-l/2;i=d.align(c+t/T.w,l,0,1,e.xanchor)}if(x)o=y(x,r,"y",T,e);else{var u=e._ysize/T.h,f=e.y-(e._yshift+e.yshift)/T.h-u/2;o=d.align(f-r/T.h,u,0,1,e.yanchor)}S("x",i),S("y",o),v&&x||(n=d.getCursor(v?.5:i,x?.5:o,e.xanchor,e.yanchor))}O.attr({transform:s(t,r)+kt}),p(R,n)},clickFn:function(r,n){e.captureevents&&t.emit("plotly_clickannotation",Y(n))},doneFn:function(){p(R),i.call("_guiRelayout",t,E());var e=document.querySelector(".js-notes-box-panel");e&&e.redraw(e.selectedObj)}})}}}e.exports={draw:function(t){var e=t._fullLayout;e._infolayer.selectAll(".annotation").remove();for(var r=0;r=0,x=e.indexOf("end")>=0,b=d.backoff*g+r.standoff,_=m.backoff*v+r.startstandoff;if("line"===p.nodeName){o={x:+t.attr("x1"),y:+t.attr("y1")},u={x:+t.attr("x2"),y:+t.attr("y2")};var w=o.x-u.x,T=o.y-u.y;if(h=(f=Math.atan2(T,w))+Math.PI,b&&_&&b+_>Math.sqrt(w*w+T*T))return void z();if(b){if(b*b>w*w+T*T)return void z();var k=b*Math.cos(f),M=b*Math.sin(f);u.x+=k,u.y+=M,t.attr({x2:u.x,y2:u.y})}if(_){if(_*_>w*w+T*T)return void z();var A=_*Math.cos(f),S=_*Math.sin(f);o.x-=A,o.y-=S,t.attr({x1:o.x,y1:o.y})}}else if("path"===p.nodeName){var E=p.getTotalLength(),L="";if(E1){c=!0;break}}c?t.fullLayout._infolayer.select(".annotation-"+t.id+'[data-index="'+s+'"]').remove():(l._pdata=i(t.glplot.cameraParams,[e.xaxis.r2l(l.x)*r[0],e.yaxis.r2l(l.y)*r[1],e.zaxis.r2l(l.z)*r[2]]),n(t.graphDiv,l,s,t.id,l._xa,l._ya))}}},{"../../plots/gl3d/project":896,"../annotations/draw":647}],654:[function(t,e,r){"use strict";var n=t("../../registry"),i=t("../../lib");e.exports={moduleType:"component",name:"annotations3d",schema:{subplots:{scene:{annotations:t("./attributes")}}},layoutAttributes:t("./attributes"),handleDefaults:t("./defaults"),includeBasePlot:function(t,e){var r=n.subplotsRegistry.gl3d;if(!r)return;for(var a=r.attrRegex,o=Object.keys(t),s=0;s=0))return t;if(3===o)n[o]>1&&(n[o]=1);else if(n[o]>=1)return t}var s=Math.round(255*n[0])+", "+Math.round(255*n[1])+", "+Math.round(255*n[2]);return a?"rgba("+s+", "+n[3]+")":"rgb("+s+")"}o.tinyRGB=function(t){var e=t.toRgb();return"rgb("+Math.round(e.r)+", "+Math.round(e.g)+", "+Math.round(e.b)+")"},o.rgb=function(t){return o.tinyRGB(n(t))},o.opacity=function(t){return t?n(t).getAlpha():0},o.addOpacity=function(t,e){var r=n(t).toRgb();return"rgba("+Math.round(r.r)+", "+Math.round(r.g)+", "+Math.round(r.b)+", "+e+")"},o.combine=function(t,e){var r=n(t).toRgb();if(1===r.a)return n(t).toRgbString();var i=n(e||c).toRgb(),a=1===i.a?i:{r:255*(1-i.a)+i.r*i.a,g:255*(1-i.a)+i.g*i.a,b:255*(1-i.a)+i.b*i.a},o={r:a.r*(1-r.a)+r.r*r.a,g:a.g*(1-r.a)+r.g*r.a,b:a.b*(1-r.a)+r.b*r.a};return n(o).toRgbString()},o.contrast=function(t,e,r){var i=n(t);return 1!==i.getAlpha()&&(i=n(o.combine(t,c))),(i.isDark()?e?i.lighten(e):c:r?i.darken(r):l).toString()},o.stroke=function(t,e){var r=n(e);t.style({stroke:o.tinyRGB(r),"stroke-opacity":r.getAlpha()})},o.fill=function(t,e){var r=n(e);t.style({fill:o.tinyRGB(r),"fill-opacity":r.getAlpha()})},o.clean=function(t){if(t&&"object"==typeof t){var e,r,n,i,s=Object.keys(t);for(e=0;e0?n>=l:n<=l));i++)n>u&&n0?n>=l:n<=l));i++)n>r[0]&&n1){var J=Math.pow(10,Math.floor(Math.log(Z)/Math.LN10));W*=J*c.roundUp(Z/J,[2,5,10]),(Math.abs(C.start)/C.size+1e-6)%1<2e-6&&(Y.tick0=0)}Y.dtick=W}Y.domain=[q+j,q+F-j],Y.setScale(),t.attr("transform",u(Math.round(l.l),Math.round(l.t)));var K,Q=t.select("."+M.cbtitleunshift).attr("transform",u(-Math.round(l.l),-Math.round(l.t))),$=t.select("."+M.cbaxis),tt=0;function et(n,i){var a={propContainer:Y,propName:e._propPrefix+"title",traceIndex:e._traceIndex,_meta:e._meta,placeholder:o._dfltTitle.colorbar,containerGroup:t.select("."+M.cbtitle)},s="h"===n.charAt(0)?n.substr(1):"h"+n;t.selectAll("."+s+",."+s+"-math-group").remove(),m.draw(r,n,f(a,i||{}))}return c.syncOrAsync([a.previousPromises,function(){if(-1!==["top","bottom"].indexOf(A)){var t,r=l.l+(e.x+B)*l.w,n=Y.title.font.size;t="top"===A?(1-(q+F-j))*l.h+l.t+3+.75*n:(1-(q+j))*l.h+l.t-3-.25*n,et(Y._id+"title",{attributes:{x:r,y:t,"text-anchor":"start"}})}},function(){if(-1!==["top","bottom"].indexOf(A)){var a=t.select("."+M.cbtitle),o=a.select("text"),f=[-e.outlinewidth/2,e.outlinewidth/2],h=a.select(".h"+Y._id+"title-math-group").node(),d=15.6;if(o.node()&&(d=parseInt(o.node().style.fontSize,10)*w),h?(tt=p.bBox(h).height)>d&&(f[1]-=(tt-d)/2):o.node()&&!o.classed(M.jsPlaceholder)&&(tt=p.bBox(o.node()).height),tt){if(tt+=5,"top"===A)Y.domain[1]-=tt/l.h,f[1]*=-1;else{Y.domain[0]+=tt/l.h;var m=g.lineCount(o);f[1]+=(1-m)*d}a.attr("transform",u(f[0],f[1])),Y.setScale()}}t.selectAll("."+M.cbfills+",."+M.cblines).attr("transform",u(0,Math.round(l.h*(1-Y.domain[1])))),$.attr("transform",u(0,Math.round(-l.t)));var y=t.select("."+M.cbfills).selectAll("rect."+M.cbfill).attr("style","").data(I);y.enter().append("rect").classed(M.cbfill,!0).style("stroke","none"),y.exit().remove();var x=S.map(Y.c2p).map(Math.round).sort((function(t,e){return t-e}));y.each((function(t,a){var o=[0===a?S[0]:(I[a]+I[a-1])/2,a===I.length-1?S[1]:(I[a]+I[a+1])/2].map(Y.c2p).map(Math.round);o[1]=c.constrain(o[1]+(o[1]>o[0])?1:-1,x[0],x[1]);var s=n.select(this).attr({x:U,width:Math.max(z,2),y:n.min(o),height:Math.max(n.max(o)-n.min(o),2)});if(e._fillgradient)p.gradient(s,r,e._id,"vertical",e._fillgradient,"fill");else{var l=L(t).replace("e-","");s.attr("fill",i(l).toHexString())}}));var b=t.select("."+M.cblines).selectAll("path."+M.cbline).data(v.color&&v.width?O:[]);b.enter().append("path").classed(M.cbline,!0),b.exit().remove(),b.each((function(t){n.select(this).attr("d","M"+U+","+(Math.round(Y.c2p(t))+v.width/2%1)+"h"+z).call(p.lineGroupStyle,v.width,E(t),v.dash)})),$.selectAll("g."+Y._id+"tick,path").remove();var _=U+z+(e.outlinewidth||0)/2-("outside"===e.ticks?1:0),T=s.calcTicks(Y),k=s.getTickSigns(Y)[2];return s.drawTicks(r,Y,{vals:"inside"===Y.ticks?s.clipEnds(Y,T):T,layer:$,path:s.makeTickPath(Y,_,k),transFn:s.makeTransTickFn(Y)}),s.drawLabels(r,Y,{vals:T,layer:$,transFn:s.makeTransTickLabelFn(Y),labelFns:s.makeLabelFns(Y,_)})},function(){if(-1===["top","bottom"].indexOf(A)){var t=Y.title.font.size,e=Y._offset+Y._length/2,i=l.l+(Y.position||0)*l.w+("right"===Y.side?10+t*(Y.showticklabels?1:.5):-10-t*(Y.showticklabels?.5:0));et("h"+Y._id+"title",{avoid:{selection:n.select(r).selectAll("g."+Y._id+"tick"),side:A,offsetLeft:l.l,offsetTop:0,maxShift:o.width},attributes:{x:i,y:e,"text-anchor":"middle"},transform:{rotate:"-90",offset:0}})}},a.previousPromises,function(){var n=z+e.outlinewidth/2;if(-1===Y.ticklabelposition.indexOf("inside")&&(n+=p.bBox($.node()).width),(K=Q.select("text")).node()&&!K.classed(M.jsPlaceholder)){var i,o=Q.select(".h"+Y._id+"title-math-group").node();i=o&&-1!==["top","bottom"].indexOf(A)?p.bBox(o).width:p.bBox(Q.node()).right-U-l.l,n=Math.max(n,i)}var s=2*e.xpad+n+e.borderwidth+e.outlinewidth/2,c=H-G;t.select("."+M.cbbg).attr({x:U-e.xpad-(e.borderwidth+e.outlinewidth)/2,y:G-N,width:Math.max(s,2),height:Math.max(c+2*N,2)}).call(d.fill,e.bgcolor).call(d.stroke,e.bordercolor).style("stroke-width",e.borderwidth),t.selectAll("."+M.cboutline).attr({x:U,y:G+e.ypad+("top"===A?tt:0),width:Math.max(z,2),height:Math.max(c-2*e.ypad-tt,2)}).call(d.stroke,e.outlinecolor).style({fill:"none","stroke-width":e.outlinewidth});var f=({center:.5,right:1}[e.xanchor]||0)*s;t.attr("transform",u(l.l-f,l.t));var h={},m=T[e.yanchor],g=k[e.yanchor];"pixels"===e.lenmode?(h.y=e.y,h.t=c*m,h.b=c*g):(h.t=h.b=0,h.yt=e.y+e.len*m,h.yb=e.y-e.len*g);var v=T[e.xanchor],y=k[e.xanchor];if("pixels"===e.thicknessmode)h.x=e.x,h.l=s*v,h.r=s*y;else{var x=s-z;h.l=x*v,h.r=x*y,h.xl=e.x-e.thickness*v,h.xr=e.x+e.thickness*y}a.autoMargin(r,e._id,h)}],r)}(r,e,t);v&&v.then&&(t._promises||[]).push(v),t._context.edits.colorbarPosition&&function(t,e,r){var n,i,a,s=r._fullLayout._size;l.init({element:t.node(),gd:r,prepFn:function(){n=t.attr("transform"),h(t)},moveFn:function(r,o){t.attr("transform",n+u(r,o)),i=l.align(e._xLeftFrac+r/s.w,e._thickFrac,0,1,e.xanchor),a=l.align(e._yBottomFrac-o/s.h,e._lenFrac,0,1,e.yanchor);var c=l.getCursor(i,a,e.xanchor,e.yanchor);h(t,c)},doneFn:function(){if(h(t),void 0!==i&&void 0!==a){var n={};n[e._propPrefix+"x"]=i,n[e._propPrefix+"y"]=a,void 0!==e._traceIndex?o.call("_guiRestyle",r,n,e._traceIndex):o.call("_guiRelayout",r,n)}}})}(r,e,t)})),e.exit().each((function(e){a.autoMargin(t,e._id)})).remove(),e.order()}}},{"../../constants/alignment":763,"../../lib":795,"../../lib/extend":785,"../../lib/setcursor":816,"../../lib/svg_text_utils":820,"../../plots/cartesian/axes":845,"../../plots/cartesian/axis_defaults":847,"../../plots/cartesian/layout_attributes":859,"../../plots/cartesian/position_defaults":862,"../../plots/plots":909,"../../registry":923,"../color":658,"../colorscale/helpers":669,"../dragelement":677,"../drawing":680,"../titles":756,"./constants":660,"@plotly/d3":57,tinycolor2:590}],663:[function(t,e,r){"use strict";var n=t("../../lib");e.exports=function(t){return n.isPlainObject(t.colorbar)}},{"../../lib":795}],664:[function(t,e,r){"use strict";e.exports={moduleType:"component",name:"colorbar",attributes:t("./attributes"),supplyDefaults:t("./defaults"),draw:t("./draw").draw,hasColorbar:t("./has_colorbar")}},{"./attributes":659,"./defaults":661,"./draw":662,"./has_colorbar":663}],665:[function(t,e,r){"use strict";var n=t("../colorbar/attributes"),i=t("../../lib/regex").counter,a=t("./scales.js").scales;Object.keys(a);function o(t){return"`"+t+"`"}e.exports=function(t,e){t=t||"";var r,s=(e=e||{}).cLetter||"c",l=("onlyIfNumerical"in e?e.onlyIfNumerical:Boolean(t),"noScale"in e?e.noScale:"marker.line"===t),c="showScaleDflt"in e?e.showScaleDflt:"z"===s,u="string"==typeof e.colorscaleDflt?a[e.colorscaleDflt]:null,f=e.editTypeOverride||"",h=t?t+".":"";"colorAttr"in e?(r=e.colorAttr,e.colorAttr):o(h+(r={z:"z",c:"color"}[s]));var p=s+"auto",d=s+"min",m=s+"max",g=s+"mid",v=(o(h+p),o(h+d),o(h+m),{});v[d]=v[m]=void 0;var y={};y[p]=!1;var x={};return"color"===r&&(x.color={valType:"color",arrayOk:!0,editType:f||"style"},e.anim&&(x.color.anim=!0)),x[p]={valType:"boolean",dflt:!0,editType:"calc",impliedEdits:v},x[d]={valType:"number",dflt:null,editType:f||"plot",impliedEdits:y},x[m]={valType:"number",dflt:null,editType:f||"plot",impliedEdits:y},x[g]={valType:"number",dflt:null,editType:"calc",impliedEdits:v},x.colorscale={valType:"colorscale",editType:"calc",dflt:u,impliedEdits:{autocolorscale:!1}},x.autocolorscale={valType:"boolean",dflt:!1!==e.autoColorDflt,editType:"calc",impliedEdits:{colorscale:void 0}},x.reversescale={valType:"boolean",dflt:!1,editType:"plot"},l||(x.showscale={valType:"boolean",dflt:c,editType:"calc"},x.colorbar=n),e.noColorAxis||(x.coloraxis={valType:"subplotid",regex:i("coloraxis"),dflt:null,editType:"calc"}),x}},{"../../lib/regex":812,"../colorbar/attributes":659,"./scales.js":673}],666:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("../../lib"),a=t("./helpers").extractOpts;e.exports=function(t,e,r){var o,s=t._fullLayout,l=r.vals,c=r.containerStr,u=c?i.nestedProperty(e,c).get():e,f=a(u),h=!1!==f.auto,p=f.min,d=f.max,m=f.mid,g=function(){return i.aggNums(Math.min,null,l)},v=function(){return i.aggNums(Math.max,null,l)};(void 0===p?p=g():h&&(p=u._colorAx&&n(p)?Math.min(p,g()):g()),void 0===d?d=v():h&&(d=u._colorAx&&n(d)?Math.max(d,v()):v()),h&&void 0!==m&&(d-m>m-p?p=m-(d-m):d-m=0?s.colorscale.sequential:s.colorscale.sequentialminus,f._sync("colorscale",o))}},{"../../lib":795,"./helpers":669,"fast-isnumeric":240}],667:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./helpers").hasColorscale,a=t("./helpers").extractOpts;e.exports=function(t,e){function r(t,e){var r=t["_"+e];void 0!==r&&(t[e]=r)}function o(t,i){var o=i.container?n.nestedProperty(t,i.container).get():t;if(o)if(o.coloraxis)o._colorAx=e[o.coloraxis];else{var s=a(o),l=s.auto;(l||void 0===s.min)&&r(o,i.min),(l||void 0===s.max)&&r(o,i.max),s.autocolorscale&&r(o,"colorscale")}}for(var s=0;s=0;n--,i++){var a=t[n];r[i]=[1-a[0],a[1]]}return r}function d(t,e){e=e||{};for(var r=t.domain,o=t.range,l=o.length,c=new Array(l),u=0;u4/3-s?o:s}},{}],675:[function(t,e,r){"use strict";var n=t("../../lib"),i=[["sw-resize","s-resize","se-resize"],["w-resize","move","e-resize"],["nw-resize","n-resize","ne-resize"]];e.exports=function(t,e,r,a){return t="left"===r?0:"center"===r?1:"right"===r?2:n.constrain(Math.floor(3*t),0,2),e="bottom"===a?0:"middle"===a?1:"top"===a?2:n.constrain(Math.floor(3*e),0,2),i[e][t]}},{"../../lib":795}],676:[function(t,e,r){"use strict";r.selectMode=function(t){return"lasso"===t||"select"===t},r.drawMode=function(t){return"drawclosedpath"===t||"drawopenpath"===t||"drawline"===t||"drawrect"===t||"drawcircle"===t},r.openMode=function(t){return"drawline"===t||"drawopenpath"===t},r.rectMode=function(t){return"select"===t||"drawline"===t||"drawrect"===t||"drawcircle"===t},r.freeMode=function(t){return"lasso"===t||"drawclosedpath"===t||"drawopenpath"===t},r.selectingOrDrawing=function(t){return r.freeMode(t)||r.rectMode(t)}},{}],677:[function(t,e,r){"use strict";var n=t("mouse-event-offset"),i=t("has-hover"),a=t("has-passive-events"),o=t("../../lib").removeElement,s=t("../../plots/cartesian/constants"),l=e.exports={};l.align=t("./align"),l.getCursor=t("./cursor");var c=t("./unhover");function u(){var t=document.createElement("div");t.className="dragcover";var e=t.style;return e.position="fixed",e.left=0,e.right=0,e.top=0,e.bottom=0,e.zIndex=999999999,e.background="none",document.body.appendChild(t),t}function f(t){return n(t.changedTouches?t.changedTouches[0]:t,document.body)}l.unhover=c.wrapped,l.unhoverRaw=c.raw,l.init=function(t){var e,r,n,c,h,p,d,m,g=t.gd,v=1,y=g._context.doubleClickDelay,x=t.element;g._mouseDownTime||(g._mouseDownTime=0),x.style.pointerEvents="all",x.onmousedown=_,a?(x._ontouchstart&&x.removeEventListener("touchstart",x._ontouchstart),x._ontouchstart=_,x.addEventListener("touchstart",_,{passive:!1})):x.ontouchstart=_;var b=t.clampFn||function(t,e,r){return Math.abs(t)y&&(v=Math.max(v-1,1)),g._dragged)t.doneFn&&t.doneFn();else if(t.clickFn&&t.clickFn(v,p),!m){var r;try{r=new MouseEvent("click",e)}catch(t){var n=f(e);(r=document.createEvent("MouseEvents")).initMouseEvent("click",e.bubbles,e.cancelable,e.view,e.detail,e.screenX,e.screenY,n[0],n[1],e.ctrlKey,e.altKey,e.shiftKey,e.metaKey,e.button,e.relatedTarget)}d.dispatchEvent(r)}g._dragging=!1,g._dragged=!1}else g._dragged=!1}},l.coverSlip=u},{"../../lib":795,"../../plots/cartesian/constants":851,"./align":674,"./cursor":675,"./unhover":678,"has-hover":434,"has-passive-events":435,"mouse-event-offset":463}],678:[function(t,e,r){"use strict";var n=t("../../lib/events"),i=t("../../lib/throttle"),a=t("../../lib/dom").getGraphDiv,o=t("../fx/constants"),s=e.exports={};s.wrapped=function(t,e,r){(t=a(t))._fullLayout&&i.clear(t._fullLayout._uid+o.HOVERID),s.raw(t,e,r)},s.raw=function(t,e){var r=t._fullLayout,i=t._hoverdata;e||(e={}),e.target&&!t._dragged&&!1===n.triggerHandler(t,"plotly_beforehover",e)||(r._hoverlayer.selectAll("g").remove(),r._hoverlayer.selectAll("line").remove(),r._hoverlayer.selectAll("circle").remove(),t._hoverdata=void 0,e.target&&i&&t.emit("plotly_unhover",{event:e,points:i}))}},{"../../lib/dom":783,"../../lib/events":784,"../../lib/throttle":821,"../fx/constants":692}],679:[function(t,e,r){"use strict";r.dash={valType:"string",values:["solid","dot","dash","longdash","dashdot","longdashdot"],dflt:"solid",editType:"style"},r.pattern={shape:{valType:"enumerated",values:["","/","\\","x","-","|","+","."],dflt:"",arrayOk:!0,editType:"style"},bgcolor:{valType:"color",arrayOk:!0,editType:"style"},size:{valType:"number",min:0,dflt:8,arrayOk:!0,editType:"style"},solidity:{valType:"number",min:0,max:1,dflt:.3,arrayOk:!0,editType:"style"},editType:"style"}},{}],680:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("fast-isnumeric"),a=t("tinycolor2"),o=t("../../registry"),s=t("../color"),l=t("../colorscale"),c=t("../../lib"),u=c.strTranslate,f=t("../../lib/svg_text_utils"),h=t("../../constants/xmlns_namespaces"),p=t("../../constants/alignment").LINE_SPACING,d=t("../../constants/interactions").DESELECTDIM,m=t("../../traces/scatter/subtypes"),g=t("../../traces/scatter/make_bubble_size_func"),v=t("../../components/fx/helpers").appendArrayPointValue,y=e.exports={};y.font=function(t,e,r,n){c.isPlainObject(e)&&(n=e.color,r=e.size,e=e.family),e&&t.style("font-family",e),r+1&&t.style("font-size",r+"px"),n&&t.call(s.fill,n)},y.setPosition=function(t,e,r){t.attr("x",e).attr("y",r)},y.setSize=function(t,e,r){t.attr("width",e).attr("height",r)},y.setRect=function(t,e,r,n,i){t.call(y.setPosition,e,r).call(y.setSize,n,i)},y.translatePoint=function(t,e,r,n){var a=r.c2p(t.x),o=n.c2p(t.y);return!!(i(a)&&i(o)&&e.node())&&("text"===e.node().nodeName?e.attr("x",a).attr("y",o):e.attr("transform",u(a,o)),!0)},y.translatePoints=function(t,e,r){t.each((function(t){var i=n.select(this);y.translatePoint(t,i,e,r)}))},y.hideOutsideRangePoint=function(t,e,r,n,i,a){e.attr("display",r.isPtWithinRange(t,i)&&n.isPtWithinRange(t,a)?null:"none")},y.hideOutsideRangePoints=function(t,e){if(e._hasClipOnAxisFalse){var r=e.xaxis,i=e.yaxis;t.each((function(e){var a=e[0].trace,s=a.xcalendar,l=a.ycalendar,c=o.traceIs(a,"bar-like")?".bartext":".point,.textpoint";t.selectAll(c).each((function(t){y.hideOutsideRangePoint(t,n.select(this),r,i,s,l)}))}))}},y.crispRound=function(t,e,r){return e&&i(e)?t._context.staticPlot?e:e<1?1:Math.round(e):r||0},y.singleLineStyle=function(t,e,r,n,i){e.style("fill","none");var a=(((t||[])[0]||{}).trace||{}).line||{},o=r||a.width||0,l=i||a.dash||"";s.stroke(e,n||a.color),y.dashLine(e,l,o)},y.lineGroupStyle=function(t,e,r,i){t.style("fill","none").each((function(t){var a=(((t||[])[0]||{}).trace||{}).line||{},o=e||a.width||0,l=i||a.dash||"";n.select(this).call(s.stroke,r||a.color).call(y.dashLine,l,o)}))},y.dashLine=function(t,e,r){r=+r||0,e=y.dashStyle(e,r),t.style({"stroke-dasharray":e,"stroke-width":r+"px"})},y.dashStyle=function(t,e){e=+e||1;var r=Math.max(e,3);return"solid"===t?t="":"dot"===t?t=r+"px,"+r+"px":"dash"===t?t=3*r+"px,"+3*r+"px":"longdash"===t?t=5*r+"px,"+5*r+"px":"dashdot"===t?t=3*r+"px,"+r+"px,"+r+"px,"+r+"px":"longdashdot"===t&&(t=5*r+"px,"+2*r+"px,"+r+"px,"+2*r+"px"),t},y.singleFillStyle=function(t){var e=(((n.select(t.node()).data()[0]||[])[0]||{}).trace||{}).fillcolor;e&&t.call(s.fill,e)},y.fillGroupStyle=function(t){t.style("stroke-width",0).each((function(t){var e=n.select(this);t[0].trace&&e.call(s.fill,t[0].trace.fillcolor)}))};var x=t("./symbol_defs");y.symbolNames=[],y.symbolFuncs=[],y.symbolNeedLines={},y.symbolNoDot={},y.symbolNoFill={},y.symbolList=[],Object.keys(x).forEach((function(t){var e=x[t],r=e.n;y.symbolList.push(r,String(r),t,r+100,String(r+100),t+"-open"),y.symbolNames[r]=t,y.symbolFuncs[r]=e.f,e.needLine&&(y.symbolNeedLines[r]=!0),e.noDot?y.symbolNoDot[r]=!0:y.symbolList.push(r+200,String(r+200),t+"-dot",r+300,String(r+300),t+"-open-dot"),e.noFill&&(y.symbolNoFill[r]=!0)}));var b=y.symbolNames.length;function _(t,e){var r=t%100;return y.symbolFuncs[r](e)+(t>=200?"M0,0.5L0.5,0L0,-0.5L-0.5,0Z":"")}y.symbolNumber=function(t){if(i(t))t=+t;else if("string"==typeof t){var e=0;t.indexOf("-open")>0&&(e=100,t=t.replace("-open","")),t.indexOf("-dot")>0&&(e+=200,t=t.replace("-dot","")),(t=y.symbolNames.indexOf(t))>=0&&(t+=e)}return t%100>=b||t>=400?0:Math.floor(Math.max(t,0))};var w={x1:1,x2:0,y1:0,y2:0},T={x1:0,x2:0,y1:1,y2:0},k=n.format("~.1f"),M={radial:{node:"radialGradient"},radialreversed:{node:"radialGradient",reversed:!0},horizontal:{node:"linearGradient",attrs:w},horizontalreversed:{node:"linearGradient",attrs:w,reversed:!0},vertical:{node:"linearGradient",attrs:T},verticalreversed:{node:"linearGradient",attrs:T,reversed:!0}};y.gradient=function(t,e,r,i,o,l){for(var u=o.length,f=M[i],h=new Array(u),p=0;p"+v(t);d._gradientUrlQueryParts[y]=1},y.pattern=function(t,e,r,i,a,o,s,l,u){var f,h,p,d,m,g,v,y,x,b,_,w=e._fullLayout,T="p"+w._uid+"-"+r,k={};switch(i){case"/":f=s*Math.sqrt(2),h=s*Math.sqrt(2),g="path",k={d:p="M-"+f/4+","+h/4+"l"+f/2+",-"+h/2+"M0,"+h+"L"+f+",0M"+f/4*3+","+h/4*5+"l"+f/2+",-"+h/2,stroke:o,"stroke-width":(d=l*s)+"px"};break;case"\\":f=s*Math.sqrt(2),h=s*Math.sqrt(2),g="path",k={d:p="M"+f/4*3+",-"+h/4+"l"+f/2+","+h/2+"M0,0L"+f+","+h+"M-"+f/4+","+h/4*3+"l"+f/2+","+h/2,stroke:o,"stroke-width":(d=l*s)+"px"};break;case"x":f=s*Math.sqrt(2),h=s*Math.sqrt(2),p="M-"+f/4+","+h/4+"l"+f/2+",-"+h/2+"M0,"+h+"L"+f+",0M"+f/4*3+","+h/4*5+"l"+f/2+",-"+h/2+"M"+f/4*3+",-"+h/4+"l"+f/2+","+h/2+"M0,0L"+f+","+h+"M-"+f/4+","+h/4*3+"l"+f/2+","+h/2,d=s-s*Math.sqrt(1-l),g="path",k={d:p,stroke:o,"stroke-width":d+"px"};break;case"|":g="path",g="path",k={d:p="M"+(f=s)/2+",0L"+f/2+","+(h=s),stroke:o,"stroke-width":(d=l*s)+"px"};break;case"-":g="path",g="path",k={d:p="M0,"+(h=s)/2+"L"+(f=s)+","+h/2,stroke:o,"stroke-width":(d=l*s)+"px"};break;case"+":g="path",p="M"+(f=s)/2+",0L"+f/2+","+(h=s)+"M0,"+h/2+"L"+f+","+h/2,d=s-s*Math.sqrt(1-l),g="path",k={d:p,stroke:o,"stroke-width":d+"px"};break;case".":f=s,h=s,l.pattern_filled";w._patternUrlQueryParts[A]=1},y.initGradients=function(t){var e=t._fullLayout;c.ensureSingle(e._defs,"g","gradients").selectAll("linearGradient,radialGradient").remove(),e._gradientUrlQueryParts={}},y.initPatterns=function(t){var e=t._fullLayout;c.ensureSingle(e._defs,"g","patterns").selectAll("pattern").remove(),e._patternUrlQueryParts={}},y.getPatternAttr=function(t,e,r){return t&&c.isArrayOrTypedArray(t)?e=100,e.attr("d",_(u,l))}var f,h,p,d=!1;if(t.so)p=o.outlierwidth,h=o.outliercolor,f=a.outliercolor;else{var m=(o||{}).width;p=(t.mlw+1||m+1||(t.trace?(t.trace.marker.line||{}).width:0)+1)-1||0,h="mlc"in t?t.mlcc=n.lineScale(t.mlc):c.isArrayOrTypedArray(o.color)?s.defaultLine:o.color,c.isArrayOrTypedArray(a.color)&&(f=s.defaultLine,d=!0),f="mc"in t?t.mcc=n.markerScale(t.mc):a.color||"rgba(0,0,0,0)",n.selectedColorFn&&(f=n.selectedColorFn(t))}if(t.om)e.call(s.stroke,f).style({"stroke-width":(p||1)+"px",fill:"none"});else{e.style("stroke-width",(t.isBlank?0:p)+"px");var g=a.gradient,v=t.mgt;v?d=!0:v=g&&g.type,c.isArrayOrTypedArray(v)&&(v=v[0],M[v]||(v=0));var x=a.pattern,b=x&&y.getPatternAttr(x.shape,t.i,"");if(v&&"none"!==v){var w=t.mgc;w?d=!0:w=g.color;var T=r.uid;d&&(T+="-"+t.i),y.gradient(e,i,T,v,[[0,w],[1,f]],"fill")}else if(b){var k=y.getPatternAttr(x.bgcolor,t.i,null),A=y.getPatternAttr(x.size,t.i,8),S=y.getPatternAttr(x.solidity,t.i,.3),E=c.isArrayOrTypedArray(x.shape)||c.isArrayOrTypedArray(x.bgcolor)||c.isArrayOrTypedArray(x.size)||c.isArrayOrTypedArray(x.solidity),L=r.uid;E&&(L+="-"+t.i),y.pattern(e,i,L,b,k,f,A,S,"fill")}else s.fill(e,f);p&&s.stroke(e,h)}},y.makePointStyleFns=function(t){var e={},r=t.marker;return e.markerScale=y.tryColorscale(r,""),e.lineScale=y.tryColorscale(r,"line"),o.traceIs(t,"symbols")&&(e.ms2mrc=m.isBubble(t)?g(t):function(){return(r.size||6)/2}),t.selectedpoints&&c.extendFlat(e,y.makeSelectedPointStyleFns(t)),e},y.makeSelectedPointStyleFns=function(t){var e={},r=t.selected||{},n=t.unselected||{},i=t.marker||{},a=r.marker||{},s=n.marker||{},l=i.opacity,u=a.opacity,f=s.opacity,h=void 0!==u,p=void 0!==f;(c.isArrayOrTypedArray(l)||h||p)&&(e.selectedOpacityFn=function(t){var e=void 0===t.mo?i.opacity:t.mo;return t.selected?h?u:e:p?f:d*e});var m=i.color,g=a.color,v=s.color;(g||v)&&(e.selectedColorFn=function(t){var e=t.mcc||m;return t.selected?g||e:v||e});var y=i.size,x=a.size,b=s.size,_=void 0!==x,w=void 0!==b;return o.traceIs(t,"symbols")&&(_||w)&&(e.selectedSizeFn=function(t){var e=t.mrc||y/2;return t.selected?_?x/2:e:w?b/2:e}),e},y.makeSelectedTextStyleFns=function(t){var e={},r=t.selected||{},n=t.unselected||{},i=t.textfont||{},a=r.textfont||{},o=n.textfont||{},l=i.color,c=a.color,u=o.color;return e.selectedTextColorFn=function(t){var e=t.tc||l;return t.selected?c||e:u||(c?e:s.addOpacity(e,d))},e},y.selectedPointStyle=function(t,e){if(t.size()&&e.selectedpoints){var r=y.makeSelectedPointStyleFns(e),i=e.marker||{},a=[];r.selectedOpacityFn&&a.push((function(t,e){t.style("opacity",r.selectedOpacityFn(e))})),r.selectedColorFn&&a.push((function(t,e){s.fill(t,r.selectedColorFn(e))})),r.selectedSizeFn&&a.push((function(t,e){var n=e.mx||i.symbol||0,a=r.selectedSizeFn(e);t.attr("d",_(y.symbolNumber(n),a)),e.mrc2=a})),a.length&&t.each((function(t){for(var e=n.select(this),r=0;r0?r:0}y.textPointStyle=function(t,e,r){if(t.size()){var i;if(e.selectedpoints){var a=y.makeSelectedTextStyleFns(e);i=a.selectedTextColorFn}var o=e.texttemplate,s=r._fullLayout;t.each((function(t){var a=n.select(this),l=o?c.extractOption(t,e,"txt","texttemplate"):c.extractOption(t,e,"tx","text");if(l||0===l){if(o){var u=e._module.formatLabels,h=u?u(t,e,s):{},p={};v(p,e,t.i);var d=e._meta||{};l=c.texttemplateString(l,h,s._d3locale,p,t,d)}var m=t.tp||e.textposition,g=E(t,e),x=i?i(t):t.tc||e.textfont.color;a.call(y.font,t.tf||e.textfont.family,g,x).text(l).call(f.convertToTspans,r).call(S,m,g,t.mrc)}else a.remove()}))}},y.selectedTextStyle=function(t,e){if(t.size()&&e.selectedpoints){var r=y.makeSelectedTextStyleFns(e);t.each((function(t){var i=n.select(this),a=r.selectedTextColorFn(t),o=t.tp||e.textposition,l=E(t,e);s.fill(i,a),S(i,o,l,t.mrc2||t.mrc)}))}};function L(t,e,r,i){var a=t[0]-e[0],o=t[1]-e[1],s=r[0]-e[0],l=r[1]-e[1],c=Math.pow(a*a+o*o,.25),u=Math.pow(s*s+l*l,.25),f=(u*u*a-c*c*s)*i,h=(u*u*o-c*c*l)*i,p=3*u*(c+u),d=3*c*(c+u);return[[n.round(e[0]+(p&&f/p),2),n.round(e[1]+(p&&h/p),2)],[n.round(e[0]-(d&&f/d),2),n.round(e[1]-(d&&h/d),2)]]}y.smoothopen=function(t,e){if(t.length<3)return"M"+t.join("L");var r,n="M"+t[0],i=[];for(r=1;r=1e4&&(y.savedBBoxes={},I=0),r&&(y.savedBBoxes[r]=g),I++,c.extendFlat({},g)},y.setClipUrl=function(t,e,r){t.attr("clip-path",z(e,r))},y.getTranslate=function(t){var e=(t[t.attr?"attr":"getAttribute"]("transform")||"").replace(/.*\btranslate\((-?\d*\.?\d*)[^-\d]*(-?\d*\.?\d*)[^\d].*/,(function(t,e,r){return[e,r].join(" ")})).split(" ");return{x:+e[0]||0,y:+e[1]||0}},y.setTranslate=function(t,e,r){var n=t.attr?"attr":"getAttribute",i=t.attr?"attr":"setAttribute",a=t[n]("transform")||"";return e=e||0,r=r||0,a=a.replace(/(\btranslate\(.*?\);?)/,"").trim(),a=(a+=u(e,r)).trim(),t[i]("transform",a),a},y.getScale=function(t){var e=(t[t.attr?"attr":"getAttribute"]("transform")||"").replace(/.*\bscale\((\d*\.?\d*)[^\d]*(\d*\.?\d*)[^\d].*/,(function(t,e,r){return[e,r].join(" ")})).split(" ");return{x:+e[0]||1,y:+e[1]||1}},y.setScale=function(t,e,r){var n=t.attr?"attr":"getAttribute",i=t.attr?"attr":"setAttribute",a=t[n]("transform")||"";return e=e||1,r=r||1,a=a.replace(/(\bscale\(.*?\);?)/,"").trim(),a=(a+="scale("+e+","+r+")").trim(),t[i]("transform",a),a};var D=/\s*sc.*/;y.setPointGroupScale=function(t,e,r){if(e=e||1,r=r||1,t){var n=1===e&&1===r?"":"scale("+e+","+r+")";t.each((function(){var t=(this.getAttribute("transform")||"").replace(D,"");t=(t+=n).trim(),this.setAttribute("transform",t)}))}};var R=/translate\([^)]*\)\s*$/;y.setTextPointsScale=function(t,e,r){t&&t.each((function(){var t,i=n.select(this),a=i.select("text");if(a.node()){var o=parseFloat(a.attr("x")||0),s=parseFloat(a.attr("y")||0),l=(i.attr("transform")||"").match(R);t=1===e&&1===r?[]:[u(o,s),"scale("+e+","+r+")",u(-o,-s)],l&&t.push(l),i.attr("transform",t.join(""))}}))}},{"../../components/fx/helpers":694,"../../constants/alignment":763,"../../constants/interactions":770,"../../constants/xmlns_namespaces":772,"../../lib":795,"../../lib/svg_text_utils":820,"../../registry":923,"../../traces/scatter/make_bubble_size_func":1216,"../../traces/scatter/subtypes":1224,"../color":658,"../colorscale":670,"./symbol_defs":681,"@plotly/d3":57,"fast-isnumeric":240,tinycolor2:590}],681:[function(t,e,r){"use strict";var n=t("@plotly/d3");e.exports={circle:{n:0,f:function(t){var e=n.round(t,2);return"M"+e+",0A"+e+","+e+" 0 1,1 0,-"+e+"A"+e+","+e+" 0 0,1 "+e+",0Z"}},square:{n:1,f:function(t){var e=n.round(t,2);return"M"+e+","+e+"H-"+e+"V-"+e+"H"+e+"Z"}},diamond:{n:2,f:function(t){var e=n.round(1.3*t,2);return"M"+e+",0L0,"+e+"L-"+e+",0L0,-"+e+"Z"}},cross:{n:3,f:function(t){var e=n.round(.4*t,2),r=n.round(1.2*t,2);return"M"+r+","+e+"H"+e+"V"+r+"H-"+e+"V"+e+"H-"+r+"V-"+e+"H-"+e+"V-"+r+"H"+e+"V-"+e+"H"+r+"Z"}},x:{n:4,f:function(t){var e=n.round(.8*t/Math.sqrt(2),2),r="l"+e+","+e,i="l"+e+",-"+e,a="l-"+e+",-"+e,o="l-"+e+","+e;return"M0,"+e+r+i+a+i+a+o+a+o+r+o+r+"Z"}},"triangle-up":{n:5,f:function(t){var e=n.round(2*t/Math.sqrt(3),2);return"M-"+e+","+n.round(t/2,2)+"H"+e+"L0,-"+n.round(t,2)+"Z"}},"triangle-down":{n:6,f:function(t){var e=n.round(2*t/Math.sqrt(3),2);return"M-"+e+",-"+n.round(t/2,2)+"H"+e+"L0,"+n.round(t,2)+"Z"}},"triangle-left":{n:7,f:function(t){var e=n.round(2*t/Math.sqrt(3),2);return"M"+n.round(t/2,2)+",-"+e+"V"+e+"L-"+n.round(t,2)+",0Z"}},"triangle-right":{n:8,f:function(t){var e=n.round(2*t/Math.sqrt(3),2);return"M-"+n.round(t/2,2)+",-"+e+"V"+e+"L"+n.round(t,2)+",0Z"}},"triangle-ne":{n:9,f:function(t){var e=n.round(.6*t,2),r=n.round(1.2*t,2);return"M-"+r+",-"+e+"H"+e+"V"+r+"Z"}},"triangle-se":{n:10,f:function(t){var e=n.round(.6*t,2),r=n.round(1.2*t,2);return"M"+e+",-"+r+"V"+e+"H-"+r+"Z"}},"triangle-sw":{n:11,f:function(t){var e=n.round(.6*t,2),r=n.round(1.2*t,2);return"M"+r+","+e+"H-"+e+"V-"+r+"Z"}},"triangle-nw":{n:12,f:function(t){var e=n.round(.6*t,2),r=n.round(1.2*t,2);return"M-"+e+","+r+"V-"+e+"H"+r+"Z"}},pentagon:{n:13,f:function(t){var e=n.round(.951*t,2),r=n.round(.588*t,2),i=n.round(-t,2),a=n.round(-.309*t,2);return"M"+e+","+a+"L"+r+","+n.round(.809*t,2)+"H-"+r+"L-"+e+","+a+"L0,"+i+"Z"}},hexagon:{n:14,f:function(t){var e=n.round(t,2),r=n.round(t/2,2),i=n.round(t*Math.sqrt(3)/2,2);return"M"+i+",-"+r+"V"+r+"L0,"+e+"L-"+i+","+r+"V-"+r+"L0,-"+e+"Z"}},hexagon2:{n:15,f:function(t){var e=n.round(t,2),r=n.round(t/2,2),i=n.round(t*Math.sqrt(3)/2,2);return"M-"+r+","+i+"H"+r+"L"+e+",0L"+r+",-"+i+"H-"+r+"L-"+e+",0Z"}},octagon:{n:16,f:function(t){var e=n.round(.924*t,2),r=n.round(.383*t,2);return"M-"+r+",-"+e+"H"+r+"L"+e+",-"+r+"V"+r+"L"+r+","+e+"H-"+r+"L-"+e+","+r+"V-"+r+"Z"}},star:{n:17,f:function(t){var e=1.4*t,r=n.round(.225*e,2),i=n.round(.951*e,2),a=n.round(.363*e,2),o=n.round(.588*e,2),s=n.round(-e,2),l=n.round(-.309*e,2),c=n.round(.118*e,2),u=n.round(.809*e,2);return"M"+r+","+l+"H"+i+"L"+a+","+c+"L"+o+","+u+"L0,"+n.round(.382*e,2)+"L-"+o+","+u+"L-"+a+","+c+"L-"+i+","+l+"H-"+r+"L0,"+s+"Z"}},hexagram:{n:18,f:function(t){var e=n.round(.66*t,2),r=n.round(.38*t,2),i=n.round(.76*t,2);return"M-"+i+",0l-"+r+",-"+e+"h"+i+"l"+r+",-"+e+"l"+r+","+e+"h"+i+"l-"+r+","+e+"l"+r+","+e+"h-"+i+"l-"+r+","+e+"l-"+r+",-"+e+"h-"+i+"Z"}},"star-triangle-up":{n:19,f:function(t){var e=n.round(t*Math.sqrt(3)*.8,2),r=n.round(.8*t,2),i=n.round(1.6*t,2),a=n.round(4*t,2),o="A "+a+","+a+" 0 0 1 ";return"M-"+e+","+r+o+e+","+r+o+"0,-"+i+o+"-"+e+","+r+"Z"}},"star-triangle-down":{n:20,f:function(t){var e=n.round(t*Math.sqrt(3)*.8,2),r=n.round(.8*t,2),i=n.round(1.6*t,2),a=n.round(4*t,2),o="A "+a+","+a+" 0 0 1 ";return"M"+e+",-"+r+o+"-"+e+",-"+r+o+"0,"+i+o+e+",-"+r+"Z"}},"star-square":{n:21,f:function(t){var e=n.round(1.1*t,2),r=n.round(2*t,2),i="A "+r+","+r+" 0 0 1 ";return"M-"+e+",-"+e+i+"-"+e+","+e+i+e+","+e+i+e+",-"+e+i+"-"+e+",-"+e+"Z"}},"star-diamond":{n:22,f:function(t){var e=n.round(1.4*t,2),r=n.round(1.9*t,2),i="A "+r+","+r+" 0 0 1 ";return"M-"+e+",0"+i+"0,"+e+i+e+",0"+i+"0,-"+e+i+"-"+e+",0Z"}},"diamond-tall":{n:23,f:function(t){var e=n.round(.7*t,2),r=n.round(1.4*t,2);return"M0,"+r+"L"+e+",0L0,-"+r+"L-"+e+",0Z"}},"diamond-wide":{n:24,f:function(t){var e=n.round(1.4*t,2),r=n.round(.7*t,2);return"M0,"+r+"L"+e+",0L0,-"+r+"L-"+e+",0Z"}},hourglass:{n:25,f:function(t){var e=n.round(t,2);return"M"+e+","+e+"H-"+e+"L"+e+",-"+e+"H-"+e+"Z"},noDot:!0},bowtie:{n:26,f:function(t){var e=n.round(t,2);return"M"+e+","+e+"V-"+e+"L-"+e+","+e+"V-"+e+"Z"},noDot:!0},"circle-cross":{n:27,f:function(t){var e=n.round(t,2);return"M0,"+e+"V-"+e+"M"+e+",0H-"+e+"M"+e+",0A"+e+","+e+" 0 1,1 0,-"+e+"A"+e+","+e+" 0 0,1 "+e+",0Z"},needLine:!0,noDot:!0},"circle-x":{n:28,f:function(t){var e=n.round(t,2),r=n.round(t/Math.sqrt(2),2);return"M"+r+","+r+"L-"+r+",-"+r+"M"+r+",-"+r+"L-"+r+","+r+"M"+e+",0A"+e+","+e+" 0 1,1 0,-"+e+"A"+e+","+e+" 0 0,1 "+e+",0Z"},needLine:!0,noDot:!0},"square-cross":{n:29,f:function(t){var e=n.round(t,2);return"M0,"+e+"V-"+e+"M"+e+",0H-"+e+"M"+e+","+e+"H-"+e+"V-"+e+"H"+e+"Z"},needLine:!0,noDot:!0},"square-x":{n:30,f:function(t){var e=n.round(t,2);return"M"+e+","+e+"L-"+e+",-"+e+"M"+e+",-"+e+"L-"+e+","+e+"M"+e+","+e+"H-"+e+"V-"+e+"H"+e+"Z"},needLine:!0,noDot:!0},"diamond-cross":{n:31,f:function(t){var e=n.round(1.3*t,2);return"M"+e+",0L0,"+e+"L-"+e+",0L0,-"+e+"ZM0,-"+e+"V"+e+"M-"+e+",0H"+e},needLine:!0,noDot:!0},"diamond-x":{n:32,f:function(t){var e=n.round(1.3*t,2),r=n.round(.65*t,2);return"M"+e+",0L0,"+e+"L-"+e+",0L0,-"+e+"ZM-"+r+",-"+r+"L"+r+","+r+"M-"+r+","+r+"L"+r+",-"+r},needLine:!0,noDot:!0},"cross-thin":{n:33,f:function(t){var e=n.round(1.4*t,2);return"M0,"+e+"V-"+e+"M"+e+",0H-"+e},needLine:!0,noDot:!0,noFill:!0},"x-thin":{n:34,f:function(t){var e=n.round(t,2);return"M"+e+","+e+"L-"+e+",-"+e+"M"+e+",-"+e+"L-"+e+","+e},needLine:!0,noDot:!0,noFill:!0},asterisk:{n:35,f:function(t){var e=n.round(1.2*t,2),r=n.round(.85*t,2);return"M0,"+e+"V-"+e+"M"+e+",0H-"+e+"M"+r+","+r+"L-"+r+",-"+r+"M"+r+",-"+r+"L-"+r+","+r},needLine:!0,noDot:!0,noFill:!0},hash:{n:36,f:function(t){var e=n.round(t/2,2),r=n.round(t,2);return"M"+e+","+r+"V-"+r+"m-"+r+",0V"+r+"M"+r+","+e+"H-"+r+"m0,-"+r+"H"+r},needLine:!0,noFill:!0},"y-up":{n:37,f:function(t){var e=n.round(1.2*t,2),r=n.round(1.6*t,2),i=n.round(.8*t,2);return"M-"+e+","+i+"L0,0M"+e+","+i+"L0,0M0,-"+r+"L0,0"},needLine:!0,noDot:!0,noFill:!0},"y-down":{n:38,f:function(t){var e=n.round(1.2*t,2),r=n.round(1.6*t,2),i=n.round(.8*t,2);return"M-"+e+",-"+i+"L0,0M"+e+",-"+i+"L0,0M0,"+r+"L0,0"},needLine:!0,noDot:!0,noFill:!0},"y-left":{n:39,f:function(t){var e=n.round(1.2*t,2),r=n.round(1.6*t,2),i=n.round(.8*t,2);return"M"+i+","+e+"L0,0M"+i+",-"+e+"L0,0M-"+r+",0L0,0"},needLine:!0,noDot:!0,noFill:!0},"y-right":{n:40,f:function(t){var e=n.round(1.2*t,2),r=n.round(1.6*t,2),i=n.round(.8*t,2);return"M-"+i+","+e+"L0,0M-"+i+",-"+e+"L0,0M"+r+",0L0,0"},needLine:!0,noDot:!0,noFill:!0},"line-ew":{n:41,f:function(t){var e=n.round(1.4*t,2);return"M"+e+",0H-"+e},needLine:!0,noDot:!0,noFill:!0},"line-ns":{n:42,f:function(t){var e=n.round(1.4*t,2);return"M0,"+e+"V-"+e},needLine:!0,noDot:!0,noFill:!0},"line-ne":{n:43,f:function(t){var e=n.round(t,2);return"M"+e+",-"+e+"L-"+e+","+e},needLine:!0,noDot:!0,noFill:!0},"line-nw":{n:44,f:function(t){var e=n.round(t,2);return"M"+e+","+e+"L-"+e+",-"+e},needLine:!0,noDot:!0,noFill:!0},"arrow-up":{n:45,f:function(t){var e=n.round(t,2);return"M0,0L-"+e+","+n.round(2*t,2)+"H"+e+"Z"},noDot:!0},"arrow-down":{n:46,f:function(t){var e=n.round(t,2);return"M0,0L-"+e+",-"+n.round(2*t,2)+"H"+e+"Z"},noDot:!0},"arrow-left":{n:47,f:function(t){var e=n.round(2*t,2),r=n.round(t,2);return"M0,0L"+e+",-"+r+"V"+r+"Z"},noDot:!0},"arrow-right":{n:48,f:function(t){var e=n.round(2*t,2),r=n.round(t,2);return"M0,0L-"+e+",-"+r+"V"+r+"Z"},noDot:!0},"arrow-bar-up":{n:49,f:function(t){var e=n.round(t,2);return"M-"+e+",0H"+e+"M0,0L-"+e+","+n.round(2*t,2)+"H"+e+"Z"},needLine:!0,noDot:!0},"arrow-bar-down":{n:50,f:function(t){var e=n.round(t,2);return"M-"+e+",0H"+e+"M0,0L-"+e+",-"+n.round(2*t,2)+"H"+e+"Z"},needLine:!0,noDot:!0},"arrow-bar-left":{n:51,f:function(t){var e=n.round(2*t,2),r=n.round(t,2);return"M0,-"+r+"V"+r+"M0,0L"+e+",-"+r+"V"+r+"Z"},needLine:!0,noDot:!0},"arrow-bar-right":{n:52,f:function(t){var e=n.round(2*t,2),r=n.round(t,2);return"M0,-"+r+"V"+r+"M0,0L-"+e+",-"+r+"V"+r+"Z"},needLine:!0,noDot:!0}}},{"@plotly/d3":57}],682:[function(t,e,r){"use strict";e.exports={visible:{valType:"boolean",editType:"calc"},type:{valType:"enumerated",values:["percent","constant","sqrt","data"],editType:"calc"},symmetric:{valType:"boolean",editType:"calc"},array:{valType:"data_array",editType:"calc"},arrayminus:{valType:"data_array",editType:"calc"},value:{valType:"number",min:0,dflt:10,editType:"calc"},valueminus:{valType:"number",min:0,dflt:10,editType:"calc"},traceref:{valType:"integer",min:0,dflt:0,editType:"style"},tracerefminus:{valType:"integer",min:0,dflt:0,editType:"style"},copy_ystyle:{valType:"boolean",editType:"plot"},copy_zstyle:{valType:"boolean",editType:"style"},color:{valType:"color",editType:"style"},thickness:{valType:"number",min:0,dflt:2,editType:"style"},width:{valType:"number",min:0,editType:"plot"},editType:"calc",_deprecated:{opacity:{valType:"number",editType:"style"}}}},{}],683:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("../../registry"),a=t("../../plots/cartesian/axes"),o=t("../../lib"),s=t("./compute_error");function l(t,e,r,i){var l=e["error_"+i]||{},c=[];if(l.visible&&-1!==["linear","log"].indexOf(r.type)){for(var u=s(l),f=0;f0;e.each((function(e){var f,h=e[0].trace,p=h.error_x||{},d=h.error_y||{};h.ids&&(f=function(t){return t.id});var m=o.hasMarkers(h)&&h.marker.maxdisplayed>0;d.visible||p.visible||(e=[]);var g=n.select(this).selectAll("g.errorbar").data(e,f);if(g.exit().remove(),e.length){p.visible||g.selectAll("path.xerror").remove(),d.visible||g.selectAll("path.yerror").remove(),g.style("opacity",1);var v=g.enter().append("g").classed("errorbar",!0);u&&v.style("opacity",0).transition().duration(s.duration).style("opacity",1),a.setClipUrl(g,r.layerClipId,t),g.each((function(t){var e=n.select(this),r=function(t,e,r){var n={x:e.c2p(t.x),y:r.c2p(t.y)};void 0!==t.yh&&(n.yh=r.c2p(t.yh),n.ys=r.c2p(t.ys),i(n.ys)||(n.noYS=!0,n.ys=r.c2p(t.ys,!0)));void 0!==t.xh&&(n.xh=e.c2p(t.xh),n.xs=e.c2p(t.xs),i(n.xs)||(n.noXS=!0,n.xs=e.c2p(t.xs,!0)));return n}(t,l,c);if(!m||t.vis){var a,o=e.select("path.yerror");if(d.visible&&i(r.x)&&i(r.yh)&&i(r.ys)){var f=d.width;a="M"+(r.x-f)+","+r.yh+"h"+2*f+"m-"+f+",0V"+r.ys,r.noYS||(a+="m-"+f+",0h"+2*f),!o.size()?o=e.append("path").style("vector-effect","non-scaling-stroke").classed("yerror",!0):u&&(o=o.transition().duration(s.duration).ease(s.easing)),o.attr("d",a)}else o.remove();var h=e.select("path.xerror");if(p.visible&&i(r.y)&&i(r.xh)&&i(r.xs)){var g=(p.copy_ystyle?d:p).width;a="M"+r.xh+","+(r.y-g)+"v"+2*g+"m0,-"+g+"H"+r.xs,r.noXS||(a+="m0,-"+g+"v"+2*g),!h.size()?h=e.append("path").style("vector-effect","non-scaling-stroke").classed("xerror",!0):u&&(h=h.transition().duration(s.duration).ease(s.easing)),h.attr("d",a)}else h.remove()}}))}}))}},{"../../traces/scatter/subtypes":1224,"../drawing":680,"@plotly/d3":57,"fast-isnumeric":240}],688:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("../color");e.exports=function(t){t.each((function(t){var e=t[0].trace,r=e.error_y||{},a=e.error_x||{},o=n.select(this);o.selectAll("path.yerror").style("stroke-width",r.thickness+"px").call(i.stroke,r.color),a.copy_ystyle&&(a=r),o.selectAll("path.xerror").style("stroke-width",a.thickness+"px").call(i.stroke,a.color)}))}},{"../color":658,"@plotly/d3":57}],689:[function(t,e,r){"use strict";var n=t("../../plots/font_attributes"),i=t("./layout_attributes").hoverlabel,a=t("../../lib/extend").extendFlat;e.exports={hoverlabel:{bgcolor:a({},i.bgcolor,{arrayOk:!0}),bordercolor:a({},i.bordercolor,{arrayOk:!0}),font:n({arrayOk:!0,editType:"none"}),align:a({},i.align,{arrayOk:!0}),namelength:a({},i.namelength,{arrayOk:!0}),editType:"none"}}},{"../../lib/extend":785,"../../plots/font_attributes":873,"./layout_attributes":699}],690:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../registry");function a(t,e,r,i){i=i||n.identity,Array.isArray(t)&&(e[0][r]=i(t))}e.exports=function(t){var e=t.calcdata,r=t._fullLayout;function o(t){return function(e){return n.coerceHoverinfo({hoverinfo:e},{_module:t._module},r)}}for(var s=0;s=0&&r.indexb[0]._length||rt<0||rt>_[0]._length)return d.unhoverRaw(t,e)}if(e.pointerX=et+b[0]._offset,e.pointerY=rt+_[0]._offset,F="xval"in e?v.flat(s,e.xval):v.p2c(b,et),N="yval"in e?v.flat(s,e.yval):v.p2c(_,rt),!i(F[0])||!i(N[0]))return o.warn("Fx.hover failed",e,t),d.unhoverRaw(t,e)}var ot=1/0;function st(t,r){for(U=0;UJ&&(K.splice(0,J),ot=K[0].distance),m&&0!==I&&0===K.length){Z.distance=I,Z.index=!1;var f=q._module.hoverPoints(Z,W,X,"closest",{hoverLayer:l._hoverlayer});if(f&&(f=f.filter((function(t){return t.spikeDistance<=I}))),f&&f.length){var h,d=f.filter((function(t){return t.xa.showspikes&&"hovered data"!==t.xa.spikesnap}));if(d.length){var g=d[0];i(g.x0)&&i(g.y0)&&(h=ct(g),(!$.vLinePoint||$.vLinePoint.spikeDistance>h.spikeDistance)&&($.vLinePoint=h))}var y=f.filter((function(t){return t.ya.showspikes&&"hovered data"!==t.ya.spikesnap}));if(y.length){var x=y[0];i(x.x0)&&i(x.y0)&&(h=ct(x),(!$.hLinePoint||$.hLinePoint.spikeDistance>h.spikeDistance)&&($.hLinePoint=h))}}}}}function lt(t,e){for(var r,n=null,i=1/0,a=0;a0&&Math.abs(t.distance)yt-1;_t--)Mt(K[_t]);K=wt,gt()}var At=t._hoverdata,St=[];for(j=0;j1||K.length>1)||"closest"===S&&tt&&K.length>1,It=p.combine(l.plot_bgcolor||p.background,l.paper_bgcolor),Ot={hovermode:S,rotateLabels:Pt,bgColor:It,container:l._hoverlayer,outerContainer:l._paperdiv,commonLabelOpts:l.hoverlabel,hoverdistance:l.hoverdistance},zt=P(K,Ot,t);v.isUnifiedHover(S)||(!function(t,e,r){var n,i,a,o,s,l,c,u=0,f=1,h=t.size(),p=new Array(h),d=0;function m(t){var e=t[0],r=t[t.length-1];if(i=e.pmin-e.pos-e.dp+e.size,a=r.pos+r.dp+r.size-e.pmax,i>.01){for(s=t.length-1;s>=0;s--)t[s].dp+=i;n=!1}if(!(a<.01)){if(i<-.01){for(s=t.length-1;s>=0;s--)t[s].dp-=a;n=!1}if(n){var c=0;for(o=0;oe.pmax&&c++;for(o=t.length-1;o>=0&&!(c<=0);o--)(l=t[o]).pos>e.pmax-1&&(l.del=!0,c--);for(o=0;o=0;s--)t[s].dp-=a;for(o=t.length-1;o>=0&&!(c<=0);o--)(l=t[o]).pos+l.dp+l.size>e.pmax&&(l.del=!0,c--)}}}t.each((function(t){var n=t[e],i="x"===n._id.charAt(0),a=n.range;0===d&&a&&a[0]>a[1]!==i&&(f=-1),p[d++]=[{datum:t,traceIndex:t.trace.index,dp:0,pos:t.pos,posref:t.posref,size:t.by*(i?T:1)/2,pmin:0,pmax:i?r.width:r.height}]})),p.sort((function(t,e){return t[0].posref-e[0].posref||f*(e[0].traceIndex-t[0].traceIndex)}));for(;!n&&u<=h;){for(u++,n=!0,o=0;o.01&&y.pmin===x.pmin&&y.pmax===x.pmax){for(s=v.length-1;s>=0;s--)v[s].dp+=i;for(g.push.apply(g,v),p.splice(o+1,1),c=0,s=g.length-1;s>=0;s--)c+=g[s].dp;for(a=c/g.length,s=g.length-1;s>=0;s--)g[s].dp-=a;n=!1}else o++}p.forEach(m)}for(o=p.length-1;o>=0;o--){var b=p[o];for(s=b.length-1;s>=0;s--){var _=b[s],w=_.datum;w.offset=_.dp,w.del=_.del}}}(zt,Pt?"xa":"ya",l),O(zt,Pt,l._invScaleX,l._invScaleY));if(e.target&&e.target.tagName){var Dt=g.getComponentMethod("annotations","hasClickToShow")(t,St);f(n.select(e.target),Dt?"pointer":"")}if(!e.target||a||!function(t,e,r){if(!r||r.length!==t._hoverdata.length)return!0;for(var n=r.length-1;n>=0;n--){var i=r[n],a=t._hoverdata[n];if(i.curveNumber!==a.curveNumber||String(i.pointNumber)!==String(a.pointNumber)||String(i.pointNumbers)!==String(a.pointNumbers))return!0}return!1}(t,0,At))return;At&&t.emit("plotly_unhover",{event:e,points:At});t.emit("plotly_hover",{event:e,points:t._hoverdata,xaxes:b,yaxes:_,xvals:F,yvals:N})}(t,e,r,a)}))},r.loneHover=function(t,e){var r=!0;Array.isArray(t)||(r=!1,t=[t]);var i=t.map((function(t){return{color:t.color||p.defaultLine,x0:t.x0||t.x||0,x1:t.x1||t.x||0,y0:t.y0||t.y||0,y1:t.y1||t.y||0,xLabel:t.xLabel,yLabel:t.yLabel,zLabel:t.zLabel,text:t.text,name:t.name,idealAlign:t.idealAlign,borderColor:t.borderColor,fontFamily:t.fontFamily,fontSize:t.fontSize,fontColor:t.fontColor,nameLength:t.nameLength,textAlign:t.textAlign,trace:t.trace||{index:0,hoverinfo:""},xa:{_offset:0},ya:{_offset:0},index:0,hovertemplate:t.hovertemplate||!1,eventData:t.eventData||!1,hovertemplateLabels:t.hovertemplateLabels||!1}})),a=n.select(e.container),o=e.outerContainer?n.select(e.outerContainer):a,s={hovermode:"closest",rotateLabels:!1,bgColor:e.bgColor||p.background,container:a,outerContainer:o},l=P(i,s,e.gd),c=0,u=0;l.sort((function(t,e){return t.y0-e.y0})).each((function(t,r){var n=t.y0-t.by/2;t.offset=n-5([\s\S]*)<\/extra>/;function P(t,e,r){var i=r._fullLayout,a=e.hovermode,c=e.rotateLabels,f=e.bgColor,d=e.container,m=e.outerContainer,g=e.commonLabelOpts||{},w=e.fontFamily||y.HOVERFONT,T=e.fontSize||y.HOVERFONTSIZE,k=t[0],M=k.xa,E=k.ya,C=a.charAt(0),P=k[C+"Label"],O=m.node().getBoundingClientRect(),z=O.top,D=O.width,R=O.height,F=void 0!==P&&k.distance<=e.hoverdistance&&("x"===a||"y"===a);if(F){var B,N,j=!0;for(B=0;Bi.width-_?(v=i.width-_,e.attr("d","M"+(_-A)+",0L"+_+","+b+A+"v"+b+(2*S+x.height)+"H-"+_+"V"+b+A+"H"+(_-2*A)+"Z")):e.attr("d","M0,0L"+A+","+b+A+"H"+(S+x.width/2)+"v"+b+(2*S+x.height)+"H-"+(S+x.width/2)+"V"+b+A+"H-"+A+"Z")}else{var L,C,I;"right"===E.side?(L="start",C=1,I="",v=M._offset+M._length):(L="end",C=-1,I="-",v=M._offset),y=E._offset+(k.y0+k.y1)/2,l.attr("text-anchor",L),e.attr("d","M0,0L"+I+A+","+A+"V"+(S+x.height/2)+"h"+I+(2*S+x.width)+"V-"+(S+x.height/2)+"H"+I+A+"V-"+A+"Z");var O,D=x.height/2,R=z-x.top-D,F="clip"+i._uid+"commonlabel"+E._id;if(v=0?tt-=nt:tt+=2*S;var it=rt.height+2*S,at=$+it>=R;return it<=R&&($<=z?$=E._offset+2*S:at&&($=R-it)),et.attr("transform",s(tt,$)),et}var ot=d.selectAll("g.hovertext").data(t,(function(t){return L(t)}));return ot.enter().append("g").classed("hovertext",!0).each((function(){var t=n.select(this);t.append("rect").call(p.fill,p.addOpacity(f,.8)),t.append("text").classed("name",!0),t.append("path").style("stroke-width","1px"),t.append("text").classed("nums",!0).call(h.font,w,T)})),ot.exit().remove(),ot.each((function(t){var e=n.select(this).attr("transform",""),o=t.color;Array.isArray(o)&&(o=o[t.eventData[0].pointNumber]);var d=t.bgcolor||o,m=p.combine(p.opacity(d)?d:p.defaultLine,f),g=p.combine(p.opacity(o)?o:p.defaultLine,f),v=t.borderColor||p.contrast(m),y=I(t,F,a,i,P,e),x=y[0],b=y[1],k=e.select("text.nums").call(h.font,t.fontFamily||w,t.fontSize||T,t.fontColor||v).text(x).attr("data-notex",1).call(u.positionText,0,0).call(u.convertToTspans,r),M=e.select("text.name"),E=0,L=0;if(b&&b!==x){M.call(h.font,t.fontFamily||w,t.fontSize||T,g).text(b).attr("data-notex",1).call(u.positionText,0,0).call(u.convertToTspans,r);var C=M.node().getBoundingClientRect();E=C.width+2*S,L=C.height+2*S}else M.remove(),e.select("rect").remove();e.select("path").style({fill:m,stroke:v});var O,B,N=k.node().getBoundingClientRect(),j=t.xa._offset+(t.x0+t.x1)/2,U=t.ya._offset+(t.y0+t.y1)/2,V=Math.abs(t.x1-t.x0),q=Math.abs(t.y1-t.y0),H=N.width+A+S+E;if(t.ty0=z-N.top,t.bx=N.width+2*S,t.by=Math.max(N.height+2*S,L),t.anchor="start",t.txwidth=N.width,t.tx2width=E,t.offset=0,c)t.pos=j,O=U+q/2+H<=R,B=U-q/2-H>=0,"top"!==t.idealAlign&&O||!B?O?(U+=q/2,t.anchor="start"):t.anchor="middle":(U-=q/2,t.anchor="end");else if(t.pos=U,O=j+V/2+H<=D,B=j-V/2-H>=0,"left"!==t.idealAlign&&O||!B)if(O)j+=V/2,t.anchor="start";else{t.anchor="middle";var G=H/2,Y=j+G-D,W=j-G;Y>0&&(j-=Y),W<0&&(j+=-W)}else j-=V/2,t.anchor="end";k.attr("text-anchor",t.anchor),E&&M.attr("text-anchor",t.anchor),e.attr("transform",s(j,U)+(c?l(_):""))})),ot}function I(t,e,r,n,i,a){var s="",l="";void 0!==t.nameOverride&&(t.name=t.nameOverride),t.name&&(t.trace._meta&&(t.name=o.templateString(t.name,t.trace._meta)),s=F(t.name,t.nameLength)),void 0!==t.zLabel?(void 0!==t.xLabel&&(l+="x: "+t.xLabel+"
    "),void 0!==t.yLabel&&(l+="y: "+t.yLabel+"
    "),"choropleth"!==t.trace.type&&"choroplethmapbox"!==t.trace.type&&(l+=(l?"z: ":"")+t.zLabel)):e&&t[r.charAt(0)+"Label"]===i?l=t[("x"===r.charAt(0)?"y":"x")+"Label"]||"":void 0===t.xLabel?void 0!==t.yLabel&&"scattercarpet"!==t.trace.type&&(l=t.yLabel):l=void 0===t.yLabel?t.xLabel:"("+t.xLabel+", "+t.yLabel+")",!t.text&&0!==t.text||Array.isArray(t.text)||(l+=(l?"
    ":"")+t.text),void 0!==t.extraText&&(l+=(l?"
    ":"")+t.extraText),a&&""===l&&!t.hovertemplate&&(""===s&&a.remove(),l=s);var c=n._d3locale,u=t.hovertemplate||!1,f=t.hovertemplateLabels||t,h=t.eventData[0]||{};return u&&(l=(l=o.hovertemplateString(u,f,c,h,t.trace._meta)).replace(C,(function(e,r){return s=F(r,t.nameLength),""}))),[l,s]}function O(t,e,r,i){var a=function(t){return t*r},o=function(t){return t*i};t.each((function(t){var r=n.select(this);if(t.del)return r.remove();var i=r.select("text.nums"),s=t.anchor,l="end"===s?-1:1,c={start:1,end:-1,middle:0}[s],f=c*(A+S),p=f+c*(t.txwidth+S),d=0,m=t.offset,g="middle"===s;g&&(f-=t.tx2width/2,p+=t.txwidth/2+S),e&&(m*=-M,d=t.offset*k),r.select("path").attr("d",g?"M-"+a(t.bx/2+t.tx2width/2)+","+o(m-t.by/2)+"h"+a(t.bx)+"v"+o(t.by)+"h-"+a(t.bx)+"Z":"M0,0L"+a(l*A+d)+","+o(A+m)+"v"+o(t.by/2-A)+"h"+a(l*t.bx)+"v-"+o(t.by)+"H"+a(l*A+d)+"V"+o(m-A)+"Z");var v=d+f,y=m+t.ty0-t.by/2+S,x=t.textAlign||"auto";"auto"!==x&&("left"===x&&"start"!==s?(i.attr("text-anchor","start"),v=g?-t.bx/2-t.tx2width/2+S:-t.bx-S):"right"===x&&"end"!==s&&(i.attr("text-anchor","end"),v=g?t.bx/2-t.tx2width/2-S:t.bx+S)),i.call(u.positionText,a(v),o(y)),t.tx2width&&(r.select("text.name").call(u.positionText,a(p+c*S+d),o(m+t.ty0-t.by/2+S)),r.select("rect").call(h.setRect,a(p+(c-1)*t.tx2width/2+d),o(m-t.by/2-1),a(t.tx2width),o(t.by+2)))}))}function z(t,e){var r=t.index,n=t.trace||{},a=t.cd[0],s=t.cd[r]||{};function l(t){return t||i(t)&&0===t}var c=Array.isArray(r)?function(t,e){var i=o.castOption(a,r,t);return l(i)?i:o.extractOption({},n,"",e)}:function(t,e){return o.extractOption(s,n,t,e)};function u(e,r,n){var i=c(r,n);l(i)&&(t[e]=i)}if(u("hoverinfo","hi","hoverinfo"),u("bgcolor","hbg","hoverlabel.bgcolor"),u("borderColor","hbc","hoverlabel.bordercolor"),u("fontFamily","htf","hoverlabel.font.family"),u("fontSize","hts","hoverlabel.font.size"),u("fontColor","htc","hoverlabel.font.color"),u("nameLength","hnl","hoverlabel.namelength"),u("textAlign","hta","hoverlabel.align"),t.posref="y"===e||"closest"===e&&"h"===n.orientation?t.xa._offset+(t.x0+t.x1)/2:t.ya._offset+(t.y0+t.y1)/2,t.x0=o.constrain(t.x0,0,t.xa._length),t.x1=o.constrain(t.x1,0,t.xa._length),t.y0=o.constrain(t.y0,0,t.ya._length),t.y1=o.constrain(t.y1,0,t.ya._length),void 0!==t.xLabelVal&&(t.xLabel="xLabel"in t?t.xLabel:m.hoverLabelText(t.xa,t.xLabelVal,n.xhoverformat),t.xVal=t.xa.c2d(t.xLabelVal)),void 0!==t.yLabelVal&&(t.yLabel="yLabel"in t?t.yLabel:m.hoverLabelText(t.ya,t.yLabelVal,n.yhoverformat),t.yVal=t.ya.c2d(t.yLabelVal)),void 0!==t.zLabelVal&&void 0===t.zLabel&&(t.zLabel=String(t.zLabelVal)),!(isNaN(t.xerr)||"log"===t.xa.type&&t.xerr<=0)){var f=m.tickText(t.xa,t.xa.c2l(t.xerr),"hover").text;void 0!==t.xerrneg?t.xLabel+=" +"+f+" / -"+m.tickText(t.xa,t.xa.c2l(t.xerrneg),"hover").text:t.xLabel+=" \xb1 "+f,"x"===e&&(t.distance+=1)}if(!(isNaN(t.yerr)||"log"===t.ya.type&&t.yerr<=0)){var h=m.tickText(t.ya,t.ya.c2l(t.yerr),"hover").text;void 0!==t.yerrneg?t.yLabel+=" +"+h+" / -"+m.tickText(t.ya,t.ya.c2l(t.yerrneg),"hover").text:t.yLabel+=" \xb1 "+h,"y"===e&&(t.distance+=1)}var p=t.hoverinfo||t.trace.hoverinfo;return p&&"all"!==p&&(-1===(p=Array.isArray(p)?p:p.split("+")).indexOf("x")&&(t.xLabel=void 0),-1===p.indexOf("y")&&(t.yLabel=void 0),-1===p.indexOf("z")&&(t.zLabel=void 0),-1===p.indexOf("text")&&(t.text=void 0),-1===p.indexOf("name")&&(t.name=void 0)),t}function D(t,e,r){var n,i,o=r.container,s=r.fullLayout,l=s._size,c=r.event,u=!!e.hLinePoint,f=!!e.vLinePoint;if(o.selectAll(".spikeline").remove(),f||u){var d=p.combine(s.plot_bgcolor,s.paper_bgcolor);if(u){var g,v,y=e.hLinePoint;n=y&&y.xa,"cursor"===(i=y&&y.ya).spikesnap?(g=c.pointerX,v=c.pointerY):(g=n._offset+y.x,v=i._offset+y.y);var x,b,_=a.readability(y.color,d)<1.5?p.contrast(d):y.color,w=i.spikemode,T=i.spikethickness,k=i.spikecolor||_,M=m.getPxPosition(t,i);if(-1!==w.indexOf("toaxis")||-1!==w.indexOf("across")){if(-1!==w.indexOf("toaxis")&&(x=M,b=g),-1!==w.indexOf("across")){var A=i._counterDomainMin,S=i._counterDomainMax;"free"===i.anchor&&(A=Math.min(A,i.position),S=Math.max(S,i.position)),x=l.l+A*l.w,b=l.l+S*l.w}o.insert("line",":first-child").attr({x1:x,x2:b,y1:v,y2:v,"stroke-width":T,stroke:k,"stroke-dasharray":h.dashStyle(i.spikedash,T)}).classed("spikeline",!0).classed("crisp",!0),o.insert("line",":first-child").attr({x1:x,x2:b,y1:v,y2:v,"stroke-width":T+2,stroke:d}).classed("spikeline",!0).classed("crisp",!0)}-1!==w.indexOf("marker")&&o.insert("circle",":first-child").attr({cx:M+("right"!==i.side?T:-T),cy:v,r:T,fill:k}).classed("spikeline",!0)}if(f){var E,L,C=e.vLinePoint;n=C&&C.xa,i=C&&C.ya,"cursor"===n.spikesnap?(E=c.pointerX,L=c.pointerY):(E=n._offset+C.x,L=i._offset+C.y);var P,I,O=a.readability(C.color,d)<1.5?p.contrast(d):C.color,z=n.spikemode,D=n.spikethickness,R=n.spikecolor||O,F=m.getPxPosition(t,n);if(-1!==z.indexOf("toaxis")||-1!==z.indexOf("across")){if(-1!==z.indexOf("toaxis")&&(P=F,I=L),-1!==z.indexOf("across")){var B=n._counterDomainMin,N=n._counterDomainMax;"free"===n.anchor&&(B=Math.min(B,n.position),N=Math.max(N,n.position)),P=l.t+(1-N)*l.h,I=l.t+(1-B)*l.h}o.insert("line",":first-child").attr({x1:E,x2:E,y1:P,y2:I,"stroke-width":D,stroke:R,"stroke-dasharray":h.dashStyle(n.spikedash,D)}).classed("spikeline",!0).classed("crisp",!0),o.insert("line",":first-child").attr({x1:E,x2:E,y1:P,y2:I,"stroke-width":D+2,stroke:d}).classed("spikeline",!0).classed("crisp",!0)}-1!==z.indexOf("marker")&&o.insert("circle",":first-child").attr({cx:E,cy:F-("top"!==n.side?D:-D),r:D,fill:R}).classed("spikeline",!0)}}}function R(t,e){return!e||(e.vLinePoint!==t._spikepoints.vLinePoint||e.hLinePoint!==t._spikepoints.hLinePoint)}function F(t,e){return u.plainText(t||"",{len:e,allowedTags:["br","sub","sup","b","i","em"]})}function B(t,e,r){var n=e[t+"a"],i=e[t+"Val"];"category"===n.type?i=n._categoriesMap[i]:"date"===n.type&&(i=n.d2c(i));var a=e.cd[e.index];return a&&a.t&&a.t.posLetter===n._id&&("group"!==r.boxmode&&"group"!==r.violinmode||(i+=a.t.dPos)),i}},{"../../lib":795,"../../lib/events":784,"../../lib/override_cursor":806,"../../lib/svg_text_utils":820,"../../plots/cartesian/axes":845,"../../registry":923,"../color":658,"../dragelement":677,"../drawing":680,"../legend/defaults":710,"../legend/draw":711,"./constants":692,"./helpers":694,"@plotly/d3":57,"fast-isnumeric":240,tinycolor2:590}],696:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../color"),a=t("./helpers").isUnifiedHover;e.exports=function(t,e,r,o){function s(t){o.font[t]||(o.font[t]=e.legend?e.legend.font[t]:e.font[t])}o=o||{},e&&a(e.hovermode)&&(o.font||(o.font={}),s("size"),s("family"),s("color"),e.legend?(o.bgcolor||(o.bgcolor=i.combine(e.legend.bgcolor,e.paper_bgcolor)),o.bordercolor||(o.bordercolor=e.legend.bordercolor)):o.bgcolor||(o.bgcolor=e.paper_bgcolor)),r("hoverlabel.bgcolor",o.bgcolor),r("hoverlabel.bordercolor",o.bordercolor),r("hoverlabel.namelength",o.namelength),n.coerceFont(r,"hoverlabel.font",o.font),r("hoverlabel.align",o.align)}},{"../../lib":795,"../color":658,"./helpers":694}],697:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./layout_attributes");e.exports=function(t,e){function r(r,a){return void 0!==e[r]?e[r]:n.coerce(t,e,i,r,a)}return r("clickmode"),r("hovermode")}},{"../../lib":795,"./layout_attributes":699}],698:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("../../lib"),a=t("../dragelement"),o=t("./helpers"),s=t("./layout_attributes"),l=t("./hover");e.exports={moduleType:"component",name:"fx",constants:t("./constants"),schema:{layout:s},attributes:t("./attributes"),layoutAttributes:s,supplyLayoutGlobalDefaults:t("./layout_global_defaults"),supplyDefaults:t("./defaults"),supplyLayoutDefaults:t("./layout_defaults"),calc:t("./calc"),getDistanceFunction:o.getDistanceFunction,getClosest:o.getClosest,inbox:o.inbox,quadrature:o.quadrature,appendArrayPointValue:o.appendArrayPointValue,castHoverOption:function(t,e,r){return i.castOption(t,e,"hoverlabel."+r)},castHoverinfo:function(t,e,r){return i.castOption(t,r,"hoverinfo",(function(r){return i.coerceHoverinfo({hoverinfo:r},{_module:t._module},e)}))},hover:l.hover,unhover:a.unhover,loneHover:l.loneHover,loneUnhover:function(t){var e=i.isD3Selection(t)?t:n.select(t);e.selectAll("g.hovertext").remove(),e.selectAll(".spikeline").remove()},click:t("./click")}},{"../../lib":795,"../dragelement":677,"./attributes":689,"./calc":690,"./click":691,"./constants":692,"./defaults":693,"./helpers":694,"./hover":695,"./layout_attributes":699,"./layout_defaults":700,"./layout_global_defaults":701,"@plotly/d3":57}],699:[function(t,e,r){"use strict";var n=t("./constants"),i=t("../../plots/font_attributes")({editType:"none"});i.family.dflt=n.HOVERFONT,i.size.dflt=n.HOVERFONTSIZE,e.exports={clickmode:{valType:"flaglist",flags:["event","select"],dflt:"event",editType:"plot",extras:["none"]},dragmode:{valType:"enumerated",values:["zoom","pan","select","lasso","drawclosedpath","drawopenpath","drawline","drawrect","drawcircle","orbit","turntable",!1],dflt:"zoom",editType:"modebar"},hovermode:{valType:"enumerated",values:["x","y","closest",!1,"x unified","y unified"],dflt:"closest",editType:"modebar"},hoverdistance:{valType:"integer",min:-1,dflt:20,editType:"none"},spikedistance:{valType:"integer",min:-1,dflt:-1,editType:"none"},hoverlabel:{bgcolor:{valType:"color",editType:"none"},bordercolor:{valType:"color",editType:"none"},font:i,align:{valType:"enumerated",values:["left","right","auto"],dflt:"auto",editType:"none"},namelength:{valType:"integer",min:-1,dflt:15,editType:"none"},editType:"none"},selectdirection:{valType:"enumerated",values:["h","v","d","any"],dflt:"any",editType:"none"}}},{"../../plots/font_attributes":873,"./constants":692}],700:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./layout_attributes"),a=t("./hovermode_defaults"),o=t("./hoverlabel_defaults");e.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}a(t,e)&&(r("hoverdistance"),r("spikedistance")),"select"===r("dragmode")&&r("selectdirection");var s=e._has("mapbox"),l=e._has("geo"),c=e._basePlotModules.length;"zoom"===e.dragmode&&((s||l)&&1===c||s&&l&&2===c)&&(e.dragmode="pan"),o(t,e,r)}},{"../../lib":795,"./hoverlabel_defaults":696,"./hovermode_defaults":697,"./layout_attributes":699}],701:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./hoverlabel_defaults"),a=t("./layout_attributes");e.exports=function(t,e){i(t,e,(function(r,i){return n.coerce(t,e,a,r,i)}))}},{"../../lib":795,"./hoverlabel_defaults":696,"./layout_attributes":699}],702:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../lib/regex").counter,a=t("../../plots/domain").attributes,o=t("../../plots/cartesian/constants").idRegex,s=t("../../plot_api/plot_template"),l={rows:{valType:"integer",min:1,editType:"plot"},roworder:{valType:"enumerated",values:["top to bottom","bottom to top"],dflt:"top to bottom",editType:"plot"},columns:{valType:"integer",min:1,editType:"plot"},subplots:{valType:"info_array",freeLength:!0,dimensions:2,items:{valType:"enumerated",values:[i("xy").toString(),""],editType:"plot"},editType:"plot"},xaxes:{valType:"info_array",freeLength:!0,items:{valType:"enumerated",values:[o.x.toString(),""],editType:"plot"},editType:"plot"},yaxes:{valType:"info_array",freeLength:!0,items:{valType:"enumerated",values:[o.y.toString(),""],editType:"plot"},editType:"plot"},pattern:{valType:"enumerated",values:["independent","coupled"],dflt:"coupled",editType:"plot"},xgap:{valType:"number",min:0,max:1,editType:"plot"},ygap:{valType:"number",min:0,max:1,editType:"plot"},domain:a({name:"grid",editType:"plot",noGridCell:!0},{}),xside:{valType:"enumerated",values:["bottom","bottom plot","top plot","top"],dflt:"bottom plot",editType:"plot"},yside:{valType:"enumerated",values:["left","left plot","right plot","right"],dflt:"left plot",editType:"plot"},editType:"plot"};function c(t,e,r){var n=e[r+"axes"],i=Object.keys((t._splomAxes||{})[r]||{});return Array.isArray(n)?n:i.length?i:void 0}function u(t,e,r,n,i,a){var o=e(t+"gap",r),s=e("domain."+t);e(t+"side",n);for(var l=new Array(i),c=s[0],u=(s[1]-c)/(i-o),f=u*(1-o),h=0;h1){if(!h&&!p&&!d)"independent"===k("pattern")&&(h=!0);g._hasSubplotGrid=h;var x,b,_="top to bottom"===k("roworder"),w=h?.2:.1,T=h?.3:.1;m&&e._splomGridDflt&&(x=e._splomGridDflt.xside,b=e._splomGridDflt.yside),g._domains={x:u("x",k,w,x,y),y:u("y",k,T,b,v,_)}}else delete e.grid}function k(t,e){return n.coerce(r,g,l,t,e)}},contentDefaults:function(t,e){var r=e.grid;if(r&&r._domains){var n,i,a,o,s,l,u,h=t.grid||{},p=e._subplots,d=r._hasSubplotGrid,m=r.rows,g=r.columns,v="independent"===r.pattern,y=r._axisMap={};if(d){var x=h.subplots||[];l=r.subplots=new Array(m);var b=1;for(n=0;n1);if(!1!==m||c.uirevision){var g=a.newContainer(e,"legend");if(T("uirevision",e.uirevision),!1!==m){T("bgcolor",e.paper_bgcolor),T("bordercolor"),T("borderwidth");var v,y,x,b=i.coerceFont(T,"font",e.font),_="h"===T("orientation");if(_?(v=0,n.getComponentMethod("rangeslider","isVisible")(t.xaxis)?(y=1.1,x="bottom"):(y=-.1,x="top")):(v=1.02,y=1,x="auto"),T("traceorder",h),l.isGrouped(e.legend)&&T("tracegroupgap"),T("itemsizing"),T("itemwidth"),T("itemclick"),T("itemdoubleclick"),T("x",v),T("xanchor"),T("y",y),T("yanchor",x),T("valign"),i.noneOrAll(c,g,["x","y"]),T("title.text")){T("title.side",_?"left":"top");var w=i.extendFlat({},b,{size:i.bigFont(b.size)});i.coerceFont(T,"title.font",w)}}}function T(t,e){return i.coerce(c,g,o,t,e)}}},{"../../lib":795,"../../plot_api/plot_template":834,"../../plots/layout_attributes":900,"../../registry":923,"./attributes":708,"./helpers":714}],711:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("../../lib"),a=t("../../plots/plots"),o=t("../../registry"),s=t("../../lib/events"),l=t("../dragelement"),c=t("../drawing"),u=t("../color"),f=t("../../lib/svg_text_utils"),h=t("./handle_click"),p=t("./constants"),d=t("../../constants/alignment"),m=d.LINE_SPACING,g=d.FROM_TL,v=d.FROM_BR,y=t("./get_legend_data"),x=t("./style"),b=t("./helpers");function _(t,e,r,n,i){var a=r.data()[0][0].trace,l={event:i,node:r.node(),curveNumber:a.index,expandedIndex:a._expandedIndex,data:t.data,layout:t.layout,frames:t._transitionData._frames,config:t._context,fullData:t._fullData,fullLayout:t._fullLayout};if(a._group&&(l.group=a._group),o.traceIs(a,"pie-like")&&(l.label=r.datum()[0].label),!1!==s.triggerHandler(t,"plotly_legendclick",l))if(1===n)e._clickTimeout=setTimeout((function(){t._fullLayout&&h(r,t,n)}),t._context.doubleClickDelay);else if(2===n){e._clickTimeout&&clearTimeout(e._clickTimeout),t._legendMouseDownTime=0,!1!==s.triggerHandler(t,"plotly_legenddoubleclick",l)&&h(r,t,n)}}function w(t,e,r){var n,a=t.data()[0][0],s=a.trace,l=o.traceIs(s,"pie-like"),u=!r._inHover&&e._context.edits.legendText&&!l,h=r._maxNameLength;r.entries?n=a.text:(n=l?a.label:s.name,s._meta&&(n=i.templateString(n,s._meta)));var d=i.ensureSingle(t,"text","legendtext");d.attr("text-anchor","start").call(c.font,r.font).text(u?T(n,h):n);var m=r.itemwidth+2*p.itemGap;f.positionText(d,m,0),u?d.call(f.makeEditable,{gd:e,text:n}).call(M,t,e,r).on("edit",(function(n){this.text(T(n,h)).call(M,t,e,r);var l=a.trace._fullInput||{},c={};if(o.hasTransform(l,"groupby")){var u=o.getTransformIndices(l,"groupby"),f=u[u.length-1],p=i.keyedContainer(l,"transforms["+f+"].styles","target","value.name");p.set(a.trace._group,n),c=p.constructUpdate()}else c.name=n;return o.call("_guiRestyle",e,c,s.index)})):M(d,t,e,r)}function T(t,e){var r=Math.max(4,e);if(t&&t.trim().length>=r/2)return t;for(var n=r-(t=t||"").length;n>0;n--)t+=" ";return t}function k(t,e){var r,a=e._context.doubleClickDelay,o=1,s=i.ensureSingle(t,"rect","legendtoggle",(function(t){e._context.staticPlot||t.style("cursor","pointer").attr("pointer-events","all"),t.call(u.fill,"rgba(0,0,0,0)")}));e._context.staticPlot||(s.on("mousedown",(function(){(r=(new Date).getTime())-e._legendMouseDownTimea&&(o=Math.max(o-1,1)),_(e,r,t,o,n.event)}})))}function M(t,e,r,n,i){n._inHover&&t.attr("data-notex",!0),f.convertToTspans(t,r,(function(){!function(t,e,r,n){var i=t.data()[0][0];if(!r._inHover&&i&&!i.trace.showlegend)return void t.remove();var a=t.select("g[class*=math-group]"),o=a.node();r||(r=e._fullLayout.legend);var s,l,u=r.borderwidth,h=(1===n?r.title:r).font.size*m;if(o){var d=c.bBox(o);s=d.height,l=d.width,1===n?c.setTranslate(a,u,u+.75*s):c.setTranslate(a,0,.25*s)}else{var g=t.select(1===n?".legendtitletext":".legendtext"),v=f.lineCount(g),y=g.node();s=h*v,l=y?c.bBox(y).width:0,1===n?("left"===r.title.side&&(l+=2*p.itemGap),f.positionText(g,u+p.titlePad,u+h)):f.positionText(g,r.itemwidth+2*p.itemGap,-h*((v-1)/2-.3))}1===n?(r._titleWidth=l,r._titleHeight=s):(i.lineHeight=h,i.height=Math.max(s,16)+3,i.width=l)}(e,r,n,i)}))}function A(t){return i.isRightAnchor(t)?"right":i.isCenterAnchor(t)?"center":"left"}function S(t){return i.isBottomAnchor(t)?"bottom":i.isMiddleAnchor(t)?"middle":"top"}e.exports=function(t,e){return e||(e=t._fullLayout.legend||{}),function(t,e){var r,s,f=t._fullLayout,h="legend"+f._uid,d=e._inHover;d?(r=e.layer,h+="-hover"):r=f._infolayer;if(!r)return;t._legendMouseDownTime||(t._legendMouseDownTime=0);if(d){if(!e.entries)return;s=y(e.entries,e)}else{if(!t.calcdata)return;s=f.showlegend&&y(t.calcdata,e)}var m=f.hiddenlabels||[];if(!(d||f.showlegend&&s.length))return r.selectAll(".legend").remove(),f._topdefs.select("#"+h).remove(),a.autoMargin(t,"legend");var T=i.ensureSingle(r,"g","legend",(function(t){d||t.attr("pointer-events","all")})),E=i.ensureSingleById(f._topdefs,"clipPath",h,(function(t){t.append("rect")})),L=i.ensureSingle(T,"rect","bg",(function(t){t.attr("shape-rendering","crispEdges")}));L.call(u.stroke,e.bordercolor).call(u.fill,e.bgcolor).style("stroke-width",e.borderwidth+"px");var C=i.ensureSingle(T,"g","scrollbox"),P=e.title;if(e._titleWidth=0,e._titleHeight=0,P.text){var I=i.ensureSingle(C,"text","legendtitletext");I.attr("text-anchor","start").call(c.font,P.font).text(P.text),M(I,C,t,e,1)}else C.selectAll(".legendtitletext").remove();var O=i.ensureSingle(T,"rect","scrollbar",(function(t){t.attr(p.scrollBarEnterAttrs).call(u.fill,p.scrollBarColor)})),z=C.selectAll("g.groups").data(s);z.enter().append("g").attr("class","groups"),z.exit().remove();var D=z.selectAll("g.traces").data(i.identity);D.enter().append("g").attr("class","traces"),D.exit().remove(),D.style("opacity",(function(t){var e=t[0].trace;return o.traceIs(e,"pie-like")?-1!==m.indexOf(t[0].label)?.5:1:"legendonly"===e.visible?.5:1})).each((function(){n.select(this).call(w,t,e)})).call(x,t,e).each((function(){d||n.select(this).call(k,t)})),i.syncOrAsync([a.previousPromises,function(){return function(t,e,r,i){var a=t._fullLayout;i||(i=a.legend);var o=a._size,s=b.isVertical(i),l=b.isGrouped(i),u=i.borderwidth,f=2*u,h=p.itemGap,d=i.itemwidth+2*h,m=2*(u+h),g=S(i),v=i.y<0||0===i.y&&"top"===g,y=i.y>1||1===i.y&&"bottom"===g,x=i.tracegroupgap;i._maxHeight=Math.max(v||y?a.height/2:o.h,30);var _=0;i._width=0,i._height=0;var w=function(t){var e=0,r=0,n=t.title.side;n&&(-1!==n.indexOf("left")&&(e=t._titleWidth),-1!==n.indexOf("top")&&(r=t._titleHeight));return[e,r]}(i);if(s)r.each((function(t){var e=t[0].height;c.setTranslate(this,u+w[0],u+w[1]+i._height+e/2+h),i._height+=e,i._width=Math.max(i._width,t[0].width)})),_=d+i._width,i._width+=h+d+f,i._height+=m,l&&(e.each((function(t,e){c.setTranslate(this,0,e*i.tracegroupgap)})),i._height+=(i._lgroupsLength-1)*i.tracegroupgap);else{var T=A(i),k=i.x<0||0===i.x&&"right"===T,M=i.x>1||1===i.x&&"left"===T,E=y||v,L=a.width/2;i._maxWidth=Math.max(k?E&&"left"===T?o.l+o.w:L:M?E&&"right"===T?o.r+o.w:L:o.w,2*d);var C=0,P=0;r.each((function(t){var e=t[0].width+d;C=Math.max(C,e),P+=e})),_=null;var I=0;if(l){var O=0,z=0,D=0;e.each((function(){var t=0,e=0;n.select(this).selectAll("g.traces").each((function(r){var n=r[0].height;c.setTranslate(this,w[0],w[1]+u+h+n/2+e),e+=n,t=Math.max(t,d+r[0].width)})),O=Math.max(O,e);var r=t+h;r+u+z>i._maxWidth&&(I=Math.max(I,z),z=0,D+=O+x,O=e),c.setTranslate(this,z,D),z+=r})),i._width=Math.max(I,z)+u,i._height=D+O+m}else{var R=r.size(),F=P+f+(R-1)*h=i._maxWidth&&(I=Math.max(I,U),N=0,j+=B,i._height+=B,B=0),c.setTranslate(this,w[0]+u+N,w[1]+u+j+e/2+h),U=N+r+h,N+=n,B=Math.max(B,e)})),F?(i._width=N+f,i._height=B+m):(i._width=Math.max(I,U)+f,i._height+=B+m)}}i._width=Math.ceil(Math.max(i._width+w[0],i._titleWidth+2*(u+p.titlePad))),i._height=Math.ceil(Math.max(i._height+w[1],i._titleHeight+2*(u+p.itemGap))),i._effHeight=Math.min(i._height,i._maxHeight);var V=t._context.edits,q=V.legendText||V.legendPosition;r.each((function(t){var e=n.select(this).select(".legendtoggle"),r=t[0].height,i=q?d:_||d+t[0].width;s||(i+=h/2),c.setRect(e,0,-r/2,i,r)}))}(t,z,D,e)},function(){if(d||!function(t){var e=t._fullLayout.legend,r=A(e),n=S(e);return a.autoMargin(t,"legend",{x:e.x,y:e.y,l:e._width*g[r],r:e._width*v[r],b:e._effHeight*v[n],t:e._effHeight*g[n]})}(t)){var s,u,m,y,x=f._size,b=e.borderwidth,w=x.l+x.w*e.x-g[A(e)]*e._width,k=x.t+x.h*(1-e.y)-g[S(e)]*e._effHeight;if(!d&&f.margin.autoexpand){var M=w,P=k;w=i.constrain(w,0,f.width-e._width),k=i.constrain(k,0,f.height-e._effHeight),w!==M&&i.log("Constrain legend.x to make legend fit inside graph"),k!==P&&i.log("Constrain legend.y to make legend fit inside graph")}if(d||c.setTranslate(T,w,k),O.on(".drag",null),T.on("wheel",null),d||e._height<=e._maxHeight||t._context.staticPlot){var I=e._effHeight;d&&(I=e._height),L.attr({width:e._width-b,height:I-b,x:b/2,y:b/2}),c.setTranslate(C,0,0),E.select("rect").attr({width:e._width-2*b,height:I-2*b,x:b,y:b}),c.setClipUrl(C,h,t),c.setRect(O,0,0,0,0),delete e._scrollY}else{var z,D,R,F=Math.max(p.scrollBarMinHeight,e._effHeight*e._effHeight/e._height),B=e._effHeight-F-2*p.scrollBarMargin,N=e._height-e._effHeight,j=B/N,U=Math.min(e._scrollY||0,N);L.attr({width:e._width-2*b+p.scrollBarWidth+p.scrollBarMargin,height:e._effHeight-b,x:b/2,y:b/2}),E.select("rect").attr({width:e._width-2*b+p.scrollBarWidth+p.scrollBarMargin,height:e._effHeight-2*b,x:b,y:b+U}),c.setClipUrl(C,h,t),H(U,F,j),T.on("wheel",(function(){H(U=i.constrain(e._scrollY+n.event.deltaY/B*N,0,N),F,j),0!==U&&U!==N&&n.event.preventDefault()}));var V=n.behavior.drag().on("dragstart",(function(){var t=n.event.sourceEvent;z="touchstart"===t.type?t.changedTouches[0].clientY:t.clientY,R=U})).on("drag",(function(){var t=n.event.sourceEvent;2===t.buttons||t.ctrlKey||(D="touchmove"===t.type?t.changedTouches[0].clientY:t.clientY,H(U=function(t,e,r){var n=(r-e)/j+t;return i.constrain(n,0,N)}(R,z,D),F,j))}));O.call(V);var q=n.behavior.drag().on("dragstart",(function(){var t=n.event.sourceEvent;"touchstart"===t.type&&(z=t.changedTouches[0].clientY,R=U)})).on("drag",(function(){var t=n.event.sourceEvent;"touchmove"===t.type&&(D=t.changedTouches[0].clientY,H(U=function(t,e,r){var n=(e-r)/j+t;return i.constrain(n,0,N)}(R,z,D),F,j))}));C.call(q)}if(t._context.edits.legendPosition)T.classed("cursor-move",!0),l.init({element:T.node(),gd:t,prepFn:function(){var t=c.getTranslate(T);m=t.x,y=t.y},moveFn:function(t,r){var n=m+t,i=y+r;c.setTranslate(T,n,i),s=l.align(n,0,x.l,x.l+x.w,e.xanchor),u=l.align(i,0,x.t+x.h,x.t,e.yanchor)},doneFn:function(){void 0!==s&&void 0!==u&&o.call("_guiRelayout",t,{"legend.x":s,"legend.y":u})},clickFn:function(e,n){var i=r.selectAll("g.traces").filter((function(){var t=this.getBoundingClientRect();return n.clientX>=t.left&&n.clientX<=t.right&&n.clientY>=t.top&&n.clientY<=t.bottom}));i.size()>0&&_(t,T,i,e,n)}})}function H(r,n,i){e._scrollY=t._fullLayout.legend._scrollY=r,c.setTranslate(C,0,-r),c.setRect(O,e._width,p.scrollBarMargin+r*i,p.scrollBarWidth,n),E.select("rect").attr("y",b+r)}}],t)}(t,e)}},{"../../constants/alignment":763,"../../lib":795,"../../lib/events":784,"../../lib/svg_text_utils":820,"../../plots/plots":909,"../../registry":923,"../color":658,"../dragelement":677,"../drawing":680,"./constants":709,"./get_legend_data":712,"./handle_click":713,"./helpers":714,"./style":716,"@plotly/d3":57}],712:[function(t,e,r){"use strict";var n=t("../../registry"),i=t("./helpers");e.exports=function(t,e){var r,a,o={},s=[],l=!1,c={},u=0,f=0;function h(t,r){if(""!==t&&i.isGrouped(e))-1===s.indexOf(t)?(s.push(t),l=!0,o[t]=[[r]]):o[t].push([r]);else{var n="~~i"+u;s.push(n),o[n]=[[r]],u++}}for(r=0;r0))return 0;i=e.width}return v?n:Math.min(i,r)};function w(t,r,a){var o=t[0].trace,c=o.marker||{},u=c.line||{},f=a?o.visible&&o.type===a:i.traceIs(o,"bar"),h=n.select(r).select("g.legendpoints").selectAll("path.legend"+a).data(f?[t]:[]);h.enter().append("path").classed("legend"+a,!0).attr("d","M6,6H-6V-6H6Z").attr("transform",b),h.exit().remove(),h.each((function(t){var r=n.select(this),i=t[0],a=_(i.mlw,c.line,5,2);r.style("stroke-width",a+"px");var f=i.mc||c.color,h=c.pattern,p=h&&s.getPatternAttr(h.shape,0,"");if(p){var d=s.getPatternAttr(h.bgcolor,0,null),m=Math.min(12,s.getPatternAttr(h.size,0,8)),g=s.getPatternAttr(h.solidity,0,.3),v="legend-"+o.uid;r.call(s.pattern,e,v,p,d,f,m,g,"fill")}else r.call(l.fill,f);a&&l.stroke(r,i.mlc||u.color)}))}function T(t,e,r){var o=t[0],s=o.trace,l=r?s.visible&&s.type===r:i.traceIs(s,r),c=n.select(e).select("g.legendpoints").selectAll("path.legend"+r).data(l?[t]:[]);if(c.enter().append("path").classed("legend"+r,!0).attr("d","M6,6H-6V-6H6Z").attr("transform",b),c.exit().remove(),c.size()){var u=(s.marker||{}).line,p=_(h(u.width,o.pts),u,5,2),d=a.minExtend(s,{marker:{line:{width:p}}});d.marker.line.color=u.color;var m=a.minExtend(o,{trace:d});f(c,m,d)}}t.each((function(t){var e=n.select(this),i=a.ensureSingle(e,"g","layers");i.style("opacity",t[0].trace.opacity);var s=r.valign,l=t[0].lineHeight,c=t[0].height;if("middle"!==s&&l&&c){var u={top:1,bottom:-1}[s]*(.5*(l-c+3));i.attr("transform",o(0,u))}else i.attr("transform",null);i.selectAll("g.legendfill").data([t]).enter().append("g").classed("legendfill",!0),i.selectAll("g.legendlines").data([t]).enter().append("g").classed("legendlines",!0);var f=i.selectAll("g.legendsymbols").data([t]);f.enter().append("g").classed("legendsymbols",!0),f.selectAll("g.legendpoints").data([t]).enter().append("g").classed("legendpoints",!0)})).each((function(t){var r,i=t[0].trace,o=[];if(i.visible)switch(i.type){case"histogram2d":case"heatmap":o=[["M-15,-2V4H15V-2Z"]],r=!0;break;case"choropleth":case"choroplethmapbox":o=[["M-6,-6V6H6V-6Z"]],r=!0;break;case"densitymapbox":o=[["M-6,0 a6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0"]],r="radial";break;case"cone":o=[["M-6,2 A2,2 0 0,0 -6,6 V6L6,4Z"],["M-6,-6 A2,2 0 0,0 -6,-2 L6,-4Z"],["M-6,-2 A2,2 0 0,0 -6,2 L6,0Z"]],r=!1;break;case"streamtube":o=[["M-6,2 A2,2 0 0,0 -6,6 H6 A2,2 0 0,1 6,2 Z"],["M-6,-6 A2,2 0 0,0 -6,-2 H6 A2,2 0 0,1 6,-6 Z"],["M-6,-2 A2,2 0 0,0 -6,2 H6 A2,2 0 0,1 6,-2 Z"]],r=!1;break;case"surface":o=[["M-6,-6 A2,3 0 0,0 -6,0 H6 A2,3 0 0,1 6,-6 Z"],["M-6,1 A2,3 0 0,1 -6,6 H6 A2,3 0 0,0 6,0 Z"]],r=!0;break;case"mesh3d":o=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6H6L0,6Z"]],r=!1;break;case"volume":o=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6H6L0,6Z"]],r=!0;break;case"isosurface":o=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6 A12,24 0 0,0 6,-6 L0,6Z"]],r=!1}var u=n.select(this).select("g.legendpoints").selectAll("path.legend3dandfriends").data(o);u.enter().append("path").classed("legend3dandfriends",!0).attr("transform",b).style("stroke-miterlimit",1),u.exit().remove(),u.each((function(t,o){var u,f=n.select(this),h=c(i),p=h.colorscale,m=h.reversescale;if(p){if(!r){var g=p.length;u=0===o?p[m?g-1:0][1]:1===o?p[m?0:g-1][1]:p[Math.floor((g-1)/2)][1]}}else{var v=i.vertexcolor||i.facecolor||i.color;u=a.isArrayOrTypedArray(v)?v[o]||v[0]:v}f.attr("d",t[0]),u?f.call(l.fill,u):f.call((function(t){if(t.size()){var n="legendfill-"+i.uid;s.gradient(t,e,n,d(m,"radial"===r),p,"fill")}}))}))})).each((function(t){var e=t[0].trace,r="waterfall"===e.type;if(t[0]._distinct&&r){var i=t[0].trace[t[0].dir].marker;return t[0].mc=i.color,t[0].mlw=i.line.width,t[0].mlc=i.line.color,w(t,this,"waterfall")}var a=[];e.visible&&r&&(a=t[0].hasTotals?[["increasing","M-6,-6V6H0Z"],["totals","M6,6H0L-6,-6H-0Z"],["decreasing","M6,6V-6H0Z"]]:[["increasing","M-6,-6V6H6Z"],["decreasing","M6,6V-6H-6Z"]]);var o=n.select(this).select("g.legendpoints").selectAll("path.legendwaterfall").data(a);o.enter().append("path").classed("legendwaterfall",!0).attr("transform",b).style("stroke-miterlimit",1),o.exit().remove(),o.each((function(t){var r=n.select(this),i=e[t[0]].marker,a=_(void 0,i.line,5,2);r.attr("d",t[1]).style("stroke-width",a+"px").call(l.fill,i.color),a&&r.call(l.stroke,i.line.color)}))})).each((function(t){w(t,this,"funnel")})).each((function(t){w(t,this)})).each((function(t){var r=t[0].trace,o=n.select(this).select("g.legendpoints").selectAll("path.legendbox").data(r.visible&&i.traceIs(r,"box-violin")?[t]:[]);o.enter().append("path").classed("legendbox",!0).attr("d","M6,6H-6V-6H6Z").attr("transform",b),o.exit().remove(),o.each((function(){var t=n.select(this);if("all"!==r.boxpoints&&"all"!==r.points||0!==l.opacity(r.fillcolor)||0!==l.opacity((r.line||{}).color)){var i=_(void 0,r.line,5,2);t.style("stroke-width",i+"px").call(l.fill,r.fillcolor),i&&l.stroke(t,r.line.color)}else{var c=a.minExtend(r,{marker:{size:v?12:a.constrain(r.marker.size,2,16),sizeref:1,sizemin:1,sizemode:"diameter"}});o.call(s.pointStyle,c,e)}}))})).each((function(t){T(t,this,"funnelarea")})).each((function(t){T(t,this,"pie")})).each((function(t){var r,i,o=m(t),l=o.showFill,f=o.showLine,h=o.showGradientLine,p=o.showGradientFill,g=o.anyFill,v=o.anyLine,x=t[0],b=x.trace,w=c(b),T=w.colorscale,k=w.reversescale,M=u.hasMarkers(b)||!g?"M5,0":v?"M5,-2":"M5,-3",A=n.select(this),S=A.select(".legendfill").selectAll("path").data(l||p?[t]:[]);if(S.enter().append("path").classed("js-fill",!0),S.exit().remove(),S.attr("d",M+"h"+y+"v6h-"+y+"z").call(l?s.fillGroupStyle:function(t){if(t.size()){var r="legendfill-"+b.uid;s.gradient(t,e,r,d(k),T,"fill")}}),f||h){var E=_(void 0,b.line,10,5);i=a.minExtend(b,{line:{width:E}}),r=[a.minExtend(x,{trace:i})]}var L=A.select(".legendlines").selectAll("path").data(f||h?[r]:[]);L.enter().append("path").classed("js-line",!0),L.exit().remove(),L.attr("d",M+(h?"l"+y+",0.0001":"h"+y)).call(f?s.lineGroupStyle:function(t){if(t.size()){var r="legendline-"+b.uid;s.lineGroupStyle(t),s.gradient(t,e,r,d(k),T,"stroke")}})})).each((function(t){var r,i,o=m(t),l=o.anyFill,c=o.anyLine,f=o.showLine,h=o.showMarker,p=t[0],d=p.trace,g=!h&&!c&&!l&&u.hasText(d);function y(t,e,r,n){var i=a.nestedProperty(d,t).get(),o=a.isArrayOrTypedArray(i)&&e?e(i):i;if(v&&o&&void 0!==n&&(o=n),r){if(or[1])return r[1]}return o}function x(t){return p._distinct&&p.index&&t[p.index]?t[p.index]:t[0]}if(h||g||f){var _={},w={};if(h){_.mc=y("marker.color",x),_.mx=y("marker.symbol",x),_.mo=y("marker.opacity",a.mean,[.2,1]),_.mlc=y("marker.line.color",x),_.mlw=y("marker.line.width",a.mean,[0,5],2),w.marker={sizeref:1,sizemin:1,sizemode:"diameter"};var T=y("marker.size",a.mean,[2,16],12);_.ms=T,w.marker.size=T}f&&(w.line={width:y("line.width",x,[0,10],5)}),g&&(_.tx="Aa",_.tp=y("textposition",x),_.ts=10,_.tc=y("textfont.color",x),_.tf=y("textfont.family",x)),r=[a.minExtend(p,_)],(i=a.minExtend(d,w)).selectedpoints=null,i.texttemplate=null}var k=n.select(this).select("g.legendpoints"),M=k.selectAll("path.scatterpts").data(h?r:[]);M.enter().insert("path",":first-child").classed("scatterpts",!0).attr("transform",b),M.exit().remove(),M.call(s.pointStyle,i,e),h&&(r[0].mrc=3);var A=k.selectAll("g.pointtext").data(g?r:[]);A.enter().append("g").classed("pointtext",!0).append("text").attr("transform",b),A.exit().remove(),A.selectAll("text").call(s.textPointStyle,i,e)})).each((function(t){var e=t[0].trace,r=n.select(this).select("g.legendpoints").selectAll("path.legendcandle").data(e.visible&&"candlestick"===e.type?[t,t]:[]);r.enter().append("path").classed("legendcandle",!0).attr("d",(function(t,e){return e?"M-15,0H-8M-8,6V-6H8Z":"M15,0H8M8,-6V6H-8Z"})).attr("transform",b).style("stroke-miterlimit",1),r.exit().remove(),r.each((function(t,r){var i=n.select(this),a=e[r?"increasing":"decreasing"],o=_(void 0,a.line,5,2);i.style("stroke-width",o+"px").call(l.fill,a.fillcolor),o&&l.stroke(i,a.line.color)}))})).each((function(t){var e=t[0].trace,r=n.select(this).select("g.legendpoints").selectAll("path.legendohlc").data(e.visible&&"ohlc"===e.type?[t,t]:[]);r.enter().append("path").classed("legendohlc",!0).attr("d",(function(t,e){return e?"M-15,0H0M-8,-6V0":"M15,0H0M8,6V0"})).attr("transform",b).style("stroke-miterlimit",1),r.exit().remove(),r.each((function(t,r){var i=n.select(this),a=e[r?"increasing":"decreasing"],o=_(void 0,a.line,5,2);i.style("fill","none").call(s.dashLine,a.line.dash,o),o&&l.stroke(i,a.line.color)}))}))}},{"../../lib":795,"../../registry":923,"../../traces/pie/helpers":1178,"../../traces/pie/style_one":1184,"../../traces/scatter/subtypes":1224,"../color":658,"../colorscale/helpers":669,"../drawing":680,"./constants":709,"@plotly/d3":57}],717:[function(t,e,r){"use strict";t("./constants");e.exports={editType:"modebar",orientation:{valType:"enumerated",values:["v","h"],dflt:"h",editType:"modebar"},bgcolor:{valType:"color",editType:"modebar"},color:{valType:"color",editType:"modebar"},activecolor:{valType:"color",editType:"modebar"},uirevision:{valType:"any",editType:"none"},add:{valType:"string",arrayOk:!0,dflt:"",editType:"modebar"},remove:{valType:"string",arrayOk:!0,dflt:"",editType:"modebar"}}},{"./constants":719}],718:[function(t,e,r){"use strict";var n=t("../../registry"),i=t("../../plots/plots"),a=t("../../plots/cartesian/axis_ids"),o=t("../../fonts/ploticon"),s=t("../shapes/draw").eraseActiveShape,l=t("../../lib"),c=l._,u=e.exports={};function f(t,e){var r,i,o=e.currentTarget,s=o.getAttribute("data-attr"),l=o.getAttribute("data-val")||!0,c=t._fullLayout,u={},f=a.list(t,null,!0),h=c._cartesianSpikesEnabled;if("zoom"===s){var p,d="in"===l?.5:2,m=(1+d)/2,g=(1-d)/2;for(i=0;i1?(P=["toggleHover"],I=["resetViews"]):v?(C=["zoomInGeo","zoomOutGeo"],P=["hoverClosestGeo"],I=["resetGeo"]):g?(P=["hoverClosest3d"],I=["resetCameraDefault3d","resetCameraLastSave3d"]):w?(C=["zoomInMapbox","zoomOutMapbox"],P=["toggleHover"],I=["resetViewMapbox"]):b?P=["hoverClosestGl2d"]:y?P=["hoverClosestPie"]:k?(P=["hoverClosestCartesian","hoverCompareCartesian"],I=["resetViewSankey"]):P=["toggleHover"];m&&(P=["toggleSpikelines","hoverClosestCartesian","hoverCompareCartesian"]);(function(t){for(var e=0;e0)){var m=function(t,e,r){for(var n=r.filter((function(r){return e[r].anchor===t._id})),i=0,a=0;a=n.max)e=F[r+1];else if(t=n.pmax)e=F[r+1];else if(t0?h+c:c;return{ppad:c,ppadplus:u?d:m,ppadminus:u?m:d}}return{ppad:c}}function u(t,e,r,n,i){var s="category"===t.type||"multicategory"===t.type?t.r2c:t.d2c;if(void 0!==e)return[s(e),s(r)];if(n){var l,c,u,f,h=1/0,p=-1/0,d=n.match(a.segmentRE);for("date"===t.type&&(s=o.decodeDate(s)),l=0;lp&&(p=f)));return p>=h?[h,p]:void 0}}e.exports=function(t){var e=t._fullLayout,r=n.filterVisible(e.shapes);if(r.length&&t._fullData.length)for(var o=0;oy?(k=f,E="y0",M=y,L="y1"):(k=y,E="y1",M=f,L="y0");Z(n),Q(s,r),function(t,e,r){var n=e.xref,i=e.yref,o=a.getFromId(r,n),s=a.getFromId(r,i),l="";"paper"===n||o.autorange||(l+=n);"paper"===i||s.autorange||(l+=i);u.setClipUrl(t,l?"clip"+r._fullLayout._uid+l:null,r)}(e,r,t),X.moveFn="move"===O?J:K,X.altKey=n.altKey},doneFn:function(){if(v(t))return;p(e),$(s),b(e,t,r),n.call("_guiRelayout",t,l.getUpdateObj())},clickFn:function(){if(v(t))return;$(s)}};function Z(r){if(v(t))O=null;else if(R)O="path"===r.target.tagName?"move":"start-point"===r.target.attributes["data-line-point"].value?"resize-over-start-point":"resize-over-end-point";else{var n=X.element.getBoundingClientRect(),i=n.right-n.left,a=n.bottom-n.top,o=r.clientX-n.left,s=r.clientY-n.top,l=!F&&i>10&&a>10&&!r.shiftKey?h.getCursor(o/i,1-s/a):"move";p(e,l),O=l.split("-")[0]}}function J(n,i){if("path"===r.type){var a=function(t){return t},o=a,l=a;z?B("xanchor",r.xanchor=G(x+n)):(o=function(t){return G(q(t)+n)},N&&"date"===N.type&&(o=m.encodeDate(o))),D?B("yanchor",r.yanchor=Y(T+i)):(l=function(t){return Y(H(t)+i)},U&&"date"===U.type&&(l=m.encodeDate(l))),B("path",r.path=w(I,o,l))}else z?B("xanchor",r.xanchor=G(x+n)):(B("x0",r.x0=G(c+n)),B("x1",r.x1=G(g+n))),D?B("yanchor",r.yanchor=Y(T+i)):(B("y0",r.y0=Y(f+i)),B("y1",r.y1=Y(y+i)));e.attr("d",_(t,r)),Q(s,r)}function K(n,i){if(F){var a=function(t){return t},o=a,l=a;z?B("xanchor",r.xanchor=G(x+n)):(o=function(t){return G(q(t)+n)},N&&"date"===N.type&&(o=m.encodeDate(o))),D?B("yanchor",r.yanchor=Y(T+i)):(l=function(t){return Y(H(t)+i)},U&&"date"===U.type&&(l=m.encodeDate(l))),B("path",r.path=w(I,o,l))}else if(R){if("resize-over-start-point"===O){var u=c+n,h=D?f-i:f+i;B("x0",r.x0=z?u:G(u)),B("y0",r.y0=D?h:Y(h))}else if("resize-over-end-point"===O){var p=g+n,d=D?y-i:y+i;B("x1",r.x1=z?p:G(p)),B("y1",r.y1=D?d:Y(d))}}else{var v=function(t){return-1!==O.indexOf(t)},b=v("n"),j=v("s"),V=v("w"),W=v("e"),X=b?k+i:k,Z=j?M+i:M,J=V?A+n:A,K=W?S+n:S;D&&(b&&(X=k-i),j&&(Z=M-i)),(!D&&Z-X>10||D&&X-Z>10)&&(B(E,r[E]=D?X:Y(X)),B(L,r[L]=D?Z:Y(Z))),K-J>10&&(B(C,r[C]=z?J:G(J)),B(P,r[P]=z?K:G(K)))}e.attr("d",_(t,r)),Q(s,r)}function Q(t,e){(z||D)&&function(){var r="path"!==e.type,n=t.selectAll(".visual-cue").data([0]);n.enter().append("path").attr({fill:"#fff","fill-rule":"evenodd",stroke:"#000","stroke-width":1}).classed("visual-cue",!0);var a=q(z?e.xanchor:i.midRange(r?[e.x0,e.x1]:m.extractPathCoords(e.path,d.paramIsX))),o=H(D?e.yanchor:i.midRange(r?[e.y0,e.y1]:m.extractPathCoords(e.path,d.paramIsY)));if(a=m.roundPositionForSharpStrokeRendering(a,1),o=m.roundPositionForSharpStrokeRendering(o,1),z&&D){var s="M"+(a-1-1)+","+(o-1-1)+"h-8v2h8 v8h2v-8 h8v-2h-8 v-8h-2 Z";n.attr("d",s)}else if(z){var l="M"+(a-1-1)+","+(o-9-1)+"v18 h2 v-18 Z";n.attr("d",l)}else{var c="M"+(a-9-1)+","+(o-1-1)+"h18 v2 h-18 Z";n.attr("d",c)}}()}function $(t){t.selectAll(".visual-cue").remove()}h.init(X),W.node().onmousemove=Z}(t,z,l,e,r,O):!0===l.editable&&z.style("pointer-events",P||c.opacity(S)*A<=.5?"stroke":"all");z.node().addEventListener("click",(function(){return function(t,e){if(!y(t))return;var r=+e.node().getAttribute("data-index");if(r>=0){if(r===t._fullLayout._activeShapeIndex)return void T(t);t._fullLayout._activeShapeIndex=r,t._fullLayout._deactivateShape=T,g(t)}}(t,z)}))}}function b(t,e,r){var n=(r.xref+r.yref).replace(/paper/g,"").replace(/[xyz][1-9]* *domain/g,"");u.setClipUrl(t,n?"clip"+e._fullLayout._uid+n:null,e)}function _(t,e){var r,n,o,s,l,c,u,f,h=e.type,p=a.getRefType(e.xref),g=a.getRefType(e.yref),v=a.getFromId(t,e.xref),y=a.getFromId(t,e.yref),x=t._fullLayout._size;if(v?"domain"===p?n=function(t){return v._offset+v._length*t}:(r=m.shapePositionToRange(v),n=function(t){return v._offset+v.r2p(r(t,!0))}):n=function(t){return x.l+x.w*t},y?"domain"===g?s=function(t){return y._offset+y._length*(1-t)}:(o=m.shapePositionToRange(y),s=function(t){return y._offset+y.r2p(o(t,!0))}):s=function(t){return x.t+x.h*(1-t)},"path"===h)return v&&"date"===v.type&&(n=m.decodeDate(n)),y&&"date"===y.type&&(s=m.decodeDate(s)),function(t,e,r){var n=t.path,a=t.xsizemode,o=t.ysizemode,s=t.xanchor,l=t.yanchor;return n.replace(d.segmentRE,(function(t){var n=0,c=t.charAt(0),u=d.paramIsX[c],f=d.paramIsY[c],h=d.numParams[c],p=t.substr(1).replace(d.paramRE,(function(t){return u[n]?t="pixel"===a?e(s)+Number(t):e(t):f[n]&&(t="pixel"===o?r(l)-Number(t):r(t)),++n>h&&(t="X"),t}));return n>h&&(p=p.replace(/[\s,]*X.*/,""),i.log("Ignoring extra params in segment "+t)),c+p}))}(e,n,s);if("pixel"===e.xsizemode){var b=n(e.xanchor);l=b+e.x0,c=b+e.x1}else l=n(e.x0),c=n(e.x1);if("pixel"===e.ysizemode){var _=s(e.yanchor);u=_-e.y0,f=_-e.y1}else u=s(e.y0),f=s(e.y1);if("line"===h)return"M"+l+","+u+"L"+c+","+f;if("rect"===h)return"M"+l+","+u+"H"+c+"V"+f+"H"+l+"Z";var w=(l+c)/2,T=(u+f)/2,k=Math.abs(w-l),M=Math.abs(T-u),A="A"+k+","+M,S=w+k+","+T;return"M"+S+A+" 0 1,1 "+(w+","+(T-M))+A+" 0 0,1 "+S+"Z"}function w(t,e,r){return t.replace(d.segmentRE,(function(t){var n=0,i=t.charAt(0),a=d.paramIsX[i],o=d.paramIsY[i],s=d.numParams[i];return i+t.substr(1).replace(d.paramRE,(function(t){return n>=s||(a[n]?t=e(t):o[n]&&(t=r(t)),n++),t}))}))}function T(t){y(t)&&(t._fullLayout._activeShapeIndex>=0&&(l(t),delete t._fullLayout._activeShapeIndex,g(t)))}e.exports={draw:g,drawOne:x,eraseActiveShape:function(t){if(!y(t))return;l(t);var e=t._fullLayout._activeShapeIndex,r=(t.layout||{}).shapes||[];if(e=0&&f(v),r.attr("d",m(e)),M&&!h)&&(k=function(t,e){for(var r=0;r1&&(2!==t.length||"Z"!==t[1][0])&&(0===T&&(t[0][0]="M"),e[w]=t,y(),x())}}()}}function I(t,r){!function(t,r){if(e.length)for(var n=0;n0&&l0&&(s=s.transition().duration(e.transition.duration).ease(e.transition.easing)),s.attr("transform",l(o-.5*f.gripWidth,e._dims.currentValueTotalHeight))}}function E(t,e){var r=t._dims;return r.inputAreaStart+f.stepInset+(r.inputAreaLength-2*f.stepInset)*Math.min(1,Math.max(0,e))}function L(t,e){var r=t._dims;return Math.min(1,Math.max(0,(e-f.stepInset-r.inputAreaStart)/(r.inputAreaLength-2*f.stepInset-2*r.inputAreaStart)))}function C(t,e,r){var n=r._dims,i=s.ensureSingle(t,"rect",f.railTouchRectClass,(function(n){n.call(M,e,t,r).style("pointer-events","all")}));i.attr({width:n.inputAreaLength,height:Math.max(n.inputAreaWidth,f.tickOffset+r.ticklen+n.labelHeight)}).call(a.fill,r.bgcolor).attr("opacity",0),o.setTranslate(i,0,n.currentValueTotalHeight)}function P(t,e){var r=e._dims,n=r.inputAreaLength-2*f.railInset,i=s.ensureSingle(t,"rect",f.railRectClass);i.attr({width:n,height:f.railWidth,rx:f.railRadius,ry:f.railRadius,"shape-rendering":"crispEdges"}).call(a.stroke,e.bordercolor).call(a.fill,e.bgcolor).style("stroke-width",e.borderwidth+"px"),o.setTranslate(i,f.railInset,.5*(r.inputAreaWidth-f.railWidth)+r.currentValueTotalHeight)}e.exports=function(t){var e=t._fullLayout,r=function(t,e){for(var r=t[f.name],n=[],i=0;i0?[0]:[]);function s(e){e._commandObserver&&(e._commandObserver.remove(),delete e._commandObserver),i.autoMargin(t,g(e))}if(a.enter().append("g").classed(f.containerClassName,!0).style("cursor","ew-resize"),a.exit().each((function(){n.select(this).selectAll("g."+f.groupClassName).each(s)})).remove(),0!==r.length){var l=a.selectAll("g."+f.groupClassName).data(r,v);l.enter().append("g").classed(f.groupClassName,!0),l.exit().each(s).remove();for(var c=0;c0||h<0){var v={left:[-d,0],right:[d,0],top:[0,-d],bottom:[0,d]}[b.side];e.attr("transform",l(v[0],v[1]))}}}return D.call(R),O&&(E?D.on(".opacity",null):(M=0,A=!0,D.text(y).on("mouseover.opacity",(function(){n.select(this).transition().duration(h.SHOW_PLACEHOLDER).style("opacity",1)})).on("mouseout.opacity",(function(){n.select(this).transition().duration(h.HIDE_PLACEHOLDER).style("opacity",0)}))),D.call(f.makeEditable,{gd:t}).on("edit",(function(e){void 0!==x?o.call("_guiRestyle",t,v,e,x):o.call("_guiRelayout",t,v,e)})).on("cancel",(function(){this.text(this.attr("data-unformatted")).call(R)})).on("input",(function(t){this.text(t||" ").call(f.positionText,_.x,_.y)}))),D.classed("js-placeholder",A),T}}},{"../../constants/alignment":763,"../../constants/interactions":770,"../../lib":795,"../../lib/svg_text_utils":820,"../../plots/plots":909,"../../registry":923,"../color":658,"../drawing":680,"@plotly/d3":57,"fast-isnumeric":240}],757:[function(t,e,r){"use strict";var n=t("../../plots/font_attributes"),i=t("../color/attributes"),a=t("../../lib/extend").extendFlat,o=t("../../plot_api/edit_types").overrideAll,s=t("../../plots/pad_attributes"),l=t("../../plot_api/plot_template").templatedArray,c=l("button",{visible:{valType:"boolean"},method:{valType:"enumerated",values:["restyle","relayout","animate","update","skip"],dflt:"restyle"},args:{valType:"info_array",freeLength:!0,items:[{valType:"any"},{valType:"any"},{valType:"any"}]},args2:{valType:"info_array",freeLength:!0,items:[{valType:"any"},{valType:"any"},{valType:"any"}]},label:{valType:"string",dflt:""},execute:{valType:"boolean",dflt:!0}});e.exports=o(l("updatemenu",{_arrayAttrRegexps:[/^updatemenus\[(0|[1-9][0-9]+)\]\.buttons/],visible:{valType:"boolean"},type:{valType:"enumerated",values:["dropdown","buttons"],dflt:"dropdown"},direction:{valType:"enumerated",values:["left","right","up","down"],dflt:"down"},active:{valType:"integer",min:-1,dflt:0},showactive:{valType:"boolean",dflt:!0},buttons:c,x:{valType:"number",min:-2,max:3,dflt:-.05},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"right"},y:{valType:"number",min:-2,max:3,dflt:1},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"top"},pad:a(s({editType:"arraydraw"}),{}),font:n({}),bgcolor:{valType:"color"},bordercolor:{valType:"color",dflt:i.borderLine},borderwidth:{valType:"number",min:0,dflt:1,editType:"arraydraw"}}),"arraydraw","from-root")},{"../../lib/extend":785,"../../plot_api/edit_types":827,"../../plot_api/plot_template":834,"../../plots/font_attributes":873,"../../plots/pad_attributes":908,"../color/attributes":657}],758:[function(t,e,r){"use strict";e.exports={name:"updatemenus",containerClassName:"updatemenu-container",headerGroupClassName:"updatemenu-header-group",headerClassName:"updatemenu-header",headerArrowClassName:"updatemenu-header-arrow",dropdownButtonGroupClassName:"updatemenu-dropdown-button-group",dropdownButtonClassName:"updatemenu-dropdown-button",buttonClassName:"updatemenu-button",itemRectClassName:"updatemenu-item-rect",itemTextClassName:"updatemenu-item-text",menuIndexAttrName:"updatemenu-active-index",autoMarginIdRoot:"updatemenu-",blankHeaderOpts:{label:" "},minWidth:30,minHeight:30,textPadX:24,arrowPadX:16,rx:2,ry:2,textOffsetX:12,textOffsetY:3,arrowOffsetX:4,gapButtonHeader:5,gapButton:2,activeColor:"#F4FAFF",hoverColor:"#F4FAFF",arrowSymbol:{left:"\u25c4",right:"\u25ba",up:"\u25b2",down:"\u25bc"}}},{}],759:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../plots/array_container_defaults"),a=t("./attributes"),o=t("./constants").name,s=a.buttons;function l(t,e,r){function o(r,i){return n.coerce(t,e,a,r,i)}o("visible",i(t,e,{name:"buttons",handleItemDefaults:c}).length>0)&&(o("active"),o("direction"),o("type"),o("showactive"),o("x"),o("y"),n.noneOrAll(t,e,["x","y"]),o("xanchor"),o("yanchor"),o("pad.t"),o("pad.r"),o("pad.b"),o("pad.l"),n.coerceFont(o,"font",r.font),o("bgcolor",r.paper_bgcolor),o("bordercolor"),o("borderwidth"))}function c(t,e){function r(r,i){return n.coerce(t,e,s,r,i)}r("visible","skip"===t.method||Array.isArray(t.args))&&(r("method"),r("args"),r("args2"),r("label"),r("execute"))}e.exports=function(t,e){i(t,e,{name:o,handleItemDefaults:l})}},{"../../lib":795,"../../plots/array_container_defaults":840,"./attributes":757,"./constants":758}],760:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("../../plots/plots"),a=t("../color"),o=t("../drawing"),s=t("../../lib"),l=t("../../lib/svg_text_utils"),c=t("../../plot_api/plot_template").arrayEditor,u=t("../../constants/alignment").LINE_SPACING,f=t("./constants"),h=t("./scrollbox");function p(t){return t._index}function d(t,e){return+t.attr(f.menuIndexAttrName)===e._index}function m(t,e,r,n,i,a,o,s){e.active=o,c(t.layout,f.name,e).applyUpdate("active",o),"buttons"===e.type?v(t,n,null,null,e):"dropdown"===e.type&&(i.attr(f.menuIndexAttrName,"-1"),g(t,n,i,a,e),s||v(t,n,i,a,e))}function g(t,e,r,n,i){var a=s.ensureSingle(e,"g",f.headerClassName,(function(t){t.style("pointer-events","all")})),l=i._dims,c=i.active,u=i.buttons[c]||f.blankHeaderOpts,h={y:i.pad.t,yPad:0,x:i.pad.l,xPad:0,index:0},p={width:l.headerWidth,height:l.headerHeight};a.call(y,i,u,t).call(A,i,h,p),s.ensureSingle(e,"text",f.headerArrowClassName,(function(t){t.attr("text-anchor","end").call(o.font,i.font).text(f.arrowSymbol[i.direction])})).attr({x:l.headerWidth-f.arrowOffsetX+i.pad.l,y:l.headerHeight/2+f.textOffsetY+i.pad.t}),a.on("click",(function(){r.call(S,String(d(r,i)?-1:i._index)),v(t,e,r,n,i)})),a.on("mouseover",(function(){a.call(w)})),a.on("mouseout",(function(){a.call(T,i)})),o.setTranslate(e,l.lx,l.ly)}function v(t,e,r,a,o){r||(r=e).attr("pointer-events","all");var l=function(t){return-1==+t.attr(f.menuIndexAttrName)}(r)&&"buttons"!==o.type?[]:o.buttons,c="dropdown"===o.type?f.dropdownButtonClassName:f.buttonClassName,u=r.selectAll("g."+c).data(s.filterVisible(l)),h=u.enter().append("g").classed(c,!0),p=u.exit();"dropdown"===o.type?(h.attr("opacity","0").transition().attr("opacity","1"),p.transition().attr("opacity","0").remove()):p.remove();var d=0,g=0,v=o._dims,x=-1!==["up","down"].indexOf(o.direction);"dropdown"===o.type&&(x?g=v.headerHeight+f.gapButtonHeader:d=v.headerWidth+f.gapButtonHeader),"dropdown"===o.type&&"up"===o.direction&&(g=-f.gapButtonHeader+f.gapButton-v.openHeight),"dropdown"===o.type&&"left"===o.direction&&(d=-f.gapButtonHeader+f.gapButton-v.openWidth);var b={x:v.lx+d+o.pad.l,y:v.ly+g+o.pad.t,yPad:f.gapButton,xPad:f.gapButton,index:0},k={l:b.x+o.borderwidth,t:b.y+o.borderwidth};u.each((function(s,l){var c=n.select(this);c.call(y,o,s,t).call(A,o,b),c.on("click",(function(){n.event.defaultPrevented||(s.execute&&(s.args2&&o.active===l?(m(t,o,0,e,r,a,-1),i.executeAPICommand(t,s.method,s.args2)):(m(t,o,0,e,r,a,l),i.executeAPICommand(t,s.method,s.args))),t.emit("plotly_buttonclicked",{menu:o,button:s,active:o.active}))})),c.on("mouseover",(function(){c.call(w)})),c.on("mouseout",(function(){c.call(T,o),u.call(_,o)}))})),u.call(_,o),x?(k.w=Math.max(v.openWidth,v.headerWidth),k.h=b.y-k.t):(k.w=b.x-k.l,k.h=Math.max(v.openHeight,v.headerHeight)),k.direction=o.direction,a&&(u.size()?function(t,e,r,n,i,a){var o,s,l,c=i.direction,u="up"===c||"down"===c,h=i._dims,p=i.active;if(u)for(s=0,l=0;l0?[0]:[]);if(o.enter().append("g").classed(f.containerClassName,!0).style("cursor","pointer"),o.exit().each((function(){n.select(this).selectAll("g."+f.headerGroupClassName).each(a)})).remove(),0!==r.length){var l=o.selectAll("g."+f.headerGroupClassName).data(r,p);l.enter().append("g").classed(f.headerGroupClassName,!0);for(var c=s.ensureSingle(o,"g",f.dropdownButtonGroupClassName,(function(t){t.style("pointer-events","all")})),u=0;uw,M=s.barLength+2*s.barPad,A=s.barWidth+2*s.barPad,S=d,E=g+v;E+A>c&&(E=c-A);var L=this.container.selectAll("rect.scrollbar-horizontal").data(k?[0]:[]);L.exit().on(".drag",null).remove(),L.enter().append("rect").classed("scrollbar-horizontal",!0).call(i.fill,s.barColor),k?(this.hbar=L.attr({rx:s.barRadius,ry:s.barRadius,x:S,y:E,width:M,height:A}),this._hbarXMin=S+M/2,this._hbarTranslateMax=w-M):(delete this.hbar,delete this._hbarXMin,delete this._hbarTranslateMax);var C=v>T,P=s.barWidth+2*s.barPad,I=s.barLength+2*s.barPad,O=d+m,z=g;O+P>l&&(O=l-P);var D=this.container.selectAll("rect.scrollbar-vertical").data(C?[0]:[]);D.exit().on(".drag",null).remove(),D.enter().append("rect").classed("scrollbar-vertical",!0).call(i.fill,s.barColor),C?(this.vbar=D.attr({rx:s.barRadius,ry:s.barRadius,x:O,y:z,width:P,height:I}),this._vbarYMin=z+I/2,this._vbarTranslateMax=T-I):(delete this.vbar,delete this._vbarYMin,delete this._vbarTranslateMax);var R=this.id,F=u-.5,B=C?f+P+.5:f+.5,N=h-.5,j=k?p+A+.5:p+.5,U=o._topdefs.selectAll("#"+R).data(k||C?[0]:[]);if(U.exit().remove(),U.enter().append("clipPath").attr("id",R).append("rect"),k||C?(this._clipRect=U.select("rect").attr({x:Math.floor(F),y:Math.floor(N),width:Math.ceil(B)-Math.floor(F),height:Math.ceil(j)-Math.floor(N)}),this.container.call(a.setClipUrl,R,this.gd),this.bg.attr({x:d,y:g,width:m,height:v})):(this.bg.attr({width:0,height:0}),this.container.on("wheel",null).on(".drag",null).call(a.setClipUrl,null),delete this._clipRect),k||C){var V=n.behavior.drag().on("dragstart",(function(){n.event.sourceEvent.preventDefault()})).on("drag",this._onBoxDrag.bind(this));this.container.on("wheel",null).on("wheel",this._onBoxWheel.bind(this)).on(".drag",null).call(V);var q=n.behavior.drag().on("dragstart",(function(){n.event.sourceEvent.preventDefault(),n.event.sourceEvent.stopPropagation()})).on("drag",this._onBarDrag.bind(this));k&&this.hbar.on(".drag",null).call(q),C&&this.vbar.on(".drag",null).call(q)}this.setTranslate(e,r)},s.prototype.disable=function(){(this.hbar||this.vbar)&&(this.bg.attr({width:0,height:0}),this.container.on("wheel",null).on(".drag",null).call(a.setClipUrl,null),delete this._clipRect),this.hbar&&(this.hbar.on(".drag",null),this.hbar.remove(),delete this.hbar,delete this._hbarXMin,delete this._hbarTranslateMax),this.vbar&&(this.vbar.on(".drag",null),this.vbar.remove(),delete this.vbar,delete this._vbarYMin,delete this._vbarTranslateMax)},s.prototype._onBoxDrag=function(){var t=this.translateX,e=this.translateY;this.hbar&&(t-=n.event.dx),this.vbar&&(e-=n.event.dy),this.setTranslate(t,e)},s.prototype._onBoxWheel=function(){var t=this.translateX,e=this.translateY;this.hbar&&(t+=n.event.deltaY),this.vbar&&(e+=n.event.deltaY),this.setTranslate(t,e)},s.prototype._onBarDrag=function(){var t=this.translateX,e=this.translateY;if(this.hbar){var r=t+this._hbarXMin,i=r+this._hbarTranslateMax;t=(o.constrain(n.event.x,r,i)-r)/(i-r)*(this.position.w-this._box.w)}if(this.vbar){var a=e+this._vbarYMin,s=a+this._vbarTranslateMax;e=(o.constrain(n.event.y,a,s)-a)/(s-a)*(this.position.h-this._box.h)}this.setTranslate(t,e)},s.prototype.setTranslate=function(t,e){var r=this.position.w-this._box.w,n=this.position.h-this._box.h;if(t=o.constrain(t||0,0,r),e=o.constrain(e||0,0,n),this.translateX=t,this.translateY=e,this.container.call(a.setTranslate,this._box.l-this.position.l-t,this._box.t-this.position.t-e),this._clipRect&&this._clipRect.attr({x:Math.floor(this.position.l+t-.5),y:Math.floor(this.position.t+e-.5)}),this.hbar){var i=t/r;this.hbar.call(a.setTranslate,t+i*this._hbarTranslateMax,e)}if(this.vbar){var s=e/n;this.vbar.call(a.setTranslate,t,e+s*this._vbarTranslateMax)}}},{"../../lib":795,"../color":658,"../drawing":680,"@plotly/d3":57}],763:[function(t,e,r){"use strict";e.exports={FROM_BL:{left:0,center:.5,right:1,bottom:0,middle:.5,top:1},FROM_TL:{left:0,center:.5,right:1,bottom:1,middle:.5,top:0},FROM_BR:{left:1,center:.5,right:0,bottom:0,middle:.5,top:1},LINE_SPACING:1.3,CAP_SHIFT:.7,MID_SHIFT:.35,OPPOSITE_SIDE:{left:"right",right:"left",top:"bottom",bottom:"top"}}},{}],764:[function(t,e,r){"use strict";e.exports={axisRefDescription:function(t,e,r){return["If set to a",t,"axis id (e.g. *"+t+"* or","*"+t+"2*), the `"+t+"` position refers to a",t,"coordinate. If set to *paper*, the `"+t+"`","position refers to the distance from the",e,"of the plotting","area in normalized coordinates where *0* (*1*) corresponds to the",e,"("+r+"). If set to a",t,"axis ID followed by","*domain* (separated by a space), the position behaves like for","*paper*, but refers to the distance in fractions of the domain","length from the",e,"of the domain of that axis: e.g.,","*"+t+"2 domain* refers to the domain of the second",t," axis and a",t,"position of 0.5 refers to the","point between the",e,"and the",r,"of the domain of the","second",t,"axis."].join(" ")}}},{}],765:[function(t,e,r){"use strict";e.exports={INCREASING:{COLOR:"#3D9970",SYMBOL:"\u25b2"},DECREASING:{COLOR:"#FF4136",SYMBOL:"\u25bc"}}},{}],766:[function(t,e,r){"use strict";e.exports={FORMAT_LINK:"https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format",DATE_FORMAT_LINK:"https://github.com/d3/d3-time-format#locale_format"}},{}],767:[function(t,e,r){"use strict";e.exports={COMPARISON_OPS:["=","!=","<",">=",">","<="],COMPARISON_OPS2:["=","<",">=",">","<="],INTERVAL_OPS:["[]","()","[)","(]","][",")(","](",")["],SET_OPS:["{}","}{"],CONSTRAINT_REDUCTION:{"=":"=","<":"<","<=":"<",">":">",">=":">","[]":"[]","()":"[]","[)":"[]","(]":"[]","][":"][",")(":"][","](":"][",")[":"]["}}},{}],768:[function(t,e,r){"use strict";e.exports={solid:[[],0],dot:[[.5,1],200],dash:[[.5,1],50],longdash:[[.5,1],10],dashdot:[[.5,.625,.875,1],50],longdashdot:[[.5,.7,.8,1],10]}},{}],769:[function(t,e,r){"use strict";e.exports={circle:"\u25cf","circle-open":"\u25cb",square:"\u25a0","square-open":"\u25a1",diamond:"\u25c6","diamond-open":"\u25c7",cross:"+",x:"\u274c"}},{}],770:[function(t,e,r){"use strict";e.exports={SHOW_PLACEHOLDER:100,HIDE_PLACEHOLDER:1e3,DESELECTDIM:.2}},{}],771:[function(t,e,r){"use strict";e.exports={BADNUM:void 0,FP_SAFE:1e-4*Number.MAX_VALUE,ONEMAXYEAR:316224e5,ONEAVGYEAR:315576e5,ONEMINYEAR:31536e6,ONEMAXQUARTER:79488e5,ONEAVGQUARTER:78894e5,ONEMINQUARTER:76896e5,ONEMAXMONTH:26784e5,ONEAVGMONTH:26298e5,ONEMINMONTH:24192e5,ONEWEEK:6048e5,ONEDAY:864e5,ONEHOUR:36e5,ONEMIN:6e4,ONESEC:1e3,EPOCHJD:2440587.5,ALMOST_EQUAL:.999999,LOG_CLIP:10,MINUS_SIGN:"\u2212"}},{}],772:[function(t,e,r){"use strict";r.xmlns="http://www.w3.org/2000/xmlns/",r.svg="http://www.w3.org/2000/svg",r.xlink="http://www.w3.org/1999/xlink",r.svgAttrs={xmlns:r.svg,"xmlns:xlink":r.xlink}},{}],773:[function(t,e,r){"use strict";r.version=t("./version").version,t("native-promise-only"),t("../build/plotcss");for(var n=t("./registry"),i=r.register=n.register,a=t("./plot_api"),o=Object.keys(a),s=0;splotly-logomark"}}},{}],775:[function(t,e,r){"use strict";r.isLeftAnchor=function(t){return"left"===t.xanchor||"auto"===t.xanchor&&t.x<=1/3},r.isCenterAnchor=function(t){return"center"===t.xanchor||"auto"===t.xanchor&&t.x>1/3&&t.x<2/3},r.isRightAnchor=function(t){return"right"===t.xanchor||"auto"===t.xanchor&&t.x>=2/3},r.isTopAnchor=function(t){return"top"===t.yanchor||"auto"===t.yanchor&&t.y>=2/3},r.isMiddleAnchor=function(t){return"middle"===t.yanchor||"auto"===t.yanchor&&t.y>1/3&&t.y<2/3},r.isBottomAnchor=function(t){return"bottom"===t.yanchor||"auto"===t.yanchor&&t.y<=1/3}},{}],776:[function(t,e,r){"use strict";var n=t("./mod"),i=n.mod,a=n.modHalf,o=Math.PI,s=2*o;function l(t){return Math.abs(t[1]-t[0])>s-1e-14}function c(t,e){return a(e-t,s)}function u(t,e){if(l(e))return!0;var r,n;e[0](n=i(n,s))&&(n+=s);var a=i(t,s),o=a+s;return a>=r&&a<=n||o>=r&&o<=n}function f(t,e,r,n,i,a,c){i=i||0,a=a||0;var u,f,h,p,d,m=l([r,n]);function g(t,e){return[t*Math.cos(e)+i,a-t*Math.sin(e)]}m?(u=0,f=o,h=s):r=i&&t<=a);var i,a},pathArc:function(t,e,r,n,i){return f(null,t,e,r,n,i,0)},pathSector:function(t,e,r,n,i){return f(null,t,e,r,n,i,1)},pathAnnulus:function(t,e,r,n,i,a){return f(t,e,r,n,i,a,1)}}},{"./mod":802}],777:[function(t,e,r){"use strict";var n=Array.isArray,i=ArrayBuffer,a=DataView;function o(t){return i.isView(t)&&!(t instanceof a)}function s(t){return n(t)||o(t)}function l(t,e,r){if(s(t)){if(s(t[0])){for(var n=r,i=0;ii.max?e.set(r):e.set(+t)}},integer:{coerceFunction:function(t,e,r,i){t%1||!n(t)||void 0!==i.min&&ti.max?e.set(r):e.set(+t)}},string:{coerceFunction:function(t,e,r,n){if("string"!=typeof t){var i="number"==typeof t;!0!==n.strict&&i?e.set(String(t)):e.set(r)}else n.noBlank&&!t?e.set(r):e.set(t)}},color:{coerceFunction:function(t,e,r){i(t).isValid()?e.set(t):e.set(r)}},colorlist:{coerceFunction:function(t,e,r){Array.isArray(t)&&t.length&&t.every((function(t){return i(t).isValid()}))?e.set(t):e.set(r)}},colorscale:{coerceFunction:function(t,e,r){e.set(o.get(t,r))}},angle:{coerceFunction:function(t,e,r){"auto"===t?e.set("auto"):n(t)?e.set(u(+t,360)):e.set(r)}},subplotid:{coerceFunction:function(t,e,r,n){var i=n.regex||c(r);"string"==typeof t&&i.test(t)?e.set(t):e.set(r)},validateFunction:function(t,e){var r=e.dflt;return t===r||"string"==typeof t&&!!c(r).test(t)}},flaglist:{coerceFunction:function(t,e,r,n){if("string"==typeof t)if(-1===(n.extras||[]).indexOf(t)){for(var i=t.split("+"),a=0;a=n&&t<=i?t:u}if("string"!=typeof t&&"number"!=typeof t)return u;t=String(t);var c=_(e),v=t.charAt(0);!c||"G"!==v&&"g"!==v||(t=t.substr(1),e="");var w=c&&"chinese"===e.substr(0,7),T=t.match(w?x:y);if(!T)return u;var k=T[1],M=T[3]||"1",A=Number(T[5]||1),S=Number(T[7]||0),E=Number(T[9]||0),L=Number(T[11]||0);if(c){if(2===k.length)return u;var C;k=Number(k);try{var P=g.getComponentMethod("calendars","getCal")(e);if(w){var I="i"===M.charAt(M.length-1);M=parseInt(M,10),C=P.newDate(k,P.toMonthIndex(k,M,I),A)}else C=P.newDate(k,Number(M),A)}catch(t){return u}return C?(C.toJD()-m)*f+S*h+E*p+L*d:u}k=2===k.length?(Number(k)+2e3-b)%100+b:Number(k),M-=1;var O=new Date(Date.UTC(2e3,M,A,S,E));return O.setUTCFullYear(k),O.getUTCMonth()!==M||O.getUTCDate()!==A?u:O.getTime()+L*d},n=r.MIN_MS=r.dateTime2ms("-9999"),i=r.MAX_MS=r.dateTime2ms("9999-12-31 23:59:59.9999"),r.isDateTime=function(t,e){return r.dateTime2ms(t,e)!==u};var T=90*f,k=3*h,M=5*p;function A(t,e,r,n,i){if((e||r||n||i)&&(t+=" "+w(e,2)+":"+w(r,2),(n||i)&&(t+=":"+w(n,2),i))){for(var a=4;i%10==0;)a-=1,i/=10;t+="."+w(i,a)}return t}r.ms2DateTime=function(t,e,r){if("number"!=typeof t||!(t>=n&&t<=i))return u;e||(e=0);var a,o,s,c,y,x,b=Math.floor(10*l(t+.05,1)),w=Math.round(t-b/10);if(_(r)){var S=Math.floor(w/f)+m,E=Math.floor(l(t,f));try{a=g.getComponentMethod("calendars","getCal")(r).fromJD(S).formatDate("yyyy-mm-dd")}catch(t){a=v("G%Y-%m-%d")(new Date(w))}if("-"===a.charAt(0))for(;a.length<11;)a="-0"+a.substr(1);else for(;a.length<10;)a="0"+a;o=e=n+f&&t<=i-f))return u;var e=Math.floor(10*l(t+.05,1)),r=new Date(Math.round(t-e/10));return A(a("%Y-%m-%d")(r),r.getHours(),r.getMinutes(),r.getSeconds(),10*r.getUTCMilliseconds()+e)},r.cleanDate=function(t,e,n){if(t===u)return e;if(r.isJSDate(t)||"number"==typeof t&&isFinite(t)){if(_(n))return s.error("JS Dates and milliseconds are incompatible with world calendars",t),e;if(!(t=r.ms2DateTimeLocal(+t))&&void 0!==e)return e}else if(!r.isDateTime(t,n))return s.error("unrecognized date",t),e;return t};var S=/%\d?f/g;function E(t,e,r,n){t=t.replace(S,(function(t){var r=Math.min(+t.charAt(1)||6,6);return(e/1e3%1+2).toFixed(r).substr(2).replace(/0+$/,"")||"0"}));var i=new Date(Math.floor(e+.05));if(_(n))try{t=g.getComponentMethod("calendars","worldCalFmt")(t,e,n)}catch(t){return"Invalid"}return r(t)(i)}var L=[59,59.9,59.99,59.999,59.9999];r.formatDate=function(t,e,r,n,i,a){if(i=_(i)&&i,!e)if("y"===r)e=a.year;else if("m"===r)e=a.month;else{if("d"!==r)return function(t,e){var r=l(t+.05,f),n=w(Math.floor(r/h),2)+":"+w(l(Math.floor(r/p),60),2);if("M"!==e){o(e)||(e=0);var i=(100+Math.min(l(t/d,60),L[e])).toFixed(e).substr(1);e>0&&(i=i.replace(/0+$/,"").replace(/[\.]$/,"")),n+=":"+i}return n}(t,r)+"\n"+E(a.dayMonthYear,t,n,i);e=a.dayMonth+"\n"+a.year}return E(e,t,n,i)};var C=3*f;r.incrementMonth=function(t,e,r){r=_(r)&&r;var n=l(t,f);if(t=Math.round(t-n),r)try{var i=Math.round(t/f)+m,a=g.getComponentMethod("calendars","getCal")(r),o=a.fromJD(i);return e%12?a.add(o,e,"m"):a.add(o,e/12,"y"),(o.toJD()-m)*f+n}catch(e){s.error("invalid ms "+t+" in calendar "+r)}var c=new Date(t+C);return c.setUTCMonth(c.getUTCMonth()+e)+n-C},r.findExactDates=function(t,e){for(var r,n,i=0,a=0,s=0,l=0,c=_(e)&&g.getComponentMethod("calendars","getCal")(e),u=0;u0&&t[e+1][0]<0)return e;return null}switch(e="RUS"===s||"FJI"===s?function(t){var e;if(null===c(t))e=t;else for(e=new Array(t.length),i=0;ie?r[n++]=[t[i][0]+360,t[i][1]]:i===e?(r[n++]=t[i],r[n++]=[t[i][0],-90]):r[n++]=t[i];var a=h.tester(r);a.pts.pop(),l.push(a)}:function(t){l.push(h.tester(t))},a.type){case"MultiPolygon":for(r=0;ri&&(i=c,e=l)}else e=r;return o.default(e).geometry.coordinates}(u),n.fIn=t,n.fOut=u,s.push(u)}else c.log(["Location",n.loc,"does not have a valid GeoJSON geometry.","Traces with locationmode *geojson-id* only support","*Polygon* and *MultiPolygon* geometries."].join(" "))}delete i[r]}switch(r.type){case"FeatureCollection":var h=r.features;for(n=0;n100?(clearInterval(a),n("Unexpected error while fetching from "+t)):void i++}),50)}))}for(var o=0;o0&&(r.push(i),i=[])}return i.length>0&&r.push(i),r},r.makeLine=function(t){return 1===t.length?{type:"LineString",coordinates:t[0]}:{type:"MultiLineString",coordinates:t}},r.makePolygon=function(t){if(1===t.length)return{type:"Polygon",coordinates:t};for(var e=new Array(t.length),r=0;r1||m<0||m>1?null:{x:t+l*m,y:e+f*m}}function l(t,e,r,n,i){var a=n*t+i*e;if(a<0)return n*n+i*i;if(a>r){var o=n-t,s=i-e;return o*o+s*s}var l=n*e-i*t;return l*l/r}r.segmentsIntersect=s,r.segmentDistance=function(t,e,r,n,i,a,o,c){if(s(t,e,r,n,i,a,o,c))return 0;var u=r-t,f=n-e,h=o-i,p=c-a,d=u*u+f*f,m=h*h+p*p,g=Math.min(l(u,f,d,i-t,a-e),l(u,f,d,o-t,c-e),l(h,p,m,t-i,e-a),l(h,p,m,r-i,n-a));return Math.sqrt(g)},r.getTextLocation=function(t,e,r,s){if(t===i&&s===a||(n={},i=t,a=s),n[r])return n[r];var l=t.getPointAtLength(o(r-s/2,e)),c=t.getPointAtLength(o(r+s/2,e)),u=Math.atan((c.y-l.y)/(c.x-l.x)),f=t.getPointAtLength(o(r,e)),h={x:(4*f.x+l.x+c.x)/6,y:(4*f.y+l.y+c.y)/6,theta:u};return n[r]=h,h},r.clearLocationCache=function(){i=null},r.getVisibleSegment=function(t,e,r){var n,i,a=e.left,o=e.right,s=e.top,l=e.bottom,c=0,u=t.getTotalLength(),f=u;function h(e){var r=t.getPointAtLength(e);0===e?n=r:e===u&&(i=r);var c=r.xo?r.x-o:0,f=r.yl?r.y-l:0;return Math.sqrt(c*c+f*f)}for(var p=h(c);p;){if((c+=p+r)>f)return;p=h(c)}for(p=h(f);p;){if(c>(f-=p+r))return;p=h(f)}return{min:c,max:f,len:f-c,total:u,isClosed:0===c&&f===u&&Math.abs(n.x-i.x)<.1&&Math.abs(n.y-i.y)<.1}},r.findPointOnPath=function(t,e,r,n){for(var i,a,o,s=(n=n||{}).pathLength||t.getTotalLength(),l=n.tolerance||.001,c=n.iterationLimit||30,u=t.getPointAtLength(0)[r]>t.getPointAtLength(s)[r]?-1:1,f=0,h=0,p=s;f0?p=i:h=i,f++}return a}},{"./mod":802}],791:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("tinycolor2"),a=t("color-normalize"),o=t("../components/colorscale"),s=t("../components/color/attributes").defaultLine,l=t("./array").isArrayOrTypedArray,c=a(s);function u(t,e){var r=t;return r[3]*=e,r}function f(t){if(n(t))return c;var e=a(t);return e.length?e:c}function h(t){return n(t)?t:1}e.exports={formatColor:function(t,e,r){var n,i,s,p,d,m=t.color,g=l(m),v=l(e),y=o.extractOpts(t),x=[];if(n=void 0!==y.colorscale?o.makeColorScaleFuncFromTrace(t):f,i=g?function(t,e){return void 0===t[e]?c:a(n(t[e]))}:f,s=v?function(t,e){return void 0===t[e]?1:h(t[e])}:h,g||v)for(var b=0;b1?(r*t+r*e)/r:t+e,i=String(n).length;if(i>16){var a=String(e).length;if(i>=String(t).length+a){var o=parseFloat(n).toPrecision(12);-1===o.indexOf("e+")&&(n=+o)}}return n}},{}],795:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("d3-time-format").utcFormat,a=t("fast-isnumeric"),o=t("../constants/numerical"),s=o.FP_SAFE,l=-s,c=o.BADNUM,u=e.exports={};u.nestedProperty=t("./nested_property"),u.keyedContainer=t("./keyed_container"),u.relativeAttr=t("./relative_attr"),u.isPlainObject=t("./is_plain_object"),u.toLogRange=t("./to_log_range"),u.relinkPrivateKeys=t("./relink_private");var f=t("./array");u.isTypedArray=f.isTypedArray,u.isArrayOrTypedArray=f.isArrayOrTypedArray,u.isArray1D=f.isArray1D,u.ensureArray=f.ensureArray,u.concat=f.concat,u.maxRowLength=f.maxRowLength,u.minRowLength=f.minRowLength;var h=t("./mod");u.mod=h.mod,u.modHalf=h.modHalf;var p=t("./coerce");u.valObjectMeta=p.valObjectMeta,u.coerce=p.coerce,u.coerce2=p.coerce2,u.coerceFont=p.coerceFont,u.coercePattern=p.coercePattern,u.coerceHoverinfo=p.coerceHoverinfo,u.coerceSelectionMarkerOpacity=p.coerceSelectionMarkerOpacity,u.validate=p.validate;var d=t("./dates");u.dateTime2ms=d.dateTime2ms,u.isDateTime=d.isDateTime,u.ms2DateTime=d.ms2DateTime,u.ms2DateTimeLocal=d.ms2DateTimeLocal,u.cleanDate=d.cleanDate,u.isJSDate=d.isJSDate,u.formatDate=d.formatDate,u.incrementMonth=d.incrementMonth,u.dateTick0=d.dateTick0,u.dfltRange=d.dfltRange,u.findExactDates=d.findExactDates,u.MIN_MS=d.MIN_MS,u.MAX_MS=d.MAX_MS;var m=t("./search");u.findBin=m.findBin,u.sorterAsc=m.sorterAsc,u.sorterDes=m.sorterDes,u.distinctVals=m.distinctVals,u.roundUp=m.roundUp,u.sort=m.sort,u.findIndexOfMin=m.findIndexOfMin;var g=t("./stats");u.aggNums=g.aggNums,u.len=g.len,u.mean=g.mean,u.median=g.median,u.midRange=g.midRange,u.variance=g.variance,u.stdev=g.stdev,u.interp=g.interp;var v=t("./matrix");u.init2dArray=v.init2dArray,u.transposeRagged=v.transposeRagged,u.dot=v.dot,u.translationMatrix=v.translationMatrix,u.rotationMatrix=v.rotationMatrix,u.rotationXYMatrix=v.rotationXYMatrix,u.apply3DTransform=v.apply3DTransform,u.apply2DTransform=v.apply2DTransform,u.apply2DTransform2=v.apply2DTransform2,u.convertCssMatrix=v.convertCssMatrix,u.inverseTransformMatrix=v.inverseTransformMatrix;var y=t("./angles");u.deg2rad=y.deg2rad,u.rad2deg=y.rad2deg,u.angleDelta=y.angleDelta,u.angleDist=y.angleDist,u.isFullCircle=y.isFullCircle,u.isAngleInsideSector=y.isAngleInsideSector,u.isPtInsideSector=y.isPtInsideSector,u.pathArc=y.pathArc,u.pathSector=y.pathSector,u.pathAnnulus=y.pathAnnulus;var x=t("./anchor_utils");u.isLeftAnchor=x.isLeftAnchor,u.isCenterAnchor=x.isCenterAnchor,u.isRightAnchor=x.isRightAnchor,u.isTopAnchor=x.isTopAnchor,u.isMiddleAnchor=x.isMiddleAnchor,u.isBottomAnchor=x.isBottomAnchor;var b=t("./geometry2d");u.segmentsIntersect=b.segmentsIntersect,u.segmentDistance=b.segmentDistance,u.getTextLocation=b.getTextLocation,u.clearLocationCache=b.clearLocationCache,u.getVisibleSegment=b.getVisibleSegment,u.findPointOnPath=b.findPointOnPath;var _=t("./extend");u.extendFlat=_.extendFlat,u.extendDeep=_.extendDeep,u.extendDeepAll=_.extendDeepAll,u.extendDeepNoArrays=_.extendDeepNoArrays;var w=t("./loggers");u.log=w.log,u.warn=w.warn,u.error=w.error;var T=t("./regex");u.counterRegex=T.counter;var k=t("./throttle");u.throttle=k.throttle,u.throttleDone=k.done,u.clearThrottle=k.clear;var M=t("./dom");function A(t){var e={};for(var r in t)for(var n=t[r],i=0;is||t=e)&&(a(t)&&t>=0&&t%1==0)},u.noop=t("./noop"),u.identity=t("./identity"),u.repeat=function(t,e){for(var r=new Array(e),n=0;nr?Math.max(r,Math.min(e,t)):Math.max(e,Math.min(r,t))},u.bBoxIntersect=function(t,e,r){return r=r||0,t.left<=e.right+r&&e.left<=t.right+r&&t.top<=e.bottom+r&&e.top<=t.bottom+r},u.simpleMap=function(t,e,r,n,i){for(var a=t.length,o=new Array(a),s=0;s=Math.pow(2,r)?i>10?(u.warn("randstr failed uniqueness"),l):t(e,r,n,(i||0)+1):l},u.OptionControl=function(t,e){t||(t={}),e||(e="opt");var r={optionList:[],_newoption:function(n){n[e]=t,r[n.name]=n,r.optionList.push(n)}};return r["_"+e]=t,r},u.smooth=function(t,e){if((e=Math.round(e)||0)<2)return t;var r,n,i,a,o=t.length,s=2*o,l=2*e-1,c=new Array(l),u=new Array(o);for(r=0;r=s&&(i-=s*Math.floor(i/s)),i<0?i=-1-i:i>=o&&(i=s-1-i),a+=t[i]*c[n];u[r]=a}return u},u.syncOrAsync=function(t,e,r){var n;function i(){return u.syncOrAsync(t,e,r)}for(;t.length;)if((n=(0,t.splice(0,1)[0])(e))&&n.then)return n.then(i).then(void 0,u.promiseError);return r&&r(e)},u.stripTrailingSlash=function(t){return"/"===t.substr(-1)?t.substr(0,t.length-1):t},u.noneOrAll=function(t,e,r){if(t){var n,i=!1,a=!0;for(n=0;n0?e:0}))},u.fillArray=function(t,e,r,n){if(n=n||u.identity,u.isArrayOrTypedArray(t))for(var i=0;i1?i+o[1]:"";if(a&&(o.length>1||s.length>4||r))for(;n.test(s);)s=s.replace(n,"$1"+a+"$2");return s+l},u.TEMPLATE_STRING_REGEX=/%{([^\s%{}:]*)([:|\|][^}]*)?}/g;var P=/^\w*$/;u.templateString=function(t,e){var r={};return t.replace(u.TEMPLATE_STRING_REGEX,(function(t,n){var i;return P.test(n)?i=e[n]:(r[n]=r[n]||u.nestedProperty(e,n).get,i=r[n]()),u.isValidTextValue(i)?i:""}))};var I={max:10,count:0,name:"hovertemplate"};u.hovertemplateString=function(){return D.apply(I,arguments)};var O={max:10,count:0,name:"texttemplate"};u.texttemplateString=function(){return D.apply(O,arguments)};var z=/^[:|\|]/;function D(t,e,r){var a=this,o=arguments;e||(e={});var s={};return t.replace(u.TEMPLATE_STRING_REGEX,(function(t,l,c){var f,h,p,d;for(p=3;p=48&&o<=57,c=s>=48&&s<=57;if(l&&(n=10*n+o-48),c&&(i=10*i+s-48),!l||!c){if(n!==i)return n-i;if(o!==s)return o-s}}return i-n};var R=2e9;u.seedPseudoRandom=function(){R=2e9},u.pseudoRandom=function(){var t=R;return R=(69069*R+1)%4294967296,Math.abs(R-t)<429496729?u.pseudoRandom():R/4294967296},u.fillText=function(t,e,r){var n=Array.isArray(r)?function(t){r.push(t)}:function(t){r.text=t},i=u.extractOption(t,e,"htx","hovertext");if(u.isValidTextValue(i))return n(i);var a=u.extractOption(t,e,"tx","text");return u.isValidTextValue(a)?n(a):void 0},u.isValidTextValue=function(t){return t||0===t},u.formatPercent=function(t,e){e=e||0;for(var r=(Math.round(100*t*Math.pow(10,e))*Math.pow(.1,e)).toFixed(e)+"%",n=0;n1&&(c=1):c=0,u.strTranslate(i-c*(r+o),a-c*(n+s))+u.strScale(c)+(l?"rotate("+l+(e?"":" "+r+" "+n)+")":"")},u.ensureUniformFontSize=function(t,e){var r=u.extendFlat({},e);return r.size=Math.max(e.size,t._fullLayout.uniformtext.minsize||0),r},u.join2=function(t,e,r){var n=t.length;return n>1?t.slice(0,-1).join(e)+r+t[n-1]:t.join(e)},u.bigFont=function(t){return Math.round(1.2*t)}},{"../constants/numerical":771,"./anchor_utils":775,"./angles":776,"./array":777,"./clean_number":778,"./clear_responsive":780,"./coerce":781,"./dates":782,"./dom":783,"./extend":785,"./filter_unique":786,"./filter_visible":787,"./geometry2d":790,"./identity":793,"./increment":794,"./is_plain_object":796,"./keyed_container":797,"./localize":798,"./loggers":799,"./make_trace_groups":800,"./matrix":801,"./mod":802,"./nested_property":803,"./noop":804,"./notifier":805,"./preserve_drawing_buffer":809,"./push_unique":810,"./regex":812,"./relative_attr":813,"./relink_private":814,"./search":815,"./stats":818,"./throttle":821,"./to_log_range":822,"@plotly/d3":57,"d3-time-format":167,"fast-isnumeric":240}],796:[function(t,e,r){"use strict";e.exports=function(t){return window&&window.process&&window.process.versions?"[object Object]"===Object.prototype.toString.call(t):"[object Object]"===Object.prototype.toString.call(t)&&Object.getPrototypeOf(t).hasOwnProperty("hasOwnProperty")}},{}],797:[function(t,e,r){"use strict";var n=t("./nested_property"),i=/^\w*$/;e.exports=function(t,e,r,a){var o,s,l;r=r||"name",a=a||"value";var c={};e&&e.length?(l=n(t,e),s=l.get()):s=t,e=e||"";var u={};if(s)for(o=0;o2)return c[e]=2|c[e],h.set(t,null);if(f){for(o=e;o1){var e=["LOG:"];for(t=0;t1){var r=[];for(t=0;t"),"long")}},a.warn=function(){var t;if(n.logging>0){var e=["WARN:"];for(t=0;t0){var r=[];for(t=0;t"),"stick")}},a.error=function(){var t;if(n.logging>0){var e=["ERROR:"];for(t=0;t0){var r=[];for(t=0;t"),"stick")}}},{"../plot_api/plot_config":832,"./notifier":805}],800:[function(t,e,r){"use strict";var n=t("@plotly/d3");e.exports=function(t,e,r){var i=t.selectAll("g."+r.replace(/\s/g,".")).data(e,(function(t){return t[0].trace.uid}));i.exit().remove(),i.enter().append("g").attr("class",r),i.order();var a=t.classed("rangeplot")?"nodeRangePlot3":"node3";return i.each((function(t){t[0][a]=n.select(this)})),i}},{"@plotly/d3":57}],801:[function(t,e,r){"use strict";var n=t("gl-mat4");r.init2dArray=function(t,e){for(var r=new Array(t),n=0;ne/2?t-Math.round(t/e)*e:t}}},{}],803:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("./array").isArrayOrTypedArray;function a(t,e){return function(){var r,n,o,s,l,c=t;for(s=0;s/g),l=0;la||c===i||cs)&&(!e||!l(t))}:function(t,e){var l=t[0],c=t[1];if(l===i||la||c===i||cs)return!1;var u,f,h,p,d,m=r.length,g=r[0][0],v=r[0][1],y=0;for(u=1;uMath.max(f,g)||c>Math.max(h,v)))if(cu||Math.abs(n(o,h))>i)return!0;return!1},a.filter=function(t,e){var r=[t[0]],n=0,i=0;function o(o){t.push(o);var s=r.length,l=n;r.splice(i+1);for(var c=l+1;c1&&o(t.pop());return{addPt:o,raw:t,filtered:r}}},{"../constants/numerical":771,"./matrix":801}],808:[function(t,e,r){(function(r){(function(){"use strict";var n=t("./show_no_webgl_msg"),i=t("regl");e.exports=function(t,e){var a=t._fullLayout,o=!0;return a._glcanvas.each((function(n){if(!n.regl&&(!n.pick||a._has("parcoords"))){try{n.regl=i({canvas:this,attributes:{antialias:!n.pick,preserveDrawingBuffer:!0},pixelRatio:t._context.plotGlPixelRatio||r.devicePixelRatio,extensions:e||[]})}catch(t){o=!1}n.regl||(o=!1),o&&this.addEventListener("webglcontextlost",(function(e){t&&t.emit&&t.emit("plotly_webglcontextlost",{event:e,layer:n.key})}),!1)}})),o||n({container:a._glcontainer.node()}),o}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./show_no_webgl_msg":817,regl:532}],809:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("is-mobile");e.exports=function(t){var e;if("string"!=typeof(e=t&&t.hasOwnProperty("userAgent")?t.userAgent:function(){var t;"undefined"!=typeof navigator&&(t=navigator.userAgent);t&&t.headers&&"string"==typeof t.headers["user-agent"]&&(t=t.headers["user-agent"]);return t}()))return!0;var r=i({ua:{headers:{"user-agent":e}},tablet:!0,featureDetect:!1});if(!r)for(var a=e.split(" "),o=1;o-1;s--){var l=a[s];if("Version/"===l.substr(0,8)){var c=l.substr(8).split(".")[0];if(n(c)&&(c=+c),c>=13)return!0}}}return r}},{"fast-isnumeric":240,"is-mobile":446}],810:[function(t,e,r){"use strict";e.exports=function(t,e){if(e instanceof RegExp){for(var r=e.toString(),n=0;ni.queueLength&&(t.undoQueue.queue.shift(),t.undoQueue.index--))},startSequence:function(t){t.undoQueue=t.undoQueue||{index:0,queue:[],sequence:!1},t.undoQueue.sequence=!0,t.undoQueue.beginSequence=!0},stopSequence:function(t){t.undoQueue=t.undoQueue||{index:0,queue:[],sequence:!1},t.undoQueue.sequence=!1,t.undoQueue.beginSequence=!1},undo:function(t){var e,r;if(!(void 0===t.undoQueue||isNaN(t.undoQueue.index)||t.undoQueue.index<=0)){for(t.undoQueue.index--,e=t.undoQueue.queue[t.undoQueue.index],t.undoQueue.inSequence=!0,r=0;r=t.undoQueue.queue.length)){for(e=t.undoQueue.queue[t.undoQueue.index],t.undoQueue.inSequence=!0,r=0;re}function u(t,e){return t>=e}r.findBin=function(t,e,r){if(n(e.start))return r?Math.ceil((t-e.start)/e.size-1e-9)-1:Math.floor((t-e.start)/e.size+1e-9);var a,o,f=0,h=e.length,p=0,d=h>1?(e[h-1]-e[0])/(h-1):1;for(o=d>=0?r?s:l:r?u:c,t+=1e-9*d*(r?-1:1)*(d>=0?1:-1);f90&&i.log("Long binary search..."),f-1},r.sorterAsc=function(t,e){return t-e},r.sorterDes=function(t,e){return e-t},r.distinctVals=function(t,e){var n,i=(e||{}).unitMinDiff,a=t.slice();for(a.sort(r.sorterAsc),n=a.length-1;n>-1&&a[n]===o;n--);var s=1;i||(s=a[n]-a[0]||1);for(var l,c=s/(n||1)/1e4,u=[],f=0;f<=n;f++){var h=a[f],p=h-l;void 0===l?(u.push(h),l=h):p>c&&(s=Math.min(s,p),u.push(h),l=h)}return{vals:u,minDiff:s}},r.roundUp=function(t,e,r){for(var n,i=0,a=e.length-1,o=0,s=r?0:1,l=r?1:0,c=r?Math.ceil:Math.floor;i0&&(n=1),r&&n)return t.sort(e)}return n?t:t.reverse()},r.findIndexOfMin=function(t,e){e=e||a;for(var r,n=1/0,i=0;ia.length)&&(o=a.length),n(e)||(e=!1),i(a[0])){for(l=new Array(o),s=0;st.length-1)return t[t.length-1];var r=e%1;return r*t[Math.ceil(e)]+(1-r)*t[Math.floor(e)]}},{"./array":777,"fast-isnumeric":240}],819:[function(t,e,r){"use strict";var n=t("color-normalize");e.exports=function(t){return t?n(t):[0,0,0,1]}},{"color-normalize":126}],820:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("../lib"),a=i.strTranslate,o=t("../constants/xmlns_namespaces"),s=t("../constants/alignment").LINE_SPACING;function l(t,e){return t.node().getBoundingClientRect()[e]}var c=/([^$]*)([$]+[^$]*[$]+)([^$]*)/;r.convertToTspans=function(t,e,A){var S=t.text(),L=!t.attr("data-notex")&&"undefined"!=typeof MathJax&&S.match(c),C=n.select(t.node().parentNode);if(!C.empty()){var P=t.attr("class")?t.attr("class").split(" ")[0]:"text";return P+="-math",C.selectAll("svg."+P).remove(),C.selectAll("g."+P+"-group").remove(),t.style("display",null).attr({"data-unformatted":S,"data-math":"N"}),L?(e&&e._promises||[]).push(new Promise((function(e){t.style("display","none");var r=parseInt(t.node().style.fontSize,10),o={fontSize:r};!function(t,e,r){var a,o,s,l;MathJax.Hub.Queue((function(){return o=i.extendDeepAll({},MathJax.Hub.config),s=MathJax.Hub.processSectionDelay,void 0!==MathJax.Hub.processSectionDelay&&(MathJax.Hub.processSectionDelay=0),MathJax.Hub.Config({messageStyle:"none",tex2jax:{inlineMath:[["$","$"],["\\(","\\)"]]},displayAlign:"left"})}),(function(){if("SVG"!==(a=MathJax.Hub.config.menuSettings.renderer))return MathJax.Hub.setRenderer("SVG")}),(function(){var r="math-output-"+i.randstr({},64);return l=n.select("body").append("div").attr({id:r}).style({visibility:"hidden",position:"absolute"}).style({"font-size":e.fontSize+"px"}).text(t.replace(u,"\\lt ").replace(f,"\\gt ")),MathJax.Hub.Typeset(l.node())}),(function(){var e=n.select("body").select("#MathJax_SVG_glyphs");if(l.select(".MathJax_SVG").empty()||!l.select("svg").node())i.log("There was an error in the tex syntax.",t),r();else{var o=l.select("svg").node().getBoundingClientRect();r(l.select(".MathJax_SVG"),e,o)}if(l.remove(),"SVG"!==a)return MathJax.Hub.setRenderer(a)}),(function(){return void 0!==s&&(MathJax.Hub.processSectionDelay=s),MathJax.Hub.Config(o)}))}(L[2],o,(function(n,i,o){C.selectAll("svg."+P).remove(),C.selectAll("g."+P+"-group").remove();var s=n&&n.select("svg");if(!s||!s.node())return I(),void e();var c=C.append("g").classed(P+"-group",!0).attr({"pointer-events":"none","data-unformatted":S,"data-math":"Y"});c.node().appendChild(s.node()),i&&i.node()&&s.node().insertBefore(i.node().cloneNode(!0),s.node().firstChild),s.attr({class:P,height:o.height,preserveAspectRatio:"xMinYMin meet"}).style({overflow:"visible","pointer-events":"none"});var u=t.node().style.fill||"black",f=s.select("g");f.attr({fill:u,stroke:u});var h=l(f,"width"),p=l(f,"height"),d=+t.attr("x")-h*{start:0,middle:.5,end:1}[t.attr("text-anchor")||"start"],m=-(r||l(t,"height"))/4;"y"===P[0]?(c.attr({transform:"rotate("+[-90,+t.attr("x"),+t.attr("y")]+")"+a(-h/2,m-p/2)}),s.attr({x:+t.attr("x"),y:+t.attr("y")})):"l"===P[0]?s.attr({x:t.attr("x"),y:m-p/2}):"a"===P[0]&&0!==P.indexOf("atitle")?s.attr({x:0,y:m}):s.attr({x:d,y:+t.attr("y")+m-p/2}),A&&A.call(t,c),e(c)}))}))):I(),t}function I(){C.empty()||(P=t.attr("class")+"-math",C.select("svg."+P).remove()),t.text("").style("white-space","pre"),function(t,e){e=e.replace(g," ");var r,a=!1,l=[],c=-1;function u(){c++;var e=document.createElementNS(o.svg,"tspan");n.select(e).attr({class:"line",dy:c*s+"em"}),t.appendChild(e),r=e;var i=l;if(l=[{node:e}],i.length>1)for(var a=1;a doesnt match end tag <"+t+">. Pretending it did match.",e),r=l[l.length-1].node}else i.log("Ignoring unexpected end tag .",e)}x.test(e)?u():(r=t,l=[{node:t}]);for(var L=e.split(v),C=0;C|>|>)/g;var h={sup:"font-size:70%",sub:"font-size:70%",b:"font-weight:bold",i:"font-style:italic",a:"cursor:pointer",span:"",em:"font-style:italic;font-weight:bold"},p={sub:"0.3em",sup:"-0.6em"},d={sub:"-0.21em",sup:"0.42em"},m=["http:","https:","mailto:","",void 0,":"],g=r.NEWLINES=/(\r\n?|\n)/g,v=/(<[^<>]*>)/,y=/<(\/?)([^ >]*)(\s+(.*))?>/i,x=//i;r.BR_TAG_ALL=//gi;var b=/(^|[\s"'])style\s*=\s*("([^"]*);?"|'([^']*);?')/i,_=/(^|[\s"'])href\s*=\s*("([^"]*)"|'([^']*)')/i,w=/(^|[\s"'])target\s*=\s*("([^"\s]*)"|'([^'\s]*)')/i,T=/(^|[\s"'])popup\s*=\s*("([\w=,]*)"|'([\w=,]*)')/i;function k(t,e){if(!t)return null;var r=t.match(e),n=r&&(r[3]||r[4]);return n&&E(n)}var M=/(^|;)\s*color:/;r.plainText=function(t,e){for(var r=void 0!==(e=e||{}).len&&-1!==e.len?e.len:1/0,n=void 0!==e.allowedTags?e.allowedTags:["br"],i="...".length,a=t.split(v),o=[],s="",l=0,c=0;ci?o.push(u.substr(0,d-i)+"..."):o.push(u.substr(0,d));break}s=""}}return o.join("")};var A={mu:"\u03bc",amp:"&",lt:"<",gt:">",nbsp:"\xa0",times:"\xd7",plusmn:"\xb1",deg:"\xb0"},S=/&(#\d+|#x[\da-fA-F]+|[a-z]+);/g;function E(t){return t.replace(S,(function(t,e){return("#"===e.charAt(0)?function(t){if(t>1114111)return;var e=String.fromCodePoint;if(e)return e(t);var r=String.fromCharCode;return t<=65535?r(t):r(55232+(t>>10),t%1024+56320)}("x"===e.charAt(1)?parseInt(e.substr(2),16):parseInt(e.substr(1),10)):A[e])||t}))}function L(t,e,r){var n,a,o,s=r.horizontalAlign,l=r.verticalAlign||"top",c=t.node().getBoundingClientRect(),u=e.node().getBoundingClientRect();return a="bottom"===l?function(){return c.bottom-n.height}:"middle"===l?function(){return c.top+(c.height-n.height)/2}:function(){return c.top},o="right"===s?function(){return c.right-n.width}:"center"===s?function(){return c.left+(c.width-n.width)/2}:function(){return c.left},function(){n=this.node().getBoundingClientRect();var t=o()-u.left,e=a()-u.top,s=r.gd||{};if(r.gd){s._fullLayout._calcInverseTransform(s);var l=i.apply3DTransform(s._fullLayout._invTransform)(t,e);t=l[0],e=l[1]}return this.style({top:e+"px",left:t+"px","z-index":1e3}),this}}r.convertEntities=E,r.sanitizeHTML=function(t){t=t.replace(g," ");for(var e=document.createElement("p"),r=e,i=[],a=t.split(v),o=0;oa.ts+e?l():a.timer=setTimeout((function(){l(),a.timer=null}),e)},r.done=function(t){var e=n[t];return e&&e.timer?new Promise((function(t){var r=e.onDone;e.onDone=function(){r&&r(),t(),e.onDone=null}})):Promise.resolve()},r.clear=function(t){if(t)i(n[t]),delete n[t];else for(var e in n)r.clear(e)}},{}],822:[function(t,e,r){"use strict";var n=t("fast-isnumeric");e.exports=function(t,e){if(t>0)return Math.log(t)/Math.LN10;var r=Math.log(Math.min(e[0],e[1]))/Math.LN10;return n(r)||(r=Math.log(Math.max(e[0],e[1]))/Math.LN10-6),r}},{"fast-isnumeric":240}],823:[function(t,e,r){"use strict";var n=e.exports={},i=t("../plots/geo/constants").locationmodeToLayer,a=t("topojson-client").feature;n.getTopojsonName=function(t){return[t.scope.replace(/ /g,"-"),"_",t.resolution.toString(),"m"].join("")},n.getTopojsonPath=function(t,e){return t+e+".json"},n.getTopojsonFeatures=function(t,e){var r=i[t.locationmode],n=e.objects[r];return a(e,n).features}},{"../plots/geo/constants":875,"topojson-client":593}],824:[function(t,e,r){"use strict";e.exports={moduleType:"locale",name:"en-US",dictionary:{"Click to enter Colorscale title":"Click to enter Colorscale title"},format:{date:"%m/%d/%Y"}}},{}],825:[function(t,e,r){"use strict";e.exports={moduleType:"locale",name:"en",dictionary:{"Click to enter Colorscale title":"Click to enter Colourscale title"},format:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],periods:["AM","PM"],dateTime:"%a %b %e %X %Y",date:"%d/%m/%Y",time:"%H:%M:%S",decimal:".",thousands:",",grouping:[3],currency:["$",""],year:"%Y",month:"%b %Y",dayMonth:"%b %-d",dayMonthYear:"%b %-d, %Y"}}},{}],826:[function(t,e,r){"use strict";var n=t("../registry");e.exports=function(t){for(var e,r,i=n.layoutArrayContainers,a=n.layoutArrayRegexes,o=t.split("[")[0],s=0;s0&&o.log("Clearing previous rejected promises from queue."),t._promises=[]},r.cleanLayout=function(t){var e,n;t||(t={}),t.xaxis1&&(t.xaxis||(t.xaxis=t.xaxis1),delete t.xaxis1),t.yaxis1&&(t.yaxis||(t.yaxis=t.yaxis1),delete t.yaxis1),t.scene1&&(t.scene||(t.scene=t.scene1),delete t.scene1);var a=(s.subplotsRegistry.cartesian||{}).attrRegex,l=(s.subplotsRegistry.polar||{}).attrRegex,f=(s.subplotsRegistry.ternary||{}).attrRegex,h=(s.subplotsRegistry.gl3d||{}).attrRegex,m=Object.keys(t);for(e=0;e3?(O.x=1.02,O.xanchor="left"):O.x<-2&&(O.x=-.02,O.xanchor="right"),O.y>3?(O.y=1.02,O.yanchor="bottom"):O.y<-2&&(O.y=-.02,O.yanchor="top")),d(t),"rotate"===t.dragmode&&(t.dragmode="orbit"),c.clean(t),t.template&&t.template.layout&&r.cleanLayout(t.template.layout),t},r.cleanData=function(t){for(var e=0;e0)return t.substr(0,e)}r.hasParent=function(t,e){for(var r=b(e);r;){if(r in t)return!0;r=b(r)}return!1};var _=["x","y","z"];r.clearAxisTypes=function(t,e,r){for(var n=0;n1&&a.warn("Full array edits are incompatible with other edits",f);var y=r[""][""];if(c(y))e.set(null);else{if(!Array.isArray(y))return a.warn("Unrecognized full array edit value",f,y),!0;e.set(y)}return!m&&(h(g,v),p(t),!0)}var x,b,_,w,T,k,M,A,S=Object.keys(r).map(Number).sort(o),E=e.get(),L=E||[],C=u(v,f).get(),P=[],I=-1,O=L.length;for(x=0;xL.length-(M?0:1))a.warn("index out of range",f,_);else if(void 0!==k)T.length>1&&a.warn("Insertion & removal are incompatible with edits to the same index.",f,_),c(k)?P.push(_):M?("add"===k&&(k={}),L.splice(_,0,k),C&&C.splice(_,0,{})):a.warn("Unrecognized full object edit value",f,_,k),-1===I&&(I=_);else for(b=0;b=0;x--)L.splice(P[x],1),C&&C.splice(P[x],1);if(L.length?E||e.set(L):e.set(null),m)return!1;if(h(g,v),d!==i){var z;if(-1===I)z=S;else{for(O=Math.max(L.length,O),z=[],x=0;x=I);x++)z.push(_);for(x=I;x=t.data.length||i<-t.data.length)throw new Error(r+" must be valid indices for gd.data.");if(e.indexOf(i,n+1)>-1||i>=0&&e.indexOf(-t.data.length+i)>-1||i<0&&e.indexOf(t.data.length+i)>-1)throw new Error("each index in "+r+" must be unique.")}}function I(t,e,r){if(!Array.isArray(t.data))throw new Error("gd.data must be an array.");if(void 0===e)throw new Error("currentIndices is a required argument.");if(Array.isArray(e)||(e=[e]),P(t,e,"currentIndices"),void 0===r||Array.isArray(r)||(r=[r]),void 0!==r&&P(t,r,"newIndices"),void 0!==r&&e.length!==r.length)throw new Error("current and new indices must be of equal length.")}function O(t,e,r,n,a){!function(t,e,r,n){var i=o.isPlainObject(n);if(!Array.isArray(t.data))throw new Error("gd.data must be an array");if(!o.isPlainObject(e))throw new Error("update must be a key:value object");if(void 0===r)throw new Error("indices must be an integer or array of integers");for(var a in P(t,r,"indices"),e){if(!Array.isArray(e[a])||e[a].length!==r.length)throw new Error("attribute "+a+" must be an array of length equal to indices array length");if(i&&(!(a in n)||!Array.isArray(n[a])||n[a].length!==e[a].length))throw new Error("when maxPoints is set as a key:value object it must contain a 1:1 corrispondence with the keys and number of traces in the update object")}}(t,e,r,n);for(var l=function(t,e,r,n){var a,l,c,u,f,h=o.isPlainObject(n),p=[];for(var d in Array.isArray(r)||(r=[r]),r=C(r,t.data.length-1),e)for(var m=0;m-1?l(r,r.replace("titlefont","title.font")):r.indexOf("titleposition")>-1?l(r,r.replace("titleposition","title.position")):r.indexOf("titleside")>-1?l(r,r.replace("titleside","title.side")):r.indexOf("titleoffset")>-1&&l(r,r.replace("titleoffset","title.offset")):l(r,r.replace("title","title.text"));function l(e,r){t[r]=t[e],delete t[e]}}function U(t,e,r){t=o.getGraphDiv(t),_.clearPromiseQueue(t);var n={};if("string"==typeof e)n[e]=r;else{if(!o.isPlainObject(e))return o.warn("Relayout fail.",e,r),Promise.reject();n=o.extendFlat({},e)}Object.keys(n).length&&(t.changed=!0);var i=W(t,n),a=i.flags;a.calc&&(t.calcdata=void 0);var s=[h.previousPromises];a.layoutReplot?s.push(w.layoutReplot):Object.keys(n).length&&(V(t,a,i)||h.supplyDefaults(t),a.legend&&s.push(w.doLegend),a.layoutstyle&&s.push(w.layoutStyles),a.axrange&&q(s,i.rangesAltered),a.ticks&&s.push(w.doTicksRelayout),a.modebar&&s.push(w.doModeBar),a.camera&&s.push(w.doCamera),a.colorbars&&s.push(w.doColorBars),s.push(A)),s.push(h.rehover,h.redrag),c.add(t,U,[t,i.undoit],U,[t,i.redoit]);var l=o.syncOrAsync(s,t);return l&&l.then||(l=Promise.resolve(t)),l.then((function(){return t.emit("plotly_relayout",i.eventData),t}))}function V(t,e,r){var n=t._fullLayout;if(!e.axrange)return!1;for(var i in e)if("axrange"!==i&&e[i])return!1;for(var a in r.rangesAltered){var o=p.id2name(a),s=t.layout[o],l=n[o];if(l.autorange=s.autorange,s.range&&(l.range=s.range.slice()),l.cleanRange(),l._matchGroup)for(var c in l._matchGroup)if(c!==a){var u=n[p.id2name(c)];u.autorange=l.autorange,u.range=l.range.slice(),u._input.range=l.range.slice()}}return!0}function q(t,e){var r=e?function(t){var r=[],n=!0;for(var i in e){var a=p.getFromId(t,i);if(r.push(i),-1!==(a.ticklabelposition||"").indexOf("inside")&&a._anchorAxis&&r.push(a._anchorAxis._id),a._matchGroup)for(var o in a._matchGroup)e[o]||r.push(o);a.automargin&&(n=!1)}return p.draw(t,r,{skipTitle:n})}:function(t){return p.draw(t,"redraw")};t.push(y,w.doAutoRangeAndConstraints,r,w.drawData,w.finalDraw)}var H=/^[xyz]axis[0-9]*\.range(\[[0|1]\])?$/,G=/^[xyz]axis[0-9]*\.autorange$/,Y=/^[xyz]axis[0-9]*\.domain(\[[0|1]\])?$/;function W(t,e){var r,n,i,a=t.layout,l=t._fullLayout,c=l._guiEditing,h=F(l._preGUI,c),d=Object.keys(e),m=p.list(t),g=o.extendDeepAll({},e),v={};for(j(e),d=Object.keys(e),n=0;n0&&"string"!=typeof O.parts[D];)D--;var B=O.parts[D],N=O.parts[D-1]+"."+B,U=O.parts.slice(0,D).join("."),V=s(t.layout,U).get(),q=s(l,U).get(),W=O.get();if(void 0!==z){A[I]=z,S[I]="reverse"===B?z:R(W);var Z=f.getLayoutValObject(l,O.parts);if(Z&&Z.impliedEdits&&null!==z)for(var J in Z.impliedEdits)E(o.relativeAttr(I,J),Z.impliedEdits[J]);if(-1!==["width","height"].indexOf(I))if(z){E("autosize",null);var K="height"===I?"width":"height";E(K,l[K])}else l[I]=t._initialAutoSize[I];else if("autosize"===I)E("width",z?null:l.width),E("height",z?null:l.height);else if(N.match(H))P(N),s(l,U+"._inputRange").set(null);else if(N.match(G)){P(N),s(l,U+"._inputRange").set(null);var Q=s(l,U).get();Q._inputDomain&&(Q._input.domain=Q._inputDomain.slice())}else N.match(Y)&&s(l,U+"._inputDomain").set(null);if("type"===B){L=V;var $="linear"===q.type&&"log"===z,tt="log"===q.type&&"linear"===z;if($||tt){if(L&&L.range)if(q.autorange)$&&(L.range=L.range[1]>L.range[0]?[1,2]:[2,1]);else{var et=L.range[0],rt=L.range[1];$?(et<=0&&rt<=0&&E(U+".autorange",!0),et<=0?et=rt/1e6:rt<=0&&(rt=et/1e6),E(U+".range[0]",Math.log(et)/Math.LN10),E(U+".range[1]",Math.log(rt)/Math.LN10)):(E(U+".range[0]",Math.pow(10,et)),E(U+".range[1]",Math.pow(10,rt)))}else E(U+".autorange",!0);Array.isArray(l._subplots.polar)&&l._subplots.polar.length&&l[O.parts[0]]&&"radialaxis"===O.parts[1]&&delete l[O.parts[0]]._subplot.viewInitial["radialaxis.range"],u.getComponentMethod("annotations","convertCoords")(t,q,z,E),u.getComponentMethod("images","convertCoords")(t,q,z,E)}else E(U+".autorange",!0),E(U+".range",null);s(l,U+"._inputRange").set(null)}else if(B.match(k)){var nt=s(l,I).get(),it=(z||{}).type;it&&"-"!==it||(it="linear"),u.getComponentMethod("annotations","convertCoords")(t,nt,it,E),u.getComponentMethod("images","convertCoords")(t,nt,it,E)}var at=b.containerArrayMatch(I);if(at){r=at.array,n=at.index;var ot=at.property,st=Z||{editType:"calc"};""!==n&&""===ot&&(b.isAddVal(z)?S[I]=null:b.isRemoveVal(z)?S[I]=(s(a,r).get()||[])[n]:o.warn("unrecognized full object value",e)),T.update(M,st),v[r]||(v[r]={});var lt=v[r][n];lt||(lt=v[r][n]={}),lt[ot]=z,delete e[I]}else"reverse"===B?(V.range?V.range.reverse():(E(U+".autorange",!0),V.range=[1,0]),q.autorange?M.calc=!0:M.plot=!0):(l._has("scatter-like")&&l._has("regl")&&"dragmode"===I&&("lasso"===z||"select"===z)&&"lasso"!==W&&"select"!==W||l._has("gl2d")?M.plot=!0:Z?T.update(M,Z):M.calc=!0,O.set(z))}}for(r in v){b.applyContainerArrayChanges(t,h(a,r),v[r],M,h)||(M.plot=!0)}for(var ct in C){var ut=(L=p.getFromId(t,ct))&&L._constraintGroup;if(ut)for(var ft in M.calc=!0,ut)C[ft]||(p.getFromId(t,ft)._constraintShrinkable=!0)}return(X(t)||e.height||e.width)&&(M.plot=!0),(M.plot||M.calc)&&(M.layoutReplot=!0),{flags:M,rangesAltered:C,undoit:S,redoit:A,eventData:g}}function X(t){var e=t._fullLayout,r=e.width,n=e.height;return t.layout.autosize&&h.plotAutoSize(t,t.layout,e),e.width!==r||e.height!==n}function Z(t,e,n,i){t=o.getGraphDiv(t),_.clearPromiseQueue(t),o.isPlainObject(e)||(e={}),o.isPlainObject(n)||(n={}),Object.keys(e).length&&(t.changed=!0),Object.keys(n).length&&(t.changed=!0);var a=_.coerceTraceIndices(t,i),s=N(t,o.extendFlat({},e),a),l=s.flags,u=W(t,o.extendFlat({},n)),f=u.flags;(l.calc||f.calc)&&(t.calcdata=void 0),l.clearAxisTypes&&_.clearAxisTypes(t,a,n);var p=[];f.layoutReplot?p.push(w.layoutReplot):l.fullReplot?p.push(r._doPlot):(p.push(h.previousPromises),V(t,f,u)||h.supplyDefaults(t),l.style&&p.push(w.doTraceStyle),(l.colorbars||f.colorbars)&&p.push(w.doColorBars),f.legend&&p.push(w.doLegend),f.layoutstyle&&p.push(w.layoutStyles),f.axrange&&q(p,u.rangesAltered),f.ticks&&p.push(w.doTicksRelayout),f.modebar&&p.push(w.doModeBar),f.camera&&p.push(w.doCamera),p.push(A)),p.push(h.rehover,h.redrag),c.add(t,Z,[t,s.undoit,u.undoit,s.traces],Z,[t,s.redoit,u.redoit,s.traces]);var d=o.syncOrAsync(p,t);return d&&d.then||(d=Promise.resolve(t)),d.then((function(){return t.emit("plotly_update",{data:s.eventData,layout:u.eventData}),t}))}function J(t){return function(e){e._fullLayout._guiEditing=!0;var r=t.apply(null,arguments);return e._fullLayout._guiEditing=!1,r}}var K=[{pattern:/^hiddenlabels/,attr:"legend.uirevision"},{pattern:/^((x|y)axis\d*)\.((auto)?range|title\.text)/},{pattern:/axis\d*\.showspikes$/,attr:"modebar.uirevision"},{pattern:/(hover|drag)mode$/,attr:"modebar.uirevision"},{pattern:/^(scene\d*)\.camera/},{pattern:/^(geo\d*)\.(projection|center|fitbounds)/},{pattern:/^(ternary\d*\.[abc]axis)\.(min|title\.text)$/},{pattern:/^(polar\d*\.radialaxis)\.((auto)?range|angle|title\.text)/},{pattern:/^(polar\d*\.angularaxis)\.rotation/},{pattern:/^(mapbox\d*)\.(center|zoom|bearing|pitch)/},{pattern:/^legend\.(x|y)$/,attr:"editrevision"},{pattern:/^(shapes|annotations)/,attr:"editrevision"},{pattern:/^title\.text$/,attr:"editrevision"}],Q=[{pattern:/^selectedpoints$/,attr:"selectionrevision"},{pattern:/(^|value\.)visible$/,attr:"legend.uirevision"},{pattern:/^dimensions\[\d+\]\.constraintrange/},{pattern:/^node\.(x|y|groups)/},{pattern:/^level$/},{pattern:/(^|value\.)name$/},{pattern:/colorbar\.title\.text$/},{pattern:/colorbar\.(x|y)$/,attr:"editrevision"}];function $(t,e){for(var r=0;r1;)if(n.pop(),void 0!==(r=s(e,n.join(".")+".uirevision").get()))return r;return e.uirevision}function et(t,e){for(var r=0;r=i.length?i[0]:i[t]:i}function l(t){return Array.isArray(a)?t>=a.length?a[0]:a[t]:a}function c(t,e){var r=0;return function(){if(t&&++r===e)return t()}}return void 0===n._frameWaitingCnt&&(n._frameWaitingCnt=0),new Promise((function(a,u){function f(){n._currentFrame&&n._currentFrame.onComplete&&n._currentFrame.onComplete();var e=n._currentFrame=n._frameQueue.shift();if(e){var r=e.name?e.name.toString():null;t._fullLayout._currentFrame=r,n._lastFrameAt=Date.now(),n._timeToNext=e.frameOpts.duration,h.transition(t,e.frame.data,e.frame.layout,_.coerceTraceIndices(t,e.frame.traces),e.frameOpts,e.transitionOpts).then((function(){e.onComplete&&e.onComplete()})),t.emit("plotly_animatingframe",{name:r,frame:e.frame,animation:{frame:e.frameOpts,transition:e.transitionOpts}})}else t.emit("plotly_animated"),window.cancelAnimationFrame(n._animationRaf),n._animationRaf=null}function p(){t.emit("plotly_animating"),n._lastFrameAt=-1/0,n._timeToNext=0,n._runningTransitions=0,n._currentFrame=null;var e=function(){n._animationRaf=window.requestAnimationFrame(e),Date.now()-n._lastFrameAt>n._timeToNext&&f()};e()}var d,m,g=0;function v(t){return Array.isArray(i)?g>=i.length?t.transitionOpts=i[g]:t.transitionOpts=i[0]:t.transitionOpts=i,g++,t}var y=[],x=null==e,b=Array.isArray(e);if(!x&&!b&&o.isPlainObject(e))y.push({type:"object",data:v(o.extendFlat({},e))});else if(x||-1!==["string","number"].indexOf(typeof e))for(d=0;d0&&kk)&&M.push(m);y=M}}y.length>0?function(e){if(0!==e.length){for(var i=0;i=0;n--)if(o.isPlainObject(e[n])){var m=e[n].name,g=(u[m]||d[m]||{}).name,v=e[n].name,y=u[g]||d[g];g&&v&&"number"==typeof v&&y&&M<5&&(M++,o.warn('addFrames: overwriting frame "'+(u[g]||d[g]).name+'" with a frame whose name of type "number" also equates to "'+g+'". This is valid but may potentially lead to unexpected behavior since all plotly.js frame names are stored internally as strings.'),5===M&&o.warn("addFrames: This API call has yielded too many of these warnings. For the rest of this call, further warnings about numeric frame names will be suppressed.")),d[m]={name:m},p.push({frame:h.supplyFrameDefaults(e[n]),index:r&&void 0!==r[n]&&null!==r[n]?r[n]:f+n})}p.sort((function(t,e){return t.index>e.index?-1:t.index=0;n--){if("number"==typeof(i=p[n].frame).name&&o.warn("Warning: addFrames accepts frames with numeric names, but the numbers areimplicitly cast to strings"),!i.name)for(;u[i.name="frame "+t._transitionData._counter++];);if(u[i.name]){for(a=0;a=0;r--)n=e[r],a.push({type:"delete",index:n}),s.unshift({type:"insert",index:n,value:i[n]});var l=h.modifyFrames,u=h.modifyFrames,f=[t,s],p=[t,a];return c&&c.add(t,l,f,u,p),h.modifyFrames(t,a)},r.addTraces=function t(e,n,i){e=o.getGraphDiv(e);var a,s,l=[],u=r.deleteTraces,f=t,h=[e,l],p=[e,n];for(function(t,e,r){var n,i;if(!Array.isArray(t.data))throw new Error("gd.data must be an array.");if(void 0===e)throw new Error("traces must be defined.");for(Array.isArray(e)||(e=[e]),n=0;n=0&&r=0&&r=a.length)return!1;if(2===t.dimensions){if(r++,e.length===r)return t;var o=e[r];if(!y(o))return!1;t=a[i][o]}else t=a[i]}else t=a}}return t}function y(t){return t===Math.round(t)&&t>=0}function x(){var t,e,r={};for(t in f(r,o),n.subplotsRegistry){if((e=n.subplotsRegistry[t]).layoutAttributes)if(Array.isArray(e.attr))for(var i=0;i=l.length)return!1;i=(r=(n.transformsRegistry[l[c].type]||{}).attributes)&&r[e[2]],s=3}else{var u=t._module;if(u||(u=(n.modules[t.type||a.type.dflt]||{})._module),!u)return!1;if(!(i=(r=u.attributes)&&r[o])){var f=u.basePlotModule;f&&f.attributes&&(i=f.attributes[o])}i||(i=a[o])}return v(i,e,s)},r.getLayoutValObject=function(t,e){return v(function(t,e){var r,i,a,s,l=t._basePlotModules;if(l){var c;for(r=0;r=i&&(r._input||{})._templateitemname;o&&(a=i);var s,l=e+"["+a+"]";function c(){s={},o&&(s[l]={},s[l].templateitemname=o)}function u(t,e){o?n.nestedProperty(s[l],t).set(e):s[l+"."+t]=e}function f(){var t=s;return c(),t}return c(),{modifyBase:function(t,e){s[t]=e},modifyItem:u,getUpdateObj:f,applyUpdate:function(e,r){e&&u(e,r);var i=f();for(var a in i)n.nestedProperty(t,a).set(i[a])}}}},{"../lib":795,"../plots/attributes":841}],835:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("../registry"),a=t("../plots/plots"),o=t("../lib"),s=t("../lib/clear_gl_canvases"),l=t("../components/color"),c=t("../components/drawing"),u=t("../components/titles"),f=t("../components/modebar"),h=t("../plots/cartesian/axes"),p=t("../constants/alignment"),d=t("../plots/cartesian/constraints"),m=d.enforce,g=d.clean,v=t("../plots/cartesian/autorange").doAutoRange;function y(t,e,r){for(var n=0;n=t[1]||i[1]<=t[0])&&(a[0]e[0]))return!0}return!1}function x(t){var e,i,s,u,d,m,g=t._fullLayout,v=g._size,x=v.p,_=h.list(t,"",!0);if(g._paperdiv.style({width:t._context.responsive&&g.autosize&&!t._context._hasZeroWidth&&!t.layout.width?"100%":g.width+"px",height:t._context.responsive&&g.autosize&&!t._context._hasZeroHeight&&!t.layout.height?"100%":g.height+"px"}).selectAll(".main-svg").call(c.setSize,g.width,g.height),t._context.setBackground(t,g.paper_bgcolor),r.drawMainTitle(t),f.manage(t),!g._has("cartesian"))return a.previousPromises(t);function T(t,e,r){var n=t._lw/2;return"x"===t._id.charAt(0)?e?"top"===r?e._offset-x-n:e._offset+e._length+x+n:v.t+v.h*(1-(t.position||0))+n%1:e?"right"===r?e._offset+e._length+x+n:e._offset-x-n:v.l+v.w*(t.position||0)+n%1}for(e=0;e<_.length;e++){var k=(u=_[e])._anchorAxis;u._linepositions={},u._lw=c.crispRound(t,u.linewidth,1),u._mainLinePosition=T(u,k,u.side),u._mainMirrorPosition=u.mirror&&k?T(u,k,p.OPPOSITE_SIDE[u.side]):null}var M=[],A=[],S=[],E=1===l.opacity(g.paper_bgcolor)&&1===l.opacity(g.plot_bgcolor)&&g.paper_bgcolor===g.plot_bgcolor;for(i in g._plots)if((s=g._plots[i]).mainplot)s.bg&&s.bg.remove(),s.bg=void 0;else{var L=s.xaxis.domain,C=s.yaxis.domain,P=s.plotgroup;if(y(L,C,S)){var I=P.node(),O=s.bg=o.ensureSingle(P,"rect","bg");I.insertBefore(O.node(),I.childNodes[0]),A.push(i)}else P.select("rect.bg").remove(),S.push([L,C]),E||(M.push(i),A.push(i))}var z,D,R,F,B,N,j,U,V,q,H,G,Y,W=g._bgLayer.selectAll(".bg").data(M);for(W.enter().append("rect").classed("bg",!0),W.exit().remove(),W.each((function(t){g._plots[t].bg=n.select(this)})),e=0;eT?u.push({code:"unused",traceType:y,templateCount:w,dataCount:T}):T>w&&u.push({code:"reused",traceType:y,templateCount:w,dataCount:T})}}else u.push({code:"data"});if(function t(e,r){for(var n in e)if("_"!==n.charAt(0)){var a=e[n],o=m(e,n,r);i(a)?(Array.isArray(e)&&!1===a._template&&a.templateitemname&&u.push({code:"missing",path:o,templateitemname:a.templateitemname}),t(a,o)):Array.isArray(a)&&g(a)&&t(a,o)}}({data:p,layout:h},""),u.length)return u.map(v)}},{"../lib":795,"../plots/attributes":841,"../plots/plots":909,"./plot_config":832,"./plot_schema":833,"./plot_template":834}],837:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("./plot_api"),a=t("../plots/plots"),o=t("../lib"),s=t("../snapshot/helpers"),l=t("../snapshot/tosvg"),c=t("../snapshot/svgtoimg"),u=t("../version").version,f={format:{valType:"enumerated",values:["png","jpeg","webp","svg","full-json"],dflt:"png"},width:{valType:"number",min:1},height:{valType:"number",min:1},scale:{valType:"number",min:0,dflt:1},setBackground:{valType:"any",dflt:!1},imageDataOnly:{valType:"boolean",dflt:!1}};e.exports=function(t,e){var r,h,p,d;function m(t){return!(t in e)||o.validate(e[t],f[t])}if(e=e||{},o.isPlainObject(t)?(r=t.data||[],h=t.layout||{},p=t.config||{},d={}):(t=o.getGraphDiv(t),r=o.extendDeep([],t.data),h=o.extendDeep({},t.layout),p=t._context,d=t._fullLayout||{}),!m("width")&&null!==e.width||!m("height")&&null!==e.height)throw new Error("Height and width should be pixel values.");if(!m("format"))throw new Error("Export format is not "+o.join2(f.format.values,", "," or ")+".");var g={};function v(t,r){return o.coerce(e,g,f,t,r)}var y=v("format"),x=v("width"),b=v("height"),_=v("scale"),w=v("setBackground"),T=v("imageDataOnly"),k=document.createElement("div");k.style.position="absolute",k.style.left="-5000px",document.body.appendChild(k);var M=o.extendFlat({},h);x?M.width=x:null===e.width&&n(d.width)&&(M.width=d.width),b?M.height=b:null===e.height&&n(d.height)&&(M.height=d.height);var A=o.extendFlat({},p,{_exportedPlot:!0,staticPlot:!0,setBackground:w}),S=s.getRedrawFunc(k);function E(){return new Promise((function(t){setTimeout(t,s.getDelay(k._fullLayout))}))}function L(){return new Promise((function(t,e){var r=l(k,y,_),n=k._fullLayout.width,f=k._fullLayout.height;function h(){i.purge(k),document.body.removeChild(k)}if("full-json"===y){var p=a.graphJson(k,!1,"keepdata","object",!0,!0);return p.version=u,p=JSON.stringify(p),h(),t(T?p:s.encodeJSON(p))}if(h(),"svg"===y)return t(T?r:s.encodeSVG(r));var d=document.createElement("canvas");d.id=o.randstr(),c({format:y,width:n,height:f,scale:_,canvas:d,svg:r,promise:!0}).then(t).catch(e)}))}return new Promise((function(t,e){i.newPlot(k,r,M,A).then(S).then(E).then(L).then((function(e){t(function(t){return T?t.replace(s.IMAGE_URL_PREFIX,""):t}(e))})).catch((function(t){e(t)}))}))}},{"../lib":795,"../plots/plots":909,"../snapshot/helpers":927,"../snapshot/svgtoimg":929,"../snapshot/tosvg":931,"../version":1382,"./plot_api":831,"fast-isnumeric":240}],838:[function(t,e,r){"use strict";var n=t("../lib"),i=t("../plots/plots"),a=t("./plot_schema"),o=t("./plot_config").dfltConfig,s=n.isPlainObject,l=Array.isArray,c=n.isArrayOrTypedArray;function u(t,e,r,i,a,o){o=o||[];for(var f=Object.keys(t),h=0;hx.length&&i.push(d("unused",a,v.concat(x.length)));var M,A,S,E,L,C=x.length,P=Array.isArray(k);if(P&&(C=Math.min(C,k.length)),2===b.dimensions)for(A=0;Ax[A].length&&i.push(d("unused",a,v.concat(A,x[A].length)));var I=x[A].length;for(M=0;M<(P?Math.min(I,k[A].length):I);M++)S=P?k[A][M]:k,E=y[A][M],L=x[A][M],n.validate(E,S)?L!==E&&L!==+E&&i.push(d("dynamic",a,v.concat(A,M),E,L)):i.push(d("value",a,v.concat(A,M),E))}else i.push(d("array",a,v.concat(A),y[A]));else for(A=0;A1&&p.push(d("object","layout"))),i.supplyDefaults(m);for(var g=m._fullData,v=r.length,y=0;y0&&Math.round(f)===f))return i;c=f}for(var h=e.calendar,p="start"===l,d="end"===l,m=t[r+"period0"],g=a(m,h)||0,v=[],y=i.length,x=0;xT;)w=o(w,-c,h);for(;w<=T;)w=o(w,c,h);_=o(w,-c,h)}else{for(w=g+(b=Math.round((T-g)/u))*u;w>T;)w-=u;for(;w<=T;)w+=u;_=w-u}v[x]=p?_:d?w:(_+w)/2}return v}},{"../../constants/numerical":771,"../../lib":795,"fast-isnumeric":240}],843:[function(t,e,r){"use strict";e.exports={xaxis:{valType:"subplotid",dflt:"x",editType:"calc+clearAxisTypes"},yaxis:{valType:"subplotid",dflt:"y",editType:"calc+clearAxisTypes"}}},{}],844:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("fast-isnumeric"),a=t("../../lib"),o=t("../../constants/numerical").FP_SAFE,s=t("../../registry"),l=t("../../components/drawing"),c=t("./axis_ids"),u=c.getFromId,f=c.isLinked;function h(t,e){var r,n,i=[],o=t._fullLayout,s=d(o,e,0),l=d(o,e,1),c=m(t,e),u=c.min,f=c.max;if(0===u.length||0===f.length)return a.simpleMap(e.range,e.r2l);var h=u[0].val,g=f[0].val;for(r=1;r0&&((T=E-s(x)-l(b))>L?k/T>C&&(_=x,w=b,C=k/T):k/E>C&&(_={val:x.val,nopad:1},w={val:b.val,nopad:1},C=k/E));if(h===g){var P=h-1,I=h+1;if(A)if(0===h)i=[0,1];else{var O=(h>0?f:u).reduce((function(t,e){return Math.max(t,l(e))}),0),z=h/(1-Math.min(.5,O/E));i=h>0?[0,z]:[z,0]}else i=S?[Math.max(0,P),Math.max(1,I)]:[P,I]}else A?(_.val>=0&&(_={val:0,nopad:1}),w.val<=0&&(w={val:0,nopad:1})):S&&(_.val-C*s(_)<0&&(_={val:0,nopad:1}),w.val<=0&&(w={val:1,nopad:1})),C=(w.val-_.val-p(e,x.val,b.val))/(E-s(_)-l(w)),i=[_.val-C*s(_),w.val+C*l(w)];return v&&i.reverse(),a.simpleMap(i,e.l2r||Number)}function p(t,e,r){var n=0;if(t.rangebreaks)for(var i=t.locateBreaks(e,r),a=0;a0?r.ppadplus:r.ppadminus)||r.ppad||0),S=M((t._m>0?r.ppadminus:r.ppadplus)||r.ppad||0),E=M(r.vpadplus||r.vpad),L=M(r.vpadminus||r.vpad);if(!T){if(h=1/0,p=-1/0,w)for(n=0;n0&&(h=a),a>p&&a-o&&(h=a),a>p&&a=I;n--)P(n);return{min:d,max:m,opts:r}},concatExtremes:m};function m(t,e,r){var n,i,a,o=e._id,s=t._fullData,l=t._fullLayout,c=[],f=[];function h(t,e){for(n=0;n=r&&(c.extrapad||!o)){s=!1;break}i(e,c.val)&&c.pad<=r&&(o||!c.extrapad)&&(t.splice(l,1),l--)}if(s){var u=a&&0===e;t.push({val:e,pad:u?0:r,extrapad:!u&&o})}}function x(t){return i(t)&&Math.abs(t)=e}},{"../../components/drawing":680,"../../constants/numerical":771,"../../lib":795,"../../registry":923,"./axis_ids":848,"@plotly/d3":57,"fast-isnumeric":240}],845:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("fast-isnumeric"),a=t("../../plots/plots"),o=t("../../registry"),s=t("../../lib"),l=s.strTranslate,c=t("../../lib/svg_text_utils"),u=t("../../components/titles"),f=t("../../components/color"),h=t("../../components/drawing"),p=t("./layout_attributes"),d=t("./clean_ticks"),m=t("../../constants/numerical"),g=m.ONEMAXYEAR,v=m.ONEAVGYEAR,y=m.ONEMINYEAR,x=m.ONEMAXQUARTER,b=m.ONEAVGQUARTER,_=m.ONEMINQUARTER,w=m.ONEMAXMONTH,T=m.ONEAVGMONTH,k=m.ONEMINMONTH,M=m.ONEWEEK,A=m.ONEDAY,S=A/2,E=m.ONEHOUR,L=m.ONEMIN,C=m.ONESEC,P=m.MINUS_SIGN,I=m.BADNUM,O={K:"zeroline"},z={K:"gridline",L:"path"},D={K:"tick",L:"path"},R={K:"tick",L:"text"},F=t("../../constants/alignment"),B=F.MID_SHIFT,N=F.CAP_SHIFT,j=F.LINE_SPACING,U=F.OPPOSITE_SIDE,V=e.exports={};V.setConvert=t("./set_convert");var q=t("./axis_autotype"),H=t("./axis_ids"),G=H.idSort,Y=H.isLinked;V.id2name=H.id2name,V.name2id=H.name2id,V.cleanId=H.cleanId,V.list=H.list,V.listIds=H.listIds,V.getFromId=H.getFromId,V.getFromTrace=H.getFromTrace;var W=t("./autorange");V.getAutoRange=W.getAutoRange,V.findExtremes=W.findExtremes;function X(t){var e=1e-4*(t[1]-t[0]);return[t[0]-e,t[1]+e]}V.coerceRef=function(t,e,r,n,i,a){var o=n.charAt(n.length-1),l=r._fullLayout._subplots[o+"axis"],c=n+"ref",u={};return i||(i=l[0]||("string"==typeof a?a:a[0])),a||(a=i),l=l.concat(l.map((function(t){return t+" domain"}))),u[c]={valType:"enumerated",values:l.concat(a?"string"==typeof a?[a]:a:[]),dflt:i},s.coerce(t,e,u,c)},V.getRefType=function(t){return void 0===t?t:"paper"===t?"paper":"pixel"===t?"pixel":/( domain)$/.test(t)?"domain":"range"},V.coercePosition=function(t,e,r,n,i,a){var o,l;if("range"!==V.getRefType(n))o=s.ensureNumber,l=r(i,a);else{var c=V.getFromId(e,n);l=r(i,a=c.fraction2r(a)),o=c.cleanPos}t[i]=o(l)},V.cleanPosition=function(t,e,r){return("paper"===r||"pixel"===r?s.ensureNumber:V.getFromId(e,r).cleanPos)(t)},V.redrawComponents=function(t,e){e=e||V.listIds(t);var r=t._fullLayout;function n(n,i,a,s){for(var l=o.getComponentMethod(n,i),c={},u=0;u2e-6||((r-t._forceTick0)/t._minDtick%1+1.000001)%1>2e-6)&&(t._minDtick=0)):t._minDtick=0},V.saveRangeInitial=function(t,e){for(var r=V.list(t,"",!0),n=!1,i=0;i.3*h||u(n)||u(a))){var p=r.dtick/2;t+=t+p.8){var o=Number(r.substr(1));a.exactYears>.8&&o%12==0?t=V.tickIncrement(t,"M6","reverse")+1.5*A:a.exactMonths>.8?t=V.tickIncrement(t,"M1","reverse")+15.5*A:t-=S;var l=V.tickIncrement(t,r);if(l<=n)return l}return t}(y,t,v,c,a)),g=y,0;g<=u;)g=V.tickIncrement(g,v,!1,a);return{start:e.c2r(y,0,a),end:e.c2r(g,0,a),size:v,_dataSpan:u-c}},V.prepTicks=function(t,e){var r=s.simpleMap(t.range,t.r2l,void 0,void 0,e);if(t._dtickInit=t.dtick,t._tick0Init=t.tick0,"auto"===t.tickmode||!t.dtick){var n,a=t.nticks;a||("category"===t.type||"multicategory"===t.type?(n=t.tickfont?s.bigFont(t.tickfont.size||12):15,a=t._length/n):(n="y"===t._id.charAt(0)?40:80,a=s.constrain(t._length/n,4,9)+1),"radialaxis"===t._name&&(a*=2)),"array"===t.tickmode&&(a*=100),t._roughDTick=Math.abs(r[1]-r[0])/a,V.autoTicks(t,t._roughDTick),t._minDtick>0&&t.dtick<2*t._minDtick&&(t.dtick=t._minDtick,t.tick0=t.l2r(t._forceTick0))}"period"===t.ticklabelmode&&function(t){var e;function r(){return!(i(t.dtick)||"M"!==t.dtick.charAt(0))}var n=r(),a=V.getTickFormat(t);if(a){var o=t._dtickInit!==t.dtick;/%[fLQsSMX]/.test(a)||(/%[HI]/.test(a)?(e=E,o&&!n&&t.dticka&&f=o:p<=o;p=V.tickIncrement(p,t.dtick,l,t.calendar)){if(t.rangebreaks&&!l){if(p=u)break}if(L.length>m||p===C)break;C=p;var P=!1;f&&p!==(0|p)&&(P=!0),L.push({minor:P,value:p})}if(h&&function(t,e,r){for(var n=0;n0?(a=n-1,o=n):(a=n,o=n);var s,l=t[a].value,c=t[o].value,u=Math.abs(c-l),f=r||u,h=0;f>=y?h=u>=y&&u<=g?u:v:r===b&&f>=_?h=u>=_&&u<=x?u:b:f>=k?h=u>=k&&u<=w?u:T:r===M&&f>=M?h=M:f>=A?h=A:r===S&&f>=S?h=S:r===E&&f>=E&&(h=E),h>=u&&(h=u,s=!0);var p=i+h;if(e.rangebreaks&&h>0){for(var d=0,m=0;m<84;m++){var L=(m+.5)/84;e.maskBreaks(i*(1-L)+L*p)!==I&&d++}(h*=d/84)||(t[n].drop=!0),s&&u>M&&(h=u)}(h>0||0===n)&&(t[n].periodX=i+h/2)}}(L,t,t._definedDelta),t.rangebreaks){var O="y"===t._id.charAt(0),z=1;"auto"===t.tickmode&&(z=t.tickfont?t.tickfont.size:12);var D=NaN;for(d=L.length-1;d>-1;d--)if(L[d].drop)L.splice(d,1);else{L[d].value=At(L[d].value,t);var R=t.c2p(L[d].value);(O?D>R-z:Du||Bu&&(F.periodX=u),B10||"01-01"!==n.substr(5)?t._tickround="d":t._tickround=+e.substr(1)%12==0?"y":"m";else if(e>=A&&a<=10||e>=15*A)t._tickround="d";else if(e>=L&&a<=16||e>=E)t._tickround="M";else if(e>=C&&a<=19||e>=L)t._tickround="S";else{var o=t.l2r(r+e).replace(/^-/,"").length;t._tickround=Math.max(a,o)-20,t._tickround<0&&(t._tickround=4)}}else if(i(e)||"L"===e.charAt(0)){var s=t.range.map(t.r2d||Number);i(e)||(e=Number(e.substr(1))),t._tickround=2-Math.floor(Math.log(e)/Math.LN10+.01);var l=Math.max(Math.abs(s[0]),Math.abs(s[1])),c=Math.floor(Math.log(l)/Math.LN10+.01),u=void 0===t.minexponent?3:t.minexponent;Math.abs(c)>u&&(ut(t.exponentformat)&&!ft(c)?t._tickexponent=3*Math.round((c-1)/3):t._tickexponent=c)}else t._tickround=null}function lt(t,e,r){var n=t.tickfont||{};return{x:e,dx:0,dy:0,text:r||"",fontSize:n.size,font:n.family,fontColor:n.color}}V.autoTicks=function(t,e){var r;function n(t){return Math.pow(t,Math.floor(Math.log(e)/Math.LN10))}if("date"===t.type){t.tick0=s.dateTick0(t.calendar,0);var a=2*e;if(a>v)e/=v,r=n(10),t.dtick="M"+12*ot(e,r,$);else if(a>T)e/=T,t.dtick="M"+ot(e,1,tt);else if(a>A){t.dtick=ot(e,A,t._hasDayOfWeekBreaks?[1,2,7,14]:rt);var o=V.getTickFormat(t),l="period"===t.ticklabelmode;l&&(t._rawTick0=t.tick0),/%[uVW]/.test(o)?t.tick0=s.dateTick0(t.calendar,2):t.tick0=s.dateTick0(t.calendar,1),l&&(t._dowTick0=t.tick0)}else a>E?t.dtick=ot(e,E,tt):a>L?t.dtick=ot(e,L,et):a>C?t.dtick=ot(e,C,et):(r=n(10),t.dtick=ot(e,r,$))}else if("log"===t.type){t.tick0=0;var c=s.simpleMap(t.range,t.r2l);if(e>.7)t.dtick=Math.ceil(e);else if(Math.abs(c[1]-c[0])<1){var u=1.5*Math.abs((c[1]-c[0])/e);e=Math.abs(Math.pow(10,c[1])-Math.pow(10,c[0]))/u,r=n(10),t.dtick="L"+ot(e,r,$)}else t.dtick=e>.3?"D2":"D1"}else"category"===t.type||"multicategory"===t.type?(t.tick0=0,t.dtick=Math.ceil(Math.max(e,1))):Mt(t)?(t.tick0=0,r=1,t.dtick=ot(e,r,at)):(t.tick0=0,r=n(10),t.dtick=ot(e,r,$));if(0===t.dtick&&(t.dtick=1),!i(t.dtick)&&"string"!=typeof t.dtick){var f=t.dtick;throw t.dtick=1,"ax.dtick error: "+String(f)}},V.tickIncrement=function(t,e,r,a){var o=r?-1:1;if(i(e))return s.increment(t,o*e);var l=e.charAt(0),c=o*Number(e.substr(1));if("M"===l)return s.incrementMonth(t,c,a);if("L"===l)return Math.log(Math.pow(10,t)+c)/Math.LN10;if("D"===l){var u="D2"===e?it:nt,f=t+.01*o,h=s.roundUp(s.mod(f,1),u,r);return Math.floor(f)+Math.log(n.round(Math.pow(10,h),1))/Math.LN10}throw"unrecognized dtick "+String(e)},V.tickFirst=function(t,e){var r=t.r2l||Number,a=s.simpleMap(t.range,r,void 0,void 0,e),o=a[1] ")}else t._prevDateHead=l,c+="
    "+l;e.text=c}(t,o,r,c):"log"===u?function(t,e,r,n,a){var o=t.dtick,l=e.x,c=t.tickformat,u="string"==typeof o&&o.charAt(0);"never"===a&&(a="");n&&"L"!==u&&(o="L3",u="L");if(c||"L"===u)e.text=ht(Math.pow(10,l),t,a,n);else if(i(o)||"D"===u&&s.mod(l+.01,1)<.1){var f=Math.round(l),h=Math.abs(f),p=t.exponentformat;"power"===p||ut(p)&&ft(f)?(e.text=0===f?1:1===f?"10":"10"+(f>1?"":P)+h+"",e.fontSize*=1.25):("e"===p||"E"===p)&&h>2?e.text="1"+p+(f>0?"+":P)+h:(e.text=ht(Math.pow(10,l),t,"","fakehover"),"D1"===o&&"y"===t._id.charAt(0)&&(e.dy-=e.fontSize/6))}else{if("D"!==u)throw"unrecognized dtick "+String(o);e.text=String(Math.round(Math.pow(10,s.mod(l,1)))),e.fontSize*=.75}if("D1"===t.dtick){var d=String(e.text).charAt(0);"0"!==d&&"1"!==d||("y"===t._id.charAt(0)?e.dx-=e.fontSize/4:(e.dy+=e.fontSize/2,e.dx+=(t.range[1]>t.range[0]?1:-1)*e.fontSize*(l<0?.5:.25)))}}(t,o,0,c,m):"category"===u?function(t,e){var r=t._categories[Math.round(e.x)];void 0===r&&(r="");e.text=String(r)}(t,o):"multicategory"===u?function(t,e,r){var n=Math.round(e.x),i=t._categories[n]||[],a=void 0===i[1]?"":String(i[1]),o=void 0===i[0]?"":String(i[0]);r?e.text=o+" - "+a:(e.text=a,e.text2=o)}(t,o,r):Mt(t)?function(t,e,r,n,i){if("radians"!==t.thetaunit||r)e.text=ht(e.x,t,i,n);else{var a=e.x/180;if(0===a)e.text="0";else{var o=function(t){function e(t,e){return Math.abs(t-e)<=1e-6}var r=function(t){for(var r=1;!e(Math.round(t*r)/r,t);)r*=10;return r}(t),n=t*r,i=Math.abs(function t(r,n){return e(n,0)?r:t(n,r%n)}(n,r));return[Math.round(n/i),Math.round(r/i)]}(a);if(o[1]>=100)e.text=ht(s.deg2rad(e.x),t,i,n);else{var l=e.x<0;1===o[1]?1===o[0]?e.text="\u03c0":e.text=o[0]+"\u03c0":e.text=["",o[0],"","\u2044","",o[1],"","\u03c0"].join(""),l&&(e.text=P+e.text)}}}}(t,o,r,c,m):function(t,e,r,n,i){"never"===i?i="":"all"===t.showexponent&&Math.abs(e.x/t.dtick)<1e-6&&(i="hide");e.text=ht(e.x,t,i,n)}(t,o,0,c,m),n||(t.tickprefix&&!d(t.showtickprefix)&&(o.text=t.tickprefix+o.text),t.ticksuffix&&!d(t.showticksuffix)&&(o.text+=t.ticksuffix)),"boundaries"===t.tickson||t.showdividers){var g=function(e){var r=t.l2p(e);return r>=0&&r<=t._length?e:null};o.xbnd=[g(o.x-.5),g(o.x+t.dtick-.5)]}return o},V.hoverLabelText=function(t,e,r){r&&(t=s.extendFlat({},t,{hoverformat:r}));var n=Array.isArray(e)?e[0]:e,i=Array.isArray(e)?e[1]:void 0;if(void 0!==i&&i!==n)return V.hoverLabelText(t,n,r)+" - "+V.hoverLabelText(t,i,r);var a="log"===t.type&&n<=0,o=V.tickText(t,t.c2l(a?-n:n),"hover").text;return a?0===n?"0":P+o:o};var ct=["f","p","n","\u03bc","m","","k","M","G","T"];function ut(t){return"SI"===t||"B"===t}function ft(t){return t>14||t<-15}function ht(t,e,r,n){var a=t<0,o=e._tickround,l=r||e.exponentformat||"B",c=e._tickexponent,u=V.getTickFormat(e),f=e.separatethousands;if(n){var h={exponentformat:l,minexponent:e.minexponent,dtick:"none"===e.showexponent?e.dtick:i(t)&&Math.abs(t)||1,range:"none"===e.showexponent?e.range.map(e.r2d):[0,t||1]};st(h),o=(Number(h._tickround)||0)+4,c=h._tickexponent,e.hoverformat&&(u=e.hoverformat)}if(u)return e._numFormat(u)(t).replace(/-/g,P);var p,d=Math.pow(10,-o)/2;if("none"===l&&(c=0),(t=Math.abs(t))"+p+"
    ":"B"===l&&9===c?t+="B":ut(l)&&(t+=ct[c/3+5]));return a?P+t:t}function pt(t,e){for(var r=[],n={},i=0;i1&&r=i.min&&t=0,a=u(t,e[1])<=0;return(r||i)&&(n||a)}if(t.tickformatstops&&t.tickformatstops.length>0)switch(t.type){case"date":case"linear":for(e=0;e=o(i)))){r=n;break}break;case"log":for(e=0;e0?r.bottom-f:0,h)))),e.automargin){n={x:0,y:0,r:0,l:0,t:0,b:0};var p=[0,1];if("x"===d){if("b"===l?n[l]=e._depth:(n[l]=e._depth=Math.max(r.width>0?f-r.top:0,h),p.reverse()),r.width>0){var g=r.right-(e._offset+e._length);g>0&&(n.xr=1,n.r=g);var v=e._offset-r.left;v>0&&(n.xl=0,n.l=v)}}else if("l"===l?n[l]=e._depth=Math.max(r.height>0?f-r.left:0,h):(n[l]=e._depth=Math.max(r.height>0?r.right-f:0,h),p.reverse()),r.height>0){var y=r.bottom-(e._offset+e._length);y>0&&(n.yb=0,n.b=y);var x=e._offset-r.top;x>0&&(n.yt=1,n.t=x)}n[m]="free"===e.anchor?e.position:e._anchorAxis.domain[p[0]],e.title.text!==c._dfltTitle[d]&&(n[l]+=gt(e)+(e.title.standoff||0)),e.mirror&&"free"!==e.anchor&&((i={x:0,y:0,r:0,l:0,t:0,b:0})[u]=e.linewidth,e.mirror&&!0!==e.mirror&&(i[u]+=h),!0===e.mirror||"ticks"===e.mirror?i[m]=e._anchorAxis.domain[p[1]]:"all"!==e.mirror&&"allticks"!==e.mirror||(i[m]=[e._counterDomainMin,e._counterDomainMax][p[1]]))}K&&(s=o.getComponentMethod("rangeslider","autoMarginOpts")(t,e)),a.autoMargin(t,xt(e),n),a.autoMargin(t,bt(e),i),a.autoMargin(t,_t(e),s)})),r.skipTitle||K&&"bottom"===e.side||Z.push((function(){return function(t,e){var r,n=t._fullLayout,i=e._id,a=i.charAt(0),o=e.title.font.size;if(e.title.hasOwnProperty("standoff"))r=e._depth+e.title.standoff+gt(e);else{var s=St(e);if("multicategory"===e.type)r=e._depth;else{var l=1.5*o;s&&(l=.5*o,"outside"===e.ticks&&(l+=e.ticklen)),r=10+l+(e.linewidth?e.linewidth-1:0)}s||(r+="x"===a?"top"===e.side?o*(e.showticklabels?1:0):o*(e.showticklabels?1.5:.5):"right"===e.side?o*(e.showticklabels?1:.5):o*(e.showticklabels?.5:0))}var c,f,p,d,m=V.getPxPosition(t,e);"x"===a?(f=e._offset+e._length/2,p="top"===e.side?m-r:m+r):(p=e._offset+e._length/2,f="right"===e.side?m+r:m-r,c={rotate:"-90",offset:0});if("multicategory"!==e.type){var g=e._selections[e._id+"tick"];if(d={selection:g,side:e.side},g&&g.node()&&g.node().parentNode){var v=h.getTranslate(g.node().parentNode);d.offsetLeft=v.x,d.offsetTop=v.y}e.title.hasOwnProperty("standoff")&&(d.pad=0)}return u.draw(t,i+"title",{propContainer:e,propName:e._name+".title.text",placeholder:n._dfltTitle[a],avoid:d,transform:c,attributes:{x:f,y:p,"text-anchor":"middle"}})}(t,e)})),s.syncOrAsync(Z)}}function Q(t){var r=p+(t||"tick");return w[r]||(w[r]=function(t,e){var r,n,i,a;t._selections[e].size()?(r=1/0,n=-1/0,i=1/0,a=-1/0,t._selections[e].each((function(){var t=yt(this),e=h.bBox(t.node().parentNode);r=Math.min(r,e.top),n=Math.max(n,e.bottom),i=Math.min(i,e.left),a=Math.max(a,e.right)}))):(r=0,n=0,i=0,a=0);return{top:r,bottom:n,left:i,right:a,height:n-r,width:a-i}}(e,r)),w[r]}},V.getTickSigns=function(t){var e=t._id.charAt(0),r={x:"top",y:"right"}[e],n=t.side===r?1:-1,i=[-1,1,n,-n];return"inside"!==t.ticks==("x"===e)&&(i=i.map((function(t){return-t}))),t.side&&i.push({l:-1,t:-1,r:1,b:1}[t.side.charAt(0)]),i},V.makeTransTickFn=function(t){return"x"===t._id.charAt(0)?function(e){return l(t._offset+t.l2p(e.x),0)}:function(e){return l(0,t._offset+t.l2p(e.x))}},V.makeTransTickLabelFn=function(t){var e=function(t){var e=t.ticklabelposition||"",r=function(t){return-1!==e.indexOf(t)},n=r("top"),i=r("left"),a=r("right"),o=r("bottom"),s=r("inside"),l=o||i||n||a;if(!l&&!s)return[0,0];var c=t.side,u=l?(t.tickwidth||0)/2:0,f=3,h=t.tickfont?t.tickfont.size:12;(o||n)&&(u+=h*N,f+=(t.linewidth||0)/2);(i||a)&&(u+=(t.linewidth||0)/2,f+=3);s&&"top"===c&&(f-=h*(1-N));(i||n)&&(u=-u);"bottom"!==c&&"right"!==c||(f=-f);return[l?u:0,s?f:0]}(t),r=e[0],n=e[1];return"x"===t._id.charAt(0)?function(e){return l(r+t._offset+t.l2p(dt(e)),n)}:function(e){return l(n,r+t._offset+t.l2p(dt(e)))}},V.makeTickPath=function(t,e,r,n){n=void 0!==n?n:t.ticklen;var i=t._id.charAt(0),a=(t.linewidth||1)/2;return"x"===i?"M0,"+(e+a*r)+"v"+n*r:"M"+(e+a*r)+",0h"+n*r},V.makeLabelFns=function(t,e,r){var n=t.ticklabelposition||"",a=function(t){return-1!==n.indexOf(t)},o=a("top"),l=a("left"),c=a("right"),u=a("bottom")||l||o||c,f=a("inside"),h="inside"===n&&"inside"===t.ticks||!f&&"outside"===t.ticks&&"boundaries"!==t.tickson,p=0,d=0,m=h?t.ticklen:0;if(f?m*=-1:u&&(m=0),h&&(p+=m,r)){var g=s.deg2rad(r);p=m*Math.cos(g)+1,d=m*Math.sin(g)}t.showticklabels&&(h||t.showline)&&(p+=.2*t.tickfont.size);var v,y,x,b,_,w={labelStandoff:p+=(t.linewidth||1)/2*(f?-1:1),labelShift:d},T=0,k=t.side,M=t._id.charAt(0),A=t.tickangle;if("x"===M)b=(_=!f&&"bottom"===k||f&&"top"===k)?1:-1,f&&(b*=-1),v=d*b,y=e+p*b,x=_?1:-.2,90===Math.abs(A)&&(f?x+=B:x=-90===A&&"bottom"===k?N:90===A&&"top"===k?B:.5,T=B/2*(A/90)),w.xFn=function(t){return t.dx+v+T*t.fontSize},w.yFn=function(t){return t.dy+y+t.fontSize*x},w.anchorFn=function(t,e){if(u){if(l)return"end";if(c)return"start"}return i(e)&&0!==e&&180!==e?e*b<0!==f?"end":"start":"middle"},w.heightFn=function(e,r,n){return r<-60||r>60?-.5*n:"top"===t.side!==f?-n:0};else if("y"===M){if(b=(_=!f&&"left"===k||f&&"right"===k)?1:-1,f&&(b*=-1),v=p,y=d*b,x=0,f||90!==Math.abs(A)||(x=-90===A&&"left"===k||90===A&&"right"===k?N:.5),f){var S=i(A)?+A:0;if(0!==S){var E=s.deg2rad(S);T=Math.abs(Math.sin(E))*N*b,x=0}}w.xFn=function(t){return t.dx+e-(v+t.fontSize*x)*b+T*t.fontSize},w.yFn=function(t){return t.dy+y+t.fontSize*B},w.anchorFn=function(t,e){return i(e)&&90===Math.abs(e)?"middle":_?"end":"start"},w.heightFn=function(e,r,n){return"right"===t.side&&(r*=-1),r<-30?-n:r<30?-.5*n:0}}return w},V.drawTicks=function(t,e,r){r=r||{};var n=e._id+"tick",i=r.vals;"period"===e.ticklabelmode&&(i=i.slice()).shift();var a=r.layer.selectAll("path."+n).data(e.ticks?i:[],mt);a.exit().remove(),a.enter().append("path").classed(n,1).classed("ticks",1).classed("crisp",!1!==r.crisp).call(f.stroke,e.tickcolor).style("stroke-width",h.crispRound(t,e.tickwidth,1)+"px").attr("d",r.path).style("display",null),Et(e,[D]),a.attr("transform",r.transFn)},V.drawGrid=function(t,e,r){r=r||{};var n=e._id+"grid",i=r.vals,a=r.counterAxis;if(!1===e.showgrid)i=[];else if(a&&V.shouldShowZeroLine(t,e,a))for(var o="array"===e.tickmode,s=0;sp||a.leftp||a.top+(e.tickangle?0:t.fontSize/4)e["_visibleLabelMin_"+r._id]?l.style("display","none"):"tick"!==t.K||i||l.style("display",null)}))}))}))}))},x(v,g+1?g:m);var b=null;e._selections&&(e._selections[f]=v);var _=[function(){return y.length&&Promise.all(y)}];e.automargin&&a._redrawFromAutoMarginCount&&90===g?(b=90,_.push((function(){x(v,g)}))):_.push((function(){if(x(v,m),p.length&&"x"===u&&!i(m)&&("log"!==e.type||"D"!==String(e.dtick).charAt(0))){b=0;var t,n=0,a=[];if(v.each((function(t){n=Math.max(n,t.fontSize);var r=e.l2p(t.x),i=yt(this),o=h.bBox(i.node());a.push({top:0,bottom:10,height:10,left:r-o.width/2,right:r+o.width/2+2,width:o.width+2})})),"boundaries"!==e.tickson&&!e.showdividers||r.secondary){var o=p.length,l=Math.abs((p[o-1].x-p[0].x)*e._m)/(o-1),c=e.ticklabelposition||"",f=function(t){return-1!==c.indexOf(t)},d=f("top"),g=f("left"),y=f("right"),_=f("bottom")||g||d||y?(e.tickwidth||0)+6:0,w=l<2.5*n||"multicategory"===e.type;for(t=0;t1)for(n=1;n2*o}(i,e))return"date";var g="strict"!==r.autotypenumbers;return function(t,e){for(var r=t.length,n=f(r),i=0,o=0,s={},u=0;u2*i}(i,g)?"category":function(t,e){for(var r=t.length,n=0;n=2){var l,c,u="";if(2===o.length)for(l=0;l<2;l++)if(c=y(o[l])){u=d;break}var f=i("pattern",u);if(f===d)for(l=0;l<2;l++)(c=y(o[l]))&&(e.bounds[l]=o[l]=c-1);if(f)for(l=0;l<2;l++)switch(c=o[l],f){case d:if(!n(c))return void(e.enabled=!1);if((c=+c)!==Math.floor(c)||c<0||c>=7)return void(e.enabled=!1);e.bounds[l]=o[l]=c;break;case m:if(!n(c))return void(e.enabled=!1);if((c=+c)<0||c>24)return void(e.enabled=!1);e.bounds[l]=o[l]=c}if(!1===r.autorange){var h=r.range;if(h[0]h[1])return void(e.enabled=!1)}else if(o[0]>h[0]&&o[1]n?1:-1:+(t.substr(1)||1)-+(e.substr(1)||1)},r.ref2id=function(t){return!!/^[xyz]/.test(t)&&t.split(" ")[0]},r.isLinked=function(t,e){return a(e,t._axisMatchGroups)||a(e,t._axisConstraintGroups)}},{"../../registry":923,"./constants":851}],849:[function(t,e,r){"use strict";e.exports=function(t,e,r,n){if("category"===e.type){var i,a=t.categoryarray,o=Array.isArray(a)&&a.length>0;o&&(i="array");var s,l=r("categoryorder",i);"array"===l&&(s=r("categoryarray")),o||"array"!==l||(l=e.categoryorder="trace"),"trace"===l?e._initialCategories=[]:"array"===l?e._initialCategories=s.slice():(s=function(t,e){var r,n,i,a=e.dataAttr||t._id.charAt(0),o={};if(e.axData)r=e.axData;else for(r=[],n=0;nn?i.substr(n):a.substr(r))+o:i+a+t*e:o}function g(t,e){for(var r=e._size,n=r.h/r.w,i={},a=Object.keys(t),o=0;oc*x)||T)for(r=0;rO&&FP&&(P=F);h/=(P-C)/(2*I),C=l.l2r(C),P=l.l2r(P),l.range=l._input.range=S=0?Math.min(t,.9):1/(1/Math.max(t,-.3)+3.222))}function B(t,e,r,n,i){return t.append("path").attr("class","zoombox").style({fill:e>.2?"rgba(0,0,0,0)":"rgba(255,255,255,0)","stroke-width":0}).attr("transform",l(r,n)).attr("d",i+"Z")}function N(t,e,r){return t.append("path").attr("class","zoombox-corners").style({fill:u.background,stroke:u.defaultLine,"stroke-width":1,opacity:0}).attr("transform",l(e,r)).attr("d","M0,0Z")}function j(t,e,r,n,i,a){t.attr("d",n+"M"+r.l+","+r.t+"v"+r.h+"h"+r.w+"v-"+r.h+"h-"+r.w+"Z"),U(t,e,i,a)}function U(t,e,r,n){r||(t.transition().style("fill",n>.2?"rgba(0,0,0,0.4)":"rgba(255,255,255,0.3)").duration(200),e.transition().style("opacity",1).duration(200))}function V(t){n.select(t).selectAll(".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners").remove()}function q(t){P&&t.data&&t._context.showTips&&(s.notifier(s._(t,"Double-click to zoom back out"),"long"),P=!1)}function H(t){var e=Math.floor(Math.min(t.b-t.t,t.r-t.l,C)/2);return"M"+(t.l-3.5)+","+(t.t-.5+e)+"h3v"+-e+"h"+e+"v-3h-"+(e+3)+"ZM"+(t.r+3.5)+","+(t.t-.5+e)+"h-3v"+-e+"h"+-e+"v-3h"+(e+3)+"ZM"+(t.r+3.5)+","+(t.b+.5-e)+"h-3v"+e+"h"+-e+"v3h"+(e+3)+"ZM"+(t.l-3.5)+","+(t.b+.5-e)+"h3v"+e+"h"+e+"v3h-"+(e+3)+"Z"}function G(t,e,r,n,i){for(var a,o,l,c,u=!1,f={},h={},p=(i||{}).xaHash,d=(i||{}).yaHash,m=0;m=0)i._fullLayout._deactivateShape(i);else{var a=i._fullLayout.clickmode;if(V(i),2!==t||gt||qt(),mt)a.indexOf("select")>-1&&A(r,i,Z,J,e.id,Ct),a.indexOf("event")>-1&&h.click(i,r,e.id);else if(1===t&>){var s=d?I:P,l="s"===d||"w"===g?0:1,u=s._name+".range["+l+"]",f=function(t,e){var r,i=t.range[e],a=Math.abs(i-t.range[1-e]);return"date"===t.type?i:"log"===t.type?(r=Math.ceil(Math.max(0,-Math.log(a)/Math.LN10))+3,n.format("."+r+"g")(Math.pow(10,i))):(r=Math.floor(Math.log(Math.abs(i))/Math.LN10)-Math.floor(Math.log(a)/Math.LN10)+4,n.format("."+String(r)+"g")(i))}(s,l),p="left",m="middle";if(s.fixedrange)return;d?(m="n"===d?"top":"bottom","right"===s.side&&(p="right")):"e"===g&&(p="right"),i._context.showAxisRangeEntryBoxes&&n.select(xt).call(c.makeEditable,{gd:i,immediate:!0,background:i._fullLayout.paper_bgcolor,text:String(f),fill:s.tickfont?s.tickfont.color:"#444",horizontalAlign:p,verticalAlign:m}).on("edit",(function(t){var e=s.d2r(t);void 0!==e&&o.call("_guiRelayout",i,u,e)}))}}}function Ot(e,r){if(t._transitioningWithDuration)return!1;var n=Math.max(0,Math.min($,ht*e+bt)),i=Math.max(0,Math.min(tt,pt*r+_t)),a=Math.abs(n-bt),o=Math.abs(i-_t);function s(){At="",wt.r=wt.l,wt.t=wt.b,Et.attr("d","M0,0Z")}if(wt.l=Math.min(bt,n),wt.r=Math.max(bt,n),wt.t=Math.min(_t,i),wt.b=Math.max(_t,i),et.isSubplotConstrained)a>C||o>C?(At="xy",a/$>o/tt?(o=a*tt/$,_t>i?wt.t=_t-o:wt.b=_t+o):(a=o*$/tt,bt>n?wt.l=bt-a:wt.r=bt+a),Et.attr("d",H(wt))):s();else if(rt.isSubplotConstrained)if(a>C||o>C){At="xy";var l=Math.min(wt.l/$,(tt-wt.b)/tt),c=Math.max(wt.r/$,(tt-wt.t)/tt);wt.l=l*$,wt.r=c*$,wt.b=(1-l)*tt,wt.t=(1-c)*tt,Et.attr("d",H(wt))}else s();else!it||o0){var u;if(rt.isSubplotConstrained||!nt&&1===it.length){for(u=0;um[1]-1/4096&&(e.domain=s),i.noneOrAll(t.domain,e.domain,s)}return r("layer"),e}},{"../../lib":795,"fast-isnumeric":240}],863:[function(t,e,r){"use strict";var n=t("../../constants/alignment").FROM_BL;e.exports=function(t,e,r){void 0===r&&(r=n[t.constraintoward||"center"]);var i=[t.r2l(t.range[0]),t.r2l(t.range[1])],a=i[0]+(i[1]-i[0])*r;t.range=t._input.range=[t.l2r(a+(i[0]-a)*e),t.l2r(a+(i[1]-a)*e)],t.setScale()}},{"../../constants/alignment":763}],864:[function(t,e,r){"use strict";var n=t("polybooljs"),i=t("../../registry"),a=t("../../components/drawing").dashStyle,o=t("../../components/color"),s=t("../../components/fx"),l=t("../../components/fx/helpers").makeEventData,c=t("../../components/dragelement/helpers"),u=c.freeMode,f=c.rectMode,h=c.drawMode,p=c.openMode,d=c.selectMode,m=t("../../components/shapes/draw_newshape/display_outlines"),g=t("../../components/shapes/draw_newshape/helpers").handleEllipse,v=t("../../components/shapes/draw_newshape/newshapes"),y=t("../../lib"),x=t("../../lib/polygon"),b=t("../../lib/throttle"),_=t("./axis_ids").getFromId,w=t("../../lib/clear_gl_canvases"),T=t("../../plot_api/subroutines").redrawReglTraces,k=t("./constants"),M=k.MINSELECT,A=x.filter,S=x.tester,E=t("./handle_outline").clearSelect,L=t("./helpers"),C=L.p2r,P=L.axValue,I=L.getTransform;function O(t,e,r,n,i,a,o){var s,l,c,u,f,h,d,g,v,y=e._hoverdata,x=e._fullLayout.clickmode.indexOf("event")>-1,b=[];if(function(t){return t&&Array.isArray(t)&&!0!==t[0].hoverOnBox}(y)){F(t,e,a);var _=function(t,e){var r,n,i=t[0],a=-1,o=[];for(n=0;n0?function(t,e){var r,n,i,a=[];for(i=0;i0&&a.push(r);if(1===a.length&&a[0]===e.searchInfo&&(n=e.searchInfo.cd[0].trace).selectedpoints.length===e.pointNumbers.length){for(i=0;i1)return!1;if((i+=r.selectedpoints.length)>1)return!1}return 1===i}(s)&&(h=j(_))){for(o&&o.remove(),v=0;v=0&&n._fullLayout._deactivateShape(n),h(e)){var a=n._fullLayout._zoomlayer.selectAll(".select-outline-"+r.id);if(a&&n._fullLayout._drawing){var o=v(a,t);o&&i.call("_guiRelayout",n,{shapes:o}),n._fullLayout._drawing=!1}}r.selection={},r.selection.selectionDefs=t.selectionDefs=[],r.selection.mergedPolygons=t.mergedPolygons=[]}function N(t,e,r,n){var i,a,o,s=[],l=e.map((function(t){return t._id})),c=r.map((function(t){return t._id}));for(o=0;o0?n[0]:r;return!!e.selectedpoints&&e.selectedpoints.indexOf(i)>-1}function U(t,e,r){var n,a,o,s;for(n=0;n=0)L._fullLayout._deactivateShape(L);else if(!_){var r=z.clickmode;b.done(mt).then((function(){if(b.clear(mt),2===t){for(ft.remove(),$=0;$-1&&O(e,L,i.xaxes,i.yaxes,i.subplot,i,ft),"event"===r&&L.emit("plotly_selected",void 0);s.click(L,e)})).catch(y.error)}},i.doneFn=function(){dt.remove(),b.done(mt).then((function(){b.clear(mt),i.gd.emit("plotly_selected",et),Q&&i.selectionDefs&&(Q.subtract=ut,i.selectionDefs.push(Q),i.mergedPolygons.length=0,[].push.apply(i.mergedPolygons,K)),i.doneFnCompleted&&i.doneFnCompleted(gt)})).catch(y.error),_&&B(i)}},clearSelect:E,clearSelectionsCache:B,selectOnClick:O}},{"../../components/color":658,"../../components/dragelement/helpers":676,"../../components/drawing":680,"../../components/fx":698,"../../components/fx/helpers":694,"../../components/shapes/draw_newshape/display_outlines":746,"../../components/shapes/draw_newshape/helpers":747,"../../components/shapes/draw_newshape/newshapes":748,"../../lib":795,"../../lib/clear_gl_canvases":779,"../../lib/polygon":807,"../../lib/throttle":821,"../../plot_api/subroutines":835,"../../registry":923,"./axis_ids":848,"./constants":851,"./handle_outline":855,"./helpers":856,polybooljs:496}],865:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("d3-time-format").utcFormat,a=t("fast-isnumeric"),o=t("../../lib"),s=o.cleanNumber,l=o.ms2DateTime,c=o.dateTime2ms,u=o.ensureNumber,f=o.isArrayOrTypedArray,h=t("../../constants/numerical"),p=h.FP_SAFE,d=h.BADNUM,m=h.LOG_CLIP,g=h.ONEWEEK,v=h.ONEDAY,y=h.ONEHOUR,x=h.ONEMIN,b=h.ONESEC,_=t("./axis_ids"),w=t("./constants"),T=w.HOUR_PATTERN,k=w.WEEKDAY_PATTERN;function M(t){return Math.pow(10,t)}function A(t){return null!=t}e.exports=function(t,e){e=e||{};var r=t._id||"x",h=r.charAt(0);function S(e,r){if(e>0)return Math.log(e)/Math.LN10;if(e<=0&&r&&t.range&&2===t.range.length){var n=t.range[0],i=t.range[1];return.5*(n+i-2*m*Math.abs(n-i))}return d}function E(e,r,n,i){if((i||{}).msUTC&&a(e))return+e;var s=c(e,n||t.calendar);if(s===d){if(!a(e))return d;e=+e;var l=Math.floor(10*o.mod(e+.05,1)),u=Math.round(e-l/10);s=c(new Date(u))+l/10}return s}function L(e,r,n){return l(e,r,n||t.calendar)}function C(e){return t._categories[Math.round(e)]}function P(e){if(A(e)){if(void 0===t._categoriesMap&&(t._categoriesMap={}),void 0!==t._categoriesMap[e])return t._categoriesMap[e];t._categories.push("number"==typeof e?String(e):e);var r=t._categories.length-1;return t._categoriesMap[e]=r,r}return d}function I(e){if(t._categoriesMap)return t._categoriesMap[e]}function O(t){var e=I(t);return void 0!==e?e:a(t)?+t:void 0}function z(t){return a(t)?+t:I(t)}function D(t,e,r){return n.round(r+e*t,2)}function R(t,e,r){return(t-r)/e}var F=function(e){return a(e)?D(e,t._m,t._b):d},B=function(e){return R(e,t._m,t._b)};if(t.rangebreaks){var N="y"===h;F=function(e){if(!a(e))return d;var r=t._rangebreaks.length;if(!r)return D(e,t._m,t._b);var n=N;t.range[0]>t.range[1]&&(n=!n);for(var i=n?-1:1,o=i*e,s=0,l=0;lu)){s=o<(c+u)/2?l:l+1;break}s=l+1}var f=t._B[s]||0;return isFinite(f)?D(e,t._m2,f):0},B=function(e){var r=t._rangebreaks.length;if(!r)return R(e,t._m,t._b);for(var n=0,i=0;it._rangebreaks[i].pmax&&(n=i+1);return R(e,t._m2,t._B[n])}}t.c2l="log"===t.type?S:u,t.l2c="log"===t.type?M:u,t.l2p=F,t.p2l=B,t.c2p="log"===t.type?function(t,e){return F(S(t,e))}:F,t.p2c="log"===t.type?function(t){return M(B(t))}:B,-1!==["linear","-"].indexOf(t.type)?(t.d2r=t.r2d=t.d2c=t.r2c=t.d2l=t.r2l=s,t.c2d=t.c2r=t.l2d=t.l2r=u,t.d2p=t.r2p=function(e){return t.l2p(s(e))},t.p2d=t.p2r=B,t.cleanPos=u):"log"===t.type?(t.d2r=t.d2l=function(t,e){return S(s(t),e)},t.r2d=t.r2c=function(t){return M(s(t))},t.d2c=t.r2l=s,t.c2d=t.l2r=u,t.c2r=S,t.l2d=M,t.d2p=function(e,r){return t.l2p(t.d2r(e,r))},t.p2d=function(t){return M(B(t))},t.r2p=function(e){return t.l2p(s(e))},t.p2r=B,t.cleanPos=u):"date"===t.type?(t.d2r=t.r2d=o.identity,t.d2c=t.r2c=t.d2l=t.r2l=E,t.c2d=t.c2r=t.l2d=t.l2r=L,t.d2p=t.r2p=function(e,r,n){return t.l2p(E(e,0,n))},t.p2d=t.p2r=function(t,e,r){return L(B(t),e,r)},t.cleanPos=function(e){return o.cleanDate(e,d,t.calendar)}):"category"===t.type?(t.d2c=t.d2l=P,t.r2d=t.c2d=t.l2d=C,t.d2r=t.d2l_noadd=O,t.r2c=function(e){var r=z(e);return void 0!==r?r:t.fraction2r(.5)},t.l2r=t.c2r=u,t.r2l=z,t.d2p=function(e){return t.l2p(t.r2c(e))},t.p2d=function(t){return C(B(t))},t.r2p=t.d2p,t.p2r=B,t.cleanPos=function(t){return"string"==typeof t&&""!==t?t:u(t)}):"multicategory"===t.type&&(t.r2d=t.c2d=t.l2d=C,t.d2r=t.d2l_noadd=O,t.r2c=function(e){var r=O(e);return void 0!==r?r:t.fraction2r(.5)},t.r2c_just_indices=I,t.l2r=t.c2r=u,t.r2l=O,t.d2p=function(e){return t.l2p(t.r2c(e))},t.p2d=function(t){return C(B(t))},t.r2p=t.d2p,t.p2r=B,t.cleanPos=function(t){return Array.isArray(t)||"string"==typeof t&&""!==t?t:u(t)},t.setupMultiCategory=function(n){var i,a,s=t._traceIndices,l=t._matchGroup;if(l&&0===t._categories.length)for(var c in l)if(c!==r){var u=e[_.id2name(c)];s=s.concat(u._traceIndices)}var p=[[0,{}],[0,{}]],d=[];for(i=0;ip&&(s[n]=p),s[0]===s[1]){var c=Math.max(1,Math.abs(1e-6*s[0]));s[0]-=c,s[1]+=c}}else o.nestedProperty(t,e).set(i)},t.setScale=function(r){var n=e._size;if(t.overlaying){var i=_.getFromId({_fullLayout:e},t.overlaying);t.domain=i.domain}var a=r&&t._r?"_r":"range",o=t.calendar;t.cleanRange(a);var s,l,c=t.r2l(t[a][0],o),u=t.r2l(t[a][1],o),f="y"===h;if((f?(t._offset=n.t+(1-t.domain[1])*n.h,t._length=n.h*(t.domain[1]-t.domain[0]),t._m=t._length/(c-u),t._b=-t._m*u):(t._offset=n.l+t.domain[0]*n.w,t._length=n.w*(t.domain[1]-t.domain[0]),t._m=t._length/(u-c),t._b=-t._m*c),t._rangebreaks=[],t._lBreaks=0,t._m2=0,t._B=[],t.rangebreaks)&&(t._rangebreaks=t.locateBreaks(Math.min(c,u),Math.max(c,u)),t._rangebreaks.length)){for(s=0;su&&(p=!p),p&&t._rangebreaks.reverse();var d=p?-1:1;for(t._m2=d*t._length/(Math.abs(u-c)-t._lBreaks),t._B.push(-t._m2*(f?u:c)),s=0;si&&(i+=7,ai&&(i+=24,a=n&&a=n&&e=s.min&&(ts.max&&(s.max=n),i=!1)}i&&c.push({min:t,max:n})}};for(n=0;nr.duration?(!function(){for(var r={},n=0;n rect").call(o.setTranslate,0,0).call(o.setScale,1,1),t.plot.call(o.setTranslate,e._offset,r._offset).call(o.setScale,1,1);var n=t.plot.selectAll(".scatterlayer .trace");n.selectAll(".point").call(o.setPointGroupScale,1,1),n.selectAll(".textpoint").call(o.setTextPointsScale,1,1),n.call(o.hideOutsideRangePoints,t)}function g(e,r){var n=e.plotinfo,i=n.xaxis,l=n.yaxis,c=i._length,u=l._length,f=!!e.xr1,h=!!e.yr1,p=[];if(f){var d=a.simpleMap(e.xr0,i.r2l),m=a.simpleMap(e.xr1,i.r2l),g=d[1]-d[0],v=m[1]-m[0];p[0]=(d[0]*(1-r)+r*m[0]-d[0])/(d[1]-d[0])*c,p[2]=c*(1-r+r*v/g),i.range[0]=i.l2r(d[0]*(1-r)+r*m[0]),i.range[1]=i.l2r(d[1]*(1-r)+r*m[1])}else p[0]=0,p[2]=c;if(h){var y=a.simpleMap(e.yr0,l.r2l),x=a.simpleMap(e.yr1,l.r2l),b=y[1]-y[0],_=x[1]-x[0];p[1]=(y[1]*(1-r)+r*x[1]-y[1])/(y[0]-y[1])*u,p[3]=u*(1-r+r*_/b),l.range[0]=i.l2r(y[0]*(1-r)+r*x[0]),l.range[1]=l.l2r(y[1]*(1-r)+r*x[1])}else p[1]=0,p[3]=u;s.drawOne(t,i,{skipTitle:!0}),s.drawOne(t,l,{skipTitle:!0}),s.redrawComponents(t,[i._id,l._id]);var w=f?c/p[2]:1,T=h?u/p[3]:1,k=f?p[0]:0,M=h?p[1]:0,A=f?p[0]/p[2]*c:0,S=h?p[1]/p[3]*u:0,E=i._offset-A,L=l._offset-S;n.clipRect.call(o.setTranslate,k,M).call(o.setScale,1/w,1/T),n.plot.call(o.setTranslate,E,L).call(o.setScale,w,T),o.setPointGroupScale(n.zoomScalePts,1/w,1/T),o.setTextPointsScale(n.zoomScaleTxt,1/w,1/T)}s.redrawComponents(t)}},{"../../components/drawing":680,"../../lib":795,"../../registry":923,"./axes":845,"@plotly/d3":57}],870:[function(t,e,r){"use strict";var n=t("../../registry").traceIs,i=t("./axis_autotype");function a(t){return{v:"x",h:"y"}[t.orientation||"v"]}function o(t,e){var r=a(t),i=n(t,"box-violin"),o=n(t._fullInput||{},"candlestick");return i&&!o&&e===r&&void 0===t[r]&&void 0===t[r+"0"]}e.exports=function(t,e,r,s){r("autotypenumbers",s.autotypenumbersDflt),"-"===r("type",(s.splomStash||{}).type)&&(!function(t,e){if("-"!==t.type)return;var r,s=t._id,l=s.charAt(0);-1!==s.indexOf("scene")&&(s=l);var c=function(t,e,r){for(var n=0;n0&&(i["_"+r+"axes"]||{})[e])return i;if((i[r+"axis"]||r)===e){if(o(i,r))return i;if((i[r]||[]).length||i[r+"0"])return i}}}(e,s,l);if(!c)return;if("histogram"===c.type&&l==={v:"y",h:"x"}[c.orientation||"v"])return void(t.type="linear");var u=l+"calendar",f=c[u],h={noMultiCategory:!n(c,"cartesian")||n(c,"noMultiCategory")};"box"===c.type&&c._hasPreCompStats&&l==={h:"x",v:"y"}[c.orientation||"v"]&&(h.noMultiCategory=!0);if(h.autotypenumbers=t.autotypenumbers,o(c,l)){var p=a(c),d=[];for(r=0;r0?".":"")+a;i.isPlainObject(o)?l(o,e,s,n+1):e(s,a,o)}}))}r.manageCommandObserver=function(t,e,n,o){var s={},l=!0;e&&e._commandObserver&&(s=e._commandObserver),s.cache||(s.cache={}),s.lookupTable={};var c=r.hasSimpleAPICommandBindings(t,n,s.lookupTable);if(e&&e._commandObserver){if(c)return s;if(e._commandObserver.remove)return e._commandObserver.remove(),e._commandObserver=null,s}if(c){a(t,c,s.cache),s.check=function(){if(l){var e=a(t,c,s.cache);return e.changed&&o&&void 0!==s.lookupTable[e.value]&&(s.disable(),Promise.resolve(o({value:e.value,type:c.type,prop:c.prop,traces:c.traces,index:s.lookupTable[e.value]})).then(s.enable,s.enable)),e.changed}};for(var u=["plotly_relayout","plotly_redraw","plotly_restyle","plotly_update","plotly_animatingframe","plotly_afterplot"],f=0;f0&&i<0&&(i+=360);var s=(i-n)/4;return{type:"Polygon",coordinates:[[[n,a],[n,o],[n+s,o],[n+2*s,o],[n+3*s,o],[i,o],[i,a],[i-s,a],[i-2*s,a],[i-3*s,a],[n,a]]]}}e.exports=function(t){return new w(t)},T.plot=function(t,e,r){var n=this,i=e[this.id],a=[],o=!1;for(var s in y.layerNameToAdjective)if("frame"!==s&&i["show"+s]){o=!0;break}for(var l=0;l0&&a._module.calcGeoJSON(i,e)}if(!this.updateProjection(t,e)){this.viewInitial&&this.scope===r.scope||this.saveViewInitial(r),this.scope=r.scope,this.updateBaseLayers(e,r),this.updateDims(e,r),this.updateFx(e,r),u.generalUpdatePerTraceModule(this.graphDiv,this,t,r);var o=this.layers.frontplot.select(".scatterlayer");this.dataPoints.point=o.selectAll(".point"),this.dataPoints.text=o.selectAll("text"),this.dataPaths.line=o.selectAll(".js-line");var s=this.layers.backplot.select(".choroplethlayer");this.dataPaths.choropleth=s.selectAll("path"),this.render()}},T.updateProjection=function(t,e){var r=this.graphDiv,o=e[this.id],s=e._size,l=o.domain,c=o.projection,u=o.lonaxis,f=o.lataxis,p=u._ax,d=f._ax,m=this.projection=function(t){for(var e=t.projection.type,r=n.geo[y.projNames[e]](),i=t._isClipped?y.lonaxisSpan[e]/2:null,a=["center","rotate","parallels","clipExtent"],o=function(t){return t?r:[]},s=0;si*Math.PI/180}return!1},r.getPath=function(){return n.geo.path().projection(r)},r.getBounds=function(t){return r.getPath().bounds(t)},r.fitExtent=function(t,e){var n=t[1][0]-t[0][0],i=t[1][1]-t[0][1],a=r.clipExtent&&r.clipExtent();r.scale(150).translate([0,0]),a&&r.clipExtent(null);var o=r.getBounds(e),s=Math.min(n/(o[1][0]-o[0][0]),i/(o[1][1]-o[0][1])),l=+t[0][0]+(n-s*(o[1][0]+o[0][0]))/2,c=+t[0][1]+(i-s*(o[1][1]+o[0][1]))/2;return a&&r.clipExtent(a),r.scale(150*s).translate([l,c])},r.precision(y.precision),i&&r.clipAngle(i-y.clipPad);return r}(o),g=[[s.l+s.w*l.x[0],s.t+s.h*(1-l.y[1])],[s.l+s.w*l.x[1],s.t+s.h*(1-l.y[0])]],v=o.center||{},x=c.rotation||{},b=u.range||[],_=f.range||[];if(o.fitbounds){p._length=g[1][0]-g[0][0],d._length=g[1][1]-g[0][1],p.range=h(r,p),d.range=h(r,d);var w=(p.range[0]+p.range[1])/2,T=(d.range[0]+d.range[1])/2;if(o._isScoped)v={lon:w,lat:T};else if(o._isClipped){v={lon:w,lat:T},x={lon:w,lat:T,roll:x.roll};var M=c.type,A=y.lonaxisSpan[M]/2||180,S=y.lataxisSpan[M]/2||90;b=[w-A,w+A],_=[T-S,T+S]}else v={lon:w,lat:T},x={lon:w,lat:x.lat,roll:x.roll}}m.center([v.lon-x.lon,v.lat-x.lat]).rotate([-x.lon,-x.lat,x.roll]).parallels(c.parallels);var E=k(b,_);m.fitExtent(g,E);var L=this.bounds=m.getBounds(E),C=this.fitScale=m.scale(),P=m.translate();if(!isFinite(L[0][0])||!isFinite(L[0][1])||!isFinite(L[1][0])||!isFinite(L[1][1])||isNaN(P[0])||isNaN(P[0])){for(var I=["fitbounds","projection.rotation","center","lonaxis.range","lataxis.range"],O="Invalid geo settings, relayout'ing to default view.",z={},D=0;D-1&&g(n.event,a,[r.xaxis],[r.yaxis],r.id,f),l.indexOf("event")>-1&&c.click(a,n.event))}))}function h(t){return r.projection.invert([t[0]+r.xaxis._offset,t[1]+r.yaxis._offset])}},T.makeFramework=function(){var t=this,e=t.graphDiv,r=e._fullLayout,i="clip"+r._uid+t.id;t.clipDef=r._clips.append("clipPath").attr("id",i),t.clipRect=t.clipDef.append("rect"),t.framework=n.select(t.container).append("g").attr("class","geo "+t.id).call(l.setClipUrl,i,e),t.project=function(e){var r=t.projection(e);return r?[r[0]-t.xaxis._offset,r[1]-t.yaxis._offset]:[null,null]},t.xaxis={_id:"x",c2p:function(e){return t.project(e)[0]}},t.yaxis={_id:"y",c2p:function(e){return t.project(e)[1]}},t.mockAxis={type:"linear",showexponent:"all",exponentformat:"B"},f.setConvert(t.mockAxis,r)},T.saveViewInitial=function(t){var e,r=t.center||{},n=t.projection,i=n.rotation||{};this.viewInitial={fitbounds:t.fitbounds,"projection.scale":n.scale},e=t._isScoped?{"center.lon":r.lon,"center.lat":r.lat}:t._isClipped?{"projection.rotation.lon":i.lon,"projection.rotation.lat":i.lat}:{"center.lon":r.lon,"center.lat":r.lat,"projection.rotation.lon":i.lon},a.extendFlat(this.viewInitial,e)},T.render=function(){var t,e=this.projection,r=e.getPath();function n(t){var r=e(t.lonlat);return r?o(r[0],r[1]):null}function i(t){return e.isLonLatOverEdges(t.lonlat)?"none":null}for(t in this.basePaths)this.basePaths[t].attr("d",r);for(t in this.dataPaths)this.dataPaths[t].attr("d",(function(t){return r(t.geojson)}));for(t in this.dataPoints)this.dataPoints[t].attr("display",i).attr("transform",n)}},{"../../components/color":658,"../../components/dragelement":677,"../../components/drawing":680,"../../components/fx":698,"../../lib":795,"../../lib/geo_location_utils":788,"../../lib/topojson_utils":823,"../../registry":923,"../cartesian/autorange":844,"../cartesian/axes":845,"../cartesian/select":864,"../plots":909,"./constants":875,"./projections":880,"./zoom":881,"@plotly/d3":57,"topojson-client":593}],877:[function(t,e,r){"use strict";var n=t("../../plots/get_data").getSubplotCalcData,i=t("../../lib").counterRegex,a=t("./geo"),o="geo",s=i(o),l={};l.geo={valType:"subplotid",dflt:o,editType:"calc"},e.exports={attr:o,name:o,idRoot:o,idRegex:s,attrRegex:s,attributes:l,layoutAttributes:t("./layout_attributes"),supplyLayoutDefaults:t("./layout_defaults"),plot:function(t){for(var e=t._fullLayout,r=t.calcdata,i=e._subplots.geo,s=0;s0&&C<0&&(C+=360);var P,I,O,z=(L+C)/2;if(!p){var D=d?f.projRotate:[z,0,0];P=r("projection.rotation.lon",D[0]),r("projection.rotation.lat",D[1]),r("projection.rotation.roll",D[2]),r("showcoastlines",!d&&y)&&(r("coastlinecolor"),r("coastlinewidth")),r("showocean",!!y&&void 0)&&r("oceancolor")}(p?(I=-96.6,O=38.7):(I=d?z:P,O=(E[0]+E[1])/2),r("center.lon",I),r("center.lat",O),m)&&r("projection.parallels",f.projParallels||[0,60]);r("projection.scale"),r("showland",!!y&&void 0)&&r("landcolor"),r("showlakes",!!y&&void 0)&&r("lakecolor"),r("showrivers",!!y&&void 0)&&(r("rivercolor"),r("riverwidth")),r("showcountries",d&&"usa"!==u&&y)&&(r("countrycolor"),r("countrywidth")),("usa"===u||"north america"===u&&50===c)&&(r("showsubunits",y),r("subunitcolor"),r("subunitwidth")),d||r("showframe",y)&&(r("framecolor"),r("framewidth")),r("bgcolor"),r("fitbounds")&&(delete e.projection.scale,d?(delete e.center.lon,delete e.center.lat):g?(delete e.center.lon,delete e.center.lat,delete e.projection.rotation.lon,delete e.projection.rotation.lat,delete e.lonaxis.range,delete e.lataxis.range):(delete e.center.lon,delete e.center.lat,delete e.projection.rotation.lon))}e.exports=function(t,e,r){i(t,e,r,{type:"geo",attributes:s,handleDefaults:c,fullData:r,partition:"y"})}},{"../../lib":795,"../get_data":882,"../subplot_defaults":917,"./constants":875,"./layout_attributes":878}],880:[function(t,e,r){"use strict";e.exports=function(t){function e(t,e){return{type:"Feature",id:t.id,properties:t.properties,geometry:r(t.geometry,e)}}function r(e,n){if(!e)return null;if("GeometryCollection"===e.type)return{type:"GeometryCollection",geometries:object.geometries.map((function(t){return r(t,n)}))};if(!c.hasOwnProperty(e.type))return null;var i=c[e.type];return t.geo.stream(e,n(i)),i.result()}t.geo.project=function(t,e){var i=e.stream;if(!i)throw new Error("not yet supported");return(t&&n.hasOwnProperty(t.type)?n[t.type]:r)(t,i)};var n={Feature:e,FeatureCollection:function(t,r){return{type:"FeatureCollection",features:t.features.map((function(t){return e(t,r)}))}}},i=[],a=[],o={point:function(t,e){i.push([t,e])},result:function(){var t=i.length?i.length<2?{type:"Point",coordinates:i[0]}:{type:"MultiPoint",coordinates:i}:null;return i=[],t}},s={lineStart:u,point:function(t,e){i.push([t,e])},lineEnd:function(){i.length&&(a.push(i),i=[])},result:function(){var t=a.length?a.length<2?{type:"LineString",coordinates:a[0]}:{type:"MultiLineString",coordinates:a}:null;return a=[],t}},l={polygonStart:u,lineStart:u,point:function(t,e){i.push([t,e])},lineEnd:function(){var t=i.length;if(t){do{i.push(i[0].slice())}while(++t<4);a.push(i),i=[]}},polygonEnd:u,result:function(){if(!a.length)return null;var t=[],e=[];return a.forEach((function(r){!function(t){if((e=t.length)<4)return!1;var e,r=0,n=t[e-1][1]*t[0][0]-t[e-1][0]*t[0][1];for(;++rn^p>n&&r<(h-c)*(n-u)/(p-u)+c&&(i=!i)}return i}(t[0],r))return t.push(e),!0}))||t.push([e])})),a=[],t.length?t.length>1?{type:"MultiPolygon",coordinates:t}:{type:"Polygon",coordinates:t[0]}:null}},c={Point:o,MultiPoint:o,LineString:s,MultiLineString:s,Polygon:l,MultiPolygon:l,Sphere:l};function u(){}var f=1e-6,h=Math.PI,p=h/2,d=(Math.sqrt(h),h/180),m=180/h;function g(t){return t>1?p:t<-1?-p:Math.asin(t)}function v(t){return t>1?0:t<-1?h:Math.acos(t)}var y=t.geo.projection,x=t.geo.projectionMutator;function b(t,e){var r=(2+p)*Math.sin(e);e/=2;for(var n=0,i=1/0;n<10&&Math.abs(i)>f;n++){var a=Math.cos(e);e-=i=(e+Math.sin(e)*(a+2)-r)/(2*a*(1+a))}return[2/Math.sqrt(h*(4+h))*t*(1+Math.cos(e)),2*Math.sqrt(h/(4+h))*Math.sin(e)]}t.geo.interrupt=function(e){var r,n=[[[[-h,0],[0,p],[h,0]]],[[[-h,0],[0,-p],[h,0]]]];function i(t,r){for(var i=r<0?-1:1,a=n[+(r<0)],o=0,s=a.length-1;oa[o][2][0];++o);var l=e(t-a[o][1][0],r);return l[0]+=e(a[o][1][0],i*r>i*a[o][0][1]?a[o][0][1]:r)[0],l}function a(){r=n.map((function(t){return t.map((function(t){var r,n=e(t[0][0],t[0][1])[0],i=e(t[2][0],t[2][1])[0],a=e(t[1][0],t[0][1])[1],o=e(t[1][0],t[1][1])[1];return a>o&&(r=a,a=o,o=r),[[n,a],[i,o]]}))}))}e.invert&&(i.invert=function(t,a){for(var o=r[+(a<0)],s=n[+(a<0)],l=0,u=o.length;l=0;--i){var p;o=180*(p=n[1][i])[0][0]/h,s=180*p[0][1]/h,c=180*p[1][1]/h,u=180*p[2][0]/h,f=180*p[2][1]/h;r.push(l([[u-e,f-e],[u-e,c+e],[o+e,c+e],[o+e,s-e]],30))}return{type:"Polygon",coordinates:[t.merge(r)]}}(),a)},i},o.lobes=function(t){return arguments.length?(n=t.map((function(t){return t.map((function(t){return[[t[0][0]*h/180,t[0][1]*h/180],[t[1][0]*h/180,t[1][1]*h/180],[t[2][0]*h/180,t[2][1]*h/180]]}))})),a(),o):n.map((function(t){return t.map((function(t){return[[180*t[0][0]/h,180*t[0][1]/h],[180*t[1][0]/h,180*t[1][1]/h],[180*t[2][0]/h,180*t[2][1]/h]]}))}))},o},b.invert=function(t,e){var r=.5*e*Math.sqrt((4+h)/h),n=g(r),i=Math.cos(n);return[t/(2/Math.sqrt(h*(4+h))*(1+i)),g((n+r*(i+2))/(2+p))]},(t.geo.eckert4=function(){return y(b)}).raw=b;var _=t.geo.azimuthalEqualArea.raw;function w(t,e){if(arguments.length<2&&(e=t),1===e)return _;if(e===1/0)return T;function r(r,n){var i=_(r/e,n);return i[0]*=t,i}return r.invert=function(r,n){var i=_.invert(r/t,n);return i[0]*=e,i},r}function T(t,e){return[t*Math.cos(e)/Math.cos(e/=2),2*Math.sin(e)]}function k(t,e){return[3*t/(2*h)*Math.sqrt(h*h/3-e*e),e]}function M(t,e){return[t,1.25*Math.log(Math.tan(h/4+.4*e))]}function A(t){return function(e){var r,n=t*Math.sin(e),i=30;do{e-=r=(e+Math.sin(e)-n)/(1+Math.cos(e))}while(Math.abs(r)>f&&--i>0);return e/2}}T.invert=function(t,e){var r=2*g(e/2);return[t*Math.cos(r/2)/Math.cos(r),r]},(t.geo.hammer=function(){var t=2,e=x(w),r=e(t);return r.coefficient=function(r){return arguments.length?e(t=+r):t},r}).raw=w,k.invert=function(t,e){return[2/3*h*t/Math.sqrt(h*h/3-e*e),e]},(t.geo.kavrayskiy7=function(){return y(k)}).raw=k,M.invert=function(t,e){return[t,2.5*Math.atan(Math.exp(.8*e))-.625*h]},(t.geo.miller=function(){return y(M)}).raw=M,A(h);var S=function(t,e,r){var n=A(r);function i(r,i){return[t*r*Math.cos(i=n(i)),e*Math.sin(i)]}return i.invert=function(n,i){var a=g(i/e);return[n/(t*Math.cos(a)),g((2*a+Math.sin(2*a))/r)]},i}(Math.SQRT2/p,Math.SQRT2,h);function E(t,e){var r=e*e,n=r*r;return[t*(.8707-.131979*r+n*(n*(.003971*r-.001529*n)-.013791)),e*(1.007226+r*(.015085+n*(.028874*r-.044475-.005916*n)))]}(t.geo.mollweide=function(){return y(S)}).raw=S,E.invert=function(t,e){var r,n=e,i=25;do{var a=n*n,o=a*a;n-=r=(n*(1.007226+a*(.015085+o*(.028874*a-.044475-.005916*o)))-e)/(1.007226+a*(.045255+o*(.259866*a-.311325-.005916*11*o)))}while(Math.abs(r)>f&&--i>0);return[t/(.8707+(a=n*n)*(a*(a*a*a*(.003971-.001529*a)-.013791)-.131979)),n]},(t.geo.naturalEarth=function(){return y(E)}).raw=E;var L=[[.9986,-.062],[1,0],[.9986,.062],[.9954,.124],[.99,.186],[.9822,.248],[.973,.31],[.96,.372],[.9427,.434],[.9216,.4958],[.8962,.5571],[.8679,.6176],[.835,.6769],[.7986,.7346],[.7597,.7903],[.7186,.8435],[.6732,.8936],[.6213,.9394],[.5722,.9761],[.5322,1]];function C(t,e){var r,n=Math.min(18,36*Math.abs(e)/h),i=Math.floor(n),a=n-i,o=(r=L[i])[0],s=r[1],l=(r=L[++i])[0],c=r[1],u=(r=L[Math.min(19,++i)])[0],f=r[1];return[t*(l+a*(u-o)/2+a*a*(u-2*l+o)/2),(e>0?p:-p)*(c+a*(f-s)/2+a*a*(f-2*c+s)/2)]}function P(t,e){return[t*Math.cos(e),e]}function I(t,e){var r,n=Math.cos(e),i=(r=v(n*Math.cos(t/=2)))?r/Math.sin(r):1;return[2*n*Math.sin(t)*i,Math.sin(e)*i]}function O(t,e){var r=I(t,e);return[(r[0]+t/p)/2,(r[1]+e)/2]}L.forEach((function(t){t[1]*=1.0144})),C.invert=function(t,e){var r=e/p,n=90*r,i=Math.min(18,Math.abs(n/5)),a=Math.max(0,Math.floor(i));do{var o=L[a][1],s=L[a+1][1],l=L[Math.min(19,a+2)][1],c=l-o,u=l-2*s+o,f=2*(Math.abs(r)-s)/c,h=u/c,g=f*(1-h*f*(1-2*h*f));if(g>=0||1===a){n=(e>=0?5:-5)*(g+i);var v,y=50;do{g=(i=Math.min(18,Math.abs(n)/5))-(a=Math.floor(i)),o=L[a][1],s=L[a+1][1],l=L[Math.min(19,a+2)][1],n-=(v=(e>=0?p:-p)*(s+g*(l-o)/2+g*g*(l-2*s+o)/2)-e)*m}while(Math.abs(v)>1e-12&&--y>0);break}}while(--a>=0);var x=L[a][0],b=L[a+1][0],_=L[Math.min(19,a+2)][0];return[t/(b+g*(_-x)/2+g*g*(_-2*b+x)/2),n*d]},(t.geo.robinson=function(){return y(C)}).raw=C,P.invert=function(t,e){return[t/Math.cos(e),e]},(t.geo.sinusoidal=function(){return y(P)}).raw=P,I.invert=function(t,e){if(!(t*t+4*e*e>h*h+f)){var r=t,n=e,i=25;do{var a,o=Math.sin(r),s=Math.sin(r/2),l=Math.cos(r/2),c=Math.sin(n),u=Math.cos(n),p=Math.sin(2*n),d=c*c,m=u*u,g=s*s,y=1-m*l*l,x=y?v(u*l)*Math.sqrt(a=1/y):a=0,b=2*x*u*s-t,_=x*c-e,w=a*(m*g+x*u*l*d),T=a*(.5*o*p-2*x*c*s),k=.25*a*(p*s-x*c*m*o),M=a*(d*l+x*g*u),A=T*k-M*w;if(!A)break;var S=(_*T-b*M)/A,E=(b*k-_*w)/A;r-=S,n-=E}while((Math.abs(S)>f||Math.abs(E)>f)&&--i>0);return[r,n]}},(t.geo.aitoff=function(){return y(I)}).raw=I,O.invert=function(t,e){var r=t,n=e,i=25;do{var a,o=Math.cos(n),s=Math.sin(n),l=Math.sin(2*n),c=s*s,u=o*o,h=Math.sin(r),d=Math.cos(r/2),m=Math.sin(r/2),g=m*m,y=1-u*d*d,x=y?v(o*d)*Math.sqrt(a=1/y):a=0,b=.5*(2*x*o*m+r/p)-t,_=.5*(x*s+n)-e,w=.5*a*(u*g+x*o*d*c)+.5/p,T=a*(h*l/4-x*s*m),k=.125*a*(l*m-x*s*u*h),M=.5*a*(c*d+x*g*o)+.5,A=T*k-M*w,S=(_*T-b*M)/A,E=(b*k-_*w)/A;r-=S,n-=E}while((Math.abs(S)>f||Math.abs(E)>f)&&--i>0);return[r,n]},(t.geo.winkel3=function(){return y(O)}).raw=O}},{}],881:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("../../lib"),a=t("../../registry"),o=Math.PI/180,s=180/Math.PI,l={cursor:"pointer"},c={cursor:"auto"};function u(t,e){return n.behavior.zoom().translate(e.translate()).scale(e.scale())}function f(t,e,r){var n=t.id,o=t.graphDiv,s=o.layout,l=s[n],c=o._fullLayout,u=c[n],f={},h={};function p(t,e){f[n+"."+t]=i.nestedProperty(l,t).get(),a.call("_storeDirectGUIEdit",s,c._preGUI,f);var r=i.nestedProperty(u,t);r.get()!==e&&(r.set(e),i.nestedProperty(l,t).set(e),h[n+"."+t]=e)}r(p),p("projection.scale",e.scale()/t.fitScale),p("fitbounds",!1),o.emit("plotly_relayout",h)}function h(t,e){var r=u(0,e);function i(r){var n=e.invert(t.midPt);r("center.lon",n[0]),r("center.lat",n[1])}return r.on("zoomstart",(function(){n.select(this).style(l)})).on("zoom",(function(){e.scale(n.event.scale).translate(n.event.translate),t.render();var r=e.invert(t.midPt);t.graphDiv.emit("plotly_relayouting",{"geo.projection.scale":e.scale()/t.fitScale,"geo.center.lon":r[0],"geo.center.lat":r[1]})})).on("zoomend",(function(){n.select(this).style(c),f(t,e,i)})),r}function p(t,e){var r,i,a,o,s,h,p,d,m,g=u(0,e);function v(t){return e.invert(t)}function y(r){var n=e.rotate(),i=e.invert(t.midPt);r("projection.rotation.lon",-n[0]),r("center.lon",i[0]),r("center.lat",i[1])}return g.on("zoomstart",(function(){n.select(this).style(l),r=n.mouse(this),i=e.rotate(),a=e.translate(),o=i,s=v(r)})).on("zoom",(function(){if(h=n.mouse(this),function(t){var r=v(t);if(!r)return!0;var n=e(r);return Math.abs(n[0]-t[0])>2||Math.abs(n[1]-t[1])>2}(r))return g.scale(e.scale()),void g.translate(e.translate());e.scale(n.event.scale),e.translate([a[0],n.event.translate[1]]),s?v(h)&&(d=v(h),p=[o[0]+(d[0]-s[0]),i[1],i[2]],e.rotate(p),o=p):s=v(r=h),m=!0,t.render();var l=e.rotate(),c=e.invert(t.midPt);t.graphDiv.emit("plotly_relayouting",{"geo.projection.scale":e.scale()/t.fitScale,"geo.center.lon":c[0],"geo.center.lat":c[1],"geo.projection.rotation.lon":-l[0]})})).on("zoomend",(function(){n.select(this).style(c),m&&f(t,e,y)})),g}function d(t,e){var r,i={r:e.rotate(),k:e.scale()},a=u(0,e),o=function(t){var e=0,r=arguments.length,i=[];for(;++ed?(a=(f>0?90:-90)-p,i=0):(a=Math.asin(f/d)*s-p,i=Math.sqrt(d*d-f*f));var m=180-a-2*p,g=(Math.atan2(h,u)-Math.atan2(c,i))*s,v=(Math.atan2(h,u)-Math.atan2(c,-i))*s;return b(r[0],r[1],a,g)<=b(r[0],r[1],m,v)?[a,g,r[2]]:[m,v,r[2]]}function b(t,e,r,n){var i=_(r-t),a=_(n-e);return Math.sqrt(i*i+a*a)}function _(t){return(t%360+540)%360-180}function w(t,e,r){var n=r*o,i=t.slice(),a=0===e?1:0,s=2===e?1:2,l=Math.cos(n),c=Math.sin(n);return i[a]=t[a]*l-t[s]*c,i[s]=t[s]*l+t[a]*c,i}function T(t){return[Math.atan2(2*(t[0]*t[1]+t[2]*t[3]),1-2*(t[1]*t[1]+t[2]*t[2]))*s,Math.asin(Math.max(-1,Math.min(1,2*(t[0]*t[2]-t[3]*t[1]))))*s,Math.atan2(2*(t[0]*t[3]+t[1]*t[2]),1-2*(t[2]*t[2]+t[3]*t[3]))*s]}function k(t,e){for(var r=0,n=0,i=t.length;nMath.abs(s)?(c.boxEnd[1]=c.boxStart[1]+Math.abs(a)*_*(s>=0?1:-1),c.boxEnd[1]l[3]&&(c.boxEnd[1]=l[3],c.boxEnd[0]=c.boxStart[0]+(l[3]-c.boxStart[1])/Math.abs(_))):(c.boxEnd[0]=c.boxStart[0]+Math.abs(s)/_*(a>=0?1:-1),c.boxEnd[0]l[2]&&(c.boxEnd[0]=l[2],c.boxEnd[1]=c.boxStart[1]+(l[2]-c.boxStart[0])*Math.abs(_)))}}else c.boxEnabled?(a=c.boxStart[0]!==c.boxEnd[0],s=c.boxStart[1]!==c.boxEnd[1],a||s?(a&&(g(0,c.boxStart[0],c.boxEnd[0]),t.xaxis.autorange=!1),s&&(g(1,c.boxStart[1],c.boxEnd[1]),t.yaxis.autorange=!1),t.relayoutCallback()):t.glplot.setDirty(),c.boxEnabled=!1,c.boxInited=!1):c.boxInited&&(c.boxInited=!1);break;case"pan":c.boxEnabled=!1,c.boxInited=!1,e?(c.panning||(c.dragStart[0]=n,c.dragStart[1]=i),Math.abs(c.dragStart[0]-n).999&&(m="turntable"):m="turntable")}else m="turntable";r("dragmode",m),r("hovermode",n.getDfltFromLayout("hovermode"))}e.exports=function(t,e,r){var i=e._basePlotModules.length>1;o(t,e,r,{type:"gl3d",attributes:l,handleDefaults:u,fullLayout:e,font:e.font,fullData:r,getDfltFromLayout:function(e){if(!i)return n.validate(t[e],l[e])?t[e]:void 0},autotypenumbersDflt:e.autotypenumbers,paper_bgcolor:e.paper_bgcolor,calendar:e.calendar})}},{"../../../components/color":658,"../../../lib":795,"../../../registry":923,"../../get_data":882,"../../subplot_defaults":917,"./axis_defaults":890,"./layout_attributes":893}],893:[function(t,e,r){"use strict";var n=t("./axis_attributes"),i=t("../../domain").attributes,a=t("../../../lib/extend").extendFlat,o=t("../../../lib").counterRegex;function s(t,e,r){return{x:{valType:"number",dflt:t,editType:"camera"},y:{valType:"number",dflt:e,editType:"camera"},z:{valType:"number",dflt:r,editType:"camera"},editType:"camera"}}e.exports={_arrayAttrRegexps:[o("scene",".annotations",!0)],bgcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"plot"},camera:{up:a(s(0,0,1),{}),center:a(s(0,0,0),{}),eye:a(s(1.25,1.25,1.25),{}),projection:{type:{valType:"enumerated",values:["perspective","orthographic"],dflt:"perspective",editType:"calc"},editType:"calc"},editType:"camera"},domain:i({name:"scene",editType:"plot"}),aspectmode:{valType:"enumerated",values:["auto","cube","data","manual"],dflt:"auto",editType:"plot",impliedEdits:{"aspectratio.x":void 0,"aspectratio.y":void 0,"aspectratio.z":void 0}},aspectratio:{x:{valType:"number",min:0,editType:"plot",impliedEdits:{"^aspectmode":"manual"}},y:{valType:"number",min:0,editType:"plot",impliedEdits:{"^aspectmode":"manual"}},z:{valType:"number",min:0,editType:"plot",impliedEdits:{"^aspectmode":"manual"}},editType:"plot",impliedEdits:{aspectmode:"manual"}},xaxis:n,yaxis:n,zaxis:n,dragmode:{valType:"enumerated",values:["orbit","turntable","zoom","pan",!1],editType:"plot"},hovermode:{valType:"enumerated",values:["closest",!1],dflt:"closest",editType:"modebar"},uirevision:{valType:"any",editType:"none"},editType:"plot",_deprecated:{cameraposition:{valType:"info_array",editType:"camera"}}}},{"../../../lib":795,"../../../lib/extend":785,"../../domain":872,"./axis_attributes":889}],894:[function(t,e,r){"use strict";var n=t("../../../lib/str2rgbarray"),i=["xaxis","yaxis","zaxis"];function a(){this.enabled=[!0,!0,!0],this.colors=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.drawSides=[!0,!0,!0],this.lineWidth=[1,1,1]}a.prototype.merge=function(t){for(var e=0;e<3;++e){var r=t[i[e]];r.visible?(this.enabled[e]=r.showspikes,this.colors[e]=n(r.spikecolor),this.drawSides[e]=r.spikesides,this.lineWidth[e]=r.spikethickness):(this.enabled[e]=!1,this.drawSides[e]=!1)}},e.exports=function(t){var e=new a;return e.merge(t),e}},{"../../../lib/str2rgbarray":819}],895:[function(t,e,r){"use strict";e.exports=function(t){for(var e=t.axesOptions,r=t.glplot.axesPixels,s=t.fullSceneLayout,l=[[],[],[]],c=0;c<3;++c){var u=s[a[c]];if(u._length=(r[c].hi-r[c].lo)*r[c].pixelsPerDataUnit/t.dataScale[c],Math.abs(u._length)===1/0||isNaN(u._length))l[c]=[];else{u._input_range=u.range.slice(),u.range[0]=r[c].lo/t.dataScale[c],u.range[1]=r[c].hi/t.dataScale[c],u._m=1/(t.dataScale[c]*r[c].pixelsPerDataUnit),u.range[0]===u.range[1]&&(u.range[0]-=1,u.range[1]+=1);var f=u.tickmode;if("auto"===u.tickmode){u.tickmode="linear";var h=u.nticks||i.constrain(u._length/40,4,9);n.autoTicks(u,Math.abs(u.range[1]-u.range[0])/h)}for(var p=n.calcTicks(u,{msUTC:!0}),d=0;d/g," "));l[c]=p,u.tickmode=f}}e.ticks=l;for(c=0;c<3;++c){o[c]=.5*(t.glplot.bounds[0][c]+t.glplot.bounds[1][c]);for(d=0;d<2;++d)e.bounds[d][c]=t.glplot.bounds[d][c]}t.contourLevels=function(t){for(var e=new Array(3),r=0;r<3;++r){for(var n=t[r],i=new Array(n.length),a=0;ar.deltaY?1.1:1/1.1,a=t.glplot.getAspectratio();t.glplot.setAspectratio({x:n*a.x,y:n*a.y,z:n*a.z})}i(t)}}),!!c&&{passive:!1}),t.glplot.canvas.addEventListener("mousemove",(function(){if(!1!==t.fullSceneLayout.dragmode&&0!==t.camera.mouseListener.buttons){var e=n();t.graphDiv.emit("plotly_relayouting",e)}})),t.staticMode||t.glplot.canvas.addEventListener("webglcontextlost",(function(r){e&&e.emit&&e.emit("plotly_webglcontextlost",{event:r,layer:t.id})}),!1)),t.glplot.oncontextloss=function(){t.recoverContext()},t.glplot.onrender=function(){t.render()},!0},w.render=function(){var t,e=this,r=e.graphDiv,n=e.svgContainer,i=e.container.getBoundingClientRect();r._fullLayout._calcInverseTransform(r);var a=r._fullLayout._invScaleX,o=r._fullLayout._invScaleY,s=i.width*a,l=i.height*o;n.setAttributeNS(null,"viewBox","0 0 "+s+" "+l),n.setAttributeNS(null,"width",s),n.setAttributeNS(null,"height",l),b(e),e.glplot.axes.update(e.axesOptions);for(var c,u=Object.keys(e.traces),h=null,m=e.glplot.selection,g=0;g")):"isosurface"===t.type||"volume"===t.type?(k.valueLabel=p.hoverLabelText(e._mockAxis,e._mockAxis.d2l(m.traceCoordinate[3]),t.valuehoverformat),E.push("value: "+k.valueLabel),m.textLabel&&E.push(m.textLabel),_=E.join("
    ")):_=m.textLabel;var L={x:m.traceCoordinate[0],y:m.traceCoordinate[1],z:m.traceCoordinate[2],data:w._input,fullData:w,curveNumber:w.index,pointNumber:T};d.appendArrayPointValue(L,w,T),t._module.eventData&&(L=w._module.eventData(L,m,w,{},T));var C={points:[L]};e.fullSceneLayout.hovermode&&d.loneHover({trace:w,x:(.5+.5*x[0]/x[3])*s,y:(.5-.5*x[1]/x[3])*l,xLabel:k.xLabel,yLabel:k.yLabel,zLabel:k.zLabel,text:_,name:h.name,color:d.castHoverOption(w,T,"bgcolor")||h.color,borderColor:d.castHoverOption(w,T,"bordercolor"),fontFamily:d.castHoverOption(w,T,"font.family"),fontSize:d.castHoverOption(w,T,"font.size"),fontColor:d.castHoverOption(w,T,"font.color"),nameLength:d.castHoverOption(w,T,"namelength"),textAlign:d.castHoverOption(w,T,"align"),hovertemplate:f.castOption(w,T,"hovertemplate"),hovertemplateLabels:f.extendFlat({},L,k),eventData:[L]},{container:n,gd:r}),m.buttons&&m.distance<5?r.emit("plotly_click",C):r.emit("plotly_hover",C),c=C}else d.loneUnhover(n),r.emit("plotly_unhover",c);e.drawAnnotations(e)},w.recoverContext=function(){var t=this;t.glplot.dispose();var e=function(){t.glplot.gl.isContextLost()?requestAnimationFrame(e):t.initializeGLPlot()?t.plot.apply(t,t.plotArgs):f.error("Catastrophic and unrecoverable WebGL error. Context lost.")};requestAnimationFrame(e)};var k=["xaxis","yaxis","zaxis"];function M(t,e,r){for(var n=t.fullSceneLayout,i=0;i<3;i++){var a=k[i],o=a.charAt(0),s=n[a],l=e[o],c=e[o+"calendar"],u=e["_"+o+"length"];if(f.isArrayOrTypedArray(l))for(var h,p=0;p<(u||l.length);p++)if(f.isArrayOrTypedArray(l[p]))for(var d=0;dg[1][a])g[0][a]=-1,g[1][a]=1;else{var L=g[1][a]-g[0][a];g[0][a]-=L/32,g[1][a]+=L/32}if("reversed"===s.autorange){var C=g[0][a];g[0][a]=g[1][a],g[1][a]=C}}else{var P=s.range;g[0][a]=s.r2l(P[0]),g[1][a]=s.r2l(P[1])}g[0][a]===g[1][a]&&(g[0][a]-=1,g[1][a]+=1),v[a]=g[1][a]-g[0][a],this.glplot.setBounds(a,{min:g[0][a]*h[a],max:g[1][a]*h[a]})}var I=c.aspectmode;if("cube"===I)d=[1,1,1];else if("manual"===I){var O=c.aspectratio;d=[O.x,O.y,O.z]}else{if("auto"!==I&&"data"!==I)throw new Error("scene.js aspectRatio was not one of the enumerated types");var z=[1,1,1];for(a=0;a<3;++a){var D=y[l=(s=c[k[a]]).type];z[a]=Math.pow(D.acc,1/D.count)/h[a]}d="data"===I||Math.max.apply(null,z)/Math.min.apply(null,z)<=4?z:[1,1,1]}c.aspectratio.x=u.aspectratio.x=d[0],c.aspectratio.y=u.aspectratio.y=d[1],c.aspectratio.z=u.aspectratio.z=d[2],this.glplot.setAspectratio(c.aspectratio),this.viewInitial.aspectratio||(this.viewInitial.aspectratio={x:c.aspectratio.x,y:c.aspectratio.y,z:c.aspectratio.z}),this.viewInitial.aspectmode||(this.viewInitial.aspectmode=c.aspectmode);var R=c.domain||null,F=e._size||null;if(R&&F){var B=this.container.style;B.position="absolute",B.left=F.l+R.x[0]*F.w+"px",B.top=F.t+(1-R.y[1])*F.h+"px",B.width=F.w*(R.x[1]-R.x[0])+"px",B.height=F.h*(R.y[1]-R.y[0])+"px"}this.glplot.redraw()}},w.destroy=function(){this.glplot&&(this.camera.mouseListener.enabled=!1,this.container.removeEventListener("wheel",this.camera.wheelListener),this.camera=null,this.glplot.dispose(),this.container.parentNode.removeChild(this.container),this.glplot=null)},w.getCamera=function(){var t;return this.camera.view.recalcMatrix(this.camera.view.lastT()),{up:{x:(t=this.camera).up[0],y:t.up[1],z:t.up[2]},center:{x:t.center[0],y:t.center[1],z:t.center[2]},eye:{x:t.eye[0],y:t.eye[1],z:t.eye[2]},projection:{type:!0===t._ortho?"orthographic":"perspective"}}},w.setViewport=function(t){var e,r=t.camera;this.camera.lookAt.apply(this,[[(e=r).eye.x,e.eye.y,e.eye.z],[e.center.x,e.center.y,e.center.z],[e.up.x,e.up.y,e.up.z]]),this.glplot.setAspectratio(t.aspectratio),"orthographic"===r.projection.type!==this.camera._ortho&&(this.glplot.redraw(),this.glplot.clearRGBA(),this.glplot.dispose(),this.initializeGLPlot())},w.isCameraChanged=function(t){var e=this.getCamera(),r=f.nestedProperty(t,this.id+".camera").get();function n(t,e,r,n){var i=["up","center","eye"],a=["x","y","z"];return e[i[r]]&&t[i[r]][a[n]]===e[i[r]][a[n]]}var i=!1;if(void 0===r)i=!0;else{for(var a=0;a<3;a++)for(var o=0;o<3;o++)if(!n(e,r,a,o)){i=!0;break}(!r.projection||e.projection&&e.projection.type!==r.projection.type)&&(i=!0)}return i},w.isAspectChanged=function(t){var e=this.glplot.getAspectratio(),r=f.nestedProperty(t,this.id+".aspectratio").get();return void 0===r||r.x!==e.x||r.y!==e.y||r.z!==e.z},w.saveLayout=function(t){var e,r,n,i,a,o,s=this.fullLayout,l=this.isCameraChanged(t),c=this.isAspectChanged(t),h=l||c;if(h){var p={};if(l&&(e=this.getCamera(),n=(r=f.nestedProperty(t,this.id+".camera")).get(),p[this.id+".camera"]=n),c&&(i=this.glplot.getAspectratio(),o=(a=f.nestedProperty(t,this.id+".aspectratio")).get(),p[this.id+".aspectratio"]=o),u.call("_storeDirectGUIEdit",t,s._preGUI,p),l)r.set(e),f.nestedProperty(s,this.id+".camera").set(e);if(c)a.set(i),f.nestedProperty(s,this.id+".aspectratio").set(i),this.glplot.redraw()}return h},w.updateFx=function(t,e){var r=this.camera;if(r)if("orbit"===t)r.mode="orbit",r.keyBindingMode="rotate";else if("turntable"===t){r.up=[0,0,1],r.mode="turntable",r.keyBindingMode="rotate";var n=this.graphDiv,i=n._fullLayout,a=this.fullSceneLayout.camera,o=a.up.x,s=a.up.y,l=a.up.z;if(l/Math.sqrt(o*o+s*s+l*l)<.999){var c=this.id+".camera.up",h={x:0,y:0,z:1},p={};p[c]=h;var d=n.layout;u.call("_storeDirectGUIEdit",d,i._preGUI,p),a.up=h,f.nestedProperty(d,c).set(h)}}else r.keyBindingMode=t;this.fullSceneLayout.hovermode=e},w.toImage=function(t){t||(t="png"),this.staticMode&&this.container.appendChild(n),this.glplot.redraw();var e=this.glplot.gl,r=e.drawingBufferWidth,i=e.drawingBufferHeight;e.bindFramebuffer(e.FRAMEBUFFER,null);var a=new Uint8Array(r*i*4);e.readPixels(0,0,r,i,e.RGBA,e.UNSIGNED_BYTE,a),function(t,e,r){for(var n=0,i=r-1;n0)for(var s=255/o,l=0;l<3;++l)t[a+l]=Math.min(s*t[a+l],255)}}(a,r,i);var o=document.createElement("canvas");o.width=r,o.height=i;var s,l=o.getContext("2d"),c=l.createImageData(r,i);switch(c.data.set(a),l.putImageData(c,0,0),t){case"jpeg":s=o.toDataURL("image/jpeg");break;case"webp":s=o.toDataURL("image/webp");break;default:s=o.toDataURL("image/png")}return this.staticMode&&this.container.removeChild(n),s},w.setConvert=function(){for(var t=0;t<3;t++){var e=this.fullSceneLayout[k[t]];p.setConvert(e,this.fullLayout),e.setScale=f.noop}},w.make4thDimension=function(){var t=this.graphDiv._fullLayout;this._mockAxis={type:"linear",showexponent:"all",exponentformat:"B"},p.setConvert(this._mockAxis,t)},e.exports=_},{"../../components/fx":698,"../../lib":795,"../../lib/show_no_webgl_msg":817,"../../lib/str2rgbarray":819,"../../plots/cartesian/axes":845,"../../registry":923,"./layout/convert":891,"./layout/spikes":894,"./layout/tick_marks":895,"./project":896,"gl-plot3d":317,"has-passive-events":435,"webgl-context":621}],898:[function(t,e,r){"use strict";e.exports=function(t,e,r,n){n=n||t.length;for(var i=new Array(n),a=0;a\xa9 OpenStreetMap
    ',tiles:["https://a.tile.openstreetmap.org/{z}/{x}/{y}.png","https://b.tile.openstreetmap.org/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-osm-tiles",type:"raster",source:"plotly-osm-tiles",minzoom:0,maxzoom:22}]},"white-bg":{id:"white-bg",version:8,sources:{},layers:[{id:"white-bg",type:"background",paint:{"background-color":"#FFFFFF"},minzoom:0,maxzoom:22}]},"carto-positron":{id:"carto-positron",version:8,sources:{"plotly-carto-positron":{type:"raster",attribution:'\xa9 CARTO',tiles:["https://cartodb-basemaps-c.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-carto-positron",type:"raster",source:"plotly-carto-positron",minzoom:0,maxzoom:22}]},"carto-darkmatter":{id:"carto-darkmatter",version:8,sources:{"plotly-carto-darkmatter":{type:"raster",attribution:'\xa9 CARTO',tiles:["https://cartodb-basemaps-c.global.ssl.fastly.net/dark_all/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-carto-darkmatter",type:"raster",source:"plotly-carto-darkmatter",minzoom:0,maxzoom:22}]},"stamen-terrain":{id:"stamen-terrain",version:8,sources:{"plotly-stamen-terrain":{type:"raster",attribution:'Map tiles by Stamen Design, under CC BY 3.0 | Data by OpenStreetMap, under ODbL.',tiles:["https://stamen-tiles.a.ssl.fastly.net/terrain/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-stamen-terrain",type:"raster",source:"plotly-stamen-terrain",minzoom:0,maxzoom:22}]},"stamen-toner":{id:"stamen-toner",version:8,sources:{"plotly-stamen-toner":{type:"raster",attribution:'Map tiles by Stamen Design, under CC BY 3.0 | Data by OpenStreetMap, under ODbL.',tiles:["https://stamen-tiles.a.ssl.fastly.net/toner/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-stamen-toner",type:"raster",source:"plotly-stamen-toner",minzoom:0,maxzoom:22}]},"stamen-watercolor":{id:"stamen-watercolor",version:8,sources:{"plotly-stamen-watercolor":{type:"raster",attribution:'Map tiles by Stamen Design, under CC BY 3.0 | Data by OpenStreetMap, under CC BY SA.',tiles:["https://stamen-tiles.a.ssl.fastly.net/watercolor/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-stamen-watercolor",type:"raster",source:"plotly-stamen-watercolor",minzoom:0,maxzoom:22}]}},i=Object.keys(n);e.exports={requiredVersion:"1.10.1",styleUrlPrefix:"mapbox://styles/mapbox/",styleUrlSuffix:"v9",styleValuesMapbox:["basic","streets","outdoors","light","dark","satellite","satellite-streets"],styleValueDflt:"basic",stylesNonMapbox:n,styleValuesNonMapbox:i,traceLayerPrefix:"plotly-trace-layer-",layoutLayerPrefix:"plotly-layout-layer-",wrongVersionErrorMsg:["Your custom plotly.js bundle is not using the correct mapbox-gl version","Please install mapbox-gl@1.10.1."].join("\n"),noAccessTokenErrorMsg:["Missing Mapbox access token.","Mapbox trace type require a Mapbox access token to be registered.","For example:"," Plotly.newPlot(gd, data, layout, { mapboxAccessToken: 'my-access-token' });","More info here: https://www.mapbox.com/help/define-access-token/"].join("\n"),missingStyleErrorMsg:["No valid mapbox style found, please set `mapbox.style` to one of:",i.join(", "),"or register a Mapbox access token to use a Mapbox-served style."].join("\n"),multipleTokensErrorMsg:["Set multiple mapbox access token across different mapbox subplot,","using first token found as mapbox-gl does not allow multipleaccess tokens on the same page."].join("\n"),mapOnErrorMsg:"Mapbox error.",mapboxLogo:{path0:"m 10.5,1.24 c -5.11,0 -9.25,4.15 -9.25,9.25 0,5.1 4.15,9.25 9.25,9.25 5.1,0 9.25,-4.15 9.25,-9.25 0,-5.11 -4.14,-9.25 -9.25,-9.25 z m 4.39,11.53 c -1.93,1.93 -4.78,2.31 -6.7,2.31 -0.7,0 -1.41,-0.05 -2.1,-0.16 0,0 -1.02,-5.64 2.14,-8.81 0.83,-0.83 1.95,-1.28 3.13,-1.28 1.27,0 2.49,0.51 3.39,1.42 1.84,1.84 1.89,4.75 0.14,6.52 z",path1:"M 10.5,-0.01 C 4.7,-0.01 0,4.7 0,10.49 c 0,5.79 4.7,10.5 10.5,10.5 5.8,0 10.5,-4.7 10.5,-10.5 C 20.99,4.7 16.3,-0.01 10.5,-0.01 Z m 0,19.75 c -5.11,0 -9.25,-4.15 -9.25,-9.25 0,-5.1 4.14,-9.26 9.25,-9.26 5.11,0 9.25,4.15 9.25,9.25 0,5.13 -4.14,9.26 -9.25,9.26 z",path2:"M 14.74,6.25 C 12.9,4.41 9.98,4.35 8.23,6.1 5.07,9.27 6.09,14.91 6.09,14.91 c 0,0 5.64,1.02 8.81,-2.14 C 16.64,11 16.59,8.09 14.74,6.25 Z m -2.27,4.09 -0.91,1.87 -0.9,-1.87 -1.86,-0.91 1.86,-0.9 0.9,-1.87 0.91,1.87 1.86,0.9 z",polygon:"11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 14.33,9.43 12.47,10.34"},styleRules:{map:"overflow:hidden;position:relative;","missing-css":"display:none;",canary:"background-color:salmon;","ctrl-bottom-left":"position: absolute; pointer-events: none; z-index: 2; bottom: 0; left: 0;","ctrl-bottom-right":"position: absolute; pointer-events: none; z-index: 2; right: 0; bottom: 0;",ctrl:"clear: both; pointer-events: auto; transform: translate(0, 0);","ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner":"display: none;","ctrl-attrib.mapboxgl-compact:hover .mapboxgl-ctrl-attrib-inner":"display: block; margin-top:2px","ctrl-attrib.mapboxgl-compact:hover":"padding: 2px 24px 2px 4px; visibility: visible; margin-top: 6px;","ctrl-attrib.mapboxgl-compact::after":'content: ""; cursor: pointer; position: absolute; background-image: url(\'data:image/svg+xml;charset=utf-8,%3Csvg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"%3E %3Cpath fill="%23333333" fill-rule="evenodd" d="M4,10a6,6 0 1,0 12,0a6,6 0 1,0 -12,0 M9,7a1,1 0 1,0 2,0a1,1 0 1,0 -2,0 M9,10a1,1 0 1,1 2,0l0,3a1,1 0 1,1 -2,0"/%3E %3C/svg%3E\'); background-color: rgba(255, 255, 255, 0.5); width: 24px; height: 24px; box-sizing: border-box; border-radius: 12px;',"ctrl-attrib.mapboxgl-compact":"min-height: 20px; padding: 0; margin: 10px; position: relative; background-color: #fff; border-radius: 3px 12px 12px 3px;","ctrl-bottom-right > .mapboxgl-ctrl-attrib.mapboxgl-compact::after":"bottom: 0; right: 0","ctrl-bottom-left > .mapboxgl-ctrl-attrib.mapboxgl-compact::after":"bottom: 0; left: 0","ctrl-bottom-left .mapboxgl-ctrl":"margin: 0 0 10px 10px; float: left;","ctrl-bottom-right .mapboxgl-ctrl":"margin: 0 10px 10px 0; float: right;","ctrl-attrib":"color: rgba(0, 0, 0, 0.75); text-decoration: none; font-size: 12px","ctrl-attrib a":"color: rgba(0, 0, 0, 0.75); text-decoration: none; font-size: 12px","ctrl-attrib a:hover":"color: inherit; text-decoration: underline;","ctrl-attrib .mapbox-improve-map":"font-weight: bold; margin-left: 2px;","attrib-empty":"display: none;","ctrl-logo":'display:block; width: 21px; height: 21px; background-image: url(\'data:image/svg+xml;charset=utf-8,%3C?xml version="1.0" encoding="utf-8"?%3E %3Csvg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 21 21" style="enable-background:new 0 0 21 21;" xml:space="preserve"%3E%3Cg transform="translate(0,0.01)"%3E%3Cpath d="m 10.5,1.24 c -5.11,0 -9.25,4.15 -9.25,9.25 0,5.1 4.15,9.25 9.25,9.25 5.1,0 9.25,-4.15 9.25,-9.25 0,-5.11 -4.14,-9.25 -9.25,-9.25 z m 4.39,11.53 c -1.93,1.93 -4.78,2.31 -6.7,2.31 -0.7,0 -1.41,-0.05 -2.1,-0.16 0,0 -1.02,-5.64 2.14,-8.81 0.83,-0.83 1.95,-1.28 3.13,-1.28 1.27,0 2.49,0.51 3.39,1.42 1.84,1.84 1.89,4.75 0.14,6.52 z" style="opacity:0.9;fill:%23ffffff;enable-background:new" class="st0"/%3E%3Cpath d="M 10.5,-0.01 C 4.7,-0.01 0,4.7 0,10.49 c 0,5.79 4.7,10.5 10.5,10.5 5.8,0 10.5,-4.7 10.5,-10.5 C 20.99,4.7 16.3,-0.01 10.5,-0.01 Z m 0,19.75 c -5.11,0 -9.25,-4.15 -9.25,-9.25 0,-5.1 4.14,-9.26 9.25,-9.26 5.11,0 9.25,4.15 9.25,9.25 0,5.13 -4.14,9.26 -9.25,9.26 z" style="opacity:0.35;enable-background:new" class="st1"/%3E%3Cpath d="M 14.74,6.25 C 12.9,4.41 9.98,4.35 8.23,6.1 5.07,9.27 6.09,14.91 6.09,14.91 c 0,0 5.64,1.02 8.81,-2.14 C 16.64,11 16.59,8.09 14.74,6.25 Z m -2.27,4.09 -0.91,1.87 -0.9,-1.87 -1.86,-0.91 1.86,-0.9 0.9,-1.87 0.91,1.87 1.86,0.9 z" style="opacity:0.35;enable-background:new" class="st1"/%3E%3Cpolygon points="11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 14.33,9.43 12.47,10.34 " style="opacity:0.9;fill:%23ffffff;enable-background:new" class="st0"/%3E%3C/g%3E%3C/svg%3E\')'}}},{}],902:[function(t,e,r){"use strict";var n=t("../../lib");e.exports=function(t,e){var r=t.split(" "),i=r[0],a=r[1],o=n.isArrayOrTypedArray(e)?n.mean(e):e,s=.5+o/100,l=1.5+o/100,c=["",""],u=[0,0];switch(i){case"top":c[0]="top",u[1]=-l;break;case"bottom":c[0]="bottom",u[1]=l}switch(a){case"left":c[1]="right",u[0]=-s;break;case"right":c[1]="left",u[0]=s}return{anchor:c[0]&&c[1]?c.join("-"):c[0]?c[0]:c[1]?c[1]:"center",offset:u}}},{"../../lib":795}],903:[function(t,e,r){"use strict";var n=t("mapbox-gl/dist/mapbox-gl-unminified"),i=t("../../lib"),a=i.strTranslate,o=i.strScale,s=t("../../plots/get_data").getSubplotCalcData,l=t("../../constants/xmlns_namespaces"),c=t("@plotly/d3"),u=t("../../components/drawing"),f=t("../../lib/svg_text_utils"),h=t("./mapbox"),p=r.constants=t("./constants");function d(t){return"string"==typeof t&&(-1!==p.styleValuesMapbox.indexOf(t)||0===t.indexOf("mapbox://"))}r.name="mapbox",r.attr="subplot",r.idRoot="mapbox",r.idRegex=r.attrRegex=i.counterRegex("mapbox"),r.attributes={subplot:{valType:"subplotid",dflt:"mapbox",editType:"calc"}},r.layoutAttributes=t("./layout_attributes"),r.supplyLayoutDefaults=t("./layout_defaults"),r.plot=function(t){var e=t._fullLayout,r=t.calcdata,a=e._subplots.mapbox;if(n.version!==p.requiredVersion)throw new Error(p.wrongVersionErrorMsg);var o=function(t,e){var r=t._fullLayout;if(""===t._context.mapboxAccessToken)return"";for(var n=[],a=[],o=!1,s=!1,l=0;l1&&i.warn(p.multipleTokensErrorMsg),n[0]):(a.length&&i.log(["Listed mapbox access token(s)",a.join(","),"but did not use a Mapbox map style, ignoring token(s)."].join(" ")),"")}(t,a);n.accessToken=o;for(var l=0;l_/2){var w=v.split("|").join("
    ");x.text(w).attr("data-unformatted",w).call(f.convertToTspans,t),b=u.bBox(x.node())}x.attr("transform",a(-3,8-b.height)),y.insert("rect",".static-attribution").attr({x:-b.width-6,y:-b.height-3,width:b.width+6,height:b.height+3,fill:"rgba(255, 255, 255, 0.75)"});var T=1;b.width+6>_&&(T=_/(b.width+6));var k=[n.l+n.w*h.x[1],n.t+n.h*(1-h.y[0])];y.attr("transform",a(k[0],k[1])+o(T))}},r.updateFx=function(t){for(var e=t._fullLayout,r=e._subplots.mapbox,n=0;n0){for(var r=0;r0}function u(t){var e={},r={};switch(t.type){case"circle":n.extendFlat(r,{"circle-radius":t.circle.radius,"circle-color":t.color,"circle-opacity":t.opacity});break;case"line":n.extendFlat(r,{"line-width":t.line.width,"line-color":t.color,"line-opacity":t.opacity,"line-dasharray":t.line.dash});break;case"fill":n.extendFlat(r,{"fill-color":t.color,"fill-outline-color":t.fill.outlinecolor,"fill-opacity":t.opacity});break;case"symbol":var i=t.symbol,o=a(i.textposition,i.iconsize);n.extendFlat(e,{"icon-image":i.icon+"-15","icon-size":i.iconsize/10,"text-field":i.text,"text-size":i.textfont.size,"text-anchor":o.anchor,"text-offset":o.offset,"symbol-placement":i.placement}),n.extendFlat(r,{"icon-color":t.color,"text-color":i.textfont.color,"text-opacity":t.opacity});break;case"raster":n.extendFlat(r,{"raster-fade-duration":0,"raster-opacity":t.opacity})}return{layout:e,paint:r}}l.update=function(t){this.visible?this.needsNewImage(t)?this.updateImage(t):this.needsNewSource(t)?(this.removeLayer(),this.updateSource(t),this.updateLayer(t)):this.needsNewLayer(t)?this.updateLayer(t):this.updateStyle(t):(this.updateSource(t),this.updateLayer(t)),this.visible=c(t)},l.needsNewImage=function(t){return this.subplot.map.getSource(this.idSource)&&"image"===this.sourceType&&"image"===t.sourcetype&&(this.source!==t.source||JSON.stringify(this.coordinates)!==JSON.stringify(t.coordinates))},l.needsNewSource=function(t){return this.sourceType!==t.sourcetype||JSON.stringify(this.source)!==JSON.stringify(t.source)||this.layerType!==t.type},l.needsNewLayer=function(t){return this.layerType!==t.type||this.below!==this.subplot.belowLookup["layout-"+this.index]},l.lookupBelow=function(){return this.subplot.belowLookup["layout-"+this.index]},l.updateImage=function(t){this.subplot.map.getSource(this.idSource).updateImage({url:t.source,coordinates:t.coordinates});var e=this.findFollowingMapboxLayerId(this.lookupBelow());null!==e&&this.subplot.map.moveLayer(this.idLayer,e)},l.updateSource=function(t){var e=this.subplot.map;if(e.getSource(this.idSource)&&e.removeSource(this.idSource),this.sourceType=t.sourcetype,this.source=t.source,c(t)){var r=function(t){var e,r=t.sourcetype,n=t.source,a={type:r};"geojson"===r?e="data":"vector"===r?e="string"==typeof n?"url":"tiles":"raster"===r?(e="tiles",a.tileSize=256):"image"===r&&(e="url",a.coordinates=t.coordinates);a[e]=n,t.sourceattribution&&(a.attribution=i(t.sourceattribution));return a}(t);e.addSource(this.idSource,r)}},l.findFollowingMapboxLayerId=function(t){if("traces"===t)for(var e=this.subplot.getMapLayers(),r=0;r1)for(r=0;r-1&&v(e.originalEvent,n,[r.xaxis],[r.yaxis],r.id,t),i.indexOf("event")>-1&&c.click(n,e.originalEvent)}}},_.updateFx=function(t){var e=this,r=e.map,n=e.gd;if(!e.isStatic){var a,o=t.dragmode;a=f(o)?function(t,r){(t.range={})[e.id]=[c([r.xmin,r.ymin]),c([r.xmax,r.ymax])]}:function(t,r,n){(t.lassoPoints={})[e.id]=n.filtered.map(c)};var s=e.dragOptions;e.dragOptions=i.extendDeep(s||{},{dragmode:t.dragmode,element:e.div,gd:n,plotinfo:{id:e.id,domain:t[e.id].domain,xaxis:e.xaxis,yaxis:e.yaxis,fillRangeItems:a},xaxes:[e.xaxis],yaxes:[e.yaxis],subplot:e.id}),r.off("click",e.onClickInPanHandler),p(o)||h(o)?(r.dragPan.disable(),r.on("zoomstart",e.clearSelect),e.dragOptions.prepFn=function(t,r,n){d(t,r,n,e.dragOptions,o)},l.init(e.dragOptions)):(r.dragPan.enable(),r.off("zoomstart",e.clearSelect),e.div.onmousedown=null,e.onClickInPanHandler=e.onClickInPanFn(e.dragOptions),r.on("click",e.onClickInPanHandler))}function c(t){var r=e.map.unproject(t);return[r.lng,r.lat]}},_.updateFramework=function(t){var e=t[this.id].domain,r=t._size,n=this.div.style;n.width=r.w*(e.x[1]-e.x[0])+"px",n.height=r.h*(e.y[1]-e.y[0])+"px",n.left=r.l+e.x[0]*r.w+"px",n.top=r.t+(1-e.y[1])*r.h+"px",this.xaxis._offset=r.l+e.x[0]*r.w,this.xaxis._length=r.w*(e.x[1]-e.x[0]),this.yaxis._offset=r.t+(1-e.y[1])*r.h,this.yaxis._length=r.h*(e.y[1]-e.y[0])},_.updateLayers=function(t){var e,r=t[this.id].layers,n=this.layerList;if(r.length!==n.length){for(e=0;e=e.width-20?(a["text-anchor"]="start",a.x=5):(a["text-anchor"]="end",a.x=e._paper.attr("width")-7),r.attr(a);var o=r.select(".js-link-to-tool"),s=r.select(".js-link-spacer"),l=r.select(".js-sourcelinks");t._context.showSources&&t._context.showSources(t),t._context.showLink&&function(t,e){e.text("");var r=e.append("a").attr({"xlink:xlink:href":"#",class:"link--impt link--embedview","font-weight":"bold"}).text(t._context.linkText+" "+String.fromCharCode(187));if(t._context.sendData)r.on("click",(function(){x.sendDataToCloud(t)}));else{var n=window.location.pathname.split("/"),i=window.location.search;r.attr({"xlink:xlink:show":"new","xlink:xlink:href":"/"+n[2].split(".")[0]+"/"+n[1]+i})}}(t,o),s.text(o.text()&&l.text()?" - ":"")}},x.sendDataToCloud=function(t){var e=(window.PLOTLYENV||{}).BASE_URL||t._context.plotlyServerURL;if(e){t.emit("plotly_beforeexport");var r=n.select(t).append("div").attr("id","hiddenform").style("display","none"),i=r.append("form").attr({action:e+"/external",method:"post",target:"_blank"});return i.append("input").attr({type:"text",name:"data"}).node().value=x.graphJson(t,!1,"keepdata"),i.node().submit(),r.remove(),t.emit("plotly_afterexport"),!1}};var w=["days","shortDays","months","shortMonths","periods","dateTime","date","time","decimal","thousands","grouping","currency"],T=["year","month","dayMonth","dayMonthYear"];function k(t,e){var r=t._context.locale;r||(r="en-US");var n=!1,i={};function a(t){for(var r=!0,a=0;a1&&z.length>1){for(o.getComponentMethod("grid","sizeDefaults")(u,l),s=0;s15&&z.length>15&&0===l.shapes.length&&0===l.images.length,x.linkSubplots(h,l,f,a),x.cleanPlot(h,l,f,a);var N=!(!a._has||!a._has("gl2d")),j=!(!l._has||!l._has("gl2d")),U=!(!a._has||!a._has("cartesian"))||N,V=!(!l._has||!l._has("cartesian"))||j;U&&!V?a._bgLayer.remove():V&&!U&&(l._shouldCreateBgLayer=!0),a._zoomlayer&&!t._dragging&&p({_fullLayout:a}),function(t,e){var r,n=[];e.meta&&(r=e._meta={meta:e.meta,layout:{meta:e.meta}});for(var i=0;i0){var f=1-2*s;n=Math.round(f*n),i=Math.round(f*i)}}var h=x.layoutAttributes.width.min,p=x.layoutAttributes.height.min;n1,m=!e.height&&Math.abs(r.height-i)>1;(m||d)&&(d&&(r.width=n),m&&(r.height=i)),t._initialAutoSize||(t._initialAutoSize={width:n,height:i}),x.sanitizeMargins(r)},x.supplyLayoutModuleDefaults=function(t,e,r,n){var i,a,s,l=o.componentsRegistry,u=e._basePlotModules,f=o.subplotsRegistry.cartesian;for(i in l)(s=l[i]).includeBasePlot&&s.includeBasePlot(t,e);for(var h in u.length||u.push(f),e._has("cartesian")&&(o.getComponentMethod("grid","contentDefaults")(t,e),f.finalizeSubplots(t,e)),e._subplots)e._subplots[h].sort(c.subplotSort);for(a=0;a1&&(r.l/=m,r.r/=m)}if(f){var g=(r.t+r.b)/f;g>1&&(r.t/=g,r.b/=g)}var v=void 0!==r.xl?r.xl:r.x,y=void 0!==r.xr?r.xr:r.x,b=void 0!==r.yt?r.yt:r.y,_=void 0!==r.yb?r.yb:r.y;h[e]={l:{val:v,size:r.l+d},r:{val:y,size:r.r+d},b:{val:_,size:r.b+d},t:{val:b,size:r.t+d}},p[e]=1}else delete h[e],delete p[e];if(!n._replotting)return x.doAutoMargin(t)}},x.doAutoMargin=function(t){var e=t._fullLayout,r=e.width,n=e.height;e._size||(e._size={}),L(e);var i=e._size,s=e.margin,l=c.extendFlat({},i),u=s.l,f=s.r,p=s.t,d=s.b,m=e._pushmargin,g=e._pushmarginIds;if(!1!==e.margin.autoexpand){for(var v in m)g[v]||delete m[v];for(var y in m.base={l:{val:0,size:u},r:{val:1,size:f},t:{val:1,size:p},b:{val:0,size:d}},m){var b=m[y].l||{},_=m[y].b||{},w=b.val,T=b.size,k=_.val,M=_.size;for(var A in m){if(a(T)&&m[A].r){var S=m[A].r.val,E=m[A].r.size;if(S>w){var C=(T*S+(E-r)*w)/(S-w),P=(E*(1-w)+(T-r)*(1-S))/(S-w);C+P>u+f&&(u=C,f=P)}}if(a(M)&&m[A].t){var I=m[A].t.val,O=m[A].t.size;if(I>k){var z=(M*I+(O-n)*k)/(I-k),D=(O*(1-k)+(M-n)*(1-I))/(I-k);z+D>d+p&&(d=z,p=D)}}}}}var R=c.constrain(r-s.l-s.r,2,64),F=c.constrain(n-s.t-s.b,2,64),B=Math.max(0,r-R),N=Math.max(0,n-F);if(B){var j=(u+f)/B;j>1&&(u/=j,f/=j)}if(N){var U=(d+p)/N;U>1&&(d/=U,p/=U)}if(i.l=Math.round(u),i.r=Math.round(f),i.t=Math.round(p),i.b=Math.round(d),i.p=Math.round(s.pad),i.w=Math.round(r)-i.l-i.r,i.h=Math.round(n)-i.t-i.b,!e._replotting&&x.didMarginChange(l,i)){"_redrawFromAutoMarginCount"in e?e._redrawFromAutoMarginCount++:e._redrawFromAutoMarginCount=1;var V=3*(1+Object.keys(g).length);if(e._redrawFromAutoMarginCount0&&(t._transitioningWithDuration=!0),t._transitionData._interruptCallbacks.push((function(){n=!0})),r.redraw&&t._transitionData._interruptCallbacks.push((function(){return o.call("redraw",t)})),t._transitionData._interruptCallbacks.push((function(){t.emit("plotly_transitioninterrupted",[])}));var a=0,s=0;function l(){return a++,function(){s++,n||s!==a||function(e){if(!t._transitionData)return;(function(t){if(t)for(;t.length;)t.shift()})(t._transitionData._interruptCallbacks),Promise.resolve().then((function(){if(r.redraw)return o.call("redraw",t)})).then((function(){t._transitioning=!1,t._transitioningWithDuration=!1,t.emit("plotly_transitioned",[])})).then(e)}(i)}}r.runFn(l),setTimeout(l())}))}],a=c.syncOrAsync(i,t);return a&&a.then||(a=Promise.resolve()),a.then((function(){return t}))}x.didMarginChange=function(t,e){for(var r=0;r1)return!0}return!1},x.graphJson=function(t,e,r,n,i,a){(i&&e&&!t._fullData||i&&!e&&!t._fullLayout)&&x.supplyDefaults(t);var o=i?t._fullData:t.data,s=i?t._fullLayout:t.layout,l=(t._transitionData||{})._frames;function u(t,e){if("function"==typeof t)return e?"_function_":null;if(c.isPlainObject(t)){var n,i={};return Object.keys(t).sort().forEach((function(a){if(-1===["_","["].indexOf(a.charAt(0)))if("function"!=typeof t[a]){if("keepdata"===r){if("src"===a.substr(a.length-3))return}else if("keepstream"===r){if("string"==typeof(n=t[a+"src"])&&n.indexOf(":")>0&&!c.isPlainObject(t.stream))return}else if("keepall"!==r&&"string"==typeof(n=t[a+"src"])&&n.indexOf(":")>0)return;i[a]=u(t[a],e)}else e&&(i[a]="_function")})),i}return Array.isArray(t)?t.map((function(t){return u(t,e)})):c.isTypedArray(t)?c.simpleMap(t,c.identity):c.isJSDate(t)?c.ms2DateTimeLocal(+t):t}var f={data:(o||[]).map((function(t){var r=u(t);return e&&delete r.fit,r}))};if(!e&&(f.layout=u(s),i)){var h=s._size;f.layout.computed={margin:{b:h.b,l:h.l,r:h.r,t:h.t}}}return l&&(f.frames=u(l)),a&&(f.config=u(t._context,!0)),"object"===n?f:JSON.stringify(f)},x.modifyFrames=function(t,e){var r,n,i,a=t._transitionData._frames,o=t._transitionData._frameHash;for(r=0;r=0;a--)if(s[a].enabled){r._indexToPoints=s[a]._indexToPoints;break}n&&n.calc&&(o=n.calc(t,r))}Array.isArray(o)&&o[0]||(o=[{x:f,y:f}]),o[0].t||(o[0].t={}),o[0].trace=r,d[e]=o}}for(O(l,u,p),i=0;i1e-10?t:0}function h(t,e,r){e=e||0,r=r||0;for(var n=t.length,i=new Array(n),a=0;a0?r:1/0})),i=n.mod(r+1,e.length);return[e[r],e[i]]},findIntersectionXY:c,findXYatLength:function(t,e,r,n){var i=-e*r,a=e*e+1,o=2*(e*i-r),s=i*i+r*r-t*t,l=Math.sqrt(o*o-4*a*s),c=(-o+l)/(2*a),u=(-o-l)/(2*a);return[[c,e*c+i+n],[u,e*u+i+n]]},clampTiny:f,pathPolygon:function(t,e,r,n,i,a){return"M"+h(u(t,e,r,n),i,a).join("L")},pathPolygonAnnulus:function(t,e,r,n,i,a,o){var s,l;t=90||s>90&&l>=450?1:u<=0&&h<=0?0:Math.max(u,h);e=s<=180&&l>=180||s>180&&l>=540?-1:c>=0&&f>=0?0:Math.min(c,f);r=s<=270&&l>=270||s>270&&l>=630?-1:u>=0&&h>=0?0:Math.min(u,h);n=l>=360?1:c<=0&&f<=0?0:Math.max(c,f);return[e,r,n,i]}(p),b=x[2]-x[0],_=x[3]-x[1],w=h/f,T=Math.abs(_/b);w>T?(d=f,y=(h-(m=f*T))/n.h/2,g=[o[0],o[1]],v=[s[0]+y,s[1]-y]):(m=h,y=(f-(d=h/T))/n.w/2,g=[o[0]+y,o[1]-y],v=[s[0],s[1]]),this.xLength2=d,this.yLength2=m,this.xDomain2=g,this.yDomain2=v;var k=this.xOffset2=n.l+n.w*g[0],M=this.yOffset2=n.t+n.h*(1-v[1]),A=this.radius=d/b,S=this.innerRadius=e.hole*A,E=this.cx=k-A*x[0],L=this.cy=M+A*x[3],I=this.cxx=E-k,O=this.cyy=L-M;this.radialAxis=this.mockAxis(t,e,i,{_id:"x",side:{counterclockwise:"top",clockwise:"bottom"}[i.side],_realSide:i.side,domain:[S/n.w,A/n.w]}),this.angularAxis=this.mockAxis(t,e,a,{side:"right",domain:[0,Math.PI],autorange:!1}),this.doAutoRange(t,e),this.updateAngularAxis(t,e),this.updateRadialAxis(t,e),this.updateRadialAxisTitle(t,e),this.xaxis=this.mockCartesianAxis(t,e,{_id:"x",domain:g}),this.yaxis=this.mockCartesianAxis(t,e,{_id:"y",domain:v});var z=this.pathSubplot();this.clipPaths.forTraces.select("path").attr("d",z).attr("transform",l(I,O)),r.frontplot.attr("transform",l(k,M)).call(u.setClipUrl,this._hasClipOnAxisFalse?null:this.clipIds.forTraces,this.gd),r.bg.attr("d",z).attr("transform",l(E,L)).call(c.fill,e.bgcolor)},z.mockAxis=function(t,e,r,n){var i=o.extendFlat({},r,n);return d(i,e,t),i},z.mockCartesianAxis=function(t,e,r){var n=this,i=r._id,a=o.extendFlat({type:"linear"},r);p(a,t);var s={x:[0,2],y:[1,3]};return a.setRange=function(){var t=n.sectorBBox,r=s[i],o=n.radialAxis._rl,l=(o[1]-o[0])/(1-e.hole);a.range=[t[r[0]]*l,t[r[1]]*l]},a.isPtWithinRange="x"===i?function(t){return n.isPtInside(t)}:function(){return!0},a.setRange(),a.setScale(),a},z.doAutoRange=function(t,e){var r=this.gd,n=this.radialAxis,i=e.radialaxis;n.setScale(),m(r,n);var a=n.range;i.range=a.slice(),i._input.range=a.slice(),n._rl=[n.r2l(a[0],null,"gregorian"),n.r2l(a[1],null,"gregorian")]},z.updateRadialAxis=function(t,e){var r=this,n=r.gd,i=r.layers,a=r.radius,u=r.innerRadius,f=r.cx,p=r.cy,d=e.radialaxis,m=C(e.sector[0],360),g=r.radialAxis,v=u90&&m<=270&&(g.tickangle=180);var y=function(t){return l(g.l2p(t.x)+u,0)},x=D(d);if(r.radialTickLayout!==x&&(i["radial-axis"].selectAll(".xtick").remove(),r.radialTickLayout=x),v){g.setScale();var b=h.calcTicks(g),_=h.clipEnds(g,b),w=h.getTickSigns(g)[2];h.drawTicks(n,g,{vals:b,layer:i["radial-axis"],path:h.makeTickPath(g,0,w),transFn:y,crisp:!1}),h.drawGrid(n,g,{vals:_,layer:i["radial-grid"],path:function(t){return r.pathArc(g.r2p(t.x)+u)},transFn:o.noop,crisp:!1}),h.drawLabels(n,g,{vals:b,layer:i["radial-axis"],transFn:y,labelFns:h.makeLabelFns(g,0)})}var T=r.radialAxisAngle=r.vangles?I(R(P(d.angle),r.vangles)):d.angle,k=l(f,p),M=k+s(-T);F(i["radial-axis"],v&&(d.showticklabels||d.ticks),{transform:M}),F(i["radial-grid"],v&&d.showgrid,{transform:k}),F(i["radial-line"].select("line"),v&&d.showline,{x1:u,y1:0,x2:a,y2:0,transform:M}).attr("stroke-width",d.linewidth).call(c.stroke,d.linecolor)},z.updateRadialAxisTitle=function(t,e,r){var n=this.gd,i=this.radius,a=this.cx,o=this.cy,s=e.radialaxis,l=this.id+"title",c=void 0!==r?r:this.radialAxisAngle,f=P(c),h=Math.cos(f),p=Math.sin(f),d=0;if(s.title){var m=u.bBox(this.layers["radial-axis"].node()).height,g=s.title.font.size;d="counterclockwise"===s.side?-m-.4*g:m+.8*g}this.layers["radial-axis-title"]=x.draw(n,l,{propContainer:s,propName:this.id+".radialaxis.title",placeholder:L(n,"Click to enter radial axis title"),attributes:{x:a+i/2*h+d*p,y:o-i/2*p+d*h,"text-anchor":"middle"},transform:{rotate:-c}})},z.updateAngularAxis=function(t,e){var r=this,n=r.gd,i=r.layers,a=r.radius,u=r.innerRadius,f=r.cx,p=r.cy,d=e.angularaxis,m=r.angularAxis;r.fillViewInitialKey("angularaxis.rotation",d.rotation),m.setGeometry(),m.setScale();var g=function(t){return m.t2g(t.x)};"linear"===m.type&&"radians"===m.thetaunit&&(m.tick0=I(m.tick0),m.dtick=I(m.dtick));var v=function(t){return l(f+a*Math.cos(t),p-a*Math.sin(t))},y=h.makeLabelFns(m,0).labelStandoff,x={xFn:function(t){var e=g(t);return Math.cos(e)*y},yFn:function(t){var e=g(t),r=Math.sin(e)>0?.2:1;return-Math.sin(e)*(y+t.fontSize*r)+Math.abs(Math.cos(e))*(t.fontSize*A)},anchorFn:function(t){var e=g(t),r=Math.cos(e);return Math.abs(r)<.1?"middle":r>0?"start":"end"},heightFn:function(t,e,r){var n=g(t);return-.5*(1+Math.sin(n))*r}},b=D(d);r.angularTickLayout!==b&&(i["angular-axis"].selectAll("."+m._id+"tick").remove(),r.angularTickLayout=b);var _,w=h.calcTicks(m);if("linear"===e.gridshape?(_=w.map(g),o.angleDelta(_[0],_[1])<0&&(_=_.slice().reverse())):_=null,r.vangles=_,"category"===m.type&&(w=w.filter((function(t){return o.isAngleInsideSector(g(t),r.sectorInRad)}))),m.visible){var T="inside"===m.ticks?-1:1,k=(m.linewidth||1)/2;h.drawTicks(n,m,{vals:w,layer:i["angular-axis"],path:"M"+T*k+",0h"+T*m.ticklen,transFn:function(t){var e=g(t);return v(e)+s(-I(e))},crisp:!1}),h.drawGrid(n,m,{vals:w,layer:i["angular-grid"],path:function(t){var e=g(t),r=Math.cos(e),n=Math.sin(e);return"M"+[f+u*r,p-u*n]+"L"+[f+a*r,p-a*n]},transFn:o.noop,crisp:!1}),h.drawLabels(n,m,{vals:w,layer:i["angular-axis"],repositionOnUpdate:!0,transFn:function(t){return v(g(t))},labelFns:x})}F(i["angular-line"].select("path"),d.showline,{d:r.pathSubplot(),transform:l(f,p)}).attr("stroke-width",d.linewidth).call(c.stroke,d.linecolor)},z.updateFx=function(t,e){this.gd._context.staticPlot||(this.updateAngularDrag(t),this.updateRadialDrag(t,e,0),this.updateRadialDrag(t,e,1),this.updateMainDrag(t))},z.updateMainDrag=function(t){var e,r,s=this,c=s.gd,u=s.layers,f=t._zoomlayer,h=S.MINZOOM,p=S.OFFEDGE,d=s.radius,m=s.innerRadius,x=s.cx,T=s.cy,k=s.cxx,M=s.cyy,A=s.sectorInRad,L=s.vangles,C=s.radialAxis,P=E.clampTiny,I=E.findXYatLength,O=E.findEnclosingVertexAngles,z=S.cornerHalfWidth,D=S.cornerLen/2,R=g.makeDragger(u,"path","maindrag","crosshair");n.select(R).attr("d",s.pathSubplot()).attr("transform",l(x,T));var F,B,N,j,U,V,q,H,G,Y={element:R,gd:c,subplot:s.id,plotinfo:{id:s.id,xaxis:s.xaxis,yaxis:s.yaxis},xaxes:[s.xaxis],yaxes:[s.yaxis]};function W(t,e){return Math.sqrt(t*t+e*e)}function X(t,e){return W(t-k,e-M)}function Z(t,e){return Math.atan2(M-e,t-k)}function J(t,e){return[t*Math.cos(e),t*Math.sin(-e)]}function K(t,e){if(0===t)return s.pathSector(2*z);var r=D/t,n=e-r,i=e+r,a=Math.max(0,Math.min(t,d)),o=a-z,l=a+z;return"M"+J(o,n)+"A"+[o,o]+" 0,0,0 "+J(o,i)+"L"+J(l,i)+"A"+[l,l]+" 0,0,1 "+J(l,n)+"Z"}function Q(t,e,r){if(0===t)return s.pathSector(2*z);var n,i,a=J(t,e),o=J(t,r),l=P((a[0]+o[0])/2),c=P((a[1]+o[1])/2);if(l&&c){var u=c/l,f=-1/u,h=I(z,u,l,c);n=I(D,f,h[0][0],h[0][1]),i=I(D,f,h[1][0],h[1][1])}else{var p,d;c?(p=D,d=z):(p=z,d=D),n=[[l-p,c-d],[l+p,c-d]],i=[[l-p,c+d],[l+p,c+d]]}return"M"+n.join("L")+"L"+i.reverse().join("L")+"Z"}function $(t,e){return e=Math.max(Math.min(e,d),m),th?(t-1&&1===t&&_(e,c,[s.xaxis],[s.yaxis],s.id,Y),r.indexOf("event")>-1&&y.click(c,e,s.id)}Y.prepFn=function(t,n,a){var l=c._fullLayout.dragmode,u=R.getBoundingClientRect();c._fullLayout._calcInverseTransform(c);var h=c._fullLayout._invTransform;e=c._fullLayout._invScaleX,r=c._fullLayout._invScaleY;var p=o.apply3DTransform(h)(n-u.left,a-u.top);if(F=p[0],B=p[1],L){var m=E.findPolygonOffset(d,A[0],A[1],L);F+=k+m[0],B+=M+m[1]}switch(l){case"zoom":Y.moveFn=L?nt:et,Y.clickFn=ot,Y.doneFn=it,function(){N=null,j=null,U=s.pathSubplot(),V=!1;var t=c._fullLayout[s.id];q=i(t.bgcolor).getLuminance(),(H=g.makeZoombox(f,q,x,T,U)).attr("fill-rule","evenodd"),G=g.makeCorners(f,x,T),w(c)}();break;case"select":case"lasso":b(t,n,a,Y,l)}},R.onmousemove=function(t){y.hover(c,t,s.id),c._fullLayout._lasthover=R,c._fullLayout._hoversubplot=s.id},R.onmouseout=function(t){c._dragging||v.unhover(c,t)},v.init(Y)},z.updateRadialDrag=function(t,e,r){var i=this,c=i.gd,u=i.layers,f=i.radius,h=i.innerRadius,p=i.cx,d=i.cy,m=i.radialAxis,y=S.radialDragBoxSize,x=y/2;if(m.visible){var b,_,T,A=P(i.radialAxisAngle),E=m._rl,L=E[0],C=E[1],O=E[r],z=.75*(E[1]-E[0])/(1-e.hole)/f;r?(b=p+(f+x)*Math.cos(A),_=d-(f+x)*Math.sin(A),T="radialdrag"):(b=p+(h-x)*Math.cos(A),_=d-(h-x)*Math.sin(A),T="radialdrag-inner");var D,B,N,j=g.makeRectDragger(u,T,"crosshair",-x,-x,y,y),U={element:j,gd:c};F(n.select(j),m.visible&&h0==(r?N>L:Nn?function(t){return t<=0}:function(t){return t>=0};t.c2g=function(r){var n=t.c2l(r)-e;return(s(n)?n:0)+o},t.g2c=function(r){return t.l2c(r+e-o)},t.g2p=function(t){return t*a},t.c2p=function(e){return t.g2p(t.c2g(e))}}}(t,e);break;case"angularaxis":!function(t,e){var r=t.type;if("linear"===r){var i=t.d2c,s=t.c2d;t.d2c=function(t,e){return function(t,e){return"degrees"===e?a(t):t}(i(t),e)},t.c2d=function(t,e){return s(function(t,e){return"degrees"===e?o(t):t}(t,e))}}t.makeCalcdata=function(e,i){var a,o,s=e[i],l=e._length,c=function(r){return t.d2c(r,e.thetaunit)};if(s){if(n.isTypedArray(s)&&"linear"===r){if(l===s.length)return s;if(s.subarray)return s.subarray(0,l)}for(a=new Array(l),o=0;o0){for(var n=[],i=0;i=u&&(p.min=0,m.min=0,g.min=0,t.aaxis&&delete t.aaxis.min,t.baxis&&delete t.baxis.min,t.caxis&&delete t.caxis.min)}function d(t,e,r,n){var i=f[e._name];function o(r,n){return a.coerce(t,e,i,r,n)}o("uirevision",n.uirevision),e.type="linear";var h=o("color"),p=h!==i.color.dflt?h:r.font.color,d=e._name.charAt(0).toUpperCase(),m="Component "+d,g=o("title.text",m);e._hovertitle=g===m?g:d,a.coerceFont(o,"title.font",{family:r.font.family,size:a.bigFont(r.font.size),color:p}),o("min"),c(t,e,o,"linear"),s(t,e,o,"linear",{}),l(t,e,o,{outerTicks:!0}),o("showticklabels")&&(a.coerceFont(o,"tickfont",{family:r.font.family,size:r.font.size,color:p}),o("tickangle"),o("tickformat")),u(t,e,o,{dfltColor:h,bgColor:r.bgColor,blend:60,showLine:!0,showGrid:!0,noZeroLine:!0,attributes:i}),o("hoverformat"),o("layer")}e.exports=function(t,e,r){o(t,e,r,{type:"ternary",attributes:f,handleDefaults:p,font:e.font,paper_bgcolor:e.paper_bgcolor})}},{"../../components/color":658,"../../lib":795,"../../plot_api/plot_template":834,"../cartesian/line_grid_defaults":861,"../cartesian/tick_label_defaults":866,"../cartesian/tick_mark_defaults":867,"../cartesian/tick_value_defaults":868,"../subplot_defaults":917,"./layout_attributes":920}],922:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("tinycolor2"),a=t("../../registry"),o=t("../../lib"),s=o.strTranslate,l=o._,c=t("../../components/color"),u=t("../../components/drawing"),f=t("../cartesian/set_convert"),h=t("../../lib/extend").extendFlat,p=t("../plots"),d=t("../cartesian/axes"),m=t("../../components/dragelement"),g=t("../../components/fx"),v=t("../../components/dragelement/helpers"),y=v.freeMode,x=v.rectMode,b=t("../../components/titles"),_=t("../cartesian/select").prepSelect,w=t("../cartesian/select").selectOnClick,T=t("../cartesian/select").clearSelect,k=t("../cartesian/select").clearSelectionsCache,M=t("../cartesian/constants");function A(t,e){this.id=t.id,this.graphDiv=t.graphDiv,this.init(e),this.makeFramework(e),this.aTickLayout=null,this.bTickLayout=null,this.cTickLayout=null}e.exports=A;var S=A.prototype;S.init=function(t){this.container=t._ternarylayer,this.defs=t._defs,this.layoutId=t._uid,this.traceHash={},this.layers={}},S.plot=function(t,e){var r=e[this.id],n=e._size;this._hasClipOnAxisFalse=!1;for(var i=0;iE*b?i=(a=b)*E:a=(i=x)/E,o=v*i/x,l=y*a/b,r=e.l+e.w*m-i/2,n=e.t+e.h*(1-g)-a/2,p.x0=r,p.y0=n,p.w=i,p.h=a,p.sum=_,p.xaxis={type:"linear",range:[w+2*k-_,_-w-2*T],domain:[m-o/2,m+o/2],_id:"x"},f(p.xaxis,p.graphDiv._fullLayout),p.xaxis.setScale(),p.xaxis.isPtWithinRange=function(t){return t.a>=p.aaxis.range[0]&&t.a<=p.aaxis.range[1]&&t.b>=p.baxis.range[1]&&t.b<=p.baxis.range[0]&&t.c>=p.caxis.range[1]&&t.c<=p.caxis.range[0]},p.yaxis={type:"linear",range:[w,_-T-k],domain:[g-l/2,g+l/2],_id:"y"},f(p.yaxis,p.graphDiv._fullLayout),p.yaxis.setScale(),p.yaxis.isPtWithinRange=function(){return!0};var M=p.yaxis.domain[0],A=p.aaxis=h({},t.aaxis,{range:[w,_-T-k],side:"left",tickangle:(+t.aaxis.tickangle||0)-30,domain:[M,M+l*E],anchor:"free",position:0,_id:"y",_length:i});f(A,p.graphDiv._fullLayout),A.setScale();var S=p.baxis=h({},t.baxis,{range:[_-w-k,T],side:"bottom",domain:p.xaxis.domain,anchor:"free",position:0,_id:"x",_length:i});f(S,p.graphDiv._fullLayout),S.setScale();var L=p.caxis=h({},t.caxis,{range:[_-w-T,k],side:"right",tickangle:(+t.caxis.tickangle||0)+30,domain:[M,M+l*E],anchor:"free",position:0,_id:"y",_length:i});f(L,p.graphDiv._fullLayout),L.setScale();var C="M"+r+","+(n+a)+"h"+i+"l-"+i/2+",-"+a+"Z";p.clipDef.select("path").attr("d",C),p.layers.plotbg.select("path").attr("d",C);var P="M0,"+a+"h"+i+"l-"+i/2+",-"+a+"Z";p.clipDefRelative.select("path").attr("d",P);var I=s(r,n);p.plotContainer.selectAll(".scatterlayer,.maplayer").attr("transform",I),p.clipDefRelative.select("path").attr("transform",null);var O=s(r-S._offset,n+a);p.layers.baxis.attr("transform",O),p.layers.bgrid.attr("transform",O);var z=s(r+i/2,n)+"rotate(30)"+s(0,-A._offset);p.layers.aaxis.attr("transform",z),p.layers.agrid.attr("transform",z);var D=s(r+i/2,n)+"rotate(-30)"+s(0,-L._offset);p.layers.caxis.attr("transform",D),p.layers.cgrid.attr("transform",D),p.drawAxes(!0),p.layers.aline.select("path").attr("d",A.showline?"M"+r+","+(n+a)+"l"+i/2+",-"+a:"M0,0").call(c.stroke,A.linecolor||"#000").style("stroke-width",(A.linewidth||0)+"px"),p.layers.bline.select("path").attr("d",S.showline?"M"+r+","+(n+a)+"h"+i:"M0,0").call(c.stroke,S.linecolor||"#000").style("stroke-width",(S.linewidth||0)+"px"),p.layers.cline.select("path").attr("d",L.showline?"M"+(r+i/2)+","+n+"l"+i/2+","+a:"M0,0").call(c.stroke,L.linecolor||"#000").style("stroke-width",(L.linewidth||0)+"px"),p.graphDiv._context.staticPlot||p.initInteractions(),u.setClipUrl(p.layers.frontplot,p._hasClipOnAxisFalse?null:p.clipId,p.graphDiv)},S.drawAxes=function(t){var e=this.graphDiv,r=this.id.substr(7)+"title",n=this.layers,i=this.aaxis,a=this.baxis,o=this.caxis;if(this.drawAx(i),this.drawAx(a),this.drawAx(o),t){var s=Math.max(i.showticklabels?i.tickfont.size/2:0,(o.showticklabels?.75*o.tickfont.size:0)+("outside"===o.ticks?.87*o.ticklen:0)),c=(a.showticklabels?a.tickfont.size:0)+("outside"===a.ticks?a.ticklen:0)+3;n["a-title"]=b.draw(e,"a"+r,{propContainer:i,propName:this.id+".aaxis.title",placeholder:l(e,"Click to enter Component A title"),attributes:{x:this.x0+this.w/2,y:this.y0-i.title.font.size/3-s,"text-anchor":"middle"}}),n["b-title"]=b.draw(e,"b"+r,{propContainer:a,propName:this.id+".baxis.title",placeholder:l(e,"Click to enter Component B title"),attributes:{x:this.x0-c,y:this.y0+this.h+.83*a.title.font.size+c,"text-anchor":"middle"}}),n["c-title"]=b.draw(e,"c"+r,{propContainer:o,propName:this.id+".caxis.title",placeholder:l(e,"Click to enter Component C title"),attributes:{x:this.x0+this.w+c,y:this.y0+this.h+.83*o.title.font.size+c,"text-anchor":"middle"}})}},S.drawAx=function(t){var e,r=this.graphDiv,n=t._name,i=n.charAt(0),a=t._id,s=this.layers[n],l=i+"tickLayout",c=(e=t).ticks+String(e.ticklen)+String(e.showticklabels);this[l]!==c&&(s.selectAll("."+a+"tick").remove(),this[l]=c),t.setScale();var u=d.calcTicks(t),f=d.clipEnds(t,u),h=d.makeTransTickFn(t),p=d.getTickSigns(t)[2],m=o.deg2rad(30),g=p*(t.linewidth||1)/2,v=p*t.ticklen,y=this.w,x=this.h,b="b"===i?"M0,"+g+"l"+Math.sin(m)*v+","+Math.cos(m)*v:"M"+g+",0l"+Math.cos(m)*v+","+-Math.sin(m)*v,_={a:"M0,0l"+x+",-"+y/2,b:"M0,0l-"+y/2+",-"+x,c:"M0,0l-"+x+","+y/2}[i];d.drawTicks(r,t,{vals:"inside"===t.ticks?f:u,layer:s,path:b,transFn:h,crisp:!1}),d.drawGrid(r,t,{vals:f,layer:this.layers[i+"grid"],path:_,transFn:h,crisp:!1}),d.drawLabels(r,t,{vals:u,layer:s,transFn:h,labelFns:d.makeLabelFns(t,0,30)})};var L=M.MINZOOM/2+.87,C="m-0.87,.5h"+L+"v3h-"+(L+5.2)+"l"+(L/2+2.6)+",-"+(.87*L+4.5)+"l2.6,1.5l-"+L/2+","+.87*L+"Z",P="m0.87,.5h-"+L+"v3h"+(L+5.2)+"l-"+(L/2+2.6)+",-"+(.87*L+4.5)+"l-2.6,1.5l"+L/2+","+.87*L+"Z",I="m0,1l"+L/2+","+.87*L+"l2.6,-1.5l-"+(L/2+2.6)+",-"+(.87*L+4.5)+"l-"+(L/2+2.6)+","+(.87*L+4.5)+"l2.6,1.5l"+L/2+",-"+.87*L+"Z",O=!0;function z(t){n.select(t).selectAll(".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners").remove()}S.clearSelect=function(){k(this.dragOptions),T(this.dragOptions.gd)},S.initInteractions=function(){var t,e,r,n,f,h,p,d,v,b,T,k,A=this,S=A.layers.plotbg.select("path").node(),L=A.graphDiv,D=L._fullLayout._zoomlayer;function R(t){var e={};return e[A.id+".aaxis.min"]=t.a,e[A.id+".baxis.min"]=t.b,e[A.id+".caxis.min"]=t.c,e}function F(t,e){var r=L._fullLayout.clickmode;z(L),2===t&&(L.emit("plotly_doubleclick",null),a.call("_guiRelayout",L,R({a:0,b:0,c:0}))),r.indexOf("select")>-1&&1===t&&w(e,L,[A.xaxis],[A.yaxis],A.id,A.dragOptions),r.indexOf("event")>-1&&g.click(L,e,A.id)}function B(t,e){return 1-e/A.h}function N(t,e){return 1-(t+(A.h-e)/Math.sqrt(3))/A.w}function j(t,e){return(t-(A.h-e)/Math.sqrt(3))/A.w}function U(i,a){var o=r+i*t,s=n+a*e,l=Math.max(0,Math.min(1,B(0,n),B(0,s))),c=Math.max(0,Math.min(1,N(r,n),N(o,s))),u=Math.max(0,Math.min(1,j(r,n),j(o,s))),m=(l/2+u)*A.w,g=(1-l/2-c)*A.w,y=(m+g)/2,x=g-m,_=(1-l)*A.h,w=_-x/E;x.2?"rgba(0,0,0,0.4)":"rgba(255,255,255,0.3)").duration(200),k.transition().style("opacity",1).duration(200),b=!0),L.emit("plotly_relayouting",R(p))}function V(){z(L),p!==f&&(a.call("_guiRelayout",L,R(p)),O&&L.data&&L._context.showTips&&(o.notifier(l(L,"Double-click to zoom back out"),"long"),O=!1))}function q(t,e){var r=t/A.xaxis._m,n=e/A.yaxis._m,i=[(p={a:f.a-n,b:f.b+(r+n)/2,c:f.c-(r-n)/2}).a,p.b,p.c].sort(o.sorterAsc),a=i.indexOf(p.a),l=i.indexOf(p.b),c=i.indexOf(p.c);i[0]<0&&(i[1]+i[0]/2<0?(i[2]+=i[0]+i[1],i[0]=i[1]=0):(i[2]+=i[0]/2,i[1]+=i[0]/2,i[0]=0),p={a:i[a],b:i[l],c:i[c]},e=(f.a-p.a)*A.yaxis._m,t=(f.c-p.c-f.b+p.b)*A.xaxis._m);var h=s(A.x0+t,A.y0+e);A.plotContainer.selectAll(".scatterlayer,.maplayer").attr("transform",h);var d=s(-t,-e);A.clipDefRelative.select("path").attr("transform",d),A.aaxis.range=[p.a,A.sum-p.b-p.c],A.baxis.range=[A.sum-p.a-p.c,p.b],A.caxis.range=[A.sum-p.a-p.b,p.c],A.drawAxes(!1),A._hasClipOnAxisFalse&&A.plotContainer.select(".scatterlayer").selectAll(".trace").call(u.hideOutsideRangePoints,A),L.emit("plotly_relayouting",R(p))}function H(){a.call("_guiRelayout",L,R(p))}this.dragOptions={element:S,gd:L,plotinfo:{id:A.id,domain:L._fullLayout[A.id].domain,xaxis:A.xaxis,yaxis:A.yaxis},subplot:A.id,prepFn:function(a,l,u){A.dragOptions.xaxes=[A.xaxis],A.dragOptions.yaxes=[A.yaxis],t=L._fullLayout._invScaleX,e=L._fullLayout._invScaleY;var m=A.dragOptions.dragmode=L._fullLayout.dragmode;y(m)?A.dragOptions.minDrag=1:A.dragOptions.minDrag=void 0,"zoom"===m?(A.dragOptions.moveFn=U,A.dragOptions.clickFn=F,A.dragOptions.doneFn=V,function(t,e,a){var l=S.getBoundingClientRect();r=e-l.left,n=a-l.top,L._fullLayout._calcInverseTransform(L);var u=L._fullLayout._invTransform,m=o.apply3DTransform(u)(r,n);r=m[0],n=m[1],f={a:A.aaxis.range[0],b:A.baxis.range[1],c:A.caxis.range[1]},p=f,h=A.aaxis.range[1]-f.a,d=i(A.graphDiv._fullLayout[A.id].bgcolor).getLuminance(),v="M0,"+A.h+"L"+A.w/2+", 0L"+A.w+","+A.h+"Z",b=!1,T=D.append("path").attr("class","zoombox").attr("transform",s(A.x0,A.y0)).style({fill:d>.2?"rgba(0,0,0,0)":"rgba(255,255,255,0)","stroke-width":0}).attr("d",v),k=D.append("path").attr("class","zoombox-corners").attr("transform",s(A.x0,A.y0)).style({fill:c.background,stroke:c.defaultLine,"stroke-width":1,opacity:0}).attr("d","M0,0Z"),A.clearSelect(L)}(0,l,u)):"pan"===m?(A.dragOptions.moveFn=q,A.dragOptions.clickFn=F,A.dragOptions.doneFn=H,f={a:A.aaxis.range[0],b:A.baxis.range[1],c:A.caxis.range[1]},p=f,A.clearSelect(L)):(x(m)||y(m))&&_(a,l,u,A.dragOptions,m)}},S.onmousemove=function(t){g.hover(L,t,A.id),L._fullLayout._lasthover=S,L._fullLayout._hoversubplot=A.id},S.onmouseout=function(t){L._dragging||m.unhover(L,t)},m.init(this.dragOptions)}},{"../../components/color":658,"../../components/dragelement":677,"../../components/dragelement/helpers":676,"../../components/drawing":680,"../../components/fx":698,"../../components/titles":756,"../../lib":795,"../../lib/extend":785,"../../registry":923,"../cartesian/axes":845,"../cartesian/constants":851,"../cartesian/select":864,"../cartesian/set_convert":865,"../plots":909,"@plotly/d3":57,tinycolor2:590}],923:[function(t,e,r){"use strict";var n=t("./lib/loggers"),i=t("./lib/noop"),a=t("./lib/push_unique"),o=t("./lib/is_plain_object"),s=t("./lib/dom").addStyleRule,l=t("./lib/extend"),c=t("./plots/attributes"),u=t("./plots/layout_attributes"),f=l.extendFlat,h=l.extendDeepAll;function p(t){var e=t.name,i=t.categories,a=t.meta;if(r.modules[e])n.log("Type "+e+" already registered");else{r.subplotsRegistry[t.basePlotModule.name]||function(t){var e=t.name;if(r.subplotsRegistry[e])return void n.log("Plot type "+e+" already registered.");for(var i in v(t),r.subplotsRegistry[e]=t,r.componentsRegistry)b(i,t.name)}(t.basePlotModule);for(var o={},l=0;l-1&&(f[p[r]].title={text:""});for(r=0;r")?"":e.html(t).text()}));return e.remove(),r}(T),T=(T=T.replace(/&(?!\w+;|\#[0-9]+;| \#x[0-9A-F]+;)/g,"&")).replace(c,"'"),i.isIE()&&(T=(T=(T=T.replace(/"/gi,"'")).replace(/(\('#)([^']*)('\))/gi,'("#$2")')).replace(/(\\')/gi,'"')),T}},{"../components/color":658,"../components/drawing":680,"../constants/xmlns_namespaces":772,"../lib":795,"@plotly/d3":57}],932:[function(t,e,r){"use strict";var n=t("../../lib");e.exports=function(t,e){for(var r=0;rf+c||!n(u))}for(var p=0;pa))return e}return void 0!==r?r:t.dflt},r.coerceColor=function(t,e,r){return i(e).isValid()?e:void 0!==r?r:t.dflt},r.coerceEnumerated=function(t,e,r){return t.coerceNumber&&(e=+e),-1!==t.values.indexOf(e)?e:void 0!==r?r:t.dflt},r.getValue=function(t,e){var r;return Array.isArray(t)?e0?e+=r:u<0&&(e-=r)}return e}function I(t){var e=u,r=t.b,i=P(t);return n.inbox(r-e,i-e,_+(i-e)/(i-r)-1)}var O=t[f+"a"],z=t[h+"a"];m=Math.abs(O.r2c(O.range[1])-O.r2c(O.range[0]));var D=n.getDistanceFunction(i,p,d,(function(t){return(p(t)+d(t))/2}));if(n.getClosest(g,D,t),!1!==t.index&&g[t.index].p!==c){x||(S=function(t){return Math.min(k(t),t.p-y.bargroupwidth/2)},E=function(t){return Math.max(M(t),t.p+y.bargroupwidth/2)});var R=g[t.index],F=v.base?R.b+R.s:R.s;t[h+"0"]=t[h+"1"]=z.c2p(R[h],!0),t[h+"LabelVal"]=F;var B=y.extents[y.extents.round(R.p)];t[f+"0"]=O.c2p(x?S(R):B[0],!0),t[f+"1"]=O.c2p(x?E(R):B[1],!0);var N=void 0!==R.orig_p;return t[f+"LabelVal"]=N?R.orig_p:R.p,t.labelLabel=l(O,t[f+"LabelVal"],v[f+"hoverformat"]),t.valueLabel=l(z,t[h+"LabelVal"],v[h+"hoverformat"]),t.baseLabel=l(z,R.b,v[h+"hoverformat"]),t.spikeDistance=(function(t){var e=u,r=t.b,i=P(t);return n.inbox(r-e,i-e,w+(i-e)/(i-r)-1)}(R)+function(t){return L(k(t),M(t),w)}(R))/2,t[f+"Spike"]=O.c2p(R.p,!0),o(R,v,t),t.hovertemplate=v.hovertemplate,t}}function f(t,e){var r=e.mcc||t.marker.color,n=e.mlcc||t.marker.line.color,i=s(t,e);return a.opacity(r)?r:a.opacity(n)&&i?n:void 0}e.exports={hoverPoints:function(t,e,r,n,a){var o=u(t,e,r,n,a);if(o){var s=o.cd,l=s[0].trace,c=s[o.index];return o.color=f(l,c),i.getComponentMethod("errorbars","hoverInfo")(c,l,o),[o]}},hoverOnBars:u,getTraceColor:f}},{"../../components/color":658,"../../components/fx":698,"../../constants/numerical":771,"../../lib":795,"../../plots/cartesian/axes":845,"../../registry":923,"./helpers":939}],941:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),layoutAttributes:t("./layout_attributes"),supplyDefaults:t("./defaults").supplyDefaults,crossTraceDefaults:t("./defaults").crossTraceDefaults,supplyLayoutDefaults:t("./layout_defaults"),calc:t("./calc"),crossTraceCalc:t("./cross_trace_calc").crossTraceCalc,colorbar:t("../scatter/marker_colorbar"),arraysToCalcdata:t("./arrays_to_calcdata"),plot:t("./plot").plot,style:t("./style").style,styleOnSelect:t("./style").styleOnSelect,hoverPoints:t("./hover").hoverPoints,eventData:t("./event_data"),selectPoints:t("./select"),moduleType:"trace",name:"bar",basePlotModule:t("../../plots/cartesian"),categories:["bar-like","cartesian","svg","bar","oriented","errorBarsOK","showLegend","zoomScale"],animatable:!0,meta:{}}},{"../../plots/cartesian":858,"../scatter/marker_colorbar":1217,"./arrays_to_calcdata":932,"./attributes":933,"./calc":934,"./cross_trace_calc":936,"./defaults":937,"./event_data":938,"./hover":940,"./layout_attributes":942,"./layout_defaults":943,"./plot":944,"./select":945,"./style":947}],942:[function(t,e,r){"use strict";e.exports={barmode:{valType:"enumerated",values:["stack","group","overlay","relative"],dflt:"group",editType:"calc"},barnorm:{valType:"enumerated",values:["","fraction","percent"],dflt:"",editType:"calc"},bargap:{valType:"number",min:0,max:1,editType:"calc"},bargroupgap:{valType:"number",min:0,max:1,dflt:0,editType:"calc"}}},{}],943:[function(t,e,r){"use strict";var n=t("../../registry"),i=t("../../plots/cartesian/axes"),a=t("../../lib"),o=t("./layout_attributes");e.exports=function(t,e,r){function s(r,n){return a.coerce(t,e,o,r,n)}for(var l=!1,c=!1,u=!1,f={},h=s("barmode"),p=0;p0}function S(t){return"auto"===t?0:t}function E(t,e){var r=Math.PI/180*e,n=Math.abs(Math.sin(r)),i=Math.abs(Math.cos(r));return{x:t.width*i+t.height*n,y:t.width*n+t.height*i}}function L(t,e,r,n,i,a){var o=!!a.isHorizontal,s=!!a.constrained,l=a.angle||0,c=a.anchor||"end",u="end"===c,f="start"===c,h=((a.leftToRight||0)+1)/2,p=1-h,d=i.width,m=i.height,g=Math.abs(e-t),v=Math.abs(n-r),y=g>2*_&&v>2*_?_:0;g-=2*y,v-=2*y;var x=S(l);"auto"!==l||d<=g&&m<=v||!(d>g||m>v)||(d>v||m>g)&&d.01?H:function(t,e,r){return r&&t===e?t:Math.abs(t-e)>=2?H(t):t>e?Math.ceil(t):Math.floor(t)};B=G(B,N,D),N=G(N,B,D),j=G(j,U,!D),U=G(U,j,!D)}var Y=M(a.ensureSingle(I,"path"),P,g,v);if(Y.style("vector-effect","non-scaling-stroke").attr("d",isNaN((N-B)*(U-j))||V&&t._context.staticPlot?"M0,0Z":"M"+B+","+j+"V"+U+"H"+N+"V"+j+"Z").call(l.setClipUrl,e.layerClipId,t),!P.uniformtext.mode&&R){var W=l.makePointStyleFns(f);l.singlePointStyle(c,Y,f,W,t)}!function(t,e,r,n,i,s,c,f,p,g,v){var w,T=e.xaxis,A=e.yaxis,C=t._fullLayout;function P(e,r,n){return a.ensureSingle(e,"text").text(r).attr({class:"bartext bartext-"+w,"text-anchor":"middle","data-notex":1}).call(l.font,n).call(o.convertToTspans,t)}var I=n[0].trace,O="h"===I.orientation,z=function(t,e,r,n,i){var o,s=e[0].trace;o=s.texttemplate?function(t,e,r,n,i){var o=e[0].trace,s=a.castOption(o,r,"texttemplate");if(!s)return"";var l,c,f,h,p="waterfall"===o.type,d="funnel"===o.type;"h"===o.orientation?(l="y",c=i,f="x",h=n):(l="x",c=n,f="y",h=i);function m(t){return u(h,h.c2l(t),!0).text}var g=e[r],v={};v.label=g.p,v.labelLabel=v[l+"Label"]=(y=g.p,u(c,c.c2l(y),!0).text);var y;var x=a.castOption(o,g.i,"text");(0===x||x)&&(v.text=x);v.value=g.s,v.valueLabel=v[f+"Label"]=m(g.s);var _={};b(_,o,g.i),p&&(v.delta=+g.rawS||g.s,v.deltaLabel=m(v.delta),v.final=g.v,v.finalLabel=m(v.final),v.initial=v.final-v.delta,v.initialLabel=m(v.initial));d&&(v.value=g.s,v.valueLabel=m(v.value),v.percentInitial=g.begR,v.percentInitialLabel=a.formatPercent(g.begR),v.percentPrevious=g.difR,v.percentPreviousLabel=a.formatPercent(g.difR),v.percentTotal=g.sumR,v.percenTotalLabel=a.formatPercent(g.sumR));var w=a.castOption(o,g.i,"customdata");w&&(v.customdata=w);return a.texttemplateString(s,v,t._d3locale,_,v,o._meta||{})}(t,e,r,n,i):s.textinfo?function(t,e,r,n){var i=t[0].trace,o="h"===i.orientation,s="waterfall"===i.type,l="funnel"===i.type;function c(t){return u(o?r:n,+t,!0).text}var f,h=i.textinfo,p=t[e],d=h.split("+"),m=[],g=function(t){return-1!==d.indexOf(t)};g("label")&&m.push((v=t[e].p,u(o?n:r,v,!0).text));var v;g("text")&&(0===(f=a.castOption(i,p.i,"text"))||f)&&m.push(f);if(s){var y=+p.rawS||p.s,x=p.v,b=x-y;g("initial")&&m.push(c(b)),g("delta")&&m.push(c(y)),g("final")&&m.push(c(x))}if(l){g("value")&&m.push(c(p.s));var _=0;g("percent initial")&&_++,g("percent previous")&&_++,g("percent total")&&_++;var w=_>1;g("percent initial")&&(f=a.formatPercent(p.begR),w&&(f+=" of initial"),m.push(f)),g("percent previous")&&(f=a.formatPercent(p.difR),w&&(f+=" of previous"),m.push(f)),g("percent total")&&(f=a.formatPercent(p.sumR),w&&(f+=" of total"),m.push(f))}return m.join("
    ")}(e,r,n,i):m.getValue(s.text,r);return m.coerceString(y,o)}(C,n,i,T,A);w=function(t,e){var r=m.getValue(t.textposition,e);return m.coerceEnumerated(x,r)}(I,i);var D="stack"===g.mode||"relative"===g.mode,R=n[i],F=!D||R._outmost;if(!z||"none"===w||(R.isBlank||s===c||f===p)&&("auto"===w||"inside"===w))return void r.select("text").remove();var B=C.font,N=d.getBarColor(n[i],I),j=d.getInsideTextFont(I,i,B,N),U=d.getOutsideTextFont(I,i,B),V=r.datum();O?"log"===T.type&&V.s0<=0&&(s=T.range[0]=G*(Z/Y):Z>=Y*(X/G);G>0&&Y>0&&(J||K||Q)?w="inside":(w="outside",q.remove(),q=null)}else w="inside";if(!q){W=a.ensureUniformFontSize(t,"outside"===w?U:j);var $=(q=P(r,z,W)).attr("transform");if(q.attr("transform",""),H=l.bBox(q.node()),G=H.width,Y=H.height,q.attr("transform",$),G<=0||Y<=0)return void q.remove()}var tt,et,rt=I.textangle;"outside"===w?(et="both"===I.constraintext||"outside"===I.constraintext,tt=function(t,e,r,n,i,a){var o,s=!!a.isHorizontal,l=!!a.constrained,c=a.angle||0,u=i.width,f=i.height,h=Math.abs(e-t),p=Math.abs(n-r);o=s?p>2*_?_:0:h>2*_?_:0;var d=1;l&&(d=s?Math.min(1,p/f):Math.min(1,h/u));var m=S(c),g=E(i,m),v=(s?g.x:g.y)/2,y=(i.left+i.right)/2,x=(i.top+i.bottom)/2,b=(t+e)/2,w=(r+n)/2,T=0,M=0,A=s?k(e,t):k(r,n);s?(b=e-A*o,T=A*v):(w=n+A*o,M=-A*v);return{textX:y,textY:x,targetX:b,targetY:w,anchorX:T,anchorY:M,scale:d,rotate:m}}(s,c,f,p,H,{isHorizontal:O,constrained:et,angle:rt})):(et="both"===I.constraintext||"inside"===I.constraintext,tt=L(s,c,f,p,H,{isHorizontal:O,constrained:et,angle:rt,anchor:I.insidetextanchor}));tt.fontSize=W.size,h(I.type,tt,C),R.transform=tt,M(q,C,g,v).attr("transform",a.getTextTransform(tt))}(t,e,I,r,p,B,N,j,U,g,v),e.layerClipId&&l.hideOutsideRangePoint(c,I.select("text"),w,C,f.xcalendar,f.ycalendar)}));var j=!1===f.cliponaxis;l.setClipUrl(c,j?null:e.layerClipId,t)}));c.getComponentMethod("errorbars","plot")(t,I,e,g)},toMoveInsideBar:L}},{"../../components/color":658,"../../components/drawing":680,"../../components/fx/helpers":694,"../../lib":795,"../../lib/svg_text_utils":820,"../../plots/cartesian/axes":845,"../../registry":923,"./attributes":933,"./constants":935,"./helpers":939,"./style":947,"./uniform_text":949,"@plotly/d3":57,"fast-isnumeric":240}],945:[function(t,e,r){"use strict";function n(t,e,r,n,i){var a=e.c2p(n?t.s0:t.p0,!0),o=e.c2p(n?t.s1:t.p1,!0),s=r.c2p(n?t.p0:t.s0,!0),l=r.c2p(n?t.p1:t.s1,!0);return i?[(a+o)/2,(s+l)/2]:n?[o,(s+l)/2]:[(a+o)/2,l]}e.exports=function(t,e){var r,i=t.cd,a=t.xaxis,o=t.yaxis,s=i[0].trace,l="funnel"===s.type,c="h"===s.orientation,u=[];if(!1===e)for(r=0;r1||0===i.bargap&&0===i.bargroupgap&&!t[0].trace.marker.line.width)&&n.select(this).attr("shape-rendering","crispEdges")})),e.selectAll("g.points").each((function(e){d(n.select(this),e[0].trace,t)})),s.getComponentMethod("errorbars","style")(e)},styleTextPoints:m,styleOnSelect:function(t,e,r){var i=e[0].trace;i.selectedpoints?function(t,e,r){a.selectedPointStyle(t.selectAll("path"),e),function(t,e,r){t.each((function(t){var i,s=n.select(this);if(t.selected){i=o.ensureUniformFontSize(r,g(s,t,e,r));var l=e.selected.textfont&&e.selected.textfont.color;l&&(i.color=l),a.font(s,i)}else a.selectedTextStyle(s,e)}))}(t.selectAll("text"),e,r)}(r,i,t):(d(r,i,t),s.getComponentMethod("errorbars","style")(r))},getInsideTextFont:y,getOutsideTextFont:x,getBarColor:_,resizeText:l}},{"../../components/color":658,"../../components/drawing":680,"../../lib":795,"../../registry":923,"./attributes":933,"./helpers":939,"./uniform_text":949,"@plotly/d3":57}],948:[function(t,e,r){"use strict";var n=t("../../components/color"),i=t("../../components/colorscale/helpers").hasColorscale,a=t("../../components/colorscale/defaults"),o=t("../../lib").coercePattern;e.exports=function(t,e,r,s,l){r("marker.color",s),i(t,"marker")&&a(t,e,l,r,{prefix:"marker.",cLetter:"c"}),r("marker.line.color",n.defaultLine),i(t,"marker.line")&&a(t,e,l,r,{prefix:"marker.line.",cLetter:"c"}),r("marker.line.width"),r("marker.opacity"),o(r,"marker.pattern"),r("selected.marker.color"),r("unselected.marker.color")}},{"../../components/color":658,"../../components/colorscale/defaults":668,"../../components/colorscale/helpers":669,"../../lib":795}],949:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("../../lib");function a(t){return"_"+t+"Text_minsize"}e.exports={recordMinTextSize:function(t,e,r){if(r.uniformtext.mode){var n=a(t),i=r.uniformtext.minsize,o=e.scale*e.fontSize;e.hide=oh.range[1]&&(x+=Math.PI);if(n.getClosest(c,(function(t){return m(y,x,[t.rp0,t.rp1],[t.thetag0,t.thetag1],d)?g+Math.min(1,Math.abs(t.thetag1-t.thetag0)/v)-1+(t.rp1-y)/(t.rp1-t.rp0)-1:1/0}),t),!1!==t.index){var b=c[t.index];t.x0=t.x1=b.ct[0],t.y0=t.y1=b.ct[1];var _=i.extendFlat({},b,{r:b.s,theta:b.p});return o(b,u,t),s(_,u,f,t),t.hovertemplate=u.hovertemplate,t.color=a(u,b),t.xLabelVal=t.yLabelVal=void 0,b.s<0&&(t.idealAlign="left"),[t]}}},{"../../components/fx":698,"../../lib":795,"../../plots/polar/helpers":911,"../bar/hover":940,"../scatterpolar/hover":1277}],954:[function(t,e,r){"use strict";e.exports={moduleType:"trace",name:"barpolar",basePlotModule:t("../../plots/polar"),categories:["polar","bar","showLegend"],attributes:t("./attributes"),layoutAttributes:t("./layout_attributes"),supplyDefaults:t("./defaults"),supplyLayoutDefaults:t("./layout_defaults"),calc:t("./calc").calc,crossTraceCalc:t("./calc").crossTraceCalc,plot:t("./plot"),colorbar:t("../scatter/marker_colorbar"),formatLabels:t("../scatterpolar/format_labels"),style:t("../bar/style").style,styleOnSelect:t("../bar/style").styleOnSelect,hoverPoints:t("./hover"),selectPoints:t("../bar/select"),meta:{}}},{"../../plots/polar":912,"../bar/select":945,"../bar/style":947,"../scatter/marker_colorbar":1217,"../scatterpolar/format_labels":1276,"./attributes":950,"./calc":951,"./defaults":952,"./hover":953,"./layout_attributes":955,"./layout_defaults":956,"./plot":957}],955:[function(t,e,r){"use strict";e.exports={barmode:{valType:"enumerated",values:["stack","overlay"],dflt:"stack",editType:"calc"},bargap:{valType:"number",dflt:.1,min:0,max:1,editType:"calc"}}},{}],956:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./layout_attributes");e.exports=function(t,e,r){var a,o={};function s(r,o){return n.coerce(t[a]||{},e[a],i,r,o)}for(var l=0;l0?(c=o,u=l):(c=l,u=o);var f=[s.findEnclosingVertexAngles(c,t.vangles)[0],(c+u)/2,s.findEnclosingVertexAngles(u,t.vangles)[1]];return s.pathPolygonAnnulus(n,i,c,u,f,e,r)};return function(t,n,i,o){return a.pathAnnulus(t,n,i,o,e,r)}}(e),p=e.layers.frontplot.select("g.barlayer");a.makeTraceGroups(p,r,"trace bars").each((function(){var r=n.select(this),s=a.ensureSingle(r,"g","points").selectAll("g.point").data(a.identity);s.enter().append("g").style("vector-effect","non-scaling-stroke").style("stroke-miterlimit",2).classed("point",!0),s.exit().remove(),s.each((function(t){var e,r=n.select(this),o=t.rp0=u.c2p(t.s0),s=t.rp1=u.c2p(t.s1),p=t.thetag0=f.c2g(t.p0),d=t.thetag1=f.c2g(t.p1);if(i(o)&&i(s)&&i(p)&&i(d)&&o!==s&&p!==d){var m=u.c2g(t.s1),g=(p+d)/2;t.ct=[l.c2p(m*Math.cos(g)),c.c2p(m*Math.sin(g))],e=h(o,s,p,d)}else e="M0,0Z";a.ensureSingle(r,"path").attr("d",e)})),o.setClipUrl(r,e._hasClipOnAxisFalse?e.clipIds.forTraces:null,t)}))}},{"../../components/drawing":680,"../../lib":795,"../../plots/polar/helpers":911,"@plotly/d3":57,"fast-isnumeric":240}],958:[function(t,e,r){"use strict";var n=t("../scatter/attributes"),i=t("../bar/attributes"),a=t("../../components/color/attributes"),o=t("../../plots/hoverformat_attributes"),s=t("../../plots/template_attributes").hovertemplateAttrs,l=t("../../lib/extend").extendFlat,c=n.marker,u=c.line;e.exports={y:{valType:"data_array",editType:"calc+clearAxisTypes"},x:{valType:"data_array",editType:"calc+clearAxisTypes"},x0:{valType:"any",editType:"calc+clearAxisTypes"},y0:{valType:"any",editType:"calc+clearAxisTypes"},dx:{valType:"number",editType:"calc"},dy:{valType:"number",editType:"calc"},xperiod:n.xperiod,yperiod:n.yperiod,xperiod0:n.xperiod0,yperiod0:n.yperiod0,xperiodalignment:n.xperiodalignment,yperiodalignment:n.yperiodalignment,xhoverformat:o("x"),yhoverformat:o("y"),name:{valType:"string",editType:"calc+clearAxisTypes"},q1:{valType:"data_array",editType:"calc+clearAxisTypes"},median:{valType:"data_array",editType:"calc+clearAxisTypes"},q3:{valType:"data_array",editType:"calc+clearAxisTypes"},lowerfence:{valType:"data_array",editType:"calc"},upperfence:{valType:"data_array",editType:"calc"},notched:{valType:"boolean",editType:"calc"},notchwidth:{valType:"number",min:0,max:.5,dflt:.25,editType:"calc"},notchspan:{valType:"data_array",editType:"calc"},boxpoints:{valType:"enumerated",values:["all","outliers","suspectedoutliers",!1],editType:"calc"},jitter:{valType:"number",min:0,max:1,editType:"calc"},pointpos:{valType:"number",min:-2,max:2,editType:"calc"},boxmean:{valType:"enumerated",values:[!0,"sd",!1],editType:"calc"},mean:{valType:"data_array",editType:"calc"},sd:{valType:"data_array",editType:"calc"},orientation:{valType:"enumerated",values:["v","h"],editType:"calc+clearAxisTypes"},quartilemethod:{valType:"enumerated",values:["linear","exclusive","inclusive"],dflt:"linear",editType:"calc"},width:{valType:"number",min:0,dflt:0,editType:"calc"},marker:{outliercolor:{valType:"color",dflt:"rgba(0, 0, 0, 0)",editType:"style"},symbol:l({},c.symbol,{arrayOk:!1,editType:"plot"}),opacity:l({},c.opacity,{arrayOk:!1,dflt:1,editType:"style"}),size:l({},c.size,{arrayOk:!1,editType:"calc"}),color:l({},c.color,{arrayOk:!1,editType:"style"}),line:{color:l({},u.color,{arrayOk:!1,dflt:a.defaultLine,editType:"style"}),width:l({},u.width,{arrayOk:!1,dflt:0,editType:"style"}),outliercolor:{valType:"color",editType:"style"},outlierwidth:{valType:"number",min:0,dflt:1,editType:"style"},editType:"style"},editType:"plot"},line:{color:{valType:"color",editType:"style"},width:{valType:"number",min:0,dflt:2,editType:"style"},editType:"plot"},fillcolor:n.fillcolor,whiskerwidth:{valType:"number",min:0,max:1,dflt:.5,editType:"calc"},offsetgroup:i.offsetgroup,alignmentgroup:i.alignmentgroup,selected:{marker:n.selected.marker,editType:"style"},unselected:{marker:n.unselected.marker,editType:"style"},text:l({},n.text,{}),hovertext:l({},n.hovertext,{}),hovertemplate:s({}),hoveron:{valType:"flaglist",flags:["boxes","points"],dflt:"boxes+points",editType:"style"}}},{"../../components/color/attributes":657,"../../lib/extend":785,"../../plots/hoverformat_attributes":899,"../../plots/template_attributes":918,"../bar/attributes":933,"../scatter/attributes":1199}],959:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("../../plots/cartesian/axes"),a=t("../../plots/cartesian/align_period"),o=t("../../lib"),s=t("../../constants/numerical").BADNUM,l=o._;e.exports=function(t,e){var r,c,y,x,b,_,w,T=t._fullLayout,k=i.getFromId(t,e.xaxis||"x"),M=i.getFromId(t,e.yaxis||"y"),A=[],S="violin"===e.type?"_numViolins":"_numBoxes";"h"===e.orientation?(y=k,x="x",b=M,_="y",w=!!e.yperiodalignment):(y=M,x="y",b=k,_="x",w=!!e.xperiodalignment);var E,L,C,P,I,O,z=function(t,e,r,i){var s,l=e+"0"in t,c="d"+e in t;if(e in t||l&&c){var u=r.makeCalcdata(t,e);return[a(t,r,e,u),u]}s=l?t[e+"0"]:"name"in t&&("category"===r.type||n(t.name)&&-1!==["linear","log"].indexOf(r.type)||o.isDateTime(t.name)&&"date"===r.type)?t.name:i;for(var f="multicategory"===r.type?r.r2c_just_indices(s):r.d2c(s,0,t[e+"calendar"]),h=t._length,p=new Array(h),d=0;dE.uf};if(e._hasPreCompStats){var U=e[x],V=function(t){return y.d2c((e[t]||[])[r])},q=1/0,H=-1/0;for(r=0;r=E.q1&&E.q3>=E.med){var Y=V("lowerfence");E.lf=Y!==s&&Y<=E.q1?Y:p(E,C,P);var W=V("upperfence");E.uf=W!==s&&W>=E.q3?W:d(E,C,P);var X=V("mean");E.mean=X!==s?X:P?o.mean(C,P):(E.q1+E.q3)/2;var Z=V("sd");E.sd=X!==s&&Z>=0?Z:P?o.stdev(C,P,E.mean):E.q3-E.q1,E.lo=m(E),E.uo=g(E);var J=V("notchspan");J=J!==s&&J>0?J:v(E,P),E.ln=E.med-J,E.un=E.med+J;var K=E.lf,Q=E.uf;e.boxpoints&&C.length&&(K=Math.min(K,C[0]),Q=Math.max(Q,C[P-1])),e.notched&&(K=Math.min(K,E.ln),Q=Math.max(Q,E.un)),E.min=K,E.max=Q}else{var $;o.warn(["Invalid input - make sure that q1 <= median <= q3","q1 = "+E.q1,"median = "+E.med,"q3 = "+E.q3].join("\n")),$=E.med!==s?E.med:E.q1!==s?E.q3!==s?(E.q1+E.q3)/2:E.q1:E.q3!==s?E.q3:0,E.med=$,E.q1=E.q3=$,E.lf=E.uf=$,E.mean=E.sd=$,E.ln=E.un=$,E.min=E.max=$}q=Math.min(q,E.min),H=Math.max(H,E.max),E.pts2=L.filter(j),A.push(E)}}e._extremes[y._id]=i.findExtremes(y,[q,H],{padded:!0})}else{var tt=y.makeCalcdata(e,x),et=function(t,e){for(var r=t.length,n=new Array(r+1),i=0;i=0&&it0){var ut,ft;if((E={}).pos=E[_]=B[r],L=E.pts=nt[r].sort(f),P=(C=E[x]=L.map(h)).length,E.min=C[0],E.max=C[P-1],E.mean=o.mean(C,P),E.sd=o.stdev(C,P,E.mean),E.med=o.interp(C,.5),P%2&&(lt||ct))lt?(ut=C.slice(0,P/2),ft=C.slice(P/2+1)):ct&&(ut=C.slice(0,P/2+1),ft=C.slice(P/2)),E.q1=o.interp(ut,.5),E.q3=o.interp(ft,.5);else E.q1=o.interp(C,.25),E.q3=o.interp(C,.75);E.lf=p(E,C,P),E.uf=d(E,C,P),E.lo=m(E),E.uo=g(E);var ht=v(E,P);E.ln=E.med-ht,E.un=E.med+ht,at=Math.min(at,E.ln),ot=Math.max(ot,E.un),E.pts2=L.filter(j),A.push(E)}e._extremes[y._id]=i.findExtremes(y,e.notched?tt.concat([at,ot]):tt,{padded:!0})}return function(t,e){if(o.isArrayOrTypedArray(e.selectedpoints))for(var r=0;r0?(A[0].t={num:T[S],dPos:N,posLetter:_,valLetter:x,labels:{med:l(t,"median:"),min:l(t,"min:"),q1:l(t,"q1:"),q3:l(t,"q3:"),max:l(t,"max:"),mean:"sd"===e.boxmean?l(t,"mean \xb1 \u03c3:"):l(t,"mean:"),lf:l(t,"lower fence:"),uf:l(t,"upper fence:")}},T[S]++,A):[{t:{empty:!0}}]};var c={text:"tx",hovertext:"htx"};function u(t,e,r){for(var n in c)o.isArrayOrTypedArray(e[n])&&(Array.isArray(r)?o.isArrayOrTypedArray(e[n][r[0]])&&(t[c[n]]=e[n][r[0]][r[1]]):t[c[n]]=e[n][r])}function f(t,e){return t.v-e.v}function h(t){return t.v}function p(t,e,r){return 0===r?t.q1:Math.min(t.q1,e[Math.min(o.findBin(2.5*t.q1-1.5*t.q3,e,!0)+1,r-1)])}function d(t,e,r){return 0===r?t.q3:Math.max(t.q3,e[Math.max(o.findBin(2.5*t.q3-1.5*t.q1,e),0)])}function m(t){return 4*t.q1-3*t.q3}function g(t){return 4*t.q3-3*t.q1}function v(t,e){return 0===e?0:1.57*(t.q3-t.q1)/Math.sqrt(e)}},{"../../constants/numerical":771,"../../lib":795,"../../plots/cartesian/align_period":842,"../../plots/cartesian/axes":845,"fast-isnumeric":240}],960:[function(t,e,r){"use strict";var n=t("../../plots/cartesian/axes"),i=t("../../lib"),a=t("../../plots/cartesian/constraints").getAxisGroup,o=["v","h"];function s(t,e,r,o){var s,l,c,u=e.calcdata,f=e._fullLayout,h=o._id,p=h.charAt(0),d=[],m=0;for(s=0;s1,b=1-f[t+"gap"],_=1-f[t+"groupgap"];for(s=0;s0){var H=E.pointpos,G=E.jitter,Y=E.marker.size/2,W=0;H+G>=0&&((W=V*(H+G))>A?(q=!0,j=Y,B=W):W>R&&(j=Y,B=A)),W<=A&&(B=A);var X=0;H-G<=0&&((X=-V*(H-G))>S?(q=!0,U=Y,N=X):X>F&&(U=Y,N=S)),X<=S&&(N=S)}else B=A,N=S;var Z=new Array(c.length);for(l=0;l0?(g="v",v=x>0?Math.min(_,b):Math.min(b)):x>0?(g="h",v=Math.min(_)):v=0;if(v){e._length=v;var S=r("orientation",g);e._hasPreCompStats?"v"===S&&0===x?(r("x0",0),r("dx",1)):"h"===S&&0===y&&(r("y0",0),r("dy",1)):"v"===S&&0===x?r("x0"):"h"===S&&0===y&&r("y0"),i.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x","y"],a)}else e.visible=!1}function f(t,e,r,i){var a=i.prefix,o=n.coerce2(t,e,c,"marker.outliercolor"),s=r("marker.line.outliercolor"),l="outliers";e._hasPreCompStats?l="all":(o||s)&&(l="suspectedoutliers");var u=r(a+"points",l);u?(r("jitter","all"===u?.3:0),r("pointpos","all"===u?-1.5:0),r("marker.symbol"),r("marker.opacity"),r("marker.size"),r("marker.color",e.line.color),r("marker.line.color"),r("marker.line.width"),"suspectedoutliers"===u&&(r("marker.line.outliercolor",e.marker.color),r("marker.line.outlierwidth")),r("selected.marker.color"),r("unselected.marker.color"),r("selected.marker.size"),r("unselected.marker.size"),r("text"),r("hovertext")):delete e.marker;var f=r("hoveron");"all"!==f&&-1===f.indexOf("points")||r("hovertemplate"),n.coerceSelectionMarkerOpacity(e,r)}e.exports={supplyDefaults:function(t,e,r,i){function s(r,i){return n.coerce(t,e,c,r,i)}if(u(t,e,s,i),!1!==e.visible){o(t,e,i,s),s("xhoverformat"),s("yhoverformat");var l=e._hasPreCompStats;l&&(s("lowerfence"),s("upperfence")),s("line.color",(t.marker||{}).color||r),s("line.width"),s("fillcolor",a.addOpacity(e.line.color,.5));var h=!1;if(l){var p=s("mean"),d=s("sd");p&&p.length&&(h=!0,d&&d.length&&(h="sd"))}s("boxmean",h),s("whiskerwidth"),s("width"),s("quartilemethod");var m=!1;if(l){var g=s("notchspan");g&&g.length&&(m=!0)}else n.validate(t.notchwidth,c.notchwidth)&&(m=!0);s("notched",m)&&s("notchwidth"),f(t,e,s,{prefix:"box"})}},crossTraceDefaults:function(t,e){var r,i;function a(t){return n.coerce(i._input,i,c,t)}for(var o=0;ot.lo&&(x.so=!0)}return a}));h.enter().append("path").classed("point",!0),h.exit().remove(),h.call(a.translatePoints,o,s)}function l(t,e,r,a){var o,s,l=e.val,c=e.pos,u=!!c.rangebreaks,f=a.bPos,h=a.bPosPxOffset||0,p=r.boxmean||(r.meanline||{}).visible;Array.isArray(a.bdPos)?(o=a.bdPos[0],s=a.bdPos[1]):(o=a.bdPos,s=a.bdPos);var d=t.selectAll("path.mean").data("box"===r.type&&r.boxmean||"violin"===r.type&&r.box.visible&&r.meanline.visible?i.identity:[]);d.enter().append("path").attr("class","mean").style({fill:"none","vector-effect":"non-scaling-stroke"}),d.exit().remove(),d.each((function(t){var e=c.c2l(t.pos+f,!0),i=c.l2p(e-o)+h,a=c.l2p(e+s)+h,d=u?(i+a)/2:c.l2p(e)+h,m=l.c2p(t.mean,!0),g=l.c2p(t.mean-t.sd,!0),v=l.c2p(t.mean+t.sd,!0);"h"===r.orientation?n.select(this).attr("d","M"+m+","+i+"V"+a+("sd"===p?"m0,0L"+g+","+d+"L"+m+","+i+"L"+v+","+d+"Z":"")):n.select(this).attr("d","M"+i+","+m+"H"+a+("sd"===p?"m0,0L"+d+","+g+"L"+i+","+m+"L"+d+","+v+"Z":""))}))}e.exports={plot:function(t,e,r,a){var c=e.xaxis,u=e.yaxis;i.makeTraceGroups(a,r,"trace boxes").each((function(t){var e,r,i=n.select(this),a=t[0],f=a.t,h=a.trace;(f.wdPos=f.bdPos*h.whiskerwidth,!0!==h.visible||f.empty)?i.remove():("h"===h.orientation?(e=u,r=c):(e=c,r=u),o(i,{pos:e,val:r},h,f),s(i,{x:c,y:u},h,f),l(i,{pos:e,val:r},h,f))}))},plotBoxAndWhiskers:o,plotPoints:s,plotBoxMean:l}},{"../../components/drawing":680,"../../lib":795,"@plotly/d3":57}],968:[function(t,e,r){"use strict";e.exports=function(t,e){var r,n,i=t.cd,a=t.xaxis,o=t.yaxis,s=[];if(!1===e)for(r=0;r=10)return null;for(var i=1/0,a=-1/0,o=e.length,s=0;s0?Math.floor:Math.ceil,I=L>0?Math.ceil:Math.floor,O=L>0?Math.min:Math.max,z=L>0?Math.max:Math.min,D=P(S+C),R=I(E-C),F=[[f=A(S)]];for(a=D;a*L=0;i--)a[u-i]=t[f][i],o[u-i]=e[f][i];for(s.push({x:a,y:o,bicubic:l}),i=f,a=[],o=[];i>=0;i--)a[f-i]=t[i][0],o[f-i]=e[i][0];return s.push({x:a,y:o,bicubic:c}),s}},{}],982:[function(t,e,r){"use strict";var n=t("../../plots/cartesian/axes"),i=t("../../lib/extend").extendFlat;e.exports=function(t,e,r){var a,o,s,l,c,u,f,h,p,d,m,g,v,y,x=t["_"+e],b=t[e+"axis"],_=b._gridlines=[],w=b._minorgridlines=[],T=b._boundarylines=[],k=t["_"+r],M=t[r+"axis"];"array"===b.tickmode&&(b.tickvals=x.slice());var A=t._xctrl,S=t._yctrl,E=A[0].length,L=A.length,C=t._a.length,P=t._b.length;n.prepTicks(b),"array"===b.tickmode&&delete b.tickvals;var I=b.smoothing?3:1;function O(n){var i,a,o,s,l,c,u,f,p,d,m,g,v=[],y=[],x={};if("b"===e)for(a=t.b2j(n),o=Math.floor(Math.max(0,Math.min(P-2,a))),s=a-o,x.length=P,x.crossLength=C,x.xy=function(e){return t.evalxy([],e,a)},x.dxy=function(e,r){return t.dxydi([],e,o,r,s)},i=0;i0&&(p=t.dxydi([],i-1,o,0,s),v.push(l[0]+p[0]/3),y.push(l[1]+p[1]/3),d=t.dxydi([],i-1,o,1,s),v.push(f[0]-d[0]/3),y.push(f[1]-d[1]/3)),v.push(f[0]),y.push(f[1]),l=f;else for(i=t.a2i(n),c=Math.floor(Math.max(0,Math.min(C-2,i))),u=i-c,x.length=C,x.crossLength=P,x.xy=function(e){return t.evalxy([],i,e)},x.dxy=function(e,r){return t.dxydj([],c,e,u,r)},a=0;a0&&(m=t.dxydj([],c,a-1,u,0),v.push(l[0]+m[0]/3),y.push(l[1]+m[1]/3),g=t.dxydj([],c,a-1,u,1),v.push(f[0]-g[0]/3),y.push(f[1]-g[1]/3)),v.push(f[0]),y.push(f[1]),l=f;return x.axisLetter=e,x.axis=b,x.crossAxis=M,x.value=n,x.constvar=r,x.index=h,x.x=v,x.y=y,x.smoothing=M.smoothing,x}function z(n){var i,a,o,s,l,c=[],u=[],f={};if(f.length=x.length,f.crossLength=k.length,"b"===e)for(o=Math.max(0,Math.min(P-2,n)),l=Math.min(1,Math.max(0,n-o)),f.xy=function(e){return t.evalxy([],e,n)},f.dxy=function(e,r){return t.dxydi([],e,o,r,l)},i=0;ix.length-1||_.push(i(z(o),{color:b.gridcolor,width:b.gridwidth}));for(h=u;hx.length-1||m<0||m>x.length-1))for(g=x[s],v=x[m],a=0;ax[x.length-1]||w.push(i(O(d),{color:b.minorgridcolor,width:b.minorgridwidth}));b.startline&&T.push(i(z(0),{color:b.startlinecolor,width:b.startlinewidth})),b.endline&&T.push(i(z(x.length-1),{color:b.endlinecolor,width:b.endlinewidth}))}else{for(l=5e-15,u=(c=[Math.floor((x[x.length-1]-b.tick0)/b.dtick*(1+l)),Math.ceil((x[0]-b.tick0)/b.dtick/(1+l))].sort((function(t,e){return t-e})))[0],f=c[1],h=u;h<=f;h++)p=b.tick0+b.dtick*h,_.push(i(O(p),{color:b.gridcolor,width:b.gridwidth}));for(h=u-1;hx[x.length-1]||w.push(i(O(d),{color:b.minorgridcolor,width:b.minorgridwidth}));b.startline&&T.push(i(O(x[0]),{color:b.startlinecolor,width:b.startlinewidth})),b.endline&&T.push(i(O(x[x.length-1]),{color:b.endlinecolor,width:b.endlinewidth}))}}},{"../../lib/extend":785,"../../plots/cartesian/axes":845}],983:[function(t,e,r){"use strict";var n=t("../../plots/cartesian/axes"),i=t("../../lib/extend").extendFlat;e.exports=function(t,e){var r,a,o,s=e._labels=[],l=e._gridlines;for(r=0;re.length&&(t=t.slice(0,e.length)):t=[],i=0;i90&&(p-=180,l=-l),{angle:p,flip:l,p:t.c2p(n,e,r),offsetMultplier:c}}},{}],997:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("../../components/drawing"),a=t("./map_1d_array"),o=t("./makepath"),s=t("./orient_text"),l=t("../../lib/svg_text_utils"),c=t("../../lib"),u=c.strRotate,f=c.strTranslate,h=t("../../constants/alignment");function p(t,e,r,i,s,l){var c="const-"+s+"-lines",u=r.selectAll("."+c).data(l);u.enter().append("path").classed(c,!0).style("vector-effect","non-scaling-stroke"),u.each((function(r){var i=r,s=i.x,l=i.y,c=a([],s,t.c2p),u=a([],l,e.c2p),f="M"+o(c,u,i.smoothing);n.select(this).attr("d",f).style("stroke-width",i.width).style("stroke",i.color).style("fill","none")})),u.exit().remove()}function d(t,e,r,a,o,c,h,p){var d=c.selectAll("text."+p).data(h);d.enter().append("text").classed(p,!0);var m=0,g={};return d.each((function(o,c){var h;if("auto"===o.axis.tickangle)h=s(a,e,r,o.xy,o.dxy);else{var p=(o.axis.tickangle+180)*Math.PI/180;h=s(a,e,r,o.xy,[Math.cos(p),Math.sin(p)])}c||(g={angle:h.angle,flip:h.flip});var d=(o.endAnchor?-1:1)*h.flip,v=n.select(this).attr({"text-anchor":d>0?"start":"end","data-notex":1}).call(i.font,o.font).text(o.text).call(l.convertToTspans,t),y=i.bBox(this);v.attr("transform",f(h.p[0],h.p[1])+u(h.angle)+f(o.axis.labelpadding*d,.3*y.height)),m=Math.max(m,y.width+o.axis.labelpadding)})),d.exit().remove(),g.maxExtent=m,g}e.exports=function(t,e,r,i){var l=e.xaxis,u=e.yaxis,f=t._fullLayout._clips;c.makeTraceGroups(i,r,"trace").each((function(e){var r=n.select(this),i=e[0],h=i.trace,m=h.aaxis,g=h.baxis,y=c.ensureSingle(r,"g","minorlayer"),x=c.ensureSingle(r,"g","majorlayer"),b=c.ensureSingle(r,"g","boundarylayer"),_=c.ensureSingle(r,"g","labellayer");r.style("opacity",h.opacity),p(l,u,x,m,"a",m._gridlines),p(l,u,x,g,"b",g._gridlines),p(l,u,y,m,"a",m._minorgridlines),p(l,u,y,g,"b",g._minorgridlines),p(l,u,b,m,"a-boundary",m._boundarylines),p(l,u,b,g,"b-boundary",g._boundarylines);var w=d(t,l,u,h,i,_,m._labels,"a-label"),T=d(t,l,u,h,i,_,g._labels,"b-label");!function(t,e,r,n,i,a,o,l){var u,f,h,p,d=c.aggNums(Math.min,null,r.a),m=c.aggNums(Math.max,null,r.a),g=c.aggNums(Math.min,null,r.b),y=c.aggNums(Math.max,null,r.b);u=.5*(d+m),f=g,h=r.ab2xy(u,f,!0),p=r.dxyda_rough(u,f),void 0===o.angle&&c.extendFlat(o,s(r,i,a,h,r.dxydb_rough(u,f)));v(t,e,r,n,h,p,r.aaxis,i,a,o,"a-title"),u=d,f=.5*(g+y),h=r.ab2xy(u,f,!0),p=r.dxydb_rough(u,f),void 0===l.angle&&c.extendFlat(l,s(r,i,a,h,r.dxyda_rough(u,f)));v(t,e,r,n,h,p,r.baxis,i,a,l,"b-title")}(t,_,h,i,l,u,w,T),function(t,e,r,n,i){var s,l,u,f,h=r.select("#"+t._clipPathId);h.size()||(h=r.append("clipPath").classed("carpetclip",!0));var p=c.ensureSingle(h,"path","carpetboundary"),d=e.clipsegments,m=[];for(f=0;f90&&y<270,b=n.select(this);b.text(h.title.text).call(l.convertToTspans,t),x&&(_=(-l.lineCount(b)+g)*m*a-_),b.attr("transform",f(e.p[0],e.p[1])+u(e.angle)+f(0,_)).attr("text-anchor","middle").call(i.font,h.title.font)})),b.exit().remove()}},{"../../components/drawing":680,"../../constants/alignment":763,"../../lib":795,"../../lib/svg_text_utils":820,"./makepath":994,"./map_1d_array":995,"./orient_text":996,"@plotly/d3":57}],998:[function(t,e,r){"use strict";var n=t("./constants"),i=t("../../lib/search").findBin,a=t("./compute_control_points"),o=t("./create_spline_evaluator"),s=t("./create_i_derivative_evaluator"),l=t("./create_j_derivative_evaluator");e.exports=function(t){var e=t._a,r=t._b,c=e.length,u=r.length,f=t.aaxis,h=t.baxis,p=e[0],d=e[c-1],m=r[0],g=r[u-1],v=e[e.length-1]-e[0],y=r[r.length-1]-r[0],x=v*n.RELATIVE_CULL_TOLERANCE,b=y*n.RELATIVE_CULL_TOLERANCE;p-=x,d+=x,m-=b,g+=b,t.isVisible=function(t,e){return t>p&&tm&&ed||eg},t.setScale=function(){var e=t._x,r=t._y,n=a(t._xctrl,t._yctrl,e,r,f.smoothing,h.smoothing);t._xctrl=n[0],t._yctrl=n[1],t.evalxy=o([t._xctrl,t._yctrl],c,u,f.smoothing,h.smoothing),t.dxydi=s([t._xctrl,t._yctrl],f.smoothing,h.smoothing),t.dxydj=l([t._xctrl,t._yctrl],f.smoothing,h.smoothing)},t.i2a=function(t){var r=Math.max(0,Math.floor(t[0]),c-2),n=t[0]-r;return(1-n)*e[r]+n*e[r+1]},t.j2b=function(t){var e=Math.max(0,Math.floor(t[1]),c-2),n=t[1]-e;return(1-n)*r[e]+n*r[e+1]},t.ij2ab=function(e){return[t.i2a(e[0]),t.j2b(e[1])]},t.a2i=function(t){var r=Math.max(0,Math.min(i(t,e),c-2)),n=e[r],a=e[r+1];return Math.max(0,Math.min(c-1,r+(t-n)/(a-n)))},t.b2j=function(t){var e=Math.max(0,Math.min(i(t,r),u-2)),n=r[e],a=r[e+1];return Math.max(0,Math.min(u-1,e+(t-n)/(a-n)))},t.ab2ij=function(e){return[t.a2i(e[0]),t.b2j(e[1])]},t.i2c=function(e,r){return t.evalxy([],e,r)},t.ab2xy=function(n,i,a){if(!a&&(ne[c-1]|ir[u-1]))return[!1,!1];var o=t.a2i(n),s=t.b2j(i),l=t.evalxy([],o,s);if(a){var f,h,p,d,m=0,g=0,v=[];ne[c-1]?(f=c-2,h=1,m=(n-e[c-1])/(e[c-1]-e[c-2])):h=o-(f=Math.max(0,Math.min(c-2,Math.floor(o)))),ir[u-1]?(p=u-2,d=1,g=(i-r[u-1])/(r[u-1]-r[u-2])):d=s-(p=Math.max(0,Math.min(u-2,Math.floor(s)))),m&&(t.dxydi(v,f,p,h,d),l[0]+=v[0]*m,l[1]+=v[1]*m),g&&(t.dxydj(v,f,p,h,d),l[0]+=v[0]*g,l[1]+=v[1]*g)}return l},t.c2p=function(t,e,r){return[e.c2p(t[0]),r.c2p(t[1])]},t.p2x=function(t,e,r){return[e.p2c(t[0]),r.p2c(t[1])]},t.dadi=function(t){var r=Math.max(0,Math.min(e.length-2,t));return e[r+1]-e[r]},t.dbdj=function(t){var e=Math.max(0,Math.min(r.length-2,t));return r[e+1]-r[e]},t.dxyda=function(e,r,n,i){var a=t.dxydi(null,e,r,n,i),o=t.dadi(e,n);return[a[0]/o,a[1]/o]},t.dxydb=function(e,r,n,i){var a=t.dxydj(null,e,r,n,i),o=t.dbdj(r,i);return[a[0]/o,a[1]/o]},t.dxyda_rough=function(e,r,n){var i=v*(n||.1),a=t.ab2xy(e+i,r,!0),o=t.ab2xy(e-i,r,!0);return[.5*(a[0]-o[0])/i,.5*(a[1]-o[1])/i]},t.dxydb_rough=function(e,r,n){var i=y*(n||.1),a=t.ab2xy(e,r+i,!0),o=t.ab2xy(e,r-i,!0);return[.5*(a[0]-o[0])/i,.5*(a[1]-o[1])/i]},t.dpdx=function(t){return t._m},t.dpdy=function(t){return t._m}}},{"../../lib/search":815,"./compute_control_points":986,"./constants":987,"./create_i_derivative_evaluator":988,"./create_j_derivative_evaluator":989,"./create_spline_evaluator":990}],999:[function(t,e,r){"use strict";var n=t("../../lib");e.exports=function(t,e,r){var i,a,o,s=[],l=[],c=t[0].length,u=t.length;function f(e,r){var n,i=0,a=0;return e>0&&void 0!==(n=t[r][e-1])&&(a++,i+=n),e0&&void 0!==(n=t[r-1][e])&&(a++,i+=n),r0&&a0&&i1e-5);return n.log("Smoother converged to",k,"after",M,"iterations"),t}},{"../../lib":795}],1e3:[function(t,e,r){"use strict";var n=t("../../lib").isArray1D;e.exports=function(t,e,r){var i=r("x"),a=i&&i.length,o=r("y"),s=o&&o.length;if(!a&&!s)return!1;if(e._cheater=!i,a&&!n(i)||s&&!n(o))e._length=null;else{var l=a?i.length:1/0;s&&(l=Math.min(l,o.length)),e.a&&e.a.length&&(l=Math.min(l,e.a.length)),e.b&&e.b.length&&(l=Math.min(l,e.b.length)),e._length=l}return!0}},{"../../lib":795}],1001:[function(t,e,r){"use strict";var n=t("../../plots/template_attributes").hovertemplateAttrs,i=t("../scattergeo/attributes"),a=t("../../components/colorscale/attributes"),o=t("../../plots/attributes"),s=t("../../components/color/attributes").defaultLine,l=t("../../lib/extend").extendFlat,c=i.marker.line;e.exports=l({locations:{valType:"data_array",editType:"calc"},locationmode:i.locationmode,z:{valType:"data_array",editType:"calc"},geojson:l({},i.geojson,{}),featureidkey:i.featureidkey,text:l({},i.text,{}),hovertext:l({},i.hovertext,{}),marker:{line:{color:l({},c.color,{dflt:s}),width:l({},c.width,{dflt:1}),editType:"calc"},opacity:{valType:"number",arrayOk:!0,min:0,max:1,dflt:1,editType:"style"},editType:"calc"},selected:{marker:{opacity:i.selected.marker.opacity,editType:"plot"},editType:"plot"},unselected:{marker:{opacity:i.unselected.marker.opacity,editType:"plot"},editType:"plot"},hoverinfo:l({},o.hoverinfo,{editType:"calc",flags:["location","z","text","name"]}),hovertemplate:n(),showlegend:l({},o.showlegend,{dflt:!1})},a("",{cLetter:"z",editTypeOverride:"calc"}))},{"../../components/color/attributes":657,"../../components/colorscale/attributes":665,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/template_attributes":918,"../scattergeo/attributes":1241}],1002:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("../../constants/numerical").BADNUM,a=t("../../components/colorscale/calc"),o=t("../scatter/arrays_to_calcdata"),s=t("../scatter/calc_selection");function l(t){return t&&"string"==typeof t}e.exports=function(t,e){var r,c=e._length,u=new Array(c);r=e.geojson?function(t){return l(t)||n(t)}:l;for(var f=0;f")}(t,f,o),[t]}},{"../../lib":795,"../../plots/cartesian/axes":845,"./attributes":1001}],1006:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),colorbar:t("../heatmap/colorbar"),calc:t("./calc"),calcGeoJSON:t("./plot").calcGeoJSON,plot:t("./plot").plot,style:t("./style").style,styleOnSelect:t("./style").styleOnSelect,hoverPoints:t("./hover"),eventData:t("./event_data"),selectPoints:t("./select"),moduleType:"trace",name:"choropleth",basePlotModule:t("../../plots/geo"),categories:["geo","noOpacity","showLegend"],meta:{}}},{"../../plots/geo":877,"../heatmap/colorbar":1080,"./attributes":1001,"./calc":1002,"./defaults":1003,"./event_data":1004,"./hover":1005,"./plot":1007,"./select":1008,"./style":1009}],1007:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("../../lib"),a=t("../../lib/geo_location_utils"),o=t("../../lib/topojson_utils").getTopojsonFeatures,s=t("../../plots/cartesian/autorange").findExtremes,l=t("./style").style;e.exports={calcGeoJSON:function(t,e){for(var r=t[0].trace,n=e[r.geo],i=n._subplot,l=r.locationmode,c=r._length,u="geojson-id"===l?a.extractTraceFeature(t):o(r,i.topojson),f=[],h=[],p=0;p=0;n--){var i=r[n].id;if("string"==typeof i&&0===i.indexOf("water"))for(var a=n+1;a=0;r--)t.removeLayer(e[r][1])},s.dispose=function(){var t=this.subplot.map;this._removeLayers(),t.removeSource(this.sourceId)},e.exports=function(t,e){var r=e[0].trace,i=new o(t,r.uid),a=i.sourceId,s=n(e),l=i.below=t.belowLookup["trace-"+r.uid];return t.map.addSource(a,{type:"geojson",data:s.geojson}),i._addLayers(s,l),e[0].trace._glTrace=i,i}},{"../../plots/mapbox/constants":901,"./convert":1011}],1015:[function(t,e,r){"use strict";var n=t("../../components/colorscale/attributes"),i=t("../../plots/hoverformat_attributes"),a=t("../../plots/template_attributes").hovertemplateAttrs,o=t("../mesh3d/attributes"),s=t("../../plots/attributes"),l=t("../../lib/extend").extendFlat,c={x:{valType:"data_array",editType:"calc+clearAxisTypes"},y:{valType:"data_array",editType:"calc+clearAxisTypes"},z:{valType:"data_array",editType:"calc+clearAxisTypes"},u:{valType:"data_array",editType:"calc"},v:{valType:"data_array",editType:"calc"},w:{valType:"data_array",editType:"calc"},sizemode:{valType:"enumerated",values:["scaled","absolute"],editType:"calc",dflt:"scaled"},sizeref:{valType:"number",editType:"calc",min:0},anchor:{valType:"enumerated",editType:"calc",values:["tip","tail","cm","center"],dflt:"cm"},text:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertemplate:a({editType:"calc"},{keys:["norm"]}),uhoverformat:i("u",1),vhoverformat:i("v",1),whoverformat:i("w",1),xhoverformat:i("x"),yhoverformat:i("y"),zhoverformat:i("z"),showlegend:l({},s.showlegend,{dflt:!1})};l(c,n("",{colorAttr:"u/v/w norm",showScaleDflt:!0,editTypeOverride:"calc"}));["opacity","lightposition","lighting"].forEach((function(t){c[t]=o[t]})),c.hoverinfo=l({},s.hoverinfo,{editType:"calc",flags:["x","y","z","u","v","w","norm","text","name"],dflt:"x+y+z+norm+text+name"}),c.transforms=void 0,e.exports=c},{"../../components/colorscale/attributes":665,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/hoverformat_attributes":899,"../../plots/template_attributes":918,"../mesh3d/attributes":1140}],1016:[function(t,e,r){"use strict";var n=t("../../components/colorscale/calc");e.exports=function(t,e){for(var r=e.u,i=e.v,a=e.w,o=Math.min(e.x.length,e.y.length,e.z.length,r.length,i.length,a.length),s=-1/0,l=1/0,c=0;co.level||o.starts.length&&a===o.level)}break;case"constraint":if(n.prefixBoundary=!1,n.edgepaths.length)return;var s=n.x.length,l=n.y.length,c=-1/0,u=1/0;for(r=0;r":p>c&&(n.prefixBoundary=!0);break;case"<":(pc||n.starts.length&&h===u)&&(n.prefixBoundary=!0);break;case"][":f=Math.min(p[0],p[1]),h=Math.max(p[0],p[1]),fc&&(n.prefixBoundary=!0)}}}},{}],1023:[function(t,e,r){"use strict";var n=t("../../components/colorscale"),i=t("./make_color_map"),a=t("./end_plus");e.exports={min:"zmin",max:"zmax",calc:function(t,e,r){var o=e.contours,s=e.line,l=o.size||1,c=o.coloring,u=i(e,{isColorbar:!0});if("heatmap"===c){var f=n.extractOpts(e);r._fillgradient=f.reversescale?n.flipScale(f.colorscale):f.colorscale,r._zrange=[f.min,f.max]}else"fill"===c&&(r._fillcolor=u);r._line={color:"lines"===c?u:s.color,width:!1!==o.showlines?s.width:0,dash:s.dash},r._levels={start:o.start,end:a(o),size:l}}}},{"../../components/colorscale":670,"./end_plus":1031,"./make_color_map":1036}],1024:[function(t,e,r){"use strict";e.exports={BOTTOMSTART:[1,9,13,104,713],TOPSTART:[4,6,7,104,713],LEFTSTART:[8,12,14,208,1114],RIGHTSTART:[2,3,11,208,1114],NEWDELTA:[null,[-1,0],[0,-1],[-1,0],[1,0],null,[0,-1],[-1,0],[0,1],[0,1],null,[0,1],[1,0],[1,0],[0,-1]],CHOOSESADDLE:{104:[4,1],208:[2,8],713:[7,13],1114:[11,14]},SADDLEREMAINDER:{1:4,2:8,4:1,7:13,8:2,11:14,13:7,14:11},LABELDISTANCE:2,LABELINCREASE:10,LABELMIN:3,LABELMAX:10,LABELOPTIMIZER:{EDGECOST:1,ANGLECOST:1,NEIGHBORCOST:5,SAMELEVELFACTOR:10,SAMELEVELDISTANCE:5,MAXCOST:100,INITIALSEARCHPOINTS:10,ITERATIONS:5}}},{}],1025:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("./label_defaults"),a=t("../../components/color"),o=a.addOpacity,s=a.opacity,l=t("../../constants/filter_ops"),c=l.CONSTRAINT_REDUCTION,u=l.COMPARISON_OPS2;e.exports=function(t,e,r,a,l,f){var h,p,d,m=e.contours,g=r("contours.operation");(m._operation=c[g],function(t,e){var r;-1===u.indexOf(e.operation)?(t("contours.value",[0,1]),Array.isArray(e.value)?e.value.length>2?e.value=e.value.slice(2):0===e.length?e.value=[0,1]:e.length<2?(r=parseFloat(e.value[0]),e.value=[r,r+1]):e.value=[parseFloat(e.value[0]),parseFloat(e.value[1])]:n(e.value)&&(r=parseFloat(e.value),e.value=[r,r+1])):(t("contours.value",0),n(e.value)||(Array.isArray(e.value)?e.value=parseFloat(e.value[0]):e.value=0))}(r,m),"="===g?h=m.showlines=!0:(h=r("contours.showlines"),d=r("fillcolor",o((t.line||{}).color||l,.5))),h)&&(p=r("line.color",d&&s(d)?o(e.fillcolor,1):l),r("line.width",2),r("line.dash"));r("line.smoothing"),i(r,a,p,f)}},{"../../components/color":658,"../../constants/filter_ops":767,"./label_defaults":1035,"fast-isnumeric":240}],1026:[function(t,e,r){"use strict";var n=t("../../constants/filter_ops"),i=t("fast-isnumeric");function a(t,e){var r,a=Array.isArray(e);function o(t){return i(t)?+t:null}return-1!==n.COMPARISON_OPS2.indexOf(t)?r=o(a?e[0]:e):-1!==n.INTERVAL_OPS.indexOf(t)?r=a?[o(e[0]),o(e[1])]:[o(e),o(e)]:-1!==n.SET_OPS.indexOf(t)&&(r=a?e.map(o):[o(e)]),r}function o(t){return function(e){e=a(t,e);var r=Math.min(e[0],e[1]),n=Math.max(e[0],e[1]);return{start:r,end:n,size:n-r}}}function s(t){return function(e){return{start:e=a(t,e),end:1/0,size:1/0}}}e.exports={"[]":o("[]"),"][":o("]["),">":s(">"),"<":s("<"),"=":s("=")}},{"../../constants/filter_ops":767,"fast-isnumeric":240}],1027:[function(t,e,r){"use strict";e.exports=function(t,e,r,n){var i=n("contours.start"),a=n("contours.end"),o=!1===i||!1===a,s=r("contours.size");!(o?e.autocontour=!0:r("autocontour",!1))&&s||r("ncontours")}},{}],1028:[function(t,e,r){"use strict";var n=t("../../lib");function i(t){return n.extendFlat({},t,{edgepaths:n.extendDeep([],t.edgepaths),paths:n.extendDeep([],t.paths),starts:n.extendDeep([],t.starts)})}e.exports=function(t,e){var r,a,o,s=function(t){return t.reverse()},l=function(t){return t};switch(e){case"=":case"<":return t;case">":for(1!==t.length&&n.warn("Contour data invalid for the specified inequality operation."),a=t[0],r=0;r1e3){n.warn("Too many contours, clipping at 1000",t);break}return l}},{"../../lib":795,"./constraint_mapping":1026,"./end_plus":1031}],1031:[function(t,e,r){"use strict";e.exports=function(t){return t.end+t.size/1e6}},{}],1032:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./constants");function a(t,e,r,n){return Math.abs(t[0]-e[0])20&&e?208===t||1114===t?n=0===r[0]?1:-1:a=0===r[1]?1:-1:-1!==i.BOTTOMSTART.indexOf(t)?a=1:-1!==i.LEFTSTART.indexOf(t)?n=1:-1!==i.TOPSTART.indexOf(t)?a=-1:n=-1;return[n,a]}(f,r,e),p=[s(t,e,[-h[0],-h[1]])],d=t.z.length,m=t.z[0].length,g=e.slice(),v=h.slice();for(c=0;c<1e4;c++){if(f>20?(f=i.CHOOSESADDLE[f][(h[0]||h[1])<0?0:1],t.crossings[u]=i.SADDLEREMAINDER[f]):delete t.crossings[u],!(h=i.NEWDELTA[f])){n.log("Found bad marching index:",f,e,t.level);break}p.push(s(t,e,h)),e[0]+=h[0],e[1]+=h[1],u=e.join(","),a(p[p.length-1],p[p.length-2],o,l)&&p.pop();var y=h[0]&&(e[0]<0||e[0]>m-2)||h[1]&&(e[1]<0||e[1]>d-2);if(e[0]===g[0]&&e[1]===g[1]&&h[0]===v[0]&&h[1]===v[1]||r&&y)break;f=t.crossings[u]}1e4===c&&n.log("Infinite loop in contour?");var x,b,_,w,T,k,M,A,S,E,L,C,P,I,O,z=a(p[0],p[p.length-1],o,l),D=0,R=.2*t.smoothing,F=[],B=0;for(c=1;c=B;c--)if((x=F[c])=B&&x+F[b]A&&S--,t.edgepaths[S]=L.concat(p,E));break}V||(t.edgepaths[A]=p.concat(E))}for(A=0;At?0:1)+(e[0][1]>t?0:2)+(e[1][1]>t?0:4)+(e[1][0]>t?0:8);return 5===r||10===r?t>(e[0][0]+e[0][1]+e[1][0]+e[1][1])/4?5===r?713:1114:5===r?104:208:15===r?0:r}e.exports=function(t){var e,r,a,o,s,l,c,u,f,h=t[0].z,p=h.length,d=h[0].length,m=2===p||2===d;for(r=0;r=0&&(n=y,s=l):Math.abs(r[1]-n[1])<.01?Math.abs(r[1]-y[1])<.01&&(y[0]-r[0])*(n[0]-y[0])>=0&&(n=y,s=l):i.log("endpt to newendpt is not vert. or horz.",r,n,y)}if(r=n,s>=0)break;f+="L"+n}if(s===t.edgepaths.length){i.log("unclosed perimeter path");break}h=s,(d=-1===p.indexOf(h))&&(h=p[0],f+="Z")}for(h=0;hn.center?n.right-s:s-n.left)/(u+Math.abs(Math.sin(c)*o)),p=(l>n.middle?n.bottom-l:l-n.top)/(Math.abs(f)+Math.cos(c)*o);if(h<1||p<1)return 1/0;var d=v.EDGECOST*(1/(h-1)+1/(p-1));d+=v.ANGLECOST*c*c;for(var m=s-u,g=l-f,y=s+u,x=l+f,b=0;b2*v.MAXCOST)break;p&&(s/=2),l=(o=c-s/2)+1.5*s}if(h<=v.MAXCOST)return u},r.addLabelData=function(t,e,r,n){var i=e.fontSize,a=e.width+i/3,o=Math.max(0,e.height-i/3),s=t.x,l=t.y,c=t.theta,u=Math.sin(c),f=Math.cos(c),h=function(t,e){return[s+t*f-e*u,l+t*u+e*f]},p=[h(-a/2,-o/2),h(-a/2,o/2),h(a/2,o/2),h(a/2,-o/2)];r.push({text:e.text,x:s,y:l,dy:e.dy,theta:c,level:e.level,width:a,height:o}),n.push(p)},r.drawLabels=function(t,e,r,a,o){var l=t.selectAll("text").data(e,(function(t){return t.text+","+t.x+","+t.y+","+t.theta}));if(l.exit().remove(),l.enter().append("text").attr({"data-notex":1,"text-anchor":"middle"}).each((function(t){var e=t.x+Math.sin(t.theta)*t.dy,i=t.y-Math.cos(t.theta)*t.dy;n.select(this).text(t.text).attr({x:e,y:i,transform:"rotate("+180*t.theta/Math.PI+" "+e+" "+i+")"}).call(s.convertToTspans,r)})),o){for(var c="",u=0;ur.end&&(r.start=r.end=(r.start+r.end)/2),t._input.contours||(t._input.contours={}),i.extendFlat(t._input.contours,{start:r.start,end:r.end,size:r.size}),t._input.autocontour=!0}else if("constraint"!==r.type){var c,u=r.start,f=r.end,h=t._input.contours;if(u>f&&(r.start=h.start=f,f=r.end=h.end=u,u=r.start),!(r.size>0))c=u===f?1:a(u,f,t.ncontours).dtick,h.size=r.size=c}}},{"../../lib":795,"../../plots/cartesian/axes":845}],1040:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("../../components/drawing"),a=t("../heatmap/style"),o=t("./make_color_map");e.exports=function(t){var e=n.select(t).selectAll("g.contour");e.style("opacity",(function(t){return t[0].trace.opacity})),e.each((function(t){var e=n.select(this),r=t[0].trace,a=r.contours,s=r.line,l=a.size||1,c=a.start,u="constraint"===a.type,f=!u&&"lines"===a.coloring,h=!u&&"fill"===a.coloring,p=f||h?o(r):null;e.selectAll("g.contourlevel").each((function(t){n.select(this).selectAll("path").call(i.lineGroupStyle,s.width,f?p(t.level):s.color,s.dash)}));var d=a.labelfont;if(e.selectAll("g.contourlabels text").each((function(t){i.font(n.select(this),{family:d.family,size:d.size,color:d.color||(f?p(t.level):s.color)})})),u)e.selectAll("g.contourfill path").style("fill",r.fillcolor);else if(h){var m;e.selectAll("g.contourfill path").style("fill",(function(t){return void 0===m&&(m=t.level),p(t.level+.5*l)})),void 0===m&&(m=c),e.selectAll("g.contourbg path").style("fill",p(m-.5*l))}})),a(t)}},{"../../components/drawing":680,"../heatmap/style":1089,"./make_color_map":1036,"@plotly/d3":57}],1041:[function(t,e,r){"use strict";var n=t("../../components/colorscale/defaults"),i=t("./label_defaults");e.exports=function(t,e,r,a,o){var s,l=r("contours.coloring"),c="";"fill"===l&&(s=r("contours.showlines")),!1!==s&&("lines"!==l&&(c=r("line.color","#000")),r("line.width",.5),r("line.dash")),"none"!==l&&(!0!==t.showlegend&&(e.showlegend=!1),e._dfltShowLegend=!1,n(t,e,a,r,{prefix:"",cLetter:"z"})),r("line.smoothing"),i(r,a,c,o)}},{"../../components/colorscale/defaults":668,"./label_defaults":1035}],1042:[function(t,e,r){"use strict";var n=t("../heatmap/attributes"),i=t("../contour/attributes"),a=t("../../components/colorscale/attributes"),o=t("../../lib/extend").extendFlat,s=i.contours;e.exports=o({carpet:{valType:"string",editType:"calc"},z:n.z,a:n.x,a0:n.x0,da:n.dx,b:n.y,b0:n.y0,db:n.dy,text:n.text,hovertext:n.hovertext,transpose:n.transpose,atype:n.xtype,btype:n.ytype,fillcolor:i.fillcolor,autocontour:i.autocontour,ncontours:i.ncontours,contours:{type:s.type,start:s.start,end:s.end,size:s.size,coloring:{valType:"enumerated",values:["fill","lines","none"],dflt:"fill",editType:"calc"},showlines:s.showlines,showlabels:s.showlabels,labelfont:s.labelfont,labelformat:s.labelformat,operation:s.operation,value:s.value,editType:"calc",impliedEdits:{autocontour:!1}},line:{color:i.line.color,width:i.line.width,dash:i.line.dash,smoothing:i.line.smoothing,editType:"plot"},transforms:void 0},a("",{cLetter:"z",autoColorDflt:!1}))},{"../../components/colorscale/attributes":665,"../../lib/extend":785,"../contour/attributes":1020,"../heatmap/attributes":1077}],1043:[function(t,e,r){"use strict";var n=t("../../components/colorscale/calc"),i=t("../../lib"),a=t("../heatmap/convert_column_xyz"),o=t("../heatmap/clean_2d_array"),s=t("../heatmap/interp2d"),l=t("../heatmap/find_empties"),c=t("../heatmap/make_bound_array"),u=t("./defaults"),f=t("../carpet/lookup_carpetid"),h=t("../contour/set_contours");e.exports=function(t,e){var r=e._carpetTrace=f(t,e);if(r&&r.visible&&"legendonly"!==r.visible){if(!e.a||!e.b){var p=t.data[r.index],d=t.data[e.index];d.a||(d.a=p.a),d.b||(d.b=p.b),u(d,e,e._defaultColor,t._fullLayout)}var m=function(t,e){var r,u,f,h,p,d,m,g=e._carpetTrace,v=g.aaxis,y=g.baxis;v._minDtick=0,y._minDtick=0,i.isArray1D(e.z)&&a(e,v,y,"a","b",["z"]);r=e._a=e._a||e.a,h=e._b=e._b||e.b,r=r?v.makeCalcdata(e,"_a"):[],h=h?y.makeCalcdata(e,"_b"):[],u=e.a0||0,f=e.da||1,p=e.b0||0,d=e.db||1,m=e._z=o(e._z||e.z,e.transpose),e._emptypoints=l(m),s(m,e._emptypoints);var x=i.maxRowLength(m),b="scaled"===e.xtype?"":r,_=c(e,b,u,f,x,v),w="scaled"===e.ytype?"":h,T=c(e,w,p,d,m.length,y),k={a:_,b:T,z:m};"levels"===e.contours.type&&"none"!==e.contours.coloring&&n(t,e,{vals:m,containerStr:"",cLetter:"z"});return[k]}(t,e);return h(e,e._z),m}}},{"../../components/colorscale/calc":666,"../../lib":795,"../carpet/lookup_carpetid":993,"../contour/set_contours":1039,"../heatmap/clean_2d_array":1079,"../heatmap/convert_column_xyz":1081,"../heatmap/find_empties":1083,"../heatmap/interp2d":1086,"../heatmap/make_bound_array":1087,"./defaults":1044}],1044:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../heatmap/xyz_defaults"),a=t("./attributes"),o=t("../contour/constraint_defaults"),s=t("../contour/contours_defaults"),l=t("../contour/style_defaults");e.exports=function(t,e,r,c){function u(r,i){return n.coerce(t,e,a,r,i)}if(u("carpet"),t.a&&t.b){if(!i(t,e,u,c,"a","b"))return void(e.visible=!1);u("text"),"constraint"===u("contours.type")?o(t,e,u,c,r,{hasHover:!1}):(s(t,e,u,(function(r){return n.coerce2(t,e,a,r)})),l(t,e,u,c,{hasHover:!1}))}else e._defaultColor=r,e._length=null}},{"../../lib":795,"../contour/constraint_defaults":1025,"../contour/contours_defaults":1027,"../contour/style_defaults":1041,"../heatmap/xyz_defaults":1091,"./attributes":1042}],1045:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),colorbar:t("../contour/colorbar"),calc:t("./calc"),plot:t("./plot"),style:t("../contour/style"),moduleType:"trace",name:"contourcarpet",basePlotModule:t("../../plots/cartesian"),categories:["cartesian","svg","carpet","contour","symbols","showLegend","hasLines","carpetDependent","noHover","noSortingByValue"],meta:{}}},{"../../plots/cartesian":858,"../contour/colorbar":1023,"../contour/style":1040,"./attributes":1042,"./calc":1043,"./defaults":1044,"./plot":1046}],1046:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("../carpet/map_1d_array"),a=t("../carpet/makepath"),o=t("../../components/drawing"),s=t("../../lib"),l=t("../contour/make_crossings"),c=t("../contour/find_all_paths"),u=t("../contour/plot"),f=t("../contour/constants"),h=t("../contour/convert_to_constraints"),p=t("../contour/empty_pathinfo"),d=t("../contour/close_boundaries"),m=t("../carpet/lookup_carpetid"),g=t("../carpet/axis_aligned_line");function v(t,e,r){var n=t.getPointAtLength(e),i=t.getPointAtLength(r),a=i.x-n.x,o=i.y-n.y,s=Math.sqrt(a*a+o*o);return[a/s,o/s]}function y(t){var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[t[0]/e,t[1]/e]}function x(t,e){var r=Math.abs(t[0]*e[0]+t[1]*e[1]);return Math.sqrt(1-r*r)/r}e.exports=function(t,e,r,b){var _=e.xaxis,w=e.yaxis;s.makeTraceGroups(b,r,"contour").each((function(r){var b=n.select(this),T=r[0],k=T.trace,M=k._carpetTrace=m(t,k),A=t.calcdata[M.index][0];if(M.visible&&"legendonly"!==M.visible){var S=T.a,E=T.b,L=k.contours,C=p(L,e,T),P="constraint"===L.type,I=L._operation,O=P?"="===I?"lines":"fill":L.coloring,z=[[S[0],E[E.length-1]],[S[S.length-1],E[E.length-1]],[S[S.length-1],E[0]],[S[0],E[0]]];l(C);var D=1e-8*(S[S.length-1]-S[0]),R=1e-8*(E[E.length-1]-E[0]);c(C,D,R);var F,B,N,j,U=C;"constraint"===L.type&&(U=h(C,I)),function(t,e){var r,n,i,a,o,s,l,c,u;for(r=0;r=0;j--)F=A.clipsegments[j],B=i([],F.x,_.c2p),N=i([],F.y,w.c2p),B.reverse(),N.reverse(),V.push(a(B,N,F.bicubic));var q="M"+V.join("L")+"Z";!function(t,e,r,n,o,l){var c,u,f,h,p=s.ensureSingle(t,"g","contourbg").selectAll("path").data("fill"!==l||o?[]:[0]);p.enter().append("path"),p.exit().remove();var d=[];for(h=0;h=0&&(h=L,d=m):Math.abs(f[1]-h[1])=0&&(h=L,d=m):s.log("endpt to newendpt is not vert. or horz.",f,h,L)}if(d>=0)break;y+=S(f,h),f=h}if(d===e.edgepaths.length){s.log("unclosed perimeter path");break}u=d,(b=-1===x.indexOf(u))&&(u=x[0],y+=S(f,h)+"Z",f=null)}for(u=0;ug&&(n.max=g);n.len=n.max-n.min}(this,r,t,n,c,e.height),!(n.len<(e.width+e.height)*f.LABELMIN)))for(var i=Math.min(Math.ceil(n.len/I),f.LABELMAX),a=0;a0?+p[u]:0),f.push({type:"Feature",geometry:{type:"Point",coordinates:v},properties:y})}}var b=o.extractOpts(e),_=b.reversescale?o.flipScale(b.colorscale):b.colorscale,w=_[0][1],T=["interpolate",["linear"],["heatmap-density"],0,a.opacity(w)<1?w:a.addOpacity(w,0)];for(u=1;u<_.length;u++)T.push(_[u][0],_[u][1]);var k=["interpolate",["linear"],["get","z"],b.min,0,b.max,1];return i.extendFlat(c.heatmap.paint,{"heatmap-weight":d?k:1/(b.max-b.min),"heatmap-color":T,"heatmap-radius":m?{type:"identity",property:"r"}:e.radius,"heatmap-opacity":e.opacity}),c.geojson={type:"FeatureCollection",features:f},c.heatmap.layout.visibility="visible",c}},{"../../components/color":658,"../../components/colorscale":670,"../../constants/numerical":771,"../../lib":795,"../../lib/geojson_utils":789,"fast-isnumeric":240}],1050:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../components/colorscale/defaults"),a=t("./attributes");e.exports=function(t,e,r,o){function s(r,i){return n.coerce(t,e,a,r,i)}var l=s("lon")||[],c=s("lat")||[],u=Math.min(l.length,c.length);u?(e._length=u,s("z"),s("radius"),s("below"),s("text"),s("hovertext"),s("hovertemplate"),i(t,e,o,s,{prefix:"",cLetter:"z"})):e.visible=!1}},{"../../components/colorscale/defaults":668,"../../lib":795,"./attributes":1047}],1051:[function(t,e,r){"use strict";e.exports=function(t,e){return t.lon=e.lon,t.lat=e.lat,t.z=e.z,t}},{}],1052:[function(t,e,r){"use strict";var n=t("../../plots/cartesian/axes"),i=t("../scattermapbox/hover").hoverPoints,a=t("../scattermapbox/hover").getExtraText;e.exports=function(t,e,r){var o=i(t,e,r);if(o){var s=o[0],l=s.cd,c=l[0].trace,u=l[s.index];if(delete s.color,"z"in u){var f=s.subplot.mockAxis;s.z=u.z,s.zLabel=n.tickText(f,f.c2l(u.z),"hover").text}return s.extraText=a(c,u,l[0].t.labels),[s]}}},{"../../plots/cartesian/axes":845,"../scattermapbox/hover":1269}],1053:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),colorbar:t("../heatmap/colorbar"),formatLabels:t("../scattermapbox/format_labels"),calc:t("./calc"),plot:t("./plot"),hoverPoints:t("./hover"),eventData:t("./event_data"),getBelow:function(t,e){for(var r=e.getMapLayers(),n=0;n=0;r--)t.removeLayer(e[r][1])},o.dispose=function(){var t=this.subplot.map;this._removeLayers(),t.removeSource(this.sourceId)},e.exports=function(t,e){var r=e[0].trace,i=new a(t,r.uid),o=i.sourceId,s=n(e),l=i.below=t.belowLookup["trace-"+r.uid];return t.map.addSource(o,{type:"geojson",data:s.geojson}),i._addLayers(s,l),i}},{"../../plots/mapbox/constants":901,"./convert":1049}],1055:[function(t,e,r){"use strict";var n=t("../../lib");e.exports=function(t,e){for(var r=0;r"),l.color=function(t,e){var r=t.marker,i=e.mc||r.color,a=e.mlc||r.line.color,o=e.mlw||r.line.width;if(n(i))return i;if(n(a)&&o)return a}(u,h),[l]}}},{"../../components/color":658,"../../lib":795,"../bar/hover":940}],1063:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),layoutAttributes:t("./layout_attributes"),supplyDefaults:t("./defaults").supplyDefaults,crossTraceDefaults:t("./defaults").crossTraceDefaults,supplyLayoutDefaults:t("./layout_defaults"),calc:t("./calc"),crossTraceCalc:t("./cross_trace_calc"),plot:t("./plot"),style:t("./style").style,hoverPoints:t("./hover"),eventData:t("./event_data"),selectPoints:t("../bar/select"),moduleType:"trace",name:"funnel",basePlotModule:t("../../plots/cartesian"),categories:["bar-like","cartesian","svg","oriented","showLegend","zoomScale"],meta:{}}},{"../../plots/cartesian":858,"../bar/select":945,"./attributes":1056,"./calc":1057,"./cross_trace_calc":1059,"./defaults":1060,"./event_data":1061,"./hover":1062,"./layout_attributes":1064,"./layout_defaults":1065,"./plot":1066,"./style":1067}],1064:[function(t,e,r){"use strict";e.exports={funnelmode:{valType:"enumerated",values:["stack","group","overlay"],dflt:"stack",editType:"calc"},funnelgap:{valType:"number",min:0,max:1,editType:"calc"},funnelgroupgap:{valType:"number",min:0,max:1,dflt:0,editType:"calc"}}},{}],1065:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./layout_attributes");e.exports=function(t,e,r){var a=!1;function o(r,a){return n.coerce(t,e,i,r,a)}for(var s=0;s path").each((function(t){if(!t.isBlank){var e=s.marker;n.select(this).call(a.fill,t.mc||e.color).call(a.stroke,t.mlc||e.line.color).call(i.dashLine,e.line.dash,t.mlw||e.line.width).style("opacity",s.selectedpoints&&!t.selected?o:1)}})),c(r,s,t),r.selectAll(".regions").each((function(){n.select(this).selectAll("path").style("stroke-width",0).call(a.fill,s.connector.fillcolor)})),r.selectAll(".lines").each((function(){var t=s.connector.line;i.lineGroupStyle(n.select(this).selectAll("path"),t.width,t.color,t.dash)}))}))}}},{"../../components/color":658,"../../components/drawing":680,"../../constants/interactions":770,"../bar/style":947,"../bar/uniform_text":949,"@plotly/d3":57}],1068:[function(t,e,r){"use strict";var n=t("../pie/attributes"),i=t("../../plots/attributes"),a=t("../../plots/domain").attributes,o=t("../../plots/template_attributes").hovertemplateAttrs,s=t("../../plots/template_attributes").texttemplateAttrs,l=t("../../lib/extend").extendFlat;e.exports={labels:n.labels,label0:n.label0,dlabel:n.dlabel,values:n.values,marker:{colors:n.marker.colors,line:{color:l({},n.marker.line.color,{dflt:null}),width:l({},n.marker.line.width,{dflt:1}),editType:"calc"},editType:"calc"},text:n.text,hovertext:n.hovertext,scalegroup:l({},n.scalegroup,{}),textinfo:l({},n.textinfo,{flags:["label","text","value","percent"]}),texttemplate:s({editType:"plot"},{keys:["label","color","value","text","percent"]}),hoverinfo:l({},i.hoverinfo,{flags:["label","text","value","percent","name"]}),hovertemplate:o({},{keys:["label","color","value","text","percent"]}),textposition:l({},n.textposition,{values:["inside","none"],dflt:"inside"}),textfont:n.textfont,insidetextfont:n.insidetextfont,title:{text:n.title.text,font:n.title.font,position:l({},n.title.position,{values:["top left","top center","top right"],dflt:"top center"}),editType:"plot"},domain:a({name:"funnelarea",trace:!0,editType:"calc"}),aspectratio:{valType:"number",min:0,dflt:1,editType:"plot"},baseratio:{valType:"number",min:0,max:1,dflt:.333,editType:"plot"}}},{"../../lib/extend":785,"../../plots/attributes":841,"../../plots/domain":872,"../../plots/template_attributes":918,"../pie/attributes":1173}],1069:[function(t,e,r){"use strict";var n=t("../../plots/plots");r.name="funnelarea",r.plot=function(t,e,i,a){n.plotBasePlot(r.name,t,e,i,a)},r.clean=function(t,e,i,a){n.cleanBasePlot(r.name,t,e,i,a)}},{"../../plots/plots":909}],1070:[function(t,e,r){"use strict";var n=t("../pie/calc");e.exports={calc:function(t,e){return n.calc(t,e)},crossTraceCalc:function(t){n.crossTraceCalc(t,{type:"funnelarea"})}}},{"../pie/calc":1175}],1071:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./attributes"),a=t("../../plots/domain").defaults,o=t("../bar/defaults").handleText,s=t("../pie/defaults").handleLabelsAndValues;e.exports=function(t,e,r,l){function c(r,a){return n.coerce(t,e,i,r,a)}var u=c("labels"),f=c("values"),h=s(u,f),p=h.len;if(e._hasLabels=h.hasLabels,e._hasValues=h.hasValues,!e._hasLabels&&e._hasValues&&(c("label0"),c("dlabel")),p){e._length=p,c("marker.line.width")&&c("marker.line.color",l.paper_bgcolor),c("marker.colors"),c("scalegroup");var d,m=c("text"),g=c("texttemplate");if(g||(d=c("textinfo",Array.isArray(m)?"text+percent":"percent")),c("hovertext"),c("hovertemplate"),g||d&&"none"!==d){var v=c("textposition");o(t,e,l,c,v,{moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1})}a(e,l,c),c("title.text")&&(c("title.position"),n.coerceFont(c,"title.font",l.font)),c("aspectratio"),c("baseratio")}else e.visible=!1}},{"../../lib":795,"../../plots/domain":872,"../bar/defaults":937,"../pie/defaults":1176,"./attributes":1068}],1072:[function(t,e,r){"use strict";e.exports={moduleType:"trace",name:"funnelarea",basePlotModule:t("./base_plot"),categories:["pie-like","funnelarea","showLegend"],attributes:t("./attributes"),layoutAttributes:t("./layout_attributes"),supplyDefaults:t("./defaults"),supplyLayoutDefaults:t("./layout_defaults"),calc:t("./calc").calc,crossTraceCalc:t("./calc").crossTraceCalc,plot:t("./plot"),style:t("./style"),styleOne:t("../pie/style_one"),meta:{}}},{"../pie/style_one":1184,"./attributes":1068,"./base_plot":1069,"./calc":1070,"./defaults":1071,"./layout_attributes":1073,"./layout_defaults":1074,"./plot":1075,"./style":1076}],1073:[function(t,e,r){"use strict";var n=t("../pie/layout_attributes").hiddenlabels;e.exports={hiddenlabels:n,funnelareacolorway:{valType:"colorlist",editType:"calc"},extendfunnelareacolors:{valType:"boolean",dflt:!0,editType:"calc"}}},{"../pie/layout_attributes":1180}],1074:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./layout_attributes");e.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}r("hiddenlabels"),r("funnelareacolorway",e.colorway),r("extendfunnelareacolors")}},{"../../lib":795,"./layout_attributes":1073}],1075:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("../../components/drawing"),a=t("../../lib"),o=a.strScale,s=a.strTranslate,l=t("../../lib/svg_text_utils"),c=t("../bar/plot").toMoveInsideBar,u=t("../bar/uniform_text"),f=u.recordMinTextSize,h=u.clearMinTextSize,p=t("../pie/helpers"),d=t("../pie/plot"),m=d.attachFxHandlers,g=d.determineInsideTextFont,v=d.layoutAreas,y=d.prerenderTitles,x=d.positionTitleOutside,b=d.formatSliceLabel;function _(t,e){return"l"+(e[0]-t[0])+","+(e[1]-t[1])}e.exports=function(t,e){var r=t._fullLayout;h("funnelarea",r),y(e,t),v(e,r._size),a.makeTraceGroups(r._funnelarealayer,e,"trace").each((function(e){var u=n.select(this),h=e[0],d=h.trace;!function(t){if(!t.length)return;var e=t[0],r=e.trace,n=r.aspectratio,i=r.baseratio;i>.999&&(i=.999);var a,o=Math.pow(i,2),s=e.vTotal,l=s,c=s*o/(1-o)/s;function u(){var t,e={x:t=Math.sqrt(c),y:-t};return[e.x,e.y]}var f,h,p=[];for(p.push(u()),f=t.length-1;f>-1;f--)if(!(h=t[f]).hidden){var d=h.v/l;c+=d,p.push(u())}var m=1/0,g=-1/0;for(f=0;f-1;f--)if(!(h=t[f]).hidden){var M=p[k+=1][0],A=p[k][1];h.TL=[-M,A],h.TR=[M,A],h.BL=w,h.BR=T,h.pxmid=(S=h.TR,E=h.BR,[.5*(S[0]+E[0]),.5*(S[1]+E[1])]),w=h.TL,T=h.TR}var S,E}(e),u.each((function(){var u=n.select(this).selectAll("g.slice").data(e);u.enter().append("g").classed("slice",!0),u.exit().remove(),u.each((function(o,s){if(o.hidden)n.select(this).selectAll("path,g").remove();else{o.pointNumber=o.i,o.curveNumber=d.index;var u=h.cx,v=h.cy,y=n.select(this),x=y.selectAll("path.surface").data([o]);x.enter().append("path").classed("surface",!0).style({"pointer-events":"all"}),y.call(m,t,e);var w="M"+(u+o.TR[0])+","+(v+o.TR[1])+_(o.TR,o.BR)+_(o.BR,o.BL)+_(o.BL,o.TL)+"Z";x.attr("d",w),b(t,o,h);var T=p.castOption(d.textposition,o.pts),k=y.selectAll("g.slicetext").data(o.text&&"none"!==T?[0]:[]);k.enter().append("g").classed("slicetext",!0),k.exit().remove(),k.each((function(){var h=a.ensureSingle(n.select(this),"text","",(function(t){t.attr("data-notex",1)})),p=a.ensureUniformFontSize(t,g(d,o,r.font));h.text(o.text).attr({class:"slicetext",transform:"","text-anchor":"middle"}).call(i.font,p).call(l.convertToTspans,t);var m,y,x,b=i.bBox(h.node()),_=Math.min(o.BL[1],o.BR[1])+v,w=Math.max(o.TL[1],o.TR[1])+v;y=Math.max(o.TL[0],o.BL[0])+u,x=Math.min(o.TR[0],o.BR[0])+u,(m=c(y,x,_,w,b,{isHorizontal:!0,constrained:!0,angle:0,anchor:"middle"})).fontSize=p.size,f(d.type,m,r),e[s].transform=m,h.attr("transform",a.getTextTransform(m))}))}}));var v=n.select(this).selectAll("g.titletext").data(d.title.text?[0]:[]);v.enter().append("g").classed("titletext",!0),v.exit().remove(),v.each((function(){var e=a.ensureSingle(n.select(this),"text","",(function(t){t.attr("data-notex",1)})),c=d.title.text;d._meta&&(c=a.templateString(c,d._meta)),e.text(c).attr({class:"titletext",transform:"","text-anchor":"middle"}).call(i.font,d.title.font).call(l.convertToTspans,t);var u=x(h,r._size);e.attr("transform",s(u.x,u.y)+o(Math.min(1,u.scale))+s(u.tx,u.ty))}))}))}))}},{"../../components/drawing":680,"../../lib":795,"../../lib/svg_text_utils":820,"../bar/plot":944,"../bar/uniform_text":949,"../pie/helpers":1178,"../pie/plot":1182,"@plotly/d3":57}],1076:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("../pie/style_one"),a=t("../bar/uniform_text").resizeText;e.exports=function(t){var e=t._fullLayout._funnelarealayer.selectAll(".trace");a(t,e,"funnelarea"),e.each((function(t){var e=t[0].trace,r=n.select(this);r.style({opacity:e.opacity}),r.selectAll("path.surface").each((function(t){n.select(this).call(i,t,e)}))}))}},{"../bar/uniform_text":949,"../pie/style_one":1184,"@plotly/d3":57}],1077:[function(t,e,r){"use strict";var n=t("../scatter/attributes"),i=t("../../plots/attributes"),a=t("../../plots/hoverformat_attributes"),o=t("../../plots/template_attributes").hovertemplateAttrs,s=t("../../components/colorscale/attributes"),l=t("../../lib/extend").extendFlat;e.exports=l({z:{valType:"data_array",editType:"calc"},x:l({},n.x,{impliedEdits:{xtype:"array"}}),x0:l({},n.x0,{impliedEdits:{xtype:"scaled"}}),dx:l({},n.dx,{impliedEdits:{xtype:"scaled"}}),y:l({},n.y,{impliedEdits:{ytype:"array"}}),y0:l({},n.y0,{impliedEdits:{ytype:"scaled"}}),dy:l({},n.dy,{impliedEdits:{ytype:"scaled"}}),xperiod:l({},n.xperiod,{impliedEdits:{xtype:"scaled"}}),yperiod:l({},n.yperiod,{impliedEdits:{ytype:"scaled"}}),xperiod0:l({},n.xperiod0,{impliedEdits:{xtype:"scaled"}}),yperiod0:l({},n.yperiod0,{impliedEdits:{ytype:"scaled"}}),xperiodalignment:l({},n.xperiodalignment,{impliedEdits:{xtype:"scaled"}}),yperiodalignment:l({},n.yperiodalignment,{impliedEdits:{ytype:"scaled"}}),text:{valType:"data_array",editType:"calc"},hovertext:{valType:"data_array",editType:"calc"},transpose:{valType:"boolean",dflt:!1,editType:"calc"},xtype:{valType:"enumerated",values:["array","scaled"],editType:"calc+clearAxisTypes"},ytype:{valType:"enumerated",values:["array","scaled"],editType:"calc+clearAxisTypes"},zsmooth:{valType:"enumerated",values:["fast","best",!1],dflt:!1,editType:"calc"},hoverongaps:{valType:"boolean",dflt:!0,editType:"none"},connectgaps:{valType:"boolean",editType:"calc"},xgap:{valType:"number",dflt:0,min:0,editType:"plot"},ygap:{valType:"number",dflt:0,min:0,editType:"plot"},xhoverformat:a("x"),yhoverformat:a("y"),zhoverformat:a("z",1),hovertemplate:o(),showlegend:l({},i.showlegend,{dflt:!1})},{transforms:void 0},s("",{cLetter:"z",autoColorDflt:!1}))},{"../../components/colorscale/attributes":665,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/hoverformat_attributes":899,"../../plots/template_attributes":918,"../scatter/attributes":1199}],1078:[function(t,e,r){"use strict";var n=t("../../registry"),i=t("../../lib"),a=t("../../plots/cartesian/axes"),o=t("../../plots/cartesian/align_period"),s=t("../histogram2d/calc"),l=t("../../components/colorscale/calc"),c=t("./convert_column_xyz"),u=t("./clean_2d_array"),f=t("./interp2d"),h=t("./find_empties"),p=t("./make_bound_array"),d=t("../../constants/numerical").BADNUM;function m(t){for(var e=[],r=t.length,n=0;nD){O("x scale is not linear");break}}if(x.length&&"fast"===P){var R=(x[x.length-1]-x[0])/(x.length-1),F=Math.abs(R/100);for(k=0;kF){O("y scale is not linear");break}}}var B=i.maxRowLength(T),N="scaled"===e.xtype?"":r,j=p(e,N,g,v,B,A),U="scaled"===e.ytype?"":x,V=p(e,U,b,_,T.length,S);C||(e._extremes[A._id]=a.findExtremes(A,j),e._extremes[S._id]=a.findExtremes(S,V));var q={x:j,y:V,z:T,text:e._text||e.text,hovertext:e._hovertext||e.hovertext};if(e.xperiodalignment&&y&&(q.orig_x=y),e.yperiodalignment&&w&&(q.orig_y=w),N&&N.length===j.length-1&&(q.xCenter=N),U&&U.length===V.length-1&&(q.yCenter=U),L&&(q.xRanges=M.xRanges,q.yRanges=M.yRanges,q.pts=M.pts),E||l(t,e,{vals:T,cLetter:"z"}),E&&e.contours&&"heatmap"===e.contours.coloring){var H={type:"contour"===e.type?"heatmap":"histogram2d",xcalendar:e.xcalendar,ycalendar:e.ycalendar};q.xfill=p(H,N,g,v,B,A),q.yfill=p(H,U,b,_,T.length,S)}return[q]}},{"../../components/colorscale/calc":666,"../../constants/numerical":771,"../../lib":795,"../../plots/cartesian/align_period":842,"../../plots/cartesian/axes":845,"../../registry":923,"../histogram2d/calc":1110,"./clean_2d_array":1079,"./convert_column_xyz":1081,"./find_empties":1083,"./interp2d":1086,"./make_bound_array":1087}],1079:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("../../lib"),a=t("../../constants/numerical").BADNUM;e.exports=function(t,e,r,o){var s,l,c,u,f,h;function p(t){if(n(t))return+t}if(e&&e.transpose){for(s=0,f=0;f=0;o--)(s=((f[[(r=(a=h[o])[0])-1,i=a[1]]]||m)[2]+(f[[r+1,i]]||m)[2]+(f[[r,i-1]]||m)[2]+(f[[r,i+1]]||m)[2])/20)&&(l[a]=[r,i,s],h.splice(o,1),c=!0);if(!c)throw"findEmpties iterated with no new neighbors";for(a in l)f[a]=l[a],u.push(l[a])}return u.sort((function(t,e){return e[2]-t[2]}))}},{"../../lib":795}],1084:[function(t,e,r){"use strict";var n=t("../../components/fx"),i=t("../../lib"),a=t("../../plots/cartesian/axes"),o=t("../../components/colorscale").extractOpts;e.exports=function(t,e,r,s,l){l||(l={});var c,u,f,h,p=l.isContour,d=t.cd[0],m=d.trace,g=t.xa,v=t.ya,y=d.x,x=d.y,b=d.z,_=d.xCenter,w=d.yCenter,T=d.zmask,k=m.zhoverformat,M=y,A=x;if(!1!==t.index){try{f=Math.round(t.index[1]),h=Math.round(t.index[0])}catch(e){return void i.error("Error hovering on heatmap, pointNumber must be [row,col], found:",t.index)}if(f<0||f>=b[0].length||h<0||h>b.length)return}else{if(n.inbox(e-y[0],e-y[y.length-1],0)>0||n.inbox(r-x[0],r-x[x.length-1],0)>0)return;if(p){var S;for(M=[2*y[0]-y[1]],S=1;Sm&&(v=Math.max(v,Math.abs(t[a][o]-d)/(g-m))))}return v}e.exports=function(t,e){var r,i=1;for(o(t,e),r=0;r.01;r++)i=o(t,e,a(i));return i>.01&&n.log("interp2d didn't converge quickly",i),t}},{"../../lib":795}],1087:[function(t,e,r){"use strict";var n=t("../../registry"),i=t("../../lib").isArrayOrTypedArray;e.exports=function(t,e,r,a,o,s){var l,c,u,f=[],h=n.traceIs(t,"contour"),p=n.traceIs(t,"histogram"),d=n.traceIs(t,"gl2d");if(i(e)&&e.length>1&&!p&&"category"!==s.type){var m=e.length;if(!(m<=o))return h?e.slice(0,o):e.slice(0,o+1);if(h||d)f=e.slice(0,o);else if(1===o)f=[e[0]-.5,e[0]+.5];else{for(f=[1.5*e[0]-.5*e[1]],u=1;u0;)h=p.c2p(T[y]),y--;for(h0;)v=d.c2p(k[y]),y--;if(v0&&(a=!0);for(var l=0;la){var o=a-r[t];return r[t]=a,o}}return 0},max:function(t,e,r,i){var a=i[e];if(n(a)){if(a=Number(a),!n(r[t]))return r[t]=a,a;if(r[t]c?t>o?t>1.1*i?i:t>1.1*a?a:o:t>s?s:t>l?l:c:Math.pow(10,Math.floor(Math.log(t)/Math.LN10))}function p(t,e,r,n,a,s){if(n&&t>o){var l=d(e,a,s),c=d(r,a,s),u=t===i?0:1;return l[u]!==c[u]}return Math.floor(r/t)-Math.floor(e/t)>.1}function d(t,e,r){var n=e.c2d(t,i,r).split("-");return""===n[0]&&(n.unshift(),n[0]="-"+n[0]),n}e.exports=function(t,e,r,n,a){var s,l,c=-1.1*e,h=-.1*e,p=t-h,d=r[0],m=r[1],g=Math.min(f(d+h,d+p,n,a),f(m+h,m+p,n,a)),v=Math.min(f(d+c,d+h,n,a),f(m+c,m+h,n,a));if(g>v&&vo){var y=s===i?1:6,x=s===i?"M12":"M1";return function(e,r){var o=n.c2d(e,i,a),s=o.indexOf("-",y);s>0&&(o=o.substr(0,s));var c=n.d2c(o,0,a);if(cr.r2l(B)&&(j=o.tickIncrement(j,b.size,!0,p)),z.start=r.l2r(j),F||i.nestedProperty(e,v+".start").set(z.start)}var U=b.end,V=r.r2l(O.end),q=void 0!==V;if((b.endFound||q)&&V!==r.r2l(U)){var H=q?V:i.aggNums(Math.max,null,d);z.end=r.l2r(H),q||i.nestedProperty(e,v+".start").set(z.end)}var G="autobin"+s;return!1===e._input[G]&&(e._input[v]=i.extendFlat({},e[v]||{}),delete e._input[G],delete e[G]),[z,d]}e.exports={calc:function(t,e){var r,a,p,d,m=[],g=[],v=o.getFromId(t,"h"===e.orientation?e.yaxis:e.xaxis),y="h"===e.orientation?"y":"x",x={x:"y",y:"x"}[y],b=e[y+"calendar"],_=e.cumulative,w=h(t,e,v,y),T=w[0],k=w[1],M="string"==typeof T.size,A=[],S=M?A:T,E=[],L=[],C=[],P=0,I=e.histnorm,O=e.histfunc,z=-1!==I.indexOf("density");_.enabled&&z&&(I=I.replace(/ ?density$/,""),z=!1);var D,R="max"===O||"min"===O?null:0,F=l.count,B=c[I],N=!1,j=function(t){return v.r2c(t,0,b)};for(i.isArrayOrTypedArray(e[x])&&"count"!==O&&(D=e[x],N="avg"===O,F=l[O]),r=j(T.start),p=j(T.end)+(r-o.tickIncrement(r,T.size,!1,b))/1e6;r=0&&d=0;n--)s(n);else if("increasing"===e){for(n=1;n=0;n--)t[n]+=t[n+1];"exclude"===r&&(t.push(0),t.shift())}}(g,_.direction,_.currentbin);var J=Math.min(m.length,g.length),K=[],Q=0,$=J-1;for(r=0;r=Q;r--)if(g[r]){$=r;break}for(r=Q;r<=$;r++)if(n(m[r])&&n(g[r])){var tt={p:m[r],s:g[r],b:0};_.enabled||(tt.pts=C[r],G?tt.ph0=tt.ph1=C[r].length?k[C[r][0]]:m[r]:(e._computePh=!0,tt.ph0=q(A[r]),tt.ph1=q(A[r+1],!0))),K.push(tt)}return 1===K.length&&(K[0].width1=o.tickIncrement(K[0].p,T.size,!1,b)-K[0].p),s(K,e),i.isArrayOrTypedArray(e.selectedpoints)&&i.tagSelected(K,e,X),K},calcAllAutoBins:h}},{"../../lib":795,"../../plots/cartesian/axes":845,"../../registry":923,"../bar/arrays_to_calcdata":932,"./average":1097,"./bin_functions":1099,"./bin_label_vals":1100,"./norm_functions":1108,"fast-isnumeric":240}],1102:[function(t,e,r){"use strict";e.exports={eventDataKeys:["binNumber"]}},{}],1103:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../plots/cartesian/axis_ids"),a=t("../../registry").traceIs,o=t("../bar/defaults").handleGroupingDefaults,s=n.nestedProperty,l=t("../../plots/cartesian/constraints").getAxisGroup,c=[{aStr:{x:"xbins.start",y:"ybins.start"},name:"start"},{aStr:{x:"xbins.end",y:"ybins.end"},name:"end"},{aStr:{x:"xbins.size",y:"ybins.size"},name:"size"},{aStr:{x:"nbinsx",y:"nbinsy"},name:"nbins"}],u=["x","y"];e.exports=function(t,e){var r,f,h,p,d,m,g,v=e._histogramBinOpts={},y=[],x={},b=[];function _(t,e){return n.coerce(r._input,r,r._module.attributes,t,e)}function w(t){return"v"===t.orientation?"x":"y"}function T(t,r,a){var o=t.uid+"__"+a;r||(r=o);var s=function(t,r){return i.getFromTrace({_fullLayout:e},t,r).type}(t,a),l=t[a+"calendar"]||"",c=v[r],u=!0;c&&(s===c.axType&&l===c.calendar?(u=!1,c.traces.push(t),c.dirs.push(a)):(r=o,s!==c.axType&&n.warn(["Attempted to group the bins of trace",t.index,"set on a","type:"+s,"axis","with bins on","type:"+c.axType,"axis."].join(" ")),l!==c.calendar&&n.warn(["Attempted to group the bins of trace",t.index,"set with a",l,"calendar","with bins",c.calendar?"on a "+c.calendar+" calendar":"w/o a set calendar"].join(" ")))),u&&(v[r]={traces:[t],dirs:[a],axType:s,calendar:t[a+"calendar"]||""}),t["_"+a+"bingroup"]=r}for(d=0;dS&&T.splice(S,T.length-S),A.length>S&&A.splice(S,A.length-S);var E=[],L=[],C=[],P="string"==typeof w.size,I="string"==typeof M.size,O=[],z=[],D=P?O:w,R=I?z:M,F=0,B=[],N=[],j=e.histnorm,U=e.histfunc,V=-1!==j.indexOf("density"),q="max"===U||"min"===U?null:0,H=a.count,G=o[j],Y=!1,W=[],X=[],Z="z"in e?e.z:"marker"in e&&Array.isArray(e.marker.color)?e.marker.color:"";Z&&"count"!==U&&(Y="avg"===U,H=a[U]);var J=w.size,K=x(w.start),Q=x(w.end)+(K-i.tickIncrement(K,J,!1,v))/1e6;for(r=K;r=0&&p=0&&d0||n.inbox(r-o.y0,r-(o.y0+o.h*s.dy),0)>0)){var u,f=Math.floor((e-o.x0)/s.dx),h=Math.floor(Math.abs(r-o.y0)/s.dy);if(s._hasZ?u=o.z[h][f]:s._hasSource&&(u=s._canvas.el.getContext("2d").getImageData(f,h,1,1).data),u){var p,d=o.hi||s.hoverinfo;if(d){var m=d.split("+");-1!==m.indexOf("all")&&(m=["color"]),-1!==m.indexOf("color")&&(p=!0)}var g,v=a.colormodel[s.colormodel],y=v.colormodel||s.colormodel,x=y.length,b=s._scaler(u),_=v.suffix,w=[];(s.hovertemplate||p)&&(w.push("["+[b[0]+_[0],b[1]+_[1],b[2]+_[2]].join(", ")),4===x&&w.push(", "+b[3]+_[3]),w.push("]"),w=w.join(""),t.extraText=y.toUpperCase()+": "+w),Array.isArray(s.hovertext)&&Array.isArray(s.hovertext[h])?g=s.hovertext[h][f]:Array.isArray(s.text)&&Array.isArray(s.text[h])&&(g=s.text[h][f]);var T=c.c2p(o.y0+(h+.5)*s.dy),k=o.x0+(f+.5)*s.dx,M=o.y0+(h+.5)*s.dy,A="["+u.slice(0,s.colormodel.length).join(", ")+"]";return[i.extendFlat(t,{index:[h,f],x0:l.c2p(o.x0+f*s.dx),x1:l.c2p(o.x0+(f+1)*s.dx),y0:T,y1:T,color:b,xVal:k,xLabelVal:k,yVal:M,yLabelVal:M,zLabelVal:A,text:g,hovertemplateLabels:{zLabel:A,colorLabel:w,"color[0]Label":b[0]+_[0],"color[1]Label":b[1]+_[1],"color[2]Label":b[2]+_[2],"color[3]Label":b[3]+_[3]}})]}}}},{"../../components/fx":698,"../../lib":795,"./constants":1120}],1125:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),calc:t("./calc"),plot:t("./plot"),style:t("./style"),hoverPoints:t("./hover"),eventData:t("./event_data"),moduleType:"trace",name:"image",basePlotModule:t("../../plots/cartesian"),categories:["cartesian","svg","2dMap","noSortingByValue"],animatable:!1,meta:{}}},{"../../plots/cartesian":858,"./attributes":1118,"./calc":1119,"./defaults":1121,"./event_data":1122,"./hover":1124,"./plot":1126,"./style":1127}],1126:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("../../lib"),a=i.strTranslate,o=t("../../constants/xmlns_namespaces"),s=t("./constants"),l=i.isIOS()||i.isSafari()||i.isIE();e.exports=function(t,e,r,c){var u=e.xaxis,f=e.yaxis,h=!(l||t._context._exportedPlot);i.makeTraceGroups(c,r,"im").each((function(e){var r=n.select(this),l=e[0],c=l.trace,p=("fast"===c.zsmooth||!1===c.zsmooth&&h)&&!c._hasZ&&c._hasSource&&"linear"===u.type&&"linear"===f.type;c._realImage=p;var d,m,g,v,y,x,b=l.z,_=l.x0,w=l.y0,T=l.w,k=l.h,M=c.dx,A=c.dy;for(x=0;void 0===d&&x0;)m=u.c2p(_+x*M),x--;for(x=0;void 0===v&&x0;)y=f.c2p(w+x*A),x--;if(mI[0];if(O||z){var D=d+S/2,R=v+E/2;C+="transform:"+a(D+"px",R+"px")+"scale("+(O?-1:1)+","+(z?-1:1)+")"+a(-D+"px",-R+"px")+";"}}L.attr("style",C);var F=new Promise((function(t){if(c._hasZ)t();else if(c._hasSource)if(c._canvas&&c._canvas.el.width===T&&c._canvas.el.height===k&&c._canvas.source===c.source)t();else{var e=document.createElement("canvas");e.width=T,e.height=k;var r=e.getContext("2d");c._image=c._image||new Image;var n=c._image;n.onload=function(){r.drawImage(n,0,0),c._canvas={el:e,source:c.source},t()},n.setAttribute("src",c.source)}})).then((function(){var t;if(c._hasZ)t=B((function(t,e){return b[e][t]})).toDataURL("image/png");else if(c._hasSource)if(p)t=c.source;else{var e=c._canvas.el.getContext("2d").getImageData(0,0,T,k).data;t=B((function(t,r){var n=4*(r*T+t);return[e[n],e[n+1],e[n+2],e[n+3]]})).toDataURL("image/png")}L.attr({"xlink:href":t,height:E,width:S,x:d,y:v})}));t._promises.push(F)}function B(t){var e=document.createElement("canvas");e.width=S,e.height=E;var r,n=e.getContext("2d"),a=function(t){return i.constrain(Math.round(u.c2p(_+t*M)-d),0,S)},o=function(t){return i.constrain(Math.round(f.c2p(w+t*A)-v),0,E)},h=s.colormodel[c.colormodel],p=h.colormodel||c.colormodel,m=h.fmt;for(x=0;x0}function _(t){t.each((function(t){g.stroke(n.select(this),t.line.color)})).each((function(t){g.fill(n.select(this),t.color)})).style("stroke-width",(function(t){return t.line.width}))}function w(t,e,r){var n=t._fullLayout,a=i.extendFlat({type:"linear",ticks:"outside",range:r,showline:!0},e),o={type:"linear",_id:"x"+e._id},s={letter:"x",font:n.font,noHover:!0,noTickson:!0};function l(t,e){return i.coerce(a,o,m,t,e)}return p(a,o,l,s,n),d(a,o,l,s),o}function T(t,e,r){return[Math.min(e/t.width,r/t.height),t,e+"x"+r]}function k(t,e,r,i){var a=document.createElementNS("http://www.w3.org/2000/svg","text"),o=n.select(a);return o.text(t).attr("x",0).attr("y",0).attr("text-anchor",r).attr("data-unformatted",t).call(f.convertToTspans,i).call(c.font,e),c.bBox(o.node())}function M(t,e,r,n,a,o){var s="_cache"+e;t[s]&&t[s].key===a||(t[s]={key:a,value:r});var l=i.aggNums(o,null,[t[s].value,n],2);return t[s].value=l,l}e.exports=function(t,e,r,p){var d,m=t._fullLayout;b(r)&&p&&(d=p()),i.makeTraceGroups(m._indicatorlayer,e,"trace").each((function(e){var p,A,S,E,L,C=e[0].trace,P=n.select(this),I=C._hasGauge,O=C._isAngular,z=C._isBullet,D=C.domain,R={w:m._size.w*(D.x[1]-D.x[0]),h:m._size.h*(D.y[1]-D.y[0]),l:m._size.l+m._size.w*D.x[0],r:m._size.r+m._size.w*(1-D.x[1]),t:m._size.t+m._size.h*(1-D.y[1]),b:m._size.b+m._size.h*D.y[0]},F=R.l+R.w/2,B=R.t+R.h/2,N=Math.min(R.w/2,R.h),j=u.innerRadius*N,U=C.align||"center";if(A=B,I){if(O&&(p=F,A=B+N/2,S=function(t){return function(t,e){var r=Math.sqrt(t.width/2*(t.width/2)+t.height*t.height);return[e/r,t,e]}(t,.9*j)}),z){var V=u.bulletPadding,q=1-u.bulletNumberDomainSize+V;p=R.l+(q+(1-q)*y[U])*R.w,S=function(t){return T(t,(u.bulletNumberDomainSize-V)*R.w,R.h)}}}else p=R.l+y[U]*R.w,S=function(t){return T(t,R.w,R.h)};!function(t,e,r,s){var l,u,p,d=r[0].trace,m=s.numbersX,_=s.numbersY,T=d.align||"center",A=v[T],S=s.transitionOpts,E=s.onComplete,L=i.ensureSingle(e,"g","numbers"),C=[];d._hasNumber&&C.push("number");d._hasDelta&&(C.push("delta"),"left"===d.delta.position&&C.reverse());var P=L.selectAll("text").data(C);function I(e,r,n,i){if(!e.match("s")||n>=0==i>=0||r(n).slice(-1).match(x)||r(i).slice(-1).match(x))return r;var a=e.slice().replace("s","f").replace(/\d+/,(function(t){return parseInt(t)-1})),o=w(t,{tickformat:a});return function(t){return Math.abs(t)<1?h.tickText(o,t).text:r(t)}}P.enter().append("text"),P.attr("text-anchor",(function(){return A})).attr("class",(function(t){return t})).attr("x",null).attr("y",null).attr("dx",null).attr("dy",null),P.exit().remove();var O,z=d.mode+d.align;d._hasDelta&&(O=function(){var e=w(t,{tickformat:d.delta.valueformat},d._range);e.setScale(),h.prepTicks(e);var i=function(t){return h.tickText(e,t).text},a=function(t){return d.delta.relative?t.relativeDelta:t.delta},o=function(t,e){return 0===t||"number"!=typeof t||isNaN(t)?"-":(t>0?d.delta.increasing.symbol:d.delta.decreasing.symbol)+e(t)},s=function(t){return t.delta>=0?d.delta.increasing.color:d.delta.decreasing.color};void 0===d._deltaLastValue&&(d._deltaLastValue=a(r[0]));var l=L.select("text.delta");function p(){l.text(o(a(r[0]),i)).call(g.fill,s(r[0])).call(f.convertToTspans,t)}return l.call(c.font,d.delta.font).call(g.fill,s({delta:d._deltaLastValue})),b(S)?l.transition().duration(S.duration).ease(S.easing).tween("text",(function(){var t=n.select(this),e=a(r[0]),l=d._deltaLastValue,c=I(d.delta.valueformat,i,l,e),u=n.interpolateNumber(l,e);return d._deltaLastValue=e,function(e){t.text(o(u(e),c)),t.call(g.fill,s({delta:u(e)}))}})).each("end",(function(){p(),E&&E()})).each("interrupt",(function(){p(),E&&E()})):p(),u=k(o(a(r[0]),i),d.delta.font,A,t),l}(),z+=d.delta.position+d.delta.font.size+d.delta.font.family+d.delta.valueformat,z+=d.delta.increasing.symbol+d.delta.decreasing.symbol,p=u);d._hasNumber&&(!function(){var e=w(t,{tickformat:d.number.valueformat},d._range);e.setScale(),h.prepTicks(e);var i=function(t){return h.tickText(e,t).text},a=d.number.suffix,o=d.number.prefix,s=L.select("text.number");function u(){var e="number"==typeof r[0].y?o+i(r[0].y)+a:"-";s.text(e).call(c.font,d.number.font).call(f.convertToTspans,t)}b(S)?s.transition().duration(S.duration).ease(S.easing).each("end",(function(){u(),E&&E()})).each("interrupt",(function(){u(),E&&E()})).attrTween("text",(function(){var t=n.select(this),e=n.interpolateNumber(r[0].lastY,r[0].y);d._lastValue=r[0].y;var s=I(d.number.valueformat,i,r[0].lastY,r[0].y);return function(r){t.text(o+s(e(r))+a)}})):u(),l=k(o+i(r[0].y)+a,d.number.font,A,t)}(),z+=d.number.font.size+d.number.font.family+d.number.valueformat+d.number.suffix+d.number.prefix,p=l);if(d._hasDelta&&d._hasNumber){var D,R,F=[(l.left+l.right)/2,(l.top+l.bottom)/2],B=[(u.left+u.right)/2,(u.top+u.bottom)/2],N=.75*d.delta.font.size;"left"===d.delta.position&&(D=M(d,"deltaPos",0,-1*(l.width*y[d.align]+u.width*(1-y[d.align])+N),z,Math.min),R=F[1]-B[1],p={width:l.width+u.width+N,height:Math.max(l.height,u.height),left:u.left+D,right:l.right,top:Math.min(l.top,u.top+R),bottom:Math.max(l.bottom,u.bottom+R)}),"right"===d.delta.position&&(D=M(d,"deltaPos",0,l.width*(1-y[d.align])+u.width*y[d.align]+N,z,Math.max),R=F[1]-B[1],p={width:l.width+u.width+N,height:Math.max(l.height,u.height),left:l.left,right:u.right+D,top:Math.min(l.top,u.top+R),bottom:Math.max(l.bottom,u.bottom+R)}),"bottom"===d.delta.position&&(D=null,R=u.height,p={width:Math.max(l.width,u.width),height:l.height+u.height,left:Math.min(l.left,u.left),right:Math.max(l.right,u.right),top:l.bottom-l.height,bottom:l.bottom+u.height}),"top"===d.delta.position&&(D=null,R=l.top,p={width:Math.max(l.width,u.width),height:l.height+u.height,left:Math.min(l.left,u.left),right:Math.max(l.right,u.right),top:l.bottom-l.height-u.height,bottom:l.bottom}),O.attr({dx:D,dy:R})}(d._hasNumber||d._hasDelta)&&L.attr("transform",(function(){var t=s.numbersScaler(p);z+=t[2];var e,r=M(d,"numbersScale",1,t[0],z,Math.min);d._scaleNumbers||(r=1),e=d._isAngular?_-r*p.bottom:_-r*(p.top+p.bottom)/2,d._numbersTop=r*p.top+e;var n=p[T];"center"===T&&(n=(p.left+p.right)/2);var i=m-r*n;return i=M(d,"numbersTranslate",0,i,z,Math.max),o(i,e)+a(r)}))}(t,P,e,{numbersX:p,numbersY:A,numbersScaler:S,transitionOpts:r,onComplete:d}),I&&(E={range:C.gauge.axis.range,color:C.gauge.bgcolor,line:{color:C.gauge.bordercolor,width:0},thickness:1},L={range:C.gauge.axis.range,color:"rgba(0, 0, 0, 0)",line:{color:C.gauge.bordercolor,width:C.gauge.borderwidth},thickness:1});var H=P.selectAll("g.angular").data(O?e:[]);H.exit().remove();var G=P.selectAll("g.angularaxis").data(O?e:[]);G.exit().remove(),O&&function(t,e,r,i){var a,c,u,f,p=r[0].trace,d=i.size,m=i.radius,g=i.innerRadius,v=i.gaugeBg,y=i.gaugeOutline,x=[d.l+d.w/2,d.t+d.h/2+m/2],T=i.gauge,k=i.layer,M=i.transitionOpts,A=i.onComplete,S=Math.PI/2;function E(t){var e=p.gauge.axis.range[0],r=(t-e)/(p.gauge.axis.range[1]-e)*Math.PI-S;return r<-S?-S:r>S?S:r}function L(t){return n.svg.arc().innerRadius((g+m)/2-t/2*(m-g)).outerRadius((g+m)/2+t/2*(m-g)).startAngle(-S)}function C(t){t.attr("d",(function(t){return L(t.thickness).startAngle(E(t.range[0])).endAngle(E(t.range[1]))()}))}T.enter().append("g").classed("angular",!0),T.attr("transform",o(x[0],x[1])),k.enter().append("g").classed("angularaxis",!0).classed("crisp",!0),k.selectAll("g.xangularaxistick,path,text").remove(),(a=w(t,p.gauge.axis)).type="linear",a.range=p.gauge.axis.range,a._id="xangularaxis",a.ticklabeloverflow="allow",a.setScale();var P=function(t){return(a.range[0]-t.x)/(a.range[1]-a.range[0])*Math.PI+Math.PI},I={},O=h.makeLabelFns(a,0).labelStandoff;I.xFn=function(t){var e=P(t);return Math.cos(e)*O},I.yFn=function(t){var e=P(t),r=Math.sin(e)>0?.2:1;return-Math.sin(e)*(O+t.fontSize*r)+Math.abs(Math.cos(e))*(t.fontSize*l)},I.anchorFn=function(t){var e=P(t),r=Math.cos(e);return Math.abs(r)<.1?"middle":r>0?"start":"end"},I.heightFn=function(t,e,r){var n=P(t);return-.5*(1+Math.sin(n))*r};var z=function(t){return o(x[0]+m*Math.cos(t),x[1]-m*Math.sin(t))};u=function(t){return z(P(t))};if(c=h.calcTicks(a),f=h.getTickSigns(a)[2],a.visible){f="inside"===a.ticks?-1:1;var D=(a.linewidth||1)/2;h.drawTicks(t,a,{vals:c,layer:k,path:"M"+f*D+",0h"+f*a.ticklen,transFn:function(t){var e=P(t);return z(e)+"rotate("+-s(e)+")"}}),h.drawLabels(t,a,{vals:c,layer:k,transFn:u,labelFns:I})}var R=[v].concat(p.gauge.steps),F=T.selectAll("g.bg-arc").data(R);F.enter().append("g").classed("bg-arc",!0).append("path"),F.select("path").call(C).call(_),F.exit().remove();var B=L(p.gauge.bar.thickness),N=T.selectAll("g.value-arc").data([p.gauge.bar]);N.enter().append("g").classed("value-arc",!0).append("path");var j=N.select("path");b(M)?(j.transition().duration(M.duration).ease(M.easing).each("end",(function(){A&&A()})).each("interrupt",(function(){A&&A()})).attrTween("d",(U=B,V=E(r[0].lastY),q=E(r[0].y),function(){var t=n.interpolate(V,q);return function(e){return U.endAngle(t(e))()}})),p._lastValue=r[0].y):j.attr("d","number"==typeof r[0].y?B.endAngle(E(r[0].y)):"M0,0Z");var U,V,q;j.call(_),N.exit().remove(),R=[];var H=p.gauge.threshold.value;(H||0===H)&&R.push({range:[H,H],color:p.gauge.threshold.color,line:{color:p.gauge.threshold.line.color,width:p.gauge.threshold.line.width},thickness:p.gauge.threshold.thickness});var G=T.selectAll("g.threshold-arc").data(R);G.enter().append("g").classed("threshold-arc",!0).append("path"),G.select("path").call(C).call(_),G.exit().remove();var Y=T.selectAll("g.gauge-outline").data([y]);Y.enter().append("g").classed("gauge-outline",!0).append("path"),Y.select("path").call(C).call(_),Y.exit().remove()}(t,0,e,{radius:N,innerRadius:j,gauge:H,layer:G,size:R,gaugeBg:E,gaugeOutline:L,transitionOpts:r,onComplete:d});var Y=P.selectAll("g.bullet").data(z?e:[]);Y.exit().remove();var W=P.selectAll("g.bulletaxis").data(z?e:[]);W.exit().remove(),z&&function(t,e,r,n){var i,a,s,l,c,f=r[0].trace,p=n.gauge,d=n.layer,m=n.gaugeBg,v=n.gaugeOutline,y=n.size,x=f.domain,T=n.transitionOpts,k=n.onComplete;p.enter().append("g").classed("bullet",!0),p.attr("transform",o(y.l,y.t)),d.enter().append("g").classed("bulletaxis",!0).classed("crisp",!0),d.selectAll("g.xbulletaxistick,path,text").remove();var M=y.h,A=f.gauge.bar.thickness*M,S=x.x[0],E=x.x[0]+(x.x[1]-x.x[0])*(f._hasNumber||f._hasDelta?1-u.bulletNumberDomainSize:1);(i=w(t,f.gauge.axis))._id="xbulletaxis",i.domain=[S,E],i.setScale(),a=h.calcTicks(i),s=h.makeTransTickFn(i),l=h.getTickSigns(i)[2],c=y.t+y.h,i.visible&&(h.drawTicks(t,i,{vals:"inside"===i.ticks?h.clipEnds(i,a):a,layer:d,path:h.makeTickPath(i,c,l),transFn:s}),h.drawLabels(t,i,{vals:a,layer:d,transFn:s,labelFns:h.makeLabelFns(i,c)}));function L(t){t.attr("width",(function(t){return Math.max(0,i.c2p(t.range[1])-i.c2p(t.range[0]))})).attr("x",(function(t){return i.c2p(t.range[0])})).attr("y",(function(t){return.5*(1-t.thickness)*M})).attr("height",(function(t){return t.thickness*M}))}var C=[m].concat(f.gauge.steps),P=p.selectAll("g.bg-bullet").data(C);P.enter().append("g").classed("bg-bullet",!0).append("rect"),P.select("rect").call(L).call(_),P.exit().remove();var I=p.selectAll("g.value-bullet").data([f.gauge.bar]);I.enter().append("g").classed("value-bullet",!0).append("rect"),I.select("rect").attr("height",A).attr("y",(M-A)/2).call(_),b(T)?I.select("rect").transition().duration(T.duration).ease(T.easing).each("end",(function(){k&&k()})).each("interrupt",(function(){k&&k()})).attr("width",Math.max(0,i.c2p(Math.min(f.gauge.axis.range[1],r[0].y)))):I.select("rect").attr("width","number"==typeof r[0].y?Math.max(0,i.c2p(Math.min(f.gauge.axis.range[1],r[0].y))):0);I.exit().remove();var O=r.filter((function(){return f.gauge.threshold.value||0===f.gauge.threshold.value})),z=p.selectAll("g.threshold-bullet").data(O);z.enter().append("g").classed("threshold-bullet",!0).append("line"),z.select("line").attr("x1",i.c2p(f.gauge.threshold.value)).attr("x2",i.c2p(f.gauge.threshold.value)).attr("y1",(1-f.gauge.threshold.thickness)/2*M).attr("y2",(1-(1-f.gauge.threshold.thickness)/2)*M).call(g.stroke,f.gauge.threshold.line.color).style("stroke-width",f.gauge.threshold.line.width),z.exit().remove();var D=p.selectAll("g.gauge-outline").data([v]);D.enter().append("g").classed("gauge-outline",!0).append("rect"),D.select("rect").call(L).call(_),D.exit().remove()}(t,0,e,{gauge:Y,layer:W,size:R,gaugeBg:E,gaugeOutline:L,transitionOpts:r,onComplete:d});var X=P.selectAll("text.title").data(e);X.exit().remove(),X.enter().append("text").classed("title",!0),X.attr("text-anchor",(function(){return z?v.right:v[C.title.align]})).text(C.title.text).call(c.font,C.title.font).call(f.convertToTspans,t),X.attr("transform",(function(){var t,e=R.l+R.w*y[C.title.align],r=u.titlePadding,n=c.bBox(X.node());if(I){if(O)if(C.gauge.axis.visible)t=c.bBox(G.node()).top-r-n.bottom;else t=R.t+R.h/2-N/2-n.bottom-r;z&&(t=A-(n.top+n.bottom)/2,e=R.l-u.bulletPadding*R.w)}else t=C._numbersTop-r-n.bottom;return o(e,t)}))}))}},{"../../components/color":658,"../../components/drawing":680,"../../constants/alignment":763,"../../lib":795,"../../lib/svg_text_utils":820,"../../plots/cartesian/axes":845,"../../plots/cartesian/axis_defaults":847,"../../plots/cartesian/layout_attributes":859,"../../plots/cartesian/position_defaults":862,"./constants":1131,"@plotly/d3":57}],1135:[function(t,e,r){"use strict";var n=t("../../components/colorscale/attributes"),i=t("../../plots/hoverformat_attributes"),a=t("../../plots/template_attributes").hovertemplateAttrs,o=t("../mesh3d/attributes"),s=t("../../plots/attributes"),l=t("../../lib/extend").extendFlat,c=t("../../plot_api/edit_types").overrideAll;var u=e.exports=c(l({x:{valType:"data_array"},y:{valType:"data_array"},z:{valType:"data_array"},value:{valType:"data_array"},isomin:{valType:"number"},isomax:{valType:"number"},surface:{show:{valType:"boolean",dflt:!0},count:{valType:"integer",dflt:2,min:1},fill:{valType:"number",min:0,max:1,dflt:1},pattern:{valType:"flaglist",flags:["A","B","C","D","E"],extras:["all","odd","even"],dflt:"all"}},spaceframe:{show:{valType:"boolean",dflt:!1},fill:{valType:"number",min:0,max:1,dflt:.15}},slices:{x:{show:{valType:"boolean",dflt:!1},locations:{valType:"data_array",dflt:[]},fill:{valType:"number",min:0,max:1,dflt:1}},y:{show:{valType:"boolean",dflt:!1},locations:{valType:"data_array",dflt:[]},fill:{valType:"number",min:0,max:1,dflt:1}},z:{show:{valType:"boolean",dflt:!1},locations:{valType:"data_array",dflt:[]},fill:{valType:"number",min:0,max:1,dflt:1}}},caps:{x:{show:{valType:"boolean",dflt:!0},fill:{valType:"number",min:0,max:1,dflt:1}},y:{show:{valType:"boolean",dflt:!0},fill:{valType:"number",min:0,max:1,dflt:1}},z:{show:{valType:"boolean",dflt:!0},fill:{valType:"number",min:0,max:1,dflt:1}}},text:{valType:"string",dflt:"",arrayOk:!0},hovertext:{valType:"string",dflt:"",arrayOk:!0},hovertemplate:a(),xhoverformat:i("x"),yhoverformat:i("y"),zhoverformat:i("z"),valuehoverformat:i("value",1),showlegend:l({},s.showlegend,{dflt:!1})},n("",{colorAttr:"`value`",showScaleDflt:!0,editTypeOverride:"calc"}),{opacity:o.opacity,lightposition:o.lightposition,lighting:o.lighting,flatshading:o.flatshading,contour:o.contour,hoverinfo:l({},s.hoverinfo)}),"calc","nested");u.flatshading.dflt=!0,u.lighting.facenormalsepsilon.dflt=0,u.x.editType=u.y.editType=u.z.editType=u.value.editType="calc+clearAxisTypes",u.transforms=void 0},{"../../components/colorscale/attributes":665,"../../lib/extend":785,"../../plot_api/edit_types":827,"../../plots/attributes":841,"../../plots/hoverformat_attributes":899,"../../plots/template_attributes":918,"../mesh3d/attributes":1140}],1136:[function(t,e,r){"use strict";var n=t("../../components/colorscale/calc"),i=t("../streamtube/calc").processGrid,a=t("../streamtube/calc").filter;e.exports=function(t,e){e._len=Math.min(e.x.length,e.y.length,e.z.length,e.value.length),e._x=a(e.x,e._len),e._y=a(e.y,e._len),e._z=a(e.z,e._len),e._value=a(e.value,e._len);var r=i(e);e._gridFill=r.fill,e._Xs=r.Xs,e._Ys=r.Ys,e._Zs=r.Zs,e._len=r.len;for(var o=1/0,s=-1/0,l=0;l0;r--){var n=Math.min(e[r],e[r-1]),i=Math.max(e[r],e[r-1]);if(i>n&&n-1}function R(t,e){return null===t?e:t}function F(e,r,n){C();var i,a,o,l=[r],c=[n];if(s>=1)l=[r],c=[n];else if(s>0){var u=function(t,e){var r=t[0],n=t[1],i=t[2],a=function(t,e,r){for(var n=[],i=0;i-1?n[p]:L(d,m,v);h[p]=x>-1?x:I(d,m,v,R(e,y))}i=h[0],a=h[1],o=h[2],t._meshI.push(i),t._meshJ.push(a),t._meshK.push(o),++g}}function B(t,e,r,n){var i=t[3];in&&(i=n);for(var a=(t[3]-i)/(t[3]-e[3]+1e-9),o=[],s=0;s<4;s++)o[s]=(1-a)*t[s]+a*e[s];return o}function N(t,e,r){return t>=e&&t<=r}function j(t){var e=.001*(E-S);return t>=S-e&&t<=E+e}function U(e){for(var r=[],n=0;n<4;n++){var i=e[n];r.push([t._x[i],t._y[i],t._z[i],t._value[i]])}return r}function V(t,e,r,n,i,a){a||(a=1),r=[-1,-1,-1];var o=!1,s=[N(e[0][3],n,i),N(e[1][3],n,i),N(e[2][3],n,i)];if(!s[0]&&!s[1]&&!s[2])return!1;var l=function(t,e,r){return j(e[0][3])&&j(e[1][3])&&j(e[2][3])?(F(t,e,r),!0):a<3&&V(t,e,r,S,E,++a)};if(s[0]&&s[1]&&s[2])return l(t,e,r)||o;var c=!1;return[[0,1,2],[2,0,1],[1,2,0]].forEach((function(a){if(s[a[0]]&&s[a[1]]&&!s[a[2]]){var u=e[a[0]],f=e[a[1]],h=e[a[2]],p=B(h,u,n,i),d=B(h,f,n,i);o=l(t,[d,p,u],[-1,-1,r[a[0]]])||o,o=l(t,[u,f,d],[r[a[0]],r[a[1]],-1])||o,c=!0}})),c||[[0,1,2],[1,2,0],[2,0,1]].forEach((function(a){if(s[a[0]]&&!s[a[1]]&&!s[a[2]]){var u=e[a[0]],f=e[a[1]],h=e[a[2]],p=B(f,u,n,i),d=B(h,u,n,i);o=l(t,[d,p,u],[-1,-1,r[a[0]]])||o,c=!0}})),o}function q(t,e,r,n){var i=!1,a=U(e),o=[N(a[0][3],r,n),N(a[1][3],r,n),N(a[2][3],r,n),N(a[3][3],r,n)];if(!(o[0]||o[1]||o[2]||o[3]))return i;if(o[0]&&o[1]&&o[2]&&o[3])return m&&(i=function(t,e,r){var n=function(n,i,a){F(t,[e[n],e[i],e[a]],[r[n],r[i],r[a]])};n(0,1,2),n(3,0,1),n(2,3,0),n(1,2,3)}(t,a,e)||i),i;var s=!1;return[[0,1,2,3],[3,0,1,2],[2,3,0,1],[1,2,3,0]].forEach((function(l){if(o[l[0]]&&o[l[1]]&&o[l[2]]&&!o[l[3]]){var c=a[l[0]],u=a[l[1]],f=a[l[2]],h=a[l[3]];if(m)i=F(t,[c,u,f],[e[l[0]],e[l[1]],e[l[2]]])||i;else{var p=B(h,c,r,n),d=B(h,u,r,n),g=B(h,f,r,n);i=F(null,[p,d,g],[-1,-1,-1])||i}s=!0}})),s?i:([[0,1,2,3],[1,2,3,0],[2,3,0,1],[3,0,1,2],[0,2,3,1],[1,3,2,0]].forEach((function(l){if(o[l[0]]&&o[l[1]]&&!o[l[2]]&&!o[l[3]]){var c=a[l[0]],u=a[l[1]],f=a[l[2]],h=a[l[3]],p=B(f,c,r,n),d=B(f,u,r,n),g=B(h,u,r,n),v=B(h,c,r,n);m?(i=F(t,[c,v,p],[e[l[0]],-1,-1])||i,i=F(t,[u,d,g],[e[l[1]],-1,-1])||i):i=function(t,e,r){var n=function(n,i,a){F(t,[e[n],e[i],e[a]],[r[n],r[i],r[a]])};n(0,1,2),n(2,3,0)}(null,[p,d,g,v],[-1,-1,-1,-1])||i,s=!0}})),s||[[0,1,2,3],[1,2,3,0],[2,3,0,1],[3,0,1,2]].forEach((function(l){if(o[l[0]]&&!o[l[1]]&&!o[l[2]]&&!o[l[3]]){var c=a[l[0]],u=a[l[1]],f=a[l[2]],h=a[l[3]],p=B(u,c,r,n),d=B(f,c,r,n),g=B(h,c,r,n);m?(i=F(t,[c,p,d],[e[l[0]],-1,-1])||i,i=F(t,[c,d,g],[e[l[0]],-1,-1])||i,i=F(t,[c,g,p],[e[l[0]],-1,-1])||i):i=F(null,[p,d,g],[-1,-1,-1])||i,s=!0}})),i)}function H(t,e,r,n,i,a,o,s,l,c,u){var f=!1;return d&&(D(t,"A")&&(f=q(null,[e,r,n,a],c,u)||f),D(t,"B")&&(f=q(null,[r,n,i,l],c,u)||f),D(t,"C")&&(f=q(null,[r,a,o,l],c,u)||f),D(t,"D")&&(f=q(null,[n,a,s,l],c,u)||f),D(t,"E")&&(f=q(null,[r,n,a,l],c,u)||f)),m&&(f=q(t,[r,n,a,l],c,u)||f),f}function G(t,e,r,n,i,a,o,s){return[!0===s[0]||V(t,U([e,r,n]),[e,r,n],a,o),!0===s[1]||V(t,U([n,i,e]),[n,i,e],a,o)]}function Y(t,e,r,n,i,a,o,s,l){return s?G(t,e,r,i,n,a,o,l):G(t,r,i,n,e,a,o,l)}function W(t,e,r,n,i,a,o){var s,l,c,u,f=!1,h=function(){f=V(t,[s,l,c],[-1,-1,-1],i,a)||f,f=V(t,[c,u,s],[-1,-1,-1],i,a)||f},p=o[0],d=o[1],m=o[2];return p&&(s=O(U([k(e,r-0,n-0)])[0],U([k(e-1,r-0,n-0)])[0],p),l=O(U([k(e,r-0,n-1)])[0],U([k(e-1,r-0,n-1)])[0],p),c=O(U([k(e,r-1,n-1)])[0],U([k(e-1,r-1,n-1)])[0],p),u=O(U([k(e,r-1,n-0)])[0],U([k(e-1,r-1,n-0)])[0],p),h()),d&&(s=O(U([k(e-0,r,n-0)])[0],U([k(e-0,r-1,n-0)])[0],d),l=O(U([k(e-0,r,n-1)])[0],U([k(e-0,r-1,n-1)])[0],d),c=O(U([k(e-1,r,n-1)])[0],U([k(e-1,r-1,n-1)])[0],d),u=O(U([k(e-1,r,n-0)])[0],U([k(e-1,r-1,n-0)])[0],d),h()),m&&(s=O(U([k(e-0,r-0,n)])[0],U([k(e-0,r-0,n-1)])[0],m),l=O(U([k(e-0,r-1,n)])[0],U([k(e-0,r-1,n-1)])[0],m),c=O(U([k(e-1,r-1,n)])[0],U([k(e-1,r-1,n-1)])[0],m),u=O(U([k(e-1,r-0,n)])[0],U([k(e-1,r-0,n-1)])[0],m),h()),f}function X(t,e,r,n,i,a,o,s,l,c,u,f){var h=t;return f?(d&&"even"===t&&(h=null),H(h,e,r,n,i,a,o,s,l,c,u)):(d&&"odd"===t&&(h=null),H(h,l,s,o,a,i,n,r,e,c,u))}function Z(t,e,r,n,i){for(var a=[],o=0,s=0;sMath.abs(d-A)?[M,d]:[d,A];$(e,T[0],T[1])}}var L=[[Math.min(S,A),Math.max(S,A)],[Math.min(M,E),Math.max(M,E)]];["x","y","z"].forEach((function(e){for(var r=[],n=0;n0&&(u.push(p.id),"x"===e?f.push([p.distRatio,0,0]):"y"===e?f.push([0,p.distRatio,0]):f.push([0,0,p.distRatio]))}else c=nt(1,"x"===e?b-1:"y"===e?_-1:w-1);u.length>0&&(r[i]="x"===e?tt(null,u,a,o,f,r[i]):"y"===e?et(null,u,a,o,f,r[i]):rt(null,u,a,o,f,r[i]),i++),c.length>0&&(r[i]="x"===e?Z(null,c,a,o,r[i]):"y"===e?J(null,c,a,o,r[i]):K(null,c,a,o,r[i]),i++)}var d=t.caps[e];d.show&&d.fill&&(z(d.fill),r[i]="x"===e?Z(null,[0,b-1],a,o,r[i]):"y"===e?J(null,[0,_-1],a,o,r[i]):K(null,[0,w-1],a,o,r[i]),i++)}})),0===g&&P(),t._meshX=n,t._meshY=i,t._meshZ=a,t._meshIntensity=o,t._Xs=v,t._Ys=y,t._Zs=x}(),t}e.exports={findNearestOnAxis:l,generateIsoMeshes:h,createIsosurfaceTrace:function(t,e){var r=t.glplot.gl,i=n({gl:r}),a=new c(t,i,e.uid);return i._trace=a,a.update(e),t.glplot.add(i),a}}},{"../../components/colorscale":670,"../../lib/gl_format_color":791,"../../lib/str2rgbarray":819,"../../plots/gl3d/zip3":898,"gl-mesh3d":306}],1138:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../registry"),a=t("./attributes"),o=t("../../components/colorscale/defaults");function s(t,e,r,n,a){var s=a("isomin"),l=a("isomax");null!=l&&null!=s&&s>l&&(e.isomin=null,e.isomax=null);var c=a("x"),u=a("y"),f=a("z"),h=a("value");c&&c.length&&u&&u.length&&f&&f.length&&h&&h.length?(i.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x","y","z"],n),a("valuehoverformat"),["x","y","z"].forEach((function(t){a(t+"hoverformat");var e="caps."+t;a(e+".show")&&a(e+".fill");var r="slices."+t;a(r+".show")&&(a(r+".fill"),a(r+".locations"))})),a("spaceframe.show")&&a("spaceframe.fill"),a("surface.show")&&(a("surface.count"),a("surface.fill"),a("surface.pattern")),a("contour.show")&&(a("contour.color"),a("contour.width")),["text","hovertext","hovertemplate","lighting.ambient","lighting.diffuse","lighting.specular","lighting.roughness","lighting.fresnel","lighting.vertexnormalsepsilon","lighting.facenormalsepsilon","lightposition.x","lightposition.y","lightposition.z","flatshading","opacity"].forEach((function(t){a(t)})),o(t,e,n,a,{prefix:"",cLetter:"c"}),e._length=null):e.visible=!1}e.exports={supplyDefaults:function(t,e,r,i){s(t,e,r,i,(function(r,i){return n.coerce(t,e,a,r,i)}))},supplyIsoDefaults:s}},{"../../components/colorscale/defaults":668,"../../lib":795,"../../registry":923,"./attributes":1135}],1139:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults").supplyDefaults,calc:t("./calc"),colorbar:{min:"cmin",max:"cmax"},plot:t("./convert").createIsosurfaceTrace,moduleType:"trace",name:"isosurface",basePlotModule:t("../../plots/gl3d"),categories:["gl3d","showLegend"],meta:{}}},{"../../plots/gl3d":887,"./attributes":1135,"./calc":1136,"./convert":1137,"./defaults":1138}],1140:[function(t,e,r){"use strict";var n=t("../../components/colorscale/attributes"),i=t("../../plots/hoverformat_attributes"),a=t("../../plots/template_attributes").hovertemplateAttrs,o=t("../surface/attributes"),s=t("../../plots/attributes"),l=t("../../lib/extend").extendFlat;e.exports=l({x:{valType:"data_array",editType:"calc+clearAxisTypes"},y:{valType:"data_array",editType:"calc+clearAxisTypes"},z:{valType:"data_array",editType:"calc+clearAxisTypes"},i:{valType:"data_array",editType:"calc"},j:{valType:"data_array",editType:"calc"},k:{valType:"data_array",editType:"calc"},text:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertemplate:a({editType:"calc"}),xhoverformat:i("x"),yhoverformat:i("y"),zhoverformat:i("z"),delaunayaxis:{valType:"enumerated",values:["x","y","z"],dflt:"z",editType:"calc"},alphahull:{valType:"number",dflt:-1,editType:"calc"},intensity:{valType:"data_array",editType:"calc"},intensitymode:{valType:"enumerated",values:["vertex","cell"],dflt:"vertex",editType:"calc"},color:{valType:"color",editType:"calc"},vertexcolor:{valType:"data_array",editType:"calc"},facecolor:{valType:"data_array",editType:"calc"},transforms:void 0},n("",{colorAttr:"`intensity`",showScaleDflt:!0,editTypeOverride:"calc"}),{opacity:o.opacity,flatshading:{valType:"boolean",dflt:!1,editType:"calc"},contour:{show:l({},o.contours.x.show,{}),color:o.contours.x.color,width:o.contours.x.width,editType:"calc"},lightposition:{x:l({},o.lightposition.x,{dflt:1e5}),y:l({},o.lightposition.y,{dflt:1e5}),z:l({},o.lightposition.z,{dflt:0}),editType:"calc"},lighting:l({vertexnormalsepsilon:{valType:"number",min:0,max:1,dflt:1e-12,editType:"calc"},facenormalsepsilon:{valType:"number",min:0,max:1,dflt:1e-6,editType:"calc"},editType:"calc"},o.lighting),hoverinfo:l({},s.hoverinfo,{editType:"calc"}),showlegend:l({},s.showlegend,{dflt:!1})})},{"../../components/colorscale/attributes":665,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/hoverformat_attributes":899,"../../plots/template_attributes":918,"../surface/attributes":1323}],1141:[function(t,e,r){"use strict";var n=t("../../components/colorscale/calc");e.exports=function(t,e){e.intensity&&n(t,e,{vals:e.intensity,containerStr:"",cLetter:"c"})}},{"../../components/colorscale/calc":666}],1142:[function(t,e,r){"use strict";var n=t("gl-mesh3d"),i=t("delaunay-triangulate"),a=t("alpha-shape"),o=t("convex-hull"),s=t("../../lib/gl_format_color").parseColorScale,l=t("../../lib/str2rgbarray"),c=t("../../components/colorscale").extractOpts,u=t("../../plots/gl3d/zip3");function f(t,e,r){this.scene=t,this.uid=r,this.mesh=e,this.name="",this.color="#fff",this.data=null,this.showContour=!1}var h=f.prototype;function p(t){for(var e=[],r=t.length,n=0;n=e-.5)return!1;return!0}h.handlePick=function(t){if(t.object===this.mesh){var e=t.index=t.data.index;t.data._cellCenter?t.traceCoordinate=t.data.dataCoordinate:t.traceCoordinate=[this.data.x[e],this.data.y[e],this.data.z[e]];var r=this.data.hovertext||this.data.text;return Array.isArray(r)&&void 0!==r[e]?t.textLabel=r[e]:r&&(t.textLabel=r),!0}},h.update=function(t){var e=this.scene,r=e.fullSceneLayout;this.data=t;var n,f=t.x.length,h=u(d(r.xaxis,t.x,e.dataScale[0],t.xcalendar),d(r.yaxis,t.y,e.dataScale[1],t.ycalendar),d(r.zaxis,t.z,e.dataScale[2],t.zcalendar));if(t.i&&t.j&&t.k){if(t.i.length!==t.j.length||t.j.length!==t.k.length||!g(t.i,f)||!g(t.j,f)||!g(t.k,f))return;n=u(m(t.i),m(t.j),m(t.k))}else n=0===t.alphahull?o(h):t.alphahull>0?a(t.alphahull,h):function(t,e){for(var r=["x","y","z"].indexOf(t),n=[],a=e.length,o=0;ov):g=M>w,v=M;var A=c(w,T,k,M);A.pos=_,A.yc=(w+M)/2,A.i=b,A.dir=g?"increasing":"decreasing",A.x=A.pos,A.y=[k,T],y&&(A.orig_p=r[b]),d&&(A.tx=e.text[b]),m&&(A.htx=e.hovertext[b]),x.push(A)}else x.push({pos:_,empty:!0})}return e._extremes[l._id]=a.findExtremes(l,n.concat(h,f),{padded:!0}),x.length&&(x[0].t={labels:{open:i(t,"open:")+" ",high:i(t,"high:")+" ",low:i(t,"low:")+" ",close:i(t,"close:")+" "}}),x}e.exports={calc:function(t,e){var r=a.getFromId(t,e.xaxis),i=a.getFromId(t,e.yaxis),s=function(t,e,r){var i=r._minDiff;if(!i){var a,s=t._fullData,l=[];for(i=1/0,a=0;a"+c.labels[x]+n.hoverLabelText(s,b,l.yhoverformat):((y=i.extendFlat({},h)).y0=y.y1=_,y.yLabelVal=b,y.yLabel=c.labels[x]+n.hoverLabelText(s,b,l.yhoverformat),y.name="",f.push(y),g[b]=y)}return f}function h(t,e,r,i){var a=t.cd,o=t.ya,l=a[0].trace,f=a[0].t,h=u(t,e,r,i);if(!h)return[];var p=a[h.index],d=h.index=p.i,m=p.dir;function g(t){return f.labels[t]+n.hoverLabelText(o,l[t][d],l.yhoverformat)}var v=p.hi||l.hoverinfo,y=v.split("+"),x="all"===v,b=x||-1!==y.indexOf("y"),_=x||-1!==y.indexOf("text"),w=b?[g("open"),g("high"),g("low"),g("close")+" "+c[m]]:[];return _&&s(p,l,w),h.extraText=w.join("
    "),h.y0=h.y1=o.c2p(p.yc,!0),[h]}e.exports={hoverPoints:function(t,e,r,n){return t.cd[0].trace.hoverlabel.split?f(t,e,r,n):h(t,e,r,n)},hoverSplit:f,hoverOnPoints:h}},{"../../components/color":658,"../../components/fx":698,"../../constants/delta.js":765,"../../lib":795,"../../plots/cartesian/axes":845}],1149:[function(t,e,r){"use strict";e.exports={moduleType:"trace",name:"ohlc",basePlotModule:t("../../plots/cartesian"),categories:["cartesian","svg","showLegend"],meta:{},attributes:t("./attributes"),supplyDefaults:t("./defaults"),calc:t("./calc").calc,plot:t("./plot"),style:t("./style"),hoverPoints:t("./hover").hoverPoints,selectPoints:t("./select")}},{"../../plots/cartesian":858,"./attributes":1145,"./calc":1146,"./defaults":1147,"./hover":1148,"./plot":1151,"./select":1152,"./style":1153}],1150:[function(t,e,r){"use strict";var n=t("../../registry"),i=t("../../lib");e.exports=function(t,e,r,a){var o=r("x"),s=r("open"),l=r("high"),c=r("low"),u=r("close");if(r("hoverlabel.split"),n.getComponentMethod("calendars","handleTraceDefaults")(t,e,["x"],a),s&&l&&c&&u){var f=Math.min(s.length,l.length,c.length,u.length);return o&&(f=Math.min(f,i.minRowLength(o))),e._length=f,f}}},{"../../lib":795,"../../registry":923}],1151:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("../../lib");e.exports=function(t,e,r,a){var o=e.yaxis,s=e.xaxis,l=!!s.rangebreaks;i.makeTraceGroups(a,r,"trace ohlc").each((function(t){var e=n.select(this),r=t[0],a=r.t;if(!0!==r.trace.visible||a.empty)e.remove();else{var c=a.tickLen,u=e.selectAll("path").data(i.identity);u.enter().append("path"),u.exit().remove(),u.attr("d",(function(t){if(t.empty)return"M0,0Z";var e=s.c2p(t.pos-c,!0),r=s.c2p(t.pos+c,!0),n=l?(e+r)/2:s.c2p(t.pos,!0);return"M"+e+","+o.c2p(t.o,!0)+"H"+n+"M"+n+","+o.c2p(t.h,!0)+"V"+o.c2p(t.l,!0)+"M"+r+","+o.c2p(t.c,!0)+"H"+n}))}}))}},{"../../lib":795,"@plotly/d3":57}],1152:[function(t,e,r){"use strict";e.exports=function(t,e){var r,n=t.cd,i=t.xaxis,a=t.yaxis,o=[],s=n[0].t.bPos||0;if(!1===e)for(r=0;r=t.length)return!1;if(void 0!==e[t[r]])return!1;e[t[r]]=!0}return!0}(t.map((function(t){return t.displayindex}))))for(e=0;e0;c&&(o="array");var u=r("categoryorder",o);"array"===u?(r("categoryarray"),r("ticktext")):(delete t.categoryarray,delete t.ticktext),c||"array"!==u||(e.categoryorder="trace")}}e.exports=function(t,e,r,f){function h(r,i){return n.coerce(t,e,l,r,i)}var p=s(t,e,{name:"dimensions",handleItemDefaults:u}),d=function(t,e,r,o,s){s("line.shape"),s("line.hovertemplate");var l=s("line.color",o.colorway[0]);if(i(t,"line")&&n.isArrayOrTypedArray(l)){if(l.length)return s("line.colorscale"),a(t,e,o,s,{prefix:"line.",cLetter:"c"}),l.length;e.line.color=r}return 1/0}(t,e,r,f,h);o(e,f,h),Array.isArray(p)&&p.length||(e.visible=!1),c(e,p,"values",d),h("hoveron"),h("hovertemplate"),h("arrangement"),h("bundlecolors"),h("sortpaths"),h("counts");var m={family:f.font.family,size:Math.round(f.font.size),color:f.font.color};n.coerceFont(h,"labelfont",m);var g={family:f.font.family,size:Math.round(f.font.size/1.2),color:f.font.color};n.coerceFont(h,"tickfont",g)}},{"../../components/colorscale/defaults":668,"../../components/colorscale/helpers":669,"../../lib":795,"../../plots/array_container_defaults":840,"../../plots/domain":872,"../parcoords/merge_length":1170,"./attributes":1154}],1158:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),calc:t("./calc"),plot:t("./plot"),colorbar:{container:"line",min:"cmin",max:"cmax"},moduleType:"trace",name:"parcats",basePlotModule:t("./base_plot"),categories:["noOpacity"],meta:{}}},{"./attributes":1154,"./base_plot":1155,"./calc":1156,"./defaults":1157,"./plot":1160}],1159:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("../../plot_api/plot_api"),a=t("../../components/fx"),o=t("../../lib"),s=o.strTranslate,l=t("../../components/drawing"),c=t("tinycolor2"),u=t("../../lib/svg_text_utils");function f(t,e,r,i){var a=t.map(R.bind(0,e,r)),c=i.selectAll("g.parcatslayer").data([null]);c.enter().append("g").attr("class","parcatslayer").style("pointer-events","all");var f=c.selectAll("g.trace.parcats").data(a,h),v=f.enter().append("g").attr("class","trace parcats");f.attr("transform",(function(t){return s(t.x,t.y)})),v.append("g").attr("class","paths");var y=f.select("g.paths").selectAll("path.path").data((function(t){return t.paths}),h);y.attr("fill",(function(t){return t.model.color}));var _=y.enter().append("path").attr("class","path").attr("stroke-opacity",0).attr("fill",(function(t){return t.model.color})).attr("fill-opacity",0);b(_),y.attr("d",(function(t){return t.svgD})),_.empty()||y.sort(d),y.exit().remove(),y.on("mouseover",m).on("mouseout",g).on("click",x),v.append("g").attr("class","dimensions");var k=f.select("g.dimensions").selectAll("g.dimension").data((function(t){return t.dimensions}),h);k.enter().append("g").attr("class","dimension"),k.attr("transform",(function(t){return s(t.x,0)})),k.exit().remove();var M=k.selectAll("g.category").data((function(t){return t.categories}),h),A=M.enter().append("g").attr("class","category");M.attr("transform",(function(t){return s(0,t.y)})),A.append("rect").attr("class","catrect").attr("pointer-events","none"),M.select("rect.catrect").attr("fill","none").attr("width",(function(t){return t.width})).attr("height",(function(t){return t.height})),w(A);var S=M.selectAll("rect.bandrect").data((function(t){return t.bands}),h);S.each((function(){o.raiseToTop(this)})),S.attr("fill",(function(t){return t.color}));var O=S.enter().append("rect").attr("class","bandrect").attr("stroke-opacity",0).attr("fill",(function(t){return t.color})).attr("fill-opacity",0);S.attr("fill",(function(t){return t.color})).attr("width",(function(t){return t.width})).attr("height",(function(t){return t.height})).attr("y",(function(t){return t.y})).attr("cursor",(function(t){return"fixed"===t.parcatsViewModel.arrangement?"default":"perpendicular"===t.parcatsViewModel.arrangement?"ns-resize":"move"})),T(O),S.exit().remove(),A.append("text").attr("class","catlabel").attr("pointer-events","none");var z=e._fullLayout.paper_bgcolor;M.select("text.catlabel").attr("text-anchor",(function(t){return p(t)?"start":"end"})).attr("alignment-baseline","middle").style("text-shadow",u.makeTextShadow(z)).style("fill","rgb(0, 0, 0)").attr("x",(function(t){return p(t)?t.width+5:-5})).attr("y",(function(t){return t.height/2})).text((function(t){return t.model.categoryLabel})).each((function(t){l.font(n.select(this),t.parcatsViewModel.categorylabelfont),u.convertToTspans(n.select(this),e)})),A.append("text").attr("class","dimlabel"),M.select("text.dimlabel").attr("text-anchor","middle").attr("alignment-baseline","baseline").attr("cursor",(function(t){return"fixed"===t.parcatsViewModel.arrangement?"default":"ew-resize"})).attr("x",(function(t){return t.width/2})).attr("y",-5).text((function(t,e){return 0===e?t.parcatsViewModel.model.dimensions[t.model.dimensionInd].dimensionLabel:null})).each((function(t){l.font(n.select(this),t.parcatsViewModel.labelfont)})),M.selectAll("rect.bandrect").on("mouseover",E).on("mouseout",L),M.exit().remove(),k.call(n.behavior.drag().origin((function(t){return{x:t.x,y:0}})).on("dragstart",C).on("drag",P).on("dragend",I)),f.each((function(t){t.traceSelection=n.select(this),t.pathSelection=n.select(this).selectAll("g.paths").selectAll("path.path"),t.dimensionSelection=n.select(this).selectAll("g.dimensions").selectAll("g.dimension")})),f.exit().remove()}function h(t){return t.key}function p(t){var e=t.parcatsViewModel.dimensions.length,r=t.parcatsViewModel.dimensions[e-1].model.dimensionInd;return t.model.dimensionInd===r}function d(t,e){return t.model.rawColor>e.model.rawColor?1:t.model.rawColor"),L=n.mouse(f)[0];a.loneHover({trace:h,x:b-d.left+m.left,y:w-d.top+m.top,text:E,color:t.model.color,borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontSize:10,fontColor:T,idealAlign:L1&&h.displayInd===f.dimensions.length-1?(i=c.left,a="left"):(i=c.left+c.width,a="right");var m=u.model.count,g=u.model.categoryLabel,v=m/u.parcatsViewModel.model.count,y={countLabel:m,categoryLabel:g,probabilityLabel:v.toFixed(3)},x=[];-1!==u.parcatsViewModel.hoverinfoItems.indexOf("count")&&x.push(["Count:",y.countLabel].join(" ")),-1!==u.parcatsViewModel.hoverinfoItems.indexOf("probability")&&x.push(["P("+y.categoryLabel+"):",y.probabilityLabel].join(" "));var b=x.join("
    ");return{trace:p,x:o*(i-e.left),y:s*(d-e.top),text:b,color:"lightgray",borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontSize:12,fontColor:"black",idealAlign:a,hovertemplate:p.hovertemplate,hovertemplateLabels:y,eventData:[{data:p._input,fullData:p,count:m,category:g,probability:v}]}}function E(t){if(!t.parcatsViewModel.dragDimension&&-1===t.parcatsViewModel.hoverinfoItems.indexOf("skip")){if(n.mouse(this)[1]<-1)return;var e,r=t.parcatsViewModel.graphDiv,i=r._fullLayout,s=i._paperdiv.node().getBoundingClientRect(),l=t.parcatsViewModel.hoveron;if("color"===l?(!function(t){var e=n.select(t).datum(),r=k(e);_(r),r.each((function(){o.raiseToTop(this)})),n.select(t.parentNode).selectAll("rect.bandrect").filter((function(t){return t.color===e.color})).each((function(){o.raiseToTop(this),n.select(this).attr("stroke","black").attr("stroke-width",1.5)}))}(this),A(this,"plotly_hover",n.event)):(!function(t){n.select(t.parentNode).selectAll("rect.bandrect").each((function(t){var e=k(t);_(e),e.each((function(){o.raiseToTop(this)}))})),n.select(t.parentNode).select("rect.catrect").attr("stroke","black").attr("stroke-width",2.5)}(this),M(this,"plotly_hover",n.event)),-1===t.parcatsViewModel.hoverinfoItems.indexOf("none"))"category"===l?e=S(r,s,this):"color"===l?e=function(t,e,r){t._fullLayout._calcInverseTransform(t);var i,a,o=t._fullLayout._invScaleX,s=t._fullLayout._invScaleY,l=r.getBoundingClientRect(),u=n.select(r).datum(),f=u.categoryViewModel,h=f.parcatsViewModel,p=h.model.dimensions[f.model.dimensionInd],d=h.trace,m=l.y+l.height/2;h.dimensions.length>1&&p.displayInd===h.dimensions.length-1?(i=l.left,a="left"):(i=l.left+l.width,a="right");var g=f.model.categoryLabel,v=u.parcatsViewModel.model.count,y=0;u.categoryViewModel.bands.forEach((function(t){t.color===u.color&&(y+=t.count)}));var x=f.model.count,b=0;h.pathSelection.each((function(t){t.model.color===u.color&&(b+=t.model.count)}));var _=y/v,w=y/b,T=y/x,k={countLabel:v,categoryLabel:g,probabilityLabel:_.toFixed(3)},M=[];-1!==f.parcatsViewModel.hoverinfoItems.indexOf("count")&&M.push(["Count:",k.countLabel].join(" ")),-1!==f.parcatsViewModel.hoverinfoItems.indexOf("probability")&&(M.push("P(color \u2229 "+g+"): "+k.probabilityLabel),M.push("P("+g+" | color): "+w.toFixed(3)),M.push("P(color | "+g+"): "+T.toFixed(3)));var A=M.join("
    "),S=c.mostReadable(u.color,["black","white"]);return{trace:d,x:o*(i-e.left),y:s*(m-e.top),text:A,color:u.color,borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontColor:S,fontSize:10,idealAlign:a,hovertemplate:d.hovertemplate,hovertemplateLabels:k,eventData:[{data:d._input,fullData:d,category:g,count:v,probability:_,categorycount:x,colorcount:b,bandcolorcount:y}]}}(r,s,this):"dimension"===l&&(e=function(t,e,r){var i=[];return n.select(r.parentNode.parentNode).selectAll("g.category").select("rect.catrect").each((function(){i.push(S(t,e,this))})),i}(r,s,this)),e&&a.loneHover(e,{container:i._hoverlayer.node(),outerContainer:i._paper.node(),gd:r})}}function L(t){var e=t.parcatsViewModel;if(!e.dragDimension&&(b(e.pathSelection),w(e.dimensionSelection.selectAll("g.category")),T(e.dimensionSelection.selectAll("g.category").selectAll("rect.bandrect")),a.loneUnhover(e.graphDiv._fullLayout._hoverlayer.node()),e.pathSelection.sort(d),-1===e.hoverinfoItems.indexOf("skip"))){"color"===t.parcatsViewModel.hoveron?A(this,"plotly_unhover",n.event):M(this,"plotly_unhover",n.event)}}function C(t){"fixed"!==t.parcatsViewModel.arrangement&&(t.dragDimensionDisplayInd=t.model.displayInd,t.initialDragDimensionDisplayInds=t.parcatsViewModel.model.dimensions.map((function(t){return t.displayInd})),t.dragHasMoved=!1,t.dragCategoryDisplayInd=null,n.select(this).selectAll("g.category").select("rect.catrect").each((function(e){var r=n.mouse(this)[0],i=n.mouse(this)[1];-2<=r&&r<=e.width+2&&-2<=i&&i<=e.height+2&&(t.dragCategoryDisplayInd=e.model.displayInd,t.initialDragCategoryDisplayInds=t.model.categories.map((function(t){return t.displayInd})),e.model.dragY=e.y,o.raiseToTop(this.parentNode),n.select(this.parentNode).selectAll("rect.bandrect").each((function(e){e.yf.y+f.height/2&&(o.model.displayInd=f.model.displayInd,f.model.displayInd=l),t.dragCategoryDisplayInd=o.model.displayInd}if(null===t.dragCategoryDisplayInd||"freeform"===t.parcatsViewModel.arrangement){a.model.dragX=n.event.x;var h=t.parcatsViewModel.dimensions[r],p=t.parcatsViewModel.dimensions[i];void 0!==h&&a.model.dragXp.x&&(a.model.displayInd=p.model.displayInd,p.model.displayInd=t.dragDimensionDisplayInd),t.dragDimensionDisplayInd=a.model.displayInd}N(t.parcatsViewModel),B(t.parcatsViewModel),D(t.parcatsViewModel),z(t.parcatsViewModel)}}function I(t){if("fixed"!==t.parcatsViewModel.arrangement&&null!==t.dragDimensionDisplayInd){n.select(this).selectAll("text").attr("font-weight","normal");var e={},r=O(t.parcatsViewModel),a=t.parcatsViewModel.model.dimensions.map((function(t){return t.displayInd})),o=t.initialDragDimensionDisplayInds.some((function(t,e){return t!==a[e]}));o&&a.forEach((function(r,n){var i=t.parcatsViewModel.model.dimensions[n].containerInd;e["dimensions["+i+"].displayindex"]=r}));var s=!1;if(null!==t.dragCategoryDisplayInd){var l=t.model.categories.map((function(t){return t.displayInd}));if(s=t.initialDragCategoryDisplayInds.some((function(t,e){return t!==l[e]}))){var c=t.model.categories.slice().sort((function(t,e){return t.displayInd-e.displayInd})),u=c.map((function(t){return t.categoryValue})),f=c.map((function(t){return t.categoryLabel}));e["dimensions["+t.model.containerInd+"].categoryarray"]=[u],e["dimensions["+t.model.containerInd+"].ticktext"]=[f],e["dimensions["+t.model.containerInd+"].categoryorder"]="array"}}if(-1===t.parcatsViewModel.hoverinfoItems.indexOf("skip")&&!t.dragHasMoved&&t.potentialClickBand&&("color"===t.parcatsViewModel.hoveron?A(t.potentialClickBand,"plotly_click",n.event.sourceEvent):M(t.potentialClickBand,"plotly_click",n.event.sourceEvent)),t.model.dragX=null,null!==t.dragCategoryDisplayInd)t.parcatsViewModel.dimensions[t.dragDimensionDisplayInd].categories[t.dragCategoryDisplayInd].model.dragY=null,t.dragCategoryDisplayInd=null;t.dragDimensionDisplayInd=null,t.parcatsViewModel.dragDimension=null,t.dragHasMoved=null,t.potentialClickBand=null,N(t.parcatsViewModel),B(t.parcatsViewModel),n.transition().duration(300).ease("cubic-in-out").each((function(){D(t.parcatsViewModel,!0),z(t.parcatsViewModel,!0)})).each("end",(function(){(o||s)&&i.restyle(t.parcatsViewModel.graphDiv,e,[r])}))}}function O(t){for(var e,r=t.graphDiv._fullData,n=0;n=0;s--)u+="C"+c[s]+","+(e[s+1]+i)+" "+l[s]+","+(e[s]+i)+" "+(t[s]+r[s])+","+(e[s]+i),u+="l-"+r[s]+",0 ";return u+="Z"}function B(t){var e=t.dimensions,r=t.model,n=e.map((function(t){return t.categories.map((function(t){return t.y}))})),i=t.model.dimensions.map((function(t){return t.categories.map((function(t){return t.displayInd}))})),a=t.model.dimensions.map((function(t){return t.displayInd})),o=t.dimensions.map((function(t){return t.model.dimensionInd})),s=e.map((function(t){return t.x})),l=e.map((function(t){return t.width})),c=[];for(var u in r.paths)r.paths.hasOwnProperty(u)&&c.push(r.paths[u]);function f(t){var e=t.categoryInds.map((function(t,e){return i[e][t]}));return o.map((function(t){return e[t]}))}c.sort((function(e,r){var n=f(e),i=f(r);return"backward"===t.sortpaths&&(n.reverse(),i.reverse()),n.push(e.valueInds[0]),i.push(r.valueInds[0]),t.bundlecolors&&(n.unshift(e.rawColor),i.unshift(r.rawColor)),ni?1:0}));for(var h=new Array(c.length),p=e[0].model.count,d=e[0].categories.map((function(t){return t.height})).reduce((function(t,e){return t+e})),m=0;m0?d*(v.count/p):0;for(var y,x=new Array(n.length),b=0;b1?(t.width-80-16)/(n-1):0)*i;var a,o,s,l,c,u=[],f=t.model.maxCats,h=e.categories.length,p=e.count,d=t.height-8*(f-1),m=8*(f-h)/2,g=e.categories.map((function(t){return{displayInd:t.displayInd,categoryInd:t.categoryInd}}));for(g.sort((function(t,e){return t.displayInd-e.displayInd})),c=0;c0?o.count/p*d:0,s={key:o.valueInds[0],model:o,width:16,height:a,y:null!==o.dragY?o.dragY:m,bands:[],parcatsViewModel:t},m=m+a+8,u.push(s);return{key:e.dimensionInd,x:null!==e.dragX?e.dragX:r,y:0,width:16,model:e,categories:u,parcatsViewModel:t,dragCategoryDisplayInd:null,dragDimensionDisplayInd:null,initialDragDimensionDisplayInds:null,initialDragCategoryDisplayInds:null,dragHasMoved:null,potentialClickBand:null}}e.exports=function(t,e,r,n){f(r,t,n,e)}},{"../../components/drawing":680,"../../components/fx":698,"../../lib":795,"../../lib/svg_text_utils":820,"../../plot_api/plot_api":831,"@plotly/d3":57,tinycolor2:590}],1160:[function(t,e,r){"use strict";var n=t("./parcats");e.exports=function(t,e,r,i){var a=t._fullLayout,o=a._paper,s=a._size;n(t,o,e,{width:s.w,height:s.h,margin:{t:s.t,r:s.r,b:s.b,l:s.l}},r,i)}},{"./parcats":1159}],1161:[function(t,e,r){"use strict";var n=t("../../components/colorscale/attributes"),i=t("../../plots/cartesian/layout_attributes"),a=t("../../plots/font_attributes"),o=t("../../plots/domain").attributes,s=t("../../lib/extend").extendFlat,l=t("../../plot_api/plot_template").templatedArray;e.exports={domain:o({name:"parcoords",trace:!0,editType:"plot"}),labelangle:{valType:"angle",dflt:0,editType:"plot"},labelside:{valType:"enumerated",values:["top","bottom"],dflt:"top",editType:"plot"},labelfont:a({editType:"plot"}),tickfont:a({editType:"plot"}),rangefont:a({editType:"plot"}),dimensions:l("dimension",{label:{valType:"string",editType:"plot"},tickvals:s({},i.tickvals,{editType:"plot"}),ticktext:s({},i.ticktext,{editType:"plot"}),tickformat:s({},i.tickformat,{editType:"plot"}),visible:{valType:"boolean",dflt:!0,editType:"plot"},range:{valType:"info_array",items:[{valType:"number",editType:"plot"},{valType:"number",editType:"plot"}],editType:"plot"},constraintrange:{valType:"info_array",freeLength:!0,dimensions:"1-2",items:[{valType:"number",editType:"plot"},{valType:"number",editType:"plot"}],editType:"plot"},multiselect:{valType:"boolean",dflt:!0,editType:"plot"},values:{valType:"data_array",editType:"calc"},editType:"calc"}),line:s({editType:"calc"},n("line",{colorscaleDflt:"Viridis",autoColorDflt:!1,editTypeOverride:"calc"}))}},{"../../components/colorscale/attributes":665,"../../lib/extend":785,"../../plot_api/plot_template":834,"../../plots/cartesian/layout_attributes":859,"../../plots/domain":872,"../../plots/font_attributes":873}],1162:[function(t,e,r){"use strict";var n=t("./constants"),i=t("@plotly/d3"),a=t("../../lib/gup").keyFun,o=t("../../lib/gup").repeat,s=t("../../lib").sorterAsc,l=t("../../lib").strTranslate,c=n.bar.snapRatio;function u(t,e){return t*(1-c)+e*c}var f=n.bar.snapClose;function h(t,e){return t*(1-f)+e*f}function p(t,e,r,n){if(function(t,e){for(var r=0;r=e[r][0]&&t<=e[r][1])return!0;return!1}(r,n))return r;var i=t?-1:1,a=0,o=e.length-1;if(i<0){var s=a;a=o,o=s}for(var l=e[a],c=l,f=a;i*fe){h=r;break}}if(a=u,isNaN(a)&&(a=isNaN(f)||isNaN(h)?isNaN(f)?h:f:e-c[f][1]t[1]+r||e=.9*t[1]+.1*t[0]?"n":e<=.9*t[0]+.1*t[1]?"s":"ns"}(d,e);m&&(o.interval=l[a],o.intervalPix=d,o.region=m)}}if(t.ordinal&&!o.region){var g=t.unitTickvals,y=t.unitToPaddedPx.invert(e);for(r=0;r=x[0]&&y<=x[1]){o.clickableOrdinalRange=x;break}}}return o}function w(t,e){i.event.sourceEvent.stopPropagation();var r=e.height-i.mouse(t)[1]-2*n.verticalPadding,a=e.brush.svgBrush;a.wasDragged=!0,a._dragging=!0,a.grabbingBar?a.newExtent=[r-a.grabPoint,r+a.barLength-a.grabPoint].map(e.unitToPaddedPx.invert):a.newExtent=[a.startExtent,e.unitToPaddedPx.invert(r)].sort(s),e.brush.filterSpecified=!0,a.extent=a.stayingIntervals.concat([a.newExtent]),a.brushCallback(e),b(t.parentNode)}function T(t,e){var r=_(e,e.height-i.mouse(t)[1]-2*n.verticalPadding),a="crosshair";r.clickableOrdinalRange?a="pointer":r.region&&(a=r.region+"-resize"),i.select(document.body).style("cursor",a)}function k(t){t.on("mousemove",(function(t){i.event.preventDefault(),t.parent.inBrushDrag||T(this,t)})).on("mouseleave",(function(t){t.parent.inBrushDrag||y()})).call(i.behavior.drag().on("dragstart",(function(t){!function(t,e){i.event.sourceEvent.stopPropagation();var r=e.height-i.mouse(t)[1]-2*n.verticalPadding,a=e.unitToPaddedPx.invert(r),o=e.brush,s=_(e,r),l=s.interval,c=o.svgBrush;if(c.wasDragged=!1,c.grabbingBar="ns"===s.region,c.grabbingBar){var u=l.map(e.unitToPaddedPx);c.grabPoint=r-u[0]-n.verticalPadding,c.barLength=u[1]-u[0]}c.clickableOrdinalRange=s.clickableOrdinalRange,c.stayingIntervals=e.multiselect&&o.filterSpecified?o.filter.getConsolidated():[],l&&(c.stayingIntervals=c.stayingIntervals.filter((function(t){return t[0]!==l[0]&&t[1]!==l[1]}))),c.startExtent=s.region?l["s"===s.region?1:0]:a,e.parent.inBrushDrag=!0,c.brushStartCallback()}(this,t)})).on("drag",(function(t){w(this,t)})).on("dragend",(function(t){!function(t,e){var r=e.brush,n=r.filter,a=r.svgBrush;a._dragging||(T(t,e),w(t,e),e.brush.svgBrush.wasDragged=!1),a._dragging=!1,i.event.sourceEvent.stopPropagation();var o=a.grabbingBar;if(a.grabbingBar=!1,a.grabLocation=void 0,e.parent.inBrushDrag=!1,y(),!a.wasDragged)return a.wasDragged=void 0,a.clickableOrdinalRange?r.filterSpecified&&e.multiselect?a.extent.push(a.clickableOrdinalRange):(a.extent=[a.clickableOrdinalRange],r.filterSpecified=!0):o?(a.extent=a.stayingIntervals,0===a.extent.length&&A(r)):A(r),a.brushCallback(e),b(t.parentNode),void a.brushEndCallback(r.filterSpecified?n.getConsolidated():[]);var s=function(){n.set(n.getConsolidated())};if(e.ordinal){var l=e.unitTickvals;l[l.length-1]a.newExtent[0];a.extent=a.stayingIntervals.concat(c?[a.newExtent]:[]),a.extent.length||A(r),a.brushCallback(e),c?b(t.parentNode,s):(s(),b(t.parentNode))}else s();a.brushEndCallback(r.filterSpecified?n.getConsolidated():[])}(this,t)})))}function M(t,e){return t[0]-e[0]}function A(t){t.filterSpecified=!1,t.svgBrush.extent=[[-1/0,1/0]]}function S(t){for(var e,r=t.slice(),n=[],i=r.shift();i;){for(e=i.slice();(i=r.shift())&&i[0]<=e[1];)e[1]=Math.max(e[1],i[1]);n.push(e)}return 1===n.length&&n[0][0]>n[0][1]&&(n=[]),n}e.exports={makeBrush:function(t,e,r,n,i,a){var o,l=function(){var t,e,r=[];return{set:function(n){1===(r=n.map((function(t){return t.slice().sort(s)})).sort(M)).length&&r[0][0]===-1/0&&r[0][1]===1/0&&(r=[[0,-1]]),t=S(r),e=r.reduce((function(t,e){return[Math.min(t[0],e[0]),Math.max(t[1],e[1])]}),[1/0,-1/0])},get:function(){return r.slice()},getConsolidated:function(){return t},getBounds:function(){return e}}}();return l.set(r),{filter:l,filterSpecified:e,svgBrush:{extent:[],brushStartCallback:n,brushCallback:(o=i,function(t){var e=t.brush,r=function(t){return t.svgBrush.extent.map((function(t){return t.slice()}))}(e).slice();e.filter.set(r),o()}),brushEndCallback:a}}},ensureAxisBrush:function(t,e){var r=t.selectAll("."+n.cn.axisBrush).data(o,a);r.enter().append("g").classed(n.cn.axisBrush,!0),function(t,e){var r=t.selectAll(".background").data(o);r.enter().append("rect").classed("background",!0).call(d).call(m).style("pointer-events","auto").attr("transform",l(0,n.verticalPadding)),r.call(k).attr("height",(function(t){return t.height-n.verticalPadding}));var i=t.selectAll(".highlight-shadow").data(o);i.enter().append("line").classed("highlight-shadow",!0).attr("x",-n.bar.width/2).attr("stroke-width",n.bar.width+n.bar.strokeWidth).attr("stroke",e).attr("opacity",n.bar.strokeOpacity).attr("stroke-linecap","butt"),i.attr("y1",(function(t){return t.height})).call(x);var a=t.selectAll(".highlight").data(o);a.enter().append("line").classed("highlight",!0).attr("x",-n.bar.width/2).attr("stroke-width",n.bar.width-n.bar.strokeWidth).attr("stroke",n.bar.fillColor).attr("opacity",n.bar.fillOpacity).attr("stroke-linecap","butt"),a.attr("y1",(function(t){return t.height})).call(x)}(r,e)},cleanRanges:function(t,e){if(Array.isArray(t[0])?(t=t.map((function(t){return t.sort(s)})),t=e.multiselect?S(t.sort(M)):[t[0]]):t=[t.sort(s)],e.tickvals){var r=e.tickvals.slice().sort(s);if(!(t=t.map((function(t){var e=[p(0,r,t[0],[]),p(1,r,t[1],[])];if(e[1]>e[0])return e})).filter((function(t){return t}))).length)return}return t.length>1?t:t[0]}}},{"../../lib":795,"../../lib/gup":792,"./constants":1165,"@plotly/d3":57}],1163:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("../../plots/get_data").getModuleCalcData,a=t("./plot"),o=t("../../constants/xmlns_namespaces");r.name="parcoords",r.plot=function(t){var e=i(t.calcdata,"parcoords")[0];e.length&&a(t,e)},r.clean=function(t,e,r,n){var i=n._has&&n._has("parcoords"),a=e._has&&e._has("parcoords");i&&!a&&(n._paperdiv.selectAll(".parcoords").remove(),n._glimages.selectAll("*").remove())},r.toSVG=function(t){var e=t._fullLayout._glimages,r=n.select(t).selectAll(".svg-container");r.filter((function(t,e){return e===r.size()-1})).selectAll(".gl-canvas-context, .gl-canvas-focus").each((function(){var t=this.toDataURL("image/png");e.append("svg:image").attr({xmlns:o.svg,"xlink:href":t,preserveAspectRatio:"none",x:0,y:0,width:this.width,height:this.height})})),window.setTimeout((function(){n.selectAll("#filterBarPattern").attr("id","filterBarPattern")}),60)}},{"../../constants/xmlns_namespaces":772,"../../plots/get_data":882,"./plot":1172,"@plotly/d3":57}],1164:[function(t,e,r){"use strict";var n=t("../../lib").isArrayOrTypedArray,i=t("../../components/colorscale"),a=t("../../lib/gup").wrap;e.exports=function(t,e){var r,o;return i.hasColorscale(e,"line")&&n(e.line.color)?(r=e.line.color,o=i.extractOpts(e.line).colorscale,i.calc(t,e,{vals:r,containerStr:"line",cLetter:"c"})):(r=function(t){for(var e=new Array(t),r=0;rf&&(n.log("parcoords traces support up to "+f+" dimensions at the moment"),d.splice(f));var m=s(t,e,{name:"dimensions",layout:l,handleItemDefaults:p}),g=function(t,e,r,o,s){var l=s("line.color",r);if(i(t,"line")&&n.isArrayOrTypedArray(l)){if(l.length)return s("line.colorscale"),a(t,e,o,s,{prefix:"line.",cLetter:"c"}),l.length;e.line.color=r}return 1/0}(t,e,r,l,u);o(e,l,u),Array.isArray(m)&&m.length||(e.visible=!1),h(e,m,"values",g);var v={family:l.font.family,size:Math.round(l.font.size/1.2),color:l.font.color};n.coerceFont(u,"labelfont",v),n.coerceFont(u,"tickfont",v),n.coerceFont(u,"rangefont",v),u("labelangle"),u("labelside")}},{"../../components/colorscale/defaults":668,"../../components/colorscale/helpers":669,"../../lib":795,"../../plots/array_container_defaults":840,"../../plots/cartesian/axes":845,"../../plots/domain":872,"./attributes":1161,"./axisbrush":1162,"./constants":1165,"./merge_length":1170}],1167:[function(t,e,r){"use strict";var n=t("../../lib").isTypedArray;r.convertTypedArray=function(t){return n(t)?Array.prototype.slice.call(t):t},r.isOrdinal=function(t){return!!t.tickvals},r.isVisible=function(t){return t.visible||!("visible"in t)}},{"../../lib":795}],1168:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),calc:t("./calc"),plot:t("./plot"),colorbar:{container:"line",min:"cmin",max:"cmax"},moduleType:"trace",name:"parcoords",basePlotModule:t("./base_plot"),categories:["gl","regl","noOpacity","noHover"],meta:{}}},{"./attributes":1161,"./base_plot":1163,"./calc":1164,"./defaults":1166,"./plot":1172}],1169:[function(t,e,r){"use strict";var n=t("glslify"),i=n(["precision highp float;\n#define GLSLIFY 1\n\nvarying vec4 fragColor;\n\nattribute vec4 p01_04, p05_08, p09_12, p13_16,\n p17_20, p21_24, p25_28, p29_32,\n p33_36, p37_40, p41_44, p45_48,\n p49_52, p53_56, p57_60, colors;\n\nuniform mat4 dim0A, dim1A, dim0B, dim1B, dim0C, dim1C, dim0D, dim1D,\n loA, hiA, loB, hiB, loC, hiC, loD, hiD;\n\nuniform vec2 resolution, viewBoxPos, viewBoxSize;\nuniform sampler2D mask, palette;\nuniform float maskHeight;\nuniform float drwLayer; // 0: context, 1: focus, 2: pick\nuniform vec4 contextColor;\n\nbool isPick = (drwLayer > 1.5);\nbool isContext = (drwLayer < 0.5);\n\nconst vec4 ZEROS = vec4(0.0, 0.0, 0.0, 0.0);\nconst vec4 UNITS = vec4(1.0, 1.0, 1.0, 1.0);\n\nfloat val(mat4 p, mat4 v) {\n return dot(matrixCompMult(p, v) * UNITS, UNITS);\n}\n\nfloat axisY(float ratio, mat4 A, mat4 B, mat4 C, mat4 D) {\n float y1 = val(A, dim0A) + val(B, dim0B) + val(C, dim0C) + val(D, dim0D);\n float y2 = val(A, dim1A) + val(B, dim1B) + val(C, dim1C) + val(D, dim1D);\n return y1 * (1.0 - ratio) + y2 * ratio;\n}\n\nint iMod(int a, int b) {\n return a - b * (a / b);\n}\n\nbool fOutside(float p, float lo, float hi) {\n return (lo < hi) && (lo > p || p > hi);\n}\n\nbool vOutside(vec4 p, vec4 lo, vec4 hi) {\n return (\n fOutside(p[0], lo[0], hi[0]) ||\n fOutside(p[1], lo[1], hi[1]) ||\n fOutside(p[2], lo[2], hi[2]) ||\n fOutside(p[3], lo[3], hi[3])\n );\n}\n\nbool mOutside(mat4 p, mat4 lo, mat4 hi) {\n return (\n vOutside(p[0], lo[0], hi[0]) ||\n vOutside(p[1], lo[1], hi[1]) ||\n vOutside(p[2], lo[2], hi[2]) ||\n vOutside(p[3], lo[3], hi[3])\n );\n}\n\nbool outsideBoundingBox(mat4 A, mat4 B, mat4 C, mat4 D) {\n return mOutside(A, loA, hiA) ||\n mOutside(B, loB, hiB) ||\n mOutside(C, loC, hiC) ||\n mOutside(D, loD, hiD);\n}\n\nbool outsideRasterMask(mat4 A, mat4 B, mat4 C, mat4 D) {\n mat4 pnts[4];\n pnts[0] = A;\n pnts[1] = B;\n pnts[2] = C;\n pnts[3] = D;\n\n for(int i = 0; i < 4; ++i) {\n for(int j = 0; j < 4; ++j) {\n for(int k = 0; k < 4; ++k) {\n if(0 == iMod(\n int(255.0 * texture2D(mask,\n vec2(\n (float(i * 2 + j / 2) + 0.5) / 8.0,\n (pnts[i][j][k] * (maskHeight - 1.0) + 1.0) / maskHeight\n ))[3]\n ) / int(pow(2.0, float(iMod(j * 4 + k, 8)))),\n 2\n )) return true;\n }\n }\n }\n return false;\n}\n\nvec4 position(bool isContext, float v, mat4 A, mat4 B, mat4 C, mat4 D) {\n float x = 0.5 * sign(v) + 0.5;\n float y = axisY(x, A, B, C, D);\n float z = 1.0 - abs(v);\n\n z += isContext ? 0.0 : 2.0 * float(\n outsideBoundingBox(A, B, C, D) ||\n outsideRasterMask(A, B, C, D)\n );\n\n return vec4(\n 2.0 * (vec2(x, y) * viewBoxSize + viewBoxPos) / resolution - 1.0,\n z,\n 1.0\n );\n}\n\nvoid main() {\n mat4 A = mat4(p01_04, p05_08, p09_12, p13_16);\n mat4 B = mat4(p17_20, p21_24, p25_28, p29_32);\n mat4 C = mat4(p33_36, p37_40, p41_44, p45_48);\n mat4 D = mat4(p49_52, p53_56, p57_60, ZEROS);\n\n float v = colors[3];\n\n gl_Position = position(isContext, v, A, B, C, D);\n\n fragColor =\n isContext ? vec4(contextColor) :\n isPick ? vec4(colors.rgb, 1.0) : texture2D(palette, vec2(abs(v), 0.5));\n}\n"]),a=n(["precision highp float;\n#define GLSLIFY 1\n\nvarying vec4 fragColor;\n\nvoid main() {\n gl_FragColor = fragColor;\n}\n"]),o=t("./constants").maxDimensionCount,s=t("../../lib"),l=new Uint8Array(4),c=new Uint8Array(4),u={shape:[256,1],format:"rgba",type:"uint8",mag:"nearest",min:"nearest"};function f(t,e,r,n,i){var a=t._gl;a.enable(a.SCISSOR_TEST),a.scissor(e,r,n,i),t.clear({color:[0,0,0,0],depth:1})}function h(t,e,r,n,i,a){var o=a.key;r.drawCompleted||(!function(t){t.read({x:0,y:0,width:1,height:1,data:l})}(t),r.drawCompleted=!0),function s(l){var c=Math.min(n,i-l*n);0===l&&(window.cancelAnimationFrame(r.currentRafs[o]),delete r.currentRafs[o],f(t,a.scissorX,a.scissorY,a.scissorWidth,a.viewBoxSize[1])),r.clearOnly||(a.count=2*c,a.offset=2*l*n,e(a),l*n+c>>8*e)%256/255}function m(t,e,r){for(var n=new Array(8*e),i=0,a=0;au&&(u=t[i].dim1.canvasX,o=i);0===s&&f(T,0,0,r.canvasWidth,r.canvasHeight);var p=function(t){var e,r,n,i=[[],[]];for(n=0;n<64;n++){var a=!t&&ni._length&&(A=A.slice(0,i._length));var E,L=i.tickvals;function C(t,e){return{val:t,text:E[e]}}function P(t,e){return t.val-e.val}if(Array.isArray(L)&&L.length){E=i.ticktext,Array.isArray(E)&&E.length?E.length>L.length?E=E.slice(0,L.length):L.length>E.length&&(L=L.slice(0,E.length)):E=L.map(n.format(i.tickformat));for(var I=1;I=r||l>=a)return;var c=t.lineLayer.readPixel(s,a-1-l),u=0!==c[3],f=u?c[2]+256*(c[1]+256*c[0]):null,h={x:s,y:l,clientX:e.clientX,clientY:e.clientY,dataIndex:t.model.key,curveNumber:f};f!==F&&(u?i.hover(h):i.unhover&&i.unhover(h),F=f)}})),R.style("opacity",(function(t){return t.pick?0:1})),h.style("background","rgba(255, 255, 255, 0)");var B=h.selectAll("."+v.cn.parcoords).data(D,p);B.exit().remove(),B.enter().append("g").classed(v.cn.parcoords,!0).style("shape-rendering","crispEdges").style("pointer-events","none"),B.attr("transform",(function(t){return l(t.model.translateX,t.model.translateY)}));var N=B.selectAll("."+v.cn.parcoordsControlView).data(d,p);N.enter().append("g").classed(v.cn.parcoordsControlView,!0),N.attr("transform",(function(t){return l(t.model.pad.l,t.model.pad.t)}));var j=N.selectAll("."+v.cn.yAxis).data((function(t){return t.dimensions}),p);j.enter().append("g").classed(v.cn.yAxis,!0),N.each((function(t){I(j,t)})),R.each((function(t){if(t.viewModel){!t.lineLayer||i?t.lineLayer=x(this,t):t.lineLayer.update(t),(t.key||0===t.key)&&(t.viewModel[t.key]=t.lineLayer);var e=!t.context||i;t.lineLayer.render(t.viewModel.panels,e)}})),j.attr("transform",(function(t){return l(t.xScale(t.xIndex),0)})),j.call(n.behavior.drag().origin((function(t){return t})).on("drag",(function(t){var e=t.parent;A.linePickActive(!1),t.x=Math.max(-v.overdrag,Math.min(t.model.width+v.overdrag,n.event.x)),t.canvasX=t.x*t.model.canvasPixelRatio,j.sort((function(t,e){return t.x-e.x})).each((function(e,r){e.xIndex=r,e.x=t===e?e.x:e.xScale(e.xIndex),e.canvasX=e.x*e.model.canvasPixelRatio})),I(j,e),j.filter((function(e){return 0!==Math.abs(t.xIndex-e.xIndex)})).attr("transform",(function(t){return l(t.xScale(t.xIndex),0)})),n.select(this).attr("transform",l(t.x,0)),j.each((function(r,n,i){i===t.parent.key&&(e.dimensions[n]=r)})),e.contextLayer&&e.contextLayer.render(e.panels,!1,!S(e)),e.focusLayer.render&&e.focusLayer.render(e.panels)})).on("dragend",(function(t){var e=t.parent;t.x=t.xScale(t.xIndex),t.canvasX=t.x*t.model.canvasPixelRatio,I(j,e),n.select(this).attr("transform",(function(t){return l(t.x,0)})),e.contextLayer&&e.contextLayer.render(e.panels,!1,!S(e)),e.focusLayer&&e.focusLayer.render(e.panels),e.pickLayer&&e.pickLayer.render(e.panels,!0),A.linePickActive(!0),i&&i.axesMoved&&i.axesMoved(e.key,e.dimensions.map((function(t){return t.crossfilterDimensionIndex})))}))),j.exit().remove();var U=j.selectAll("."+v.cn.axisOverlays).data(d,p);U.enter().append("g").classed(v.cn.axisOverlays,!0),U.selectAll("."+v.cn.axis).remove();var V=U.selectAll("."+v.cn.axis).data(d,p);V.enter().append("g").classed(v.cn.axis,!0),V.each((function(t){var e=t.model.height/t.model.tickDistance,r=t.domainScale,i=r.domain();n.select(this).call(n.svg.axis().orient("left").tickSize(4).outerTickSize(2).ticks(e,t.tickFormat).tickValues(t.ordinal?i:null).tickFormat((function(e){return g.isOrdinal(t)?e:O(t.model.dimensions[t.visibleIndex],e)})).scale(r)),u.font(V.selectAll("text"),t.model.tickFont)})),V.selectAll(".domain, .tick>line").attr("fill","none").attr("stroke","black").attr("stroke-opacity",.25).attr("stroke-width","1px"),V.selectAll("text").style("text-shadow",c.makeTextShadow(w)).style("cursor","default");var q=U.selectAll("."+v.cn.axisHeading).data(d,p);q.enter().append("g").classed(v.cn.axisHeading,!0);var H=q.selectAll("."+v.cn.axisTitle).data(d,p);H.enter().append("text").classed(v.cn.axisTitle,!0).attr("text-anchor","middle").style("cursor","ew-resize").style("pointer-events","auto"),H.text((function(t){return t.label})).each((function(e){var r=n.select(this);u.font(r,e.model.labelFont),c.convertToTspans(r,t)})).attr("transform",(function(t){var e=P(t.model.labelAngle,t.model.labelSide),r=v.axisTitleOffset;return(e.dir>0?"":l(0,2*r+t.model.height))+s(e.degrees)+l(-r*e.dx,-r*e.dy)})).attr("text-anchor",(function(t){var e=P(t.model.labelAngle,t.model.labelSide);return 2*Math.abs(e.dx)>Math.abs(e.dy)?e.dir*e.dx<0?"start":"end":"middle"}));var G=U.selectAll("."+v.cn.axisExtent).data(d,p);G.enter().append("g").classed(v.cn.axisExtent,!0);var Y=G.selectAll("."+v.cn.axisExtentTop).data(d,p);Y.enter().append("g").classed(v.cn.axisExtentTop,!0),Y.attr("transform",l(0,-v.axisExtentOffset));var W=Y.selectAll("."+v.cn.axisExtentTopText).data(d,p);W.enter().append("text").classed(v.cn.axisExtentTopText,!0).call(C),W.text((function(t){return z(t,!0)})).each((function(t){u.font(n.select(this),t.model.rangeFont)}));var X=G.selectAll("."+v.cn.axisExtentBottom).data(d,p);X.enter().append("g").classed(v.cn.axisExtentBottom,!0),X.attr("transform",(function(t){return l(0,t.model.height+v.axisExtentOffset)}));var Z=X.selectAll("."+v.cn.axisExtentBottomText).data(d,p);Z.enter().append("text").classed(v.cn.axisExtentBottomText,!0).attr("dy","0.75em").call(C),Z.text((function(t){return z(t,!1)})).each((function(t){u.font(n.select(this),t.model.rangeFont)})),y.ensureAxisBrush(U,w)}},{"../../components/colorscale":670,"../../components/drawing":680,"../../lib":795,"../../lib/gup":792,"../../lib/svg_text_utils":820,"../../plots/cartesian/axes":845,"./axisbrush":1162,"./constants":1165,"./helpers":1167,"./lines":1169,"@plotly/d3":57,"color-rgba":128}],1172:[function(t,e,r){"use strict";var n=t("./parcoords"),i=t("../../lib/prepare_regl"),a=t("./helpers").isVisible;function o(t,e,r){var n=e.indexOf(r),i=t.indexOf(n);return-1===i&&(i+=e.length),i}e.exports=function(t,e){var r=t._fullLayout;if(i(t)){var s={},l={},c={},u={},f=r._size;e.forEach((function(e,r){var n=e[0].trace;c[r]=n.index;var i=u[r]=n._fullInput.index;s[r]=t.data[i].dimensions,l[r]=t.data[i].dimensions.slice()}));n(t,e,{width:f.w,height:f.h,margin:{t:f.t,r:f.r,b:f.b,l:f.l}},{filterChanged:function(e,n,i){var a=l[e][n],o=i.map((function(t){return t.slice()})),s="dimensions["+n+"].constraintrange",f=r._tracePreGUI[t._fullData[c[e]]._fullInput.uid];if(void 0===f[s]){var h=a.constraintrange;f[s]=h||null}var p=t._fullData[c[e]].dimensions[n];o.length?(1===o.length&&(o=o[0]),a.constraintrange=o,p.constraintrange=o.slice(),o=[o]):(delete a.constraintrange,delete p.constraintrange,o=null);var d={};d[s]=o,t.emit("plotly_restyle",[d,[u[e]]])},hover:function(e){t.emit("plotly_hover",e)},unhover:function(e){t.emit("plotly_unhover",e)},axesMoved:function(e,r){var n=function(t,e){return function(r,n){return o(t,e,r)-o(t,e,n)}}(r,l[e].filter(a));s[e].sort(n),l[e].filter((function(t){return!a(t)})).sort((function(t){return l[e].indexOf(t)})).forEach((function(t){s[e].splice(s[e].indexOf(t),1),s[e].splice(l[e].indexOf(t),0,t)})),t.emit("plotly_restyle",[{dimensions:[s[e]]},[u[e]]])}})}}},{"../../lib/prepare_regl":808,"./helpers":1167,"./parcoords":1171}],1173:[function(t,e,r){"use strict";var n=t("../../plots/attributes"),i=t("../../plots/domain").attributes,a=t("../../plots/font_attributes"),o=t("../../components/color/attributes"),s=t("../../plots/template_attributes").hovertemplateAttrs,l=t("../../plots/template_attributes").texttemplateAttrs,c=t("../../lib/extend").extendFlat,u=a({editType:"plot",arrayOk:!0,colorEditType:"plot"});e.exports={labels:{valType:"data_array",editType:"calc"},label0:{valType:"number",dflt:0,editType:"calc"},dlabel:{valType:"number",dflt:1,editType:"calc"},values:{valType:"data_array",editType:"calc"},marker:{colors:{valType:"data_array",editType:"calc"},line:{color:{valType:"color",dflt:o.defaultLine,arrayOk:!0,editType:"style"},width:{valType:"number",min:0,dflt:0,arrayOk:!0,editType:"style"},editType:"calc"},editType:"calc"},text:{valType:"data_array",editType:"plot"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"style"},scalegroup:{valType:"string",dflt:"",editType:"calc"},textinfo:{valType:"flaglist",flags:["label","text","value","percent"],extras:["none"],editType:"calc"},hoverinfo:c({},n.hoverinfo,{flags:["label","text","value","percent","name"]}),hovertemplate:s({},{keys:["label","color","value","percent","text"]}),texttemplate:l({editType:"plot"},{keys:["label","color","value","percent","text"]}),textposition:{valType:"enumerated",values:["inside","outside","auto","none"],dflt:"auto",arrayOk:!0,editType:"plot"},textfont:c({},u,{}),insidetextorientation:{valType:"enumerated",values:["horizontal","radial","tangential","auto"],dflt:"auto",editType:"plot"},insidetextfont:c({},u,{}),outsidetextfont:c({},u,{}),automargin:{valType:"boolean",dflt:!1,editType:"plot"},title:{text:{valType:"string",dflt:"",editType:"plot"},font:c({},u,{}),position:{valType:"enumerated",values:["top left","top center","top right","middle center","bottom left","bottom center","bottom right"],editType:"plot"},editType:"plot"},domain:i({name:"pie",trace:!0,editType:"calc"}),hole:{valType:"number",min:0,max:1,dflt:0,editType:"calc"},sort:{valType:"boolean",dflt:!0,editType:"calc"},direction:{valType:"enumerated",values:["clockwise","counterclockwise"],dflt:"counterclockwise",editType:"calc"},rotation:{valType:"number",min:-360,max:360,dflt:0,editType:"calc"},pull:{valType:"number",min:0,max:1,dflt:0,arrayOk:!0,editType:"calc"},_deprecated:{title:{valType:"string",dflt:"",editType:"calc"},titlefont:c({},u,{}),titleposition:{valType:"enumerated",values:["top left","top center","top right","middle center","bottom left","bottom center","bottom right"],editType:"calc"}}}},{"../../components/color/attributes":657,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/domain":872,"../../plots/font_attributes":873,"../../plots/template_attributes":918}],1174:[function(t,e,r){"use strict";var n=t("../../plots/plots");r.name="pie",r.plot=function(t,e,i,a){n.plotBasePlot(r.name,t,e,i,a)},r.clean=function(t,e,i,a){n.cleanBasePlot(r.name,t,e,i,a)}},{"../../plots/plots":909}],1175:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("tinycolor2"),a=t("../../components/color"),o={};function s(t){return function(e,r){return!!e&&(!!(e=i(e)).isValid()&&(e=a.addOpacity(e,e.getAlpha()),t[r]||(t[r]=e),e))}}function l(t,e){var r,n=JSON.stringify(t),a=e[n];if(!a){for(a=t.slice(),r=0;r0){s=!0;break}}s||(o=0)}return{hasLabels:r,hasValues:a,len:o}}e.exports={handleLabelsAndValues:l,supplyDefaults:function(t,e,r,n){function c(r,n){return i.coerce(t,e,a,r,n)}var u=l(c("labels"),c("values")),f=u.len;if(e._hasLabels=u.hasLabels,e._hasValues=u.hasValues,!e._hasLabels&&e._hasValues&&(c("label0"),c("dlabel")),f){e._length=f,c("marker.line.width")&&c("marker.line.color"),c("marker.colors"),c("scalegroup");var h,p=c("text"),d=c("texttemplate");if(d||(h=c("textinfo",Array.isArray(p)?"text+percent":"percent")),c("hovertext"),c("hovertemplate"),d||h&&"none"!==h){var m=c("textposition");s(t,e,n,c,m,{moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1}),(Array.isArray(m)||"auto"===m||"outside"===m)&&c("automargin"),("inside"===m||"auto"===m||Array.isArray(m))&&c("insidetextorientation")}o(e,n,c);var g=c("hole");if(c("title.text")){var v=c("title.position",g?"middle center":"top center");g||"middle center"!==v||(e.title.position="top center"),i.coerceFont(c,"title.font",n.font)}c("sort"),c("direction"),c("rotation"),c("pull")}else e.visible=!1}}},{"../../lib":795,"../../plots/domain":872,"../bar/defaults":937,"./attributes":1173,"fast-isnumeric":240}],1177:[function(t,e,r){"use strict";var n=t("../../components/fx/helpers").appendArrayMultiPointValues;e.exports=function(t,e){var r={curveNumber:e.index,pointNumbers:t.pts,data:e._input,fullData:e,label:t.label,color:t.color,value:t.v,percent:t.percent,text:t.text,v:t.v};return 1===t.pts.length&&(r.pointNumber=r.i=t.pts[0]),n(r,e,t.pts),"funnelarea"===e.type&&(delete r.v,delete r.i),r}},{"../../components/fx/helpers":694}],1178:[function(t,e,r){"use strict";var n=t("../../lib");function i(t){return-1!==t.indexOf("e")?t.replace(/[.]?0+e/,"e"):-1!==t.indexOf(".")?t.replace(/[.]?0+$/,""):t}r.formatPiePercent=function(t,e){var r=i((100*t).toPrecision(3));return n.numSeparate(r,e)+"%"},r.formatPieValue=function(t,e){var r=i(t.toPrecision(10));return n.numSeparate(r,e)},r.getFirstFilled=function(t,e){if(Array.isArray(t))for(var r=0;r"),name:u.hovertemplate||-1!==f.indexOf("name")?u.name:void 0,idealAlign:t.pxmid[0]<0?"left":"right",color:g.castOption(b.bgcolor,t.pts)||t.color,borderColor:g.castOption(b.bordercolor,t.pts),fontFamily:g.castOption(_.family,t.pts),fontSize:g.castOption(_.size,t.pts),fontColor:g.castOption(_.color,t.pts),nameLength:g.castOption(b.namelength,t.pts),textAlign:g.castOption(b.align,t.pts),hovertemplate:g.castOption(u.hovertemplate,t.pts),hovertemplateLabels:t,eventData:[v(t,u)]},{container:r._hoverlayer.node(),outerContainer:r._paper.node(),gd:e}),o._hasHoverLabel=!0}o._hasHoverEvent=!0,e.emit("plotly_hover",{points:[v(t,u)],event:n.event})}})),t.on("mouseout",(function(t){var r=e._fullLayout,i=e._fullData[o.index],s=n.select(this).datum();o._hasHoverEvent&&(t.originalEvent=n.event,e.emit("plotly_unhover",{points:[v(s,i)],event:n.event}),o._hasHoverEvent=!1),o._hasHoverLabel&&(a.loneUnhover(r._hoverlayer.node()),o._hasHoverLabel=!1)})),t.on("click",(function(t){var r=e._fullLayout,i=e._fullData[o.index];e._dragging||!1===r.hovermode||(e._hoverdata=[v(t,i)],a.click(e,n.event))}))}function b(t,e,r){var n=g.castOption(t.insidetextfont.color,e.pts);!n&&t._input.textfont&&(n=g.castOption(t._input.textfont.color,e.pts));var i=g.castOption(t.insidetextfont.family,e.pts)||g.castOption(t.textfont.family,e.pts)||r.family,a=g.castOption(t.insidetextfont.size,e.pts)||g.castOption(t.textfont.size,e.pts)||r.size;return{color:n||o.contrast(e.color),family:i,size:a}}function _(t,e){for(var r,n,i=0;ie&&e>n||r=-4;g-=2)v(Math.PI*g,"tan");for(g=4;g>=-4;g-=2)v(Math.PI*(g+1),"tan")}if(f||p){for(g=4;g>=-4;g-=2)v(Math.PI*(g+1.5),"rad");for(g=4;g>=-4;g-=2)v(Math.PI*(g+.5),"rad")}}if(s||d||f){var y=Math.sqrt(t.width*t.width+t.height*t.height);if((a={scale:i*n*2/y,rCenter:1-i,rotate:0}).textPosAngle=(e.startangle+e.stopangle)/2,a.scale>=1)return a;m.push(a)}(d||p)&&((a=T(t,n,o,l,c)).textPosAngle=(e.startangle+e.stopangle)/2,m.push(a)),(d||h)&&((a=k(t,n,o,l,c)).textPosAngle=(e.startangle+e.stopangle)/2,m.push(a));for(var x=0,b=0,_=0;_=1)break}return m[x]}function T(t,e,r,n,i){e=Math.max(0,e-2*m);var a=t.width/t.height,o=S(a,n,e,r);return{scale:2*o/t.height,rCenter:M(a,o/e),rotate:A(i)}}function k(t,e,r,n,i){e=Math.max(0,e-2*m);var a=t.height/t.width,o=S(a,n,e,r);return{scale:2*o/t.width,rCenter:M(a,o/e),rotate:A(i+Math.PI/2)}}function M(t,e){return Math.cos(e)-t*e}function A(t){return(180/Math.PI*t+720)%180-90}function S(t,e,r,n){var i=t+1/(2*Math.tan(e));return r*Math.min(1/(Math.sqrt(i*i+.5)+i),n/(Math.sqrt(t*t+n/2)+t))}function E(t,e){return t.v!==e.vTotal||e.trace.hole?Math.min(1/(1+1/Math.sin(t.halfangle)),t.ring/2):1}function L(t,e){var r=e.pxmid[0],n=e.pxmid[1],i=t.width/2,a=t.height/2;return r<0&&(i*=-1),n<0&&(a*=-1),{scale:1,rCenter:1,rotate:0,x:i+Math.abs(a)*(i>0?1:-1)/2,y:a/(1+r*r/(n*n)),outside:!0}}function C(t,e){var r,n,i,a=t.trace,o={x:t.cx,y:t.cy},s={tx:0,ty:0};s.ty+=a.title.font.size,i=I(a),-1!==a.title.position.indexOf("top")?(o.y-=(1+i)*t.r,s.ty-=t.titleBox.height):-1!==a.title.position.indexOf("bottom")&&(o.y+=(1+i)*t.r);var l,c,u=(l=t.r,c=t.trace.aspectratio,l/(void 0===c?1:c)),f=e.w*(a.domain.x[1]-a.domain.x[0])/2;return-1!==a.title.position.indexOf("left")?(f+=u,o.x-=(1+i)*u,s.tx+=t.titleBox.width/2):-1!==a.title.position.indexOf("center")?f*=2:-1!==a.title.position.indexOf("right")&&(f+=u,o.x+=(1+i)*u,s.tx-=t.titleBox.width/2),r=f/t.titleBox.width,n=P(t,e)/t.titleBox.height,{x:o.x,y:o.y,scale:Math.min(r,n),tx:s.tx,ty:s.ty}}function P(t,e){var r=t.trace,n=e.h*(r.domain.y[1]-r.domain.y[0]);return Math.min(t.titleBox.height,n/2)}function I(t){var e,r=t.pull;if(!r)return 0;if(Array.isArray(r))for(r=0,e=0;er&&(r=t.pull[e]);return r}function O(t,e){for(var r=[],n=0;n1?(c=r.r,u=c/i.aspectratio):(u=r.r,c=u*i.aspectratio),c*=(1+i.baseratio)/2,l=c*u}o=Math.min(o,l/r.vTotal)}for(n=0;n")}if(a){var x=l.castOption(i,e.i,"texttemplate");if(x){var b=function(t){return{label:t.label,value:t.v,valueLabel:g.formatPieValue(t.v,n.separators),percent:t.v/r.vTotal,percentLabel:g.formatPiePercent(t.v/r.vTotal,n.separators),color:t.color,text:t.text,customdata:l.castOption(i,t.i,"customdata")}}(e),_=g.getFirstFilled(i.text,e.pts);(y(_)||""===_)&&(b.text=_),e.text=l.texttemplateString(x,b,t._fullLayout._d3locale,b,i._meta||{})}else e.text=""}}function R(t,e){var r=t.rotate*Math.PI/180,n=Math.cos(r),i=Math.sin(r),a=(e.left+e.right)/2,o=(e.top+e.bottom)/2;t.textX=a*n-o*i,t.textY=a*i+o*n,t.noCenter=!0}e.exports={plot:function(t,e){var r=t._fullLayout,a=r._size;d("pie",r),_(e,t),O(e,a);var h=l.makeTraceGroups(r._pielayer,e,"trace").each((function(e){var h=n.select(this),d=e[0],m=d.trace;!function(t){var e,r,n,i=t[0],a=i.r,o=i.trace,s=g.getRotationAngle(o.rotation),l=2*Math.PI/i.vTotal,c="px0",u="px1";if("counterclockwise"===o.direction){for(e=0;ei.vTotal/2?1:0,r.halfangle=Math.PI*Math.min(r.v/i.vTotal,.5),r.ring=1-o.hole,r.rInscribed=E(r,i))}(e),h.attr("stroke-linejoin","round"),h.each((function(){var v=n.select(this).selectAll("g.slice").data(e);v.enter().append("g").classed("slice",!0),v.exit().remove();var y=[[[],[]],[[],[]]],_=!1;v.each((function(i,a){if(i.hidden)n.select(this).selectAll("path,g").remove();else{i.pointNumber=i.i,i.curveNumber=m.index,y[i.pxmid[1]<0?0:1][i.pxmid[0]<0?0:1].push(i);var o=d.cx,c=d.cy,u=n.select(this),h=u.selectAll("path.surface").data([i]);if(h.enter().append("path").classed("surface",!0).style({"pointer-events":"all"}),u.call(x,t,e),m.pull){var v=+g.castOption(m.pull,i.pts)||0;v>0&&(o+=v*i.pxmid[0],c+=v*i.pxmid[1])}i.cxFinal=o,i.cyFinal=c;var T=m.hole;if(i.v===d.vTotal){var k="M"+(o+i.px0[0])+","+(c+i.px0[1])+C(i.px0,i.pxmid,!0,1)+C(i.pxmid,i.px0,!0,1)+"Z";T?h.attr("d","M"+(o+T*i.px0[0])+","+(c+T*i.px0[1])+C(i.px0,i.pxmid,!1,T)+C(i.pxmid,i.px0,!1,T)+"Z"+k):h.attr("d",k)}else{var M=C(i.px0,i.px1,!0,1);if(T){var A=1-T;h.attr("d","M"+(o+T*i.px1[0])+","+(c+T*i.px1[1])+C(i.px1,i.px0,!1,T)+"l"+A*i.px0[0]+","+A*i.px0[1]+M+"Z")}else h.attr("d","M"+o+","+c+"l"+i.px0[0]+","+i.px0[1]+M+"Z")}D(t,i,d);var S=g.castOption(m.textposition,i.pts),E=u.selectAll("g.slicetext").data(i.text&&"none"!==S?[0]:[]);E.enter().append("g").classed("slicetext",!0),E.exit().remove(),E.each((function(){var u=l.ensureSingle(n.select(this),"text","",(function(t){t.attr("data-notex",1)})),h=l.ensureUniformFontSize(t,"outside"===S?function(t,e,r){var n=g.castOption(t.outsidetextfont.color,e.pts)||g.castOption(t.textfont.color,e.pts)||r.color,i=g.castOption(t.outsidetextfont.family,e.pts)||g.castOption(t.textfont.family,e.pts)||r.family,a=g.castOption(t.outsidetextfont.size,e.pts)||g.castOption(t.textfont.size,e.pts)||r.size;return{color:n,family:i,size:a}}(m,i,r.font):b(m,i,r.font));u.text(i.text).attr({class:"slicetext",transform:"","text-anchor":"middle"}).call(s.font,h).call(f.convertToTspans,t);var v,y=s.bBox(u.node());if("outside"===S)v=L(y,i);else if(v=w(y,i,d),"auto"===S&&v.scale<1){var x=l.ensureUniformFontSize(t,m.outsidetextfont);u.call(s.font,x),v=L(y=s.bBox(u.node()),i)}var T=v.textPosAngle,k=void 0===T?i.pxmid:z(d.r,T);if(v.targetX=o+k[0]*v.rCenter+(v.x||0),v.targetY=c+k[1]*v.rCenter+(v.y||0),R(v,y),v.outside){var M=v.targetY;i.yLabelMin=M-y.height/2,i.yLabelMid=M,i.yLabelMax=M+y.height/2,i.labelExtraX=0,i.labelExtraY=0,_=!0}v.fontSize=h.size,p(m.type,v,r),e[a].transform=v,u.attr("transform",l.getTextTransform(v))}))}function C(t,e,r,n){var a=n*(e[0]-t[0]),o=n*(e[1]-t[1]);return"a"+n*d.r+","+n*d.r+" 0 "+i.largeArc+(r?" 1 ":" 0 ")+a+","+o}}));var T=n.select(this).selectAll("g.titletext").data(m.title.text?[0]:[]);if(T.enter().append("g").classed("titletext",!0),T.exit().remove(),T.each((function(){var e,r=l.ensureSingle(n.select(this),"text","",(function(t){t.attr("data-notex",1)})),i=m.title.text;m._meta&&(i=l.templateString(i,m._meta)),r.text(i).attr({class:"titletext",transform:"","text-anchor":"middle"}).call(s.font,m.title.font).call(f.convertToTspans,t),e="middle center"===m.title.position?function(t){var e=Math.sqrt(t.titleBox.width*t.titleBox.width+t.titleBox.height*t.titleBox.height);return{x:t.cx,y:t.cy,scale:t.trace.hole*t.r*2/e,tx:0,ty:-t.titleBox.height/2+t.trace.title.font.size}}(d):C(d,a),r.attr("transform",u(e.x,e.y)+c(Math.min(1,e.scale))+u(e.tx,e.ty))})),_&&function(t,e){var r,n,i,a,o,s,l,c,u,f,h,p,d;function m(t,e){return t.pxmid[1]-e.pxmid[1]}function v(t,e){return e.pxmid[1]-t.pxmid[1]}function y(t,r){r||(r={});var i,c,u,h,p=r.labelExtraY+(n?r.yLabelMax:r.yLabelMin),d=n?t.yLabelMin:t.yLabelMax,m=n?t.yLabelMax:t.yLabelMin,v=t.cyFinal+o(t.px0[1],t.px1[1]),y=p-d;if(y*l>0&&(t.labelExtraY=y),Array.isArray(e.pull))for(c=0;c=(g.castOption(e.pull,u.pts)||0)||((t.pxmid[1]-u.pxmid[1])*l>0?(y=u.cyFinal+o(u.px0[1],u.px1[1])-d-t.labelExtraY)*l>0&&(t.labelExtraY+=y):(m+t.labelExtraY-v)*l>0&&(i=3*s*Math.abs(c-f.indexOf(t)),(h=u.cxFinal+a(u.px0[0],u.px1[0])+i-(t.cxFinal+t.pxmid[0])-t.labelExtraX)*s>0&&(t.labelExtraX+=h)))}for(n=0;n<2;n++)for(i=n?m:v,o=n?Math.max:Math.min,l=n?1:-1,r=0;r<2;r++){for(a=r?Math.max:Math.min,s=r?1:-1,(c=t[n][r]).sort(i),u=t[1-n][r],f=u.concat(c),p=[],h=0;hMath.abs(f)?s+="l"+f*t.pxmid[0]/t.pxmid[1]+","+f+"H"+(a+t.labelExtraX+c):s+="l"+t.labelExtraX+","+u+"v"+(f-u)+"h"+c}else s+="V"+(t.yLabelMid+t.labelExtraY)+"h"+c;l.ensureSingle(r,"path","textline").call(o.stroke,e.outsidetextfont.color).attr({"stroke-width":Math.min(2,e.outsidetextfont.size/8),d:s,fill:"none"})}else r.select("path.textline").remove()}))}(v,m),_&&m.automargin){var k=s.bBox(h.node()),M=m.domain,A=a.w*(M.x[1]-M.x[0]),S=a.h*(M.y[1]-M.y[0]),E=(.5*A-d.r)/a.w,P=(.5*S-d.r)/a.h;i.autoMargin(t,"pie."+m.uid+".automargin",{xl:M.x[0]-E,xr:M.x[1]+E,yb:M.y[0]-P,yt:M.y[1]+P,l:Math.max(d.cx-d.r-k.left,0),r:Math.max(k.right-(d.cx+d.r),0),b:Math.max(k.bottom-(d.cy+d.r),0),t:Math.max(d.cy-d.r-k.top,0),pad:5})}}))}));setTimeout((function(){h.selectAll("tspan").each((function(){var t=n.select(this);t.attr("dy")&&t.attr("dy",t.attr("dy"))}))}),0)},formatSliceLabel:D,transformInsideText:w,determineInsideTextFont:b,positionTitleOutside:C,prerenderTitles:_,layoutAreas:O,attachFxHandlers:x,computeTransform:R}},{"../../components/color":658,"../../components/drawing":680,"../../components/fx":698,"../../lib":795,"../../lib/svg_text_utils":820,"../../plots/plots":909,"../bar/constants":935,"../bar/uniform_text":949,"./event_data":1177,"./helpers":1178,"@plotly/d3":57}],1183:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("./style_one"),a=t("../bar/uniform_text").resizeText;e.exports=function(t){var e=t._fullLayout._pielayer.selectAll(".trace");a(t,e,"pie"),e.each((function(t){var e=t[0].trace,r=n.select(this);r.style({opacity:e.opacity}),r.selectAll("path.surface").each((function(t){n.select(this).call(i,t,e)}))}))}},{"../bar/uniform_text":949,"./style_one":1184,"@plotly/d3":57}],1184:[function(t,e,r){"use strict";var n=t("../../components/color"),i=t("./helpers").castOption;e.exports=function(t,e,r){var a=r.marker.line,o=i(a.color,e.pts)||n.defaultLine,s=i(a.width,e.pts)||0;t.style("stroke-width",s).call(n.fill,e.color).call(n.stroke,o)}},{"../../components/color":658,"./helpers":1178}],1185:[function(t,e,r){"use strict";var n=t("../scatter/attributes");e.exports={x:n.x,y:n.y,xy:{valType:"data_array",editType:"calc"},indices:{valType:"data_array",editType:"calc"},xbounds:{valType:"data_array",editType:"calc"},ybounds:{valType:"data_array",editType:"calc"},text:n.text,marker:{color:{valType:"color",arrayOk:!1,editType:"calc"},opacity:{valType:"number",min:0,max:1,dflt:1,arrayOk:!1,editType:"calc"},blend:{valType:"boolean",dflt:null,editType:"calc"},sizemin:{valType:"number",min:.1,max:2,dflt:.5,editType:"calc"},sizemax:{valType:"number",min:.1,dflt:20,editType:"calc"},border:{color:{valType:"color",arrayOk:!1,editType:"calc"},arearatio:{valType:"number",min:0,max:1,dflt:0,editType:"calc"},editType:"calc"},editType:"calc"},transforms:void 0}},{"../scatter/attributes":1199}],1186:[function(t,e,r){"use strict";var n=t("gl-pointcloud2d"),i=t("../../lib/str2rgbarray"),a=t("../../plots/cartesian/autorange").findExtremes,o=t("../scatter/get_trace_color");function s(t,e){this.scene=t,this.uid=e,this.type="pointcloud",this.pickXData=[],this.pickYData=[],this.xData=[],this.yData=[],this.textLabels=[],this.color="rgb(0, 0, 0)",this.name="",this.hoverinfo="all",this.idToIndex=new Int32Array(0),this.bounds=[0,0,0,0],this.pointcloudOptions={positions:new Float32Array(0),idToIndex:this.idToIndex,sizemin:.5,sizemax:12,color:[0,0,0,1],areaRatio:1,borderColor:[0,0,0,1]},this.pointcloud=n(t.glplot,this.pointcloudOptions),this.pointcloud._trace=this}var l=s.prototype;l.handlePick=function(t){var e=this.idToIndex[t.pointId];return{trace:this,dataCoord:t.dataCoord,traceCoord:this.pickXYData?[this.pickXYData[2*e],this.pickXYData[2*e+1]]:[this.pickXData[e],this.pickYData[e]],textLabel:Array.isArray(this.textLabels)?this.textLabels[e]:this.textLabels,color:this.color,name:this.name,pointIndex:e,hoverinfo:this.hoverinfo}},l.update=function(t){this.index=t.index,this.textLabels=t.text,this.name=t.name,this.hoverinfo=t.hoverinfo,this.bounds=[1/0,1/0,-1/0,-1/0],this.updateFast(t),this.color=o(t,{})},l.updateFast=function(t){var e,r,n,o,s,l,c=this.xData=this.pickXData=t.x,u=this.yData=this.pickYData=t.y,f=this.pickXYData=t.xy,h=t.xbounds&&t.ybounds,p=t.indices,d=this.bounds;if(f){if(n=f,e=f.length>>>1,h)d[0]=t.xbounds[0],d[2]=t.xbounds[1],d[1]=t.ybounds[0],d[3]=t.ybounds[1];else for(l=0;ld[2]&&(d[2]=o),sd[3]&&(d[3]=s);if(p)r=p;else for(r=new Int32Array(e),l=0;ld[2]&&(d[2]=o),sd[3]&&(d[3]=s);this.idToIndex=r,this.pointcloudOptions.idToIndex=r,this.pointcloudOptions.positions=n;var m=i(t.marker.color),g=i(t.marker.border.color),v=t.opacity*t.marker.opacity;m[3]*=v,this.pointcloudOptions.color=m;var y=t.marker.blend;if(null===y){y=c.length<100||u.length<100}this.pointcloudOptions.blend=y,g[3]*=v,this.pointcloudOptions.borderColor=g;var x=t.marker.sizemin,b=Math.max(t.marker.sizemax,t.marker.sizemin);this.pointcloudOptions.sizeMin=x,this.pointcloudOptions.sizeMax=b,this.pointcloudOptions.areaRatio=t.marker.border.arearatio,this.pointcloud.update(this.pointcloudOptions);var _=this.scene.xaxis,w=this.scene.yaxis,T=b/2||.5;t._extremes[_._id]=a(_,[d[0],d[2]],{ppad:T}),t._extremes[w._id]=a(w,[d[1],d[3]],{ppad:T})},l.dispose=function(){this.pointcloud.dispose()},e.exports=function(t,e){var r=new s(t,e.uid);return r.update(e),r}},{"../../lib/str2rgbarray":819,"../../plots/cartesian/autorange":844,"../scatter/get_trace_color":1209,"gl-pointcloud2d":319}],1187:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./attributes");e.exports=function(t,e,r){function a(r,a){return n.coerce(t,e,i,r,a)}a("x"),a("y"),a("xbounds"),a("ybounds"),t.xy&&t.xy instanceof Float32Array&&(e.xy=t.xy),t.indices&&t.indices instanceof Int32Array&&(e.indices=t.indices),a("text"),a("marker.color",r),a("marker.opacity"),a("marker.blend"),a("marker.sizemin"),a("marker.sizemax"),a("marker.border.color",r),a("marker.border.arearatio"),e._length=null}},{"../../lib":795,"./attributes":1185}],1188:[function(t,e,r){"use strict";["*pointcloud* trace is deprecated!","Please consider switching to the *scattergl* trace type."].join(" ");e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),calc:t("../scatter3d/calc"),plot:t("./convert"),moduleType:"trace",name:"pointcloud",basePlotModule:t("../../plots/gl2d"),categories:["gl","gl2d","showLegend"],meta:{}}},{"../../plots/gl2d":885,"../scatter3d/calc":1228,"./attributes":1185,"./convert":1186,"./defaults":1187}],1189:[function(t,e,r){"use strict";var n=t("../../plots/font_attributes"),i=t("../../plots/attributes"),a=t("../../components/color/attributes"),o=t("../../components/fx/attributes"),s=t("../../plots/domain").attributes,l=t("../../plots/template_attributes").hovertemplateAttrs,c=t("../../components/colorscale/attributes"),u=t("../../plot_api/plot_template").templatedArray,f=t("../../lib/extend").extendFlat,h=t("../../plot_api/edit_types").overrideAll;t("../../constants/docs").FORMAT_LINK;(e.exports=h({hoverinfo:f({},i.hoverinfo,{flags:[],arrayOk:!1}),hoverlabel:o.hoverlabel,domain:s({name:"sankey",trace:!0}),orientation:{valType:"enumerated",values:["v","h"],dflt:"h"},valueformat:{valType:"string",dflt:".3s"},valuesuffix:{valType:"string",dflt:""},arrangement:{valType:"enumerated",values:["snap","perpendicular","freeform","fixed"],dflt:"snap"},textfont:n({}),customdata:void 0,node:{label:{valType:"data_array",dflt:[]},groups:{valType:"info_array",impliedEdits:{x:[],y:[]},dimensions:2,freeLength:!0,dflt:[],items:{valType:"number",editType:"calc"}},x:{valType:"data_array",dflt:[]},y:{valType:"data_array",dflt:[]},color:{valType:"color",arrayOk:!0},customdata:{valType:"data_array",editType:"calc"},line:{color:{valType:"color",dflt:a.defaultLine,arrayOk:!0},width:{valType:"number",min:0,dflt:.5,arrayOk:!0}},pad:{valType:"number",arrayOk:!1,min:0,dflt:20},thickness:{valType:"number",arrayOk:!1,min:1,dflt:20},hoverinfo:{valType:"enumerated",values:["all","none","skip"],dflt:"all"},hoverlabel:o.hoverlabel,hovertemplate:l({},{keys:["value","label"]})},link:{label:{valType:"data_array",dflt:[]},color:{valType:"color",arrayOk:!0},customdata:{valType:"data_array",editType:"calc"},line:{color:{valType:"color",dflt:a.defaultLine,arrayOk:!0},width:{valType:"number",min:0,dflt:0,arrayOk:!0}},source:{valType:"data_array",dflt:[]},target:{valType:"data_array",dflt:[]},value:{valType:"data_array",dflt:[]},hoverinfo:{valType:"enumerated",values:["all","none","skip"],dflt:"all"},hoverlabel:o.hoverlabel,hovertemplate:l({},{keys:["value","label"]}),colorscales:u("concentrationscales",{editType:"calc",label:{valType:"string",editType:"calc",dflt:""},cmax:{valType:"number",editType:"calc",dflt:1},cmin:{valType:"number",editType:"calc",dflt:0},colorscale:f(c().colorscale,{dflt:[[0,"white"],[1,"black"]]})})}},"calc","nested")).transforms=void 0},{"../../components/color/attributes":657,"../../components/colorscale/attributes":665,"../../components/fx/attributes":689,"../../constants/docs":766,"../../lib/extend":785,"../../plot_api/edit_types":827,"../../plot_api/plot_template":834,"../../plots/attributes":841,"../../plots/domain":872,"../../plots/font_attributes":873,"../../plots/template_attributes":918}],1190:[function(t,e,r){"use strict";var n=t("../../plot_api/edit_types").overrideAll,i=t("../../plots/get_data").getModuleCalcData,a=t("./plot"),o=t("../../components/fx/layout_attributes"),s=t("../../lib/setcursor"),l=t("../../components/dragelement"),c=t("../../plots/cartesian/select").prepSelect,u=t("../../lib"),f=t("../../registry");function h(t,e){var r=t._fullData[e],n=t._fullLayout,i=n.dragmode,a="pan"===n.dragmode?"move":"crosshair",o=r._bgRect;if("pan"!==i&&"zoom"!==i){s(o,a);var h={_id:"x",c2p:u.identity,_offset:r._sankey.translateX,_length:r._sankey.width},p={_id:"y",c2p:u.identity,_offset:r._sankey.translateY,_length:r._sankey.height},d={gd:t,element:o.node(),plotinfo:{id:e,xaxis:h,yaxis:p,fillRangeItems:u.noop},subplot:e,xaxes:[h],yaxes:[p],doneFnCompleted:function(r){var n,i=t._fullData[e],a=i.node.groups.slice(),o=[];function s(t){for(var e=i._sankey.graph.nodes,r=0;ry&&(y=a.source[e]),a.target[e]>y&&(y=a.target[e]);var x,b=y+1;t.node._count=b;var _=t.node.groups,w={};for(e=0;e<_.length;e++){var T=_[e];for(x=0;x0&&s(E,b)&&s(L,b)&&(!w.hasOwnProperty(E)||!w.hasOwnProperty(L)||w[E]!==w[L])){w.hasOwnProperty(L)&&(L=w[L]),w.hasOwnProperty(E)&&(E=w[E]),L=+L,h[E=+E]=h[L]=!0;var C="";a.label&&a.label[e]&&(C=a.label[e]);var P=null;C&&p.hasOwnProperty(C)&&(P=p[C]),c.push({pointNumber:e,label:C,color:u?a.color[e]:a.color,customdata:f?a.customdata[e]:a.customdata,concentrationscale:P,source:E,target:L,value:+S}),A.source.push(E),A.target.push(L)}}var I=b+_.length,O=o(r.color),z=o(r.customdata),D=[];for(e=0;eb-1,childrenNodes:[],pointNumber:e,label:R,color:O?r.color[e]:r.color,customdata:z?r.customdata[e]:r.customdata})}var F=!1;return function(t,e,r){for(var a=i.init2dArray(t,0),o=0;o1}))}(I,A.source,A.target)&&(F=!0),{circular:F,links:c,nodes:D,groups:_,groupLookup:w}}e.exports=function(t,e){var r=c(e);return a({circular:r.circular,_nodes:r.nodes,_links:r.links,_groups:r.groups,_groupLookup:r.groupLookup})}},{"../../components/colorscale":670,"../../lib":795,"../../lib/gup":792,"strongly-connected-components":582}],1192:[function(t,e,r){"use strict";e.exports={nodeTextOffsetHorizontal:4,nodeTextOffsetVertical:3,nodePadAcross:10,sankeyIterations:50,forceIterations:5,forceTicksPerFrame:10,duration:500,ease:"linear",cn:{sankey:"sankey",sankeyLinks:"sankey-links",sankeyLink:"sankey-link",sankeyNodeSet:"sankey-node-set",sankeyNode:"sankey-node",nodeRect:"node-rect",nodeLabel:"node-label"}}},{}],1193:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./attributes"),a=t("../../components/color"),o=t("tinycolor2"),s=t("../../plots/domain").defaults,l=t("../../components/fx/hoverlabel_defaults"),c=t("../../plot_api/plot_template"),u=t("../../plots/array_container_defaults");function f(t,e){function r(r,a){return n.coerce(t,e,i.link.colorscales,r,a)}r("label"),r("cmin"),r("cmax"),r("colorscale")}e.exports=function(t,e,r,h){function p(r,a){return n.coerce(t,e,i,r,a)}var d=n.extendDeep(h.hoverlabel,t.hoverlabel),m=t.node,g=c.newContainer(e,"node");function v(t,e){return n.coerce(m,g,i.node,t,e)}v("label"),v("groups"),v("x"),v("y"),v("pad"),v("thickness"),v("line.color"),v("line.width"),v("hoverinfo",t.hoverinfo),l(m,g,v,d),v("hovertemplate");var y=h.colorway;v("color",g.label.map((function(t,e){return a.addOpacity(function(t){return y[t%y.length]}(e),.8)}))),v("customdata");var x=t.link||{},b=c.newContainer(e,"link");function _(t,e){return n.coerce(x,b,i.link,t,e)}_("label"),_("source"),_("target"),_("value"),_("line.color"),_("line.width"),_("hoverinfo",t.hoverinfo),l(x,b,_,d),_("hovertemplate");var w,T=o(h.paper_bgcolor).getLuminance()<.333?"rgba(255, 255, 255, 0.6)":"rgba(0, 0, 0, 0.2)";_("color",n.repeat(T,b.value.length)),_("customdata"),u(x,b,{name:"colorscales",handleItemDefaults:f}),s(e,h,p),p("orientation"),p("valueformat"),p("valuesuffix"),g.x.length&&g.y.length&&(w="freeform"),p("arrangement",w),n.coerceFont(p,"textfont",n.extendFlat({},h.font)),e._length=null}},{"../../components/color":658,"../../components/fx/hoverlabel_defaults":696,"../../lib":795,"../../plot_api/plot_template":834,"../../plots/array_container_defaults":840,"../../plots/domain":872,"./attributes":1189,tinycolor2:590}],1194:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),calc:t("./calc"),plot:t("./plot"),moduleType:"trace",name:"sankey",basePlotModule:t("./base_plot"),selectPoints:t("./select.js"),categories:["noOpacity"],meta:{}}},{"./attributes":1189,"./base_plot":1190,"./calc":1191,"./defaults":1193,"./plot":1195,"./select.js":1197}],1195:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("./render"),a=t("../../components/fx"),o=t("../../components/color"),s=t("../../lib"),l=t("./constants").cn,c=s._;function u(t){return""!==t}function f(t,e){return t.filter((function(t){return t.key===e.traceId}))}function h(t,e){n.select(t).select("path").style("fill-opacity",e),n.select(t).select("rect").style("fill-opacity",e)}function p(t){n.select(t).select("text.name").style("fill","black")}function d(t){return function(e){return-1!==t.node.sourceLinks.indexOf(e.link)||-1!==t.node.targetLinks.indexOf(e.link)}}function m(t){return function(e){return-1!==e.node.sourceLinks.indexOf(t.link)||-1!==e.node.targetLinks.indexOf(t.link)}}function g(t,e,r){e&&r&&f(r,e).selectAll("."+l.sankeyLink).filter(d(e)).call(y.bind(0,e,r,!1))}function v(t,e,r){e&&r&&f(r,e).selectAll("."+l.sankeyLink).filter(d(e)).call(x.bind(0,e,r,!1))}function y(t,e,r,n){var i=n.datum().link.label;n.style("fill-opacity",(function(t){if(!t.link.concentrationscale)return.4})),i&&f(e,t).selectAll("."+l.sankeyLink).filter((function(t){return t.link.label===i})).style("fill-opacity",(function(t){if(!t.link.concentrationscale)return.4})),r&&f(e,t).selectAll("."+l.sankeyNode).filter(m(t)).call(g)}function x(t,e,r,n){var i=n.datum().link.label;n.style("fill-opacity",(function(t){return t.tinyColorAlpha})),i&&f(e,t).selectAll("."+l.sankeyLink).filter((function(t){return t.link.label===i})).style("fill-opacity",(function(t){return t.tinyColorAlpha})),r&&f(e,t).selectAll(l.sankeyNode).filter(m(t)).call(v)}function b(t,e){var r=t.hoverlabel||{},n=s.nestedProperty(r,e).get();return!Array.isArray(n)&&n}e.exports=function(t,e){for(var r=t._fullLayout,s=r._paper,f=r._size,d=0;d"),color:b(s,"bgcolor")||o.addOpacity(d.color,1),borderColor:b(s,"bordercolor"),fontFamily:b(s,"font.family"),fontSize:b(s,"font.size"),fontColor:b(s,"font.color"),nameLength:b(s,"namelength"),textAlign:b(s,"align"),idealAlign:n.event.x"),color:b(o,"bgcolor")||i.tinyColorHue,borderColor:b(o,"bordercolor"),fontFamily:b(o,"font.family"),fontSize:b(o,"font.size"),fontColor:b(o,"font.color"),nameLength:b(o,"namelength"),textAlign:b(o,"align"),idealAlign:"left",hovertemplate:o.hovertemplate,hovertemplateLabels:v,eventData:[i.node]},{container:r._hoverlayer.node(),outerContainer:r._paper.node(),gd:t});h(_,.85),p(_)}}},unhover:function(e,i,o){!1!==t._fullLayout.hovermode&&(n.select(e).call(v,i,o),"skip"!==i.node.trace.node.hoverinfo&&(i.node.fullData=i.node.trace,t.emit("plotly_unhover",{event:n.event,points:[i.node]})),a.loneUnhover(r._hoverlayer.node()))},select:function(e,r,i){var o=r.node;o.originalEvent=n.event,t._hoverdata=[o],n.select(e).call(v,r,i),a.click(t,{target:!0})}}})}},{"../../components/color":658,"../../components/fx":698,"../../lib":795,"./constants":1192,"./render":1196,"@plotly/d3":57}],1196:[function(t,e,r){"use strict";var n=t("d3-force"),i=t("d3-interpolate").interpolateNumber,a=t("@plotly/d3"),o=t("@plotly/d3-sankey"),s=t("@plotly/d3-sankey-circular"),l=t("./constants"),c=t("tinycolor2"),u=t("../../components/color"),f=t("../../components/drawing"),h=t("../../lib"),p=h.strTranslate,d=h.strRotate,m=t("../../lib/gup"),g=m.keyFun,v=m.repeat,y=m.unwrap,x=t("../../lib/svg_text_utils"),b=t("../../registry"),_=t("../../constants/alignment"),w=_.CAP_SHIFT,T=_.LINE_SPACING;function k(t,e,r){var n,i=y(e),a=i.trace,u=a.domain,f="h"===a.orientation,p=a.node.pad,d=a.node.thickness,m=t.width*(u.x[1]-u.x[0]),g=t.height*(u.y[1]-u.y[0]),v=i._nodes,x=i._links,b=i.circular;(n=b?s.sankeyCircular().circularLinkGap(0):o.sankey()).iterations(l.sankeyIterations).size(f?[m,g]:[g,m]).nodeWidth(d).nodePadding(p).nodeId((function(t){return t.pointNumber})).nodes(v).links(x);var _,w,T,k=n();for(var M in n.nodePadding()=i||(r=i-e.y0)>1e-6&&(e.y0+=r,e.y1+=r),i=e.y1+p}))}(function(t){var e,r,n=t.map((function(t,e){return{x0:t.x0,index:e}})).sort((function(t,e){return t.x0-e.x0})),i=[],a=-1,o=-1/0;for(_=0;_o+d&&(a+=1,e=s.x0),o=s.x0,i[a]||(i[a]=[]),i[a].push(s),r=e-s.x0,s.x0+=r,s.x1+=r}return i}(v=k.nodes));n.update(k)}return{circular:b,key:r,trace:a,guid:h.randstr(),horizontal:f,width:m,height:g,nodePad:a.node.pad,nodeLineColor:a.node.line.color,nodeLineWidth:a.node.line.width,linkLineColor:a.link.line.color,linkLineWidth:a.link.line.width,valueFormat:a.valueformat,valueSuffix:a.valuesuffix,textFont:a.textfont,translateX:u.x[0]*t.width+t.margin.l,translateY:t.height-u.y[1]*t.height+t.margin.t,dragParallel:f?g:m,dragPerpendicular:f?m:g,arrangement:a.arrangement,sankey:n,graph:k,forceLayouts:{},interactionState:{dragInProgress:!1,hovered:!1}}}function M(t,e,r){var n=c(e.color),i=e.source.label+"|"+e.target.label+"__"+r;return e.trace=t.trace,e.curveNumber=t.trace.index,{circular:t.circular,key:i,traceId:t.key,pointNumber:e.pointNumber,link:e,tinyColorHue:u.tinyRGB(n),tinyColorAlpha:n.getAlpha(),linkPath:A,linkLineColor:t.linkLineColor,linkLineWidth:t.linkLineWidth,valueFormat:t.valueFormat,valueSuffix:t.valueSuffix,sankey:t.sankey,parent:t,interactionState:t.interactionState,flow:e.flow}}function A(){return function(t){if(t.link.circular)return e=t.link,r=e.width/2,n=e.circularPathData,"top"===e.circularLinkType?"M "+n.targetX+" "+(n.targetY+r)+" L"+n.rightInnerExtent+" "+(n.targetY+r)+"A"+(n.rightLargeArcRadius+r)+" "+(n.rightSmallArcRadius+r)+" 0 0 1 "+(n.rightFullExtent-r)+" "+(n.targetY-n.rightSmallArcRadius)+"L"+(n.rightFullExtent-r)+" "+n.verticalRightInnerExtent+"A"+(n.rightLargeArcRadius+r)+" "+(n.rightLargeArcRadius+r)+" 0 0 1 "+n.rightInnerExtent+" "+(n.verticalFullExtent-r)+"L"+n.leftInnerExtent+" "+(n.verticalFullExtent-r)+"A"+(n.leftLargeArcRadius+r)+" "+(n.leftLargeArcRadius+r)+" 0 0 1 "+(n.leftFullExtent+r)+" "+n.verticalLeftInnerExtent+"L"+(n.leftFullExtent+r)+" "+(n.sourceY-n.leftSmallArcRadius)+"A"+(n.leftLargeArcRadius+r)+" "+(n.leftSmallArcRadius+r)+" 0 0 1 "+n.leftInnerExtent+" "+(n.sourceY+r)+"L"+n.sourceX+" "+(n.sourceY+r)+"L"+n.sourceX+" "+(n.sourceY-r)+"L"+n.leftInnerExtent+" "+(n.sourceY-r)+"A"+(n.leftLargeArcRadius-r)+" "+(n.leftSmallArcRadius-r)+" 0 0 0 "+(n.leftFullExtent-r)+" "+(n.sourceY-n.leftSmallArcRadius)+"L"+(n.leftFullExtent-r)+" "+n.verticalLeftInnerExtent+"A"+(n.leftLargeArcRadius-r)+" "+(n.leftLargeArcRadius-r)+" 0 0 0 "+n.leftInnerExtent+" "+(n.verticalFullExtent+r)+"L"+n.rightInnerExtent+" "+(n.verticalFullExtent+r)+"A"+(n.rightLargeArcRadius-r)+" "+(n.rightLargeArcRadius-r)+" 0 0 0 "+(n.rightFullExtent+r)+" "+n.verticalRightInnerExtent+"L"+(n.rightFullExtent+r)+" "+(n.targetY-n.rightSmallArcRadius)+"A"+(n.rightLargeArcRadius-r)+" "+(n.rightSmallArcRadius-r)+" 0 0 0 "+n.rightInnerExtent+" "+(n.targetY-r)+"L"+n.targetX+" "+(n.targetY-r)+"Z":"M "+n.targetX+" "+(n.targetY-r)+" L"+n.rightInnerExtent+" "+(n.targetY-r)+"A"+(n.rightLargeArcRadius+r)+" "+(n.rightSmallArcRadius+r)+" 0 0 0 "+(n.rightFullExtent-r)+" "+(n.targetY+n.rightSmallArcRadius)+"L"+(n.rightFullExtent-r)+" "+n.verticalRightInnerExtent+"A"+(n.rightLargeArcRadius+r)+" "+(n.rightLargeArcRadius+r)+" 0 0 0 "+n.rightInnerExtent+" "+(n.verticalFullExtent+r)+"L"+n.leftInnerExtent+" "+(n.verticalFullExtent+r)+"A"+(n.leftLargeArcRadius+r)+" "+(n.leftLargeArcRadius+r)+" 0 0 0 "+(n.leftFullExtent+r)+" "+n.verticalLeftInnerExtent+"L"+(n.leftFullExtent+r)+" "+(n.sourceY+n.leftSmallArcRadius)+"A"+(n.leftLargeArcRadius+r)+" "+(n.leftSmallArcRadius+r)+" 0 0 0 "+n.leftInnerExtent+" "+(n.sourceY-r)+"L"+n.sourceX+" "+(n.sourceY-r)+"L"+n.sourceX+" "+(n.sourceY+r)+"L"+n.leftInnerExtent+" "+(n.sourceY+r)+"A"+(n.leftLargeArcRadius-r)+" "+(n.leftSmallArcRadius-r)+" 0 0 1 "+(n.leftFullExtent-r)+" "+(n.sourceY+n.leftSmallArcRadius)+"L"+(n.leftFullExtent-r)+" "+n.verticalLeftInnerExtent+"A"+(n.leftLargeArcRadius-r)+" "+(n.leftLargeArcRadius-r)+" 0 0 1 "+n.leftInnerExtent+" "+(n.verticalFullExtent-r)+"L"+n.rightInnerExtent+" "+(n.verticalFullExtent-r)+"A"+(n.rightLargeArcRadius-r)+" "+(n.rightLargeArcRadius-r)+" 0 0 1 "+(n.rightFullExtent+r)+" "+n.verticalRightInnerExtent+"L"+(n.rightFullExtent+r)+" "+(n.targetY+n.rightSmallArcRadius)+"A"+(n.rightLargeArcRadius-r)+" "+(n.rightSmallArcRadius-r)+" 0 0 1 "+n.rightInnerExtent+" "+(n.targetY+r)+"L"+n.targetX+" "+(n.targetY+r)+"Z";var e,r,n,a=t.link.source.x1,o=t.link.target.x0,s=i(a,o),l=s(.5),c=s(.5),u=t.link.y0-t.link.width/2,f=t.link.y0+t.link.width/2,h=t.link.y1-t.link.width/2,p=t.link.y1+t.link.width/2;return"M"+a+","+u+"C"+l+","+u+" "+c+","+h+" "+o+","+h+"L"+o+","+p+"C"+c+","+p+" "+l+","+f+" "+a+","+f+"Z"}}function S(t,e){var r=c(e.color),n=l.nodePadAcross,i=t.nodePad/2;e.dx=e.x1-e.x0,e.dy=e.y1-e.y0;var a=e.dx,o=Math.max(.5,e.dy),s="node_"+e.pointNumber;return e.group&&(s=h.randstr()),e.trace=t.trace,e.curveNumber=t.trace.index,{index:e.pointNumber,key:s,partOfGroup:e.partOfGroup||!1,group:e.group,traceId:t.key,trace:t.trace,node:e,nodePad:t.nodePad,nodeLineColor:t.nodeLineColor,nodeLineWidth:t.nodeLineWidth,textFont:t.textFont,size:t.horizontal?t.height:t.width,visibleWidth:Math.ceil(a),visibleHeight:o,zoneX:-n,zoneY:-i,zoneWidth:a+2*n,zoneHeight:o+2*i,labelY:t.horizontal?e.dy/2+1:e.dx/2+1,left:1===e.originalLayer,sizeAcross:t.width,forceLayouts:t.forceLayouts,horizontal:t.horizontal,darkBackground:r.getBrightness()<=128,tinyColorHue:u.tinyRGB(r),tinyColorAlpha:r.getAlpha(),valueFormat:t.valueFormat,valueSuffix:t.valueSuffix,sankey:t.sankey,graph:t.graph,arrangement:t.arrangement,uniqueNodeLabelPathId:[t.guid,t.key,s].join("_"),interactionState:t.interactionState,figure:t}}function E(t){t.attr("transform",(function(t){return p(t.node.x0.toFixed(3),t.node.y0.toFixed(3))}))}function L(t){t.call(E)}function C(t,e){t.call(L),e.attr("d",A())}function P(t){t.attr("width",(function(t){return t.node.x1-t.node.x0})).attr("height",(function(t){return t.visibleHeight}))}function I(t){return t.link.width>1||t.linkLineWidth>0}function O(t){return p(t.translateX,t.translateY)+(t.horizontal?"matrix(1 0 0 1 0 0)":"matrix(0 1 1 0 0 0)")}function z(t,e,r){t.on(".basic",null).on("mouseover.basic",(function(t){t.interactionState.dragInProgress||t.partOfGroup||(r.hover(this,t,e),t.interactionState.hovered=[this,t])})).on("mousemove.basic",(function(t){t.interactionState.dragInProgress||t.partOfGroup||(r.follow(this,t),t.interactionState.hovered=[this,t])})).on("mouseout.basic",(function(t){t.interactionState.dragInProgress||t.partOfGroup||(r.unhover(this,t,e),t.interactionState.hovered=!1)})).on("click.basic",(function(t){t.interactionState.hovered&&(r.unhover(this,t,e),t.interactionState.hovered=!1),t.interactionState.dragInProgress||t.partOfGroup||r.select(this,t,e)}))}function D(t,e,r,i){var o=a.behavior.drag().origin((function(t){return{x:t.node.x0+t.visibleWidth/2,y:t.node.y0+t.visibleHeight/2}})).on("dragstart",(function(a){if("fixed"!==a.arrangement&&(h.ensureSingle(i._fullLayout._infolayer,"g","dragcover",(function(t){i._fullLayout._dragCover=t})),h.raiseToTop(this),a.interactionState.dragInProgress=a.node,F(a.node),a.interactionState.hovered&&(r.nodeEvents.unhover.apply(0,a.interactionState.hovered),a.interactionState.hovered=!1),"snap"===a.arrangement)){var o=a.traceId+"|"+a.key;a.forceLayouts[o]?a.forceLayouts[o].alpha(1):function(t,e,r,i){!function(t){for(var e=0;e0&&n.forceLayouts[e].alpha(0)}}(0,e,a,r)).stop()}(0,o,a),function(t,e,r,n,i){window.requestAnimationFrame((function a(){var o;for(o=0;o0)window.requestAnimationFrame(a);else{var s=r.node.originalX;r.node.x0=s-r.visibleWidth/2,r.node.x1=s+r.visibleWidth/2,R(r,i)}}))}(t,e,a,o,i)}})).on("drag",(function(r){if("fixed"!==r.arrangement){var n=a.event.x,i=a.event.y;"snap"===r.arrangement?(r.node.x0=n-r.visibleWidth/2,r.node.x1=n+r.visibleWidth/2,r.node.y0=i-r.visibleHeight/2,r.node.y1=i+r.visibleHeight/2):("freeform"===r.arrangement&&(r.node.x0=n-r.visibleWidth/2,r.node.x1=n+r.visibleWidth/2),i=Math.max(0,Math.min(r.size-r.visibleHeight/2,i)),r.node.y0=i-r.visibleHeight/2,r.node.y1=i+r.visibleHeight/2),F(r.node),"snap"!==r.arrangement&&(r.sankey.update(r.graph),C(t.filter(B(r)),e))}})).on("dragend",(function(t){if("fixed"!==t.arrangement){t.interactionState.dragInProgress=!1;for(var e=0;el&&E[v].gap;)v--;for(x=E[v].s,m=E.length-1;m>v;m--)E[m].s=x;for(;lA[u]&&u=0;i--){var a=t[i];if("scatter"===a.type&&a.xaxis===r.xaxis&&a.yaxis===r.yaxis){a.opacity=void 0;break}}}}}},{}],1206:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../registry"),a=t("./attributes"),o=t("./constants"),s=t("./subtypes"),l=t("./xy_defaults"),c=t("./period_defaults"),u=t("./stack_defaults"),f=t("./marker_defaults"),h=t("./line_defaults"),p=t("./line_shape_defaults"),d=t("./text_defaults"),m=t("./fillcolor_defaults");e.exports=function(t,e,r,g){function v(r,i){return n.coerce(t,e,a,r,i)}var y=l(t,e,g,v);if(y||(e.visible=!1),e.visible){c(t,e,g,v),v("xhoverformat"),v("yhoverformat");var x=u(t,e,g,v),b=!x&&yG!=(F=I[C][1])>=G&&(z=I[C-1][0],D=I[C][0],F-R&&(O=z+(D-z)*(G-R)/(F-R),U=Math.min(U,O),V=Math.max(V,O)));U=Math.max(U,0),V=Math.min(V,h._length);var Y=s.defaultLine;return s.opacity(f.fillcolor)?Y=f.fillcolor:s.opacity((f.line||{}).color)&&(Y=f.line.color),n.extendFlat(t,{distance:t.maxHoverDistance,x0:U,x1:V,y0:G,y1:G,color:Y,hovertemplate:!1}),delete t.index,f.text&&!Array.isArray(f.text)?t.text=String(f.text):t.text=f.name,[t]}}}},{"../../components/color":658,"../../components/fx":698,"../../lib":795,"../../registry":923,"./get_trace_color":1209}],1211:[function(t,e,r){"use strict";var n=t("./subtypes");e.exports={hasLines:n.hasLines,hasMarkers:n.hasMarkers,hasText:n.hasText,isBubble:n.isBubble,attributes:t("./attributes"),supplyDefaults:t("./defaults"),crossTraceDefaults:t("./cross_trace_defaults"),calc:t("./calc").calc,crossTraceCalc:t("./cross_trace_calc"),arraysToCalcdata:t("./arrays_to_calcdata"),plot:t("./plot"),colorbar:t("./marker_colorbar"),formatLabels:t("./format_labels"),style:t("./style").style,styleOnSelect:t("./style").styleOnSelect,hoverPoints:t("./hover"),selectPoints:t("./select"),animatable:!0,moduleType:"trace",name:"scatter",basePlotModule:t("../../plots/cartesian"),categories:["cartesian","svg","symbols","errorBarsOK","showLegend","scatter-like","zoomScale"],meta:{}}},{"../../plots/cartesian":858,"./arrays_to_calcdata":1198,"./attributes":1199,"./calc":1200,"./cross_trace_calc":1204,"./cross_trace_defaults":1205,"./defaults":1206,"./format_labels":1208,"./hover":1210,"./marker_colorbar":1217,"./plot":1220,"./select":1221,"./style":1223,"./subtypes":1224}],1212:[function(t,e,r){"use strict";var n=t("../../lib").isArrayOrTypedArray,i=t("../../components/colorscale/helpers").hasColorscale,a=t("../../components/colorscale/defaults");e.exports=function(t,e,r,o,s,l){var c=(t.marker||{}).color;(s("line.color",r),i(t,"line"))?a(t,e,o,s,{prefix:"line.",cLetter:"c"}):s("line.color",!n(c)&&c||r);s("line.width"),(l||{}).noDash||s("line.dash")}},{"../../components/colorscale/defaults":668,"../../components/colorscale/helpers":669,"../../lib":795}],1213:[function(t,e,r){"use strict";var n=t("../../constants/numerical"),i=n.BADNUM,a=n.LOG_CLIP,o=a+.5,s=a-.5,l=t("../../lib"),c=l.segmentsIntersect,u=l.constrain,f=t("./constants");e.exports=function(t,e){var r,n,a,h,p,d,m,g,v,y,x,b,_,w,T,k,M,A,S=e.xaxis,E=e.yaxis,L="log"===S.type,C="log"===E.type,P=S._length,I=E._length,O=e.connectGaps,z=e.baseTolerance,D=e.shape,R="linear"===D,F=e.fill&&"none"!==e.fill,B=[],N=f.minTolerance,j=t.length,U=new Array(j),V=0;function q(r){var n=t[r];if(!n)return!1;var a=e.linearized?S.l2p(n.x):S.c2p(n.x),l=e.linearized?E.l2p(n.y):E.c2p(n.y);if(a===i){if(L&&(a=S.c2p(n.x,!0)),a===i)return!1;C&&l===i&&(a*=Math.abs(S._m*I*(S._m>0?o:s)/(E._m*P*(E._m>0?o:s)))),a*=1e3}if(l===i){if(C&&(l=E.c2p(n.y,!0)),l===i)return!1;l*=1e3}return[a,l]}function H(t,e,r,n){var i=r-t,a=n-e,o=.5-t,s=.5-e,l=i*i+a*a,c=i*o+a*s;if(c>0&&crt||t[1]it)return[u(t[0],et,rt),u(t[1],nt,it)]}function st(t,e){return t[0]===e[0]&&(t[0]===et||t[0]===rt)||(t[1]===e[1]&&(t[1]===nt||t[1]===it)||void 0)}function lt(t,e,r){return function(n,i){var a=ot(n),o=ot(i),s=[];if(a&&o&&st(a,o))return s;a&&s.push(a),o&&s.push(o);var c=2*l.constrain((n[t]+i[t])/2,e,r)-((a||n)[t]+(o||i)[t]);c&&((a&&o?c>0==a[t]>o[t]?a:o:a||o)[t]+=c);return s}}function ct(t){var e=t[0],r=t[1],n=e===U[V-1][0],i=r===U[V-1][1];if(!n||!i)if(V>1){var a=e===U[V-2][0],o=r===U[V-2][1];n&&(e===et||e===rt)&&a?o?V--:U[V-1]=t:i&&(r===nt||r===it)&&o?a?V--:U[V-1]=t:U[V++]=t}else U[V++]=t}function ut(t){U[V-1][0]!==t[0]&&U[V-1][1]!==t[1]&&ct([Z,J]),ct(t),K=null,Z=J=0}function ft(t){if(M=t[0]/P,A=t[1]/I,W=t[0]rt?rt:0,X=t[1]it?it:0,W||X){if(V)if(K){var e=$(K,t);e.length>1&&(ut(e[0]),U[V++]=e[1])}else Q=$(U[V-1],t)[0],U[V++]=Q;else U[V++]=[W||t[0],X||t[1]];var r=U[V-1];W&&X&&(r[0]!==W||r[1]!==X)?(K&&(Z!==W&&J!==X?ct(Z&&J?(n=K,a=(i=t)[0]-n[0],o=(i[1]-n[1])/a,(n[1]*i[0]-i[1]*n[0])/a>0?[o>0?et:rt,it]:[o>0?rt:et,nt]):[Z||W,J||X]):Z&&J&&ct([Z,J])),ct([W,X])):Z-W&&J-X&&ct([W||Z,X||J]),K=t,Z=W,J=X}else K&&ut($(K,t)[0]),U[V++]=t;var n,i,a,o}for("linear"===D||"spline"===D?$=function(t,e){for(var r=[],n=0,i=0;i<4;i++){var a=at[i],o=c(t[0],t[1],e[0],e[1],a[0],a[1],a[2],a[3]);o&&(!n||Math.abs(o.x-r[0][0])>1||Math.abs(o.y-r[0][1])>1)&&(o=[o.x,o.y],n&&Y(o,t)G(d,ht))break;a=d,(_=v[0]*g[0]+v[1]*g[1])>x?(x=_,h=d,m=!1):_=t.length||!d)break;ft(d),n=d}}else ft(h)}K&&ct([Z||K[0],J||K[1]]),B.push(U.slice(0,V))}return B}},{"../../constants/numerical":771,"../../lib":795,"./constants":1203}],1214:[function(t,e,r){"use strict";e.exports=function(t,e,r){"spline"===r("line.shape")&&r("line.smoothing")}},{}],1215:[function(t,e,r){"use strict";var n={tonextx:1,tonexty:1,tonext:1};e.exports=function(t,e,r){var i,a,o,s,l,c={},u=!1,f=-1,h=0,p=-1;for(a=0;a=0?l=p:(l=p=h,h++),l0?Math.max(e,i):0}}},{"fast-isnumeric":240}],1217:[function(t,e,r){"use strict";e.exports={container:"marker",min:"cmin",max:"cmax"}},{}],1218:[function(t,e,r){"use strict";var n=t("../../components/color"),i=t("../../components/colorscale/helpers").hasColorscale,a=t("../../components/colorscale/defaults"),o=t("./subtypes");e.exports=function(t,e,r,s,l,c){var u=o.isBubble(t),f=(t.line||{}).color;(c=c||{},f&&(r=f),l("marker.symbol"),l("marker.opacity",u?.7:1),l("marker.size"),l("marker.color",r),i(t,"marker")&&a(t,e,s,l,{prefix:"marker.",cLetter:"c"}),c.noSelect||(l("selected.marker.color"),l("unselected.marker.color"),l("selected.marker.size"),l("unselected.marker.size")),c.noLine||(l("marker.line.color",f&&!Array.isArray(f)&&e.marker.color!==f?f:u?n.background:n.defaultLine),i(t,"marker.line")&&a(t,e,s,l,{prefix:"marker.line.",cLetter:"c"}),l("marker.line.width",u?1:0)),u&&(l("marker.sizeref"),l("marker.sizemin"),l("marker.sizemode")),c.gradient)&&("none"!==l("marker.gradient.type")&&l("marker.gradient.color"))}},{"../../components/color":658,"../../components/colorscale/defaults":668,"../../components/colorscale/helpers":669,"./subtypes":1224}],1219:[function(t,e,r){"use strict";var n=t("../../lib").dateTick0,i=t("../../constants/numerical").ONEWEEK;function a(t,e){return n(e,t%i==0?1:0)}e.exports=function(t,e,r,n,i){if(i||(i={x:!0,y:!0}),i.x){var o=n("xperiod");o&&(n("xperiod0",a(o,e.xcalendar)),n("xperiodalignment"))}if(i.y){var s=n("yperiod");s&&(n("yperiod0",a(s,e.ycalendar)),n("yperiodalignment"))}}},{"../../constants/numerical":771,"../../lib":795}],1220:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("../../registry"),a=t("../../lib"),o=a.ensureSingle,s=a.identity,l=t("../../components/drawing"),c=t("./subtypes"),u=t("./line_points"),f=t("./link_traces"),h=t("../../lib/polygon").tester;function p(t,e,r,f,p,d,m){var g;!function(t,e,r,i,o){var s=r.xaxis,l=r.yaxis,u=n.extent(a.simpleMap(s.range,s.r2c)),f=n.extent(a.simpleMap(l.range,l.r2c)),h=i[0].trace;if(!c.hasMarkers(h))return;var p=h.marker.maxdisplayed;if(0===p)return;var d=i.filter((function(t){return t.x>=u[0]&&t.x<=u[1]&&t.y>=f[0]&&t.y<=f[1]})),m=Math.ceil(d.length/p),g=0;o.forEach((function(t,r){var n=t[0].trace;c.hasMarkers(n)&&n.marker.maxdisplayed>0&&r0;function y(t){return v?t.transition():t}var x=r.xaxis,b=r.yaxis,_=f[0].trace,w=_.line,T=n.select(d),k=o(T,"g","errorbars"),M=o(T,"g","lines"),A=o(T,"g","points"),S=o(T,"g","text");if(i.getComponentMethod("errorbars","plot")(t,k,r,m),!0===_.visible){var E,L;y(T).style("opacity",_.opacity);var C=_.fill.charAt(_.fill.length-1);"x"!==C&&"y"!==C&&(C=""),f[0][r.isRangePlot?"nodeRangePlot3":"node3"]=T;var P,I,O="",z=[],D=_._prevtrace;D&&(O=D._prevRevpath||"",L=D._nextFill,z=D._polygons);var R,F,B,N,j,U,V,q="",H="",G=[],Y=a.noop;if(E=_._ownFill,c.hasLines(_)||"none"!==_.fill){for(L&&L.datum(f),-1!==["hv","vh","hvh","vhv"].indexOf(w.shape)?(R=l.steps(w.shape),F=l.steps(w.shape.split("").reverse().join(""))):R=F="spline"===w.shape?function(t){var e=t[t.length-1];return t.length>1&&t[0][0]===e[0]&&t[0][1]===e[1]?l.smoothclosed(t.slice(1),w.smoothing):l.smoothopen(t,w.smoothing)}:function(t){return"M"+t.join("L")},B=function(t){return F(t.reverse())},G=u(f,{xaxis:x,yaxis:b,connectGaps:_.connectgaps,baseTolerance:Math.max(w.width||1,3)/4,shape:w.shape,simplify:w.simplify,fill:_.fill}),V=_._polygons=new Array(G.length),g=0;g1){var r=n.select(this);if(r.datum(f),t)y(r.style("opacity",0).attr("d",P).call(l.lineGroupStyle)).style("opacity",1);else{var i=y(r);i.attr("d",P),l.singleLineStyle(f,i)}}}}}var W=M.selectAll(".js-line").data(G);y(W.exit()).style("opacity",0).remove(),W.each(Y(!1)),W.enter().append("path").classed("js-line",!0).style("vector-effect","non-scaling-stroke").call(l.lineGroupStyle).each(Y(!0)),l.setClipUrl(W,r.layerClipId,t),G.length?(E?(E.datum(f),N&&U&&(C?("y"===C?N[1]=U[1]=b.c2p(0,!0):"x"===C&&(N[0]=U[0]=x.c2p(0,!0)),y(E).attr("d","M"+U+"L"+N+"L"+q.substr(1)).call(l.singleFillStyle)):y(E).attr("d",q+"Z").call(l.singleFillStyle))):L&&("tonext"===_.fill.substr(0,6)&&q&&O?("tonext"===_.fill?y(L).attr("d",q+"Z"+O+"Z").call(l.singleFillStyle):y(L).attr("d",q+"L"+O.substr(1)+"Z").call(l.singleFillStyle),_._polygons=_._polygons.concat(z)):(Z(L),_._polygons=null)),_._prevRevpath=H,_._prevPolygons=V):(E?Z(E):L&&Z(L),_._polygons=_._prevRevpath=_._prevPolygons=null),A.datum(f),S.datum(f),function(e,i,a){var o,u=a[0].trace,f=c.hasMarkers(u),h=c.hasText(u),p=tt(u),d=et,m=et;if(f||h){var g=s,_=u.stackgroup,w=_&&"infer zero"===t._fullLayout._scatterStackOpts[x._id+b._id][_].stackgaps;u.marker.maxdisplayed||u._needsCull?g=w?K:J:_&&!w&&(g=Q),f&&(d=g),h&&(m=g)}var T,k=(o=e.selectAll("path.point").data(d,p)).enter().append("path").classed("point",!0);v&&k.call(l.pointStyle,u,t).call(l.translatePoints,x,b).style("opacity",0).transition().style("opacity",1),o.order(),f&&(T=l.makePointStyleFns(u)),o.each((function(e){var i=n.select(this),a=y(i);l.translatePoint(e,a,x,b)?(l.singlePointStyle(e,a,u,T,t),r.layerClipId&&l.hideOutsideRangePoint(e,a,x,b,u.xcalendar,u.ycalendar),u.customdata&&i.classed("plotly-customdata",null!==e.data&&void 0!==e.data)):a.remove()})),v?o.exit().transition().style("opacity",0).remove():o.exit().remove(),(o=i.selectAll("g").data(m,p)).enter().append("g").classed("textpoint",!0).append("text"),o.order(),o.each((function(t){var e=n.select(this),i=y(e.select("text"));l.translatePoint(t,i,x,b)?r.layerClipId&&l.hideOutsideRangePoint(t,e,x,b,u.xcalendar,u.ycalendar):e.remove()})),o.selectAll("text").call(l.textPointStyle,u,t).each((function(t){var e=x.c2p(t.x),r=b.c2p(t.y);n.select(this).selectAll("tspan.line").each((function(){y(n.select(this)).attr({x:e,y:r})}))})),o.exit().remove()}(A,S,f);var X=!1===_.cliponaxis?null:r.layerClipId;l.setClipUrl(A,X,t),l.setClipUrl(S,X,t)}function Z(t){y(t).attr("d","M0,0Z")}function J(t){return t.filter((function(t){return!t.gap&&t.vis}))}function K(t){return t.filter((function(t){return t.vis}))}function Q(t){return t.filter((function(t){return!t.gap}))}function $(t){return t.id}function tt(t){if(t.ids)return $}function et(){return!1}}e.exports=function(t,e,r,i,a,c){var u,h,d=!a,m=!!a&&a.duration>0,g=f(t,e,r);((u=i.selectAll("g.trace").data(g,(function(t){return t[0].trace.uid}))).enter().append("g").attr("class",(function(t){return"trace scatter trace"+t[0].trace.uid})).style("stroke-miterlimit",2),u.order(),function(t,e,r){e.each((function(e){var i=o(n.select(this),"g","fills");l.setClipUrl(i,r.layerClipId,t);var a=e[0].trace,c=[];a._ownfill&&c.push("_ownFill"),a._nexttrace&&c.push("_nextFill");var u=i.selectAll("g").data(c,s);u.enter().append("g"),u.exit().each((function(t){a[t]=null})).remove(),u.order().each((function(t){a[t]=o(n.select(this),"path","js-fill")}))}))}(t,u,e),m)?(c&&(h=c()),n.transition().duration(a.duration).ease(a.easing).each("end",(function(){h&&h()})).each("interrupt",(function(){h&&h()})).each((function(){i.selectAll("g.trace").each((function(r,n){p(t,n,e,r,g,this,a)}))}))):u.each((function(r,n){p(t,n,e,r,g,this,a)}));d&&u.exit().remove(),i.selectAll("path:not([d])").remove()}},{"../../components/drawing":680,"../../lib":795,"../../lib/polygon":807,"../../registry":923,"./line_points":1213,"./link_traces":1215,"./subtypes":1224,"@plotly/d3":57}],1221:[function(t,e,r){"use strict";var n=t("./subtypes");e.exports=function(t,e){var r,i,a,o,s=t.cd,l=t.xaxis,c=t.yaxis,u=[],f=s[0].trace;if(!n.hasMarkers(f)&&!n.hasText(f))return[];if(!1===e)for(r=0;r0){var h=i.c2l(u);i._lowerLogErrorBound||(i._lowerLogErrorBound=h),i._lowerErrorBound=Math.min(i._lowerLogErrorBound,h)}}else o[s]=[-l[0]*r,l[1]*r]}return o}e.exports=function(t,e,r){var n=[i(t.x,t.error_x,e[0],r.xaxis),i(t.y,t.error_y,e[1],r.yaxis),i(t.z,t.error_z,e[2],r.zaxis)],a=function(t){for(var e=0;e-1?-1:t.indexOf("right")>-1?1:0}function b(t){return null==t?0:t.indexOf("top")>-1?-1:t.indexOf("bottom")>-1?1:0}function _(t,e){return e(4*t)}function w(t){return p[t]}function T(t,e,r,n,i){var a=null;if(l.isArrayOrTypedArray(t)){a=[];for(var o=0;o=0){var m=function(t,e,r){var n,i=(r+1)%3,a=(r+2)%3,o=[],l=[];for(n=0;n=0&&f("surfacecolor",h||p);for(var d=["x","y","z"],m=0;m<3;++m){var g="projection."+d[m];f(g+".show")&&(f(g+".opacity"),f(g+".scale"))}var v=n.getComponentMethod("errorbars","supplyDefaults");v(t,e,h||p||r,{axis:"z"}),v(t,e,h||p||r,{axis:"y",inherit:"z"}),v(t,e,h||p||r,{axis:"x",inherit:"z"})}else e.visible=!1}},{"../../lib":795,"../../registry":923,"../scatter/line_defaults":1212,"../scatter/marker_defaults":1218,"../scatter/subtypes":1224,"../scatter/text_defaults":1225,"./attributes":1227}],1232:[function(t,e,r){"use strict";e.exports={plot:t("./convert"),attributes:t("./attributes"),markerSymbols:t("../../constants/gl3d_markers"),supplyDefaults:t("./defaults"),colorbar:[{container:"marker",min:"cmin",max:"cmax"},{container:"line",min:"cmin",max:"cmax"}],calc:t("./calc"),moduleType:"trace",name:"scatter3d",basePlotModule:t("../../plots/gl3d"),categories:["gl3d","symbols","showLegend","scatter-like"],meta:{}}},{"../../constants/gl3d_markers":769,"../../plots/gl3d":887,"./attributes":1227,"./calc":1228,"./convert":1230,"./defaults":1231}],1233:[function(t,e,r){"use strict";var n=t("../scatter/attributes"),i=t("../../plots/attributes"),a=t("../../plots/template_attributes").hovertemplateAttrs,o=t("../../plots/template_attributes").texttemplateAttrs,s=t("../../components/colorscale/attributes"),l=t("../../lib/extend").extendFlat,c=n.marker,u=n.line,f=c.line;e.exports={carpet:{valType:"string",editType:"calc"},a:{valType:"data_array",editType:"calc"},b:{valType:"data_array",editType:"calc"},mode:l({},n.mode,{dflt:"markers"}),text:l({},n.text,{}),texttemplate:o({editType:"plot"},{keys:["a","b","text"]}),hovertext:l({},n.hovertext,{}),line:{color:u.color,width:u.width,dash:u.dash,shape:l({},u.shape,{values:["linear","spline"]}),smoothing:u.smoothing,editType:"calc"},connectgaps:n.connectgaps,fill:l({},n.fill,{values:["none","toself","tonext"],dflt:"none"}),fillcolor:n.fillcolor,marker:l({symbol:c.symbol,opacity:c.opacity,maxdisplayed:c.maxdisplayed,size:c.size,sizeref:c.sizeref,sizemin:c.sizemin,sizemode:c.sizemode,line:l({width:f.width,editType:"calc"},s("marker.line")),gradient:c.gradient,editType:"calc"},s("marker")),textfont:n.textfont,textposition:n.textposition,selected:n.selected,unselected:n.unselected,hoverinfo:l({},i.hoverinfo,{flags:["a","b","text","name"]}),hoveron:n.hoveron,hovertemplate:a()}},{"../../components/colorscale/attributes":665,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/template_attributes":918,"../scatter/attributes":1199}],1234:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("../scatter/colorscale_calc"),a=t("../scatter/arrays_to_calcdata"),o=t("../scatter/calc_selection"),s=t("../scatter/calc").calcMarkerSize,l=t("../carpet/lookup_carpetid");e.exports=function(t,e){var r=e._carpetTrace=l(t,e);if(r&&r.visible&&"legendonly"!==r.visible){var c;e.xaxis=r.xaxis,e.yaxis=r.yaxis;var u,f,h=e._length,p=new Array(h),d=!1;for(c=0;c")}return o}function y(t,e){var r;r=t.labelprefix&&t.labelprefix.length>0?t.labelprefix.replace(/ = $/,""):t._hovertitle,g.push(r+": "+e.toFixed(3)+t.labelsuffix)}}},{"../../lib":795,"../scatter/hover":1210}],1239:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),colorbar:t("../scatter/marker_colorbar"),formatLabels:t("./format_labels"),calc:t("./calc"),plot:t("./plot"),style:t("../scatter/style").style,styleOnSelect:t("../scatter/style").styleOnSelect,hoverPoints:t("./hover"),selectPoints:t("../scatter/select"),eventData:t("./event_data"),moduleType:"trace",name:"scattercarpet",basePlotModule:t("../../plots/cartesian"),categories:["svg","carpet","symbols","showLegend","carpetDependent","zoomScale"],meta:{}}},{"../../plots/cartesian":858,"../scatter/marker_colorbar":1217,"../scatter/select":1221,"../scatter/style":1223,"./attributes":1233,"./calc":1234,"./defaults":1235,"./event_data":1236,"./format_labels":1237,"./hover":1238,"./plot":1240}],1240:[function(t,e,r){"use strict";var n=t("../scatter/plot"),i=t("../../plots/cartesian/axes"),a=t("../../components/drawing");e.exports=function(t,e,r,o){var s,l,c,u=r[0][0].carpet,f={xaxis:i.getFromId(t,u.xaxis||"x"),yaxis:i.getFromId(t,u.yaxis||"y"),plot:e.plot};for(n(t,f,r,o),s=0;s")}(c,m,t,l[0].t.labels),t.hovertemplate=c.hovertemplate,[t]}}},{"../../components/fx":698,"../../constants/numerical":771,"../../lib":795,"../scatter/get_trace_color":1209,"./attributes":1241}],1247:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),colorbar:t("../scatter/marker_colorbar"),formatLabels:t("./format_labels"),calc:t("./calc"),calcGeoJSON:t("./plot").calcGeoJSON,plot:t("./plot").plot,style:t("./style"),styleOnSelect:t("../scatter/style").styleOnSelect,hoverPoints:t("./hover"),eventData:t("./event_data"),selectPoints:t("./select"),moduleType:"trace",name:"scattergeo",basePlotModule:t("../../plots/geo"),categories:["geo","symbols","showLegend","scatter-like"],meta:{}}},{"../../plots/geo":877,"../scatter/marker_colorbar":1217,"../scatter/style":1223,"./attributes":1241,"./calc":1242,"./defaults":1243,"./event_data":1244,"./format_labels":1245,"./hover":1246,"./plot":1248,"./select":1249,"./style":1250}],1248:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("../../lib"),a=t("../../lib/topojson_utils").getTopojsonFeatures,o=t("../../lib/geojson_utils"),s=t("../../lib/geo_location_utils"),l=t("../../plots/cartesian/autorange").findExtremes,c=t("../../constants/numerical").BADNUM,u=t("../scatter/calc").calcMarkerSize,f=t("../scatter/subtypes"),h=t("./style");e.exports={calcGeoJSON:function(t,e){var r,n,i=t[0].trace,o=e[i.geo],f=o._subplot,h=i._length;if(Array.isArray(i.locations)){var p=i.locationmode,d="geojson-id"===p?s.extractTraceFeature(t):a(i,f.topojson);for(r=0;r=g,w=2*b,T={},k=l.makeCalcdata(e,"x"),M=y.makeCalcdata(e,"y"),A=s(e,l,"x",k),S=s(e,y,"y",M);e._x=A,e._y=S,e.xperiodalignment&&(e._origX=k),e.yperiodalignment&&(e._origY=M);var E=new Array(w),L=new Array(b);for(r=0;r1&&i.extendFlat(s.line,p.linePositions(t,r,n));if(s.errorX||s.errorY){var l=p.errorBarPositions(t,r,n,a,o);s.errorX&&i.extendFlat(s.errorX,l.x),s.errorY&&i.extendFlat(s.errorY,l.y)}s.text&&(i.extendFlat(s.text,{positions:n},p.textPosition(t,r,s.text,s.marker)),i.extendFlat(s.textSel,{positions:n},p.textPosition(t,r,s.text,s.markerSel)),i.extendFlat(s.textUnsel,{positions:n},p.textPosition(t,r,s.text,s.markerUnsel)));return s}(t,0,e,E,A,S),I=d(t,x);return f(o,e),_?P.marker&&(C=2*(P.marker.sizeAvg||Math.max(P.marker.size,3))):C=c(e,b),u(t,e,l,y,A,S,C),P.errorX&&v(e,l,P.errorX),P.errorY&&v(e,y,P.errorY),P.fill&&!I.fill2d&&(I.fill2d=!0),P.marker&&!I.scatter2d&&(I.scatter2d=!0),P.line&&!I.line2d&&(I.line2d=!0),!P.errorX&&!P.errorY||I.error2d||(I.error2d=!0),P.text&&!I.glText&&(I.glText=!0),P.marker&&(P.marker.snap=b),I.lineOptions.push(P.line),I.errorXOptions.push(P.errorX),I.errorYOptions.push(P.errorY),I.fillOptions.push(P.fill),I.markerOptions.push(P.marker),I.markerSelectedOptions.push(P.markerSel),I.markerUnselectedOptions.push(P.markerUnsel),I.textOptions.push(P.text),I.textSelectedOptions.push(P.textSel),I.textUnselectedOptions.push(P.textUnsel),I.selectBatch.push([]),I.unselectBatch.push([]),T._scene=I,T.index=I.count,T.x=A,T.y=S,T.positions=E,I.count++,[{x:!1,y:!1,t:T,trace:e}]}},{"../../constants/numerical":771,"../../lib":795,"../../plots/cartesian/align_period":842,"../../plots/cartesian/autorange":844,"../../plots/cartesian/axis_ids":848,"../scatter/calc":1200,"../scatter/colorscale_calc":1202,"./constants":1253,"./convert":1254,"./scene_update":1262,"@plotly/point-cluster":58}],1253:[function(t,e,r){"use strict";e.exports={TOO_MANY_POINTS:1e5,SYMBOL_SDF_SIZE:200,SYMBOL_SIZE:20,SYMBOL_STROKE:1,DOT_RE:/-dot/,OPEN_RE:/-open/,DASHES:{solid:[1],dot:[1,1],dash:[4,1],longdash:[8,1],dashdot:[4,1,1,1],longdashdot:[8,1,1,1]}}},{}],1254:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("svg-path-sdf"),a=t("color-normalize"),o=t("../../registry"),s=t("../../lib"),l=t("../../components/drawing"),c=t("../../plots/cartesian/axis_ids"),u=t("../../lib/gl_format_color").formatColor,f=t("../scatter/subtypes"),h=t("../scatter/make_bubble_size_func"),p=t("./helpers"),d=t("./constants"),m=t("../../constants/interactions").DESELECTDIM,g={start:1,left:1,end:-1,right:-1,middle:0,center:0,bottom:1,top:-1},v=t("../../components/fx/helpers").appendArrayPointValue;function y(t,e){var r,i=t._fullLayout,a=e._length,o=e.textfont,l=e.textposition,c=Array.isArray(l)?l:[l],u=o.color,f=o.size,h=o.family,p={},d=e.texttemplate;if(d){p.text=[];var m=i._d3locale,g=Array.isArray(d),y=g?Math.min(d.length,a):a,x=g?function(t){return d[t]}:function(){return d};for(r=0;rd.TOO_MANY_POINTS||f.hasMarkers(e)?"rect":"round";if(c&&e.connectgaps){var h=n[0],p=n[1];for(i=0;i1?l[i]:l[0]:l,d=Array.isArray(c)?c.length>1?c[i]:c[0]:c,m=g[p],v=g[d],y=u?u/.8+1:0,x=-v*y-.5*v;o.offset[i]=[m*y/h,x/h]}}return o}}},{"../../components/drawing":680,"../../components/fx/helpers":694,"../../constants/interactions":770,"../../lib":795,"../../lib/gl_format_color":791,"../../plots/cartesian/axis_ids":848,"../../registry":923,"../scatter/make_bubble_size_func":1216,"../scatter/subtypes":1224,"./constants":1253,"./helpers":1258,"color-normalize":126,"fast-isnumeric":240,"svg-path-sdf":587}],1255:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../registry"),a=t("./helpers"),o=t("./attributes"),s=t("../scatter/constants"),l=t("../scatter/subtypes"),c=t("../scatter/xy_defaults"),u=t("../scatter/period_defaults"),f=t("../scatter/marker_defaults"),h=t("../scatter/line_defaults"),p=t("../scatter/fillcolor_defaults"),d=t("../scatter/text_defaults");e.exports=function(t,e,r,m){function g(r,i){return n.coerce(t,e,o,r,i)}var v=!!t.marker&&a.isOpenSymbol(t.marker.symbol),y=l.isBubble(t),x=c(t,e,m,g);if(x){u(t,e,m,g),g("xhoverformat"),g("yhoverformat");var b=x100},r.isDotSymbol=function(t){return"string"==typeof t?n.DOT_RE.test(t):t>200}},{"./constants":1253}],1259:[function(t,e,r){"use strict";var n=t("../../registry"),i=t("../../lib"),a=t("../scatter/get_trace_color");function o(t,e,r,o){var s=t.xa,l=t.ya,c=t.distance,u=t.dxy,f=t.index,h={pointNumber:f,x:e[f],y:r[f]};h.tx=Array.isArray(o.text)?o.text[f]:o.text,h.htx=Array.isArray(o.hovertext)?o.hovertext[f]:o.hovertext,h.data=Array.isArray(o.customdata)?o.customdata[f]:o.customdata,h.tp=Array.isArray(o.textposition)?o.textposition[f]:o.textposition;var p=o.textfont;p&&(h.ts=i.isArrayOrTypedArray(p.size)?p.size[f]:p.size,h.tc=Array.isArray(p.color)?p.color[f]:p.color,h.tf=Array.isArray(p.family)?p.family[f]:p.family);var d=o.marker;d&&(h.ms=i.isArrayOrTypedArray(d.size)?d.size[f]:d.size,h.mo=i.isArrayOrTypedArray(d.opacity)?d.opacity[f]:d.opacity,h.mx=i.isArrayOrTypedArray(d.symbol)?d.symbol[f]:d.symbol,h.mc=i.isArrayOrTypedArray(d.color)?d.color[f]:d.color);var m=d&&d.line;m&&(h.mlc=Array.isArray(m.color)?m.color[f]:m.color,h.mlw=i.isArrayOrTypedArray(m.width)?m.width[f]:m.width);var g=d&&d.gradient;g&&"none"!==g.type&&(h.mgt=Array.isArray(g.type)?g.type[f]:g.type,h.mgc=Array.isArray(g.color)?g.color[f]:g.color);var v=s.c2p(h.x,!0),y=l.c2p(h.y,!0),x=h.mrc||1,b=o.hoverlabel;b&&(h.hbg=Array.isArray(b.bgcolor)?b.bgcolor[f]:b.bgcolor,h.hbc=Array.isArray(b.bordercolor)?b.bordercolor[f]:b.bordercolor,h.hts=i.isArrayOrTypedArray(b.font.size)?b.font.size[f]:b.font.size,h.htc=Array.isArray(b.font.color)?b.font.color[f]:b.font.color,h.htf=Array.isArray(b.font.family)?b.font.family[f]:b.font.family,h.hnl=i.isArrayOrTypedArray(b.namelength)?b.namelength[f]:b.namelength);var _=o.hoverinfo;_&&(h.hi=Array.isArray(_)?_[f]:_);var w=o.hovertemplate;w&&(h.ht=Array.isArray(w)?w[f]:w);var T={};T[t.index]=h;var k=o._origX,M=o._origY,A=i.extendFlat({},t,{color:a(o,h),x0:v-x,x1:v+x,xLabelVal:k?k[f]:h.x,y0:y-x,y1:y+x,yLabelVal:M?M[f]:h.y,cd:T,distance:c,spikeDistance:u,hovertemplate:h.ht});return h.htx?A.text=h.htx:h.tx?A.text=h.tx:o.text&&(A.text=o.text),i.fillText(h,o,A),n.getComponentMethod("errorbars","hoverInfo")(h,o,A),A}e.exports={hoverPoints:function(t,e,r,n){var i,a,s,l,c,u,f,h,p,d=t.cd,m=d[0].t,g=d[0].trace,v=t.xa,y=t.ya,x=m.x,b=m.y,_=v.c2p(e),w=y.c2p(r),T=t.distance;if(m.tree){var k=v.p2c(_-T),M=v.p2c(_+T),A=y.p2c(w-T),S=y.p2c(w+T);i="x"===n?m.tree.range(Math.min(k,M),Math.min(y._rl[0],y._rl[1]),Math.max(k,M),Math.max(y._rl[0],y._rl[1])):m.tree.range(Math.min(k,M),Math.min(A,S),Math.max(k,M),Math.max(A,S))}else i=m.ids;var E=T;if("x"===n)for(c=0;c-1;c--)s=x[i[c]],l=b[i[c]],u=v.c2p(s)-_,f=y.c2p(l)-w,(h=Math.sqrt(u*u+f*f))v.glText.length){var w=b-v.glText.length;for(d=0;dr&&(isNaN(e[n])||isNaN(e[n+1]));)n-=2;t.positions=e.slice(r,n+2)}return t})),v.line2d.update(v.lineOptions)),v.error2d){var k=(v.errorXOptions||[]).concat(v.errorYOptions||[]);v.error2d.update(k)}v.scatter2d&&v.scatter2d.update(v.markerOptions),v.fillOrder=s.repeat(null,b),v.fill2d&&(v.fillOptions=v.fillOptions.map((function(t,e){var n=r[e];if(t&&n&&n[0]&&n[0].trace){var i,a,o=n[0],s=o.trace,l=o.t,c=v.lineOptions[e],u=[];s._ownfill&&u.push(e),s._nexttrace&&u.push(e+1),u.length&&(v.fillOrder[e]=u);var f,h,p=[],d=c&&c.positions||l.positions;if("tozeroy"===s.fill){for(f=0;ff&&isNaN(d[h+1]);)h-=2;0!==d[f+1]&&(p=[d[f],0]),p=p.concat(d.slice(f,h+2)),0!==d[h+1]&&(p=p.concat([d[h],0]))}else if("tozerox"===s.fill){for(f=0;ff&&isNaN(d[h]);)h-=2;0!==d[f]&&(p=[0,d[f+1]]),p=p.concat(d.slice(f,h+2)),0!==d[h]&&(p=p.concat([0,d[h+1]]))}else if("toself"===s.fill||"tonext"===s.fill){for(p=[],i=0,t.splitNull=!0,a=0;a-1;for(d=0;d")}function u(t){return t+"\xb0"}}e.exports={hoverPoints:function(t,e,r){var o=t.cd,c=o[0].trace,u=t.xa,f=t.ya,h=t.subplot,p=360*(e>=0?Math.floor((e+180)/360):Math.ceil((e-180)/360)),d=e-p;if(n.getClosest(o,(function(t){var e=t.lonlat;if(e[0]===s)return 1/0;var n=i.modHalf(e[0],360),a=e[1],o=h.project([n,a]),l=o.x-u.c2p([d,a]),c=o.y-f.c2p([n,r]),p=Math.max(3,t.mrc||0);return Math.max(Math.sqrt(l*l+c*c)-p,1-3/p)}),t),!1!==t.index){var m=o[t.index],g=m.lonlat,v=[i.modHalf(g[0],360)+p,g[1]],y=u.c2p(v),x=f.c2p(v),b=m.mrc||1;t.x0=y-b,t.x1=y+b,t.y0=x-b,t.y1=x+b;var _={};_[c.subplot]={_subplot:h};var w=c._module.formatLabels(m,c,_);return t.lonLabel=w.lonLabel,t.latLabel=w.latLabel,t.color=a(c,m),t.extraText=l(c,m,o[0].t.labels),t.hovertemplate=c.hovertemplate,[t]}},getExtraText:l}},{"../../components/fx":698,"../../constants/numerical":771,"../../lib":795,"../scatter/get_trace_color":1209}],1270:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),colorbar:t("../scatter/marker_colorbar"),formatLabels:t("./format_labels"),calc:t("../scattergeo/calc"),plot:t("./plot"),hoverPoints:t("./hover").hoverPoints,eventData:t("./event_data"),selectPoints:t("./select"),styleOnSelect:function(t,e){e&&e[0].trace._glTrace.update(e)},moduleType:"trace",name:"scattermapbox",basePlotModule:t("../../plots/mapbox"),categories:["mapbox","gl","symbols","showLegend","scatter-like"],meta:{}}},{"../../plots/mapbox":903,"../scatter/marker_colorbar":1217,"../scattergeo/calc":1242,"./attributes":1264,"./defaults":1266,"./event_data":1267,"./format_labels":1268,"./hover":1269,"./plot":1271,"./select":1272}],1271:[function(t,e,r){"use strict";var n=t("./convert"),i=t("../../plots/mapbox/constants").traceLayerPrefix,a=["fill","line","circle","symbol"];function o(t,e){this.type="scattermapbox",this.subplot=t,this.uid=e,this.sourceIds={fill:"source-"+e+"-fill",line:"source-"+e+"-line",circle:"source-"+e+"-circle",symbol:"source-"+e+"-symbol"},this.layerIds={fill:i+e+"-fill",line:i+e+"-line",circle:i+e+"-circle",symbol:i+e+"-symbol"},this.below=null}var s=o.prototype;s.addSource=function(t,e){this.subplot.map.addSource(this.sourceIds[t],{type:"geojson",data:e.geojson})},s.setSourceData=function(t,e){this.subplot.map.getSource(this.sourceIds[t]).setData(e.geojson)},s.addLayer=function(t,e,r){this.subplot.addLayer({type:t,id:this.layerIds[t],source:this.sourceIds[t],layout:e.layout,paint:e.paint},r)},s.update=function(t){var e,r,i,o=this.subplot,s=o.map,l=n(o.gd,t),c=o.belowLookup["trace-"+this.uid];if(c!==this.below){for(e=a.length-1;e>=0;e--)r=a[e],s.removeLayer(this.layerIds[r]);for(e=0;e=0;e--){var r=a[e];t.removeLayer(this.layerIds[r]),t.removeSource(this.sourceIds[r])}},e.exports=function(t,e){for(var r=e[0].trace,i=new o(t,r.uid),s=n(t.gd,e),l=i.below=t.belowLookup["trace-"+r.uid],c=0;c")}}e.exports={hoverPoints:function(t,e,r,a){var o=n(t,e,r,a);if(o&&!1!==o[0].index){var s=o[0];if(void 0===s.index)return o;var l=t.subplot,c=s.cd[s.index],u=s.trace;if(l.isPtInside(c))return s.xLabelVal=void 0,s.yLabelVal=void 0,i(c,u,l,s),s.hovertemplate=u.hovertemplate,o}},makeHoverPointText:i}},{"../scatter/hover":1210}],1278:[function(t,e,r){"use strict";e.exports={moduleType:"trace",name:"scatterpolar",basePlotModule:t("../../plots/polar"),categories:["polar","symbols","showLegend","scatter-like"],attributes:t("./attributes"),supplyDefaults:t("./defaults").supplyDefaults,colorbar:t("../scatter/marker_colorbar"),formatLabels:t("./format_labels"),calc:t("./calc"),plot:t("./plot"),style:t("../scatter/style").style,styleOnSelect:t("../scatter/style").styleOnSelect,hoverPoints:t("./hover").hoverPoints,selectPoints:t("../scatter/select"),meta:{}}},{"../../plots/polar":912,"../scatter/marker_colorbar":1217,"../scatter/select":1221,"../scatter/style":1223,"./attributes":1273,"./calc":1274,"./defaults":1275,"./format_labels":1276,"./hover":1277,"./plot":1279}],1279:[function(t,e,r){"use strict";var n=t("../scatter/plot"),i=t("../../constants/numerical").BADNUM;e.exports=function(t,e,r){for(var a=e.layers.frontplot.select("g.scatterlayer"),o={xaxis:e.xaxis,yaxis:e.yaxis,plot:e.framework,layerClipId:e._hasClipOnAxisFalse?e.clipIds.forTraces:null},s=e.radialAxis,l=e.angularAxis,c=0;c=c&&(y.marker.cluster=d.tree),y.marker&&(y.markerSel.positions=y.markerUnsel.positions=y.marker.positions=_),y.line&&_.length>1&&l.extendFlat(y.line,s.linePositions(t,p,_)),y.text&&(l.extendFlat(y.text,{positions:_},s.textPosition(t,p,y.text,y.marker)),l.extendFlat(y.textSel,{positions:_},s.textPosition(t,p,y.text,y.markerSel)),l.extendFlat(y.textUnsel,{positions:_},s.textPosition(t,p,y.text,y.markerUnsel))),y.fill&&!h.fill2d&&(h.fill2d=!0),y.marker&&!h.scatter2d&&(h.scatter2d=!0),y.line&&!h.line2d&&(h.line2d=!0),y.text&&!h.glText&&(h.glText=!0),h.lineOptions.push(y.line),h.fillOptions.push(y.fill),h.markerOptions.push(y.marker),h.markerSelectedOptions.push(y.markerSel),h.markerUnselectedOptions.push(y.markerUnsel),h.textOptions.push(y.text),h.textSelectedOptions.push(y.textSel),h.textUnselectedOptions.push(y.textUnsel),h.selectBatch.push([]),h.unselectBatch.push([]),d.x=w,d.y=T,d.rawx=w,d.rawy=T,d.r=g,d.theta=v,d.positions=_,d._scene=h,d.index=h.count,h.count++}})),a(t,e,r)}}},{"../../lib":795,"../scattergl/constants":1253,"../scattergl/convert":1254,"../scattergl/plot":1261,"../scattergl/scene_update":1262,"@plotly/point-cluster":58,"fast-isnumeric":240}],1287:[function(t,e,r){"use strict";var n=t("../../plots/template_attributes").hovertemplateAttrs,i=t("../../plots/template_attributes").texttemplateAttrs,a=t("../scatter/attributes"),o=t("../../plots/attributes"),s=t("../../components/colorscale/attributes"),l=t("../../components/drawing/attributes").dash,c=t("../../lib/extend").extendFlat,u=a.marker,f=a.line,h=u.line;e.exports={a:{valType:"data_array",editType:"calc"},b:{valType:"data_array",editType:"calc"},c:{valType:"data_array",editType:"calc"},sum:{valType:"number",dflt:0,min:0,editType:"calc"},mode:c({},a.mode,{dflt:"markers"}),text:c({},a.text,{}),texttemplate:i({editType:"plot"},{keys:["a","b","c","text"]}),hovertext:c({},a.hovertext,{}),line:{color:f.color,width:f.width,dash:l,shape:c({},f.shape,{values:["linear","spline"]}),smoothing:f.smoothing,editType:"calc"},connectgaps:a.connectgaps,cliponaxis:a.cliponaxis,fill:c({},a.fill,{values:["none","toself","tonext"],dflt:"none"}),fillcolor:a.fillcolor,marker:c({symbol:u.symbol,opacity:u.opacity,maxdisplayed:u.maxdisplayed,size:u.size,sizeref:u.sizeref,sizemin:u.sizemin,sizemode:u.sizemode,line:c({width:h.width,editType:"calc"},s("marker.line")),gradient:u.gradient,editType:"calc"},s("marker")),textfont:a.textfont,textposition:a.textposition,selected:a.selected,unselected:a.unselected,hoverinfo:c({},o.hoverinfo,{flags:["a","b","c","text","name"]}),hoveron:a.hoveron,hovertemplate:n()}},{"../../components/colorscale/attributes":665,"../../components/drawing/attributes":679,"../../lib/extend":785,"../../plots/attributes":841,"../../plots/template_attributes":918,"../scatter/attributes":1199}],1288:[function(t,e,r){"use strict";var n=t("fast-isnumeric"),i=t("../scatter/colorscale_calc"),a=t("../scatter/arrays_to_calcdata"),o=t("../scatter/calc_selection"),s=t("../scatter/calc").calcMarkerSize,l=["a","b","c"],c={a:["b","c"],b:["a","c"],c:["a","b"]};e.exports=function(t,e){var r,u,f,h,p,d,m=t._fullLayout[e.subplot].sum,g=e.sum||m,v={a:e.a,b:e.b,c:e.c};for(r=0;r"),o.hovertemplate=h.hovertemplate,a}function x(t,e){v.push(t._hovertitle+": "+e)}}},{"../scatter/hover":1210}],1293:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),supplyDefaults:t("./defaults"),colorbar:t("../scatter/marker_colorbar"),formatLabels:t("./format_labels"),calc:t("./calc"),plot:t("./plot"),style:t("../scatter/style").style,styleOnSelect:t("../scatter/style").styleOnSelect,hoverPoints:t("./hover"),selectPoints:t("../scatter/select"),eventData:t("./event_data"),moduleType:"trace",name:"scatterternary",basePlotModule:t("../../plots/ternary"),categories:["ternary","symbols","showLegend","scatter-like"],meta:{}}},{"../../plots/ternary":919,"../scatter/marker_colorbar":1217,"../scatter/select":1221,"../scatter/style":1223,"./attributes":1287,"./calc":1288,"./defaults":1289,"./event_data":1290,"./format_labels":1291,"./hover":1292,"./plot":1294}],1294:[function(t,e,r){"use strict";var n=t("../scatter/plot");e.exports=function(t,e,r){var i=e.plotContainer;i.select(".scatterlayer").selectAll("*").remove();var a={xaxis:e.xaxis,yaxis:e.yaxis,plot:i,layerClipId:e._hasClipOnAxisFalse?e.clipIdRelative:null},o=e.layers.frontplot.select("g.scatterlayer");n(t,a,r,o)}},{"../scatter/plot":1220}],1295:[function(t,e,r){"use strict";var n=t("../scatter/attributes"),i=t("../../components/colorscale/attributes"),a=t("../../plots/hoverformat_attributes"),o=t("../../plots/template_attributes").hovertemplateAttrs,s=t("../scattergl/attributes"),l=t("../../plots/cartesian/constants").idRegex,c=t("../../plot_api/plot_template").templatedArray,u=t("../../lib/extend").extendFlat,f=n.marker,h=f.line,p=u(i("marker.line",{editTypeOverride:"calc"}),{width:u({},h.width,{editType:"calc"}),editType:"calc"}),d=u(i("marker"),{symbol:f.symbol,size:u({},f.size,{editType:"markerSize"}),sizeref:f.sizeref,sizemin:f.sizemin,sizemode:f.sizemode,opacity:f.opacity,colorbar:f.colorbar,line:p,editType:"calc"});function m(t){return{valType:"info_array",freeLength:!0,editType:"calc",items:{valType:"subplotid",regex:l[t],editType:"plot"}}}d.color.editType=d.cmin.editType=d.cmax.editType="style",e.exports={dimensions:c("dimension",{visible:{valType:"boolean",dflt:!0,editType:"calc"},label:{valType:"string",editType:"calc"},values:{valType:"data_array",editType:"calc+clearAxisTypes"},axis:{type:{valType:"enumerated",values:["linear","log","date","category"],editType:"calc+clearAxisTypes"},matches:{valType:"boolean",dflt:!1,editType:"calc"},editType:"calc+clearAxisTypes"},editType:"calc+clearAxisTypes"}),text:u({},s.text,{}),hovertext:u({},s.hovertext,{}),hovertemplate:o(),xhoverformat:a("x"),yhoverformat:a("y"),marker:d,xaxes:m("x"),yaxes:m("y"),diagonal:{visible:{valType:"boolean",dflt:!0,editType:"calc"},editType:"calc"},showupperhalf:{valType:"boolean",dflt:!0,editType:"calc"},showlowerhalf:{valType:"boolean",dflt:!0,editType:"calc"},selected:{marker:s.selected.marker,editType:"calc"},unselected:{marker:s.unselected.marker,editType:"calc"},opacity:s.opacity}},{"../../components/colorscale/attributes":665,"../../lib/extend":785,"../../plot_api/plot_template":834,"../../plots/cartesian/constants":851,"../../plots/hoverformat_attributes":899,"../../plots/template_attributes":918,"../scatter/attributes":1199,"../scattergl/attributes":1251}],1296:[function(t,e,r){"use strict";var n=t("regl-line2d"),i=t("../../registry"),a=t("../../lib/prepare_regl"),o=t("../../plots/get_data").getModuleCalcData,s=t("../../plots/cartesian"),l=t("../../plots/cartesian/axis_ids").getFromId,c=t("../../plots/cartesian/axes").shouldShowZeroLine;function u(t,e,r){for(var n=r.matrixOptions.data.length,i=e._visibleDims,a=r.viewOpts.ranges=new Array(n),o=0;oh?2*(b.sizeAvg||Math.max(b.size,3)):a(e,x),p=0;pa&&l||i-1,A=!0;if(o(x)||!!p.selectedpoints||M){var S=p._length;if(p.selectedpoints){m.selectBatch=p.selectedpoints;var E=p.selectedpoints,L={};for(l=0;l1&&(u=m[y-1],h=g[y-1],d=v[y-1]),e=0;eu?"-":"+")+"x")).replace("y",(f>h?"-":"+")+"y")).replace("z",(p>d?"-":"+")+"z");var L=function(){y=0,A=[],S=[],E=[]};(!y||y2?t.slice(1,e-1):2===e?[(t[0]+t[1])/2]:t}function p(t){var e=t.length;return 1===e?[.5,.5]:[t[1]-t[0],t[e-1]-t[e-2]]}function d(t,e){var r=t.fullSceneLayout,i=t.dataScale,u=e._len,f={};function d(t,e){var n=r[e],o=i[c[e]];return a.simpleMap(t,(function(t){return n.d2l(t)*o}))}if(f.vectors=l(d(e._u,"xaxis"),d(e._v,"yaxis"),d(e._w,"zaxis"),u),!u)return{positions:[],cells:[]};var m=d(e._Xs,"xaxis"),g=d(e._Ys,"yaxis"),v=d(e._Zs,"zaxis");if(f.meshgrid=[m,g,v],f.gridFill=e._gridFill,e._slen)f.startingPositions=l(d(e._startsX,"xaxis"),d(e._startsY,"yaxis"),d(e._startsZ,"zaxis"));else{for(var y=g[0],x=h(m),b=h(v),_=new Array(x.length*b.length),w=0,T=0;T=0};v?(r=Math.min(g.length,x.length),l=function(t){return M(g[t])&&A(t)},f=function(t){return String(g[t])}):(r=Math.min(y.length,x.length),l=function(t){return M(y[t])&&A(t)},f=function(t){return String(y[t])}),_&&(r=Math.min(r,b.length));for(var S=0;S1){for(var P=a.randstr(),I=0;I"),name:k||O("name")?l.name:void 0,color:T("hoverlabel.bgcolor")||y.color,borderColor:T("hoverlabel.bordercolor"),fontFamily:T("hoverlabel.font.family"),fontSize:T("hoverlabel.font.size"),fontColor:T("hoverlabel.font.color"),nameLength:T("hoverlabel.namelength"),textAlign:T("hoverlabel.align"),hovertemplate:k,hovertemplateLabels:C,eventData:[f(i,l,h.eventDataKeys)]};g&&(R.x0=S-i.rInscribed*i.rpx1,R.x1=S+i.rInscribed*i.rpx1,R.idealAlign=i.pxmid[0]<0?"left":"right"),v&&(R.x=S,R.idealAlign=S<0?"left":"right"),o.loneHover(R,{container:a._hoverlayer.node(),outerContainer:a._paper.node(),gd:r}),d._hasHoverLabel=!0}if(v){var F=t.select("path.surface");h.styleOne(F,i,l,{hovered:!0})}d._hasHoverEvent=!0,r.emit("plotly_hover",{points:[f(i,l,h.eventDataKeys)],event:n.event})}})),t.on("mouseout",(function(e){var i=r._fullLayout,a=r._fullData[d.index],s=n.select(this).datum();if(d._hasHoverEvent&&(e.originalEvent=n.event,r.emit("plotly_unhover",{points:[f(s,a,h.eventDataKeys)],event:n.event}),d._hasHoverEvent=!1),d._hasHoverLabel&&(o.loneUnhover(i._hoverlayer.node()),d._hasHoverLabel=!1),v){var l=t.select("path.surface");h.styleOne(l,s,a,{hovered:!1})}})),t.on("click",(function(t){var e=r._fullLayout,a=r._fullData[d.index],s=g&&(c.isHierarchyRoot(t)||c.isLeaf(t)),u=c.getPtId(t),p=c.isEntry(t)?c.findEntryWithChild(m,u):c.findEntryWithLevel(m,u),v=c.getPtId(p),y={points:[f(t,a,h.eventDataKeys)],event:n.event};s||(y.nextLevel=v);var x=l.triggerHandler(r,"plotly_"+d.type+"click",y);if(!1!==x&&e.hovermode&&(r._hoverdata=[f(t,a,h.eventDataKeys)],o.click(r,n.event)),!s&&!1!==x&&!r._dragging&&!r._transitioning){i.call("_storeDirectGUIEdit",a,e._tracePreGUI[a.uid],{level:a.level});var b={data:[{level:v}],traces:[d.index]},_={frame:{redraw:!1,duration:h.transitionTime},transition:{duration:h.transitionTime,easing:h.transitionEasing},mode:"immediate",fromcurrent:!0};o.loneUnhover(e._hoverlayer.node()),i.call("animate",r,b,_)}}))}},{"../../components/fx":698,"../../components/fx/helpers":694,"../../lib":795,"../../lib/events":784,"../../registry":923,"../pie/helpers":1178,"./helpers":1317,"@plotly/d3":57}],1317:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("../../components/color"),a=t("../../lib/setcursor"),o=t("../pie/helpers");function s(t){return t.data.data.pid}r.findEntryWithLevel=function(t,e){var n;return e&&t.eachAfter((function(t){if(r.getPtId(t)===e)return n=t.copy()})),n||t},r.findEntryWithChild=function(t,e){var n;return t.eachAfter((function(t){for(var i=t.children||[],a=0;a0)},r.getMaxDepth=function(t){return t.maxdepth>=0?t.maxdepth:1/0},r.isHeader=function(t,e){return!(r.isLeaf(t)||t.depth===e._maxDepth-1)},r.getParent=function(t,e){return r.findEntryWithLevel(t,s(e))},r.listPath=function(t,e){var n=t.parent;if(!n)return[];var i=e?[n.data[e]]:[n];return r.listPath(n,e).concat(i)},r.getPath=function(t){return r.listPath(t,"label").join("/")+"/"},r.formatValue=o.formatPieValue,r.formatPercent=function(t,e){var r=n.formatPercent(t,0);return"0%"===r&&(r=o.formatPiePercent(t,e)),r}},{"../../components/color":658,"../../lib":795,"../../lib/setcursor":816,"../pie/helpers":1178}],1318:[function(t,e,r){"use strict";e.exports={moduleType:"trace",name:"sunburst",basePlotModule:t("./base_plot"),categories:[],animatable:!0,attributes:t("./attributes"),layoutAttributes:t("./layout_attributes"),supplyDefaults:t("./defaults"),supplyLayoutDefaults:t("./layout_defaults"),calc:t("./calc").calc,crossTraceCalc:t("./calc").crossTraceCalc,plot:t("./plot").plot,style:t("./style").style,colorbar:t("../scatter/marker_colorbar"),meta:{}}},{"../scatter/marker_colorbar":1217,"./attributes":1311,"./base_plot":1312,"./calc":1313,"./defaults":1315,"./layout_attributes":1319,"./layout_defaults":1320,"./plot":1321,"./style":1322}],1319:[function(t,e,r){"use strict";e.exports={sunburstcolorway:{valType:"colorlist",editType:"calc"},extendsunburstcolors:{valType:"boolean",dflt:!0,editType:"calc"}}},{}],1320:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./layout_attributes");e.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}r("sunburstcolorway",e.colorway),r("extendsunburstcolors")}},{"../../lib":795,"./layout_attributes":1319}],1321:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("d3-hierarchy"),a=t("../../components/drawing"),o=t("../../lib"),s=t("../../lib/svg_text_utils"),l=t("../bar/uniform_text"),c=l.recordMinTextSize,u=l.clearMinTextSize,f=t("../pie/plot"),h=t("../pie/helpers").getRotationAngle,p=f.computeTransform,d=f.transformInsideText,m=t("./style").styleOne,g=t("../bar/style").resizeText,v=t("./fx"),y=t("./constants"),x=t("./helpers");function b(t,e,l,u){var f=t._fullLayout,g=!f.uniformtext.mode&&x.hasTransition(u),b=n.select(l).selectAll("g.slice"),w=e[0],T=w.trace,k=w.hierarchy,M=x.findEntryWithLevel(k,T.level),A=x.getMaxDepth(T),S=f._size,E=T.domain,L=S.w*(E.x[1]-E.x[0]),C=S.h*(E.y[1]-E.y[0]),P=.5*Math.min(L,C),I=w.cx=S.l+S.w*(E.x[1]+E.x[0])/2,O=w.cy=S.t+S.h*(1-E.y[0])-C/2;if(!M)return b.remove();var z=null,D={};g&&b.each((function(t){D[x.getPtId(t)]={rpx0:t.rpx0,rpx1:t.rpx1,x0:t.x0,x1:t.x1,transform:t.transform},!z&&x.isEntry(t)&&(z=t)}));var R=function(t){return i.partition().size([2*Math.PI,t.height+1])(t)}(M).descendants(),F=M.height+1,B=0,N=A;w.hasMultipleRoots&&x.isHierarchyRoot(M)&&(R=R.slice(1),F-=1,B=1,N+=1),R=R.filter((function(t){return t.y1<=N}));var j=h(T.rotation);j&&R.forEach((function(t){t.x0+=j,t.x1+=j}));var U=Math.min(F,A),V=function(t){return(t-B)/U*P},q=function(t,e){return[t*Math.cos(e),-t*Math.sin(e)]},H=function(t){return o.pathAnnulus(t.rpx0,t.rpx1,t.x0,t.x1,I,O)},G=function(t){return I+_(t)[0]*(t.transform.rCenter||0)+(t.transform.x||0)},Y=function(t){return O+_(t)[1]*(t.transform.rCenter||0)+(t.transform.y||0)};(b=b.data(R,x.getPtId)).enter().append("g").classed("slice",!0),g?b.exit().transition().each((function(){var t=n.select(this);t.select("path.surface").transition().attrTween("d",(function(t){var e=function(t){var e,r=x.getPtId(t),i=D[r],a=D[x.getPtId(M)];if(a){var o=(t.x1>a.x1?2*Math.PI:0)+j;e=t.rpx1W?2*Math.PI:0)+j;e={x0:a,x1:a}}else e={rpx0:P,rpx1:P},o.extendFlat(e,J(t));else e={rpx0:0,rpx1:0};else e={x0:j,x1:j};return n.interpolate(e,i)}(t);return function(t){return H(e(t))}})):u.attr("d",H),l.call(v,M,t,e,{eventDataKeys:y.eventDataKeys,transitionTime:y.CLICK_TRANSITION_TIME,transitionEasing:y.CLICK_TRANSITION_EASING}).call(x.setSliceCursor,t,{hideOnRoot:!0,hideOnLeaves:!0,isTransitioning:t._transitioning}),u.call(m,i,T);var h=o.ensureSingle(l,"g","slicetext"),b=o.ensureSingle(h,"text","",(function(t){t.attr("data-notex",1)})),_=o.ensureUniformFontSize(t,x.determineTextFont(T,i,f.font));b.text(r.formatSliceLabel(i,M,T,e,f)).classed("slicetext",!0).attr("text-anchor","middle").call(a.font,_).call(s.convertToTspans,t);var k=a.bBox(b.node());i.transform=d(k,i,w),i.transform.targetX=G(i),i.transform.targetY=Y(i);var A=function(t,e){var r=t.transform;return p(r,e),r.fontSize=_.size,c(T.type,r,f),o.getTextTransform(r)};g?b.transition().attrTween("transform",(function(t){var e=function(t){var e,r=D[x.getPtId(t)],i=t.transform;if(r)e=r;else if(e={rpx1:t.rpx1,transform:{textPosAngle:i.textPosAngle,scale:0,rotate:i.rotate,rCenter:i.rCenter,x:i.x,y:i.y}},z)if(t.parent)if(W){var a=t.x1>W?2*Math.PI:0;e.x0=e.x1=a}else o.extendFlat(e,J(t));else e.x0=e.x1=j;else e.x0=e.x1=j;var s=n.interpolate(e.transform.textPosAngle,t.transform.textPosAngle),l=n.interpolate(e.rpx1,t.rpx1),u=n.interpolate(e.x0,t.x0),h=n.interpolate(e.x1,t.x1),p=n.interpolate(e.transform.scale,i.scale),d=n.interpolate(e.transform.rotate,i.rotate),m=0===i.rCenter?3:0===e.transform.rCenter?1/3:1,g=n.interpolate(e.transform.rCenter,i.rCenter);return function(t){var e=l(t),r=u(t),n=h(t),a=function(t){return g(Math.pow(t,m))}(t),o={pxmid:q(e,(r+n)/2),rpx1:e,transform:{textPosAngle:s(t),rCenter:a,x:i.x,y:i.y}};return c(T.type,i,f),{transform:{targetX:G(o),targetY:Y(o),scale:p(t),rotate:d(t),rCenter:a}}}}(t);return function(t){return A(e(t),k)}})):b.attr("transform",A(i,k))}))}function _(t){return e=t.rpx1,r=t.transform.textPosAngle,[e*Math.sin(r),-e*Math.cos(r)];var e,r}r.plot=function(t,e,r,i){var a,o,s=t._fullLayout,l=s._sunburstlayer,c=!r,f=!s.uniformtext.mode&&x.hasTransition(r);(u("sunburst",s),(a=l.selectAll("g.trace.sunburst").data(e,(function(t){return t[0].trace.uid}))).enter().append("g").classed("trace",!0).classed("sunburst",!0).attr("stroke-linejoin","round"),a.order(),f)?(i&&(o=i()),n.transition().duration(r.duration).ease(r.easing).each("end",(function(){o&&o()})).each("interrupt",(function(){o&&o()})).each((function(){l.selectAll("g.trace").each((function(e){b(t,e,this,r)}))}))):(a.each((function(e){b(t,e,this,r)})),s.uniformtext.mode&&g(t,s._sunburstlayer.selectAll(".trace"),"sunburst"));c&&a.exit().remove()},r.formatSliceLabel=function(t,e,r,n,i){var a=r.texttemplate,s=r.textinfo;if(!(a||s&&"none"!==s))return"";var l=i.separators,c=n[0],u=t.data.data,f=c.hierarchy,h=x.isHierarchyRoot(t),p=x.getParent(f,t),d=x.getValue(t);if(!a){var m,g=s.split("+"),v=function(t){return-1!==g.indexOf(t)},y=[];if(v("label")&&u.label&&y.push(u.label),u.hasOwnProperty("v")&&v("value")&&y.push(x.formatValue(u.v,l)),!h){v("current path")&&y.push(x.getPath(t.data));var b=0;v("percent parent")&&b++,v("percent entry")&&b++,v("percent root")&&b++;var _=b>1;if(b){var w,T=function(t){m=x.formatPercent(w,l),_&&(m+=" of "+t),y.push(m)};v("percent parent")&&!h&&(w=d/x.getValue(p),T("parent")),v("percent entry")&&(w=d/x.getValue(e),T("entry")),v("percent root")&&(w=d/x.getValue(f),T("root"))}}return v("text")&&(m=o.castOption(r,u.i,"text"),o.isValidTextValue(m)&&y.push(m)),y.join("
    ")}var k=o.castOption(r,u.i,"texttemplate");if(!k)return"";var M={};u.label&&(M.label=u.label),u.hasOwnProperty("v")&&(M.value=u.v,M.valueLabel=x.formatValue(u.v,l)),M.currentPath=x.getPath(t.data),h||(M.percentParent=d/x.getValue(p),M.percentParentLabel=x.formatPercent(M.percentParent,l),M.parent=x.getPtLabel(p)),M.percentEntry=d/x.getValue(e),M.percentEntryLabel=x.formatPercent(M.percentEntry,l),M.entry=x.getPtLabel(e),M.percentRoot=d/x.getValue(f),M.percentRootLabel=x.formatPercent(M.percentRoot,l),M.root=x.getPtLabel(f),u.hasOwnProperty("color")&&(M.color=u.color);var A=o.castOption(r,u.i,"text");return(o.isValidTextValue(A)||""===A)&&(M.text=A),M.customdata=o.castOption(r,u.i,"customdata"),o.texttemplateString(k,M,i._d3locale,M,r._meta||{})}},{"../../components/drawing":680,"../../lib":795,"../../lib/svg_text_utils":820,"../bar/style":947,"../bar/uniform_text":949,"../pie/helpers":1178,"../pie/plot":1182,"./constants":1314,"./fx":1316,"./helpers":1317,"./style":1322,"@plotly/d3":57,"d3-hierarchy":162}],1322:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("../../components/color"),a=t("../../lib"),o=t("../bar/uniform_text").resizeText;function s(t,e,r){var n=e.data.data,o=!e.children,s=n.i,l=a.castOption(r,s,"marker.line.color")||i.defaultLine,c=a.castOption(r,s,"marker.line.width")||0;t.style("stroke-width",c).call(i.fill,n.color).call(i.stroke,l).style("opacity",o?r.leaf.opacity:null)}e.exports={style:function(t){var e=t._fullLayout._sunburstlayer.selectAll(".trace");o(t,e,"sunburst"),e.each((function(t){var e=n.select(this),r=t[0].trace;e.style("opacity",r.opacity),e.selectAll("path.surface").each((function(t){n.select(this).call(s,t,r)}))}))},styleOne:s}},{"../../components/color":658,"../../lib":795,"../bar/uniform_text":949,"@plotly/d3":57}],1323:[function(t,e,r){"use strict";var n=t("../../components/color"),i=t("../../components/colorscale/attributes"),a=t("../../plots/hoverformat_attributes"),o=t("../../plots/template_attributes").hovertemplateAttrs,s=t("../../plots/attributes"),l=t("../../lib/extend").extendFlat,c=t("../../plot_api/edit_types").overrideAll;function u(t){return{show:{valType:"boolean",dflt:!1},start:{valType:"number",dflt:null,editType:"plot"},end:{valType:"number",dflt:null,editType:"plot"},size:{valType:"number",dflt:null,min:0,editType:"plot"},project:{x:{valType:"boolean",dflt:!1},y:{valType:"boolean",dflt:!1},z:{valType:"boolean",dflt:!1}},color:{valType:"color",dflt:n.defaultLine},usecolormap:{valType:"boolean",dflt:!1},width:{valType:"number",min:1,max:16,dflt:2},highlight:{valType:"boolean",dflt:!0},highlightcolor:{valType:"color",dflt:n.defaultLine},highlightwidth:{valType:"number",min:1,max:16,dflt:2}}}var f=e.exports=c(l({z:{valType:"data_array"},x:{valType:"data_array"},y:{valType:"data_array"},text:{valType:"string",dflt:"",arrayOk:!0},hovertext:{valType:"string",dflt:"",arrayOk:!0},hovertemplate:o(),xhoverformat:a("x"),yhoverformat:a("y"),zhoverformat:a("z"),connectgaps:{valType:"boolean",dflt:!1,editType:"calc"},surfacecolor:{valType:"data_array"}},i("",{colorAttr:"z or surfacecolor",showScaleDflt:!0,autoColorDflt:!1,editTypeOverride:"calc"}),{contours:{x:u(),y:u(),z:u()},hidesurface:{valType:"boolean",dflt:!1},lightposition:{x:{valType:"number",min:-1e5,max:1e5,dflt:10},y:{valType:"number",min:-1e5,max:1e5,dflt:1e4},z:{valType:"number",min:-1e5,max:1e5,dflt:0}},lighting:{ambient:{valType:"number",min:0,max:1,dflt:.8},diffuse:{valType:"number",min:0,max:1,dflt:.8},specular:{valType:"number",min:0,max:2,dflt:.05},roughness:{valType:"number",min:0,max:1,dflt:.5},fresnel:{valType:"number",min:0,max:5,dflt:.2}},opacity:{valType:"number",min:0,max:1,dflt:1},opacityscale:{valType:"any",editType:"calc"},_deprecated:{zauto:l({},i.zauto,{}),zmin:l({},i.zmin,{}),zmax:l({},i.zmax,{})},hoverinfo:l({},s.hoverinfo),showlegend:l({},s.showlegend,{dflt:!1})}),"calc","nested");f.x.editType=f.y.editType=f.z.editType="calc+clearAxisTypes",f.transforms=void 0},{"../../components/color":658,"../../components/colorscale/attributes":665,"../../lib/extend":785,"../../plot_api/edit_types":827,"../../plots/attributes":841,"../../plots/hoverformat_attributes":899,"../../plots/template_attributes":918}],1324:[function(t,e,r){"use strict";var n=t("../../components/colorscale/calc");e.exports=function(t,e){e.surfacecolor?n(t,e,{vals:e.surfacecolor,containerStr:"",cLetter:"c"}):n(t,e,{vals:e.z,containerStr:"",cLetter:"c"})}},{"../../components/colorscale/calc":666}],1325:[function(t,e,r){"use strict";var n=t("gl-surface3d"),i=t("ndarray"),a=t("ndarray-linear-interpolate").d2,o=t("../heatmap/interp2d"),s=t("../heatmap/find_empties"),l=t("../../lib").isArrayOrTypedArray,c=t("../../lib/gl_format_color").parseColorScale,u=t("../../lib/str2rgbarray"),f=t("../../components/colorscale").extractOpts;function h(t,e,r){this.scene=t,this.uid=r,this.surface=e,this.data=null,this.showContour=[!1,!1,!1],this.contourStart=[null,null,null],this.contourEnd=[null,null,null],this.contourSize=[0,0,0],this.minValues=[1/0,1/0,1/0],this.maxValues=[-1/0,-1/0,-1/0],this.dataScaleX=1,this.dataScaleY=1,this.refineData=!0,this.objectOffset=[0,0,0]}var p=h.prototype;p.getXat=function(t,e,r,n){var i=l(this.data.x)?l(this.data.x[0])?this.data.x[e][t]:this.data.x[t]:t;return void 0===r?i:n.d2l(i,0,r)},p.getYat=function(t,e,r,n){var i=l(this.data.y)?l(this.data.y[0])?this.data.y[e][t]:this.data.y[e]:e;return void 0===r?i:n.d2l(i,0,r)},p.getZat=function(t,e,r,n){var i=this.data.z[e][t];return null===i&&this.data.connectgaps&&this.data._interpolatedZ&&(i=this.data._interpolatedZ[e][t]),void 0===r?i:n.d2l(i,0,r)},p.handlePick=function(t){if(t.object===this.surface){var e=(t.data.index[0]-1)/this.dataScaleX-1,r=(t.data.index[1]-1)/this.dataScaleY-1,n=Math.max(Math.min(Math.round(e),this.data.z[0].length-1),0),i=Math.max(Math.min(Math.round(r),this.data._ylength-1),0);t.index=[n,i],t.traceCoordinate=[this.getXat(n,i),this.getYat(n,i),this.getZat(n,i)],t.dataCoordinate=[this.getXat(n,i,this.data.xcalendar,this.scene.fullSceneLayout.xaxis),this.getYat(n,i,this.data.ycalendar,this.scene.fullSceneLayout.yaxis),this.getZat(n,i,this.data.zcalendar,this.scene.fullSceneLayout.zaxis)];for(var a=0;a<3;a++){var o=t.dataCoordinate[a];null!=o&&(t.dataCoordinate[a]*=this.scene.dataScale[a])}var s=this.data.hovertext||this.data.text;return Array.isArray(s)&&s[i]&&void 0!==s[i][n]?t.textLabel=s[i][n]:t.textLabel=s||"",t.data.dataCoordinate=t.dataCoordinate.slice(),this.surface.highlight(t.data),this.scene.glplot.spikes.position=t.dataCoordinate,!0}};var d=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999];function m(t,e){if(t0){r=d[n];break}return r}function y(t,e){if(!(t<1||e<1)){for(var r=g(t),n=g(e),i=1,a=0;a_;)r--,r/=v(r),++r1?n:1},p.refineCoords=function(t){for(var e=this.dataScaleX,r=this.dataScaleY,n=t[0].shape[0],a=t[0].shape[1],o=0|Math.floor(t[0].shape[0]*e+1),s=0|Math.floor(t[0].shape[1]*r+1),l=1+n+1,c=1+a+1,u=i(new Float32Array(l*c),[l,c]),f=[1/e,0,0,0,1/r,0,0,0,1],h=0;h0&&null!==this.contourStart[t]&&null!==this.contourEnd[t]&&this.contourEnd[t]>this.contourStart[t]))for(i[t]=!0,e=this.contourStart[t];ea&&(this.minValues[e]=a),this.maxValues[e]",maxDimensionCount:60,overdrag:45,releaseTransitionDuration:120,releaseTransitionEase:"cubic-out",scrollbarCaptureWidth:18,scrollbarHideDelay:1e3,scrollbarHideDuration:1e3,scrollbarOffset:5,scrollbarWidth:8,transitionDuration:100,transitionEase:"cubic-out",uplift:5,wrapSpacer:" ",wrapSplitCharacter:" ",cn:{table:"table",tableControlView:"table-control-view",scrollBackground:"scroll-background",yColumn:"y-column",columnBlock:"column-block",scrollAreaClip:"scroll-area-clip",scrollAreaClipRect:"scroll-area-clip-rect",columnBoundary:"column-boundary",columnBoundaryClippath:"column-boundary-clippath",columnBoundaryRect:"column-boundary-rect",columnCells:"column-cells",columnCell:"column-cell",cellRect:"cell-rect",cellText:"cell-text",cellTextHolder:"cell-text-holder",scrollbarKit:"scrollbar-kit",scrollbar:"scrollbar",scrollbarSlider:"scrollbar-slider",scrollbarGlyph:"scrollbar-glyph",scrollbarCaptureZone:"scrollbar-capture-zone"}}},{}],1332:[function(t,e,r){"use strict";var n=t("./constants"),i=t("../../lib/extend").extendFlat,a=t("fast-isnumeric");function o(t){if(Array.isArray(t)){for(var e=0,r=0;r=e||c===t.length-1)&&(n[i]=o,o.key=l++,o.firstRowIndex=s,o.lastRowIndex=c,o={firstRowIndex:null,lastRowIndex:null,rows:[]},i+=a,s=c+1,a=0);return n}e.exports=function(t,e){var r=l(e.cells.values),p=function(t){return t.slice(e.header.values.length,t.length)},d=l(e.header.values);d.length&&!d[0].length&&(d[0]=[""],d=l(d));var m=d.concat(p(r).map((function(){return c((d[0]||[""]).length)}))),g=e.domain,v=Math.floor(t._fullLayout._size.w*(g.x[1]-g.x[0])),y=Math.floor(t._fullLayout._size.h*(g.y[1]-g.y[0])),x=e.header.values.length?m[0].map((function(){return e.header.height})):[n.emptyHeaderHeight],b=r.length?r[0].map((function(){return e.cells.height})):[],_=x.reduce(s,0),w=h(b,y-_+n.uplift),T=f(h(x,_),[]),k=f(w,T),M={},A=e._fullInput.columnorder.concat(p(r.map((function(t,e){return e})))),S=m.map((function(t,r){var n=Array.isArray(e.columnwidth)?e.columnwidth[Math.min(r,e.columnwidth.length-1)]:e.columnwidth;return a(n)?Number(n):1})),E=S.reduce(s,0);S=S.map((function(t){return t/E*v}));var L=Math.max(o(e.header.line.width),o(e.cells.line.width)),C={key:e.uid+t._context.staticPlot,translateX:g.x[0]*t._fullLayout._size.w,translateY:t._fullLayout._size.h*(1-g.y[1]),size:t._fullLayout._size,width:v,maxLineWidth:L,height:y,columnOrder:A,groupHeight:y,rowBlocks:k,headerRowBlocks:T,scrollY:0,cells:i({},e.cells,{values:r}),headerCells:i({},e.header,{values:m}),gdColumns:m.map((function(t){return t[0]})),gdColumnsOriginalOrder:m.map((function(t){return t[0]})),prevPages:[0,0],scrollbarState:{scrollbarScrollInProgress:!1},columns:m.map((function(t,e){var r=M[t];return M[t]=(r||0)+1,{key:t+"__"+M[t],label:t,specIndex:e,xIndex:A[e],xScale:u,x:void 0,calcdata:void 0,columnWidth:S[e]}}))};return C.columns.forEach((function(t){t.calcdata=C,t.x=u(t)})),C}},{"../../lib/extend":785,"./constants":1331,"fast-isnumeric":240}],1333:[function(t,e,r){"use strict";var n=t("../../lib/extend").extendFlat;r.splitToPanels=function(t){var e=[0,0],r=n({},t,{key:"header",type:"header",page:0,prevPages:e,currentRepaint:[null,null],dragHandle:!0,values:t.calcdata.headerCells.values[t.specIndex],rowBlocks:t.calcdata.headerRowBlocks,calcdata:n({},t.calcdata,{cells:t.calcdata.headerCells})});return[n({},t,{key:"cells1",type:"cells",page:0,prevPages:e,currentRepaint:[null,null],dragHandle:!1,values:t.calcdata.cells.values[t.specIndex],rowBlocks:t.calcdata.rowBlocks}),n({},t,{key:"cells2",type:"cells",page:1,prevPages:e,currentRepaint:[null,null],dragHandle:!1,values:t.calcdata.cells.values[t.specIndex],rowBlocks:t.calcdata.rowBlocks}),r]},r.splitToCells=function(t){var e=function(t){var e=t.rowBlocks[t.page],r=e?e.rows[0].rowIndex:0,n=e?r+e.rows.length:0;return[r,n]}(t);return(t.values||[]).slice(e[0],e[1]).map((function(r,n){return{keyWithinBlock:n+("string"==typeof r&&r.match(/[<$&> ]/)?"_keybuster_"+Math.random():""),key:e[0]+n,column:t,calcdata:t.calcdata,page:t.page,rowBlocks:t.rowBlocks,value:r}}))}},{"../../lib/extend":785}],1334:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./attributes"),a=t("../../plots/domain").defaults;e.exports=function(t,e,r,o){function s(r,a){return n.coerce(t,e,i,r,a)}a(e,o,s),s("columnwidth"),s("header.values"),s("header.format"),s("header.align"),s("header.prefix"),s("header.suffix"),s("header.height"),s("header.line.width"),s("header.line.color"),s("header.fill.color"),n.coerceFont(s,"header.font",n.extendFlat({},o.font)),function(t,e){for(var r=t.columnorder||[],n=t.header.values.length,i=r.slice(0,n),a=i.slice().sort((function(t,e){return t-e})),o=i.map((function(t){return a.indexOf(t)})),s=o.length;s/i),l=!o||s;t.mayHaveMarkup=o&&a.match(/[<&>]/);var c,u="string"==typeof(c=a)&&c.match(n.latexCheck);t.latex=u;var f,h,p=u?"":w(t.calcdata.cells.prefix,e,r)||"",d=u?"":w(t.calcdata.cells.suffix,e,r)||"",m=u?null:w(t.calcdata.cells.format,e,r)||null,g=p+(m?i.format(m)(t.value):t.value)+d;if(t.wrappingNeeded=!t.wrapped&&!l&&!u&&(f=_(g)),t.cellHeightMayIncrease=s||u||t.mayHaveMarkup||(void 0===f?_(g):f),t.needsConvertToTspans=t.mayHaveMarkup||t.wrappingNeeded||t.latex,t.wrappingNeeded){var v=(" "===n.wrapSplitCharacter?g.replace(/i&&n.push(a),i+=l}return n}(i,l,s);1===u.length&&(u[0]===i.length-1?u.unshift(u[0]-1):u.push(u[0]+1)),u[0]%2&&u.reverse(),e.each((function(t,e){t.page=u[e],t.scrollY=l})),e.attr("transform",(function(t){var e=z(t.rowBlocks,t.page)-t.scrollY;return c(0,e)})),t&&(L(t,r,e,u,n.prevPages,n,0),L(t,r,e,u,n.prevPages,n,1),y(r,t))}}function E(t,e,r,a){return function(o){var s=o.calcdata?o.calcdata:o,l=e.filter((function(t){return s.key===t.key})),c=r||s.scrollbarState.dragMultiplier,u=s.scrollY;s.scrollY=void 0===a?s.scrollY+c*i.event.dy:a;var f=l.selectAll("."+n.cn.yColumn).selectAll("."+n.cn.columnBlock).filter(k);return S(t,f,l),s.scrollY===u}}function L(t,e,r,n,i,a,o){n[o]!==i[o]&&(clearTimeout(a.currentRepaint[o]),a.currentRepaint[o]=setTimeout((function(){var a=r.filter((function(t,e){return e===o&&n[e]!==i[e]}));x(t,e,a,r),i[o]=n[o]})))}function C(t,e,r,a){return function(){var o=i.select(e.parentNode);o.each((function(t){var e=t.fragments;o.selectAll("tspan.line").each((function(t,r){e[r].width=this.getComputedTextLength()}));var r,i,a=e[e.length-1].width,s=e.slice(0,-1),l=[],c=0,u=t.column.columnWidth-2*n.cellPad;for(t.value="";s.length;)c+(i=(r=s.shift()).width+a)>u&&(t.value+=l.join(n.wrapSpacer)+n.lineBreaker,l=[],c=0),l.push(r.text),c+=i;c&&(t.value+=l.join(n.wrapSpacer)),t.wrapped=!0})),o.selectAll("tspan.line").remove(),b(o.select("."+n.cn.cellText),r,t,a),i.select(e.parentNode.parentNode).call(O)}}function P(t,e,r,a,o){return function(){if(!o.settledY){var s=i.select(e.parentNode),l=F(o),u=o.key-l.firstRowIndex,f=l.rows[u].rowHeight,h=o.cellHeightMayIncrease?e.parentNode.getBoundingClientRect().height+2*n.cellPad:f,p=Math.max(h,f);p-l.rows[u].rowHeight&&(l.rows[u].rowHeight=p,t.selectAll("."+n.cn.columnCell).call(O),S(null,t.filter(k),0),y(r,a,!0)),s.attr("transform",(function(){var t=this.parentNode.getBoundingClientRect(),e=i.select(this.parentNode).select("."+n.cn.cellRect).node().getBoundingClientRect(),r=this.transform.baseVal.consolidate(),a=e.top-t.top+(r?r.matrix.f:n.cellPad);return c(I(o,i.select(this.parentNode).select("."+n.cn.cellTextHolder).node().getBoundingClientRect().width),a)})),o.settledY=!0}}}function I(t,e){switch(t.align){case"left":return n.cellPad;case"right":return t.column.columnWidth-(e||0)-n.cellPad;case"center":return(t.column.columnWidth-(e||0))/2;default:return n.cellPad}}function O(t){t.attr("transform",(function(t){var e=t.rowBlocks[0].auxiliaryBlocks.reduce((function(t,e){return t+D(e,1/0)}),0),r=D(F(t),t.key);return c(0,r+e)})).selectAll("."+n.cn.cellRect).attr("height",(function(t){return(e=F(t),r=t.key,e.rows[r-e.firstRowIndex]).rowHeight;var e,r}))}function z(t,e){for(var r=0,n=e-1;n>=0;n--)r+=R(t[n]);return r}function D(t,e){for(var r=0,n=0;n","<","|","/","\\"],dflt:">",editType:"plot"},thickness:{valType:"number",min:12,editType:"plot"},textfont:u({},s.textfont,{}),editType:"calc"},text:s.text,textinfo:l.textinfo,texttemplate:i({editType:"plot"},{keys:c.eventDataKeys.concat(["label","value"])}),hovertext:s.hovertext,hoverinfo:l.hoverinfo,hovertemplate:n({},{keys:c.eventDataKeys}),textfont:s.textfont,insidetextfont:s.insidetextfont,outsidetextfont:u({},s.outsidetextfont,{}),textposition:{valType:"enumerated",values:["top left","top center","top right","middle left","middle center","middle right","bottom left","bottom center","bottom right"],dflt:"top left",editType:"plot"},sort:s.sort,root:l.root,domain:o({name:"treemap",trace:!0,editType:"calc"})}},{"../../components/colorscale/attributes":665,"../../lib/extend":785,"../../plots/domain":872,"../../plots/template_attributes":918,"../pie/attributes":1173,"../sunburst/attributes":1311,"./constants":1340}],1338:[function(t,e,r){"use strict";var n=t("../../plots/plots");r.name="treemap",r.plot=function(t,e,i,a){n.plotBasePlot(r.name,t,e,i,a)},r.clean=function(t,e,i,a){n.cleanBasePlot(r.name,t,e,i,a)}},{"../../plots/plots":909}],1339:[function(t,e,r){"use strict";var n=t("../sunburst/calc");r.calc=function(t,e){return n.calc(t,e)},r.crossTraceCalc=function(t){return n._runCrossTraceCalc("treemap",t)}},{"../sunburst/calc":1313}],1340:[function(t,e,r){"use strict";e.exports={CLICK_TRANSITION_TIME:750,CLICK_TRANSITION_EASING:"poly",eventDataKeys:["currentPath","root","entry","percentRoot","percentEntry","percentParent"],gapWithPathbar:1}},{}],1341:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./attributes"),a=t("../../components/color"),o=t("../../plots/domain").defaults,s=t("../bar/defaults").handleText,l=t("../bar/constants").TEXTPAD,c=t("../../components/colorscale"),u=c.hasColorscale,f=c.handleDefaults;e.exports=function(t,e,r,c){function h(r,a){return n.coerce(t,e,i,r,a)}var p=h("labels"),d=h("parents");if(p&&p.length&&d&&d.length){var m=h("values");m&&m.length?h("branchvalues"):h("count"),h("level"),h("maxdepth"),"squarify"===h("tiling.packing")&&h("tiling.squarifyratio"),h("tiling.flip"),h("tiling.pad");var g=h("text");h("texttemplate"),e.texttemplate||h("textinfo",Array.isArray(g)?"text+label":"label"),h("hovertext"),h("hovertemplate");var v=h("pathbar.visible");s(t,e,c,h,"auto",{hasPathbar:v,moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1}),h("textposition");var y=-1!==e.textposition.indexOf("bottom");h("marker.line.width")&&h("marker.line.color",c.paper_bgcolor);var x=h("marker.colors");(e._hasColorscale=u(t,"marker","colors")||(t.marker||{}).coloraxis)?f(t,e,c,h,{prefix:"marker.",cLetter:"c"}):h("marker.depthfade",!(x||[]).length);var b=2*e.textfont.size;h("marker.pad.t",y?b/4:b),h("marker.pad.l",b/4),h("marker.pad.r",b/4),h("marker.pad.b",y?b:b/4),e._hovered={marker:{line:{width:2,color:a.contrast(c.paper_bgcolor)}}},v&&(h("pathbar.thickness",e.pathbar.textfont.size+2*l),h("pathbar.side"),h("pathbar.edgeshape")),h("sort"),h("root.color"),o(e,c,h),e._length=null}else e.visible=!1}},{"../../components/color":658,"../../components/colorscale":670,"../../lib":795,"../../plots/domain":872,"../bar/constants":935,"../bar/defaults":937,"./attributes":1337}],1342:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("../../lib"),a=t("../../components/drawing"),o=t("../../lib/svg_text_utils"),s=t("./partition"),l=t("./style").styleOne,c=t("./constants"),u=t("../sunburst/helpers"),f=t("../sunburst/fx");e.exports=function(t,e,r,h,p){var d=p.barDifY,m=p.width,g=p.height,v=p.viewX,y=p.viewY,x=p.pathSlice,b=p.toMoveInsideSlice,_=p.strTransform,w=p.hasTransition,T=p.handleSlicesExit,k=p.makeUpdateSliceInterpolator,M=p.makeUpdateTextInterpolator,A={},S=t._fullLayout,E=e[0],L=E.trace,C=E.hierarchy,P=m/L._entryDepth,I=u.listPath(r.data,"id"),O=s(C.copy(),[m,g],{packing:"dice",pad:{inner:0,top:0,left:0,right:0,bottom:0}}).descendants();(O=O.filter((function(t){var e=I.indexOf(t.data.id);return-1!==e&&(t.x0=P*e,t.x1=P*(e+1),t.y0=d,t.y1=d+g,t.onPathbar=!0,!0)}))).reverse(),(h=h.data(O,u.getPtId)).enter().append("g").classed("pathbar",!0),T(h,!0,A,[m,g],x),h.order();var z=h;w&&(z=z.transition().each("end",(function(){var e=n.select(this);u.setSliceCursor(e,t,{hideOnRoot:!1,hideOnLeaves:!1,isTransitioning:!1})}))),z.each((function(s){s._hoverX=v(s.x1-Math.min(m,g)/2),s._hoverY=y(s.y1-g/2);var h=n.select(this),p=i.ensureSingle(h,"path","surface",(function(t){t.style("pointer-events","all")}));w?p.transition().attrTween("d",(function(t){var e=k(t,!0,A,[m,g]);return function(t){return x(e(t))}})):p.attr("d",x),h.call(f,r,t,e,{styleOne:l,eventDataKeys:c.eventDataKeys,transitionTime:c.CLICK_TRANSITION_TIME,transitionEasing:c.CLICK_TRANSITION_EASING}).call(u.setSliceCursor,t,{hideOnRoot:!1,hideOnLeaves:!1,isTransitioning:t._transitioning}),p.call(l,s,L,{hovered:!1}),s._text=(u.getPtLabel(s)||"").split("
    ").join(" ")||"";var d=i.ensureSingle(h,"g","slicetext"),T=i.ensureSingle(d,"text","",(function(t){t.attr("data-notex",1)})),E=i.ensureUniformFontSize(t,u.determineTextFont(L,s,S.font,{onPathbar:!0}));T.text(s._text||" ").classed("slicetext",!0).attr("text-anchor","start").call(a.font,E).call(o.convertToTspans,t),s.textBB=a.bBox(T.node()),s.transform=b(s,{fontSize:E.size,onPathbar:!0}),s.transform.fontSize=E.size,w?T.transition().attrTween("transform",(function(t){var e=M(t,!0,A,[m,g]);return function(t){return _(e(t))}})):T.attr("transform",_(s))}))}},{"../../components/drawing":680,"../../lib":795,"../../lib/svg_text_utils":820,"../sunburst/fx":1316,"../sunburst/helpers":1317,"./constants":1340,"./partition":1347,"./style":1349,"@plotly/d3":57}],1343:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("../../lib"),a=t("../../components/drawing"),o=t("../../lib/svg_text_utils"),s=t("./partition"),l=t("./style").styleOne,c=t("./constants"),u=t("../sunburst/helpers"),f=t("../sunburst/fx"),h=t("../sunburst/plot").formatSliceLabel;e.exports=function(t,e,r,p,d){var m=d.width,g=d.height,v=d.viewX,y=d.viewY,x=d.pathSlice,b=d.toMoveInsideSlice,_=d.strTransform,w=d.hasTransition,T=d.handleSlicesExit,k=d.makeUpdateSliceInterpolator,M=d.makeUpdateTextInterpolator,A=d.prevEntry,S=t._fullLayout,E=e[0].trace,L=-1!==E.textposition.indexOf("left"),C=-1!==E.textposition.indexOf("right"),P=-1!==E.textposition.indexOf("bottom"),I=!P&&!E.marker.pad.t||P&&!E.marker.pad.b,O=s(r,[m,g],{packing:E.tiling.packing,squarifyratio:E.tiling.squarifyratio,flipX:E.tiling.flip.indexOf("x")>-1,flipY:E.tiling.flip.indexOf("y")>-1,pad:{inner:E.tiling.pad,top:E.marker.pad.t,left:E.marker.pad.l,right:E.marker.pad.r,bottom:E.marker.pad.b}}).descendants(),z=1/0,D=-1/0;O.forEach((function(t){var e=t.depth;e>=E._maxDepth?(t.x0=t.x1=(t.x0+t.x1)/2,t.y0=t.y1=(t.y0+t.y1)/2):(z=Math.min(z,e),D=Math.max(D,e))})),p=p.data(O,u.getPtId),E._maxVisibleLayers=isFinite(D)?D-z+1:0,p.enter().append("g").classed("slice",!0),T(p,!1,{},[m,g],x),p.order();var R=null;if(w&&A){var F=u.getPtId(A);p.each((function(t){null===R&&u.getPtId(t)===F&&(R={x0:t.x0,x1:t.x1,y0:t.y0,y1:t.y1})}))}var B=function(){return R||{x0:0,x1:m,y0:0,y1:g}},N=p;return w&&(N=N.transition().each("end",(function(){var e=n.select(this);u.setSliceCursor(e,t,{hideOnRoot:!0,hideOnLeaves:!1,isTransitioning:!1})}))),N.each((function(s){var p=u.isHeader(s,E);s._hoverX=v(s.x1-E.marker.pad.r),s._hoverY=y(P?s.y1-E.marker.pad.b/2:s.y0+E.marker.pad.t/2);var d=n.select(this),T=i.ensureSingle(d,"path","surface",(function(t){t.style("pointer-events","all")}));w?T.transition().attrTween("d",(function(t){var e=k(t,!1,B(),[m,g]);return function(t){return x(e(t))}})):T.attr("d",x),d.call(f,r,t,e,{styleOne:l,eventDataKeys:c.eventDataKeys,transitionTime:c.CLICK_TRANSITION_TIME,transitionEasing:c.CLICK_TRANSITION_EASING}).call(u.setSliceCursor,t,{isTransitioning:t._transitioning}),T.call(l,s,E,{hovered:!1}),s.x0===s.x1||s.y0===s.y1?s._text="":s._text=p?I?"":u.getPtLabel(s)||"":h(s,r,E,e,S)||"";var A=i.ensureSingle(d,"g","slicetext"),O=i.ensureSingle(A,"text","",(function(t){t.attr("data-notex",1)})),z=i.ensureUniformFontSize(t,u.determineTextFont(E,s,S.font));O.text(s._text||" ").classed("slicetext",!0).attr("text-anchor",C?"end":L||p?"start":"middle").call(a.font,z).call(o.convertToTspans,t),s.textBB=a.bBox(O.node()),s.transform=b(s,{fontSize:z.size,isHeader:p}),s.transform.fontSize=z.size,w?O.transition().attrTween("transform",(function(t){var e=M(t,!1,B(),[m,g]);return function(t){return _(e(t))}})):O.attr("transform",_(s))})),R}},{"../../components/drawing":680,"../../lib":795,"../../lib/svg_text_utils":820,"../sunburst/fx":1316,"../sunburst/helpers":1317,"../sunburst/plot":1321,"./constants":1340,"./partition":1347,"./style":1349,"@plotly/d3":57}],1344:[function(t,e,r){"use strict";e.exports={moduleType:"trace",name:"treemap",basePlotModule:t("./base_plot"),categories:[],animatable:!0,attributes:t("./attributes"),layoutAttributes:t("./layout_attributes"),supplyDefaults:t("./defaults"),supplyLayoutDefaults:t("./layout_defaults"),calc:t("./calc").calc,crossTraceCalc:t("./calc").crossTraceCalc,plot:t("./plot"),style:t("./style").style,colorbar:t("../scatter/marker_colorbar"),meta:{}}},{"../scatter/marker_colorbar":1217,"./attributes":1337,"./base_plot":1338,"./calc":1339,"./defaults":1341,"./layout_attributes":1345,"./layout_defaults":1346,"./plot":1348,"./style":1349}],1345:[function(t,e,r){"use strict";e.exports={treemapcolorway:{valType:"colorlist",editType:"calc"},extendtreemapcolors:{valType:"boolean",dflt:!0,editType:"calc"}}},{}],1346:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./layout_attributes");e.exports=function(t,e){function r(r,a){return n.coerce(t,e,i,r,a)}r("treemapcolorway",e.colorway),r("extendtreemapcolors")}},{"../../lib":795,"./layout_attributes":1345}],1347:[function(t,e,r){"use strict";var n=t("d3-hierarchy");e.exports=function(t,e,r){var i,a=r.flipX,o=r.flipY,s="dice-slice"===r.packing,l=r.pad[o?"bottom":"top"],c=r.pad[a?"right":"left"],u=r.pad[a?"left":"right"],f=r.pad[o?"top":"bottom"];s&&(i=c,c=l,l=i,i=u,u=f,f=i);var h=n.treemap().tile(function(t,e){switch(t){case"squarify":return n.treemapSquarify.ratio(e);case"binary":return n.treemapBinary;case"dice":return n.treemapDice;case"slice":return n.treemapSlice;default:return n.treemapSliceDice}}(r.packing,r.squarifyratio)).paddingInner(r.pad.inner).paddingLeft(c).paddingRight(u).paddingTop(l).paddingBottom(f).size(s?[e[1],e[0]]:e)(t);return(s||a||o)&&function t(e,r,n){var i;n.swapXY&&(i=e.x0,e.x0=e.y0,e.y0=i,i=e.x1,e.x1=e.y1,e.y1=i);n.flipX&&(i=e.x0,e.x0=r[0]-e.x1,e.x1=r[0]-i);n.flipY&&(i=e.y0,e.y0=r[1]-e.y1,e.y1=r[1]-i);var a=e.children;if(a)for(var o=0;o-1?E+P:-(C+P):0,O={x0:L,x1:L,y0:I,y1:I+C},z=function(t,e,r){var n=g.tiling.pad,i=function(t){return t-n<=e.x0},a=function(t){return t+n>=e.x1},o=function(t){return t-n<=e.y0},s=function(t){return t+n>=e.y1};return{x0:i(t.x0-n)?0:a(t.x0-n)?r[0]:t.x0,x1:i(t.x1+n)?0:a(t.x1+n)?r[0]:t.x1,y0:o(t.y0-n)?0:s(t.y0-n)?r[1]:t.y0,y1:o(t.y1+n)?0:s(t.y1+n)?r[1]:t.y1}},D=null,R={},F={},B=null,N=function(t,e){return e?R[m(t)]:F[m(t)]},j=function(t,e,r,n){if(e)return R[m(v)]||O;var i=F[g.level]||r;return function(t){return t.data.depth-y.data.depth=(n-=v.r-o)){var y=(r+n)/2;r=y,n=y}var x;h?i<(x=a-v.b)&&x"===Q?(l.x-=a,c.x-=a,u.x-=a,f.x-=a):"/"===Q?(u.x-=a,f.x-=a,o.x-=a/2,s.x-=a/2):"\\"===Q?(l.x-=a,c.x-=a,o.x-=a/2,s.x-=a/2):"<"===Q&&(o.x-=a,s.x-=a),K(l),K(f),K(o),K(c),K(u),K(s),"M"+Z(l.x,l.y)+"L"+Z(c.x,c.y)+"L"+Z(s.x,s.y)+"L"+Z(u.x,u.y)+"L"+Z(f.x,f.y)+"L"+Z(o.x,o.y)+"Z"},toMoveInsideSlice:$,makeUpdateSliceInterpolator:et,makeUpdateTextInterpolator:rt,handleSlicesExit:nt,hasTransition:T,strTransform:it}):b.remove()}e.exports=function(t,e,r,a){var o,s,l=t._fullLayout,c=l._treemaplayer,h=!r;(u("treemap",l),(o=c.selectAll("g.trace.treemap").data(e,(function(t){return t[0].trace.uid}))).enter().append("g").classed("trace",!0).classed("treemap",!0),o.order(),!l.uniformtext.mode&&i.hasTransition(r))?(a&&(s=a()),n.transition().duration(r.duration).ease(r.easing).each("end",(function(){s&&s()})).each("interrupt",(function(){s&&s()})).each((function(){c.selectAll("g.trace").each((function(e){g(t,e,this,r)}))}))):(o.each((function(e){g(t,e,this,r)})),l.uniformtext.mode&&f(t,l._treemaplayer.selectAll(".trace"),"treemap"));h&&o.exit().remove()}},{"../../lib":795,"../bar/constants":935,"../bar/plot":944,"../bar/style":947,"../bar/uniform_text":949,"../sunburst/helpers":1317,"./constants":1340,"./draw_ancestors":1342,"./draw_descendants":1343,"@plotly/d3":57}],1349:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("../../components/color"),a=t("../../lib"),o=t("../sunburst/helpers"),s=t("../bar/uniform_text").resizeText;function l(t,e,r,n){var s,l,c=(n||{}).hovered,u=e.data.data,f=u.i,h=u.color,p=o.isHierarchyRoot(e),d=1;if(c)s=r._hovered.marker.line.color,l=r._hovered.marker.line.width;else if(p&&h===r.root.color)d=100,s="rgba(0,0,0,0)",l=0;else if(s=a.castOption(r,f,"marker.line.color")||i.defaultLine,l=a.castOption(r,f,"marker.line.width")||0,!r._hasColorscale&&!e.onPathbar){var m=r.marker.depthfade;if(m){var g,v=i.combine(i.addOpacity(r._backgroundColor,.75),h);if(!0===m){var y=o.getMaxDepth(r);g=isFinite(y)?o.isLeaf(e)?0:r._maxVisibleLayers-(e.data.depth-r._entryDepth):e.data.height+1}else g=e.data.depth-r._entryDepth,r._atRootLevel||g++;if(g>0)for(var x=0;x0){var x,b,_,w,T,k=t.xa,M=t.ya;"h"===p.orientation?(T=e,x="y",_=M,b="x",w=k):(T=r,x="x",_=k,b="y",w=M);var A=h[t.index];if(T>=A.span[0]&&T<=A.span[1]){var S=n.extendFlat({},t),E=w.c2p(T,!0),L=o.getKdeValue(A,p,T),C=o.getPositionOnKdePath(A,p,E),P=_._offset,I=_._length;S[x+"0"]=C[0],S[x+"1"]=C[1],S[b+"0"]=S[b+"1"]=E,S[b+"Label"]=b+": "+i.hoverLabelText(w,T,p[b+"hoverformat"])+", "+h[0].t.labels.kde+" "+L.toFixed(3),S.spikeDistance=y[0].spikeDistance;var O=x+"Spike";S[O]=y[0][O],y[0].spikeDistance=void 0,y[0][O]=void 0,S.hovertemplate=!1,v.push(S),(u={stroke:t.color})[x+"1"]=n.constrain(P+C[0],P,P+I),u[x+"2"]=n.constrain(P+C[1],P,P+I),u[b+"1"]=u[b+"2"]=w._offset+E}}m&&(v=v.concat(y))}-1!==d.indexOf("points")&&(c=a.hoverOnPoints(t,e,r));var z=f.selectAll(".violinline-"+p.uid).data(u?[0]:[]);return z.enter().append("line").classed("violinline-"+p.uid,!0).attr("stroke-width",1.5),z.exit().remove(),z.attr(u),"closest"===s?c?[c]:v:c?(v.push(c),v):v}},{"../../lib":795,"../../plots/cartesian/axes":845,"../box/hover":963,"./helpers":1354}],1356:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),layoutAttributes:t("./layout_attributes"),supplyDefaults:t("./defaults"),crossTraceDefaults:t("../box/defaults").crossTraceDefaults,supplyLayoutDefaults:t("./layout_defaults"),calc:t("./calc"),crossTraceCalc:t("./cross_trace_calc"),plot:t("./plot"),style:t("./style"),styleOnSelect:t("../scatter/style").styleOnSelect,hoverPoints:t("./hover"),selectPoints:t("../box/select"),moduleType:"trace",name:"violin",basePlotModule:t("../../plots/cartesian"),categories:["cartesian","svg","symbols","oriented","box-violin","showLegend","violinLayout","zoomScale"],meta:{}}},{"../../plots/cartesian":858,"../box/defaults":961,"../box/select":968,"../scatter/style":1223,"./attributes":1350,"./calc":1351,"./cross_trace_calc":1352,"./defaults":1353,"./hover":1355,"./layout_attributes":1357,"./layout_defaults":1358,"./plot":1359,"./style":1360}],1357:[function(t,e,r){"use strict";var n=t("../box/layout_attributes"),i=t("../../lib").extendFlat;e.exports={violinmode:i({},n.boxmode,{}),violingap:i({},n.boxgap,{}),violingroupgap:i({},n.boxgroupgap,{})}},{"../../lib":795,"../box/layout_attributes":965}],1358:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./layout_attributes"),a=t("../box/layout_defaults");e.exports=function(t,e,r){a._supply(t,e,r,(function(r,a){return n.coerce(t,e,i,r,a)}),"violin")}},{"../../lib":795,"../box/layout_defaults":966,"./layout_attributes":1357}],1359:[function(t,e,r){"use strict";var n=t("@plotly/d3"),i=t("../../lib"),a=t("../../components/drawing"),o=t("../box/plot"),s=t("../scatter/line_points"),l=t("./helpers");e.exports=function(t,e,r,c){var u=t._fullLayout,f=e.xaxis,h=e.yaxis;function p(t){var e=s(t,{xaxis:f,yaxis:h,connectGaps:!0,baseTolerance:.75,shape:"spline",simplify:!0,linearized:!0});return a.smoothopen(e[0],1)}i.makeTraceGroups(c,r,"trace violins").each((function(t){var r=n.select(this),a=t[0],s=a.t,c=a.trace;if(!0!==c.visible||s.empty)r.remove();else{var d=s.bPos,m=s.bdPos,g=e[s.valLetter+"axis"],v=e[s.posLetter+"axis"],y="both"===c.side,x=y||"positive"===c.side,b=y||"negative"===c.side,_=r.selectAll("path.violin").data(i.identity);_.enter().append("path").style("vector-effect","non-scaling-stroke").attr("class","violin"),_.exit().remove(),_.each((function(t){var e,r,i,a,o,l,f,h,_=n.select(this),w=t.density,T=w.length,k=v.c2l(t.pos+d,!0),M=v.l2p(k);if(c.width)e=s.maxKDE/m;else{var A=u._violinScaleGroupStats[c.scalegroup];e="count"===c.scalemode?A.maxKDE/m*(A.maxCount/t.pts.length):A.maxKDE/m}if(x){for(f=new Array(T),o=0;o")),u.color=function(t,e){var r=t[e.dir].marker,n=r.color,a=r.line.color,o=r.line.width;if(i(n))return n;if(i(a)&&o)return a}(h,g),[u]}function k(t){return n(m,t,h[d+"hoverformat"])}}},{"../../components/color":658,"../../constants/delta.js":765,"../../plots/cartesian/axes":845,"../bar/hover":940}],1372:[function(t,e,r){"use strict";e.exports={attributes:t("./attributes"),layoutAttributes:t("./layout_attributes"),supplyDefaults:t("./defaults").supplyDefaults,crossTraceDefaults:t("./defaults").crossTraceDefaults,supplyLayoutDefaults:t("./layout_defaults"),calc:t("./calc"),crossTraceCalc:t("./cross_trace_calc"),plot:t("./plot"),style:t("./style").style,hoverPoints:t("./hover"),eventData:t("./event_data"),selectPoints:t("../bar/select"),moduleType:"trace",name:"waterfall",basePlotModule:t("../../plots/cartesian"),categories:["bar-like","cartesian","svg","oriented","showLegend","zoomScale"],meta:{}}},{"../../plots/cartesian":858,"../bar/select":945,"./attributes":1365,"./calc":1366,"./cross_trace_calc":1368,"./defaults":1369,"./event_data":1370,"./hover":1371,"./layout_attributes":1373,"./layout_defaults":1374,"./plot":1375,"./style":1376}],1373:[function(t,e,r){"use strict";e.exports={waterfallmode:{valType:"enumerated",values:["group","overlay"],dflt:"group",editType:"calc"},waterfallgap:{valType:"number",min:0,max:1,editType:"calc"},waterfallgroupgap:{valType:"number",min:0,max:1,dflt:0,editType:"calc"}}},{}],1374:[function(t,e,r){"use strict";var n=t("../../lib"),i=t("./layout_attributes");e.exports=function(t,e,r){var a=!1;function o(r,a){return n.coerce(t,e,i,r,a)}for(var s=0;s0&&(g+=h?"M"+f[0]+","+d[1]+"V"+d[0]:"M"+f[1]+","+d[0]+"H"+f[0]),"between"!==p&&(r.isSum||s path").each((function(t){if(!t.isBlank){var e=s[t.dir].marker;n.select(this).call(a.fill,e.color).call(a.stroke,e.line.color).call(i.dashLine,e.line.dash,e.line.width).style("opacity",s.selectedpoints&&!t.selected?o:1)}})),c(r,s,t),r.selectAll(".lines").each((function(){var t=s.connector.line;i.lineGroupStyle(n.select(this).selectAll("path"),t.width,t.color,t.dash)}))}))}}},{"../../components/color":658,"../../components/drawing":680,"../../constants/interactions":770,"../bar/style":947,"../bar/uniform_text":949,"@plotly/d3":57}],1377:[function(t,e,r){"use strict";var n=t("../plots/cartesian/axes"),i=t("../lib"),a=t("../plot_api/plot_schema"),o=t("./helpers").pointsAccessorFunction,s=t("../constants/numerical").BADNUM;r.moduleType="transform",r.name="aggregate";var l=r.attributes={enabled:{valType:"boolean",dflt:!0,editType:"calc"},groups:{valType:"string",strict:!0,noBlank:!0,arrayOk:!0,dflt:"x",editType:"calc"},aggregations:{_isLinkedToArray:"aggregation",target:{valType:"string",editType:"calc"},func:{valType:"enumerated",values:["count","sum","avg","median","mode","rms","stddev","min","max","first","last","change","range"],dflt:"first",editType:"calc"},funcmode:{valType:"enumerated",values:["sample","population"],dflt:"sample",editType:"calc"},enabled:{valType:"boolean",dflt:!0,editType:"calc"},editType:"calc"},editType:"calc"},c=l.aggregations;function u(t,e,r,a){if(a.enabled){for(var o=a.target,l=i.nestedProperty(e,o),c=l.get(),u=function(t,e){var r=t.func,n=e.d2c,a=e.c2d;switch(r){case"count":return f;case"first":return h;case"last":return p;case"sum":return function(t,e){for(var r=0,i=0;ii&&(i=u,o=c)}}return i?a(o):s};case"rms":return function(t,e){for(var r=0,i=0,o=0;o":return function(t){return h(t)>s};case">=":return function(t){return h(t)>=s};case"[]":return function(t){var e=h(t);return e>=s[0]&&e<=s[1]};case"()":return function(t){var e=h(t);return e>s[0]&&e=s[0]&&es[0]&&e<=s[1]};case"][":return function(t){var e=h(t);return e<=s[0]||e>=s[1]};case")(":return function(t){var e=h(t);return es[1]};case"](":return function(t){var e=h(t);return e<=s[0]||e>s[1]};case")[":return function(t){var e=h(t);return e=s[1]};case"{}":return function(t){return-1!==s.indexOf(h(t))};case"}{":return function(t){return-1===s.indexOf(h(t))}}}(r,a.getDataToCoordFunc(t,e,s,i),h),x={},b={},_=0;d?(g=function(t){x[t.astr]=n.extendDeep([],t.get()),t.set(new Array(f))},v=function(t,e){var r=x[t.astr][e];t.get()[e]=r}):(g=function(t){x[t.astr]=n.extendDeep([],t.get()),t.set([])},v=function(t,e){var r=x[t.astr][e];t.get().push(r)}),k(g);for(var w=o(e.transforms,r),T=0;T1?"%{group} (%{trace})":"%{group}");var l=t.styles,c=o.styles=[];if(l)for(a=0;a3 will show the - whole name if it is less than that many - characters, but if it is longer, will truncate - to `namelength - 3` characters and add an - ellipsis. - namelengthsrc - Sets the source reference on Chart Studio Cloud - for namelength . -""", - ), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/_ids.py b/packages/python/plotly/plotly/validators/area/_ids.py deleted file mode 100644 index ba64979793..0000000000 --- a/packages/python/plotly/plotly/validators/area/_ids.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class IdsValidator(_plotly_utils.basevalidators.DataArrayValidator): - def __init__(self, plotly_name="ids", parent_name="area", **kwargs): - super(IdsValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/_idssrc.py b/packages/python/plotly/plotly/validators/area/_idssrc.py deleted file mode 100644 index 57815552a4..0000000000 --- a/packages/python/plotly/plotly/validators/area/_idssrc.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class IdssrcValidator(_plotly_utils.basevalidators.SrcValidator): - def __init__(self, plotly_name="idssrc", parent_name="area", **kwargs): - super(IdssrcValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/_legendgroup.py b/packages/python/plotly/plotly/validators/area/_legendgroup.py deleted file mode 100644 index c0100f73e2..0000000000 --- a/packages/python/plotly/plotly/validators/area/_legendgroup.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class LegendgroupValidator(_plotly_utils.basevalidators.StringValidator): - def __init__(self, plotly_name="legendgroup", parent_name="area", **kwargs): - super(LegendgroupValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/_marker.py b/packages/python/plotly/plotly/validators/area/_marker.py deleted file mode 100644 index d7980e8fd8..0000000000 --- a/packages/python/plotly/plotly/validators/area/_marker.py +++ /dev/null @@ -1,52 +0,0 @@ -import _plotly_utils.basevalidators - - -class MarkerValidator(_plotly_utils.basevalidators.CompoundValidator): - def __init__(self, plotly_name="marker", parent_name="area", **kwargs): - super(MarkerValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - data_class_str=kwargs.pop("data_class_str", "Marker"), - data_docs=kwargs.pop( - "data_docs", - """ - color - Area traces are deprecated! Please switch to - the "barpolar" trace type. Sets themarkercolor. - It accepts either a specific color or an array - of numbers that are mapped to the colorscale - relative to the max and min values of the array - or relative to `marker.cmin` and `marker.cmax` - if set. - colorsrc - Sets the source reference on Chart Studio Cloud - for color . - opacity - Area traces are deprecated! Please switch to - the "barpolar" trace type. Sets the marker - opacity. - opacitysrc - Sets the source reference on Chart Studio Cloud - for opacity . - size - Area traces are deprecated! Please switch to - the "barpolar" trace type. Sets the marker size - (in px). - sizesrc - Sets the source reference on Chart Studio Cloud - for size . - symbol - Area traces are deprecated! Please switch to - the "barpolar" trace type. Sets the marker - symbol type. Adding 100 is equivalent to - appending "-open" to a symbol name. Adding 200 - is equivalent to appending "-dot" to a symbol - name. Adding 300 is equivalent to appending - "-open-dot" or "dot-open" to a symbol name. - symbolsrc - Sets the source reference on Chart Studio Cloud - for symbol . -""", - ), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/_meta.py b/packages/python/plotly/plotly/validators/area/_meta.py deleted file mode 100644 index 2079d6b704..0000000000 --- a/packages/python/plotly/plotly/validators/area/_meta.py +++ /dev/null @@ -1,13 +0,0 @@ -import _plotly_utils.basevalidators - - -class MetaValidator(_plotly_utils.basevalidators.AnyValidator): - def __init__(self, plotly_name="meta", parent_name="area", **kwargs): - super(MetaValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - array_ok=kwargs.pop("array_ok", True), - edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/_metasrc.py b/packages/python/plotly/plotly/validators/area/_metasrc.py deleted file mode 100644 index 867aacba9b..0000000000 --- a/packages/python/plotly/plotly/validators/area/_metasrc.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class MetasrcValidator(_plotly_utils.basevalidators.SrcValidator): - def __init__(self, plotly_name="metasrc", parent_name="area", **kwargs): - super(MetasrcValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/_name.py b/packages/python/plotly/plotly/validators/area/_name.py deleted file mode 100644 index 01af0f08da..0000000000 --- a/packages/python/plotly/plotly/validators/area/_name.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class NameValidator(_plotly_utils.basevalidators.StringValidator): - def __init__(self, plotly_name="name", parent_name="area", **kwargs): - super(NameValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/_opacity.py b/packages/python/plotly/plotly/validators/area/_opacity.py deleted file mode 100644 index 7ad96a2b6d..0000000000 --- a/packages/python/plotly/plotly/validators/area/_opacity.py +++ /dev/null @@ -1,14 +0,0 @@ -import _plotly_utils.basevalidators - - -class OpacityValidator(_plotly_utils.basevalidators.NumberValidator): - def __init__(self, plotly_name="opacity", parent_name="area", **kwargs): - super(OpacityValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "style"), - max=kwargs.pop("max", 1), - min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/_r.py b/packages/python/plotly/plotly/validators/area/_r.py deleted file mode 100644 index 67f0e5ac4d..0000000000 --- a/packages/python/plotly/plotly/validators/area/_r.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class RValidator(_plotly_utils.basevalidators.DataArrayValidator): - def __init__(self, plotly_name="r", parent_name="area", **kwargs): - super(RValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/_rsrc.py b/packages/python/plotly/plotly/validators/area/_rsrc.py deleted file mode 100644 index 09bdd57b8d..0000000000 --- a/packages/python/plotly/plotly/validators/area/_rsrc.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class RsrcValidator(_plotly_utils.basevalidators.SrcValidator): - def __init__(self, plotly_name="rsrc", parent_name="area", **kwargs): - super(RsrcValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/_showlegend.py b/packages/python/plotly/plotly/validators/area/_showlegend.py deleted file mode 100644 index 1a4cdfac3f..0000000000 --- a/packages/python/plotly/plotly/validators/area/_showlegend.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class ShowlegendValidator(_plotly_utils.basevalidators.BooleanValidator): - def __init__(self, plotly_name="showlegend", parent_name="area", **kwargs): - super(ShowlegendValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/_stream.py b/packages/python/plotly/plotly/validators/area/_stream.py deleted file mode 100644 index 6fd5712fb4..0000000000 --- a/packages/python/plotly/plotly/validators/area/_stream.py +++ /dev/null @@ -1,25 +0,0 @@ -import _plotly_utils.basevalidators - - -class StreamValidator(_plotly_utils.basevalidators.CompoundValidator): - def __init__(self, plotly_name="stream", parent_name="area", **kwargs): - super(StreamValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - data_class_str=kwargs.pop("data_class_str", "Stream"), - data_docs=kwargs.pop( - "data_docs", - """ - maxpoints - Sets the maximum number of points to keep on - the plots from an incoming stream. If - `maxpoints` is set to 50, only the newest 50 - points will be displayed on the plot. - token - The stream id number links a data trace on a - plot with a stream. See https://chart- - studio.plotly.com/settings for more details. -""", - ), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/_t.py b/packages/python/plotly/plotly/validators/area/_t.py deleted file mode 100644 index 6fca363741..0000000000 --- a/packages/python/plotly/plotly/validators/area/_t.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class TValidator(_plotly_utils.basevalidators.DataArrayValidator): - def __init__(self, plotly_name="t", parent_name="area", **kwargs): - super(TValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/_tsrc.py b/packages/python/plotly/plotly/validators/area/_tsrc.py deleted file mode 100644 index 5e6e929d52..0000000000 --- a/packages/python/plotly/plotly/validators/area/_tsrc.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class TsrcValidator(_plotly_utils.basevalidators.SrcValidator): - def __init__(self, plotly_name="tsrc", parent_name="area", **kwargs): - super(TsrcValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/_uid.py b/packages/python/plotly/plotly/validators/area/_uid.py deleted file mode 100644 index 867610ed6e..0000000000 --- a/packages/python/plotly/plotly/validators/area/_uid.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class UidValidator(_plotly_utils.basevalidators.StringValidator): - def __init__(self, plotly_name="uid", parent_name="area", **kwargs): - super(UidValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/_uirevision.py b/packages/python/plotly/plotly/validators/area/_uirevision.py deleted file mode 100644 index 7b29f0f49c..0000000000 --- a/packages/python/plotly/plotly/validators/area/_uirevision.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class UirevisionValidator(_plotly_utils.basevalidators.AnyValidator): - def __init__(self, plotly_name="uirevision", parent_name="area", **kwargs): - super(UirevisionValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/_visible.py b/packages/python/plotly/plotly/validators/area/_visible.py deleted file mode 100644 index cfeaf72115..0000000000 --- a/packages/python/plotly/plotly/validators/area/_visible.py +++ /dev/null @@ -1,13 +0,0 @@ -import _plotly_utils.basevalidators - - -class VisibleValidator(_plotly_utils.basevalidators.EnumeratedValidator): - def __init__(self, plotly_name="visible", parent_name="area", **kwargs): - super(VisibleValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), - values=kwargs.pop("values", [True, False, "legendonly"]), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/hoverlabel/__init__.py b/packages/python/plotly/plotly/validators/area/hoverlabel/__init__.py deleted file mode 100644 index cd92e82553..0000000000 --- a/packages/python/plotly/plotly/validators/area/hoverlabel/__init__.py +++ /dev/null @@ -1,30 +0,0 @@ -import sys - -if sys.version_info < (3, 7): - from ._namelengthsrc import NamelengthsrcValidator - from ._namelength import NamelengthValidator - from ._font import FontValidator - from ._bordercolorsrc import BordercolorsrcValidator - from ._bordercolor import BordercolorValidator - from ._bgcolorsrc import BgcolorsrcValidator - from ._bgcolor import BgcolorValidator - from ._alignsrc import AlignsrcValidator - from ._align import AlignValidator -else: - from _plotly_utils.importers import relative_import - - __all__, __getattr__, __dir__ = relative_import( - __name__, - [], - [ - "._namelengthsrc.NamelengthsrcValidator", - "._namelength.NamelengthValidator", - "._font.FontValidator", - "._bordercolorsrc.BordercolorsrcValidator", - "._bordercolor.BordercolorValidator", - "._bgcolorsrc.BgcolorsrcValidator", - "._bgcolor.BgcolorValidator", - "._alignsrc.AlignsrcValidator", - "._align.AlignValidator", - ], - ) diff --git a/packages/python/plotly/plotly/validators/area/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/area/hoverlabel/_align.py deleted file mode 100644 index 630c6e63af..0000000000 --- a/packages/python/plotly/plotly/validators/area/hoverlabel/_align.py +++ /dev/null @@ -1,14 +0,0 @@ -import _plotly_utils.basevalidators - - -class AlignValidator(_plotly_utils.basevalidators.EnumeratedValidator): - def __init__(self, plotly_name="align", parent_name="area.hoverlabel", **kwargs): - super(AlignValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - array_ok=kwargs.pop("array_ok", True), - edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), - values=kwargs.pop("values", ["left", "right", "auto"]), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/area/hoverlabel/_alignsrc.py deleted file mode 100644 index dd318be04b..0000000000 --- a/packages/python/plotly/plotly/validators/area/hoverlabel/_alignsrc.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class AlignsrcValidator(_plotly_utils.basevalidators.SrcValidator): - def __init__(self, plotly_name="alignsrc", parent_name="area.hoverlabel", **kwargs): - super(AlignsrcValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/area/hoverlabel/_bordercolor.py deleted file mode 100644 index 4a72989d61..0000000000 --- a/packages/python/plotly/plotly/validators/area/hoverlabel/_bordercolor.py +++ /dev/null @@ -1,15 +0,0 @@ -import _plotly_utils.basevalidators - - -class BordercolorValidator(_plotly_utils.basevalidators.ColorValidator): - def __init__( - self, plotly_name="bordercolor", parent_name="area.hoverlabel", **kwargs - ): - super(BordercolorValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - array_ok=kwargs.pop("array_ok", True), - edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/area/hoverlabel/_bordercolorsrc.py deleted file mode 100644 index 475444c8d7..0000000000 --- a/packages/python/plotly/plotly/validators/area/hoverlabel/_bordercolorsrc.py +++ /dev/null @@ -1,14 +0,0 @@ -import _plotly_utils.basevalidators - - -class BordercolorsrcValidator(_plotly_utils.basevalidators.SrcValidator): - def __init__( - self, plotly_name="bordercolorsrc", parent_name="area.hoverlabel", **kwargs - ): - super(BordercolorsrcValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/hoverlabel/_font.py b/packages/python/plotly/plotly/validators/area/hoverlabel/_font.py deleted file mode 100644 index 6b58ea61b6..0000000000 --- a/packages/python/plotly/plotly/validators/area/hoverlabel/_font.py +++ /dev/null @@ -1,46 +0,0 @@ -import _plotly_utils.basevalidators - - -class FontValidator(_plotly_utils.basevalidators.CompoundValidator): - def __init__(self, plotly_name="font", parent_name="area.hoverlabel", **kwargs): - super(FontValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - data_class_str=kwargs.pop("data_class_str", "Font"), - data_docs=kwargs.pop( - "data_docs", - """ - color - - colorsrc - Sets the source reference on Chart Studio Cloud - for color . - family - HTML font family - the typeface that will be - applied by the web browser. The web browser - will only be able to apply a font if it is - available on the system which it operates. - Provide multiple font families, separated by - commas, to indicate the preference in which to - apply fonts if they aren't available on the - system. The Chart Studio Cloud (at - https://chart-studio.plotly.com or on-premise) - generates images on a server, where only a - select number of fonts are installed and - supported. These include "Arial", "Balto", - "Courier New", "Droid Sans",, "Droid Serif", - "Droid Sans Mono", "Gravitas One", "Old - Standard TT", "Open Sans", "Overpass", "PT Sans - Narrow", "Raleway", "Times New Roman". - familysrc - Sets the source reference on Chart Studio Cloud - for family . - size - - sizesrc - Sets the source reference on Chart Studio Cloud - for size . -""", - ), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/area/hoverlabel/_namelength.py deleted file mode 100644 index 3465ed6af2..0000000000 --- a/packages/python/plotly/plotly/validators/area/hoverlabel/_namelength.py +++ /dev/null @@ -1,16 +0,0 @@ -import _plotly_utils.basevalidators - - -class NamelengthValidator(_plotly_utils.basevalidators.IntegerValidator): - def __init__( - self, plotly_name="namelength", parent_name="area.hoverlabel", **kwargs - ): - super(NamelengthValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - array_ok=kwargs.pop("array_ok", True), - edit_type=kwargs.pop("edit_type", "none"), - min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/area/hoverlabel/_namelengthsrc.py deleted file mode 100644 index 1f6931e2d9..0000000000 --- a/packages/python/plotly/plotly/validators/area/hoverlabel/_namelengthsrc.py +++ /dev/null @@ -1,14 +0,0 @@ -import _plotly_utils.basevalidators - - -class NamelengthsrcValidator(_plotly_utils.basevalidators.SrcValidator): - def __init__( - self, plotly_name="namelengthsrc", parent_name="area.hoverlabel", **kwargs - ): - super(NamelengthsrcValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/hoverlabel/font/__init__.py b/packages/python/plotly/plotly/validators/area/hoverlabel/font/__init__.py deleted file mode 100644 index d333cdc39e..0000000000 --- a/packages/python/plotly/plotly/validators/area/hoverlabel/font/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -import sys - -if sys.version_info < (3, 7): - from ._sizesrc import SizesrcValidator - from ._size import SizeValidator - from ._familysrc import FamilysrcValidator - from ._family import FamilyValidator - from ._colorsrc import ColorsrcValidator - from ._color import ColorValidator -else: - from _plotly_utils.importers import relative_import - - __all__, __getattr__, __dir__ = relative_import( - __name__, - [], - [ - "._sizesrc.SizesrcValidator", - "._size.SizeValidator", - "._familysrc.FamilysrcValidator", - "._family.FamilyValidator", - "._colorsrc.ColorsrcValidator", - "._color.ColorValidator", - ], - ) diff --git a/packages/python/plotly/plotly/validators/area/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/area/hoverlabel/font/_color.py deleted file mode 100644 index a01987beeb..0000000000 --- a/packages/python/plotly/plotly/validators/area/hoverlabel/font/_color.py +++ /dev/null @@ -1,15 +0,0 @@ -import _plotly_utils.basevalidators - - -class ColorValidator(_plotly_utils.basevalidators.ColorValidator): - def __init__( - self, plotly_name="color", parent_name="area.hoverlabel.font", **kwargs - ): - super(ColorValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - array_ok=kwargs.pop("array_ok", True), - edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/area/hoverlabel/font/_colorsrc.py deleted file mode 100644 index e821aa72d7..0000000000 --- a/packages/python/plotly/plotly/validators/area/hoverlabel/font/_colorsrc.py +++ /dev/null @@ -1,14 +0,0 @@ -import _plotly_utils.basevalidators - - -class ColorsrcValidator(_plotly_utils.basevalidators.SrcValidator): - def __init__( - self, plotly_name="colorsrc", parent_name="area.hoverlabel.font", **kwargs - ): - super(ColorsrcValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/area/hoverlabel/font/_family.py deleted file mode 100644 index 2ce83b4ae5..0000000000 --- a/packages/python/plotly/plotly/validators/area/hoverlabel/font/_family.py +++ /dev/null @@ -1,17 +0,0 @@ -import _plotly_utils.basevalidators - - -class FamilyValidator(_plotly_utils.basevalidators.StringValidator): - def __init__( - self, plotly_name="family", parent_name="area.hoverlabel.font", **kwargs - ): - super(FamilyValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - array_ok=kwargs.pop("array_ok", True), - edit_type=kwargs.pop("edit_type", "none"), - no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), - strict=kwargs.pop("strict", True), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/area/hoverlabel/font/_familysrc.py deleted file mode 100644 index 3913e73b5b..0000000000 --- a/packages/python/plotly/plotly/validators/area/hoverlabel/font/_familysrc.py +++ /dev/null @@ -1,14 +0,0 @@ -import _plotly_utils.basevalidators - - -class FamilysrcValidator(_plotly_utils.basevalidators.SrcValidator): - def __init__( - self, plotly_name="familysrc", parent_name="area.hoverlabel.font", **kwargs - ): - super(FamilysrcValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/marker/__init__.py b/packages/python/plotly/plotly/validators/area/marker/__init__.py deleted file mode 100644 index b697000bb1..0000000000 --- a/packages/python/plotly/plotly/validators/area/marker/__init__.py +++ /dev/null @@ -1,28 +0,0 @@ -import sys - -if sys.version_info < (3, 7): - from ._symbolsrc import SymbolsrcValidator - from ._symbol import SymbolValidator - from ._sizesrc import SizesrcValidator - from ._size import SizeValidator - from ._opacitysrc import OpacitysrcValidator - from ._opacity import OpacityValidator - from ._colorsrc import ColorsrcValidator - from ._color import ColorValidator -else: - from _plotly_utils.importers import relative_import - - __all__, __getattr__, __dir__ = relative_import( - __name__, - [], - [ - "._symbolsrc.SymbolsrcValidator", - "._symbol.SymbolValidator", - "._sizesrc.SizesrcValidator", - "._size.SizeValidator", - "._opacitysrc.OpacitysrcValidator", - "._opacity.OpacityValidator", - "._colorsrc.ColorsrcValidator", - "._color.ColorValidator", - ], - ) diff --git a/packages/python/plotly/plotly/validators/area/marker/_colorsrc.py b/packages/python/plotly/plotly/validators/area/marker/_colorsrc.py deleted file mode 100644 index e4cfa8f22b..0000000000 --- a/packages/python/plotly/plotly/validators/area/marker/_colorsrc.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class ColorsrcValidator(_plotly_utils.basevalidators.SrcValidator): - def __init__(self, plotly_name="colorsrc", parent_name="area.marker", **kwargs): - super(ColorsrcValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/marker/_opacitysrc.py b/packages/python/plotly/plotly/validators/area/marker/_opacitysrc.py deleted file mode 100644 index f59451e679..0000000000 --- a/packages/python/plotly/plotly/validators/area/marker/_opacitysrc.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class OpacitysrcValidator(_plotly_utils.basevalidators.SrcValidator): - def __init__(self, plotly_name="opacitysrc", parent_name="area.marker", **kwargs): - super(OpacitysrcValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/marker/_symbol.py b/packages/python/plotly/plotly/validators/area/marker/_symbol.py deleted file mode 100644 index 3fd285b64b..0000000000 --- a/packages/python/plotly/plotly/validators/area/marker/_symbol.py +++ /dev/null @@ -1,492 +0,0 @@ -import _plotly_utils.basevalidators - - -class SymbolValidator(_plotly_utils.basevalidators.EnumeratedValidator): - def __init__(self, plotly_name="symbol", parent_name="area.marker", **kwargs): - super(SymbolValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - array_ok=kwargs.pop("array_ok", True), - edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), - values=kwargs.pop( - "values", - [ - 0, - "0", - "circle", - 100, - "100", - "circle-open", - 200, - "200", - "circle-dot", - 300, - "300", - "circle-open-dot", - 1, - "1", - "square", - 101, - "101", - "square-open", - 201, - "201", - "square-dot", - 301, - "301", - "square-open-dot", - 2, - "2", - "diamond", - 102, - "102", - "diamond-open", - 202, - "202", - "diamond-dot", - 302, - "302", - "diamond-open-dot", - 3, - "3", - "cross", - 103, - "103", - "cross-open", - 203, - "203", - "cross-dot", - 303, - "303", - "cross-open-dot", - 4, - "4", - "x", - 104, - "104", - "x-open", - 204, - "204", - "x-dot", - 304, - "304", - "x-open-dot", - 5, - "5", - "triangle-up", - 105, - "105", - "triangle-up-open", - 205, - "205", - "triangle-up-dot", - 305, - "305", - "triangle-up-open-dot", - 6, - "6", - "triangle-down", - 106, - "106", - "triangle-down-open", - 206, - "206", - "triangle-down-dot", - 306, - "306", - "triangle-down-open-dot", - 7, - "7", - "triangle-left", - 107, - "107", - "triangle-left-open", - 207, - "207", - "triangle-left-dot", - 307, - "307", - "triangle-left-open-dot", - 8, - "8", - "triangle-right", - 108, - "108", - "triangle-right-open", - 208, - "208", - "triangle-right-dot", - 308, - "308", - "triangle-right-open-dot", - 9, - "9", - "triangle-ne", - 109, - "109", - "triangle-ne-open", - 209, - "209", - "triangle-ne-dot", - 309, - "309", - "triangle-ne-open-dot", - 10, - "10", - "triangle-se", - 110, - "110", - "triangle-se-open", - 210, - "210", - "triangle-se-dot", - 310, - "310", - "triangle-se-open-dot", - 11, - "11", - "triangle-sw", - 111, - "111", - "triangle-sw-open", - 211, - "211", - "triangle-sw-dot", - 311, - "311", - "triangle-sw-open-dot", - 12, - "12", - "triangle-nw", - 112, - "112", - "triangle-nw-open", - 212, - "212", - "triangle-nw-dot", - 312, - "312", - "triangle-nw-open-dot", - 13, - "13", - "pentagon", - 113, - "113", - "pentagon-open", - 213, - "213", - "pentagon-dot", - 313, - "313", - "pentagon-open-dot", - 14, - "14", - "hexagon", - 114, - "114", - "hexagon-open", - 214, - "214", - "hexagon-dot", - 314, - "314", - "hexagon-open-dot", - 15, - "15", - "hexagon2", - 115, - "115", - "hexagon2-open", - 215, - "215", - "hexagon2-dot", - 315, - "315", - "hexagon2-open-dot", - 16, - "16", - "octagon", - 116, - "116", - "octagon-open", - 216, - "216", - "octagon-dot", - 316, - "316", - "octagon-open-dot", - 17, - "17", - "star", - 117, - "117", - "star-open", - 217, - "217", - "star-dot", - 317, - "317", - "star-open-dot", - 18, - "18", - "hexagram", - 118, - "118", - "hexagram-open", - 218, - "218", - "hexagram-dot", - 318, - "318", - "hexagram-open-dot", - 19, - "19", - "star-triangle-up", - 119, - "119", - "star-triangle-up-open", - 219, - "219", - "star-triangle-up-dot", - 319, - "319", - "star-triangle-up-open-dot", - 20, - "20", - "star-triangle-down", - 120, - "120", - "star-triangle-down-open", - 220, - "220", - "star-triangle-down-dot", - 320, - "320", - "star-triangle-down-open-dot", - 21, - "21", - "star-square", - 121, - "121", - "star-square-open", - 221, - "221", - "star-square-dot", - 321, - "321", - "star-square-open-dot", - 22, - "22", - "star-diamond", - 122, - "122", - "star-diamond-open", - 222, - "222", - "star-diamond-dot", - 322, - "322", - "star-diamond-open-dot", - 23, - "23", - "diamond-tall", - 123, - "123", - "diamond-tall-open", - 223, - "223", - "diamond-tall-dot", - 323, - "323", - "diamond-tall-open-dot", - 24, - "24", - "diamond-wide", - 124, - "124", - "diamond-wide-open", - 224, - "224", - "diamond-wide-dot", - 324, - "324", - "diamond-wide-open-dot", - 25, - "25", - "hourglass", - 125, - "125", - "hourglass-open", - 26, - "26", - "bowtie", - 126, - "126", - "bowtie-open", - 27, - "27", - "circle-cross", - 127, - "127", - "circle-cross-open", - 28, - "28", - "circle-x", - 128, - "128", - "circle-x-open", - 29, - "29", - "square-cross", - 129, - "129", - "square-cross-open", - 30, - "30", - "square-x", - 130, - "130", - "square-x-open", - 31, - "31", - "diamond-cross", - 131, - "131", - "diamond-cross-open", - 32, - "32", - "diamond-x", - 132, - "132", - "diamond-x-open", - 33, - "33", - "cross-thin", - 133, - "133", - "cross-thin-open", - 34, - "34", - "x-thin", - 134, - "134", - "x-thin-open", - 35, - "35", - "asterisk", - 135, - "135", - "asterisk-open", - 36, - "36", - "hash", - 136, - "136", - "hash-open", - 236, - "236", - "hash-dot", - 336, - "336", - "hash-open-dot", - 37, - "37", - "y-up", - 137, - "137", - "y-up-open", - 38, - "38", - "y-down", - 138, - "138", - "y-down-open", - 39, - "39", - "y-left", - 139, - "139", - "y-left-open", - 40, - "40", - "y-right", - 140, - "140", - "y-right-open", - 41, - "41", - "line-ew", - 141, - "141", - "line-ew-open", - 42, - "42", - "line-ns", - 142, - "142", - "line-ns-open", - 43, - "43", - "line-ne", - 143, - "143", - "line-ne-open", - 44, - "44", - "line-nw", - 144, - "144", - "line-nw-open", - 45, - "45", - "arrow-up", - 145, - "145", - "arrow-up-open", - 46, - "46", - "arrow-down", - 146, - "146", - "arrow-down-open", - 47, - "47", - "arrow-left", - 147, - "147", - "arrow-left-open", - 48, - "48", - "arrow-right", - 148, - "148", - "arrow-right-open", - 49, - "49", - "arrow-bar-up", - 149, - "149", - "arrow-bar-up-open", - 50, - "50", - "arrow-bar-down", - 150, - "150", - "arrow-bar-down-open", - 51, - "51", - "arrow-bar-left", - 151, - "151", - "arrow-bar-left-open", - 52, - "52", - "arrow-bar-right", - 152, - "152", - "arrow-bar-right-open", - ], - ), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/marker/_symbolsrc.py b/packages/python/plotly/plotly/validators/area/marker/_symbolsrc.py deleted file mode 100644 index 5fa367a004..0000000000 --- a/packages/python/plotly/plotly/validators/area/marker/_symbolsrc.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class SymbolsrcValidator(_plotly_utils.basevalidators.SrcValidator): - def __init__(self, plotly_name="symbolsrc", parent_name="area.marker", **kwargs): - super(SymbolsrcValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/stream/__init__.py b/packages/python/plotly/plotly/validators/area/stream/__init__.py deleted file mode 100644 index db8027ed80..0000000000 --- a/packages/python/plotly/plotly/validators/area/stream/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -import sys - -if sys.version_info < (3, 7): - from ._token import TokenValidator - from ._maxpoints import MaxpointsValidator -else: - from _plotly_utils.importers import relative_import - - __all__, __getattr__, __dir__ = relative_import( - __name__, [], ["._token.TokenValidator", "._maxpoints.MaxpointsValidator"] - ) diff --git a/packages/python/plotly/plotly/validators/area/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/area/stream/_maxpoints.py deleted file mode 100644 index c59f537b1a..0000000000 --- a/packages/python/plotly/plotly/validators/area/stream/_maxpoints.py +++ /dev/null @@ -1,14 +0,0 @@ -import _plotly_utils.basevalidators - - -class MaxpointsValidator(_plotly_utils.basevalidators.NumberValidator): - def __init__(self, plotly_name="maxpoints", parent_name="area.stream", **kwargs): - super(MaxpointsValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "calc"), - max=kwargs.pop("max", 10000), - min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/area/stream/_token.py b/packages/python/plotly/plotly/validators/area/stream/_token.py deleted file mode 100644 index 460be2bb62..0000000000 --- a/packages/python/plotly/plotly/validators/area/stream/_token.py +++ /dev/null @@ -1,14 +0,0 @@ -import _plotly_utils.basevalidators - - -class TokenValidator(_plotly_utils.basevalidators.StringValidator): - def __init__(self, plotly_name="token", parent_name="area.stream", **kwargs): - super(TokenValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "calc"), - no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), - strict=kwargs.pop("strict", True), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/bar/__init__.py b/packages/python/plotly/plotly/validators/bar/__init__.py index 5cef6bc61a..647859ad05 100644 --- a/packages/python/plotly/plotly/validators/bar/__init__.py +++ b/packages/python/plotly/plotly/validators/bar/__init__.py @@ -5,6 +5,7 @@ from ._yperiodalignment import YperiodalignmentValidator from ._yperiod0 import Yperiod0Validator from ._yperiod import YperiodValidator + from ._yhoverformat import YhoverformatValidator from ._ycalendar import YcalendarValidator from ._yaxis import YaxisValidator from ._y0 import Y0Validator @@ -13,6 +14,7 @@ from ._xperiodalignment import XperiodalignmentValidator from ._xperiod0 import Xperiod0Validator from ._xperiod import XperiodValidator + from ._xhoverformat import XhoverformatValidator from ._xcalendar import XcalendarValidator from ._xaxis import XaxisValidator from ._x0 import X0Validator @@ -23,7 +25,6 @@ from ._unselected import UnselectedValidator from ._uirevision import UirevisionValidator from ._uid import UidValidator - from ._tsrc import TsrcValidator from ._texttemplatesrc import TexttemplatesrcValidator from ._texttemplate import TexttemplateValidator from ._textsrc import TextsrcValidator @@ -32,13 +33,10 @@ from ._textfont import TextfontValidator from ._textangle import TextangleValidator from ._text import TextValidator - from ._t import TValidator from ._stream import StreamValidator from ._showlegend import ShowlegendValidator from ._selectedpoints import SelectedpointsValidator from ._selected import SelectedValidator - from ._rsrc import RsrcValidator - from ._r import RValidator from ._outsidetextfont import OutsidetextfontValidator from ._orientation import OrientationValidator from ._opacity import OpacityValidator @@ -83,6 +81,7 @@ "._yperiodalignment.YperiodalignmentValidator", "._yperiod0.Yperiod0Validator", "._yperiod.YperiodValidator", + "._yhoverformat.YhoverformatValidator", "._ycalendar.YcalendarValidator", "._yaxis.YaxisValidator", "._y0.Y0Validator", @@ -91,6 +90,7 @@ "._xperiodalignment.XperiodalignmentValidator", "._xperiod0.Xperiod0Validator", "._xperiod.XperiodValidator", + "._xhoverformat.XhoverformatValidator", "._xcalendar.XcalendarValidator", "._xaxis.XaxisValidator", "._x0.X0Validator", @@ -101,7 +101,6 @@ "._unselected.UnselectedValidator", "._uirevision.UirevisionValidator", "._uid.UidValidator", - "._tsrc.TsrcValidator", "._texttemplatesrc.TexttemplatesrcValidator", "._texttemplate.TexttemplateValidator", "._textsrc.TextsrcValidator", @@ -110,13 +109,10 @@ "._textfont.TextfontValidator", "._textangle.TextangleValidator", "._text.TextValidator", - "._t.TValidator", "._stream.StreamValidator", "._showlegend.ShowlegendValidator", "._selectedpoints.SelectedpointsValidator", "._selected.SelectedValidator", - "._rsrc.RsrcValidator", - "._r.RValidator", "._outsidetextfont.OutsidetextfontValidator", "._orientation.OrientationValidator", "._opacity.OpacityValidator", diff --git a/packages/python/plotly/plotly/validators/bar/_alignmentgroup.py b/packages/python/plotly/plotly/validators/bar/_alignmentgroup.py index 41dcfddcb2..ed5af7d481 100644 --- a/packages/python/plotly/plotly/validators/bar/_alignmentgroup.py +++ b/packages/python/plotly/plotly/validators/bar/_alignmentgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="alignmentgroup", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_base.py b/packages/python/plotly/plotly/validators/bar/_base.py index 550b80e11d..307f28aeb7 100644 --- a/packages/python/plotly/plotly/validators/bar/_base.py +++ b/packages/python/plotly/plotly/validators/bar/_base.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="base", parent_name="bar", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_basesrc.py b/packages/python/plotly/plotly/validators/bar/_basesrc.py index abdcbab535..71a4af0bab 100644 --- a/packages/python/plotly/plotly/validators/bar/_basesrc.py +++ b/packages/python/plotly/plotly/validators/bar/_basesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="basesrc", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_cliponaxis.py b/packages/python/plotly/plotly/validators/bar/_cliponaxis.py index 7f123bbe5c..4d9f60fafb 100644 --- a/packages/python/plotly/plotly/validators/bar/_cliponaxis.py +++ b/packages/python/plotly/plotly/validators/bar/_cliponaxis.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="cliponaxis", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_constraintext.py b/packages/python/plotly/plotly/validators/bar/_constraintext.py index a9935fcdc0..1e84c03b34 100644 --- a/packages/python/plotly/plotly/validators/bar/_constraintext.py +++ b/packages/python/plotly/plotly/validators/bar/_constraintext.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="constraintext", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["inside", "outside", "both", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_customdata.py b/packages/python/plotly/plotly/validators/bar/_customdata.py index 3def74637f..d0c7ea805b 100644 --- a/packages/python/plotly/plotly/validators/bar/_customdata.py +++ b/packages/python/plotly/plotly/validators/bar/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_customdatasrc.py b/packages/python/plotly/plotly/validators/bar/_customdatasrc.py index 0642dcb3fd..af1785d765 100644 --- a/packages/python/plotly/plotly/validators/bar/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/bar/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_dx.py b/packages/python/plotly/plotly/validators/bar/_dx.py index 3699893712..bb424a413e 100644 --- a/packages/python/plotly/plotly/validators/bar/_dx.py +++ b/packages/python/plotly/plotly/validators/bar/_dx.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="dx", parent_name="bar", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_dy.py b/packages/python/plotly/plotly/validators/bar/_dy.py index c2908ef619..c80816d17b 100644 --- a/packages/python/plotly/plotly/validators/bar/_dy.py +++ b/packages/python/plotly/plotly/validators/bar/_dy.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="dy", parent_name="bar", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_hoverinfo.py b/packages/python/plotly/plotly/validators/bar/_hoverinfo.py index 5cb51cb603..6a7309222f 100644 --- a/packages/python/plotly/plotly/validators/bar/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/bar/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="bar", **kwargs): edit_type=kwargs.pop("edit_type", "none"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["x", "y", "z", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/bar/_hoverinfosrc.py index 06de717ed8..544375f2fd 100644 --- a/packages/python/plotly/plotly/validators/bar/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/bar/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_hovertemplate.py b/packages/python/plotly/plotly/validators/bar/_hovertemplate.py index 770622c5d1..4fc7506d72 100644 --- a/packages/python/plotly/plotly/validators/bar/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/bar/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="bar", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/bar/_hovertemplatesrc.py index 4d4dd68fc7..0bc6b9f525 100644 --- a/packages/python/plotly/plotly/validators/bar/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/bar/_hovertemplatesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertemplatesrc", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_hovertext.py b/packages/python/plotly/plotly/validators/bar/_hovertext.py index 1aba8f97b7..30c1acce4f 100644 --- a/packages/python/plotly/plotly/validators/bar/_hovertext.py +++ b/packages/python/plotly/plotly/validators/bar/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="bar", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_hovertextsrc.py b/packages/python/plotly/plotly/validators/bar/_hovertextsrc.py index 46491588d7..4304259b8f 100644 --- a/packages/python/plotly/plotly/validators/bar/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/bar/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_ids.py b/packages/python/plotly/plotly/validators/bar/_ids.py index 147fb2e84d..f29fa72220 100644 --- a/packages/python/plotly/plotly/validators/bar/_ids.py +++ b/packages/python/plotly/plotly/validators/bar/_ids.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ids", parent_name="bar", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_idssrc.py b/packages/python/plotly/plotly/validators/bar/_idssrc.py index 92bf744a25..4e6c7bf20c 100644 --- a/packages/python/plotly/plotly/validators/bar/_idssrc.py +++ b/packages/python/plotly/plotly/validators/bar/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_insidetextanchor.py b/packages/python/plotly/plotly/validators/bar/_insidetextanchor.py index eb8a4f89f2..c9637a20d0 100644 --- a/packages/python/plotly/plotly/validators/bar/_insidetextanchor.py +++ b/packages/python/plotly/plotly/validators/bar/_insidetextanchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="insidetextanchor", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["end", "middle", "start"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_legendgroup.py b/packages/python/plotly/plotly/validators/bar/_legendgroup.py index 51788b43d3..46ec64566c 100644 --- a/packages/python/plotly/plotly/validators/bar/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/bar/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_marker.py b/packages/python/plotly/plotly/validators/bar/_marker.py index 1c589d6384..027582e117 100644 --- a/packages/python/plotly/plotly/validators/bar/_marker.py +++ b/packages/python/plotly/plotly/validators/bar/_marker.py @@ -93,6 +93,9 @@ def __init__(self, plotly_name="marker", parent_name="bar", **kwargs): opacitysrc Sets the source reference on Chart Studio Cloud for opacity . + pattern + :class:`plotly.graph_objects.bar.marker.Pattern + ` instance or dict with compatible properties reversescale Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a diff --git a/packages/python/plotly/plotly/validators/bar/_meta.py b/packages/python/plotly/plotly/validators/bar/_meta.py index 559fdd3abb..31c203e179 100644 --- a/packages/python/plotly/plotly/validators/bar/_meta.py +++ b/packages/python/plotly/plotly/validators/bar/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="bar", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_metasrc.py b/packages/python/plotly/plotly/validators/bar/_metasrc.py index 22fdea0be3..7890fe3dc5 100644 --- a/packages/python/plotly/plotly/validators/bar/_metasrc.py +++ b/packages/python/plotly/plotly/validators/bar/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_name.py b/packages/python/plotly/plotly/validators/bar/_name.py index b4e7908e2f..1d666ad511 100644 --- a/packages/python/plotly/plotly/validators/bar/_name.py +++ b/packages/python/plotly/plotly/validators/bar/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_offset.py b/packages/python/plotly/plotly/validators/bar/_offset.py index 984a56cc07..bff7aa8f22 100644 --- a/packages/python/plotly/plotly/validators/bar/_offset.py +++ b/packages/python/plotly/plotly/validators/bar/_offset.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="offset", parent_name="bar", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_offsetgroup.py b/packages/python/plotly/plotly/validators/bar/_offsetgroup.py index e42aef8cd2..de88758437 100644 --- a/packages/python/plotly/plotly/validators/bar/_offsetgroup.py +++ b/packages/python/plotly/plotly/validators/bar/_offsetgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="offsetgroup", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_offsetsrc.py b/packages/python/plotly/plotly/validators/bar/_offsetsrc.py index 571fe391bf..78b4876d03 100644 --- a/packages/python/plotly/plotly/validators/bar/_offsetsrc.py +++ b/packages/python/plotly/plotly/validators/bar/_offsetsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="offsetsrc", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_opacity.py b/packages/python/plotly/plotly/validators/bar/_opacity.py index 5338a15731..cdec38c98c 100644 --- a/packages/python/plotly/plotly/validators/bar/_opacity.py +++ b/packages/python/plotly/plotly/validators/bar/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="bar", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_orientation.py b/packages/python/plotly/plotly/validators/bar/_orientation.py index 287f914bff..e292e1a4d8 100644 --- a/packages/python/plotly/plotly/validators/bar/_orientation.py +++ b/packages/python/plotly/plotly/validators/bar/_orientation.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="orientation", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["v", "h"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_r.py b/packages/python/plotly/plotly/validators/bar/_r.py deleted file mode 100644 index 5c04e7f345..0000000000 --- a/packages/python/plotly/plotly/validators/bar/_r.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class RValidator(_plotly_utils.basevalidators.DataArrayValidator): - def __init__(self, plotly_name="r", parent_name="bar", **kwargs): - super(RValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/bar/_rsrc.py b/packages/python/plotly/plotly/validators/bar/_rsrc.py deleted file mode 100644 index fca7bd2134..0000000000 --- a/packages/python/plotly/plotly/validators/bar/_rsrc.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class RsrcValidator(_plotly_utils.basevalidators.SrcValidator): - def __init__(self, plotly_name="rsrc", parent_name="bar", **kwargs): - super(RsrcValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/bar/_selectedpoints.py b/packages/python/plotly/plotly/validators/bar/_selectedpoints.py index 6441ebdad4..5c83450676 100644 --- a/packages/python/plotly/plotly/validators/bar/_selectedpoints.py +++ b/packages/python/plotly/plotly/validators/bar/_selectedpoints.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="selectedpoints", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_showlegend.py b/packages/python/plotly/plotly/validators/bar/_showlegend.py index c19f421b0e..00222c3af9 100644 --- a/packages/python/plotly/plotly/validators/bar/_showlegend.py +++ b/packages/python/plotly/plotly/validators/bar/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_t.py b/packages/python/plotly/plotly/validators/bar/_t.py deleted file mode 100644 index 7574ba79ee..0000000000 --- a/packages/python/plotly/plotly/validators/bar/_t.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class TValidator(_plotly_utils.basevalidators.DataArrayValidator): - def __init__(self, plotly_name="t", parent_name="bar", **kwargs): - super(TValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/bar/_text.py b/packages/python/plotly/plotly/validators/bar/_text.py index 6b36ac40e2..1e0a99dfc2 100644 --- a/packages/python/plotly/plotly/validators/bar/_text.py +++ b/packages/python/plotly/plotly/validators/bar/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="bar", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_textangle.py b/packages/python/plotly/plotly/validators/bar/_textangle.py index 355776b816..28792a4a56 100644 --- a/packages/python/plotly/plotly/validators/bar/_textangle.py +++ b/packages/python/plotly/plotly/validators/bar/_textangle.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textangle", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_textposition.py b/packages/python/plotly/plotly/validators/bar/_textposition.py index 0d09226504..804277f1ab 100644 --- a/packages/python/plotly/plotly/validators/bar/_textposition.py +++ b/packages/python/plotly/plotly/validators/bar/_textposition.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="textposition", parent_name="bar", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["inside", "outside", "auto", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_textpositionsrc.py b/packages/python/plotly/plotly/validators/bar/_textpositionsrc.py index 82fae0949f..5a83e118fe 100644 --- a/packages/python/plotly/plotly/validators/bar/_textpositionsrc.py +++ b/packages/python/plotly/plotly/validators/bar/_textpositionsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textpositionsrc", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_textsrc.py b/packages/python/plotly/plotly/validators/bar/_textsrc.py index 94fc3304dd..3d51b99b78 100644 --- a/packages/python/plotly/plotly/validators/bar/_textsrc.py +++ b/packages/python/plotly/plotly/validators/bar/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_texttemplate.py b/packages/python/plotly/plotly/validators/bar/_texttemplate.py index 63b48895ce..b2377e7ccd 100644 --- a/packages/python/plotly/plotly/validators/bar/_texttemplate.py +++ b/packages/python/plotly/plotly/validators/bar/_texttemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="texttemplate", parent_name="bar", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_texttemplatesrc.py b/packages/python/plotly/plotly/validators/bar/_texttemplatesrc.py index 8a15b5dc9e..86a9e21f38 100644 --- a/packages/python/plotly/plotly/validators/bar/_texttemplatesrc.py +++ b/packages/python/plotly/plotly/validators/bar/_texttemplatesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="texttemplatesrc", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_tsrc.py b/packages/python/plotly/plotly/validators/bar/_tsrc.py deleted file mode 100644 index 3726946008..0000000000 --- a/packages/python/plotly/plotly/validators/bar/_tsrc.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class TsrcValidator(_plotly_utils.basevalidators.SrcValidator): - def __init__(self, plotly_name="tsrc", parent_name="bar", **kwargs): - super(TsrcValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/bar/_uid.py b/packages/python/plotly/plotly/validators/bar/_uid.py index 5b8ae0ea70..646e2a6076 100644 --- a/packages/python/plotly/plotly/validators/bar/_uid.py +++ b/packages/python/plotly/plotly/validators/bar/_uid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="uid", parent_name="bar", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_uirevision.py b/packages/python/plotly/plotly/validators/bar/_uirevision.py index 574d5b80b8..b10e369df0 100644 --- a/packages/python/plotly/plotly/validators/bar/_uirevision.py +++ b/packages/python/plotly/plotly/validators/bar/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_visible.py b/packages/python/plotly/plotly/validators/bar/_visible.py index 6125bde123..f174a0239b 100644 --- a/packages/python/plotly/plotly/validators/bar/_visible.py +++ b/packages/python/plotly/plotly/validators/bar/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_width.py b/packages/python/plotly/plotly/validators/bar/_width.py index 3fdbcb8268..c8bae349a1 100644 --- a/packages/python/plotly/plotly/validators/bar/_width.py +++ b/packages/python/plotly/plotly/validators/bar/_width.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="width", parent_name="bar", **kwargs): array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_widthsrc.py b/packages/python/plotly/plotly/validators/bar/_widthsrc.py index d33233ad73..6d53fdb319 100644 --- a/packages/python/plotly/plotly/validators/bar/_widthsrc.py +++ b/packages/python/plotly/plotly/validators/bar/_widthsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="widthsrc", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_x.py b/packages/python/plotly/plotly/validators/bar/_x.py index 4ff09a042f..643ef8c983 100644 --- a/packages/python/plotly/plotly/validators/bar/_x.py +++ b/packages/python/plotly/plotly/validators/bar/_x.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="x", parent_name="bar", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_x0.py b/packages/python/plotly/plotly/validators/bar/_x0.py index 08fc7ab61d..6c49790d70 100644 --- a/packages/python/plotly/plotly/validators/bar/_x0.py +++ b/packages/python/plotly/plotly/validators/bar/_x0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="x0", parent_name="bar", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_xaxis.py b/packages/python/plotly/plotly/validators/bar/_xaxis.py index e6cea95051..8bad9cd197 100644 --- a/packages/python/plotly/plotly/validators/bar/_xaxis.py +++ b/packages/python/plotly/plotly/validators/bar/_xaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xaxis", parent_name="bar", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "x"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_xcalendar.py b/packages/python/plotly/plotly/validators/bar/_xcalendar.py index 64b4d0f1d8..6d3523445b 100644 --- a/packages/python/plotly/plotly/validators/bar/_xcalendar.py +++ b/packages/python/plotly/plotly/validators/bar/_xcalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xcalendar", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/bar/_xhoverformat.py b/packages/python/plotly/plotly/validators/bar/_xhoverformat.py new file mode 100644 index 0000000000..2f21e50556 --- /dev/null +++ b/packages/python/plotly/plotly/validators/bar/_xhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class XhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="xhoverformat", parent_name="bar", **kwargs): + super(XhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/bar/_xperiod.py b/packages/python/plotly/plotly/validators/bar/_xperiod.py index 084f5660be..8fa7326f13 100644 --- a/packages/python/plotly/plotly/validators/bar/_xperiod.py +++ b/packages/python/plotly/plotly/validators/bar/_xperiod.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xperiod", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_xperiod0.py b/packages/python/plotly/plotly/validators/bar/_xperiod0.py index df3c6c64e3..67d9a90102 100644 --- a/packages/python/plotly/plotly/validators/bar/_xperiod0.py +++ b/packages/python/plotly/plotly/validators/bar/_xperiod0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xperiod0", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_xperiodalignment.py b/packages/python/plotly/plotly/validators/bar/_xperiodalignment.py index 3aeb51917e..0749b8c97a 100644 --- a/packages/python/plotly/plotly/validators/bar/_xperiodalignment.py +++ b/packages/python/plotly/plotly/validators/bar/_xperiodalignment.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xperiodalignment", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["start", "middle", "end"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_xsrc.py b/packages/python/plotly/plotly/validators/bar/_xsrc.py index 239e2de608..55c94adaa1 100644 --- a/packages/python/plotly/plotly/validators/bar/_xsrc.py +++ b/packages/python/plotly/plotly/validators/bar/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_y.py b/packages/python/plotly/plotly/validators/bar/_y.py index 99513a52d9..2eb70e2a4b 100644 --- a/packages/python/plotly/plotly/validators/bar/_y.py +++ b/packages/python/plotly/plotly/validators/bar/_y.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="y", parent_name="bar", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_y0.py b/packages/python/plotly/plotly/validators/bar/_y0.py index d52ba3bb2e..abcc606c4d 100644 --- a/packages/python/plotly/plotly/validators/bar/_y0.py +++ b/packages/python/plotly/plotly/validators/bar/_y0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="y0", parent_name="bar", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_yaxis.py b/packages/python/plotly/plotly/validators/bar/_yaxis.py index 761abb2396..25b3e9ae70 100644 --- a/packages/python/plotly/plotly/validators/bar/_yaxis.py +++ b/packages/python/plotly/plotly/validators/bar/_yaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="yaxis", parent_name="bar", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "y"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_ycalendar.py b/packages/python/plotly/plotly/validators/bar/_ycalendar.py index b0653a8db4..dd3ad2822b 100644 --- a/packages/python/plotly/plotly/validators/bar/_ycalendar.py +++ b/packages/python/plotly/plotly/validators/bar/_ycalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ycalendar", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/bar/_yhoverformat.py b/packages/python/plotly/plotly/validators/bar/_yhoverformat.py new file mode 100644 index 0000000000..28dfba56af --- /dev/null +++ b/packages/python/plotly/plotly/validators/bar/_yhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class YhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="yhoverformat", parent_name="bar", **kwargs): + super(YhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/bar/_yperiod.py b/packages/python/plotly/plotly/validators/bar/_yperiod.py index 081cc12630..24a3a429ca 100644 --- a/packages/python/plotly/plotly/validators/bar/_yperiod.py +++ b/packages/python/plotly/plotly/validators/bar/_yperiod.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="yperiod", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_yperiod0.py b/packages/python/plotly/plotly/validators/bar/_yperiod0.py index d64b30bfb3..225b424a17 100644 --- a/packages/python/plotly/plotly/validators/bar/_yperiod0.py +++ b/packages/python/plotly/plotly/validators/bar/_yperiod0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="yperiod0", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_yperiodalignment.py b/packages/python/plotly/plotly/validators/bar/_yperiodalignment.py index 3329a1e728..53ee5094f1 100644 --- a/packages/python/plotly/plotly/validators/bar/_yperiodalignment.py +++ b/packages/python/plotly/plotly/validators/bar/_yperiodalignment.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="yperiodalignment", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["start", "middle", "end"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/_ysrc.py b/packages/python/plotly/plotly/validators/bar/_ysrc.py index e7bb0cfe5d..73edee8abe 100644 --- a/packages/python/plotly/plotly/validators/bar/_ysrc.py +++ b/packages/python/plotly/plotly/validators/bar/_ysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ysrc", parent_name="bar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_x/_array.py b/packages/python/plotly/plotly/validators/bar/error_x/_array.py index aa4e3c50d9..b2921de58d 100644 --- a/packages/python/plotly/plotly/validators/bar/error_x/_array.py +++ b/packages/python/plotly/plotly/validators/bar/error_x/_array.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="array", parent_name="bar.error_x", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_x/_arrayminus.py b/packages/python/plotly/plotly/validators/bar/error_x/_arrayminus.py index 5affa97a4b..f049f5a231 100644 --- a/packages/python/plotly/plotly/validators/bar/error_x/_arrayminus.py +++ b/packages/python/plotly/plotly/validators/bar/error_x/_arrayminus.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="arrayminus", parent_name="bar.error_x", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_x/_arrayminussrc.py b/packages/python/plotly/plotly/validators/bar/error_x/_arrayminussrc.py index d6decddc84..cd099a83ab 100644 --- a/packages/python/plotly/plotly/validators/bar/error_x/_arrayminussrc.py +++ b/packages/python/plotly/plotly/validators/bar/error_x/_arrayminussrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_x/_arraysrc.py b/packages/python/plotly/plotly/validators/bar/error_x/_arraysrc.py index 04a9fd6218..614fd48e83 100644 --- a/packages/python/plotly/plotly/validators/bar/error_x/_arraysrc.py +++ b/packages/python/plotly/plotly/validators/bar/error_x/_arraysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="arraysrc", parent_name="bar.error_x", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_x/_color.py b/packages/python/plotly/plotly/validators/bar/error_x/_color.py index 2cb2b737d3..4854230258 100644 --- a/packages/python/plotly/plotly/validators/bar/error_x/_color.py +++ b/packages/python/plotly/plotly/validators/bar/error_x/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="bar.error_x", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_x/_copy_ystyle.py b/packages/python/plotly/plotly/validators/bar/error_x/_copy_ystyle.py index 95ba0fa399..854464c2c6 100644 --- a/packages/python/plotly/plotly/validators/bar/error_x/_copy_ystyle.py +++ b/packages/python/plotly/plotly/validators/bar/error_x/_copy_ystyle.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="copy_ystyle", parent_name="bar.error_x", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_x/_symmetric.py b/packages/python/plotly/plotly/validators/bar/error_x/_symmetric.py index 8eb29bdcda..235e038192 100644 --- a/packages/python/plotly/plotly/validators/bar/error_x/_symmetric.py +++ b/packages/python/plotly/plotly/validators/bar/error_x/_symmetric.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="symmetric", parent_name="bar.error_x", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_x/_thickness.py b/packages/python/plotly/plotly/validators/bar/error_x/_thickness.py index 9a9eedbedd..66bbd3d884 100644 --- a/packages/python/plotly/plotly/validators/bar/error_x/_thickness.py +++ b/packages/python/plotly/plotly/validators/bar/error_x/_thickness.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="thickness", parent_name="bar.error_x", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_x/_traceref.py b/packages/python/plotly/plotly/validators/bar/error_x/_traceref.py index 071259fd70..8a8229e5fe 100644 --- a/packages/python/plotly/plotly/validators/bar/error_x/_traceref.py +++ b/packages/python/plotly/plotly/validators/bar/error_x/_traceref.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="traceref", parent_name="bar.error_x", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_x/_tracerefminus.py b/packages/python/plotly/plotly/validators/bar/error_x/_tracerefminus.py index b05dafd244..3534b9dba8 100644 --- a/packages/python/plotly/plotly/validators/bar/error_x/_tracerefminus.py +++ b/packages/python/plotly/plotly/validators/bar/error_x/_tracerefminus.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_x/_type.py b/packages/python/plotly/plotly/validators/bar/error_x/_type.py index 67a8f70066..09e2dc715c 100644 --- a/packages/python/plotly/plotly/validators/bar/error_x/_type.py +++ b/packages/python/plotly/plotly/validators/bar/error_x/_type.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="type", parent_name="bar.error_x", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["percent", "constant", "sqrt", "data"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_x/_value.py b/packages/python/plotly/plotly/validators/bar/error_x/_value.py index 3cf48a3d95..7e357eeecb 100644 --- a/packages/python/plotly/plotly/validators/bar/error_x/_value.py +++ b/packages/python/plotly/plotly/validators/bar/error_x/_value.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="value", parent_name="bar.error_x", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_x/_valueminus.py b/packages/python/plotly/plotly/validators/bar/error_x/_valueminus.py index 7c4d33f4e4..b3654f377e 100644 --- a/packages/python/plotly/plotly/validators/bar/error_x/_valueminus.py +++ b/packages/python/plotly/plotly/validators/bar/error_x/_valueminus.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="valueminus", parent_name="bar.error_x", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_x/_visible.py b/packages/python/plotly/plotly/validators/bar/error_x/_visible.py index 457dfcc513..b25209fcf6 100644 --- a/packages/python/plotly/plotly/validators/bar/error_x/_visible.py +++ b/packages/python/plotly/plotly/validators/bar/error_x/_visible.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="visible", parent_name="bar.error_x", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_x/_width.py b/packages/python/plotly/plotly/validators/bar/error_x/_width.py index 6509f4ec66..434d87509b 100644 --- a/packages/python/plotly/plotly/validators/bar/error_x/_width.py +++ b/packages/python/plotly/plotly/validators/bar/error_x/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="bar.error_x", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_y/_array.py b/packages/python/plotly/plotly/validators/bar/error_y/_array.py index 04d3848e90..43fac01713 100644 --- a/packages/python/plotly/plotly/validators/bar/error_y/_array.py +++ b/packages/python/plotly/plotly/validators/bar/error_y/_array.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="array", parent_name="bar.error_y", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_y/_arrayminus.py b/packages/python/plotly/plotly/validators/bar/error_y/_arrayminus.py index 0ac8f55e6a..c233af01ec 100644 --- a/packages/python/plotly/plotly/validators/bar/error_y/_arrayminus.py +++ b/packages/python/plotly/plotly/validators/bar/error_y/_arrayminus.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="arrayminus", parent_name="bar.error_y", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_y/_arrayminussrc.py b/packages/python/plotly/plotly/validators/bar/error_y/_arrayminussrc.py index eb3cb696ff..715faab623 100644 --- a/packages/python/plotly/plotly/validators/bar/error_y/_arrayminussrc.py +++ b/packages/python/plotly/plotly/validators/bar/error_y/_arrayminussrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_y/_arraysrc.py b/packages/python/plotly/plotly/validators/bar/error_y/_arraysrc.py index 1cf1042ce9..fe8f3b2448 100644 --- a/packages/python/plotly/plotly/validators/bar/error_y/_arraysrc.py +++ b/packages/python/plotly/plotly/validators/bar/error_y/_arraysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="arraysrc", parent_name="bar.error_y", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_y/_color.py b/packages/python/plotly/plotly/validators/bar/error_y/_color.py index 8cfe4335bd..31a4110aa2 100644 --- a/packages/python/plotly/plotly/validators/bar/error_y/_color.py +++ b/packages/python/plotly/plotly/validators/bar/error_y/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="bar.error_y", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_y/_symmetric.py b/packages/python/plotly/plotly/validators/bar/error_y/_symmetric.py index 1fe54f8781..a9bb83bdd4 100644 --- a/packages/python/plotly/plotly/validators/bar/error_y/_symmetric.py +++ b/packages/python/plotly/plotly/validators/bar/error_y/_symmetric.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="symmetric", parent_name="bar.error_y", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_y/_thickness.py b/packages/python/plotly/plotly/validators/bar/error_y/_thickness.py index 7e3370a8f3..47dbd6deda 100644 --- a/packages/python/plotly/plotly/validators/bar/error_y/_thickness.py +++ b/packages/python/plotly/plotly/validators/bar/error_y/_thickness.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="thickness", parent_name="bar.error_y", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_y/_traceref.py b/packages/python/plotly/plotly/validators/bar/error_y/_traceref.py index 86cedc587a..442a0c3c06 100644 --- a/packages/python/plotly/plotly/validators/bar/error_y/_traceref.py +++ b/packages/python/plotly/plotly/validators/bar/error_y/_traceref.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="traceref", parent_name="bar.error_y", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_y/_tracerefminus.py b/packages/python/plotly/plotly/validators/bar/error_y/_tracerefminus.py index 6e9a809591..a2b698fb40 100644 --- a/packages/python/plotly/plotly/validators/bar/error_y/_tracerefminus.py +++ b/packages/python/plotly/plotly/validators/bar/error_y/_tracerefminus.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_y/_type.py b/packages/python/plotly/plotly/validators/bar/error_y/_type.py index 2cd9f44ccd..317ad9e180 100644 --- a/packages/python/plotly/plotly/validators/bar/error_y/_type.py +++ b/packages/python/plotly/plotly/validators/bar/error_y/_type.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="type", parent_name="bar.error_y", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["percent", "constant", "sqrt", "data"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_y/_value.py b/packages/python/plotly/plotly/validators/bar/error_y/_value.py index c4a53693b1..7366f6e90a 100644 --- a/packages/python/plotly/plotly/validators/bar/error_y/_value.py +++ b/packages/python/plotly/plotly/validators/bar/error_y/_value.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="value", parent_name="bar.error_y", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_y/_valueminus.py b/packages/python/plotly/plotly/validators/bar/error_y/_valueminus.py index 7c7129114c..afcd094640 100644 --- a/packages/python/plotly/plotly/validators/bar/error_y/_valueminus.py +++ b/packages/python/plotly/plotly/validators/bar/error_y/_valueminus.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="valueminus", parent_name="bar.error_y", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_y/_visible.py b/packages/python/plotly/plotly/validators/bar/error_y/_visible.py index 2e8b21fdee..4848cb991e 100644 --- a/packages/python/plotly/plotly/validators/bar/error_y/_visible.py +++ b/packages/python/plotly/plotly/validators/bar/error_y/_visible.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="visible", parent_name="bar.error_y", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/error_y/_width.py b/packages/python/plotly/plotly/validators/bar/error_y/_width.py index 72410cc196..b72ee37ef3 100644 --- a/packages/python/plotly/plotly/validators/bar/error_y/_width.py +++ b/packages/python/plotly/plotly/validators/bar/error_y/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="bar.error_y", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/bar/hoverlabel/_align.py index 8a6f984c51..24023ac7e5 100644 --- a/packages/python/plotly/plotly/validators/bar/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/bar/hoverlabel/_align.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="align", parent_name="bar.hoverlabel", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/bar/hoverlabel/_alignsrc.py index cffb62e6f9..583838de82 100644 --- a/packages/python/plotly/plotly/validators/bar/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/bar/hoverlabel/_alignsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="alignsrc", parent_name="bar.hoverlabel", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/bar/hoverlabel/_bgcolor.py index f439bd6afc..a1bbd0a877 100644 --- a/packages/python/plotly/plotly/validators/bar/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/bar/hoverlabel/_bgcolor.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="bgcolor", parent_name="bar.hoverlabel", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/bar/hoverlabel/_bgcolorsrc.py index cefd10cfd1..067e700035 100644 --- a/packages/python/plotly/plotly/validators/bar/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/bar/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/bar/hoverlabel/_bordercolor.py index afaf5647ac..6c47ee40e0 100644 --- a/packages/python/plotly/plotly/validators/bar/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/bar/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/bar/hoverlabel/_bordercolorsrc.py index f320d196b6..768e4c5f78 100644 --- a/packages/python/plotly/plotly/validators/bar/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/bar/hoverlabel/_bordercolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/bar/hoverlabel/_namelength.py index 3289e4c51e..9ff11d0feb 100644 --- a/packages/python/plotly/plotly/validators/bar/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/bar/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/bar/hoverlabel/_namelengthsrc.py index add9e9c684..5824bde885 100644 --- a/packages/python/plotly/plotly/validators/bar/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/bar/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/bar/hoverlabel/font/_color.py index 46dce9fa10..f770accdf5 100644 --- a/packages/python/plotly/plotly/validators/bar/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/bar/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/bar/hoverlabel/font/_colorsrc.py index faf87dfd70..96f8ddd052 100644 --- a/packages/python/plotly/plotly/validators/bar/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/bar/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/bar/hoverlabel/font/_family.py index 88ef9b76d5..69d3846d37 100644 --- a/packages/python/plotly/plotly/validators/bar/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/bar/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/bar/hoverlabel/font/_familysrc.py index c15d24f367..fd928a2163 100644 --- a/packages/python/plotly/plotly/validators/bar/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/bar/hoverlabel/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/bar/hoverlabel/font/_size.py index 1f4b6d52bf..c0fb37daf8 100644 --- a/packages/python/plotly/plotly/validators/bar/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/bar/hoverlabel/font/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="bar.hoverlabel.font", **kwar array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/bar/hoverlabel/font/_sizesrc.py index 1ff9ad97de..fb3909611a 100644 --- a/packages/python/plotly/plotly/validators/bar/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/bar/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/insidetextfont/_color.py b/packages/python/plotly/plotly/validators/bar/insidetextfont/_color.py index 7f3be78307..44733ab6fc 100644 --- a/packages/python/plotly/plotly/validators/bar/insidetextfont/_color.py +++ b/packages/python/plotly/plotly/validators/bar/insidetextfont/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="bar.insidetextfont", **kwar parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/insidetextfont/_colorsrc.py b/packages/python/plotly/plotly/validators/bar/insidetextfont/_colorsrc.py index 14edca878b..bc3ac6ca40 100644 --- a/packages/python/plotly/plotly/validators/bar/insidetextfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/bar/insidetextfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/insidetextfont/_family.py b/packages/python/plotly/plotly/validators/bar/insidetextfont/_family.py index bb3a5a29d5..27fef2188c 100644 --- a/packages/python/plotly/plotly/validators/bar/insidetextfont/_family.py +++ b/packages/python/plotly/plotly/validators/bar/insidetextfont/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/insidetextfont/_familysrc.py b/packages/python/plotly/plotly/validators/bar/insidetextfont/_familysrc.py index e806baf606..ddafade021 100644 --- a/packages/python/plotly/plotly/validators/bar/insidetextfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/bar/insidetextfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/insidetextfont/_size.py b/packages/python/plotly/plotly/validators/bar/insidetextfont/_size.py index a7264ed184..7d8cd0cf53 100644 --- a/packages/python/plotly/plotly/validators/bar/insidetextfont/_size.py +++ b/packages/python/plotly/plotly/validators/bar/insidetextfont/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="bar.insidetextfont", **kwarg array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/insidetextfont/_sizesrc.py b/packages/python/plotly/plotly/validators/bar/insidetextfont/_sizesrc.py index 3a64403363..a9a3107902 100644 --- a/packages/python/plotly/plotly/validators/bar/insidetextfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/bar/insidetextfont/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/__init__.py b/packages/python/plotly/plotly/validators/bar/marker/__init__.py index bcbbad4466..f745b15a50 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/__init__.py +++ b/packages/python/plotly/plotly/validators/bar/marker/__init__.py @@ -3,6 +3,7 @@ if sys.version_info < (3, 7): from ._showscale import ShowscaleValidator from ._reversescale import ReversescaleValidator + from ._pattern import PatternValidator from ._opacitysrc import OpacitysrcValidator from ._opacity import OpacityValidator from ._line import LineValidator @@ -25,6 +26,7 @@ [ "._showscale.ShowscaleValidator", "._reversescale.ReversescaleValidator", + "._pattern.PatternValidator", "._opacitysrc.OpacitysrcValidator", "._opacity.OpacityValidator", "._line.LineValidator", diff --git a/packages/python/plotly/plotly/validators/bar/marker/_autocolorscale.py b/packages/python/plotly/plotly/validators/bar/marker/_autocolorscale.py index c0d7ed6221..376cff5fa6 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/bar/marker/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/_cauto.py b/packages/python/plotly/plotly/validators/bar/marker/_cauto.py index 631e670298..49f5612e3e 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/_cauto.py +++ b/packages/python/plotly/plotly/validators/bar/marker/_cauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cauto", parent_name="bar.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/_cmax.py b/packages/python/plotly/plotly/validators/bar/marker/_cmax.py index 2574c4d0cf..a1cf319a70 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/_cmax.py +++ b/packages/python/plotly/plotly/validators/bar/marker/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="bar.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/_cmid.py b/packages/python/plotly/plotly/validators/bar/marker/_cmid.py index 1e66f0fd7d..315a635051 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/_cmid.py +++ b/packages/python/plotly/plotly/validators/bar/marker/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="bar.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/_cmin.py b/packages/python/plotly/plotly/validators/bar/marker/_cmin.py index bf30bf6b26..67fc0fb913 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/_cmin.py +++ b/packages/python/plotly/plotly/validators/bar/marker/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="bar.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/_color.py b/packages/python/plotly/plotly/validators/bar/marker/_color.py index aa78b5463e..542024ddd9 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/_color.py +++ b/packages/python/plotly/plotly/validators/bar/marker/_color.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="color", parent_name="bar.marker", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop("colorscale_path", "bar.marker.colorscale"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/_coloraxis.py b/packages/python/plotly/plotly/validators/bar/marker/_coloraxis.py index cc973c7713..6e0c361175 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/bar/marker/_coloraxis.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="coloraxis", parent_name="bar.marker", **kwargs): dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/_colorbar.py b/packages/python/plotly/plotly/validators/bar/marker/_colorbar.py index 4f8a1833ce..ace110b458 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/_colorbar.py +++ b/packages/python/plotly/plotly/validators/bar/marker/_colorbar.py @@ -147,6 +147,12 @@ def __init__(self, plotly_name="colorbar", parent_name="bar.marker", **kwargs): a.bar.marker.colorbar.tickformatstopdefaults), sets the default property values to use for elements of bar.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/bar/marker/_colorscale.py b/packages/python/plotly/plotly/validators/bar/marker/_colorscale.py index 69303daf28..2c3be217d7 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/_colorscale.py +++ b/packages/python/plotly/plotly/validators/bar/marker/_colorscale.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="colorscale", parent_name="bar.marker", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/_colorsrc.py b/packages/python/plotly/plotly/validators/bar/marker/_colorsrc.py index 8e3d2ef176..3757ef0a8b 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/bar/marker/_colorsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="colorsrc", parent_name="bar.marker", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/_opacity.py b/packages/python/plotly/plotly/validators/bar/marker/_opacity.py index 8c260bbc51..41e84b5a0f 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/bar/marker/_opacity.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="opacity", parent_name="bar.marker", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/_opacitysrc.py b/packages/python/plotly/plotly/validators/bar/marker/_opacitysrc.py index 270beefb47..a67bdce41a 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/_opacitysrc.py +++ b/packages/python/plotly/plotly/validators/bar/marker/_opacitysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="opacitysrc", parent_name="bar.marker", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/_pattern.py b/packages/python/plotly/plotly/validators/bar/marker/_pattern.py new file mode 100644 index 0000000000..27d1bd928d --- /dev/null +++ b/packages/python/plotly/plotly/validators/bar/marker/_pattern.py @@ -0,0 +1,45 @@ +import _plotly_utils.basevalidators + + +class PatternValidator(_plotly_utils.basevalidators.CompoundValidator): + def __init__(self, plotly_name="pattern", parent_name="bar.marker", **kwargs): + super(PatternValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + data_class_str=kwargs.pop("data_class_str", "Pattern"), + data_docs=kwargs.pop( + "data_docs", + """ + bgcolor + Sets the background color of the pattern fill. + Defaults to a transparent background. + bgcolorsrc + Sets the source reference on Chart Studio Cloud + for bgcolor . + shape + Sets the shape of the pattern fill. By default, + no pattern is used for filling the area. + shapesrc + Sets the source reference on Chart Studio Cloud + for shape . + size + Sets the size of unit squares of the pattern + fill in pixels, which corresponds to the + interval of repetition of the pattern. + sizesrc + Sets the source reference on Chart Studio Cloud + for size . + solidity + Sets the solidity of the pattern fill. Solidity + is roughly the fraction of the area filled by + the pattern. Solidity of 0 shows only the + background color without pattern and solidty of + 1 shows only the foreground color without + pattern. + soliditysrc + Sets the source reference on Chart Studio Cloud + for solidity . +""", + ), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/_reversescale.py b/packages/python/plotly/plotly/validators/bar/marker/_reversescale.py index 9b42ae8a28..c7f9561495 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/_reversescale.py +++ b/packages/python/plotly/plotly/validators/bar/marker/_reversescale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="reversescale", parent_name="bar.marker", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/_showscale.py b/packages/python/plotly/plotly/validators/bar/marker/_showscale.py index 42744c2fb6..ddd1cab61e 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/_showscale.py +++ b/packages/python/plotly/plotly/validators/bar/marker/_showscale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showscale", parent_name="bar.marker", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/__init__.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_bgcolor.py index 89e72b8120..59491200f3 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_bordercolor.py index 8f0f52152b..9d8c04134a 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_borderwidth.py index c4cdb76a34..2e478676d2 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_dtick.py index 13c7b0be95..98fa970d1c 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_exponentformat.py index 2c53fbfd14..8f65c8d57d 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_exponentformat.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_len.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_len.py index 8528a13ae3..7a24065075 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_len.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="len", parent_name="bar.marker.colorbar", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_lenmode.py index b1e780cf57..2587194927 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_lenmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_minexponent.py index 7293c757d7..2f1b5b320b 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_nticks.py index a655bf9a2c..18de108811 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_outlinecolor.py index f3cbd87e92..e035c97606 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_outlinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_outlinewidth.py index 6ef7b42e1b..43f391d57d 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_outlinewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_separatethousands.py index 175cb8a86b..9f60fe8fa9 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_showexponent.py index 8765708cdd..915266a353 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_showticklabels.py index 44b8cc5908..c4a1fdc56e 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_showticklabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_showtickprefix.py index b02ac74481..70c3453856 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_showtickprefix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_showticksuffix.py index 1002ef5023..1ace1a4d1f 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_showticksuffix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_thickness.py index 18e6ed1f00..974e84740f 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_thicknessmode.py index 0081d2ce38..d8b02f6937 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_thicknessmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tick0.py index baa9233c3d..a48e2f112e 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickangle.py index 73f011373f..62bd8e4221 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickcolor.py index 30e3c52855..c436c386a3 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickformat.py index 4b9df58dad..4c78f11545 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..b7192aee8c --- /dev/null +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="bar.marker.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "colorbars"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticklabelposition.py index 47208f6a89..043e50c2c4 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticklen.py index f74f98f60f..a3e1617e43 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickmode.py index 2923008dae..52cb7e389f 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickprefix.py index a564eb5b91..1437f80077 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticks.py index 0847f12902..265ae32bec 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticksuffix.py index b48fd7f123..9cf796aaaa 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticktext.py index 80574c2445..4134aa64b3 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticktextsrc.py index bf60934c76..2e4e3b5a4d 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickvals.py index 1c2204d156..2edf45ef53 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickvalssrc.py index 58e3fcfc13..edf9e38978 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickwidth.py index f6200e2842..1df42d9f9c 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_x.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_x.py index db254ff5aa..1431b945f4 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_x.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="x", parent_name="bar.marker.colorbar", **kwargs) edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_xanchor.py index 86a47fcc3a..10758ea4ad 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_xpad.py index b45e52e820..8f7f51dffe 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_xpad.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xpad", parent_name="bar.marker.colorbar", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_y.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_y.py index b2aa44fb2f..958e0b8cff 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_y.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="y", parent_name="bar.marker.colorbar", **kwargs) edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_yanchor.py index f66f6a9d30..0346bdcc40 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ypad.py index 2b353b1862..fad1f6fcec 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/_ypad.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ypad", parent_name="bar.marker.colorbar", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickfont/_color.py index 5fd9807c3f..975eaa832b 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickfont/_family.py index 5d4a342f09..23509ec8ed 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickfont/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickfont/_size.py index 241782a171..d1c5a99118 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickformatstop/_dtickrange.py index 1c3a4a9ecf..1d8a049c5f 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "colorbars"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickformatstop/_enabled.py index 4d1e4e84a0..3910071f0a 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickformatstop/_name.py index 3686a43d68..4929c99113 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickformatstop/_templateitemname.py index 352f0514c2..f27e227005 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickformatstop/_value.py index 1918defd55..b5277b8342 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/title/_side.py index 535b43037d..f45a0d6e8b 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/title/_side.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/title/_text.py index f2a132416d..5e97780801 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/title/font/_color.py index fd4b9b105f..be149aabf1 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/title/font/_family.py index b021db486a..63a0c1c368 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/bar/marker/colorbar/title/font/_size.py index 3813efc8ac..59c35054a0 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/bar/marker/colorbar/title/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/line/_autocolorscale.py b/packages/python/plotly/plotly/validators/bar/marker/line/_autocolorscale.py index 214b4d7e48..ecf9f1299b 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/line/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/bar/marker/line/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/line/_cauto.py b/packages/python/plotly/plotly/validators/bar/marker/line/_cauto.py index adcd362c5c..01f275521c 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/line/_cauto.py +++ b/packages/python/plotly/plotly/validators/bar/marker/line/_cauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cauto", parent_name="bar.marker.line", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/line/_cmax.py b/packages/python/plotly/plotly/validators/bar/marker/line/_cmax.py index 6d2641ed6f..34d1ffc46f 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/line/_cmax.py +++ b/packages/python/plotly/plotly/validators/bar/marker/line/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="bar.marker.line", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/line/_cmid.py b/packages/python/plotly/plotly/validators/bar/marker/line/_cmid.py index d530147b4a..8ceecfa470 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/line/_cmid.py +++ b/packages/python/plotly/plotly/validators/bar/marker/line/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="bar.marker.line", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/line/_cmin.py b/packages/python/plotly/plotly/validators/bar/marker/line/_cmin.py index 485fcc5462..c0164f0e33 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/line/_cmin.py +++ b/packages/python/plotly/plotly/validators/bar/marker/line/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="bar.marker.line", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/line/_color.py b/packages/python/plotly/plotly/validators/bar/marker/line/_color.py index 6adeb31c84..0c4da4f8fd 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/line/_color.py +++ b/packages/python/plotly/plotly/validators/bar/marker/line/_color.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="color", parent_name="bar.marker.line", **kwargs) parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop("colorscale_path", "bar.marker.line.colorscale"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/line/_coloraxis.py b/packages/python/plotly/plotly/validators/bar/marker/line/_coloraxis.py index bcebdfcdf1..4d16337d94 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/line/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/bar/marker/line/_coloraxis.py @@ -11,6 +11,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/line/_colorscale.py b/packages/python/plotly/plotly/validators/bar/marker/line/_colorscale.py index f1fc46ebc7..bfb7b36e22 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/line/_colorscale.py +++ b/packages/python/plotly/plotly/validators/bar/marker/line/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/line/_colorsrc.py b/packages/python/plotly/plotly/validators/bar/marker/line/_colorsrc.py index 679ec3690f..1bb9da1e45 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/bar/marker/line/_colorsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="colorsrc", parent_name="bar.marker.line", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/line/_reversescale.py b/packages/python/plotly/plotly/validators/bar/marker/line/_reversescale.py index 19ac08ce21..bb53219d56 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/line/_reversescale.py +++ b/packages/python/plotly/plotly/validators/bar/marker/line/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/line/_width.py b/packages/python/plotly/plotly/validators/bar/marker/line/_width.py index cabd2b8537..d1c12bba22 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/line/_width.py +++ b/packages/python/plotly/plotly/validators/bar/marker/line/_width.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="width", parent_name="bar.marker.line", **kwargs) array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/line/_widthsrc.py b/packages/python/plotly/plotly/validators/bar/marker/line/_widthsrc.py index 298faf191a..e8c7e75ad3 100644 --- a/packages/python/plotly/plotly/validators/bar/marker/line/_widthsrc.py +++ b/packages/python/plotly/plotly/validators/bar/marker/line/_widthsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="widthsrc", parent_name="bar.marker.line", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/pattern/__init__.py b/packages/python/plotly/plotly/validators/bar/marker/pattern/__init__.py new file mode 100644 index 0000000000..27ed67a3c2 --- /dev/null +++ b/packages/python/plotly/plotly/validators/bar/marker/pattern/__init__.py @@ -0,0 +1,28 @@ +import sys + +if sys.version_info < (3, 7): + from ._soliditysrc import SoliditysrcValidator + from ._solidity import SolidityValidator + from ._sizesrc import SizesrcValidator + from ._size import SizeValidator + from ._shapesrc import ShapesrcValidator + from ._shape import ShapeValidator + from ._bgcolorsrc import BgcolorsrcValidator + from ._bgcolor import BgcolorValidator +else: + from _plotly_utils.importers import relative_import + + __all__, __getattr__, __dir__ = relative_import( + __name__, + [], + [ + "._soliditysrc.SoliditysrcValidator", + "._solidity.SolidityValidator", + "._sizesrc.SizesrcValidator", + "._size.SizeValidator", + "._shapesrc.ShapesrcValidator", + "._shape.ShapeValidator", + "._bgcolorsrc.BgcolorsrcValidator", + "._bgcolor.BgcolorValidator", + ], + ) diff --git a/packages/python/plotly/plotly/validators/area/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/bar/marker/pattern/_bgcolor.py similarity index 62% rename from packages/python/plotly/plotly/validators/area/hoverlabel/_bgcolor.py rename to packages/python/plotly/plotly/validators/bar/marker/pattern/_bgcolor.py index f6097eba4f..36cdd01e66 100644 --- a/packages/python/plotly/plotly/validators/area/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/bar/marker/pattern/_bgcolor.py @@ -2,12 +2,13 @@ class BgcolorValidator(_plotly_utils.basevalidators.ColorValidator): - def __init__(self, plotly_name="bgcolor", parent_name="area.hoverlabel", **kwargs): + def __init__( + self, plotly_name="bgcolor", parent_name="bar.marker.pattern", **kwargs + ): super(BgcolorValidator, self).__init__( plotly_name=plotly_name, parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), - edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), + edit_type=kwargs.pop("edit_type", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/area/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/bar/marker/pattern/_bgcolorsrc.py similarity index 73% rename from packages/python/plotly/plotly/validators/area/hoverlabel/_bgcolorsrc.py rename to packages/python/plotly/plotly/validators/bar/marker/pattern/_bgcolorsrc.py index 5ad2c133ec..23c288e7ac 100644 --- a/packages/python/plotly/plotly/validators/area/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/bar/marker/pattern/_bgcolorsrc.py @@ -3,12 +3,11 @@ class BgcolorsrcValidator(_plotly_utils.basevalidators.SrcValidator): def __init__( - self, plotly_name="bgcolorsrc", parent_name="area.hoverlabel", **kwargs + self, plotly_name="bgcolorsrc", parent_name="bar.marker.pattern", **kwargs ): super(BgcolorsrcValidator, self).__init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/pattern/_shape.py b/packages/python/plotly/plotly/validators/bar/marker/pattern/_shape.py new file mode 100644 index 0000000000..0bdc293565 --- /dev/null +++ b/packages/python/plotly/plotly/validators/bar/marker/pattern/_shape.py @@ -0,0 +1,13 @@ +import _plotly_utils.basevalidators + + +class ShapeValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__(self, plotly_name="shape", parent_name="bar.marker.pattern", **kwargs): + super(ShapeValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + array_ok=kwargs.pop("array_ok", True), + edit_type=kwargs.pop("edit_type", "style"), + values=kwargs.pop("values", ["", "/", "\\", "x", "-", "|", "+", "."]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/pattern/_shapesrc.py b/packages/python/plotly/plotly/validators/bar/marker/pattern/_shapesrc.py new file mode 100644 index 0000000000..a20a2032bb --- /dev/null +++ b/packages/python/plotly/plotly/validators/bar/marker/pattern/_shapesrc.py @@ -0,0 +1,13 @@ +import _plotly_utils.basevalidators + + +class ShapesrcValidator(_plotly_utils.basevalidators.SrcValidator): + def __init__( + self, plotly_name="shapesrc", parent_name="bar.marker.pattern", **kwargs + ): + super(ShapesrcValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/area/marker/_size.py b/packages/python/plotly/plotly/validators/bar/marker/pattern/_size.py similarity index 65% rename from packages/python/plotly/plotly/validators/area/marker/_size.py rename to packages/python/plotly/plotly/validators/bar/marker/pattern/_size.py index b2ad713144..d5ec30015e 100644 --- a/packages/python/plotly/plotly/validators/area/marker/_size.py +++ b/packages/python/plotly/plotly/validators/bar/marker/pattern/_size.py @@ -2,13 +2,12 @@ class SizeValidator(_plotly_utils.basevalidators.NumberValidator): - def __init__(self, plotly_name="size", parent_name="area.marker", **kwargs): + def __init__(self, plotly_name="size", parent_name="bar.marker.pattern", **kwargs): super(SizeValidator, self).__init__( plotly_name=plotly_name, parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), - edit_type=kwargs.pop("edit_type", "calc"), + edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/area/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/bar/marker/pattern/_sizesrc.py similarity index 72% rename from packages/python/plotly/plotly/validators/area/hoverlabel/font/_sizesrc.py rename to packages/python/plotly/plotly/validators/bar/marker/pattern/_sizesrc.py index f348e6a908..ee70d2da21 100644 --- a/packages/python/plotly/plotly/validators/area/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/bar/marker/pattern/_sizesrc.py @@ -3,12 +3,11 @@ class SizesrcValidator(_plotly_utils.basevalidators.SrcValidator): def __init__( - self, plotly_name="sizesrc", parent_name="area.hoverlabel.font", **kwargs + self, plotly_name="sizesrc", parent_name="bar.marker.pattern", **kwargs ): super(SizesrcValidator, self).__init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/area/marker/_opacity.py b/packages/python/plotly/plotly/validators/bar/marker/pattern/_solidity.py similarity index 56% rename from packages/python/plotly/plotly/validators/area/marker/_opacity.py rename to packages/python/plotly/plotly/validators/bar/marker/pattern/_solidity.py index 934b143b29..3fb36cdd80 100644 --- a/packages/python/plotly/plotly/validators/area/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/bar/marker/pattern/_solidity.py @@ -1,15 +1,16 @@ import _plotly_utils.basevalidators -class OpacityValidator(_plotly_utils.basevalidators.NumberValidator): - def __init__(self, plotly_name="opacity", parent_name="area.marker", **kwargs): - super(OpacityValidator, self).__init__( +class SolidityValidator(_plotly_utils.basevalidators.NumberValidator): + def __init__( + self, plotly_name="solidity", parent_name="bar.marker.pattern", **kwargs + ): + super(SolidityValidator, self).__init__( plotly_name=plotly_name, parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/marker/pattern/_soliditysrc.py b/packages/python/plotly/plotly/validators/bar/marker/pattern/_soliditysrc.py new file mode 100644 index 0000000000..e4e89cd314 --- /dev/null +++ b/packages/python/plotly/plotly/validators/bar/marker/pattern/_soliditysrc.py @@ -0,0 +1,13 @@ +import _plotly_utils.basevalidators + + +class SoliditysrcValidator(_plotly_utils.basevalidators.SrcValidator): + def __init__( + self, plotly_name="soliditysrc", parent_name="bar.marker.pattern", **kwargs + ): + super(SoliditysrcValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/bar/outsidetextfont/_color.py b/packages/python/plotly/plotly/validators/bar/outsidetextfont/_color.py index 00cd1b99f2..3aff46e03c 100644 --- a/packages/python/plotly/plotly/validators/bar/outsidetextfont/_color.py +++ b/packages/python/plotly/plotly/validators/bar/outsidetextfont/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/outsidetextfont/_colorsrc.py b/packages/python/plotly/plotly/validators/bar/outsidetextfont/_colorsrc.py index e8900e8976..a812911ad1 100644 --- a/packages/python/plotly/plotly/validators/bar/outsidetextfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/bar/outsidetextfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/outsidetextfont/_family.py b/packages/python/plotly/plotly/validators/bar/outsidetextfont/_family.py index b781cdb626..8a512acc57 100644 --- a/packages/python/plotly/plotly/validators/bar/outsidetextfont/_family.py +++ b/packages/python/plotly/plotly/validators/bar/outsidetextfont/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/outsidetextfont/_familysrc.py b/packages/python/plotly/plotly/validators/bar/outsidetextfont/_familysrc.py index 47c36a8d58..c1c628106c 100644 --- a/packages/python/plotly/plotly/validators/bar/outsidetextfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/bar/outsidetextfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/outsidetextfont/_size.py b/packages/python/plotly/plotly/validators/bar/outsidetextfont/_size.py index 880154a6e7..606885559c 100644 --- a/packages/python/plotly/plotly/validators/bar/outsidetextfont/_size.py +++ b/packages/python/plotly/plotly/validators/bar/outsidetextfont/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="bar.outsidetextfont", **kwar array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/outsidetextfont/_sizesrc.py b/packages/python/plotly/plotly/validators/bar/outsidetextfont/_sizesrc.py index c4d8b56353..18f0a40705 100644 --- a/packages/python/plotly/plotly/validators/bar/outsidetextfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/bar/outsidetextfont/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/selected/marker/_color.py b/packages/python/plotly/plotly/validators/bar/selected/marker/_color.py index 14934b57f9..f929dd0c19 100644 --- a/packages/python/plotly/plotly/validators/bar/selected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/bar/selected/marker/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/selected/marker/_opacity.py b/packages/python/plotly/plotly/validators/bar/selected/marker/_opacity.py index 1b60a25283..b6ec37a3c9 100644 --- a/packages/python/plotly/plotly/validators/bar/selected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/bar/selected/marker/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/selected/textfont/_color.py b/packages/python/plotly/plotly/validators/bar/selected/textfont/_color.py index 92d5879e01..1621a730ec 100644 --- a/packages/python/plotly/plotly/validators/bar/selected/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/bar/selected/textfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/bar/stream/_maxpoints.py index c51a596b18..ab9a6e5464 100644 --- a/packages/python/plotly/plotly/validators/bar/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/bar/stream/_maxpoints.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="maxpoints", parent_name="bar.stream", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/stream/_token.py b/packages/python/plotly/plotly/validators/bar/stream/_token.py index 3cf4816147..01c0e6fa06 100644 --- a/packages/python/plotly/plotly/validators/bar/stream/_token.py +++ b/packages/python/plotly/plotly/validators/bar/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="bar.stream", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/textfont/_color.py b/packages/python/plotly/plotly/validators/bar/textfont/_color.py index 0da0f020a7..34c70b802a 100644 --- a/packages/python/plotly/plotly/validators/bar/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/bar/textfont/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="bar.textfont", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/textfont/_colorsrc.py b/packages/python/plotly/plotly/validators/bar/textfont/_colorsrc.py index 21fd56e230..0c97f0ae94 100644 --- a/packages/python/plotly/plotly/validators/bar/textfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/bar/textfont/_colorsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="colorsrc", parent_name="bar.textfont", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/textfont/_family.py b/packages/python/plotly/plotly/validators/bar/textfont/_family.py index d392beebd6..4f87964bc9 100644 --- a/packages/python/plotly/plotly/validators/bar/textfont/_family.py +++ b/packages/python/plotly/plotly/validators/bar/textfont/_family.py @@ -9,7 +9,6 @@ def __init__(self, plotly_name="family", parent_name="bar.textfont", **kwargs): array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/textfont/_familysrc.py b/packages/python/plotly/plotly/validators/bar/textfont/_familysrc.py index f063337bf4..60bc444591 100644 --- a/packages/python/plotly/plotly/validators/bar/textfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/bar/textfont/_familysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="familysrc", parent_name="bar.textfont", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/textfont/_size.py b/packages/python/plotly/plotly/validators/bar/textfont/_size.py index c8952a7c1b..e63f7b1c9a 100644 --- a/packages/python/plotly/plotly/validators/bar/textfont/_size.py +++ b/packages/python/plotly/plotly/validators/bar/textfont/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="bar.textfont", **kwargs): array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/textfont/_sizesrc.py b/packages/python/plotly/plotly/validators/bar/textfont/_sizesrc.py index 58a888769b..90436d6fd5 100644 --- a/packages/python/plotly/plotly/validators/bar/textfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/bar/textfont/_sizesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="sizesrc", parent_name="bar.textfont", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/unselected/marker/_color.py b/packages/python/plotly/plotly/validators/bar/unselected/marker/_color.py index 11aebb88f6..2201471108 100644 --- a/packages/python/plotly/plotly/validators/bar/unselected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/bar/unselected/marker/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/unselected/marker/_opacity.py b/packages/python/plotly/plotly/validators/bar/unselected/marker/_opacity.py index 5fe2476f48..23e5625123 100644 --- a/packages/python/plotly/plotly/validators/bar/unselected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/bar/unselected/marker/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/bar/unselected/textfont/_color.py b/packages/python/plotly/plotly/validators/bar/unselected/textfont/_color.py index 1bc89eea0d..3897edb92d 100644 --- a/packages/python/plotly/plotly/validators/bar/unselected/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/bar/unselected/textfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_base.py b/packages/python/plotly/plotly/validators/barpolar/_base.py index af27c5e471..2e1a253071 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_base.py +++ b/packages/python/plotly/plotly/validators/barpolar/_base.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="base", parent_name="barpolar", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_basesrc.py b/packages/python/plotly/plotly/validators/barpolar/_basesrc.py index cfa0e84080..6b8bde76a7 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_basesrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/_basesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="basesrc", parent_name="barpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_customdata.py b/packages/python/plotly/plotly/validators/barpolar/_customdata.py index 214d14703f..92c051872a 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_customdata.py +++ b/packages/python/plotly/plotly/validators/barpolar/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="barpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_customdatasrc.py b/packages/python/plotly/plotly/validators/barpolar/_customdatasrc.py index 17d3a5e2c5..da397734d3 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="barpolar", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_dr.py b/packages/python/plotly/plotly/validators/barpolar/_dr.py index 8530466cd8..d993650d17 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_dr.py +++ b/packages/python/plotly/plotly/validators/barpolar/_dr.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="dr", parent_name="barpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_dtheta.py b/packages/python/plotly/plotly/validators/barpolar/_dtheta.py index 0fe0cb49b6..32b49e0575 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_dtheta.py +++ b/packages/python/plotly/plotly/validators/barpolar/_dtheta.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="dtheta", parent_name="barpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_hoverinfo.py b/packages/python/plotly/plotly/validators/barpolar/_hoverinfo.py index e26ca46644..581204c68b 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/barpolar/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="barpolar", **kwargs): edit_type=kwargs.pop("edit_type", "none"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["r", "theta", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/barpolar/_hoverinfosrc.py index 6e9fde0afe..27de03152c 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="barpolar", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_hovertemplate.py b/packages/python/plotly/plotly/validators/barpolar/_hovertemplate.py index 3b2b6e6f6a..04413e766d 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/barpolar/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="barpolar", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/barpolar/_hovertemplatesrc.py index 6aac0c2661..4ca63403b5 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/_hovertemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_hovertext.py b/packages/python/plotly/plotly/validators/barpolar/_hovertext.py index ebd30412ae..b93ac932a6 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_hovertext.py +++ b/packages/python/plotly/plotly/validators/barpolar/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="barpolar", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_hovertextsrc.py b/packages/python/plotly/plotly/validators/barpolar/_hovertextsrc.py index d23bbb7e7e..820da3d067 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="barpolar", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_ids.py b/packages/python/plotly/plotly/validators/barpolar/_ids.py index 6718b04978..f976707c4c 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_ids.py +++ b/packages/python/plotly/plotly/validators/barpolar/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="barpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_idssrc.py b/packages/python/plotly/plotly/validators/barpolar/_idssrc.py index b3854a9a56..d6098016dd 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_idssrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="barpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_legendgroup.py b/packages/python/plotly/plotly/validators/barpolar/_legendgroup.py index 12e6fd06ae..5cbc105581 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/barpolar/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="barpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_marker.py b/packages/python/plotly/plotly/validators/barpolar/_marker.py index 3ada20c3c6..64e03cd40b 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_marker.py +++ b/packages/python/plotly/plotly/validators/barpolar/_marker.py @@ -94,6 +94,10 @@ def __init__(self, plotly_name="marker", parent_name="barpolar", **kwargs): opacitysrc Sets the source reference on Chart Studio Cloud for opacity . + pattern + :class:`plotly.graph_objects.barpolar.marker.Pa + ttern` instance or dict with compatible + properties reversescale Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a diff --git a/packages/python/plotly/plotly/validators/barpolar/_meta.py b/packages/python/plotly/plotly/validators/barpolar/_meta.py index 831f61db73..b095392b19 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_meta.py +++ b/packages/python/plotly/plotly/validators/barpolar/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="barpolar", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_metasrc.py b/packages/python/plotly/plotly/validators/barpolar/_metasrc.py index e30b2b0a75..a4391eff6f 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_metasrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="barpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_name.py b/packages/python/plotly/plotly/validators/barpolar/_name.py index 757c162f5c..db2d50d3ff 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_name.py +++ b/packages/python/plotly/plotly/validators/barpolar/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="barpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_offset.py b/packages/python/plotly/plotly/validators/barpolar/_offset.py index bf1e9a9a03..0792b06a87 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_offset.py +++ b/packages/python/plotly/plotly/validators/barpolar/_offset.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="offset", parent_name="barpolar", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_offsetsrc.py b/packages/python/plotly/plotly/validators/barpolar/_offsetsrc.py index 26977336ef..62ad8f645c 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_offsetsrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/_offsetsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="offsetsrc", parent_name="barpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_opacity.py b/packages/python/plotly/plotly/validators/barpolar/_opacity.py index 1e64a88fd2..46fe4cf66f 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_opacity.py +++ b/packages/python/plotly/plotly/validators/barpolar/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="barpolar", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_r.py b/packages/python/plotly/plotly/validators/barpolar/_r.py index 57b4f4deb7..d586ac4d27 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_r.py +++ b/packages/python/plotly/plotly/validators/barpolar/_r.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="r", parent_name="barpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_r0.py b/packages/python/plotly/plotly/validators/barpolar/_r0.py index fddc120b4b..d78f27194a 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_r0.py +++ b/packages/python/plotly/plotly/validators/barpolar/_r0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="r0", parent_name="barpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_rsrc.py b/packages/python/plotly/plotly/validators/barpolar/_rsrc.py index 0cc4bb6b27..17abbd1500 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_rsrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/_rsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="rsrc", parent_name="barpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_selectedpoints.py b/packages/python/plotly/plotly/validators/barpolar/_selectedpoints.py index b4b0732ab8..d8b8b1293f 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_selectedpoints.py +++ b/packages/python/plotly/plotly/validators/barpolar/_selectedpoints.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="selectedpoints", parent_name="barpolar", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_showlegend.py b/packages/python/plotly/plotly/validators/barpolar/_showlegend.py index 8dfa7f66d4..25138ef7fa 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_showlegend.py +++ b/packages/python/plotly/plotly/validators/barpolar/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="barpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_subplot.py b/packages/python/plotly/plotly/validators/barpolar/_subplot.py index e79bf568a9..b474864abc 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_subplot.py +++ b/packages/python/plotly/plotly/validators/barpolar/_subplot.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="subplot", parent_name="barpolar", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "polar"), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_text.py b/packages/python/plotly/plotly/validators/barpolar/_text.py index 0c0dd10187..e39af83a85 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_text.py +++ b/packages/python/plotly/plotly/validators/barpolar/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="barpolar", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_textsrc.py b/packages/python/plotly/plotly/validators/barpolar/_textsrc.py index 681a816ef7..f1de2add3c 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_textsrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="barpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_theta.py b/packages/python/plotly/plotly/validators/barpolar/_theta.py index ef269c6c01..f3bb67b689 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_theta.py +++ b/packages/python/plotly/plotly/validators/barpolar/_theta.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="theta", parent_name="barpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_theta0.py b/packages/python/plotly/plotly/validators/barpolar/_theta0.py index 8444ce2807..c5ca82acfd 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_theta0.py +++ b/packages/python/plotly/plotly/validators/barpolar/_theta0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="theta0", parent_name="barpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_thetasrc.py b/packages/python/plotly/plotly/validators/barpolar/_thetasrc.py index c0297fab89..7bd367169e 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_thetasrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/_thetasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="thetasrc", parent_name="barpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_thetaunit.py b/packages/python/plotly/plotly/validators/barpolar/_thetaunit.py index 18833c1c7d..de63ecfcb2 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_thetaunit.py +++ b/packages/python/plotly/plotly/validators/barpolar/_thetaunit.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="thetaunit", parent_name="barpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["radians", "degrees", "gradians"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_uid.py b/packages/python/plotly/plotly/validators/barpolar/_uid.py index a5704a1c13..91509384d5 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_uid.py +++ b/packages/python/plotly/plotly/validators/barpolar/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="barpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_uirevision.py b/packages/python/plotly/plotly/validators/barpolar/_uirevision.py index 7b5e55ca9b..869a6a12a3 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_uirevision.py +++ b/packages/python/plotly/plotly/validators/barpolar/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="barpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_visible.py b/packages/python/plotly/plotly/validators/barpolar/_visible.py index 718ffc87a2..81d2cc719e 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_visible.py +++ b/packages/python/plotly/plotly/validators/barpolar/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="barpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_width.py b/packages/python/plotly/plotly/validators/barpolar/_width.py index 8c898e96de..075c987077 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_width.py +++ b/packages/python/plotly/plotly/validators/barpolar/_width.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="width", parent_name="barpolar", **kwargs): array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/_widthsrc.py b/packages/python/plotly/plotly/validators/barpolar/_widthsrc.py index 20a836c63a..3233dd1a0a 100644 --- a/packages/python/plotly/plotly/validators/barpolar/_widthsrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/_widthsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="widthsrc", parent_name="barpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_align.py index 74cbecb30f..1843300bfd 100644 --- a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_align.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_alignsrc.py index bc6745d7c4..cbd9989d03 100644 --- a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_bgcolor.py index 6f4e51bb67..32d667457e 100644 --- a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_bgcolorsrc.py index 63613a8953..1772f82fe2 100644 --- a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_bordercolor.py index 8d51aeee5b..c48344d706 100644 --- a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_bordercolorsrc.py index 3bf1e6d103..2beba3599c 100644 --- a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_bordercolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_namelength.py index de070203a4..a3bc2264fd 100644 --- a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_namelengthsrc.py index dbb6c76af6..affd0edeba 100644 --- a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/font/_color.py index 904c9114a4..fce077e416 100644 --- a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/font/_colorsrc.py index 87f6f40092..42c5851d73 100644 --- a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/font/_family.py index 606c6dfc93..46e9f9e147 100644 --- a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/font/_familysrc.py index b50290f89b..e8f0b4369a 100644 --- a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/font/_size.py index 28438af3c4..d318f35bca 100644 --- a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/font/_sizesrc.py index e8f40770c5..31f0876bb9 100644 --- a/packages/python/plotly/plotly/validators/barpolar/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/__init__.py b/packages/python/plotly/plotly/validators/barpolar/marker/__init__.py index bcbbad4466..f745b15a50 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/__init__.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/__init__.py @@ -3,6 +3,7 @@ if sys.version_info < (3, 7): from ._showscale import ShowscaleValidator from ._reversescale import ReversescaleValidator + from ._pattern import PatternValidator from ._opacitysrc import OpacitysrcValidator from ._opacity import OpacityValidator from ._line import LineValidator @@ -25,6 +26,7 @@ [ "._showscale.ShowscaleValidator", "._reversescale.ReversescaleValidator", + "._pattern.PatternValidator", "._opacitysrc.OpacitysrcValidator", "._opacity.OpacityValidator", "._line.LineValidator", diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/_autocolorscale.py b/packages/python/plotly/plotly/validators/barpolar/marker/_autocolorscale.py index 819b02d2e8..b7d8d663b0 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/_cauto.py b/packages/python/plotly/plotly/validators/barpolar/marker/_cauto.py index 21965fcfd4..7bfb6cd1b3 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/_cauto.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/_cauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cauto", parent_name="barpolar.marker", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/_cmax.py b/packages/python/plotly/plotly/validators/barpolar/marker/_cmax.py index 7248454665..3de53f1562 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/_cmax.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="barpolar.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/_cmid.py b/packages/python/plotly/plotly/validators/barpolar/marker/_cmid.py index 7ef70e6a5a..667339ae1e 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/_cmid.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="barpolar.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/_cmin.py b/packages/python/plotly/plotly/validators/barpolar/marker/_cmin.py index 5a8c81f385..c50de179ba 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/_cmin.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="barpolar.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/_color.py b/packages/python/plotly/plotly/validators/barpolar/marker/_color.py index f33d502b67..72ffd661c7 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/_color.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/_color.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="color", parent_name="barpolar.marker", **kwargs) parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop("colorscale_path", "barpolar.marker.colorscale"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/_coloraxis.py b/packages/python/plotly/plotly/validators/barpolar/marker/_coloraxis.py index 5f2f951ace..fe97121757 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/_coloraxis.py @@ -11,6 +11,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/_colorbar.py b/packages/python/plotly/plotly/validators/barpolar/marker/_colorbar.py index 00d3cd8c12..f325cd3ee7 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/_colorbar.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/_colorbar.py @@ -148,6 +148,12 @@ def __init__(self, plotly_name="colorbar", parent_name="barpolar.marker", **kwar ts), sets the default property values to use for elements of barpolar.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/_colorscale.py b/packages/python/plotly/plotly/validators/barpolar/marker/_colorscale.py index a7307a5449..e833bda0d0 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/_colorscale.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/_colorsrc.py b/packages/python/plotly/plotly/validators/barpolar/marker/_colorsrc.py index a9771f4153..fd10655d62 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/_colorsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="colorsrc", parent_name="barpolar.marker", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/_opacity.py b/packages/python/plotly/plotly/validators/barpolar/marker/_opacity.py index 706a0c4cc8..5467b55123 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/_opacity.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="opacity", parent_name="barpolar.marker", **kwarg edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/_opacitysrc.py b/packages/python/plotly/plotly/validators/barpolar/marker/_opacitysrc.py index 52b9926b7d..44d0075bcd 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/_opacitysrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/_opacitysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/_pattern.py b/packages/python/plotly/plotly/validators/barpolar/marker/_pattern.py new file mode 100644 index 0000000000..82e4c53431 --- /dev/null +++ b/packages/python/plotly/plotly/validators/barpolar/marker/_pattern.py @@ -0,0 +1,45 @@ +import _plotly_utils.basevalidators + + +class PatternValidator(_plotly_utils.basevalidators.CompoundValidator): + def __init__(self, plotly_name="pattern", parent_name="barpolar.marker", **kwargs): + super(PatternValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + data_class_str=kwargs.pop("data_class_str", "Pattern"), + data_docs=kwargs.pop( + "data_docs", + """ + bgcolor + Sets the background color of the pattern fill. + Defaults to a transparent background. + bgcolorsrc + Sets the source reference on Chart Studio Cloud + for bgcolor . + shape + Sets the shape of the pattern fill. By default, + no pattern is used for filling the area. + shapesrc + Sets the source reference on Chart Studio Cloud + for shape . + size + Sets the size of unit squares of the pattern + fill in pixels, which corresponds to the + interval of repetition of the pattern. + sizesrc + Sets the source reference on Chart Studio Cloud + for size . + solidity + Sets the solidity of the pattern fill. Solidity + is roughly the fraction of the area filled by + the pattern. Solidity of 0 shows only the + background color without pattern and solidty of + 1 shows only the foreground color without + pattern. + soliditysrc + Sets the source reference on Chart Studio Cloud + for solidity . +""", + ), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/_reversescale.py b/packages/python/plotly/plotly/validators/barpolar/marker/_reversescale.py index 3a65f734d2..20253ac2e3 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/_reversescale.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/_showscale.py b/packages/python/plotly/plotly/validators/barpolar/marker/_showscale.py index 2f86edef1f..de1263d659 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/_showscale.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/_showscale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/__init__.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_bgcolor.py index 3e7e391596..339c41393d 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_bordercolor.py index 5fd268ef71..1d0f4e46ff 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_bordercolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_borderwidth.py index ae16df6916..c224a3164c 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_borderwidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_dtick.py index 28785aaeb1..a43d533df8 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_exponentformat.py index 15e025ae3a..09d14b1dd2 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_exponentformat.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_len.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_len.py index 32c733ae7c..63345111c5 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_len.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_lenmode.py index 6445ff8226..6e5910d29a 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_lenmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_minexponent.py index 4133cb8535..1c9a670678 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_minexponent.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_nticks.py index 313ad252bc..ce320d5099 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_outlinecolor.py index d8db6bcda7..db64f10fef 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_outlinecolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_outlinewidth.py index df758d29ad..a64925ce9f 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_outlinewidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_separatethousands.py index 9fcf2f5bce..154ee778b1 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_showexponent.py index 3fb6ebec26..d498b0cba0 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_showexponent.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_showticklabels.py index de1e2840fb..a0c1b66f5f 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_showticklabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_showtickprefix.py index 5dc277c60c..4c963143e8 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_showtickprefix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_showticksuffix.py index f1bf77c4de..531c98495d 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_showticksuffix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_thickness.py index 21f21a323c..de7221110d 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_thicknessmode.py index dc70b4e793..735e4c86f0 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_thicknessmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tick0.py index 36bfbfa4db..404c6e7add 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickangle.py index 6c9d0d4979..c32c9b55bc 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickcolor.py index 355e938a8a..cc75fad920 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickformat.py index 904a7b42df..18f0e89a2a 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..69ff83fd19 --- /dev/null +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="barpolar.marker.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "colorbars"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticklabelposition.py index 667d6ee9c8..a3d8e8c192 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticklen.py index 7d8c190fa7..67ede0fd47 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickmode.py index aa1f9f90c5..17cbf87551 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickprefix.py index b0c5417e26..69fd69e7cf 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticks.py index 101bf393fd..0faa58e2fa 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticksuffix.py index f4d65d27c6..70c3b345b3 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticktext.py index d2a7fdcab0..634bf407f5 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticktextsrc.py index cb23200780..c23426c156 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ticktextsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickvals.py index 80029e6859..b2b8b64363 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickvalssrc.py index bd1ee07f46..acfde48d7e 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickvalssrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickwidth.py index b3df442f4b..fa65ce7de4 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_x.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_x.py index b8a23d47f9..85797b4cc6 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_x.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_xanchor.py index 13a45f197b..f23d1e7656 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_xpad.py index 1e39cb33b5..18733e68e7 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_xpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_y.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_y.py index 1189a0304a..a3eaa8f26e 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_y.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_yanchor.py index 9910fb1678..4898400817 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ypad.py index 1e2179c3c5..95502f2fdb 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/_ypad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickfont/_color.py index e73a994cba..fb61c65c7e 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickfont/_family.py index 7858a1e804..a250fe9484 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickfont/_size.py index c9dd802a44..52f00d8064 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickformatstop/_dtickrange.py index 3d500b8a8f..9afa82fd83 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "colorbars"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickformatstop/_enabled.py index e374568b58..bbb7de6080 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickformatstop/_name.py index b32fb718e5..4e991f0f1d 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickformatstop/_templateitemname.py index c1fb615128..4458396bba 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickformatstop/_value.py index c7c303df31..aa9e14dc36 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/title/_side.py index ed985dd9ce..fdd130ab8e 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/title/_side.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/title/_text.py index 25606f239c..249bfa7b7b 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/title/font/_color.py index e77c6aaa4d..f98c340495 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/title/font/_family.py index d5fc7fc769..0aae74365f 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/title/font/_size.py index b646c86ecf..7c9a311da9 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/colorbar/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/line/_autocolorscale.py b/packages/python/plotly/plotly/validators/barpolar/marker/line/_autocolorscale.py index 56ae9856f0..7d0a88ce43 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/line/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/line/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/line/_cauto.py b/packages/python/plotly/plotly/validators/barpolar/marker/line/_cauto.py index 476270cabe..2d33cf7d18 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/line/_cauto.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/line/_cauto.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/line/_cmax.py b/packages/python/plotly/plotly/validators/barpolar/marker/line/_cmax.py index 58c3716d17..da87456994 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/line/_cmax.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/line/_cmax.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/line/_cmid.py b/packages/python/plotly/plotly/validators/barpolar/marker/line/_cmid.py index 784c517180..a628a5bd02 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/line/_cmid.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/line/_cmid.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/line/_cmin.py b/packages/python/plotly/plotly/validators/barpolar/marker/line/_cmin.py index b00d2cd8d7..ee188a7ad0 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/line/_cmin.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/line/_cmin.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/line/_color.py b/packages/python/plotly/plotly/validators/barpolar/marker/line/_color.py index 11da8c5d80..46bf8fe35d 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/line/_color.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/line/_color.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop( "colorscale_path", "barpolar.marker.line.colorscale" ), diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/line/_coloraxis.py b/packages/python/plotly/plotly/validators/barpolar/marker/line/_coloraxis.py index 6c1d240843..c1ceff87bd 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/line/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/line/_coloraxis.py @@ -11,6 +11,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/line/_colorscale.py b/packages/python/plotly/plotly/validators/barpolar/marker/line/_colorscale.py index 0e242df9fe..df55357443 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/line/_colorscale.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/line/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/line/_colorsrc.py b/packages/python/plotly/plotly/validators/barpolar/marker/line/_colorsrc.py index 1919509231..51b55eaa8d 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/line/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/line/_reversescale.py b/packages/python/plotly/plotly/validators/barpolar/marker/line/_reversescale.py index 741a0e2032..df241bce71 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/line/_reversescale.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/line/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/line/_width.py b/packages/python/plotly/plotly/validators/barpolar/marker/line/_width.py index 0ddce916ff..0d0ebe1e04 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/line/_width.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/line/_width.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/line/_widthsrc.py b/packages/python/plotly/plotly/validators/barpolar/marker/line/_widthsrc.py index f3f07298c7..8e4663e7c0 100644 --- a/packages/python/plotly/plotly/validators/barpolar/marker/line/_widthsrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/line/_widthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/pattern/__init__.py b/packages/python/plotly/plotly/validators/barpolar/marker/pattern/__init__.py new file mode 100644 index 0000000000..27ed67a3c2 --- /dev/null +++ b/packages/python/plotly/plotly/validators/barpolar/marker/pattern/__init__.py @@ -0,0 +1,28 @@ +import sys + +if sys.version_info < (3, 7): + from ._soliditysrc import SoliditysrcValidator + from ._solidity import SolidityValidator + from ._sizesrc import SizesrcValidator + from ._size import SizeValidator + from ._shapesrc import ShapesrcValidator + from ._shape import ShapeValidator + from ._bgcolorsrc import BgcolorsrcValidator + from ._bgcolor import BgcolorValidator +else: + from _plotly_utils.importers import relative_import + + __all__, __getattr__, __dir__ = relative_import( + __name__, + [], + [ + "._soliditysrc.SoliditysrcValidator", + "._solidity.SolidityValidator", + "._sizesrc.SizesrcValidator", + "._size.SizeValidator", + "._shapesrc.ShapesrcValidator", + "._shape.ShapeValidator", + "._bgcolorsrc.BgcolorsrcValidator", + "._bgcolor.BgcolorValidator", + ], + ) diff --git a/packages/python/plotly/plotly/validators/area/marker/_color.py b/packages/python/plotly/plotly/validators/barpolar/marker/pattern/_bgcolor.py similarity index 50% rename from packages/python/plotly/plotly/validators/area/marker/_color.py rename to packages/python/plotly/plotly/validators/barpolar/marker/pattern/_bgcolor.py index 098d66055e..89c7a64df6 100644 --- a/packages/python/plotly/plotly/validators/area/marker/_color.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/pattern/_bgcolor.py @@ -1,13 +1,14 @@ import _plotly_utils.basevalidators -class ColorValidator(_plotly_utils.basevalidators.ColorValidator): - def __init__(self, plotly_name="color", parent_name="area.marker", **kwargs): - super(ColorValidator, self).__init__( +class BgcolorValidator(_plotly_utils.basevalidators.ColorValidator): + def __init__( + self, plotly_name="bgcolor", parent_name="barpolar.marker.pattern", **kwargs + ): + super(BgcolorValidator, self).__init__( plotly_name=plotly_name, parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/pattern/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/barpolar/marker/pattern/_bgcolorsrc.py new file mode 100644 index 0000000000..5ae9b22621 --- /dev/null +++ b/packages/python/plotly/plotly/validators/barpolar/marker/pattern/_bgcolorsrc.py @@ -0,0 +1,13 @@ +import _plotly_utils.basevalidators + + +class BgcolorsrcValidator(_plotly_utils.basevalidators.SrcValidator): + def __init__( + self, plotly_name="bgcolorsrc", parent_name="barpolar.marker.pattern", **kwargs + ): + super(BgcolorsrcValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/pattern/_shape.py b/packages/python/plotly/plotly/validators/barpolar/marker/pattern/_shape.py new file mode 100644 index 0000000000..0d9cb344af --- /dev/null +++ b/packages/python/plotly/plotly/validators/barpolar/marker/pattern/_shape.py @@ -0,0 +1,15 @@ +import _plotly_utils.basevalidators + + +class ShapeValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, plotly_name="shape", parent_name="barpolar.marker.pattern", **kwargs + ): + super(ShapeValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + array_ok=kwargs.pop("array_ok", True), + edit_type=kwargs.pop("edit_type", "style"), + values=kwargs.pop("values", ["", "/", "\\", "x", "-", "|", "+", "."]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/pattern/_shapesrc.py b/packages/python/plotly/plotly/validators/barpolar/marker/pattern/_shapesrc.py new file mode 100644 index 0000000000..da92609e2f --- /dev/null +++ b/packages/python/plotly/plotly/validators/barpolar/marker/pattern/_shapesrc.py @@ -0,0 +1,13 @@ +import _plotly_utils.basevalidators + + +class ShapesrcValidator(_plotly_utils.basevalidators.SrcValidator): + def __init__( + self, plotly_name="shapesrc", parent_name="barpolar.marker.pattern", **kwargs + ): + super(ShapesrcValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/area/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/barpolar/marker/pattern/_size.py similarity index 60% rename from packages/python/plotly/plotly/validators/area/hoverlabel/font/_size.py rename to packages/python/plotly/plotly/validators/barpolar/marker/pattern/_size.py index 79faf6a1c7..6a3130c39c 100644 --- a/packages/python/plotly/plotly/validators/area/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/pattern/_size.py @@ -3,14 +3,13 @@ class SizeValidator(_plotly_utils.basevalidators.NumberValidator): def __init__( - self, plotly_name="size", parent_name="area.hoverlabel.font", **kwargs + self, plotly_name="size", parent_name="barpolar.marker.pattern", **kwargs ): super(SizeValidator, self).__init__( plotly_name=plotly_name, parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), - edit_type=kwargs.pop("edit_type", "none"), - min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), + edit_type=kwargs.pop("edit_type", "style"), + min=kwargs.pop("min", 0), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/area/marker/_sizesrc.py b/packages/python/plotly/plotly/validators/barpolar/marker/pattern/_sizesrc.py similarity index 70% rename from packages/python/plotly/plotly/validators/area/marker/_sizesrc.py rename to packages/python/plotly/plotly/validators/barpolar/marker/pattern/_sizesrc.py index a05baddf48..f7ce0749d5 100644 --- a/packages/python/plotly/plotly/validators/area/marker/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/barpolar/marker/pattern/_sizesrc.py @@ -2,11 +2,12 @@ class SizesrcValidator(_plotly_utils.basevalidators.SrcValidator): - def __init__(self, plotly_name="sizesrc", parent_name="area.marker", **kwargs): + def __init__( + self, plotly_name="sizesrc", parent_name="barpolar.marker.pattern", **kwargs + ): super(SizesrcValidator, self).__init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/pattern/_solidity.py b/packages/python/plotly/plotly/validators/barpolar/marker/pattern/_solidity.py new file mode 100644 index 0000000000..c61b03f26f --- /dev/null +++ b/packages/python/plotly/plotly/validators/barpolar/marker/pattern/_solidity.py @@ -0,0 +1,16 @@ +import _plotly_utils.basevalidators + + +class SolidityValidator(_plotly_utils.basevalidators.NumberValidator): + def __init__( + self, plotly_name="solidity", parent_name="barpolar.marker.pattern", **kwargs + ): + super(SolidityValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + array_ok=kwargs.pop("array_ok", True), + edit_type=kwargs.pop("edit_type", "style"), + max=kwargs.pop("max", 1), + min=kwargs.pop("min", 0), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/barpolar/marker/pattern/_soliditysrc.py b/packages/python/plotly/plotly/validators/barpolar/marker/pattern/_soliditysrc.py new file mode 100644 index 0000000000..0f746589ed --- /dev/null +++ b/packages/python/plotly/plotly/validators/barpolar/marker/pattern/_soliditysrc.py @@ -0,0 +1,13 @@ +import _plotly_utils.basevalidators + + +class SoliditysrcValidator(_plotly_utils.basevalidators.SrcValidator): + def __init__( + self, plotly_name="soliditysrc", parent_name="barpolar.marker.pattern", **kwargs + ): + super(SoliditysrcValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/barpolar/selected/marker/_color.py b/packages/python/plotly/plotly/validators/barpolar/selected/marker/_color.py index 17b4c3d596..88816287e7 100644 --- a/packages/python/plotly/plotly/validators/barpolar/selected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/barpolar/selected/marker/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/selected/marker/_opacity.py b/packages/python/plotly/plotly/validators/barpolar/selected/marker/_opacity.py index df1f067542..7257dd7161 100644 --- a/packages/python/plotly/plotly/validators/barpolar/selected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/barpolar/selected/marker/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/selected/textfont/_color.py b/packages/python/plotly/plotly/validators/barpolar/selected/textfont/_color.py index fae2fafded..f12fc55faa 100644 --- a/packages/python/plotly/plotly/validators/barpolar/selected/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/barpolar/selected/textfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/barpolar/stream/_maxpoints.py index 03322849fd..dcfeb7df98 100644 --- a/packages/python/plotly/plotly/validators/barpolar/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/barpolar/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/stream/_token.py b/packages/python/plotly/plotly/validators/barpolar/stream/_token.py index bae16c69c3..83ecd7ced3 100644 --- a/packages/python/plotly/plotly/validators/barpolar/stream/_token.py +++ b/packages/python/plotly/plotly/validators/barpolar/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="barpolar.stream", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/unselected/marker/_color.py b/packages/python/plotly/plotly/validators/barpolar/unselected/marker/_color.py index aef67c53ea..f8ad5e2bf4 100644 --- a/packages/python/plotly/plotly/validators/barpolar/unselected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/barpolar/unselected/marker/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/unselected/marker/_opacity.py b/packages/python/plotly/plotly/validators/barpolar/unselected/marker/_opacity.py index ea9f2835bb..d1d16a3cb0 100644 --- a/packages/python/plotly/plotly/validators/barpolar/unselected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/barpolar/unselected/marker/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/barpolar/unselected/textfont/_color.py b/packages/python/plotly/plotly/validators/barpolar/unselected/textfont/_color.py index 3ac35becaa..87305bbae5 100644 --- a/packages/python/plotly/plotly/validators/barpolar/unselected/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/barpolar/unselected/textfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/__init__.py b/packages/python/plotly/plotly/validators/box/__init__.py index 5d5722cdca..8e32e91642 100644 --- a/packages/python/plotly/plotly/validators/box/__init__.py +++ b/packages/python/plotly/plotly/validators/box/__init__.py @@ -5,6 +5,7 @@ from ._yperiodalignment import YperiodalignmentValidator from ._yperiod0 import Yperiod0Validator from ._yperiod import YperiodValidator + from ._yhoverformat import YhoverformatValidator from ._ycalendar import YcalendarValidator from ._yaxis import YaxisValidator from ._y0 import Y0Validator @@ -13,6 +14,7 @@ from ._xperiodalignment import XperiodalignmentValidator from ._xperiod0 import Xperiod0Validator from ._xperiod import XperiodValidator + from ._xhoverformat import XhoverformatValidator from ._xcalendar import XcalendarValidator from ._xaxis import XaxisValidator from ._x0 import X0Validator @@ -88,6 +90,7 @@ "._yperiodalignment.YperiodalignmentValidator", "._yperiod0.Yperiod0Validator", "._yperiod.YperiodValidator", + "._yhoverformat.YhoverformatValidator", "._ycalendar.YcalendarValidator", "._yaxis.YaxisValidator", "._y0.Y0Validator", @@ -96,6 +99,7 @@ "._xperiodalignment.XperiodalignmentValidator", "._xperiod0.Xperiod0Validator", "._xperiod.XperiodValidator", + "._xhoverformat.XhoverformatValidator", "._xcalendar.XcalendarValidator", "._xaxis.XaxisValidator", "._x0.X0Validator", diff --git a/packages/python/plotly/plotly/validators/box/_alignmentgroup.py b/packages/python/plotly/plotly/validators/box/_alignmentgroup.py index a77a1caaa2..a0f1a3ef54 100644 --- a/packages/python/plotly/plotly/validators/box/_alignmentgroup.py +++ b/packages/python/plotly/plotly/validators/box/_alignmentgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="alignmentgroup", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_boxmean.py b/packages/python/plotly/plotly/validators/box/_boxmean.py index 05c5ccf272..4346cb437c 100644 --- a/packages/python/plotly/plotly/validators/box/_boxmean.py +++ b/packages/python/plotly/plotly/validators/box/_boxmean.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="boxmean", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", [True, "sd", False]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_boxpoints.py b/packages/python/plotly/plotly/validators/box/_boxpoints.py index de7070c75c..057f9db02b 100644 --- a/packages/python/plotly/plotly/validators/box/_boxpoints.py +++ b/packages/python/plotly/plotly/validators/box/_boxpoints.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="boxpoints", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", ["all", "outliers", "suspectedoutliers", False] ), diff --git a/packages/python/plotly/plotly/validators/box/_customdata.py b/packages/python/plotly/plotly/validators/box/_customdata.py index f41cd763f2..327a99d0d1 100644 --- a/packages/python/plotly/plotly/validators/box/_customdata.py +++ b/packages/python/plotly/plotly/validators/box/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_customdatasrc.py b/packages/python/plotly/plotly/validators/box/_customdatasrc.py index c3804e79bb..4764e2ec0e 100644 --- a/packages/python/plotly/plotly/validators/box/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/box/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_dx.py b/packages/python/plotly/plotly/validators/box/_dx.py index 6c41848232..362c36e82b 100644 --- a/packages/python/plotly/plotly/validators/box/_dx.py +++ b/packages/python/plotly/plotly/validators/box/_dx.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="dx", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_dy.py b/packages/python/plotly/plotly/validators/box/_dy.py index 0284e018bb..a7918f5b46 100644 --- a/packages/python/plotly/plotly/validators/box/_dy.py +++ b/packages/python/plotly/plotly/validators/box/_dy.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="dy", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_fillcolor.py b/packages/python/plotly/plotly/validators/box/_fillcolor.py index 27c68b37a5..3d9aac394f 100644 --- a/packages/python/plotly/plotly/validators/box/_fillcolor.py +++ b/packages/python/plotly/plotly/validators/box/_fillcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="fillcolor", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_hoverinfo.py b/packages/python/plotly/plotly/validators/box/_hoverinfo.py index 8ad9ad6074..52e07d787b 100644 --- a/packages/python/plotly/plotly/validators/box/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/box/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="box", **kwargs): edit_type=kwargs.pop("edit_type", "none"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["x", "y", "z", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/box/_hoverinfosrc.py index f170a72a42..333bceb585 100644 --- a/packages/python/plotly/plotly/validators/box/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/box/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_hoveron.py b/packages/python/plotly/plotly/validators/box/_hoveron.py index cf2517c3c8..4f7c04e8bc 100644 --- a/packages/python/plotly/plotly/validators/box/_hoveron.py +++ b/packages/python/plotly/plotly/validators/box/_hoveron.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hoveron", parent_name="box", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), flags=kwargs.pop("flags", ["boxes", "points"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_hovertemplate.py b/packages/python/plotly/plotly/validators/box/_hovertemplate.py index a73d12d61f..fc95e6ae34 100644 --- a/packages/python/plotly/plotly/validators/box/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/box/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="box", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/box/_hovertemplatesrc.py index 028843a91e..427ab37888 100644 --- a/packages/python/plotly/plotly/validators/box/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/box/_hovertemplatesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertemplatesrc", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_hovertext.py b/packages/python/plotly/plotly/validators/box/_hovertext.py index 93a23be23f..56e833cf02 100644 --- a/packages/python/plotly/plotly/validators/box/_hovertext.py +++ b/packages/python/plotly/plotly/validators/box/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="box", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_hovertextsrc.py b/packages/python/plotly/plotly/validators/box/_hovertextsrc.py index 1f64f8035f..f16c7e0480 100644 --- a/packages/python/plotly/plotly/validators/box/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/box/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_ids.py b/packages/python/plotly/plotly/validators/box/_ids.py index ecfdcee367..91449a71e1 100644 --- a/packages/python/plotly/plotly/validators/box/_ids.py +++ b/packages/python/plotly/plotly/validators/box/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_idssrc.py b/packages/python/plotly/plotly/validators/box/_idssrc.py index cb8e8d0141..697b8b6893 100644 --- a/packages/python/plotly/plotly/validators/box/_idssrc.py +++ b/packages/python/plotly/plotly/validators/box/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_jitter.py b/packages/python/plotly/plotly/validators/box/_jitter.py index f489ae389c..6a11038455 100644 --- a/packages/python/plotly/plotly/validators/box/_jitter.py +++ b/packages/python/plotly/plotly/validators/box/_jitter.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="jitter", parent_name="box", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_legendgroup.py b/packages/python/plotly/plotly/validators/box/_legendgroup.py index ab80557279..945b5740c3 100644 --- a/packages/python/plotly/plotly/validators/box/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/box/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_lowerfence.py b/packages/python/plotly/plotly/validators/box/_lowerfence.py index 04c62bd8fa..1cc73fdf35 100644 --- a/packages/python/plotly/plotly/validators/box/_lowerfence.py +++ b/packages/python/plotly/plotly/validators/box/_lowerfence.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="lowerfence", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_lowerfencesrc.py b/packages/python/plotly/plotly/validators/box/_lowerfencesrc.py index 37d0b3119a..a216879311 100644 --- a/packages/python/plotly/plotly/validators/box/_lowerfencesrc.py +++ b/packages/python/plotly/plotly/validators/box/_lowerfencesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="lowerfencesrc", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_mean.py b/packages/python/plotly/plotly/validators/box/_mean.py index 598fb73c39..1062cab1b7 100644 --- a/packages/python/plotly/plotly/validators/box/_mean.py +++ b/packages/python/plotly/plotly/validators/box/_mean.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="mean", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_meansrc.py b/packages/python/plotly/plotly/validators/box/_meansrc.py index 8903c9aaf9..6e0ff9d9c8 100644 --- a/packages/python/plotly/plotly/validators/box/_meansrc.py +++ b/packages/python/plotly/plotly/validators/box/_meansrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="meansrc", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_median.py b/packages/python/plotly/plotly/validators/box/_median.py index e440d29418..6fa363f3f5 100644 --- a/packages/python/plotly/plotly/validators/box/_median.py +++ b/packages/python/plotly/plotly/validators/box/_median.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="median", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_mediansrc.py b/packages/python/plotly/plotly/validators/box/_mediansrc.py index b29453d107..16f29a48b7 100644 --- a/packages/python/plotly/plotly/validators/box/_mediansrc.py +++ b/packages/python/plotly/plotly/validators/box/_mediansrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="mediansrc", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_meta.py b/packages/python/plotly/plotly/validators/box/_meta.py index 1f21821eb4..92da3c7b94 100644 --- a/packages/python/plotly/plotly/validators/box/_meta.py +++ b/packages/python/plotly/plotly/validators/box/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="box", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_metasrc.py b/packages/python/plotly/plotly/validators/box/_metasrc.py index 202a7c96cf..714b272689 100644 --- a/packages/python/plotly/plotly/validators/box/_metasrc.py +++ b/packages/python/plotly/plotly/validators/box/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_name.py b/packages/python/plotly/plotly/validators/box/_name.py index d599027809..0f35cc65be 100644 --- a/packages/python/plotly/plotly/validators/box/_name.py +++ b/packages/python/plotly/plotly/validators/box/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_notched.py b/packages/python/plotly/plotly/validators/box/_notched.py index ce74948850..976f826954 100644 --- a/packages/python/plotly/plotly/validators/box/_notched.py +++ b/packages/python/plotly/plotly/validators/box/_notched.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="notched", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_notchspan.py b/packages/python/plotly/plotly/validators/box/_notchspan.py index ded005c6fc..ee1f015de1 100644 --- a/packages/python/plotly/plotly/validators/box/_notchspan.py +++ b/packages/python/plotly/plotly/validators/box/_notchspan.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="notchspan", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_notchspansrc.py b/packages/python/plotly/plotly/validators/box/_notchspansrc.py index 290db564b0..3caa89b439 100644 --- a/packages/python/plotly/plotly/validators/box/_notchspansrc.py +++ b/packages/python/plotly/plotly/validators/box/_notchspansrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="notchspansrc", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_notchwidth.py b/packages/python/plotly/plotly/validators/box/_notchwidth.py index b119148b92..2582d0a5f2 100644 --- a/packages/python/plotly/plotly/validators/box/_notchwidth.py +++ b/packages/python/plotly/plotly/validators/box/_notchwidth.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="notchwidth", parent_name="box", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 0.5), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_offsetgroup.py b/packages/python/plotly/plotly/validators/box/_offsetgroup.py index 8b6c0083c3..abc3d45398 100644 --- a/packages/python/plotly/plotly/validators/box/_offsetgroup.py +++ b/packages/python/plotly/plotly/validators/box/_offsetgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="offsetgroup", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_opacity.py b/packages/python/plotly/plotly/validators/box/_opacity.py index fe5b5197c1..705c29a097 100644 --- a/packages/python/plotly/plotly/validators/box/_opacity.py +++ b/packages/python/plotly/plotly/validators/box/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="box", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_orientation.py b/packages/python/plotly/plotly/validators/box/_orientation.py index 86a8aa9783..2481f6ae81 100644 --- a/packages/python/plotly/plotly/validators/box/_orientation.py +++ b/packages/python/plotly/plotly/validators/box/_orientation.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="orientation", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["v", "h"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_pointpos.py b/packages/python/plotly/plotly/validators/box/_pointpos.py index 761a002974..25db1e346c 100644 --- a/packages/python/plotly/plotly/validators/box/_pointpos.py +++ b/packages/python/plotly/plotly/validators/box/_pointpos.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="pointpos", parent_name="box", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 2), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_q1.py b/packages/python/plotly/plotly/validators/box/_q1.py index 061fc64151..ce765629b2 100644 --- a/packages/python/plotly/plotly/validators/box/_q1.py +++ b/packages/python/plotly/plotly/validators/box/_q1.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="q1", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_q1src.py b/packages/python/plotly/plotly/validators/box/_q1src.py index a49f2582dd..0e91502b42 100644 --- a/packages/python/plotly/plotly/validators/box/_q1src.py +++ b/packages/python/plotly/plotly/validators/box/_q1src.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="q1src", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_q3.py b/packages/python/plotly/plotly/validators/box/_q3.py index d9fd1d3df3..405df3f8c8 100644 --- a/packages/python/plotly/plotly/validators/box/_q3.py +++ b/packages/python/plotly/plotly/validators/box/_q3.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="q3", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_q3src.py b/packages/python/plotly/plotly/validators/box/_q3src.py index fbec1f285a..68db5a2fce 100644 --- a/packages/python/plotly/plotly/validators/box/_q3src.py +++ b/packages/python/plotly/plotly/validators/box/_q3src.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="q3src", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_quartilemethod.py b/packages/python/plotly/plotly/validators/box/_quartilemethod.py index 57d422a924..fdd77d1744 100644 --- a/packages/python/plotly/plotly/validators/box/_quartilemethod.py +++ b/packages/python/plotly/plotly/validators/box/_quartilemethod.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="quartilemethod", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["linear", "exclusive", "inclusive"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_sd.py b/packages/python/plotly/plotly/validators/box/_sd.py index 7b1e240400..b938e6f384 100644 --- a/packages/python/plotly/plotly/validators/box/_sd.py +++ b/packages/python/plotly/plotly/validators/box/_sd.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="sd", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_sdsrc.py b/packages/python/plotly/plotly/validators/box/_sdsrc.py index 0d95374a02..a69ebd37c7 100644 --- a/packages/python/plotly/plotly/validators/box/_sdsrc.py +++ b/packages/python/plotly/plotly/validators/box/_sdsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="sdsrc", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_selectedpoints.py b/packages/python/plotly/plotly/validators/box/_selectedpoints.py index d9fd358144..77ea41b5f8 100644 --- a/packages/python/plotly/plotly/validators/box/_selectedpoints.py +++ b/packages/python/plotly/plotly/validators/box/_selectedpoints.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="selectedpoints", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_showlegend.py b/packages/python/plotly/plotly/validators/box/_showlegend.py index 87a98f8ddd..b9d257bca8 100644 --- a/packages/python/plotly/plotly/validators/box/_showlegend.py +++ b/packages/python/plotly/plotly/validators/box/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_text.py b/packages/python/plotly/plotly/validators/box/_text.py index fe17f2cc81..9a24c51fec 100644 --- a/packages/python/plotly/plotly/validators/box/_text.py +++ b/packages/python/plotly/plotly/validators/box/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="box", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_textsrc.py b/packages/python/plotly/plotly/validators/box/_textsrc.py index 88038aa6e1..0b44152085 100644 --- a/packages/python/plotly/plotly/validators/box/_textsrc.py +++ b/packages/python/plotly/plotly/validators/box/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_uid.py b/packages/python/plotly/plotly/validators/box/_uid.py index 3a17242162..43644590d4 100644 --- a/packages/python/plotly/plotly/validators/box/_uid.py +++ b/packages/python/plotly/plotly/validators/box/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_uirevision.py b/packages/python/plotly/plotly/validators/box/_uirevision.py index ffc3948eea..ecd0e24fe6 100644 --- a/packages/python/plotly/plotly/validators/box/_uirevision.py +++ b/packages/python/plotly/plotly/validators/box/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_upperfence.py b/packages/python/plotly/plotly/validators/box/_upperfence.py index 3bfec0f5a5..7107c26ae6 100644 --- a/packages/python/plotly/plotly/validators/box/_upperfence.py +++ b/packages/python/plotly/plotly/validators/box/_upperfence.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="upperfence", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_upperfencesrc.py b/packages/python/plotly/plotly/validators/box/_upperfencesrc.py index f69fbf6c01..805571d599 100644 --- a/packages/python/plotly/plotly/validators/box/_upperfencesrc.py +++ b/packages/python/plotly/plotly/validators/box/_upperfencesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="upperfencesrc", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_visible.py b/packages/python/plotly/plotly/validators/box/_visible.py index abfee3d2f9..032b00cd5d 100644 --- a/packages/python/plotly/plotly/validators/box/_visible.py +++ b/packages/python/plotly/plotly/validators/box/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_whiskerwidth.py b/packages/python/plotly/plotly/validators/box/_whiskerwidth.py index cf857e7234..6847184ad0 100644 --- a/packages/python/plotly/plotly/validators/box/_whiskerwidth.py +++ b/packages/python/plotly/plotly/validators/box/_whiskerwidth.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="whiskerwidth", parent_name="box", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_width.py b/packages/python/plotly/plotly/validators/box/_width.py index 5803e1908a..e5610cdf47 100644 --- a/packages/python/plotly/plotly/validators/box/_width.py +++ b/packages/python/plotly/plotly/validators/box/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="box", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_x.py b/packages/python/plotly/plotly/validators/box/_x.py index 77503c4d8e..0b516aebcf 100644 --- a/packages/python/plotly/plotly/validators/box/_x.py +++ b/packages/python/plotly/plotly/validators/box/_x.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_x0.py b/packages/python/plotly/plotly/validators/box/_x0.py index 0a24ada87b..901d79ab06 100644 --- a/packages/python/plotly/plotly/validators/box/_x0.py +++ b/packages/python/plotly/plotly/validators/box/_x0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x0", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_xaxis.py b/packages/python/plotly/plotly/validators/box/_xaxis.py index 7d9bc8f7fa..f51886ac71 100644 --- a/packages/python/plotly/plotly/validators/box/_xaxis.py +++ b/packages/python/plotly/plotly/validators/box/_xaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xaxis", parent_name="box", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "x"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_xcalendar.py b/packages/python/plotly/plotly/validators/box/_xcalendar.py index b05de9619e..2ba6e4460c 100644 --- a/packages/python/plotly/plotly/validators/box/_xcalendar.py +++ b/packages/python/plotly/plotly/validators/box/_xcalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xcalendar", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/box/_xhoverformat.py b/packages/python/plotly/plotly/validators/box/_xhoverformat.py new file mode 100644 index 0000000000..10ed703106 --- /dev/null +++ b/packages/python/plotly/plotly/validators/box/_xhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class XhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="xhoverformat", parent_name="box", **kwargs): + super(XhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/box/_xperiod.py b/packages/python/plotly/plotly/validators/box/_xperiod.py index cd38c934d2..d2088763f4 100644 --- a/packages/python/plotly/plotly/validators/box/_xperiod.py +++ b/packages/python/plotly/plotly/validators/box/_xperiod.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xperiod", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_xperiod0.py b/packages/python/plotly/plotly/validators/box/_xperiod0.py index 750ce67645..382c524ba1 100644 --- a/packages/python/plotly/plotly/validators/box/_xperiod0.py +++ b/packages/python/plotly/plotly/validators/box/_xperiod0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xperiod0", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_xperiodalignment.py b/packages/python/plotly/plotly/validators/box/_xperiodalignment.py index 670ea005b3..8878848076 100644 --- a/packages/python/plotly/plotly/validators/box/_xperiodalignment.py +++ b/packages/python/plotly/plotly/validators/box/_xperiodalignment.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xperiodalignment", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["start", "middle", "end"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_xsrc.py b/packages/python/plotly/plotly/validators/box/_xsrc.py index 27a1567fad..16e70ea5f0 100644 --- a/packages/python/plotly/plotly/validators/box/_xsrc.py +++ b/packages/python/plotly/plotly/validators/box/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_y.py b/packages/python/plotly/plotly/validators/box/_y.py index af10f90090..eedb34b002 100644 --- a/packages/python/plotly/plotly/validators/box/_y.py +++ b/packages/python/plotly/plotly/validators/box/_y.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_y0.py b/packages/python/plotly/plotly/validators/box/_y0.py index 72822c5e17..61f7167d04 100644 --- a/packages/python/plotly/plotly/validators/box/_y0.py +++ b/packages/python/plotly/plotly/validators/box/_y0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y0", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_yaxis.py b/packages/python/plotly/plotly/validators/box/_yaxis.py index 4da8cac1af..979302c103 100644 --- a/packages/python/plotly/plotly/validators/box/_yaxis.py +++ b/packages/python/plotly/plotly/validators/box/_yaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="yaxis", parent_name="box", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "y"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_ycalendar.py b/packages/python/plotly/plotly/validators/box/_ycalendar.py index c89071bb52..e56a9b853f 100644 --- a/packages/python/plotly/plotly/validators/box/_ycalendar.py +++ b/packages/python/plotly/plotly/validators/box/_ycalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ycalendar", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/box/_yhoverformat.py b/packages/python/plotly/plotly/validators/box/_yhoverformat.py new file mode 100644 index 0000000000..2806d4f8a0 --- /dev/null +++ b/packages/python/plotly/plotly/validators/box/_yhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class YhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="yhoverformat", parent_name="box", **kwargs): + super(YhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/box/_yperiod.py b/packages/python/plotly/plotly/validators/box/_yperiod.py index e31ffe1628..13a1694576 100644 --- a/packages/python/plotly/plotly/validators/box/_yperiod.py +++ b/packages/python/plotly/plotly/validators/box/_yperiod.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="yperiod", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_yperiod0.py b/packages/python/plotly/plotly/validators/box/_yperiod0.py index fa37683f52..1929520df5 100644 --- a/packages/python/plotly/plotly/validators/box/_yperiod0.py +++ b/packages/python/plotly/plotly/validators/box/_yperiod0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="yperiod0", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_yperiodalignment.py b/packages/python/plotly/plotly/validators/box/_yperiodalignment.py index 9163e4ec47..485dd0d646 100644 --- a/packages/python/plotly/plotly/validators/box/_yperiodalignment.py +++ b/packages/python/plotly/plotly/validators/box/_yperiodalignment.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="yperiodalignment", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["start", "middle", "end"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/_ysrc.py b/packages/python/plotly/plotly/validators/box/_ysrc.py index c948461e68..cbe1acabf0 100644 --- a/packages/python/plotly/plotly/validators/box/_ysrc.py +++ b/packages/python/plotly/plotly/validators/box/_ysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ysrc", parent_name="box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/box/hoverlabel/_align.py index b15c60b4e1..99c744059b 100644 --- a/packages/python/plotly/plotly/validators/box/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/box/hoverlabel/_align.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="align", parent_name="box.hoverlabel", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/box/hoverlabel/_alignsrc.py index 75ae1f84f2..d38d678a3c 100644 --- a/packages/python/plotly/plotly/validators/box/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/box/hoverlabel/_alignsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="alignsrc", parent_name="box.hoverlabel", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/box/hoverlabel/_bgcolor.py index bc9572ac94..e8da843734 100644 --- a/packages/python/plotly/plotly/validators/box/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/box/hoverlabel/_bgcolor.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="bgcolor", parent_name="box.hoverlabel", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/box/hoverlabel/_bgcolorsrc.py index 98202517ae..af9a310c48 100644 --- a/packages/python/plotly/plotly/validators/box/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/box/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/box/hoverlabel/_bordercolor.py index 1722fa713b..a0fff35201 100644 --- a/packages/python/plotly/plotly/validators/box/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/box/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/box/hoverlabel/_bordercolorsrc.py index e7bb945afb..9a564c11ca 100644 --- a/packages/python/plotly/plotly/validators/box/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/box/hoverlabel/_bordercolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/box/hoverlabel/_namelength.py index ade18267cf..5322dcec2d 100644 --- a/packages/python/plotly/plotly/validators/box/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/box/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/box/hoverlabel/_namelengthsrc.py index 4c93508082..5bdc53f0a9 100644 --- a/packages/python/plotly/plotly/validators/box/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/box/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/box/hoverlabel/font/_color.py index 783dc0c55c..a6a308df8e 100644 --- a/packages/python/plotly/plotly/validators/box/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/box/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/box/hoverlabel/font/_colorsrc.py index 02ef71d95f..b7c07330f5 100644 --- a/packages/python/plotly/plotly/validators/box/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/box/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/box/hoverlabel/font/_family.py index e468ed4107..00867237fb 100644 --- a/packages/python/plotly/plotly/validators/box/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/box/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/box/hoverlabel/font/_familysrc.py index e22807d8d8..128ac9330d 100644 --- a/packages/python/plotly/plotly/validators/box/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/box/hoverlabel/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/box/hoverlabel/font/_size.py index 84ef6b6a7b..e442453db1 100644 --- a/packages/python/plotly/plotly/validators/box/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/box/hoverlabel/font/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="box.hoverlabel.font", **kwar array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/box/hoverlabel/font/_sizesrc.py index 065d35b929..29f8f271aa 100644 --- a/packages/python/plotly/plotly/validators/box/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/box/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/line/_color.py b/packages/python/plotly/plotly/validators/box/line/_color.py index 709dad6459..21b2f55023 100644 --- a/packages/python/plotly/plotly/validators/box/line/_color.py +++ b/packages/python/plotly/plotly/validators/box/line/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="box.line", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/line/_width.py b/packages/python/plotly/plotly/validators/box/line/_width.py index 26ee0f4cd9..6d7958f05b 100644 --- a/packages/python/plotly/plotly/validators/box/line/_width.py +++ b/packages/python/plotly/plotly/validators/box/line/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="box.line", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/marker/_color.py b/packages/python/plotly/plotly/validators/box/marker/_color.py index f47eab51e4..6c302c9fe7 100644 --- a/packages/python/plotly/plotly/validators/box/marker/_color.py +++ b/packages/python/plotly/plotly/validators/box/marker/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="box.marker", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/marker/_opacity.py b/packages/python/plotly/plotly/validators/box/marker/_opacity.py index 723024fc35..b8ed91719f 100644 --- a/packages/python/plotly/plotly/validators/box/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/box/marker/_opacity.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="opacity", parent_name="box.marker", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/marker/_outliercolor.py b/packages/python/plotly/plotly/validators/box/marker/_outliercolor.py index a226eab4c4..fa3bbc7f01 100644 --- a/packages/python/plotly/plotly/validators/box/marker/_outliercolor.py +++ b/packages/python/plotly/plotly/validators/box/marker/_outliercolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="outliercolor", parent_name="box.marker", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/marker/_size.py b/packages/python/plotly/plotly/validators/box/marker/_size.py index 0717781521..c1a30f3239 100644 --- a/packages/python/plotly/plotly/validators/box/marker/_size.py +++ b/packages/python/plotly/plotly/validators/box/marker/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="box.marker", **kwargs): array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/marker/_symbol.py b/packages/python/plotly/plotly/validators/box/marker/_symbol.py index 04527bd94f..d47f6b0298 100644 --- a/packages/python/plotly/plotly/validators/box/marker/_symbol.py +++ b/packages/python/plotly/plotly/validators/box/marker/_symbol.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="symbol", parent_name="box.marker", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/box/marker/line/_color.py b/packages/python/plotly/plotly/validators/box/marker/line/_color.py index 4a04739853..05e7919d0f 100644 --- a/packages/python/plotly/plotly/validators/box/marker/line/_color.py +++ b/packages/python/plotly/plotly/validators/box/marker/line/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="box.marker.line", **kwargs) parent_name=parent_name, array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/marker/line/_outliercolor.py b/packages/python/plotly/plotly/validators/box/marker/line/_outliercolor.py index 6d3dd0e927..e26289ed22 100644 --- a/packages/python/plotly/plotly/validators/box/marker/line/_outliercolor.py +++ b/packages/python/plotly/plotly/validators/box/marker/line/_outliercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/marker/line/_outlierwidth.py b/packages/python/plotly/plotly/validators/box/marker/line/_outlierwidth.py index 5c2b9a9ecd..2ea7fe9769 100644 --- a/packages/python/plotly/plotly/validators/box/marker/line/_outlierwidth.py +++ b/packages/python/plotly/plotly/validators/box/marker/line/_outlierwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/marker/line/_width.py b/packages/python/plotly/plotly/validators/box/marker/line/_width.py index 071f9b62c0..42ab7c5c50 100644 --- a/packages/python/plotly/plotly/validators/box/marker/line/_width.py +++ b/packages/python/plotly/plotly/validators/box/marker/line/_width.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="width", parent_name="box.marker.line", **kwargs) array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/selected/marker/_color.py b/packages/python/plotly/plotly/validators/box/selected/marker/_color.py index 8a4d47272a..3cba154ff1 100644 --- a/packages/python/plotly/plotly/validators/box/selected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/box/selected/marker/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/selected/marker/_opacity.py b/packages/python/plotly/plotly/validators/box/selected/marker/_opacity.py index 35aae56f40..0c76776aad 100644 --- a/packages/python/plotly/plotly/validators/box/selected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/box/selected/marker/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/selected/marker/_size.py b/packages/python/plotly/plotly/validators/box/selected/marker/_size.py index ad1e48719d..92d06acbc8 100644 --- a/packages/python/plotly/plotly/validators/box/selected/marker/_size.py +++ b/packages/python/plotly/plotly/validators/box/selected/marker/_size.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="size", parent_name="box.selected.marker", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/box/stream/_maxpoints.py index afef2c6937..68458c53a0 100644 --- a/packages/python/plotly/plotly/validators/box/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/box/stream/_maxpoints.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="maxpoints", parent_name="box.stream", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/stream/_token.py b/packages/python/plotly/plotly/validators/box/stream/_token.py index 11f7ba3705..7c79c4ba60 100644 --- a/packages/python/plotly/plotly/validators/box/stream/_token.py +++ b/packages/python/plotly/plotly/validators/box/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="box.stream", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/unselected/marker/_color.py b/packages/python/plotly/plotly/validators/box/unselected/marker/_color.py index f7964c2097..393f46f4f6 100644 --- a/packages/python/plotly/plotly/validators/box/unselected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/box/unselected/marker/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/unselected/marker/_opacity.py b/packages/python/plotly/plotly/validators/box/unselected/marker/_opacity.py index 8baf6a2344..d86095f213 100644 --- a/packages/python/plotly/plotly/validators/box/unselected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/box/unselected/marker/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/box/unselected/marker/_size.py b/packages/python/plotly/plotly/validators/box/unselected/marker/_size.py index 1c6156c2a3..73266abef3 100644 --- a/packages/python/plotly/plotly/validators/box/unselected/marker/_size.py +++ b/packages/python/plotly/plotly/validators/box/unselected/marker/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/__init__.py b/packages/python/plotly/plotly/validators/candlestick/__init__.py index 6798f88426..92562f6918 100644 --- a/packages/python/plotly/plotly/validators/candlestick/__init__.py +++ b/packages/python/plotly/plotly/validators/candlestick/__init__.py @@ -1,11 +1,13 @@ import sys if sys.version_info < (3, 7): + from ._yhoverformat import YhoverformatValidator from ._yaxis import YaxisValidator from ._xsrc import XsrcValidator from ._xperiodalignment import XperiodalignmentValidator from ._xperiod0 import Xperiod0Validator from ._xperiod import XperiodValidator + from ._xhoverformat import XhoverformatValidator from ._xcalendar import XcalendarValidator from ._xaxis import XaxisValidator from ._x import XValidator @@ -50,11 +52,13 @@ __name__, [], [ + "._yhoverformat.YhoverformatValidator", "._yaxis.YaxisValidator", "._xsrc.XsrcValidator", "._xperiodalignment.XperiodalignmentValidator", "._xperiod0.Xperiod0Validator", "._xperiod.XperiodValidator", + "._xhoverformat.XhoverformatValidator", "._xcalendar.XcalendarValidator", "._xaxis.XaxisValidator", "._x.XValidator", diff --git a/packages/python/plotly/plotly/validators/candlestick/_close.py b/packages/python/plotly/plotly/validators/candlestick/_close.py index bf73bb2cdc..4cec6f5b16 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_close.py +++ b/packages/python/plotly/plotly/validators/candlestick/_close.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="close", parent_name="candlestick", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_closesrc.py b/packages/python/plotly/plotly/validators/candlestick/_closesrc.py index 9bfc5222dc..25770bafcb 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_closesrc.py +++ b/packages/python/plotly/plotly/validators/candlestick/_closesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="closesrc", parent_name="candlestick", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_customdata.py b/packages/python/plotly/plotly/validators/candlestick/_customdata.py index a6731ec0af..2e75b4bc51 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_customdata.py +++ b/packages/python/plotly/plotly/validators/candlestick/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="candlestick", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_customdatasrc.py b/packages/python/plotly/plotly/validators/candlestick/_customdatasrc.py index 764623720d..9afe873d63 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/candlestick/_customdatasrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_high.py b/packages/python/plotly/plotly/validators/candlestick/_high.py index 7827ad7175..91bab40654 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_high.py +++ b/packages/python/plotly/plotly/validators/candlestick/_high.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="high", parent_name="candlestick", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_highsrc.py b/packages/python/plotly/plotly/validators/candlestick/_highsrc.py index 5a4542042a..f37c833908 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_highsrc.py +++ b/packages/python/plotly/plotly/validators/candlestick/_highsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="highsrc", parent_name="candlestick", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_hoverinfo.py b/packages/python/plotly/plotly/validators/candlestick/_hoverinfo.py index 664b30d681..41cc3723a7 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/candlestick/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="candlestick", **kwargs) edit_type=kwargs.pop("edit_type", "none"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["x", "y", "z", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/candlestick/_hoverinfosrc.py index 04b3e93156..20992681d7 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/candlestick/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="candlestick", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_hovertext.py b/packages/python/plotly/plotly/validators/candlestick/_hovertext.py index 00b67fc741..168f36c7e9 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_hovertext.py +++ b/packages/python/plotly/plotly/validators/candlestick/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="candlestick", **kwargs) parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_hovertextsrc.py b/packages/python/plotly/plotly/validators/candlestick/_hovertextsrc.py index fda431d1ff..38955379ff 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/candlestick/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="candlestick", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_ids.py b/packages/python/plotly/plotly/validators/candlestick/_ids.py index 649099e3a0..9287e9e3ba 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_ids.py +++ b/packages/python/plotly/plotly/validators/candlestick/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="candlestick", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_idssrc.py b/packages/python/plotly/plotly/validators/candlestick/_idssrc.py index 0d95acf7df..455335b4db 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_idssrc.py +++ b/packages/python/plotly/plotly/validators/candlestick/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="candlestick", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_legendgroup.py b/packages/python/plotly/plotly/validators/candlestick/_legendgroup.py index d36f9b656b..0968d4c88a 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/candlestick/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="candlestick", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_low.py b/packages/python/plotly/plotly/validators/candlestick/_low.py index fd4e9dccb4..c50843c8f2 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_low.py +++ b/packages/python/plotly/plotly/validators/candlestick/_low.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="low", parent_name="candlestick", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_lowsrc.py b/packages/python/plotly/plotly/validators/candlestick/_lowsrc.py index 8659fdb261..f679edc72a 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_lowsrc.py +++ b/packages/python/plotly/plotly/validators/candlestick/_lowsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="lowsrc", parent_name="candlestick", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_meta.py b/packages/python/plotly/plotly/validators/candlestick/_meta.py index 5489a00f76..fdb3cf485e 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_meta.py +++ b/packages/python/plotly/plotly/validators/candlestick/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="candlestick", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_metasrc.py b/packages/python/plotly/plotly/validators/candlestick/_metasrc.py index 59c67009a1..f4596632f4 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_metasrc.py +++ b/packages/python/plotly/plotly/validators/candlestick/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="candlestick", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_name.py b/packages/python/plotly/plotly/validators/candlestick/_name.py index 2d41c0acc2..77babfdb45 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_name.py +++ b/packages/python/plotly/plotly/validators/candlestick/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="candlestick", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_opacity.py b/packages/python/plotly/plotly/validators/candlestick/_opacity.py index 7da695fd6f..7c52e8d8aa 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_opacity.py +++ b/packages/python/plotly/plotly/validators/candlestick/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="candlestick", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_open.py b/packages/python/plotly/plotly/validators/candlestick/_open.py index 9ae97fb20f..4abcc048f2 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_open.py +++ b/packages/python/plotly/plotly/validators/candlestick/_open.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="open", parent_name="candlestick", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_opensrc.py b/packages/python/plotly/plotly/validators/candlestick/_opensrc.py index 9e8eb71f18..7ba7331536 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_opensrc.py +++ b/packages/python/plotly/plotly/validators/candlestick/_opensrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="opensrc", parent_name="candlestick", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_selectedpoints.py b/packages/python/plotly/plotly/validators/candlestick/_selectedpoints.py index 2659435e4a..0cdbb6fc23 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_selectedpoints.py +++ b/packages/python/plotly/plotly/validators/candlestick/_selectedpoints.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_showlegend.py b/packages/python/plotly/plotly/validators/candlestick/_showlegend.py index e35510ff31..a9a4f2fc24 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_showlegend.py +++ b/packages/python/plotly/plotly/validators/candlestick/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="candlestick", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_text.py b/packages/python/plotly/plotly/validators/candlestick/_text.py index fd61c8af27..0db363d49a 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_text.py +++ b/packages/python/plotly/plotly/validators/candlestick/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="candlestick", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_textsrc.py b/packages/python/plotly/plotly/validators/candlestick/_textsrc.py index a5301b3709..352ca55502 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_textsrc.py +++ b/packages/python/plotly/plotly/validators/candlestick/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="candlestick", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_uid.py b/packages/python/plotly/plotly/validators/candlestick/_uid.py index b5668ad7ff..6535e42ddd 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_uid.py +++ b/packages/python/plotly/plotly/validators/candlestick/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="candlestick", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_uirevision.py b/packages/python/plotly/plotly/validators/candlestick/_uirevision.py index 235b9ae639..b771010018 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_uirevision.py +++ b/packages/python/plotly/plotly/validators/candlestick/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="candlestick", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_visible.py b/packages/python/plotly/plotly/validators/candlestick/_visible.py index c636e1781d..8a6d0b1db9 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_visible.py +++ b/packages/python/plotly/plotly/validators/candlestick/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="candlestick", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_whiskerwidth.py b/packages/python/plotly/plotly/validators/candlestick/_whiskerwidth.py index 38b2567bf8..a712e1a8d4 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_whiskerwidth.py +++ b/packages/python/plotly/plotly/validators/candlestick/_whiskerwidth.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="whiskerwidth", parent_name="candlestick", **kwar edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_x.py b/packages/python/plotly/plotly/validators/candlestick/_x.py index 46b53ad586..ea70973b1a 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_x.py +++ b/packages/python/plotly/plotly/validators/candlestick/_x.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x", parent_name="candlestick", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_xaxis.py b/packages/python/plotly/plotly/validators/candlestick/_xaxis.py index ac72b2935c..b5d78c1daf 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_xaxis.py +++ b/packages/python/plotly/plotly/validators/candlestick/_xaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xaxis", parent_name="candlestick", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "x"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_xcalendar.py b/packages/python/plotly/plotly/validators/candlestick/_xcalendar.py index b1bbbc295e..c607c4dfbf 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_xcalendar.py +++ b/packages/python/plotly/plotly/validators/candlestick/_xcalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xcalendar", parent_name="candlestick", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/candlestick/_xhoverformat.py b/packages/python/plotly/plotly/validators/candlestick/_xhoverformat.py new file mode 100644 index 0000000000..d924852bb9 --- /dev/null +++ b/packages/python/plotly/plotly/validators/candlestick/_xhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class XhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="xhoverformat", parent_name="candlestick", **kwargs): + super(XhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_xperiod.py b/packages/python/plotly/plotly/validators/candlestick/_xperiod.py index 2d05f11066..7a77c4991e 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_xperiod.py +++ b/packages/python/plotly/plotly/validators/candlestick/_xperiod.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xperiod", parent_name="candlestick", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_xperiod0.py b/packages/python/plotly/plotly/validators/candlestick/_xperiod0.py index 6a205d7699..22c8b9e778 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_xperiod0.py +++ b/packages/python/plotly/plotly/validators/candlestick/_xperiod0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xperiod0", parent_name="candlestick", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_xperiodalignment.py b/packages/python/plotly/plotly/validators/candlestick/_xperiodalignment.py index 8bbe76c2bd..419d6a28ca 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_xperiodalignment.py +++ b/packages/python/plotly/plotly/validators/candlestick/_xperiodalignment.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["start", "middle", "end"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_xsrc.py b/packages/python/plotly/plotly/validators/candlestick/_xsrc.py index e07b05fceb..796c4d9c0b 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_xsrc.py +++ b/packages/python/plotly/plotly/validators/candlestick/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="candlestick", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_yaxis.py b/packages/python/plotly/plotly/validators/candlestick/_yaxis.py index b65057377f..0541e55d65 100644 --- a/packages/python/plotly/plotly/validators/candlestick/_yaxis.py +++ b/packages/python/plotly/plotly/validators/candlestick/_yaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="yaxis", parent_name="candlestick", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "y"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/_yhoverformat.py b/packages/python/plotly/plotly/validators/candlestick/_yhoverformat.py new file mode 100644 index 0000000000..8dfac50d25 --- /dev/null +++ b/packages/python/plotly/plotly/validators/candlestick/_yhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class YhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="yhoverformat", parent_name="candlestick", **kwargs): + super(YhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/candlestick/decreasing/_fillcolor.py b/packages/python/plotly/plotly/validators/candlestick/decreasing/_fillcolor.py index e8a6bb3977..da4f902a6f 100644 --- a/packages/python/plotly/plotly/validators/candlestick/decreasing/_fillcolor.py +++ b/packages/python/plotly/plotly/validators/candlestick/decreasing/_fillcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/decreasing/line/_color.py b/packages/python/plotly/plotly/validators/candlestick/decreasing/line/_color.py index defb5f37bb..a4e362dc5e 100644 --- a/packages/python/plotly/plotly/validators/candlestick/decreasing/line/_color.py +++ b/packages/python/plotly/plotly/validators/candlestick/decreasing/line/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/decreasing/line/_width.py b/packages/python/plotly/plotly/validators/candlestick/decreasing/line/_width.py index 7ec12f513d..00f428e2c8 100644 --- a/packages/python/plotly/plotly/validators/candlestick/decreasing/line/_width.py +++ b/packages/python/plotly/plotly/validators/candlestick/decreasing/line/_width.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_align.py index 02d0466722..e151436473 100644 --- a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_align.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_alignsrc.py index 35093f962d..68516e7680 100644 --- a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_bgcolor.py index a1f135bb3c..0b1cd82e9e 100644 --- a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_bgcolorsrc.py index 5e04c9410d..09c3970897 100644 --- a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_bordercolor.py index eefdd1dea9..eefdad8d9d 100644 --- a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_bordercolorsrc.py index 8321d894cf..5c858cb96e 100644 --- a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_bordercolorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_namelength.py index c74eed077d..22413d3dbb 100644 --- a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_namelengthsrc.py index 62fa475a18..28f0ff7a24 100644 --- a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_namelengthsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_split.py b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_split.py index 9117f5b579..d634777e47 100644 --- a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_split.py +++ b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/_split.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/font/_color.py index a0a6cf133c..cf69f31cf8 100644 --- a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/font/_colorsrc.py index 776709ef2c..9db07e362e 100644 --- a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/font/_colorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/font/_family.py index 3279d1676b..92dcf66d41 100644 --- a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/font/_familysrc.py index 5358c61e52..d1a0f6cdf4 100644 --- a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/font/_familysrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/font/_size.py index 367fc8ad29..5bca1be6f2 100644 --- a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/font/_sizesrc.py index 578f502e0e..b3aff0e8af 100644 --- a/packages/python/plotly/plotly/validators/candlestick/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/candlestick/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/increasing/_fillcolor.py b/packages/python/plotly/plotly/validators/candlestick/increasing/_fillcolor.py index 78403ea321..51e8d0ab45 100644 --- a/packages/python/plotly/plotly/validators/candlestick/increasing/_fillcolor.py +++ b/packages/python/plotly/plotly/validators/candlestick/increasing/_fillcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/increasing/line/_color.py b/packages/python/plotly/plotly/validators/candlestick/increasing/line/_color.py index 581503de41..b69cbb1a7f 100644 --- a/packages/python/plotly/plotly/validators/candlestick/increasing/line/_color.py +++ b/packages/python/plotly/plotly/validators/candlestick/increasing/line/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/increasing/line/_width.py b/packages/python/plotly/plotly/validators/candlestick/increasing/line/_width.py index dcb5fe786d..1ae552f9fe 100644 --- a/packages/python/plotly/plotly/validators/candlestick/increasing/line/_width.py +++ b/packages/python/plotly/plotly/validators/candlestick/increasing/line/_width.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/line/_width.py b/packages/python/plotly/plotly/validators/candlestick/line/_width.py index 36d99672ef..73f3ff92dc 100644 --- a/packages/python/plotly/plotly/validators/candlestick/line/_width.py +++ b/packages/python/plotly/plotly/validators/candlestick/line/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="candlestick.line", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/candlestick/stream/_maxpoints.py index 5e75f6faa4..e52ccd2c42 100644 --- a/packages/python/plotly/plotly/validators/candlestick/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/candlestick/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/candlestick/stream/_token.py b/packages/python/plotly/plotly/validators/candlestick/stream/_token.py index e6ca896372..9027b5a192 100644 --- a/packages/python/plotly/plotly/validators/candlestick/stream/_token.py +++ b/packages/python/plotly/plotly/validators/candlestick/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="candlestick.stream", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_a.py b/packages/python/plotly/plotly/validators/carpet/_a.py index 32ed344192..5793ea89a2 100644 --- a/packages/python/plotly/plotly/validators/carpet/_a.py +++ b/packages/python/plotly/plotly/validators/carpet/_a.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="a", parent_name="carpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_a0.py b/packages/python/plotly/plotly/validators/carpet/_a0.py index 41bdca7f35..e533fce2cc 100644 --- a/packages/python/plotly/plotly/validators/carpet/_a0.py +++ b/packages/python/plotly/plotly/validators/carpet/_a0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="a0", parent_name="carpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_aaxis.py b/packages/python/plotly/plotly/validators/carpet/_aaxis.py index 53b2bbaa0d..4624a06cde 100644 --- a/packages/python/plotly/plotly/validators/carpet/_aaxis.py +++ b/packages/python/plotly/plotly/validators/carpet/_aaxis.py @@ -176,7 +176,9 @@ def __init__(self, plotly_name="aaxis", parent_name="carpet", **kwargs): similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api- reference/blob/master/Formatting.md#d3_format - And for dates see: We add one item to d3's + And for dates see: + https://github.com/d3/d3-time- + format#locale_format We add one item to d3's date formatter: "%{n}f" for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat "%H~%M~%S.%2f" diff --git a/packages/python/plotly/plotly/validators/carpet/_asrc.py b/packages/python/plotly/plotly/validators/carpet/_asrc.py index 02058b5318..6a1d32fd18 100644 --- a/packages/python/plotly/plotly/validators/carpet/_asrc.py +++ b/packages/python/plotly/plotly/validators/carpet/_asrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="asrc", parent_name="carpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_b.py b/packages/python/plotly/plotly/validators/carpet/_b.py index f6c85f18d5..54619dcadc 100644 --- a/packages/python/plotly/plotly/validators/carpet/_b.py +++ b/packages/python/plotly/plotly/validators/carpet/_b.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="b", parent_name="carpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_b0.py b/packages/python/plotly/plotly/validators/carpet/_b0.py index 7a501853e8..e31475cfd7 100644 --- a/packages/python/plotly/plotly/validators/carpet/_b0.py +++ b/packages/python/plotly/plotly/validators/carpet/_b0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="b0", parent_name="carpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_baxis.py b/packages/python/plotly/plotly/validators/carpet/_baxis.py index 9fd328860a..1042300fc4 100644 --- a/packages/python/plotly/plotly/validators/carpet/_baxis.py +++ b/packages/python/plotly/plotly/validators/carpet/_baxis.py @@ -176,7 +176,9 @@ def __init__(self, plotly_name="baxis", parent_name="carpet", **kwargs): similar to those in Python. For numbers, see: https://github.com/d3/d3-3.x-api- reference/blob/master/Formatting.md#d3_format - And for dates see: We add one item to d3's + And for dates see: + https://github.com/d3/d3-time- + format#locale_format We add one item to d3's date formatter: "%{n}f" for fractional seconds with n digits. For example, *2016-10-13 09:15:23.456* with tickformat "%H~%M~%S.%2f" diff --git a/packages/python/plotly/plotly/validators/carpet/_bsrc.py b/packages/python/plotly/plotly/validators/carpet/_bsrc.py index dca80c25fd..0088a61361 100644 --- a/packages/python/plotly/plotly/validators/carpet/_bsrc.py +++ b/packages/python/plotly/plotly/validators/carpet/_bsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="bsrc", parent_name="carpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_carpet.py b/packages/python/plotly/plotly/validators/carpet/_carpet.py index 54f8f6d1f1..fd825288d8 100644 --- a/packages/python/plotly/plotly/validators/carpet/_carpet.py +++ b/packages/python/plotly/plotly/validators/carpet/_carpet.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="carpet", parent_name="carpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_cheaterslope.py b/packages/python/plotly/plotly/validators/carpet/_cheaterslope.py index c52286376e..0eb0c888e1 100644 --- a/packages/python/plotly/plotly/validators/carpet/_cheaterslope.py +++ b/packages/python/plotly/plotly/validators/carpet/_cheaterslope.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="cheaterslope", parent_name="carpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_color.py b/packages/python/plotly/plotly/validators/carpet/_color.py index dacd9bb6b8..9877f19ae2 100644 --- a/packages/python/plotly/plotly/validators/carpet/_color.py +++ b/packages/python/plotly/plotly/validators/carpet/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="carpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_customdata.py b/packages/python/plotly/plotly/validators/carpet/_customdata.py index 039d0fa0c5..5dfbb1ac5d 100644 --- a/packages/python/plotly/plotly/validators/carpet/_customdata.py +++ b/packages/python/plotly/plotly/validators/carpet/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="carpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_customdatasrc.py b/packages/python/plotly/plotly/validators/carpet/_customdatasrc.py index 4fa8ade40b..43e4fd44e1 100644 --- a/packages/python/plotly/plotly/validators/carpet/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/carpet/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="carpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_da.py b/packages/python/plotly/plotly/validators/carpet/_da.py index 996483cc00..5dc88e50ce 100644 --- a/packages/python/plotly/plotly/validators/carpet/_da.py +++ b/packages/python/plotly/plotly/validators/carpet/_da.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="da", parent_name="carpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_db.py b/packages/python/plotly/plotly/validators/carpet/_db.py index bc21ff6a35..64c21e8039 100644 --- a/packages/python/plotly/plotly/validators/carpet/_db.py +++ b/packages/python/plotly/plotly/validators/carpet/_db.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="db", parent_name="carpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_ids.py b/packages/python/plotly/plotly/validators/carpet/_ids.py index ce5733b4b1..d115a53b78 100644 --- a/packages/python/plotly/plotly/validators/carpet/_ids.py +++ b/packages/python/plotly/plotly/validators/carpet/_ids.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ids", parent_name="carpet", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_idssrc.py b/packages/python/plotly/plotly/validators/carpet/_idssrc.py index b127eaea1d..58c33d6025 100644 --- a/packages/python/plotly/plotly/validators/carpet/_idssrc.py +++ b/packages/python/plotly/plotly/validators/carpet/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="carpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_meta.py b/packages/python/plotly/plotly/validators/carpet/_meta.py index 4d359824b2..f004de67ba 100644 --- a/packages/python/plotly/plotly/validators/carpet/_meta.py +++ b/packages/python/plotly/plotly/validators/carpet/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="carpet", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_metasrc.py b/packages/python/plotly/plotly/validators/carpet/_metasrc.py index 127ed33ff5..3c10eca1ac 100644 --- a/packages/python/plotly/plotly/validators/carpet/_metasrc.py +++ b/packages/python/plotly/plotly/validators/carpet/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="carpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_name.py b/packages/python/plotly/plotly/validators/carpet/_name.py index 576d842a73..710a54a17f 100644 --- a/packages/python/plotly/plotly/validators/carpet/_name.py +++ b/packages/python/plotly/plotly/validators/carpet/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="carpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_opacity.py b/packages/python/plotly/plotly/validators/carpet/_opacity.py index ef8f02a95e..4638787045 100644 --- a/packages/python/plotly/plotly/validators/carpet/_opacity.py +++ b/packages/python/plotly/plotly/validators/carpet/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="carpet", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_uid.py b/packages/python/plotly/plotly/validators/carpet/_uid.py index 328efc5f85..416fccf145 100644 --- a/packages/python/plotly/plotly/validators/carpet/_uid.py +++ b/packages/python/plotly/plotly/validators/carpet/_uid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="uid", parent_name="carpet", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_uirevision.py b/packages/python/plotly/plotly/validators/carpet/_uirevision.py index cf19264faa..3ecafa77ee 100644 --- a/packages/python/plotly/plotly/validators/carpet/_uirevision.py +++ b/packages/python/plotly/plotly/validators/carpet/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="carpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_visible.py b/packages/python/plotly/plotly/validators/carpet/_visible.py index c00c152e98..0df19423d6 100644 --- a/packages/python/plotly/plotly/validators/carpet/_visible.py +++ b/packages/python/plotly/plotly/validators/carpet/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="carpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_x.py b/packages/python/plotly/plotly/validators/carpet/_x.py index 3ffe3b07ad..b6e6892954 100644 --- a/packages/python/plotly/plotly/validators/carpet/_x.py +++ b/packages/python/plotly/plotly/validators/carpet/_x.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x", parent_name="carpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_xaxis.py b/packages/python/plotly/plotly/validators/carpet/_xaxis.py index d10c9a9b69..2e2e1b0d67 100644 --- a/packages/python/plotly/plotly/validators/carpet/_xaxis.py +++ b/packages/python/plotly/plotly/validators/carpet/_xaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xaxis", parent_name="carpet", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "x"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_xsrc.py b/packages/python/plotly/plotly/validators/carpet/_xsrc.py index 37a4a073cb..2861dac358 100644 --- a/packages/python/plotly/plotly/validators/carpet/_xsrc.py +++ b/packages/python/plotly/plotly/validators/carpet/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="carpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_y.py b/packages/python/plotly/plotly/validators/carpet/_y.py index 2abaa471af..f565194e42 100644 --- a/packages/python/plotly/plotly/validators/carpet/_y.py +++ b/packages/python/plotly/plotly/validators/carpet/_y.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y", parent_name="carpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_yaxis.py b/packages/python/plotly/plotly/validators/carpet/_yaxis.py index 77e7a7e214..7aaf95305b 100644 --- a/packages/python/plotly/plotly/validators/carpet/_yaxis.py +++ b/packages/python/plotly/plotly/validators/carpet/_yaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="yaxis", parent_name="carpet", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "y"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/_ysrc.py b/packages/python/plotly/plotly/validators/carpet/_ysrc.py index 95c42a5331..4c6ae400f8 100644 --- a/packages/python/plotly/plotly/validators/carpet/_ysrc.py +++ b/packages/python/plotly/plotly/validators/carpet/_ysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ysrc", parent_name="carpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_arraydtick.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_arraydtick.py index 49f573caa2..938eb65364 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_arraydtick.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_arraydtick.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="arraydtick", parent_name="carpet.aaxis", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_arraytick0.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_arraytick0.py index b558a256f6..9665e69ecd 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_arraytick0.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_arraytick0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="arraytick0", parent_name="carpet.aaxis", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_autorange.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_autorange.py index 7e40cfd921..36aadd163a 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_autorange.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_autorange.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="autorange", parent_name="carpet.aaxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", [True, False, "reversed"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_autotypenumbers.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_autotypenumbers.py index c73f1a7dc8..3fd3bd70ff 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_autotypenumbers.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_autotypenumbers.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["convert types", "strict"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_categoryarray.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_categoryarray.py index 9468a7f628..781a32848f 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_categoryarray.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_categoryarray.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_categoryarraysrc.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_categoryarraysrc.py index c2e1503e9e..6b2c360e0b 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_categoryarraysrc.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_categoryarraysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_categoryorder.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_categoryorder.py index 3a9b379a94..310e461535 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_categoryorder.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_categoryorder.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", ["trace", "category ascending", "category descending", "array"], diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_cheatertype.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_cheatertype.py index 35652b29bd..df228354c0 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_cheatertype.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_cheatertype.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="cheatertype", parent_name="carpet.aaxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["index", "value"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_color.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_color.py index 10ddf4b4fc..bcd6e11666 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_color.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="carpet.aaxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_dtick.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_dtick.py index 3c6b016aff..6b23e88e2c 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_dtick.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_dtick.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="dtick", parent_name="carpet.aaxis", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_endline.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_endline.py index f32ba043e1..119644f91f 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_endline.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_endline.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="endline", parent_name="carpet.aaxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_endlinecolor.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_endlinecolor.py index 8fd0286383..5b3ffea8c7 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_endlinecolor.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_endlinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_endlinewidth.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_endlinewidth.py index cd6619ea82..239616057d 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_endlinewidth.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_endlinewidth.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_exponentformat.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_exponentformat.py index cce3ece62b..7014c0df94 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_exponentformat.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_fixedrange.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_fixedrange.py index ec13636c58..5788d139b7 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_fixedrange.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_fixedrange.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="fixedrange", parent_name="carpet.aaxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_gridcolor.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_gridcolor.py index 811d9f8259..e0b6921194 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_gridcolor.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_gridcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="gridcolor", parent_name="carpet.aaxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_gridwidth.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_gridwidth.py index 09e4533fea..06b1991e7e 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_gridwidth.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_gridwidth.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="gridwidth", parent_name="carpet.aaxis", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_labelpadding.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_labelpadding.py index 885228730e..4529e24af6 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_labelpadding.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_labelpadding.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_labelprefix.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_labelprefix.py index 3eed0ce39c..b68ee9cf2c 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_labelprefix.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_labelprefix.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="labelprefix", parent_name="carpet.aaxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_labelsuffix.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_labelsuffix.py index c7abf62a6d..239633d883 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_labelsuffix.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_labelsuffix.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="labelsuffix", parent_name="carpet.aaxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_linecolor.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_linecolor.py index eb77313712..9335fd878a 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_linecolor.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_linecolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="linecolor", parent_name="carpet.aaxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_linewidth.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_linewidth.py index 1ca08104f6..27bc7b59f1 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_linewidth.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_linewidth.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="linewidth", parent_name="carpet.aaxis", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_minexponent.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_minexponent.py index 43aa60feb7..51c2b3caaf 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_minexponent.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_minexponent.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="minexponent", parent_name="carpet.aaxis", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_minorgridcolor.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_minorgridcolor.py index a2a6e9c717..d66554af86 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_minorgridcolor.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_minorgridcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_minorgridcount.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_minorgridcount.py index 334487b88b..7b12856e79 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_minorgridcount.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_minorgridcount.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_minorgridwidth.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_minorgridwidth.py index 8fc1f95436..970ea0df03 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_minorgridwidth.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_minorgridwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_nticks.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_nticks.py index 6866358201..9a1cdaa9a3 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_nticks.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_nticks.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="nticks", parent_name="carpet.aaxis", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_range.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_range.py index 0425e3d971..bdcc103164 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_range.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_range.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="range", parent_name="carpet.aaxis", **kwargs): {"valType": "any", "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_rangemode.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_rangemode.py index 8914052d3d..d5324b0375 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_rangemode.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_rangemode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="rangemode", parent_name="carpet.aaxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["normal", "tozero", "nonnegative"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_separatethousands.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_separatethousands.py index 56c0ad8aa7..a3f73688ad 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_separatethousands.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_showexponent.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_showexponent.py index 9b91893923..886cb2bec6 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_showexponent.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_showgrid.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_showgrid.py index a2c1b62224..1c2456a1b3 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_showgrid.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_showgrid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showgrid", parent_name="carpet.aaxis", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_showline.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_showline.py index 7a5fb7b569..b19fcdfe18 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_showline.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_showline.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showline", parent_name="carpet.aaxis", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_showticklabels.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_showticklabels.py index d0eb0267cc..a83d9f7e7f 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_showticklabels.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["start", "end", "both", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_showtickprefix.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_showtickprefix.py index 2ef97a99e1..f2c299341d 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_showtickprefix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_showticksuffix.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_showticksuffix.py index f8c684a07e..13425b546b 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_showticksuffix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_smoothing.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_smoothing.py index e3c486dc18..99fc0d047d 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_smoothing.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_smoothing.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="smoothing", parent_name="carpet.aaxis", **kwargs edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1.3), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_startline.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_startline.py index 8f7834e5dc..6d1ae0ac13 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_startline.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_startline.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="startline", parent_name="carpet.aaxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_startlinecolor.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_startlinecolor.py index f00cf19357..e3af0ba0a0 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_startlinecolor.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_startlinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_startlinewidth.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_startlinewidth.py index 50cb36b06c..f29a4df1e9 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_startlinewidth.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_startlinewidth.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_tick0.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_tick0.py index 9cb2d0964a..2d8726813b 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_tick0.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_tick0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="tick0", parent_name="carpet.aaxis", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_tickangle.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_tickangle.py index 0e7469f2a6..10d49a9d0a 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_tickangle.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_tickangle.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickangle", parent_name="carpet.aaxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_tickformat.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_tickformat.py index 902dc744d1..ff2255445f 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_tickformat.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_tickformat.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickformat", parent_name="carpet.aaxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_tickmode.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_tickmode.py index 3914e36910..a7fd828507 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_tickmode.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_tickmode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="tickmode", parent_name="carpet.aaxis", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_tickprefix.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_tickprefix.py index 9f5f5b3408..56ab71492e 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_tickprefix.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickprefix", parent_name="carpet.aaxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_ticksuffix.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_ticksuffix.py index bd9ab5d96d..2da4524fd3 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_ticksuffix.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ticksuffix", parent_name="carpet.aaxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_ticktext.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_ticktext.py index f23da30a4c..331f0d5850 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_ticktext.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_ticktext.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ticktext", parent_name="carpet.aaxis", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_ticktextsrc.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_ticktextsrc.py index 755274afb0..b7174d1838 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_ticktextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ticktextsrc", parent_name="carpet.aaxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_tickvals.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_tickvals.py index c500d41eae..13c8b8d0f6 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_tickvals.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_tickvals.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickvals", parent_name="carpet.aaxis", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_tickvalssrc.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_tickvalssrc.py index 7f4833eb11..3a29470ed2 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_tickvalssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickvalssrc", parent_name="carpet.aaxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/_type.py b/packages/python/plotly/plotly/validators/carpet/aaxis/_type.py index 6bf3c3651b..22c22df781 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/_type.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/_type.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="type", parent_name="carpet.aaxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["-", "linear", "date", "category"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/tickfont/_color.py b/packages/python/plotly/plotly/validators/carpet/aaxis/tickfont/_color.py index bc7e1d4504..4f102b9d61 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/tickfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/tickfont/_family.py b/packages/python/plotly/plotly/validators/carpet/aaxis/tickfont/_family.py index ca8cdd959d..27e7808995 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/tickfont/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/tickfont/_size.py b/packages/python/plotly/plotly/validators/carpet/aaxis/tickfont/_size.py index 91ec8f102d..747bd74975 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/tickfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/carpet/aaxis/tickformatstop/_dtickrange.py index 7a832fcaaf..ff4adaff6c 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/carpet/aaxis/tickformatstop/_enabled.py index 48ff91bd27..ef9446e95e 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/tickformatstop/_enabled.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/carpet/aaxis/tickformatstop/_name.py index 763c896108..ed53106bb6 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/tickformatstop/_name.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/carpet/aaxis/tickformatstop/_templateitemname.py index 3504a4aa04..3685345cb5 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/carpet/aaxis/tickformatstop/_value.py index 90d7a594a4..77ee4b8a68 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/tickformatstop/_value.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/title/_offset.py b/packages/python/plotly/plotly/validators/carpet/aaxis/title/_offset.py index de46016467..784bc29d26 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/title/_offset.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/title/_offset.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/title/_text.py b/packages/python/plotly/plotly/validators/carpet/aaxis/title/_text.py index 3fe1eb54ab..8d3add38d6 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/title/_text.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/title/_text.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="text", parent_name="carpet.aaxis.title", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/title/font/_color.py b/packages/python/plotly/plotly/validators/carpet/aaxis/title/font/_color.py index 8205ee3db4..c24873bec0 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/title/font/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/title/font/_family.py b/packages/python/plotly/plotly/validators/carpet/aaxis/title/font/_family.py index b5cfdf4f70..4c67e607b7 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/title/font/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/aaxis/title/font/_size.py b/packages/python/plotly/plotly/validators/carpet/aaxis/title/font/_size.py index c326aff49c..ecbf4e53ca 100644 --- a/packages/python/plotly/plotly/validators/carpet/aaxis/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/carpet/aaxis/title/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_arraydtick.py b/packages/python/plotly/plotly/validators/carpet/baxis/_arraydtick.py index 15ab4671e8..d778040c62 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_arraydtick.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_arraydtick.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="arraydtick", parent_name="carpet.baxis", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_arraytick0.py b/packages/python/plotly/plotly/validators/carpet/baxis/_arraytick0.py index 9690cd1160..e62f51f8ca 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_arraytick0.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_arraytick0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="arraytick0", parent_name="carpet.baxis", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_autorange.py b/packages/python/plotly/plotly/validators/carpet/baxis/_autorange.py index 716f1df85b..1993f8f63f 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_autorange.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_autorange.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="autorange", parent_name="carpet.baxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", [True, False, "reversed"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_autotypenumbers.py b/packages/python/plotly/plotly/validators/carpet/baxis/_autotypenumbers.py index 29fb06f09e..8f2d48b5d3 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_autotypenumbers.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_autotypenumbers.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["convert types", "strict"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_categoryarray.py b/packages/python/plotly/plotly/validators/carpet/baxis/_categoryarray.py index f787fb4aea..f351010716 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_categoryarray.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_categoryarray.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_categoryarraysrc.py b/packages/python/plotly/plotly/validators/carpet/baxis/_categoryarraysrc.py index 0dd178995a..b17fda6053 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_categoryarraysrc.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_categoryarraysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_categoryorder.py b/packages/python/plotly/plotly/validators/carpet/baxis/_categoryorder.py index 2adc18a9a4..26f0a72a92 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_categoryorder.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_categoryorder.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", ["trace", "category ascending", "category descending", "array"], diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_cheatertype.py b/packages/python/plotly/plotly/validators/carpet/baxis/_cheatertype.py index 97567669e6..e83a5a678e 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_cheatertype.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_cheatertype.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="cheatertype", parent_name="carpet.baxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["index", "value"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_color.py b/packages/python/plotly/plotly/validators/carpet/baxis/_color.py index 03a04003c9..6462e6bc88 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_color.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="carpet.baxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_dtick.py b/packages/python/plotly/plotly/validators/carpet/baxis/_dtick.py index c03b42e05c..ed5ed5e369 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_dtick.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_dtick.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="dtick", parent_name="carpet.baxis", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_endline.py b/packages/python/plotly/plotly/validators/carpet/baxis/_endline.py index f5a4382bc0..416305cdea 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_endline.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_endline.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="endline", parent_name="carpet.baxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_endlinecolor.py b/packages/python/plotly/plotly/validators/carpet/baxis/_endlinecolor.py index 0a8bbc7c9c..6f482954a5 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_endlinecolor.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_endlinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_endlinewidth.py b/packages/python/plotly/plotly/validators/carpet/baxis/_endlinewidth.py index ebe4f08dd8..f52b1b91a6 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_endlinewidth.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_endlinewidth.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_exponentformat.py b/packages/python/plotly/plotly/validators/carpet/baxis/_exponentformat.py index 48096e5970..f2ed97aa3c 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_exponentformat.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_fixedrange.py b/packages/python/plotly/plotly/validators/carpet/baxis/_fixedrange.py index 004f69f35c..f06b3daf1c 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_fixedrange.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_fixedrange.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="fixedrange", parent_name="carpet.baxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_gridcolor.py b/packages/python/plotly/plotly/validators/carpet/baxis/_gridcolor.py index eb16e257e7..37f967f5f6 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_gridcolor.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_gridcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="gridcolor", parent_name="carpet.baxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_gridwidth.py b/packages/python/plotly/plotly/validators/carpet/baxis/_gridwidth.py index bab75626e4..52e953ce1e 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_gridwidth.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_gridwidth.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="gridwidth", parent_name="carpet.baxis", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_labelpadding.py b/packages/python/plotly/plotly/validators/carpet/baxis/_labelpadding.py index 7f8751ba37..6faaed8a65 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_labelpadding.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_labelpadding.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_labelprefix.py b/packages/python/plotly/plotly/validators/carpet/baxis/_labelprefix.py index c8ca6897a8..2e9ac8d6c5 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_labelprefix.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_labelprefix.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="labelprefix", parent_name="carpet.baxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_labelsuffix.py b/packages/python/plotly/plotly/validators/carpet/baxis/_labelsuffix.py index 3f89ef2074..4406e614b7 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_labelsuffix.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_labelsuffix.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="labelsuffix", parent_name="carpet.baxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_linecolor.py b/packages/python/plotly/plotly/validators/carpet/baxis/_linecolor.py index a92426b7c4..951612c0bc 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_linecolor.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_linecolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="linecolor", parent_name="carpet.baxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_linewidth.py b/packages/python/plotly/plotly/validators/carpet/baxis/_linewidth.py index efac432785..e23c986e25 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_linewidth.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_linewidth.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="linewidth", parent_name="carpet.baxis", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_minexponent.py b/packages/python/plotly/plotly/validators/carpet/baxis/_minexponent.py index 9c17ca076f..aab646519c 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_minexponent.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_minexponent.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="minexponent", parent_name="carpet.baxis", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_minorgridcolor.py b/packages/python/plotly/plotly/validators/carpet/baxis/_minorgridcolor.py index ab2557c9e0..165295e789 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_minorgridcolor.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_minorgridcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_minorgridcount.py b/packages/python/plotly/plotly/validators/carpet/baxis/_minorgridcount.py index 85a0936201..96505c4537 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_minorgridcount.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_minorgridcount.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_minorgridwidth.py b/packages/python/plotly/plotly/validators/carpet/baxis/_minorgridwidth.py index 8065a70f22..810f9021eb 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_minorgridwidth.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_minorgridwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_nticks.py b/packages/python/plotly/plotly/validators/carpet/baxis/_nticks.py index 8e12684631..38201a0932 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_nticks.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_nticks.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="nticks", parent_name="carpet.baxis", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_range.py b/packages/python/plotly/plotly/validators/carpet/baxis/_range.py index 3ad166e689..5dbc697416 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_range.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_range.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="range", parent_name="carpet.baxis", **kwargs): {"valType": "any", "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_rangemode.py b/packages/python/plotly/plotly/validators/carpet/baxis/_rangemode.py index 93652d91e8..f2e0a16aaa 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_rangemode.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_rangemode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="rangemode", parent_name="carpet.baxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["normal", "tozero", "nonnegative"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_separatethousands.py b/packages/python/plotly/plotly/validators/carpet/baxis/_separatethousands.py index ce5ee004e6..f4fde1d0f7 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_separatethousands.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_showexponent.py b/packages/python/plotly/plotly/validators/carpet/baxis/_showexponent.py index 55b8ea97b7..65d33663ab 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_showexponent.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_showgrid.py b/packages/python/plotly/plotly/validators/carpet/baxis/_showgrid.py index 51d9630dcf..d5e5072042 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_showgrid.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_showgrid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showgrid", parent_name="carpet.baxis", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_showline.py b/packages/python/plotly/plotly/validators/carpet/baxis/_showline.py index 66fc03d861..5debb8a1f4 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_showline.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_showline.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showline", parent_name="carpet.baxis", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_showticklabels.py b/packages/python/plotly/plotly/validators/carpet/baxis/_showticklabels.py index e09efbec73..8a12f53253 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_showticklabels.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["start", "end", "both", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_showtickprefix.py b/packages/python/plotly/plotly/validators/carpet/baxis/_showtickprefix.py index 8a470cff28..3faaa797fd 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_showtickprefix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_showticksuffix.py b/packages/python/plotly/plotly/validators/carpet/baxis/_showticksuffix.py index 859fe57489..62cfe4a537 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_showticksuffix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_smoothing.py b/packages/python/plotly/plotly/validators/carpet/baxis/_smoothing.py index 0599ef3ae4..77ca946e61 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_smoothing.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_smoothing.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="smoothing", parent_name="carpet.baxis", **kwargs edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1.3), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_startline.py b/packages/python/plotly/plotly/validators/carpet/baxis/_startline.py index 104a36ac26..79e00e01e9 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_startline.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_startline.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="startline", parent_name="carpet.baxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_startlinecolor.py b/packages/python/plotly/plotly/validators/carpet/baxis/_startlinecolor.py index 020433d4be..699543178f 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_startlinecolor.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_startlinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_startlinewidth.py b/packages/python/plotly/plotly/validators/carpet/baxis/_startlinewidth.py index bbeedabd0a..a058955507 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_startlinewidth.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_startlinewidth.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_tick0.py b/packages/python/plotly/plotly/validators/carpet/baxis/_tick0.py index 22d047600d..e96bc0267f 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_tick0.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_tick0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="tick0", parent_name="carpet.baxis", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_tickangle.py b/packages/python/plotly/plotly/validators/carpet/baxis/_tickangle.py index 7458bd91d0..ed127c59c6 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_tickangle.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_tickangle.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickangle", parent_name="carpet.baxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_tickformat.py b/packages/python/plotly/plotly/validators/carpet/baxis/_tickformat.py index 0f1bad200f..f470f62e8d 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_tickformat.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_tickformat.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickformat", parent_name="carpet.baxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_tickmode.py b/packages/python/plotly/plotly/validators/carpet/baxis/_tickmode.py index 7398d65444..b6308c7ac8 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_tickmode.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_tickmode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="tickmode", parent_name="carpet.baxis", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_tickprefix.py b/packages/python/plotly/plotly/validators/carpet/baxis/_tickprefix.py index 0bfc2aa288..cf2b497249 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_tickprefix.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickprefix", parent_name="carpet.baxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_ticksuffix.py b/packages/python/plotly/plotly/validators/carpet/baxis/_ticksuffix.py index 7107b7614d..e750a3c7e3 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_ticksuffix.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ticksuffix", parent_name="carpet.baxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_ticktext.py b/packages/python/plotly/plotly/validators/carpet/baxis/_ticktext.py index b7ab62bd0a..9ecc366950 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_ticktext.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_ticktext.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ticktext", parent_name="carpet.baxis", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_ticktextsrc.py b/packages/python/plotly/plotly/validators/carpet/baxis/_ticktextsrc.py index bf10b8571d..21d96ba24e 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_ticktextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ticktextsrc", parent_name="carpet.baxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_tickvals.py b/packages/python/plotly/plotly/validators/carpet/baxis/_tickvals.py index 7439a9c80d..2246fde6cb 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_tickvals.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_tickvals.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickvals", parent_name="carpet.baxis", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_tickvalssrc.py b/packages/python/plotly/plotly/validators/carpet/baxis/_tickvalssrc.py index 944ee7d018..469a72339c 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_tickvalssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickvalssrc", parent_name="carpet.baxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/_type.py b/packages/python/plotly/plotly/validators/carpet/baxis/_type.py index c9a3423bc8..661e8b605c 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/_type.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/_type.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="type", parent_name="carpet.baxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["-", "linear", "date", "category"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/tickfont/_color.py b/packages/python/plotly/plotly/validators/carpet/baxis/tickfont/_color.py index c46e0c6363..6ad3e09902 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/tickfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/tickfont/_family.py b/packages/python/plotly/plotly/validators/carpet/baxis/tickfont/_family.py index 476e2d06fc..9147a6eca0 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/tickfont/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/tickfont/_size.py b/packages/python/plotly/plotly/validators/carpet/baxis/tickfont/_size.py index d605dc211d..823681d6f1 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/tickfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/carpet/baxis/tickformatstop/_dtickrange.py index b93ab2a7e1..a6fff4573a 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/carpet/baxis/tickformatstop/_enabled.py index 974b6fc300..d528edcc0d 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/tickformatstop/_enabled.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/carpet/baxis/tickformatstop/_name.py index 0bfabae268..71192aa76f 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/tickformatstop/_name.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/carpet/baxis/tickformatstop/_templateitemname.py index 97d6e8034b..22a81514df 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/carpet/baxis/tickformatstop/_value.py index 2a30f9e17e..9b45b7d368 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/tickformatstop/_value.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/title/_offset.py b/packages/python/plotly/plotly/validators/carpet/baxis/title/_offset.py index 426f334397..db70d67a98 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/title/_offset.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/title/_offset.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/title/_text.py b/packages/python/plotly/plotly/validators/carpet/baxis/title/_text.py index 3cc69b7c71..a91e687b7e 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/title/_text.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/title/_text.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="text", parent_name="carpet.baxis.title", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/title/font/_color.py b/packages/python/plotly/plotly/validators/carpet/baxis/title/font/_color.py index 0662526789..6594e7d425 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/title/font/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/title/font/_family.py b/packages/python/plotly/plotly/validators/carpet/baxis/title/font/_family.py index e260e70112..be6488793f 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/title/font/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/baxis/title/font/_size.py b/packages/python/plotly/plotly/validators/carpet/baxis/title/font/_size.py index 324802bc6c..60b4200b7f 100644 --- a/packages/python/plotly/plotly/validators/carpet/baxis/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/carpet/baxis/title/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/font/_color.py b/packages/python/plotly/plotly/validators/carpet/font/_color.py index 6bdfb1cb97..5450cd7580 100644 --- a/packages/python/plotly/plotly/validators/carpet/font/_color.py +++ b/packages/python/plotly/plotly/validators/carpet/font/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="carpet.font", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/font/_family.py b/packages/python/plotly/plotly/validators/carpet/font/_family.py index d916c378a7..123ad90b34 100644 --- a/packages/python/plotly/plotly/validators/carpet/font/_family.py +++ b/packages/python/plotly/plotly/validators/carpet/font/_family.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="family", parent_name="carpet.font", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/font/_size.py b/packages/python/plotly/plotly/validators/carpet/font/_size.py index 4e4e169d40..1b0f69aef5 100644 --- a/packages/python/plotly/plotly/validators/carpet/font/_size.py +++ b/packages/python/plotly/plotly/validators/carpet/font/_size.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="size", parent_name="carpet.font", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/carpet/stream/_maxpoints.py index 1bd4749694..45d2ad49f3 100644 --- a/packages/python/plotly/plotly/validators/carpet/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/carpet/stream/_maxpoints.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="maxpoints", parent_name="carpet.stream", **kwarg edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/carpet/stream/_token.py b/packages/python/plotly/plotly/validators/carpet/stream/_token.py index 774c59c6e8..75260c142e 100644 --- a/packages/python/plotly/plotly/validators/carpet/stream/_token.py +++ b/packages/python/plotly/plotly/validators/carpet/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="carpet.stream", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_autocolorscale.py b/packages/python/plotly/plotly/validators/choropleth/_autocolorscale.py index 90d4fed6ef..28da820b5a 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/choropleth/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_coloraxis.py b/packages/python/plotly/plotly/validators/choropleth/_coloraxis.py index 42cf07ca82..aac5f05ff3 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/choropleth/_coloraxis.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="coloraxis", parent_name="choropleth", **kwargs): dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_colorbar.py b/packages/python/plotly/plotly/validators/choropleth/_colorbar.py index 66e24152d6..412230b025 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_colorbar.py +++ b/packages/python/plotly/plotly/validators/choropleth/_colorbar.py @@ -147,6 +147,12 @@ def __init__(self, plotly_name="colorbar", parent_name="choropleth", **kwargs): a.choropleth.colorbar.tickformatstopdefaults), sets the default property values to use for elements of choropleth.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/choropleth/_colorscale.py b/packages/python/plotly/plotly/validators/choropleth/_colorscale.py index ad663bfba3..209ad77f33 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_colorscale.py +++ b/packages/python/plotly/plotly/validators/choropleth/_colorscale.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="colorscale", parent_name="choropleth", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_customdata.py b/packages/python/plotly/plotly/validators/choropleth/_customdata.py index 7b49325d6a..dab4805ca7 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_customdata.py +++ b/packages/python/plotly/plotly/validators/choropleth/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="choropleth", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_customdatasrc.py b/packages/python/plotly/plotly/validators/choropleth/_customdatasrc.py index 9d3014a379..02a7ffddaa 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/choropleth/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="choropleth", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_featureidkey.py b/packages/python/plotly/plotly/validators/choropleth/_featureidkey.py index 9f680b56b8..beb99816e4 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_featureidkey.py +++ b/packages/python/plotly/plotly/validators/choropleth/_featureidkey.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="featureidkey", parent_name="choropleth", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_geo.py b/packages/python/plotly/plotly/validators/choropleth/_geo.py index 3e45a66584..7ce5b5844c 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_geo.py +++ b/packages/python/plotly/plotly/validators/choropleth/_geo.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="geo", parent_name="choropleth", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "geo"), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_geojson.py b/packages/python/plotly/plotly/validators/choropleth/_geojson.py index 69fa21d358..a807f21da7 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_geojson.py +++ b/packages/python/plotly/plotly/validators/choropleth/_geojson.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="geojson", parent_name="choropleth", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_hoverinfo.py b/packages/python/plotly/plotly/validators/choropleth/_hoverinfo.py index e7f9303c9d..91ee5915f1 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/choropleth/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="choropleth", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["location", "z", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/choropleth/_hoverinfosrc.py index 74035de287..afa5ac365a 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/choropleth/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="choropleth", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_hovertemplate.py b/packages/python/plotly/plotly/validators/choropleth/_hovertemplate.py index f02316965f..517390b40f 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/choropleth/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="choropleth", **kwar parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/choropleth/_hovertemplatesrc.py index 8052259509..307a11ee72 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/choropleth/_hovertemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_hovertext.py b/packages/python/plotly/plotly/validators/choropleth/_hovertext.py index dbffe839ec..e8e6316577 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_hovertext.py +++ b/packages/python/plotly/plotly/validators/choropleth/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="choropleth", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_hovertextsrc.py b/packages/python/plotly/plotly/validators/choropleth/_hovertextsrc.py index 1afd1d7b51..4d46d4237f 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/choropleth/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="choropleth", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_ids.py b/packages/python/plotly/plotly/validators/choropleth/_ids.py index c3f80e59e3..9447e6f1b3 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_ids.py +++ b/packages/python/plotly/plotly/validators/choropleth/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="choropleth", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_idssrc.py b/packages/python/plotly/plotly/validators/choropleth/_idssrc.py index b1dc5d671e..03ef0e3227 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_idssrc.py +++ b/packages/python/plotly/plotly/validators/choropleth/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="choropleth", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_legendgroup.py b/packages/python/plotly/plotly/validators/choropleth/_legendgroup.py index 27b40794bc..83a9fee75a 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/choropleth/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="choropleth", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_locationmode.py b/packages/python/plotly/plotly/validators/choropleth/_locationmode.py index db5a3e2bf1..40b48cb80b 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_locationmode.py +++ b/packages/python/plotly/plotly/validators/choropleth/_locationmode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="locationmode", parent_name="choropleth", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", ["ISO-3", "USA-states", "country names", "geojson-id"] ), diff --git a/packages/python/plotly/plotly/validators/choropleth/_locations.py b/packages/python/plotly/plotly/validators/choropleth/_locations.py index 0dabdd9336..4b42c56bb0 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_locations.py +++ b/packages/python/plotly/plotly/validators/choropleth/_locations.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="locations", parent_name="choropleth", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_locationssrc.py b/packages/python/plotly/plotly/validators/choropleth/_locationssrc.py index aba642fc51..91069da95c 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_locationssrc.py +++ b/packages/python/plotly/plotly/validators/choropleth/_locationssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="locationssrc", parent_name="choropleth", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_meta.py b/packages/python/plotly/plotly/validators/choropleth/_meta.py index cf48ba444a..c310a316ba 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_meta.py +++ b/packages/python/plotly/plotly/validators/choropleth/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="choropleth", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_metasrc.py b/packages/python/plotly/plotly/validators/choropleth/_metasrc.py index 6272b31852..bad18e4c81 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_metasrc.py +++ b/packages/python/plotly/plotly/validators/choropleth/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="choropleth", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_name.py b/packages/python/plotly/plotly/validators/choropleth/_name.py index b558f1c1ef..dda13577b7 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_name.py +++ b/packages/python/plotly/plotly/validators/choropleth/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="choropleth", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_reversescale.py b/packages/python/plotly/plotly/validators/choropleth/_reversescale.py index 40ba2bb4fa..a1c9fb6f9d 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_reversescale.py +++ b/packages/python/plotly/plotly/validators/choropleth/_reversescale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="reversescale", parent_name="choropleth", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_selectedpoints.py b/packages/python/plotly/plotly/validators/choropleth/_selectedpoints.py index 602a398dba..e881bc0460 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_selectedpoints.py +++ b/packages/python/plotly/plotly/validators/choropleth/_selectedpoints.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_showlegend.py b/packages/python/plotly/plotly/validators/choropleth/_showlegend.py index 6e49de050d..70f6ba5bbf 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_showlegend.py +++ b/packages/python/plotly/plotly/validators/choropleth/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="choropleth", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_showscale.py b/packages/python/plotly/plotly/validators/choropleth/_showscale.py index 50b2f7a158..8ccddd4762 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_showscale.py +++ b/packages/python/plotly/plotly/validators/choropleth/_showscale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showscale", parent_name="choropleth", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_text.py b/packages/python/plotly/plotly/validators/choropleth/_text.py index 8ff50537d8..758d1173c2 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_text.py +++ b/packages/python/plotly/plotly/validators/choropleth/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="choropleth", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_textsrc.py b/packages/python/plotly/plotly/validators/choropleth/_textsrc.py index 558947c917..476636ed68 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_textsrc.py +++ b/packages/python/plotly/plotly/validators/choropleth/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="choropleth", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_uid.py b/packages/python/plotly/plotly/validators/choropleth/_uid.py index e0a223cb83..d56af72c19 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_uid.py +++ b/packages/python/plotly/plotly/validators/choropleth/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="choropleth", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_uirevision.py b/packages/python/plotly/plotly/validators/choropleth/_uirevision.py index e52bfda12a..d5ef6e1f0a 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_uirevision.py +++ b/packages/python/plotly/plotly/validators/choropleth/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="choropleth", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_visible.py b/packages/python/plotly/plotly/validators/choropleth/_visible.py index 46fe04c4f9..4a08d87b41 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_visible.py +++ b/packages/python/plotly/plotly/validators/choropleth/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="choropleth", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_z.py b/packages/python/plotly/plotly/validators/choropleth/_z.py index f14c555883..88ff1d3226 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_z.py +++ b/packages/python/plotly/plotly/validators/choropleth/_z.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="z", parent_name="choropleth", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_zauto.py b/packages/python/plotly/plotly/validators/choropleth/_zauto.py index 19c36d4d61..ea89a3c44a 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_zauto.py +++ b/packages/python/plotly/plotly/validators/choropleth/_zauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zauto", parent_name="choropleth", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_zmax.py b/packages/python/plotly/plotly/validators/choropleth/_zmax.py index 4386d7386c..3df0f13695 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_zmax.py +++ b/packages/python/plotly/plotly/validators/choropleth/_zmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmax", parent_name="choropleth", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"zauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_zmid.py b/packages/python/plotly/plotly/validators/choropleth/_zmid.py index 50b631aae3..002a416f0c 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_zmid.py +++ b/packages/python/plotly/plotly/validators/choropleth/_zmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmid", parent_name="choropleth", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_zmin.py b/packages/python/plotly/plotly/validators/choropleth/_zmin.py index 37161818f0..d09b16becc 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_zmin.py +++ b/packages/python/plotly/plotly/validators/choropleth/_zmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmin", parent_name="choropleth", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"zauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/_zsrc.py b/packages/python/plotly/plotly/validators/choropleth/_zsrc.py index efd6d96f80..ef4c502c04 100644 --- a/packages/python/plotly/plotly/validators/choropleth/_zsrc.py +++ b/packages/python/plotly/plotly/validators/choropleth/_zsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="zsrc", parent_name="choropleth", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/__init__.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_bgcolor.py index c4bb0db96c..471ca6defe 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_bordercolor.py index 344035f4e0..8400c514d5 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_borderwidth.py index 0a6cf3fef8..bfbc78d061 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_dtick.py index 041c4f0438..3e50818480 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_exponentformat.py index 8895140b27..3b03e6ee52 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_exponentformat.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_len.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_len.py index 5e8fd6bdb2..ae200be504 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_len.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="len", parent_name="choropleth.colorbar", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_lenmode.py index 533b08a2a9..c36b5b6eff 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_lenmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_minexponent.py index 6a9215411e..2a8f05759a 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_nticks.py index 05a1e5b261..bac803576c 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_outlinecolor.py index ed0dd3bcfa..21e9e9dcfe 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_outlinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_outlinewidth.py index 34d4f231dc..f67ddb9933 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_outlinewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_separatethousands.py index ca05b7da16..3042b9f744 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_showexponent.py index 3c99aaa38a..5baa8a3c1a 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_showticklabels.py index fdd7b86698..3f01d80528 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_showticklabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_showtickprefix.py index 49a3b9afec..90d4a44531 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_showtickprefix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_showticksuffix.py index d0bcd38544..3088d039fb 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_showticksuffix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_thickness.py index 6a2c02763c..893ac0de0c 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_thicknessmode.py index 5c21502f31..49cdb500ab 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_thicknessmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_tick0.py index 15b68d15f2..2f1f96bb61 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickangle.py index 8735c420b8..ca77f40e9f 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickcolor.py index 72b53006bf..5964c52983 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickformat.py index 7ff18781e5..d5e1fe660f 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..ecbf3afafb --- /dev/null +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="choropleth.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "colorbars"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticklabelposition.py index 131fc34330..bfa984f964 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticklen.py index 0144491df5..84e1efe67c 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickmode.py index fc9b11d0b0..3c23b372e4 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickprefix.py index 400aa019e5..db141360a7 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticks.py index 6a5633d23a..e020e6d128 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticksuffix.py index b92199b9c5..8eb49fe516 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticktext.py index 07010b9269..716e5878b4 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticktextsrc.py index 37eab02559..497c9eb042 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickvals.py index c369e43dc5..fc2ff6dcd9 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickvalssrc.py index db61ef1d02..b8a2d8aa37 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickwidth.py index 547ddcf6a7..9273fb04ca 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_x.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_x.py index be1716e429..a71499703c 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_x.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="x", parent_name="choropleth.colorbar", **kwargs) edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_xanchor.py index b14d894a79..0556185e7a 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_xpad.py index 0a5d6f8dd4..8e6c501a08 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_xpad.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xpad", parent_name="choropleth.colorbar", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_y.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_y.py index 042b6cb733..fa161c2641 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_y.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="y", parent_name="choropleth.colorbar", **kwargs) edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_yanchor.py index 12f7bc0cf0..ca8a06172c 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/_ypad.py index a2fc56ac9b..d3d4a2d16a 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/_ypad.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ypad", parent_name="choropleth.colorbar", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/tickfont/_color.py index a3cb5784c1..1725b94813 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/tickfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/tickfont/_family.py index c10e3ab055..27b59091eb 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/tickfont/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/tickfont/_size.py index c40438cd8e..042097cdce 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/tickfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/tickformatstop/_dtickrange.py index 161cfc9213..a028b4e18e 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "colorbars"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/tickformatstop/_enabled.py index 3287bf690c..40adf9448d 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/tickformatstop/_name.py index 2266116847..ab2929a7f0 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/tickformatstop/_templateitemname.py index 9288ad3938..67d4cfe2de 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/tickformatstop/_value.py index e4b438c7dd..0d4950d06f 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/title/_side.py index 074f5d55d5..8e15d4666a 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/title/_side.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/title/_text.py index 4c271dc67a..668004ba4b 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/title/font/_color.py index 46d0b37bb4..e898c898e0 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/title/font/_family.py index 91906f9621..65c61e1b6c 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/choropleth/colorbar/title/font/_size.py index 1fbb3bf60b..e6d3cbd6e3 100644 --- a/packages/python/plotly/plotly/validators/choropleth/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/choropleth/colorbar/title/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_align.py index 5dd302eaaf..a9813b8d20 100644 --- a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_align.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_alignsrc.py index c2de4598f3..f1b0d3eef9 100644 --- a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_bgcolor.py index 2a354e74bf..ea036a2871 100644 --- a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_bgcolorsrc.py index 34dab635ce..ab4d6fe2eb 100644 --- a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_bordercolor.py index def9deec2f..65070d8d07 100644 --- a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_bordercolorsrc.py index 1ab239d9c6..dbfba79ac4 100644 --- a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_bordercolorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_namelength.py index 49b00bc5b9..7e9ae85a7c 100644 --- a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_namelengthsrc.py index 003e029c90..549de6ecb7 100644 --- a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/font/_color.py index 76c115d4ef..2729f95bbc 100644 --- a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/font/_colorsrc.py index 2fc43922cf..e391362583 100644 --- a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/font/_family.py index ef31bfda76..9425c132e6 100644 --- a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/font/_familysrc.py index b088780cbc..c8aa3525f6 100644 --- a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/font/_familysrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/font/_size.py index 5d228f2bfa..80ab46e66f 100644 --- a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/font/_sizesrc.py index 6ed976cda3..426059d9f7 100644 --- a/packages/python/plotly/plotly/validators/choropleth/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/choropleth/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/marker/_opacity.py b/packages/python/plotly/plotly/validators/choropleth/marker/_opacity.py index 05d5a0795b..ed5434187e 100644 --- a/packages/python/plotly/plotly/validators/choropleth/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/choropleth/marker/_opacity.py @@ -12,6 +12,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/marker/_opacitysrc.py b/packages/python/plotly/plotly/validators/choropleth/marker/_opacitysrc.py index 35483228d7..fb8a7e89c0 100644 --- a/packages/python/plotly/plotly/validators/choropleth/marker/_opacitysrc.py +++ b/packages/python/plotly/plotly/validators/choropleth/marker/_opacitysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/marker/line/_color.py b/packages/python/plotly/plotly/validators/choropleth/marker/line/_color.py index b87608ae18..10c43db295 100644 --- a/packages/python/plotly/plotly/validators/choropleth/marker/line/_color.py +++ b/packages/python/plotly/plotly/validators/choropleth/marker/line/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/marker/line/_colorsrc.py b/packages/python/plotly/plotly/validators/choropleth/marker/line/_colorsrc.py index dcdc368f2b..0b8f736aef 100644 --- a/packages/python/plotly/plotly/validators/choropleth/marker/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/choropleth/marker/line/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/marker/line/_width.py b/packages/python/plotly/plotly/validators/choropleth/marker/line/_width.py index 6998894225..1f159d870d 100644 --- a/packages/python/plotly/plotly/validators/choropleth/marker/line/_width.py +++ b/packages/python/plotly/plotly/validators/choropleth/marker/line/_width.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/marker/line/_widthsrc.py b/packages/python/plotly/plotly/validators/choropleth/marker/line/_widthsrc.py index cb6aaba764..27e60d5d4a 100644 --- a/packages/python/plotly/plotly/validators/choropleth/marker/line/_widthsrc.py +++ b/packages/python/plotly/plotly/validators/choropleth/marker/line/_widthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/selected/marker/_opacity.py b/packages/python/plotly/plotly/validators/choropleth/selected/marker/_opacity.py index 44df1fa4bf..036ec5bb5d 100644 --- a/packages/python/plotly/plotly/validators/choropleth/selected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/choropleth/selected/marker/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/choropleth/stream/_maxpoints.py index e198ec2a9e..dc924ec076 100644 --- a/packages/python/plotly/plotly/validators/choropleth/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/choropleth/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/stream/_token.py b/packages/python/plotly/plotly/validators/choropleth/stream/_token.py index 2856e86e45..136b4b4ab4 100644 --- a/packages/python/plotly/plotly/validators/choropleth/stream/_token.py +++ b/packages/python/plotly/plotly/validators/choropleth/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="choropleth.stream", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choropleth/unselected/marker/_opacity.py b/packages/python/plotly/plotly/validators/choropleth/unselected/marker/_opacity.py index 451f51b86a..20d36e88d6 100644 --- a/packages/python/plotly/plotly/validators/choropleth/unselected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/choropleth/unselected/marker/_opacity.py @@ -14,6 +14,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_autocolorscale.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_autocolorscale.py index dda30e397c..10daa6fb63 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_below.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_below.py index 8d3d6950da..0a66c5e6ef 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_below.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_below.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="below", parent_name="choroplethmapbox", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_coloraxis.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_coloraxis.py index 7defcb5410..d5b8074c19 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_coloraxis.py @@ -11,6 +11,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_colorbar.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_colorbar.py index 92daef81cf..3c27f3a3ac 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_colorbar.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_colorbar.py @@ -150,6 +150,12 @@ def __init__( lts), sets the default property values to use for elements of choroplethmapbox.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_colorscale.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_colorscale.py index 8558ae34fd..dc97e4e544 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_colorscale.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_customdata.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_customdata.py index cd9e1438dc..f754e76444 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_customdata.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_customdata.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_customdatasrc.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_customdatasrc.py index bf4555c2f7..f674de3390 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_customdatasrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_featureidkey.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_featureidkey.py index 94d4afd770..9ced30855b 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_featureidkey.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_featureidkey.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_geojson.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_geojson.py index 4d139fd5bd..f126d42af4 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_geojson.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_geojson.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="geojson", parent_name="choroplethmapbox", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_hoverinfo.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_hoverinfo.py index a4b04c20dd..b9e1e1f663 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_hoverinfo.py @@ -12,6 +12,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["location", "z", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_hoverinfosrc.py index 042a0948e3..2925d7d61e 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_hoverinfosrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_hovertemplate.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_hovertemplate.py index ff71b5b81e..64a8abff80 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_hovertemplate.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_hovertemplatesrc.py index 550f2d2aca..95a2adaf1b 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_hovertemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_hovertext.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_hovertext.py index 97e8a5fecb..6dc06a4212 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_hovertext.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_hovertext.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_hovertextsrc.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_hovertextsrc.py index 8b35da52da..9592e58b99 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_hovertextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_ids.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_ids.py index 45d3f0639c..5d8ecee6ee 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_ids.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="choroplethmapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_idssrc.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_idssrc.py index 8f9856714a..fafb53e400 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_idssrc.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="choroplethmapbox", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_legendgroup.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_legendgroup.py index a3c838cd56..7570fb65e7 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_legendgroup.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_locations.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_locations.py index 51080df042..c7f1c54536 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_locations.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_locations.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_locationssrc.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_locationssrc.py index 488ee91346..96568a02e7 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_locationssrc.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_locationssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_meta.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_meta.py index 5f6dd38ed4..ab4653f893 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_meta.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="choroplethmapbox", **kwargs) parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_metasrc.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_metasrc.py index bdbfbbb026..4abf42b581 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_metasrc.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="choroplethmapbox", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_name.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_name.py index 7bada84af0..f98dc1feca 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_name.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="choroplethmapbox", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_reversescale.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_reversescale.py index 0c14a885d1..50dd2164ab 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_reversescale.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_selectedpoints.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_selectedpoints.py index 4d23edd0f3..7da8f4a88f 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_selectedpoints.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_selectedpoints.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_showlegend.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_showlegend.py index 6938b067b0..64e49e4eea 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_showlegend.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_showlegend.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_showscale.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_showscale.py index e1a7fd473e..621e1201cc 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_showscale.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_showscale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_subplot.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_subplot.py index d7932c38e1..e7609868c9 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_subplot.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_subplot.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="subplot", parent_name="choroplethmapbox", **kwar parent_name=parent_name, dflt=kwargs.pop("dflt", "mapbox"), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_text.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_text.py index 4c775e82bf..9c8bbe9d8f 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_text.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="choroplethmapbox", **kwargs) parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_textsrc.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_textsrc.py index 5c9a308ece..8c27b0fcc9 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_textsrc.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="choroplethmapbox", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_uid.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_uid.py index 2fe0355ef3..440f91661f 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_uid.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="choroplethmapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_uirevision.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_uirevision.py index 486839bd0c..135e8083a6 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_uirevision.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_uirevision.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_visible.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_visible.py index f8e0d32bb9..0460936ff7 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_visible.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="choroplethmapbox", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_z.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_z.py index 34c4688a11..908b96085d 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_z.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_z.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="z", parent_name="choroplethmapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_zauto.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_zauto.py index c82ff5f39f..c422c0928b 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_zauto.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_zauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zauto", parent_name="choroplethmapbox", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_zmax.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_zmax.py index 27d7079efe..4b82c8e928 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_zmax.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_zmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmax", parent_name="choroplethmapbox", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"zauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_zmid.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_zmid.py index 0392780722..4a017ba976 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_zmid.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_zmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmid", parent_name="choroplethmapbox", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_zmin.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_zmin.py index 6294fec6b8..4c1653e304 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_zmin.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_zmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmin", parent_name="choroplethmapbox", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"zauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/_zsrc.py b/packages/python/plotly/plotly/validators/choroplethmapbox/_zsrc.py index c6380e500d..8064a9dafb 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/_zsrc.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/_zsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="zsrc", parent_name="choroplethmapbox", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/__init__.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_bgcolor.py index b36556fbbe..6227ae410b 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_bordercolor.py index db85b2dc4d..3a655ef887 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_bordercolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_borderwidth.py index fc351359d3..a03193b49b 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_borderwidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_dtick.py index c0c1cd9ac7..f7fbaa39f0 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_exponentformat.py index fd766ab5e5..c803e77b95 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_exponentformat.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_len.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_len.py index f013ede9d8..541cd6a908 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_len.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_lenmode.py index d5194b65e4..0fc2605f65 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_lenmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_minexponent.py index 26d9891e23..71abee8e00 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_minexponent.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_nticks.py index aac20a8d4d..4d1ef345cd 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_outlinecolor.py index d4e6ae7600..7c4c937d84 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_outlinecolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_outlinewidth.py index 6306fe8937..c108ff5b3c 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_outlinewidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_separatethousands.py index 9df85029b6..1f874130c9 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_showexponent.py index 091f691bf7..c5033b3300 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_showexponent.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_showticklabels.py index d7247d27cd..8c27a42e13 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_showticklabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_showtickprefix.py index a8a515e434..c5232c9829 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_showtickprefix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_showticksuffix.py index 4928606e54..475973148d 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_showticksuffix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_thickness.py index f6955a394f..20c755efae 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_thicknessmode.py index 2d09f20b29..725764fa5e 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_thicknessmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tick0.py index 01b662b999..d6a5b66b1d 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickangle.py index 898e9edcf0..9d94c01e85 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickcolor.py index b1202a0a2e..d97665e4ac 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickformat.py index 0e0b1a49f5..a9d4bac582 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickformat.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..40f88a1c00 --- /dev/null +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="choroplethmapbox.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "colorbars"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticklabelposition.py index 77d4a37f79..7972bab6f2 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticklen.py index bb07892dbb..b7458a48a0 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickmode.py index 78c78acad7..ac55e7988c 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickprefix.py index b81faa3fd8..89d0245269 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickprefix.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticks.py index dcffe1ca51..98417a88da 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticksuffix.py index 005639c3ae..d5d8d4fcf1 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticksuffix.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticktext.py index cb9744392d..884d6cd489 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticktextsrc.py index ef2016e82d..ea1f4f9b15 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ticktextsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickvals.py index 70ac47fcd9..7b80442898 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickvalssrc.py index e2210884b5..4359aec6f3 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickvalssrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickwidth.py index 633f5225ae..2aa24dddab 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_x.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_x.py index 93098e2531..29b85407e1 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_x.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_xanchor.py index 0f69bd4a7a..7bc7f25aa2 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_xpad.py index bb80e520f1..3b617bf574 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_xpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_y.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_y.py index 73ce317803..61b0bd3449 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_y.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_yanchor.py index 6cf3a228c6..5830b4846c 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ypad.py index 93d54bc907..e94237337a 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/_ypad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickfont/_color.py index 2838199add..65de422e63 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickfont/_family.py index a15bf0906b..ca70014549 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickfont/_size.py index e5c8f21c8b..ed2b5c507c 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickformatstop/_dtickrange.py index d6e202b35d..c6b799ba52 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "colorbars"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickformatstop/_enabled.py index b91cb7ba3d..2f4e926f52 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickformatstop/_name.py index 48376c2d1d..0bd98a7772 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickformatstop/_templateitemname.py index 707e8bca2b..3ed1ecdd52 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickformatstop/_value.py index 3b56b907cd..3a7a3bc662 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/title/_side.py index 7e375764ea..c3a2f13a61 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/title/_side.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/title/_text.py index ba893602b1..d21df1c170 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/title/_text.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/title/font/_color.py index 09204e624f..5c8936ac9e 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/title/font/_family.py index 65cf6d7e36..50bceb41d2 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/title/font/_size.py index 24c6290d48..3b2a951fa8 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/colorbar/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_align.py index 8be02a3b41..8cafe806dd 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_align.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_alignsrc.py index 5b0930c2ff..8c3925db8a 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_alignsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_bgcolor.py index af69e869fb..7a73fd2f96 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_bgcolorsrc.py index 81db881a20..c2a480f6b7 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_bgcolorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_bordercolor.py index 2540a4aaa5..8c4031167c 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_bordercolor.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_bordercolorsrc.py index 8fdd898ce6..b08ca202c7 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_bordercolorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_namelength.py index c2394cf3a8..494359d2b4 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_namelength.py @@ -14,6 +14,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_namelengthsrc.py index f64e6b5218..ac0d045322 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/_namelengthsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/font/_color.py index a76cc18aef..790e59e857 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/font/_color.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/font/_colorsrc.py index 100c7ea6da..75d8dee769 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/font/_colorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/font/_family.py index ebe73ffe06..9d141ff85f 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/font/_family.py @@ -14,7 +14,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/font/_familysrc.py index 7566344e75..e89fd41f77 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/font/_familysrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/font/_size.py index e90cd2d042..1be3cfffb7 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/font/_size.py @@ -14,6 +14,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/font/_sizesrc.py index 666d77b1d4..fdf5dc2c22 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/hoverlabel/font/_sizesrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/marker/_opacity.py b/packages/python/plotly/plotly/validators/choroplethmapbox/marker/_opacity.py index 6f249975d9..d23cf676d6 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/marker/_opacity.py @@ -12,6 +12,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/marker/_opacitysrc.py b/packages/python/plotly/plotly/validators/choroplethmapbox/marker/_opacitysrc.py index 3db0725fca..e75d03ea50 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/marker/_opacitysrc.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/marker/_opacitysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/marker/line/_color.py b/packages/python/plotly/plotly/validators/choroplethmapbox/marker/line/_color.py index 10da4f2ce8..e00f479381 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/marker/line/_color.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/marker/line/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/marker/line/_colorsrc.py b/packages/python/plotly/plotly/validators/choroplethmapbox/marker/line/_colorsrc.py index 26f9271857..83d5e32907 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/marker/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/marker/line/_colorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/marker/line/_width.py b/packages/python/plotly/plotly/validators/choroplethmapbox/marker/line/_width.py index 1f23be413a..b116bbd2a5 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/marker/line/_width.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/marker/line/_width.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/marker/line/_widthsrc.py b/packages/python/plotly/plotly/validators/choroplethmapbox/marker/line/_widthsrc.py index e3779db302..cad936c39b 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/marker/line/_widthsrc.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/marker/line/_widthsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/selected/marker/_opacity.py b/packages/python/plotly/plotly/validators/choroplethmapbox/selected/marker/_opacity.py index beddb7ff90..0be4f04482 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/selected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/selected/marker/_opacity.py @@ -14,6 +14,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/choroplethmapbox/stream/_maxpoints.py index cd645b1772..fd89858828 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/stream/_token.py b/packages/python/plotly/plotly/validators/choroplethmapbox/stream/_token.py index 1c37768287..e1407faa60 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/stream/_token.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/stream/_token.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/choroplethmapbox/unselected/marker/_opacity.py b/packages/python/plotly/plotly/validators/choroplethmapbox/unselected/marker/_opacity.py index 508c4f654e..6bdb29adb7 100644 --- a/packages/python/plotly/plotly/validators/choroplethmapbox/unselected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/choroplethmapbox/unselected/marker/_opacity.py @@ -14,6 +14,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/__init__.py b/packages/python/plotly/plotly/validators/cone/__init__.py index be7c78c5bb..8c5dd80e04 100644 --- a/packages/python/plotly/plotly/validators/cone/__init__.py +++ b/packages/python/plotly/plotly/validators/cone/__init__.py @@ -2,19 +2,25 @@ if sys.version_info < (3, 7): from ._zsrc import ZsrcValidator + from ._zhoverformat import ZhoverformatValidator from ._z import ZValidator from ._ysrc import YsrcValidator + from ._yhoverformat import YhoverformatValidator from ._y import YValidator from ._xsrc import XsrcValidator + from ._xhoverformat import XhoverformatValidator from ._x import XValidator from ._wsrc import WsrcValidator + from ._whoverformat import WhoverformatValidator from ._w import WValidator from ._vsrc import VsrcValidator from ._visible import VisibleValidator + from ._vhoverformat import VhoverformatValidator from ._v import VValidator from ._usrc import UsrcValidator from ._uirevision import UirevisionValidator from ._uid import UidValidator + from ._uhoverformat import UhoverformatValidator from ._u import UValidator from ._textsrc import TextsrcValidator from ._text import TextValidator @@ -60,19 +66,25 @@ [], [ "._zsrc.ZsrcValidator", + "._zhoverformat.ZhoverformatValidator", "._z.ZValidator", "._ysrc.YsrcValidator", + "._yhoverformat.YhoverformatValidator", "._y.YValidator", "._xsrc.XsrcValidator", + "._xhoverformat.XhoverformatValidator", "._x.XValidator", "._wsrc.WsrcValidator", + "._whoverformat.WhoverformatValidator", "._w.WValidator", "._vsrc.VsrcValidator", "._visible.VisibleValidator", + "._vhoverformat.VhoverformatValidator", "._v.VValidator", "._usrc.UsrcValidator", "._uirevision.UirevisionValidator", "._uid.UidValidator", + "._uhoverformat.UhoverformatValidator", "._u.UValidator", "._textsrc.TextsrcValidator", "._text.TextValidator", diff --git a/packages/python/plotly/plotly/validators/cone/_anchor.py b/packages/python/plotly/plotly/validators/cone/_anchor.py index 99fb322d6f..ded0498878 100644 --- a/packages/python/plotly/plotly/validators/cone/_anchor.py +++ b/packages/python/plotly/plotly/validators/cone/_anchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="anchor", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["tip", "tail", "cm", "center"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_autocolorscale.py b/packages/python/plotly/plotly/validators/cone/_autocolorscale.py index 927db6d825..73c9f4fa0b 100644 --- a/packages/python/plotly/plotly/validators/cone/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/cone/_autocolorscale.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="autocolorscale", parent_name="cone", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_cauto.py b/packages/python/plotly/plotly/validators/cone/_cauto.py index 3b8305d396..6bb935e2c8 100644 --- a/packages/python/plotly/plotly/validators/cone/_cauto.py +++ b/packages/python/plotly/plotly/validators/cone/_cauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cauto", parent_name="cone", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_cmax.py b/packages/python/plotly/plotly/validators/cone/_cmax.py index 50139418e3..2750c1fb6e 100644 --- a/packages/python/plotly/plotly/validators/cone/_cmax.py +++ b/packages/python/plotly/plotly/validators/cone/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="cone", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_cmid.py b/packages/python/plotly/plotly/validators/cone/_cmid.py index 52fa283067..90575676a4 100644 --- a/packages/python/plotly/plotly/validators/cone/_cmid.py +++ b/packages/python/plotly/plotly/validators/cone/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="cone", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_cmin.py b/packages/python/plotly/plotly/validators/cone/_cmin.py index 679cd33e50..b078b669b6 100644 --- a/packages/python/plotly/plotly/validators/cone/_cmin.py +++ b/packages/python/plotly/plotly/validators/cone/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="cone", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_coloraxis.py b/packages/python/plotly/plotly/validators/cone/_coloraxis.py index e51bd6290d..7c541cb614 100644 --- a/packages/python/plotly/plotly/validators/cone/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/cone/_coloraxis.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="coloraxis", parent_name="cone", **kwargs): dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_colorbar.py b/packages/python/plotly/plotly/validators/cone/_colorbar.py index cb59c0b82b..444f18cdc2 100644 --- a/packages/python/plotly/plotly/validators/cone/_colorbar.py +++ b/packages/python/plotly/plotly/validators/cone/_colorbar.py @@ -147,6 +147,12 @@ def __init__(self, plotly_name="colorbar", parent_name="cone", **kwargs): a.cone.colorbar.tickformatstopdefaults), sets the default property values to use for elements of cone.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/cone/_colorscale.py b/packages/python/plotly/plotly/validators/cone/_colorscale.py index 0224dd7118..97704ad66b 100644 --- a/packages/python/plotly/plotly/validators/cone/_colorscale.py +++ b/packages/python/plotly/plotly/validators/cone/_colorscale.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="colorscale", parent_name="cone", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_customdata.py b/packages/python/plotly/plotly/validators/cone/_customdata.py index 81369915a1..54baccfb65 100644 --- a/packages/python/plotly/plotly/validators/cone/_customdata.py +++ b/packages/python/plotly/plotly/validators/cone/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_customdatasrc.py b/packages/python/plotly/plotly/validators/cone/_customdatasrc.py index 5a0a481618..c561e66feb 100644 --- a/packages/python/plotly/plotly/validators/cone/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/cone/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_hoverinfo.py b/packages/python/plotly/plotly/validators/cone/_hoverinfo.py index a91941de05..5ab259c4a9 100644 --- a/packages/python/plotly/plotly/validators/cone/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/cone/_hoverinfo.py @@ -12,6 +12,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="cone", **kwargs): flags=kwargs.pop( "flags", ["x", "y", "z", "u", "v", "w", "norm", "text", "name"] ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/cone/_hoverinfosrc.py index 8d592b77e4..f17ca77fe1 100644 --- a/packages/python/plotly/plotly/validators/cone/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/cone/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_hovertemplate.py b/packages/python/plotly/plotly/validators/cone/_hovertemplate.py index af6348f3e0..3c637028a8 100644 --- a/packages/python/plotly/plotly/validators/cone/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/cone/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="cone", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/cone/_hovertemplatesrc.py index 01c79e80b2..64b8ae9855 100644 --- a/packages/python/plotly/plotly/validators/cone/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/cone/_hovertemplatesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertemplatesrc", parent_name="cone", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_hovertext.py b/packages/python/plotly/plotly/validators/cone/_hovertext.py index e40fae2444..5509c7c221 100644 --- a/packages/python/plotly/plotly/validators/cone/_hovertext.py +++ b/packages/python/plotly/plotly/validators/cone/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="cone", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_hovertextsrc.py b/packages/python/plotly/plotly/validators/cone/_hovertextsrc.py index 82768a43bf..d5b2feb04b 100644 --- a/packages/python/plotly/plotly/validators/cone/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/cone/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_ids.py b/packages/python/plotly/plotly/validators/cone/_ids.py index bffd79bee6..5a3b7e1184 100644 --- a/packages/python/plotly/plotly/validators/cone/_ids.py +++ b/packages/python/plotly/plotly/validators/cone/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_idssrc.py b/packages/python/plotly/plotly/validators/cone/_idssrc.py index 2e14baa44a..bcd2997e34 100644 --- a/packages/python/plotly/plotly/validators/cone/_idssrc.py +++ b/packages/python/plotly/plotly/validators/cone/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_legendgroup.py b/packages/python/plotly/plotly/validators/cone/_legendgroup.py index 062aef5f23..bf1f79781f 100644 --- a/packages/python/plotly/plotly/validators/cone/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/cone/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_meta.py b/packages/python/plotly/plotly/validators/cone/_meta.py index e724645bb8..6af0ad562d 100644 --- a/packages/python/plotly/plotly/validators/cone/_meta.py +++ b/packages/python/plotly/plotly/validators/cone/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="cone", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_metasrc.py b/packages/python/plotly/plotly/validators/cone/_metasrc.py index f2062b1870..4da1d391c2 100644 --- a/packages/python/plotly/plotly/validators/cone/_metasrc.py +++ b/packages/python/plotly/plotly/validators/cone/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_name.py b/packages/python/plotly/plotly/validators/cone/_name.py index 21fc1fb9b0..d7eeb109a8 100644 --- a/packages/python/plotly/plotly/validators/cone/_name.py +++ b/packages/python/plotly/plotly/validators/cone/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_opacity.py b/packages/python/plotly/plotly/validators/cone/_opacity.py index c02118a628..1c2f22d9a7 100644 --- a/packages/python/plotly/plotly/validators/cone/_opacity.py +++ b/packages/python/plotly/plotly/validators/cone/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="cone", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_reversescale.py b/packages/python/plotly/plotly/validators/cone/_reversescale.py index 1fd1f83139..ba45054a56 100644 --- a/packages/python/plotly/plotly/validators/cone/_reversescale.py +++ b/packages/python/plotly/plotly/validators/cone/_reversescale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="reversescale", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_scene.py b/packages/python/plotly/plotly/validators/cone/_scene.py index 730b34d9c6..3af0b9ebf8 100644 --- a/packages/python/plotly/plotly/validators/cone/_scene.py +++ b/packages/python/plotly/plotly/validators/cone/_scene.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="scene", parent_name="cone", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "scene"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_showlegend.py b/packages/python/plotly/plotly/validators/cone/_showlegend.py index f7a3a96b61..741a0c1334 100644 --- a/packages/python/plotly/plotly/validators/cone/_showlegend.py +++ b/packages/python/plotly/plotly/validators/cone/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_showscale.py b/packages/python/plotly/plotly/validators/cone/_showscale.py index 2e4897ab75..0b2d9fb590 100644 --- a/packages/python/plotly/plotly/validators/cone/_showscale.py +++ b/packages/python/plotly/plotly/validators/cone/_showscale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showscale", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_sizemode.py b/packages/python/plotly/plotly/validators/cone/_sizemode.py index 967b2bf7a4..920a40aacc 100644 --- a/packages/python/plotly/plotly/validators/cone/_sizemode.py +++ b/packages/python/plotly/plotly/validators/cone/_sizemode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="sizemode", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["scaled", "absolute"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_sizeref.py b/packages/python/plotly/plotly/validators/cone/_sizeref.py index c5ba0514cd..5a6f7c26c2 100644 --- a/packages/python/plotly/plotly/validators/cone/_sizeref.py +++ b/packages/python/plotly/plotly/validators/cone/_sizeref.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="sizeref", parent_name="cone", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_text.py b/packages/python/plotly/plotly/validators/cone/_text.py index 9622b83b7f..25f909cbca 100644 --- a/packages/python/plotly/plotly/validators/cone/_text.py +++ b/packages/python/plotly/plotly/validators/cone/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="cone", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_textsrc.py b/packages/python/plotly/plotly/validators/cone/_textsrc.py index c266b02bc9..58888b6df0 100644 --- a/packages/python/plotly/plotly/validators/cone/_textsrc.py +++ b/packages/python/plotly/plotly/validators/cone/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_u.py b/packages/python/plotly/plotly/validators/cone/_u.py index 9d58adf8ef..942f638271 100644 --- a/packages/python/plotly/plotly/validators/cone/_u.py +++ b/packages/python/plotly/plotly/validators/cone/_u.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="u", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_uhoverformat.py b/packages/python/plotly/plotly/validators/cone/_uhoverformat.py new file mode 100644 index 0000000000..55857d0b1e --- /dev/null +++ b/packages/python/plotly/plotly/validators/cone/_uhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class UhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="uhoverformat", parent_name="cone", **kwargs): + super(UhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/cone/_uid.py b/packages/python/plotly/plotly/validators/cone/_uid.py index ad316f68f5..e46c212757 100644 --- a/packages/python/plotly/plotly/validators/cone/_uid.py +++ b/packages/python/plotly/plotly/validators/cone/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_uirevision.py b/packages/python/plotly/plotly/validators/cone/_uirevision.py index e7536a256a..3e27658139 100644 --- a/packages/python/plotly/plotly/validators/cone/_uirevision.py +++ b/packages/python/plotly/plotly/validators/cone/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_usrc.py b/packages/python/plotly/plotly/validators/cone/_usrc.py index 84ac29d216..3c0bc32d23 100644 --- a/packages/python/plotly/plotly/validators/cone/_usrc.py +++ b/packages/python/plotly/plotly/validators/cone/_usrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="usrc", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_v.py b/packages/python/plotly/plotly/validators/cone/_v.py index 57dc9cd8f4..196dcff782 100644 --- a/packages/python/plotly/plotly/validators/cone/_v.py +++ b/packages/python/plotly/plotly/validators/cone/_v.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="v", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_vhoverformat.py b/packages/python/plotly/plotly/validators/cone/_vhoverformat.py new file mode 100644 index 0000000000..914a9cdf39 --- /dev/null +++ b/packages/python/plotly/plotly/validators/cone/_vhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class VhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="vhoverformat", parent_name="cone", **kwargs): + super(VhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/cone/_visible.py b/packages/python/plotly/plotly/validators/cone/_visible.py index 8e54c4382c..ceabf07192 100644 --- a/packages/python/plotly/plotly/validators/cone/_visible.py +++ b/packages/python/plotly/plotly/validators/cone/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_vsrc.py b/packages/python/plotly/plotly/validators/cone/_vsrc.py index cbc8f4a7ff..d8f8bd25ef 100644 --- a/packages/python/plotly/plotly/validators/cone/_vsrc.py +++ b/packages/python/plotly/plotly/validators/cone/_vsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="vsrc", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_w.py b/packages/python/plotly/plotly/validators/cone/_w.py index e12936388c..692cd301e6 100644 --- a/packages/python/plotly/plotly/validators/cone/_w.py +++ b/packages/python/plotly/plotly/validators/cone/_w.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="w", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_whoverformat.py b/packages/python/plotly/plotly/validators/cone/_whoverformat.py new file mode 100644 index 0000000000..57087fcaa1 --- /dev/null +++ b/packages/python/plotly/plotly/validators/cone/_whoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class WhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="whoverformat", parent_name="cone", **kwargs): + super(WhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/cone/_wsrc.py b/packages/python/plotly/plotly/validators/cone/_wsrc.py index 0a4c1fa114..869ceb2d49 100644 --- a/packages/python/plotly/plotly/validators/cone/_wsrc.py +++ b/packages/python/plotly/plotly/validators/cone/_wsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="wsrc", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_x.py b/packages/python/plotly/plotly/validators/cone/_x.py index 8b7dfd1d1f..97e8cfbee3 100644 --- a/packages/python/plotly/plotly/validators/cone/_x.py +++ b/packages/python/plotly/plotly/validators/cone/_x.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_xhoverformat.py b/packages/python/plotly/plotly/validators/cone/_xhoverformat.py new file mode 100644 index 0000000000..0a9586bef3 --- /dev/null +++ b/packages/python/plotly/plotly/validators/cone/_xhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class XhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="xhoverformat", parent_name="cone", **kwargs): + super(XhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/cone/_xsrc.py b/packages/python/plotly/plotly/validators/cone/_xsrc.py index f52ffc9a76..fb7c37f92d 100644 --- a/packages/python/plotly/plotly/validators/cone/_xsrc.py +++ b/packages/python/plotly/plotly/validators/cone/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_y.py b/packages/python/plotly/plotly/validators/cone/_y.py index 8ba803d9cf..582924cdb8 100644 --- a/packages/python/plotly/plotly/validators/cone/_y.py +++ b/packages/python/plotly/plotly/validators/cone/_y.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_yhoverformat.py b/packages/python/plotly/plotly/validators/cone/_yhoverformat.py new file mode 100644 index 0000000000..5b9a9ba36f --- /dev/null +++ b/packages/python/plotly/plotly/validators/cone/_yhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class YhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="yhoverformat", parent_name="cone", **kwargs): + super(YhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/cone/_ysrc.py b/packages/python/plotly/plotly/validators/cone/_ysrc.py index 49cc974b67..3a4e305141 100644 --- a/packages/python/plotly/plotly/validators/cone/_ysrc.py +++ b/packages/python/plotly/plotly/validators/cone/_ysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ysrc", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_z.py b/packages/python/plotly/plotly/validators/cone/_z.py index 13e6dbe151..30cbf732d3 100644 --- a/packages/python/plotly/plotly/validators/cone/_z.py +++ b/packages/python/plotly/plotly/validators/cone/_z.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="z", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/_zhoverformat.py b/packages/python/plotly/plotly/validators/cone/_zhoverformat.py new file mode 100644 index 0000000000..261c3f0f0e --- /dev/null +++ b/packages/python/plotly/plotly/validators/cone/_zhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class ZhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="zhoverformat", parent_name="cone", **kwargs): + super(ZhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/cone/_zsrc.py b/packages/python/plotly/plotly/validators/cone/_zsrc.py index 359798a1ca..ea29ae796f 100644 --- a/packages/python/plotly/plotly/validators/cone/_zsrc.py +++ b/packages/python/plotly/plotly/validators/cone/_zsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="zsrc", parent_name="cone", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/__init__.py b/packages/python/plotly/plotly/validators/cone/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/cone/colorbar/_bgcolor.py index e61136dd65..daf247158a 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_bgcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="bgcolor", parent_name="cone.colorbar", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/cone/colorbar/_bordercolor.py index 39b0aede5f..7e931a9406 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/cone/colorbar/_borderwidth.py index 3936068907..aa31b842eb 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/cone/colorbar/_dtick.py index 53d5b60374..a418f34dfb 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_dtick.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="dtick", parent_name="cone.colorbar", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/cone/colorbar/_exponentformat.py index 2882270f1b..d7a2319eec 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_exponentformat.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_len.py b/packages/python/plotly/plotly/validators/cone/colorbar/_len.py index 2a8fc855d4..ae08c892ea 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_len.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="len", parent_name="cone.colorbar", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/cone/colorbar/_lenmode.py index 89ac848835..465e7ff3f1 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_lenmode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="lenmode", parent_name="cone.colorbar", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/cone/colorbar/_minexponent.py index 526dd29590..2c4a2a8b2c 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/cone/colorbar/_nticks.py index e8c55f68d7..39a515a8b4 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_nticks.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="nticks", parent_name="cone.colorbar", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/cone/colorbar/_outlinecolor.py index 56c1f3e211..627f93cd44 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_outlinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/cone/colorbar/_outlinewidth.py index 1963d3cb4c..61d27f105e 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_outlinewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/cone/colorbar/_separatethousands.py index 355595bb72..00f7a5662d 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_separatethousands.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/cone/colorbar/_showexponent.py index aee4696290..7348274e9f 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/cone/colorbar/_showticklabels.py index b67ab65eeb..8b3c06654b 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_showticklabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/cone/colorbar/_showtickprefix.py index 6a5539c961..9a59620bcd 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_showtickprefix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/cone/colorbar/_showticksuffix.py index 5b0a71e2c2..a882384575 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_showticksuffix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/cone/colorbar/_thickness.py index d3e5e39c09..1be88720b1 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_thickness.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="thickness", parent_name="cone.colorbar", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/cone/colorbar/_thicknessmode.py index 6cab269138..780825a965 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_thicknessmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/cone/colorbar/_tick0.py index 7e5723c0d4..0b07e0e400 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_tick0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="tick0", parent_name="cone.colorbar", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/cone/colorbar/_tickangle.py index 3f76b28fc8..dffd1dbd4c 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_tickangle.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickangle", parent_name="cone.colorbar", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/cone/colorbar/_tickcolor.py index 43222a6022..b2e10012df 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_tickcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickcolor", parent_name="cone.colorbar", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/cone/colorbar/_tickformat.py index 73960c03ea..0e3e912fe9 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_tickformat.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickformat", parent_name="cone.colorbar", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/cone/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..aa575d5c93 --- /dev/null +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_ticklabeloverflow.py @@ -0,0 +1,14 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, plotly_name="ticklabeloverflow", parent_name="cone.colorbar", **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "colorbars"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/cone/colorbar/_ticklabelposition.py index 841bf6ccd3..bd525e7b2c 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_ticklabelposition.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/cone/colorbar/_ticklen.py index 760a90e123..9471d7dd26 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_ticklen.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ticklen", parent_name="cone.colorbar", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/cone/colorbar/_tickmode.py index 0ca981e2c0..d678e4613c 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_tickmode.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="tickmode", parent_name="cone.colorbar", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/cone/colorbar/_tickprefix.py index 17e79bb991..f06fbe3042 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_tickprefix.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickprefix", parent_name="cone.colorbar", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/cone/colorbar/_ticks.py index 3a6839d5c5..32bd0961c2 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_ticks.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ticks", parent_name="cone.colorbar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/cone/colorbar/_ticksuffix.py index a21004fd55..4fa0850260 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_ticksuffix.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ticksuffix", parent_name="cone.colorbar", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/cone/colorbar/_ticktext.py index d003ffcdcc..ed171e5799 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_ticktext.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ticktext", parent_name="cone.colorbar", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/cone/colorbar/_ticktextsrc.py index fef538cd7a..ee1d1ce50c 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/cone/colorbar/_tickvals.py index 1d80905460..414903f204 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_tickvals.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickvals", parent_name="cone.colorbar", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/cone/colorbar/_tickvalssrc.py index 8b29c9755a..c66da9aed8 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/cone/colorbar/_tickwidth.py index aecd2c6d0a..826eb1eca0 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_tickwidth.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="tickwidth", parent_name="cone.colorbar", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_x.py b/packages/python/plotly/plotly/validators/cone/colorbar/_x.py index 46537921eb..1659b4bd1d 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_x.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="x", parent_name="cone.colorbar", **kwargs): edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/cone/colorbar/_xanchor.py index 4b441bc295..5c93f00346 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_xanchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xanchor", parent_name="cone.colorbar", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/cone/colorbar/_xpad.py index a914d2e7fa..9a8e8fca85 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_xpad.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xpad", parent_name="cone.colorbar", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_y.py b/packages/python/plotly/plotly/validators/cone/colorbar/_y.py index 2d9c096708..89405e88f9 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_y.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="y", parent_name="cone.colorbar", **kwargs): edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/cone/colorbar/_yanchor.py index 99dc4dc254..b6165c662d 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_yanchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="yanchor", parent_name="cone.colorbar", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/cone/colorbar/_ypad.py index 6b2d355496..b024542acd 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/_ypad.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ypad", parent_name="cone.colorbar", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/cone/colorbar/tickfont/_color.py index 0bfb6578fa..132ac8b667 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/tickfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/cone/colorbar/tickfont/_family.py index 23e6c662ef..cc0b3853a8 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/tickfont/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/cone/colorbar/tickfont/_size.py index 6d1b04ceac..db24d0cdee 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/tickfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/cone/colorbar/tickformatstop/_dtickrange.py index acb3796876..c8f2b4d53c 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "colorbars"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/cone/colorbar/tickformatstop/_enabled.py index a2f702b8ba..b7a7e3851b 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/cone/colorbar/tickformatstop/_name.py index 34accf4091..7d94b2f92e 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/tickformatstop/_name.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/cone/colorbar/tickformatstop/_templateitemname.py index 98b2833dd4..5790414222 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/cone/colorbar/tickformatstop/_value.py index 6ebe586860..41e337b3b7 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/tickformatstop/_value.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/cone/colorbar/title/_side.py index b27dee0d0a..18b1c0b876 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/title/_side.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="side", parent_name="cone.colorbar.title", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/cone/colorbar/title/_text.py index 2c0a8e5176..798798ba7e 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/title/_text.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="text", parent_name="cone.colorbar.title", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/cone/colorbar/title/font/_color.py index f70d5a15ee..7c8d545461 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/title/font/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/cone/colorbar/title/font/_family.py index 0298bfa2aa..c32db7c33c 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/title/font/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/cone/colorbar/title/font/_size.py index dce33c9deb..0de18bef78 100644 --- a/packages/python/plotly/plotly/validators/cone/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/cone/colorbar/title/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/cone/hoverlabel/_align.py index 772f1c61a5..b90313c754 100644 --- a/packages/python/plotly/plotly/validators/cone/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/cone/hoverlabel/_align.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="align", parent_name="cone.hoverlabel", **kwargs) parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/cone/hoverlabel/_alignsrc.py index 92f0afd929..76902d98d7 100644 --- a/packages/python/plotly/plotly/validators/cone/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/cone/hoverlabel/_alignsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="alignsrc", parent_name="cone.hoverlabel", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/cone/hoverlabel/_bgcolor.py index ea615ce913..bedd95eb1c 100644 --- a/packages/python/plotly/plotly/validators/cone/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/cone/hoverlabel/_bgcolor.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="bgcolor", parent_name="cone.hoverlabel", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/cone/hoverlabel/_bgcolorsrc.py index 437dc879e8..c6bd7eda68 100644 --- a/packages/python/plotly/plotly/validators/cone/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/cone/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/cone/hoverlabel/_bordercolor.py index 78e1e431c5..377eedaf8d 100644 --- a/packages/python/plotly/plotly/validators/cone/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/cone/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/cone/hoverlabel/_bordercolorsrc.py index 41481eec3f..60a3284bec 100644 --- a/packages/python/plotly/plotly/validators/cone/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/cone/hoverlabel/_bordercolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/cone/hoverlabel/_namelength.py index 8585565262..fd7d03ad27 100644 --- a/packages/python/plotly/plotly/validators/cone/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/cone/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/cone/hoverlabel/_namelengthsrc.py index 3200dcb139..7fa04641de 100644 --- a/packages/python/plotly/plotly/validators/cone/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/cone/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/cone/hoverlabel/font/_color.py index f8d3c636fd..8dbb174c81 100644 --- a/packages/python/plotly/plotly/validators/cone/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/cone/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/cone/hoverlabel/font/_colorsrc.py index 770459dab5..c74cedc4b2 100644 --- a/packages/python/plotly/plotly/validators/cone/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/cone/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/cone/hoverlabel/font/_family.py index 231404ebe5..9f7bac50ba 100644 --- a/packages/python/plotly/plotly/validators/cone/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/cone/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/cone/hoverlabel/font/_familysrc.py index 46cbd78a5d..4ca3fae3ae 100644 --- a/packages/python/plotly/plotly/validators/cone/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/cone/hoverlabel/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/cone/hoverlabel/font/_size.py index 291bcc1446..c6af3a1b21 100644 --- a/packages/python/plotly/plotly/validators/cone/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/cone/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/cone/hoverlabel/font/_sizesrc.py index 6a4e77b481..17d210f36f 100644 --- a/packages/python/plotly/plotly/validators/cone/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/cone/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/lighting/_ambient.py b/packages/python/plotly/plotly/validators/cone/lighting/_ambient.py index 814f96b6a9..0d1d60f291 100644 --- a/packages/python/plotly/plotly/validators/cone/lighting/_ambient.py +++ b/packages/python/plotly/plotly/validators/cone/lighting/_ambient.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="ambient", parent_name="cone.lighting", **kwargs) edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/lighting/_diffuse.py b/packages/python/plotly/plotly/validators/cone/lighting/_diffuse.py index 0a0b63234c..15870c2032 100644 --- a/packages/python/plotly/plotly/validators/cone/lighting/_diffuse.py +++ b/packages/python/plotly/plotly/validators/cone/lighting/_diffuse.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="diffuse", parent_name="cone.lighting", **kwargs) edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/lighting/_facenormalsepsilon.py b/packages/python/plotly/plotly/validators/cone/lighting/_facenormalsepsilon.py index 0d7b7b0496..bfd688edde 100644 --- a/packages/python/plotly/plotly/validators/cone/lighting/_facenormalsepsilon.py +++ b/packages/python/plotly/plotly/validators/cone/lighting/_facenormalsepsilon.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/lighting/_fresnel.py b/packages/python/plotly/plotly/validators/cone/lighting/_fresnel.py index 436f3f7c20..bb3623ad6d 100644 --- a/packages/python/plotly/plotly/validators/cone/lighting/_fresnel.py +++ b/packages/python/plotly/plotly/validators/cone/lighting/_fresnel.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="fresnel", parent_name="cone.lighting", **kwargs) edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 5), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/lighting/_roughness.py b/packages/python/plotly/plotly/validators/cone/lighting/_roughness.py index e508ba2a16..60cb4c0edf 100644 --- a/packages/python/plotly/plotly/validators/cone/lighting/_roughness.py +++ b/packages/python/plotly/plotly/validators/cone/lighting/_roughness.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="roughness", parent_name="cone.lighting", **kwarg edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/lighting/_specular.py b/packages/python/plotly/plotly/validators/cone/lighting/_specular.py index d975989dc5..3ef702f3cf 100644 --- a/packages/python/plotly/plotly/validators/cone/lighting/_specular.py +++ b/packages/python/plotly/plotly/validators/cone/lighting/_specular.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="specular", parent_name="cone.lighting", **kwargs edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 2), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/lighting/_vertexnormalsepsilon.py b/packages/python/plotly/plotly/validators/cone/lighting/_vertexnormalsepsilon.py index e4056cd825..00766cdf69 100644 --- a/packages/python/plotly/plotly/validators/cone/lighting/_vertexnormalsepsilon.py +++ b/packages/python/plotly/plotly/validators/cone/lighting/_vertexnormalsepsilon.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/lightposition/_x.py b/packages/python/plotly/plotly/validators/cone/lightposition/_x.py index 2e1ea02274..bc24b6efed 100644 --- a/packages/python/plotly/plotly/validators/cone/lightposition/_x.py +++ b/packages/python/plotly/plotly/validators/cone/lightposition/_x.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="x", parent_name="cone.lightposition", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 100000), min=kwargs.pop("min", -100000), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/lightposition/_y.py b/packages/python/plotly/plotly/validators/cone/lightposition/_y.py index b71b15fa53..13e629172b 100644 --- a/packages/python/plotly/plotly/validators/cone/lightposition/_y.py +++ b/packages/python/plotly/plotly/validators/cone/lightposition/_y.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="y", parent_name="cone.lightposition", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 100000), min=kwargs.pop("min", -100000), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/lightposition/_z.py b/packages/python/plotly/plotly/validators/cone/lightposition/_z.py index 89ff49aafe..8e51130786 100644 --- a/packages/python/plotly/plotly/validators/cone/lightposition/_z.py +++ b/packages/python/plotly/plotly/validators/cone/lightposition/_z.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="z", parent_name="cone.lightposition", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 100000), min=kwargs.pop("min", -100000), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/cone/stream/_maxpoints.py index ee254d9bed..162de2eda0 100644 --- a/packages/python/plotly/plotly/validators/cone/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/cone/stream/_maxpoints.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="maxpoints", parent_name="cone.stream", **kwargs) edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/cone/stream/_token.py b/packages/python/plotly/plotly/validators/cone/stream/_token.py index 87d50c6ee7..b0fdb0c6ae 100644 --- a/packages/python/plotly/plotly/validators/cone/stream/_token.py +++ b/packages/python/plotly/plotly/validators/cone/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="cone.stream", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/__init__.py b/packages/python/plotly/plotly/validators/contour/__init__.py index 313a0e4940..8b9d6fefb1 100644 --- a/packages/python/plotly/plotly/validators/contour/__init__.py +++ b/packages/python/plotly/plotly/validators/contour/__init__.py @@ -13,6 +13,7 @@ from ._yperiodalignment import YperiodalignmentValidator from ._yperiod0 import Yperiod0Validator from ._yperiod import YperiodValidator + from ._yhoverformat import YhoverformatValidator from ._ycalendar import YcalendarValidator from ._yaxis import YaxisValidator from ._y0 import Y0Validator @@ -22,6 +23,7 @@ from ._xperiodalignment import XperiodalignmentValidator from ._xperiod0 import Xperiod0Validator from ._xperiod import XperiodValidator + from ._xhoverformat import XhoverformatValidator from ._xcalendar import XcalendarValidator from ._xaxis import XaxisValidator from ._x0 import X0Validator @@ -84,6 +86,7 @@ "._yperiodalignment.YperiodalignmentValidator", "._yperiod0.Yperiod0Validator", "._yperiod.YperiodValidator", + "._yhoverformat.YhoverformatValidator", "._ycalendar.YcalendarValidator", "._yaxis.YaxisValidator", "._y0.Y0Validator", @@ -93,6 +96,7 @@ "._xperiodalignment.XperiodalignmentValidator", "._xperiod0.Xperiod0Validator", "._xperiod.XperiodValidator", + "._xhoverformat.XhoverformatValidator", "._xcalendar.XcalendarValidator", "._xaxis.XaxisValidator", "._x0.X0Validator", diff --git a/packages/python/plotly/plotly/validators/contour/_autocolorscale.py b/packages/python/plotly/plotly/validators/contour/_autocolorscale.py index f1e77a5ae5..da60444d18 100644 --- a/packages/python/plotly/plotly/validators/contour/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/contour/_autocolorscale.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="autocolorscale", parent_name="contour", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_autocontour.py b/packages/python/plotly/plotly/validators/contour/_autocontour.py index 07c0b940fe..17fd1f8290 100644 --- a/packages/python/plotly/plotly/validators/contour/_autocontour.py +++ b/packages/python/plotly/plotly/validators/contour/_autocontour.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="autocontour", parent_name="contour", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_coloraxis.py b/packages/python/plotly/plotly/validators/contour/_coloraxis.py index 478e8efb9e..1a7e4de84d 100644 --- a/packages/python/plotly/plotly/validators/contour/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/contour/_coloraxis.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="coloraxis", parent_name="contour", **kwargs): dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_colorbar.py b/packages/python/plotly/plotly/validators/contour/_colorbar.py index 9ea1b1f644..a78545a6af 100644 --- a/packages/python/plotly/plotly/validators/contour/_colorbar.py +++ b/packages/python/plotly/plotly/validators/contour/_colorbar.py @@ -147,6 +147,12 @@ def __init__(self, plotly_name="colorbar", parent_name="contour", **kwargs): a.contour.colorbar.tickformatstopdefaults), sets the default property values to use for elements of contour.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/contour/_colorscale.py b/packages/python/plotly/plotly/validators/contour/_colorscale.py index e1a61d5c79..196f6f5bee 100644 --- a/packages/python/plotly/plotly/validators/contour/_colorscale.py +++ b/packages/python/plotly/plotly/validators/contour/_colorscale.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="colorscale", parent_name="contour", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_connectgaps.py b/packages/python/plotly/plotly/validators/contour/_connectgaps.py index 718aedef99..9c6ee9b74c 100644 --- a/packages/python/plotly/plotly/validators/contour/_connectgaps.py +++ b/packages/python/plotly/plotly/validators/contour/_connectgaps.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="connectgaps", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_customdata.py b/packages/python/plotly/plotly/validators/contour/_customdata.py index 8863c829b6..2694ee7752 100644 --- a/packages/python/plotly/plotly/validators/contour/_customdata.py +++ b/packages/python/plotly/plotly/validators/contour/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_customdatasrc.py b/packages/python/plotly/plotly/validators/contour/_customdatasrc.py index cf4ac25c0d..7d004a7046 100644 --- a/packages/python/plotly/plotly/validators/contour/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/contour/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="contour", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_dx.py b/packages/python/plotly/plotly/validators/contour/_dx.py index 853644655d..b3cd6d29e7 100644 --- a/packages/python/plotly/plotly/validators/contour/_dx.py +++ b/packages/python/plotly/plotly/validators/contour/_dx.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="dx", parent_name="contour", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"xtype": "scaled"}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_dy.py b/packages/python/plotly/plotly/validators/contour/_dy.py index 40394576fb..819068fb25 100644 --- a/packages/python/plotly/plotly/validators/contour/_dy.py +++ b/packages/python/plotly/plotly/validators/contour/_dy.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="dy", parent_name="contour", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"ytype": "scaled"}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_fillcolor.py b/packages/python/plotly/plotly/validators/contour/_fillcolor.py index c376399d32..bee24bfb16 100644 --- a/packages/python/plotly/plotly/validators/contour/_fillcolor.py +++ b/packages/python/plotly/plotly/validators/contour/_fillcolor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="fillcolor", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop("colorscale_path", "contour.colorscale"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_hoverinfo.py b/packages/python/plotly/plotly/validators/contour/_hoverinfo.py index 00eb298012..f893ae6fd9 100644 --- a/packages/python/plotly/plotly/validators/contour/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/contour/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="contour", **kwargs): edit_type=kwargs.pop("edit_type", "none"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["x", "y", "z", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/contour/_hoverinfosrc.py index 00d4037c6c..0a753d305a 100644 --- a/packages/python/plotly/plotly/validators/contour/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/contour/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_hoverongaps.py b/packages/python/plotly/plotly/validators/contour/_hoverongaps.py index 8562d57b18..8afc23f65b 100644 --- a/packages/python/plotly/plotly/validators/contour/_hoverongaps.py +++ b/packages/python/plotly/plotly/validators/contour/_hoverongaps.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverongaps", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_hovertemplate.py b/packages/python/plotly/plotly/validators/contour/_hovertemplate.py index f26ad80d67..450d022aaf 100644 --- a/packages/python/plotly/plotly/validators/contour/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/contour/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="contour", **kwargs) parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/contour/_hovertemplatesrc.py index 3725c5abc1..4b3b36df7c 100644 --- a/packages/python/plotly/plotly/validators/contour/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/contour/_hovertemplatesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertemplatesrc", parent_name="contour", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_hovertext.py b/packages/python/plotly/plotly/validators/contour/_hovertext.py index e6cf7ecd7e..87cbd25ef3 100644 --- a/packages/python/plotly/plotly/validators/contour/_hovertext.py +++ b/packages/python/plotly/plotly/validators/contour/_hovertext.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertext", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_hovertextsrc.py b/packages/python/plotly/plotly/validators/contour/_hovertextsrc.py index e3bf70171b..b9d7bb5c3c 100644 --- a/packages/python/plotly/plotly/validators/contour/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/contour/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_ids.py b/packages/python/plotly/plotly/validators/contour/_ids.py index 750930ffa2..b124566c49 100644 --- a/packages/python/plotly/plotly/validators/contour/_ids.py +++ b/packages/python/plotly/plotly/validators/contour/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_idssrc.py b/packages/python/plotly/plotly/validators/contour/_idssrc.py index c64a20c044..ba21f041db 100644 --- a/packages/python/plotly/plotly/validators/contour/_idssrc.py +++ b/packages/python/plotly/plotly/validators/contour/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_legendgroup.py b/packages/python/plotly/plotly/validators/contour/_legendgroup.py index cd3897705c..909eac50a2 100644 --- a/packages/python/plotly/plotly/validators/contour/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/contour/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_meta.py b/packages/python/plotly/plotly/validators/contour/_meta.py index 03e0182850..c35dc7ddb4 100644 --- a/packages/python/plotly/plotly/validators/contour/_meta.py +++ b/packages/python/plotly/plotly/validators/contour/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="contour", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_metasrc.py b/packages/python/plotly/plotly/validators/contour/_metasrc.py index 8cdb5f8780..611c62d448 100644 --- a/packages/python/plotly/plotly/validators/contour/_metasrc.py +++ b/packages/python/plotly/plotly/validators/contour/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_name.py b/packages/python/plotly/plotly/validators/contour/_name.py index 40aaa03ac8..bfa4c41212 100644 --- a/packages/python/plotly/plotly/validators/contour/_name.py +++ b/packages/python/plotly/plotly/validators/contour/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_ncontours.py b/packages/python/plotly/plotly/validators/contour/_ncontours.py index 02a372c8c8..a77015f313 100644 --- a/packages/python/plotly/plotly/validators/contour/_ncontours.py +++ b/packages/python/plotly/plotly/validators/contour/_ncontours.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ncontours", parent_name="contour", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_opacity.py b/packages/python/plotly/plotly/validators/contour/_opacity.py index 897acb7d51..cdc7cd4c76 100644 --- a/packages/python/plotly/plotly/validators/contour/_opacity.py +++ b/packages/python/plotly/plotly/validators/contour/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="contour", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_reversescale.py b/packages/python/plotly/plotly/validators/contour/_reversescale.py index 9b60ec837b..55c4c50693 100644 --- a/packages/python/plotly/plotly/validators/contour/_reversescale.py +++ b/packages/python/plotly/plotly/validators/contour/_reversescale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="reversescale", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_showlegend.py b/packages/python/plotly/plotly/validators/contour/_showlegend.py index 027bb54302..682cf19abc 100644 --- a/packages/python/plotly/plotly/validators/contour/_showlegend.py +++ b/packages/python/plotly/plotly/validators/contour/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_showscale.py b/packages/python/plotly/plotly/validators/contour/_showscale.py index cd170a9a57..ba58ba1664 100644 --- a/packages/python/plotly/plotly/validators/contour/_showscale.py +++ b/packages/python/plotly/plotly/validators/contour/_showscale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showscale", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_text.py b/packages/python/plotly/plotly/validators/contour/_text.py index a444a11bb6..be0021b26b 100644 --- a/packages/python/plotly/plotly/validators/contour/_text.py +++ b/packages/python/plotly/plotly/validators/contour/_text.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="text", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_textsrc.py b/packages/python/plotly/plotly/validators/contour/_textsrc.py index 8f192fff55..43bd0d62ed 100644 --- a/packages/python/plotly/plotly/validators/contour/_textsrc.py +++ b/packages/python/plotly/plotly/validators/contour/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_transpose.py b/packages/python/plotly/plotly/validators/contour/_transpose.py index 4cd741ea72..ecc8b066fd 100644 --- a/packages/python/plotly/plotly/validators/contour/_transpose.py +++ b/packages/python/plotly/plotly/validators/contour/_transpose.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="transpose", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_uid.py b/packages/python/plotly/plotly/validators/contour/_uid.py index 696c1ed451..04652afd1c 100644 --- a/packages/python/plotly/plotly/validators/contour/_uid.py +++ b/packages/python/plotly/plotly/validators/contour/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_uirevision.py b/packages/python/plotly/plotly/validators/contour/_uirevision.py index dbdb41fe69..3fd4e804a5 100644 --- a/packages/python/plotly/plotly/validators/contour/_uirevision.py +++ b/packages/python/plotly/plotly/validators/contour/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_visible.py b/packages/python/plotly/plotly/validators/contour/_visible.py index b12c425593..882e021e0a 100644 --- a/packages/python/plotly/plotly/validators/contour/_visible.py +++ b/packages/python/plotly/plotly/validators/contour/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_x.py b/packages/python/plotly/plotly/validators/contour/_x.py index b62d4a4065..8e73685759 100644 --- a/packages/python/plotly/plotly/validators/contour/_x.py +++ b/packages/python/plotly/plotly/validators/contour/_x.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="x", parent_name="contour", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), implied_edits=kwargs.pop("implied_edits", {"xtype": "array"}), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_x0.py b/packages/python/plotly/plotly/validators/contour/_x0.py index 1320ba723d..3c7b017dda 100644 --- a/packages/python/plotly/plotly/validators/contour/_x0.py +++ b/packages/python/plotly/plotly/validators/contour/_x0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="x0", parent_name="contour", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), implied_edits=kwargs.pop("implied_edits", {"xtype": "scaled"}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_xaxis.py b/packages/python/plotly/plotly/validators/contour/_xaxis.py index f983786bde..5fea396beb 100644 --- a/packages/python/plotly/plotly/validators/contour/_xaxis.py +++ b/packages/python/plotly/plotly/validators/contour/_xaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xaxis", parent_name="contour", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "x"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_xcalendar.py b/packages/python/plotly/plotly/validators/contour/_xcalendar.py index ce9792f1d8..4b2d8d900a 100644 --- a/packages/python/plotly/plotly/validators/contour/_xcalendar.py +++ b/packages/python/plotly/plotly/validators/contour/_xcalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xcalendar", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/contour/_xhoverformat.py b/packages/python/plotly/plotly/validators/contour/_xhoverformat.py new file mode 100644 index 0000000000..23fe4b9748 --- /dev/null +++ b/packages/python/plotly/plotly/validators/contour/_xhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class XhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="xhoverformat", parent_name="contour", **kwargs): + super(XhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/contour/_xperiod.py b/packages/python/plotly/plotly/validators/contour/_xperiod.py index 0e7a5a46d2..064cdcca0b 100644 --- a/packages/python/plotly/plotly/validators/contour/_xperiod.py +++ b/packages/python/plotly/plotly/validators/contour/_xperiod.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xperiod", parent_name="contour", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"xtype": "scaled"}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_xperiod0.py b/packages/python/plotly/plotly/validators/contour/_xperiod0.py index b0981354f9..625c1a7b2b 100644 --- a/packages/python/plotly/plotly/validators/contour/_xperiod0.py +++ b/packages/python/plotly/plotly/validators/contour/_xperiod0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xperiod0", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_xperiodalignment.py b/packages/python/plotly/plotly/validators/contour/_xperiodalignment.py index 34d02c094d..5e7467c580 100644 --- a/packages/python/plotly/plotly/validators/contour/_xperiodalignment.py +++ b/packages/python/plotly/plotly/validators/contour/_xperiodalignment.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="xperiodalignment", parent_name="contour", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"xtype": "scaled"}), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["start", "middle", "end"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_xsrc.py b/packages/python/plotly/plotly/validators/contour/_xsrc.py index a6833f7ef5..31e2972487 100644 --- a/packages/python/plotly/plotly/validators/contour/_xsrc.py +++ b/packages/python/plotly/plotly/validators/contour/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_xtype.py b/packages/python/plotly/plotly/validators/contour/_xtype.py index 86df0da586..d344a9d0a5 100644 --- a/packages/python/plotly/plotly/validators/contour/_xtype.py +++ b/packages/python/plotly/plotly/validators/contour/_xtype.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xtype", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["array", "scaled"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_y.py b/packages/python/plotly/plotly/validators/contour/_y.py index f52bade34e..319b78a398 100644 --- a/packages/python/plotly/plotly/validators/contour/_y.py +++ b/packages/python/plotly/plotly/validators/contour/_y.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="y", parent_name="contour", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), implied_edits=kwargs.pop("implied_edits", {"ytype": "array"}), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_y0.py b/packages/python/plotly/plotly/validators/contour/_y0.py index 590335a2f3..9a451548c4 100644 --- a/packages/python/plotly/plotly/validators/contour/_y0.py +++ b/packages/python/plotly/plotly/validators/contour/_y0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="y0", parent_name="contour", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), implied_edits=kwargs.pop("implied_edits", {"ytype": "scaled"}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_yaxis.py b/packages/python/plotly/plotly/validators/contour/_yaxis.py index dc2d458307..75dbb78534 100644 --- a/packages/python/plotly/plotly/validators/contour/_yaxis.py +++ b/packages/python/plotly/plotly/validators/contour/_yaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="yaxis", parent_name="contour", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "y"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_ycalendar.py b/packages/python/plotly/plotly/validators/contour/_ycalendar.py index 3f52b146e9..ba6b60ff7e 100644 --- a/packages/python/plotly/plotly/validators/contour/_ycalendar.py +++ b/packages/python/plotly/plotly/validators/contour/_ycalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ycalendar", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/contour/_yhoverformat.py b/packages/python/plotly/plotly/validators/contour/_yhoverformat.py new file mode 100644 index 0000000000..74f1769585 --- /dev/null +++ b/packages/python/plotly/plotly/validators/contour/_yhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class YhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="yhoverformat", parent_name="contour", **kwargs): + super(YhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/contour/_yperiod.py b/packages/python/plotly/plotly/validators/contour/_yperiod.py index af67887925..2df0bd99a5 100644 --- a/packages/python/plotly/plotly/validators/contour/_yperiod.py +++ b/packages/python/plotly/plotly/validators/contour/_yperiod.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="yperiod", parent_name="contour", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"ytype": "scaled"}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_yperiod0.py b/packages/python/plotly/plotly/validators/contour/_yperiod0.py index 8379c33c52..80ff142642 100644 --- a/packages/python/plotly/plotly/validators/contour/_yperiod0.py +++ b/packages/python/plotly/plotly/validators/contour/_yperiod0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="yperiod0", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_yperiodalignment.py b/packages/python/plotly/plotly/validators/contour/_yperiodalignment.py index 059afa55ee..34fb91f56b 100644 --- a/packages/python/plotly/plotly/validators/contour/_yperiodalignment.py +++ b/packages/python/plotly/plotly/validators/contour/_yperiodalignment.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="yperiodalignment", parent_name="contour", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"ytype": "scaled"}), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["start", "middle", "end"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_ysrc.py b/packages/python/plotly/plotly/validators/contour/_ysrc.py index fe0373a22a..b4f5166360 100644 --- a/packages/python/plotly/plotly/validators/contour/_ysrc.py +++ b/packages/python/plotly/plotly/validators/contour/_ysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ysrc", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_ytype.py b/packages/python/plotly/plotly/validators/contour/_ytype.py index 2f172a1cb1..9a427cb21d 100644 --- a/packages/python/plotly/plotly/validators/contour/_ytype.py +++ b/packages/python/plotly/plotly/validators/contour/_ytype.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ytype", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["array", "scaled"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_z.py b/packages/python/plotly/plotly/validators/contour/_z.py index b0d5be6213..e33dd30db9 100644 --- a/packages/python/plotly/plotly/validators/contour/_z.py +++ b/packages/python/plotly/plotly/validators/contour/_z.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="z", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_zauto.py b/packages/python/plotly/plotly/validators/contour/_zauto.py index 581a00ed31..8c892a236c 100644 --- a/packages/python/plotly/plotly/validators/contour/_zauto.py +++ b/packages/python/plotly/plotly/validators/contour/_zauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zauto", parent_name="contour", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_zhoverformat.py b/packages/python/plotly/plotly/validators/contour/_zhoverformat.py index 3218776b57..4a4ef08b50 100644 --- a/packages/python/plotly/plotly/validators/contour/_zhoverformat.py +++ b/packages/python/plotly/plotly/validators/contour/_zhoverformat.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="zhoverformat", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_zmax.py b/packages/python/plotly/plotly/validators/contour/_zmax.py index 9d503eb2b3..da5623248c 100644 --- a/packages/python/plotly/plotly/validators/contour/_zmax.py +++ b/packages/python/plotly/plotly/validators/contour/_zmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmax", parent_name="contour", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"zauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_zmid.py b/packages/python/plotly/plotly/validators/contour/_zmid.py index ad48dc86c7..791a23e785 100644 --- a/packages/python/plotly/plotly/validators/contour/_zmid.py +++ b/packages/python/plotly/plotly/validators/contour/_zmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmid", parent_name="contour", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_zmin.py b/packages/python/plotly/plotly/validators/contour/_zmin.py index e75077260d..88b3109292 100644 --- a/packages/python/plotly/plotly/validators/contour/_zmin.py +++ b/packages/python/plotly/plotly/validators/contour/_zmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmin", parent_name="contour", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"zauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/_zsrc.py b/packages/python/plotly/plotly/validators/contour/_zsrc.py index 02d685a256..2cb794c1a9 100644 --- a/packages/python/plotly/plotly/validators/contour/_zsrc.py +++ b/packages/python/plotly/plotly/validators/contour/_zsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="zsrc", parent_name="contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/__init__.py b/packages/python/plotly/plotly/validators/contour/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/contour/colorbar/_bgcolor.py index a870f5f87c..a3a15273f9 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_bgcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="bgcolor", parent_name="contour.colorbar", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/contour/colorbar/_bordercolor.py index 282f544d3a..20473dc927 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/contour/colorbar/_borderwidth.py index df85a61928..009df26d56 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/contour/colorbar/_dtick.py index 041a130e3e..46f42bcf70 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_dtick.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="dtick", parent_name="contour.colorbar", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/contour/colorbar/_exponentformat.py index ef12af3bb8..da20baf79a 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_exponentformat.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_len.py b/packages/python/plotly/plotly/validators/contour/colorbar/_len.py index de308cec2a..858e175319 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_len.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="len", parent_name="contour.colorbar", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/contour/colorbar/_lenmode.py index 9ac4f1fe86..5ee59854bd 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_lenmode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="lenmode", parent_name="contour.colorbar", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/contour/colorbar/_minexponent.py index 1b2d823fa2..68c1e34540 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/contour/colorbar/_nticks.py index 56d4abfefe..f97796d22d 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_nticks.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="nticks", parent_name="contour.colorbar", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/contour/colorbar/_outlinecolor.py index 77c99352e5..f48e809c92 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_outlinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/contour/colorbar/_outlinewidth.py index db56280689..1f40b50b28 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_outlinewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/contour/colorbar/_separatethousands.py index 60154a31e3..a84976c23c 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_separatethousands.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/contour/colorbar/_showexponent.py index e567a8f891..15b6133980 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/contour/colorbar/_showticklabels.py index 5ba4f70237..37fa016d3e 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_showticklabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/contour/colorbar/_showtickprefix.py index d32ee2bcf1..2e6cdfc5a7 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_showtickprefix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/contour/colorbar/_showticksuffix.py index 6376a2e25e..7dff2d1dd6 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_showticksuffix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/contour/colorbar/_thickness.py index c79f3af4f2..06566acec3 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/contour/colorbar/_thicknessmode.py index b07b5a092b..342dfa5382 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_thicknessmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/contour/colorbar/_tick0.py index f087a5b5f3..6626aa8fcf 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_tick0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="tick0", parent_name="contour.colorbar", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/contour/colorbar/_tickangle.py index 479177a040..a0a9767a9d 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/contour/colorbar/_tickcolor.py index 4c12e876f7..4e0904cf0b 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/contour/colorbar/_tickformat.py index 12652acee3..f78c167a2a 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/contour/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..a5156a7b45 --- /dev/null +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_ticklabeloverflow.py @@ -0,0 +1,14 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, plotly_name="ticklabeloverflow", parent_name="contour.colorbar", **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "colorbars"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/contour/colorbar/_ticklabelposition.py index bf779a273c..8b8813c76a 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_ticklabelposition.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/contour/colorbar/_ticklen.py index 35ce5bc154..6e4673ccca 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_ticklen.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ticklen", parent_name="contour.colorbar", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/contour/colorbar/_tickmode.py index 1ea667ec58..2707baa460 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/contour/colorbar/_tickprefix.py index 0672aba08f..fc432ad853 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/contour/colorbar/_ticks.py index bdd5ce5788..2e34ffe38f 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_ticks.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ticks", parent_name="contour.colorbar", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/contour/colorbar/_ticksuffix.py index 5329660362..5337421443 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/contour/colorbar/_ticktext.py index 43b9827a69..d7a1ba4895 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/contour/colorbar/_ticktextsrc.py index 5873194519..01a1ad3e92 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/contour/colorbar/_tickvals.py index f8307f1405..dd9b88ed6f 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/contour/colorbar/_tickvalssrc.py index 97f48b9e4f..9c456c6962 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/contour/colorbar/_tickwidth.py index b57c8cbe6a..654046d710 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_x.py b/packages/python/plotly/plotly/validators/contour/colorbar/_x.py index e2c519d84d..cd4d60d4ba 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_x.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="x", parent_name="contour.colorbar", **kwargs): edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/contour/colorbar/_xanchor.py index 996cbbbc0b..a97904a319 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_xanchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xanchor", parent_name="contour.colorbar", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/contour/colorbar/_xpad.py index 7b0de6004b..5ea3d6d8f6 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_xpad.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xpad", parent_name="contour.colorbar", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_y.py b/packages/python/plotly/plotly/validators/contour/colorbar/_y.py index d7492f407d..291472f246 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_y.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="y", parent_name="contour.colorbar", **kwargs): edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/contour/colorbar/_yanchor.py index a52b75c478..1060998100 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_yanchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="yanchor", parent_name="contour.colorbar", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/contour/colorbar/_ypad.py index edfedc3afe..306e2c3c8a 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/_ypad.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ypad", parent_name="contour.colorbar", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/contour/colorbar/tickfont/_color.py index 3f42bb8dbe..2aa32db3e8 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/tickfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/contour/colorbar/tickfont/_family.py index 51f55e1f54..967bce3081 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/tickfont/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/contour/colorbar/tickfont/_size.py index 8d476c4e38..a8ed7dd2f3 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/tickfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/contour/colorbar/tickformatstop/_dtickrange.py index e32b3b4aba..b0dab8578d 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "colorbars"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/contour/colorbar/tickformatstop/_enabled.py index bff9b95935..3bef20f25b 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/contour/colorbar/tickformatstop/_name.py index 22b14e3bd5..abcc57a475 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/contour/colorbar/tickformatstop/_templateitemname.py index 09248373ca..8012347f1f 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/contour/colorbar/tickformatstop/_value.py index ae18174d2d..a921361696 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/contour/colorbar/title/_side.py index 151ecc52c9..776f4fdd59 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/title/_side.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/contour/colorbar/title/_text.py index beba87cb2f..94b2f75472 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/contour/colorbar/title/font/_color.py index 42f7e593be..d0480380fc 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/title/font/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/contour/colorbar/title/font/_family.py index 60f4b43857..61b3779092 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/title/font/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/contour/colorbar/title/font/_size.py index 2b6383a8a7..4e31daf135 100644 --- a/packages/python/plotly/plotly/validators/contour/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/contour/colorbar/title/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/contours/_coloring.py b/packages/python/plotly/plotly/validators/contour/contours/_coloring.py index 12605ae715..b700edff2f 100644 --- a/packages/python/plotly/plotly/validators/contour/contours/_coloring.py +++ b/packages/python/plotly/plotly/validators/contour/contours/_coloring.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fill", "heatmap", "lines", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/contours/_end.py b/packages/python/plotly/plotly/validators/contour/contours/_end.py index b486888ab6..035526f369 100644 --- a/packages/python/plotly/plotly/validators/contour/contours/_end.py +++ b/packages/python/plotly/plotly/validators/contour/contours/_end.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="end", parent_name="contour.contours", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"^autocontour": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/contours/_labelformat.py b/packages/python/plotly/plotly/validators/contour/contours/_labelformat.py index e4bb82f63c..b903252762 100644 --- a/packages/python/plotly/plotly/validators/contour/contours/_labelformat.py +++ b/packages/python/plotly/plotly/validators/contour/contours/_labelformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/contours/_operation.py b/packages/python/plotly/plotly/validators/contour/contours/_operation.py index 6794c79ac1..9f2c570486 100644 --- a/packages/python/plotly/plotly/validators/contour/contours/_operation.py +++ b/packages/python/plotly/plotly/validators/contour/contours/_operation.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/contour/contours/_showlabels.py b/packages/python/plotly/plotly/validators/contour/contours/_showlabels.py index d5862f73e7..86874ecd92 100644 --- a/packages/python/plotly/plotly/validators/contour/contours/_showlabels.py +++ b/packages/python/plotly/plotly/validators/contour/contours/_showlabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/contours/_showlines.py b/packages/python/plotly/plotly/validators/contour/contours/_showlines.py index ee822c1b72..f2126d0f5f 100644 --- a/packages/python/plotly/plotly/validators/contour/contours/_showlines.py +++ b/packages/python/plotly/plotly/validators/contour/contours/_showlines.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/contours/_size.py b/packages/python/plotly/plotly/validators/contour/contours/_size.py index 2875e66ba3..6b1405e9e2 100644 --- a/packages/python/plotly/plotly/validators/contour/contours/_size.py +++ b/packages/python/plotly/plotly/validators/contour/contours/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="contour.contours", **kwargs) edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"^autocontour": False}), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/contours/_start.py b/packages/python/plotly/plotly/validators/contour/contours/_start.py index a89a024dd4..69a85fd802 100644 --- a/packages/python/plotly/plotly/validators/contour/contours/_start.py +++ b/packages/python/plotly/plotly/validators/contour/contours/_start.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="start", parent_name="contour.contours", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"^autocontour": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/contours/_type.py b/packages/python/plotly/plotly/validators/contour/contours/_type.py index 64c7470a84..ecf13aab10 100644 --- a/packages/python/plotly/plotly/validators/contour/contours/_type.py +++ b/packages/python/plotly/plotly/validators/contour/contours/_type.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="type", parent_name="contour.contours", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["levels", "constraint"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/contours/_value.py b/packages/python/plotly/plotly/validators/contour/contours/_value.py index 9d8492c998..3bb34c8fe0 100644 --- a/packages/python/plotly/plotly/validators/contour/contours/_value.py +++ b/packages/python/plotly/plotly/validators/contour/contours/_value.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="value", parent_name="contour.contours", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/contours/labelfont/_color.py b/packages/python/plotly/plotly/validators/contour/contours/labelfont/_color.py index 36ce2dfb16..88236ccde6 100644 --- a/packages/python/plotly/plotly/validators/contour/contours/labelfont/_color.py +++ b/packages/python/plotly/plotly/validators/contour/contours/labelfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/contours/labelfont/_family.py b/packages/python/plotly/plotly/validators/contour/contours/labelfont/_family.py index 39bbf4eea5..a083eab0dc 100644 --- a/packages/python/plotly/plotly/validators/contour/contours/labelfont/_family.py +++ b/packages/python/plotly/plotly/validators/contour/contours/labelfont/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/contours/labelfont/_size.py b/packages/python/plotly/plotly/validators/contour/contours/labelfont/_size.py index ea65cfdb07..21f4bc4d1e 100644 --- a/packages/python/plotly/plotly/validators/contour/contours/labelfont/_size.py +++ b/packages/python/plotly/plotly/validators/contour/contours/labelfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/contour/hoverlabel/_align.py index 7e2624a2b6..912ef0d22a 100644 --- a/packages/python/plotly/plotly/validators/contour/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/contour/hoverlabel/_align.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="align", parent_name="contour.hoverlabel", **kwar parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/contour/hoverlabel/_alignsrc.py index 46fb95b7b6..526416d327 100644 --- a/packages/python/plotly/plotly/validators/contour/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/contour/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/contour/hoverlabel/_bgcolor.py index 4e0848e9a4..9ee783490d 100644 --- a/packages/python/plotly/plotly/validators/contour/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/contour/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/contour/hoverlabel/_bgcolorsrc.py index 46f1cd3bae..1d3f724866 100644 --- a/packages/python/plotly/plotly/validators/contour/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/contour/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/contour/hoverlabel/_bordercolor.py index 68f3c241d1..fe365e679d 100644 --- a/packages/python/plotly/plotly/validators/contour/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/contour/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/contour/hoverlabel/_bordercolorsrc.py index 7c29ec3717..e91457e06a 100644 --- a/packages/python/plotly/plotly/validators/contour/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/contour/hoverlabel/_bordercolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/contour/hoverlabel/_namelength.py index 8c37bc8878..f58c3a556f 100644 --- a/packages/python/plotly/plotly/validators/contour/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/contour/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/contour/hoverlabel/_namelengthsrc.py index bc879665aa..4377f056c4 100644 --- a/packages/python/plotly/plotly/validators/contour/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/contour/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/contour/hoverlabel/font/_color.py index ec8dc31b1e..af1d0f321b 100644 --- a/packages/python/plotly/plotly/validators/contour/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/contour/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/contour/hoverlabel/font/_colorsrc.py index 40d9a1bfa3..130cc50b81 100644 --- a/packages/python/plotly/plotly/validators/contour/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/contour/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/contour/hoverlabel/font/_family.py index 22aa4fc1db..feaa170585 100644 --- a/packages/python/plotly/plotly/validators/contour/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/contour/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/contour/hoverlabel/font/_familysrc.py index f437713bf0..63e7139af6 100644 --- a/packages/python/plotly/plotly/validators/contour/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/contour/hoverlabel/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/contour/hoverlabel/font/_size.py index bcdf9b6dbf..235a51ed57 100644 --- a/packages/python/plotly/plotly/validators/contour/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/contour/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/contour/hoverlabel/font/_sizesrc.py index ef6cc2ecc3..68cb90c072 100644 --- a/packages/python/plotly/plotly/validators/contour/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/contour/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/line/_color.py b/packages/python/plotly/plotly/validators/contour/line/_color.py index 396e8eddbd..4d5d489cfc 100644 --- a/packages/python/plotly/plotly/validators/contour/line/_color.py +++ b/packages/python/plotly/plotly/validators/contour/line/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="contour.line", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style+colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/line/_dash.py b/packages/python/plotly/plotly/validators/contour/line/_dash.py index b3e8dd9f0c..32fd42c1dd 100644 --- a/packages/python/plotly/plotly/validators/contour/line/_dash.py +++ b/packages/python/plotly/plotly/validators/contour/line/_dash.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="dash", parent_name="contour.line", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", ["solid", "dot", "dash", "longdash", "dashdot", "longdashdot"] ), diff --git a/packages/python/plotly/plotly/validators/contour/line/_smoothing.py b/packages/python/plotly/plotly/validators/contour/line/_smoothing.py index a8be6f1db0..42fee46f4f 100644 --- a/packages/python/plotly/plotly/validators/contour/line/_smoothing.py +++ b/packages/python/plotly/plotly/validators/contour/line/_smoothing.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="smoothing", parent_name="contour.line", **kwargs edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 1.3), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/line/_width.py b/packages/python/plotly/plotly/validators/contour/line/_width.py index db08aad8fc..9aca2de8c2 100644 --- a/packages/python/plotly/plotly/validators/contour/line/_width.py +++ b/packages/python/plotly/plotly/validators/contour/line/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="contour.line", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style+colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/contour/stream/_maxpoints.py index 10d5277807..850ac772b6 100644 --- a/packages/python/plotly/plotly/validators/contour/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/contour/stream/_maxpoints.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="maxpoints", parent_name="contour.stream", **kwar edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contour/stream/_token.py b/packages/python/plotly/plotly/validators/contour/stream/_token.py index d0a0a47842..a7df31c1a9 100644 --- a/packages/python/plotly/plotly/validators/contour/stream/_token.py +++ b/packages/python/plotly/plotly/validators/contour/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="contour.stream", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_a.py b/packages/python/plotly/plotly/validators/contourcarpet/_a.py index 24d95cf652..eb49023d3d 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_a.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_a.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="a", parent_name="contourcarpet", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), implied_edits=kwargs.pop("implied_edits", {"xtype": "array"}), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_a0.py b/packages/python/plotly/plotly/validators/contourcarpet/_a0.py index 32d92a8e2c..ecf28c5e2f 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_a0.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_a0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="a0", parent_name="contourcarpet", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), implied_edits=kwargs.pop("implied_edits", {"xtype": "scaled"}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_asrc.py b/packages/python/plotly/plotly/validators/contourcarpet/_asrc.py index 57a2d0d58e..ecfb57cb91 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_asrc.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_asrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="asrc", parent_name="contourcarpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_atype.py b/packages/python/plotly/plotly/validators/contourcarpet/_atype.py index ec68cd4f20..8ce0e492a4 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_atype.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_atype.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="atype", parent_name="contourcarpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["array", "scaled"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_autocolorscale.py b/packages/python/plotly/plotly/validators/contourcarpet/_autocolorscale.py index 2f4f3ca34a..2dc8225a4b 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_autocontour.py b/packages/python/plotly/plotly/validators/contourcarpet/_autocontour.py index d94ae82a03..7d43a12fdf 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_autocontour.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_autocontour.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_b.py b/packages/python/plotly/plotly/validators/contourcarpet/_b.py index fb0036d413..b8acb59a82 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_b.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_b.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="b", parent_name="contourcarpet", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), implied_edits=kwargs.pop("implied_edits", {"ytype": "array"}), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_b0.py b/packages/python/plotly/plotly/validators/contourcarpet/_b0.py index 028d11969e..5b950c044e 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_b0.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_b0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="b0", parent_name="contourcarpet", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), implied_edits=kwargs.pop("implied_edits", {"ytype": "scaled"}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_bsrc.py b/packages/python/plotly/plotly/validators/contourcarpet/_bsrc.py index 7c5af4ac9f..ff82fe787d 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_bsrc.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_bsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="bsrc", parent_name="contourcarpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_btype.py b/packages/python/plotly/plotly/validators/contourcarpet/_btype.py index 9d4350007c..61c08201b8 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_btype.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_btype.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="btype", parent_name="contourcarpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["array", "scaled"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_carpet.py b/packages/python/plotly/plotly/validators/contourcarpet/_carpet.py index ad77faf049..d59c135d61 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_carpet.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_carpet.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="carpet", parent_name="contourcarpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_coloraxis.py b/packages/python/plotly/plotly/validators/contourcarpet/_coloraxis.py index db4de30d88..9f18072452 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_coloraxis.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="coloraxis", parent_name="contourcarpet", **kwarg dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_colorbar.py b/packages/python/plotly/plotly/validators/contourcarpet/_colorbar.py index 99837f6c62..c446f8e26d 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_colorbar.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_colorbar.py @@ -148,6 +148,12 @@ def __init__(self, plotly_name="colorbar", parent_name="contourcarpet", **kwargs ), sets the default property values to use for elements of contourcarpet.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_colorscale.py b/packages/python/plotly/plotly/validators/contourcarpet/_colorscale.py index 1760cc481c..170f25b14c 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_colorscale.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_colorscale.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="colorscale", parent_name="contourcarpet", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_customdata.py b/packages/python/plotly/plotly/validators/contourcarpet/_customdata.py index 4b22b43912..8acace349d 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_customdata.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="contourcarpet", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_customdatasrc.py b/packages/python/plotly/plotly/validators/contourcarpet/_customdatasrc.py index 3a59a45a2a..b15b3d31a5 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_customdatasrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_da.py b/packages/python/plotly/plotly/validators/contourcarpet/_da.py index cba5b88919..09c1079bbb 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_da.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_da.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="da", parent_name="contourcarpet", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"xtype": "scaled"}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_db.py b/packages/python/plotly/plotly/validators/contourcarpet/_db.py index 2ffa059d61..bb09cf5f37 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_db.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_db.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="db", parent_name="contourcarpet", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"ytype": "scaled"}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_fillcolor.py b/packages/python/plotly/plotly/validators/contourcarpet/_fillcolor.py index ee6ed3ec83..09811fa8ce 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_fillcolor.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_fillcolor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="fillcolor", parent_name="contourcarpet", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop("colorscale_path", "contourcarpet.colorscale"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_hovertext.py b/packages/python/plotly/plotly/validators/contourcarpet/_hovertext.py index 91f50d3d4c..847c7ce85d 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_hovertext.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_hovertext.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertext", parent_name="contourcarpet", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_hovertextsrc.py b/packages/python/plotly/plotly/validators/contourcarpet/_hovertextsrc.py index d1892be564..a3ea4d4ba1 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_hovertextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_ids.py b/packages/python/plotly/plotly/validators/contourcarpet/_ids.py index a93760ca46..ad3a5dcb45 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_ids.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="contourcarpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_idssrc.py b/packages/python/plotly/plotly/validators/contourcarpet/_idssrc.py index 2d5676dd9e..021c205e50 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_idssrc.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="contourcarpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_legendgroup.py b/packages/python/plotly/plotly/validators/contourcarpet/_legendgroup.py index 21f0ab3460..1f0eaf2070 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_legendgroup.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_meta.py b/packages/python/plotly/plotly/validators/contourcarpet/_meta.py index 9c48c451f2..42da707f3c 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_meta.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="contourcarpet", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_metasrc.py b/packages/python/plotly/plotly/validators/contourcarpet/_metasrc.py index 93b83b7fdf..be5871a4a3 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_metasrc.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="contourcarpet", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_name.py b/packages/python/plotly/plotly/validators/contourcarpet/_name.py index c423e351c3..ba9cd204b6 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_name.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="contourcarpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_ncontours.py b/packages/python/plotly/plotly/validators/contourcarpet/_ncontours.py index e1d8735f02..bb4626def9 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_ncontours.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_ncontours.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ncontours", parent_name="contourcarpet", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_opacity.py b/packages/python/plotly/plotly/validators/contourcarpet/_opacity.py index a32e7231fb..fd2d23c98c 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_opacity.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="contourcarpet", **kwargs) edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_reversescale.py b/packages/python/plotly/plotly/validators/contourcarpet/_reversescale.py index 8155af2213..da867fd532 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_reversescale.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_showlegend.py b/packages/python/plotly/plotly/validators/contourcarpet/_showlegend.py index cd26d2b4a4..7ab69c697a 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_showlegend.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="contourcarpet", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_showscale.py b/packages/python/plotly/plotly/validators/contourcarpet/_showscale.py index 3d299de5d5..5dcd1e9560 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_showscale.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_showscale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showscale", parent_name="contourcarpet", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_text.py b/packages/python/plotly/plotly/validators/contourcarpet/_text.py index f4b5d000ff..655a11140a 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_text.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_text.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="text", parent_name="contourcarpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_textsrc.py b/packages/python/plotly/plotly/validators/contourcarpet/_textsrc.py index 52ca4574a6..a4b065e64c 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_textsrc.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="contourcarpet", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_transpose.py b/packages/python/plotly/plotly/validators/contourcarpet/_transpose.py index 3d4f6a6b9b..9054e7e7b6 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_transpose.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_transpose.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="transpose", parent_name="contourcarpet", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_uid.py b/packages/python/plotly/plotly/validators/contourcarpet/_uid.py index 698ea23b42..53280c5794 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_uid.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="contourcarpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_uirevision.py b/packages/python/plotly/plotly/validators/contourcarpet/_uirevision.py index 318d88d7ce..09d6d0c3ef 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_uirevision.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="contourcarpet", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_visible.py b/packages/python/plotly/plotly/validators/contourcarpet/_visible.py index 3b0b51658b..dd80fe2c06 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_visible.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="contourcarpet", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_xaxis.py b/packages/python/plotly/plotly/validators/contourcarpet/_xaxis.py index b65a140978..052ccc24c8 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_xaxis.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_xaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xaxis", parent_name="contourcarpet", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "x"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_yaxis.py b/packages/python/plotly/plotly/validators/contourcarpet/_yaxis.py index 5d0c9df8b0..65af3b045c 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_yaxis.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_yaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="yaxis", parent_name="contourcarpet", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "y"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_z.py b/packages/python/plotly/plotly/validators/contourcarpet/_z.py index ee8ded17e7..babdfa27a5 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_z.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_z.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="z", parent_name="contourcarpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_zauto.py b/packages/python/plotly/plotly/validators/contourcarpet/_zauto.py index 1a6ee47625..578b569f15 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_zauto.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_zauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zauto", parent_name="contourcarpet", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_zmax.py b/packages/python/plotly/plotly/validators/contourcarpet/_zmax.py index d1a4d4928a..1849bd6d8d 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_zmax.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_zmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmax", parent_name="contourcarpet", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"zauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_zmid.py b/packages/python/plotly/plotly/validators/contourcarpet/_zmid.py index d7a84ae8c9..725fc72315 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_zmid.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_zmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmid", parent_name="contourcarpet", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_zmin.py b/packages/python/plotly/plotly/validators/contourcarpet/_zmin.py index 19e9d26619..f23895c9a4 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_zmin.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_zmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmin", parent_name="contourcarpet", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"zauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/_zsrc.py b/packages/python/plotly/plotly/validators/contourcarpet/_zsrc.py index b3f546d6f2..b1640e172a 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/_zsrc.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/_zsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="zsrc", parent_name="contourcarpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/__init__.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_bgcolor.py index cb7617f9e1..1d8256e1bd 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_bordercolor.py index 2a473c20bd..ece0382e53 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_borderwidth.py index c3c6482f9c..cd13420868 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_dtick.py index 1073449dd1..6902db9401 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_exponentformat.py index de172df664..4bf5754831 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_exponentformat.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_len.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_len.py index a157a16d50..864dbee55c 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_len.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_lenmode.py index 526dbd9c50..fa62fe0259 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_lenmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_minexponent.py index 3e5def0636..8cea343321 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_nticks.py index 0e591cdeb7..983f1c3906 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_outlinecolor.py index 15596b65a6..f69b76db2a 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_outlinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_outlinewidth.py index 904b797f70..017c431e26 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_outlinewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_separatethousands.py index 830212d308..b50e89a1e1 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_showexponent.py index 3716e08dae..86fd507e9b 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_showticklabels.py index a234e89229..432c40bc3e 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_showticklabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_showtickprefix.py index 5fbfc8a34a..44db0446c0 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_showtickprefix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_showticksuffix.py index 138105a17e..6cd895ee3d 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_showticksuffix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_thickness.py index b6d82dcfae..11d3ce924f 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_thicknessmode.py index e7bf3882a5..3c4e776c84 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_thicknessmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tick0.py index 05b4fe15c3..0e951ef888 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickangle.py index c7454079a5..d2ce0668be 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickcolor.py index cdb8f88082..72cb29e7f4 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickformat.py index 2fdb84986f..5bf2e2b5e9 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..9c4503ea68 --- /dev/null +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="contourcarpet.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "colorbars"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticklabelposition.py index 07d7da5b6a..daeba626ac 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticklen.py index 1421a071b4..11841214ca 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickmode.py index 94702521c5..7fca1aaf4a 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickprefix.py index eb3447b309..adc5d46643 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticks.py index 96e862adb0..992ae03dda 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticksuffix.py index 7d202650d2..59bfb454f4 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticktext.py index a73de46588..ef783d7790 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticktextsrc.py index 7f091712a7..f13f0623a2 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickvals.py index 9ded588c43..d2e2f2ff68 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickvalssrc.py index 8e2ad55e27..18658c055f 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickwidth.py index d0992796d5..35c580e4b5 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_x.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_x.py index d3cdc807cc..f8e1dac8b5 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_x.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="x", parent_name="contourcarpet.colorbar", **kwar edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_xanchor.py index 0fab04a7d4..af63af7bdf 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_xpad.py index 4273c8c937..ca43df5fb3 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_xpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_y.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_y.py index 8e85e06c59..f9ed11e20f 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_y.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="y", parent_name="contourcarpet.colorbar", **kwar edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_yanchor.py index 21020f93a6..fee1bf8768 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ypad.py index 29798f7eb5..073653d79d 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/_ypad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickfont/_color.py index 0c8c11009c..67f569c5b8 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickfont/_family.py index 86daa9b2f0..1a14385abb 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickfont/_size.py index 500faf55f4..c5677f1c46 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickformatstop/_dtickrange.py index 33e3efc5fd..d87d496b53 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "colorbars"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickformatstop/_enabled.py index 35e307e825..253d00478c 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickformatstop/_name.py index af8d4c63d6..754c21ff07 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickformatstop/_templateitemname.py index 2f06b8b49e..ce842c0ea1 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickformatstop/_value.py index ae5d02aed1..81b9d83f0a 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/title/_side.py index caa2c53448..1f785c19ca 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/title/_side.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/title/_text.py index e624964ddd..ed7e67a09d 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/title/font/_color.py index d7132162f0..5f25b4edf5 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/title/font/_family.py index 8d893412cd..ed84580d66 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/title/font/_size.py index 14f3e6ac3c..3c4b32215f 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/colorbar/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/contours/_coloring.py b/packages/python/plotly/plotly/validators/contourcarpet/contours/_coloring.py index fdb9a259e0..7d03d808b9 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/contours/_coloring.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/contours/_coloring.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fill", "lines", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/contours/_end.py b/packages/python/plotly/plotly/validators/contourcarpet/contours/_end.py index 7666fa1f52..8f9eebddf8 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/contours/_end.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/contours/_end.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"^autocontour": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/contours/_labelformat.py b/packages/python/plotly/plotly/validators/contourcarpet/contours/_labelformat.py index b5dee50849..dee19c5a6c 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/contours/_labelformat.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/contours/_labelformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/contours/_operation.py b/packages/python/plotly/plotly/validators/contourcarpet/contours/_operation.py index 24c978c010..c37b58459a 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/contours/_operation.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/contours/_operation.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/contourcarpet/contours/_showlabels.py b/packages/python/plotly/plotly/validators/contourcarpet/contours/_showlabels.py index e2392cf955..9f8663d964 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/contours/_showlabels.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/contours/_showlabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/contours/_showlines.py b/packages/python/plotly/plotly/validators/contourcarpet/contours/_showlines.py index 4b8ab98b0c..43dc46e4e0 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/contours/_showlines.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/contours/_showlines.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/contours/_size.py b/packages/python/plotly/plotly/validators/contourcarpet/contours/_size.py index 230de87864..6c5ec34050 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/contours/_size.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/contours/_size.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"^autocontour": False}), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/contours/_start.py b/packages/python/plotly/plotly/validators/contourcarpet/contours/_start.py index 1261905f8e..acd36f4362 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/contours/_start.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/contours/_start.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"^autocontour": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/contours/_type.py b/packages/python/plotly/plotly/validators/contourcarpet/contours/_type.py index 1574a280da..99b09b8782 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/contours/_type.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/contours/_type.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["levels", "constraint"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/contours/_value.py b/packages/python/plotly/plotly/validators/contourcarpet/contours/_value.py index b0ee22553a..0ba3e3ffa3 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/contours/_value.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/contours/_value.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/contours/labelfont/_color.py b/packages/python/plotly/plotly/validators/contourcarpet/contours/labelfont/_color.py index e8cc12046d..5918d32d5e 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/contours/labelfont/_color.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/contours/labelfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/contours/labelfont/_family.py b/packages/python/plotly/plotly/validators/contourcarpet/contours/labelfont/_family.py index b35d5294f9..27d655aafd 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/contours/labelfont/_family.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/contours/labelfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/contours/labelfont/_size.py b/packages/python/plotly/plotly/validators/contourcarpet/contours/labelfont/_size.py index 3646e2500b..403b3b3219 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/contours/labelfont/_size.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/contours/labelfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/line/_color.py b/packages/python/plotly/plotly/validators/contourcarpet/line/_color.py index 04d26e1fb8..ab1c9d4711 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/line/_color.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/line/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="contourcarpet.line", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style+colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/line/_dash.py b/packages/python/plotly/plotly/validators/contourcarpet/line/_dash.py index c628774671..f92f4b97fb 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/line/_dash.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/line/_dash.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="dash", parent_name="contourcarpet.line", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", ["solid", "dot", "dash", "longdash", "dashdot", "longdashdot"] ), diff --git a/packages/python/plotly/plotly/validators/contourcarpet/line/_smoothing.py b/packages/python/plotly/plotly/validators/contourcarpet/line/_smoothing.py index e859a69546..56c7a6f77a 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/line/_smoothing.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/line/_smoothing.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 1.3), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/line/_width.py b/packages/python/plotly/plotly/validators/contourcarpet/line/_width.py index 7f391f3d6e..439567fbfc 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/line/_width.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/line/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="contourcarpet.line", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style+colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/contourcarpet/stream/_maxpoints.py index 99f96fa4a8..5ab1353252 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/contourcarpet/stream/_token.py b/packages/python/plotly/plotly/validators/contourcarpet/stream/_token.py index 6d92ea97a8..2857e0c6a7 100644 --- a/packages/python/plotly/plotly/validators/contourcarpet/stream/_token.py +++ b/packages/python/plotly/plotly/validators/contourcarpet/stream/_token.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_autocolorscale.py b/packages/python/plotly/plotly/validators/densitymapbox/_autocolorscale.py index ff3947ad43..5ce13fe547 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_below.py b/packages/python/plotly/plotly/validators/densitymapbox/_below.py index fa0644a286..74b1642005 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_below.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_below.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="below", parent_name="densitymapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_coloraxis.py b/packages/python/plotly/plotly/validators/densitymapbox/_coloraxis.py index 99c88798b0..39667303f1 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_coloraxis.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="coloraxis", parent_name="densitymapbox", **kwarg dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_colorbar.py b/packages/python/plotly/plotly/validators/densitymapbox/_colorbar.py index de5408f94f..173dad843f 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_colorbar.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_colorbar.py @@ -148,6 +148,12 @@ def __init__(self, plotly_name="colorbar", parent_name="densitymapbox", **kwargs ), sets the default property values to use for elements of densitymapbox.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_colorscale.py b/packages/python/plotly/plotly/validators/densitymapbox/_colorscale.py index a12f353fdf..8af3d57ea3 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_colorscale.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_colorscale.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="colorscale", parent_name="densitymapbox", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_customdata.py b/packages/python/plotly/plotly/validators/densitymapbox/_customdata.py index ec6f692183..0c5bdea21c 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_customdata.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="densitymapbox", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_customdatasrc.py b/packages/python/plotly/plotly/validators/densitymapbox/_customdatasrc.py index 60fd20f161..80550266fc 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_customdatasrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_hoverinfo.py b/packages/python/plotly/plotly/validators/densitymapbox/_hoverinfo.py index 372a79ae4f..e7db90dc30 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="densitymapbox", **kwarg edit_type=kwargs.pop("edit_type", "none"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["lon", "lat", "z", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/densitymapbox/_hoverinfosrc.py index a69c36e1d3..6361fef36b 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_hoverinfosrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_hovertemplate.py b/packages/python/plotly/plotly/validators/densitymapbox/_hovertemplate.py index 392522b219..4dee662f7c 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_hovertemplate.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/densitymapbox/_hovertemplatesrc.py index 409a754f31..59e0e40466 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_hovertemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_hovertext.py b/packages/python/plotly/plotly/validators/densitymapbox/_hovertext.py index 113d90d049..8dff364906 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_hovertext.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="densitymapbox", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_hovertextsrc.py b/packages/python/plotly/plotly/validators/densitymapbox/_hovertextsrc.py index 41b8e5c6f2..42542ce76f 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_hovertextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_ids.py b/packages/python/plotly/plotly/validators/densitymapbox/_ids.py index adda417dea..517099a59b 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_ids.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="densitymapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_idssrc.py b/packages/python/plotly/plotly/validators/densitymapbox/_idssrc.py index a67ffbda82..91d7b2dd29 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_idssrc.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="densitymapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_lat.py b/packages/python/plotly/plotly/validators/densitymapbox/_lat.py index bd9c3b8342..d6bc0f0589 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_lat.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_lat.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="lat", parent_name="densitymapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_latsrc.py b/packages/python/plotly/plotly/validators/densitymapbox/_latsrc.py index 0a036e1148..20c20ecfbb 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_latsrc.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_latsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="latsrc", parent_name="densitymapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_legendgroup.py b/packages/python/plotly/plotly/validators/densitymapbox/_legendgroup.py index f5ce680c42..81d717ae7b 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_legendgroup.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_lon.py b/packages/python/plotly/plotly/validators/densitymapbox/_lon.py index f068bb60dd..01f0a45fe1 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_lon.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_lon.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="lon", parent_name="densitymapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_lonsrc.py b/packages/python/plotly/plotly/validators/densitymapbox/_lonsrc.py index 686b67f01b..551f339395 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_lonsrc.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_lonsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="lonsrc", parent_name="densitymapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_meta.py b/packages/python/plotly/plotly/validators/densitymapbox/_meta.py index 70d5011bec..8b0d38f5d0 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_meta.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="densitymapbox", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_metasrc.py b/packages/python/plotly/plotly/validators/densitymapbox/_metasrc.py index b44680dc3b..1693fd463c 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_metasrc.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="densitymapbox", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_name.py b/packages/python/plotly/plotly/validators/densitymapbox/_name.py index ab5737aeec..741a51f3c4 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_name.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="densitymapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_opacity.py b/packages/python/plotly/plotly/validators/densitymapbox/_opacity.py index 24b0abcb20..be0c5d1c4c 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_opacity.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="densitymapbox", **kwargs) edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_radius.py b/packages/python/plotly/plotly/validators/densitymapbox/_radius.py index 7a8c571c29..79f45fe797 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_radius.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_radius.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="radius", parent_name="densitymapbox", **kwargs): array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_radiussrc.py b/packages/python/plotly/plotly/validators/densitymapbox/_radiussrc.py index 22a116d23b..8fd14ff135 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_radiussrc.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_radiussrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="radiussrc", parent_name="densitymapbox", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_reversescale.py b/packages/python/plotly/plotly/validators/densitymapbox/_reversescale.py index 8d58f14651..03c9cd5ff3 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_reversescale.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_showlegend.py b/packages/python/plotly/plotly/validators/densitymapbox/_showlegend.py index 78882f7e0f..ae1b1e30db 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_showlegend.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="densitymapbox", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_showscale.py b/packages/python/plotly/plotly/validators/densitymapbox/_showscale.py index 6c59327dc5..50db80bc3e 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_showscale.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_showscale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showscale", parent_name="densitymapbox", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_subplot.py b/packages/python/plotly/plotly/validators/densitymapbox/_subplot.py index dde0a2e251..18c6ca8245 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_subplot.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_subplot.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="subplot", parent_name="densitymapbox", **kwargs) parent_name=parent_name, dflt=kwargs.pop("dflt", "mapbox"), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_text.py b/packages/python/plotly/plotly/validators/densitymapbox/_text.py index 2c3c457273..d6acb8ce9d 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_text.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="densitymapbox", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_textsrc.py b/packages/python/plotly/plotly/validators/densitymapbox/_textsrc.py index 3c5763bb1b..bc8766297a 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_textsrc.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="densitymapbox", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_uid.py b/packages/python/plotly/plotly/validators/densitymapbox/_uid.py index 7a70dc6221..c2c0375bb0 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_uid.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="densitymapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_uirevision.py b/packages/python/plotly/plotly/validators/densitymapbox/_uirevision.py index 98775e68f7..a9b90ad0c0 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_uirevision.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="densitymapbox", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_visible.py b/packages/python/plotly/plotly/validators/densitymapbox/_visible.py index 4b1b027de8..af606ca042 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_visible.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="densitymapbox", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_z.py b/packages/python/plotly/plotly/validators/densitymapbox/_z.py index 2177b8ff4c..99a818fc7a 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_z.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_z.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="z", parent_name="densitymapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_zauto.py b/packages/python/plotly/plotly/validators/densitymapbox/_zauto.py index 3978067eb0..253c19a566 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_zauto.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_zauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zauto", parent_name="densitymapbox", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_zmax.py b/packages/python/plotly/plotly/validators/densitymapbox/_zmax.py index 8ea32f4b08..6222086ac3 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_zmax.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_zmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmax", parent_name="densitymapbox", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"zauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_zmid.py b/packages/python/plotly/plotly/validators/densitymapbox/_zmid.py index eff525cb06..79d4278fc6 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_zmid.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_zmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmid", parent_name="densitymapbox", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_zmin.py b/packages/python/plotly/plotly/validators/densitymapbox/_zmin.py index 0ed2c47cb3..37076d6603 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_zmin.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_zmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmin", parent_name="densitymapbox", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"zauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/_zsrc.py b/packages/python/plotly/plotly/validators/densitymapbox/_zsrc.py index c1e724cad9..a541962084 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/_zsrc.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/_zsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="zsrc", parent_name="densitymapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/__init__.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_bgcolor.py index 68e6a92b1a..57e1eefe24 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_bordercolor.py index 8d16986885..804f63d297 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_borderwidth.py index 5ec4c15d1d..e1ef73f20a 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_dtick.py index cc68f0a648..89d81df518 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_exponentformat.py index 63794a68fa..607d3513b0 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_exponentformat.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_len.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_len.py index b9db52157d..654beac540 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_len.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_lenmode.py index 2446e97f20..0c0226f5ca 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_lenmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_minexponent.py index 4f4ebb1b9d..a29e09eaee 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_nticks.py index c084c9c8c8..8dbd695a94 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_outlinecolor.py index 671e868983..9290d67df5 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_outlinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_outlinewidth.py index da281403c0..bd1424eec1 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_outlinewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_separatethousands.py index d075f6e4b2..3c6a234de4 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_showexponent.py index c301329929..7c17592465 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_showticklabels.py index 23ef0354f3..47694d6d85 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_showticklabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_showtickprefix.py index bb505c2f0f..04ed21b54e 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_showtickprefix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_showticksuffix.py index ec274f9998..9c9a46a0ff 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_showticksuffix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_thickness.py index fb99cacbae..c5bc81c773 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_thicknessmode.py index be955e7004..b6415e40ad 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_thicknessmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tick0.py index eab3744d45..080483ac9a 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickangle.py index dd06c71286..bd5cabb4d8 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickcolor.py index e9a262c577..e94418e38b 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickformat.py index 4c0cb68bb6..fcbd77c9ce 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..4ff5878c48 --- /dev/null +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="densitymapbox.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "colorbars"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticklabelposition.py index 91cc318f26..3eaca5b02b 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticklen.py index 79b2286b68..9b203e2cdb 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickmode.py index 1d92ab63d8..7ba4aafa46 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickprefix.py index 313bd8bcc0..402a38e701 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticks.py index 2d0773f9a1..7420a392b9 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticksuffix.py index 46ff0d8df7..7fdcd76e2d 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticktext.py index 8d6caf33ad..48a9d4a00f 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticktextsrc.py index f65b71f86e..3e2616e0cc 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickvals.py index b3e617e6dc..86ff81ba6d 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickvalssrc.py index c70f35c285..60899455bf 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickwidth.py index 9492201cff..2635a30534 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_x.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_x.py index acf0d336bf..970394d64d 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_x.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="x", parent_name="densitymapbox.colorbar", **kwar edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_xanchor.py index a99665ceb1..5fb7e24d1f 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_xpad.py index ba4d604451..1b5e57260a 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_xpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_y.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_y.py index 8f33d54ad7..d8db284086 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_y.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="y", parent_name="densitymapbox.colorbar", **kwar edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_yanchor.py index daae6e7e36..2fac4a154b 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ypad.py index bf4f750252..b301b0d60b 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/_ypad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickfont/_color.py index 124a779ed5..5673fb8e60 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickfont/_family.py index 5573f934ee..380e66bd75 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickfont/_size.py index 1a411a3a21..e429b7f0ff 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickformatstop/_dtickrange.py index 5f2ce393cd..e9fbf32d36 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "colorbars"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickformatstop/_enabled.py index a45e0a0c83..f56bab8bea 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickformatstop/_name.py index 7ecfd15491..ed9df60b2f 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickformatstop/_templateitemname.py index 1ef5234a16..4f626a6d81 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickformatstop/_value.py index 0a0010de77..b85672944e 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/title/_side.py index cea84daa1a..643d6504fc 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/title/_side.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/title/_text.py index ecf2ddb93f..2001779000 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/title/font/_color.py index 0c1a0f8101..5e53a17573 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/title/font/_family.py index 069e5b6720..e3f403d74e 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/title/font/_size.py index f75ae5dd4c..52c7652961 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/colorbar/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_align.py index 72fa903e11..6259751758 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_align.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_alignsrc.py index 4132fa32c7..bfd8418fba 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_bgcolor.py index 5e2e3969dc..6a675ccc8f 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_bgcolorsrc.py index 3150f744fc..be9c6248c5 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_bordercolor.py index 1ba18b9aeb..c64f1774b1 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_bordercolor.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_bordercolorsrc.py index 9b16514775..32773bd8c0 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_bordercolorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_namelength.py index f7cf07f203..698398f9cc 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_namelengthsrc.py index 3bc90ead28..3104afba2c 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/_namelengthsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/font/_color.py index a4f4c3ad54..24f92d9695 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/font/_colorsrc.py index aa7869fa30..12d7b9b36d 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/font/_colorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/font/_family.py index 5972f76a42..23bbdb4598 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/font/_family.py @@ -14,7 +14,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/font/_familysrc.py index 44db78e98e..d9f4ce3dc3 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/font/_familysrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/font/_size.py index f60ef3f7c7..2791b4e0ca 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/font/_sizesrc.py index 451f1cf664..e9368be35e 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/hoverlabel/font/_sizesrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/densitymapbox/stream/_maxpoints.py index 9cd57ad807..a1d86727cc 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/densitymapbox/stream/_token.py b/packages/python/plotly/plotly/validators/densitymapbox/stream/_token.py index a645b7b390..d7d4f705a6 100644 --- a/packages/python/plotly/plotly/validators/densitymapbox/stream/_token.py +++ b/packages/python/plotly/plotly/validators/densitymapbox/stream/_token.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/frame/_baseframe.py b/packages/python/plotly/plotly/validators/frame/_baseframe.py index 66e2216c43..e205b0282b 100644 --- a/packages/python/plotly/plotly/validators/frame/_baseframe.py +++ b/packages/python/plotly/plotly/validators/frame/_baseframe.py @@ -4,8 +4,5 @@ class BaseframeValidator(_plotly_utils.basevalidators.StringValidator): def __init__(self, plotly_name="baseframe", parent_name="frame", **kwargs): super(BaseframeValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - role=kwargs.pop("role", "info"), - **kwargs + plotly_name=plotly_name, parent_name=parent_name, **kwargs ) diff --git a/packages/python/plotly/plotly/validators/frame/_data.py b/packages/python/plotly/plotly/validators/frame/_data.py index 7e5d5f987b..b44c421387 100644 --- a/packages/python/plotly/plotly/validators/frame/_data.py +++ b/packages/python/plotly/plotly/validators/frame/_data.py @@ -4,8 +4,5 @@ class DataValidator(plotly.validators.DataValidator): def __init__(self, plotly_name="data", parent_name="frame", **kwargs): super(DataValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - role=kwargs.pop("role", "object"), - **kwargs + plotly_name=plotly_name, parent_name=parent_name, **kwargs ) diff --git a/packages/python/plotly/plotly/validators/frame/_group.py b/packages/python/plotly/plotly/validators/frame/_group.py index 31a9df2060..f3885f16ae 100644 --- a/packages/python/plotly/plotly/validators/frame/_group.py +++ b/packages/python/plotly/plotly/validators/frame/_group.py @@ -4,8 +4,5 @@ class GroupValidator(_plotly_utils.basevalidators.StringValidator): def __init__(self, plotly_name="group", parent_name="frame", **kwargs): super(GroupValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - role=kwargs.pop("role", "info"), - **kwargs + plotly_name=plotly_name, parent_name=parent_name, **kwargs ) diff --git a/packages/python/plotly/plotly/validators/frame/_layout.py b/packages/python/plotly/plotly/validators/frame/_layout.py index dfbfe01d4a..56ea4aa01e 100644 --- a/packages/python/plotly/plotly/validators/frame/_layout.py +++ b/packages/python/plotly/plotly/validators/frame/_layout.py @@ -4,8 +4,5 @@ class LayoutValidator(plotly.validators.LayoutValidator): def __init__(self, plotly_name="layout", parent_name="frame", **kwargs): super(LayoutValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - role=kwargs.pop("role", "object"), - **kwargs + plotly_name=plotly_name, parent_name=parent_name, **kwargs ) diff --git a/packages/python/plotly/plotly/validators/frame/_name.py b/packages/python/plotly/plotly/validators/frame/_name.py index 29fe49d7db..dbad612831 100644 --- a/packages/python/plotly/plotly/validators/frame/_name.py +++ b/packages/python/plotly/plotly/validators/frame/_name.py @@ -4,8 +4,5 @@ class NameValidator(_plotly_utils.basevalidators.StringValidator): def __init__(self, plotly_name="name", parent_name="frame", **kwargs): super(NameValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - role=kwargs.pop("role", "info"), - **kwargs + plotly_name=plotly_name, parent_name=parent_name, **kwargs ) diff --git a/packages/python/plotly/plotly/validators/frame/_traces.py b/packages/python/plotly/plotly/validators/frame/_traces.py index a5cb501c7c..62ab82eaa6 100644 --- a/packages/python/plotly/plotly/validators/frame/_traces.py +++ b/packages/python/plotly/plotly/validators/frame/_traces.py @@ -4,8 +4,5 @@ class TracesValidator(_plotly_utils.basevalidators.AnyValidator): def __init__(self, plotly_name="traces", parent_name="frame", **kwargs): super(TracesValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - role=kwargs.pop("role", "info"), - **kwargs + plotly_name=plotly_name, parent_name=parent_name, **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/__init__.py b/packages/python/plotly/plotly/validators/funnel/__init__.py index 97c3b28e59..1de060f5a0 100644 --- a/packages/python/plotly/plotly/validators/funnel/__init__.py +++ b/packages/python/plotly/plotly/validators/funnel/__init__.py @@ -5,6 +5,7 @@ from ._yperiodalignment import YperiodalignmentValidator from ._yperiod0 import Yperiod0Validator from ._yperiod import YperiodValidator + from ._yhoverformat import YhoverformatValidator from ._yaxis import YaxisValidator from ._y0 import Y0Validator from ._y import YValidator @@ -12,6 +13,7 @@ from ._xperiodalignment import XperiodalignmentValidator from ._xperiod0 import Xperiod0Validator from ._xperiod import XperiodValidator + from ._xhoverformat import XhoverformatValidator from ._xaxis import XaxisValidator from ._x0 import X0Validator from ._x import XValidator @@ -71,6 +73,7 @@ "._yperiodalignment.YperiodalignmentValidator", "._yperiod0.Yperiod0Validator", "._yperiod.YperiodValidator", + "._yhoverformat.YhoverformatValidator", "._yaxis.YaxisValidator", "._y0.Y0Validator", "._y.YValidator", @@ -78,6 +81,7 @@ "._xperiodalignment.XperiodalignmentValidator", "._xperiod0.Xperiod0Validator", "._xperiod.XperiodValidator", + "._xhoverformat.XhoverformatValidator", "._xaxis.XaxisValidator", "._x0.X0Validator", "._x.XValidator", diff --git a/packages/python/plotly/plotly/validators/funnel/_alignmentgroup.py b/packages/python/plotly/plotly/validators/funnel/_alignmentgroup.py index a86031a782..cf3485f50d 100644 --- a/packages/python/plotly/plotly/validators/funnel/_alignmentgroup.py +++ b/packages/python/plotly/plotly/validators/funnel/_alignmentgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="alignmentgroup", parent_name="funnel", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_cliponaxis.py b/packages/python/plotly/plotly/validators/funnel/_cliponaxis.py index be7fc1ab5c..f776a16799 100644 --- a/packages/python/plotly/plotly/validators/funnel/_cliponaxis.py +++ b/packages/python/plotly/plotly/validators/funnel/_cliponaxis.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="cliponaxis", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_constraintext.py b/packages/python/plotly/plotly/validators/funnel/_constraintext.py index f117c8d00d..51ed391a90 100644 --- a/packages/python/plotly/plotly/validators/funnel/_constraintext.py +++ b/packages/python/plotly/plotly/validators/funnel/_constraintext.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="constraintext", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["inside", "outside", "both", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_customdata.py b/packages/python/plotly/plotly/validators/funnel/_customdata.py index 953b98cfae..157fa0ab99 100644 --- a/packages/python/plotly/plotly/validators/funnel/_customdata.py +++ b/packages/python/plotly/plotly/validators/funnel/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_customdatasrc.py b/packages/python/plotly/plotly/validators/funnel/_customdatasrc.py index 209089829e..1419341281 100644 --- a/packages/python/plotly/plotly/validators/funnel/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/funnel/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_dx.py b/packages/python/plotly/plotly/validators/funnel/_dx.py index a8918b2ec5..4abfe78338 100644 --- a/packages/python/plotly/plotly/validators/funnel/_dx.py +++ b/packages/python/plotly/plotly/validators/funnel/_dx.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="dx", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_dy.py b/packages/python/plotly/plotly/validators/funnel/_dy.py index cb9a7aae31..379dd90002 100644 --- a/packages/python/plotly/plotly/validators/funnel/_dy.py +++ b/packages/python/plotly/plotly/validators/funnel/_dy.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="dy", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_hoverinfo.py b/packages/python/plotly/plotly/validators/funnel/_hoverinfo.py index 9ce8d29e8a..5fbf6cbfbb 100644 --- a/packages/python/plotly/plotly/validators/funnel/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/funnel/_hoverinfo.py @@ -21,6 +21,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="funnel", **kwargs): "percent total", ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/funnel/_hoverinfosrc.py index 7966f7e50c..299349ada5 100644 --- a/packages/python/plotly/plotly/validators/funnel/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/funnel/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_hovertemplate.py b/packages/python/plotly/plotly/validators/funnel/_hovertemplate.py index a67c5bb756..6ae718a147 100644 --- a/packages/python/plotly/plotly/validators/funnel/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/funnel/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="funnel", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/funnel/_hovertemplatesrc.py index 9181d092ef..84511e6307 100644 --- a/packages/python/plotly/plotly/validators/funnel/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/funnel/_hovertemplatesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertemplatesrc", parent_name="funnel", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_hovertext.py b/packages/python/plotly/plotly/validators/funnel/_hovertext.py index 2491495c80..c4ffa2502f 100644 --- a/packages/python/plotly/plotly/validators/funnel/_hovertext.py +++ b/packages/python/plotly/plotly/validators/funnel/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="funnel", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_hovertextsrc.py b/packages/python/plotly/plotly/validators/funnel/_hovertextsrc.py index 545ad48b55..89f0181d76 100644 --- a/packages/python/plotly/plotly/validators/funnel/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/funnel/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_ids.py b/packages/python/plotly/plotly/validators/funnel/_ids.py index a75270d74d..0c981c5efe 100644 --- a/packages/python/plotly/plotly/validators/funnel/_ids.py +++ b/packages/python/plotly/plotly/validators/funnel/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_idssrc.py b/packages/python/plotly/plotly/validators/funnel/_idssrc.py index 2f407f1bfa..a37d48265b 100644 --- a/packages/python/plotly/plotly/validators/funnel/_idssrc.py +++ b/packages/python/plotly/plotly/validators/funnel/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_insidetextanchor.py b/packages/python/plotly/plotly/validators/funnel/_insidetextanchor.py index ff8f66638d..ae86645f66 100644 --- a/packages/python/plotly/plotly/validators/funnel/_insidetextanchor.py +++ b/packages/python/plotly/plotly/validators/funnel/_insidetextanchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="insidetextanchor", parent_name="funnel", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["end", "middle", "start"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_legendgroup.py b/packages/python/plotly/plotly/validators/funnel/_legendgroup.py index fddc26e0f1..fce3a1f27d 100644 --- a/packages/python/plotly/plotly/validators/funnel/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/funnel/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_meta.py b/packages/python/plotly/plotly/validators/funnel/_meta.py index c72ab25b25..c3ffb88e57 100644 --- a/packages/python/plotly/plotly/validators/funnel/_meta.py +++ b/packages/python/plotly/plotly/validators/funnel/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="funnel", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_metasrc.py b/packages/python/plotly/plotly/validators/funnel/_metasrc.py index d2a86286ec..782ae6c3d5 100644 --- a/packages/python/plotly/plotly/validators/funnel/_metasrc.py +++ b/packages/python/plotly/plotly/validators/funnel/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_name.py b/packages/python/plotly/plotly/validators/funnel/_name.py index cdf62e1519..e2703158ab 100644 --- a/packages/python/plotly/plotly/validators/funnel/_name.py +++ b/packages/python/plotly/plotly/validators/funnel/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_offset.py b/packages/python/plotly/plotly/validators/funnel/_offset.py index bf33b3d158..1ed1d0964c 100644 --- a/packages/python/plotly/plotly/validators/funnel/_offset.py +++ b/packages/python/plotly/plotly/validators/funnel/_offset.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="offset", parent_name="funnel", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_offsetgroup.py b/packages/python/plotly/plotly/validators/funnel/_offsetgroup.py index ce9d5e9059..917d386583 100644 --- a/packages/python/plotly/plotly/validators/funnel/_offsetgroup.py +++ b/packages/python/plotly/plotly/validators/funnel/_offsetgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="offsetgroup", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_opacity.py b/packages/python/plotly/plotly/validators/funnel/_opacity.py index e45420e848..0fb37b7a3f 100644 --- a/packages/python/plotly/plotly/validators/funnel/_opacity.py +++ b/packages/python/plotly/plotly/validators/funnel/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="funnel", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_orientation.py b/packages/python/plotly/plotly/validators/funnel/_orientation.py index 39caa9c038..07fe976a65 100644 --- a/packages/python/plotly/plotly/validators/funnel/_orientation.py +++ b/packages/python/plotly/plotly/validators/funnel/_orientation.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="orientation", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["v", "h"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_selectedpoints.py b/packages/python/plotly/plotly/validators/funnel/_selectedpoints.py index 12f651acbd..492c1e7f3e 100644 --- a/packages/python/plotly/plotly/validators/funnel/_selectedpoints.py +++ b/packages/python/plotly/plotly/validators/funnel/_selectedpoints.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="selectedpoints", parent_name="funnel", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_showlegend.py b/packages/python/plotly/plotly/validators/funnel/_showlegend.py index cea8262690..5315665bf6 100644 --- a/packages/python/plotly/plotly/validators/funnel/_showlegend.py +++ b/packages/python/plotly/plotly/validators/funnel/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_text.py b/packages/python/plotly/plotly/validators/funnel/_text.py index 0bfe662728..476e348be2 100644 --- a/packages/python/plotly/plotly/validators/funnel/_text.py +++ b/packages/python/plotly/plotly/validators/funnel/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="funnel", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_textangle.py b/packages/python/plotly/plotly/validators/funnel/_textangle.py index bbb2032875..309911be54 100644 --- a/packages/python/plotly/plotly/validators/funnel/_textangle.py +++ b/packages/python/plotly/plotly/validators/funnel/_textangle.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textangle", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_textinfo.py b/packages/python/plotly/plotly/validators/funnel/_textinfo.py index 41c3b7da51..d7e5a62b05 100644 --- a/packages/python/plotly/plotly/validators/funnel/_textinfo.py +++ b/packages/python/plotly/plotly/validators/funnel/_textinfo.py @@ -20,6 +20,5 @@ def __init__(self, plotly_name="textinfo", parent_name="funnel", **kwargs): "value", ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_textposition.py b/packages/python/plotly/plotly/validators/funnel/_textposition.py index e1c875f6ba..1e5f5eb295 100644 --- a/packages/python/plotly/plotly/validators/funnel/_textposition.py +++ b/packages/python/plotly/plotly/validators/funnel/_textposition.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="textposition", parent_name="funnel", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["inside", "outside", "auto", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_textpositionsrc.py b/packages/python/plotly/plotly/validators/funnel/_textpositionsrc.py index 508ce69f25..14c6c08d0c 100644 --- a/packages/python/plotly/plotly/validators/funnel/_textpositionsrc.py +++ b/packages/python/plotly/plotly/validators/funnel/_textpositionsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textpositionsrc", parent_name="funnel", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_textsrc.py b/packages/python/plotly/plotly/validators/funnel/_textsrc.py index 24de06b48f..829e237794 100644 --- a/packages/python/plotly/plotly/validators/funnel/_textsrc.py +++ b/packages/python/plotly/plotly/validators/funnel/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_texttemplate.py b/packages/python/plotly/plotly/validators/funnel/_texttemplate.py index f7ad53c0fc..6dc2d33e41 100644 --- a/packages/python/plotly/plotly/validators/funnel/_texttemplate.py +++ b/packages/python/plotly/plotly/validators/funnel/_texttemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="texttemplate", parent_name="funnel", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_texttemplatesrc.py b/packages/python/plotly/plotly/validators/funnel/_texttemplatesrc.py index b14358ed57..a613b158bc 100644 --- a/packages/python/plotly/plotly/validators/funnel/_texttemplatesrc.py +++ b/packages/python/plotly/plotly/validators/funnel/_texttemplatesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="texttemplatesrc", parent_name="funnel", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_uid.py b/packages/python/plotly/plotly/validators/funnel/_uid.py index b59f487f6d..3d9073e94d 100644 --- a/packages/python/plotly/plotly/validators/funnel/_uid.py +++ b/packages/python/plotly/plotly/validators/funnel/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_uirevision.py b/packages/python/plotly/plotly/validators/funnel/_uirevision.py index b466dc5e5c..f50bcaa510 100644 --- a/packages/python/plotly/plotly/validators/funnel/_uirevision.py +++ b/packages/python/plotly/plotly/validators/funnel/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_visible.py b/packages/python/plotly/plotly/validators/funnel/_visible.py index 98d717736a..03fbee9c1a 100644 --- a/packages/python/plotly/plotly/validators/funnel/_visible.py +++ b/packages/python/plotly/plotly/validators/funnel/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_width.py b/packages/python/plotly/plotly/validators/funnel/_width.py index 52882bcffe..df4c4ef214 100644 --- a/packages/python/plotly/plotly/validators/funnel/_width.py +++ b/packages/python/plotly/plotly/validators/funnel/_width.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="width", parent_name="funnel", **kwargs): array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_x.py b/packages/python/plotly/plotly/validators/funnel/_x.py index 61eda8f8c3..65586663f5 100644 --- a/packages/python/plotly/plotly/validators/funnel/_x.py +++ b/packages/python/plotly/plotly/validators/funnel/_x.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_x0.py b/packages/python/plotly/plotly/validators/funnel/_x0.py index 2e808d322d..0822dc4434 100644 --- a/packages/python/plotly/plotly/validators/funnel/_x0.py +++ b/packages/python/plotly/plotly/validators/funnel/_x0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x0", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_xaxis.py b/packages/python/plotly/plotly/validators/funnel/_xaxis.py index d19700990e..460f19c3fe 100644 --- a/packages/python/plotly/plotly/validators/funnel/_xaxis.py +++ b/packages/python/plotly/plotly/validators/funnel/_xaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xaxis", parent_name="funnel", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "x"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_xhoverformat.py b/packages/python/plotly/plotly/validators/funnel/_xhoverformat.py new file mode 100644 index 0000000000..2d4e6ccde9 --- /dev/null +++ b/packages/python/plotly/plotly/validators/funnel/_xhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class XhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="xhoverformat", parent_name="funnel", **kwargs): + super(XhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/funnel/_xperiod.py b/packages/python/plotly/plotly/validators/funnel/_xperiod.py index 1f704bd719..ba34ebfac0 100644 --- a/packages/python/plotly/plotly/validators/funnel/_xperiod.py +++ b/packages/python/plotly/plotly/validators/funnel/_xperiod.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xperiod", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_xperiod0.py b/packages/python/plotly/plotly/validators/funnel/_xperiod0.py index 48db15cbf4..970ebcd9ea 100644 --- a/packages/python/plotly/plotly/validators/funnel/_xperiod0.py +++ b/packages/python/plotly/plotly/validators/funnel/_xperiod0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xperiod0", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_xperiodalignment.py b/packages/python/plotly/plotly/validators/funnel/_xperiodalignment.py index 6019b30733..80973aacc4 100644 --- a/packages/python/plotly/plotly/validators/funnel/_xperiodalignment.py +++ b/packages/python/plotly/plotly/validators/funnel/_xperiodalignment.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xperiodalignment", parent_name="funnel", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["start", "middle", "end"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_xsrc.py b/packages/python/plotly/plotly/validators/funnel/_xsrc.py index 38dbc93d5f..24d7ab3572 100644 --- a/packages/python/plotly/plotly/validators/funnel/_xsrc.py +++ b/packages/python/plotly/plotly/validators/funnel/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_y.py b/packages/python/plotly/plotly/validators/funnel/_y.py index 018a0d3941..72bd69f32c 100644 --- a/packages/python/plotly/plotly/validators/funnel/_y.py +++ b/packages/python/plotly/plotly/validators/funnel/_y.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_y0.py b/packages/python/plotly/plotly/validators/funnel/_y0.py index 5ff310fdf7..70bf0bcd23 100644 --- a/packages/python/plotly/plotly/validators/funnel/_y0.py +++ b/packages/python/plotly/plotly/validators/funnel/_y0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y0", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_yaxis.py b/packages/python/plotly/plotly/validators/funnel/_yaxis.py index c5b0c182b8..d5649acf57 100644 --- a/packages/python/plotly/plotly/validators/funnel/_yaxis.py +++ b/packages/python/plotly/plotly/validators/funnel/_yaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="yaxis", parent_name="funnel", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "y"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_yhoverformat.py b/packages/python/plotly/plotly/validators/funnel/_yhoverformat.py new file mode 100644 index 0000000000..2c50e78e24 --- /dev/null +++ b/packages/python/plotly/plotly/validators/funnel/_yhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class YhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="yhoverformat", parent_name="funnel", **kwargs): + super(YhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/funnel/_yperiod.py b/packages/python/plotly/plotly/validators/funnel/_yperiod.py index 59348f530a..9a0b0a0df1 100644 --- a/packages/python/plotly/plotly/validators/funnel/_yperiod.py +++ b/packages/python/plotly/plotly/validators/funnel/_yperiod.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="yperiod", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_yperiod0.py b/packages/python/plotly/plotly/validators/funnel/_yperiod0.py index afd4a66793..3b1a6ebe91 100644 --- a/packages/python/plotly/plotly/validators/funnel/_yperiod0.py +++ b/packages/python/plotly/plotly/validators/funnel/_yperiod0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="yperiod0", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_yperiodalignment.py b/packages/python/plotly/plotly/validators/funnel/_yperiodalignment.py index 1a582ead54..ebcd50701b 100644 --- a/packages/python/plotly/plotly/validators/funnel/_yperiodalignment.py +++ b/packages/python/plotly/plotly/validators/funnel/_yperiodalignment.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="yperiodalignment", parent_name="funnel", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["start", "middle", "end"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/_ysrc.py b/packages/python/plotly/plotly/validators/funnel/_ysrc.py index cbc6fbd119..e083e8d921 100644 --- a/packages/python/plotly/plotly/validators/funnel/_ysrc.py +++ b/packages/python/plotly/plotly/validators/funnel/_ysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ysrc", parent_name="funnel", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/connector/_fillcolor.py b/packages/python/plotly/plotly/validators/funnel/connector/_fillcolor.py index 296dc5ebb2..8382eaccad 100644 --- a/packages/python/plotly/plotly/validators/funnel/connector/_fillcolor.py +++ b/packages/python/plotly/plotly/validators/funnel/connector/_fillcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/connector/_visible.py b/packages/python/plotly/plotly/validators/funnel/connector/_visible.py index 496dd9a1df..c039fb975b 100644 --- a/packages/python/plotly/plotly/validators/funnel/connector/_visible.py +++ b/packages/python/plotly/plotly/validators/funnel/connector/_visible.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="visible", parent_name="funnel.connector", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/connector/line/_color.py b/packages/python/plotly/plotly/validators/funnel/connector/line/_color.py index f5859adc32..876626059c 100644 --- a/packages/python/plotly/plotly/validators/funnel/connector/line/_color.py +++ b/packages/python/plotly/plotly/validators/funnel/connector/line/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/connector/line/_dash.py b/packages/python/plotly/plotly/validators/funnel/connector/line/_dash.py index 6dfa7174a0..2a18158a43 100644 --- a/packages/python/plotly/plotly/validators/funnel/connector/line/_dash.py +++ b/packages/python/plotly/plotly/validators/funnel/connector/line/_dash.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", ["solid", "dot", "dash", "longdash", "dashdot", "longdashdot"] ), diff --git a/packages/python/plotly/plotly/validators/funnel/connector/line/_width.py b/packages/python/plotly/plotly/validators/funnel/connector/line/_width.py index fc19908a2a..8838afe274 100644 --- a/packages/python/plotly/plotly/validators/funnel/connector/line/_width.py +++ b/packages/python/plotly/plotly/validators/funnel/connector/line/_width.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/funnel/hoverlabel/_align.py index c47c0405ba..d944bc7065 100644 --- a/packages/python/plotly/plotly/validators/funnel/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/funnel/hoverlabel/_align.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="align", parent_name="funnel.hoverlabel", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/funnel/hoverlabel/_alignsrc.py index 2841a7e557..318e2887f4 100644 --- a/packages/python/plotly/plotly/validators/funnel/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/funnel/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/funnel/hoverlabel/_bgcolor.py index 466fcc72b1..e17b632eb3 100644 --- a/packages/python/plotly/plotly/validators/funnel/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/funnel/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/funnel/hoverlabel/_bgcolorsrc.py index ee8e942829..8815371a54 100644 --- a/packages/python/plotly/plotly/validators/funnel/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/funnel/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/funnel/hoverlabel/_bordercolor.py index 28d44cff2b..75b3a36667 100644 --- a/packages/python/plotly/plotly/validators/funnel/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/funnel/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/funnel/hoverlabel/_bordercolorsrc.py index 17d56b1154..c3e99fcc96 100644 --- a/packages/python/plotly/plotly/validators/funnel/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/funnel/hoverlabel/_bordercolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/funnel/hoverlabel/_namelength.py index 46773ddbfe..124661b3ad 100644 --- a/packages/python/plotly/plotly/validators/funnel/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/funnel/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/funnel/hoverlabel/_namelengthsrc.py index fd8d9ece20..d762bfec0c 100644 --- a/packages/python/plotly/plotly/validators/funnel/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/funnel/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/funnel/hoverlabel/font/_color.py index d87df75363..b95f79f95d 100644 --- a/packages/python/plotly/plotly/validators/funnel/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/funnel/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/funnel/hoverlabel/font/_colorsrc.py index 4a4bd89b2d..bb7e288f8d 100644 --- a/packages/python/plotly/plotly/validators/funnel/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/funnel/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/funnel/hoverlabel/font/_family.py index 51511789db..12f277c534 100644 --- a/packages/python/plotly/plotly/validators/funnel/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/funnel/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/funnel/hoverlabel/font/_familysrc.py index fc659702e8..6f95cbab2e 100644 --- a/packages/python/plotly/plotly/validators/funnel/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/funnel/hoverlabel/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/funnel/hoverlabel/font/_size.py index 57782598c7..11190acbb5 100644 --- a/packages/python/plotly/plotly/validators/funnel/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/funnel/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/funnel/hoverlabel/font/_sizesrc.py index 318e2aad88..b916667dde 100644 --- a/packages/python/plotly/plotly/validators/funnel/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/funnel/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/insidetextfont/_color.py b/packages/python/plotly/plotly/validators/funnel/insidetextfont/_color.py index c03d5b53e9..4a3022485b 100644 --- a/packages/python/plotly/plotly/validators/funnel/insidetextfont/_color.py +++ b/packages/python/plotly/plotly/validators/funnel/insidetextfont/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/insidetextfont/_colorsrc.py b/packages/python/plotly/plotly/validators/funnel/insidetextfont/_colorsrc.py index 0c79405c6f..d82044ee6e 100644 --- a/packages/python/plotly/plotly/validators/funnel/insidetextfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/funnel/insidetextfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/insidetextfont/_family.py b/packages/python/plotly/plotly/validators/funnel/insidetextfont/_family.py index b63f8b116e..aad8b4668b 100644 --- a/packages/python/plotly/plotly/validators/funnel/insidetextfont/_family.py +++ b/packages/python/plotly/plotly/validators/funnel/insidetextfont/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/insidetextfont/_familysrc.py b/packages/python/plotly/plotly/validators/funnel/insidetextfont/_familysrc.py index 82b1a74d97..6bbafad04d 100644 --- a/packages/python/plotly/plotly/validators/funnel/insidetextfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/funnel/insidetextfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/insidetextfont/_size.py b/packages/python/plotly/plotly/validators/funnel/insidetextfont/_size.py index fa9d92e8d8..40f3b08e1a 100644 --- a/packages/python/plotly/plotly/validators/funnel/insidetextfont/_size.py +++ b/packages/python/plotly/plotly/validators/funnel/insidetextfont/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/insidetextfont/_sizesrc.py b/packages/python/plotly/plotly/validators/funnel/insidetextfont/_sizesrc.py index 7c1846c21e..df88fb9d6c 100644 --- a/packages/python/plotly/plotly/validators/funnel/insidetextfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/funnel/insidetextfont/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/_autocolorscale.py b/packages/python/plotly/plotly/validators/funnel/marker/_autocolorscale.py index a004b7be52..f4f217105e 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/_cauto.py b/packages/python/plotly/plotly/validators/funnel/marker/_cauto.py index e71540b67e..8745481d09 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/_cauto.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/_cauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cauto", parent_name="funnel.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/_cmax.py b/packages/python/plotly/plotly/validators/funnel/marker/_cmax.py index 26d7d72971..32b4fe6457 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/_cmax.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="funnel.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/_cmid.py b/packages/python/plotly/plotly/validators/funnel/marker/_cmid.py index 024717ec7b..d1b6447fa9 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/_cmid.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="funnel.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/_cmin.py b/packages/python/plotly/plotly/validators/funnel/marker/_cmin.py index d19c534fae..c70914538a 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/_cmin.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="funnel.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/_color.py b/packages/python/plotly/plotly/validators/funnel/marker/_color.py index 601e9fb1b2..30d1adb0b7 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/_color.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/_color.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="color", parent_name="funnel.marker", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop("colorscale_path", "funnel.marker.colorscale"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/_coloraxis.py b/packages/python/plotly/plotly/validators/funnel/marker/_coloraxis.py index cf13ab8d8f..fff45f8a74 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/_coloraxis.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="coloraxis", parent_name="funnel.marker", **kwarg dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/_colorbar.py b/packages/python/plotly/plotly/validators/funnel/marker/_colorbar.py index edd60da6c6..ca4da901e0 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/_colorbar.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/_colorbar.py @@ -148,6 +148,12 @@ def __init__(self, plotly_name="colorbar", parent_name="funnel.marker", **kwargs ), sets the default property values to use for elements of funnel.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/funnel/marker/_colorscale.py b/packages/python/plotly/plotly/validators/funnel/marker/_colorscale.py index 34219eda31..99ba6d0e82 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/_colorscale.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/_colorscale.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="colorscale", parent_name="funnel.marker", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/_colorsrc.py b/packages/python/plotly/plotly/validators/funnel/marker/_colorsrc.py index 148bd820c6..014b5066aa 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/_colorsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="colorsrc", parent_name="funnel.marker", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/_opacity.py b/packages/python/plotly/plotly/validators/funnel/marker/_opacity.py index cb21e028a6..1b25dc19f3 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/_opacity.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="opacity", parent_name="funnel.marker", **kwargs) edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/_opacitysrc.py b/packages/python/plotly/plotly/validators/funnel/marker/_opacitysrc.py index 6d849b2705..4d8d395079 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/_opacitysrc.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/_opacitysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="opacitysrc", parent_name="funnel.marker", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/_reversescale.py b/packages/python/plotly/plotly/validators/funnel/marker/_reversescale.py index 8907a61434..65b1d115e8 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/_reversescale.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/_showscale.py b/packages/python/plotly/plotly/validators/funnel/marker/_showscale.py index 5311b563c5..2722f1a4a2 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/_showscale.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/_showscale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showscale", parent_name="funnel.marker", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/__init__.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_bgcolor.py index 3f5ca59a7e..6a3a5d1147 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_bordercolor.py index 7fae7500c8..ed32893a88 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_borderwidth.py index d059eeecd6..170836bc8e 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_dtick.py index e2b5d18f20..26fbd855a5 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_exponentformat.py index 8366de40a0..cb829ba996 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_exponentformat.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_len.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_len.py index ee36ca7d62..4e32db681c 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_len.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_lenmode.py index 09f2409f13..9f5e80f5c5 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_lenmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_minexponent.py index 7db12a0f40..cf874e43fa 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_nticks.py index f7d8584fb7..0e79a3cc31 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_outlinecolor.py index 0d7eece0fc..639b0b0b10 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_outlinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_outlinewidth.py index 58205dce05..b3a97e8509 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_outlinewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_separatethousands.py index 8d976555f4..d5445222d8 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_showexponent.py index db8f614cbc..41f7bc679b 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_showticklabels.py index ba5034d377..0384e10ea1 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_showticklabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_showtickprefix.py index 6798e4e617..f4028d948f 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_showtickprefix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_showticksuffix.py index 4f75218d1a..d94d292015 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_showticksuffix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_thickness.py index bc284ad893..3cd94cfd1d 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_thicknessmode.py index 3dafb31648..775d13ba72 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_thicknessmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tick0.py index 6a807b3995..8cdb0347e5 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickangle.py index d3666a51eb..16ad2fff9e 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickcolor.py index 28f92fbb52..54cec035ba 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickformat.py index 21e19c299d..0fcd615beb 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..b27ec2d5f9 --- /dev/null +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="funnel.marker.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "colorbars"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticklabelposition.py index 8d776421ae..fbd9946ccd 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticklen.py index 44a2094f05..3140f05148 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickmode.py index b90afb8ff8..0e0ef11c24 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickprefix.py index d80a8d8842..be67df0b2c 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticks.py index 7630d80021..144ac244db 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticksuffix.py index bc1859cdc6..1109e494b0 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticktext.py index 99e29d1944..cfda48f3aa 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticktextsrc.py index cb391e1ee4..e5f2fe0bb9 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickvals.py index 81f3054a3b..c791321d4b 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickvalssrc.py index baf03688ac..b9ef0f21fc 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickwidth.py index 6979a3e23a..42b4cde640 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_x.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_x.py index dd69f742c6..29c8d5203e 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_x.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="x", parent_name="funnel.marker.colorbar", **kwar edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_xanchor.py index 8f660592b1..3d3f3b8b41 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_xpad.py index 33c3d3b534..d1b357c5d3 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_xpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_y.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_y.py index 853f39101b..f4a6bdb38f 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_y.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="y", parent_name="funnel.marker.colorbar", **kwar edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_yanchor.py index 7320e527cb..6fba981b35 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ypad.py index 84959fdbda..60545734ad 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/_ypad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickfont/_color.py index 819c98467a..dc095bf00a 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickfont/_family.py index 2481f4ecb3..35bbb5dfb4 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickfont/_size.py index cb79b28692..c407154def 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickformatstop/_dtickrange.py index bfb63e9a90..9a762ded78 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "colorbars"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickformatstop/_enabled.py index ffc24f85ef..4f9f2cf048 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickformatstop/_name.py index 33a121118e..efad00ed62 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickformatstop/_templateitemname.py index 9272b7b512..6005372be1 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickformatstop/_value.py index 51cb1ffa48..06e6e79a9b 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/title/_side.py index b0526d8d9d..fa59ac75e1 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/title/_side.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/title/_text.py index 8b40a50c36..1c2d6bee20 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/title/font/_color.py index 563f7869c6..f101f12d7d 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/title/font/_family.py index 5fe0981044..1ce396a896 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/title/font/_size.py index 6080a920d4..ab5a6d00a7 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/colorbar/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/line/_autocolorscale.py b/packages/python/plotly/plotly/validators/funnel/marker/line/_autocolorscale.py index fa27904649..edec92f200 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/line/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/line/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/line/_cauto.py b/packages/python/plotly/plotly/validators/funnel/marker/line/_cauto.py index 05cf7e55a1..c15fd2490d 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/line/_cauto.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/line/_cauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cauto", parent_name="funnel.marker.line", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/line/_cmax.py b/packages/python/plotly/plotly/validators/funnel/marker/line/_cmax.py index f929a83437..a9f30996b6 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/line/_cmax.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/line/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="funnel.marker.line", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/line/_cmid.py b/packages/python/plotly/plotly/validators/funnel/marker/line/_cmid.py index b80688e073..973cada793 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/line/_cmid.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/line/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="funnel.marker.line", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/line/_cmin.py b/packages/python/plotly/plotly/validators/funnel/marker/line/_cmin.py index 52edd465f1..3fa75c27fb 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/line/_cmin.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/line/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="funnel.marker.line", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/line/_color.py b/packages/python/plotly/plotly/validators/funnel/marker/line/_color.py index e57356221b..573b1aa7a9 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/line/_color.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/line/_color.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="color", parent_name="funnel.marker.line", **kwar parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop( "colorscale_path", "funnel.marker.line.colorscale" ), diff --git a/packages/python/plotly/plotly/validators/funnel/marker/line/_coloraxis.py b/packages/python/plotly/plotly/validators/funnel/marker/line/_coloraxis.py index 154fa52d6a..23bb505941 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/line/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/line/_coloraxis.py @@ -11,6 +11,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/line/_colorscale.py b/packages/python/plotly/plotly/validators/funnel/marker/line/_colorscale.py index 0282987769..b14e6f8878 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/line/_colorscale.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/line/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/line/_colorsrc.py b/packages/python/plotly/plotly/validators/funnel/marker/line/_colorsrc.py index f517260ef7..9514ecc989 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/line/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/line/_reversescale.py b/packages/python/plotly/plotly/validators/funnel/marker/line/_reversescale.py index 2f94af1c65..69428389f8 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/line/_reversescale.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/line/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/line/_width.py b/packages/python/plotly/plotly/validators/funnel/marker/line/_width.py index f3e1ebce03..5404a253e7 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/line/_width.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/line/_width.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="width", parent_name="funnel.marker.line", **kwar array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/marker/line/_widthsrc.py b/packages/python/plotly/plotly/validators/funnel/marker/line/_widthsrc.py index b3acff9f95..54443e3a0b 100644 --- a/packages/python/plotly/plotly/validators/funnel/marker/line/_widthsrc.py +++ b/packages/python/plotly/plotly/validators/funnel/marker/line/_widthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/outsidetextfont/_color.py b/packages/python/plotly/plotly/validators/funnel/outsidetextfont/_color.py index eba587d069..d29ea1b028 100644 --- a/packages/python/plotly/plotly/validators/funnel/outsidetextfont/_color.py +++ b/packages/python/plotly/plotly/validators/funnel/outsidetextfont/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/outsidetextfont/_colorsrc.py b/packages/python/plotly/plotly/validators/funnel/outsidetextfont/_colorsrc.py index 7a9a733d8a..f76fc86a38 100644 --- a/packages/python/plotly/plotly/validators/funnel/outsidetextfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/funnel/outsidetextfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/outsidetextfont/_family.py b/packages/python/plotly/plotly/validators/funnel/outsidetextfont/_family.py index 21052e133d..b5d247fdb9 100644 --- a/packages/python/plotly/plotly/validators/funnel/outsidetextfont/_family.py +++ b/packages/python/plotly/plotly/validators/funnel/outsidetextfont/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/outsidetextfont/_familysrc.py b/packages/python/plotly/plotly/validators/funnel/outsidetextfont/_familysrc.py index c4b5fc4a7f..928d4ea738 100644 --- a/packages/python/plotly/plotly/validators/funnel/outsidetextfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/funnel/outsidetextfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/outsidetextfont/_size.py b/packages/python/plotly/plotly/validators/funnel/outsidetextfont/_size.py index 93295128ef..b8ef1c6c05 100644 --- a/packages/python/plotly/plotly/validators/funnel/outsidetextfont/_size.py +++ b/packages/python/plotly/plotly/validators/funnel/outsidetextfont/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/outsidetextfont/_sizesrc.py b/packages/python/plotly/plotly/validators/funnel/outsidetextfont/_sizesrc.py index 0b8c60604f..d2d11df347 100644 --- a/packages/python/plotly/plotly/validators/funnel/outsidetextfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/funnel/outsidetextfont/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/funnel/stream/_maxpoints.py index 05cf71dfdc..6d522dac0e 100644 --- a/packages/python/plotly/plotly/validators/funnel/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/funnel/stream/_maxpoints.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="maxpoints", parent_name="funnel.stream", **kwarg edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/stream/_token.py b/packages/python/plotly/plotly/validators/funnel/stream/_token.py index bbe051cf08..8d1cd42c16 100644 --- a/packages/python/plotly/plotly/validators/funnel/stream/_token.py +++ b/packages/python/plotly/plotly/validators/funnel/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="funnel.stream", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/textfont/_color.py b/packages/python/plotly/plotly/validators/funnel/textfont/_color.py index 00137ab60a..39974c1341 100644 --- a/packages/python/plotly/plotly/validators/funnel/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/funnel/textfont/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="funnel.textfont", **kwargs) parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/textfont/_colorsrc.py b/packages/python/plotly/plotly/validators/funnel/textfont/_colorsrc.py index ad9638cf20..8957f6794e 100644 --- a/packages/python/plotly/plotly/validators/funnel/textfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/funnel/textfont/_colorsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="colorsrc", parent_name="funnel.textfont", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/textfont/_family.py b/packages/python/plotly/plotly/validators/funnel/textfont/_family.py index f72d638bd5..a19fff9ab0 100644 --- a/packages/python/plotly/plotly/validators/funnel/textfont/_family.py +++ b/packages/python/plotly/plotly/validators/funnel/textfont/_family.py @@ -9,7 +9,6 @@ def __init__(self, plotly_name="family", parent_name="funnel.textfont", **kwargs array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/textfont/_familysrc.py b/packages/python/plotly/plotly/validators/funnel/textfont/_familysrc.py index d9d30cd1dd..adf222ca6e 100644 --- a/packages/python/plotly/plotly/validators/funnel/textfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/funnel/textfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/textfont/_size.py b/packages/python/plotly/plotly/validators/funnel/textfont/_size.py index 4c52b0f6a6..803a54969e 100644 --- a/packages/python/plotly/plotly/validators/funnel/textfont/_size.py +++ b/packages/python/plotly/plotly/validators/funnel/textfont/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="funnel.textfont", **kwargs): array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnel/textfont/_sizesrc.py b/packages/python/plotly/plotly/validators/funnel/textfont/_sizesrc.py index 8459c25d25..941f4caffa 100644 --- a/packages/python/plotly/plotly/validators/funnel/textfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/funnel/textfont/_sizesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="sizesrc", parent_name="funnel.textfont", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_aspectratio.py b/packages/python/plotly/plotly/validators/funnelarea/_aspectratio.py index 6e08f3c54c..aa61f2dfdb 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_aspectratio.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_aspectratio.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="aspectratio", parent_name="funnelarea", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_baseratio.py b/packages/python/plotly/plotly/validators/funnelarea/_baseratio.py index 89bbe3e9d5..96a9725fd5 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_baseratio.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_baseratio.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="baseratio", parent_name="funnelarea", **kwargs): edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_customdata.py b/packages/python/plotly/plotly/validators/funnelarea/_customdata.py index d2efa883c3..a65db99d39 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_customdata.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="funnelarea", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_customdatasrc.py b/packages/python/plotly/plotly/validators/funnelarea/_customdatasrc.py index c25b69c00f..3cd257563f 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="funnelarea", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_dlabel.py b/packages/python/plotly/plotly/validators/funnelarea/_dlabel.py index eda0fb0817..9786978d37 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_dlabel.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_dlabel.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="dlabel", parent_name="funnelarea", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_hoverinfo.py b/packages/python/plotly/plotly/validators/funnelarea/_hoverinfo.py index b90f4ed25a..5ebf079b9b 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="funnelarea", **kwargs): edit_type=kwargs.pop("edit_type", "none"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["label", "text", "value", "percent", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/funnelarea/_hoverinfosrc.py index 8061e0c85e..e37c1bfda9 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="funnelarea", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_hovertemplate.py b/packages/python/plotly/plotly/validators/funnelarea/_hovertemplate.py index 50a7f36109..8bd3373ee7 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="funnelarea", **kwar parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/funnelarea/_hovertemplatesrc.py index f1b46b5c30..41e3a8b1f2 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_hovertemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_hovertext.py b/packages/python/plotly/plotly/validators/funnelarea/_hovertext.py index 2b2dff3f58..e8b442cc0b 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_hovertext.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="funnelarea", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_hovertextsrc.py b/packages/python/plotly/plotly/validators/funnelarea/_hovertextsrc.py index 68c19c47f4..6079340aa9 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="funnelarea", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_ids.py b/packages/python/plotly/plotly/validators/funnelarea/_ids.py index 4da8398b98..52878e73d9 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_ids.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="funnelarea", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_idssrc.py b/packages/python/plotly/plotly/validators/funnelarea/_idssrc.py index c5a0250557..f0513eaba2 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_idssrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="funnelarea", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_label0.py b/packages/python/plotly/plotly/validators/funnelarea/_label0.py index d64ce92f91..82e721f58b 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_label0.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_label0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="label0", parent_name="funnelarea", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_labels.py b/packages/python/plotly/plotly/validators/funnelarea/_labels.py index bfdbba3c58..d89a5b96f7 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_labels.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_labels.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="labels", parent_name="funnelarea", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_labelssrc.py b/packages/python/plotly/plotly/validators/funnelarea/_labelssrc.py index 7da3fdbb58..74f68efbef 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_labelssrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_labelssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="labelssrc", parent_name="funnelarea", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_legendgroup.py b/packages/python/plotly/plotly/validators/funnelarea/_legendgroup.py index cd8947f0d1..b04d3d54de 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="funnelarea", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_meta.py b/packages/python/plotly/plotly/validators/funnelarea/_meta.py index 3fa079924f..d8523faf10 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_meta.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="funnelarea", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_metasrc.py b/packages/python/plotly/plotly/validators/funnelarea/_metasrc.py index d7e1360027..68d5923596 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_metasrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="funnelarea", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_name.py b/packages/python/plotly/plotly/validators/funnelarea/_name.py index 45e294941b..3e515241fd 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_name.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="funnelarea", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_opacity.py b/packages/python/plotly/plotly/validators/funnelarea/_opacity.py index c928efcb59..81080cd177 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_opacity.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="funnelarea", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_scalegroup.py b/packages/python/plotly/plotly/validators/funnelarea/_scalegroup.py index 6d74d11693..a2334222da 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_scalegroup.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_scalegroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="scalegroup", parent_name="funnelarea", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_showlegend.py b/packages/python/plotly/plotly/validators/funnelarea/_showlegend.py index 415c4eb55f..e44f60d60b 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_showlegend.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="funnelarea", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_text.py b/packages/python/plotly/plotly/validators/funnelarea/_text.py index e6cbbe27f6..edfee51883 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_text.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_text.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="text", parent_name="funnelarea", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_textinfo.py b/packages/python/plotly/plotly/validators/funnelarea/_textinfo.py index 8f8bc870d9..5f37e02716 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_textinfo.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_textinfo.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="textinfo", parent_name="funnelarea", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), extras=kwargs.pop("extras", ["none"]), flags=kwargs.pop("flags", ["label", "text", "value", "percent"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_textposition.py b/packages/python/plotly/plotly/validators/funnelarea/_textposition.py index 480f1c279a..035dbb0623 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_textposition.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_textposition.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="textposition", parent_name="funnelarea", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["inside", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_textpositionsrc.py b/packages/python/plotly/plotly/validators/funnelarea/_textpositionsrc.py index ed95e7bc9e..20aa23a054 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_textpositionsrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_textpositionsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_textsrc.py b/packages/python/plotly/plotly/validators/funnelarea/_textsrc.py index c64ec56096..6c8a1998a5 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_textsrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="funnelarea", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_texttemplate.py b/packages/python/plotly/plotly/validators/funnelarea/_texttemplate.py index 31fc841289..6e4ba4683c 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_texttemplate.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_texttemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="texttemplate", parent_name="funnelarea", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_texttemplatesrc.py b/packages/python/plotly/plotly/validators/funnelarea/_texttemplatesrc.py index 3614af866f..c1bf3cc3c4 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_texttemplatesrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_texttemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_uid.py b/packages/python/plotly/plotly/validators/funnelarea/_uid.py index bdde951d38..c298d6bb38 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_uid.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="funnelarea", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_uirevision.py b/packages/python/plotly/plotly/validators/funnelarea/_uirevision.py index a8c97cddde..664684474c 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_uirevision.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="funnelarea", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_values.py b/packages/python/plotly/plotly/validators/funnelarea/_values.py index 4851ccc564..c37dbfbc7b 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_values.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_values.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="values", parent_name="funnelarea", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_valuessrc.py b/packages/python/plotly/plotly/validators/funnelarea/_valuessrc.py index 2dd945506e..1008ce59b2 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_valuessrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_valuessrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="valuessrc", parent_name="funnelarea", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/_visible.py b/packages/python/plotly/plotly/validators/funnelarea/_visible.py index ce861beefc..566dc9112c 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/_visible.py +++ b/packages/python/plotly/plotly/validators/funnelarea/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="funnelarea", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/domain/_column.py b/packages/python/plotly/plotly/validators/funnelarea/domain/_column.py index 751b797455..55e6693cf2 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/domain/_column.py +++ b/packages/python/plotly/plotly/validators/funnelarea/domain/_column.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="column", parent_name="funnelarea.domain", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/domain/_row.py b/packages/python/plotly/plotly/validators/funnelarea/domain/_row.py index cc8fa14c45..c6f8c5d5aa 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/domain/_row.py +++ b/packages/python/plotly/plotly/validators/funnelarea/domain/_row.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="row", parent_name="funnelarea.domain", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/domain/_x.py b/packages/python/plotly/plotly/validators/funnelarea/domain/_x.py index a1cec02c48..6946388a47 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/domain/_x.py +++ b/packages/python/plotly/plotly/validators/funnelarea/domain/_x.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="x", parent_name="funnelarea.domain", **kwargs): {"valType": "number", "min": 0, "max": 1, "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/domain/_y.py b/packages/python/plotly/plotly/validators/funnelarea/domain/_y.py index 9fa6b99818..3133fedc2c 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/domain/_y.py +++ b/packages/python/plotly/plotly/validators/funnelarea/domain/_y.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="y", parent_name="funnelarea.domain", **kwargs): {"valType": "number", "min": 0, "max": 1, "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_align.py index 3fa4d81d2b..ac15728707 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_align.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_alignsrc.py index fec5f8f919..1e4a6799c3 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_bgcolor.py index 217f48ed19..152201cf98 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_bgcolorsrc.py index b6dc295909..530f75d34e 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_bordercolor.py index cf7848f162..b54902a74b 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_bordercolorsrc.py index 198ef4b549..6e620d589e 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_bordercolorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_namelength.py index 98c325a2fa..3784e87c16 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_namelengthsrc.py index be16c7b1e4..8162634f50 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/font/_color.py index 67b26f3687..667bd75efc 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/font/_colorsrc.py index bc5b83774f..9e6f674478 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/font/_family.py index 8545389bc1..8749c6111b 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/font/_familysrc.py index bfcfd9ec60..0295b6391f 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/font/_familysrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/font/_size.py index 4595d7fecc..b8630cd0b5 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/font/_sizesrc.py index 48fb1144fb..9a4805bfd7 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/insidetextfont/_color.py b/packages/python/plotly/plotly/validators/funnelarea/insidetextfont/_color.py index 28db2f4e9c..4b58a7bc0e 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/insidetextfont/_color.py +++ b/packages/python/plotly/plotly/validators/funnelarea/insidetextfont/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/insidetextfont/_colorsrc.py b/packages/python/plotly/plotly/validators/funnelarea/insidetextfont/_colorsrc.py index ae04265c4d..eb3a521a48 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/insidetextfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/insidetextfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/insidetextfont/_family.py b/packages/python/plotly/plotly/validators/funnelarea/insidetextfont/_family.py index 28004c6f10..160cf35e5a 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/insidetextfont/_family.py +++ b/packages/python/plotly/plotly/validators/funnelarea/insidetextfont/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/insidetextfont/_familysrc.py b/packages/python/plotly/plotly/validators/funnelarea/insidetextfont/_familysrc.py index 00356617b4..a5726e7332 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/insidetextfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/insidetextfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/insidetextfont/_size.py b/packages/python/plotly/plotly/validators/funnelarea/insidetextfont/_size.py index 5a4d252854..d4fb548c7b 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/insidetextfont/_size.py +++ b/packages/python/plotly/plotly/validators/funnelarea/insidetextfont/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/insidetextfont/_sizesrc.py b/packages/python/plotly/plotly/validators/funnelarea/insidetextfont/_sizesrc.py index 51de4e8a8d..ecc41eb3aa 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/insidetextfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/insidetextfont/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/marker/_colors.py b/packages/python/plotly/plotly/validators/funnelarea/marker/_colors.py index 9c70adbd97..adb85b9d72 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/marker/_colors.py +++ b/packages/python/plotly/plotly/validators/funnelarea/marker/_colors.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="colors", parent_name="funnelarea.marker", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/marker/_colorssrc.py b/packages/python/plotly/plotly/validators/funnelarea/marker/_colorssrc.py index d14e324daa..e64ef87702 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/marker/_colorssrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/marker/_colorssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/marker/line/_color.py b/packages/python/plotly/plotly/validators/funnelarea/marker/line/_color.py index 9985d0f3fe..2fabe89972 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/marker/line/_color.py +++ b/packages/python/plotly/plotly/validators/funnelarea/marker/line/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/marker/line/_colorsrc.py b/packages/python/plotly/plotly/validators/funnelarea/marker/line/_colorsrc.py index f941edcab7..5889f4db94 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/marker/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/marker/line/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/marker/line/_width.py b/packages/python/plotly/plotly/validators/funnelarea/marker/line/_width.py index 803016bb21..6c6069e199 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/marker/line/_width.py +++ b/packages/python/plotly/plotly/validators/funnelarea/marker/line/_width.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/marker/line/_widthsrc.py b/packages/python/plotly/plotly/validators/funnelarea/marker/line/_widthsrc.py index c21b504fbc..8703c79d0d 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/marker/line/_widthsrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/marker/line/_widthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/funnelarea/stream/_maxpoints.py index 0b5d2c1c9c..a1d11ffb7c 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/funnelarea/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/stream/_token.py b/packages/python/plotly/plotly/validators/funnelarea/stream/_token.py index 8fafb63632..9df9e3421f 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/stream/_token.py +++ b/packages/python/plotly/plotly/validators/funnelarea/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="funnelarea.stream", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/textfont/_color.py b/packages/python/plotly/plotly/validators/funnelarea/textfont/_color.py index 9f02348ebd..878f6fcea6 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/funnelarea/textfont/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/textfont/_colorsrc.py b/packages/python/plotly/plotly/validators/funnelarea/textfont/_colorsrc.py index d5eea67d90..409b594f1b 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/textfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/textfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/textfont/_family.py b/packages/python/plotly/plotly/validators/funnelarea/textfont/_family.py index 6d8ef34170..c066fd3a81 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/textfont/_family.py +++ b/packages/python/plotly/plotly/validators/funnelarea/textfont/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/textfont/_familysrc.py b/packages/python/plotly/plotly/validators/funnelarea/textfont/_familysrc.py index 141eddb76e..c98d98b0dc 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/textfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/textfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/textfont/_size.py b/packages/python/plotly/plotly/validators/funnelarea/textfont/_size.py index ae6ab1e2d0..cd230d8d6e 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/textfont/_size.py +++ b/packages/python/plotly/plotly/validators/funnelarea/textfont/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="funnelarea.textfont", **kwar array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/textfont/_sizesrc.py b/packages/python/plotly/plotly/validators/funnelarea/textfont/_sizesrc.py index f36bacc09b..df4e8f5b2d 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/textfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/textfont/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/title/_position.py b/packages/python/plotly/plotly/validators/funnelarea/title/_position.py index 891a22c923..c41db7e682 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/title/_position.py +++ b/packages/python/plotly/plotly/validators/funnelarea/title/_position.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["top left", "top center", "top right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/title/_text.py b/packages/python/plotly/plotly/validators/funnelarea/title/_text.py index f1d37836c1..3c642cb7d1 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/title/_text.py +++ b/packages/python/plotly/plotly/validators/funnelarea/title/_text.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="text", parent_name="funnelarea.title", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/title/font/_color.py b/packages/python/plotly/plotly/validators/funnelarea/title/font/_color.py index 01aaa78694..151ff486bd 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/funnelarea/title/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/title/font/_colorsrc.py b/packages/python/plotly/plotly/validators/funnelarea/title/font/_colorsrc.py index e05687833d..ae89474a39 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/title/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/title/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/title/font/_family.py b/packages/python/plotly/plotly/validators/funnelarea/title/font/_family.py index 78b70a2da7..da01b6c0fb 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/funnelarea/title/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/title/font/_familysrc.py b/packages/python/plotly/plotly/validators/funnelarea/title/font/_familysrc.py index 2d3de526ec..44cd517c1e 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/title/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/title/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/title/font/_size.py b/packages/python/plotly/plotly/validators/funnelarea/title/font/_size.py index 1a42d9db61..dd396ed6f7 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/funnelarea/title/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/funnelarea/title/font/_sizesrc.py b/packages/python/plotly/plotly/validators/funnelarea/title/font/_sizesrc.py index 988da524c0..a2417f2608 100644 --- a/packages/python/plotly/plotly/validators/funnelarea/title/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/funnelarea/title/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/__init__.py b/packages/python/plotly/plotly/validators/heatmap/__init__.py index 8671cdf419..73dbb9d5e8 100644 --- a/packages/python/plotly/plotly/validators/heatmap/__init__.py +++ b/packages/python/plotly/plotly/validators/heatmap/__init__.py @@ -14,6 +14,7 @@ from ._yperiodalignment import YperiodalignmentValidator from ._yperiod0 import Yperiod0Validator from ._yperiod import YperiodValidator + from ._yhoverformat import YhoverformatValidator from ._ygap import YgapValidator from ._ycalendar import YcalendarValidator from ._yaxis import YaxisValidator @@ -24,6 +25,7 @@ from ._xperiodalignment import XperiodalignmentValidator from ._xperiod0 import Xperiod0Validator from ._xperiod import XperiodValidator + from ._xhoverformat import XhoverformatValidator from ._xgap import XgapValidator from ._xcalendar import XcalendarValidator from ._xaxis import XaxisValidator @@ -83,6 +85,7 @@ "._yperiodalignment.YperiodalignmentValidator", "._yperiod0.Yperiod0Validator", "._yperiod.YperiodValidator", + "._yhoverformat.YhoverformatValidator", "._ygap.YgapValidator", "._ycalendar.YcalendarValidator", "._yaxis.YaxisValidator", @@ -93,6 +96,7 @@ "._xperiodalignment.XperiodalignmentValidator", "._xperiod0.Xperiod0Validator", "._xperiod.XperiodValidator", + "._xhoverformat.XhoverformatValidator", "._xgap.XgapValidator", "._xcalendar.XcalendarValidator", "._xaxis.XaxisValidator", diff --git a/packages/python/plotly/plotly/validators/heatmap/_autocolorscale.py b/packages/python/plotly/plotly/validators/heatmap/_autocolorscale.py index 71dd7f53a8..f524cf31b6 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/heatmap/_autocolorscale.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="autocolorscale", parent_name="heatmap", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_coloraxis.py b/packages/python/plotly/plotly/validators/heatmap/_coloraxis.py index fe0fb177de..9ce2e6c519 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/heatmap/_coloraxis.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="coloraxis", parent_name="heatmap", **kwargs): dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_colorbar.py b/packages/python/plotly/plotly/validators/heatmap/_colorbar.py index d588aa3cfb..b6bd2c25dc 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_colorbar.py +++ b/packages/python/plotly/plotly/validators/heatmap/_colorbar.py @@ -147,6 +147,12 @@ def __init__(self, plotly_name="colorbar", parent_name="heatmap", **kwargs): a.heatmap.colorbar.tickformatstopdefaults), sets the default property values to use for elements of heatmap.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/heatmap/_colorscale.py b/packages/python/plotly/plotly/validators/heatmap/_colorscale.py index 3a664a2c57..14bcf37e32 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_colorscale.py +++ b/packages/python/plotly/plotly/validators/heatmap/_colorscale.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="colorscale", parent_name="heatmap", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_connectgaps.py b/packages/python/plotly/plotly/validators/heatmap/_connectgaps.py index a2480e630f..db80180e8c 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_connectgaps.py +++ b/packages/python/plotly/plotly/validators/heatmap/_connectgaps.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="connectgaps", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_customdata.py b/packages/python/plotly/plotly/validators/heatmap/_customdata.py index 40e2b1d0a5..9ad39de1a9 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_customdata.py +++ b/packages/python/plotly/plotly/validators/heatmap/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_customdatasrc.py b/packages/python/plotly/plotly/validators/heatmap/_customdatasrc.py index afb3a09f57..67b1f0d365 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/heatmap/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="heatmap", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_dx.py b/packages/python/plotly/plotly/validators/heatmap/_dx.py index 27b4975d3a..393c3774fb 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_dx.py +++ b/packages/python/plotly/plotly/validators/heatmap/_dx.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="dx", parent_name="heatmap", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"xtype": "scaled"}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_dy.py b/packages/python/plotly/plotly/validators/heatmap/_dy.py index 98215c16c7..972252c5f2 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_dy.py +++ b/packages/python/plotly/plotly/validators/heatmap/_dy.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="dy", parent_name="heatmap", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"ytype": "scaled"}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_hoverinfo.py b/packages/python/plotly/plotly/validators/heatmap/_hoverinfo.py index 8813c0aa64..0ed58e4173 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/heatmap/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="heatmap", **kwargs): edit_type=kwargs.pop("edit_type", "none"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["x", "y", "z", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/heatmap/_hoverinfosrc.py index c3b436263b..0571abc686 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/heatmap/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_hoverongaps.py b/packages/python/plotly/plotly/validators/heatmap/_hoverongaps.py index 694521a4e0..5ec4f252f2 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_hoverongaps.py +++ b/packages/python/plotly/plotly/validators/heatmap/_hoverongaps.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverongaps", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_hovertemplate.py b/packages/python/plotly/plotly/validators/heatmap/_hovertemplate.py index b78c1fcc01..0de7bd458f 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/heatmap/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="heatmap", **kwargs) parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/heatmap/_hovertemplatesrc.py index 447d1c2caa..8fa66fe225 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/heatmap/_hovertemplatesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertemplatesrc", parent_name="heatmap", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_hovertext.py b/packages/python/plotly/plotly/validators/heatmap/_hovertext.py index d3ca8f04aa..6f7edecf85 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_hovertext.py +++ b/packages/python/plotly/plotly/validators/heatmap/_hovertext.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertext", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_hovertextsrc.py b/packages/python/plotly/plotly/validators/heatmap/_hovertextsrc.py index b606b67391..67ce4c451e 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/heatmap/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_ids.py b/packages/python/plotly/plotly/validators/heatmap/_ids.py index 9de5f9b2b5..d5806d8049 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_ids.py +++ b/packages/python/plotly/plotly/validators/heatmap/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_idssrc.py b/packages/python/plotly/plotly/validators/heatmap/_idssrc.py index a191d4fe36..af9935dcba 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_idssrc.py +++ b/packages/python/plotly/plotly/validators/heatmap/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_legendgroup.py b/packages/python/plotly/plotly/validators/heatmap/_legendgroup.py index f52f8668b2..a8a2e21a7b 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/heatmap/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_meta.py b/packages/python/plotly/plotly/validators/heatmap/_meta.py index 9a32fd3438..57424b0527 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_meta.py +++ b/packages/python/plotly/plotly/validators/heatmap/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="heatmap", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_metasrc.py b/packages/python/plotly/plotly/validators/heatmap/_metasrc.py index fdde50bf02..c7d5ddec27 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_metasrc.py +++ b/packages/python/plotly/plotly/validators/heatmap/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_name.py b/packages/python/plotly/plotly/validators/heatmap/_name.py index 0de2de6c75..f40d758c9e 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_name.py +++ b/packages/python/plotly/plotly/validators/heatmap/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_opacity.py b/packages/python/plotly/plotly/validators/heatmap/_opacity.py index b50791d91a..5d1b44e3f3 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_opacity.py +++ b/packages/python/plotly/plotly/validators/heatmap/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="heatmap", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_reversescale.py b/packages/python/plotly/plotly/validators/heatmap/_reversescale.py index b0a837189f..75eb1810c3 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_reversescale.py +++ b/packages/python/plotly/plotly/validators/heatmap/_reversescale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="reversescale", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_showlegend.py b/packages/python/plotly/plotly/validators/heatmap/_showlegend.py index e29f8f1597..4b3d1951ac 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_showlegend.py +++ b/packages/python/plotly/plotly/validators/heatmap/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_showscale.py b/packages/python/plotly/plotly/validators/heatmap/_showscale.py index 64df38c765..2f29d96cca 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_showscale.py +++ b/packages/python/plotly/plotly/validators/heatmap/_showscale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showscale", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_text.py b/packages/python/plotly/plotly/validators/heatmap/_text.py index 5746b4644c..e138325681 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_text.py +++ b/packages/python/plotly/plotly/validators/heatmap/_text.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="text", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_textsrc.py b/packages/python/plotly/plotly/validators/heatmap/_textsrc.py index e147fad3c3..1a46ef88cb 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_textsrc.py +++ b/packages/python/plotly/plotly/validators/heatmap/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_transpose.py b/packages/python/plotly/plotly/validators/heatmap/_transpose.py index 5720252a26..b91f722125 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_transpose.py +++ b/packages/python/plotly/plotly/validators/heatmap/_transpose.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="transpose", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_uid.py b/packages/python/plotly/plotly/validators/heatmap/_uid.py index 41f58b73c9..12fbd0b26b 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_uid.py +++ b/packages/python/plotly/plotly/validators/heatmap/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_uirevision.py b/packages/python/plotly/plotly/validators/heatmap/_uirevision.py index 4ea7eb18d0..a65a220b92 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_uirevision.py +++ b/packages/python/plotly/plotly/validators/heatmap/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_visible.py b/packages/python/plotly/plotly/validators/heatmap/_visible.py index dfe77b9aba..8dc762f1e6 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_visible.py +++ b/packages/python/plotly/plotly/validators/heatmap/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_x.py b/packages/python/plotly/plotly/validators/heatmap/_x.py index 44b1bc1c6c..0d9cc62066 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_x.py +++ b/packages/python/plotly/plotly/validators/heatmap/_x.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="x", parent_name="heatmap", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), implied_edits=kwargs.pop("implied_edits", {"xtype": "array"}), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_x0.py b/packages/python/plotly/plotly/validators/heatmap/_x0.py index 1cd435b1c0..86e7c583d6 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_x0.py +++ b/packages/python/plotly/plotly/validators/heatmap/_x0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="x0", parent_name="heatmap", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), implied_edits=kwargs.pop("implied_edits", {"xtype": "scaled"}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_xaxis.py b/packages/python/plotly/plotly/validators/heatmap/_xaxis.py index 7e359153c1..e1c5af4bcd 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_xaxis.py +++ b/packages/python/plotly/plotly/validators/heatmap/_xaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xaxis", parent_name="heatmap", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "x"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_xcalendar.py b/packages/python/plotly/plotly/validators/heatmap/_xcalendar.py index 0de002ec44..3655b5e06b 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_xcalendar.py +++ b/packages/python/plotly/plotly/validators/heatmap/_xcalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xcalendar", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/heatmap/_xgap.py b/packages/python/plotly/plotly/validators/heatmap/_xgap.py index 6e9486b225..c83447f88d 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_xgap.py +++ b/packages/python/plotly/plotly/validators/heatmap/_xgap.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xgap", parent_name="heatmap", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_xhoverformat.py b/packages/python/plotly/plotly/validators/heatmap/_xhoverformat.py new file mode 100644 index 0000000000..407fddf9d5 --- /dev/null +++ b/packages/python/plotly/plotly/validators/heatmap/_xhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class XhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="xhoverformat", parent_name="heatmap", **kwargs): + super(XhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_xperiod.py b/packages/python/plotly/plotly/validators/heatmap/_xperiod.py index 9dcac1d43a..40e859f55a 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_xperiod.py +++ b/packages/python/plotly/plotly/validators/heatmap/_xperiod.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xperiod", parent_name="heatmap", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"xtype": "scaled"}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_xperiod0.py b/packages/python/plotly/plotly/validators/heatmap/_xperiod0.py index 9b3dcca080..a06570bea9 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_xperiod0.py +++ b/packages/python/plotly/plotly/validators/heatmap/_xperiod0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xperiod0", parent_name="heatmap", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"xtype": "scaled"}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_xperiodalignment.py b/packages/python/plotly/plotly/validators/heatmap/_xperiodalignment.py index 3336124e37..b813546e86 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_xperiodalignment.py +++ b/packages/python/plotly/plotly/validators/heatmap/_xperiodalignment.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="xperiodalignment", parent_name="heatmap", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"xtype": "scaled"}), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["start", "middle", "end"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_xsrc.py b/packages/python/plotly/plotly/validators/heatmap/_xsrc.py index 0eb47e7d27..dc879d8afd 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_xsrc.py +++ b/packages/python/plotly/plotly/validators/heatmap/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_xtype.py b/packages/python/plotly/plotly/validators/heatmap/_xtype.py index 0968ba364f..3813935fa5 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_xtype.py +++ b/packages/python/plotly/plotly/validators/heatmap/_xtype.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xtype", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["array", "scaled"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_y.py b/packages/python/plotly/plotly/validators/heatmap/_y.py index 2e6853bd4f..012cee831b 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_y.py +++ b/packages/python/plotly/plotly/validators/heatmap/_y.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="y", parent_name="heatmap", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), implied_edits=kwargs.pop("implied_edits", {"ytype": "array"}), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_y0.py b/packages/python/plotly/plotly/validators/heatmap/_y0.py index 8312c47ef0..47dffbe1f6 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_y0.py +++ b/packages/python/plotly/plotly/validators/heatmap/_y0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="y0", parent_name="heatmap", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), implied_edits=kwargs.pop("implied_edits", {"ytype": "scaled"}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_yaxis.py b/packages/python/plotly/plotly/validators/heatmap/_yaxis.py index 805592cdd2..296c4b7328 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_yaxis.py +++ b/packages/python/plotly/plotly/validators/heatmap/_yaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="yaxis", parent_name="heatmap", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "y"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_ycalendar.py b/packages/python/plotly/plotly/validators/heatmap/_ycalendar.py index d7cb0ebf46..20e70443e9 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_ycalendar.py +++ b/packages/python/plotly/plotly/validators/heatmap/_ycalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ycalendar", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/heatmap/_ygap.py b/packages/python/plotly/plotly/validators/heatmap/_ygap.py index 8fddc22a98..daf26a8598 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_ygap.py +++ b/packages/python/plotly/plotly/validators/heatmap/_ygap.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ygap", parent_name="heatmap", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_yhoverformat.py b/packages/python/plotly/plotly/validators/heatmap/_yhoverformat.py new file mode 100644 index 0000000000..9d46bb32be --- /dev/null +++ b/packages/python/plotly/plotly/validators/heatmap/_yhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class YhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="yhoverformat", parent_name="heatmap", **kwargs): + super(YhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_yperiod.py b/packages/python/plotly/plotly/validators/heatmap/_yperiod.py index b2e65e7d1e..a81e52697a 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_yperiod.py +++ b/packages/python/plotly/plotly/validators/heatmap/_yperiod.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="yperiod", parent_name="heatmap", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"ytype": "scaled"}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_yperiod0.py b/packages/python/plotly/plotly/validators/heatmap/_yperiod0.py index 3f93a56215..24d0c31376 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_yperiod0.py +++ b/packages/python/plotly/plotly/validators/heatmap/_yperiod0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="yperiod0", parent_name="heatmap", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"ytype": "scaled"}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_yperiodalignment.py b/packages/python/plotly/plotly/validators/heatmap/_yperiodalignment.py index 668909ef85..a450c9bf67 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_yperiodalignment.py +++ b/packages/python/plotly/plotly/validators/heatmap/_yperiodalignment.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="yperiodalignment", parent_name="heatmap", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"ytype": "scaled"}), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["start", "middle", "end"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_ysrc.py b/packages/python/plotly/plotly/validators/heatmap/_ysrc.py index 61d8d6438b..2a7489ee4b 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_ysrc.py +++ b/packages/python/plotly/plotly/validators/heatmap/_ysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ysrc", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_ytype.py b/packages/python/plotly/plotly/validators/heatmap/_ytype.py index e684ea1a07..c88331cb60 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_ytype.py +++ b/packages/python/plotly/plotly/validators/heatmap/_ytype.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ytype", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["array", "scaled"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_z.py b/packages/python/plotly/plotly/validators/heatmap/_z.py index 751e0d6f6e..0367bdfc94 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_z.py +++ b/packages/python/plotly/plotly/validators/heatmap/_z.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="z", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_zauto.py b/packages/python/plotly/plotly/validators/heatmap/_zauto.py index aeb64dee4c..941f2b2435 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_zauto.py +++ b/packages/python/plotly/plotly/validators/heatmap/_zauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zauto", parent_name="heatmap", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_zhoverformat.py b/packages/python/plotly/plotly/validators/heatmap/_zhoverformat.py index 4fd03c3893..62d6ca31df 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_zhoverformat.py +++ b/packages/python/plotly/plotly/validators/heatmap/_zhoverformat.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="zhoverformat", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_zmax.py b/packages/python/plotly/plotly/validators/heatmap/_zmax.py index 2fff4f9229..d477cd74ac 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_zmax.py +++ b/packages/python/plotly/plotly/validators/heatmap/_zmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmax", parent_name="heatmap", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"zauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_zmid.py b/packages/python/plotly/plotly/validators/heatmap/_zmid.py index 3e3e864f94..6f85d061cb 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_zmid.py +++ b/packages/python/plotly/plotly/validators/heatmap/_zmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmid", parent_name="heatmap", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_zmin.py b/packages/python/plotly/plotly/validators/heatmap/_zmin.py index a605d2b60c..5a12e08511 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_zmin.py +++ b/packages/python/plotly/plotly/validators/heatmap/_zmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmin", parent_name="heatmap", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"zauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_zsmooth.py b/packages/python/plotly/plotly/validators/heatmap/_zsmooth.py index b027c91542..b20b12aaf3 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_zsmooth.py +++ b/packages/python/plotly/plotly/validators/heatmap/_zsmooth.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="zsmooth", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fast", "best", False]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/_zsrc.py b/packages/python/plotly/plotly/validators/heatmap/_zsrc.py index 5638be3234..f574e34f29 100644 --- a/packages/python/plotly/plotly/validators/heatmap/_zsrc.py +++ b/packages/python/plotly/plotly/validators/heatmap/_zsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="zsrc", parent_name="heatmap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/__init__.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_bgcolor.py index 326ba33fe9..470156a1c0 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_bgcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="bgcolor", parent_name="heatmap.colorbar", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_bordercolor.py index fca79bb1b1..eba508e65a 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_borderwidth.py index 9ef0274a10..9ac09ab98e 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_dtick.py index 7257977e23..5c8b67945c 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_dtick.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="dtick", parent_name="heatmap.colorbar", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_exponentformat.py index 511c468ffd..adef160827 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_exponentformat.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_len.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_len.py index 6ed4427963..b08a21681b 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_len.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="len", parent_name="heatmap.colorbar", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_lenmode.py index c09079394d..efd026f40b 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_lenmode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="lenmode", parent_name="heatmap.colorbar", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_minexponent.py index 460d299358..b129c63360 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_nticks.py index 7f14d51aef..7e3bbe0efd 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_nticks.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="nticks", parent_name="heatmap.colorbar", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_outlinecolor.py index 626971c71a..d0d4a8824d 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_outlinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_outlinewidth.py index 6084242493..aebff0fbef 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_outlinewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_separatethousands.py index 052a1e1b2e..de1cd8c74e 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_separatethousands.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_showexponent.py index df72d8d9e9..2d367c92df 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_showticklabels.py index 224331f724..39bf09b255 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_showticklabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_showtickprefix.py index eb77e0c94d..553140f21a 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_showtickprefix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_showticksuffix.py index 0f48994a16..29b5e63431 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_showticksuffix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_thickness.py index af5c95c77e..0e5f79c3ad 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_thicknessmode.py index 1fcaa0f4d1..9900acf8d1 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_thicknessmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_tick0.py index 4dc008996a..8c8b6e4d20 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_tick0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="tick0", parent_name="heatmap.colorbar", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickangle.py index 3626516c88..e239a8fb6d 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickcolor.py index 5686e7eb97..ed43396e5b 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickformat.py index 12637c834a..80379d38a7 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..16eb30c7ee --- /dev/null +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticklabeloverflow.py @@ -0,0 +1,14 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, plotly_name="ticklabeloverflow", parent_name="heatmap.colorbar", **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "colorbars"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticklabelposition.py index 73275f2ee8..412153e2a6 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticklabelposition.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticklen.py index d80fea1ab4..cf37c50538 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticklen.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ticklen", parent_name="heatmap.colorbar", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickmode.py index a9954e596e..ec9e13ed14 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickprefix.py index f83d7dc1ad..a00e11acb1 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticks.py index ee874bc775..41cc40e538 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticks.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ticks", parent_name="heatmap.colorbar", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticksuffix.py index d559201226..bafc5376a4 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticktext.py index 390834c344..e0bd29ceb1 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticktextsrc.py index 7eb5c825cf..6339e97912 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickvals.py index 8efe577e4d..3ffaaaf7b4 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickvalssrc.py index 05c7e1d936..8cc6faafd7 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickwidth.py index 0eae3bd579..3102ba66f7 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_x.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_x.py index c2ce4b6e97..bdb02d320c 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_x.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="x", parent_name="heatmap.colorbar", **kwargs): edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_xanchor.py index 90c767d3b5..fb716283c4 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_xanchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xanchor", parent_name="heatmap.colorbar", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_xpad.py index 1202db4ba3..77268e856e 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_xpad.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xpad", parent_name="heatmap.colorbar", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_y.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_y.py index 9866f40b6c..f045eaf8e4 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_y.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="y", parent_name="heatmap.colorbar", **kwargs): edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_yanchor.py index 4f2cec823e..f936daee11 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_yanchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="yanchor", parent_name="heatmap.colorbar", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/_ypad.py index 719ce0fd09..883a102831 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/_ypad.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ypad", parent_name="heatmap.colorbar", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/tickfont/_color.py index a60501ca58..4d298ba24e 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/tickfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/tickfont/_family.py index 1ca9d8917f..f2b51d32b5 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/tickfont/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/tickfont/_size.py index 7a7b93763d..9059ac42b8 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/tickfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/tickformatstop/_dtickrange.py index 6d433020f7..82b1ba432c 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "colorbars"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/tickformatstop/_enabled.py index a7d986a153..5b4471eebb 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/tickformatstop/_name.py index eb4bbcd2e5..99d390938c 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/tickformatstop/_templateitemname.py index 15250c90f7..9128179ad5 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/tickformatstop/_value.py index 3c942d0f92..42dcb11682 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/title/_side.py index be66e8dc30..9254cdea74 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/title/_side.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/title/_text.py index d2939e0d51..3db8106389 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/title/font/_color.py index b487048b01..9b6ec11479 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/title/font/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/title/font/_family.py index 751e7f861a..d2fb249a02 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/title/font/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/heatmap/colorbar/title/font/_size.py index 72a9487474..81f2119efe 100644 --- a/packages/python/plotly/plotly/validators/heatmap/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/heatmap/colorbar/title/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_align.py index 88a4f8a8fe..4ad4cc1679 100644 --- a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_align.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="align", parent_name="heatmap.hoverlabel", **kwar parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_alignsrc.py index 48d20fc8d7..92e34c0082 100644 --- a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_bgcolor.py index 5f7f29e6d5..8938ccac40 100644 --- a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_bgcolorsrc.py index 0796802752..5288fc3cbe 100644 --- a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_bordercolor.py index 06f011a672..102347ecd3 100644 --- a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_bordercolorsrc.py index b346781f6b..fe9cd050ee 100644 --- a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_bordercolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_namelength.py index f7bc4f2af6..ce1ac7d3a3 100644 --- a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_namelengthsrc.py index ca2bd0e7b5..e1595d033c 100644 --- a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/font/_color.py index 402134d3ee..819562c1a5 100644 --- a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/font/_colorsrc.py index 3e9a40dc46..e08cf9f6bb 100644 --- a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/font/_family.py index 976ee2d8bc..841686e106 100644 --- a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/font/_familysrc.py index 0c57c0fc0f..e04306f11b 100644 --- a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/font/_size.py index 964335a38a..990efd78bc 100644 --- a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/font/_sizesrc.py index 697ab2361b..3343dab48e 100644 --- a/packages/python/plotly/plotly/validators/heatmap/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/heatmap/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/heatmap/stream/_maxpoints.py index 9511c4ce22..55523db96e 100644 --- a/packages/python/plotly/plotly/validators/heatmap/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/heatmap/stream/_maxpoints.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="maxpoints", parent_name="heatmap.stream", **kwar edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmap/stream/_token.py b/packages/python/plotly/plotly/validators/heatmap/stream/_token.py index 000f59a706..a05d709eb6 100644 --- a/packages/python/plotly/plotly/validators/heatmap/stream/_token.py +++ b/packages/python/plotly/plotly/validators/heatmap/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="heatmap.stream", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_autocolorscale.py b/packages/python/plotly/plotly/validators/heatmapgl/_autocolorscale.py index dfc9aef7cb..7e7bf61e58 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_autocolorscale.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="autocolorscale", parent_name="heatmapgl", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_coloraxis.py b/packages/python/plotly/plotly/validators/heatmapgl/_coloraxis.py index aa9553092d..b5bb1f4f82 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_coloraxis.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="coloraxis", parent_name="heatmapgl", **kwargs): dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_colorbar.py b/packages/python/plotly/plotly/validators/heatmapgl/_colorbar.py index edb03a382b..48500bed77 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_colorbar.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_colorbar.py @@ -147,6 +147,12 @@ def __init__(self, plotly_name="colorbar", parent_name="heatmapgl", **kwargs): a.heatmapgl.colorbar.tickformatstopdefaults), sets the default property values to use for elements of heatmapgl.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_colorscale.py b/packages/python/plotly/plotly/validators/heatmapgl/_colorscale.py index 858ab3e921..250a80aebf 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_colorscale.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_colorscale.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="colorscale", parent_name="heatmapgl", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_customdata.py b/packages/python/plotly/plotly/validators/heatmapgl/_customdata.py index b16d3d3d5b..7f6d4723e6 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_customdata.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="heatmapgl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_customdatasrc.py b/packages/python/plotly/plotly/validators/heatmapgl/_customdatasrc.py index ffc09ce2ac..1d458898e8 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="heatmapgl", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_dx.py b/packages/python/plotly/plotly/validators/heatmapgl/_dx.py index 61a4436aec..8b8be61530 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_dx.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_dx.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="dx", parent_name="heatmapgl", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"xtype": "scaled"}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_dy.py b/packages/python/plotly/plotly/validators/heatmapgl/_dy.py index 6e39b405a0..c68a15a0d8 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_dy.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_dy.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="dy", parent_name="heatmapgl", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"ytype": "scaled"}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_hoverinfo.py b/packages/python/plotly/plotly/validators/heatmapgl/_hoverinfo.py index 70f8c46584..b850e4bbf2 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="heatmapgl", **kwargs): edit_type=kwargs.pop("edit_type", "none"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["x", "y", "z", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/heatmapgl/_hoverinfosrc.py index d23c80fec1..b0db0c7ddf 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="heatmapgl", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_ids.py b/packages/python/plotly/plotly/validators/heatmapgl/_ids.py index 54e9e024d9..41f3352081 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_ids.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="heatmapgl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_idssrc.py b/packages/python/plotly/plotly/validators/heatmapgl/_idssrc.py index 46d806eaeb..bd9cf878b8 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_idssrc.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="heatmapgl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_meta.py b/packages/python/plotly/plotly/validators/heatmapgl/_meta.py index a579e277af..8a5414da9f 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_meta.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="heatmapgl", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_metasrc.py b/packages/python/plotly/plotly/validators/heatmapgl/_metasrc.py index 46a30a0c96..7c0995ab84 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_metasrc.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="heatmapgl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_name.py b/packages/python/plotly/plotly/validators/heatmapgl/_name.py index 59507c9a08..faec15a656 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_name.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="heatmapgl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_opacity.py b/packages/python/plotly/plotly/validators/heatmapgl/_opacity.py index 86a1e2f3aa..0b156cfafe 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_opacity.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="heatmapgl", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_reversescale.py b/packages/python/plotly/plotly/validators/heatmapgl/_reversescale.py index 50e4a01747..79b8a4f32c 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_reversescale.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_reversescale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="reversescale", parent_name="heatmapgl", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_showscale.py b/packages/python/plotly/plotly/validators/heatmapgl/_showscale.py index e0340999a9..27a382da66 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_showscale.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_showscale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showscale", parent_name="heatmapgl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_text.py b/packages/python/plotly/plotly/validators/heatmapgl/_text.py index 416859ee6f..86eddb1e17 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_text.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_text.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="text", parent_name="heatmapgl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_textsrc.py b/packages/python/plotly/plotly/validators/heatmapgl/_textsrc.py index 215f5c28e4..b5790f51bd 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_textsrc.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="heatmapgl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_transpose.py b/packages/python/plotly/plotly/validators/heatmapgl/_transpose.py index 3b29d4f18a..3d6b8fe7ab 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_transpose.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_transpose.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="transpose", parent_name="heatmapgl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_uid.py b/packages/python/plotly/plotly/validators/heatmapgl/_uid.py index 1e23049cb7..eef21fe397 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_uid.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="heatmapgl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_uirevision.py b/packages/python/plotly/plotly/validators/heatmapgl/_uirevision.py index db326c7863..fdb27acbc2 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_uirevision.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="heatmapgl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_visible.py b/packages/python/plotly/plotly/validators/heatmapgl/_visible.py index 450e931526..ac3e1f3038 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_visible.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="heatmapgl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_x.py b/packages/python/plotly/plotly/validators/heatmapgl/_x.py index 70c7c83111..c7391f1a52 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_x.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_x.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="x", parent_name="heatmapgl", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"xtype": "array"}), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_x0.py b/packages/python/plotly/plotly/validators/heatmapgl/_x0.py index c3b9740c22..2e267c4550 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_x0.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_x0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="x0", parent_name="heatmapgl", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"xtype": "scaled"}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_xaxis.py b/packages/python/plotly/plotly/validators/heatmapgl/_xaxis.py index 47149a6989..d0635a8856 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_xaxis.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_xaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xaxis", parent_name="heatmapgl", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "x"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_xsrc.py b/packages/python/plotly/plotly/validators/heatmapgl/_xsrc.py index f7f390d538..4490c15ce1 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_xsrc.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="heatmapgl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_xtype.py b/packages/python/plotly/plotly/validators/heatmapgl/_xtype.py index d5b902ff65..de6f852bdf 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_xtype.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_xtype.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xtype", parent_name="heatmapgl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["array", "scaled"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_y.py b/packages/python/plotly/plotly/validators/heatmapgl/_y.py index 04fa76e916..ab7512c797 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_y.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_y.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="y", parent_name="heatmapgl", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"ytype": "array"}), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_y0.py b/packages/python/plotly/plotly/validators/heatmapgl/_y0.py index 14964b2688..d85b4e8c30 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_y0.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_y0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="y0", parent_name="heatmapgl", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"ytype": "scaled"}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_yaxis.py b/packages/python/plotly/plotly/validators/heatmapgl/_yaxis.py index e059b8cba1..c87731656f 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_yaxis.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_yaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="yaxis", parent_name="heatmapgl", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "y"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_ysrc.py b/packages/python/plotly/plotly/validators/heatmapgl/_ysrc.py index 1c7fa15010..2a0d1915a9 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_ysrc.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_ysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ysrc", parent_name="heatmapgl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_ytype.py b/packages/python/plotly/plotly/validators/heatmapgl/_ytype.py index ac148b9318..a0cc26245e 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_ytype.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_ytype.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ytype", parent_name="heatmapgl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["array", "scaled"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_z.py b/packages/python/plotly/plotly/validators/heatmapgl/_z.py index 775747785b..c776cc959b 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_z.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_z.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="z", parent_name="heatmapgl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_zauto.py b/packages/python/plotly/plotly/validators/heatmapgl/_zauto.py index 0ec5dd65bd..a56dde3059 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_zauto.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_zauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zauto", parent_name="heatmapgl", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_zmax.py b/packages/python/plotly/plotly/validators/heatmapgl/_zmax.py index 43ba2680b7..1fe0b30314 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_zmax.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_zmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmax", parent_name="heatmapgl", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"zauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_zmid.py b/packages/python/plotly/plotly/validators/heatmapgl/_zmid.py index c84faee7b6..c89e3c1300 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_zmid.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_zmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmid", parent_name="heatmapgl", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_zmin.py b/packages/python/plotly/plotly/validators/heatmapgl/_zmin.py index 4435191a7f..46918a35c4 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_zmin.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_zmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmin", parent_name="heatmapgl", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"zauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_zsmooth.py b/packages/python/plotly/plotly/validators/heatmapgl/_zsmooth.py index a30c543423..3ef5b37c21 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_zsmooth.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_zsmooth.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="zsmooth", parent_name="heatmapgl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fast", False]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/_zsrc.py b/packages/python/plotly/plotly/validators/heatmapgl/_zsrc.py index f8cbaefac2..822b3407bb 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/_zsrc.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/_zsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="zsrc", parent_name="heatmapgl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/__init__.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_bgcolor.py index 0de7731719..4fbdd0d7dc 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_bordercolor.py index 6848b14952..627d09c8af 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_borderwidth.py index e832c11348..2fcbecd1a3 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_dtick.py index cb364e3666..9ba7061924 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_dtick.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="dtick", parent_name="heatmapgl.colorbar", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_exponentformat.py index 953f43f6f1..c87933b262 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_exponentformat.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_len.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_len.py index ef8a042f09..ebf97f58ad 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_len.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="len", parent_name="heatmapgl.colorbar", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_lenmode.py index 77a8536c2f..23db6c63bb 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_lenmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_minexponent.py index 33c9d73b47..41c853a7f5 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_nticks.py index 03a1be9c70..2a840d31af 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_outlinecolor.py index d37bce196d..c19a832236 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_outlinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_outlinewidth.py index 3a4ae188c0..7994fc0a48 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_outlinewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_separatethousands.py index 9bcfbe00c7..427cf273fd 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_showexponent.py index d26825ad0a..13eff58420 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_showticklabels.py index 53b41c5da0..9640a45054 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_showticklabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_showtickprefix.py index 9e20963b30..febe3230cb 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_showtickprefix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_showticksuffix.py index 592017a768..9c6f9cefe9 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_showticksuffix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_thickness.py index b5af33e783..97d5476ea6 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_thicknessmode.py index 97b1aa47b0..3d42e68400 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_thicknessmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tick0.py index d2eac87eae..fd6a355c3d 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tick0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="tick0", parent_name="heatmapgl.colorbar", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickangle.py index 1e6887ef61..b1d3669dc0 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickcolor.py index d18a63f854..bf841c3a4f 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickformat.py index 7ee78cd8bd..a0aaa92827 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..c952b3a5bf --- /dev/null +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="heatmapgl.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticklabelposition.py index 63c53b2b98..fb04df0a77 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticklen.py index c5302d917c..f0df2534d4 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickmode.py index b0c6a380be..dbd3e87609 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickprefix.py index 71a9ab9308..5b3a168e22 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticks.py index b2ecda3efc..6972433d53 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticks.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ticks", parent_name="heatmapgl.colorbar", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticksuffix.py index 777243006b..1445bceeec 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticktext.py index 29f4b921eb..a30b92de82 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticktextsrc.py index 1112fca9e5..c3bfba11fd 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickvals.py index d27d853986..947a34fd6a 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickvalssrc.py index 4f55ac11cc..49883c442e 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickwidth.py index 58b4eca2b4..ccc85477e4 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_x.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_x.py index 837e0cdc39..0f12631f64 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_x.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="x", parent_name="heatmapgl.colorbar", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_xanchor.py index 508385e8d9..36534ca8a0 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_xpad.py index f62cbe0488..1fc8e2e618 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_xpad.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xpad", parent_name="heatmapgl.colorbar", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_y.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_y.py index daaa2a9f5c..2cf869edbe 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_y.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="y", parent_name="heatmapgl.colorbar", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_yanchor.py index d5ddae6eaf..f7b7ce0a56 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ypad.py index bb5627fe12..b1d9fe3981 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/_ypad.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ypad", parent_name="heatmapgl.colorbar", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickfont/_color.py index 242bcbb867..fe66312ab4 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickfont/_family.py index a463d451f1..ba495312ec 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickfont/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickfont/_size.py index 9373d5ae26..f1456e316c 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickformatstop/_dtickrange.py index b981cfdee6..997de10588 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickformatstop/_enabled.py index a356e8cff3..e7f6ca7c51 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickformatstop/_name.py index cfd526ec4e..949f2ff169 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickformatstop/_templateitemname.py index c3287fd5dc..5cb314ab8d 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickformatstop/_value.py index 35da20abf0..8e892edc2e 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/title/_side.py index 7a956ae5b4..badceb7156 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/title/_side.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/title/_text.py index f59db8c1d8..75b66b35b5 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/title/font/_color.py index d8396ce53c..380dc7b11b 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/title/font/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/title/font/_family.py index ae7df34cdf..1c887a7ff7 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/title/font/_size.py index 97473187ab..491a069383 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/colorbar/title/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_align.py index ca5ea6d445..d79884dd2a 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_align.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_alignsrc.py index 42e93bedd3..6b2e292294 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_bgcolor.py index 98ba9b1c49..42496aad64 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_bgcolorsrc.py index a09d07223b..4890cd1cd5 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_bordercolor.py index 68eb44bdcb..7978352e4a 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_bordercolorsrc.py index 38ee09a6f8..e1dbcc8004 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_bordercolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_namelength.py index fdd9d616da..0636c1b4cb 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_namelengthsrc.py index 9ba10f699e..9d78d5ad1e 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/font/_color.py index 71d57848df..4a6da1928f 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/font/_colorsrc.py index 22b1eae3e5..54ea8417b4 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/font/_family.py index f00c62b444..f978a23e52 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/font/_familysrc.py index 8b498b35bc..bf483af62e 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/font/_size.py index 168026b4b1..944442b69b 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/font/_sizesrc.py index f673903a70..4f95e8711f 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/heatmapgl/stream/_maxpoints.py index f8774dd8d4..0dc2cceb9a 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/heatmapgl/stream/_token.py b/packages/python/plotly/plotly/validators/heatmapgl/stream/_token.py index b863616a21..440374a129 100644 --- a/packages/python/plotly/plotly/validators/heatmapgl/stream/_token.py +++ b/packages/python/plotly/plotly/validators/heatmapgl/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="heatmapgl.stream", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/__init__.py b/packages/python/plotly/plotly/validators/histogram/__init__.py index b673cf3b1e..6ddfabdb40 100644 --- a/packages/python/plotly/plotly/validators/histogram/__init__.py +++ b/packages/python/plotly/plotly/validators/histogram/__init__.py @@ -2,11 +2,13 @@ if sys.version_info < (3, 7): from ._ysrc import YsrcValidator + from ._yhoverformat import YhoverformatValidator from ._ycalendar import YcalendarValidator from ._ybins import YbinsValidator from ._yaxis import YaxisValidator from ._y import YValidator from ._xsrc import XsrcValidator + from ._xhoverformat import XhoverformatValidator from ._xcalendar import XcalendarValidator from ._xbins import XbinsValidator from ._xaxis import XaxisValidator @@ -59,11 +61,13 @@ [], [ "._ysrc.YsrcValidator", + "._yhoverformat.YhoverformatValidator", "._ycalendar.YcalendarValidator", "._ybins.YbinsValidator", "._yaxis.YaxisValidator", "._y.YValidator", "._xsrc.XsrcValidator", + "._xhoverformat.XhoverformatValidator", "._xcalendar.XcalendarValidator", "._xbins.XbinsValidator", "._xaxis.XaxisValidator", diff --git a/packages/python/plotly/plotly/validators/histogram/_alignmentgroup.py b/packages/python/plotly/plotly/validators/histogram/_alignmentgroup.py index 1fba90141e..9f66ff0a13 100644 --- a/packages/python/plotly/plotly/validators/histogram/_alignmentgroup.py +++ b/packages/python/plotly/plotly/validators/histogram/_alignmentgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="alignmentgroup", parent_name="histogram", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_autobinx.py b/packages/python/plotly/plotly/validators/histogram/_autobinx.py index 3cb35bd082..5c706af2a0 100644 --- a/packages/python/plotly/plotly/validators/histogram/_autobinx.py +++ b/packages/python/plotly/plotly/validators/histogram/_autobinx.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="autobinx", parent_name="histogram", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_autobiny.py b/packages/python/plotly/plotly/validators/histogram/_autobiny.py index 5c114509b6..08b2e9f9e2 100644 --- a/packages/python/plotly/plotly/validators/histogram/_autobiny.py +++ b/packages/python/plotly/plotly/validators/histogram/_autobiny.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="autobiny", parent_name="histogram", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_bingroup.py b/packages/python/plotly/plotly/validators/histogram/_bingroup.py index 33fb5ece7c..38183613d6 100644 --- a/packages/python/plotly/plotly/validators/histogram/_bingroup.py +++ b/packages/python/plotly/plotly/validators/histogram/_bingroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="bingroup", parent_name="histogram", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_customdata.py b/packages/python/plotly/plotly/validators/histogram/_customdata.py index 608ca111b2..ecd403e688 100644 --- a/packages/python/plotly/plotly/validators/histogram/_customdata.py +++ b/packages/python/plotly/plotly/validators/histogram/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="histogram", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_customdatasrc.py b/packages/python/plotly/plotly/validators/histogram/_customdatasrc.py index 8a2885647d..01eabb1c41 100644 --- a/packages/python/plotly/plotly/validators/histogram/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/histogram/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="histogram", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_histfunc.py b/packages/python/plotly/plotly/validators/histogram/_histfunc.py index 8e0cd7ad6d..886d40e399 100644 --- a/packages/python/plotly/plotly/validators/histogram/_histfunc.py +++ b/packages/python/plotly/plotly/validators/histogram/_histfunc.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="histfunc", parent_name="histogram", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["count", "sum", "avg", "min", "max"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_histnorm.py b/packages/python/plotly/plotly/validators/histogram/_histnorm.py index fa2a664c9a..f39a17f852 100644 --- a/packages/python/plotly/plotly/validators/histogram/_histnorm.py +++ b/packages/python/plotly/plotly/validators/histogram/_histnorm.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="histnorm", parent_name="histogram", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", ["", "percent", "probability", "density", "probability density"], diff --git a/packages/python/plotly/plotly/validators/histogram/_hoverinfo.py b/packages/python/plotly/plotly/validators/histogram/_hoverinfo.py index 6e7763980f..c6584f20fd 100644 --- a/packages/python/plotly/plotly/validators/histogram/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/histogram/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="histogram", **kwargs): edit_type=kwargs.pop("edit_type", "none"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["x", "y", "z", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/histogram/_hoverinfosrc.py index 28e36cf495..b9b1248eb5 100644 --- a/packages/python/plotly/plotly/validators/histogram/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/histogram/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="histogram", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_hovertemplate.py b/packages/python/plotly/plotly/validators/histogram/_hovertemplate.py index ff813ef410..626daa312c 100644 --- a/packages/python/plotly/plotly/validators/histogram/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/histogram/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="histogram", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/histogram/_hovertemplatesrc.py index 8cbebc518f..c6c7975fb4 100644 --- a/packages/python/plotly/plotly/validators/histogram/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/histogram/_hovertemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_hovertext.py b/packages/python/plotly/plotly/validators/histogram/_hovertext.py index 2e8ba912fc..795582e15b 100644 --- a/packages/python/plotly/plotly/validators/histogram/_hovertext.py +++ b/packages/python/plotly/plotly/validators/histogram/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="histogram", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_hovertextsrc.py b/packages/python/plotly/plotly/validators/histogram/_hovertextsrc.py index ebba5b4c4d..e83381dd44 100644 --- a/packages/python/plotly/plotly/validators/histogram/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/histogram/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="histogram", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_ids.py b/packages/python/plotly/plotly/validators/histogram/_ids.py index dc461cd4d4..6d143267ad 100644 --- a/packages/python/plotly/plotly/validators/histogram/_ids.py +++ b/packages/python/plotly/plotly/validators/histogram/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="histogram", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_idssrc.py b/packages/python/plotly/plotly/validators/histogram/_idssrc.py index b335795fc2..60ef64fcac 100644 --- a/packages/python/plotly/plotly/validators/histogram/_idssrc.py +++ b/packages/python/plotly/plotly/validators/histogram/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="histogram", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_legendgroup.py b/packages/python/plotly/plotly/validators/histogram/_legendgroup.py index e5b8453e6f..06b1df015b 100644 --- a/packages/python/plotly/plotly/validators/histogram/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/histogram/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="histogram", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_marker.py b/packages/python/plotly/plotly/validators/histogram/_marker.py index ec8cee106a..0e67e0a14f 100644 --- a/packages/python/plotly/plotly/validators/histogram/_marker.py +++ b/packages/python/plotly/plotly/validators/histogram/_marker.py @@ -95,6 +95,10 @@ def __init__(self, plotly_name="marker", parent_name="histogram", **kwargs): opacitysrc Sets the source reference on Chart Studio Cloud for opacity . + pattern + :class:`plotly.graph_objects.histogram.marker.P + attern` instance or dict with compatible + properties reversescale Reverses the color mapping if true. Has an effect only if in `marker.color`is set to a diff --git a/packages/python/plotly/plotly/validators/histogram/_meta.py b/packages/python/plotly/plotly/validators/histogram/_meta.py index 8edc0db2ce..74d2e038c4 100644 --- a/packages/python/plotly/plotly/validators/histogram/_meta.py +++ b/packages/python/plotly/plotly/validators/histogram/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="histogram", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_metasrc.py b/packages/python/plotly/plotly/validators/histogram/_metasrc.py index 3449f0c588..db30c8f556 100644 --- a/packages/python/plotly/plotly/validators/histogram/_metasrc.py +++ b/packages/python/plotly/plotly/validators/histogram/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="histogram", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_name.py b/packages/python/plotly/plotly/validators/histogram/_name.py index 7aa7b8cb09..1eb69f5e40 100644 --- a/packages/python/plotly/plotly/validators/histogram/_name.py +++ b/packages/python/plotly/plotly/validators/histogram/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="histogram", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_nbinsx.py b/packages/python/plotly/plotly/validators/histogram/_nbinsx.py index c4066e3bd7..506582d5ba 100644 --- a/packages/python/plotly/plotly/validators/histogram/_nbinsx.py +++ b/packages/python/plotly/plotly/validators/histogram/_nbinsx.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="nbinsx", parent_name="histogram", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_nbinsy.py b/packages/python/plotly/plotly/validators/histogram/_nbinsy.py index 0617699189..fd0316c72a 100644 --- a/packages/python/plotly/plotly/validators/histogram/_nbinsy.py +++ b/packages/python/plotly/plotly/validators/histogram/_nbinsy.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="nbinsy", parent_name="histogram", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_offsetgroup.py b/packages/python/plotly/plotly/validators/histogram/_offsetgroup.py index d60cb9195a..807fcb38e6 100644 --- a/packages/python/plotly/plotly/validators/histogram/_offsetgroup.py +++ b/packages/python/plotly/plotly/validators/histogram/_offsetgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="offsetgroup", parent_name="histogram", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_opacity.py b/packages/python/plotly/plotly/validators/histogram/_opacity.py index 649f26c1de..fc7521f3d0 100644 --- a/packages/python/plotly/plotly/validators/histogram/_opacity.py +++ b/packages/python/plotly/plotly/validators/histogram/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="histogram", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_orientation.py b/packages/python/plotly/plotly/validators/histogram/_orientation.py index 27d36fc3e5..ca2a63da60 100644 --- a/packages/python/plotly/plotly/validators/histogram/_orientation.py +++ b/packages/python/plotly/plotly/validators/histogram/_orientation.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="orientation", parent_name="histogram", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["v", "h"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_selectedpoints.py b/packages/python/plotly/plotly/validators/histogram/_selectedpoints.py index b6ca0f3248..99a2cac7a9 100644 --- a/packages/python/plotly/plotly/validators/histogram/_selectedpoints.py +++ b/packages/python/plotly/plotly/validators/histogram/_selectedpoints.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="selectedpoints", parent_name="histogram", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_showlegend.py b/packages/python/plotly/plotly/validators/histogram/_showlegend.py index b9c54d73dd..99c9de8aba 100644 --- a/packages/python/plotly/plotly/validators/histogram/_showlegend.py +++ b/packages/python/plotly/plotly/validators/histogram/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="histogram", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_text.py b/packages/python/plotly/plotly/validators/histogram/_text.py index f808b3ae5b..c9a6e72c5f 100644 --- a/packages/python/plotly/plotly/validators/histogram/_text.py +++ b/packages/python/plotly/plotly/validators/histogram/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="histogram", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_textsrc.py b/packages/python/plotly/plotly/validators/histogram/_textsrc.py index 4a8531c1e1..2b6d187110 100644 --- a/packages/python/plotly/plotly/validators/histogram/_textsrc.py +++ b/packages/python/plotly/plotly/validators/histogram/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="histogram", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_uid.py b/packages/python/plotly/plotly/validators/histogram/_uid.py index f05444b092..84504272de 100644 --- a/packages/python/plotly/plotly/validators/histogram/_uid.py +++ b/packages/python/plotly/plotly/validators/histogram/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="histogram", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_uirevision.py b/packages/python/plotly/plotly/validators/histogram/_uirevision.py index 7f03838614..4460bec377 100644 --- a/packages/python/plotly/plotly/validators/histogram/_uirevision.py +++ b/packages/python/plotly/plotly/validators/histogram/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="histogram", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_visible.py b/packages/python/plotly/plotly/validators/histogram/_visible.py index a14ff3d4a0..4d774d800e 100644 --- a/packages/python/plotly/plotly/validators/histogram/_visible.py +++ b/packages/python/plotly/plotly/validators/histogram/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="histogram", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_x.py b/packages/python/plotly/plotly/validators/histogram/_x.py index 39b34d7c75..231fc40cfb 100644 --- a/packages/python/plotly/plotly/validators/histogram/_x.py +++ b/packages/python/plotly/plotly/validators/histogram/_x.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x", parent_name="histogram", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_xaxis.py b/packages/python/plotly/plotly/validators/histogram/_xaxis.py index c0a061ed6b..ae9f6077aa 100644 --- a/packages/python/plotly/plotly/validators/histogram/_xaxis.py +++ b/packages/python/plotly/plotly/validators/histogram/_xaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xaxis", parent_name="histogram", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "x"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_xcalendar.py b/packages/python/plotly/plotly/validators/histogram/_xcalendar.py index c95eebc537..d2d35f0ba2 100644 --- a/packages/python/plotly/plotly/validators/histogram/_xcalendar.py +++ b/packages/python/plotly/plotly/validators/histogram/_xcalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xcalendar", parent_name="histogram", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/histogram/_xhoverformat.py b/packages/python/plotly/plotly/validators/histogram/_xhoverformat.py new file mode 100644 index 0000000000..fdf8b3d5b7 --- /dev/null +++ b/packages/python/plotly/plotly/validators/histogram/_xhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class XhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="xhoverformat", parent_name="histogram", **kwargs): + super(XhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/histogram/_xsrc.py b/packages/python/plotly/plotly/validators/histogram/_xsrc.py index aac8e40def..32cd0ea103 100644 --- a/packages/python/plotly/plotly/validators/histogram/_xsrc.py +++ b/packages/python/plotly/plotly/validators/histogram/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="histogram", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_y.py b/packages/python/plotly/plotly/validators/histogram/_y.py index 4fbdc2131d..b39772832b 100644 --- a/packages/python/plotly/plotly/validators/histogram/_y.py +++ b/packages/python/plotly/plotly/validators/histogram/_y.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y", parent_name="histogram", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_yaxis.py b/packages/python/plotly/plotly/validators/histogram/_yaxis.py index f9b197fd12..9d4bf9e0f8 100644 --- a/packages/python/plotly/plotly/validators/histogram/_yaxis.py +++ b/packages/python/plotly/plotly/validators/histogram/_yaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="yaxis", parent_name="histogram", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "y"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/_ycalendar.py b/packages/python/plotly/plotly/validators/histogram/_ycalendar.py index e0d83430ab..5bf7d87bf5 100644 --- a/packages/python/plotly/plotly/validators/histogram/_ycalendar.py +++ b/packages/python/plotly/plotly/validators/histogram/_ycalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ycalendar", parent_name="histogram", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/histogram/_yhoverformat.py b/packages/python/plotly/plotly/validators/histogram/_yhoverformat.py new file mode 100644 index 0000000000..d244625ff9 --- /dev/null +++ b/packages/python/plotly/plotly/validators/histogram/_yhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class YhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="yhoverformat", parent_name="histogram", **kwargs): + super(YhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/histogram/_ysrc.py b/packages/python/plotly/plotly/validators/histogram/_ysrc.py index 9a59fd4da0..1ab5a8b867 100644 --- a/packages/python/plotly/plotly/validators/histogram/_ysrc.py +++ b/packages/python/plotly/plotly/validators/histogram/_ysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ysrc", parent_name="histogram", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/cumulative/_currentbin.py b/packages/python/plotly/plotly/validators/histogram/cumulative/_currentbin.py index eb8fc69648..c6c4f79b7d 100644 --- a/packages/python/plotly/plotly/validators/histogram/cumulative/_currentbin.py +++ b/packages/python/plotly/plotly/validators/histogram/cumulative/_currentbin.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["include", "exclude", "half"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/cumulative/_direction.py b/packages/python/plotly/plotly/validators/histogram/cumulative/_direction.py index 4983dc3d60..165903ffc8 100644 --- a/packages/python/plotly/plotly/validators/histogram/cumulative/_direction.py +++ b/packages/python/plotly/plotly/validators/histogram/cumulative/_direction.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["increasing", "decreasing"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/cumulative/_enabled.py b/packages/python/plotly/plotly/validators/histogram/cumulative/_enabled.py index 8f2d9b88cd..1541d4ae3d 100644 --- a/packages/python/plotly/plotly/validators/histogram/cumulative/_enabled.py +++ b/packages/python/plotly/plotly/validators/histogram/cumulative/_enabled.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_x/_array.py b/packages/python/plotly/plotly/validators/histogram/error_x/_array.py index c74078bb7e..5bf378bcc1 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_x/_array.py +++ b/packages/python/plotly/plotly/validators/histogram/error_x/_array.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="array", parent_name="histogram.error_x", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_x/_arrayminus.py b/packages/python/plotly/plotly/validators/histogram/error_x/_arrayminus.py index b51a0fb795..2e7666591a 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_x/_arrayminus.py +++ b/packages/python/plotly/plotly/validators/histogram/error_x/_arrayminus.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_x/_arrayminussrc.py b/packages/python/plotly/plotly/validators/histogram/error_x/_arrayminussrc.py index 0204ab42f9..22a4a10e6a 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_x/_arrayminussrc.py +++ b/packages/python/plotly/plotly/validators/histogram/error_x/_arrayminussrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_x/_arraysrc.py b/packages/python/plotly/plotly/validators/histogram/error_x/_arraysrc.py index d3ff7a09d0..7b0ca714ed 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_x/_arraysrc.py +++ b/packages/python/plotly/plotly/validators/histogram/error_x/_arraysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_x/_color.py b/packages/python/plotly/plotly/validators/histogram/error_x/_color.py index 0c247f5945..def2dcdff1 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_x/_color.py +++ b/packages/python/plotly/plotly/validators/histogram/error_x/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="histogram.error_x", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_x/_copy_ystyle.py b/packages/python/plotly/plotly/validators/histogram/error_x/_copy_ystyle.py index 273df7d2a0..870999aa45 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_x/_copy_ystyle.py +++ b/packages/python/plotly/plotly/validators/histogram/error_x/_copy_ystyle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_x/_symmetric.py b/packages/python/plotly/plotly/validators/histogram/error_x/_symmetric.py index 7e330217c1..30347cc61e 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_x/_symmetric.py +++ b/packages/python/plotly/plotly/validators/histogram/error_x/_symmetric.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_x/_thickness.py b/packages/python/plotly/plotly/validators/histogram/error_x/_thickness.py index 75ee118411..cf2dec19ab 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_x/_thickness.py +++ b/packages/python/plotly/plotly/validators/histogram/error_x/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_x/_traceref.py b/packages/python/plotly/plotly/validators/histogram/error_x/_traceref.py index b6cf5c1e47..2d795f686e 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_x/_traceref.py +++ b/packages/python/plotly/plotly/validators/histogram/error_x/_traceref.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_x/_tracerefminus.py b/packages/python/plotly/plotly/validators/histogram/error_x/_tracerefminus.py index a57e4937e8..c9d3a9910e 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_x/_tracerefminus.py +++ b/packages/python/plotly/plotly/validators/histogram/error_x/_tracerefminus.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_x/_type.py b/packages/python/plotly/plotly/validators/histogram/error_x/_type.py index 12d961d367..4764aec231 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_x/_type.py +++ b/packages/python/plotly/plotly/validators/histogram/error_x/_type.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="type", parent_name="histogram.error_x", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["percent", "constant", "sqrt", "data"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_x/_value.py b/packages/python/plotly/plotly/validators/histogram/error_x/_value.py index 5b2f73ff85..b05649be0a 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_x/_value.py +++ b/packages/python/plotly/plotly/validators/histogram/error_x/_value.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="value", parent_name="histogram.error_x", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_x/_valueminus.py b/packages/python/plotly/plotly/validators/histogram/error_x/_valueminus.py index c45c5ca4fd..3b32b6248a 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_x/_valueminus.py +++ b/packages/python/plotly/plotly/validators/histogram/error_x/_valueminus.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_x/_visible.py b/packages/python/plotly/plotly/validators/histogram/error_x/_visible.py index b1e140d396..fb77a13c80 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_x/_visible.py +++ b/packages/python/plotly/plotly/validators/histogram/error_x/_visible.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_x/_width.py b/packages/python/plotly/plotly/validators/histogram/error_x/_width.py index 8b3e63502f..b6c92c771d 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_x/_width.py +++ b/packages/python/plotly/plotly/validators/histogram/error_x/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="histogram.error_x", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_y/_array.py b/packages/python/plotly/plotly/validators/histogram/error_y/_array.py index 926ecdf397..1962c4cdc9 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_y/_array.py +++ b/packages/python/plotly/plotly/validators/histogram/error_y/_array.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="array", parent_name="histogram.error_y", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_y/_arrayminus.py b/packages/python/plotly/plotly/validators/histogram/error_y/_arrayminus.py index 6efcccdebf..feacf83ff8 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_y/_arrayminus.py +++ b/packages/python/plotly/plotly/validators/histogram/error_y/_arrayminus.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_y/_arrayminussrc.py b/packages/python/plotly/plotly/validators/histogram/error_y/_arrayminussrc.py index d7666e3b3d..3a2f7de102 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_y/_arrayminussrc.py +++ b/packages/python/plotly/plotly/validators/histogram/error_y/_arrayminussrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_y/_arraysrc.py b/packages/python/plotly/plotly/validators/histogram/error_y/_arraysrc.py index 82619c20f7..4987e33bc2 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_y/_arraysrc.py +++ b/packages/python/plotly/plotly/validators/histogram/error_y/_arraysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_y/_color.py b/packages/python/plotly/plotly/validators/histogram/error_y/_color.py index a0a5c59d9d..0d535e106d 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_y/_color.py +++ b/packages/python/plotly/plotly/validators/histogram/error_y/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="histogram.error_y", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_y/_symmetric.py b/packages/python/plotly/plotly/validators/histogram/error_y/_symmetric.py index 7b29961c58..bf3b8dfbad 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_y/_symmetric.py +++ b/packages/python/plotly/plotly/validators/histogram/error_y/_symmetric.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_y/_thickness.py b/packages/python/plotly/plotly/validators/histogram/error_y/_thickness.py index 0c8ee0e2b9..fb235c48d8 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_y/_thickness.py +++ b/packages/python/plotly/plotly/validators/histogram/error_y/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_y/_traceref.py b/packages/python/plotly/plotly/validators/histogram/error_y/_traceref.py index 50e5e26025..6f1cdda0ac 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_y/_traceref.py +++ b/packages/python/plotly/plotly/validators/histogram/error_y/_traceref.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_y/_tracerefminus.py b/packages/python/plotly/plotly/validators/histogram/error_y/_tracerefminus.py index 0128845bbf..c3dbb687cd 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_y/_tracerefminus.py +++ b/packages/python/plotly/plotly/validators/histogram/error_y/_tracerefminus.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_y/_type.py b/packages/python/plotly/plotly/validators/histogram/error_y/_type.py index 921dcf1952..a1ec558282 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_y/_type.py +++ b/packages/python/plotly/plotly/validators/histogram/error_y/_type.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="type", parent_name="histogram.error_y", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["percent", "constant", "sqrt", "data"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_y/_value.py b/packages/python/plotly/plotly/validators/histogram/error_y/_value.py index 675a07da4a..48b99afe3a 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_y/_value.py +++ b/packages/python/plotly/plotly/validators/histogram/error_y/_value.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="value", parent_name="histogram.error_y", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_y/_valueminus.py b/packages/python/plotly/plotly/validators/histogram/error_y/_valueminus.py index c122e4cbb2..7b0dea657f 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_y/_valueminus.py +++ b/packages/python/plotly/plotly/validators/histogram/error_y/_valueminus.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_y/_visible.py b/packages/python/plotly/plotly/validators/histogram/error_y/_visible.py index a240b024a3..7f9b95e701 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_y/_visible.py +++ b/packages/python/plotly/plotly/validators/histogram/error_y/_visible.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/error_y/_width.py b/packages/python/plotly/plotly/validators/histogram/error_y/_width.py index 8e6569a368..a25b070f80 100644 --- a/packages/python/plotly/plotly/validators/histogram/error_y/_width.py +++ b/packages/python/plotly/plotly/validators/histogram/error_y/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="histogram.error_y", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/histogram/hoverlabel/_align.py index 65b67f28df..41f65baef3 100644 --- a/packages/python/plotly/plotly/validators/histogram/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/histogram/hoverlabel/_align.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/histogram/hoverlabel/_alignsrc.py index 8a6677e2fc..16825a8a18 100644 --- a/packages/python/plotly/plotly/validators/histogram/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/histogram/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/histogram/hoverlabel/_bgcolor.py index 0295abca82..e998973c05 100644 --- a/packages/python/plotly/plotly/validators/histogram/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/histogram/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/histogram/hoverlabel/_bgcolorsrc.py index aa0b5b6fc3..b5ab89603d 100644 --- a/packages/python/plotly/plotly/validators/histogram/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/histogram/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/histogram/hoverlabel/_bordercolor.py index aa2a632eeb..d8c4faec0e 100644 --- a/packages/python/plotly/plotly/validators/histogram/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/histogram/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/histogram/hoverlabel/_bordercolorsrc.py index 5cf3c1b53c..123a798cd9 100644 --- a/packages/python/plotly/plotly/validators/histogram/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/histogram/hoverlabel/_bordercolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/histogram/hoverlabel/_namelength.py index d69da5f51b..58fc50bedf 100644 --- a/packages/python/plotly/plotly/validators/histogram/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/histogram/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/histogram/hoverlabel/_namelengthsrc.py index 6fb1c05926..dce427b9df 100644 --- a/packages/python/plotly/plotly/validators/histogram/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/histogram/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/histogram/hoverlabel/font/_color.py index 6453783419..200e963061 100644 --- a/packages/python/plotly/plotly/validators/histogram/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/histogram/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/histogram/hoverlabel/font/_colorsrc.py index 6b0fdcae93..78384212cb 100644 --- a/packages/python/plotly/plotly/validators/histogram/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/histogram/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/histogram/hoverlabel/font/_family.py index db4692d17f..39abf003d1 100644 --- a/packages/python/plotly/plotly/validators/histogram/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/histogram/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/histogram/hoverlabel/font/_familysrc.py index 1224806030..c7ab52171c 100644 --- a/packages/python/plotly/plotly/validators/histogram/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/histogram/hoverlabel/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/histogram/hoverlabel/font/_size.py index dce47df42e..c5a40a7e82 100644 --- a/packages/python/plotly/plotly/validators/histogram/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/histogram/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/histogram/hoverlabel/font/_sizesrc.py index 93bc8c7b58..adb402a95a 100644 --- a/packages/python/plotly/plotly/validators/histogram/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/histogram/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/__init__.py b/packages/python/plotly/plotly/validators/histogram/marker/__init__.py index bcbbad4466..f745b15a50 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/__init__.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/__init__.py @@ -3,6 +3,7 @@ if sys.version_info < (3, 7): from ._showscale import ShowscaleValidator from ._reversescale import ReversescaleValidator + from ._pattern import PatternValidator from ._opacitysrc import OpacitysrcValidator from ._opacity import OpacityValidator from ._line import LineValidator @@ -25,6 +26,7 @@ [ "._showscale.ShowscaleValidator", "._reversescale.ReversescaleValidator", + "._pattern.PatternValidator", "._opacitysrc.OpacitysrcValidator", "._opacity.OpacityValidator", "._line.LineValidator", diff --git a/packages/python/plotly/plotly/validators/histogram/marker/_autocolorscale.py b/packages/python/plotly/plotly/validators/histogram/marker/_autocolorscale.py index 8ea531c028..fb5d5346b9 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/_cauto.py b/packages/python/plotly/plotly/validators/histogram/marker/_cauto.py index 7582066e69..78de2f6822 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/_cauto.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/_cauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cauto", parent_name="histogram.marker", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/_cmax.py b/packages/python/plotly/plotly/validators/histogram/marker/_cmax.py index 536414284d..5039b90acf 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/_cmax.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="histogram.marker", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/_cmid.py b/packages/python/plotly/plotly/validators/histogram/marker/_cmid.py index d9a87b38e7..eeaf426145 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/_cmid.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="histogram.marker", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/_cmin.py b/packages/python/plotly/plotly/validators/histogram/marker/_cmin.py index 6c7b01ad16..273b3fd044 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/_cmin.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="histogram.marker", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/_color.py b/packages/python/plotly/plotly/validators/histogram/marker/_color.py index 78dff74fa8..09c6275d19 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/_color.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/_color.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="color", parent_name="histogram.marker", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop( "colorscale_path", "histogram.marker.colorscale" ), diff --git a/packages/python/plotly/plotly/validators/histogram/marker/_coloraxis.py b/packages/python/plotly/plotly/validators/histogram/marker/_coloraxis.py index 8d1684dbb4..73303dde44 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/_coloraxis.py @@ -11,6 +11,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/_colorbar.py b/packages/python/plotly/plotly/validators/histogram/marker/_colorbar.py index 3a8ffe0790..0226984dfb 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/_colorbar.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/_colorbar.py @@ -150,6 +150,12 @@ def __init__( lts), sets the default property values to use for elements of histogram.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/histogram/marker/_colorscale.py b/packages/python/plotly/plotly/validators/histogram/marker/_colorscale.py index 22425b8131..5e485ac624 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/_colorscale.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/_colorsrc.py b/packages/python/plotly/plotly/validators/histogram/marker/_colorsrc.py index e16899568c..2ae923d3b1 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/_opacity.py b/packages/python/plotly/plotly/validators/histogram/marker/_opacity.py index 334847c4a8..64a81c2416 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/_opacity.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="opacity", parent_name="histogram.marker", **kwar edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/_opacitysrc.py b/packages/python/plotly/plotly/validators/histogram/marker/_opacitysrc.py index 76081fc27d..0c77ca4cbd 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/_opacitysrc.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/_opacitysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/_pattern.py b/packages/python/plotly/plotly/validators/histogram/marker/_pattern.py new file mode 100644 index 0000000000..92c020dd04 --- /dev/null +++ b/packages/python/plotly/plotly/validators/histogram/marker/_pattern.py @@ -0,0 +1,45 @@ +import _plotly_utils.basevalidators + + +class PatternValidator(_plotly_utils.basevalidators.CompoundValidator): + def __init__(self, plotly_name="pattern", parent_name="histogram.marker", **kwargs): + super(PatternValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + data_class_str=kwargs.pop("data_class_str", "Pattern"), + data_docs=kwargs.pop( + "data_docs", + """ + bgcolor + Sets the background color of the pattern fill. + Defaults to a transparent background. + bgcolorsrc + Sets the source reference on Chart Studio Cloud + for bgcolor . + shape + Sets the shape of the pattern fill. By default, + no pattern is used for filling the area. + shapesrc + Sets the source reference on Chart Studio Cloud + for shape . + size + Sets the size of unit squares of the pattern + fill in pixels, which corresponds to the + interval of repetition of the pattern. + sizesrc + Sets the source reference on Chart Studio Cloud + for size . + solidity + Sets the solidity of the pattern fill. Solidity + is roughly the fraction of the area filled by + the pattern. Solidity of 0 shows only the + background color without pattern and solidty of + 1 shows only the foreground color without + pattern. + soliditysrc + Sets the source reference on Chart Studio Cloud + for solidity . +""", + ), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/_reversescale.py b/packages/python/plotly/plotly/validators/histogram/marker/_reversescale.py index 651e129948..96b1d01540 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/_reversescale.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/_showscale.py b/packages/python/plotly/plotly/validators/histogram/marker/_showscale.py index c5c17d59cf..193fa78e44 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/_showscale.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/_showscale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/__init__.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_bgcolor.py index d869c64f25..3263e31bd3 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_bordercolor.py index ca2d328a37..6d9bddaaa8 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_bordercolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_borderwidth.py index 0aff8080a0..0fc7863f40 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_borderwidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_dtick.py index c0cd43b8d2..b2a30426d5 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_exponentformat.py index 18b7687d57..dbfc5cc5d6 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_exponentformat.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_len.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_len.py index 2c88f65e4f..9654d37534 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_len.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_lenmode.py index 1231e2da6b..d104e1b6d3 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_lenmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_minexponent.py index 90c4f12cb9..6eb1aa32d7 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_minexponent.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_nticks.py index ca0ff7ff8a..5c50759326 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_outlinecolor.py index 7ec28cae80..ca8633ddf3 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_outlinecolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_outlinewidth.py index 55dbe25d95..bd8056e4ea 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_outlinewidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_separatethousands.py index 114c95fd5a..47e26e6177 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_showexponent.py index b27a3ad6e7..743ffe27ed 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_showexponent.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_showticklabels.py index 3340fdf85c..72f7a38eeb 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_showticklabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_showtickprefix.py index a9851ee8d3..3357618646 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_showtickprefix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_showticksuffix.py index 6b743471b8..bd9a5bea73 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_showticksuffix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_thickness.py index 137bce3e35..72a76d4aee 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_thicknessmode.py index 6debd722bc..8f15bce5ae 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_thicknessmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tick0.py index a9884b0130..3277cb4b38 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickangle.py index 8e48527836..2bb7429f4f 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickcolor.py index 88c1482f81..20f5f44d89 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickformat.py index 29eaaff5f4..2f5c30a66f 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickformat.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..dd33fb9afd --- /dev/null +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="histogram.marker.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "colorbars"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticklabelposition.py index 143afcc16b..9aad7f67b8 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticklen.py index 47603c31e5..94c9a8a412 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickmode.py index f5d728140a..0f90259665 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickprefix.py index cb408ef1d5..8ed2dca3b1 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickprefix.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticks.py index 85e911eef2..a83a4b3b44 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticksuffix.py index d2afaf20f9..4a4efac300 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticksuffix.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticktext.py index 024f574a4c..f2b528e4e8 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticktextsrc.py index f53e0b67e3..83b3399511 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ticktextsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickvals.py index fe9dad559b..fc6c7decb0 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickvalssrc.py index ce015fb66c..0c27ecad7c 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickvalssrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickwidth.py index cac7b32817..0f71beb24c 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_x.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_x.py index 17a81b1362..da269b1c6f 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_x.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_xanchor.py index 8fb14c8b3c..1a7bad345a 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_xpad.py index 1fa31202ca..fa12dddae4 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_xpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_y.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_y.py index 7389fac68a..4cba161a7c 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_y.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_yanchor.py index affdd512b0..5d929c6570 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ypad.py index f3ffde0134..3e8dc7d87f 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/_ypad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickfont/_color.py index 8ca7e9b2b3..c87b6c91be 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickfont/_family.py index 95856be9c5..86fd9698af 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickfont/_size.py index 888c594004..9d4333980d 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickformatstop/_dtickrange.py index 464dfe9ba7..0078bd8463 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "colorbars"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickformatstop/_enabled.py index ee12900aae..51ecaeb6a2 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickformatstop/_name.py index 09684d7209..0102ff8c7d 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickformatstop/_templateitemname.py index bc18586213..fae79742ac 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickformatstop/_value.py index 46d4d14241..63c4a6a046 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/title/_side.py index 3c507b2f7d..d18b1c57c8 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/title/_side.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/title/_text.py index dbb14f4614..4ba1f2c275 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/title/_text.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/title/font/_color.py index fb1cb89738..2f41fcbccb 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/title/font/_family.py index a6246d74e5..cadda738c8 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/title/font/_size.py index f46d20878e..159b337ac6 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/colorbar/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/line/_autocolorscale.py b/packages/python/plotly/plotly/validators/histogram/marker/line/_autocolorscale.py index ac2a21532f..823cdad38d 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/line/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/line/_autocolorscale.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/line/_cauto.py b/packages/python/plotly/plotly/validators/histogram/marker/line/_cauto.py index d46c2953aa..415882f9f2 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/line/_cauto.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/line/_cauto.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/line/_cmax.py b/packages/python/plotly/plotly/validators/histogram/marker/line/_cmax.py index 31598dc71d..526a295b10 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/line/_cmax.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/line/_cmax.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/line/_cmid.py b/packages/python/plotly/plotly/validators/histogram/marker/line/_cmid.py index b16108bdaa..8a1b27d1e5 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/line/_cmid.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/line/_cmid.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/line/_cmin.py b/packages/python/plotly/plotly/validators/histogram/marker/line/_cmin.py index 0732b33a2e..0a30f3f6a0 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/line/_cmin.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/line/_cmin.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/line/_color.py b/packages/python/plotly/plotly/validators/histogram/marker/line/_color.py index 681c821984..8b6589a223 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/line/_color.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/line/_color.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop( "colorscale_path", "histogram.marker.line.colorscale" ), diff --git a/packages/python/plotly/plotly/validators/histogram/marker/line/_coloraxis.py b/packages/python/plotly/plotly/validators/histogram/marker/line/_coloraxis.py index 110e296940..89b78d430d 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/line/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/line/_coloraxis.py @@ -11,6 +11,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/line/_colorscale.py b/packages/python/plotly/plotly/validators/histogram/marker/line/_colorscale.py index 8d29478a9d..dd8c74844f 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/line/_colorscale.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/line/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/line/_colorsrc.py b/packages/python/plotly/plotly/validators/histogram/marker/line/_colorsrc.py index d0d11f6b2e..fac105f1f9 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/line/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/line/_reversescale.py b/packages/python/plotly/plotly/validators/histogram/marker/line/_reversescale.py index 51ca1e2148..09c8a9d2d2 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/line/_reversescale.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/line/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/line/_width.py b/packages/python/plotly/plotly/validators/histogram/marker/line/_width.py index 18e6c0c023..5392d529a2 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/line/_width.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/line/_width.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/line/_widthsrc.py b/packages/python/plotly/plotly/validators/histogram/marker/line/_widthsrc.py index 831cdbee27..30b2254d2b 100644 --- a/packages/python/plotly/plotly/validators/histogram/marker/line/_widthsrc.py +++ b/packages/python/plotly/plotly/validators/histogram/marker/line/_widthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/pattern/__init__.py b/packages/python/plotly/plotly/validators/histogram/marker/pattern/__init__.py new file mode 100644 index 0000000000..27ed67a3c2 --- /dev/null +++ b/packages/python/plotly/plotly/validators/histogram/marker/pattern/__init__.py @@ -0,0 +1,28 @@ +import sys + +if sys.version_info < (3, 7): + from ._soliditysrc import SoliditysrcValidator + from ._solidity import SolidityValidator + from ._sizesrc import SizesrcValidator + from ._size import SizeValidator + from ._shapesrc import ShapesrcValidator + from ._shape import ShapeValidator + from ._bgcolorsrc import BgcolorsrcValidator + from ._bgcolor import BgcolorValidator +else: + from _plotly_utils.importers import relative_import + + __all__, __getattr__, __dir__ = relative_import( + __name__, + [], + [ + "._soliditysrc.SoliditysrcValidator", + "._solidity.SolidityValidator", + "._sizesrc.SizesrcValidator", + "._size.SizeValidator", + "._shapesrc.ShapesrcValidator", + "._shape.ShapeValidator", + "._bgcolorsrc.BgcolorsrcValidator", + "._bgcolor.BgcolorValidator", + ], + ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/pattern/_bgcolor.py b/packages/python/plotly/plotly/validators/histogram/marker/pattern/_bgcolor.py new file mode 100644 index 0000000000..25831f5299 --- /dev/null +++ b/packages/python/plotly/plotly/validators/histogram/marker/pattern/_bgcolor.py @@ -0,0 +1,14 @@ +import _plotly_utils.basevalidators + + +class BgcolorValidator(_plotly_utils.basevalidators.ColorValidator): + def __init__( + self, plotly_name="bgcolor", parent_name="histogram.marker.pattern", **kwargs + ): + super(BgcolorValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + array_ok=kwargs.pop("array_ok", True), + edit_type=kwargs.pop("edit_type", "style"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/pattern/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/histogram/marker/pattern/_bgcolorsrc.py new file mode 100644 index 0000000000..1d0606cc0e --- /dev/null +++ b/packages/python/plotly/plotly/validators/histogram/marker/pattern/_bgcolorsrc.py @@ -0,0 +1,13 @@ +import _plotly_utils.basevalidators + + +class BgcolorsrcValidator(_plotly_utils.basevalidators.SrcValidator): + def __init__( + self, plotly_name="bgcolorsrc", parent_name="histogram.marker.pattern", **kwargs + ): + super(BgcolorsrcValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/pattern/_shape.py b/packages/python/plotly/plotly/validators/histogram/marker/pattern/_shape.py new file mode 100644 index 0000000000..309a21a7c1 --- /dev/null +++ b/packages/python/plotly/plotly/validators/histogram/marker/pattern/_shape.py @@ -0,0 +1,15 @@ +import _plotly_utils.basevalidators + + +class ShapeValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, plotly_name="shape", parent_name="histogram.marker.pattern", **kwargs + ): + super(ShapeValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + array_ok=kwargs.pop("array_ok", True), + edit_type=kwargs.pop("edit_type", "style"), + values=kwargs.pop("values", ["", "/", "\\", "x", "-", "|", "+", "."]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/pattern/_shapesrc.py b/packages/python/plotly/plotly/validators/histogram/marker/pattern/_shapesrc.py new file mode 100644 index 0000000000..d9881e231e --- /dev/null +++ b/packages/python/plotly/plotly/validators/histogram/marker/pattern/_shapesrc.py @@ -0,0 +1,13 @@ +import _plotly_utils.basevalidators + + +class ShapesrcValidator(_plotly_utils.basevalidators.SrcValidator): + def __init__( + self, plotly_name="shapesrc", parent_name="histogram.marker.pattern", **kwargs + ): + super(ShapesrcValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/pattern/_size.py b/packages/python/plotly/plotly/validators/histogram/marker/pattern/_size.py new file mode 100644 index 0000000000..f82d1cb496 --- /dev/null +++ b/packages/python/plotly/plotly/validators/histogram/marker/pattern/_size.py @@ -0,0 +1,15 @@ +import _plotly_utils.basevalidators + + +class SizeValidator(_plotly_utils.basevalidators.NumberValidator): + def __init__( + self, plotly_name="size", parent_name="histogram.marker.pattern", **kwargs + ): + super(SizeValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + array_ok=kwargs.pop("array_ok", True), + edit_type=kwargs.pop("edit_type", "style"), + min=kwargs.pop("min", 0), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/pattern/_sizesrc.py b/packages/python/plotly/plotly/validators/histogram/marker/pattern/_sizesrc.py new file mode 100644 index 0000000000..5d29ca0e9e --- /dev/null +++ b/packages/python/plotly/plotly/validators/histogram/marker/pattern/_sizesrc.py @@ -0,0 +1,13 @@ +import _plotly_utils.basevalidators + + +class SizesrcValidator(_plotly_utils.basevalidators.SrcValidator): + def __init__( + self, plotly_name="sizesrc", parent_name="histogram.marker.pattern", **kwargs + ): + super(SizesrcValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/pattern/_solidity.py b/packages/python/plotly/plotly/validators/histogram/marker/pattern/_solidity.py new file mode 100644 index 0000000000..a9e814b255 --- /dev/null +++ b/packages/python/plotly/plotly/validators/histogram/marker/pattern/_solidity.py @@ -0,0 +1,16 @@ +import _plotly_utils.basevalidators + + +class SolidityValidator(_plotly_utils.basevalidators.NumberValidator): + def __init__( + self, plotly_name="solidity", parent_name="histogram.marker.pattern", **kwargs + ): + super(SolidityValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + array_ok=kwargs.pop("array_ok", True), + edit_type=kwargs.pop("edit_type", "style"), + max=kwargs.pop("max", 1), + min=kwargs.pop("min", 0), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/histogram/marker/pattern/_soliditysrc.py b/packages/python/plotly/plotly/validators/histogram/marker/pattern/_soliditysrc.py new file mode 100644 index 0000000000..304fc5e02b --- /dev/null +++ b/packages/python/plotly/plotly/validators/histogram/marker/pattern/_soliditysrc.py @@ -0,0 +1,16 @@ +import _plotly_utils.basevalidators + + +class SoliditysrcValidator(_plotly_utils.basevalidators.SrcValidator): + def __init__( + self, + plotly_name="soliditysrc", + parent_name="histogram.marker.pattern", + **kwargs + ): + super(SoliditysrcValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/histogram/selected/marker/_color.py b/packages/python/plotly/plotly/validators/histogram/selected/marker/_color.py index 7c5b905324..ce9f8f519a 100644 --- a/packages/python/plotly/plotly/validators/histogram/selected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/histogram/selected/marker/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/selected/marker/_opacity.py b/packages/python/plotly/plotly/validators/histogram/selected/marker/_opacity.py index 1d31396734..9f6252dc72 100644 --- a/packages/python/plotly/plotly/validators/histogram/selected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/histogram/selected/marker/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/selected/textfont/_color.py b/packages/python/plotly/plotly/validators/histogram/selected/textfont/_color.py index ea8fda12e1..5767550c45 100644 --- a/packages/python/plotly/plotly/validators/histogram/selected/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/histogram/selected/textfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/histogram/stream/_maxpoints.py index 0c257ac6d1..feab599af5 100644 --- a/packages/python/plotly/plotly/validators/histogram/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/histogram/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/stream/_token.py b/packages/python/plotly/plotly/validators/histogram/stream/_token.py index cb46634028..2732686d96 100644 --- a/packages/python/plotly/plotly/validators/histogram/stream/_token.py +++ b/packages/python/plotly/plotly/validators/histogram/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="histogram.stream", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/unselected/marker/_color.py b/packages/python/plotly/plotly/validators/histogram/unselected/marker/_color.py index 6c8bc9a771..ba2b7c6e38 100644 --- a/packages/python/plotly/plotly/validators/histogram/unselected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/histogram/unselected/marker/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/unselected/marker/_opacity.py b/packages/python/plotly/plotly/validators/histogram/unselected/marker/_opacity.py index ad5aadc7ff..ae1e6c9bbc 100644 --- a/packages/python/plotly/plotly/validators/histogram/unselected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/histogram/unselected/marker/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/unselected/textfont/_color.py b/packages/python/plotly/plotly/validators/histogram/unselected/textfont/_color.py index 8f941220d8..3aba4d64f4 100644 --- a/packages/python/plotly/plotly/validators/histogram/unselected/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/histogram/unselected/textfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/xbins/_end.py b/packages/python/plotly/plotly/validators/histogram/xbins/_end.py index 08561f1e0c..178af2538b 100644 --- a/packages/python/plotly/plotly/validators/histogram/xbins/_end.py +++ b/packages/python/plotly/plotly/validators/histogram/xbins/_end.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="end", parent_name="histogram.xbins", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/xbins/_size.py b/packages/python/plotly/plotly/validators/histogram/xbins/_size.py index 21b33612e4..b34f2ec5e3 100644 --- a/packages/python/plotly/plotly/validators/histogram/xbins/_size.py +++ b/packages/python/plotly/plotly/validators/histogram/xbins/_size.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="size", parent_name="histogram.xbins", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/xbins/_start.py b/packages/python/plotly/plotly/validators/histogram/xbins/_start.py index 5d68dacb77..2b55c99b14 100644 --- a/packages/python/plotly/plotly/validators/histogram/xbins/_start.py +++ b/packages/python/plotly/plotly/validators/histogram/xbins/_start.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="start", parent_name="histogram.xbins", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/ybins/_end.py b/packages/python/plotly/plotly/validators/histogram/ybins/_end.py index a6108ea581..5c9e7a54ea 100644 --- a/packages/python/plotly/plotly/validators/histogram/ybins/_end.py +++ b/packages/python/plotly/plotly/validators/histogram/ybins/_end.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="end", parent_name="histogram.ybins", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/ybins/_size.py b/packages/python/plotly/plotly/validators/histogram/ybins/_size.py index e249ff3064..eceafdb22d 100644 --- a/packages/python/plotly/plotly/validators/histogram/ybins/_size.py +++ b/packages/python/plotly/plotly/validators/histogram/ybins/_size.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="size", parent_name="histogram.ybins", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram/ybins/_start.py b/packages/python/plotly/plotly/validators/histogram/ybins/_start.py index 452bae8f27..299a75a120 100644 --- a/packages/python/plotly/plotly/validators/histogram/ybins/_start.py +++ b/packages/python/plotly/plotly/validators/histogram/ybins/_start.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="start", parent_name="histogram.ybins", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/__init__.py b/packages/python/plotly/plotly/validators/histogram2d/__init__.py index bb6f623c7e..c06974d744 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/__init__.py +++ b/packages/python/plotly/plotly/validators/histogram2d/__init__.py @@ -10,6 +10,7 @@ from ._zauto import ZautoValidator from ._z import ZValidator from ._ysrc import YsrcValidator + from ._yhoverformat import YhoverformatValidator from ._ygap import YgapValidator from ._ycalendar import YcalendarValidator from ._ybins import YbinsValidator @@ -17,6 +18,7 @@ from ._yaxis import YaxisValidator from ._y import YValidator from ._xsrc import XsrcValidator + from ._xhoverformat import XhoverformatValidator from ._xgap import XgapValidator from ._xcalendar import XcalendarValidator from ._xbins import XbinsValidator @@ -72,6 +74,7 @@ "._zauto.ZautoValidator", "._z.ZValidator", "._ysrc.YsrcValidator", + "._yhoverformat.YhoverformatValidator", "._ygap.YgapValidator", "._ycalendar.YcalendarValidator", "._ybins.YbinsValidator", @@ -79,6 +82,7 @@ "._yaxis.YaxisValidator", "._y.YValidator", "._xsrc.XsrcValidator", + "._xhoverformat.XhoverformatValidator", "._xgap.XgapValidator", "._xcalendar.XcalendarValidator", "._xbins.XbinsValidator", diff --git a/packages/python/plotly/plotly/validators/histogram2d/_autobinx.py b/packages/python/plotly/plotly/validators/histogram2d/_autobinx.py index a395048e47..7cb11509b0 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_autobinx.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_autobinx.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="autobinx", parent_name="histogram2d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_autobiny.py b/packages/python/plotly/plotly/validators/histogram2d/_autobiny.py index e3501a54ee..42720920ee 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_autobiny.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_autobiny.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="autobiny", parent_name="histogram2d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_autocolorscale.py b/packages/python/plotly/plotly/validators/histogram2d/_autocolorscale.py index 3162a57877..30c043a1f8 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_bingroup.py b/packages/python/plotly/plotly/validators/histogram2d/_bingroup.py index 6699f11930..2075355183 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_bingroup.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_bingroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="bingroup", parent_name="histogram2d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_coloraxis.py b/packages/python/plotly/plotly/validators/histogram2d/_coloraxis.py index 720ffeb76f..d14f5b8dab 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_coloraxis.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="coloraxis", parent_name="histogram2d", **kwargs) dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_colorbar.py b/packages/python/plotly/plotly/validators/histogram2d/_colorbar.py index b294df87b1..20cbc6f6ba 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_colorbar.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_colorbar.py @@ -148,6 +148,12 @@ def __init__(self, plotly_name="colorbar", parent_name="histogram2d", **kwargs): sets the default property values to use for elements of histogram2d.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/histogram2d/_colorscale.py b/packages/python/plotly/plotly/validators/histogram2d/_colorscale.py index 9723c8efc3..1489798413 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_colorscale.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_colorscale.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="colorscale", parent_name="histogram2d", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_customdata.py b/packages/python/plotly/plotly/validators/histogram2d/_customdata.py index 594238a6fb..c5aff255b4 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_customdata.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="histogram2d", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_customdatasrc.py b/packages/python/plotly/plotly/validators/histogram2d/_customdatasrc.py index db90d32e51..b674d4529e 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_customdatasrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_histfunc.py b/packages/python/plotly/plotly/validators/histogram2d/_histfunc.py index d73ddc9c03..fb2b302086 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_histfunc.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_histfunc.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="histfunc", parent_name="histogram2d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["count", "sum", "avg", "min", "max"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_histnorm.py b/packages/python/plotly/plotly/validators/histogram2d/_histnorm.py index 28388bebe4..065d25c00a 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_histnorm.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_histnorm.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="histnorm", parent_name="histogram2d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", ["", "percent", "probability", "density", "probability density"], diff --git a/packages/python/plotly/plotly/validators/histogram2d/_hoverinfo.py b/packages/python/plotly/plotly/validators/histogram2d/_hoverinfo.py index d1862bb68f..15af62ad5b 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="histogram2d", **kwargs) edit_type=kwargs.pop("edit_type", "none"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["x", "y", "z", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/histogram2d/_hoverinfosrc.py index 69121ade26..aee1cb49f1 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="histogram2d", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_hovertemplate.py b/packages/python/plotly/plotly/validators/histogram2d/_hovertemplate.py index 171bbc63d9..b87f617375 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_hovertemplate.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/histogram2d/_hovertemplatesrc.py index eda1d428ca..724d03f857 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_hovertemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_ids.py b/packages/python/plotly/plotly/validators/histogram2d/_ids.py index c2e487ea94..42e3d547ec 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_ids.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="histogram2d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_idssrc.py b/packages/python/plotly/plotly/validators/histogram2d/_idssrc.py index 14459cac81..7f12b14866 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_idssrc.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="histogram2d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_legendgroup.py b/packages/python/plotly/plotly/validators/histogram2d/_legendgroup.py index 8b1e962b32..3937ac70a7 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="histogram2d", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_meta.py b/packages/python/plotly/plotly/validators/histogram2d/_meta.py index 4f400b9c13..c21bdb6e6b 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_meta.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="histogram2d", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_metasrc.py b/packages/python/plotly/plotly/validators/histogram2d/_metasrc.py index ca01fbe860..7fecec6bff 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_metasrc.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="histogram2d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_name.py b/packages/python/plotly/plotly/validators/histogram2d/_name.py index 0f3b9df8f4..95163db11a 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_name.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="histogram2d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_nbinsx.py b/packages/python/plotly/plotly/validators/histogram2d/_nbinsx.py index 40e3d4e834..24a71aa049 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_nbinsx.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_nbinsx.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="nbinsx", parent_name="histogram2d", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_nbinsy.py b/packages/python/plotly/plotly/validators/histogram2d/_nbinsy.py index b18db54aa3..3568bc7e92 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_nbinsy.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_nbinsy.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="nbinsy", parent_name="histogram2d", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_opacity.py b/packages/python/plotly/plotly/validators/histogram2d/_opacity.py index ebb192cb49..0b080ee76c 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_opacity.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="histogram2d", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_reversescale.py b/packages/python/plotly/plotly/validators/histogram2d/_reversescale.py index 34689850c9..ef11fcb477 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_reversescale.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_reversescale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="reversescale", parent_name="histogram2d", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_showlegend.py b/packages/python/plotly/plotly/validators/histogram2d/_showlegend.py index 62ef64fee2..06dd0faacb 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_showlegend.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="histogram2d", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_showscale.py b/packages/python/plotly/plotly/validators/histogram2d/_showscale.py index e729ee9fdf..4e9f33dfd7 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_showscale.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_showscale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showscale", parent_name="histogram2d", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_uid.py b/packages/python/plotly/plotly/validators/histogram2d/_uid.py index 544c397541..a54f21971a 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_uid.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="histogram2d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_uirevision.py b/packages/python/plotly/plotly/validators/histogram2d/_uirevision.py index 1d2fff6b3d..32519f4ba3 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_uirevision.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="histogram2d", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_visible.py b/packages/python/plotly/plotly/validators/histogram2d/_visible.py index 8c9d1b75b8..a8540df893 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_visible.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="histogram2d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_x.py b/packages/python/plotly/plotly/validators/histogram2d/_x.py index 067b2ec775..e5a0a0920e 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_x.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_x.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x", parent_name="histogram2d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_xaxis.py b/packages/python/plotly/plotly/validators/histogram2d/_xaxis.py index 2a8f856e34..40bea35eac 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_xaxis.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_xaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xaxis", parent_name="histogram2d", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "x"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_xbingroup.py b/packages/python/plotly/plotly/validators/histogram2d/_xbingroup.py index a17e5512fd..7c4896a5ba 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_xbingroup.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_xbingroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xbingroup", parent_name="histogram2d", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_xcalendar.py b/packages/python/plotly/plotly/validators/histogram2d/_xcalendar.py index c47be9e02d..51c2c66be1 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_xcalendar.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_xcalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xcalendar", parent_name="histogram2d", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/histogram2d/_xgap.py b/packages/python/plotly/plotly/validators/histogram2d/_xgap.py index ce98ea6a5f..80d9d064f1 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_xgap.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_xgap.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xgap", parent_name="histogram2d", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_xhoverformat.py b/packages/python/plotly/plotly/validators/histogram2d/_xhoverformat.py new file mode 100644 index 0000000000..8ec5ab4232 --- /dev/null +++ b/packages/python/plotly/plotly/validators/histogram2d/_xhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class XhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="xhoverformat", parent_name="histogram2d", **kwargs): + super(XhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_xsrc.py b/packages/python/plotly/plotly/validators/histogram2d/_xsrc.py index f032112fcf..5bb8792d2d 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_xsrc.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="histogram2d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_y.py b/packages/python/plotly/plotly/validators/histogram2d/_y.py index b072d3ece7..f1fecd1dc0 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_y.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_y.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y", parent_name="histogram2d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_yaxis.py b/packages/python/plotly/plotly/validators/histogram2d/_yaxis.py index 6d8af1671a..3d7cf67ad3 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_yaxis.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_yaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="yaxis", parent_name="histogram2d", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "y"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_ybingroup.py b/packages/python/plotly/plotly/validators/histogram2d/_ybingroup.py index 7640aa9f7e..22906b15d0 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_ybingroup.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_ybingroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ybingroup", parent_name="histogram2d", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_ycalendar.py b/packages/python/plotly/plotly/validators/histogram2d/_ycalendar.py index c4488c18ec..45e2cfb6ab 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_ycalendar.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_ycalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ycalendar", parent_name="histogram2d", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/histogram2d/_ygap.py b/packages/python/plotly/plotly/validators/histogram2d/_ygap.py index bfc14c95ae..6f7b0be33e 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_ygap.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_ygap.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ygap", parent_name="histogram2d", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_yhoverformat.py b/packages/python/plotly/plotly/validators/histogram2d/_yhoverformat.py new file mode 100644 index 0000000000..8c17d69852 --- /dev/null +++ b/packages/python/plotly/plotly/validators/histogram2d/_yhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class YhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="yhoverformat", parent_name="histogram2d", **kwargs): + super(YhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_ysrc.py b/packages/python/plotly/plotly/validators/histogram2d/_ysrc.py index 379db72fab..3762e9bbc5 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_ysrc.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_ysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ysrc", parent_name="histogram2d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_z.py b/packages/python/plotly/plotly/validators/histogram2d/_z.py index b0dfa8e414..41df1b89c9 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_z.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_z.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="z", parent_name="histogram2d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_zauto.py b/packages/python/plotly/plotly/validators/histogram2d/_zauto.py index c43b0aa56c..f724251643 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_zauto.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_zauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zauto", parent_name="histogram2d", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_zhoverformat.py b/packages/python/plotly/plotly/validators/histogram2d/_zhoverformat.py index 0169ea781c..c8bc8fe164 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_zhoverformat.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_zhoverformat.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="zhoverformat", parent_name="histogram2d", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_zmax.py b/packages/python/plotly/plotly/validators/histogram2d/_zmax.py index f2067cf8df..9d06a30964 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_zmax.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_zmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmax", parent_name="histogram2d", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"zauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_zmid.py b/packages/python/plotly/plotly/validators/histogram2d/_zmid.py index ffb579a159..db60308fc4 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_zmid.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_zmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmid", parent_name="histogram2d", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_zmin.py b/packages/python/plotly/plotly/validators/histogram2d/_zmin.py index 95d5072d49..511d1308ac 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_zmin.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_zmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmin", parent_name="histogram2d", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"zauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_zsmooth.py b/packages/python/plotly/plotly/validators/histogram2d/_zsmooth.py index c2094c729c..de2c2a86cf 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_zsmooth.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_zsmooth.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="zsmooth", parent_name="histogram2d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fast", "best", False]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/_zsrc.py b/packages/python/plotly/plotly/validators/histogram2d/_zsrc.py index 0203407125..83bc7b0822 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/_zsrc.py +++ b/packages/python/plotly/plotly/validators/histogram2d/_zsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="zsrc", parent_name="histogram2d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/__init__.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_bgcolor.py index 941a65a0fd..f8d3eacc27 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_bordercolor.py index 063928b829..2cb9763ef9 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_borderwidth.py index 84764b0034..a2ff61fa89 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_dtick.py index 9faca731c9..9694151ada 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_exponentformat.py index 33bbe868c1..a927be46f0 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_exponentformat.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_len.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_len.py index 4dce429181..7f856bdc8e 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_len.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="len", parent_name="histogram2d.colorbar", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_lenmode.py index 2915f456d8..994d083c38 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_lenmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_minexponent.py index aef0f0cb63..a5e87b9ffe 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_nticks.py index f485e20603..c8659d5c50 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_outlinecolor.py index d174570d58..387865c045 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_outlinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_outlinewidth.py index 2c671565c0..187d4666d0 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_outlinewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_separatethousands.py index fc9ecd8315..bc0a59db56 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_showexponent.py index 04031049f4..b81599466b 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_showticklabels.py index 95e85a492e..b8aaff7a9b 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_showticklabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_showtickprefix.py index 290f407dd7..417d173a1f 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_showtickprefix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_showticksuffix.py index f49c51df5e..3116ab3fd9 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_showticksuffix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_thickness.py index 43706e0d19..54954b397b 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_thicknessmode.py index 836295cfd9..dbb8e48f7a 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_thicknessmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tick0.py index 298272d177..11a1c2ce90 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickangle.py index cd86fb02c0..f5b8ee049c 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickcolor.py index a46df2b2ef..39d192a6dd 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickformat.py index 844319488c..52d96fe735 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..8a70025070 --- /dev/null +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="histogram2d.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "colorbars"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticklabelposition.py index 006e4c9379..71b4ccb6e6 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticklen.py index 49273c131b..0799146366 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickmode.py index 3f5614451a..6b7949ced9 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickprefix.py index 7f5a492910..4a8fbe5497 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticks.py index 5a6379a975..8e8d8060e6 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticksuffix.py index 5ff918bcf5..f28cecce35 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticktext.py index b6ea6408a5..a2d740576e 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticktextsrc.py index 424f92c724..ce920e6567 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickvals.py index d133d68d1a..c52215c297 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickvalssrc.py index 6617abaa09..8db1cb8143 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickwidth.py index eb40ed0467..3dda9ee6fd 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_x.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_x.py index 8bd4840675..e1c2c91ce9 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_x.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="x", parent_name="histogram2d.colorbar", **kwargs edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_xanchor.py index 8780ec7f88..72fe662102 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_xpad.py index 8866a1c58e..a9020ba6d5 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_xpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_y.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_y.py index ce557238e5..756310e7df 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_y.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="y", parent_name="histogram2d.colorbar", **kwargs edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_yanchor.py index 89d652d993..40e1bd57d1 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ypad.py index 3835b04a9b..1d3e8d8127 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/_ypad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickfont/_color.py index e55b6a956a..1b5b5a877b 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickfont/_family.py index 95d5d421a3..a4e36257c4 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickfont/_size.py index a2e4b84163..e1f08fb715 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickformatstop/_dtickrange.py index 06b3c33150..1b4aa4e1fe 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "colorbars"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickformatstop/_enabled.py index f943f7daf7..877ee6797c 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickformatstop/_name.py index 41938b0fd0..f3992a6380 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickformatstop/_templateitemname.py index afc66021e5..be00ca4640 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickformatstop/_value.py index a63bb14723..7fd1f87936 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/title/_side.py index fbafb51624..f72d9a83a7 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/title/_side.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/title/_text.py index e6afd60ab1..906fd3fe75 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/title/font/_color.py index 641c695fa1..eb3240ddd1 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/title/font/_family.py index b7fb938651..cefe63b2b1 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/histogram2d/colorbar/title/font/_size.py index 2676f04c57..2948d723b6 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/histogram2d/colorbar/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_align.py index 6c41970740..c3e9fb542e 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_align.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_alignsrc.py index 92765b8e5f..40e1e53ee6 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_bgcolor.py index 94600735e8..c3bbe9d574 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_bgcolorsrc.py index 07b89c2bb7..698b0fd8d7 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_bordercolor.py index 43c5d9692f..18b59f9f6d 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_bordercolorsrc.py index e52ed40d27..fd1134b722 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_bordercolorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_namelength.py index 796923f706..1c286def68 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_namelengthsrc.py index a4cc4d69c8..ae79c0ec62 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/_namelengthsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/font/_color.py index 5e483a8878..ab06323d7e 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/font/_colorsrc.py index 896b6058f8..2db797749c 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/font/_colorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/font/_family.py index e4b50a52d1..590a3fad3c 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/font/_familysrc.py index 62b020d247..589e9a728d 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/font/_familysrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/font/_size.py index 8be751d328..4749d9fdeb 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/font/_sizesrc.py index 7f2165e725..edc837b883 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/histogram2d/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/marker/_color.py b/packages/python/plotly/plotly/validators/histogram2d/marker/_color.py index c978458df9..7dd3f93550 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/marker/_color.py +++ b/packages/python/plotly/plotly/validators/histogram2d/marker/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="histogram2d.marker", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/marker/_colorsrc.py b/packages/python/plotly/plotly/validators/histogram2d/marker/_colorsrc.py index 53b2b7dd87..734b91fc79 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/marker/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/histogram2d/marker/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/histogram2d/stream/_maxpoints.py index 1e819d936d..4a730aa250 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/histogram2d/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/stream/_token.py b/packages/python/plotly/plotly/validators/histogram2d/stream/_token.py index ec42683701..d9c7a729ba 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/stream/_token.py +++ b/packages/python/plotly/plotly/validators/histogram2d/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="histogram2d.stream", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/xbins/_end.py b/packages/python/plotly/plotly/validators/histogram2d/xbins/_end.py index 9efdc27695..2f1531fde1 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/xbins/_end.py +++ b/packages/python/plotly/plotly/validators/histogram2d/xbins/_end.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="end", parent_name="histogram2d.xbins", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/xbins/_size.py b/packages/python/plotly/plotly/validators/histogram2d/xbins/_size.py index 52724dacaf..9c26b8b496 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/xbins/_size.py +++ b/packages/python/plotly/plotly/validators/histogram2d/xbins/_size.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="size", parent_name="histogram2d.xbins", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/xbins/_start.py b/packages/python/plotly/plotly/validators/histogram2d/xbins/_start.py index 9876927c56..15f98b5aa5 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/xbins/_start.py +++ b/packages/python/plotly/plotly/validators/histogram2d/xbins/_start.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="start", parent_name="histogram2d.xbins", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/ybins/_end.py b/packages/python/plotly/plotly/validators/histogram2d/ybins/_end.py index a0221a4db8..232312fe3f 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/ybins/_end.py +++ b/packages/python/plotly/plotly/validators/histogram2d/ybins/_end.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="end", parent_name="histogram2d.ybins", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/ybins/_size.py b/packages/python/plotly/plotly/validators/histogram2d/ybins/_size.py index acbd0e8acc..bd320b4e2e 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/ybins/_size.py +++ b/packages/python/plotly/plotly/validators/histogram2d/ybins/_size.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="size", parent_name="histogram2d.ybins", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2d/ybins/_start.py b/packages/python/plotly/plotly/validators/histogram2d/ybins/_start.py index 87bf842c1c..c5ffdb23d4 100644 --- a/packages/python/plotly/plotly/validators/histogram2d/ybins/_start.py +++ b/packages/python/plotly/plotly/validators/histogram2d/ybins/_start.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="start", parent_name="histogram2d.ybins", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/__init__.py b/packages/python/plotly/plotly/validators/histogram2dcontour/__init__.py index 9090db70da..5c2c4d6546 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/__init__.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/__init__.py @@ -9,12 +9,14 @@ from ._zauto import ZautoValidator from ._z import ZValidator from ._ysrc import YsrcValidator + from ._yhoverformat import YhoverformatValidator from ._ycalendar import YcalendarValidator from ._ybins import YbinsValidator from ._ybingroup import YbingroupValidator from ._yaxis import YaxisValidator from ._y import YValidator from ._xsrc import XsrcValidator + from ._xhoverformat import XhoverformatValidator from ._xcalendar import XcalendarValidator from ._xbins import XbinsValidator from ._xbingroup import XbingroupValidator @@ -72,12 +74,14 @@ "._zauto.ZautoValidator", "._z.ZValidator", "._ysrc.YsrcValidator", + "._yhoverformat.YhoverformatValidator", "._ycalendar.YcalendarValidator", "._ybins.YbinsValidator", "._ybingroup.YbingroupValidator", "._yaxis.YaxisValidator", "._y.YValidator", "._xsrc.XsrcValidator", + "._xhoverformat.XhoverformatValidator", "._xcalendar.XcalendarValidator", "._xbins.XbinsValidator", "._xbingroup.XbingroupValidator", diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_autobinx.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_autobinx.py index cd5f4a3a23..7ec3d7ae5c 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_autobinx.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_autobinx.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_autobiny.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_autobiny.py index 11ac03d781..1e110b8c3d 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_autobiny.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_autobiny.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_autocolorscale.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_autocolorscale.py index cf1e8c4f7f..b302ce0851 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_autocontour.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_autocontour.py index 20aa16a798..2e0763790e 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_autocontour.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_autocontour.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_bingroup.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_bingroup.py index cd42a96b59..aa8b129334 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_bingroup.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_bingroup.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_coloraxis.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_coloraxis.py index c5f462c242..94424f2903 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_coloraxis.py @@ -11,6 +11,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_colorbar.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_colorbar.py index e4a4739571..5706082c64 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_colorbar.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_colorbar.py @@ -150,6 +150,12 @@ def __init__( aults), sets the default property values to use for elements of histogram2dcontour.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_colorscale.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_colorscale.py index b9cfaeb093..5f214bf662 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_colorscale.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_customdata.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_customdata.py index c0e30f7792..15d51c82c4 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_customdata.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_customdata.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_customdatasrc.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_customdatasrc.py index 655ad585a1..5807607b9e 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_customdatasrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_histfunc.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_histfunc.py index 33daa1ed04..bcbbfae933 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_histfunc.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_histfunc.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["count", "sum", "avg", "min", "max"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_histnorm.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_histnorm.py index 6a4fa3d1d7..8746925d75 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_histnorm.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_histnorm.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", ["", "percent", "probability", "density", "probability density"], diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_hoverinfo.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_hoverinfo.py index 0b06742973..b080042d69 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_hoverinfo.py @@ -12,6 +12,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "none"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["x", "y", "z", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_hoverinfosrc.py index 9af917e7de..1cd1945526 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_hoverinfosrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_hovertemplate.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_hovertemplate.py index af1635ecbb..553964bd5c 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_hovertemplate.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_hovertemplatesrc.py index 24dc8efe62..3247bdd414 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_hovertemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_ids.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_ids.py index 6e23b313ee..503b80d082 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_ids.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="histogram2dcontour", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_idssrc.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_idssrc.py index 1346e9f0ba..cbbae92911 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_idssrc.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_idssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_legendgroup.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_legendgroup.py index e13b3e4064..745585c1de 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_legendgroup.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_meta.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_meta.py index b510a823bc..2acff48b37 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_meta.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="histogram2dcontour", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_metasrc.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_metasrc.py index b813a1fede..31805a7b87 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_metasrc.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_metasrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_name.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_name.py index 1b9ce6d010..05eb7c3771 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_name.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="histogram2dcontour", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_nbinsx.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_nbinsx.py index c137d71b1c..ff7d7b7915 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_nbinsx.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_nbinsx.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_nbinsy.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_nbinsy.py index 9458788e67..fc3a7fd368 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_nbinsy.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_nbinsy.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_ncontours.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_ncontours.py index 0f60be1f5b..eb079b01a6 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_ncontours.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_ncontours.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_opacity.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_opacity.py index 526278b750..6230ec2ac1 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_opacity.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_reversescale.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_reversescale.py index 2eb7478c15..ffae58ea32 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_reversescale.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_showlegend.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_showlegend.py index d355e31961..8aa66aa54c 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_showlegend.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_showlegend.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_showscale.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_showscale.py index 6930fc503a..58d23ade20 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_showscale.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_showscale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_uid.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_uid.py index 2e780cb14c..70bf776270 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_uid.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="histogram2dcontour", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_uirevision.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_uirevision.py index 593b60535f..69be185cf5 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_uirevision.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_uirevision.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_visible.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_visible.py index 7d8ba1a5a9..1f32c921a1 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_visible.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_visible.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_x.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_x.py index 74a9e9e3a7..f7d9d2cf80 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_x.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_x.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x", parent_name="histogram2dcontour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_xaxis.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_xaxis.py index 4f076a9173..921f4fc369 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_xaxis.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_xaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xaxis", parent_name="histogram2dcontour", **kwar parent_name=parent_name, dflt=kwargs.pop("dflt", "x"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_xbingroup.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_xbingroup.py index 07d470809e..5a298a809c 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_xbingroup.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_xbingroup.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_xcalendar.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_xcalendar.py index 8410802163..1149fddc05 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_xcalendar.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_xcalendar.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_xhoverformat.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_xhoverformat.py new file mode 100644 index 0000000000..f513cd9bbf --- /dev/null +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_xhoverformat.py @@ -0,0 +1,13 @@ +import _plotly_utils.basevalidators + + +class XhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__( + self, plotly_name="xhoverformat", parent_name="histogram2dcontour", **kwargs + ): + super(XhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_xsrc.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_xsrc.py index 52e2532e74..42812765ce 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_xsrc.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="histogram2dcontour", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_y.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_y.py index f019fa05d2..6877651ce1 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_y.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_y.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y", parent_name="histogram2dcontour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_yaxis.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_yaxis.py index e1793d18ff..daada53127 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_yaxis.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_yaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="yaxis", parent_name="histogram2dcontour", **kwar parent_name=parent_name, dflt=kwargs.pop("dflt", "y"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_ybingroup.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_ybingroup.py index 1fd9718104..83cc62cf70 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_ybingroup.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_ybingroup.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_ycalendar.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_ycalendar.py index 87084cece5..86da3791f0 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_ycalendar.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_ycalendar.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_yhoverformat.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_yhoverformat.py new file mode 100644 index 0000000000..a81d06eddf --- /dev/null +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_yhoverformat.py @@ -0,0 +1,13 @@ +import _plotly_utils.basevalidators + + +class YhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__( + self, plotly_name="yhoverformat", parent_name="histogram2dcontour", **kwargs + ): + super(YhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_ysrc.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_ysrc.py index 310f2d51cf..1170d97956 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_ysrc.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_ysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ysrc", parent_name="histogram2dcontour", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_z.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_z.py index 48de2103d1..59d621ef26 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_z.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_z.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="z", parent_name="histogram2dcontour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_zauto.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_zauto.py index 3735ddff24..702cc7481e 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_zauto.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_zauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zauto", parent_name="histogram2dcontour", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_zhoverformat.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_zhoverformat.py index 3cbd8a8c65..d90a754438 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_zhoverformat.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_zhoverformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_zmax.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_zmax.py index 817f8b18f8..d25d53da14 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_zmax.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_zmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmax", parent_name="histogram2dcontour", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"zauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_zmid.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_zmid.py index eb63bade51..d99a5228a2 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_zmid.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_zmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmid", parent_name="histogram2dcontour", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_zmin.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_zmin.py index d71ae10574..826111c30a 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_zmin.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_zmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="zmin", parent_name="histogram2dcontour", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"zauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/_zsrc.py b/packages/python/plotly/plotly/validators/histogram2dcontour/_zsrc.py index e4048ad1dc..d74d9bca68 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/_zsrc.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/_zsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="zsrc", parent_name="histogram2dcontour", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/__init__.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_bgcolor.py index e0f23be034..3aab60581f 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_bordercolor.py index 6eb382f78b..716281f707 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_bordercolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_borderwidth.py index 611f964e19..4856df8136 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_borderwidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_dtick.py index c8daccfebe..0ad3a8ba84 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_exponentformat.py index 5e781ed903..06d3617cd4 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_exponentformat.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_len.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_len.py index f74c2bc275..942f68ed9a 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_len.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_lenmode.py index a3ea0f9571..858ba483dc 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_lenmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_minexponent.py index 355cf79937..8384e59ec2 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_minexponent.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_nticks.py index ebeddeb66a..ed0d7d4831 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_outlinecolor.py index 547eebd455..18288ade9c 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_outlinecolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_outlinewidth.py index fa5b31e936..b7f76c877d 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_outlinewidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_separatethousands.py index acd2ee04af..06028efece 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_showexponent.py index b23ceb9ad1..038a772de1 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_showexponent.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_showticklabels.py index a6bc8dda55..2f78c5c0b7 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_showticklabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_showtickprefix.py index 2f1dfc1f3a..e190b14653 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_showtickprefix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_showticksuffix.py index 0f143a2dda..e78bd14a4e 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_showticksuffix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_thickness.py index 8dfbc0ab73..9948dedae3 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_thickness.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_thicknessmode.py index cf414b452d..0756aea749 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_thicknessmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tick0.py index 0b5a7e01e4..dad60e671b 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickangle.py index 37e062c636..3e6329a9a8 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickangle.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickcolor.py index 63827fb82f..dfc52e70a6 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickcolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickformat.py index 7ff4233f2d..a75d61c197 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickformat.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..79d26cfa08 --- /dev/null +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="histogram2dcontour.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "colorbars"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticklabelposition.py index 2a826a332e..aa6f283923 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticklen.py index 640d03ae9e..e1c15ad61b 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickmode.py index 0b6a68f42c..0abab84c34 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickmode.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickprefix.py index 8eacce9868..e1b434e3d8 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickprefix.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticks.py index e31210caee..79027ae2d0 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticksuffix.py index abef87beb5..408d47e375 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticksuffix.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticktext.py index ac456e3d77..dde87c04c5 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticktext.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticktextsrc.py index dcd1ea757c..2b05810afd 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ticktextsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickvals.py index 304365ea35..803a575cd6 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickvals.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickvalssrc.py index 1305af20fe..958589bfcc 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickvalssrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickwidth.py index 7f4613854e..c4ca06cdb2 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_tickwidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_x.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_x.py index 52555fe69c..72446c7808 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_x.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_xanchor.py index 922d1f9f91..97d1147ccc 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_xpad.py index 88707cd432..3ae6896786 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_xpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_y.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_y.py index f25ddd0f5a..466ec1ed3c 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_y.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_yanchor.py index 433a216f39..a9427d9c25 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ypad.py index f81fe8484a..9286d6ffb3 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/_ypad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickfont/_color.py index e777d9777f..63f0952301 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickfont/_family.py index ec63096501..db70774d2f 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickfont/_size.py index f422d5767f..65e7149659 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickformatstop/_dtickrange.py index 707895c44f..3cb6d97cf9 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "colorbars"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickformatstop/_enabled.py index bc66a59e6d..f6facbd28f 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickformatstop/_name.py index 1d7e06315f..7e5f5a0a3d 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickformatstop/_templateitemname.py index 3af79720c4..63cde7e63a 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickformatstop/_value.py index e934c74966..59883b4d26 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/title/_side.py index 3844fc1af8..3fba44431b 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/title/_side.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/title/_text.py index 134649603b..abfeabf02a 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/title/_text.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/title/font/_color.py index e5ec08d5c7..8ca15201f1 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/title/font/_family.py index 5285089558..d095db1b84 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/title/font/_size.py index ed0ad50199..33778acfbe 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/colorbar/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_coloring.py b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_coloring.py index 499571871d..5ab561e090 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_coloring.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_coloring.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fill", "heatmap", "lines", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_end.py b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_end.py index da36accdf7..deb5ab1334 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_end.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_end.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"^autocontour": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_labelformat.py b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_labelformat.py index 36a3ab0016..77cf28f441 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_labelformat.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_labelformat.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_operation.py b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_operation.py index 9526bb84b1..030f081635 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_operation.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_operation.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_showlabels.py b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_showlabels.py index f64e8cf91e..226efb8dbc 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_showlabels.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_showlabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_showlines.py b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_showlines.py index c2f3b2f1c1..c9ff5ee2ee 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_showlines.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_showlines.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_size.py b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_size.py index 2e99b22062..9904332c67 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_size.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_size.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"^autocontour": False}), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_start.py b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_start.py index 23279ffb69..89536f9c1b 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_start.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_start.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"^autocontour": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_type.py b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_type.py index e214cc0b76..cc7614984c 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_type.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_type.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["levels", "constraint"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_value.py b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_value.py index 5a5cf06d7e..4e69faca09 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_value.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/_value.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/labelfont/_color.py b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/labelfont/_color.py index 6466a1d83e..653cb594a6 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/labelfont/_color.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/labelfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/labelfont/_family.py b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/labelfont/_family.py index 4f5ea80138..dacc204642 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/labelfont/_family.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/labelfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/labelfont/_size.py b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/labelfont/_size.py index 8c7fddf686..2907650f0b 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/contours/labelfont/_size.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/contours/labelfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_align.py index ce0ac070b7..8c3140a13a 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_align.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_alignsrc.py index 5ed0208584..d5329a008a 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_alignsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_bgcolor.py index f823c3677f..8683346c22 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_bgcolor.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_bgcolorsrc.py index 33c15f6170..53d21add23 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_bgcolorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_bordercolor.py index c2a4fc5379..b85b9478b1 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_bordercolor.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_bordercolorsrc.py index a20022843e..da4127de83 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_bordercolorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_namelength.py index b15af6e9df..239c67f0f6 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_namelength.py @@ -14,6 +14,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_namelengthsrc.py index 03e800f6e5..5f52c3008d 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/_namelengthsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/font/_color.py index 776bc7cfaa..862107f3f7 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/font/_color.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/font/_colorsrc.py index 70d95fb5a1..d937484a07 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/font/_colorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/font/_family.py index a4164b23ab..bb4b1d5efb 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/font/_family.py @@ -14,7 +14,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/font/_familysrc.py index 81ac202f28..f7afb3d692 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/font/_familysrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/font/_size.py index 4e6594cf47..30b02d9bd2 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/font/_size.py @@ -14,6 +14,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/font/_sizesrc.py index ab7741de61..1053b48db9 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/hoverlabel/font/_sizesrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/line/_color.py b/packages/python/plotly/plotly/validators/histogram2dcontour/line/_color.py index a636ab7bf7..38e5f83ed3 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/line/_color.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/line/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style+colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/line/_dash.py b/packages/python/plotly/plotly/validators/histogram2dcontour/line/_dash.py index 58ac74e7dd..e95cbef1d2 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/line/_dash.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/line/_dash.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", ["solid", "dot", "dash", "longdash", "dashdot", "longdashdot"] ), diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/line/_smoothing.py b/packages/python/plotly/plotly/validators/histogram2dcontour/line/_smoothing.py index f1c160f621..3f697699b0 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/line/_smoothing.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/line/_smoothing.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 1.3), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/line/_width.py b/packages/python/plotly/plotly/validators/histogram2dcontour/line/_width.py index b8d10eb660..52c2606655 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/line/_width.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/line/_width.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style+colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/marker/_color.py b/packages/python/plotly/plotly/validators/histogram2dcontour/marker/_color.py index 3974bdfc3e..dcb225ba75 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/marker/_color.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/marker/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/marker/_colorsrc.py b/packages/python/plotly/plotly/validators/histogram2dcontour/marker/_colorsrc.py index 86c523f57d..da488fbc30 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/marker/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/marker/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/histogram2dcontour/stream/_maxpoints.py index 2098c9e637..5ef02e8ed2 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/stream/_token.py b/packages/python/plotly/plotly/validators/histogram2dcontour/stream/_token.py index d0bc0372a4..5cb6362938 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/stream/_token.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/stream/_token.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/xbins/_end.py b/packages/python/plotly/plotly/validators/histogram2dcontour/xbins/_end.py index 6e71a9beea..52fb970b89 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/xbins/_end.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/xbins/_end.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/xbins/_size.py b/packages/python/plotly/plotly/validators/histogram2dcontour/xbins/_size.py index 86444c7be3..cc22b2f50e 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/xbins/_size.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/xbins/_size.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/xbins/_start.py b/packages/python/plotly/plotly/validators/histogram2dcontour/xbins/_start.py index 1b5b12ae70..0bc6d61ad5 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/xbins/_start.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/xbins/_start.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/ybins/_end.py b/packages/python/plotly/plotly/validators/histogram2dcontour/ybins/_end.py index 06052f15a2..3b663e97f2 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/ybins/_end.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/ybins/_end.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/ybins/_size.py b/packages/python/plotly/plotly/validators/histogram2dcontour/ybins/_size.py index eae3ae9495..791a51f32d 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/ybins/_size.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/ybins/_size.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/histogram2dcontour/ybins/_start.py b/packages/python/plotly/plotly/validators/histogram2dcontour/ybins/_start.py index 7df0e0b109..dc373541d9 100644 --- a/packages/python/plotly/plotly/validators/histogram2dcontour/ybins/_start.py +++ b/packages/python/plotly/plotly/validators/histogram2dcontour/ybins/_start.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/__init__.py b/packages/python/plotly/plotly/validators/image/__init__.py index c5e1879086..24dfa41bf0 100644 --- a/packages/python/plotly/plotly/validators/image/__init__.py +++ b/packages/python/plotly/plotly/validators/image/__init__.py @@ -2,6 +2,7 @@ if sys.version_info < (3, 7): from ._zsrc import ZsrcValidator + from ._zsmooth import ZsmoothValidator from ._zmin import ZminValidator from ._zmax import ZmaxValidator from ._z import ZValidator @@ -42,6 +43,7 @@ [], [ "._zsrc.ZsrcValidator", + "._zsmooth.ZsmoothValidator", "._zmin.ZminValidator", "._zmax.ZmaxValidator", "._z.ZValidator", diff --git a/packages/python/plotly/plotly/validators/image/_colormodel.py b/packages/python/plotly/plotly/validators/image/_colormodel.py index 988beea9cf..fc2712cf97 100644 --- a/packages/python/plotly/plotly/validators/image/_colormodel.py +++ b/packages/python/plotly/plotly/validators/image/_colormodel.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="colormodel", parent_name="image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["rgb", "rgba", "rgba256", "hsl", "hsla"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_customdata.py b/packages/python/plotly/plotly/validators/image/_customdata.py index 978120d5ef..b8aca32b80 100644 --- a/packages/python/plotly/plotly/validators/image/_customdata.py +++ b/packages/python/plotly/plotly/validators/image/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_customdatasrc.py b/packages/python/plotly/plotly/validators/image/_customdatasrc.py index f4f7648e50..9527dbb80f 100644 --- a/packages/python/plotly/plotly/validators/image/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/image/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_dx.py b/packages/python/plotly/plotly/validators/image/_dx.py index b7f84d8d06..e59b4b3cb3 100644 --- a/packages/python/plotly/plotly/validators/image/_dx.py +++ b/packages/python/plotly/plotly/validators/image/_dx.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="dx", parent_name="image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_dy.py b/packages/python/plotly/plotly/validators/image/_dy.py index 574f48315f..c946d5d002 100644 --- a/packages/python/plotly/plotly/validators/image/_dy.py +++ b/packages/python/plotly/plotly/validators/image/_dy.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="dy", parent_name="image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_hoverinfo.py b/packages/python/plotly/plotly/validators/image/_hoverinfo.py index fc0d2266ab..1a76c76b7d 100644 --- a/packages/python/plotly/plotly/validators/image/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/image/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="image", **kwargs): edit_type=kwargs.pop("edit_type", "none"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["x", "y", "z", "color", "name", "text"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/image/_hoverinfosrc.py index 83f5fdd8dd..c44bf9b9c9 100644 --- a/packages/python/plotly/plotly/validators/image/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/image/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_hovertemplate.py b/packages/python/plotly/plotly/validators/image/_hovertemplate.py index 3e3b886b10..096ba5491e 100644 --- a/packages/python/plotly/plotly/validators/image/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/image/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="image", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/image/_hovertemplatesrc.py index f955997dcd..16174285fa 100644 --- a/packages/python/plotly/plotly/validators/image/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/image/_hovertemplatesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertemplatesrc", parent_name="image", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_hovertext.py b/packages/python/plotly/plotly/validators/image/_hovertext.py index 8a8974169d..be158fe37e 100644 --- a/packages/python/plotly/plotly/validators/image/_hovertext.py +++ b/packages/python/plotly/plotly/validators/image/_hovertext.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertext", parent_name="image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_hovertextsrc.py b/packages/python/plotly/plotly/validators/image/_hovertextsrc.py index 93137d7ee0..c37f9392ab 100644 --- a/packages/python/plotly/plotly/validators/image/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/image/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_ids.py b/packages/python/plotly/plotly/validators/image/_ids.py index a4c739389b..7f70af5aba 100644 --- a/packages/python/plotly/plotly/validators/image/_ids.py +++ b/packages/python/plotly/plotly/validators/image/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_idssrc.py b/packages/python/plotly/plotly/validators/image/_idssrc.py index 1730f60767..faa9e5ca5a 100644 --- a/packages/python/plotly/plotly/validators/image/_idssrc.py +++ b/packages/python/plotly/plotly/validators/image/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_meta.py b/packages/python/plotly/plotly/validators/image/_meta.py index e1ee95852e..4b7c74ce52 100644 --- a/packages/python/plotly/plotly/validators/image/_meta.py +++ b/packages/python/plotly/plotly/validators/image/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="image", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_metasrc.py b/packages/python/plotly/plotly/validators/image/_metasrc.py index 7eb07c480a..a165131a58 100644 --- a/packages/python/plotly/plotly/validators/image/_metasrc.py +++ b/packages/python/plotly/plotly/validators/image/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_name.py b/packages/python/plotly/plotly/validators/image/_name.py index 3ab0910c37..c6d18b6908 100644 --- a/packages/python/plotly/plotly/validators/image/_name.py +++ b/packages/python/plotly/plotly/validators/image/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_opacity.py b/packages/python/plotly/plotly/validators/image/_opacity.py index 494605e103..d59b6c8dde 100644 --- a/packages/python/plotly/plotly/validators/image/_opacity.py +++ b/packages/python/plotly/plotly/validators/image/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="image", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_source.py b/packages/python/plotly/plotly/validators/image/_source.py index e0ef8caa76..777f718f40 100644 --- a/packages/python/plotly/plotly/validators/image/_source.py +++ b/packages/python/plotly/plotly/validators/image/_source.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="source", parent_name="image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_text.py b/packages/python/plotly/plotly/validators/image/_text.py index 2e1799e607..7cc8be7fc5 100644 --- a/packages/python/plotly/plotly/validators/image/_text.py +++ b/packages/python/plotly/plotly/validators/image/_text.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="text", parent_name="image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_textsrc.py b/packages/python/plotly/plotly/validators/image/_textsrc.py index a9111c5004..2cf2f4ee55 100644 --- a/packages/python/plotly/plotly/validators/image/_textsrc.py +++ b/packages/python/plotly/plotly/validators/image/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_uid.py b/packages/python/plotly/plotly/validators/image/_uid.py index 9e0390c151..52005a861b 100644 --- a/packages/python/plotly/plotly/validators/image/_uid.py +++ b/packages/python/plotly/plotly/validators/image/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_uirevision.py b/packages/python/plotly/plotly/validators/image/_uirevision.py index 94d564df81..f3803aafe4 100644 --- a/packages/python/plotly/plotly/validators/image/_uirevision.py +++ b/packages/python/plotly/plotly/validators/image/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_visible.py b/packages/python/plotly/plotly/validators/image/_visible.py index b6d2b6a0f4..62c46866cd 100644 --- a/packages/python/plotly/plotly/validators/image/_visible.py +++ b/packages/python/plotly/plotly/validators/image/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_x0.py b/packages/python/plotly/plotly/validators/image/_x0.py index f655668984..b1685c97df 100644 --- a/packages/python/plotly/plotly/validators/image/_x0.py +++ b/packages/python/plotly/plotly/validators/image/_x0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x0", parent_name="image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_xaxis.py b/packages/python/plotly/plotly/validators/image/_xaxis.py index aefb3fb4a3..42d362e494 100644 --- a/packages/python/plotly/plotly/validators/image/_xaxis.py +++ b/packages/python/plotly/plotly/validators/image/_xaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xaxis", parent_name="image", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "x"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_y0.py b/packages/python/plotly/plotly/validators/image/_y0.py index 5b347a27db..86bb68ab15 100644 --- a/packages/python/plotly/plotly/validators/image/_y0.py +++ b/packages/python/plotly/plotly/validators/image/_y0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y0", parent_name="image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_yaxis.py b/packages/python/plotly/plotly/validators/image/_yaxis.py index 54f5cdb66c..c5f6eacc91 100644 --- a/packages/python/plotly/plotly/validators/image/_yaxis.py +++ b/packages/python/plotly/plotly/validators/image/_yaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="yaxis", parent_name="image", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "y"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_z.py b/packages/python/plotly/plotly/validators/image/_z.py index 7d0531cbae..21ba3e4479 100644 --- a/packages/python/plotly/plotly/validators/image/_z.py +++ b/packages/python/plotly/plotly/validators/image/_z.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="z", parent_name="image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_zmax.py b/packages/python/plotly/plotly/validators/image/_zmax.py index 5de0dac082..f6b0003764 100644 --- a/packages/python/plotly/plotly/validators/image/_zmax.py +++ b/packages/python/plotly/plotly/validators/image/_zmax.py @@ -16,6 +16,5 @@ def __init__(self, plotly_name="zmax", parent_name="image", **kwargs): {"valType": "number", "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_zmin.py b/packages/python/plotly/plotly/validators/image/_zmin.py index 3024dc9641..78f7af55ef 100644 --- a/packages/python/plotly/plotly/validators/image/_zmin.py +++ b/packages/python/plotly/plotly/validators/image/_zmin.py @@ -16,6 +16,5 @@ def __init__(self, plotly_name="zmin", parent_name="image", **kwargs): {"valType": "number", "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/_zsmooth.py b/packages/python/plotly/plotly/validators/image/_zsmooth.py new file mode 100644 index 0000000000..6e90519098 --- /dev/null +++ b/packages/python/plotly/plotly/validators/image/_zsmooth.py @@ -0,0 +1,12 @@ +import _plotly_utils.basevalidators + + +class ZsmoothValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__(self, plotly_name="zsmooth", parent_name="image", **kwargs): + super(ZsmoothValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "plot"), + values=kwargs.pop("values", ["fast", False]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/image/_zsrc.py b/packages/python/plotly/plotly/validators/image/_zsrc.py index a042ce6c04..20a1148a96 100644 --- a/packages/python/plotly/plotly/validators/image/_zsrc.py +++ b/packages/python/plotly/plotly/validators/image/_zsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="zsrc", parent_name="image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/image/hoverlabel/_align.py index a48c2e7fa1..3d8fda6eaf 100644 --- a/packages/python/plotly/plotly/validators/image/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/image/hoverlabel/_align.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="align", parent_name="image.hoverlabel", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/image/hoverlabel/_alignsrc.py index 50f311bfdb..ba2b0accdd 100644 --- a/packages/python/plotly/plotly/validators/image/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/image/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/image/hoverlabel/_bgcolor.py index 916260c520..80cff8ea2c 100644 --- a/packages/python/plotly/plotly/validators/image/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/image/hoverlabel/_bgcolor.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="bgcolor", parent_name="image.hoverlabel", **kwar parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/image/hoverlabel/_bgcolorsrc.py index f8ff09a189..e775aeb317 100644 --- a/packages/python/plotly/plotly/validators/image/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/image/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/image/hoverlabel/_bordercolor.py index cf865c73bd..fae7177720 100644 --- a/packages/python/plotly/plotly/validators/image/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/image/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/image/hoverlabel/_bordercolorsrc.py index aaf33cefc9..13f6e510c3 100644 --- a/packages/python/plotly/plotly/validators/image/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/image/hoverlabel/_bordercolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/image/hoverlabel/_namelength.py index aed34c9eb1..5b03df8ae4 100644 --- a/packages/python/plotly/plotly/validators/image/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/image/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/image/hoverlabel/_namelengthsrc.py index 3d3b230034..96097d23ea 100644 --- a/packages/python/plotly/plotly/validators/image/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/image/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/image/hoverlabel/font/_color.py index 958887864d..6f81599316 100644 --- a/packages/python/plotly/plotly/validators/image/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/image/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/image/hoverlabel/font/_colorsrc.py index 0b3056ddf8..ff102ef69b 100644 --- a/packages/python/plotly/plotly/validators/image/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/image/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/image/hoverlabel/font/_family.py index 63509ab516..16abf0a874 100644 --- a/packages/python/plotly/plotly/validators/image/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/image/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/image/hoverlabel/font/_familysrc.py index 3e0b3decc8..0cfcf79437 100644 --- a/packages/python/plotly/plotly/validators/image/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/image/hoverlabel/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/image/hoverlabel/font/_size.py index 417f0d3258..236105a469 100644 --- a/packages/python/plotly/plotly/validators/image/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/image/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/image/hoverlabel/font/_sizesrc.py index f857cc837f..35dd2f8a65 100644 --- a/packages/python/plotly/plotly/validators/image/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/image/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/image/stream/_maxpoints.py index cc6d50b0da..c8cfb2f55a 100644 --- a/packages/python/plotly/plotly/validators/image/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/image/stream/_maxpoints.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="maxpoints", parent_name="image.stream", **kwargs edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/image/stream/_token.py b/packages/python/plotly/plotly/validators/image/stream/_token.py index 69f80a2782..8f175e2a35 100644 --- a/packages/python/plotly/plotly/validators/image/stream/_token.py +++ b/packages/python/plotly/plotly/validators/image/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="image.stream", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/_align.py b/packages/python/plotly/plotly/validators/indicator/_align.py index 0ebc132558..f3d0da5bf8 100644 --- a/packages/python/plotly/plotly/validators/indicator/_align.py +++ b/packages/python/plotly/plotly/validators/indicator/_align.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="align", parent_name="indicator", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/_customdata.py b/packages/python/plotly/plotly/validators/indicator/_customdata.py index 1794323e89..a141f2da6d 100644 --- a/packages/python/plotly/plotly/validators/indicator/_customdata.py +++ b/packages/python/plotly/plotly/validators/indicator/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="indicator", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/_customdatasrc.py b/packages/python/plotly/plotly/validators/indicator/_customdatasrc.py index 2495dea31e..ce38cb524e 100644 --- a/packages/python/plotly/plotly/validators/indicator/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/indicator/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="indicator", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/_ids.py b/packages/python/plotly/plotly/validators/indicator/_ids.py index c3d1a0e348..86c9bb9356 100644 --- a/packages/python/plotly/plotly/validators/indicator/_ids.py +++ b/packages/python/plotly/plotly/validators/indicator/_ids.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ids", parent_name="indicator", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/_idssrc.py b/packages/python/plotly/plotly/validators/indicator/_idssrc.py index 4580461499..92809cc3a3 100644 --- a/packages/python/plotly/plotly/validators/indicator/_idssrc.py +++ b/packages/python/plotly/plotly/validators/indicator/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="indicator", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/_meta.py b/packages/python/plotly/plotly/validators/indicator/_meta.py index 3ef9e5db3c..641513f7e8 100644 --- a/packages/python/plotly/plotly/validators/indicator/_meta.py +++ b/packages/python/plotly/plotly/validators/indicator/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="indicator", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/_metasrc.py b/packages/python/plotly/plotly/validators/indicator/_metasrc.py index 4728ffb430..6f72fbe675 100644 --- a/packages/python/plotly/plotly/validators/indicator/_metasrc.py +++ b/packages/python/plotly/plotly/validators/indicator/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="indicator", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/_mode.py b/packages/python/plotly/plotly/validators/indicator/_mode.py index 3e52cbf3bf..a1ac043418 100644 --- a/packages/python/plotly/plotly/validators/indicator/_mode.py +++ b/packages/python/plotly/plotly/validators/indicator/_mode.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="mode", parent_name="indicator", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), flags=kwargs.pop("flags", ["number", "delta", "gauge"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/_name.py b/packages/python/plotly/plotly/validators/indicator/_name.py index 9690864b76..7e8868d286 100644 --- a/packages/python/plotly/plotly/validators/indicator/_name.py +++ b/packages/python/plotly/plotly/validators/indicator/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="indicator", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/_uid.py b/packages/python/plotly/plotly/validators/indicator/_uid.py index 5dccb040f6..32c7b80106 100644 --- a/packages/python/plotly/plotly/validators/indicator/_uid.py +++ b/packages/python/plotly/plotly/validators/indicator/_uid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="uid", parent_name="indicator", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/_uirevision.py b/packages/python/plotly/plotly/validators/indicator/_uirevision.py index 9a7ea7b238..88299df06b 100644 --- a/packages/python/plotly/plotly/validators/indicator/_uirevision.py +++ b/packages/python/plotly/plotly/validators/indicator/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="indicator", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/_value.py b/packages/python/plotly/plotly/validators/indicator/_value.py index 58586d92ee..134dd37193 100644 --- a/packages/python/plotly/plotly/validators/indicator/_value.py +++ b/packages/python/plotly/plotly/validators/indicator/_value.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="value", parent_name="indicator", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/_visible.py b/packages/python/plotly/plotly/validators/indicator/_visible.py index f7c00412ac..9231534438 100644 --- a/packages/python/plotly/plotly/validators/indicator/_visible.py +++ b/packages/python/plotly/plotly/validators/indicator/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="indicator", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/delta/_position.py b/packages/python/plotly/plotly/validators/indicator/delta/_position.py index 853a902df7..6d36a5a22a 100644 --- a/packages/python/plotly/plotly/validators/indicator/delta/_position.py +++ b/packages/python/plotly/plotly/validators/indicator/delta/_position.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="position", parent_name="indicator.delta", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["top", "bottom", "left", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/delta/_reference.py b/packages/python/plotly/plotly/validators/indicator/delta/_reference.py index ac7cc6ad39..f616f5aebb 100644 --- a/packages/python/plotly/plotly/validators/indicator/delta/_reference.py +++ b/packages/python/plotly/plotly/validators/indicator/delta/_reference.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/delta/_relative.py b/packages/python/plotly/plotly/validators/indicator/delta/_relative.py index e342a7720a..329471b1b8 100644 --- a/packages/python/plotly/plotly/validators/indicator/delta/_relative.py +++ b/packages/python/plotly/plotly/validators/indicator/delta/_relative.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="relative", parent_name="indicator.delta", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/delta/_valueformat.py b/packages/python/plotly/plotly/validators/indicator/delta/_valueformat.py index ef098a5154..7127905b31 100644 --- a/packages/python/plotly/plotly/validators/indicator/delta/_valueformat.py +++ b/packages/python/plotly/plotly/validators/indicator/delta/_valueformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/delta/decreasing/_color.py b/packages/python/plotly/plotly/validators/indicator/delta/decreasing/_color.py index 367e98beb6..c28e40546f 100644 --- a/packages/python/plotly/plotly/validators/indicator/delta/decreasing/_color.py +++ b/packages/python/plotly/plotly/validators/indicator/delta/decreasing/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/delta/decreasing/_symbol.py b/packages/python/plotly/plotly/validators/indicator/delta/decreasing/_symbol.py index 111170ca06..1dc5d06d70 100644 --- a/packages/python/plotly/plotly/validators/indicator/delta/decreasing/_symbol.py +++ b/packages/python/plotly/plotly/validators/indicator/delta/decreasing/_symbol.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/delta/font/_color.py b/packages/python/plotly/plotly/validators/indicator/delta/font/_color.py index 9a76e7bed1..4eb38cd9a6 100644 --- a/packages/python/plotly/plotly/validators/indicator/delta/font/_color.py +++ b/packages/python/plotly/plotly/validators/indicator/delta/font/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/delta/font/_family.py b/packages/python/plotly/plotly/validators/indicator/delta/font/_family.py index c4529d912e..39a2ac6e81 100644 --- a/packages/python/plotly/plotly/validators/indicator/delta/font/_family.py +++ b/packages/python/plotly/plotly/validators/indicator/delta/font/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/delta/font/_size.py b/packages/python/plotly/plotly/validators/indicator/delta/font/_size.py index 9d9acc8f14..74b1856924 100644 --- a/packages/python/plotly/plotly/validators/indicator/delta/font/_size.py +++ b/packages/python/plotly/plotly/validators/indicator/delta/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/delta/increasing/_color.py b/packages/python/plotly/plotly/validators/indicator/delta/increasing/_color.py index f17dcba5b7..b23bb37482 100644 --- a/packages/python/plotly/plotly/validators/indicator/delta/increasing/_color.py +++ b/packages/python/plotly/plotly/validators/indicator/delta/increasing/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/delta/increasing/_symbol.py b/packages/python/plotly/plotly/validators/indicator/delta/increasing/_symbol.py index 57a7222943..1461c9d855 100644 --- a/packages/python/plotly/plotly/validators/indicator/delta/increasing/_symbol.py +++ b/packages/python/plotly/plotly/validators/indicator/delta/increasing/_symbol.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/domain/_column.py b/packages/python/plotly/plotly/validators/indicator/domain/_column.py index 9465c167a3..89ffc351da 100644 --- a/packages/python/plotly/plotly/validators/indicator/domain/_column.py +++ b/packages/python/plotly/plotly/validators/indicator/domain/_column.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="column", parent_name="indicator.domain", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/domain/_row.py b/packages/python/plotly/plotly/validators/indicator/domain/_row.py index 239aa74102..f9f04f1944 100644 --- a/packages/python/plotly/plotly/validators/indicator/domain/_row.py +++ b/packages/python/plotly/plotly/validators/indicator/domain/_row.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="row", parent_name="indicator.domain", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/domain/_x.py b/packages/python/plotly/plotly/validators/indicator/domain/_x.py index a0e4bbfd0f..7ea3256d40 100644 --- a/packages/python/plotly/plotly/validators/indicator/domain/_x.py +++ b/packages/python/plotly/plotly/validators/indicator/domain/_x.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="x", parent_name="indicator.domain", **kwargs): {"valType": "number", "min": 0, "max": 1, "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/domain/_y.py b/packages/python/plotly/plotly/validators/indicator/domain/_y.py index b321c0808e..9a4167856e 100644 --- a/packages/python/plotly/plotly/validators/indicator/domain/_y.py +++ b/packages/python/plotly/plotly/validators/indicator/domain/_y.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="y", parent_name="indicator.domain", **kwargs): {"valType": "number", "min": 0, "max": 1, "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/_bgcolor.py b/packages/python/plotly/plotly/validators/indicator/gauge/_bgcolor.py index c5b6b3a964..be3744d288 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/_bgcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="bgcolor", parent_name="indicator.gauge", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/_bordercolor.py b/packages/python/plotly/plotly/validators/indicator/gauge/_bordercolor.py index aced481179..e09a5a9809 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/_borderwidth.py b/packages/python/plotly/plotly/validators/indicator/gauge/_borderwidth.py index 9f7bfe9420..757be5dea9 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/_shape.py b/packages/python/plotly/plotly/validators/indicator/gauge/_shape.py index 1553bb4da4..a92714cae4 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/_shape.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/_shape.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="shape", parent_name="indicator.gauge", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["angular", "bullet"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_dtick.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_dtick.py index 219d2c5041..6f2e9dc613 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_dtick.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_exponentformat.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_exponentformat.py index f26ca14c26..d7a98f6037 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_exponentformat.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_minexponent.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_minexponent.py index cb622e3b3d..9473057862 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_minexponent.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_nticks.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_nticks.py index 45eeb13b4e..7b600d6dcc 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_nticks.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_range.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_range.py index 7bf90ae50a..b979f8b21a 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_range.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_range.py @@ -16,6 +16,5 @@ def __init__( {"valType": "number", "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_separatethousands.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_separatethousands.py index ccf6e166dc..f09b9590d5 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_showexponent.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_showexponent.py index 7f57d81408..7fd806ba9e 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_showexponent.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_showticklabels.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_showticklabels.py index 4a275b90c1..d86a78f39a 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_showticklabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_showtickprefix.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_showtickprefix.py index 2d45217ccb..ab538ecb1f 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_showtickprefix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_showticksuffix.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_showticksuffix.py index cb210fa177..1432e8d00b 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_showticksuffix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tick0.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tick0.py index cf513896de..4519568687 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tick0.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickangle.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickangle.py index 16be5abb50..7ac43a0c0d 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickangle.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickcolor.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickcolor.py index 3472a825de..f9d4843dcb 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickformat.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickformat.py index ae45960beb..76e8c3c6fd 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickformat.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_ticklen.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_ticklen.py index deeb3a91d1..10b2950fa7 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_ticklen.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickmode.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickmode.py index b92acf5697..2ac06fb582 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickmode.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickprefix.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickprefix.py index dbd3e2bce8..f53d40fd8d 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_ticks.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_ticks.py index 78f2aa4530..85b2e380dd 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_ticks.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_ticksuffix.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_ticksuffix.py index 840a724ec3..9448fb29fd 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_ticktext.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_ticktext.py index e704956395..fde0a74d23 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_ticktext.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_ticktextsrc.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_ticktextsrc.py index f690812d0b..d8fb026630 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickvals.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickvals.py index 67c736082c..03760faf30 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickvals.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickvalssrc.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickvalssrc.py index b1b5db114d..456c64e233 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickwidth.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickwidth.py index b4ba9d20dd..d1b988fd6b 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_visible.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_visible.py index f38e732993..8e91061b8e 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/_visible.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/_visible.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickfont/_color.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickfont/_color.py index 70c12b8ad0..a4815754ab 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickfont/_family.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickfont/_family.py index 6479c6e79b..0be13b3097 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickfont/_size.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickfont/_size.py index 40dd5792bf..42d3b13bcd 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickformatstop/_dtickrange.py index c4dfe4bc8a..bb0f24c715 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickformatstop/_enabled.py index 989ff11146..f60cca30b2 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickformatstop/_name.py index b0f01cb7ad..7de25c90c5 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickformatstop/_templateitemname.py index b9853cd065..9f28e177e6 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickformatstop/_value.py index bcbea7a573..3f740af1be 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/axis/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/bar/_color.py b/packages/python/plotly/plotly/validators/indicator/gauge/bar/_color.py index e3c75539ca..be04287430 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/bar/_color.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/bar/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/bar/_thickness.py b/packages/python/plotly/plotly/validators/indicator/gauge/bar/_thickness.py index 79ea9cdbc7..e6e9f16fa9 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/bar/_thickness.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/bar/_thickness.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/bar/line/_color.py b/packages/python/plotly/plotly/validators/indicator/gauge/bar/line/_color.py index d8c115c15e..83822296e1 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/bar/line/_color.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/bar/line/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/bar/line/_width.py b/packages/python/plotly/plotly/validators/indicator/gauge/bar/line/_width.py index 54e9365dbb..5494f6181e 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/bar/line/_width.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/bar/line/_width.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/step/_color.py b/packages/python/plotly/plotly/validators/indicator/gauge/step/_color.py index 21c08968b9..d387b883a7 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/step/_color.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/step/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/step/_name.py b/packages/python/plotly/plotly/validators/indicator/gauge/step/_name.py index 0264f8bf1b..3449b2728a 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/step/_name.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/step/_name.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/step/_range.py b/packages/python/plotly/plotly/validators/indicator/gauge/step/_range.py index 40ba541e6f..40572bc045 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/step/_range.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/step/_range.py @@ -16,6 +16,5 @@ def __init__( {"valType": "number", "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/step/_templateitemname.py b/packages/python/plotly/plotly/validators/indicator/gauge/step/_templateitemname.py index 7e68222a99..f0f97de22e 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/step/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/step/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/step/_thickness.py b/packages/python/plotly/plotly/validators/indicator/gauge/step/_thickness.py index a360edfeed..730c7befc3 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/step/_thickness.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/step/_thickness.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/step/line/_color.py b/packages/python/plotly/plotly/validators/indicator/gauge/step/line/_color.py index 2c021fc48b..b5a44c5d61 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/step/line/_color.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/step/line/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/step/line/_width.py b/packages/python/plotly/plotly/validators/indicator/gauge/step/line/_width.py index 5e71fc4223..17b149354d 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/step/line/_width.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/step/line/_width.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/threshold/_thickness.py b/packages/python/plotly/plotly/validators/indicator/gauge/threshold/_thickness.py index 71f4af6e01..d33838626d 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/threshold/_thickness.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/threshold/_thickness.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/threshold/_value.py b/packages/python/plotly/plotly/validators/indicator/gauge/threshold/_value.py index 4d47918800..1a64f7e4a4 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/threshold/_value.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/threshold/_value.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/threshold/line/_color.py b/packages/python/plotly/plotly/validators/indicator/gauge/threshold/line/_color.py index e10b0815ea..478b61d38d 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/threshold/line/_color.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/threshold/line/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/gauge/threshold/line/_width.py b/packages/python/plotly/plotly/validators/indicator/gauge/threshold/line/_width.py index 433e63258f..5f926c772f 100644 --- a/packages/python/plotly/plotly/validators/indicator/gauge/threshold/line/_width.py +++ b/packages/python/plotly/plotly/validators/indicator/gauge/threshold/line/_width.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/number/_prefix.py b/packages/python/plotly/plotly/validators/indicator/number/_prefix.py index eb20315a4b..7b707189a5 100644 --- a/packages/python/plotly/plotly/validators/indicator/number/_prefix.py +++ b/packages/python/plotly/plotly/validators/indicator/number/_prefix.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="prefix", parent_name="indicator.number", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/number/_suffix.py b/packages/python/plotly/plotly/validators/indicator/number/_suffix.py index d574b45289..3da36df8b6 100644 --- a/packages/python/plotly/plotly/validators/indicator/number/_suffix.py +++ b/packages/python/plotly/plotly/validators/indicator/number/_suffix.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="suffix", parent_name="indicator.number", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/number/_valueformat.py b/packages/python/plotly/plotly/validators/indicator/number/_valueformat.py index e27df5cf22..b208f526ad 100644 --- a/packages/python/plotly/plotly/validators/indicator/number/_valueformat.py +++ b/packages/python/plotly/plotly/validators/indicator/number/_valueformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/number/font/_color.py b/packages/python/plotly/plotly/validators/indicator/number/font/_color.py index d1c7ded065..4f57f524d2 100644 --- a/packages/python/plotly/plotly/validators/indicator/number/font/_color.py +++ b/packages/python/plotly/plotly/validators/indicator/number/font/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/number/font/_family.py b/packages/python/plotly/plotly/validators/indicator/number/font/_family.py index 7e09656c5f..bfdce2fc50 100644 --- a/packages/python/plotly/plotly/validators/indicator/number/font/_family.py +++ b/packages/python/plotly/plotly/validators/indicator/number/font/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/number/font/_size.py b/packages/python/plotly/plotly/validators/indicator/number/font/_size.py index 1e4f6ce69a..5c004da70c 100644 --- a/packages/python/plotly/plotly/validators/indicator/number/font/_size.py +++ b/packages/python/plotly/plotly/validators/indicator/number/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/indicator/stream/_maxpoints.py index e30e0ca870..7d944ef094 100644 --- a/packages/python/plotly/plotly/validators/indicator/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/indicator/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/stream/_token.py b/packages/python/plotly/plotly/validators/indicator/stream/_token.py index 29222daf18..f19faa14fd 100644 --- a/packages/python/plotly/plotly/validators/indicator/stream/_token.py +++ b/packages/python/plotly/plotly/validators/indicator/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="indicator.stream", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/title/_align.py b/packages/python/plotly/plotly/validators/indicator/title/_align.py index d2db0394db..53925ad7b1 100644 --- a/packages/python/plotly/plotly/validators/indicator/title/_align.py +++ b/packages/python/plotly/plotly/validators/indicator/title/_align.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="align", parent_name="indicator.title", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/title/_text.py b/packages/python/plotly/plotly/validators/indicator/title/_text.py index c0e0362285..ad3d1d31ab 100644 --- a/packages/python/plotly/plotly/validators/indicator/title/_text.py +++ b/packages/python/plotly/plotly/validators/indicator/title/_text.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="text", parent_name="indicator.title", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/title/font/_color.py b/packages/python/plotly/plotly/validators/indicator/title/font/_color.py index 34c91b0260..b0b92b4f14 100644 --- a/packages/python/plotly/plotly/validators/indicator/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/indicator/title/font/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/title/font/_family.py b/packages/python/plotly/plotly/validators/indicator/title/font/_family.py index a10e6806bf..5343622bd9 100644 --- a/packages/python/plotly/plotly/validators/indicator/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/indicator/title/font/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/indicator/title/font/_size.py b/packages/python/plotly/plotly/validators/indicator/title/font/_size.py index 8b9d97f0c3..45a33c8c50 100644 --- a/packages/python/plotly/plotly/validators/indicator/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/indicator/title/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/__init__.py b/packages/python/plotly/plotly/validators/isosurface/__init__.py index eb78be56ba..9a24bcafd5 100644 --- a/packages/python/plotly/plotly/validators/isosurface/__init__.py +++ b/packages/python/plotly/plotly/validators/isosurface/__init__.py @@ -2,13 +2,17 @@ if sys.version_info < (3, 7): from ._zsrc import ZsrcValidator + from ._zhoverformat import ZhoverformatValidator from ._z import ZValidator from ._ysrc import YsrcValidator + from ._yhoverformat import YhoverformatValidator from ._y import YValidator from ._xsrc import XsrcValidator + from ._xhoverformat import XhoverformatValidator from ._x import XValidator from ._visible import VisibleValidator from ._valuesrc import ValuesrcValidator + from ._valuehoverformat import ValuehoverformatValidator from ._value import ValueValidator from ._uirevision import UirevisionValidator from ._uid import UidValidator @@ -61,13 +65,17 @@ [], [ "._zsrc.ZsrcValidator", + "._zhoverformat.ZhoverformatValidator", "._z.ZValidator", "._ysrc.YsrcValidator", + "._yhoverformat.YhoverformatValidator", "._y.YValidator", "._xsrc.XsrcValidator", + "._xhoverformat.XhoverformatValidator", "._x.XValidator", "._visible.VisibleValidator", "._valuesrc.ValuesrcValidator", + "._valuehoverformat.ValuehoverformatValidator", "._value.ValueValidator", "._uirevision.UirevisionValidator", "._uid.UidValidator", diff --git a/packages/python/plotly/plotly/validators/isosurface/_autocolorscale.py b/packages/python/plotly/plotly/validators/isosurface/_autocolorscale.py index 62aea567a5..b9d7916f92 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/isosurface/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_cauto.py b/packages/python/plotly/plotly/validators/isosurface/_cauto.py index 33e851bd19..f5ea015892 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_cauto.py +++ b/packages/python/plotly/plotly/validators/isosurface/_cauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cauto", parent_name="isosurface", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_cmax.py b/packages/python/plotly/plotly/validators/isosurface/_cmax.py index 2a092c714c..eb05917b35 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_cmax.py +++ b/packages/python/plotly/plotly/validators/isosurface/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="isosurface", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_cmid.py b/packages/python/plotly/plotly/validators/isosurface/_cmid.py index 5902a12e81..2780099c12 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_cmid.py +++ b/packages/python/plotly/plotly/validators/isosurface/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="isosurface", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_cmin.py b/packages/python/plotly/plotly/validators/isosurface/_cmin.py index 6f6f21d8a4..0c63162135 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_cmin.py +++ b/packages/python/plotly/plotly/validators/isosurface/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="isosurface", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_coloraxis.py b/packages/python/plotly/plotly/validators/isosurface/_coloraxis.py index ca348e8dcc..dad1f86a28 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/isosurface/_coloraxis.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="coloraxis", parent_name="isosurface", **kwargs): dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_colorbar.py b/packages/python/plotly/plotly/validators/isosurface/_colorbar.py index 40bb5eba1e..eb0767963e 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_colorbar.py +++ b/packages/python/plotly/plotly/validators/isosurface/_colorbar.py @@ -147,6 +147,12 @@ def __init__(self, plotly_name="colorbar", parent_name="isosurface", **kwargs): a.isosurface.colorbar.tickformatstopdefaults), sets the default property values to use for elements of isosurface.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/isosurface/_colorscale.py b/packages/python/plotly/plotly/validators/isosurface/_colorscale.py index dc5c632a94..5786647bbd 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_colorscale.py +++ b/packages/python/plotly/plotly/validators/isosurface/_colorscale.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="colorscale", parent_name="isosurface", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_customdata.py b/packages/python/plotly/plotly/validators/isosurface/_customdata.py index 9a3d51b08d..f2e6ab9763 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_customdata.py +++ b/packages/python/plotly/plotly/validators/isosurface/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="isosurface", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_customdatasrc.py b/packages/python/plotly/plotly/validators/isosurface/_customdatasrc.py index 67b69e23d8..97adcfd418 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/isosurface/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="isosurface", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_flatshading.py b/packages/python/plotly/plotly/validators/isosurface/_flatshading.py index 224d92853e..4083742291 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_flatshading.py +++ b/packages/python/plotly/plotly/validators/isosurface/_flatshading.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="flatshading", parent_name="isosurface", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_hoverinfo.py b/packages/python/plotly/plotly/validators/isosurface/_hoverinfo.py index 248e1fbe86..92a9ea88ab 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/isosurface/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="isosurface", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["x", "y", "z", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/isosurface/_hoverinfosrc.py index 3ab417f25b..8bbda64e4d 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/isosurface/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="isosurface", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_hovertemplate.py b/packages/python/plotly/plotly/validators/isosurface/_hovertemplate.py index 1ad3a3f2c5..6555a22178 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/isosurface/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="isosurface", **kwar parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/isosurface/_hovertemplatesrc.py index a64ac3ed89..34f5a7ec66 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/isosurface/_hovertemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_hovertext.py b/packages/python/plotly/plotly/validators/isosurface/_hovertext.py index fed6206eea..27c1ed086b 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_hovertext.py +++ b/packages/python/plotly/plotly/validators/isosurface/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="isosurface", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_hovertextsrc.py b/packages/python/plotly/plotly/validators/isosurface/_hovertextsrc.py index d4cdc7feaa..622041ee21 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/isosurface/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="isosurface", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_ids.py b/packages/python/plotly/plotly/validators/isosurface/_ids.py index f9d5161aff..4bf1a3876c 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_ids.py +++ b/packages/python/plotly/plotly/validators/isosurface/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="isosurface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_idssrc.py b/packages/python/plotly/plotly/validators/isosurface/_idssrc.py index bb8a0b4fc9..85c4afda71 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_idssrc.py +++ b/packages/python/plotly/plotly/validators/isosurface/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="isosurface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_isomax.py b/packages/python/plotly/plotly/validators/isosurface/_isomax.py index 5639a7830b..af1d24e94b 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_isomax.py +++ b/packages/python/plotly/plotly/validators/isosurface/_isomax.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="isomax", parent_name="isosurface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_isomin.py b/packages/python/plotly/plotly/validators/isosurface/_isomin.py index 22ec85adf7..ce4baeefc7 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_isomin.py +++ b/packages/python/plotly/plotly/validators/isosurface/_isomin.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="isomin", parent_name="isosurface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_legendgroup.py b/packages/python/plotly/plotly/validators/isosurface/_legendgroup.py index cd94818ac2..2e30ad68fd 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/isosurface/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="isosurface", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_meta.py b/packages/python/plotly/plotly/validators/isosurface/_meta.py index 91f4a9af45..9bb6a028c6 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_meta.py +++ b/packages/python/plotly/plotly/validators/isosurface/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="isosurface", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_metasrc.py b/packages/python/plotly/plotly/validators/isosurface/_metasrc.py index fb73a34b89..47b3b82be8 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_metasrc.py +++ b/packages/python/plotly/plotly/validators/isosurface/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="isosurface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_name.py b/packages/python/plotly/plotly/validators/isosurface/_name.py index 4572f9402d..c3f5023c3c 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_name.py +++ b/packages/python/plotly/plotly/validators/isosurface/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="isosurface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_opacity.py b/packages/python/plotly/plotly/validators/isosurface/_opacity.py index 980545beda..500d86f58d 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_opacity.py +++ b/packages/python/plotly/plotly/validators/isosurface/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="isosurface", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_reversescale.py b/packages/python/plotly/plotly/validators/isosurface/_reversescale.py index 70df2abe71..38309ac9dd 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_reversescale.py +++ b/packages/python/plotly/plotly/validators/isosurface/_reversescale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="reversescale", parent_name="isosurface", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_scene.py b/packages/python/plotly/plotly/validators/isosurface/_scene.py index 3a33e3f787..41fa070178 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_scene.py +++ b/packages/python/plotly/plotly/validators/isosurface/_scene.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="scene", parent_name="isosurface", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "scene"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_showlegend.py b/packages/python/plotly/plotly/validators/isosurface/_showlegend.py index eda658e745..635e532943 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_showlegend.py +++ b/packages/python/plotly/plotly/validators/isosurface/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="isosurface", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_showscale.py b/packages/python/plotly/plotly/validators/isosurface/_showscale.py index 2439ed28d6..8cfcb265fd 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_showscale.py +++ b/packages/python/plotly/plotly/validators/isosurface/_showscale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showscale", parent_name="isosurface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_text.py b/packages/python/plotly/plotly/validators/isosurface/_text.py index 3f586e9287..d1280df3d4 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_text.py +++ b/packages/python/plotly/plotly/validators/isosurface/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="isosurface", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_textsrc.py b/packages/python/plotly/plotly/validators/isosurface/_textsrc.py index eae738f87d..5c881538da 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_textsrc.py +++ b/packages/python/plotly/plotly/validators/isosurface/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="isosurface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_uid.py b/packages/python/plotly/plotly/validators/isosurface/_uid.py index d0fefd1263..055dcd3274 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_uid.py +++ b/packages/python/plotly/plotly/validators/isosurface/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="isosurface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_uirevision.py b/packages/python/plotly/plotly/validators/isosurface/_uirevision.py index 6f34ba033b..e3a122f356 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_uirevision.py +++ b/packages/python/plotly/plotly/validators/isosurface/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="isosurface", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_value.py b/packages/python/plotly/plotly/validators/isosurface/_value.py index aeada45f16..5c91098b61 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_value.py +++ b/packages/python/plotly/plotly/validators/isosurface/_value.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="value", parent_name="isosurface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_valuehoverformat.py b/packages/python/plotly/plotly/validators/isosurface/_valuehoverformat.py new file mode 100644 index 0000000000..0948b399f1 --- /dev/null +++ b/packages/python/plotly/plotly/validators/isosurface/_valuehoverformat.py @@ -0,0 +1,13 @@ +import _plotly_utils.basevalidators + + +class ValuehoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__( + self, plotly_name="valuehoverformat", parent_name="isosurface", **kwargs + ): + super(ValuehoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_valuesrc.py b/packages/python/plotly/plotly/validators/isosurface/_valuesrc.py index 19257e3873..068603369f 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_valuesrc.py +++ b/packages/python/plotly/plotly/validators/isosurface/_valuesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="valuesrc", parent_name="isosurface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_visible.py b/packages/python/plotly/plotly/validators/isosurface/_visible.py index f9e0af9a11..f4ce06ee64 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_visible.py +++ b/packages/python/plotly/plotly/validators/isosurface/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="isosurface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_x.py b/packages/python/plotly/plotly/validators/isosurface/_x.py index 24d62e36f6..9d30e8a4b1 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_x.py +++ b/packages/python/plotly/plotly/validators/isosurface/_x.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x", parent_name="isosurface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_xhoverformat.py b/packages/python/plotly/plotly/validators/isosurface/_xhoverformat.py new file mode 100644 index 0000000000..edec3e7968 --- /dev/null +++ b/packages/python/plotly/plotly/validators/isosurface/_xhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class XhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="xhoverformat", parent_name="isosurface", **kwargs): + super(XhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_xsrc.py b/packages/python/plotly/plotly/validators/isosurface/_xsrc.py index 9ded705909..e78ff816ad 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_xsrc.py +++ b/packages/python/plotly/plotly/validators/isosurface/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="isosurface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_y.py b/packages/python/plotly/plotly/validators/isosurface/_y.py index d16fd95bf1..a3b5e37e49 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_y.py +++ b/packages/python/plotly/plotly/validators/isosurface/_y.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y", parent_name="isosurface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_yhoverformat.py b/packages/python/plotly/plotly/validators/isosurface/_yhoverformat.py new file mode 100644 index 0000000000..e6543ae5df --- /dev/null +++ b/packages/python/plotly/plotly/validators/isosurface/_yhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class YhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="yhoverformat", parent_name="isosurface", **kwargs): + super(YhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_ysrc.py b/packages/python/plotly/plotly/validators/isosurface/_ysrc.py index ae7bd29489..ac836a4e7d 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_ysrc.py +++ b/packages/python/plotly/plotly/validators/isosurface/_ysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ysrc", parent_name="isosurface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_z.py b/packages/python/plotly/plotly/validators/isosurface/_z.py index 15b36bf825..501f1607dc 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_z.py +++ b/packages/python/plotly/plotly/validators/isosurface/_z.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="z", parent_name="isosurface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_zhoverformat.py b/packages/python/plotly/plotly/validators/isosurface/_zhoverformat.py new file mode 100644 index 0000000000..5ed965a683 --- /dev/null +++ b/packages/python/plotly/plotly/validators/isosurface/_zhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class ZhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="zhoverformat", parent_name="isosurface", **kwargs): + super(ZhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/isosurface/_zsrc.py b/packages/python/plotly/plotly/validators/isosurface/_zsrc.py index 580623a28d..5955d7b25e 100644 --- a/packages/python/plotly/plotly/validators/isosurface/_zsrc.py +++ b/packages/python/plotly/plotly/validators/isosurface/_zsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="zsrc", parent_name="isosurface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/caps/x/_fill.py b/packages/python/plotly/plotly/validators/isosurface/caps/x/_fill.py index db82f6fbe0..b4db5b22f2 100644 --- a/packages/python/plotly/plotly/validators/isosurface/caps/x/_fill.py +++ b/packages/python/plotly/plotly/validators/isosurface/caps/x/_fill.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="fill", parent_name="isosurface.caps.x", **kwargs edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/caps/x/_show.py b/packages/python/plotly/plotly/validators/isosurface/caps/x/_show.py index ac2166293a..933839ad5c 100644 --- a/packages/python/plotly/plotly/validators/isosurface/caps/x/_show.py +++ b/packages/python/plotly/plotly/validators/isosurface/caps/x/_show.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="show", parent_name="isosurface.caps.x", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/caps/y/_fill.py b/packages/python/plotly/plotly/validators/isosurface/caps/y/_fill.py index e4be221f0b..88e4447e62 100644 --- a/packages/python/plotly/plotly/validators/isosurface/caps/y/_fill.py +++ b/packages/python/plotly/plotly/validators/isosurface/caps/y/_fill.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="fill", parent_name="isosurface.caps.y", **kwargs edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/caps/y/_show.py b/packages/python/plotly/plotly/validators/isosurface/caps/y/_show.py index dc1544aee9..fd906b736a 100644 --- a/packages/python/plotly/plotly/validators/isosurface/caps/y/_show.py +++ b/packages/python/plotly/plotly/validators/isosurface/caps/y/_show.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="show", parent_name="isosurface.caps.y", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/caps/z/_fill.py b/packages/python/plotly/plotly/validators/isosurface/caps/z/_fill.py index c3269eedd8..f1eeeb095e 100644 --- a/packages/python/plotly/plotly/validators/isosurface/caps/z/_fill.py +++ b/packages/python/plotly/plotly/validators/isosurface/caps/z/_fill.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="fill", parent_name="isosurface.caps.z", **kwargs edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/caps/z/_show.py b/packages/python/plotly/plotly/validators/isosurface/caps/z/_show.py index 0afe370c44..40f9db97dd 100644 --- a/packages/python/plotly/plotly/validators/isosurface/caps/z/_show.py +++ b/packages/python/plotly/plotly/validators/isosurface/caps/z/_show.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="show", parent_name="isosurface.caps.z", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/__init__.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_bgcolor.py index beeae2e8e2..2b6fb2c6a7 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_bordercolor.py index a025825d9e..edac36ca36 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_borderwidth.py index 3a734d69b8..d70187454a 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_dtick.py index 847c6ade3a..a2e5b3c9c6 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_exponentformat.py index 25b82bb831..75de2c4546 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_exponentformat.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_len.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_len.py index 4edfe7651a..df10a54e7c 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_len.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="len", parent_name="isosurface.colorbar", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_lenmode.py index 2c014bd334..874a5af3f9 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_lenmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_minexponent.py index 7dad5b8419..5065d2100d 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_nticks.py index cd06dba79f..94896eeb7e 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_outlinecolor.py index 43bf888659..788dbde85a 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_outlinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_outlinewidth.py index ed0923a9cc..b7b9ed2b92 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_outlinewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_separatethousands.py index 3f36842cc5..2ef5fe56da 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_showexponent.py index c15840b4a4..3eb4d4508c 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_showticklabels.py index 8af618c814..094a5d52d6 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_showticklabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_showtickprefix.py index 98be4cada2..965de6af88 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_showtickprefix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_showticksuffix.py index fd55cb8dd3..9cd0d2fa1d 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_showticksuffix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_thickness.py index a6a4e8559b..c74e1c5ad7 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_thicknessmode.py index d846b51fed..b1dfb8c5bb 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_thicknessmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_tick0.py index 17bfb49b97..b601380cba 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickangle.py index 9edeede683..b38c4cc1ea 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickcolor.py index 49cc9ba864..8d235833ca 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickformat.py index fe0b104663..d1027243f4 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..7d5303744f --- /dev/null +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="isosurface.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticklabelposition.py index 4ca5f5cd56..4d536cc511 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticklen.py index 7d32896978..f88e9d469f 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickmode.py index 7316853e3c..2a520d58ad 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickprefix.py index 3074672e81..b11dddd590 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticks.py index 1b3c92791c..382a76b1c9 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticksuffix.py index 29edb85b4f..9892a7e699 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticktext.py index 4c5ab029f5..f0ba083d67 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticktextsrc.py index de78a2c80c..f32ae80fa6 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickvals.py index 875fda4771..d4593039a1 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickvalssrc.py index 6f5e4aec17..e0e75a9d69 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickwidth.py index 30f3425096..4ac685af08 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_x.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_x.py index abb75f3181..2bda3250cc 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_x.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="x", parent_name="isosurface.colorbar", **kwargs) edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_xanchor.py index d91978811a..b10464e864 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_xpad.py index e377255478..b8e5771fa6 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_xpad.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xpad", parent_name="isosurface.colorbar", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_y.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_y.py index b9c4df1b48..68b569fba6 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_y.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="y", parent_name="isosurface.colorbar", **kwargs) edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_yanchor.py index 8195daa0ad..2d6af2c62e 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/_ypad.py index 13f964d71b..eb41f8edcb 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/_ypad.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ypad", parent_name="isosurface.colorbar", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/tickfont/_color.py index feaf6adb98..458cbef0f8 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/tickfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/tickfont/_family.py index c5c375f835..31547d3ee8 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/tickfont/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/tickfont/_size.py index 3aa450f957..66182b4433 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/tickfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/tickformatstop/_dtickrange.py index 65bc97639a..5d5a84f951 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/tickformatstop/_enabled.py index e40691424d..9f2a6d49c7 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/tickformatstop/_name.py index 76b277d163..68b0ca67ba 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/tickformatstop/_templateitemname.py index 20b4ab5f60..1a08c9d75b 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/tickformatstop/_value.py index b697f15d95..9fa081261f 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/title/_side.py index 279bef1c61..9f706791e3 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/title/_side.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/title/_text.py index 5595928c40..20b4bfc2d4 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/title/font/_color.py index e38905ba4f..5ce6cb1b16 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/title/font/_family.py index 5b83eceb01..dbcc5c986c 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/isosurface/colorbar/title/font/_size.py index 0c487b7c98..3545053ffc 100644 --- a/packages/python/plotly/plotly/validators/isosurface/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/isosurface/colorbar/title/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/contour/_color.py b/packages/python/plotly/plotly/validators/isosurface/contour/_color.py index c9127630e5..e5ceaadc57 100644 --- a/packages/python/plotly/plotly/validators/isosurface/contour/_color.py +++ b/packages/python/plotly/plotly/validators/isosurface/contour/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="isosurface.contour", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/contour/_show.py b/packages/python/plotly/plotly/validators/isosurface/contour/_show.py index 0c4f1fb8f2..90a9df50b1 100644 --- a/packages/python/plotly/plotly/validators/isosurface/contour/_show.py +++ b/packages/python/plotly/plotly/validators/isosurface/contour/_show.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="show", parent_name="isosurface.contour", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/contour/_width.py b/packages/python/plotly/plotly/validators/isosurface/contour/_width.py index 75dea7c337..0d19871a04 100644 --- a/packages/python/plotly/plotly/validators/isosurface/contour/_width.py +++ b/packages/python/plotly/plotly/validators/isosurface/contour/_width.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="width", parent_name="isosurface.contour", **kwar edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 16), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_align.py index 36fe4e1941..b456065167 100644 --- a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_align.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_alignsrc.py index 24baf88633..143ea8efe6 100644 --- a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_bgcolor.py index 765ea7e113..a34ed55328 100644 --- a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_bgcolorsrc.py index b8963b2e55..0aaaf80d7d 100644 --- a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_bordercolor.py index 897d33f97a..6c09df9eb1 100644 --- a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_bordercolorsrc.py index bd6d072831..633e601c86 100644 --- a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_bordercolorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_namelength.py index 47b855e919..3dd18b9af6 100644 --- a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_namelengthsrc.py index 50f89e3236..4bf5b64f59 100644 --- a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/font/_color.py index aa710cda35..aa7bc2959d 100644 --- a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/font/_colorsrc.py index 894555266e..936a6e5092 100644 --- a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/font/_family.py index 27068c7207..a872115585 100644 --- a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/font/_familysrc.py index b602551ae5..3df0f9f058 100644 --- a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/font/_familysrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/font/_size.py index 4ef9ce26c6..afa4abe16c 100644 --- a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/font/_sizesrc.py index aaa3549a8b..caba9f7a12 100644 --- a/packages/python/plotly/plotly/validators/isosurface/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/isosurface/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/lighting/_ambient.py b/packages/python/plotly/plotly/validators/isosurface/lighting/_ambient.py index f3076c1a3b..8fd8fc0c14 100644 --- a/packages/python/plotly/plotly/validators/isosurface/lighting/_ambient.py +++ b/packages/python/plotly/plotly/validators/isosurface/lighting/_ambient.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/lighting/_diffuse.py b/packages/python/plotly/plotly/validators/isosurface/lighting/_diffuse.py index 8575b01cfc..ab4dd5033e 100644 --- a/packages/python/plotly/plotly/validators/isosurface/lighting/_diffuse.py +++ b/packages/python/plotly/plotly/validators/isosurface/lighting/_diffuse.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/lighting/_facenormalsepsilon.py b/packages/python/plotly/plotly/validators/isosurface/lighting/_facenormalsepsilon.py index c2ed7e207f..5dc3c57ce6 100644 --- a/packages/python/plotly/plotly/validators/isosurface/lighting/_facenormalsepsilon.py +++ b/packages/python/plotly/plotly/validators/isosurface/lighting/_facenormalsepsilon.py @@ -14,6 +14,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/lighting/_fresnel.py b/packages/python/plotly/plotly/validators/isosurface/lighting/_fresnel.py index 2f8663ad39..cf00609fef 100644 --- a/packages/python/plotly/plotly/validators/isosurface/lighting/_fresnel.py +++ b/packages/python/plotly/plotly/validators/isosurface/lighting/_fresnel.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 5), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/lighting/_roughness.py b/packages/python/plotly/plotly/validators/isosurface/lighting/_roughness.py index c460f3e8cb..909c88c734 100644 --- a/packages/python/plotly/plotly/validators/isosurface/lighting/_roughness.py +++ b/packages/python/plotly/plotly/validators/isosurface/lighting/_roughness.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/lighting/_specular.py b/packages/python/plotly/plotly/validators/isosurface/lighting/_specular.py index 6b8c2485bc..12b879fc78 100644 --- a/packages/python/plotly/plotly/validators/isosurface/lighting/_specular.py +++ b/packages/python/plotly/plotly/validators/isosurface/lighting/_specular.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 2), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/lighting/_vertexnormalsepsilon.py b/packages/python/plotly/plotly/validators/isosurface/lighting/_vertexnormalsepsilon.py index 1d02837791..e1234ddb20 100644 --- a/packages/python/plotly/plotly/validators/isosurface/lighting/_vertexnormalsepsilon.py +++ b/packages/python/plotly/plotly/validators/isosurface/lighting/_vertexnormalsepsilon.py @@ -14,6 +14,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/lightposition/_x.py b/packages/python/plotly/plotly/validators/isosurface/lightposition/_x.py index 664eb373a5..6ebd4a1d94 100644 --- a/packages/python/plotly/plotly/validators/isosurface/lightposition/_x.py +++ b/packages/python/plotly/plotly/validators/isosurface/lightposition/_x.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 100000), min=kwargs.pop("min", -100000), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/lightposition/_y.py b/packages/python/plotly/plotly/validators/isosurface/lightposition/_y.py index c774ddaef3..20824484f5 100644 --- a/packages/python/plotly/plotly/validators/isosurface/lightposition/_y.py +++ b/packages/python/plotly/plotly/validators/isosurface/lightposition/_y.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 100000), min=kwargs.pop("min", -100000), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/lightposition/_z.py b/packages/python/plotly/plotly/validators/isosurface/lightposition/_z.py index 7cfd0570e5..9c67ce0fb7 100644 --- a/packages/python/plotly/plotly/validators/isosurface/lightposition/_z.py +++ b/packages/python/plotly/plotly/validators/isosurface/lightposition/_z.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 100000), min=kwargs.pop("min", -100000), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/slices/x/_fill.py b/packages/python/plotly/plotly/validators/isosurface/slices/x/_fill.py index e4dbc5db75..1ec7e99ca1 100644 --- a/packages/python/plotly/plotly/validators/isosurface/slices/x/_fill.py +++ b/packages/python/plotly/plotly/validators/isosurface/slices/x/_fill.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="fill", parent_name="isosurface.slices.x", **kwar edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/slices/x/_locations.py b/packages/python/plotly/plotly/validators/isosurface/slices/x/_locations.py index b76f98cd9e..4b055355fc 100644 --- a/packages/python/plotly/plotly/validators/isosurface/slices/x/_locations.py +++ b/packages/python/plotly/plotly/validators/isosurface/slices/x/_locations.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/slices/x/_locationssrc.py b/packages/python/plotly/plotly/validators/isosurface/slices/x/_locationssrc.py index 4e1e159c7b..30cf1af7a0 100644 --- a/packages/python/plotly/plotly/validators/isosurface/slices/x/_locationssrc.py +++ b/packages/python/plotly/plotly/validators/isosurface/slices/x/_locationssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/slices/x/_show.py b/packages/python/plotly/plotly/validators/isosurface/slices/x/_show.py index ce220697c4..bab2ed2dd5 100644 --- a/packages/python/plotly/plotly/validators/isosurface/slices/x/_show.py +++ b/packages/python/plotly/plotly/validators/isosurface/slices/x/_show.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="show", parent_name="isosurface.slices.x", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/slices/y/_fill.py b/packages/python/plotly/plotly/validators/isosurface/slices/y/_fill.py index b00b0fba64..109b1c269c 100644 --- a/packages/python/plotly/plotly/validators/isosurface/slices/y/_fill.py +++ b/packages/python/plotly/plotly/validators/isosurface/slices/y/_fill.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="fill", parent_name="isosurface.slices.y", **kwar edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/slices/y/_locations.py b/packages/python/plotly/plotly/validators/isosurface/slices/y/_locations.py index 4a952d67fc..2d43da0cda 100644 --- a/packages/python/plotly/plotly/validators/isosurface/slices/y/_locations.py +++ b/packages/python/plotly/plotly/validators/isosurface/slices/y/_locations.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/slices/y/_locationssrc.py b/packages/python/plotly/plotly/validators/isosurface/slices/y/_locationssrc.py index f7e34296a1..d1b8430393 100644 --- a/packages/python/plotly/plotly/validators/isosurface/slices/y/_locationssrc.py +++ b/packages/python/plotly/plotly/validators/isosurface/slices/y/_locationssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/slices/y/_show.py b/packages/python/plotly/plotly/validators/isosurface/slices/y/_show.py index 850ebf5fd5..11d37df8ee 100644 --- a/packages/python/plotly/plotly/validators/isosurface/slices/y/_show.py +++ b/packages/python/plotly/plotly/validators/isosurface/slices/y/_show.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="show", parent_name="isosurface.slices.y", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/slices/z/_fill.py b/packages/python/plotly/plotly/validators/isosurface/slices/z/_fill.py index 2661b9597e..ba899c0ca4 100644 --- a/packages/python/plotly/plotly/validators/isosurface/slices/z/_fill.py +++ b/packages/python/plotly/plotly/validators/isosurface/slices/z/_fill.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="fill", parent_name="isosurface.slices.z", **kwar edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/slices/z/_locations.py b/packages/python/plotly/plotly/validators/isosurface/slices/z/_locations.py index f069e32f00..04955e9965 100644 --- a/packages/python/plotly/plotly/validators/isosurface/slices/z/_locations.py +++ b/packages/python/plotly/plotly/validators/isosurface/slices/z/_locations.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/slices/z/_locationssrc.py b/packages/python/plotly/plotly/validators/isosurface/slices/z/_locationssrc.py index d7b7be969b..b68a2ba435 100644 --- a/packages/python/plotly/plotly/validators/isosurface/slices/z/_locationssrc.py +++ b/packages/python/plotly/plotly/validators/isosurface/slices/z/_locationssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/slices/z/_show.py b/packages/python/plotly/plotly/validators/isosurface/slices/z/_show.py index 125a2755d1..00ef5a6576 100644 --- a/packages/python/plotly/plotly/validators/isosurface/slices/z/_show.py +++ b/packages/python/plotly/plotly/validators/isosurface/slices/z/_show.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="show", parent_name="isosurface.slices.z", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/spaceframe/_fill.py b/packages/python/plotly/plotly/validators/isosurface/spaceframe/_fill.py index c53e10855c..db36e1c343 100644 --- a/packages/python/plotly/plotly/validators/isosurface/spaceframe/_fill.py +++ b/packages/python/plotly/plotly/validators/isosurface/spaceframe/_fill.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/spaceframe/_show.py b/packages/python/plotly/plotly/validators/isosurface/spaceframe/_show.py index 7049355317..a53a4a9fbe 100644 --- a/packages/python/plotly/plotly/validators/isosurface/spaceframe/_show.py +++ b/packages/python/plotly/plotly/validators/isosurface/spaceframe/_show.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/isosurface/stream/_maxpoints.py index 143abf9ac7..2d6573ff9f 100644 --- a/packages/python/plotly/plotly/validators/isosurface/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/isosurface/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/stream/_token.py b/packages/python/plotly/plotly/validators/isosurface/stream/_token.py index ccdfb6ce40..1e6cf2c9bc 100644 --- a/packages/python/plotly/plotly/validators/isosurface/stream/_token.py +++ b/packages/python/plotly/plotly/validators/isosurface/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="isosurface.stream", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/surface/_count.py b/packages/python/plotly/plotly/validators/isosurface/surface/_count.py index f31d325162..b2b6e64eeb 100644 --- a/packages/python/plotly/plotly/validators/isosurface/surface/_count.py +++ b/packages/python/plotly/plotly/validators/isosurface/surface/_count.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="count", parent_name="isosurface.surface", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/surface/_fill.py b/packages/python/plotly/plotly/validators/isosurface/surface/_fill.py index 9a105f934f..557c2591a9 100644 --- a/packages/python/plotly/plotly/validators/isosurface/surface/_fill.py +++ b/packages/python/plotly/plotly/validators/isosurface/surface/_fill.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="fill", parent_name="isosurface.surface", **kwarg edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/surface/_pattern.py b/packages/python/plotly/plotly/validators/isosurface/surface/_pattern.py index d57fada99d..82cecade34 100644 --- a/packages/python/plotly/plotly/validators/isosurface/surface/_pattern.py +++ b/packages/python/plotly/plotly/validators/isosurface/surface/_pattern.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), extras=kwargs.pop("extras", ["all", "odd", "even"]), flags=kwargs.pop("flags", ["A", "B", "C", "D", "E"]), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/isosurface/surface/_show.py b/packages/python/plotly/plotly/validators/isosurface/surface/_show.py index 8fa431dff4..5840c20f41 100644 --- a/packages/python/plotly/plotly/validators/isosurface/surface/_show.py +++ b/packages/python/plotly/plotly/validators/isosurface/surface/_show.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="show", parent_name="isosurface.surface", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/__init__.py b/packages/python/plotly/plotly/validators/layout/__init__.py index adf68074b5..c0e1032d71 100644 --- a/packages/python/plotly/plotly/validators/layout/__init__.py +++ b/packages/python/plotly/plotly/validators/layout/__init__.py @@ -30,12 +30,10 @@ from ._selectionrevision import SelectionrevisionValidator from ._selectdirection import SelectdirectionValidator from ._scene import SceneValidator - from ._radialaxis import RadialaxisValidator from ._polar import PolarValidator from ._plot_bgcolor import Plot_BgcolorValidator from ._piecolorway import PiecolorwayValidator from ._paper_bgcolor import Paper_BgcolorValidator - from ._orientation import OrientationValidator from ._newshape import NewshapeValidator from ._modebar import ModebarValidator from ._metasrc import MetasrcValidator @@ -65,7 +63,6 @@ from ._extendfunnelareacolors import ExtendfunnelareacolorsValidator from ._editrevision import EditrevisionValidator from ._dragmode import DragmodeValidator - from ._direction import DirectionValidator from ._datarevision import DatarevisionValidator from ._computed import ComputedValidator from ._colorway import ColorwayValidator @@ -84,7 +81,6 @@ from ._autosize import AutosizeValidator from ._annotationdefaults import AnnotationdefaultsValidator from ._annotations import AnnotationsValidator - from ._angularaxis import AngularaxisValidator from ._activeshape import ActiveshapeValidator else: from _plotly_utils.importers import relative_import @@ -122,12 +118,10 @@ "._selectionrevision.SelectionrevisionValidator", "._selectdirection.SelectdirectionValidator", "._scene.SceneValidator", - "._radialaxis.RadialaxisValidator", "._polar.PolarValidator", "._plot_bgcolor.Plot_BgcolorValidator", "._piecolorway.PiecolorwayValidator", "._paper_bgcolor.Paper_BgcolorValidator", - "._orientation.OrientationValidator", "._newshape.NewshapeValidator", "._modebar.ModebarValidator", "._metasrc.MetasrcValidator", @@ -157,7 +151,6 @@ "._extendfunnelareacolors.ExtendfunnelareacolorsValidator", "._editrevision.EditrevisionValidator", "._dragmode.DragmodeValidator", - "._direction.DirectionValidator", "._datarevision.DatarevisionValidator", "._computed.ComputedValidator", "._colorway.ColorwayValidator", @@ -176,7 +169,6 @@ "._autosize.AutosizeValidator", "._annotationdefaults.AnnotationdefaultsValidator", "._annotations.AnnotationsValidator", - "._angularaxis.AngularaxisValidator", "._activeshape.ActiveshapeValidator", ], ) diff --git a/packages/python/plotly/plotly/validators/layout/_angularaxis.py b/packages/python/plotly/plotly/validators/layout/_angularaxis.py deleted file mode 100644 index c7b0f6b9ad..0000000000 --- a/packages/python/plotly/plotly/validators/layout/_angularaxis.py +++ /dev/null @@ -1,57 +0,0 @@ -import _plotly_utils.basevalidators - - -class AngularaxisValidator(_plotly_utils.basevalidators.CompoundValidator): - def __init__(self, plotly_name="angularaxis", parent_name="layout", **kwargs): - super(AngularaxisValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - data_class_str=kwargs.pop("data_class_str", "AngularAxis"), - data_docs=kwargs.pop( - "data_docs", - """ - domain - Polar chart subplots are not supported yet. - This key has currently no effect. - endpadding - Legacy polar charts are deprecated! Please - switch to "polar" subplots. - range - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Defines the start - and end point of this angular axis. - showline - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Determines whether - or not the line bounding this angular axis will - be shown on the figure. - showticklabels - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Determines whether - or not the angular axis ticks will feature tick - labels. - tickcolor - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Sets the color of - the tick lines on this angular axis. - ticklen - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Sets the length of - the tick lines on this angular axis. - tickorientation - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Sets the - orientation (from the paper perspective) of the - angular axis tick labels. - ticksuffix - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Sets the length of - the tick lines on this angular axis. - visible - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Determines whether - or not this axis will be visible. -""", - ), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/_autosize.py b/packages/python/plotly/plotly/validators/layout/_autosize.py index b509d03d40..872148a76f 100644 --- a/packages/python/plotly/plotly/validators/layout/_autosize.py +++ b/packages/python/plotly/plotly/validators/layout/_autosize.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="autosize", parent_name="layout", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_autotypenumbers.py b/packages/python/plotly/plotly/validators/layout/_autotypenumbers.py index fa2e41e496..df25ce071e 100644 --- a/packages/python/plotly/plotly/validators/layout/_autotypenumbers.py +++ b/packages/python/plotly/plotly/validators/layout/_autotypenumbers.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="autotypenumbers", parent_name="layout", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["convert types", "strict"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_bargap.py b/packages/python/plotly/plotly/validators/layout/_bargap.py index bc1078e96e..d7f1e8481a 100644 --- a/packages/python/plotly/plotly/validators/layout/_bargap.py +++ b/packages/python/plotly/plotly/validators/layout/_bargap.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="bargap", parent_name="layout", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_bargroupgap.py b/packages/python/plotly/plotly/validators/layout/_bargroupgap.py index e0a9d6f17c..a69e134089 100644 --- a/packages/python/plotly/plotly/validators/layout/_bargroupgap.py +++ b/packages/python/plotly/plotly/validators/layout/_bargroupgap.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="bargroupgap", parent_name="layout", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_barmode.py b/packages/python/plotly/plotly/validators/layout/_barmode.py index 350e089580..310da17ba6 100644 --- a/packages/python/plotly/plotly/validators/layout/_barmode.py +++ b/packages/python/plotly/plotly/validators/layout/_barmode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="barmode", parent_name="layout", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["stack", "group", "overlay", "relative"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_barnorm.py b/packages/python/plotly/plotly/validators/layout/_barnorm.py index 6bb1b3f4bd..2ae75d5957 100644 --- a/packages/python/plotly/plotly/validators/layout/_barnorm.py +++ b/packages/python/plotly/plotly/validators/layout/_barnorm.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="barnorm", parent_name="layout", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["", "fraction", "percent"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_boxgap.py b/packages/python/plotly/plotly/validators/layout/_boxgap.py index b4ba1f1032..9d0663ce8e 100644 --- a/packages/python/plotly/plotly/validators/layout/_boxgap.py +++ b/packages/python/plotly/plotly/validators/layout/_boxgap.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="boxgap", parent_name="layout", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_boxgroupgap.py b/packages/python/plotly/plotly/validators/layout/_boxgroupgap.py index 0178f36f6d..86cf64e57f 100644 --- a/packages/python/plotly/plotly/validators/layout/_boxgroupgap.py +++ b/packages/python/plotly/plotly/validators/layout/_boxgroupgap.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="boxgroupgap", parent_name="layout", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_boxmode.py b/packages/python/plotly/plotly/validators/layout/_boxmode.py index de21dd7460..eaac144429 100644 --- a/packages/python/plotly/plotly/validators/layout/_boxmode.py +++ b/packages/python/plotly/plotly/validators/layout/_boxmode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="boxmode", parent_name="layout", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["group", "overlay"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_calendar.py b/packages/python/plotly/plotly/validators/layout/_calendar.py index d073cd8bbf..0539a52201 100644 --- a/packages/python/plotly/plotly/validators/layout/_calendar.py +++ b/packages/python/plotly/plotly/validators/layout/_calendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="calendar", parent_name="layout", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/_clickmode.py b/packages/python/plotly/plotly/validators/layout/_clickmode.py index 9b99f6b800..3dac96da51 100644 --- a/packages/python/plotly/plotly/validators/layout/_clickmode.py +++ b/packages/python/plotly/plotly/validators/layout/_clickmode.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="clickmode", parent_name="layout", **kwargs): edit_type=kwargs.pop("edit_type", "plot"), extras=kwargs.pop("extras", ["none"]), flags=kwargs.pop("flags", ["event", "select"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_colorway.py b/packages/python/plotly/plotly/validators/layout/_colorway.py index aa3f923a04..27242bd9f4 100644 --- a/packages/python/plotly/plotly/validators/layout/_colorway.py +++ b/packages/python/plotly/plotly/validators/layout/_colorway.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="colorway", parent_name="layout", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_computed.py b/packages/python/plotly/plotly/validators/layout/_computed.py index 07cea3b1b8..a0c9c598c4 100644 --- a/packages/python/plotly/plotly/validators/layout/_computed.py +++ b/packages/python/plotly/plotly/validators/layout/_computed.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="computed", parent_name="layout", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_datarevision.py b/packages/python/plotly/plotly/validators/layout/_datarevision.py index 456b440094..dad191c4e2 100644 --- a/packages/python/plotly/plotly/validators/layout/_datarevision.py +++ b/packages/python/plotly/plotly/validators/layout/_datarevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="datarevision", parent_name="layout", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_direction.py b/packages/python/plotly/plotly/validators/layout/_direction.py deleted file mode 100644 index 52e6a7aa40..0000000000 --- a/packages/python/plotly/plotly/validators/layout/_direction.py +++ /dev/null @@ -1,13 +0,0 @@ -import _plotly_utils.basevalidators - - -class DirectionValidator(_plotly_utils.basevalidators.EnumeratedValidator): - def __init__(self, plotly_name="direction", parent_name="layout", **kwargs): - super(DirectionValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), - values=kwargs.pop("values", ["clockwise", "counterclockwise"]), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/_dragmode.py b/packages/python/plotly/plotly/validators/layout/_dragmode.py index 300624d714..a1d79cd9e6 100644 --- a/packages/python/plotly/plotly/validators/layout/_dragmode.py +++ b/packages/python/plotly/plotly/validators/layout/_dragmode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="dragmode", parent_name="layout", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "modebar"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/_editrevision.py b/packages/python/plotly/plotly/validators/layout/_editrevision.py index cc4816c385..56dcb82a59 100644 --- a/packages/python/plotly/plotly/validators/layout/_editrevision.py +++ b/packages/python/plotly/plotly/validators/layout/_editrevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="editrevision", parent_name="layout", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_extendfunnelareacolors.py b/packages/python/plotly/plotly/validators/layout/_extendfunnelareacolors.py index d4c5bb5b65..923320e1e9 100644 --- a/packages/python/plotly/plotly/validators/layout/_extendfunnelareacolors.py +++ b/packages/python/plotly/plotly/validators/layout/_extendfunnelareacolors.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_extendpiecolors.py b/packages/python/plotly/plotly/validators/layout/_extendpiecolors.py index d51b0f168f..4f784f7370 100644 --- a/packages/python/plotly/plotly/validators/layout/_extendpiecolors.py +++ b/packages/python/plotly/plotly/validators/layout/_extendpiecolors.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="extendpiecolors", parent_name="layout", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_extendsunburstcolors.py b/packages/python/plotly/plotly/validators/layout/_extendsunburstcolors.py index 826431fb62..494bd925b0 100644 --- a/packages/python/plotly/plotly/validators/layout/_extendsunburstcolors.py +++ b/packages/python/plotly/plotly/validators/layout/_extendsunburstcolors.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_extendtreemapcolors.py b/packages/python/plotly/plotly/validators/layout/_extendtreemapcolors.py index 6582a7691d..a990891168 100644 --- a/packages/python/plotly/plotly/validators/layout/_extendtreemapcolors.py +++ b/packages/python/plotly/plotly/validators/layout/_extendtreemapcolors.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_funnelareacolorway.py b/packages/python/plotly/plotly/validators/layout/_funnelareacolorway.py index a60d4db665..d6ae9d7b90 100644 --- a/packages/python/plotly/plotly/validators/layout/_funnelareacolorway.py +++ b/packages/python/plotly/plotly/validators/layout/_funnelareacolorway.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_funnelgap.py b/packages/python/plotly/plotly/validators/layout/_funnelgap.py index a062f8f439..a8ca07a980 100644 --- a/packages/python/plotly/plotly/validators/layout/_funnelgap.py +++ b/packages/python/plotly/plotly/validators/layout/_funnelgap.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="funnelgap", parent_name="layout", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_funnelgroupgap.py b/packages/python/plotly/plotly/validators/layout/_funnelgroupgap.py index ea435f4a49..0544353cba 100644 --- a/packages/python/plotly/plotly/validators/layout/_funnelgroupgap.py +++ b/packages/python/plotly/plotly/validators/layout/_funnelgroupgap.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="funnelgroupgap", parent_name="layout", **kwargs) edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_funnelmode.py b/packages/python/plotly/plotly/validators/layout/_funnelmode.py index f8006139a2..fd93f64770 100644 --- a/packages/python/plotly/plotly/validators/layout/_funnelmode.py +++ b/packages/python/plotly/plotly/validators/layout/_funnelmode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="funnelmode", parent_name="layout", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["stack", "group", "overlay"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_height.py b/packages/python/plotly/plotly/validators/layout/_height.py index 588446e794..251c6f5472 100644 --- a/packages/python/plotly/plotly/validators/layout/_height.py +++ b/packages/python/plotly/plotly/validators/layout/_height.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="height", parent_name="layout", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 10), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_hiddenlabels.py b/packages/python/plotly/plotly/validators/layout/_hiddenlabels.py index 8489093ff7..429381f34f 100644 --- a/packages/python/plotly/plotly/validators/layout/_hiddenlabels.py +++ b/packages/python/plotly/plotly/validators/layout/_hiddenlabels.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hiddenlabels", parent_name="layout", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_hiddenlabelssrc.py b/packages/python/plotly/plotly/validators/layout/_hiddenlabelssrc.py index a24b0867f4..41b55ee2a2 100644 --- a/packages/python/plotly/plotly/validators/layout/_hiddenlabelssrc.py +++ b/packages/python/plotly/plotly/validators/layout/_hiddenlabelssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hiddenlabelssrc", parent_name="layout", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_hidesources.py b/packages/python/plotly/plotly/validators/layout/_hidesources.py index e049df7f34..280a9ac457 100644 --- a/packages/python/plotly/plotly/validators/layout/_hidesources.py +++ b/packages/python/plotly/plotly/validators/layout/_hidesources.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hidesources", parent_name="layout", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_hoverdistance.py b/packages/python/plotly/plotly/validators/layout/_hoverdistance.py index b2a13ceb44..cc235ae321 100644 --- a/packages/python/plotly/plotly/validators/layout/_hoverdistance.py +++ b/packages/python/plotly/plotly/validators/layout/_hoverdistance.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hoverdistance", parent_name="layout", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_hovermode.py b/packages/python/plotly/plotly/validators/layout/_hovermode.py index f0e32ae485..dd4170977e 100644 --- a/packages/python/plotly/plotly/validators/layout/_hovermode.py +++ b/packages/python/plotly/plotly/validators/layout/_hovermode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="hovermode", parent_name="layout", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "modebar"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", ["x", "y", "closest", False, "x unified", "y unified"] ), diff --git a/packages/python/plotly/plotly/validators/layout/_meta.py b/packages/python/plotly/plotly/validators/layout/_meta.py index 8ab9262d3d..4452b380de 100644 --- a/packages/python/plotly/plotly/validators/layout/_meta.py +++ b/packages/python/plotly/plotly/validators/layout/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="layout", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_metasrc.py b/packages/python/plotly/plotly/validators/layout/_metasrc.py index f357917044..8a2e5b8696 100644 --- a/packages/python/plotly/plotly/validators/layout/_metasrc.py +++ b/packages/python/plotly/plotly/validators/layout/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="layout", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_modebar.py b/packages/python/plotly/plotly/validators/layout/_modebar.py index ed21431fe9..c5fb483eee 100644 --- a/packages/python/plotly/plotly/validators/layout/_modebar.py +++ b/packages/python/plotly/plotly/validators/layout/_modebar.py @@ -13,12 +13,53 @@ def __init__(self, plotly_name="modebar", parent_name="layout", **kwargs): activecolor Sets the color of the active or hovered on icons in the modebar. + add + Determines which predefined modebar buttons to + add. Please note that these buttons will only + be shown if they are compatible with all trace + types used in a graph. Similar to + `config.modeBarButtonsToAdd` option. This may + include "v1hovermode", "hoverclosest", + "hovercompare", "togglehover", + "togglespikelines", "drawline", "drawopenpath", + "drawclosedpath", "drawcircle", "drawrect", + "eraseshape". + addsrc + Sets the source reference on Chart Studio Cloud + for add . bgcolor Sets the background color of the modebar. color Sets the color of the icons in the modebar. orientation Sets the orientation of the modebar. + remove + Determines which predefined modebar buttons to + remove. Similar to + `config.modeBarButtonsToRemove` option. This + may include "autoScale2d", "autoscale", + "editInChartStudio", "editinchartstudio", + "hoverCompareCartesian", "hovercompare", + "lasso", "lasso2d", "orbitRotation", + "orbitrotation", "pan", "pan2d", "pan3d", + "reset", "resetCameraDefault3d", + "resetCameraLastSave3d", "resetGeo", + "resetSankeyGroup", "resetScale2d", + "resetViewMapbox", "resetViews", + "resetcameradefault", "resetcameralastsave", + "resetsankeygroup", "resetscale", "resetview", + "resetviews", "select", "select2d", + "sendDataToCloud", "senddatatocloud", + "tableRotation", "tablerotation", "toImage", + "toggleHover", "toggleSpikelines", + "togglehover", "togglespikelines", "toimage", + "zoom", "zoom2d", "zoom3d", "zoomIn2d", + "zoomInGeo", "zoomInMapbox", "zoomOut2d", + "zoomOutGeo", "zoomOutMapbox", "zoomin", + "zoomout". + removesrc + Sets the source reference on Chart Studio Cloud + for remove . uirevision Controls persistence of user-driven changes related to the modebar, including `hovermode`, diff --git a/packages/python/plotly/plotly/validators/layout/_orientation.py b/packages/python/plotly/plotly/validators/layout/_orientation.py deleted file mode 100644 index b29e044ba9..0000000000 --- a/packages/python/plotly/plotly/validators/layout/_orientation.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class OrientationValidator(_plotly_utils.basevalidators.AngleValidator): - def __init__(self, plotly_name="orientation", parent_name="layout", **kwargs): - super(OrientationValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/_paper_bgcolor.py b/packages/python/plotly/plotly/validators/layout/_paper_bgcolor.py index 2ce56e87f3..b249679915 100644 --- a/packages/python/plotly/plotly/validators/layout/_paper_bgcolor.py +++ b/packages/python/plotly/plotly/validators/layout/_paper_bgcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="paper_bgcolor", parent_name="layout", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_piecolorway.py b/packages/python/plotly/plotly/validators/layout/_piecolorway.py index 806e737bbd..9302acb05f 100644 --- a/packages/python/plotly/plotly/validators/layout/_piecolorway.py +++ b/packages/python/plotly/plotly/validators/layout/_piecolorway.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="piecolorway", parent_name="layout", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_plot_bgcolor.py b/packages/python/plotly/plotly/validators/layout/_plot_bgcolor.py index f9e0d5c332..daf4ba869f 100644 --- a/packages/python/plotly/plotly/validators/layout/_plot_bgcolor.py +++ b/packages/python/plotly/plotly/validators/layout/_plot_bgcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="plot_bgcolor", parent_name="layout", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "layoutstyle"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_radialaxis.py b/packages/python/plotly/plotly/validators/layout/_radialaxis.py deleted file mode 100644 index 99a82dbf85..0000000000 --- a/packages/python/plotly/plotly/validators/layout/_radialaxis.py +++ /dev/null @@ -1,62 +0,0 @@ -import _plotly_utils.basevalidators - - -class RadialaxisValidator(_plotly_utils.basevalidators.CompoundValidator): - def __init__(self, plotly_name="radialaxis", parent_name="layout", **kwargs): - super(RadialaxisValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - data_class_str=kwargs.pop("data_class_str", "RadialAxis"), - data_docs=kwargs.pop( - "data_docs", - """ - domain - Polar chart subplots are not supported yet. - This key has currently no effect. - endpadding - Legacy polar charts are deprecated! Please - switch to "polar" subplots. - orientation - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Sets the - orientation (an angle with respect to the - origin) of the radial axis. - range - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Defines the start - and end point of this radial axis. - showline - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Determines whether - or not the line bounding this radial axis will - be shown on the figure. - showticklabels - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Determines whether - or not the radial axis ticks will feature tick - labels. - tickcolor - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Sets the color of - the tick lines on this radial axis. - ticklen - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Sets the length of - the tick lines on this radial axis. - tickorientation - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Sets the - orientation (from the paper perspective) of the - radial axis tick labels. - ticksuffix - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Sets the length of - the tick lines on this radial axis. - visible - Legacy polar charts are deprecated! Please - switch to "polar" subplots. Determines whether - or not this axis will be visible. -""", - ), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/_selectdirection.py b/packages/python/plotly/plotly/validators/layout/_selectdirection.py index dd80f02c3a..75c99dfe43 100644 --- a/packages/python/plotly/plotly/validators/layout/_selectdirection.py +++ b/packages/python/plotly/plotly/validators/layout/_selectdirection.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="selectdirection", parent_name="layout", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["h", "v", "d", "any"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_selectionrevision.py b/packages/python/plotly/plotly/validators/layout/_selectionrevision.py index 2d6a4e9478..bb35ac8336 100644 --- a/packages/python/plotly/plotly/validators/layout/_selectionrevision.py +++ b/packages/python/plotly/plotly/validators/layout/_selectionrevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="selectionrevision", parent_name="layout", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_separators.py b/packages/python/plotly/plotly/validators/layout/_separators.py index f29f1b2dc5..3b0cbb613a 100644 --- a/packages/python/plotly/plotly/validators/layout/_separators.py +++ b/packages/python/plotly/plotly/validators/layout/_separators.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="separators", parent_name="layout", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_showlegend.py b/packages/python/plotly/plotly/validators/layout/_showlegend.py index 7407492a9f..b0904525bc 100644 --- a/packages/python/plotly/plotly/validators/layout/_showlegend.py +++ b/packages/python/plotly/plotly/validators/layout/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="layout", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "legend"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_spikedistance.py b/packages/python/plotly/plotly/validators/layout/_spikedistance.py index d71f33f9cc..6461bf7402 100644 --- a/packages/python/plotly/plotly/validators/layout/_spikedistance.py +++ b/packages/python/plotly/plotly/validators/layout/_spikedistance.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="spikedistance", parent_name="layout", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_sunburstcolorway.py b/packages/python/plotly/plotly/validators/layout/_sunburstcolorway.py index 3990d3f41f..15196aa44b 100644 --- a/packages/python/plotly/plotly/validators/layout/_sunburstcolorway.py +++ b/packages/python/plotly/plotly/validators/layout/_sunburstcolorway.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="sunburstcolorway", parent_name="layout", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_treemapcolorway.py b/packages/python/plotly/plotly/validators/layout/_treemapcolorway.py index 03be508a34..41b01da813 100644 --- a/packages/python/plotly/plotly/validators/layout/_treemapcolorway.py +++ b/packages/python/plotly/plotly/validators/layout/_treemapcolorway.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="treemapcolorway", parent_name="layout", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_uirevision.py b/packages/python/plotly/plotly/validators/layout/_uirevision.py index 18abe1de0d..c877bd931e 100644 --- a/packages/python/plotly/plotly/validators/layout/_uirevision.py +++ b/packages/python/plotly/plotly/validators/layout/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="layout", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_violingap.py b/packages/python/plotly/plotly/validators/layout/_violingap.py index 7e5f6b6f05..fa610734ef 100644 --- a/packages/python/plotly/plotly/validators/layout/_violingap.py +++ b/packages/python/plotly/plotly/validators/layout/_violingap.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="violingap", parent_name="layout", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_violingroupgap.py b/packages/python/plotly/plotly/validators/layout/_violingroupgap.py index c5754d12d8..fafe4be5f7 100644 --- a/packages/python/plotly/plotly/validators/layout/_violingroupgap.py +++ b/packages/python/plotly/plotly/validators/layout/_violingroupgap.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="violingroupgap", parent_name="layout", **kwargs) edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_violinmode.py b/packages/python/plotly/plotly/validators/layout/_violinmode.py index 848724e4d6..38b733a090 100644 --- a/packages/python/plotly/plotly/validators/layout/_violinmode.py +++ b/packages/python/plotly/plotly/validators/layout/_violinmode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="violinmode", parent_name="layout", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["group", "overlay"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_waterfallgap.py b/packages/python/plotly/plotly/validators/layout/_waterfallgap.py index 66f2addce4..405d173044 100644 --- a/packages/python/plotly/plotly/validators/layout/_waterfallgap.py +++ b/packages/python/plotly/plotly/validators/layout/_waterfallgap.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="waterfallgap", parent_name="layout", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_waterfallgroupgap.py b/packages/python/plotly/plotly/validators/layout/_waterfallgroupgap.py index 2a304a37fb..29e74f6de4 100644 --- a/packages/python/plotly/plotly/validators/layout/_waterfallgroupgap.py +++ b/packages/python/plotly/plotly/validators/layout/_waterfallgroupgap.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="waterfallgroupgap", parent_name="layout", **kwar edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_waterfallmode.py b/packages/python/plotly/plotly/validators/layout/_waterfallmode.py index c04a758764..45a570e5f4 100644 --- a/packages/python/plotly/plotly/validators/layout/_waterfallmode.py +++ b/packages/python/plotly/plotly/validators/layout/_waterfallmode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="waterfallmode", parent_name="layout", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["group", "overlay"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_width.py b/packages/python/plotly/plotly/validators/layout/_width.py index d33a359958..ac1e0b82e1 100644 --- a/packages/python/plotly/plotly/validators/layout/_width.py +++ b/packages/python/plotly/plotly/validators/layout/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="layout", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 10), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/_xaxis.py b/packages/python/plotly/plotly/validators/layout/_xaxis.py index 19a218875c..804a0317c7 100644 --- a/packages/python/plotly/plotly/validators/layout/_xaxis.py +++ b/packages/python/plotly/plotly/validators/layout/_xaxis.py @@ -380,6 +380,14 @@ def __init__(self, plotly_name="xaxis", parent_name="layout", **kwargs): "date" When set to "period", tick labels are drawn in the middle of the period between ticks. + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. Otherwise on + "category" and "multicategory" axes the default + is "allow". In other cases the default is *hide + past div*. ticklabelposition Determines where tick labels are drawn with respect to the axis Please note that top or diff --git a/packages/python/plotly/plotly/validators/layout/_yaxis.py b/packages/python/plotly/plotly/validators/layout/_yaxis.py index 5f0f137533..bdf89a060d 100644 --- a/packages/python/plotly/plotly/validators/layout/_yaxis.py +++ b/packages/python/plotly/plotly/validators/layout/_yaxis.py @@ -372,6 +372,14 @@ def __init__(self, plotly_name="yaxis", parent_name="layout", **kwargs): "date" When set to "period", tick labels are drawn in the middle of the period between ticks. + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. Otherwise on + "category" and "multicategory" axes the default + is "allow". In other cases the default is *hide + past div*. ticklabelposition Determines where tick labels are drawn with respect to the axis Please note that top or diff --git a/packages/python/plotly/plotly/validators/layout/activeshape/_fillcolor.py b/packages/python/plotly/plotly/validators/layout/activeshape/_fillcolor.py index 0f64b0fef3..a143422a48 100644 --- a/packages/python/plotly/plotly/validators/layout/activeshape/_fillcolor.py +++ b/packages/python/plotly/plotly/validators/layout/activeshape/_fillcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/activeshape/_opacity.py b/packages/python/plotly/plotly/validators/layout/activeshape/_opacity.py index 05d02b1587..2406911b5d 100644 --- a/packages/python/plotly/plotly/validators/layout/activeshape/_opacity.py +++ b/packages/python/plotly/plotly/validators/layout/activeshape/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "none"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/angularaxis/__init__.py b/packages/python/plotly/plotly/validators/layout/angularaxis/__init__.py deleted file mode 100644 index 6ac2e2551d..0000000000 --- a/packages/python/plotly/plotly/validators/layout/angularaxis/__init__.py +++ /dev/null @@ -1,32 +0,0 @@ -import sys - -if sys.version_info < (3, 7): - from ._visible import VisibleValidator - from ._ticksuffix import TicksuffixValidator - from ._tickorientation import TickorientationValidator - from ._ticklen import TicklenValidator - from ._tickcolor import TickcolorValidator - from ._showticklabels import ShowticklabelsValidator - from ._showline import ShowlineValidator - from ._range import RangeValidator - from ._endpadding import EndpaddingValidator - from ._domain import DomainValidator -else: - from _plotly_utils.importers import relative_import - - __all__, __getattr__, __dir__ = relative_import( - __name__, - [], - [ - "._visible.VisibleValidator", - "._ticksuffix.TicksuffixValidator", - "._tickorientation.TickorientationValidator", - "._ticklen.TicklenValidator", - "._tickcolor.TickcolorValidator", - "._showticklabels.ShowticklabelsValidator", - "._showline.ShowlineValidator", - "._range.RangeValidator", - "._endpadding.EndpaddingValidator", - "._domain.DomainValidator", - ], - ) diff --git a/packages/python/plotly/plotly/validators/layout/angularaxis/_domain.py b/packages/python/plotly/plotly/validators/layout/angularaxis/_domain.py deleted file mode 100644 index 4b57debb9b..0000000000 --- a/packages/python/plotly/plotly/validators/layout/angularaxis/_domain.py +++ /dev/null @@ -1,21 +0,0 @@ -import _plotly_utils.basevalidators - - -class DomainValidator(_plotly_utils.basevalidators.InfoArrayValidator): - def __init__( - self, plotly_name="domain", parent_name="layout.angularaxis", **kwargs - ): - super(DomainValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "plot"), - items=kwargs.pop( - "items", - [ - {"valType": "number", "min": 0, "max": 1, "editType": "plot"}, - {"valType": "number", "min": 0, "max": 1, "editType": "plot"}, - ], - ), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/angularaxis/_endpadding.py b/packages/python/plotly/plotly/validators/layout/angularaxis/_endpadding.py deleted file mode 100644 index 559edbc627..0000000000 --- a/packages/python/plotly/plotly/validators/layout/angularaxis/_endpadding.py +++ /dev/null @@ -1,14 +0,0 @@ -import _plotly_utils.basevalidators - - -class EndpaddingValidator(_plotly_utils.basevalidators.NumberValidator): - def __init__( - self, plotly_name="endpadding", parent_name="layout.angularaxis", **kwargs - ): - super(EndpaddingValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/angularaxis/_range.py b/packages/python/plotly/plotly/validators/layout/angularaxis/_range.py deleted file mode 100644 index 8e414d9877..0000000000 --- a/packages/python/plotly/plotly/validators/layout/angularaxis/_range.py +++ /dev/null @@ -1,19 +0,0 @@ -import _plotly_utils.basevalidators - - -class RangeValidator(_plotly_utils.basevalidators.InfoArrayValidator): - def __init__(self, plotly_name="range", parent_name="layout.angularaxis", **kwargs): - super(RangeValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "plot"), - items=kwargs.pop( - "items", - [ - {"valType": "number", "dflt": 0, "editType": "plot"}, - {"valType": "number", "dflt": 360, "editType": "plot"}, - ], - ), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/angularaxis/_showline.py b/packages/python/plotly/plotly/validators/layout/angularaxis/_showline.py deleted file mode 100644 index 65a792e116..0000000000 --- a/packages/python/plotly/plotly/validators/layout/angularaxis/_showline.py +++ /dev/null @@ -1,14 +0,0 @@ -import _plotly_utils.basevalidators - - -class ShowlineValidator(_plotly_utils.basevalidators.BooleanValidator): - def __init__( - self, plotly_name="showline", parent_name="layout.angularaxis", **kwargs - ): - super(ShowlineValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/angularaxis/_showticklabels.py b/packages/python/plotly/plotly/validators/layout/angularaxis/_showticklabels.py deleted file mode 100644 index 5285ebb427..0000000000 --- a/packages/python/plotly/plotly/validators/layout/angularaxis/_showticklabels.py +++ /dev/null @@ -1,14 +0,0 @@ -import _plotly_utils.basevalidators - - -class ShowticklabelsValidator(_plotly_utils.basevalidators.BooleanValidator): - def __init__( - self, plotly_name="showticklabels", parent_name="layout.angularaxis", **kwargs - ): - super(ShowticklabelsValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/angularaxis/_tickcolor.py b/packages/python/plotly/plotly/validators/layout/angularaxis/_tickcolor.py deleted file mode 100644 index aae6bbc636..0000000000 --- a/packages/python/plotly/plotly/validators/layout/angularaxis/_tickcolor.py +++ /dev/null @@ -1,14 +0,0 @@ -import _plotly_utils.basevalidators - - -class TickcolorValidator(_plotly_utils.basevalidators.ColorValidator): - def __init__( - self, plotly_name="tickcolor", parent_name="layout.angularaxis", **kwargs - ): - super(TickcolorValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/angularaxis/_ticklen.py b/packages/python/plotly/plotly/validators/layout/angularaxis/_ticklen.py deleted file mode 100644 index 081096b358..0000000000 --- a/packages/python/plotly/plotly/validators/layout/angularaxis/_ticklen.py +++ /dev/null @@ -1,15 +0,0 @@ -import _plotly_utils.basevalidators - - -class TicklenValidator(_plotly_utils.basevalidators.NumberValidator): - def __init__( - self, plotly_name="ticklen", parent_name="layout.angularaxis", **kwargs - ): - super(TicklenValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "plot"), - min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/angularaxis/_tickorientation.py b/packages/python/plotly/plotly/validators/layout/angularaxis/_tickorientation.py deleted file mode 100644 index 7714e52f7f..0000000000 --- a/packages/python/plotly/plotly/validators/layout/angularaxis/_tickorientation.py +++ /dev/null @@ -1,15 +0,0 @@ -import _plotly_utils.basevalidators - - -class TickorientationValidator(_plotly_utils.basevalidators.EnumeratedValidator): - def __init__( - self, plotly_name="tickorientation", parent_name="layout.angularaxis", **kwargs - ): - super(TickorientationValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), - values=kwargs.pop("values", ["horizontal", "vertical"]), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/angularaxis/_ticksuffix.py b/packages/python/plotly/plotly/validators/layout/angularaxis/_ticksuffix.py deleted file mode 100644 index 413f80ef40..0000000000 --- a/packages/python/plotly/plotly/validators/layout/angularaxis/_ticksuffix.py +++ /dev/null @@ -1,14 +0,0 @@ -import _plotly_utils.basevalidators - - -class TicksuffixValidator(_plotly_utils.basevalidators.StringValidator): - def __init__( - self, plotly_name="ticksuffix", parent_name="layout.angularaxis", **kwargs - ): - super(TicksuffixValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/angularaxis/_visible.py b/packages/python/plotly/plotly/validators/layout/angularaxis/_visible.py deleted file mode 100644 index b50c8ffe30..0000000000 --- a/packages/python/plotly/plotly/validators/layout/angularaxis/_visible.py +++ /dev/null @@ -1,14 +0,0 @@ -import _plotly_utils.basevalidators - - -class VisibleValidator(_plotly_utils.basevalidators.BooleanValidator): - def __init__( - self, plotly_name="visible", parent_name="layout.angularaxis", **kwargs - ): - super(VisibleValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_align.py b/packages/python/plotly/plotly/validators/layout/annotation/_align.py index 530f37497b..0ef234afc2 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_align.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_align.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="align", parent_name="layout.annotation", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_arrowcolor.py b/packages/python/plotly/plotly/validators/layout/annotation/_arrowcolor.py index e84a4be72b..15c6ab2877 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_arrowcolor.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_arrowcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_arrowhead.py b/packages/python/plotly/plotly/validators/layout/annotation/_arrowhead.py index 1dce1e7b67..6ca1fa8f51 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_arrowhead.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_arrowhead.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "arraydraw"), max=kwargs.pop("max", 8), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_arrowside.py b/packages/python/plotly/plotly/validators/layout/annotation/_arrowside.py index f34c24f1f5..7db0d369af 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_arrowside.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_arrowside.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "arraydraw"), extras=kwargs.pop("extras", ["none"]), flags=kwargs.pop("flags", ["end", "start"]), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_arrowsize.py b/packages/python/plotly/plotly/validators/layout/annotation/_arrowsize.py index bcc3df6190..289198232b 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_arrowsize.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_arrowsize.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), min=kwargs.pop("min", 0.3), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_arrowwidth.py b/packages/python/plotly/plotly/validators/layout/annotation/_arrowwidth.py index 1c4ef1edb8..b56b27b6c6 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_arrowwidth.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_arrowwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), min=kwargs.pop("min", 0.1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_ax.py b/packages/python/plotly/plotly/validators/layout/annotation/_ax.py index 60de7574a2..701f05ec2b 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_ax.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_ax.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ax", parent_name="layout.annotation", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_axref.py b/packages/python/plotly/plotly/validators/layout/annotation/_axref.py index 2224f863fb..54afd45e1d 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_axref.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_axref.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="axref", parent_name="layout.annotation", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", ["pixel", "/^x([2-9]|[1-9][0-9]+)?( domain)?$/"] ), diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_ay.py b/packages/python/plotly/plotly/validators/layout/annotation/_ay.py index 4b1bdb0338..67cbbd19ce 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_ay.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_ay.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ay", parent_name="layout.annotation", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_ayref.py b/packages/python/plotly/plotly/validators/layout/annotation/_ayref.py index e21b5e84fd..a81b970d6a 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_ayref.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_ayref.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ayref", parent_name="layout.annotation", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", ["pixel", "/^y([2-9]|[1-9][0-9]+)?( domain)?$/"] ), diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_bgcolor.py b/packages/python/plotly/plotly/validators/layout/annotation/_bgcolor.py index 424ae1c6d3..fa70f3b79d 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_bordercolor.py b/packages/python/plotly/plotly/validators/layout/annotation/_bordercolor.py index 7d45305900..932cce4a95 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_borderpad.py b/packages/python/plotly/plotly/validators/layout/annotation/_borderpad.py index 336d870f84..00f54dfb32 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_borderpad.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_borderpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_borderwidth.py b/packages/python/plotly/plotly/validators/layout/annotation/_borderwidth.py index 02de3a317d..c5f666c005 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_captureevents.py b/packages/python/plotly/plotly/validators/layout/annotation/_captureevents.py index b811e77e6f..82ff925c41 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_captureevents.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_captureevents.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_clicktoshow.py b/packages/python/plotly/plotly/validators/layout/annotation/_clicktoshow.py index 32a86924b2..8d07bda6df 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_clicktoshow.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_clicktoshow.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", [False, "onoff", "onout"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_height.py b/packages/python/plotly/plotly/validators/layout/annotation/_height.py index fc3d4c68ff..feb035fd0d 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_height.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_height.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="height", parent_name="layout.annotation", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_hovertext.py b/packages/python/plotly/plotly/validators/layout/annotation/_hovertext.py index f612def2ae..9105151e06 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_hovertext.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_hovertext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_name.py b/packages/python/plotly/plotly/validators/layout/annotation/_name.py index e661e5b5b6..d6c28f07f9 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_name.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="layout.annotation", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_opacity.py b/packages/python/plotly/plotly/validators/layout/annotation/_opacity.py index f34cbdd1dc..ae313ae5e3 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_opacity.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "arraydraw"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_showarrow.py b/packages/python/plotly/plotly/validators/layout/annotation/_showarrow.py index c7ae73303f..63a4d7015d 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_showarrow.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_showarrow.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_standoff.py b/packages/python/plotly/plotly/validators/layout/annotation/_standoff.py index f2ead84948..fbe3554b2c 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_standoff.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_standoff.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_startarrowhead.py b/packages/python/plotly/plotly/validators/layout/annotation/_startarrowhead.py index 993d883269..5876c10f1e 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_startarrowhead.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_startarrowhead.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "arraydraw"), max=kwargs.pop("max", 8), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_startarrowsize.py b/packages/python/plotly/plotly/validators/layout/annotation/_startarrowsize.py index d3479642fa..3c841d921e 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_startarrowsize.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_startarrowsize.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), min=kwargs.pop("min", 0.3), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_startstandoff.py b/packages/python/plotly/plotly/validators/layout/annotation/_startstandoff.py index eee9fbd6a6..fb18339f72 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_startstandoff.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_startstandoff.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_templateitemname.py b/packages/python/plotly/plotly/validators/layout/annotation/_templateitemname.py index 2d6bde0ad4..745acb12a5 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_templateitemname.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_text.py b/packages/python/plotly/plotly/validators/layout/annotation/_text.py index 7589492748..94e3e5e041 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_text.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_text.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="text", parent_name="layout.annotation", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_textangle.py b/packages/python/plotly/plotly/validators/layout/annotation/_textangle.py index 563e62d740..6e8647065d 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_textangle.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_textangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_valign.py b/packages/python/plotly/plotly/validators/layout/annotation/_valign.py index f24a3b7530..c12100d6ba 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_valign.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_valign.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="valign", parent_name="layout.annotation", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_visible.py b/packages/python/plotly/plotly/validators/layout/annotation/_visible.py index 117fab9be7..1339d5b2c2 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_visible.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_visible.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_width.py b/packages/python/plotly/plotly/validators/layout/annotation/_width.py index ac9cb097ea..bdce0c0270 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_width.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="layout.annotation", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_x.py b/packages/python/plotly/plotly/validators/layout/annotation/_x.py index 01e459a8a5..d1ccc07ed9 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_x.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_x.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x", parent_name="layout.annotation", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_xanchor.py b/packages/python/plotly/plotly/validators/layout/annotation/_xanchor.py index 5ed0bad5f3..66c6d886c3 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_xanchor.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_xclick.py b/packages/python/plotly/plotly/validators/layout/annotation/_xclick.py index a80f01e89b..ca9e3048ae 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_xclick.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_xclick.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xclick", parent_name="layout.annotation", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_xref.py b/packages/python/plotly/plotly/validators/layout/annotation/_xref.py index b1e89aacf4..ba012ab907 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_xref.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_xref.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xref", parent_name="layout.annotation", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", ["paper", "/^x([2-9]|[1-9][0-9]+)?( domain)?$/"] ), diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_xshift.py b/packages/python/plotly/plotly/validators/layout/annotation/_xshift.py index 12a611a6ea..f5e193eda9 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_xshift.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_xshift.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xshift", parent_name="layout.annotation", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_y.py b/packages/python/plotly/plotly/validators/layout/annotation/_y.py index 4ad554f346..bdd6004223 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_y.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_y.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y", parent_name="layout.annotation", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_yanchor.py b/packages/python/plotly/plotly/validators/layout/annotation/_yanchor.py index 6a304a35c4..b3890f9395 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_yanchor.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_yclick.py b/packages/python/plotly/plotly/validators/layout/annotation/_yclick.py index c78089ee0f..a47e226153 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_yclick.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_yclick.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="yclick", parent_name="layout.annotation", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_yref.py b/packages/python/plotly/plotly/validators/layout/annotation/_yref.py index 40295ba7b6..07d4dd8eda 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_yref.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_yref.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="yref", parent_name="layout.annotation", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", ["paper", "/^y([2-9]|[1-9][0-9]+)?( domain)?$/"] ), diff --git a/packages/python/plotly/plotly/validators/layout/annotation/_yshift.py b/packages/python/plotly/plotly/validators/layout/annotation/_yshift.py index 7fb3a084a1..cad3489e6f 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/_yshift.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/_yshift.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="yshift", parent_name="layout.annotation", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/font/_color.py b/packages/python/plotly/plotly/validators/layout/annotation/font/_color.py index 207415dad5..c393d1316e 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/font/_color.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/font/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/font/_family.py b/packages/python/plotly/plotly/validators/layout/annotation/font/_family.py index dfe065ae82..7f29be3d88 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/font/_family.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/font/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/font/_size.py b/packages/python/plotly/plotly/validators/layout/annotation/font/_size.py index ed2201f2c8..a31dedbed8 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/font/_size.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/layout/annotation/hoverlabel/_bgcolor.py index 70be0e8536..6bb157b7b6 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/hoverlabel/_bgcolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/layout/annotation/hoverlabel/_bordercolor.py index 759338b132..7f22409ded 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/hoverlabel/_bordercolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/layout/annotation/hoverlabel/font/_color.py index 6ba0c6defc..9db359baae 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/hoverlabel/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/layout/annotation/hoverlabel/font/_family.py index fec3621b73..384e641e1d 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/hoverlabel/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/annotation/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/layout/annotation/hoverlabel/font/_size.py index 28ff804665..f04bf71651 100644 --- a/packages/python/plotly/plotly/validators/layout/annotation/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/layout/annotation/hoverlabel/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/_autocolorscale.py b/packages/python/plotly/plotly/validators/layout/coloraxis/_autocolorscale.py index c974393c73..7df7158856 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/_cauto.py b/packages/python/plotly/plotly/validators/layout/coloraxis/_cauto.py index 13450cd244..05e13fa0d0 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/_cauto.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/_cauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cauto", parent_name="layout.coloraxis", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/_cmax.py b/packages/python/plotly/plotly/validators/layout/coloraxis/_cmax.py index 8740937c67..236b638638 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/_cmax.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="layout.coloraxis", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/_cmid.py b/packages/python/plotly/plotly/validators/layout/coloraxis/_cmid.py index 5d1f104628..1cb44f0b10 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/_cmid.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="layout.coloraxis", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/_cmin.py b/packages/python/plotly/plotly/validators/layout/coloraxis/_cmin.py index 83195b0316..160d0f7dd5 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/_cmin.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="layout.coloraxis", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/_colorbar.py b/packages/python/plotly/plotly/validators/layout/coloraxis/_colorbar.py index 6744a155c4..6f9cbaa90a 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/_colorbar.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/_colorbar.py @@ -150,6 +150,12 @@ def __init__( sets the default property values to use for elements of layout.coloraxis.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/_colorscale.py b/packages/python/plotly/plotly/validators/layout/coloraxis/_colorscale.py index 933a2cafaf..862cba4520 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/_colorscale.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/_reversescale.py b/packages/python/plotly/plotly/validators/layout/coloraxis/_reversescale.py index 74e252c154..4c240930c2 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/_reversescale.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/_showscale.py b/packages/python/plotly/plotly/validators/layout/coloraxis/_showscale.py index 10aeb3bc1b..17819ae3ca 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/_showscale.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/_showscale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/__init__.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_bgcolor.py index 971f8949cf..bab1253799 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_bordercolor.py index ad54bbfbd5..8d43957b2a 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_bordercolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_borderwidth.py index f48108e5cc..f1cca36bb2 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_borderwidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_dtick.py index 9bb7004d69..884b17d071 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_exponentformat.py index 14eae523fa..a04d0bdb8d 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_exponentformat.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_len.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_len.py index acc25312ba..9e8314eb27 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_len.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_lenmode.py index 66d100549f..b8aa281282 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_lenmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_minexponent.py index aa9a12fa82..f36219ad07 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_minexponent.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_nticks.py index 84e3abdb0d..ef0c40fe6e 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_outlinecolor.py index cabd9bbd06..a238632906 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_outlinecolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_outlinewidth.py index 0d6c5ce925..d88004853f 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_outlinewidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_separatethousands.py index fdba637356..560e14f00c 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_showexponent.py index 5434468d80..83df87696d 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_showexponent.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_showticklabels.py index 9103159625..9cebf7350a 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_showticklabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_showtickprefix.py index f0f534d599..d01bf99c8c 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_showtickprefix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_showticksuffix.py index c718e67caa..93b1a894f5 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_showticksuffix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_thickness.py index a21ae21d3c..98840a38eb 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_thicknessmode.py index 0450b65d5f..6ce9e359fc 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_thicknessmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tick0.py index 3bc6261886..15d657779e 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickangle.py index 8e47c19b3d..09fac73f2f 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickcolor.py index 64440a73ab..7b10c85678 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickformat.py index 755798d227..b133b706fc 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickformat.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..aea5298a3b --- /dev/null +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="layout.coloraxis.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "colorbars"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticklabelposition.py index d95da079bc..00004f08ba 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticklen.py index dea2d80d7c..80a101c4ea 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickmode.py index 8fe9de2de5..b9edafc1a8 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickprefix.py index a747ea40eb..98f61b343e 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickprefix.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticks.py index 7b11034cf1..8ede18dffc 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticksuffix.py index 606322826a..72cad4d895 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticksuffix.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticktext.py index 7a2cde8eb8..8bc266cecd 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticktextsrc.py index 230823a3d8..bf5409f976 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ticktextsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickvals.py index c2df31f27e..0198babf1d 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickvalssrc.py index bafc04c1bd..1d11ed3453 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickvalssrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickwidth.py index 9401256c93..8c52ba590f 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_x.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_x.py index 1e8e5d8277..677bbbb22d 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_x.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_xanchor.py index 8acc8cb78e..1cce4334c1 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_xpad.py index c0d9b6e00e..2ab3102ee8 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_xpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_y.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_y.py index 98006a9c01..f7a2bcd23b 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_y.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_yanchor.py index 1fa3289db3..043b38746f 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ypad.py index f2f9d76e9e..c744b97ebe 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/_ypad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickfont/_color.py index 8251642a99..3d94356185 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickfont/_family.py index c0e407963e..045e4880c0 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickfont/_size.py index 73755108cb..0b1ebd0480 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickformatstop/_dtickrange.py index 6f260c3d55..f9044f0bb6 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "colorbars"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickformatstop/_enabled.py index f77ada39d6..a201a07af1 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickformatstop/_name.py index 9ea114b3c8..7a95a4e0cc 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickformatstop/_templateitemname.py index 92283aac54..cbd48af27d 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickformatstop/_value.py index 8c4dbff3d0..3000e341cf 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/title/_side.py index efd98fe306..221accea27 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/title/_side.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/title/_text.py index 02096eb6df..9d99bb6d1f 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/title/_text.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/title/font/_color.py index 10963a38a8..9f93ef7735 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/title/font/_family.py index 48e10c1a87..9d446ca6b7 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/title/font/_size.py index 2a3a439418..baa9e3e5e3 100644 --- a/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/layout/coloraxis/colorbar/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/colorscale/_diverging.py b/packages/python/plotly/plotly/validators/layout/colorscale/_diverging.py index 53c15ab339..2fd4555940 100644 --- a/packages/python/plotly/plotly/validators/layout/colorscale/_diverging.py +++ b/packages/python/plotly/plotly/validators/layout/colorscale/_diverging.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/colorscale/_sequential.py b/packages/python/plotly/plotly/validators/layout/colorscale/_sequential.py index 7aaf2bc9c8..3f431d360d 100644 --- a/packages/python/plotly/plotly/validators/layout/colorscale/_sequential.py +++ b/packages/python/plotly/plotly/validators/layout/colorscale/_sequential.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/colorscale/_sequentialminus.py b/packages/python/plotly/plotly/validators/layout/colorscale/_sequentialminus.py index b10fc776a9..d2fa65f63e 100644 --- a/packages/python/plotly/plotly/validators/layout/colorscale/_sequentialminus.py +++ b/packages/python/plotly/plotly/validators/layout/colorscale/_sequentialminus.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/font/_color.py b/packages/python/plotly/plotly/validators/layout/font/_color.py index 959cb99c02..c4407bddc2 100644 --- a/packages/python/plotly/plotly/validators/layout/font/_color.py +++ b/packages/python/plotly/plotly/validators/layout/font/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="layout.font", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/font/_family.py b/packages/python/plotly/plotly/validators/layout/font/_family.py index bdb07967bb..cf889ed35e 100644 --- a/packages/python/plotly/plotly/validators/layout/font/_family.py +++ b/packages/python/plotly/plotly/validators/layout/font/_family.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="family", parent_name="layout.font", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/font/_size.py b/packages/python/plotly/plotly/validators/layout/font/_size.py index 77710a4068..e62250f924 100644 --- a/packages/python/plotly/plotly/validators/layout/font/_size.py +++ b/packages/python/plotly/plotly/validators/layout/font/_size.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="size", parent_name="layout.font", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_bgcolor.py b/packages/python/plotly/plotly/validators/layout/geo/_bgcolor.py index dc4814dfbc..54aee8f60e 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_bgcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="bgcolor", parent_name="layout.geo", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_coastlinecolor.py b/packages/python/plotly/plotly/validators/layout/geo/_coastlinecolor.py index c8d4073e9d..335723c5e4 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_coastlinecolor.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_coastlinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_coastlinewidth.py b/packages/python/plotly/plotly/validators/layout/geo/_coastlinewidth.py index d5c869e712..34675c4205 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_coastlinewidth.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_coastlinewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_countrycolor.py b/packages/python/plotly/plotly/validators/layout/geo/_countrycolor.py index c655602bf1..16d7466421 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_countrycolor.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_countrycolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="countrycolor", parent_name="layout.geo", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_countrywidth.py b/packages/python/plotly/plotly/validators/layout/geo/_countrywidth.py index 79406dd14b..aa6cd1c224 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_countrywidth.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_countrywidth.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="countrywidth", parent_name="layout.geo", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_fitbounds.py b/packages/python/plotly/plotly/validators/layout/geo/_fitbounds.py index b88f160a63..d76860c3a5 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_fitbounds.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_fitbounds.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="fitbounds", parent_name="layout.geo", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [False, "locations", "geojson"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_framecolor.py b/packages/python/plotly/plotly/validators/layout/geo/_framecolor.py index c9732e85d4..3c024bfb5e 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_framecolor.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_framecolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="framecolor", parent_name="layout.geo", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_framewidth.py b/packages/python/plotly/plotly/validators/layout/geo/_framewidth.py index 79ebd8a15c..46a14504df 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_framewidth.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_framewidth.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="framewidth", parent_name="layout.geo", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_lakecolor.py b/packages/python/plotly/plotly/validators/layout/geo/_lakecolor.py index 58677606c7..0e8ef7988c 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_lakecolor.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_lakecolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="lakecolor", parent_name="layout.geo", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_landcolor.py b/packages/python/plotly/plotly/validators/layout/geo/_landcolor.py index 8f4b12507c..cabef0f2d2 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_landcolor.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_landcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="landcolor", parent_name="layout.geo", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_oceancolor.py b/packages/python/plotly/plotly/validators/layout/geo/_oceancolor.py index d11a23fc70..bbfd854d6c 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_oceancolor.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_oceancolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="oceancolor", parent_name="layout.geo", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_resolution.py b/packages/python/plotly/plotly/validators/layout/geo/_resolution.py index 4cc1117b2b..aa6d822299 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_resolution.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_resolution.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="resolution", parent_name="layout.geo", **kwargs) parent_name=parent_name, coerce_number=kwargs.pop("coerce_number", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [110, 50]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_rivercolor.py b/packages/python/plotly/plotly/validators/layout/geo/_rivercolor.py index 58f4214a92..1588f9bb31 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_rivercolor.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_rivercolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="rivercolor", parent_name="layout.geo", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_riverwidth.py b/packages/python/plotly/plotly/validators/layout/geo/_riverwidth.py index acd246f57e..176694836f 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_riverwidth.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_riverwidth.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="riverwidth", parent_name="layout.geo", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_scope.py b/packages/python/plotly/plotly/validators/layout/geo/_scope.py index 79c3a5efeb..42415c4bbf 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_scope.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_scope.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="scope", parent_name="layout.geo", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/geo/_showcoastlines.py b/packages/python/plotly/plotly/validators/layout/geo/_showcoastlines.py index 8b30ebcae9..01982408ac 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_showcoastlines.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_showcoastlines.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_showcountries.py b/packages/python/plotly/plotly/validators/layout/geo/_showcountries.py index 0ff662084f..b7cdfe088d 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_showcountries.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_showcountries.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showcountries", parent_name="layout.geo", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_showframe.py b/packages/python/plotly/plotly/validators/layout/geo/_showframe.py index f5883640e7..574db455e5 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_showframe.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_showframe.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showframe", parent_name="layout.geo", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_showlakes.py b/packages/python/plotly/plotly/validators/layout/geo/_showlakes.py index 5a242c6dca..d14c1a6e78 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_showlakes.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_showlakes.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlakes", parent_name="layout.geo", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_showland.py b/packages/python/plotly/plotly/validators/layout/geo/_showland.py index 29d4e55022..1187433668 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_showland.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_showland.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showland", parent_name="layout.geo", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_showocean.py b/packages/python/plotly/plotly/validators/layout/geo/_showocean.py index e947180bef..3a4da4bb76 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_showocean.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_showocean.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showocean", parent_name="layout.geo", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_showrivers.py b/packages/python/plotly/plotly/validators/layout/geo/_showrivers.py index 58d6fef33a..deaf79bb27 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_showrivers.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_showrivers.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showrivers", parent_name="layout.geo", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_showsubunits.py b/packages/python/plotly/plotly/validators/layout/geo/_showsubunits.py index 56f9feab02..2cb12a1a10 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_showsubunits.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_showsubunits.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showsubunits", parent_name="layout.geo", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_subunitcolor.py b/packages/python/plotly/plotly/validators/layout/geo/_subunitcolor.py index 277159af32..f314dd69c3 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_subunitcolor.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_subunitcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="subunitcolor", parent_name="layout.geo", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_subunitwidth.py b/packages/python/plotly/plotly/validators/layout/geo/_subunitwidth.py index 33a581a3ad..dad24cc536 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_subunitwidth.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_subunitwidth.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="subunitwidth", parent_name="layout.geo", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_uirevision.py b/packages/python/plotly/plotly/validators/layout/geo/_uirevision.py index a896b8caac..ede10b6419 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_uirevision.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="layout.geo", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/_visible.py b/packages/python/plotly/plotly/validators/layout/geo/_visible.py index ee7a5961e0..c8e17066c7 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/_visible.py +++ b/packages/python/plotly/plotly/validators/layout/geo/_visible.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="visible", parent_name="layout.geo", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/center/_lat.py b/packages/python/plotly/plotly/validators/layout/geo/center/_lat.py index df0d54a39f..9daf08d21c 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/center/_lat.py +++ b/packages/python/plotly/plotly/validators/layout/geo/center/_lat.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="lat", parent_name="layout.geo.center", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/center/_lon.py b/packages/python/plotly/plotly/validators/layout/geo/center/_lon.py index 0007cb1eaa..d44c9acb6e 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/center/_lon.py +++ b/packages/python/plotly/plotly/validators/layout/geo/center/_lon.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="lon", parent_name="layout.geo.center", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/domain/_column.py b/packages/python/plotly/plotly/validators/layout/geo/domain/_column.py index ff2b7061b7..62a22f0604 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/domain/_column.py +++ b/packages/python/plotly/plotly/validators/layout/geo/domain/_column.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="column", parent_name="layout.geo.domain", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/domain/_row.py b/packages/python/plotly/plotly/validators/layout/geo/domain/_row.py index ea5b93a359..d3e6382639 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/domain/_row.py +++ b/packages/python/plotly/plotly/validators/layout/geo/domain/_row.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="row", parent_name="layout.geo.domain", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/domain/_x.py b/packages/python/plotly/plotly/validators/layout/geo/domain/_x.py index 2df2fe963b..10627e0791 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/domain/_x.py +++ b/packages/python/plotly/plotly/validators/layout/geo/domain/_x.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="x", parent_name="layout.geo.domain", **kwargs): {"valType": "number", "min": 0, "max": 1, "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/domain/_y.py b/packages/python/plotly/plotly/validators/layout/geo/domain/_y.py index 6d052815fd..9c9470f5cd 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/domain/_y.py +++ b/packages/python/plotly/plotly/validators/layout/geo/domain/_y.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="y", parent_name="layout.geo.domain", **kwargs): {"valType": "number", "min": 0, "max": 1, "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/lataxis/_dtick.py b/packages/python/plotly/plotly/validators/layout/geo/lataxis/_dtick.py index 8c465379ae..b902a602b8 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/lataxis/_dtick.py +++ b/packages/python/plotly/plotly/validators/layout/geo/lataxis/_dtick.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="dtick", parent_name="layout.geo.lataxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/lataxis/_gridcolor.py b/packages/python/plotly/plotly/validators/layout/geo/lataxis/_gridcolor.py index 8ecfbf53a3..f69d5946d0 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/lataxis/_gridcolor.py +++ b/packages/python/plotly/plotly/validators/layout/geo/lataxis/_gridcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/lataxis/_gridwidth.py b/packages/python/plotly/plotly/validators/layout/geo/lataxis/_gridwidth.py index 2394bff796..1608c6e0d0 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/lataxis/_gridwidth.py +++ b/packages/python/plotly/plotly/validators/layout/geo/lataxis/_gridwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/lataxis/_range.py b/packages/python/plotly/plotly/validators/layout/geo/lataxis/_range.py index 8f71e7dc08..1c23af4a99 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/lataxis/_range.py +++ b/packages/python/plotly/plotly/validators/layout/geo/lataxis/_range.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="range", parent_name="layout.geo.lataxis", **kwar {"valType": "number", "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/lataxis/_showgrid.py b/packages/python/plotly/plotly/validators/layout/geo/lataxis/_showgrid.py index 762291d54c..41a7a65cf9 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/lataxis/_showgrid.py +++ b/packages/python/plotly/plotly/validators/layout/geo/lataxis/_showgrid.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/lataxis/_tick0.py b/packages/python/plotly/plotly/validators/layout/geo/lataxis/_tick0.py index 43c54bc6df..32a67fce8a 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/lataxis/_tick0.py +++ b/packages/python/plotly/plotly/validators/layout/geo/lataxis/_tick0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tick0", parent_name="layout.geo.lataxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/lonaxis/_dtick.py b/packages/python/plotly/plotly/validators/layout/geo/lonaxis/_dtick.py index 11120c09b8..ea4a8c2476 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/lonaxis/_dtick.py +++ b/packages/python/plotly/plotly/validators/layout/geo/lonaxis/_dtick.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="dtick", parent_name="layout.geo.lonaxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/lonaxis/_gridcolor.py b/packages/python/plotly/plotly/validators/layout/geo/lonaxis/_gridcolor.py index d0afb9da04..664b28fd44 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/lonaxis/_gridcolor.py +++ b/packages/python/plotly/plotly/validators/layout/geo/lonaxis/_gridcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/lonaxis/_gridwidth.py b/packages/python/plotly/plotly/validators/layout/geo/lonaxis/_gridwidth.py index 0f53d06478..ccb01ca5ed 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/lonaxis/_gridwidth.py +++ b/packages/python/plotly/plotly/validators/layout/geo/lonaxis/_gridwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/lonaxis/_range.py b/packages/python/plotly/plotly/validators/layout/geo/lonaxis/_range.py index 6383682fd6..77db3ecd20 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/lonaxis/_range.py +++ b/packages/python/plotly/plotly/validators/layout/geo/lonaxis/_range.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="range", parent_name="layout.geo.lonaxis", **kwar {"valType": "number", "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/lonaxis/_showgrid.py b/packages/python/plotly/plotly/validators/layout/geo/lonaxis/_showgrid.py index 9afe82c1e2..53bede64ae 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/lonaxis/_showgrid.py +++ b/packages/python/plotly/plotly/validators/layout/geo/lonaxis/_showgrid.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/lonaxis/_tick0.py b/packages/python/plotly/plotly/validators/layout/geo/lonaxis/_tick0.py index 68ff3dbe11..d21ae4d786 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/lonaxis/_tick0.py +++ b/packages/python/plotly/plotly/validators/layout/geo/lonaxis/_tick0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tick0", parent_name="layout.geo.lonaxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/projection/_parallels.py b/packages/python/plotly/plotly/validators/layout/geo/projection/_parallels.py index 7bd594208b..c582293e35 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/projection/_parallels.py +++ b/packages/python/plotly/plotly/validators/layout/geo/projection/_parallels.py @@ -16,6 +16,5 @@ def __init__( {"valType": "number", "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/projection/_scale.py b/packages/python/plotly/plotly/validators/layout/geo/projection/_scale.py index 5ad543d8dc..7a849ef2a1 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/projection/_scale.py +++ b/packages/python/plotly/plotly/validators/layout/geo/projection/_scale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/projection/_type.py b/packages/python/plotly/plotly/validators/layout/geo/projection/_type.py index 8938a5c841..9877a98429 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/projection/_type.py +++ b/packages/python/plotly/plotly/validators/layout/geo/projection/_type.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/geo/projection/rotation/_lat.py b/packages/python/plotly/plotly/validators/layout/geo/projection/rotation/_lat.py index 1c02176c77..0cce3ba87b 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/projection/rotation/_lat.py +++ b/packages/python/plotly/plotly/validators/layout/geo/projection/rotation/_lat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/projection/rotation/_lon.py b/packages/python/plotly/plotly/validators/layout/geo/projection/rotation/_lon.py index 088d9845ec..d83235adf1 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/projection/rotation/_lon.py +++ b/packages/python/plotly/plotly/validators/layout/geo/projection/rotation/_lon.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/geo/projection/rotation/_roll.py b/packages/python/plotly/plotly/validators/layout/geo/projection/rotation/_roll.py index e37fcee0fb..bfe9ee6611 100644 --- a/packages/python/plotly/plotly/validators/layout/geo/projection/rotation/_roll.py +++ b/packages/python/plotly/plotly/validators/layout/geo/projection/rotation/_roll.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/grid/_columns.py b/packages/python/plotly/plotly/validators/layout/grid/_columns.py index f43d1d2828..3fe5f79d75 100644 --- a/packages/python/plotly/plotly/validators/layout/grid/_columns.py +++ b/packages/python/plotly/plotly/validators/layout/grid/_columns.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="columns", parent_name="layout.grid", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/grid/_pattern.py b/packages/python/plotly/plotly/validators/layout/grid/_pattern.py index 0e50ad8b80..1abe2de0d9 100644 --- a/packages/python/plotly/plotly/validators/layout/grid/_pattern.py +++ b/packages/python/plotly/plotly/validators/layout/grid/_pattern.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="pattern", parent_name="layout.grid", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["independent", "coupled"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/grid/_roworder.py b/packages/python/plotly/plotly/validators/layout/grid/_roworder.py index 42030a890b..ffd88a9649 100644 --- a/packages/python/plotly/plotly/validators/layout/grid/_roworder.py +++ b/packages/python/plotly/plotly/validators/layout/grid/_roworder.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="roworder", parent_name="layout.grid", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["top to bottom", "bottom to top"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/grid/_rows.py b/packages/python/plotly/plotly/validators/layout/grid/_rows.py index 5db86aa4d9..c1d3ba1bf9 100644 --- a/packages/python/plotly/plotly/validators/layout/grid/_rows.py +++ b/packages/python/plotly/plotly/validators/layout/grid/_rows.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="rows", parent_name="layout.grid", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/grid/_subplots.py b/packages/python/plotly/plotly/validators/layout/grid/_subplots.py index 3f713b1dfa..f7308f9c00 100644 --- a/packages/python/plotly/plotly/validators/layout/grid/_subplots.py +++ b/packages/python/plotly/plotly/validators/layout/grid/_subplots.py @@ -17,6 +17,5 @@ def __init__(self, plotly_name="subplots", parent_name="layout.grid", **kwargs): "editType": "plot", }, ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/grid/_xaxes.py b/packages/python/plotly/plotly/validators/layout/grid/_xaxes.py index a7c908f061..6cc306378b 100644 --- a/packages/python/plotly/plotly/validators/layout/grid/_xaxes.py +++ b/packages/python/plotly/plotly/validators/layout/grid/_xaxes.py @@ -16,6 +16,5 @@ def __init__(self, plotly_name="xaxes", parent_name="layout.grid", **kwargs): "editType": "plot", }, ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/grid/_xgap.py b/packages/python/plotly/plotly/validators/layout/grid/_xgap.py index 4ecefd5eec..9832ccf20b 100644 --- a/packages/python/plotly/plotly/validators/layout/grid/_xgap.py +++ b/packages/python/plotly/plotly/validators/layout/grid/_xgap.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="xgap", parent_name="layout.grid", **kwargs): edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/grid/_xside.py b/packages/python/plotly/plotly/validators/layout/grid/_xside.py index 3b2b4380d0..418cf35b4d 100644 --- a/packages/python/plotly/plotly/validators/layout/grid/_xside.py +++ b/packages/python/plotly/plotly/validators/layout/grid/_xside.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xside", parent_name="layout.grid", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["bottom", "bottom plot", "top plot", "top"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/grid/_yaxes.py b/packages/python/plotly/plotly/validators/layout/grid/_yaxes.py index 317293d824..6617cc696e 100644 --- a/packages/python/plotly/plotly/validators/layout/grid/_yaxes.py +++ b/packages/python/plotly/plotly/validators/layout/grid/_yaxes.py @@ -16,6 +16,5 @@ def __init__(self, plotly_name="yaxes", parent_name="layout.grid", **kwargs): "editType": "plot", }, ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/grid/_ygap.py b/packages/python/plotly/plotly/validators/layout/grid/_ygap.py index b4df063dac..83ade0431e 100644 --- a/packages/python/plotly/plotly/validators/layout/grid/_ygap.py +++ b/packages/python/plotly/plotly/validators/layout/grid/_ygap.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="ygap", parent_name="layout.grid", **kwargs): edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/grid/_yside.py b/packages/python/plotly/plotly/validators/layout/grid/_yside.py index ba01a03c52..79c3f3b6d2 100644 --- a/packages/python/plotly/plotly/validators/layout/grid/_yside.py +++ b/packages/python/plotly/plotly/validators/layout/grid/_yside.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="yside", parent_name="layout.grid", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["left", "left plot", "right plot", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/grid/domain/_x.py b/packages/python/plotly/plotly/validators/layout/grid/domain/_x.py index 15c0686e54..49d2cd9434 100644 --- a/packages/python/plotly/plotly/validators/layout/grid/domain/_x.py +++ b/packages/python/plotly/plotly/validators/layout/grid/domain/_x.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="x", parent_name="layout.grid.domain", **kwargs): {"valType": "number", "min": 0, "max": 1, "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/grid/domain/_y.py b/packages/python/plotly/plotly/validators/layout/grid/domain/_y.py index f66494e425..47aa22598c 100644 --- a/packages/python/plotly/plotly/validators/layout/grid/domain/_y.py +++ b/packages/python/plotly/plotly/validators/layout/grid/domain/_y.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="y", parent_name="layout.grid.domain", **kwargs): {"valType": "number", "min": 0, "max": 1, "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/layout/hoverlabel/_align.py index c508f1e5e3..255638edaf 100644 --- a/packages/python/plotly/plotly/validators/layout/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/layout/hoverlabel/_align.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="align", parent_name="layout.hoverlabel", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/layout/hoverlabel/_bgcolor.py index 265e5500c2..791cb72c88 100644 --- a/packages/python/plotly/plotly/validators/layout/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/layout/hoverlabel/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/layout/hoverlabel/_bordercolor.py index 0645a5e9ca..0f6345636f 100644 --- a/packages/python/plotly/plotly/validators/layout/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/layout/hoverlabel/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/layout/hoverlabel/_namelength.py index 6eaa226683..e4a2a2d952 100644 --- a/packages/python/plotly/plotly/validators/layout/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/layout/hoverlabel/_namelength.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/layout/hoverlabel/font/_color.py index a5155410bc..a5932ba2de 100644 --- a/packages/python/plotly/plotly/validators/layout/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/layout/hoverlabel/font/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/layout/hoverlabel/font/_family.py index 6e32e12993..cdfdd9f7d2 100644 --- a/packages/python/plotly/plotly/validators/layout/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/layout/hoverlabel/font/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/layout/hoverlabel/font/_size.py index 36e9a67cbb..e3f36b0331 100644 --- a/packages/python/plotly/plotly/validators/layout/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/layout/hoverlabel/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/image/_layer.py b/packages/python/plotly/plotly/validators/layout/image/_layer.py index e62c69f8dc..28e302365a 100644 --- a/packages/python/plotly/plotly/validators/layout/image/_layer.py +++ b/packages/python/plotly/plotly/validators/layout/image/_layer.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="layer", parent_name="layout.image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["below", "above"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/image/_name.py b/packages/python/plotly/plotly/validators/layout/image/_name.py index fd4d32752d..c78db1a500 100644 --- a/packages/python/plotly/plotly/validators/layout/image/_name.py +++ b/packages/python/plotly/plotly/validators/layout/image/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="layout.image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/image/_opacity.py b/packages/python/plotly/plotly/validators/layout/image/_opacity.py index 07821babbf..8932a87aef 100644 --- a/packages/python/plotly/plotly/validators/layout/image/_opacity.py +++ b/packages/python/plotly/plotly/validators/layout/image/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="layout.image", **kwargs): edit_type=kwargs.pop("edit_type", "arraydraw"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/image/_sizex.py b/packages/python/plotly/plotly/validators/layout/image/_sizex.py index 2450ce7d50..d715f4a9b3 100644 --- a/packages/python/plotly/plotly/validators/layout/image/_sizex.py +++ b/packages/python/plotly/plotly/validators/layout/image/_sizex.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="sizex", parent_name="layout.image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/image/_sizey.py b/packages/python/plotly/plotly/validators/layout/image/_sizey.py index 790212da0b..b4a05d3701 100644 --- a/packages/python/plotly/plotly/validators/layout/image/_sizey.py +++ b/packages/python/plotly/plotly/validators/layout/image/_sizey.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="sizey", parent_name="layout.image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/image/_sizing.py b/packages/python/plotly/plotly/validators/layout/image/_sizing.py index c4c6915db1..ff8f5ba386 100644 --- a/packages/python/plotly/plotly/validators/layout/image/_sizing.py +++ b/packages/python/plotly/plotly/validators/layout/image/_sizing.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="sizing", parent_name="layout.image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fill", "contain", "stretch"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/image/_source.py b/packages/python/plotly/plotly/validators/layout/image/_source.py index 1286038d39..96e7a0335b 100644 --- a/packages/python/plotly/plotly/validators/layout/image/_source.py +++ b/packages/python/plotly/plotly/validators/layout/image/_source.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="source", parent_name="layout.image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/image/_templateitemname.py b/packages/python/plotly/plotly/validators/layout/image/_templateitemname.py index b41c581c62..3f8945116e 100644 --- a/packages/python/plotly/plotly/validators/layout/image/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/layout/image/_templateitemname.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/image/_visible.py b/packages/python/plotly/plotly/validators/layout/image/_visible.py index 350ac179b7..4668ee9496 100644 --- a/packages/python/plotly/plotly/validators/layout/image/_visible.py +++ b/packages/python/plotly/plotly/validators/layout/image/_visible.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="visible", parent_name="layout.image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/image/_x.py b/packages/python/plotly/plotly/validators/layout/image/_x.py index 8084a9fdce..8a4f7b0d42 100644 --- a/packages/python/plotly/plotly/validators/layout/image/_x.py +++ b/packages/python/plotly/plotly/validators/layout/image/_x.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x", parent_name="layout.image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/image/_xanchor.py b/packages/python/plotly/plotly/validators/layout/image/_xanchor.py index 90dd510a82..ecb37e10b9 100644 --- a/packages/python/plotly/plotly/validators/layout/image/_xanchor.py +++ b/packages/python/plotly/plotly/validators/layout/image/_xanchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xanchor", parent_name="layout.image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/image/_xref.py b/packages/python/plotly/plotly/validators/layout/image/_xref.py index d0b0cb64bf..f0bfb6a1a8 100644 --- a/packages/python/plotly/plotly/validators/layout/image/_xref.py +++ b/packages/python/plotly/plotly/validators/layout/image/_xref.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xref", parent_name="layout.image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", ["paper", "/^x([2-9]|[1-9][0-9]+)?( domain)?$/"] ), diff --git a/packages/python/plotly/plotly/validators/layout/image/_y.py b/packages/python/plotly/plotly/validators/layout/image/_y.py index 77c6abec93..c06b7a5985 100644 --- a/packages/python/plotly/plotly/validators/layout/image/_y.py +++ b/packages/python/plotly/plotly/validators/layout/image/_y.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y", parent_name="layout.image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/image/_yanchor.py b/packages/python/plotly/plotly/validators/layout/image/_yanchor.py index 111793c9f1..4af8173cc8 100644 --- a/packages/python/plotly/plotly/validators/layout/image/_yanchor.py +++ b/packages/python/plotly/plotly/validators/layout/image/_yanchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="yanchor", parent_name="layout.image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/image/_yref.py b/packages/python/plotly/plotly/validators/layout/image/_yref.py index c20f0443d5..177369c7dd 100644 --- a/packages/python/plotly/plotly/validators/layout/image/_yref.py +++ b/packages/python/plotly/plotly/validators/layout/image/_yref.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="yref", parent_name="layout.image", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", ["paper", "/^y([2-9]|[1-9][0-9]+)?( domain)?$/"] ), diff --git a/packages/python/plotly/plotly/validators/layout/legend/_bgcolor.py b/packages/python/plotly/plotly/validators/layout/legend/_bgcolor.py index 96ef3c5424..c7d827b7ce 100644 --- a/packages/python/plotly/plotly/validators/layout/legend/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/layout/legend/_bgcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="bgcolor", parent_name="layout.legend", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "legend"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/legend/_bordercolor.py b/packages/python/plotly/plotly/validators/layout/legend/_bordercolor.py index 1798f62a4c..e9cd7c5d42 100644 --- a/packages/python/plotly/plotly/validators/layout/legend/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/layout/legend/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "legend"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/legend/_borderwidth.py b/packages/python/plotly/plotly/validators/layout/legend/_borderwidth.py index 81b557b23c..492207433c 100644 --- a/packages/python/plotly/plotly/validators/layout/legend/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/layout/legend/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "legend"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/legend/_itemclick.py b/packages/python/plotly/plotly/validators/layout/legend/_itemclick.py index bc14f73e1b..9c64e9523f 100644 --- a/packages/python/plotly/plotly/validators/layout/legend/_itemclick.py +++ b/packages/python/plotly/plotly/validators/layout/legend/_itemclick.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="itemclick", parent_name="layout.legend", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "legend"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["toggle", "toggleothers", False]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/legend/_itemdoubleclick.py b/packages/python/plotly/plotly/validators/layout/legend/_itemdoubleclick.py index c2bf10eb41..0c4721271b 100644 --- a/packages/python/plotly/plotly/validators/layout/legend/_itemdoubleclick.py +++ b/packages/python/plotly/plotly/validators/layout/legend/_itemdoubleclick.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "legend"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["toggle", "toggleothers", False]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/legend/_itemsizing.py b/packages/python/plotly/plotly/validators/layout/legend/_itemsizing.py index d8fd9e50e9..7f685fe8b2 100644 --- a/packages/python/plotly/plotly/validators/layout/legend/_itemsizing.py +++ b/packages/python/plotly/plotly/validators/layout/legend/_itemsizing.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="itemsizing", parent_name="layout.legend", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "legend"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["trace", "constant"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/legend/_itemwidth.py b/packages/python/plotly/plotly/validators/layout/legend/_itemwidth.py index 387e71d0ee..7e653ee33a 100644 --- a/packages/python/plotly/plotly/validators/layout/legend/_itemwidth.py +++ b/packages/python/plotly/plotly/validators/layout/legend/_itemwidth.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="itemwidth", parent_name="layout.legend", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "legend"), min=kwargs.pop("min", 30), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/legend/_orientation.py b/packages/python/plotly/plotly/validators/layout/legend/_orientation.py index 7f9b732192..5a1c8615da 100644 --- a/packages/python/plotly/plotly/validators/layout/legend/_orientation.py +++ b/packages/python/plotly/plotly/validators/layout/legend/_orientation.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "legend"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["v", "h"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/legend/_title.py b/packages/python/plotly/plotly/validators/layout/legend/_title.py index 28022e9b0c..b2f5756c37 100644 --- a/packages/python/plotly/plotly/validators/layout/legend/_title.py +++ b/packages/python/plotly/plotly/validators/layout/legend/_title.py @@ -11,7 +11,9 @@ def __init__(self, plotly_name="title", parent_name="layout.legend", **kwargs): "data_docs", """ font - Sets this legend's title font. + Sets this legend's title font. Defaults to + `legend.font` with its size increased about + 20%. side Determines the location of legend's title with respect to the legend items. Defaulted to "top" diff --git a/packages/python/plotly/plotly/validators/layout/legend/_tracegroupgap.py b/packages/python/plotly/plotly/validators/layout/legend/_tracegroupgap.py index 428a5c7553..54dea4a1d6 100644 --- a/packages/python/plotly/plotly/validators/layout/legend/_tracegroupgap.py +++ b/packages/python/plotly/plotly/validators/layout/legend/_tracegroupgap.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "legend"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/legend/_traceorder.py b/packages/python/plotly/plotly/validators/layout/legend/_traceorder.py index bc6c590862..d5fe177e6c 100644 --- a/packages/python/plotly/plotly/validators/layout/legend/_traceorder.py +++ b/packages/python/plotly/plotly/validators/layout/legend/_traceorder.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="traceorder", parent_name="layout.legend", **kwar edit_type=kwargs.pop("edit_type", "legend"), extras=kwargs.pop("extras", ["normal"]), flags=kwargs.pop("flags", ["reversed", "grouped"]), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/legend/_uirevision.py b/packages/python/plotly/plotly/validators/layout/legend/_uirevision.py index 8ef1f76ea1..280faf61f3 100644 --- a/packages/python/plotly/plotly/validators/layout/legend/_uirevision.py +++ b/packages/python/plotly/plotly/validators/layout/legend/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="layout.legend", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/legend/_valign.py b/packages/python/plotly/plotly/validators/layout/legend/_valign.py index 2f29b75ff1..c9be940925 100644 --- a/packages/python/plotly/plotly/validators/layout/legend/_valign.py +++ b/packages/python/plotly/plotly/validators/layout/legend/_valign.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="valign", parent_name="layout.legend", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "legend"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/legend/_x.py b/packages/python/plotly/plotly/validators/layout/legend/_x.py index c42f8d5866..3b6110de29 100644 --- a/packages/python/plotly/plotly/validators/layout/legend/_x.py +++ b/packages/python/plotly/plotly/validators/layout/legend/_x.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="x", parent_name="layout.legend", **kwargs): edit_type=kwargs.pop("edit_type", "legend"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/legend/_xanchor.py b/packages/python/plotly/plotly/validators/layout/legend/_xanchor.py index f631b2341c..c6e9ca6de8 100644 --- a/packages/python/plotly/plotly/validators/layout/legend/_xanchor.py +++ b/packages/python/plotly/plotly/validators/layout/legend/_xanchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xanchor", parent_name="layout.legend", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "legend"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/legend/_y.py b/packages/python/plotly/plotly/validators/layout/legend/_y.py index 6287f7c1d3..c695d9b10c 100644 --- a/packages/python/plotly/plotly/validators/layout/legend/_y.py +++ b/packages/python/plotly/plotly/validators/layout/legend/_y.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="y", parent_name="layout.legend", **kwargs): edit_type=kwargs.pop("edit_type", "legend"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/legend/_yanchor.py b/packages/python/plotly/plotly/validators/layout/legend/_yanchor.py index 399c2f5b11..53a8522ae9 100644 --- a/packages/python/plotly/plotly/validators/layout/legend/_yanchor.py +++ b/packages/python/plotly/plotly/validators/layout/legend/_yanchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="yanchor", parent_name="layout.legend", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "legend"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/legend/font/_color.py b/packages/python/plotly/plotly/validators/layout/legend/font/_color.py index f0dcd7a90b..6443958bd6 100644 --- a/packages/python/plotly/plotly/validators/layout/legend/font/_color.py +++ b/packages/python/plotly/plotly/validators/layout/legend/font/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="layout.legend.font", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "legend"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/legend/font/_family.py b/packages/python/plotly/plotly/validators/layout/legend/font/_family.py index 173002f013..10efb14c1b 100644 --- a/packages/python/plotly/plotly/validators/layout/legend/font/_family.py +++ b/packages/python/plotly/plotly/validators/layout/legend/font/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "legend"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/legend/font/_size.py b/packages/python/plotly/plotly/validators/layout/legend/font/_size.py index 76010a7f27..1d128e0551 100644 --- a/packages/python/plotly/plotly/validators/layout/legend/font/_size.py +++ b/packages/python/plotly/plotly/validators/layout/legend/font/_size.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="size", parent_name="layout.legend.font", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "legend"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/legend/title/_side.py b/packages/python/plotly/plotly/validators/layout/legend/title/_side.py index 1f21e12397..df609c5b0f 100644 --- a/packages/python/plotly/plotly/validators/layout/legend/title/_side.py +++ b/packages/python/plotly/plotly/validators/layout/legend/title/_side.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="side", parent_name="layout.legend.title", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "legend"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "left", "top left"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/legend/title/_text.py b/packages/python/plotly/plotly/validators/layout/legend/title/_text.py index 4f6c3a9373..b4b70e5644 100644 --- a/packages/python/plotly/plotly/validators/layout/legend/title/_text.py +++ b/packages/python/plotly/plotly/validators/layout/legend/title/_text.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="text", parent_name="layout.legend.title", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "legend"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/legend/title/font/_color.py b/packages/python/plotly/plotly/validators/layout/legend/title/font/_color.py index bfe6f5aabd..bb82f881c3 100644 --- a/packages/python/plotly/plotly/validators/layout/legend/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/layout/legend/title/font/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "legend"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/legend/title/font/_family.py b/packages/python/plotly/plotly/validators/layout/legend/title/font/_family.py index 18fbc48585..1191f5d7c9 100644 --- a/packages/python/plotly/plotly/validators/layout/legend/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/layout/legend/title/font/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "legend"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/legend/title/font/_size.py b/packages/python/plotly/plotly/validators/layout/legend/title/font/_size.py index c4c2fa4786..c7871086c6 100644 --- a/packages/python/plotly/plotly/validators/layout/legend/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/layout/legend/title/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "legend"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/_accesstoken.py b/packages/python/plotly/plotly/validators/layout/mapbox/_accesstoken.py index fd5d2797b7..97cf9cda92 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/_accesstoken.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/_accesstoken.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/_bearing.py b/packages/python/plotly/plotly/validators/layout/mapbox/_bearing.py index 667280ee07..d89913467d 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/_bearing.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/_bearing.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="bearing", parent_name="layout.mapbox", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/_pitch.py b/packages/python/plotly/plotly/validators/layout/mapbox/_pitch.py index 6c255cfd8c..9b4cb27f3f 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/_pitch.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/_pitch.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="pitch", parent_name="layout.mapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/_style.py b/packages/python/plotly/plotly/validators/layout/mapbox/_style.py index 025960abda..70c4f0b272 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/_style.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/_style.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="style", parent_name="layout.mapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/_uirevision.py b/packages/python/plotly/plotly/validators/layout/mapbox/_uirevision.py index d086955740..dcfd56e1bd 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/_uirevision.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="layout.mapbox", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/_zoom.py b/packages/python/plotly/plotly/validators/layout/mapbox/_zoom.py index 80eac7052c..08c30a9467 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/_zoom.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/_zoom.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="zoom", parent_name="layout.mapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/center/_lat.py b/packages/python/plotly/plotly/validators/layout/mapbox/center/_lat.py index 7fc668af43..6677c3f807 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/center/_lat.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/center/_lat.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="lat", parent_name="layout.mapbox.center", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/center/_lon.py b/packages/python/plotly/plotly/validators/layout/mapbox/center/_lon.py index a435412cc1..9460cc6b27 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/center/_lon.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/center/_lon.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="lon", parent_name="layout.mapbox.center", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/domain/_column.py b/packages/python/plotly/plotly/validators/layout/mapbox/domain/_column.py index ef481e8f14..d4a2256bbd 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/domain/_column.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/domain/_column.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/domain/_row.py b/packages/python/plotly/plotly/validators/layout/mapbox/domain/_row.py index 5661dfe3ce..2313e79eb1 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/domain/_row.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/domain/_row.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="row", parent_name="layout.mapbox.domain", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/domain/_x.py b/packages/python/plotly/plotly/validators/layout/mapbox/domain/_x.py index 8d3bcd4617..b5d6380e2b 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/domain/_x.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/domain/_x.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="x", parent_name="layout.mapbox.domain", **kwargs {"valType": "number", "min": 0, "max": 1, "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/domain/_y.py b/packages/python/plotly/plotly/validators/layout/mapbox/domain/_y.py index 3361431d39..5f20ecc4c6 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/domain/_y.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/domain/_y.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="y", parent_name="layout.mapbox.domain", **kwargs {"valType": "number", "min": 0, "max": 1, "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_below.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_below.py index 41db8b4cd2..362a90018e 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_below.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_below.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_color.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_color.py index 6323df2657..97994de667 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_color.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_coordinates.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_coordinates.py index 9214d2c4e8..32c19c5bad 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_coordinates.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_coordinates.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_maxzoom.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_maxzoom.py index b0fbe7c33a..002b7a530e 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_maxzoom.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_maxzoom.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 24), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_minzoom.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_minzoom.py index 37ac51bb81..7ed2243899 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_minzoom.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_minzoom.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 24), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_name.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_name.py index d3b3e2d971..5f8f774eb0 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_name.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="layout.mapbox.layer", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_opacity.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_opacity.py index e63c418010..b7adb87294 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_opacity.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_source.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_source.py index 47f0644aa2..77677410f9 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_source.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_source.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_sourceattribution.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_sourceattribution.py index f5764d862a..6a32eb525e 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_sourceattribution.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_sourceattribution.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_sourcelayer.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_sourcelayer.py index 88879a69e4..3221c71418 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_sourcelayer.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_sourcelayer.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_sourcetype.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_sourcetype.py index 46bfaaf190..b7b15984d5 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_sourcetype.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_sourcetype.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["geojson", "vector", "raster", "image"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_templateitemname.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_templateitemname.py index 7682495fa5..1b63f486c0 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_type.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_type.py index c53631af95..8a90b0408f 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_type.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_type.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="type", parent_name="layout.mapbox.layer", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["circle", "line", "fill", "symbol", "raster"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_visible.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_visible.py index bf07d6d7f5..ae20388a57 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/_visible.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/_visible.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/circle/_radius.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/circle/_radius.py index 22332f8507..a092b0ed7e 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/circle/_radius.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/circle/_radius.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/fill/_outlinecolor.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/fill/_outlinecolor.py index ac74b4be7b..ae3a3e7f04 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/fill/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/fill/_outlinecolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/line/_dash.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/line/_dash.py index 8477950ef2..7539c8fd54 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/line/_dash.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/line/_dash.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/line/_dashsrc.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/line/_dashsrc.py index c9a31da631..2e9bba0ee1 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/line/_dashsrc.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/line/_dashsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/line/_width.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/line/_width.py index 378f700916..ece3a40d08 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/line/_width.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/line/_width.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/_icon.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/_icon.py index 750fe2f49f..3c37f36ebb 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/_icon.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/_icon.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/_iconsize.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/_iconsize.py index fe1e174f49..e839fd882b 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/_iconsize.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/_iconsize.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/_placement.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/_placement.py index 06cc0216f4..ef06637a2d 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/_placement.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/_placement.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["point", "line", "line-center"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/_text.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/_text.py index f3ef4ef0a5..b6c4f0bbe6 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/_text.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/_textposition.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/_textposition.py index 78a8ca759f..987c0cf467 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/_textposition.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/_textposition.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/textfont/_color.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/textfont/_color.py index f580befc21..f505966212 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/textfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/textfont/_family.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/textfont/_family.py index bf869e22d4..8650d1aac3 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/textfont/_family.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/textfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/textfont/_size.py b/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/textfont/_size.py index 58736044f2..7a192a1b0d 100644 --- a/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/textfont/_size.py +++ b/packages/python/plotly/plotly/validators/layout/mapbox/layer/symbol/textfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/margin/_autoexpand.py b/packages/python/plotly/plotly/validators/layout/margin/_autoexpand.py index 7ef060cdbf..e034158e2f 100644 --- a/packages/python/plotly/plotly/validators/layout/margin/_autoexpand.py +++ b/packages/python/plotly/plotly/validators/layout/margin/_autoexpand.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="autoexpand", parent_name="layout.margin", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/margin/_b.py b/packages/python/plotly/plotly/validators/layout/margin/_b.py index 7501decd03..3d58cc693e 100644 --- a/packages/python/plotly/plotly/validators/layout/margin/_b.py +++ b/packages/python/plotly/plotly/validators/layout/margin/_b.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="b", parent_name="layout.margin", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/margin/_l.py b/packages/python/plotly/plotly/validators/layout/margin/_l.py index 6547312308..a6889fd8da 100644 --- a/packages/python/plotly/plotly/validators/layout/margin/_l.py +++ b/packages/python/plotly/plotly/validators/layout/margin/_l.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="l", parent_name="layout.margin", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/margin/_pad.py b/packages/python/plotly/plotly/validators/layout/margin/_pad.py index 08e0bb54ac..a740ddc77a 100644 --- a/packages/python/plotly/plotly/validators/layout/margin/_pad.py +++ b/packages/python/plotly/plotly/validators/layout/margin/_pad.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="pad", parent_name="layout.margin", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/margin/_r.py b/packages/python/plotly/plotly/validators/layout/margin/_r.py index bf783cc8e6..d83f0d3257 100644 --- a/packages/python/plotly/plotly/validators/layout/margin/_r.py +++ b/packages/python/plotly/plotly/validators/layout/margin/_r.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="r", parent_name="layout.margin", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/margin/_t.py b/packages/python/plotly/plotly/validators/layout/margin/_t.py index 2401adf41c..fa240d7163 100644 --- a/packages/python/plotly/plotly/validators/layout/margin/_t.py +++ b/packages/python/plotly/plotly/validators/layout/margin/_t.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="t", parent_name="layout.margin", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/modebar/__init__.py b/packages/python/plotly/plotly/validators/layout/modebar/__init__.py index 6538129907..35e401ad5e 100644 --- a/packages/python/plotly/plotly/validators/layout/modebar/__init__.py +++ b/packages/python/plotly/plotly/validators/layout/modebar/__init__.py @@ -2,9 +2,13 @@ if sys.version_info < (3, 7): from ._uirevision import UirevisionValidator + from ._removesrc import RemovesrcValidator + from ._remove import RemoveValidator from ._orientation import OrientationValidator from ._color import ColorValidator from ._bgcolor import BgcolorValidator + from ._addsrc import AddsrcValidator + from ._add import AddValidator from ._activecolor import ActivecolorValidator else: from _plotly_utils.importers import relative_import @@ -14,9 +18,13 @@ [], [ "._uirevision.UirevisionValidator", + "._removesrc.RemovesrcValidator", + "._remove.RemoveValidator", "._orientation.OrientationValidator", "._color.ColorValidator", "._bgcolor.BgcolorValidator", + "._addsrc.AddsrcValidator", + "._add.AddValidator", "._activecolor.ActivecolorValidator", ], ) diff --git a/packages/python/plotly/plotly/validators/layout/modebar/_activecolor.py b/packages/python/plotly/plotly/validators/layout/modebar/_activecolor.py index c6e09df3b2..9aee531b8b 100644 --- a/packages/python/plotly/plotly/validators/layout/modebar/_activecolor.py +++ b/packages/python/plotly/plotly/validators/layout/modebar/_activecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "modebar"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/modebar/_add.py b/packages/python/plotly/plotly/validators/layout/modebar/_add.py new file mode 100644 index 0000000000..8c760e4eef --- /dev/null +++ b/packages/python/plotly/plotly/validators/layout/modebar/_add.py @@ -0,0 +1,12 @@ +import _plotly_utils.basevalidators + + +class AddValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="add", parent_name="layout.modebar", **kwargs): + super(AddValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + array_ok=kwargs.pop("array_ok", True), + edit_type=kwargs.pop("edit_type", "modebar"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/layout/modebar/_addsrc.py b/packages/python/plotly/plotly/validators/layout/modebar/_addsrc.py new file mode 100644 index 0000000000..8eeff2eb49 --- /dev/null +++ b/packages/python/plotly/plotly/validators/layout/modebar/_addsrc.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class AddsrcValidator(_plotly_utils.basevalidators.SrcValidator): + def __init__(self, plotly_name="addsrc", parent_name="layout.modebar", **kwargs): + super(AddsrcValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/layout/modebar/_bgcolor.py b/packages/python/plotly/plotly/validators/layout/modebar/_bgcolor.py index 5673250274..80c30fc61b 100644 --- a/packages/python/plotly/plotly/validators/layout/modebar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/layout/modebar/_bgcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="bgcolor", parent_name="layout.modebar", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "modebar"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/modebar/_color.py b/packages/python/plotly/plotly/validators/layout/modebar/_color.py index 94e75d42eb..df709d95e8 100644 --- a/packages/python/plotly/plotly/validators/layout/modebar/_color.py +++ b/packages/python/plotly/plotly/validators/layout/modebar/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="layout.modebar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "modebar"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/modebar/_orientation.py b/packages/python/plotly/plotly/validators/layout/modebar/_orientation.py index a67779fb1b..6e97a811e2 100644 --- a/packages/python/plotly/plotly/validators/layout/modebar/_orientation.py +++ b/packages/python/plotly/plotly/validators/layout/modebar/_orientation.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "modebar"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["v", "h"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/modebar/_remove.py b/packages/python/plotly/plotly/validators/layout/modebar/_remove.py new file mode 100644 index 0000000000..34630f6232 --- /dev/null +++ b/packages/python/plotly/plotly/validators/layout/modebar/_remove.py @@ -0,0 +1,12 @@ +import _plotly_utils.basevalidators + + +class RemoveValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="remove", parent_name="layout.modebar", **kwargs): + super(RemoveValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + array_ok=kwargs.pop("array_ok", True), + edit_type=kwargs.pop("edit_type", "modebar"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/layout/modebar/_removesrc.py b/packages/python/plotly/plotly/validators/layout/modebar/_removesrc.py new file mode 100644 index 0000000000..445e5e4d78 --- /dev/null +++ b/packages/python/plotly/plotly/validators/layout/modebar/_removesrc.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class RemovesrcValidator(_plotly_utils.basevalidators.SrcValidator): + def __init__(self, plotly_name="removesrc", parent_name="layout.modebar", **kwargs): + super(RemovesrcValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/layout/modebar/_uirevision.py b/packages/python/plotly/plotly/validators/layout/modebar/_uirevision.py index ac9e9e2a44..8bdd8e48a8 100644 --- a/packages/python/plotly/plotly/validators/layout/modebar/_uirevision.py +++ b/packages/python/plotly/plotly/validators/layout/modebar/_uirevision.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/newshape/_drawdirection.py b/packages/python/plotly/plotly/validators/layout/newshape/_drawdirection.py index a304ac9365..b3ac8b0007 100644 --- a/packages/python/plotly/plotly/validators/layout/newshape/_drawdirection.py +++ b/packages/python/plotly/plotly/validators/layout/newshape/_drawdirection.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", ["ortho", "horizontal", "vertical", "diagonal"] ), diff --git a/packages/python/plotly/plotly/validators/layout/newshape/_fillcolor.py b/packages/python/plotly/plotly/validators/layout/newshape/_fillcolor.py index d754565fdd..620c00cc14 100644 --- a/packages/python/plotly/plotly/validators/layout/newshape/_fillcolor.py +++ b/packages/python/plotly/plotly/validators/layout/newshape/_fillcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/newshape/_fillrule.py b/packages/python/plotly/plotly/validators/layout/newshape/_fillrule.py index 4def32e2da..b31842ed43 100644 --- a/packages/python/plotly/plotly/validators/layout/newshape/_fillrule.py +++ b/packages/python/plotly/plotly/validators/layout/newshape/_fillrule.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="fillrule", parent_name="layout.newshape", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["evenodd", "nonzero"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/newshape/_layer.py b/packages/python/plotly/plotly/validators/layout/newshape/_layer.py index 2fc677bf78..264fd4e80f 100644 --- a/packages/python/plotly/plotly/validators/layout/newshape/_layer.py +++ b/packages/python/plotly/plotly/validators/layout/newshape/_layer.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="layer", parent_name="layout.newshape", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["below", "above"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/newshape/_opacity.py b/packages/python/plotly/plotly/validators/layout/newshape/_opacity.py index 37cb6e3d73..e8dadfa647 100644 --- a/packages/python/plotly/plotly/validators/layout/newshape/_opacity.py +++ b/packages/python/plotly/plotly/validators/layout/newshape/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="layout.newshape", **kwarg edit_type=kwargs.pop("edit_type", "none"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/newshape/line/_color.py b/packages/python/plotly/plotly/validators/layout/newshape/line/_color.py index 5dd06ee0ac..1142fa9c35 100644 --- a/packages/python/plotly/plotly/validators/layout/newshape/line/_color.py +++ b/packages/python/plotly/plotly/validators/layout/newshape/line/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/newshape/line/_dash.py b/packages/python/plotly/plotly/validators/layout/newshape/line/_dash.py index e5231948f5..c84f63af70 100644 --- a/packages/python/plotly/plotly/validators/layout/newshape/line/_dash.py +++ b/packages/python/plotly/plotly/validators/layout/newshape/line/_dash.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", ["solid", "dot", "dash", "longdash", "dashdot", "longdashdot"] ), diff --git a/packages/python/plotly/plotly/validators/layout/newshape/line/_width.py b/packages/python/plotly/plotly/validators/layout/newshape/line/_width.py index dc86f0a61f..0c2af4c83a 100644 --- a/packages/python/plotly/plotly/validators/layout/newshape/line/_width.py +++ b/packages/python/plotly/plotly/validators/layout/newshape/line/_width.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/_bargap.py b/packages/python/plotly/plotly/validators/layout/polar/_bargap.py index 40490996ae..a0adc519c4 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/_bargap.py +++ b/packages/python/plotly/plotly/validators/layout/polar/_bargap.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="bargap", parent_name="layout.polar", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/_barmode.py b/packages/python/plotly/plotly/validators/layout/polar/_barmode.py index 9658b46673..54a1b98230 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/_barmode.py +++ b/packages/python/plotly/plotly/validators/layout/polar/_barmode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="barmode", parent_name="layout.polar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["stack", "overlay"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/_bgcolor.py b/packages/python/plotly/plotly/validators/layout/polar/_bgcolor.py index b1e97f2b72..9c494b53f8 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/layout/polar/_bgcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="bgcolor", parent_name="layout.polar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/_gridshape.py b/packages/python/plotly/plotly/validators/layout/polar/_gridshape.py index 1a17de4c5c..8c4c39bd56 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/_gridshape.py +++ b/packages/python/plotly/plotly/validators/layout/polar/_gridshape.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="gridshape", parent_name="layout.polar", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["circular", "linear"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/_hole.py b/packages/python/plotly/plotly/validators/layout/polar/_hole.py index ea2a6d7747..2978eade17 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/_hole.py +++ b/packages/python/plotly/plotly/validators/layout/polar/_hole.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="hole", parent_name="layout.polar", **kwargs): edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/_sector.py b/packages/python/plotly/plotly/validators/layout/polar/_sector.py index f99b091e29..34e4070ce4 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/_sector.py +++ b/packages/python/plotly/plotly/validators/layout/polar/_sector.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="sector", parent_name="layout.polar", **kwargs): {"valType": "number", "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/_uirevision.py b/packages/python/plotly/plotly/validators/layout/polar/_uirevision.py index 42065ab941..e3e47da999 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/_uirevision.py +++ b/packages/python/plotly/plotly/validators/layout/polar/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="layout.polar", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_autotypenumbers.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_autotypenumbers.py index ba0cef2920..c112171d91 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_autotypenumbers.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_autotypenumbers.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["convert types", "strict"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_categoryarray.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_categoryarray.py index 01bc7fa4ed..eb98a8d2e6 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_categoryarray.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_categoryarray.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_categoryarraysrc.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_categoryarraysrc.py index a2d0944869..27c8c055ca 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_categoryarraysrc.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_categoryarraysrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_categoryorder.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_categoryorder.py index f9ad6253f4..1f3e11ecbb 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_categoryorder.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_categoryorder.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_color.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_color.py index 7413e57ad5..f80f4a7f09 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_color.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_direction.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_direction.py index fea8558a60..735fe4f28b 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_direction.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_direction.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["counterclockwise", "clockwise"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_dtick.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_dtick.py index 07a1f370af..266d86e0e0 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_dtick.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_exponentformat.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_exponentformat.py index b51e20da87..d21cc589e0 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_exponentformat.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_gridcolor.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_gridcolor.py index c1aad4cc2f..be4bf3128e 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_gridcolor.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_gridcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_gridwidth.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_gridwidth.py index 3e08f99b39..da02b76915 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_gridwidth.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_gridwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_hoverformat.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_hoverformat.py index 499aa7ed1d..1c9dba4969 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_hoverformat.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_hoverformat.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_layer.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_layer.py index 0415eace10..bd72c92554 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_layer.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_layer.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["above traces", "below traces"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_linecolor.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_linecolor.py index b571ab7e48..0b82b226d0 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_linecolor.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_linecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_linewidth.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_linewidth.py index 5e96f1718b..8618d81663 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_linewidth.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_linewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_minexponent.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_minexponent.py index d7f0bbd881..ca7aa62469 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_minexponent.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_minexponent.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_nticks.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_nticks.py index f1e5f5f3e3..36887198bd 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_nticks.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_period.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_period.py index b27fec15b6..be54b29c30 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_period.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_period.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_rotation.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_rotation.py index 30cb2fe15f..a39a510540 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_rotation.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_rotation.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_separatethousands.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_separatethousands.py index 5e9dece7a5..163847af3e 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_showexponent.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_showexponent.py index 4a1ea95e58..3f681d1008 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_showexponent.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_showexponent.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_showgrid.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_showgrid.py index 8634cab358..a17f9a88fe 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_showgrid.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_showgrid.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_showline.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_showline.py index 9ba0c3a450..27d730bd9c 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_showline.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_showline.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_showticklabels.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_showticklabels.py index 0ccfe55574..d1f6306fc7 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_showticklabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_showtickprefix.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_showtickprefix.py index bfae95c955..943ca385be 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_showtickprefix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_showticksuffix.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_showticksuffix.py index ffa5a8c1ad..233a32b470 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_showticksuffix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_thetaunit.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_thetaunit.py index 42fae21004..8132e30c75 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_thetaunit.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_thetaunit.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["radians", "degrees"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tick0.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tick0.py index 4ac31f9cef..ac09a83eb0 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tick0.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickangle.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickangle.py index 8d5b94ab84..95528ddb69 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickangle.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickcolor.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickcolor.py index 0df92266ff..c17bbd1546 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickformat.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickformat.py index e193175a96..7600ee8d5b 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickformat.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_ticklen.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_ticklen.py index 7c4218d3d7..9615b96a84 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_ticklen.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickmode.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickmode.py index 2a50c6faf6..bad98999bf 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickmode.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickprefix.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickprefix.py index b2d8ca0134..aa987a9452 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_ticks.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_ticks.py index 1888ba1510..993f20dc4e 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_ticks.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_ticksuffix.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_ticksuffix.py index b4c2566226..6281fbaf4c 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_ticktext.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_ticktext.py index 5669e026df..9ab33f2396 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_ticktext.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_ticktextsrc.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_ticktextsrc.py index 859d2e437e..e76299181b 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_ticktextsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickvals.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickvals.py index 7c137b23ef..b97b6b56ed 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickvals.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickvalssrc.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickvalssrc.py index 0f1ecaf668..df0e7430e4 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickvalssrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickwidth.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickwidth.py index 6674ebc386..c1aa513f74 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_type.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_type.py index 5852f0d235..d5de472f11 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_type.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_type.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["-", "linear", "category"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_uirevision.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_uirevision.py index 52d994505d..1d194de490 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_uirevision.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_uirevision.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_visible.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_visible.py index 97f497a9e4..76e9520bda 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_visible.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/_visible.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickfont/_color.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickfont/_color.py index 0419961e3d..90f6a5dfa2 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickfont/_family.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickfont/_family.py index 142261d36b..4dc94fe16c 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickfont/_size.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickfont/_size.py index 7a43a6c496..8e41fafb5c 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickformatstop/_dtickrange.py index 050c1215c6..b300864880 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickformatstop/_enabled.py index 13e4ec9a30..8179956f42 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickformatstop/_name.py index 0ec84fca1f..3c40c05329 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickformatstop/_templateitemname.py index 58781c5299..46e95ad1bc 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickformatstop/_value.py index 9acdd3a0cb..125c27dd65 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/layout/polar/angularaxis/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/domain/_column.py b/packages/python/plotly/plotly/validators/layout/polar/domain/_column.py index 3a61ea912f..87f829b142 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/domain/_column.py +++ b/packages/python/plotly/plotly/validators/layout/polar/domain/_column.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/domain/_row.py b/packages/python/plotly/plotly/validators/layout/polar/domain/_row.py index a1eaa8a27c..c06e081eef 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/domain/_row.py +++ b/packages/python/plotly/plotly/validators/layout/polar/domain/_row.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="row", parent_name="layout.polar.domain", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/domain/_x.py b/packages/python/plotly/plotly/validators/layout/polar/domain/_x.py index ad7c99ca8e..a475114cee 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/domain/_x.py +++ b/packages/python/plotly/plotly/validators/layout/polar/domain/_x.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="x", parent_name="layout.polar.domain", **kwargs) {"valType": "number", "min": 0, "max": 1, "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/domain/_y.py b/packages/python/plotly/plotly/validators/layout/polar/domain/_y.py index 399ede14a0..f210cecdbb 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/domain/_y.py +++ b/packages/python/plotly/plotly/validators/layout/polar/domain/_y.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="y", parent_name="layout.polar.domain", **kwargs) {"valType": "number", "min": 0, "max": 1, "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_angle.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_angle.py index a186d23883..9faea59edf 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_angle.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_angle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_autorange.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_autorange.py index c7bb344ed3..b95a8771be 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_autorange.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_autorange.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "reversed"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_autotypenumbers.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_autotypenumbers.py index f9be4dc521..c000ad06aa 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_autotypenumbers.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_autotypenumbers.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["convert types", "strict"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_calendar.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_calendar.py index a6bc1e829c..b58a082b9d 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_calendar.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_calendar.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_categoryarray.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_categoryarray.py index 93362efd77..3861999ab8 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_categoryarray.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_categoryarray.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_categoryarraysrc.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_categoryarraysrc.py index 479b0f026a..b2bf6b1b51 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_categoryarraysrc.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_categoryarraysrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_categoryorder.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_categoryorder.py index 309fa904aa..b5183b8140 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_categoryorder.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_categoryorder.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_color.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_color.py index bf54151474..731cd1c473 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_color.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_dtick.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_dtick.py index a0d528a756..888129ad4f 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_dtick.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_exponentformat.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_exponentformat.py index a09e18aca5..ba4ff70f78 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_exponentformat.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_gridcolor.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_gridcolor.py index e711fb1095..5b1306c13a 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_gridcolor.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_gridcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_gridwidth.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_gridwidth.py index b199a16c91..8a347b1fda 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_gridwidth.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_gridwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_hoverformat.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_hoverformat.py index 668316f2c1..cadbe4bbb8 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_hoverformat.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_hoverformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_layer.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_layer.py index caf84b6879..d2c6d6ab9f 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_layer.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_layer.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["above traces", "below traces"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_linecolor.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_linecolor.py index 6f62016536..e0d152f844 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_linecolor.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_linecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_linewidth.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_linewidth.py index a2819efb30..97691af02f 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_linewidth.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_linewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_minexponent.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_minexponent.py index bc738e0525..26211e3559 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_minexponent.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_nticks.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_nticks.py index 6134ec43f3..37421fe54a 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_nticks.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_range.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_range.py index 95c0b48ec6..a4690f64fb 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_range.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_range.py @@ -26,6 +26,5 @@ def __init__( }, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_rangemode.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_rangemode.py index eb7251ff65..c0b33dcf99 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_rangemode.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_rangemode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["tozero", "nonnegative", "normal"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_separatethousands.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_separatethousands.py index 099c28a18f..3da2925491 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_showexponent.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_showexponent.py index 5bd0a2bd0f..d06ee9846b 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_showexponent.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_showexponent.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_showgrid.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_showgrid.py index a852091e80..bd8af6b7e8 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_showgrid.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_showgrid.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_showline.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_showline.py index 3d15588593..ad7d6c8f50 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_showline.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_showline.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_showticklabels.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_showticklabels.py index 6488141608..b6f825e7e8 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_showticklabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_showtickprefix.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_showtickprefix.py index 53c783b4ed..d699ed820b 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_showtickprefix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_showticksuffix.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_showticksuffix.py index dd921179c3..7ca167621d 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_showticksuffix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_side.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_side.py index cbf3436b78..558218d8a5 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_side.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_side.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["clockwise", "counterclockwise"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tick0.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tick0.py index b9d84abe8c..877db82724 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tick0.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickangle.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickangle.py index 8512c7deab..db31bc0a2e 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickangle.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickcolor.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickcolor.py index 8efb0dd7c6..acd43fb37f 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickformat.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickformat.py index e6dfdad1c6..155a219845 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickformat.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_ticklen.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_ticklen.py index 4be18f62cd..3bbb1ebd9d 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_ticklen.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickmode.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickmode.py index 0746b9826c..6653c40bdb 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickmode.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickprefix.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickprefix.py index cf86838327..47dd90fa03 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_ticks.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_ticks.py index e8ef02ac12..bcc464eb82 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_ticks.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_ticksuffix.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_ticksuffix.py index 3fe3553914..23fa6c1c9e 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_ticktext.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_ticktext.py index 1f41151667..b7be3fe584 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_ticktext.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_ticktextsrc.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_ticktextsrc.py index 8209d86062..12a31e342a 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickvals.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickvals.py index 2b12056bbf..a4e22843f0 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickvals.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickvalssrc.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickvalssrc.py index 8c6a053aeb..a7c090cfd8 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickwidth.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickwidth.py index f590b65958..375e39ffb9 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_type.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_type.py index 7b8d250516..501041e49f 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_type.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_type.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["-", "linear", "log", "date", "category"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_uirevision.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_uirevision.py index e1a0df7cea..3ee8ae2425 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_uirevision.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_uirevision.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_visible.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_visible.py index 05160aee3a..a7faaf8c2d 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_visible.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/_visible.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickfont/_color.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickfont/_color.py index 5b33750256..fe4a5d8bd8 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickfont/_family.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickfont/_family.py index 4bf6348ed3..a3633ed6ba 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickfont/_size.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickfont/_size.py index 8a3a6766f3..ec3426bf6d 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickformatstop/_dtickrange.py index 26b3a6bbd1..652e1ac26b 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickformatstop/_enabled.py index a371d62c4b..9a1ab75abc 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickformatstop/_name.py index 13e058d71d..e56a1f18a6 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickformatstop/_templateitemname.py index 1c31c8910a..78b61aad2d 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickformatstop/_value.py index 27ed983ed5..73d07c1044 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/title/_text.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/title/_text.py index 40b9c0fa2f..0f07176ebe 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/title/_text.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/title/font/_color.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/title/font/_color.py index 2aba3c6410..8eec9fd3f2 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/title/font/_family.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/title/font/_family.py index c720b3608c..fb9930a842 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/title/font/_size.py b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/title/font/_size.py index 980dec7a84..1875479a6f 100644 --- a/packages/python/plotly/plotly/validators/layout/polar/radialaxis/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/layout/polar/radialaxis/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/radialaxis/__init__.py b/packages/python/plotly/plotly/validators/layout/radialaxis/__init__.py deleted file mode 100644 index c639819142..0000000000 --- a/packages/python/plotly/plotly/validators/layout/radialaxis/__init__.py +++ /dev/null @@ -1,34 +0,0 @@ -import sys - -if sys.version_info < (3, 7): - from ._visible import VisibleValidator - from ._ticksuffix import TicksuffixValidator - from ._tickorientation import TickorientationValidator - from ._ticklen import TicklenValidator - from ._tickcolor import TickcolorValidator - from ._showticklabels import ShowticklabelsValidator - from ._showline import ShowlineValidator - from ._range import RangeValidator - from ._orientation import OrientationValidator - from ._endpadding import EndpaddingValidator - from ._domain import DomainValidator -else: - from _plotly_utils.importers import relative_import - - __all__, __getattr__, __dir__ = relative_import( - __name__, - [], - [ - "._visible.VisibleValidator", - "._ticksuffix.TicksuffixValidator", - "._tickorientation.TickorientationValidator", - "._ticklen.TicklenValidator", - "._tickcolor.TickcolorValidator", - "._showticklabels.ShowticklabelsValidator", - "._showline.ShowlineValidator", - "._range.RangeValidator", - "._orientation.OrientationValidator", - "._endpadding.EndpaddingValidator", - "._domain.DomainValidator", - ], - ) diff --git a/packages/python/plotly/plotly/validators/layout/radialaxis/_domain.py b/packages/python/plotly/plotly/validators/layout/radialaxis/_domain.py deleted file mode 100644 index 4ece16654e..0000000000 --- a/packages/python/plotly/plotly/validators/layout/radialaxis/_domain.py +++ /dev/null @@ -1,19 +0,0 @@ -import _plotly_utils.basevalidators - - -class DomainValidator(_plotly_utils.basevalidators.InfoArrayValidator): - def __init__(self, plotly_name="domain", parent_name="layout.radialaxis", **kwargs): - super(DomainValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "plot"), - items=kwargs.pop( - "items", - [ - {"valType": "number", "min": 0, "max": 1, "editType": "plot"}, - {"valType": "number", "min": 0, "max": 1, "editType": "plot"}, - ], - ), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/radialaxis/_endpadding.py b/packages/python/plotly/plotly/validators/layout/radialaxis/_endpadding.py deleted file mode 100644 index 18efae1c9c..0000000000 --- a/packages/python/plotly/plotly/validators/layout/radialaxis/_endpadding.py +++ /dev/null @@ -1,14 +0,0 @@ -import _plotly_utils.basevalidators - - -class EndpaddingValidator(_plotly_utils.basevalidators.NumberValidator): - def __init__( - self, plotly_name="endpadding", parent_name="layout.radialaxis", **kwargs - ): - super(EndpaddingValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/radialaxis/_orientation.py b/packages/python/plotly/plotly/validators/layout/radialaxis/_orientation.py deleted file mode 100644 index 78d8683f07..0000000000 --- a/packages/python/plotly/plotly/validators/layout/radialaxis/_orientation.py +++ /dev/null @@ -1,14 +0,0 @@ -import _plotly_utils.basevalidators - - -class OrientationValidator(_plotly_utils.basevalidators.NumberValidator): - def __init__( - self, plotly_name="orientation", parent_name="layout.radialaxis", **kwargs - ): - super(OrientationValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/radialaxis/_range.py b/packages/python/plotly/plotly/validators/layout/radialaxis/_range.py deleted file mode 100644 index b2049ed73b..0000000000 --- a/packages/python/plotly/plotly/validators/layout/radialaxis/_range.py +++ /dev/null @@ -1,19 +0,0 @@ -import _plotly_utils.basevalidators - - -class RangeValidator(_plotly_utils.basevalidators.InfoArrayValidator): - def __init__(self, plotly_name="range", parent_name="layout.radialaxis", **kwargs): - super(RangeValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "plot"), - items=kwargs.pop( - "items", - [ - {"valType": "number", "editType": "plot"}, - {"valType": "number", "editType": "plot"}, - ], - ), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/radialaxis/_showline.py b/packages/python/plotly/plotly/validators/layout/radialaxis/_showline.py deleted file mode 100644 index 13ae4e1d00..0000000000 --- a/packages/python/plotly/plotly/validators/layout/radialaxis/_showline.py +++ /dev/null @@ -1,14 +0,0 @@ -import _plotly_utils.basevalidators - - -class ShowlineValidator(_plotly_utils.basevalidators.BooleanValidator): - def __init__( - self, plotly_name="showline", parent_name="layout.radialaxis", **kwargs - ): - super(ShowlineValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/radialaxis/_showticklabels.py b/packages/python/plotly/plotly/validators/layout/radialaxis/_showticklabels.py deleted file mode 100644 index 200402644b..0000000000 --- a/packages/python/plotly/plotly/validators/layout/radialaxis/_showticklabels.py +++ /dev/null @@ -1,14 +0,0 @@ -import _plotly_utils.basevalidators - - -class ShowticklabelsValidator(_plotly_utils.basevalidators.BooleanValidator): - def __init__( - self, plotly_name="showticklabels", parent_name="layout.radialaxis", **kwargs - ): - super(ShowticklabelsValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/radialaxis/_tickcolor.py b/packages/python/plotly/plotly/validators/layout/radialaxis/_tickcolor.py deleted file mode 100644 index ae905d87a1..0000000000 --- a/packages/python/plotly/plotly/validators/layout/radialaxis/_tickcolor.py +++ /dev/null @@ -1,14 +0,0 @@ -import _plotly_utils.basevalidators - - -class TickcolorValidator(_plotly_utils.basevalidators.ColorValidator): - def __init__( - self, plotly_name="tickcolor", parent_name="layout.radialaxis", **kwargs - ): - super(TickcolorValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/radialaxis/_ticklen.py b/packages/python/plotly/plotly/validators/layout/radialaxis/_ticklen.py deleted file mode 100644 index 5ac8eb66a2..0000000000 --- a/packages/python/plotly/plotly/validators/layout/radialaxis/_ticklen.py +++ /dev/null @@ -1,15 +0,0 @@ -import _plotly_utils.basevalidators - - -class TicklenValidator(_plotly_utils.basevalidators.NumberValidator): - def __init__( - self, plotly_name="ticklen", parent_name="layout.radialaxis", **kwargs - ): - super(TicklenValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "plot"), - min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/radialaxis/_tickorientation.py b/packages/python/plotly/plotly/validators/layout/radialaxis/_tickorientation.py deleted file mode 100644 index 33f97614a9..0000000000 --- a/packages/python/plotly/plotly/validators/layout/radialaxis/_tickorientation.py +++ /dev/null @@ -1,15 +0,0 @@ -import _plotly_utils.basevalidators - - -class TickorientationValidator(_plotly_utils.basevalidators.EnumeratedValidator): - def __init__( - self, plotly_name="tickorientation", parent_name="layout.radialaxis", **kwargs - ): - super(TickorientationValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), - values=kwargs.pop("values", ["horizontal", "vertical"]), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/radialaxis/_ticksuffix.py b/packages/python/plotly/plotly/validators/layout/radialaxis/_ticksuffix.py deleted file mode 100644 index 8991256103..0000000000 --- a/packages/python/plotly/plotly/validators/layout/radialaxis/_ticksuffix.py +++ /dev/null @@ -1,14 +0,0 @@ -import _plotly_utils.basevalidators - - -class TicksuffixValidator(_plotly_utils.basevalidators.StringValidator): - def __init__( - self, plotly_name="ticksuffix", parent_name="layout.radialaxis", **kwargs - ): - super(TicksuffixValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/radialaxis/_visible.py b/packages/python/plotly/plotly/validators/layout/radialaxis/_visible.py deleted file mode 100644 index e0c0e13c95..0000000000 --- a/packages/python/plotly/plotly/validators/layout/radialaxis/_visible.py +++ /dev/null @@ -1,14 +0,0 @@ -import _plotly_utils.basevalidators - - -class VisibleValidator(_plotly_utils.basevalidators.BooleanValidator): - def __init__( - self, plotly_name="visible", parent_name="layout.radialaxis", **kwargs - ): - super(VisibleValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/_aspectmode.py b/packages/python/plotly/plotly/validators/layout/scene/_aspectmode.py index 5a8e21b36f..a8ead669c4 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/_aspectmode.py +++ b/packages/python/plotly/plotly/validators/layout/scene/_aspectmode.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="aspectmode", parent_name="layout.scene", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "cube", "data", "manual"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/_bgcolor.py b/packages/python/plotly/plotly/validators/layout/scene/_bgcolor.py index d5b44241d2..4c4bdabc6a 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/_bgcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="bgcolor", parent_name="layout.scene", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/_dragmode.py b/packages/python/plotly/plotly/validators/layout/scene/_dragmode.py index 1e970cf27b..88cfbb4ecc 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/_dragmode.py +++ b/packages/python/plotly/plotly/validators/layout/scene/_dragmode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="dragmode", parent_name="layout.scene", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["orbit", "turntable", "zoom", "pan", False]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/_hovermode.py b/packages/python/plotly/plotly/validators/layout/scene/_hovermode.py index 6a794da248..d5e72145b7 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/_hovermode.py +++ b/packages/python/plotly/plotly/validators/layout/scene/_hovermode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="hovermode", parent_name="layout.scene", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "modebar"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["closest", False]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/_uirevision.py b/packages/python/plotly/plotly/validators/layout/scene/_uirevision.py index 416ca9f5f4..d75fc25a3f 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/_uirevision.py +++ b/packages/python/plotly/plotly/validators/layout/scene/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="layout.scene", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_align.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_align.py index ecd52f2ac4..72a5177e60 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_align.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_align.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_arrowcolor.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_arrowcolor.py index c97b8f7094..63cfb89c18 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_arrowcolor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_arrowcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_arrowhead.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_arrowhead.py index 32016a9496..39ccb3130f 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_arrowhead.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_arrowhead.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 8), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_arrowside.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_arrowside.py index 43564c6467..ca174d4321 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_arrowside.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_arrowside.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), extras=kwargs.pop("extras", ["none"]), flags=kwargs.pop("flags", ["end", "start"]), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_arrowsize.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_arrowsize.py index 1a0a060ddc..e30bf2e07f 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_arrowsize.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_arrowsize.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0.3), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_arrowwidth.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_arrowwidth.py index e1a2eb7ffa..8306b8959e 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_arrowwidth.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_arrowwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0.1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_ax.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_ax.py index f3cb9058af..20116979de 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_ax.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_ax.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_ay.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_ay.py index 8a5cb883fc..f43bf6a014 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_ay.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_ay.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_bgcolor.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_bgcolor.py index 511b3d4e6a..e395df35de 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_bordercolor.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_bordercolor.py index 2e6087af1c..7365a9096f 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_borderpad.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_borderpad.py index 4c4e4f8e89..07a5369671 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_borderpad.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_borderpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_borderwidth.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_borderwidth.py index 55be712d9e..0f64877dea 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_captureevents.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_captureevents.py index e5389e3553..9bdb5a2fa3 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_captureevents.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_captureevents.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_height.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_height.py index 75f2e9a828..a96f737de3 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_height.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_height.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_hovertext.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_hovertext.py index d93f48588d..315f2bb821 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_hovertext.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_hovertext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_name.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_name.py index 4604f3e8f9..f57e11c9c3 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_name.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_name.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_opacity.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_opacity.py index d2320dba48..14c5e15af8 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_opacity.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_showarrow.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_showarrow.py index 4b713394ef..30a52db47a 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_showarrow.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_showarrow.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_standoff.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_standoff.py index 77b5c5ca9c..d3c55c3cc7 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_standoff.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_standoff.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_startarrowhead.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_startarrowhead.py index a070890930..811db9db95 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_startarrowhead.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_startarrowhead.py @@ -14,6 +14,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 8), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_startarrowsize.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_startarrowsize.py index 3bbe58059b..31716f1ed5 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_startarrowsize.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_startarrowsize.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0.3), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_startstandoff.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_startstandoff.py index 23e565c60c..0e24b66ec0 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_startstandoff.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_startstandoff.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_templateitemname.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_templateitemname.py index f0f9331f04..c1f488d2a6 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_text.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_text.py index bf91c0c28a..5c5e36a3a4 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_text.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_textangle.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_textangle.py index 26a29b5696..1fb5d4df73 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_textangle.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_textangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_valign.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_valign.py index 64a044d4d2..2f255ee74c 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_valign.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_valign.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_visible.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_visible.py index 078b08361a..b2c5d8326b 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_visible.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_visible.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_width.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_width.py index 18aade253a..6eba855a58 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_width.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_width.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_x.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_x.py index 42211d6518..50e2ff01ce 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_x.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_x.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_xanchor.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_xanchor.py index 1315ef238b..42a5b950bd 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_xanchor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_xshift.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_xshift.py index e8437c728a..596468b5cb 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_xshift.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_xshift.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_y.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_y.py index 87ae250b25..2a0a23bc1a 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_y.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_y.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_yanchor.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_yanchor.py index 9d4a89a555..d0da78a5ed 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_yanchor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_yshift.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_yshift.py index 78513a3919..ef95805c32 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_yshift.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_yshift.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/_z.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/_z.py index e75ad9e069..7856c410ec 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/_z.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/_z.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/font/_color.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/font/_color.py index 94525a1754..03fb56dd8f 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/font/_color.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/font/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/font/_family.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/font/_family.py index cd8c5a62ec..8507f89f8b 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/font/_family.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/font/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/font/_size.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/font/_size.py index 2adf65ee58..25f1a2046f 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/font/_size.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/hoverlabel/_bgcolor.py index a54b38507c..94968d5051 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/hoverlabel/_bgcolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/hoverlabel/_bordercolor.py index d9b9299c7f..996c9cf724 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/hoverlabel/_bordercolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/hoverlabel/font/_color.py index b740fc6749..74accff5e8 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/hoverlabel/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/hoverlabel/font/_family.py index 00bfbe40eb..e3810b2074 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/hoverlabel/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/annotation/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/layout/scene/annotation/hoverlabel/font/_size.py index 1c70545809..d11fff86ee 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/annotation/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/layout/scene/annotation/hoverlabel/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/aspectratio/_x.py b/packages/python/plotly/plotly/validators/layout/scene/aspectratio/_x.py index e27415a688..fdf974adf9 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/aspectratio/_x.py +++ b/packages/python/plotly/plotly/validators/layout/scene/aspectratio/_x.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"^aspectmode": "manual"}), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/aspectratio/_y.py b/packages/python/plotly/plotly/validators/layout/scene/aspectratio/_y.py index def8213db3..d31afeb6fd 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/aspectratio/_y.py +++ b/packages/python/plotly/plotly/validators/layout/scene/aspectratio/_y.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"^aspectmode": "manual"}), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/aspectratio/_z.py b/packages/python/plotly/plotly/validators/layout/scene/aspectratio/_z.py index 31b812274f..4ffa4e4be9 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/aspectratio/_z.py +++ b/packages/python/plotly/plotly/validators/layout/scene/aspectratio/_z.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"^aspectmode": "manual"}), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/camera/center/_x.py b/packages/python/plotly/plotly/validators/layout/scene/camera/center/_x.py index 15de27ef3d..3f9bdaff81 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/camera/center/_x.py +++ b/packages/python/plotly/plotly/validators/layout/scene/camera/center/_x.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "camera"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/camera/center/_y.py b/packages/python/plotly/plotly/validators/layout/scene/camera/center/_y.py index f6556c1525..80bfe3dd1e 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/camera/center/_y.py +++ b/packages/python/plotly/plotly/validators/layout/scene/camera/center/_y.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "camera"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/camera/center/_z.py b/packages/python/plotly/plotly/validators/layout/scene/camera/center/_z.py index bf5d069f36..e78050d665 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/camera/center/_z.py +++ b/packages/python/plotly/plotly/validators/layout/scene/camera/center/_z.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "camera"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/camera/eye/_x.py b/packages/python/plotly/plotly/validators/layout/scene/camera/eye/_x.py index a305e9e3dd..c03ce7c93a 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/camera/eye/_x.py +++ b/packages/python/plotly/plotly/validators/layout/scene/camera/eye/_x.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "camera"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/camera/eye/_y.py b/packages/python/plotly/plotly/validators/layout/scene/camera/eye/_y.py index 6eea761019..efb2ec836d 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/camera/eye/_y.py +++ b/packages/python/plotly/plotly/validators/layout/scene/camera/eye/_y.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "camera"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/camera/eye/_z.py b/packages/python/plotly/plotly/validators/layout/scene/camera/eye/_z.py index 902421d13a..3f15181178 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/camera/eye/_z.py +++ b/packages/python/plotly/plotly/validators/layout/scene/camera/eye/_z.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "camera"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/camera/projection/_type.py b/packages/python/plotly/plotly/validators/layout/scene/camera/projection/_type.py index 6ec9cee582..a802859546 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/camera/projection/_type.py +++ b/packages/python/plotly/plotly/validators/layout/scene/camera/projection/_type.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["perspective", "orthographic"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/camera/up/_x.py b/packages/python/plotly/plotly/validators/layout/scene/camera/up/_x.py index 5a5b79998e..a1abffcc4a 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/camera/up/_x.py +++ b/packages/python/plotly/plotly/validators/layout/scene/camera/up/_x.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x", parent_name="layout.scene.camera.up", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "camera"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/camera/up/_y.py b/packages/python/plotly/plotly/validators/layout/scene/camera/up/_y.py index 90ea8a39a4..a5e313222c 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/camera/up/_y.py +++ b/packages/python/plotly/plotly/validators/layout/scene/camera/up/_y.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y", parent_name="layout.scene.camera.up", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "camera"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/camera/up/_z.py b/packages/python/plotly/plotly/validators/layout/scene/camera/up/_z.py index 79d8767d06..7ea28ab12a 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/camera/up/_z.py +++ b/packages/python/plotly/plotly/validators/layout/scene/camera/up/_z.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="z", parent_name="layout.scene.camera.up", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "camera"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/domain/_column.py b/packages/python/plotly/plotly/validators/layout/scene/domain/_column.py index d644e3ed1f..99187e59e8 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/domain/_column.py +++ b/packages/python/plotly/plotly/validators/layout/scene/domain/_column.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/domain/_row.py b/packages/python/plotly/plotly/validators/layout/scene/domain/_row.py index d6c75d72fb..29213d6aed 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/domain/_row.py +++ b/packages/python/plotly/plotly/validators/layout/scene/domain/_row.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="row", parent_name="layout.scene.domain", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/domain/_x.py b/packages/python/plotly/plotly/validators/layout/scene/domain/_x.py index 2fea157b39..2172566d85 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/domain/_x.py +++ b/packages/python/plotly/plotly/validators/layout/scene/domain/_x.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="x", parent_name="layout.scene.domain", **kwargs) {"valType": "number", "min": 0, "max": 1, "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/domain/_y.py b/packages/python/plotly/plotly/validators/layout/scene/domain/_y.py index a41a979913..1fb3d2de97 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/domain/_y.py +++ b/packages/python/plotly/plotly/validators/layout/scene/domain/_y.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="y", parent_name="layout.scene.domain", **kwargs) {"valType": "number", "min": 0, "max": 1, "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_autorange.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_autorange.py index da002cb803..9d5fdc0eb7 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_autorange.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_autorange.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "reversed"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_autotypenumbers.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_autotypenumbers.py index ef2e89168f..5ad548c1e1 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_autotypenumbers.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_autotypenumbers.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["convert types", "strict"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_backgroundcolor.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_backgroundcolor.py index 8680511008..0dc248e377 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_backgroundcolor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_backgroundcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_calendar.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_calendar.py index e355a75e12..43d6528fbb 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_calendar.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_calendar.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_categoryarray.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_categoryarray.py index bfc7bdaa07..85bb22989a 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_categoryarray.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_categoryarray.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_categoryarraysrc.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_categoryarraysrc.py index d9c8c97e22..816b26bf2f 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_categoryarraysrc.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_categoryarraysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_categoryorder.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_categoryorder.py index 8c3bd79a64..028da518be 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_categoryorder.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_categoryorder.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_color.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_color.py index 502b9e8be2..396e2b2ab8 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_color.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="layout.scene.xaxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_dtick.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_dtick.py index ed7cbcd2f6..8add018c59 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_dtick.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_dtick.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="dtick", parent_name="layout.scene.xaxis", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_exponentformat.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_exponentformat.py index bdc2cab6cf..22e0f419d9 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_exponentformat.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_gridcolor.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_gridcolor.py index 876fab7234..b094f3df8c 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_gridcolor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_gridcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_gridwidth.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_gridwidth.py index a61a9c2180..b0b83094c0 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_gridwidth.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_gridwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_hoverformat.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_hoverformat.py index 52c656ffec..f213f568fe 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_hoverformat.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_hoverformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_linecolor.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_linecolor.py index ecf004af6c..174af5f01b 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_linecolor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_linecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_linewidth.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_linewidth.py index 7db2b8a308..58d7d4e111 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_linewidth.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_linewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_minexponent.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_minexponent.py index 6e7cc2379a..69c21d8a96 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_minexponent.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_mirror.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_mirror.py index 5c4269f7b8..94b1566627 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_mirror.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_mirror.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", [True, "ticks", False, "all", "allticks"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_nticks.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_nticks.py index e944224b63..1b5b2ea372 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_nticks.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_range.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_range.py index b223a06aa3..a523009d7e 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_range.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_range.py @@ -24,6 +24,5 @@ def __init__(self, plotly_name="range", parent_name="layout.scene.xaxis", **kwar }, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_rangemode.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_rangemode.py index c6d159d12b..9f62b4c9ba 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_rangemode.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_rangemode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["normal", "tozero", "nonnegative"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_separatethousands.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_separatethousands.py index 5f1f1ea027..d83c4a6a0a 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showaxeslabels.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showaxeslabels.py index bbdedb8ca3..5de0bc9d11 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showaxeslabels.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showaxeslabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showbackground.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showbackground.py index b4d02ed915..eaad45fd5a 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showbackground.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showbackground.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showexponent.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showexponent.py index ec7476490e..013015bcf3 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showexponent.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showgrid.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showgrid.py index 0db2ed95ff..685cf37f55 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showgrid.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showgrid.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showline.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showline.py index 48e427cc30..504867c84d 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showline.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showline.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showspikes.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showspikes.py index b78aacfd51..a807d1f457 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showspikes.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showspikes.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showticklabels.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showticklabels.py index a855ffdc37..99f0723eb6 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showticklabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showtickprefix.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showtickprefix.py index 0419b00d42..93fba92550 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showtickprefix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showticksuffix.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showticksuffix.py index 7f4d8a9c09..b350c7e1be 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_showticksuffix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_spikecolor.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_spikecolor.py index c231a324a3..5d4a9e326a 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_spikecolor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_spikecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_spikesides.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_spikesides.py index c8eaa89c9d..31d8ea4248 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_spikesides.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_spikesides.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_spikethickness.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_spikethickness.py index 36aa0d82b3..a5f5859d5b 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_spikethickness.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_spikethickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tick0.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tick0.py index fcc03c179a..9b316ce1c6 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tick0.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tick0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="tick0", parent_name="layout.scene.xaxis", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickangle.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickangle.py index 0b0f08b968..c9b22ca8a2 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickangle.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickcolor.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickcolor.py index adff797319..4c4a8fa9a9 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickformat.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickformat.py index 903b63eb0f..6494cc6cea 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickformat.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_ticklen.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_ticklen.py index 10b3087d8f..0c311f4aa9 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_ticklen.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickmode.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickmode.py index 64e492c2e1..0e203b2431 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickmode.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickprefix.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickprefix.py index cf8ef68d8f..eff31391c4 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_ticks.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_ticks.py index fea57fec7f..fd65030d0f 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_ticks.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_ticks.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ticks", parent_name="layout.scene.xaxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_ticksuffix.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_ticksuffix.py index 95263541ca..d7ce4ddac2 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_ticktext.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_ticktext.py index b37cc326a2..d87a51db47 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_ticktext.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_ticktextsrc.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_ticktextsrc.py index bc9554ce27..6ffd2d483b 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickvals.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickvals.py index 08e61f99af..be6e2ee559 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickvals.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickvalssrc.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickvalssrc.py index 0eb5a84597..5e7bd976fc 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickwidth.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickwidth.py index 88295189f9..b788ad20c0 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_type.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_type.py index c65d6ed467..be1399de68 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_type.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_type.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="type", parent_name="layout.scene.xaxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["-", "linear", "log", "date", "category"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_visible.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_visible.py index 116f59cf4e..788b193e4c 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_visible.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_visible.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_zeroline.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_zeroline.py index 142f21e0c5..a2c2644af7 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_zeroline.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_zeroline.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_zerolinecolor.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_zerolinecolor.py index 34af021c07..e14e6caed5 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_zerolinecolor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_zerolinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_zerolinewidth.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_zerolinewidth.py index 69ae36a3c2..e3c7b6e44a 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/_zerolinewidth.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/_zerolinewidth.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickfont/_color.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickfont/_color.py index fad3a93f14..9815b5409c 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickfont/_family.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickfont/_family.py index 76b9e193e0..aa7e0385e1 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickfont/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickfont/_size.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickfont/_size.py index 638bc0eedd..e76c8cbc5a 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickformatstop/_dtickrange.py index dfc8d2952f..204e9ab004 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickformatstop/_enabled.py index 13a5aed5df..4616406db7 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickformatstop/_name.py index c3b1cee695..7c59173b0c 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickformatstop/_templateitemname.py index 5f263fd0a9..da13585500 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickformatstop/_value.py index 2951367288..6d8f113c23 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/title/_text.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/title/_text.py index 33e9ad0a2b..e3de8a1a45 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/title/_text.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/title/font/_color.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/title/font/_color.py index 4c2a1afee4..e5000126f5 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/title/font/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/title/font/_family.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/title/font/_family.py index 7c8007d566..4aa6dbe20d 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/xaxis/title/font/_size.py b/packages/python/plotly/plotly/validators/layout/scene/xaxis/title/font/_size.py index d2d8adf3e1..db51e57221 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/xaxis/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/layout/scene/xaxis/title/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_autorange.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_autorange.py index cab29f4054..5829422874 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_autorange.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_autorange.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "reversed"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_autotypenumbers.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_autotypenumbers.py index 4e78a25b49..0026f493e3 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_autotypenumbers.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_autotypenumbers.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["convert types", "strict"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_backgroundcolor.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_backgroundcolor.py index 321cf4e499..ce7b3eabdb 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_backgroundcolor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_backgroundcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_calendar.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_calendar.py index f2fc1d7d61..ecacd4f05c 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_calendar.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_calendar.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_categoryarray.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_categoryarray.py index 2ced199e2f..a3ba98289e 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_categoryarray.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_categoryarray.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_categoryarraysrc.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_categoryarraysrc.py index d8b935d65c..d548b71402 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_categoryarraysrc.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_categoryarraysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_categoryorder.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_categoryorder.py index f402f76100..37d9d59ca3 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_categoryorder.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_categoryorder.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_color.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_color.py index 2c3ea608e5..8586136861 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_color.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="layout.scene.yaxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_dtick.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_dtick.py index 37c9c3a3ba..508da58d48 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_dtick.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_dtick.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="dtick", parent_name="layout.scene.yaxis", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_exponentformat.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_exponentformat.py index 14f5672c6a..62c760a603 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_exponentformat.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_gridcolor.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_gridcolor.py index caab1c789d..6b147149e5 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_gridcolor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_gridcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_gridwidth.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_gridwidth.py index 8d31987298..269c52d87f 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_gridwidth.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_gridwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_hoverformat.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_hoverformat.py index 1e065c779b..0a4338fea3 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_hoverformat.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_hoverformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_linecolor.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_linecolor.py index a08a2df324..209ff7aa25 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_linecolor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_linecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_linewidth.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_linewidth.py index c8af55b77f..e46842f2f8 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_linewidth.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_linewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_minexponent.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_minexponent.py index d1fbc41985..d79be48647 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_minexponent.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_mirror.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_mirror.py index c41e366957..94cd3122e3 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_mirror.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_mirror.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", [True, "ticks", False, "all", "allticks"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_nticks.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_nticks.py index 1878094f88..1b386f9f46 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_nticks.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_range.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_range.py index 6fbf1b93b6..31425f1daf 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_range.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_range.py @@ -24,6 +24,5 @@ def __init__(self, plotly_name="range", parent_name="layout.scene.yaxis", **kwar }, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_rangemode.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_rangemode.py index 6268f7dbeb..c80097e19a 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_rangemode.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_rangemode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["normal", "tozero", "nonnegative"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_separatethousands.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_separatethousands.py index 6678ebc08c..edd1a88413 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showaxeslabels.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showaxeslabels.py index 906fe18d21..1ee9742056 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showaxeslabels.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showaxeslabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showbackground.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showbackground.py index 61b8a15ec1..e00fec940b 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showbackground.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showbackground.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showexponent.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showexponent.py index 8561a85882..3050f4f250 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showexponent.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showgrid.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showgrid.py index b3bf5c0eee..6c3ed045d4 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showgrid.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showgrid.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showline.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showline.py index b6e8f3428b..8f3e268349 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showline.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showline.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showspikes.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showspikes.py index aa2e8c97b0..293394857d 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showspikes.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showspikes.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showticklabels.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showticklabels.py index 52be8d8801..4302c03122 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showticklabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showtickprefix.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showtickprefix.py index 61027a192f..52f7a2e076 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showtickprefix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showticksuffix.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showticksuffix.py index 9a71a15edb..92adc6c29b 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_showticksuffix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_spikecolor.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_spikecolor.py index 6f4702e16f..b6e083b6c0 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_spikecolor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_spikecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_spikesides.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_spikesides.py index 091dc87412..f522534544 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_spikesides.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_spikesides.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_spikethickness.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_spikethickness.py index 27f128bf3a..46a68fa379 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_spikethickness.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_spikethickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tick0.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tick0.py index e8e5c0dde2..1c05865e9a 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tick0.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tick0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="tick0", parent_name="layout.scene.yaxis", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickangle.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickangle.py index 633d14155e..7ce983aba4 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickangle.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickcolor.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickcolor.py index 44fc16bb92..4d418dd678 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickformat.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickformat.py index 129a24f87a..5b1f660242 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickformat.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_ticklen.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_ticklen.py index 5034f839bd..c6b75fb988 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_ticklen.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickmode.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickmode.py index 788d616896..c30fe5f8eb 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickmode.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickprefix.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickprefix.py index d15d8657e8..13e3a0de57 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_ticks.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_ticks.py index ab4cafbea5..4fd6b6bb43 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_ticks.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_ticks.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ticks", parent_name="layout.scene.yaxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_ticksuffix.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_ticksuffix.py index f45d3ee25e..6479506007 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_ticktext.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_ticktext.py index 7de279498c..e8ee2b45c2 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_ticktext.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_ticktextsrc.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_ticktextsrc.py index fbfb7f2fd3..48c80b10ee 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickvals.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickvals.py index a7baaf6ad5..5d433894dd 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickvals.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickvalssrc.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickvalssrc.py index 94d703a11e..6c72454e7a 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickwidth.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickwidth.py index ae198e44fb..5639cce905 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_type.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_type.py index 6a2b0256e8..050efb4e9d 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_type.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_type.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="type", parent_name="layout.scene.yaxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["-", "linear", "log", "date", "category"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_visible.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_visible.py index e4a42bb6ce..859bb36f1e 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_visible.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_visible.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_zeroline.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_zeroline.py index 3a0d19ff73..b95c1f52e5 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_zeroline.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_zeroline.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_zerolinecolor.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_zerolinecolor.py index d0e6cc9399..479183a7c7 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_zerolinecolor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_zerolinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_zerolinewidth.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_zerolinewidth.py index f923edc8e5..b773033f99 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/_zerolinewidth.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/_zerolinewidth.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickfont/_color.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickfont/_color.py index c47a34fef7..47f03c446e 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickfont/_family.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickfont/_family.py index fa99bc7a58..10793aff7c 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickfont/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickfont/_size.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickfont/_size.py index 99ed9bf6bc..95b3720553 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickformatstop/_dtickrange.py index 3588faf2d8..34f4764ec4 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickformatstop/_enabled.py index 1ad5533d23..64dfcf7bac 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickformatstop/_name.py index a89893db99..362350f703 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickformatstop/_templateitemname.py index 201b6cd019..bfbdd0036b 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickformatstop/_value.py index 07dea21806..f5b916c874 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/title/_text.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/title/_text.py index db547f6b3f..d2181f058f 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/title/_text.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/title/font/_color.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/title/font/_color.py index bbc34e0a37..0872e8cfeb 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/title/font/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/title/font/_family.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/title/font/_family.py index 41d2d20514..689c8778a5 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/yaxis/title/font/_size.py b/packages/python/plotly/plotly/validators/layout/scene/yaxis/title/font/_size.py index ba282f87cc..1592cb45c9 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/yaxis/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/layout/scene/yaxis/title/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_autorange.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_autorange.py index 838cb92107..ece14a0e38 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_autorange.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_autorange.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "reversed"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_autotypenumbers.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_autotypenumbers.py index 6b4128c224..d5fe3d15d2 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_autotypenumbers.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_autotypenumbers.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["convert types", "strict"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_backgroundcolor.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_backgroundcolor.py index 7b3c72e2f5..d8f76b46d8 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_backgroundcolor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_backgroundcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_calendar.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_calendar.py index 5a28c83740..707c151ceb 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_calendar.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_calendar.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_categoryarray.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_categoryarray.py index f091ad1fc2..40e4483b27 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_categoryarray.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_categoryarray.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_categoryarraysrc.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_categoryarraysrc.py index a11192fa84..b38055e7ec 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_categoryarraysrc.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_categoryarraysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_categoryorder.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_categoryorder.py index 136dae5517..32dfb9a6b7 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_categoryorder.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_categoryorder.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_color.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_color.py index a655b8c3c9..c546d30b03 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_color.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="layout.scene.zaxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_dtick.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_dtick.py index f456a7bf5e..cae547a55b 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_dtick.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_dtick.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="dtick", parent_name="layout.scene.zaxis", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_exponentformat.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_exponentformat.py index 5b4669a018..3899c53fb0 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_exponentformat.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_gridcolor.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_gridcolor.py index 0941bdcb6d..0a8f0b4192 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_gridcolor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_gridcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_gridwidth.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_gridwidth.py index da37cc464a..3689a923e3 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_gridwidth.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_gridwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_hoverformat.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_hoverformat.py index 582c6072e7..f20a7c32d8 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_hoverformat.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_hoverformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_linecolor.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_linecolor.py index 1d38fd5bb9..20a37a44f7 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_linecolor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_linecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_linewidth.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_linewidth.py index 14f38765ba..bb8d44919a 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_linewidth.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_linewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_minexponent.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_minexponent.py index eae39f4b7c..fd8c5a6f15 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_minexponent.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_mirror.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_mirror.py index 9ee03e6d77..f8855f2210 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_mirror.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_mirror.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", [True, "ticks", False, "all", "allticks"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_nticks.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_nticks.py index 7538b0e612..490ebd3065 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_nticks.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_range.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_range.py index 81c4b6bd79..cf8cbf6fc4 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_range.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_range.py @@ -24,6 +24,5 @@ def __init__(self, plotly_name="range", parent_name="layout.scene.zaxis", **kwar }, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_rangemode.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_rangemode.py index 58f65fd4b1..7bbbeca20a 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_rangemode.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_rangemode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["normal", "tozero", "nonnegative"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_separatethousands.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_separatethousands.py index d8cf84b78d..08cce63f00 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showaxeslabels.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showaxeslabels.py index 64cbf74b3e..0049365628 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showaxeslabels.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showaxeslabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showbackground.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showbackground.py index 2b5271927e..af3ee82390 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showbackground.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showbackground.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showexponent.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showexponent.py index dbdbcc49f3..a6814a9b35 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showexponent.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showgrid.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showgrid.py index de357fb775..c42699d440 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showgrid.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showgrid.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showline.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showline.py index 77bed435f9..70bdc4f33c 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showline.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showline.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showspikes.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showspikes.py index 2220f520c7..873ab492d3 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showspikes.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showspikes.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showticklabels.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showticklabels.py index 94968a0b45..06a0482e50 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showticklabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showtickprefix.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showtickprefix.py index b9178c3faf..09b10f3abd 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showtickprefix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showticksuffix.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showticksuffix.py index 43cf57b850..5d2be76f72 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_showticksuffix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_spikecolor.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_spikecolor.py index 921fdeef7b..26e762394a 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_spikecolor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_spikecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_spikesides.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_spikesides.py index 0e66519749..a88fd03668 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_spikesides.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_spikesides.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_spikethickness.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_spikethickness.py index f0142f37f1..95ee92fc34 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_spikethickness.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_spikethickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tick0.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tick0.py index a67b54b5a4..423a2d1883 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tick0.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tick0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="tick0", parent_name="layout.scene.zaxis", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickangle.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickangle.py index 20f5507b82..4f997ff417 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickangle.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickcolor.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickcolor.py index 1e979659a0..a43662c8fc 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickformat.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickformat.py index b3d766fe09..b87df7ad5d 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickformat.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_ticklen.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_ticklen.py index af106a3556..e15f616a6f 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_ticklen.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickmode.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickmode.py index 4fd10eac55..73334de1f5 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickmode.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickprefix.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickprefix.py index 8217004aba..f155d2ae4e 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_ticks.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_ticks.py index 67c4dc6f90..f49e032bd9 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_ticks.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_ticks.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ticks", parent_name="layout.scene.zaxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_ticksuffix.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_ticksuffix.py index 8aec099fc9..66b3391d0c 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_ticktext.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_ticktext.py index afc61236c5..4e7939e651 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_ticktext.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_ticktextsrc.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_ticktextsrc.py index 00178ba4bc..84a8b3d0be 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickvals.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickvals.py index da7499a991..a8ab0e2389 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickvals.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickvalssrc.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickvalssrc.py index 052bba5ce5..2871a2d132 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickwidth.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickwidth.py index 78f0faff0d..636ad3ffb9 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_type.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_type.py index b9fe19453f..820e437064 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_type.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_type.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="type", parent_name="layout.scene.zaxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["-", "linear", "log", "date", "category"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_visible.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_visible.py index 1c0bd94b9e..e00d8070fb 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_visible.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_visible.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_zeroline.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_zeroline.py index 74f5cf4d78..1f422c84c1 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_zeroline.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_zeroline.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_zerolinecolor.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_zerolinecolor.py index dd565ebdf3..3d0bb01c0d 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_zerolinecolor.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_zerolinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_zerolinewidth.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_zerolinewidth.py index 89a0186015..9d4677e73e 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/_zerolinewidth.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/_zerolinewidth.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickfont/_color.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickfont/_color.py index 54ca5eeecc..45a5f3ba48 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickfont/_family.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickfont/_family.py index f0b8124112..0c6c1b56ec 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickfont/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickfont/_size.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickfont/_size.py index be57e3aba1..68ec3c244e 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickformatstop/_dtickrange.py index c9eadde6e6..79341b9ae5 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickformatstop/_enabled.py index a1eb577ae2..2377c607df 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickformatstop/_name.py index 4f1301e77a..683983b104 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickformatstop/_templateitemname.py index 4cce018f8f..a85a4e3ee9 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickformatstop/_value.py index e128a8da76..c4066fb78f 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/title/_text.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/title/_text.py index e5adec406f..03010d1400 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/title/_text.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/title/font/_color.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/title/font/_color.py index c9436d63f1..3110eecc66 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/title/font/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/title/font/_family.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/title/font/_family.py index 30d501defd..8816e4d3af 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/scene/zaxis/title/font/_size.py b/packages/python/plotly/plotly/validators/layout/scene/zaxis/title/font/_size.py index 1fbed06a09..df1035bedd 100644 --- a/packages/python/plotly/plotly/validators/layout/scene/zaxis/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/layout/scene/zaxis/title/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/shape/_editable.py b/packages/python/plotly/plotly/validators/layout/shape/_editable.py index e21b440f43..94ace982df 100644 --- a/packages/python/plotly/plotly/validators/layout/shape/_editable.py +++ b/packages/python/plotly/plotly/validators/layout/shape/_editable.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="editable", parent_name="layout.shape", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/shape/_fillcolor.py b/packages/python/plotly/plotly/validators/layout/shape/_fillcolor.py index 68c50f5ae3..1ee4f3a5df 100644 --- a/packages/python/plotly/plotly/validators/layout/shape/_fillcolor.py +++ b/packages/python/plotly/plotly/validators/layout/shape/_fillcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="fillcolor", parent_name="layout.shape", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/shape/_fillrule.py b/packages/python/plotly/plotly/validators/layout/shape/_fillrule.py index 219f65a0bf..a5ed7ae3ce 100644 --- a/packages/python/plotly/plotly/validators/layout/shape/_fillrule.py +++ b/packages/python/plotly/plotly/validators/layout/shape/_fillrule.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="fillrule", parent_name="layout.shape", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["evenodd", "nonzero"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/shape/_layer.py b/packages/python/plotly/plotly/validators/layout/shape/_layer.py index 2acb4671f7..892e1a4aeb 100644 --- a/packages/python/plotly/plotly/validators/layout/shape/_layer.py +++ b/packages/python/plotly/plotly/validators/layout/shape/_layer.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="layer", parent_name="layout.shape", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["below", "above"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/shape/_name.py b/packages/python/plotly/plotly/validators/layout/shape/_name.py index 367658c7fb..4b9884739c 100644 --- a/packages/python/plotly/plotly/validators/layout/shape/_name.py +++ b/packages/python/plotly/plotly/validators/layout/shape/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="layout.shape", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/shape/_opacity.py b/packages/python/plotly/plotly/validators/layout/shape/_opacity.py index f4190661aa..e5b221786c 100644 --- a/packages/python/plotly/plotly/validators/layout/shape/_opacity.py +++ b/packages/python/plotly/plotly/validators/layout/shape/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="layout.shape", **kwargs): edit_type=kwargs.pop("edit_type", "arraydraw"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/shape/_path.py b/packages/python/plotly/plotly/validators/layout/shape/_path.py index 6f38c4673b..9a443ec6f6 100644 --- a/packages/python/plotly/plotly/validators/layout/shape/_path.py +++ b/packages/python/plotly/plotly/validators/layout/shape/_path.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="path", parent_name="layout.shape", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/shape/_templateitemname.py b/packages/python/plotly/plotly/validators/layout/shape/_templateitemname.py index 9fc3e874bb..af13ee5d22 100644 --- a/packages/python/plotly/plotly/validators/layout/shape/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/layout/shape/_templateitemname.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/shape/_type.py b/packages/python/plotly/plotly/validators/layout/shape/_type.py index db8830c407..84e9f9b4b7 100644 --- a/packages/python/plotly/plotly/validators/layout/shape/_type.py +++ b/packages/python/plotly/plotly/validators/layout/shape/_type.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="type", parent_name="layout.shape", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["circle", "rect", "path", "line"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/shape/_visible.py b/packages/python/plotly/plotly/validators/layout/shape/_visible.py index fdf1dca55d..6d3e355490 100644 --- a/packages/python/plotly/plotly/validators/layout/shape/_visible.py +++ b/packages/python/plotly/plotly/validators/layout/shape/_visible.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="visible", parent_name="layout.shape", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/shape/_x0.py b/packages/python/plotly/plotly/validators/layout/shape/_x0.py index aba3bd7bc8..6c57da3bb2 100644 --- a/packages/python/plotly/plotly/validators/layout/shape/_x0.py +++ b/packages/python/plotly/plotly/validators/layout/shape/_x0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x0", parent_name="layout.shape", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/shape/_x1.py b/packages/python/plotly/plotly/validators/layout/shape/_x1.py index ddc619ae84..0d9b5232e6 100644 --- a/packages/python/plotly/plotly/validators/layout/shape/_x1.py +++ b/packages/python/plotly/plotly/validators/layout/shape/_x1.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x1", parent_name="layout.shape", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/shape/_xanchor.py b/packages/python/plotly/plotly/validators/layout/shape/_xanchor.py index 144a3f9fde..23f4928c9b 100644 --- a/packages/python/plotly/plotly/validators/layout/shape/_xanchor.py +++ b/packages/python/plotly/plotly/validators/layout/shape/_xanchor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xanchor", parent_name="layout.shape", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/shape/_xref.py b/packages/python/plotly/plotly/validators/layout/shape/_xref.py index 0ac0abf7b6..db2cc9f7d9 100644 --- a/packages/python/plotly/plotly/validators/layout/shape/_xref.py +++ b/packages/python/plotly/plotly/validators/layout/shape/_xref.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xref", parent_name="layout.shape", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", ["paper", "/^x([2-9]|[1-9][0-9]+)?( domain)?$/"] ), diff --git a/packages/python/plotly/plotly/validators/layout/shape/_xsizemode.py b/packages/python/plotly/plotly/validators/layout/shape/_xsizemode.py index 29a0542632..3517591999 100644 --- a/packages/python/plotly/plotly/validators/layout/shape/_xsizemode.py +++ b/packages/python/plotly/plotly/validators/layout/shape/_xsizemode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xsizemode", parent_name="layout.shape", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["scaled", "pixel"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/shape/_y0.py b/packages/python/plotly/plotly/validators/layout/shape/_y0.py index 39e5350b7c..e720449ff2 100644 --- a/packages/python/plotly/plotly/validators/layout/shape/_y0.py +++ b/packages/python/plotly/plotly/validators/layout/shape/_y0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y0", parent_name="layout.shape", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/shape/_y1.py b/packages/python/plotly/plotly/validators/layout/shape/_y1.py index 95d89912c4..aad8cdd45a 100644 --- a/packages/python/plotly/plotly/validators/layout/shape/_y1.py +++ b/packages/python/plotly/plotly/validators/layout/shape/_y1.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y1", parent_name="layout.shape", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/shape/_yanchor.py b/packages/python/plotly/plotly/validators/layout/shape/_yanchor.py index f67c6af3ea..366c76e5ae 100644 --- a/packages/python/plotly/plotly/validators/layout/shape/_yanchor.py +++ b/packages/python/plotly/plotly/validators/layout/shape/_yanchor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="yanchor", parent_name="layout.shape", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/shape/_yref.py b/packages/python/plotly/plotly/validators/layout/shape/_yref.py index 72ac407cbe..d5049138e0 100644 --- a/packages/python/plotly/plotly/validators/layout/shape/_yref.py +++ b/packages/python/plotly/plotly/validators/layout/shape/_yref.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="yref", parent_name="layout.shape", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", ["paper", "/^y([2-9]|[1-9][0-9]+)?( domain)?$/"] ), diff --git a/packages/python/plotly/plotly/validators/layout/shape/_ysizemode.py b/packages/python/plotly/plotly/validators/layout/shape/_ysizemode.py index 1eff07cd07..aa41d65b7e 100644 --- a/packages/python/plotly/plotly/validators/layout/shape/_ysizemode.py +++ b/packages/python/plotly/plotly/validators/layout/shape/_ysizemode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ysizemode", parent_name="layout.shape", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+arraydraw"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["scaled", "pixel"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/shape/line/_color.py b/packages/python/plotly/plotly/validators/layout/shape/line/_color.py index 9d0b9a47c0..bb2f1f89e8 100644 --- a/packages/python/plotly/plotly/validators/layout/shape/line/_color.py +++ b/packages/python/plotly/plotly/validators/layout/shape/line/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="layout.shape.line", **kwarg parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/shape/line/_dash.py b/packages/python/plotly/plotly/validators/layout/shape/line/_dash.py index 75492e16a4..4b42018c81 100644 --- a/packages/python/plotly/plotly/validators/layout/shape/line/_dash.py +++ b/packages/python/plotly/plotly/validators/layout/shape/line/_dash.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="dash", parent_name="layout.shape.line", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", ["solid", "dot", "dash", "longdash", "dashdot", "longdashdot"] ), diff --git a/packages/python/plotly/plotly/validators/layout/shape/line/_width.py b/packages/python/plotly/plotly/validators/layout/shape/line/_width.py index 79a9feea7e..5a63de2e3b 100644 --- a/packages/python/plotly/plotly/validators/layout/shape/line/_width.py +++ b/packages/python/plotly/plotly/validators/layout/shape/line/_width.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="width", parent_name="layout.shape.line", **kwarg anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "calc+arraydraw"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/_active.py b/packages/python/plotly/plotly/validators/layout/slider/_active.py index 4c61a1b404..8b7b157e42 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/_active.py +++ b/packages/python/plotly/plotly/validators/layout/slider/_active.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="active", parent_name="layout.slider", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/_activebgcolor.py b/packages/python/plotly/plotly/validators/layout/slider/_activebgcolor.py index 5bd9b37357..d058662fd3 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/_activebgcolor.py +++ b/packages/python/plotly/plotly/validators/layout/slider/_activebgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/_bgcolor.py b/packages/python/plotly/plotly/validators/layout/slider/_bgcolor.py index 79ada74ed8..8137bfcfb7 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/layout/slider/_bgcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="bgcolor", parent_name="layout.slider", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/_bordercolor.py b/packages/python/plotly/plotly/validators/layout/slider/_bordercolor.py index 8a401dea6b..0a03749cf7 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/layout/slider/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/_borderwidth.py b/packages/python/plotly/plotly/validators/layout/slider/_borderwidth.py index 69238d4347..16591f08cc 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/layout/slider/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/_len.py b/packages/python/plotly/plotly/validators/layout/slider/_len.py index 43edebe819..bd6010a0f9 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/_len.py +++ b/packages/python/plotly/plotly/validators/layout/slider/_len.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="len", parent_name="layout.slider", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/_lenmode.py b/packages/python/plotly/plotly/validators/layout/slider/_lenmode.py index f14cc5e01e..9cf77993de 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/_lenmode.py +++ b/packages/python/plotly/plotly/validators/layout/slider/_lenmode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="lenmode", parent_name="layout.slider", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/_minorticklen.py b/packages/python/plotly/plotly/validators/layout/slider/_minorticklen.py index 678f9ec120..7b0de49c90 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/_minorticklen.py +++ b/packages/python/plotly/plotly/validators/layout/slider/_minorticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/_name.py b/packages/python/plotly/plotly/validators/layout/slider/_name.py index 866cb8a587..1d9dce0cd1 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/_name.py +++ b/packages/python/plotly/plotly/validators/layout/slider/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="layout.slider", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/_templateitemname.py b/packages/python/plotly/plotly/validators/layout/slider/_templateitemname.py index cce7c66203..3b7325f5f9 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/layout/slider/_templateitemname.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/_tickcolor.py b/packages/python/plotly/plotly/validators/layout/slider/_tickcolor.py index bfddd6312e..3cb4c259f8 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/layout/slider/_tickcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickcolor", parent_name="layout.slider", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/_ticklen.py b/packages/python/plotly/plotly/validators/layout/slider/_ticklen.py index e9427d8800..5dbd550c59 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/_ticklen.py +++ b/packages/python/plotly/plotly/validators/layout/slider/_ticklen.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ticklen", parent_name="layout.slider", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/_tickwidth.py b/packages/python/plotly/plotly/validators/layout/slider/_tickwidth.py index 738cc5361e..bee8dcd5b6 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/layout/slider/_tickwidth.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="tickwidth", parent_name="layout.slider", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/_visible.py b/packages/python/plotly/plotly/validators/layout/slider/_visible.py index f2136abee6..19b4e46b11 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/_visible.py +++ b/packages/python/plotly/plotly/validators/layout/slider/_visible.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="visible", parent_name="layout.slider", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/_x.py b/packages/python/plotly/plotly/validators/layout/slider/_x.py index e2e370d427..43807616bd 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/_x.py +++ b/packages/python/plotly/plotly/validators/layout/slider/_x.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="x", parent_name="layout.slider", **kwargs): edit_type=kwargs.pop("edit_type", "arraydraw"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/_xanchor.py b/packages/python/plotly/plotly/validators/layout/slider/_xanchor.py index 6eb76a88d5..0aa10d6361 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/_xanchor.py +++ b/packages/python/plotly/plotly/validators/layout/slider/_xanchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xanchor", parent_name="layout.slider", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/_y.py b/packages/python/plotly/plotly/validators/layout/slider/_y.py index 151079f776..7eb6332b47 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/_y.py +++ b/packages/python/plotly/plotly/validators/layout/slider/_y.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="y", parent_name="layout.slider", **kwargs): edit_type=kwargs.pop("edit_type", "arraydraw"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/_yanchor.py b/packages/python/plotly/plotly/validators/layout/slider/_yanchor.py index 7233d52287..0078ea4e6e 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/_yanchor.py +++ b/packages/python/plotly/plotly/validators/layout/slider/_yanchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="yanchor", parent_name="layout.slider", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/currentvalue/_offset.py b/packages/python/plotly/plotly/validators/layout/slider/currentvalue/_offset.py index 417f728bac..a8529dcbfb 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/currentvalue/_offset.py +++ b/packages/python/plotly/plotly/validators/layout/slider/currentvalue/_offset.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/currentvalue/_prefix.py b/packages/python/plotly/plotly/validators/layout/slider/currentvalue/_prefix.py index 6ef88f195b..adff3f3d6d 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/currentvalue/_prefix.py +++ b/packages/python/plotly/plotly/validators/layout/slider/currentvalue/_prefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/currentvalue/_suffix.py b/packages/python/plotly/plotly/validators/layout/slider/currentvalue/_suffix.py index 9010a321fd..2773733867 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/currentvalue/_suffix.py +++ b/packages/python/plotly/plotly/validators/layout/slider/currentvalue/_suffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/currentvalue/_visible.py b/packages/python/plotly/plotly/validators/layout/slider/currentvalue/_visible.py index 0f26956599..1d460979cb 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/currentvalue/_visible.py +++ b/packages/python/plotly/plotly/validators/layout/slider/currentvalue/_visible.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/currentvalue/_xanchor.py b/packages/python/plotly/plotly/validators/layout/slider/currentvalue/_xanchor.py index dac65e54e4..07ba541023 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/currentvalue/_xanchor.py +++ b/packages/python/plotly/plotly/validators/layout/slider/currentvalue/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/currentvalue/font/_color.py b/packages/python/plotly/plotly/validators/layout/slider/currentvalue/font/_color.py index 7f3474866a..3207bbf384 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/currentvalue/font/_color.py +++ b/packages/python/plotly/plotly/validators/layout/slider/currentvalue/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/currentvalue/font/_family.py b/packages/python/plotly/plotly/validators/layout/slider/currentvalue/font/_family.py index 2aba377350..65ec8efa92 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/currentvalue/font/_family.py +++ b/packages/python/plotly/plotly/validators/layout/slider/currentvalue/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/currentvalue/font/_size.py b/packages/python/plotly/plotly/validators/layout/slider/currentvalue/font/_size.py index b4b7fb8612..0d0203f581 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/currentvalue/font/_size.py +++ b/packages/python/plotly/plotly/validators/layout/slider/currentvalue/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/font/_color.py b/packages/python/plotly/plotly/validators/layout/slider/font/_color.py index 5ca4b13c3a..65964db4ac 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/font/_color.py +++ b/packages/python/plotly/plotly/validators/layout/slider/font/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="layout.slider.font", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/font/_family.py b/packages/python/plotly/plotly/validators/layout/slider/font/_family.py index 45466c7225..ab96d282e9 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/font/_family.py +++ b/packages/python/plotly/plotly/validators/layout/slider/font/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/font/_size.py b/packages/python/plotly/plotly/validators/layout/slider/font/_size.py index 55543dfe94..2c47d12f29 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/font/_size.py +++ b/packages/python/plotly/plotly/validators/layout/slider/font/_size.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="size", parent_name="layout.slider.font", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/pad/_b.py b/packages/python/plotly/plotly/validators/layout/slider/pad/_b.py index 7207b2eb77..e4769a6ef1 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/pad/_b.py +++ b/packages/python/plotly/plotly/validators/layout/slider/pad/_b.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="b", parent_name="layout.slider.pad", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/pad/_l.py b/packages/python/plotly/plotly/validators/layout/slider/pad/_l.py index 16ee05121a..46d3fc650a 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/pad/_l.py +++ b/packages/python/plotly/plotly/validators/layout/slider/pad/_l.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="l", parent_name="layout.slider.pad", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/pad/_r.py b/packages/python/plotly/plotly/validators/layout/slider/pad/_r.py index 5e2b93c8d1..bbdd0906b6 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/pad/_r.py +++ b/packages/python/plotly/plotly/validators/layout/slider/pad/_r.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="r", parent_name="layout.slider.pad", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/pad/_t.py b/packages/python/plotly/plotly/validators/layout/slider/pad/_t.py index 321c926412..4f9ed3802d 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/pad/_t.py +++ b/packages/python/plotly/plotly/validators/layout/slider/pad/_t.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="t", parent_name="layout.slider.pad", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/step/_args.py b/packages/python/plotly/plotly/validators/layout/slider/step/_args.py index 15cfed591f..c912b2f2a6 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/step/_args.py +++ b/packages/python/plotly/plotly/validators/layout/slider/step/_args.py @@ -16,6 +16,5 @@ def __init__(self, plotly_name="args", parent_name="layout.slider.step", **kwarg {"valType": "any", "editType": "arraydraw"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/step/_execute.py b/packages/python/plotly/plotly/validators/layout/slider/step/_execute.py index 00edd9397b..941be60a90 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/step/_execute.py +++ b/packages/python/plotly/plotly/validators/layout/slider/step/_execute.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/step/_label.py b/packages/python/plotly/plotly/validators/layout/slider/step/_label.py index 8e1f07affa..c796ee2e22 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/step/_label.py +++ b/packages/python/plotly/plotly/validators/layout/slider/step/_label.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="label", parent_name="layout.slider.step", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/step/_method.py b/packages/python/plotly/plotly/validators/layout/slider/step/_method.py index 4ef179fceb..b314391666 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/step/_method.py +++ b/packages/python/plotly/plotly/validators/layout/slider/step/_method.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", ["restyle", "relayout", "animate", "update", "skip"] ), diff --git a/packages/python/plotly/plotly/validators/layout/slider/step/_name.py b/packages/python/plotly/plotly/validators/layout/slider/step/_name.py index 2e1f0cf7eb..5aa8fe5e1d 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/step/_name.py +++ b/packages/python/plotly/plotly/validators/layout/slider/step/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="layout.slider.step", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/step/_templateitemname.py b/packages/python/plotly/plotly/validators/layout/slider/step/_templateitemname.py index cd7969722e..a329d900aa 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/step/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/layout/slider/step/_templateitemname.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/step/_value.py b/packages/python/plotly/plotly/validators/layout/slider/step/_value.py index 7bb391d844..5c1db2f4de 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/step/_value.py +++ b/packages/python/plotly/plotly/validators/layout/slider/step/_value.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="value", parent_name="layout.slider.step", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/step/_visible.py b/packages/python/plotly/plotly/validators/layout/slider/step/_visible.py index 1d5a50fc8b..d4ba77cb34 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/step/_visible.py +++ b/packages/python/plotly/plotly/validators/layout/slider/step/_visible.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/transition/_duration.py b/packages/python/plotly/plotly/validators/layout/slider/transition/_duration.py index 3e02bfd661..10aa51beea 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/transition/_duration.py +++ b/packages/python/plotly/plotly/validators/layout/slider/transition/_duration.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/slider/transition/_easing.py b/packages/python/plotly/plotly/validators/layout/slider/transition/_easing.py index e6de0b05ea..a5bf1877d7 100644 --- a/packages/python/plotly/plotly/validators/layout/slider/transition/_easing.py +++ b/packages/python/plotly/plotly/validators/layout/slider/transition/_easing.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/template/_data.py b/packages/python/plotly/plotly/validators/layout/template/_data.py index 673153ea19..5dd5d6bda9 100644 --- a/packages/python/plotly/plotly/validators/layout/template/_data.py +++ b/packages/python/plotly/plotly/validators/layout/template/_data.py @@ -10,9 +10,6 @@ def __init__(self, plotly_name="data", parent_name="layout.template", **kwargs): data_docs=kwargs.pop( "data_docs", """ - area - A tuple of :class:`plotly.graph_objects.Area` - instances or dicts with compatible properties barpolar A tuple of :class:`plotly.graph_objects.Barpolar` diff --git a/packages/python/plotly/plotly/validators/layout/template/data/__init__.py b/packages/python/plotly/plotly/validators/layout/template/data/__init__.py index 312285750c..5c8272e104 100644 --- a/packages/python/plotly/plotly/validators/layout/template/data/__init__.py +++ b/packages/python/plotly/plotly/validators/layout/template/data/__init__.py @@ -47,7 +47,6 @@ from ._box import BoxValidator from ._bar import BarValidator from ._barpolar import BarpolarValidator - from ._area import AreaValidator else: from _plotly_utils.importers import relative_import @@ -101,6 +100,5 @@ "._box.BoxValidator", "._bar.BarValidator", "._barpolar.BarpolarValidator", - "._area.AreaValidator", ], ) diff --git a/packages/python/plotly/plotly/validators/layout/template/data/_area.py b/packages/python/plotly/plotly/validators/layout/template/data/_area.py deleted file mode 100644 index 6048201a16..0000000000 --- a/packages/python/plotly/plotly/validators/layout/template/data/_area.py +++ /dev/null @@ -1,18 +0,0 @@ -import _plotly_utils.basevalidators - - -class AreaValidator(_plotly_utils.basevalidators.CompoundArrayValidator): - def __init__( - self, plotly_name="area", parent_name="layout.template.data", **kwargs - ): - super(AreaValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - data_class_str=kwargs.pop("data_class_str", "Area"), - data_docs=kwargs.pop( - "data_docs", - """ -""", - ), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/_bgcolor.py b/packages/python/plotly/plotly/validators/layout/ternary/_bgcolor.py index bce23f5f80..382e26bae7 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/_bgcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="bgcolor", parent_name="layout.ternary", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/_sum.py b/packages/python/plotly/plotly/validators/layout/ternary/_sum.py index 5303c844cd..a8e410c9c6 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/_sum.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/_sum.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="sum", parent_name="layout.ternary", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/_uirevision.py b/packages/python/plotly/plotly/validators/layout/ternary/_uirevision.py index 2ce55907d9..099e195798 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/_uirevision.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/_uirevision.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_color.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_color.py index a539927e3d..25b2c1cd97 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_color.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_dtick.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_dtick.py index 248622b669..69fcc79735 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_dtick.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_exponentformat.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_exponentformat.py index 78e16c37f8..e6c090a3ad 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_exponentformat.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_gridcolor.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_gridcolor.py index 0607b91917..752a136485 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_gridcolor.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_gridcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_gridwidth.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_gridwidth.py index 73fe626670..16f3150a6e 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_gridwidth.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_gridwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_hoverformat.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_hoverformat.py index 1f00dc0d32..eab244dc15 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_hoverformat.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_hoverformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_layer.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_layer.py index 0f1bd06134..9fe651f138 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_layer.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_layer.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["above traces", "below traces"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_linecolor.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_linecolor.py index 3affe214bd..615e6c36d5 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_linecolor.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_linecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_linewidth.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_linewidth.py index 5cd9284f1a..81c905e0fa 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_linewidth.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_linewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_min.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_min.py index 923df6b5b2..9a3af24058 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_min.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_min.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="min", parent_name="layout.ternary.aaxis", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_minexponent.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_minexponent.py index 3a69b293d8..5dd7f50784 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_minexponent.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_nticks.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_nticks.py index dc166ec03c..02432df8f2 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_nticks.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_separatethousands.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_separatethousands.py index a7d891dd49..fca53efd33 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_showexponent.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_showexponent.py index 3490fc3018..beccd224a3 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_showexponent.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_showgrid.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_showgrid.py index 7cb3c86628..63eff1de5f 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_showgrid.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_showgrid.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_showline.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_showline.py index a7e111c1b6..18dd062b73 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_showline.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_showline.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_showticklabels.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_showticklabels.py index 227561c294..2e2a7abe7b 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_showticklabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_showtickprefix.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_showtickprefix.py index 01a992ba56..56c0b20d85 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_showtickprefix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_showticksuffix.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_showticksuffix.py index 9c9fea35b0..fc67cbb01a 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_showticksuffix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tick0.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tick0.py index ae718cf371..c6a114b76b 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tick0.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickangle.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickangle.py index f47994dcf2..ab89364d5c 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickangle.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickcolor.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickcolor.py index 745792ab6c..4f1de93145 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickformat.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickformat.py index ac23cad7ba..b32dae3a7d 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickformat.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_ticklen.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_ticklen.py index 99bff32a46..a864410c41 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_ticklen.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickmode.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickmode.py index b7471b38e9..f69d5d34db 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickmode.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickprefix.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickprefix.py index 9ce7cd401e..443ae5f2f9 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_ticks.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_ticks.py index 961d9f87aa..252ae7ac05 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_ticks.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_ticksuffix.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_ticksuffix.py index ac693d730c..8de2a96ad8 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_ticktext.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_ticktext.py index 9e9b7b58f6..19b106794d 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_ticktext.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_ticktextsrc.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_ticktextsrc.py index 4b10275f46..13c94cb926 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickvals.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickvals.py index b0b9318a67..ff6c5bea56 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickvals.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickvalssrc.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickvalssrc.py index 90db155300..d72e0c4276 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickwidth.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickwidth.py index b6494b6db6..8b7664efb5 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_uirevision.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_uirevision.py index 21ed7eb9d3..93ced964b9 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_uirevision.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/_uirevision.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickfont/_color.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickfont/_color.py index 96fdbe535d..6d1fa4cf99 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickfont/_family.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickfont/_family.py index f5d72e9179..f2da02c405 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickfont/_size.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickfont/_size.py index 1c3bea2ca6..5ab3c8082f 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickformatstop/_dtickrange.py index 0eb7c58a21..57fb0e0703 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickformatstop/_enabled.py index 3536b85673..cfd051e059 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickformatstop/_name.py index 7e4ad8385d..4a3504f74f 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickformatstop/_templateitemname.py index dd99579dd3..a245037aee 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickformatstop/_value.py index aceaf73ede..84fb25f71f 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/title/_text.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/title/_text.py index 0e3ec90be0..7e104288cd 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/title/_text.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/title/font/_color.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/title/font/_color.py index f79015dc86..93b791e074 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/title/font/_family.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/title/font/_family.py index d2850433f0..0d2cc2eb11 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/title/font/_size.py b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/title/font/_size.py index 5fc9221689..ad14ec8389 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/aaxis/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/aaxis/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_color.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_color.py index cd7ab3f8f4..24b863238b 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_color.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_dtick.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_dtick.py index c5a9b2d0be..728719ecf8 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_dtick.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_exponentformat.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_exponentformat.py index b402c3f394..2c689cd8de 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_exponentformat.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_gridcolor.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_gridcolor.py index b2c46405d2..299a85a662 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_gridcolor.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_gridcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_gridwidth.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_gridwidth.py index 7fd94ddb4a..6eb57800cc 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_gridwidth.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_gridwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_hoverformat.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_hoverformat.py index 4c26522148..82527c6a4d 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_hoverformat.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_hoverformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_layer.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_layer.py index 5388efb4a7..25c1d6e8d7 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_layer.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_layer.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["above traces", "below traces"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_linecolor.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_linecolor.py index cab4c613fe..8aa36d7809 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_linecolor.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_linecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_linewidth.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_linewidth.py index fec0c9d507..821d9bd7e1 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_linewidth.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_linewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_min.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_min.py index 495db39e85..9ccb1b7784 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_min.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_min.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="min", parent_name="layout.ternary.baxis", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_minexponent.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_minexponent.py index 2f451b593e..33585048ac 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_minexponent.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_nticks.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_nticks.py index 260cd234ea..38a7bcab01 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_nticks.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_separatethousands.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_separatethousands.py index 1648cf57a7..29cd505949 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_showexponent.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_showexponent.py index bf6f4193a5..f782bbac29 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_showexponent.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_showgrid.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_showgrid.py index 255154cc6a..c94416dbe1 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_showgrid.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_showgrid.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_showline.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_showline.py index 53aa9a3d2c..7b72792b1d 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_showline.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_showline.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_showticklabels.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_showticklabels.py index 230cb54d85..b7dd3d7cdd 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_showticklabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_showtickprefix.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_showtickprefix.py index 82b2061000..c30fd08f0e 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_showtickprefix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_showticksuffix.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_showticksuffix.py index 7bcfb1babf..2894a9d0c1 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_showticksuffix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tick0.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tick0.py index f82ff4b68f..2dcfed7cc6 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tick0.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickangle.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickangle.py index e9f7642a21..fe103a16b6 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickangle.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickcolor.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickcolor.py index fe353e02fd..e9b7139b16 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickformat.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickformat.py index 39a594a0ec..159efcf591 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickformat.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_ticklen.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_ticklen.py index 1833ed2075..eccdc11d1c 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_ticklen.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickmode.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickmode.py index d28e701e79..025eda6d02 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickmode.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickprefix.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickprefix.py index 61d64de90a..cce47ad159 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_ticks.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_ticks.py index b824c469cf..fa4b870c1d 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_ticks.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_ticksuffix.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_ticksuffix.py index fcf670c602..e32ced141b 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_ticktext.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_ticktext.py index 36c809f5a9..2bf299dc1a 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_ticktext.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_ticktextsrc.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_ticktextsrc.py index e3802f9eda..80a4359eec 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickvals.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickvals.py index f18926fa19..cf3cbc056f 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickvals.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickvalssrc.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickvalssrc.py index 1fbbe00ac9..9a84c20da5 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickwidth.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickwidth.py index b355038037..0c6f33fc13 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_uirevision.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_uirevision.py index a7b2909ac0..28e57845d3 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/_uirevision.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/_uirevision.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickfont/_color.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickfont/_color.py index f1265aa569..5ec6e2f8f4 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickfont/_family.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickfont/_family.py index 30d876f543..3ced1a696b 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickfont/_size.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickfont/_size.py index 7763e51c3e..a45bcf98d5 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickformatstop/_dtickrange.py index 59676af7f4..424b1b866b 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickformatstop/_enabled.py index a80caa462b..8ddae88611 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickformatstop/_name.py index 51efab5bfd..5d425e8c47 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickformatstop/_templateitemname.py index bfce468158..347c01211c 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickformatstop/_value.py index 78e584626b..fe43bbc6fc 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/title/_text.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/title/_text.py index c3f2331f53..f655e2fcd6 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/title/_text.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/title/font/_color.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/title/font/_color.py index f1bd914cd7..93dc0910a9 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/title/font/_family.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/title/font/_family.py index ddfa960a40..fae41c21a3 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/baxis/title/font/_size.py b/packages/python/plotly/plotly/validators/layout/ternary/baxis/title/font/_size.py index da2fe0bcf5..9bd0f5121f 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/baxis/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/baxis/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_color.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_color.py index 29ad6a0d03..0635ee0950 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_color.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_dtick.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_dtick.py index fc0724da07..c8b201994b 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_dtick.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_exponentformat.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_exponentformat.py index 4b1df283a7..334241bd74 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_exponentformat.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_gridcolor.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_gridcolor.py index 1e0c1b8a78..ae63eb27a6 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_gridcolor.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_gridcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_gridwidth.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_gridwidth.py index 10246df9e8..e0232f4c27 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_gridwidth.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_gridwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_hoverformat.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_hoverformat.py index cae12f15f9..1a774ac336 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_hoverformat.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_hoverformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_layer.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_layer.py index 640ea93575..9b961901ef 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_layer.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_layer.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["above traces", "below traces"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_linecolor.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_linecolor.py index 272dd08fa5..453799ef4a 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_linecolor.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_linecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_linewidth.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_linewidth.py index 997a9bd6af..1fa34efb6e 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_linewidth.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_linewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_min.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_min.py index 006c958eb0..1f8b220366 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_min.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_min.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="min", parent_name="layout.ternary.caxis", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_minexponent.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_minexponent.py index 43d3851e8f..81a6e52858 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_minexponent.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_nticks.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_nticks.py index 8b8c59c48c..1931436268 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_nticks.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_separatethousands.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_separatethousands.py index 3066a21d9e..415c9aa8ec 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_showexponent.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_showexponent.py index 1ba389e99d..e5c774d776 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_showexponent.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_showgrid.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_showgrid.py index 13a244ed9e..b470b13882 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_showgrid.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_showgrid.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_showline.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_showline.py index 2db2bdd7bf..f85bdf2ccf 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_showline.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_showline.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_showticklabels.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_showticklabels.py index 7be8f4609a..083543f08b 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_showticklabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_showtickprefix.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_showtickprefix.py index 331e3a0c42..42b846c238 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_showtickprefix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_showticksuffix.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_showticksuffix.py index 1ecc31c579..5a7a7ffd18 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_showticksuffix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tick0.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tick0.py index 8276bbdc37..ce02904016 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tick0.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickangle.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickangle.py index 1f6351542e..c29d2ce2c0 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickangle.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickcolor.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickcolor.py index 46d3cf4574..adf38b36b7 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickformat.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickformat.py index 739bbee8c1..342352e7d8 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickformat.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_ticklen.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_ticklen.py index cac2875a72..dbf55f7661 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_ticklen.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickmode.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickmode.py index 73aa100e35..acb9d785b4 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickmode.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickprefix.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickprefix.py index 2deb2531ad..6a46d428d1 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_ticks.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_ticks.py index 0afce0c38f..9e5df244ea 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_ticks.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_ticksuffix.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_ticksuffix.py index 4009f9e086..f104882963 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_ticktext.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_ticktext.py index 8ae73d3324..300b41d6c0 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_ticktext.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_ticktextsrc.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_ticktextsrc.py index 3fb6f5d233..e883e51fe7 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickvals.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickvals.py index 5e3db2e422..cac0ac0791 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickvals.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickvalssrc.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickvalssrc.py index 146c1de74e..11d9a2949c 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickwidth.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickwidth.py index 19117ae892..607a53d457 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_uirevision.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_uirevision.py index 80d8daa3b1..e003700e3b 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/_uirevision.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/_uirevision.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickfont/_color.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickfont/_color.py index f7dc3423f7..3bc4b83149 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickfont/_family.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickfont/_family.py index 71b17f505c..779291c190 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickfont/_size.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickfont/_size.py index 142faf2f76..65f82008e6 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickformatstop/_dtickrange.py index 597cd23a11..cc85db1a43 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickformatstop/_enabled.py index bab2649c35..36ca58849e 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickformatstop/_name.py index 500a96b9ec..7fa9a2199f 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickformatstop/_templateitemname.py index 40e84a10c6..336685395e 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickformatstop/_value.py index 84408657e1..e3c46e228b 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/title/_text.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/title/_text.py index 67897240e5..fc669936a5 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/title/_text.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/title/font/_color.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/title/font/_color.py index 63e0258187..38dafd788e 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/title/font/_family.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/title/font/_family.py index 5e12481f99..a178deb0d6 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/caxis/title/font/_size.py b/packages/python/plotly/plotly/validators/layout/ternary/caxis/title/font/_size.py index caf678dfec..8b8e8501d5 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/caxis/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/caxis/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/domain/_column.py b/packages/python/plotly/plotly/validators/layout/ternary/domain/_column.py index 5ae480d1ce..38d0f8112b 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/domain/_column.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/domain/_column.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/domain/_row.py b/packages/python/plotly/plotly/validators/layout/ternary/domain/_row.py index f74b497207..87b8c8e9d0 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/domain/_row.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/domain/_row.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/domain/_x.py b/packages/python/plotly/plotly/validators/layout/ternary/domain/_x.py index df62b569f1..ab7238ca21 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/domain/_x.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/domain/_x.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="x", parent_name="layout.ternary.domain", **kwarg {"valType": "number", "min": 0, "max": 1, "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/ternary/domain/_y.py b/packages/python/plotly/plotly/validators/layout/ternary/domain/_y.py index 58eafce324..2d3d686d3b 100644 --- a/packages/python/plotly/plotly/validators/layout/ternary/domain/_y.py +++ b/packages/python/plotly/plotly/validators/layout/ternary/domain/_y.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="y", parent_name="layout.ternary.domain", **kwarg {"valType": "number", "min": 0, "max": 1, "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/title/_text.py b/packages/python/plotly/plotly/validators/layout/title/_text.py index 0fc0a3dd42..f8602d5c9f 100644 --- a/packages/python/plotly/plotly/validators/layout/title/_text.py +++ b/packages/python/plotly/plotly/validators/layout/title/_text.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="text", parent_name="layout.title", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "layoutstyle"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/title/_x.py b/packages/python/plotly/plotly/validators/layout/title/_x.py index 9da0ff27cd..5f2cd8fb71 100644 --- a/packages/python/plotly/plotly/validators/layout/title/_x.py +++ b/packages/python/plotly/plotly/validators/layout/title/_x.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="x", parent_name="layout.title", **kwargs): edit_type=kwargs.pop("edit_type", "layoutstyle"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/title/_xanchor.py b/packages/python/plotly/plotly/validators/layout/title/_xanchor.py index ccc554ba99..f7f1f41c07 100644 --- a/packages/python/plotly/plotly/validators/layout/title/_xanchor.py +++ b/packages/python/plotly/plotly/validators/layout/title/_xanchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xanchor", parent_name="layout.title", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "layoutstyle"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/title/_xref.py b/packages/python/plotly/plotly/validators/layout/title/_xref.py index 3593223eb2..6e6a307af5 100644 --- a/packages/python/plotly/plotly/validators/layout/title/_xref.py +++ b/packages/python/plotly/plotly/validators/layout/title/_xref.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xref", parent_name="layout.title", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "layoutstyle"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["container", "paper"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/title/_y.py b/packages/python/plotly/plotly/validators/layout/title/_y.py index 078000729f..c27ca4241d 100644 --- a/packages/python/plotly/plotly/validators/layout/title/_y.py +++ b/packages/python/plotly/plotly/validators/layout/title/_y.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="y", parent_name="layout.title", **kwargs): edit_type=kwargs.pop("edit_type", "layoutstyle"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/title/_yanchor.py b/packages/python/plotly/plotly/validators/layout/title/_yanchor.py index 27da1e4015..f54073a2d5 100644 --- a/packages/python/plotly/plotly/validators/layout/title/_yanchor.py +++ b/packages/python/plotly/plotly/validators/layout/title/_yanchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="yanchor", parent_name="layout.title", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "layoutstyle"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/title/_yref.py b/packages/python/plotly/plotly/validators/layout/title/_yref.py index 38326049eb..5a2359e197 100644 --- a/packages/python/plotly/plotly/validators/layout/title/_yref.py +++ b/packages/python/plotly/plotly/validators/layout/title/_yref.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="yref", parent_name="layout.title", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "layoutstyle"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["container", "paper"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/title/font/_color.py b/packages/python/plotly/plotly/validators/layout/title/font/_color.py index 1c94b787bc..2ef2511f0a 100644 --- a/packages/python/plotly/plotly/validators/layout/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/layout/title/font/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="layout.title.font", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "layoutstyle"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/title/font/_family.py b/packages/python/plotly/plotly/validators/layout/title/font/_family.py index 2343353516..d5d01a7c4f 100644 --- a/packages/python/plotly/plotly/validators/layout/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/layout/title/font/_family.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="family", parent_name="layout.title.font", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "layoutstyle"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/title/font/_size.py b/packages/python/plotly/plotly/validators/layout/title/font/_size.py index 309fa569ad..db8c27b5e7 100644 --- a/packages/python/plotly/plotly/validators/layout/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/layout/title/font/_size.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="size", parent_name="layout.title.font", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "layoutstyle"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/title/pad/_b.py b/packages/python/plotly/plotly/validators/layout/title/pad/_b.py index e1f5b46450..8e2c2a9417 100644 --- a/packages/python/plotly/plotly/validators/layout/title/pad/_b.py +++ b/packages/python/plotly/plotly/validators/layout/title/pad/_b.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="b", parent_name="layout.title.pad", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "layoutstyle"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/title/pad/_l.py b/packages/python/plotly/plotly/validators/layout/title/pad/_l.py index c62ad2975c..e99b7704db 100644 --- a/packages/python/plotly/plotly/validators/layout/title/pad/_l.py +++ b/packages/python/plotly/plotly/validators/layout/title/pad/_l.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="l", parent_name="layout.title.pad", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "layoutstyle"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/title/pad/_r.py b/packages/python/plotly/plotly/validators/layout/title/pad/_r.py index d58a445622..bd998ff195 100644 --- a/packages/python/plotly/plotly/validators/layout/title/pad/_r.py +++ b/packages/python/plotly/plotly/validators/layout/title/pad/_r.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="r", parent_name="layout.title.pad", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "layoutstyle"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/title/pad/_t.py b/packages/python/plotly/plotly/validators/layout/title/pad/_t.py index 88b28a2a95..c8fe2203ef 100644 --- a/packages/python/plotly/plotly/validators/layout/title/pad/_t.py +++ b/packages/python/plotly/plotly/validators/layout/title/pad/_t.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="t", parent_name="layout.title.pad", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "layoutstyle"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/transition/_duration.py b/packages/python/plotly/plotly/validators/layout/transition/_duration.py index 6b2fd517ff..23333348c6 100644 --- a/packages/python/plotly/plotly/validators/layout/transition/_duration.py +++ b/packages/python/plotly/plotly/validators/layout/transition/_duration.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/transition/_easing.py b/packages/python/plotly/plotly/validators/layout/transition/_easing.py index 83f3797768..5b31de5d93 100644 --- a/packages/python/plotly/plotly/validators/layout/transition/_easing.py +++ b/packages/python/plotly/plotly/validators/layout/transition/_easing.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="easing", parent_name="layout.transition", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/transition/_ordering.py b/packages/python/plotly/plotly/validators/layout/transition/_ordering.py index 9616e49870..ab62e83c9a 100644 --- a/packages/python/plotly/plotly/validators/layout/transition/_ordering.py +++ b/packages/python/plotly/plotly/validators/layout/transition/_ordering.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["layout first", "traces first"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/uniformtext/_minsize.py b/packages/python/plotly/plotly/validators/layout/uniformtext/_minsize.py index b0579e97a4..defc6f5edc 100644 --- a/packages/python/plotly/plotly/validators/layout/uniformtext/_minsize.py +++ b/packages/python/plotly/plotly/validators/layout/uniformtext/_minsize.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/uniformtext/_mode.py b/packages/python/plotly/plotly/validators/layout/uniformtext/_mode.py index 7767f565da..a3fdc33261 100644 --- a/packages/python/plotly/plotly/validators/layout/uniformtext/_mode.py +++ b/packages/python/plotly/plotly/validators/layout/uniformtext/_mode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="mode", parent_name="layout.uniformtext", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [False, "hide", "show"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/_active.py b/packages/python/plotly/plotly/validators/layout/updatemenu/_active.py index c014ae2a79..d60d733ecd 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/_active.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/_active.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="active", parent_name="layout.updatemenu", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/_bgcolor.py b/packages/python/plotly/plotly/validators/layout/updatemenu/_bgcolor.py index 5b7690360c..2dcafa6301 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/_bordercolor.py b/packages/python/plotly/plotly/validators/layout/updatemenu/_bordercolor.py index fba4d31e5c..d2160808d9 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/_borderwidth.py b/packages/python/plotly/plotly/validators/layout/updatemenu/_borderwidth.py index 57214a4461..6c72ebe1c5 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/_direction.py b/packages/python/plotly/plotly/validators/layout/updatemenu/_direction.py index 491e3c831e..1387e7d1af 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/_direction.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/_direction.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["left", "right", "up", "down"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/_name.py b/packages/python/plotly/plotly/validators/layout/updatemenu/_name.py index c938420a25..c721bd1f1f 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/_name.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="layout.updatemenu", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/_showactive.py b/packages/python/plotly/plotly/validators/layout/updatemenu/_showactive.py index 9fa7e7db17..4b7fc8a856 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/_showactive.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/_showactive.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/_templateitemname.py b/packages/python/plotly/plotly/validators/layout/updatemenu/_templateitemname.py index 1916488f5e..a84ca1643b 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/_templateitemname.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/_type.py b/packages/python/plotly/plotly/validators/layout/updatemenu/_type.py index 46deb8fe38..321b034c98 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/_type.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/_type.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="type", parent_name="layout.updatemenu", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["dropdown", "buttons"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/_visible.py b/packages/python/plotly/plotly/validators/layout/updatemenu/_visible.py index c5dc1a77db..fc469d89bc 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/_visible.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/_visible.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/_x.py b/packages/python/plotly/plotly/validators/layout/updatemenu/_x.py index cf7aaacc88..68a495b81f 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/_x.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/_x.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="x", parent_name="layout.updatemenu", **kwargs): edit_type=kwargs.pop("edit_type", "arraydraw"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/_xanchor.py b/packages/python/plotly/plotly/validators/layout/updatemenu/_xanchor.py index 82cd8f04cc..6b637de95a 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/_xanchor.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/_y.py b/packages/python/plotly/plotly/validators/layout/updatemenu/_y.py index 2b7e3a64d7..58c89b2a68 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/_y.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/_y.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="y", parent_name="layout.updatemenu", **kwargs): edit_type=kwargs.pop("edit_type", "arraydraw"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/_yanchor.py b/packages/python/plotly/plotly/validators/layout/updatemenu/_yanchor.py index bb0674d9bd..537c04ea8b 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/_yanchor.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/button/_args.py b/packages/python/plotly/plotly/validators/layout/updatemenu/button/_args.py index 0cb1d109b4..eb06b92616 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/button/_args.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/button/_args.py @@ -18,6 +18,5 @@ def __init__( {"valType": "any", "editType": "arraydraw"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/button/_args2.py b/packages/python/plotly/plotly/validators/layout/updatemenu/button/_args2.py index e720084635..2d2c55b23a 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/button/_args2.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/button/_args2.py @@ -18,6 +18,5 @@ def __init__( {"valType": "any", "editType": "arraydraw"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/button/_execute.py b/packages/python/plotly/plotly/validators/layout/updatemenu/button/_execute.py index 063058dcd2..366181104d 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/button/_execute.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/button/_execute.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/button/_label.py b/packages/python/plotly/plotly/validators/layout/updatemenu/button/_label.py index 6d6d70c5e6..04b5b88fc9 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/button/_label.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/button/_label.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/button/_method.py b/packages/python/plotly/plotly/validators/layout/updatemenu/button/_method.py index e7b1d985ff..02af1bbe4c 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/button/_method.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/button/_method.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", ["restyle", "relayout", "animate", "update", "skip"] ), diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/button/_name.py b/packages/python/plotly/plotly/validators/layout/updatemenu/button/_name.py index c3d0f2ebfd..f0b7788d2c 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/button/_name.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/button/_name.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/button/_templateitemname.py b/packages/python/plotly/plotly/validators/layout/updatemenu/button/_templateitemname.py index fa92902b04..febe7e97bc 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/button/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/button/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/button/_visible.py b/packages/python/plotly/plotly/validators/layout/updatemenu/button/_visible.py index efaa4f5eb5..18c1796189 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/button/_visible.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/button/_visible.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/font/_color.py b/packages/python/plotly/plotly/validators/layout/updatemenu/font/_color.py index 6f5ce02931..5f8819dc95 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/font/_color.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/font/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/font/_family.py b/packages/python/plotly/plotly/validators/layout/updatemenu/font/_family.py index fb8d2a3241..c0a8263ca6 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/font/_family.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/font/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/font/_size.py b/packages/python/plotly/plotly/validators/layout/updatemenu/font/_size.py index 104e9c6693..47b91f9fd5 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/font/_size.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/pad/_b.py b/packages/python/plotly/plotly/validators/layout/updatemenu/pad/_b.py index 00962aad25..73fbfba8b0 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/pad/_b.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/pad/_b.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="b", parent_name="layout.updatemenu.pad", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/pad/_l.py b/packages/python/plotly/plotly/validators/layout/updatemenu/pad/_l.py index 7719e801fa..580093f5ea 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/pad/_l.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/pad/_l.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="l", parent_name="layout.updatemenu.pad", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/pad/_r.py b/packages/python/plotly/plotly/validators/layout/updatemenu/pad/_r.py index 75dd701b85..a2d2810af0 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/pad/_r.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/pad/_r.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="r", parent_name="layout.updatemenu.pad", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/updatemenu/pad/_t.py b/packages/python/plotly/plotly/validators/layout/updatemenu/pad/_t.py index 4befabbc5c..58fa615925 100644 --- a/packages/python/plotly/plotly/validators/layout/updatemenu/pad/_t.py +++ b/packages/python/plotly/plotly/validators/layout/updatemenu/pad/_t.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="t", parent_name="layout.updatemenu.pad", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "arraydraw"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/__init__.py b/packages/python/plotly/plotly/validators/layout/xaxis/__init__.py index 8e85a4467d..4be4537316 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/__init__.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/__init__.py @@ -20,6 +20,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._ticklabelmode import TicklabelmodeValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator @@ -106,6 +107,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._ticklabelmode.TicklabelmodeValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_anchor.py b/packages/python/plotly/plotly/validators/layout/xaxis/_anchor.py index d989e7d16d..184a3eeffa 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_anchor.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_anchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="anchor", parent_name="layout.xaxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_automargin.py b/packages/python/plotly/plotly/validators/layout/xaxis/_automargin.py index e05ad68ffe..252a120007 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_automargin.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_automargin.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="automargin", parent_name="layout.xaxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_autorange.py b/packages/python/plotly/plotly/validators/layout/xaxis/_autorange.py index aea49f1b10..f294cf8e62 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_autorange.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_autorange.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="autorange", parent_name="layout.xaxis", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "axrange"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "reversed"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_autotypenumbers.py b/packages/python/plotly/plotly/validators/layout/xaxis/_autotypenumbers.py index 39182aed19..4ddc44b5b4 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_autotypenumbers.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_autotypenumbers.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["convert types", "strict"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_calendar.py b/packages/python/plotly/plotly/validators/layout/xaxis/_calendar.py index 511f5f564f..d228dd0cd6 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_calendar.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_calendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="calendar", parent_name="layout.xaxis", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_categoryarray.py b/packages/python/plotly/plotly/validators/layout/xaxis/_categoryarray.py index 834987c877..07f9d8f1c4 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_categoryarray.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_categoryarray.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_categoryarraysrc.py b/packages/python/plotly/plotly/validators/layout/xaxis/_categoryarraysrc.py index 07bf7f8300..b47acebbcf 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_categoryarraysrc.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_categoryarraysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_categoryorder.py b/packages/python/plotly/plotly/validators/layout/xaxis/_categoryorder.py index fd5dff2446..0f206dd6ce 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_categoryorder.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_categoryorder.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_color.py b/packages/python/plotly/plotly/validators/layout/xaxis/_color.py index cd7516388e..0ee093c002 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_color.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="layout.xaxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_constrain.py b/packages/python/plotly/plotly/validators/layout/xaxis/_constrain.py index e6ee931b5e..054c60a7a5 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_constrain.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_constrain.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="constrain", parent_name="layout.xaxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["range", "domain"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_constraintoward.py b/packages/python/plotly/plotly/validators/layout/xaxis/_constraintoward.py index 3be5a13cdb..e53ed1a24f 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_constraintoward.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_constraintoward.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", ["left", "center", "right", "top", "middle", "bottom"] ), diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_dividercolor.py b/packages/python/plotly/plotly/validators/layout/xaxis/_dividercolor.py index d4607df814..9894276f3a 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_dividercolor.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_dividercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_dividerwidth.py b/packages/python/plotly/plotly/validators/layout/xaxis/_dividerwidth.py index 49707bfa41..011909e76f 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_dividerwidth.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_dividerwidth.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_domain.py b/packages/python/plotly/plotly/validators/layout/xaxis/_domain.py index d1be6edbdb..bb9a60b292 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_domain.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_domain.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="domain", parent_name="layout.xaxis", **kwargs): {"valType": "number", "min": 0, "max": 1, "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_dtick.py b/packages/python/plotly/plotly/validators/layout/xaxis/_dtick.py index ac6b2edeae..6762f3bb40 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_dtick.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_dtick.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="dtick", parent_name="layout.xaxis", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_exponentformat.py b/packages/python/plotly/plotly/validators/layout/xaxis/_exponentformat.py index 573f646c35..2ba7310595 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_exponentformat.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_fixedrange.py b/packages/python/plotly/plotly/validators/layout/xaxis/_fixedrange.py index 425e537a6b..acc3eab43e 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_fixedrange.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_fixedrange.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="fixedrange", parent_name="layout.xaxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_gridcolor.py b/packages/python/plotly/plotly/validators/layout/xaxis/_gridcolor.py index 445c18227d..40abc5ab24 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_gridcolor.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_gridcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="gridcolor", parent_name="layout.xaxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_gridwidth.py b/packages/python/plotly/plotly/validators/layout/xaxis/_gridwidth.py index 209a25b982..dce42b9cfe 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_gridwidth.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_gridwidth.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="gridwidth", parent_name="layout.xaxis", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_hoverformat.py b/packages/python/plotly/plotly/validators/layout/xaxis/_hoverformat.py index 023fa92730..08e2d93c0a 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_hoverformat.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_hoverformat.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverformat", parent_name="layout.xaxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_layer.py b/packages/python/plotly/plotly/validators/layout/xaxis/_layer.py index cfc6a9334d..568e2bf9b7 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_layer.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_layer.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="layer", parent_name="layout.xaxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["above traces", "below traces"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_linecolor.py b/packages/python/plotly/plotly/validators/layout/xaxis/_linecolor.py index f3ef5bc7bc..5499b85a71 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_linecolor.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_linecolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="linecolor", parent_name="layout.xaxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "layoutstyle"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_linewidth.py b/packages/python/plotly/plotly/validators/layout/xaxis/_linewidth.py index d82850d4ea..70fa708cf4 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_linewidth.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_linewidth.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="linewidth", parent_name="layout.xaxis", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks+layoutstyle"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_matches.py b/packages/python/plotly/plotly/validators/layout/xaxis/_matches.py index a416674df5..1f9d29f3fa 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_matches.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_matches.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="matches", parent_name="layout.xaxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_minexponent.py b/packages/python/plotly/plotly/validators/layout/xaxis/_minexponent.py index ad59db8f78..587bf53ce3 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_minexponent.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_minexponent.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="minexponent", parent_name="layout.xaxis", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_mirror.py b/packages/python/plotly/plotly/validators/layout/xaxis/_mirror.py index 475c3cc627..4a29de622d 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_mirror.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_mirror.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="mirror", parent_name="layout.xaxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks+layoutstyle"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", [True, "ticks", False, "all", "allticks"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_nticks.py b/packages/python/plotly/plotly/validators/layout/xaxis/_nticks.py index f030822ad8..5e09f3b534 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_nticks.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_nticks.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="nticks", parent_name="layout.xaxis", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_overlaying.py b/packages/python/plotly/plotly/validators/layout/xaxis/_overlaying.py index 09d54c4cc9..f64d5e61c9 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_overlaying.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_overlaying.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="overlaying", parent_name="layout.xaxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_position.py b/packages/python/plotly/plotly/validators/layout/xaxis/_position.py index 1c5c1b4e4d..fa98a7c723 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_position.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_position.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="position", parent_name="layout.xaxis", **kwargs) edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_range.py b/packages/python/plotly/plotly/validators/layout/xaxis/_range.py index edc557cd6c..c7c94ccbe6 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_range.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_range.py @@ -26,6 +26,5 @@ def __init__(self, plotly_name="range", parent_name="layout.xaxis", **kwargs): }, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_rangemode.py b/packages/python/plotly/plotly/validators/layout/xaxis/_rangemode.py index ec9ffa5216..3399c62458 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_rangemode.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_rangemode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="rangemode", parent_name="layout.xaxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["normal", "tozero", "nonnegative"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_scaleanchor.py b/packages/python/plotly/plotly/validators/layout/xaxis/_scaleanchor.py index bd05da9b3c..0ffc8523f9 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_scaleanchor.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_scaleanchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="scaleanchor", parent_name="layout.xaxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_scaleratio.py b/packages/python/plotly/plotly/validators/layout/xaxis/_scaleratio.py index 4fa93898c5..14c10dab8b 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_scaleratio.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_scaleratio.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="scaleratio", parent_name="layout.xaxis", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_separatethousands.py b/packages/python/plotly/plotly/validators/layout/xaxis/_separatethousands.py index 536e3a158d..9968acc838 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_separatethousands.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_showdividers.py b/packages/python/plotly/plotly/validators/layout/xaxis/_showdividers.py index 36f72dc53b..6f31e1e628 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_showdividers.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_showdividers.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_showexponent.py b/packages/python/plotly/plotly/validators/layout/xaxis/_showexponent.py index 61b162d8f7..701be36edd 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_showexponent.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_showgrid.py b/packages/python/plotly/plotly/validators/layout/xaxis/_showgrid.py index 085dc56975..4733b22472 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_showgrid.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_showgrid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showgrid", parent_name="layout.xaxis", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_showline.py b/packages/python/plotly/plotly/validators/layout/xaxis/_showline.py index 9fe7f1917c..66e91c0a85 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_showline.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_showline.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showline", parent_name="layout.xaxis", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks+layoutstyle"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_showspikes.py b/packages/python/plotly/plotly/validators/layout/xaxis/_showspikes.py index 76c481ec0f..d970c476f2 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_showspikes.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_showspikes.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showspikes", parent_name="layout.xaxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "modebar"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_showticklabels.py b/packages/python/plotly/plotly/validators/layout/xaxis/_showticklabels.py index 4c50ba4782..3bd5e46912 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_showticklabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_showtickprefix.py b/packages/python/plotly/plotly/validators/layout/xaxis/_showtickprefix.py index de2edb9751..c061bb4150 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_showtickprefix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_showticksuffix.py b/packages/python/plotly/plotly/validators/layout/xaxis/_showticksuffix.py index 329957edc5..9a06170133 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_showticksuffix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_side.py b/packages/python/plotly/plotly/validators/layout/xaxis/_side.py index 1069ab8897..db0ce7986b 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_side.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_side.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="side", parent_name="layout.xaxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["top", "bottom", "left", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_spikecolor.py b/packages/python/plotly/plotly/validators/layout/xaxis/_spikecolor.py index 84ee97aeb4..8a6d71cdc9 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_spikecolor.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_spikecolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="spikecolor", parent_name="layout.xaxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_spikedash.py b/packages/python/plotly/plotly/validators/layout/xaxis/_spikedash.py index f51e08d918..923a567498 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_spikedash.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_spikedash.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="spikedash", parent_name="layout.xaxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", ["solid", "dot", "dash", "longdash", "dashdot", "longdashdot"] ), diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_spikemode.py b/packages/python/plotly/plotly/validators/layout/xaxis/_spikemode.py index a2b697f13b..788d123896 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_spikemode.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_spikemode.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="spikemode", parent_name="layout.xaxis", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), flags=kwargs.pop("flags", ["toaxis", "across", "marker"]), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_spikesnap.py b/packages/python/plotly/plotly/validators/layout/xaxis/_spikesnap.py index 5bfde1f37f..fe8ef5567a 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_spikesnap.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_spikesnap.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="spikesnap", parent_name="layout.xaxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["data", "cursor", "hovered data"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_spikethickness.py b/packages/python/plotly/plotly/validators/layout/xaxis/_spikethickness.py index c0e9ab9bd3..3317e039db 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_spikethickness.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_spikethickness.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_tick0.py b/packages/python/plotly/plotly/validators/layout/xaxis/_tick0.py index ae3c717174..d1317aa4a5 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_tick0.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_tick0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="tick0", parent_name="layout.xaxis", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_tickangle.py b/packages/python/plotly/plotly/validators/layout/xaxis/_tickangle.py index 9fbd6308f6..894ef01243 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_tickangle.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_tickangle.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickangle", parent_name="layout.xaxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_tickcolor.py b/packages/python/plotly/plotly/validators/layout/xaxis/_tickcolor.py index 8f0af0926e..85cbe297e8 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_tickcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickcolor", parent_name="layout.xaxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_tickformat.py b/packages/python/plotly/plotly/validators/layout/xaxis/_tickformat.py index fc60c128a7..e047e5c963 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_tickformat.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_tickformat.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickformat", parent_name="layout.xaxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_ticklabelmode.py b/packages/python/plotly/plotly/validators/layout/xaxis/_ticklabelmode.py index dcd69c5ee4..a78d1e7daa 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_ticklabelmode.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_ticklabelmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["instant", "period"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/layout/xaxis/_ticklabeloverflow.py new file mode 100644 index 0000000000..a0d0cee25a --- /dev/null +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_ticklabeloverflow.py @@ -0,0 +1,14 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, plotly_name="ticklabeloverflow", parent_name="layout.xaxis", **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_ticklabelposition.py b/packages/python/plotly/plotly/validators/layout/xaxis/_ticklabelposition.py index 6188f16da0..320c317dfe 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_ticklabelposition.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_ticklen.py b/packages/python/plotly/plotly/validators/layout/xaxis/_ticklen.py index 6e26aece7d..ee137354b7 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_ticklen.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_ticklen.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ticklen", parent_name="layout.xaxis", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_tickmode.py b/packages/python/plotly/plotly/validators/layout/xaxis/_tickmode.py index a432a008af..3ef4cd3c7a 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_tickmode.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_tickmode.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="tickmode", parent_name="layout.xaxis", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_tickprefix.py b/packages/python/plotly/plotly/validators/layout/xaxis/_tickprefix.py index fb4f38f669..0d9ab6bcc3 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_tickprefix.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickprefix", parent_name="layout.xaxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_ticks.py b/packages/python/plotly/plotly/validators/layout/xaxis/_ticks.py index 4af5ef0496..c3d2776486 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_ticks.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_ticks.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ticks", parent_name="layout.xaxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_tickson.py b/packages/python/plotly/plotly/validators/layout/xaxis/_tickson.py index cf4038fda8..fcfd982090 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_tickson.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_tickson.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="tickson", parent_name="layout.xaxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["labels", "boundaries"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_ticksuffix.py b/packages/python/plotly/plotly/validators/layout/xaxis/_ticksuffix.py index 76d2348170..77541d9832 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_ticksuffix.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ticksuffix", parent_name="layout.xaxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_ticktext.py b/packages/python/plotly/plotly/validators/layout/xaxis/_ticktext.py index ce8757af51..0873ccff91 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_ticktext.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_ticktext.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ticktext", parent_name="layout.xaxis", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_ticktextsrc.py b/packages/python/plotly/plotly/validators/layout/xaxis/_ticktextsrc.py index 9cbfef5ae8..8629227777 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_ticktextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ticktextsrc", parent_name="layout.xaxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_tickvals.py b/packages/python/plotly/plotly/validators/layout/xaxis/_tickvals.py index cccdad534c..0a105c1aa1 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_tickvals.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_tickvals.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickvals", parent_name="layout.xaxis", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_tickvalssrc.py b/packages/python/plotly/plotly/validators/layout/xaxis/_tickvalssrc.py index 851b0a4887..f22daa791e 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_tickvalssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickvalssrc", parent_name="layout.xaxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_tickwidth.py b/packages/python/plotly/plotly/validators/layout/xaxis/_tickwidth.py index 8e7e23c159..d6cb6e3e92 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_tickwidth.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="tickwidth", parent_name="layout.xaxis", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_type.py b/packages/python/plotly/plotly/validators/layout/xaxis/_type.py index eb57d026a7..c57ab039af 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_type.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_type.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="type", parent_name="layout.xaxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", ["-", "linear", "log", "date", "category", "multicategory"] ), diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_uirevision.py b/packages/python/plotly/plotly/validators/layout/xaxis/_uirevision.py index 16457370d6..d40b29a47f 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_uirevision.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="layout.xaxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_visible.py b/packages/python/plotly/plotly/validators/layout/xaxis/_visible.py index 1454b8276c..fd6a1549e7 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_visible.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_visible.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="visible", parent_name="layout.xaxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_zeroline.py b/packages/python/plotly/plotly/validators/layout/xaxis/_zeroline.py index fb8c829df7..157087f7ec 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_zeroline.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_zeroline.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="zeroline", parent_name="layout.xaxis", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_zerolinecolor.py b/packages/python/plotly/plotly/validators/layout/xaxis/_zerolinecolor.py index 5ad25d6932..1b5ccb0d81 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_zerolinecolor.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_zerolinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/_zerolinewidth.py b/packages/python/plotly/plotly/validators/layout/xaxis/_zerolinewidth.py index 4d78a8fbd9..45e0addae3 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/_zerolinewidth.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/_zerolinewidth.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_bounds.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_bounds.py index 365d1c098e..9d64d76678 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_bounds.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_bounds.py @@ -16,6 +16,5 @@ def __init__( {"valType": "any", "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_dvalue.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_dvalue.py index 34f45cbc29..ea9e67a990 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_dvalue.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_dvalue.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_enabled.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_enabled.py index 1674ddc8eb..9752a9c588 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_enabled.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_enabled.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_name.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_name.py index 3f1589b41b..e39bd8718f 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_name.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_name.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_pattern.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_pattern.py index a87358fbe7..8cb64a32c8 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_pattern.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_pattern.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["day of week", "hour", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_templateitemname.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_templateitemname.py index 70c20172e9..3c1fbd1718 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_values.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_values.py index d69f68d391..0e8524137f 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_values.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangebreak/_values.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), free_length=kwargs.pop("free_length", True), items=kwargs.pop("items", {"valType": "any", "editType": "calc"}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_activecolor.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_activecolor.py index 054f4ecb5c..2ddfd00b7c 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_activecolor.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_activecolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_bgcolor.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_bgcolor.py index 7b1f6ac300..92d713a2c4 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_bordercolor.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_bordercolor.py index cd92d2b9df..7bf63ce5ac 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_bordercolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_borderwidth.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_borderwidth.py index f130aa7921..ac434de8f6 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_borderwidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_visible.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_visible.py index 3e3c7dcacf..f8567cb57c 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_visible.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_visible.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_x.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_x.py index d8d0b3892f..25fb1edcd0 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_x.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_x.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_xanchor.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_xanchor.py index 9d0fce3021..efb0b60484 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_xanchor.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_y.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_y.py index 25077c4fc9..e900f99377 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_y.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_y.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_yanchor.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_yanchor.py index 279a8b19dc..b202544815 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_yanchor.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_count.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_count.py index 847724bd7c..1622556fab 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_count.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_count.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_label.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_label.py index 2725569316..06fe594da9 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_label.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_label.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_name.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_name.py index c7d96fa327..c77113bb7d 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_name.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_step.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_step.py index a79b78fea1..35866b7ce9 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_step.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_step.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", ["month", "year", "day", "hour", "minute", "second", "all"] ), diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_stepmode.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_stepmode.py index 9a1835646b..55f5e4eafb 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_stepmode.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_stepmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["backward", "todate"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_templateitemname.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_templateitemname.py index 6b34af5efb..245cd2a709 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_visible.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_visible.py index 6317cc7e2a..16c68f4a31 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_visible.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/button/_visible.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/font/_color.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/font/_color.py index 1a56f53a60..44153d625c 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/font/_color.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/font/_family.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/font/_family.py index 1ca43d2664..521fe4ebb6 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/font/_family.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/font/_size.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/font/_size.py index d09b975cda..147fdc2d65 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/font/_size.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeselector/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_autorange.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_autorange.py index ad082b51c7..47c3dcaa5b 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_autorange.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_autorange.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_bgcolor.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_bgcolor.py index 868d73791a..ba60daaf19 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_bordercolor.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_bordercolor.py index 0f709a964c..46c9716465 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_bordercolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_borderwidth.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_borderwidth.py index 71bbbfc49c..eae9417410 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_borderwidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_range.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_range.py index bfd095a5e1..d537dc80fc 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_range.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_range.py @@ -25,6 +25,5 @@ def __init__( }, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_thickness.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_thickness.py index e928988710..a017074bfb 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_thickness.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_thickness.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_visible.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_visible.py index 1142eae453..9c54183a5f 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_visible.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/_visible.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/yaxis/_range.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/yaxis/_range.py index 58855110aa..9e8667b92f 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/yaxis/_range.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/yaxis/_range.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "plot"}, ], ), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/yaxis/_rangemode.py b/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/yaxis/_rangemode.py index 7a048aca7f..961709d031 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/yaxis/_rangemode.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/rangeslider/yaxis/_rangemode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["auto", "fixed", "match"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/tickfont/_color.py b/packages/python/plotly/plotly/validators/layout/xaxis/tickfont/_color.py index 243148a98b..c3f1d43f9b 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/tickfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/tickfont/_family.py b/packages/python/plotly/plotly/validators/layout/xaxis/tickfont/_family.py index fbd54fae28..b0b943c88e 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/tickfont/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/tickfont/_size.py b/packages/python/plotly/plotly/validators/layout/xaxis/tickfont/_size.py index 4a21de942f..003e996196 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/tickfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/layout/xaxis/tickformatstop/_dtickrange.py index b8147603ff..3342af5cdc 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "ticks"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/layout/xaxis/tickformatstop/_enabled.py index fe01c4c5a6..413af32aa8 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/tickformatstop/_enabled.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/layout/xaxis/tickformatstop/_name.py index df8018e77c..414749a182 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/tickformatstop/_name.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/layout/xaxis/tickformatstop/_templateitemname.py index ed0b4bf6ab..57ab168f94 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/layout/xaxis/tickformatstop/_value.py index 8097405d20..97ba4668ca 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/tickformatstop/_value.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/title/_standoff.py b/packages/python/plotly/plotly/validators/layout/xaxis/title/_standoff.py index de321b5391..a31308c90b 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/title/_standoff.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/title/_standoff.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/title/_text.py b/packages/python/plotly/plotly/validators/layout/xaxis/title/_text.py index 83076afc95..0ea6025c4a 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/title/_text.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/title/_text.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="text", parent_name="layout.xaxis.title", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/title/font/_color.py b/packages/python/plotly/plotly/validators/layout/xaxis/title/font/_color.py index 6d869b165d..dd6a297181 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/title/font/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/title/font/_family.py b/packages/python/plotly/plotly/validators/layout/xaxis/title/font/_family.py index 9104f56ad7..bfbcfd3a6f 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/title/font/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/xaxis/title/font/_size.py b/packages/python/plotly/plotly/validators/layout/xaxis/title/font/_size.py index 5e53d6c258..182c178371 100644 --- a/packages/python/plotly/plotly/validators/layout/xaxis/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/layout/xaxis/title/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/__init__.py b/packages/python/plotly/plotly/validators/layout/yaxis/__init__.py index 74188eb70f..d5225e2b52 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/__init__.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/__init__.py @@ -20,6 +20,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._ticklabelmode import TicklabelmodeValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator @@ -104,6 +105,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._ticklabelmode.TicklabelmodeValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_anchor.py b/packages/python/plotly/plotly/validators/layout/yaxis/_anchor.py index 196077ec16..056f53c99c 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_anchor.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_anchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="anchor", parent_name="layout.yaxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_automargin.py b/packages/python/plotly/plotly/validators/layout/yaxis/_automargin.py index 2f8f624770..e63ceec92e 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_automargin.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_automargin.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="automargin", parent_name="layout.yaxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_autorange.py b/packages/python/plotly/plotly/validators/layout/yaxis/_autorange.py index 1aaaee0aad..c679f210ff 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_autorange.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_autorange.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="autorange", parent_name="layout.yaxis", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "axrange"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "reversed"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_autotypenumbers.py b/packages/python/plotly/plotly/validators/layout/yaxis/_autotypenumbers.py index 4114287079..399e1f76fe 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_autotypenumbers.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_autotypenumbers.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["convert types", "strict"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_calendar.py b/packages/python/plotly/plotly/validators/layout/yaxis/_calendar.py index 08de70d851..dd00717162 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_calendar.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_calendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="calendar", parent_name="layout.yaxis", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_categoryarray.py b/packages/python/plotly/plotly/validators/layout/yaxis/_categoryarray.py index cd0cc04e0d..325040171d 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_categoryarray.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_categoryarray.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_categoryarraysrc.py b/packages/python/plotly/plotly/validators/layout/yaxis/_categoryarraysrc.py index 3a30faa2f2..3174601fdc 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_categoryarraysrc.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_categoryarraysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_categoryorder.py b/packages/python/plotly/plotly/validators/layout/yaxis/_categoryorder.py index e27d7a1e00..bfa2b3596f 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_categoryorder.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_categoryorder.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_color.py b/packages/python/plotly/plotly/validators/layout/yaxis/_color.py index 20c999d11a..28337acfde 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_color.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="layout.yaxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_constrain.py b/packages/python/plotly/plotly/validators/layout/yaxis/_constrain.py index 58f415e83a..f248be3eb0 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_constrain.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_constrain.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="constrain", parent_name="layout.yaxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["range", "domain"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_constraintoward.py b/packages/python/plotly/plotly/validators/layout/yaxis/_constraintoward.py index 38c5591f4d..50ac270843 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_constraintoward.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_constraintoward.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", ["left", "center", "right", "top", "middle", "bottom"] ), diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_dividercolor.py b/packages/python/plotly/plotly/validators/layout/yaxis/_dividercolor.py index a4bb79dc6f..5fae2604a5 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_dividercolor.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_dividercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_dividerwidth.py b/packages/python/plotly/plotly/validators/layout/yaxis/_dividerwidth.py index 8e554e5cfd..7a3b450c75 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_dividerwidth.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_dividerwidth.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_domain.py b/packages/python/plotly/plotly/validators/layout/yaxis/_domain.py index 511ec578d2..d584a6bac3 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_domain.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_domain.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="domain", parent_name="layout.yaxis", **kwargs): {"valType": "number", "min": 0, "max": 1, "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_dtick.py b/packages/python/plotly/plotly/validators/layout/yaxis/_dtick.py index d6a88791bd..ade41e395a 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_dtick.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_dtick.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="dtick", parent_name="layout.yaxis", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_exponentformat.py b/packages/python/plotly/plotly/validators/layout/yaxis/_exponentformat.py index 4b99b69217..df699c8f31 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_exponentformat.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_fixedrange.py b/packages/python/plotly/plotly/validators/layout/yaxis/_fixedrange.py index 81e1aea527..01806501e6 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_fixedrange.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_fixedrange.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="fixedrange", parent_name="layout.yaxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_gridcolor.py b/packages/python/plotly/plotly/validators/layout/yaxis/_gridcolor.py index c5c1f76663..931624d12e 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_gridcolor.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_gridcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="gridcolor", parent_name="layout.yaxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_gridwidth.py b/packages/python/plotly/plotly/validators/layout/yaxis/_gridwidth.py index a31fab9a43..75782ddff5 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_gridwidth.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_gridwidth.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="gridwidth", parent_name="layout.yaxis", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_hoverformat.py b/packages/python/plotly/plotly/validators/layout/yaxis/_hoverformat.py index af0a58ac7c..85b83e6040 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_hoverformat.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_hoverformat.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverformat", parent_name="layout.yaxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_layer.py b/packages/python/plotly/plotly/validators/layout/yaxis/_layer.py index 33441a69ae..433884b727 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_layer.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_layer.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="layer", parent_name="layout.yaxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["above traces", "below traces"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_linecolor.py b/packages/python/plotly/plotly/validators/layout/yaxis/_linecolor.py index 7f93d055a9..23e775f414 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_linecolor.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_linecolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="linecolor", parent_name="layout.yaxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "layoutstyle"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_linewidth.py b/packages/python/plotly/plotly/validators/layout/yaxis/_linewidth.py index 4dabc5faf5..aef34dd5cc 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_linewidth.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_linewidth.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="linewidth", parent_name="layout.yaxis", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks+layoutstyle"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_matches.py b/packages/python/plotly/plotly/validators/layout/yaxis/_matches.py index f983d7022d..3582047094 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_matches.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_matches.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="matches", parent_name="layout.yaxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_minexponent.py b/packages/python/plotly/plotly/validators/layout/yaxis/_minexponent.py index c2b40caecc..b35005a806 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_minexponent.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_minexponent.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="minexponent", parent_name="layout.yaxis", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_mirror.py b/packages/python/plotly/plotly/validators/layout/yaxis/_mirror.py index efb7b074f7..7386e229a5 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_mirror.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_mirror.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="mirror", parent_name="layout.yaxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks+layoutstyle"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", [True, "ticks", False, "all", "allticks"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_nticks.py b/packages/python/plotly/plotly/validators/layout/yaxis/_nticks.py index a3e6b1161a..2976d1e94f 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_nticks.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_nticks.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="nticks", parent_name="layout.yaxis", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_overlaying.py b/packages/python/plotly/plotly/validators/layout/yaxis/_overlaying.py index a9a4d9508c..adde8acf30 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_overlaying.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_overlaying.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="overlaying", parent_name="layout.yaxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_position.py b/packages/python/plotly/plotly/validators/layout/yaxis/_position.py index 047ec45c49..8fac327a2c 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_position.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_position.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="position", parent_name="layout.yaxis", **kwargs) edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_range.py b/packages/python/plotly/plotly/validators/layout/yaxis/_range.py index 22505ff63d..80a541ffae 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_range.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_range.py @@ -26,6 +26,5 @@ def __init__(self, plotly_name="range", parent_name="layout.yaxis", **kwargs): }, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_rangemode.py b/packages/python/plotly/plotly/validators/layout/yaxis/_rangemode.py index 0b9c1eb23e..f7605fd150 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_rangemode.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_rangemode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="rangemode", parent_name="layout.yaxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["normal", "tozero", "nonnegative"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_scaleanchor.py b/packages/python/plotly/plotly/validators/layout/yaxis/_scaleanchor.py index 7e8e527066..8f33c7b10e 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_scaleanchor.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_scaleanchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="scaleanchor", parent_name="layout.yaxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_scaleratio.py b/packages/python/plotly/plotly/validators/layout/yaxis/_scaleratio.py index 5ba493c328..9501ca721a 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_scaleratio.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_scaleratio.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="scaleratio", parent_name="layout.yaxis", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_separatethousands.py b/packages/python/plotly/plotly/validators/layout/yaxis/_separatethousands.py index 6f1177adfc..915272857a 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_separatethousands.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_showdividers.py b/packages/python/plotly/plotly/validators/layout/yaxis/_showdividers.py index ac4a442bab..9a2858dec4 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_showdividers.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_showdividers.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_showexponent.py b/packages/python/plotly/plotly/validators/layout/yaxis/_showexponent.py index 9c8ab0ccca..bd5f8ba76a 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_showexponent.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_showgrid.py b/packages/python/plotly/plotly/validators/layout/yaxis/_showgrid.py index 74c28cfa76..1253b2e4e5 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_showgrid.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_showgrid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showgrid", parent_name="layout.yaxis", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_showline.py b/packages/python/plotly/plotly/validators/layout/yaxis/_showline.py index 36c17808b3..9851026f97 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_showline.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_showline.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showline", parent_name="layout.yaxis", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks+layoutstyle"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_showspikes.py b/packages/python/plotly/plotly/validators/layout/yaxis/_showspikes.py index f8d091b961..a3767e84cc 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_showspikes.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_showspikes.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showspikes", parent_name="layout.yaxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "modebar"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_showticklabels.py b/packages/python/plotly/plotly/validators/layout/yaxis/_showticklabels.py index 341a10f0f0..3a2806d4c0 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_showticklabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_showtickprefix.py b/packages/python/plotly/plotly/validators/layout/yaxis/_showtickprefix.py index 9a46769325..a0f191f872 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_showtickprefix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_showticksuffix.py b/packages/python/plotly/plotly/validators/layout/yaxis/_showticksuffix.py index 731813f190..fe27afedd5 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_showticksuffix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_side.py b/packages/python/plotly/plotly/validators/layout/yaxis/_side.py index 14ed24eaef..e3b5c67bfd 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_side.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_side.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="side", parent_name="layout.yaxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["top", "bottom", "left", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_spikecolor.py b/packages/python/plotly/plotly/validators/layout/yaxis/_spikecolor.py index fce8a9bfcf..d8a059f03b 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_spikecolor.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_spikecolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="spikecolor", parent_name="layout.yaxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_spikedash.py b/packages/python/plotly/plotly/validators/layout/yaxis/_spikedash.py index 5e6b478118..718e929b1f 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_spikedash.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_spikedash.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="spikedash", parent_name="layout.yaxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", ["solid", "dot", "dash", "longdash", "dashdot", "longdashdot"] ), diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_spikemode.py b/packages/python/plotly/plotly/validators/layout/yaxis/_spikemode.py index ca244e048b..c97909b4a2 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_spikemode.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_spikemode.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="spikemode", parent_name="layout.yaxis", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), flags=kwargs.pop("flags", ["toaxis", "across", "marker"]), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_spikesnap.py b/packages/python/plotly/plotly/validators/layout/yaxis/_spikesnap.py index f8d5ccab6f..1dd66a9bc5 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_spikesnap.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_spikesnap.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="spikesnap", parent_name="layout.yaxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["data", "cursor", "hovered data"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_spikethickness.py b/packages/python/plotly/plotly/validators/layout/yaxis/_spikethickness.py index 5336990d78..e077569742 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_spikethickness.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_spikethickness.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_tick0.py b/packages/python/plotly/plotly/validators/layout/yaxis/_tick0.py index 6a9674e675..4877bab7af 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_tick0.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_tick0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="tick0", parent_name="layout.yaxis", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_tickangle.py b/packages/python/plotly/plotly/validators/layout/yaxis/_tickangle.py index a94eea6313..06110360e4 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_tickangle.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_tickangle.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickangle", parent_name="layout.yaxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_tickcolor.py b/packages/python/plotly/plotly/validators/layout/yaxis/_tickcolor.py index 8739e26efe..101c846953 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_tickcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickcolor", parent_name="layout.yaxis", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_tickformat.py b/packages/python/plotly/plotly/validators/layout/yaxis/_tickformat.py index 43b7082811..2065229f55 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_tickformat.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_tickformat.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickformat", parent_name="layout.yaxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_ticklabelmode.py b/packages/python/plotly/plotly/validators/layout/yaxis/_ticklabelmode.py index 226db5c8fc..f28e3648fd 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_ticklabelmode.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_ticklabelmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["instant", "period"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/layout/yaxis/_ticklabeloverflow.py new file mode 100644 index 0000000000..443a3fdc9b --- /dev/null +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_ticklabeloverflow.py @@ -0,0 +1,14 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, plotly_name="ticklabeloverflow", parent_name="layout.yaxis", **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_ticklabelposition.py b/packages/python/plotly/plotly/validators/layout/yaxis/_ticklabelposition.py index 69250c12bc..3148f16b6f 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_ticklabelposition.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_ticklen.py b/packages/python/plotly/plotly/validators/layout/yaxis/_ticklen.py index e914195ff6..c98b95fa9c 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_ticklen.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_ticklen.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ticklen", parent_name="layout.yaxis", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_tickmode.py b/packages/python/plotly/plotly/validators/layout/yaxis/_tickmode.py index 2e146cc0df..6f46059f6c 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_tickmode.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_tickmode.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="tickmode", parent_name="layout.yaxis", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_tickprefix.py b/packages/python/plotly/plotly/validators/layout/yaxis/_tickprefix.py index 658c1a188e..8c3b1800f1 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_tickprefix.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickprefix", parent_name="layout.yaxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_ticks.py b/packages/python/plotly/plotly/validators/layout/yaxis/_ticks.py index 285e3bc1d3..a9003ba6ff 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_ticks.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_ticks.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ticks", parent_name="layout.yaxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_tickson.py b/packages/python/plotly/plotly/validators/layout/yaxis/_tickson.py index 7ac49d07c3..3dfbcd6e6c 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_tickson.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_tickson.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="tickson", parent_name="layout.yaxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["labels", "boundaries"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_ticksuffix.py b/packages/python/plotly/plotly/validators/layout/yaxis/_ticksuffix.py index d1fb695b20..0361f79992 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_ticksuffix.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ticksuffix", parent_name="layout.yaxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_ticktext.py b/packages/python/plotly/plotly/validators/layout/yaxis/_ticktext.py index 4d965f4754..31496283b0 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_ticktext.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_ticktext.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ticktext", parent_name="layout.yaxis", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_ticktextsrc.py b/packages/python/plotly/plotly/validators/layout/yaxis/_ticktextsrc.py index 8673853934..04ea4be92e 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_ticktextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ticktextsrc", parent_name="layout.yaxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_tickvals.py b/packages/python/plotly/plotly/validators/layout/yaxis/_tickvals.py index 749436119a..42d193c27d 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_tickvals.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_tickvals.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickvals", parent_name="layout.yaxis", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_tickvalssrc.py b/packages/python/plotly/plotly/validators/layout/yaxis/_tickvalssrc.py index 0afe3ad669..c5a15c8d57 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_tickvalssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickvalssrc", parent_name="layout.yaxis", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_tickwidth.py b/packages/python/plotly/plotly/validators/layout/yaxis/_tickwidth.py index d119dbadb3..b604f17ec8 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_tickwidth.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="tickwidth", parent_name="layout.yaxis", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_type.py b/packages/python/plotly/plotly/validators/layout/yaxis/_type.py index 33d2c29c50..3c3df5411f 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_type.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_type.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="type", parent_name="layout.yaxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", ["-", "linear", "log", "date", "category", "multicategory"] ), diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_uirevision.py b/packages/python/plotly/plotly/validators/layout/yaxis/_uirevision.py index f7bc727867..1948a0c0fa 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_uirevision.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="layout.yaxis", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_visible.py b/packages/python/plotly/plotly/validators/layout/yaxis/_visible.py index 4f845a2171..63f28eec18 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_visible.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_visible.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="visible", parent_name="layout.yaxis", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_zeroline.py b/packages/python/plotly/plotly/validators/layout/yaxis/_zeroline.py index 5196a73499..0abfa0a4a2 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_zeroline.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_zeroline.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="zeroline", parent_name="layout.yaxis", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_zerolinecolor.py b/packages/python/plotly/plotly/validators/layout/yaxis/_zerolinecolor.py index 93c89f18a6..b68b235c6a 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_zerolinecolor.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_zerolinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/_zerolinewidth.py b/packages/python/plotly/plotly/validators/layout/yaxis/_zerolinewidth.py index a9c5c9ea0a..233055cd49 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/_zerolinewidth.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/_zerolinewidth.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_bounds.py b/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_bounds.py index d2b0702597..10f886cb1e 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_bounds.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_bounds.py @@ -16,6 +16,5 @@ def __init__( {"valType": "any", "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_dvalue.py b/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_dvalue.py index d5082b52b1..598687bc7f 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_dvalue.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_dvalue.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_enabled.py b/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_enabled.py index 2ad9c4ee40..010cc31f5d 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_enabled.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_enabled.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_name.py b/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_name.py index 9b6f5f3a94..7d055b3cd1 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_name.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_name.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_pattern.py b/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_pattern.py index 3eb05ffc29..3de6acaf92 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_pattern.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_pattern.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["day of week", "hour", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_templateitemname.py b/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_templateitemname.py index c5d1657610..31fabbed84 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_values.py b/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_values.py index 7411825431..5305a5d419 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_values.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/rangebreak/_values.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), free_length=kwargs.pop("free_length", True), items=kwargs.pop("items", {"valType": "any", "editType": "calc"}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/tickfont/_color.py b/packages/python/plotly/plotly/validators/layout/yaxis/tickfont/_color.py index 0aafe00b99..9b812c57e5 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/tickfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/tickfont/_family.py b/packages/python/plotly/plotly/validators/layout/yaxis/tickfont/_family.py index 3b77a28d00..46f3fa9f9a 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/tickfont/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/tickfont/_size.py b/packages/python/plotly/plotly/validators/layout/yaxis/tickfont/_size.py index 8565798a9d..476c348e7b 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/tickfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/layout/yaxis/tickformatstop/_dtickrange.py index 50ea34a582..0f9ad967b8 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "ticks"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/layout/yaxis/tickformatstop/_enabled.py index db92e4324f..1971fcddda 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/tickformatstop/_enabled.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/layout/yaxis/tickformatstop/_name.py index a9a5048624..5f44e8b532 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/tickformatstop/_name.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/layout/yaxis/tickformatstop/_templateitemname.py index e101c7e3c7..373d952382 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/layout/yaxis/tickformatstop/_value.py index 4c98c1a1b3..0369d35a11 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/tickformatstop/_value.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/title/_standoff.py b/packages/python/plotly/plotly/validators/layout/yaxis/title/_standoff.py index 12aa29d30e..a4ff3fa4ca 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/title/_standoff.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/title/_standoff.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/title/_text.py b/packages/python/plotly/plotly/validators/layout/yaxis/title/_text.py index a1776133bc..472eb207e3 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/title/_text.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/title/_text.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="text", parent_name="layout.yaxis.title", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/title/font/_color.py b/packages/python/plotly/plotly/validators/layout/yaxis/title/font/_color.py index 72daecc4bf..72b8309cd3 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/title/font/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/title/font/_family.py b/packages/python/plotly/plotly/validators/layout/yaxis/title/font/_family.py index 48e2b59483..de3e51d4c4 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/title/font/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/layout/yaxis/title/font/_size.py b/packages/python/plotly/plotly/validators/layout/yaxis/title/font/_size.py index f460f9d404..bb0df3db39 100644 --- a/packages/python/plotly/plotly/validators/layout/yaxis/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/layout/yaxis/title/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "ticks"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/__init__.py b/packages/python/plotly/plotly/validators/mesh3d/__init__.py index 78dab8c605..cf8d62cdce 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/__init__.py +++ b/packages/python/plotly/plotly/validators/mesh3d/__init__.py @@ -2,12 +2,15 @@ if sys.version_info < (3, 7): from ._zsrc import ZsrcValidator + from ._zhoverformat import ZhoverformatValidator from ._zcalendar import ZcalendarValidator from ._z import ZValidator from ._ysrc import YsrcValidator + from ._yhoverformat import YhoverformatValidator from ._ycalendar import YcalendarValidator from ._y import YValidator from ._xsrc import XsrcValidator + from ._xhoverformat import XhoverformatValidator from ._xcalendar import XcalendarValidator from ._x import XValidator from ._visible import VisibleValidator @@ -72,12 +75,15 @@ [], [ "._zsrc.ZsrcValidator", + "._zhoverformat.ZhoverformatValidator", "._zcalendar.ZcalendarValidator", "._z.ZValidator", "._ysrc.YsrcValidator", + "._yhoverformat.YhoverformatValidator", "._ycalendar.YcalendarValidator", "._y.YValidator", "._xsrc.XsrcValidator", + "._xhoverformat.XhoverformatValidator", "._xcalendar.XcalendarValidator", "._x.XValidator", "._visible.VisibleValidator", diff --git a/packages/python/plotly/plotly/validators/mesh3d/_alphahull.py b/packages/python/plotly/plotly/validators/mesh3d/_alphahull.py index 78899a3439..a9dbf06d20 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_alphahull.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_alphahull.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="alphahull", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_autocolorscale.py b/packages/python/plotly/plotly/validators/mesh3d/_autocolorscale.py index d812fac1d8..d281b7b6d6 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_autocolorscale.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="autocolorscale", parent_name="mesh3d", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_cauto.py b/packages/python/plotly/plotly/validators/mesh3d/_cauto.py index abed64c371..7971518622 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_cauto.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_cauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cauto", parent_name="mesh3d", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_cmax.py b/packages/python/plotly/plotly/validators/mesh3d/_cmax.py index 9bb897523e..31660788e7 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_cmax.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="mesh3d", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_cmid.py b/packages/python/plotly/plotly/validators/mesh3d/_cmid.py index 2565184c1b..85a690cfaf 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_cmid.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="mesh3d", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_cmin.py b/packages/python/plotly/plotly/validators/mesh3d/_cmin.py index c4c3951a1f..63c81dd20e 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_cmin.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="mesh3d", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_color.py b/packages/python/plotly/plotly/validators/mesh3d/_color.py index a1d72ada00..a037129b3a 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_color.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_color.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="color", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop("colorscale_path", "mesh3d.colorscale"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_coloraxis.py b/packages/python/plotly/plotly/validators/mesh3d/_coloraxis.py index 41a3ff5142..5f4fa60df6 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_coloraxis.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="coloraxis", parent_name="mesh3d", **kwargs): dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_colorbar.py b/packages/python/plotly/plotly/validators/mesh3d/_colorbar.py index 613c2599c8..e085dbf3ad 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_colorbar.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_colorbar.py @@ -147,6 +147,12 @@ def __init__(self, plotly_name="colorbar", parent_name="mesh3d", **kwargs): a.mesh3d.colorbar.tickformatstopdefaults), sets the default property values to use for elements of mesh3d.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/mesh3d/_colorscale.py b/packages/python/plotly/plotly/validators/mesh3d/_colorscale.py index bed88fbfd3..7aa7f86eac 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_colorscale.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_colorscale.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="colorscale", parent_name="mesh3d", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_customdata.py b/packages/python/plotly/plotly/validators/mesh3d/_customdata.py index 644bd49d2a..40f0dc92a6 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_customdata.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_customdatasrc.py b/packages/python/plotly/plotly/validators/mesh3d/_customdatasrc.py index 8b1814280b..6657e22aa6 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_delaunayaxis.py b/packages/python/plotly/plotly/validators/mesh3d/_delaunayaxis.py index 002f0bfb2f..c0f748e641 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_delaunayaxis.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_delaunayaxis.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="delaunayaxis", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["x", "y", "z"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_facecolor.py b/packages/python/plotly/plotly/validators/mesh3d/_facecolor.py index 9e75ff8961..ead4e1a6cb 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_facecolor.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_facecolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="facecolor", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_facecolorsrc.py b/packages/python/plotly/plotly/validators/mesh3d/_facecolorsrc.py index aa68207e51..7c2dfa12f3 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_facecolorsrc.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_facecolorsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="facecolorsrc", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_flatshading.py b/packages/python/plotly/plotly/validators/mesh3d/_flatshading.py index 807f7b063f..52bf0288fc 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_flatshading.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_flatshading.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="flatshading", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_hoverinfo.py b/packages/python/plotly/plotly/validators/mesh3d/_hoverinfo.py index 5d661dd47f..0c28a74bee 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="mesh3d", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["x", "y", "z", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/mesh3d/_hoverinfosrc.py index 23e4598df6..aae8fde963 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_hovertemplate.py b/packages/python/plotly/plotly/validators/mesh3d/_hovertemplate.py index 36a917c7cd..f41013ff36 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="mesh3d", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/mesh3d/_hovertemplatesrc.py index 4b6dd49aa4..893e21f0a1 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_hovertemplatesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertemplatesrc", parent_name="mesh3d", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_hovertext.py b/packages/python/plotly/plotly/validators/mesh3d/_hovertext.py index 64dc7b06f7..6c697a624f 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_hovertext.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="mesh3d", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_hovertextsrc.py b/packages/python/plotly/plotly/validators/mesh3d/_hovertextsrc.py index b77606013a..c4963944e0 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_i.py b/packages/python/plotly/plotly/validators/mesh3d/_i.py index 13ba2be924..ae955231ff 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_i.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_i.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="i", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_ids.py b/packages/python/plotly/plotly/validators/mesh3d/_ids.py index e97a375192..9b35ce4c43 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_ids.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_idssrc.py b/packages/python/plotly/plotly/validators/mesh3d/_idssrc.py index 7e808cc1bd..16b08138b4 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_idssrc.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_intensity.py b/packages/python/plotly/plotly/validators/mesh3d/_intensity.py index b09156f607..401fae75dc 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_intensity.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_intensity.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="intensity", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_intensitymode.py b/packages/python/plotly/plotly/validators/mesh3d/_intensitymode.py index a4f39fd158..57ccccf0af 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_intensitymode.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_intensitymode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="intensitymode", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["vertex", "cell"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_intensitysrc.py b/packages/python/plotly/plotly/validators/mesh3d/_intensitysrc.py index c695584f61..6481060e36 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_intensitysrc.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_intensitysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="intensitysrc", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_isrc.py b/packages/python/plotly/plotly/validators/mesh3d/_isrc.py index cb5d208335..19a38a70d4 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_isrc.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_isrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="isrc", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_j.py b/packages/python/plotly/plotly/validators/mesh3d/_j.py index 99963db6dc..bb882ac258 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_j.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_j.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="j", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_jsrc.py b/packages/python/plotly/plotly/validators/mesh3d/_jsrc.py index 95e434ea8e..d910457b6d 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_jsrc.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_jsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="jsrc", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_k.py b/packages/python/plotly/plotly/validators/mesh3d/_k.py index 90031cfe17..6b64075a52 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_k.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_k.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="k", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_ksrc.py b/packages/python/plotly/plotly/validators/mesh3d/_ksrc.py index 29344ad980..ad13a24b38 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_ksrc.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_ksrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ksrc", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_legendgroup.py b/packages/python/plotly/plotly/validators/mesh3d/_legendgroup.py index c1d4868451..06991ca2d2 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_meta.py b/packages/python/plotly/plotly/validators/mesh3d/_meta.py index cbbf6e7608..ec164ebabc 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_meta.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="mesh3d", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_metasrc.py b/packages/python/plotly/plotly/validators/mesh3d/_metasrc.py index 8630dfd831..7e3f037931 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_metasrc.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_name.py b/packages/python/plotly/plotly/validators/mesh3d/_name.py index 1c101e35d6..8eb6ab1e44 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_name.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_opacity.py b/packages/python/plotly/plotly/validators/mesh3d/_opacity.py index 090ce27c3e..b561a3bf38 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_opacity.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="mesh3d", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_reversescale.py b/packages/python/plotly/plotly/validators/mesh3d/_reversescale.py index ac5502b635..2ebc7fe684 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_reversescale.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_reversescale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="reversescale", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_scene.py b/packages/python/plotly/plotly/validators/mesh3d/_scene.py index aa47f67bb4..bcaf8bd3a1 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_scene.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_scene.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="scene", parent_name="mesh3d", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "scene"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_showlegend.py b/packages/python/plotly/plotly/validators/mesh3d/_showlegend.py index b41ad65f66..9e404eab22 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_showlegend.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_showscale.py b/packages/python/plotly/plotly/validators/mesh3d/_showscale.py index 0c21e9ee9a..4c3f32a07c 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_showscale.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_showscale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showscale", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_text.py b/packages/python/plotly/plotly/validators/mesh3d/_text.py index 3254bd7b4c..565afb4674 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_text.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="mesh3d", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_textsrc.py b/packages/python/plotly/plotly/validators/mesh3d/_textsrc.py index 2323c5307b..681fdc3a77 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_textsrc.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_uid.py b/packages/python/plotly/plotly/validators/mesh3d/_uid.py index 7acc612641..da52058ff3 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_uid.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_uirevision.py b/packages/python/plotly/plotly/validators/mesh3d/_uirevision.py index 76675dcf30..1afa35ef7e 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_uirevision.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_vertexcolor.py b/packages/python/plotly/plotly/validators/mesh3d/_vertexcolor.py index d0f5679a8c..6e0cd02acf 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_vertexcolor.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_vertexcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="vertexcolor", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_vertexcolorsrc.py b/packages/python/plotly/plotly/validators/mesh3d/_vertexcolorsrc.py index 668c6ff09a..83c2006b5f 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_vertexcolorsrc.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_vertexcolorsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="vertexcolorsrc", parent_name="mesh3d", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_visible.py b/packages/python/plotly/plotly/validators/mesh3d/_visible.py index 79472870ae..d90f220157 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_visible.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_x.py b/packages/python/plotly/plotly/validators/mesh3d/_x.py index 723f48d327..94bfb47803 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_x.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_x.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_xcalendar.py b/packages/python/plotly/plotly/validators/mesh3d/_xcalendar.py index 567cd10c31..22bf97a0d5 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_xcalendar.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_xcalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xcalendar", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/mesh3d/_xhoverformat.py b/packages/python/plotly/plotly/validators/mesh3d/_xhoverformat.py new file mode 100644 index 0000000000..bcbd5fd0ac --- /dev/null +++ b/packages/python/plotly/plotly/validators/mesh3d/_xhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class XhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="xhoverformat", parent_name="mesh3d", **kwargs): + super(XhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_xsrc.py b/packages/python/plotly/plotly/validators/mesh3d/_xsrc.py index 658b649821..b13cfc0af2 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_xsrc.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_y.py b/packages/python/plotly/plotly/validators/mesh3d/_y.py index 4de4f993f7..312d4c90df 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_y.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_y.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_ycalendar.py b/packages/python/plotly/plotly/validators/mesh3d/_ycalendar.py index e30ff3acc1..854e8885d8 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_ycalendar.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_ycalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ycalendar", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/mesh3d/_yhoverformat.py b/packages/python/plotly/plotly/validators/mesh3d/_yhoverformat.py new file mode 100644 index 0000000000..2de232a48c --- /dev/null +++ b/packages/python/plotly/plotly/validators/mesh3d/_yhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class YhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="yhoverformat", parent_name="mesh3d", **kwargs): + super(YhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_ysrc.py b/packages/python/plotly/plotly/validators/mesh3d/_ysrc.py index fc4809908f..04b478c19e 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_ysrc.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_ysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ysrc", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_z.py b/packages/python/plotly/plotly/validators/mesh3d/_z.py index 0de5ff8ffc..fd8eeb801c 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_z.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_z.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="z", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_zcalendar.py b/packages/python/plotly/plotly/validators/mesh3d/_zcalendar.py index dbda81c97f..b3cff7e004 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_zcalendar.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_zcalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="zcalendar", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/mesh3d/_zhoverformat.py b/packages/python/plotly/plotly/validators/mesh3d/_zhoverformat.py new file mode 100644 index 0000000000..741bfbdf7e --- /dev/null +++ b/packages/python/plotly/plotly/validators/mesh3d/_zhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class ZhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="zhoverformat", parent_name="mesh3d", **kwargs): + super(ZhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/_zsrc.py b/packages/python/plotly/plotly/validators/mesh3d/_zsrc.py index 105955fb56..ca89806422 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/_zsrc.py +++ b/packages/python/plotly/plotly/validators/mesh3d/_zsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="zsrc", parent_name="mesh3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/__init__.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_bgcolor.py index 9667a30914..d2451676ea 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_bgcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="bgcolor", parent_name="mesh3d.colorbar", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_bordercolor.py index 8a9f29728e..798ca008c0 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_borderwidth.py index ad96ee72e5..b99782457e 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_dtick.py index 531af49916..3907759270 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_dtick.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="dtick", parent_name="mesh3d.colorbar", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_exponentformat.py index 3b3accf349..2785a8cfbd 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_exponentformat.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_len.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_len.py index f9d49c4306..cbddd02d5b 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_len.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="len", parent_name="mesh3d.colorbar", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_lenmode.py index 7052c89414..6fa2e1a0f6 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_lenmode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="lenmode", parent_name="mesh3d.colorbar", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_minexponent.py index 22bc58b9d0..6456ca23f8 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_nticks.py index a191b8c07d..f780baaf4c 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_nticks.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="nticks", parent_name="mesh3d.colorbar", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_outlinecolor.py index 061d7d8e08..01672009c1 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_outlinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_outlinewidth.py index 74c7b4f0de..57bc050172 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_outlinewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_separatethousands.py index 66545a30fd..1f464372f1 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_separatethousands.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_showexponent.py index 97fbcc91fd..20cf1894e5 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_showticklabels.py index 993c648b65..ebde5a3353 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_showticklabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_showtickprefix.py index e71fb09e0e..9693e7a5ee 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_showtickprefix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_showticksuffix.py index da29a946e3..121755be73 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_showticksuffix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_thickness.py index 4a289164b5..9c5cb967c3 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_thicknessmode.py index 2af7c5d596..e2ff15447a 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_thicknessmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tick0.py index ff8488eb27..67591dfdc7 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tick0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="tick0", parent_name="mesh3d.colorbar", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickangle.py index 6b5717c007..9f8c950edf 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickcolor.py index 005acc0128..74a49bfbd0 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickformat.py index 6878735620..097f7dece3 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..bc7b57aa55 --- /dev/null +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticklabeloverflow.py @@ -0,0 +1,14 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, plotly_name="ticklabeloverflow", parent_name="mesh3d.colorbar", **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "colorbars"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticklabelposition.py index 5a1d0aea09..562b7f65c5 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticklabelposition.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticklen.py index 71bb65aefa..0d323aa1e6 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticklen.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ticklen", parent_name="mesh3d.colorbar", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickmode.py index 956007f9bf..1d8e688edd 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickmode.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="tickmode", parent_name="mesh3d.colorbar", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickprefix.py index 5f42a44c85..5245d21993 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticks.py index 0facd7f9f5..f63102a096 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticks.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ticks", parent_name="mesh3d.colorbar", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticksuffix.py index 194619c736..d5908f0f18 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticktext.py index ca917dd020..f73af4f223 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticktext.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ticktext", parent_name="mesh3d.colorbar", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticktextsrc.py index 46c69d138c..be9c311e8a 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickvals.py index feeb009341..daeb046166 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickvals.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickvals", parent_name="mesh3d.colorbar", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickvalssrc.py index db9d221872..d7cb9532b6 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickwidth.py index a4d63951f5..98e3674a6c 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_x.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_x.py index f977affc7d..7fb618eed2 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_x.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="x", parent_name="mesh3d.colorbar", **kwargs): edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_xanchor.py index ac77086cd0..57d9332ceb 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_xanchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xanchor", parent_name="mesh3d.colorbar", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_xpad.py index 034060dd45..7820a1942b 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_xpad.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xpad", parent_name="mesh3d.colorbar", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_y.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_y.py index 96bcb459ee..2ef68fe5b1 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_y.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="y", parent_name="mesh3d.colorbar", **kwargs): edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_yanchor.py index 8fbeacf05c..cc33fe66d0 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_yanchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="yanchor", parent_name="mesh3d.colorbar", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ypad.py index d15f7cd5f4..a00d981ac8 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/_ypad.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ypad", parent_name="mesh3d.colorbar", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickfont/_color.py index 85536a6b54..8c7c7f16c4 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickfont/_family.py index e636c77675..9c032e5d5b 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickfont/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickfont/_size.py index 49c3410904..dc015e0f4f 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickformatstop/_dtickrange.py index 9ca6634322..48512a1db5 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "colorbars"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickformatstop/_enabled.py index 203b326aa2..1eac71158f 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickformatstop/_name.py index 2c1f553d2b..9adc35506a 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickformatstop/_name.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickformatstop/_templateitemname.py index 89aacb45f9..860805beba 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickformatstop/_value.py index 94beec8f2f..bcb2ec8c06 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/title/_side.py index 4ece13aa71..95426ff6b7 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/title/_side.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/title/_text.py index edb28e26ef..e37c9752f7 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/title/font/_color.py index 203bbeb364..6e84ed5c9b 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/title/font/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/title/font/_family.py index 36186b7aa8..51c10c13d7 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/title/font/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/mesh3d/colorbar/title/font/_size.py index d71684f874..b55d16c53e 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/mesh3d/colorbar/title/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/contour/_color.py b/packages/python/plotly/plotly/validators/mesh3d/contour/_color.py index d0ebcf7d7f..8ecfb1d033 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/contour/_color.py +++ b/packages/python/plotly/plotly/validators/mesh3d/contour/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="mesh3d.contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/contour/_show.py b/packages/python/plotly/plotly/validators/mesh3d/contour/_show.py index c2bdb557e3..d63095a3fa 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/contour/_show.py +++ b/packages/python/plotly/plotly/validators/mesh3d/contour/_show.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="show", parent_name="mesh3d.contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/contour/_width.py b/packages/python/plotly/plotly/validators/mesh3d/contour/_width.py index 567e9a5ba4..8119f2c39f 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/contour/_width.py +++ b/packages/python/plotly/plotly/validators/mesh3d/contour/_width.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="width", parent_name="mesh3d.contour", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 16), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_align.py index 89ad847f6d..466277f24b 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_align.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="align", parent_name="mesh3d.hoverlabel", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_alignsrc.py index 697e73c529..5ea3f642aa 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_bgcolor.py index 968d5b3c34..429cca0802 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_bgcolorsrc.py index a953b75721..a8f446cd10 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_bordercolor.py index 32d45c70f7..890eaf431b 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_bordercolorsrc.py index 6dece0f8ab..3159bc2ca6 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_bordercolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_namelength.py index e8411a749e..5518db8be4 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_namelengthsrc.py index 2291f3c6c0..9ae7fabfdb 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/font/_color.py index f6c130609d..f68dfbe599 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/font/_colorsrc.py index ba5f77dd0f..ea641ccc9f 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/font/_family.py index 157fb303bf..cf8aedad6c 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/font/_familysrc.py index b5e86d2072..a293badd03 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/font/_size.py index c298163830..f17db83982 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/font/_sizesrc.py index 772c0639eb..9a5885da0d 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/mesh3d/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/lighting/_ambient.py b/packages/python/plotly/plotly/validators/mesh3d/lighting/_ambient.py index 076067988f..d08b025d6f 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/lighting/_ambient.py +++ b/packages/python/plotly/plotly/validators/mesh3d/lighting/_ambient.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="ambient", parent_name="mesh3d.lighting", **kwarg edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/lighting/_diffuse.py b/packages/python/plotly/plotly/validators/mesh3d/lighting/_diffuse.py index 2416267ab6..49dc4f65a4 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/lighting/_diffuse.py +++ b/packages/python/plotly/plotly/validators/mesh3d/lighting/_diffuse.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="diffuse", parent_name="mesh3d.lighting", **kwarg edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/lighting/_facenormalsepsilon.py b/packages/python/plotly/plotly/validators/mesh3d/lighting/_facenormalsepsilon.py index 1f7d74c2e6..ea5fc0e439 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/lighting/_facenormalsepsilon.py +++ b/packages/python/plotly/plotly/validators/mesh3d/lighting/_facenormalsepsilon.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/lighting/_fresnel.py b/packages/python/plotly/plotly/validators/mesh3d/lighting/_fresnel.py index 486cb2db04..84c68e5afe 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/lighting/_fresnel.py +++ b/packages/python/plotly/plotly/validators/mesh3d/lighting/_fresnel.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="fresnel", parent_name="mesh3d.lighting", **kwarg edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 5), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/lighting/_roughness.py b/packages/python/plotly/plotly/validators/mesh3d/lighting/_roughness.py index 0576e09a34..21fb414232 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/lighting/_roughness.py +++ b/packages/python/plotly/plotly/validators/mesh3d/lighting/_roughness.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/lighting/_specular.py b/packages/python/plotly/plotly/validators/mesh3d/lighting/_specular.py index b126e9912c..96f248cc56 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/lighting/_specular.py +++ b/packages/python/plotly/plotly/validators/mesh3d/lighting/_specular.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="specular", parent_name="mesh3d.lighting", **kwar edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 2), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/lighting/_vertexnormalsepsilon.py b/packages/python/plotly/plotly/validators/mesh3d/lighting/_vertexnormalsepsilon.py index 068e5fedbc..ccd2460a90 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/lighting/_vertexnormalsepsilon.py +++ b/packages/python/plotly/plotly/validators/mesh3d/lighting/_vertexnormalsepsilon.py @@ -14,6 +14,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/lightposition/_x.py b/packages/python/plotly/plotly/validators/mesh3d/lightposition/_x.py index 607535cd11..bdabeb9696 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/lightposition/_x.py +++ b/packages/python/plotly/plotly/validators/mesh3d/lightposition/_x.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="x", parent_name="mesh3d.lightposition", **kwargs edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 100000), min=kwargs.pop("min", -100000), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/lightposition/_y.py b/packages/python/plotly/plotly/validators/mesh3d/lightposition/_y.py index 26ae097317..b675d75346 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/lightposition/_y.py +++ b/packages/python/plotly/plotly/validators/mesh3d/lightposition/_y.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="y", parent_name="mesh3d.lightposition", **kwargs edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 100000), min=kwargs.pop("min", -100000), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/lightposition/_z.py b/packages/python/plotly/plotly/validators/mesh3d/lightposition/_z.py index b7e2ef7258..bc54c969e9 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/lightposition/_z.py +++ b/packages/python/plotly/plotly/validators/mesh3d/lightposition/_z.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="z", parent_name="mesh3d.lightposition", **kwargs edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 100000), min=kwargs.pop("min", -100000), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/mesh3d/stream/_maxpoints.py index 8e28ef7e7b..98d81dbe6b 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/mesh3d/stream/_maxpoints.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="maxpoints", parent_name="mesh3d.stream", **kwarg edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/mesh3d/stream/_token.py b/packages/python/plotly/plotly/validators/mesh3d/stream/_token.py index e823d0c971..b64eb20fe2 100644 --- a/packages/python/plotly/plotly/validators/mesh3d/stream/_token.py +++ b/packages/python/plotly/plotly/validators/mesh3d/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="mesh3d.stream", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/__init__.py b/packages/python/plotly/plotly/validators/ohlc/__init__.py index 3de126a940..6e1a7963b6 100644 --- a/packages/python/plotly/plotly/validators/ohlc/__init__.py +++ b/packages/python/plotly/plotly/validators/ohlc/__init__.py @@ -1,11 +1,13 @@ import sys if sys.version_info < (3, 7): + from ._yhoverformat import YhoverformatValidator from ._yaxis import YaxisValidator from ._xsrc import XsrcValidator from ._xperiodalignment import XperiodalignmentValidator from ._xperiod0 import Xperiod0Validator from ._xperiod import XperiodValidator + from ._xhoverformat import XhoverformatValidator from ._xcalendar import XcalendarValidator from ._xaxis import XaxisValidator from ._x import XValidator @@ -50,11 +52,13 @@ __name__, [], [ + "._yhoverformat.YhoverformatValidator", "._yaxis.YaxisValidator", "._xsrc.XsrcValidator", "._xperiodalignment.XperiodalignmentValidator", "._xperiod0.Xperiod0Validator", "._xperiod.XperiodValidator", + "._xhoverformat.XhoverformatValidator", "._xcalendar.XcalendarValidator", "._xaxis.XaxisValidator", "._x.XValidator", diff --git a/packages/python/plotly/plotly/validators/ohlc/_close.py b/packages/python/plotly/plotly/validators/ohlc/_close.py index abb27db914..654eefd034 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_close.py +++ b/packages/python/plotly/plotly/validators/ohlc/_close.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="close", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_closesrc.py b/packages/python/plotly/plotly/validators/ohlc/_closesrc.py index d215b1037e..90d7804f69 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_closesrc.py +++ b/packages/python/plotly/plotly/validators/ohlc/_closesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="closesrc", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_customdata.py b/packages/python/plotly/plotly/validators/ohlc/_customdata.py index c3c4ae3667..b9129792f8 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_customdata.py +++ b/packages/python/plotly/plotly/validators/ohlc/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_customdatasrc.py b/packages/python/plotly/plotly/validators/ohlc/_customdatasrc.py index 3fb923a513..6b4284aef9 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/ohlc/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_high.py b/packages/python/plotly/plotly/validators/ohlc/_high.py index 05174d8824..b884dd93d8 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_high.py +++ b/packages/python/plotly/plotly/validators/ohlc/_high.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="high", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_highsrc.py b/packages/python/plotly/plotly/validators/ohlc/_highsrc.py index 5101dbe3cb..56717de4b8 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_highsrc.py +++ b/packages/python/plotly/plotly/validators/ohlc/_highsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="highsrc", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_hoverinfo.py b/packages/python/plotly/plotly/validators/ohlc/_hoverinfo.py index e267555058..e5589dafb6 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/ohlc/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="ohlc", **kwargs): edit_type=kwargs.pop("edit_type", "none"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["x", "y", "z", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/ohlc/_hoverinfosrc.py index 2a51489cac..e4293dc85d 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/ohlc/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_hovertext.py b/packages/python/plotly/plotly/validators/ohlc/_hovertext.py index aefab617cf..3576dbdbcd 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_hovertext.py +++ b/packages/python/plotly/plotly/validators/ohlc/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="ohlc", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_hovertextsrc.py b/packages/python/plotly/plotly/validators/ohlc/_hovertextsrc.py index f2c81375bc..47d1638acb 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/ohlc/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_ids.py b/packages/python/plotly/plotly/validators/ohlc/_ids.py index 23d4d1372e..b555798a68 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_ids.py +++ b/packages/python/plotly/plotly/validators/ohlc/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_idssrc.py b/packages/python/plotly/plotly/validators/ohlc/_idssrc.py index e69a906a6b..4cff9f6e85 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_idssrc.py +++ b/packages/python/plotly/plotly/validators/ohlc/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_legendgroup.py b/packages/python/plotly/plotly/validators/ohlc/_legendgroup.py index cc23df71ed..f61ccb30be 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/ohlc/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_low.py b/packages/python/plotly/plotly/validators/ohlc/_low.py index f172336f84..a7c51abce3 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_low.py +++ b/packages/python/plotly/plotly/validators/ohlc/_low.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="low", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_lowsrc.py b/packages/python/plotly/plotly/validators/ohlc/_lowsrc.py index 8358b8fdf8..ec3ddbef47 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_lowsrc.py +++ b/packages/python/plotly/plotly/validators/ohlc/_lowsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="lowsrc", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_meta.py b/packages/python/plotly/plotly/validators/ohlc/_meta.py index d6542d840c..3113bcb0b7 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_meta.py +++ b/packages/python/plotly/plotly/validators/ohlc/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="ohlc", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_metasrc.py b/packages/python/plotly/plotly/validators/ohlc/_metasrc.py index b11ec2a725..a8318b4820 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_metasrc.py +++ b/packages/python/plotly/plotly/validators/ohlc/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_name.py b/packages/python/plotly/plotly/validators/ohlc/_name.py index f5279ed200..673c8500e8 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_name.py +++ b/packages/python/plotly/plotly/validators/ohlc/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_opacity.py b/packages/python/plotly/plotly/validators/ohlc/_opacity.py index 96a13efc4f..be553f8b53 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_opacity.py +++ b/packages/python/plotly/plotly/validators/ohlc/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="ohlc", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_open.py b/packages/python/plotly/plotly/validators/ohlc/_open.py index ea5398f3a4..37faaa14b2 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_open.py +++ b/packages/python/plotly/plotly/validators/ohlc/_open.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="open", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_opensrc.py b/packages/python/plotly/plotly/validators/ohlc/_opensrc.py index 369ad3f0fd..8a86f77b2c 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_opensrc.py +++ b/packages/python/plotly/plotly/validators/ohlc/_opensrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="opensrc", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_selectedpoints.py b/packages/python/plotly/plotly/validators/ohlc/_selectedpoints.py index 860561d3ef..c08794239c 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_selectedpoints.py +++ b/packages/python/plotly/plotly/validators/ohlc/_selectedpoints.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="selectedpoints", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_showlegend.py b/packages/python/plotly/plotly/validators/ohlc/_showlegend.py index 3a97608806..11941193c5 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_showlegend.py +++ b/packages/python/plotly/plotly/validators/ohlc/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_text.py b/packages/python/plotly/plotly/validators/ohlc/_text.py index 89bc7388bd..7dd07c5d61 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_text.py +++ b/packages/python/plotly/plotly/validators/ohlc/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="ohlc", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_textsrc.py b/packages/python/plotly/plotly/validators/ohlc/_textsrc.py index 2077e48f80..7baba46812 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_textsrc.py +++ b/packages/python/plotly/plotly/validators/ohlc/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_tickwidth.py b/packages/python/plotly/plotly/validators/ohlc/_tickwidth.py index 5cdeab81ba..d15e28eb2e 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/ohlc/_tickwidth.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="tickwidth", parent_name="ohlc", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 0.5), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_uid.py b/packages/python/plotly/plotly/validators/ohlc/_uid.py index 7b23d20974..0c91f82787 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_uid.py +++ b/packages/python/plotly/plotly/validators/ohlc/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_uirevision.py b/packages/python/plotly/plotly/validators/ohlc/_uirevision.py index 9859f4a5a3..c54bb937a9 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_uirevision.py +++ b/packages/python/plotly/plotly/validators/ohlc/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_visible.py b/packages/python/plotly/plotly/validators/ohlc/_visible.py index 00d772a0d4..13a07c0c5a 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_visible.py +++ b/packages/python/plotly/plotly/validators/ohlc/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_x.py b/packages/python/plotly/plotly/validators/ohlc/_x.py index ee60667941..c1dcc76813 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_x.py +++ b/packages/python/plotly/plotly/validators/ohlc/_x.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_xaxis.py b/packages/python/plotly/plotly/validators/ohlc/_xaxis.py index ca4a810ac6..c4f75b9be0 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_xaxis.py +++ b/packages/python/plotly/plotly/validators/ohlc/_xaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xaxis", parent_name="ohlc", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "x"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_xcalendar.py b/packages/python/plotly/plotly/validators/ohlc/_xcalendar.py index ccbc5097ea..3f8f1259be 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_xcalendar.py +++ b/packages/python/plotly/plotly/validators/ohlc/_xcalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xcalendar", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/ohlc/_xhoverformat.py b/packages/python/plotly/plotly/validators/ohlc/_xhoverformat.py new file mode 100644 index 0000000000..75e4f651ff --- /dev/null +++ b/packages/python/plotly/plotly/validators/ohlc/_xhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class XhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="xhoverformat", parent_name="ohlc", **kwargs): + super(XhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_xperiod.py b/packages/python/plotly/plotly/validators/ohlc/_xperiod.py index a413aa616b..ed2fd2ec0c 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_xperiod.py +++ b/packages/python/plotly/plotly/validators/ohlc/_xperiod.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xperiod", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_xperiod0.py b/packages/python/plotly/plotly/validators/ohlc/_xperiod0.py index d1f4766e39..f56fc7fbb7 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_xperiod0.py +++ b/packages/python/plotly/plotly/validators/ohlc/_xperiod0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xperiod0", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_xperiodalignment.py b/packages/python/plotly/plotly/validators/ohlc/_xperiodalignment.py index ce0f457193..9ef35dd016 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_xperiodalignment.py +++ b/packages/python/plotly/plotly/validators/ohlc/_xperiodalignment.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xperiodalignment", parent_name="ohlc", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["start", "middle", "end"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_xsrc.py b/packages/python/plotly/plotly/validators/ohlc/_xsrc.py index 44d1d5010a..e736f4e153 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_xsrc.py +++ b/packages/python/plotly/plotly/validators/ohlc/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="ohlc", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_yaxis.py b/packages/python/plotly/plotly/validators/ohlc/_yaxis.py index fe1d69bffb..6854083b3e 100644 --- a/packages/python/plotly/plotly/validators/ohlc/_yaxis.py +++ b/packages/python/plotly/plotly/validators/ohlc/_yaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="yaxis", parent_name="ohlc", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "y"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/_yhoverformat.py b/packages/python/plotly/plotly/validators/ohlc/_yhoverformat.py new file mode 100644 index 0000000000..63aff8c385 --- /dev/null +++ b/packages/python/plotly/plotly/validators/ohlc/_yhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class YhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="yhoverformat", parent_name="ohlc", **kwargs): + super(YhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/ohlc/decreasing/line/_color.py b/packages/python/plotly/plotly/validators/ohlc/decreasing/line/_color.py index 16de300b94..851d691068 100644 --- a/packages/python/plotly/plotly/validators/ohlc/decreasing/line/_color.py +++ b/packages/python/plotly/plotly/validators/ohlc/decreasing/line/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/decreasing/line/_dash.py b/packages/python/plotly/plotly/validators/ohlc/decreasing/line/_dash.py index d8e1155daa..6a022fcca5 100644 --- a/packages/python/plotly/plotly/validators/ohlc/decreasing/line/_dash.py +++ b/packages/python/plotly/plotly/validators/ohlc/decreasing/line/_dash.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", ["solid", "dot", "dash", "longdash", "dashdot", "longdashdot"] ), diff --git a/packages/python/plotly/plotly/validators/ohlc/decreasing/line/_width.py b/packages/python/plotly/plotly/validators/ohlc/decreasing/line/_width.py index babdde585b..90be41d338 100644 --- a/packages/python/plotly/plotly/validators/ohlc/decreasing/line/_width.py +++ b/packages/python/plotly/plotly/validators/ohlc/decreasing/line/_width.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_align.py index c04f32a877..7e34037d2f 100644 --- a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_align.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="align", parent_name="ohlc.hoverlabel", **kwargs) parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_alignsrc.py index 4bc5d9fcd4..b0893839a7 100644 --- a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_alignsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="alignsrc", parent_name="ohlc.hoverlabel", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_bgcolor.py index cfee7f4de1..b7877bdfb4 100644 --- a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_bgcolor.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="bgcolor", parent_name="ohlc.hoverlabel", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_bgcolorsrc.py index 3efd069cdc..92fd557a6a 100644 --- a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_bordercolor.py index 4e6d92a05b..279580e16c 100644 --- a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_bordercolorsrc.py index c061d893b0..c98b0a9af4 100644 --- a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_bordercolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_namelength.py index 276cf8f423..013a1ec736 100644 --- a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_namelengthsrc.py index 58e8f43347..9b580b15bf 100644 --- a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_split.py b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_split.py index d5a82a363b..28341d301d 100644 --- a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_split.py +++ b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/_split.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="split", parent_name="ohlc.hoverlabel", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/font/_color.py index ba34e5dfc9..de2788eb19 100644 --- a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/font/_colorsrc.py index 60ddc2d9fb..bcd3d1aa9e 100644 --- a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/font/_family.py index 05877a133f..8faf442608 100644 --- a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/font/_familysrc.py index 65d0d4d42d..bd8eaac9da 100644 --- a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/font/_size.py index 3b9cee5d9c..401153b3e6 100644 --- a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/font/_sizesrc.py index 296ebfbe02..344e8ab882 100644 --- a/packages/python/plotly/plotly/validators/ohlc/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/ohlc/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/increasing/line/_color.py b/packages/python/plotly/plotly/validators/ohlc/increasing/line/_color.py index 98d66c8a90..643d329436 100644 --- a/packages/python/plotly/plotly/validators/ohlc/increasing/line/_color.py +++ b/packages/python/plotly/plotly/validators/ohlc/increasing/line/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/increasing/line/_dash.py b/packages/python/plotly/plotly/validators/ohlc/increasing/line/_dash.py index f0445edd61..e831c905eb 100644 --- a/packages/python/plotly/plotly/validators/ohlc/increasing/line/_dash.py +++ b/packages/python/plotly/plotly/validators/ohlc/increasing/line/_dash.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", ["solid", "dot", "dash", "longdash", "dashdot", "longdashdot"] ), diff --git a/packages/python/plotly/plotly/validators/ohlc/increasing/line/_width.py b/packages/python/plotly/plotly/validators/ohlc/increasing/line/_width.py index f7efba42ce..e822000812 100644 --- a/packages/python/plotly/plotly/validators/ohlc/increasing/line/_width.py +++ b/packages/python/plotly/plotly/validators/ohlc/increasing/line/_width.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/line/_dash.py b/packages/python/plotly/plotly/validators/ohlc/line/_dash.py index 0b2bc4b844..e7e10cd1ba 100644 --- a/packages/python/plotly/plotly/validators/ohlc/line/_dash.py +++ b/packages/python/plotly/plotly/validators/ohlc/line/_dash.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="dash", parent_name="ohlc.line", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", ["solid", "dot", "dash", "longdash", "dashdot", "longdashdot"] ), diff --git a/packages/python/plotly/plotly/validators/ohlc/line/_width.py b/packages/python/plotly/plotly/validators/ohlc/line/_width.py index 345d072a3d..63b2e32b28 100644 --- a/packages/python/plotly/plotly/validators/ohlc/line/_width.py +++ b/packages/python/plotly/plotly/validators/ohlc/line/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="ohlc.line", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/ohlc/stream/_maxpoints.py index 6f7ebf349a..839fe8d6d9 100644 --- a/packages/python/plotly/plotly/validators/ohlc/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/ohlc/stream/_maxpoints.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="maxpoints", parent_name="ohlc.stream", **kwargs) edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/ohlc/stream/_token.py b/packages/python/plotly/plotly/validators/ohlc/stream/_token.py index 5a2c6a48cd..f7a181e6d4 100644 --- a/packages/python/plotly/plotly/validators/ohlc/stream/_token.py +++ b/packages/python/plotly/plotly/validators/ohlc/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="ohlc.stream", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/_arrangement.py b/packages/python/plotly/plotly/validators/parcats/_arrangement.py index a46c949659..ad7cbbeab7 100644 --- a/packages/python/plotly/plotly/validators/parcats/_arrangement.py +++ b/packages/python/plotly/plotly/validators/parcats/_arrangement.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="arrangement", parent_name="parcats", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["perpendicular", "freeform", "fixed"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/_bundlecolors.py b/packages/python/plotly/plotly/validators/parcats/_bundlecolors.py index 0f8c76c060..50e5d5ee21 100644 --- a/packages/python/plotly/plotly/validators/parcats/_bundlecolors.py +++ b/packages/python/plotly/plotly/validators/parcats/_bundlecolors.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="bundlecolors", parent_name="parcats", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/_counts.py b/packages/python/plotly/plotly/validators/parcats/_counts.py index 068cac4403..1537027477 100644 --- a/packages/python/plotly/plotly/validators/parcats/_counts.py +++ b/packages/python/plotly/plotly/validators/parcats/_counts.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="counts", parent_name="parcats", **kwargs): array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/_countssrc.py b/packages/python/plotly/plotly/validators/parcats/_countssrc.py index cf170d469d..7b4103777c 100644 --- a/packages/python/plotly/plotly/validators/parcats/_countssrc.py +++ b/packages/python/plotly/plotly/validators/parcats/_countssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="countssrc", parent_name="parcats", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/_hoverinfo.py b/packages/python/plotly/plotly/validators/parcats/_hoverinfo.py index e2f6cb5e6d..2fc216b7fa 100644 --- a/packages/python/plotly/plotly/validators/parcats/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/parcats/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="parcats", **kwargs): edit_type=kwargs.pop("edit_type", "plot"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["count", "probability"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/_hoveron.py b/packages/python/plotly/plotly/validators/parcats/_hoveron.py index af9feb818c..ae43e9cf6f 100644 --- a/packages/python/plotly/plotly/validators/parcats/_hoveron.py +++ b/packages/python/plotly/plotly/validators/parcats/_hoveron.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="hoveron", parent_name="parcats", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["category", "color", "dimension"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/_hovertemplate.py b/packages/python/plotly/plotly/validators/parcats/_hovertemplate.py index 95b400aed3..f134fac719 100644 --- a/packages/python/plotly/plotly/validators/parcats/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/parcats/_hovertemplate.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="parcats", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/_meta.py b/packages/python/plotly/plotly/validators/parcats/_meta.py index 898570d5d6..5b7af81834 100644 --- a/packages/python/plotly/plotly/validators/parcats/_meta.py +++ b/packages/python/plotly/plotly/validators/parcats/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="parcats", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/_metasrc.py b/packages/python/plotly/plotly/validators/parcats/_metasrc.py index 69f6ae0318..adf2e14934 100644 --- a/packages/python/plotly/plotly/validators/parcats/_metasrc.py +++ b/packages/python/plotly/plotly/validators/parcats/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="parcats", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/_name.py b/packages/python/plotly/plotly/validators/parcats/_name.py index 9a46b057c3..b0f9af6d7c 100644 --- a/packages/python/plotly/plotly/validators/parcats/_name.py +++ b/packages/python/plotly/plotly/validators/parcats/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="parcats", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/_sortpaths.py b/packages/python/plotly/plotly/validators/parcats/_sortpaths.py index 20a415431a..5be3da8bb5 100644 --- a/packages/python/plotly/plotly/validators/parcats/_sortpaths.py +++ b/packages/python/plotly/plotly/validators/parcats/_sortpaths.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="sortpaths", parent_name="parcats", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["forward", "backward"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/_uid.py b/packages/python/plotly/plotly/validators/parcats/_uid.py index ad6676a108..ce10782d64 100644 --- a/packages/python/plotly/plotly/validators/parcats/_uid.py +++ b/packages/python/plotly/plotly/validators/parcats/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="parcats", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/_uirevision.py b/packages/python/plotly/plotly/validators/parcats/_uirevision.py index d2dab71976..3c70275e34 100644 --- a/packages/python/plotly/plotly/validators/parcats/_uirevision.py +++ b/packages/python/plotly/plotly/validators/parcats/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="parcats", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/_visible.py b/packages/python/plotly/plotly/validators/parcats/_visible.py index 7a9e2273b7..8c292bed25 100644 --- a/packages/python/plotly/plotly/validators/parcats/_visible.py +++ b/packages/python/plotly/plotly/validators/parcats/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="parcats", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/dimension/_categoryarray.py b/packages/python/plotly/plotly/validators/parcats/dimension/_categoryarray.py index 5a6eecfac4..2de2662a03 100644 --- a/packages/python/plotly/plotly/validators/parcats/dimension/_categoryarray.py +++ b/packages/python/plotly/plotly/validators/parcats/dimension/_categoryarray.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/dimension/_categoryarraysrc.py b/packages/python/plotly/plotly/validators/parcats/dimension/_categoryarraysrc.py index cbb9636a2a..22e09d7fa9 100644 --- a/packages/python/plotly/plotly/validators/parcats/dimension/_categoryarraysrc.py +++ b/packages/python/plotly/plotly/validators/parcats/dimension/_categoryarraysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/dimension/_categoryorder.py b/packages/python/plotly/plotly/validators/parcats/dimension/_categoryorder.py index fccc115215..dc5c456004 100644 --- a/packages/python/plotly/plotly/validators/parcats/dimension/_categoryorder.py +++ b/packages/python/plotly/plotly/validators/parcats/dimension/_categoryorder.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", ["trace", "category ascending", "category descending", "array"], diff --git a/packages/python/plotly/plotly/validators/parcats/dimension/_displayindex.py b/packages/python/plotly/plotly/validators/parcats/dimension/_displayindex.py index 641cbda728..cd5d378f77 100644 --- a/packages/python/plotly/plotly/validators/parcats/dimension/_displayindex.py +++ b/packages/python/plotly/plotly/validators/parcats/dimension/_displayindex.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/dimension/_label.py b/packages/python/plotly/plotly/validators/parcats/dimension/_label.py index 3c8db4648c..0a6b8ad8a6 100644 --- a/packages/python/plotly/plotly/validators/parcats/dimension/_label.py +++ b/packages/python/plotly/plotly/validators/parcats/dimension/_label.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="label", parent_name="parcats.dimension", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/dimension/_ticktext.py b/packages/python/plotly/plotly/validators/parcats/dimension/_ticktext.py index 3b8878a93f..2400d87a0d 100644 --- a/packages/python/plotly/plotly/validators/parcats/dimension/_ticktext.py +++ b/packages/python/plotly/plotly/validators/parcats/dimension/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/dimension/_ticktextsrc.py b/packages/python/plotly/plotly/validators/parcats/dimension/_ticktextsrc.py index 5d4d420e72..0d0028e068 100644 --- a/packages/python/plotly/plotly/validators/parcats/dimension/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/parcats/dimension/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/dimension/_values.py b/packages/python/plotly/plotly/validators/parcats/dimension/_values.py index 4b00129477..fcf39669d1 100644 --- a/packages/python/plotly/plotly/validators/parcats/dimension/_values.py +++ b/packages/python/plotly/plotly/validators/parcats/dimension/_values.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="values", parent_name="parcats.dimension", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/dimension/_valuessrc.py b/packages/python/plotly/plotly/validators/parcats/dimension/_valuessrc.py index ce61134543..328bff9eca 100644 --- a/packages/python/plotly/plotly/validators/parcats/dimension/_valuessrc.py +++ b/packages/python/plotly/plotly/validators/parcats/dimension/_valuessrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/dimension/_visible.py b/packages/python/plotly/plotly/validators/parcats/dimension/_visible.py index a7d7e93e76..8c3a8fd11c 100644 --- a/packages/python/plotly/plotly/validators/parcats/dimension/_visible.py +++ b/packages/python/plotly/plotly/validators/parcats/dimension/_visible.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/domain/_column.py b/packages/python/plotly/plotly/validators/parcats/domain/_column.py index 0799d94e1c..5022dc2e34 100644 --- a/packages/python/plotly/plotly/validators/parcats/domain/_column.py +++ b/packages/python/plotly/plotly/validators/parcats/domain/_column.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="column", parent_name="parcats.domain", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/domain/_row.py b/packages/python/plotly/plotly/validators/parcats/domain/_row.py index d10b8f2cd2..d9aa231c78 100644 --- a/packages/python/plotly/plotly/validators/parcats/domain/_row.py +++ b/packages/python/plotly/plotly/validators/parcats/domain/_row.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="row", parent_name="parcats.domain", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/domain/_x.py b/packages/python/plotly/plotly/validators/parcats/domain/_x.py index e390d944cd..67789111bf 100644 --- a/packages/python/plotly/plotly/validators/parcats/domain/_x.py +++ b/packages/python/plotly/plotly/validators/parcats/domain/_x.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="x", parent_name="parcats.domain", **kwargs): {"valType": "number", "min": 0, "max": 1, "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/domain/_y.py b/packages/python/plotly/plotly/validators/parcats/domain/_y.py index 11c596a71f..8955058837 100644 --- a/packages/python/plotly/plotly/validators/parcats/domain/_y.py +++ b/packages/python/plotly/plotly/validators/parcats/domain/_y.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="y", parent_name="parcats.domain", **kwargs): {"valType": "number", "min": 0, "max": 1, "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/labelfont/_color.py b/packages/python/plotly/plotly/validators/parcats/labelfont/_color.py index b46bb6acaf..614048eaad 100644 --- a/packages/python/plotly/plotly/validators/parcats/labelfont/_color.py +++ b/packages/python/plotly/plotly/validators/parcats/labelfont/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="parcats.labelfont", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/labelfont/_family.py b/packages/python/plotly/plotly/validators/parcats/labelfont/_family.py index f4fc6d16d2..db38902df0 100644 --- a/packages/python/plotly/plotly/validators/parcats/labelfont/_family.py +++ b/packages/python/plotly/plotly/validators/parcats/labelfont/_family.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="family", parent_name="parcats.labelfont", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/labelfont/_size.py b/packages/python/plotly/plotly/validators/parcats/labelfont/_size.py index bbf44be12c..9b1e6b892d 100644 --- a/packages/python/plotly/plotly/validators/parcats/labelfont/_size.py +++ b/packages/python/plotly/plotly/validators/parcats/labelfont/_size.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="size", parent_name="parcats.labelfont", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/_autocolorscale.py b/packages/python/plotly/plotly/validators/parcats/line/_autocolorscale.py index 0dd6fed847..9d6a623e9b 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/parcats/line/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/_cauto.py b/packages/python/plotly/plotly/validators/parcats/line/_cauto.py index dd83462a05..9a4e1019e7 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/_cauto.py +++ b/packages/python/plotly/plotly/validators/parcats/line/_cauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cauto", parent_name="parcats.line", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/_cmax.py b/packages/python/plotly/plotly/validators/parcats/line/_cmax.py index c982d2a7fb..136bd1b7a7 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/_cmax.py +++ b/packages/python/plotly/plotly/validators/parcats/line/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="parcats.line", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/_cmid.py b/packages/python/plotly/plotly/validators/parcats/line/_cmid.py index a553f23c8d..8c2eec30c3 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/_cmid.py +++ b/packages/python/plotly/plotly/validators/parcats/line/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="parcats.line", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/_cmin.py b/packages/python/plotly/plotly/validators/parcats/line/_cmin.py index 632312e79b..cfa8de06af 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/_cmin.py +++ b/packages/python/plotly/plotly/validators/parcats/line/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="parcats.line", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/_color.py b/packages/python/plotly/plotly/validators/parcats/line/_color.py index 3640e6f33e..7404346d55 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/_color.py +++ b/packages/python/plotly/plotly/validators/parcats/line/_color.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="color", parent_name="parcats.line", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop("colorscale_path", "parcats.line.colorscale"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/_coloraxis.py b/packages/python/plotly/plotly/validators/parcats/line/_coloraxis.py index 5d768a0544..8b723c0cee 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/parcats/line/_coloraxis.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="coloraxis", parent_name="parcats.line", **kwargs dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/_colorbar.py b/packages/python/plotly/plotly/validators/parcats/line/_colorbar.py index 481febb09f..e8ea7c1163 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/_colorbar.py +++ b/packages/python/plotly/plotly/validators/parcats/line/_colorbar.py @@ -148,6 +148,12 @@ def __init__(self, plotly_name="colorbar", parent_name="parcats.line", **kwargs) , sets the default property values to use for elements of parcats.line.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/parcats/line/_colorscale.py b/packages/python/plotly/plotly/validators/parcats/line/_colorscale.py index b13574ce74..88fd3eb9c0 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/_colorscale.py +++ b/packages/python/plotly/plotly/validators/parcats/line/_colorscale.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="colorscale", parent_name="parcats.line", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/_colorsrc.py b/packages/python/plotly/plotly/validators/parcats/line/_colorsrc.py index 8a62686d5a..723b069ab1 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/parcats/line/_colorsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="colorsrc", parent_name="parcats.line", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/_hovertemplate.py b/packages/python/plotly/plotly/validators/parcats/line/_hovertemplate.py index 3e35c58820..99ba25e600 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/parcats/line/_hovertemplate.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/_reversescale.py b/packages/python/plotly/plotly/validators/parcats/line/_reversescale.py index 7696beebcb..409f393df8 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/_reversescale.py +++ b/packages/python/plotly/plotly/validators/parcats/line/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/_shape.py b/packages/python/plotly/plotly/validators/parcats/line/_shape.py index 1e2eca7a6d..758b574c6c 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/_shape.py +++ b/packages/python/plotly/plotly/validators/parcats/line/_shape.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="shape", parent_name="parcats.line", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["linear", "hspline"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/_showscale.py b/packages/python/plotly/plotly/validators/parcats/line/_showscale.py index 00ec3811dd..d74d2541ec 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/_showscale.py +++ b/packages/python/plotly/plotly/validators/parcats/line/_showscale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showscale", parent_name="parcats.line", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/__init__.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_bgcolor.py index 9a35c2401c..9a48c32958 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_bordercolor.py index 0b2171dc9c..5606b07683 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_borderwidth.py index a415aa3544..0aa0714cae 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_dtick.py index 462b977b78..305faa76b1 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_exponentformat.py index 3019835821..00a33ed298 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_exponentformat.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_len.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_len.py index 5e2ebfdc0d..9c9c191af6 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_len.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_lenmode.py index 76f9665fd5..a6d62ecb9a 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_lenmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_minexponent.py index b607d7f4c2..3f0c0a86a9 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_nticks.py index 54ebecaf4f..8f6359dbed 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_outlinecolor.py index 4c27614bb2..c079689066 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_outlinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_outlinewidth.py index 1f1f2c0a31..e28e61bf04 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_outlinewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_separatethousands.py index c4deaff526..9b1f4c83db 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_showexponent.py index 0afdfb36ba..c0749ded15 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_showticklabels.py index a7967a46be..d53c5f9903 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_showticklabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_showtickprefix.py index 78e255e67f..75b78e886d 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_showtickprefix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_showticksuffix.py index f405292ded..22e44cf6d2 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_showticksuffix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_thickness.py index 1cd7ea1828..498b65f463 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_thicknessmode.py index b5200bd007..714baade65 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_thicknessmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tick0.py index da0c12667a..bb5f9b87ba 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickangle.py index a670e887de..65f4ca16b6 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickcolor.py index 004923a26c..274ab6a450 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickformat.py index 24a4f90949..0443a71056 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..3203f8afe4 --- /dev/null +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="parcats.line.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "colorbars"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticklabelposition.py index eef2154b75..5be1b73312 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticklen.py index 598bd2284a..02ce75312e 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickmode.py index 8932a4e899..0720690488 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickprefix.py index 7ae356acdc..d68ac9b136 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticks.py index 3c8a816166..ba62b9246d 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticksuffix.py index bab2691416..2657b4e36b 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticktext.py index bf76cdd58a..5e6100fd93 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticktextsrc.py index 275ee50623..a4f9e32b8c 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickvals.py index fa84fac5da..d0f1d7337e 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickvalssrc.py index 98a8c435da..0a06b5daf7 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickwidth.py index 4e40208683..2e18f9266a 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_x.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_x.py index 0f9bc8e1ad..3f0d391f70 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_x.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="x", parent_name="parcats.line.colorbar", **kwarg edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_xanchor.py index fff030ce95..9dd52e6e7e 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_xpad.py index 4c8e7a4303..ac866a9f99 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_xpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_y.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_y.py index bfbb0d674d..2924f68b6e 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_y.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="y", parent_name="parcats.line.colorbar", **kwarg edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_yanchor.py index f80d0e5af2..7b06297848 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ypad.py index 67df42f8f2..fb49fd0973 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/_ypad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickfont/_color.py index 899692e7be..2d4b96687f 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickfont/_family.py index b3645b0440..75e651ba43 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickfont/_size.py index 7822f2ce9e..4d5536f66d 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickformatstop/_dtickrange.py index da05759d34..4db957ad39 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "colorbars"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickformatstop/_enabled.py index 465b2f4a91..da5376c480 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickformatstop/_name.py index 4c393b67a2..389bb71f15 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickformatstop/_templateitemname.py index ff816cc1d8..a09e812e22 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickformatstop/_value.py index bc302c7430..3f5a385407 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/title/_side.py index e5efaee0e7..8792efac1c 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/title/_side.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/title/_text.py index 65ff784170..5b7c0a025e 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/title/font/_color.py index 77b6e5e936..4a9bad3dfb 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/title/font/_family.py index 94d1be9654..52877763dd 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/line/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/parcats/line/colorbar/title/font/_size.py index 7f8e984448..76e00f5218 100644 --- a/packages/python/plotly/plotly/validators/parcats/line/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/parcats/line/colorbar/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/parcats/stream/_maxpoints.py index a25746d756..f65032591c 100644 --- a/packages/python/plotly/plotly/validators/parcats/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/parcats/stream/_maxpoints.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="maxpoints", parent_name="parcats.stream", **kwar edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/stream/_token.py b/packages/python/plotly/plotly/validators/parcats/stream/_token.py index eb75236212..abebf9b454 100644 --- a/packages/python/plotly/plotly/validators/parcats/stream/_token.py +++ b/packages/python/plotly/plotly/validators/parcats/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="parcats.stream", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/tickfont/_color.py b/packages/python/plotly/plotly/validators/parcats/tickfont/_color.py index d5c3265be2..5b69b839a4 100644 --- a/packages/python/plotly/plotly/validators/parcats/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/parcats/tickfont/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="parcats.tickfont", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/tickfont/_family.py b/packages/python/plotly/plotly/validators/parcats/tickfont/_family.py index 91e714cd8b..3b07c97a0b 100644 --- a/packages/python/plotly/plotly/validators/parcats/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/parcats/tickfont/_family.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="family", parent_name="parcats.tickfont", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcats/tickfont/_size.py b/packages/python/plotly/plotly/validators/parcats/tickfont/_size.py index fcb1ab5e64..ba597f4d99 100644 --- a/packages/python/plotly/plotly/validators/parcats/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/parcats/tickfont/_size.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="size", parent_name="parcats.tickfont", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/_customdata.py b/packages/python/plotly/plotly/validators/parcoords/_customdata.py index 245ab4c2e6..b89f7c5ed1 100644 --- a/packages/python/plotly/plotly/validators/parcoords/_customdata.py +++ b/packages/python/plotly/plotly/validators/parcoords/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="parcoords", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/_customdatasrc.py b/packages/python/plotly/plotly/validators/parcoords/_customdatasrc.py index 18b1cfc8d1..b0a65d5908 100644 --- a/packages/python/plotly/plotly/validators/parcoords/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/parcoords/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="parcoords", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/_ids.py b/packages/python/plotly/plotly/validators/parcoords/_ids.py index 50846c032f..bd7e6d4ecc 100644 --- a/packages/python/plotly/plotly/validators/parcoords/_ids.py +++ b/packages/python/plotly/plotly/validators/parcoords/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="parcoords", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/_idssrc.py b/packages/python/plotly/plotly/validators/parcoords/_idssrc.py index 9228df4828..cd40ba25d0 100644 --- a/packages/python/plotly/plotly/validators/parcoords/_idssrc.py +++ b/packages/python/plotly/plotly/validators/parcoords/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="parcoords", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/_labelangle.py b/packages/python/plotly/plotly/validators/parcoords/_labelangle.py index d7e2ca56b9..13d8fff892 100644 --- a/packages/python/plotly/plotly/validators/parcoords/_labelangle.py +++ b/packages/python/plotly/plotly/validators/parcoords/_labelangle.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="labelangle", parent_name="parcoords", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/_labelside.py b/packages/python/plotly/plotly/validators/parcoords/_labelside.py index 489b9111bf..c5ee757894 100644 --- a/packages/python/plotly/plotly/validators/parcoords/_labelside.py +++ b/packages/python/plotly/plotly/validators/parcoords/_labelside.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="labelside", parent_name="parcoords", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/_meta.py b/packages/python/plotly/plotly/validators/parcoords/_meta.py index 054e0ef3c6..e366a2f18d 100644 --- a/packages/python/plotly/plotly/validators/parcoords/_meta.py +++ b/packages/python/plotly/plotly/validators/parcoords/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="parcoords", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/_metasrc.py b/packages/python/plotly/plotly/validators/parcoords/_metasrc.py index a38231d33d..355abd18b3 100644 --- a/packages/python/plotly/plotly/validators/parcoords/_metasrc.py +++ b/packages/python/plotly/plotly/validators/parcoords/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="parcoords", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/_name.py b/packages/python/plotly/plotly/validators/parcoords/_name.py index a7e1d7babf..e56d2fa1ba 100644 --- a/packages/python/plotly/plotly/validators/parcoords/_name.py +++ b/packages/python/plotly/plotly/validators/parcoords/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="parcoords", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/_uid.py b/packages/python/plotly/plotly/validators/parcoords/_uid.py index 3e2b257a1a..1a5e204c1a 100644 --- a/packages/python/plotly/plotly/validators/parcoords/_uid.py +++ b/packages/python/plotly/plotly/validators/parcoords/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="parcoords", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/_uirevision.py b/packages/python/plotly/plotly/validators/parcoords/_uirevision.py index 0f367290f7..82e6741bb3 100644 --- a/packages/python/plotly/plotly/validators/parcoords/_uirevision.py +++ b/packages/python/plotly/plotly/validators/parcoords/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="parcoords", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/_visible.py b/packages/python/plotly/plotly/validators/parcoords/_visible.py index 9c0e3c74e3..aa3bacc5dc 100644 --- a/packages/python/plotly/plotly/validators/parcoords/_visible.py +++ b/packages/python/plotly/plotly/validators/parcoords/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="parcoords", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/dimension/_constraintrange.py b/packages/python/plotly/plotly/validators/parcoords/dimension/_constraintrange.py index 2423f06a1d..3cb2c8feac 100644 --- a/packages/python/plotly/plotly/validators/parcoords/dimension/_constraintrange.py +++ b/packages/python/plotly/plotly/validators/parcoords/dimension/_constraintrange.py @@ -18,6 +18,5 @@ def __init__( {"valType": "number", "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/dimension/_label.py b/packages/python/plotly/plotly/validators/parcoords/dimension/_label.py index f9c4478615..c4869bc5e7 100644 --- a/packages/python/plotly/plotly/validators/parcoords/dimension/_label.py +++ b/packages/python/plotly/plotly/validators/parcoords/dimension/_label.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/dimension/_multiselect.py b/packages/python/plotly/plotly/validators/parcoords/dimension/_multiselect.py index c2942361fb..8d5d5c3510 100644 --- a/packages/python/plotly/plotly/validators/parcoords/dimension/_multiselect.py +++ b/packages/python/plotly/plotly/validators/parcoords/dimension/_multiselect.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/dimension/_name.py b/packages/python/plotly/plotly/validators/parcoords/dimension/_name.py index 90a3a77689..bcb0e7fdd6 100644 --- a/packages/python/plotly/plotly/validators/parcoords/dimension/_name.py +++ b/packages/python/plotly/plotly/validators/parcoords/dimension/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="parcoords.dimension", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/dimension/_range.py b/packages/python/plotly/plotly/validators/parcoords/dimension/_range.py index 9c58f029be..1e8cca5e4d 100644 --- a/packages/python/plotly/plotly/validators/parcoords/dimension/_range.py +++ b/packages/python/plotly/plotly/validators/parcoords/dimension/_range.py @@ -16,6 +16,5 @@ def __init__( {"valType": "number", "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/dimension/_templateitemname.py b/packages/python/plotly/plotly/validators/parcoords/dimension/_templateitemname.py index 5c5b144f56..863b2a885b 100644 --- a/packages/python/plotly/plotly/validators/parcoords/dimension/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/parcoords/dimension/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/dimension/_tickformat.py b/packages/python/plotly/plotly/validators/parcoords/dimension/_tickformat.py index edb88aba3e..600e2224c6 100644 --- a/packages/python/plotly/plotly/validators/parcoords/dimension/_tickformat.py +++ b/packages/python/plotly/plotly/validators/parcoords/dimension/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/dimension/_ticktext.py b/packages/python/plotly/plotly/validators/parcoords/dimension/_ticktext.py index 6a1aad9b10..eb4e15e57e 100644 --- a/packages/python/plotly/plotly/validators/parcoords/dimension/_ticktext.py +++ b/packages/python/plotly/plotly/validators/parcoords/dimension/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/dimension/_ticktextsrc.py b/packages/python/plotly/plotly/validators/parcoords/dimension/_ticktextsrc.py index 27cf99272b..046cdfe7e2 100644 --- a/packages/python/plotly/plotly/validators/parcoords/dimension/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/parcoords/dimension/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/dimension/_tickvals.py b/packages/python/plotly/plotly/validators/parcoords/dimension/_tickvals.py index a8bba5ae74..6005470003 100644 --- a/packages/python/plotly/plotly/validators/parcoords/dimension/_tickvals.py +++ b/packages/python/plotly/plotly/validators/parcoords/dimension/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/dimension/_tickvalssrc.py b/packages/python/plotly/plotly/validators/parcoords/dimension/_tickvalssrc.py index 2b2e0f0b69..d4e090dbb9 100644 --- a/packages/python/plotly/plotly/validators/parcoords/dimension/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/parcoords/dimension/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/dimension/_values.py b/packages/python/plotly/plotly/validators/parcoords/dimension/_values.py index a456e7383c..bc6a5962fb 100644 --- a/packages/python/plotly/plotly/validators/parcoords/dimension/_values.py +++ b/packages/python/plotly/plotly/validators/parcoords/dimension/_values.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/dimension/_valuessrc.py b/packages/python/plotly/plotly/validators/parcoords/dimension/_valuessrc.py index 2c8b095b6a..b9611cdf8e 100644 --- a/packages/python/plotly/plotly/validators/parcoords/dimension/_valuessrc.py +++ b/packages/python/plotly/plotly/validators/parcoords/dimension/_valuessrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/dimension/_visible.py b/packages/python/plotly/plotly/validators/parcoords/dimension/_visible.py index d655c4a95b..1ff0e4de1d 100644 --- a/packages/python/plotly/plotly/validators/parcoords/dimension/_visible.py +++ b/packages/python/plotly/plotly/validators/parcoords/dimension/_visible.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/domain/_column.py b/packages/python/plotly/plotly/validators/parcoords/domain/_column.py index 9eb6737e4c..49920a5659 100644 --- a/packages/python/plotly/plotly/validators/parcoords/domain/_column.py +++ b/packages/python/plotly/plotly/validators/parcoords/domain/_column.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="column", parent_name="parcoords.domain", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/domain/_row.py b/packages/python/plotly/plotly/validators/parcoords/domain/_row.py index 333997b9ed..6ea2bbfdc0 100644 --- a/packages/python/plotly/plotly/validators/parcoords/domain/_row.py +++ b/packages/python/plotly/plotly/validators/parcoords/domain/_row.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="row", parent_name="parcoords.domain", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/domain/_x.py b/packages/python/plotly/plotly/validators/parcoords/domain/_x.py index 729879f76a..1b83f95c25 100644 --- a/packages/python/plotly/plotly/validators/parcoords/domain/_x.py +++ b/packages/python/plotly/plotly/validators/parcoords/domain/_x.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="x", parent_name="parcoords.domain", **kwargs): {"valType": "number", "min": 0, "max": 1, "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/domain/_y.py b/packages/python/plotly/plotly/validators/parcoords/domain/_y.py index 7be7f7247b..97176cf05f 100644 --- a/packages/python/plotly/plotly/validators/parcoords/domain/_y.py +++ b/packages/python/plotly/plotly/validators/parcoords/domain/_y.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="y", parent_name="parcoords.domain", **kwargs): {"valType": "number", "min": 0, "max": 1, "editType": "plot"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/labelfont/_color.py b/packages/python/plotly/plotly/validators/parcoords/labelfont/_color.py index 00dda72a58..ce9a21b745 100644 --- a/packages/python/plotly/plotly/validators/parcoords/labelfont/_color.py +++ b/packages/python/plotly/plotly/validators/parcoords/labelfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/labelfont/_family.py b/packages/python/plotly/plotly/validators/parcoords/labelfont/_family.py index 7df4f011e7..8c15aba083 100644 --- a/packages/python/plotly/plotly/validators/parcoords/labelfont/_family.py +++ b/packages/python/plotly/plotly/validators/parcoords/labelfont/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/labelfont/_size.py b/packages/python/plotly/plotly/validators/parcoords/labelfont/_size.py index 8b552ba5bb..061554de8e 100644 --- a/packages/python/plotly/plotly/validators/parcoords/labelfont/_size.py +++ b/packages/python/plotly/plotly/validators/parcoords/labelfont/_size.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="size", parent_name="parcoords.labelfont", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/_autocolorscale.py b/packages/python/plotly/plotly/validators/parcoords/line/_autocolorscale.py index ffdcd6b63f..6c3a8e01cf 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/_cauto.py b/packages/python/plotly/plotly/validators/parcoords/line/_cauto.py index eb25605558..f27f1c1478 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/_cauto.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/_cauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cauto", parent_name="parcoords.line", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/_cmax.py b/packages/python/plotly/plotly/validators/parcoords/line/_cmax.py index 1ecb7aa08e..9576186cd0 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/_cmax.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="parcoords.line", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/_cmid.py b/packages/python/plotly/plotly/validators/parcoords/line/_cmid.py index 06f48470ce..1c16ec897c 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/_cmid.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="parcoords.line", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/_cmin.py b/packages/python/plotly/plotly/validators/parcoords/line/_cmin.py index 224015f1b8..98b02be2c0 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/_cmin.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="parcoords.line", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/_color.py b/packages/python/plotly/plotly/validators/parcoords/line/_color.py index 8ae3355fd4..b12e6d8f51 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/_color.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/_color.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="color", parent_name="parcoords.line", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop("colorscale_path", "parcoords.line.colorscale"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/_coloraxis.py b/packages/python/plotly/plotly/validators/parcoords/line/_coloraxis.py index efec21c6d1..629eaac784 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/_coloraxis.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="coloraxis", parent_name="parcoords.line", **kwar dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/_colorbar.py b/packages/python/plotly/plotly/validators/parcoords/line/_colorbar.py index 101ba4d6ee..d69f365d86 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/_colorbar.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/_colorbar.py @@ -148,6 +148,12 @@ def __init__(self, plotly_name="colorbar", parent_name="parcoords.line", **kwarg s), sets the default property values to use for elements of parcoords.line.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/parcoords/line/_colorscale.py b/packages/python/plotly/plotly/validators/parcoords/line/_colorscale.py index 471b198288..a8b3297f0c 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/_colorscale.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/_colorsrc.py b/packages/python/plotly/plotly/validators/parcoords/line/_colorsrc.py index c95efd7a35..40905e78a6 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/_colorsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="colorsrc", parent_name="parcoords.line", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/_reversescale.py b/packages/python/plotly/plotly/validators/parcoords/line/_reversescale.py index 7e3bf2fb78..a8964ffadb 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/_reversescale.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/_showscale.py b/packages/python/plotly/plotly/validators/parcoords/line/_showscale.py index ef8d8e694f..efad1f1703 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/_showscale.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/_showscale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showscale", parent_name="parcoords.line", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/__init__.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_bgcolor.py index 6b0f44e029..c8b61e68bc 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_bordercolor.py index 992aa4fb6b..67cb289e99 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_borderwidth.py index 918b807f48..aa496f8e27 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_dtick.py index 0b7e55bf47..178ad055f8 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_exponentformat.py index ad0ec7a54b..8956972cba 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_exponentformat.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_len.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_len.py index 9fec9f0c5a..57a672de2b 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_len.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_lenmode.py index d562a1cae6..ebcceac212 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_lenmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_minexponent.py index 23fa9a5161..4e98b6cc00 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_nticks.py index ea20d6ada6..3c61d9f0d2 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_outlinecolor.py index 3dbaaacfa2..282a4f937c 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_outlinecolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_outlinewidth.py index 3e14f6ed76..f83858f25d 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_outlinewidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_separatethousands.py index 6f05d5743c..65ffd24008 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_showexponent.py index 4fccecccb1..302ee7bc14 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_showexponent.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_showticklabels.py index af156d321e..c1cc3221c9 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_showticklabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_showtickprefix.py index 8be035e5f9..ad023c7483 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_showtickprefix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_showticksuffix.py index e3e3e74dcd..7ac2b31507 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_showticksuffix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_thickness.py index 7ea64c9994..c00d2ec091 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_thicknessmode.py index abe0689bd4..4e264187a0 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_thicknessmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tick0.py index b656fcf66b..be4a1cbffb 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickangle.py index 1228b217a0..b1257f5dad 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickcolor.py index 9588c88b39..a3aae65555 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickformat.py index 7bea3959c4..48f9bd60e1 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..1041f070e8 --- /dev/null +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="parcoords.line.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "colorbars"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticklabelposition.py index eda8b597db..38c7b55d42 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticklen.py index 7943cda138..8bf279c2f0 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickmode.py index ba94722ad4..4f18d6145c 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickprefix.py index a504cd7daa..a65309146f 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticks.py index d315f288cf..5664d9d1ca 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticksuffix.py index 551a6b3f2e..05d3c93d2f 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticktext.py index 7b68929974..15032cb0f5 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticktextsrc.py index c69c73f549..f018f54f8a 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickvals.py index 39450b9cd0..9bc8b1f0fa 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickvalssrc.py index 45ebb6e564..29cfcf3d30 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickwidth.py index 5608eef161..541ed99d23 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_x.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_x.py index bcca677877..cb4d8cd2e1 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_x.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_xanchor.py index f27d97d42d..7ab0a09bac 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_xpad.py index df81121dc2..c01ef0d325 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_xpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_y.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_y.py index 0b1d2f9ce4..238324b782 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_y.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_yanchor.py index ba845ba68d..5d29a8e0a7 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ypad.py index a5ec2f9f02..38c7aff559 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/_ypad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickfont/_color.py index 878a980018..fb875ad72b 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickfont/_family.py index 6452ac6b00..489299b0a2 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickfont/_size.py index e217d1f88c..fc920ef874 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickformatstop/_dtickrange.py index 58d8ece059..4fd725e910 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "colorbars"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickformatstop/_enabled.py index e2830ebbab..efdf5febe5 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickformatstop/_name.py index db381a3afd..a23f0c2792 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickformatstop/_templateitemname.py index 2ea3b5a0e6..4b4ee6c08c 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickformatstop/_value.py index 7410d31c83..948f500177 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/title/_side.py index 01ebe302ba..c8d8e00de3 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/title/_side.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/title/_text.py index e8b0f72b77..9dd4afd7c5 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/title/font/_color.py index 536a078ec1..2126b1293f 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/title/font/_family.py index 4206ac1637..901b4e3f1a 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/title/font/_size.py index 47334170bb..872e6642d1 100644 --- a/packages/python/plotly/plotly/validators/parcoords/line/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/parcoords/line/colorbar/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/rangefont/_color.py b/packages/python/plotly/plotly/validators/parcoords/rangefont/_color.py index 694d1592a7..f907235031 100644 --- a/packages/python/plotly/plotly/validators/parcoords/rangefont/_color.py +++ b/packages/python/plotly/plotly/validators/parcoords/rangefont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/rangefont/_family.py b/packages/python/plotly/plotly/validators/parcoords/rangefont/_family.py index c17b79c811..864337246a 100644 --- a/packages/python/plotly/plotly/validators/parcoords/rangefont/_family.py +++ b/packages/python/plotly/plotly/validators/parcoords/rangefont/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/rangefont/_size.py b/packages/python/plotly/plotly/validators/parcoords/rangefont/_size.py index 26950c0f89..d6932ac7ab 100644 --- a/packages/python/plotly/plotly/validators/parcoords/rangefont/_size.py +++ b/packages/python/plotly/plotly/validators/parcoords/rangefont/_size.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="size", parent_name="parcoords.rangefont", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/parcoords/stream/_maxpoints.py index 02bb8f7bfa..f961b94ff2 100644 --- a/packages/python/plotly/plotly/validators/parcoords/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/parcoords/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/stream/_token.py b/packages/python/plotly/plotly/validators/parcoords/stream/_token.py index 13d221dce1..c1d22e2baa 100644 --- a/packages/python/plotly/plotly/validators/parcoords/stream/_token.py +++ b/packages/python/plotly/plotly/validators/parcoords/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="parcoords.stream", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/tickfont/_color.py b/packages/python/plotly/plotly/validators/parcoords/tickfont/_color.py index 06d3590b8d..28d4abcb39 100644 --- a/packages/python/plotly/plotly/validators/parcoords/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/parcoords/tickfont/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="parcoords.tickfont", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/tickfont/_family.py b/packages/python/plotly/plotly/validators/parcoords/tickfont/_family.py index 6da846d97a..bb2f83ea92 100644 --- a/packages/python/plotly/plotly/validators/parcoords/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/parcoords/tickfont/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/parcoords/tickfont/_size.py b/packages/python/plotly/plotly/validators/parcoords/tickfont/_size.py index 9acd135697..fdbceb9cfd 100644 --- a/packages/python/plotly/plotly/validators/parcoords/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/parcoords/tickfont/_size.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="size", parent_name="parcoords.tickfont", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_automargin.py b/packages/python/plotly/plotly/validators/pie/_automargin.py index 44d2dd9cc9..4844ddbecf 100644 --- a/packages/python/plotly/plotly/validators/pie/_automargin.py +++ b/packages/python/plotly/plotly/validators/pie/_automargin.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="automargin", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_customdata.py b/packages/python/plotly/plotly/validators/pie/_customdata.py index e93d14fa79..6e80d66fae 100644 --- a/packages/python/plotly/plotly/validators/pie/_customdata.py +++ b/packages/python/plotly/plotly/validators/pie/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_customdatasrc.py b/packages/python/plotly/plotly/validators/pie/_customdatasrc.py index 289893cf87..0181b6ffb2 100644 --- a/packages/python/plotly/plotly/validators/pie/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/pie/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_direction.py b/packages/python/plotly/plotly/validators/pie/_direction.py index 9f3fe8b8dc..d302f40e31 100644 --- a/packages/python/plotly/plotly/validators/pie/_direction.py +++ b/packages/python/plotly/plotly/validators/pie/_direction.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="direction", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["clockwise", "counterclockwise"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_dlabel.py b/packages/python/plotly/plotly/validators/pie/_dlabel.py index de2d405189..aba015ac1a 100644 --- a/packages/python/plotly/plotly/validators/pie/_dlabel.py +++ b/packages/python/plotly/plotly/validators/pie/_dlabel.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="dlabel", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_hole.py b/packages/python/plotly/plotly/validators/pie/_hole.py index 28ddaff59a..b2b7107fb1 100644 --- a/packages/python/plotly/plotly/validators/pie/_hole.py +++ b/packages/python/plotly/plotly/validators/pie/_hole.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="hole", parent_name="pie", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_hoverinfo.py b/packages/python/plotly/plotly/validators/pie/_hoverinfo.py index 92d4cf247b..a4fc692352 100644 --- a/packages/python/plotly/plotly/validators/pie/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/pie/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="pie", **kwargs): edit_type=kwargs.pop("edit_type", "none"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["label", "text", "value", "percent", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/pie/_hoverinfosrc.py index 6e6a834354..2d6e028623 100644 --- a/packages/python/plotly/plotly/validators/pie/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/pie/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_hovertemplate.py b/packages/python/plotly/plotly/validators/pie/_hovertemplate.py index a1ce2e2174..23793a9ebc 100644 --- a/packages/python/plotly/plotly/validators/pie/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/pie/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="pie", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/pie/_hovertemplatesrc.py index 3ebdeadc06..f02929db37 100644 --- a/packages/python/plotly/plotly/validators/pie/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/pie/_hovertemplatesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertemplatesrc", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_hovertext.py b/packages/python/plotly/plotly/validators/pie/_hovertext.py index 91226d2b40..15ca547881 100644 --- a/packages/python/plotly/plotly/validators/pie/_hovertext.py +++ b/packages/python/plotly/plotly/validators/pie/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="pie", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_hovertextsrc.py b/packages/python/plotly/plotly/validators/pie/_hovertextsrc.py index 27c5b74464..fcb79a9380 100644 --- a/packages/python/plotly/plotly/validators/pie/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/pie/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_ids.py b/packages/python/plotly/plotly/validators/pie/_ids.py index 974be11ab0..08d9397fe0 100644 --- a/packages/python/plotly/plotly/validators/pie/_ids.py +++ b/packages/python/plotly/plotly/validators/pie/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_idssrc.py b/packages/python/plotly/plotly/validators/pie/_idssrc.py index 0e65f34e87..24b6a71de1 100644 --- a/packages/python/plotly/plotly/validators/pie/_idssrc.py +++ b/packages/python/plotly/plotly/validators/pie/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_insidetextorientation.py b/packages/python/plotly/plotly/validators/pie/_insidetextorientation.py index 82210251bd..7a45a2af47 100644 --- a/packages/python/plotly/plotly/validators/pie/_insidetextorientation.py +++ b/packages/python/plotly/plotly/validators/pie/_insidetextorientation.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["horizontal", "radial", "tangential", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_label0.py b/packages/python/plotly/plotly/validators/pie/_label0.py index eb51836b36..f96153f7c5 100644 --- a/packages/python/plotly/plotly/validators/pie/_label0.py +++ b/packages/python/plotly/plotly/validators/pie/_label0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="label0", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_labels.py b/packages/python/plotly/plotly/validators/pie/_labels.py index b591763136..3c038425b7 100644 --- a/packages/python/plotly/plotly/validators/pie/_labels.py +++ b/packages/python/plotly/plotly/validators/pie/_labels.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="labels", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_labelssrc.py b/packages/python/plotly/plotly/validators/pie/_labelssrc.py index f853ac78e1..173a976b65 100644 --- a/packages/python/plotly/plotly/validators/pie/_labelssrc.py +++ b/packages/python/plotly/plotly/validators/pie/_labelssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="labelssrc", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_legendgroup.py b/packages/python/plotly/plotly/validators/pie/_legendgroup.py index 9860225303..92d8ffc750 100644 --- a/packages/python/plotly/plotly/validators/pie/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/pie/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_meta.py b/packages/python/plotly/plotly/validators/pie/_meta.py index e384052a08..74833fbac1 100644 --- a/packages/python/plotly/plotly/validators/pie/_meta.py +++ b/packages/python/plotly/plotly/validators/pie/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="pie", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_metasrc.py b/packages/python/plotly/plotly/validators/pie/_metasrc.py index 298fcc309f..15fcad7421 100644 --- a/packages/python/plotly/plotly/validators/pie/_metasrc.py +++ b/packages/python/plotly/plotly/validators/pie/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_name.py b/packages/python/plotly/plotly/validators/pie/_name.py index 139b497183..754e3bb8ab 100644 --- a/packages/python/plotly/plotly/validators/pie/_name.py +++ b/packages/python/plotly/plotly/validators/pie/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_opacity.py b/packages/python/plotly/plotly/validators/pie/_opacity.py index bd16561c3c..a1161e7823 100644 --- a/packages/python/plotly/plotly/validators/pie/_opacity.py +++ b/packages/python/plotly/plotly/validators/pie/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="pie", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_pull.py b/packages/python/plotly/plotly/validators/pie/_pull.py index b83d1ec489..fb47b0ce04 100644 --- a/packages/python/plotly/plotly/validators/pie/_pull.py +++ b/packages/python/plotly/plotly/validators/pie/_pull.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="pull", parent_name="pie", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_pullsrc.py b/packages/python/plotly/plotly/validators/pie/_pullsrc.py index 24a56f7ebe..19598f0649 100644 --- a/packages/python/plotly/plotly/validators/pie/_pullsrc.py +++ b/packages/python/plotly/plotly/validators/pie/_pullsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="pullsrc", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_rotation.py b/packages/python/plotly/plotly/validators/pie/_rotation.py index e8012335f0..35d4c93ba2 100644 --- a/packages/python/plotly/plotly/validators/pie/_rotation.py +++ b/packages/python/plotly/plotly/validators/pie/_rotation.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="rotation", parent_name="pie", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 360), min=kwargs.pop("min", -360), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_scalegroup.py b/packages/python/plotly/plotly/validators/pie/_scalegroup.py index 0e6f83e3f9..d0fa687a8c 100644 --- a/packages/python/plotly/plotly/validators/pie/_scalegroup.py +++ b/packages/python/plotly/plotly/validators/pie/_scalegroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="scalegroup", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_showlegend.py b/packages/python/plotly/plotly/validators/pie/_showlegend.py index 6868befb35..284ca90b4d 100644 --- a/packages/python/plotly/plotly/validators/pie/_showlegend.py +++ b/packages/python/plotly/plotly/validators/pie/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_sort.py b/packages/python/plotly/plotly/validators/pie/_sort.py index 11ee25aedb..f27df488c0 100644 --- a/packages/python/plotly/plotly/validators/pie/_sort.py +++ b/packages/python/plotly/plotly/validators/pie/_sort.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="sort", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_text.py b/packages/python/plotly/plotly/validators/pie/_text.py index 246b0c2c39..1130649727 100644 --- a/packages/python/plotly/plotly/validators/pie/_text.py +++ b/packages/python/plotly/plotly/validators/pie/_text.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="text", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_textinfo.py b/packages/python/plotly/plotly/validators/pie/_textinfo.py index 97f0318fe3..b4de62f0ee 100644 --- a/packages/python/plotly/plotly/validators/pie/_textinfo.py +++ b/packages/python/plotly/plotly/validators/pie/_textinfo.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="textinfo", parent_name="pie", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), extras=kwargs.pop("extras", ["none"]), flags=kwargs.pop("flags", ["label", "text", "value", "percent"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_textposition.py b/packages/python/plotly/plotly/validators/pie/_textposition.py index ff6fb9477e..6e40d02b87 100644 --- a/packages/python/plotly/plotly/validators/pie/_textposition.py +++ b/packages/python/plotly/plotly/validators/pie/_textposition.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="textposition", parent_name="pie", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["inside", "outside", "auto", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_textpositionsrc.py b/packages/python/plotly/plotly/validators/pie/_textpositionsrc.py index a4e5f131d0..ea92a5c584 100644 --- a/packages/python/plotly/plotly/validators/pie/_textpositionsrc.py +++ b/packages/python/plotly/plotly/validators/pie/_textpositionsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textpositionsrc", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_textsrc.py b/packages/python/plotly/plotly/validators/pie/_textsrc.py index e0171bdfc6..ca1c80ca20 100644 --- a/packages/python/plotly/plotly/validators/pie/_textsrc.py +++ b/packages/python/plotly/plotly/validators/pie/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_texttemplate.py b/packages/python/plotly/plotly/validators/pie/_texttemplate.py index bcabcce18b..cf189cd7a3 100644 --- a/packages/python/plotly/plotly/validators/pie/_texttemplate.py +++ b/packages/python/plotly/plotly/validators/pie/_texttemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="texttemplate", parent_name="pie", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_texttemplatesrc.py b/packages/python/plotly/plotly/validators/pie/_texttemplatesrc.py index bb969b0a58..ab2c3b37df 100644 --- a/packages/python/plotly/plotly/validators/pie/_texttemplatesrc.py +++ b/packages/python/plotly/plotly/validators/pie/_texttemplatesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="texttemplatesrc", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_uid.py b/packages/python/plotly/plotly/validators/pie/_uid.py index 9985f3b9c7..a4f5acf518 100644 --- a/packages/python/plotly/plotly/validators/pie/_uid.py +++ b/packages/python/plotly/plotly/validators/pie/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_uirevision.py b/packages/python/plotly/plotly/validators/pie/_uirevision.py index 41fcae4188..f7b4dac868 100644 --- a/packages/python/plotly/plotly/validators/pie/_uirevision.py +++ b/packages/python/plotly/plotly/validators/pie/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_values.py b/packages/python/plotly/plotly/validators/pie/_values.py index 21c6a4c058..e45d5ca276 100644 --- a/packages/python/plotly/plotly/validators/pie/_values.py +++ b/packages/python/plotly/plotly/validators/pie/_values.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="values", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_valuessrc.py b/packages/python/plotly/plotly/validators/pie/_valuessrc.py index b778085594..9d3e8530a7 100644 --- a/packages/python/plotly/plotly/validators/pie/_valuessrc.py +++ b/packages/python/plotly/plotly/validators/pie/_valuessrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="valuessrc", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/_visible.py b/packages/python/plotly/plotly/validators/pie/_visible.py index 0fc27882cf..f4d5540120 100644 --- a/packages/python/plotly/plotly/validators/pie/_visible.py +++ b/packages/python/plotly/plotly/validators/pie/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="pie", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/domain/_column.py b/packages/python/plotly/plotly/validators/pie/domain/_column.py index 1ebb51ce5d..9a4b11d353 100644 --- a/packages/python/plotly/plotly/validators/pie/domain/_column.py +++ b/packages/python/plotly/plotly/validators/pie/domain/_column.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="column", parent_name="pie.domain", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/domain/_row.py b/packages/python/plotly/plotly/validators/pie/domain/_row.py index c1bfdbc611..d2bbfa9214 100644 --- a/packages/python/plotly/plotly/validators/pie/domain/_row.py +++ b/packages/python/plotly/plotly/validators/pie/domain/_row.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="row", parent_name="pie.domain", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/domain/_x.py b/packages/python/plotly/plotly/validators/pie/domain/_x.py index 3d133c0a60..f4c771ffc2 100644 --- a/packages/python/plotly/plotly/validators/pie/domain/_x.py +++ b/packages/python/plotly/plotly/validators/pie/domain/_x.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="x", parent_name="pie.domain", **kwargs): {"valType": "number", "min": 0, "max": 1, "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/domain/_y.py b/packages/python/plotly/plotly/validators/pie/domain/_y.py index 4901b8670a..6578eda21e 100644 --- a/packages/python/plotly/plotly/validators/pie/domain/_y.py +++ b/packages/python/plotly/plotly/validators/pie/domain/_y.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="y", parent_name="pie.domain", **kwargs): {"valType": "number", "min": 0, "max": 1, "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/pie/hoverlabel/_align.py index f262ae7fdc..5cc286bb07 100644 --- a/packages/python/plotly/plotly/validators/pie/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/pie/hoverlabel/_align.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="align", parent_name="pie.hoverlabel", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/pie/hoverlabel/_alignsrc.py index ccb444a66d..59d7cdbc49 100644 --- a/packages/python/plotly/plotly/validators/pie/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/pie/hoverlabel/_alignsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="alignsrc", parent_name="pie.hoverlabel", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/pie/hoverlabel/_bgcolor.py index 7a8adb58ca..84f9336874 100644 --- a/packages/python/plotly/plotly/validators/pie/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/pie/hoverlabel/_bgcolor.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="bgcolor", parent_name="pie.hoverlabel", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/pie/hoverlabel/_bgcolorsrc.py index 8684e3e649..11ff774272 100644 --- a/packages/python/plotly/plotly/validators/pie/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/pie/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/pie/hoverlabel/_bordercolor.py index de96c33613..b136600f12 100644 --- a/packages/python/plotly/plotly/validators/pie/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/pie/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/pie/hoverlabel/_bordercolorsrc.py index a015903d00..3c40add56d 100644 --- a/packages/python/plotly/plotly/validators/pie/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/pie/hoverlabel/_bordercolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/pie/hoverlabel/_namelength.py index 86324404b6..11cf20758c 100644 --- a/packages/python/plotly/plotly/validators/pie/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/pie/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/pie/hoverlabel/_namelengthsrc.py index 5983538cb0..4782ff4d9e 100644 --- a/packages/python/plotly/plotly/validators/pie/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/pie/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/pie/hoverlabel/font/_color.py index bcebe7f102..82d4fa8545 100644 --- a/packages/python/plotly/plotly/validators/pie/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/pie/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/pie/hoverlabel/font/_colorsrc.py index 4a66414a7e..ff254fb6c3 100644 --- a/packages/python/plotly/plotly/validators/pie/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/pie/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/pie/hoverlabel/font/_family.py index 063089a12d..28a21a56ac 100644 --- a/packages/python/plotly/plotly/validators/pie/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/pie/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/pie/hoverlabel/font/_familysrc.py index 63dc086c45..9fc29def98 100644 --- a/packages/python/plotly/plotly/validators/pie/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/pie/hoverlabel/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/pie/hoverlabel/font/_size.py index fa04d765fc..f545168551 100644 --- a/packages/python/plotly/plotly/validators/pie/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/pie/hoverlabel/font/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="pie.hoverlabel.font", **kwar array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/pie/hoverlabel/font/_sizesrc.py index c0c6674d42..48c8036e76 100644 --- a/packages/python/plotly/plotly/validators/pie/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/pie/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/insidetextfont/_color.py b/packages/python/plotly/plotly/validators/pie/insidetextfont/_color.py index a9d1b1e4d0..7ffc7d7255 100644 --- a/packages/python/plotly/plotly/validators/pie/insidetextfont/_color.py +++ b/packages/python/plotly/plotly/validators/pie/insidetextfont/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="pie.insidetextfont", **kwar parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/insidetextfont/_colorsrc.py b/packages/python/plotly/plotly/validators/pie/insidetextfont/_colorsrc.py index e68ccf7d1d..99429fb42d 100644 --- a/packages/python/plotly/plotly/validators/pie/insidetextfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/pie/insidetextfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/insidetextfont/_family.py b/packages/python/plotly/plotly/validators/pie/insidetextfont/_family.py index 00c045cb3c..13df87d4bf 100644 --- a/packages/python/plotly/plotly/validators/pie/insidetextfont/_family.py +++ b/packages/python/plotly/plotly/validators/pie/insidetextfont/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/insidetextfont/_familysrc.py b/packages/python/plotly/plotly/validators/pie/insidetextfont/_familysrc.py index 52386f7ef2..82d98d2516 100644 --- a/packages/python/plotly/plotly/validators/pie/insidetextfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/pie/insidetextfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/insidetextfont/_size.py b/packages/python/plotly/plotly/validators/pie/insidetextfont/_size.py index cd20b82ba7..bfd326de6c 100644 --- a/packages/python/plotly/plotly/validators/pie/insidetextfont/_size.py +++ b/packages/python/plotly/plotly/validators/pie/insidetextfont/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="pie.insidetextfont", **kwarg array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/insidetextfont/_sizesrc.py b/packages/python/plotly/plotly/validators/pie/insidetextfont/_sizesrc.py index 38efd4becd..044ac9b94d 100644 --- a/packages/python/plotly/plotly/validators/pie/insidetextfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/pie/insidetextfont/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/marker/_colors.py b/packages/python/plotly/plotly/validators/pie/marker/_colors.py index 989df8487d..af7b8aaa6d 100644 --- a/packages/python/plotly/plotly/validators/pie/marker/_colors.py +++ b/packages/python/plotly/plotly/validators/pie/marker/_colors.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="colors", parent_name="pie.marker", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/marker/_colorssrc.py b/packages/python/plotly/plotly/validators/pie/marker/_colorssrc.py index e501579156..80743fe96c 100644 --- a/packages/python/plotly/plotly/validators/pie/marker/_colorssrc.py +++ b/packages/python/plotly/plotly/validators/pie/marker/_colorssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="colorssrc", parent_name="pie.marker", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/marker/line/_color.py b/packages/python/plotly/plotly/validators/pie/marker/line/_color.py index 15307ac2b0..1ae5f81d61 100644 --- a/packages/python/plotly/plotly/validators/pie/marker/line/_color.py +++ b/packages/python/plotly/plotly/validators/pie/marker/line/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="pie.marker.line", **kwargs) parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/marker/line/_colorsrc.py b/packages/python/plotly/plotly/validators/pie/marker/line/_colorsrc.py index fccad527b8..0033719f76 100644 --- a/packages/python/plotly/plotly/validators/pie/marker/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/pie/marker/line/_colorsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="colorsrc", parent_name="pie.marker.line", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/marker/line/_width.py b/packages/python/plotly/plotly/validators/pie/marker/line/_width.py index 7cef7477ec..ce915975a6 100644 --- a/packages/python/plotly/plotly/validators/pie/marker/line/_width.py +++ b/packages/python/plotly/plotly/validators/pie/marker/line/_width.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="width", parent_name="pie.marker.line", **kwargs) array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/marker/line/_widthsrc.py b/packages/python/plotly/plotly/validators/pie/marker/line/_widthsrc.py index e9fb1e5849..7c9eca70de 100644 --- a/packages/python/plotly/plotly/validators/pie/marker/line/_widthsrc.py +++ b/packages/python/plotly/plotly/validators/pie/marker/line/_widthsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="widthsrc", parent_name="pie.marker.line", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/outsidetextfont/_color.py b/packages/python/plotly/plotly/validators/pie/outsidetextfont/_color.py index b588827bff..9976df2d35 100644 --- a/packages/python/plotly/plotly/validators/pie/outsidetextfont/_color.py +++ b/packages/python/plotly/plotly/validators/pie/outsidetextfont/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/outsidetextfont/_colorsrc.py b/packages/python/plotly/plotly/validators/pie/outsidetextfont/_colorsrc.py index b4ca37f603..eb100f028c 100644 --- a/packages/python/plotly/plotly/validators/pie/outsidetextfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/pie/outsidetextfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/outsidetextfont/_family.py b/packages/python/plotly/plotly/validators/pie/outsidetextfont/_family.py index 9775391fba..23efb08713 100644 --- a/packages/python/plotly/plotly/validators/pie/outsidetextfont/_family.py +++ b/packages/python/plotly/plotly/validators/pie/outsidetextfont/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/outsidetextfont/_familysrc.py b/packages/python/plotly/plotly/validators/pie/outsidetextfont/_familysrc.py index 79c6b8068f..05c7ec50c6 100644 --- a/packages/python/plotly/plotly/validators/pie/outsidetextfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/pie/outsidetextfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/outsidetextfont/_size.py b/packages/python/plotly/plotly/validators/pie/outsidetextfont/_size.py index a0ae9378d1..ca6055cfa2 100644 --- a/packages/python/plotly/plotly/validators/pie/outsidetextfont/_size.py +++ b/packages/python/plotly/plotly/validators/pie/outsidetextfont/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="pie.outsidetextfont", **kwar array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/outsidetextfont/_sizesrc.py b/packages/python/plotly/plotly/validators/pie/outsidetextfont/_sizesrc.py index bcead05cfd..3815ec32a3 100644 --- a/packages/python/plotly/plotly/validators/pie/outsidetextfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/pie/outsidetextfont/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/pie/stream/_maxpoints.py index 17f5fad8f3..b1754f774e 100644 --- a/packages/python/plotly/plotly/validators/pie/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/pie/stream/_maxpoints.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="maxpoints", parent_name="pie.stream", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/stream/_token.py b/packages/python/plotly/plotly/validators/pie/stream/_token.py index 6205f2e416..209114081f 100644 --- a/packages/python/plotly/plotly/validators/pie/stream/_token.py +++ b/packages/python/plotly/plotly/validators/pie/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="pie.stream", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/textfont/_color.py b/packages/python/plotly/plotly/validators/pie/textfont/_color.py index 714bfbec47..2dcf3caf54 100644 --- a/packages/python/plotly/plotly/validators/pie/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/pie/textfont/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="pie.textfont", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/textfont/_colorsrc.py b/packages/python/plotly/plotly/validators/pie/textfont/_colorsrc.py index ed2d7db861..6fbeb46f3a 100644 --- a/packages/python/plotly/plotly/validators/pie/textfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/pie/textfont/_colorsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="colorsrc", parent_name="pie.textfont", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/textfont/_family.py b/packages/python/plotly/plotly/validators/pie/textfont/_family.py index d65c40d449..d2ab63e89f 100644 --- a/packages/python/plotly/plotly/validators/pie/textfont/_family.py +++ b/packages/python/plotly/plotly/validators/pie/textfont/_family.py @@ -9,7 +9,6 @@ def __init__(self, plotly_name="family", parent_name="pie.textfont", **kwargs): array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/textfont/_familysrc.py b/packages/python/plotly/plotly/validators/pie/textfont/_familysrc.py index bc54b8b793..009acea446 100644 --- a/packages/python/plotly/plotly/validators/pie/textfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/pie/textfont/_familysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="familysrc", parent_name="pie.textfont", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/textfont/_size.py b/packages/python/plotly/plotly/validators/pie/textfont/_size.py index 016d7fcff3..64c28c1ddb 100644 --- a/packages/python/plotly/plotly/validators/pie/textfont/_size.py +++ b/packages/python/plotly/plotly/validators/pie/textfont/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="pie.textfont", **kwargs): array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/textfont/_sizesrc.py b/packages/python/plotly/plotly/validators/pie/textfont/_sizesrc.py index 8c40fd2cb6..fc3ee0f132 100644 --- a/packages/python/plotly/plotly/validators/pie/textfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/pie/textfont/_sizesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="sizesrc", parent_name="pie.textfont", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/title/_position.py b/packages/python/plotly/plotly/validators/pie/title/_position.py index 4363037db4..22094b5b49 100644 --- a/packages/python/plotly/plotly/validators/pie/title/_position.py +++ b/packages/python/plotly/plotly/validators/pie/title/_position.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="position", parent_name="pie.title", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/pie/title/_text.py b/packages/python/plotly/plotly/validators/pie/title/_text.py index bf1bcd39b0..7a1681095e 100644 --- a/packages/python/plotly/plotly/validators/pie/title/_text.py +++ b/packages/python/plotly/plotly/validators/pie/title/_text.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="text", parent_name="pie.title", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/title/font/_color.py b/packages/python/plotly/plotly/validators/pie/title/font/_color.py index aeaa32f07b..813cd44eb0 100644 --- a/packages/python/plotly/plotly/validators/pie/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/pie/title/font/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="pie.title.font", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/title/font/_colorsrc.py b/packages/python/plotly/plotly/validators/pie/title/font/_colorsrc.py index e9c52efe54..35484b83e8 100644 --- a/packages/python/plotly/plotly/validators/pie/title/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/pie/title/font/_colorsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="colorsrc", parent_name="pie.title.font", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/title/font/_family.py b/packages/python/plotly/plotly/validators/pie/title/font/_family.py index 8b658bcaf8..e50f4e9536 100644 --- a/packages/python/plotly/plotly/validators/pie/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/pie/title/font/_family.py @@ -9,7 +9,6 @@ def __init__(self, plotly_name="family", parent_name="pie.title.font", **kwargs) array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/title/font/_familysrc.py b/packages/python/plotly/plotly/validators/pie/title/font/_familysrc.py index e337f4b5bb..19e3550ba9 100644 --- a/packages/python/plotly/plotly/validators/pie/title/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/pie/title/font/_familysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="familysrc", parent_name="pie.title.font", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/title/font/_size.py b/packages/python/plotly/plotly/validators/pie/title/font/_size.py index 437ec43d23..70f5a2c5df 100644 --- a/packages/python/plotly/plotly/validators/pie/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/pie/title/font/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="pie.title.font", **kwargs): array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pie/title/font/_sizesrc.py b/packages/python/plotly/plotly/validators/pie/title/font/_sizesrc.py index f604ce0950..f6ef86c250 100644 --- a/packages/python/plotly/plotly/validators/pie/title/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/pie/title/font/_sizesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="sizesrc", parent_name="pie.title.font", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_customdata.py b/packages/python/plotly/plotly/validators/pointcloud/_customdata.py index c87aa88c93..fb5f70ae3c 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_customdata.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="pointcloud", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_customdatasrc.py b/packages/python/plotly/plotly/validators/pointcloud/_customdatasrc.py index 23237af71c..bd1d93708c 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="pointcloud", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_hoverinfo.py b/packages/python/plotly/plotly/validators/pointcloud/_hoverinfo.py index 2fffddaad4..95861d7ae9 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="pointcloud", **kwargs): edit_type=kwargs.pop("edit_type", "none"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["x", "y", "z", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/pointcloud/_hoverinfosrc.py index 6a8900148b..b751a7c547 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="pointcloud", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_ids.py b/packages/python/plotly/plotly/validators/pointcloud/_ids.py index 4140eb4af5..6340503c19 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_ids.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="pointcloud", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_idssrc.py b/packages/python/plotly/plotly/validators/pointcloud/_idssrc.py index 8d0f181af6..6e07bdd834 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_idssrc.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="pointcloud", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_indices.py b/packages/python/plotly/plotly/validators/pointcloud/_indices.py index e8a27c80f6..d1826c07cf 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_indices.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_indices.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="indices", parent_name="pointcloud", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_indicessrc.py b/packages/python/plotly/plotly/validators/pointcloud/_indicessrc.py index 9fb55db393..bd04ef0852 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_indicessrc.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_indicessrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="indicessrc", parent_name="pointcloud", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_legendgroup.py b/packages/python/plotly/plotly/validators/pointcloud/_legendgroup.py index bc05fced83..3295ac55d4 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="pointcloud", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_meta.py b/packages/python/plotly/plotly/validators/pointcloud/_meta.py index 3476ef34df..ea5ddc0af9 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_meta.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="pointcloud", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_metasrc.py b/packages/python/plotly/plotly/validators/pointcloud/_metasrc.py index 5a0d5066aa..c7ffbbc816 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_metasrc.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="pointcloud", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_name.py b/packages/python/plotly/plotly/validators/pointcloud/_name.py index ac151324f3..b76dd20c5f 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_name.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="pointcloud", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_opacity.py b/packages/python/plotly/plotly/validators/pointcloud/_opacity.py index deeca76627..3fe57d6377 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_opacity.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="pointcloud", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_showlegend.py b/packages/python/plotly/plotly/validators/pointcloud/_showlegend.py index c81daaa799..8f994ee30a 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_showlegend.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="pointcloud", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_text.py b/packages/python/plotly/plotly/validators/pointcloud/_text.py index 5541c79dfb..62e9a64c5a 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_text.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="pointcloud", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_textsrc.py b/packages/python/plotly/plotly/validators/pointcloud/_textsrc.py index 87a631eebb..929505d174 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_textsrc.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="pointcloud", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_uid.py b/packages/python/plotly/plotly/validators/pointcloud/_uid.py index 92f57ac9cf..1a2691c7f7 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_uid.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="pointcloud", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_uirevision.py b/packages/python/plotly/plotly/validators/pointcloud/_uirevision.py index 5555efc9e2..5ba4d1ac66 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_uirevision.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="pointcloud", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_visible.py b/packages/python/plotly/plotly/validators/pointcloud/_visible.py index 9871843019..effc63d7f9 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_visible.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="pointcloud", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_x.py b/packages/python/plotly/plotly/validators/pointcloud/_x.py index bc1172e3b5..269ad150fd 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_x.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_x.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x", parent_name="pointcloud", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_xaxis.py b/packages/python/plotly/plotly/validators/pointcloud/_xaxis.py index 0068f68e9c..468b208795 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_xaxis.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_xaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xaxis", parent_name="pointcloud", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "x"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_xbounds.py b/packages/python/plotly/plotly/validators/pointcloud/_xbounds.py index a177f8d3eb..23848d96ee 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_xbounds.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_xbounds.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xbounds", parent_name="pointcloud", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_xboundssrc.py b/packages/python/plotly/plotly/validators/pointcloud/_xboundssrc.py index 0dec1da3e7..61e06e4980 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_xboundssrc.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_xboundssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xboundssrc", parent_name="pointcloud", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_xsrc.py b/packages/python/plotly/plotly/validators/pointcloud/_xsrc.py index 8033a4c4b4..e033db4707 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_xsrc.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="pointcloud", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_xy.py b/packages/python/plotly/plotly/validators/pointcloud/_xy.py index 1fd53c4513..fa9bbb64d9 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_xy.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_xy.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xy", parent_name="pointcloud", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_xysrc.py b/packages/python/plotly/plotly/validators/pointcloud/_xysrc.py index c0dc8152ec..7aa654c3a1 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_xysrc.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_xysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xysrc", parent_name="pointcloud", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_y.py b/packages/python/plotly/plotly/validators/pointcloud/_y.py index cf993b5f0f..5325b6e18f 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_y.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_y.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y", parent_name="pointcloud", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_yaxis.py b/packages/python/plotly/plotly/validators/pointcloud/_yaxis.py index 454545b8e8..045d1e7392 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_yaxis.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_yaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="yaxis", parent_name="pointcloud", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "y"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_ybounds.py b/packages/python/plotly/plotly/validators/pointcloud/_ybounds.py index 3dec24ed17..47a24b1b4b 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_ybounds.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_ybounds.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ybounds", parent_name="pointcloud", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_yboundssrc.py b/packages/python/plotly/plotly/validators/pointcloud/_yboundssrc.py index 43c8b94ae3..f280a0d2ba 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_yboundssrc.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_yboundssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="yboundssrc", parent_name="pointcloud", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/_ysrc.py b/packages/python/plotly/plotly/validators/pointcloud/_ysrc.py index e858bcfb72..920d7a7cd2 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/_ysrc.py +++ b/packages/python/plotly/plotly/validators/pointcloud/_ysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ysrc", parent_name="pointcloud", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_align.py index 257d97b42f..b804615072 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_align.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_alignsrc.py index 94d8696509..c154b864fe 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_bgcolor.py index 3d0a449fe5..018a912ec2 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_bgcolorsrc.py index 239ef8a9a9..1812e57648 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_bordercolor.py index b7b4722c8d..4f12277257 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_bordercolorsrc.py index 3ae41d7e0d..88d0e5e6b5 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_bordercolorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_namelength.py index f17b690d8e..543d2dab71 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_namelengthsrc.py index 5f3a861c0a..5a6f17d670 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/font/_color.py index 730942050c..ab79906bd3 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/font/_colorsrc.py index fc7b049a00..ca65f8f518 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/font/_family.py index bbfc7b0b0f..59fad2e336 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/font/_familysrc.py index b429638a06..984d74d85b 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/font/_familysrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/font/_size.py index 392724c8d6..0f201eeb18 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/font/_sizesrc.py index e5d8a48096..9ba72c4fcf 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/pointcloud/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/marker/_blend.py b/packages/python/plotly/plotly/validators/pointcloud/marker/_blend.py index a7159c96a6..66830c340c 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/marker/_blend.py +++ b/packages/python/plotly/plotly/validators/pointcloud/marker/_blend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="blend", parent_name="pointcloud.marker", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/marker/_color.py b/packages/python/plotly/plotly/validators/pointcloud/marker/_color.py index e26044b970..51061d5ea3 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/marker/_color.py +++ b/packages/python/plotly/plotly/validators/pointcloud/marker/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="pointcloud.marker", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/marker/_opacity.py b/packages/python/plotly/plotly/validators/pointcloud/marker/_opacity.py index 0aacfbc4c4..375969a686 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/pointcloud/marker/_opacity.py @@ -12,6 +12,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/marker/_sizemax.py b/packages/python/plotly/plotly/validators/pointcloud/marker/_sizemax.py index 336b0e6ab5..8cdf1ceac5 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/marker/_sizemax.py +++ b/packages/python/plotly/plotly/validators/pointcloud/marker/_sizemax.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0.1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/marker/_sizemin.py b/packages/python/plotly/plotly/validators/pointcloud/marker/_sizemin.py index 9a3badfd81..502dd7fbf6 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/marker/_sizemin.py +++ b/packages/python/plotly/plotly/validators/pointcloud/marker/_sizemin.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 2), min=kwargs.pop("min", 0.1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/marker/border/_arearatio.py b/packages/python/plotly/plotly/validators/pointcloud/marker/border/_arearatio.py index 481437b45c..b09044cba9 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/marker/border/_arearatio.py +++ b/packages/python/plotly/plotly/validators/pointcloud/marker/border/_arearatio.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/marker/border/_color.py b/packages/python/plotly/plotly/validators/pointcloud/marker/border/_color.py index 873d1c025f..984dbe3547 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/marker/border/_color.py +++ b/packages/python/plotly/plotly/validators/pointcloud/marker/border/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/pointcloud/stream/_maxpoints.py index 5dda094890..67319650f4 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/pointcloud/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/pointcloud/stream/_token.py b/packages/python/plotly/plotly/validators/pointcloud/stream/_token.py index 73afdebe3d..c3069a6677 100644 --- a/packages/python/plotly/plotly/validators/pointcloud/stream/_token.py +++ b/packages/python/plotly/plotly/validators/pointcloud/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="pointcloud.stream", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/_arrangement.py b/packages/python/plotly/plotly/validators/sankey/_arrangement.py index d6eef14408..30f658d110 100644 --- a/packages/python/plotly/plotly/validators/sankey/_arrangement.py +++ b/packages/python/plotly/plotly/validators/sankey/_arrangement.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="arrangement", parent_name="sankey", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["snap", "perpendicular", "freeform", "fixed"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/_customdata.py b/packages/python/plotly/plotly/validators/sankey/_customdata.py index 4e011850e5..a3eb10a394 100644 --- a/packages/python/plotly/plotly/validators/sankey/_customdata.py +++ b/packages/python/plotly/plotly/validators/sankey/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="sankey", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/_customdatasrc.py b/packages/python/plotly/plotly/validators/sankey/_customdatasrc.py index b22e67f713..b50f0c2433 100644 --- a/packages/python/plotly/plotly/validators/sankey/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/sankey/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="sankey", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/_hoverinfo.py b/packages/python/plotly/plotly/validators/sankey/_hoverinfo.py index d57c3b4655..a6e534126a 100644 --- a/packages/python/plotly/plotly/validators/sankey/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/sankey/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="sankey", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", []), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/_ids.py b/packages/python/plotly/plotly/validators/sankey/_ids.py index 936f315051..95179544f5 100644 --- a/packages/python/plotly/plotly/validators/sankey/_ids.py +++ b/packages/python/plotly/plotly/validators/sankey/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="sankey", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/_idssrc.py b/packages/python/plotly/plotly/validators/sankey/_idssrc.py index 9083d884be..39fa629d01 100644 --- a/packages/python/plotly/plotly/validators/sankey/_idssrc.py +++ b/packages/python/plotly/plotly/validators/sankey/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="sankey", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/_meta.py b/packages/python/plotly/plotly/validators/sankey/_meta.py index 21846ff2e6..604b2ac050 100644 --- a/packages/python/plotly/plotly/validators/sankey/_meta.py +++ b/packages/python/plotly/plotly/validators/sankey/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="sankey", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/_metasrc.py b/packages/python/plotly/plotly/validators/sankey/_metasrc.py index f300f81d97..f4b6e7081d 100644 --- a/packages/python/plotly/plotly/validators/sankey/_metasrc.py +++ b/packages/python/plotly/plotly/validators/sankey/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="sankey", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/_name.py b/packages/python/plotly/plotly/validators/sankey/_name.py index 85ac845bc1..5a147dbc4b 100644 --- a/packages/python/plotly/plotly/validators/sankey/_name.py +++ b/packages/python/plotly/plotly/validators/sankey/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="sankey", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/_orientation.py b/packages/python/plotly/plotly/validators/sankey/_orientation.py index 6b3d6cdf93..b0b130e010 100644 --- a/packages/python/plotly/plotly/validators/sankey/_orientation.py +++ b/packages/python/plotly/plotly/validators/sankey/_orientation.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="orientation", parent_name="sankey", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["v", "h"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/_selectedpoints.py b/packages/python/plotly/plotly/validators/sankey/_selectedpoints.py index 1c8396f334..ec54bc8bc4 100644 --- a/packages/python/plotly/plotly/validators/sankey/_selectedpoints.py +++ b/packages/python/plotly/plotly/validators/sankey/_selectedpoints.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="selectedpoints", parent_name="sankey", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/_uid.py b/packages/python/plotly/plotly/validators/sankey/_uid.py index a48cd88526..1f6c6b5bd5 100644 --- a/packages/python/plotly/plotly/validators/sankey/_uid.py +++ b/packages/python/plotly/plotly/validators/sankey/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="sankey", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/_uirevision.py b/packages/python/plotly/plotly/validators/sankey/_uirevision.py index be4381cc97..7b40b70486 100644 --- a/packages/python/plotly/plotly/validators/sankey/_uirevision.py +++ b/packages/python/plotly/plotly/validators/sankey/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="sankey", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/_valueformat.py b/packages/python/plotly/plotly/validators/sankey/_valueformat.py index 5694305bca..591e0785f3 100644 --- a/packages/python/plotly/plotly/validators/sankey/_valueformat.py +++ b/packages/python/plotly/plotly/validators/sankey/_valueformat.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="valueformat", parent_name="sankey", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/_valuesuffix.py b/packages/python/plotly/plotly/validators/sankey/_valuesuffix.py index f28d258d69..cd043491b2 100644 --- a/packages/python/plotly/plotly/validators/sankey/_valuesuffix.py +++ b/packages/python/plotly/plotly/validators/sankey/_valuesuffix.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="valuesuffix", parent_name="sankey", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/_visible.py b/packages/python/plotly/plotly/validators/sankey/_visible.py index 46a0a1a1d1..4c7be6b7ab 100644 --- a/packages/python/plotly/plotly/validators/sankey/_visible.py +++ b/packages/python/plotly/plotly/validators/sankey/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="sankey", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/domain/_column.py b/packages/python/plotly/plotly/validators/sankey/domain/_column.py index 26d8f0f233..adea0a71d5 100644 --- a/packages/python/plotly/plotly/validators/sankey/domain/_column.py +++ b/packages/python/plotly/plotly/validators/sankey/domain/_column.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="column", parent_name="sankey.domain", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/domain/_row.py b/packages/python/plotly/plotly/validators/sankey/domain/_row.py index 0d5a4e71ac..46df81ec36 100644 --- a/packages/python/plotly/plotly/validators/sankey/domain/_row.py +++ b/packages/python/plotly/plotly/validators/sankey/domain/_row.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="row", parent_name="sankey.domain", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/domain/_x.py b/packages/python/plotly/plotly/validators/sankey/domain/_x.py index 210f812da8..f9da4f947e 100644 --- a/packages/python/plotly/plotly/validators/sankey/domain/_x.py +++ b/packages/python/plotly/plotly/validators/sankey/domain/_x.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="x", parent_name="sankey.domain", **kwargs): {"valType": "number", "min": 0, "max": 1, "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/domain/_y.py b/packages/python/plotly/plotly/validators/sankey/domain/_y.py index ea6334a793..50f011d164 100644 --- a/packages/python/plotly/plotly/validators/sankey/domain/_y.py +++ b/packages/python/plotly/plotly/validators/sankey/domain/_y.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="y", parent_name="sankey.domain", **kwargs): {"valType": "number", "min": 0, "max": 1, "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/sankey/hoverlabel/_align.py index 9d08e51c4a..3a621f377e 100644 --- a/packages/python/plotly/plotly/validators/sankey/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/sankey/hoverlabel/_align.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="align", parent_name="sankey.hoverlabel", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/sankey/hoverlabel/_alignsrc.py index 44ef114292..5b3fb3b34b 100644 --- a/packages/python/plotly/plotly/validators/sankey/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/sankey/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/sankey/hoverlabel/_bgcolor.py index a0435ee5d0..58ef7586ab 100644 --- a/packages/python/plotly/plotly/validators/sankey/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/sankey/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/sankey/hoverlabel/_bgcolorsrc.py index c35d15ffdf..dcfce57942 100644 --- a/packages/python/plotly/plotly/validators/sankey/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/sankey/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/sankey/hoverlabel/_bordercolor.py index cf9dd26c84..f4796d3d9e 100644 --- a/packages/python/plotly/plotly/validators/sankey/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/sankey/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/sankey/hoverlabel/_bordercolorsrc.py index ca372aa722..1da5510770 100644 --- a/packages/python/plotly/plotly/validators/sankey/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/sankey/hoverlabel/_bordercolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/sankey/hoverlabel/_namelength.py index bc9e103a3a..c7094a0547 100644 --- a/packages/python/plotly/plotly/validators/sankey/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/sankey/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/sankey/hoverlabel/_namelengthsrc.py index 8b9c1dfa48..8cc6c20cef 100644 --- a/packages/python/plotly/plotly/validators/sankey/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/sankey/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/sankey/hoverlabel/font/_color.py index 32910021b3..bdf1ff5464 100644 --- a/packages/python/plotly/plotly/validators/sankey/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/sankey/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/sankey/hoverlabel/font/_colorsrc.py index ef6a139267..0535107075 100644 --- a/packages/python/plotly/plotly/validators/sankey/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/sankey/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/sankey/hoverlabel/font/_family.py index 84d73f26d9..1efe32b5c5 100644 --- a/packages/python/plotly/plotly/validators/sankey/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/sankey/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/sankey/hoverlabel/font/_familysrc.py index 95444f6793..a60ed7eeab 100644 --- a/packages/python/plotly/plotly/validators/sankey/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/sankey/hoverlabel/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/sankey/hoverlabel/font/_size.py index 0157982406..11646f0854 100644 --- a/packages/python/plotly/plotly/validators/sankey/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/sankey/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/sankey/hoverlabel/font/_sizesrc.py index f2e8722b29..8111a10873 100644 --- a/packages/python/plotly/plotly/validators/sankey/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/sankey/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/_color.py b/packages/python/plotly/plotly/validators/sankey/link/_color.py index 12fe676db7..b88a8e479b 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/_color.py +++ b/packages/python/plotly/plotly/validators/sankey/link/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="sankey.link", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/_colorsrc.py b/packages/python/plotly/plotly/validators/sankey/link/_colorsrc.py index 857eb0a995..bd14aef7ff 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/sankey/link/_colorsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="colorsrc", parent_name="sankey.link", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/_customdata.py b/packages/python/plotly/plotly/validators/sankey/link/_customdata.py index a0990e45e5..20e9d4756c 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/_customdata.py +++ b/packages/python/plotly/plotly/validators/sankey/link/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="sankey.link", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/_customdatasrc.py b/packages/python/plotly/plotly/validators/sankey/link/_customdatasrc.py index 40efef76bf..ee26967484 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/sankey/link/_customdatasrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/_hoverinfo.py b/packages/python/plotly/plotly/validators/sankey/link/_hoverinfo.py index 46cec12d97..afc7f3dc6f 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/sankey/link/_hoverinfo.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="hoverinfo", parent_name="sankey.link", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["all", "none", "skip"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/_hovertemplate.py b/packages/python/plotly/plotly/validators/sankey/link/_hovertemplate.py index 43d4a55998..86cae27bfc 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/sankey/link/_hovertemplate.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/sankey/link/_hovertemplatesrc.py index 9791067d5a..e06395fec8 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/sankey/link/_hovertemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/_label.py b/packages/python/plotly/plotly/validators/sankey/link/_label.py index 52068fc7c6..d3a3e1df81 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/_label.py +++ b/packages/python/plotly/plotly/validators/sankey/link/_label.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="label", parent_name="sankey.link", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/_labelsrc.py b/packages/python/plotly/plotly/validators/sankey/link/_labelsrc.py index 2a9538f51c..b85d9a349f 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/_labelsrc.py +++ b/packages/python/plotly/plotly/validators/sankey/link/_labelsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="labelsrc", parent_name="sankey.link", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/_source.py b/packages/python/plotly/plotly/validators/sankey/link/_source.py index 65c7b8fad4..7c4c5a39f5 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/_source.py +++ b/packages/python/plotly/plotly/validators/sankey/link/_source.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="source", parent_name="sankey.link", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/_sourcesrc.py b/packages/python/plotly/plotly/validators/sankey/link/_sourcesrc.py index 05bdf46409..ae610727f2 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/_sourcesrc.py +++ b/packages/python/plotly/plotly/validators/sankey/link/_sourcesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="sourcesrc", parent_name="sankey.link", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/_target.py b/packages/python/plotly/plotly/validators/sankey/link/_target.py index 9db44a821b..104a8e1de3 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/_target.py +++ b/packages/python/plotly/plotly/validators/sankey/link/_target.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="target", parent_name="sankey.link", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/_targetsrc.py b/packages/python/plotly/plotly/validators/sankey/link/_targetsrc.py index 8a58f0df9b..4e42976ca8 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/_targetsrc.py +++ b/packages/python/plotly/plotly/validators/sankey/link/_targetsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="targetsrc", parent_name="sankey.link", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/_value.py b/packages/python/plotly/plotly/validators/sankey/link/_value.py index 5c3e16e63e..e66895d624 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/_value.py +++ b/packages/python/plotly/plotly/validators/sankey/link/_value.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="value", parent_name="sankey.link", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/_valuesrc.py b/packages/python/plotly/plotly/validators/sankey/link/_valuesrc.py index 07fa5e288e..b4e661b707 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/_valuesrc.py +++ b/packages/python/plotly/plotly/validators/sankey/link/_valuesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="valuesrc", parent_name="sankey.link", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/colorscale/_cmax.py b/packages/python/plotly/plotly/validators/sankey/link/colorscale/_cmax.py index 8ff7567621..cf1e4ae585 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/colorscale/_cmax.py +++ b/packages/python/plotly/plotly/validators/sankey/link/colorscale/_cmax.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/colorscale/_cmin.py b/packages/python/plotly/plotly/validators/sankey/link/colorscale/_cmin.py index 1f95cd1026..de6c9fdc08 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/colorscale/_cmin.py +++ b/packages/python/plotly/plotly/validators/sankey/link/colorscale/_cmin.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/colorscale/_colorscale.py b/packages/python/plotly/plotly/validators/sankey/link/colorscale/_colorscale.py index f2651d2905..de5229200c 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/colorscale/_colorscale.py +++ b/packages/python/plotly/plotly/validators/sankey/link/colorscale/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/colorscale/_label.py b/packages/python/plotly/plotly/validators/sankey/link/colorscale/_label.py index 56a5a8d4ae..8ef6ac1af3 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/colorscale/_label.py +++ b/packages/python/plotly/plotly/validators/sankey/link/colorscale/_label.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/colorscale/_name.py b/packages/python/plotly/plotly/validators/sankey/link/colorscale/_name.py index b60bd111c3..ee5ee018a6 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/colorscale/_name.py +++ b/packages/python/plotly/plotly/validators/sankey/link/colorscale/_name.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/colorscale/_templateitemname.py b/packages/python/plotly/plotly/validators/sankey/link/colorscale/_templateitemname.py index 0419bfe6c5..fc235e4607 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/colorscale/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/sankey/link/colorscale/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_align.py index b983b5b08c..7707284dc0 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_align.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_alignsrc.py index 3587e1aba9..7514f6f2ff 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_bgcolor.py index b8f2394551..f63b0b209b 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_bgcolorsrc.py index 0862f6b2a5..688d3af03b 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_bordercolor.py index 58d1abf56f..282e22c3f8 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_bordercolorsrc.py index 17fd199427..3f7f7b1a03 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_bordercolorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_namelength.py index 73b7ac9c2a..2b10c5325d 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_namelengthsrc.py index 3d9f6c069a..ba0e3e0a55 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/_namelengthsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/font/_color.py index 57fd24362c..f2b1b12fef 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/font/_colorsrc.py index 8515571458..788fa37f3b 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/font/_colorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/font/_family.py index 511eda4307..b18a67522b 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/font/_familysrc.py index 42fa5ee99b..40ac60aed7 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/font/_familysrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/font/_size.py index 5ceef5d346..7ae7eaf5cf 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/font/_sizesrc.py index a1fce89c98..01223e4fda 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/sankey/link/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/line/_color.py b/packages/python/plotly/plotly/validators/sankey/link/line/_color.py index 36ff754abf..0aa204455f 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/line/_color.py +++ b/packages/python/plotly/plotly/validators/sankey/link/line/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="sankey.link.line", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/line/_colorsrc.py b/packages/python/plotly/plotly/validators/sankey/link/line/_colorsrc.py index aad29459d0..b0f65edb8e 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/sankey/link/line/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/line/_width.py b/packages/python/plotly/plotly/validators/sankey/link/line/_width.py index 11a12773b2..6be8207939 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/line/_width.py +++ b/packages/python/plotly/plotly/validators/sankey/link/line/_width.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="width", parent_name="sankey.link.line", **kwargs array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/link/line/_widthsrc.py b/packages/python/plotly/plotly/validators/sankey/link/line/_widthsrc.py index ab44485dcd..e79921b509 100644 --- a/packages/python/plotly/plotly/validators/sankey/link/line/_widthsrc.py +++ b/packages/python/plotly/plotly/validators/sankey/link/line/_widthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/_color.py b/packages/python/plotly/plotly/validators/sankey/node/_color.py index 0e308eee92..3ccf660a8a 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/_color.py +++ b/packages/python/plotly/plotly/validators/sankey/node/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="sankey.node", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/_colorsrc.py b/packages/python/plotly/plotly/validators/sankey/node/_colorsrc.py index 7625e58816..d824847020 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/sankey/node/_colorsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="colorsrc", parent_name="sankey.node", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/_customdata.py b/packages/python/plotly/plotly/validators/sankey/node/_customdata.py index b958e60f2b..bea218fbc6 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/_customdata.py +++ b/packages/python/plotly/plotly/validators/sankey/node/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="sankey.node", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/_customdatasrc.py b/packages/python/plotly/plotly/validators/sankey/node/_customdatasrc.py index cd9ae88caa..c95b6c58d6 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/sankey/node/_customdatasrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/_groups.py b/packages/python/plotly/plotly/validators/sankey/node/_groups.py index 75a9d62f09..93a3d1e9d2 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/_groups.py +++ b/packages/python/plotly/plotly/validators/sankey/node/_groups.py @@ -11,6 +11,5 @@ def __init__(self, plotly_name="groups", parent_name="sankey.node", **kwargs): free_length=kwargs.pop("free_length", True), implied_edits=kwargs.pop("implied_edits", {"x": [], "y": []}), items=kwargs.pop("items", {"valType": "number", "editType": "calc"}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/_hoverinfo.py b/packages/python/plotly/plotly/validators/sankey/node/_hoverinfo.py index 80cbb0c380..80d20b5265 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/sankey/node/_hoverinfo.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="hoverinfo", parent_name="sankey.node", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["all", "none", "skip"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/_hovertemplate.py b/packages/python/plotly/plotly/validators/sankey/node/_hovertemplate.py index 526b16dfa3..87f6a55b84 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/sankey/node/_hovertemplate.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/sankey/node/_hovertemplatesrc.py index 1db37019c1..5a51153aca 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/sankey/node/_hovertemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/_label.py b/packages/python/plotly/plotly/validators/sankey/node/_label.py index e06618179e..81e442ad3b 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/_label.py +++ b/packages/python/plotly/plotly/validators/sankey/node/_label.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="label", parent_name="sankey.node", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/_labelsrc.py b/packages/python/plotly/plotly/validators/sankey/node/_labelsrc.py index 146aebc5dd..b953d030c3 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/_labelsrc.py +++ b/packages/python/plotly/plotly/validators/sankey/node/_labelsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="labelsrc", parent_name="sankey.node", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/_pad.py b/packages/python/plotly/plotly/validators/sankey/node/_pad.py index 3f81b401bc..66a5a5aaee 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/_pad.py +++ b/packages/python/plotly/plotly/validators/sankey/node/_pad.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="pad", parent_name="sankey.node", **kwargs): array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/_thickness.py b/packages/python/plotly/plotly/validators/sankey/node/_thickness.py index 31f8b9be55..1afef18b75 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/_thickness.py +++ b/packages/python/plotly/plotly/validators/sankey/node/_thickness.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="thickness", parent_name="sankey.node", **kwargs) array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/_x.py b/packages/python/plotly/plotly/validators/sankey/node/_x.py index 11e796ae00..d2e3397fae 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/_x.py +++ b/packages/python/plotly/plotly/validators/sankey/node/_x.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x", parent_name="sankey.node", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/_xsrc.py b/packages/python/plotly/plotly/validators/sankey/node/_xsrc.py index f5edd95e3b..1517fb04f6 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/_xsrc.py +++ b/packages/python/plotly/plotly/validators/sankey/node/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="sankey.node", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/_y.py b/packages/python/plotly/plotly/validators/sankey/node/_y.py index 05b1f8b379..e0d50782f4 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/_y.py +++ b/packages/python/plotly/plotly/validators/sankey/node/_y.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y", parent_name="sankey.node", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/_ysrc.py b/packages/python/plotly/plotly/validators/sankey/node/_ysrc.py index c5951a024d..b7381e4144 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/_ysrc.py +++ b/packages/python/plotly/plotly/validators/sankey/node/_ysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ysrc", parent_name="sankey.node", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_align.py index 57fbb1df12..5bf1947846 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_align.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_alignsrc.py index 2612336f57..8cb29da578 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_bgcolor.py index 344a2dbc7c..234ea47e84 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_bgcolorsrc.py index 8c282b2431..960d6b5dd8 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_bordercolor.py index 04a737c703..78cf62ee52 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_bordercolorsrc.py index 39073b69a7..b7c4dadc3b 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_bordercolorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_namelength.py index 39a90e9e25..4ab04e3d2c 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_namelengthsrc.py index a2afd8cf2a..a2e2eb4ea3 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/_namelengthsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/font/_color.py index 080a491f2d..8b1c90861f 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/font/_colorsrc.py index 25f5fadafe..255a5cc21e 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/font/_colorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/font/_family.py index e51dacead6..faed0088d3 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/font/_familysrc.py index 79ab1f6c0a..bb2c2cb779 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/font/_familysrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/font/_size.py index 52694a8312..8ed04a574c 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/font/_sizesrc.py index 71761426ac..707b7d3ca1 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/sankey/node/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/line/_color.py b/packages/python/plotly/plotly/validators/sankey/node/line/_color.py index 1b8251bfa2..7dce17b33a 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/line/_color.py +++ b/packages/python/plotly/plotly/validators/sankey/node/line/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="sankey.node.line", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/line/_colorsrc.py b/packages/python/plotly/plotly/validators/sankey/node/line/_colorsrc.py index a87aa186d1..8e8a2afebf 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/sankey/node/line/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/line/_width.py b/packages/python/plotly/plotly/validators/sankey/node/line/_width.py index 76aa88ecbf..0b7160ad3a 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/line/_width.py +++ b/packages/python/plotly/plotly/validators/sankey/node/line/_width.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="width", parent_name="sankey.node.line", **kwargs array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/node/line/_widthsrc.py b/packages/python/plotly/plotly/validators/sankey/node/line/_widthsrc.py index d255c1be6c..f4b333792e 100644 --- a/packages/python/plotly/plotly/validators/sankey/node/line/_widthsrc.py +++ b/packages/python/plotly/plotly/validators/sankey/node/line/_widthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/sankey/stream/_maxpoints.py index 905e63ed84..31044ecf54 100644 --- a/packages/python/plotly/plotly/validators/sankey/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/sankey/stream/_maxpoints.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="maxpoints", parent_name="sankey.stream", **kwarg edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/stream/_token.py b/packages/python/plotly/plotly/validators/sankey/stream/_token.py index 7b5309087e..be16dec7a3 100644 --- a/packages/python/plotly/plotly/validators/sankey/stream/_token.py +++ b/packages/python/plotly/plotly/validators/sankey/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="sankey.stream", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/textfont/_color.py b/packages/python/plotly/plotly/validators/sankey/textfont/_color.py index 4eed14bda7..2291c26557 100644 --- a/packages/python/plotly/plotly/validators/sankey/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/sankey/textfont/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="sankey.textfont", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/textfont/_family.py b/packages/python/plotly/plotly/validators/sankey/textfont/_family.py index f3da586567..63a5499287 100644 --- a/packages/python/plotly/plotly/validators/sankey/textfont/_family.py +++ b/packages/python/plotly/plotly/validators/sankey/textfont/_family.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="family", parent_name="sankey.textfont", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sankey/textfont/_size.py b/packages/python/plotly/plotly/validators/sankey/textfont/_size.py index d4251acb63..a308fa924e 100644 --- a/packages/python/plotly/plotly/validators/sankey/textfont/_size.py +++ b/packages/python/plotly/plotly/validators/sankey/textfont/_size.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="size", parent_name="sankey.textfont", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/__init__.py b/packages/python/plotly/plotly/validators/scatter/__init__.py index a8f8211833..c62b6122ae 100644 --- a/packages/python/plotly/plotly/validators/scatter/__init__.py +++ b/packages/python/plotly/plotly/validators/scatter/__init__.py @@ -5,6 +5,7 @@ from ._yperiodalignment import YperiodalignmentValidator from ._yperiod0 import Yperiod0Validator from ._yperiod import YperiodValidator + from ._yhoverformat import YhoverformatValidator from ._ycalendar import YcalendarValidator from ._yaxis import YaxisValidator from ._y0 import Y0Validator @@ -13,6 +14,7 @@ from ._xperiodalignment import XperiodalignmentValidator from ._xperiod0 import Xperiod0Validator from ._xperiod import XperiodValidator + from ._xhoverformat import XhoverformatValidator from ._xcalendar import XcalendarValidator from ._xaxis import XaxisValidator from ._x0 import X0Validator @@ -21,7 +23,6 @@ from ._unselected import UnselectedValidator from ._uirevision import UirevisionValidator from ._uid import UidValidator - from ._tsrc import TsrcValidator from ._texttemplatesrc import TexttemplatesrcValidator from ._texttemplate import TexttemplateValidator from ._textsrc import TextsrcValidator @@ -29,15 +30,12 @@ from ._textposition import TextpositionValidator from ._textfont import TextfontValidator from ._text import TextValidator - from ._t import TValidator from ._stream import StreamValidator from ._stackgroup import StackgroupValidator from ._stackgaps import StackgapsValidator from ._showlegend import ShowlegendValidator from ._selectedpoints import SelectedpointsValidator from ._selected import SelectedValidator - from ._rsrc import RsrcValidator - from ._r import RValidator from ._orientation import OrientationValidator from ._opacity import OpacityValidator from ._name import NameValidator @@ -79,6 +77,7 @@ "._yperiodalignment.YperiodalignmentValidator", "._yperiod0.Yperiod0Validator", "._yperiod.YperiodValidator", + "._yhoverformat.YhoverformatValidator", "._ycalendar.YcalendarValidator", "._yaxis.YaxisValidator", "._y0.Y0Validator", @@ -87,6 +86,7 @@ "._xperiodalignment.XperiodalignmentValidator", "._xperiod0.Xperiod0Validator", "._xperiod.XperiodValidator", + "._xhoverformat.XhoverformatValidator", "._xcalendar.XcalendarValidator", "._xaxis.XaxisValidator", "._x0.X0Validator", @@ -95,7 +95,6 @@ "._unselected.UnselectedValidator", "._uirevision.UirevisionValidator", "._uid.UidValidator", - "._tsrc.TsrcValidator", "._texttemplatesrc.TexttemplatesrcValidator", "._texttemplate.TexttemplateValidator", "._textsrc.TextsrcValidator", @@ -103,15 +102,12 @@ "._textposition.TextpositionValidator", "._textfont.TextfontValidator", "._text.TextValidator", - "._t.TValidator", "._stream.StreamValidator", "._stackgroup.StackgroupValidator", "._stackgaps.StackgapsValidator", "._showlegend.ShowlegendValidator", "._selectedpoints.SelectedpointsValidator", "._selected.SelectedValidator", - "._rsrc.RsrcValidator", - "._r.RValidator", "._orientation.OrientationValidator", "._opacity.OpacityValidator", "._name.NameValidator", diff --git a/packages/python/plotly/plotly/validators/scatter/_cliponaxis.py b/packages/python/plotly/plotly/validators/scatter/_cliponaxis.py index 7c7b7438cd..3ecd46eb54 100644 --- a/packages/python/plotly/plotly/validators/scatter/_cliponaxis.py +++ b/packages/python/plotly/plotly/validators/scatter/_cliponaxis.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="cliponaxis", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_connectgaps.py b/packages/python/plotly/plotly/validators/scatter/_connectgaps.py index 45454b8f98..cc544721d6 100644 --- a/packages/python/plotly/plotly/validators/scatter/_connectgaps.py +++ b/packages/python/plotly/plotly/validators/scatter/_connectgaps.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="connectgaps", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_customdata.py b/packages/python/plotly/plotly/validators/scatter/_customdata.py index 3a884792f9..98c6a64d8f 100644 --- a/packages/python/plotly/plotly/validators/scatter/_customdata.py +++ b/packages/python/plotly/plotly/validators/scatter/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_customdatasrc.py b/packages/python/plotly/plotly/validators/scatter/_customdatasrc.py index 79b2b9399d..186ddf7972 100644 --- a/packages/python/plotly/plotly/validators/scatter/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/scatter/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="scatter", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_dx.py b/packages/python/plotly/plotly/validators/scatter/_dx.py index 3f75a24284..ab872c454a 100644 --- a/packages/python/plotly/plotly/validators/scatter/_dx.py +++ b/packages/python/plotly/plotly/validators/scatter/_dx.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="dx", parent_name="scatter", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_dy.py b/packages/python/plotly/plotly/validators/scatter/_dy.py index 648a588f14..145c8751d9 100644 --- a/packages/python/plotly/plotly/validators/scatter/_dy.py +++ b/packages/python/plotly/plotly/validators/scatter/_dy.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="dy", parent_name="scatter", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_fill.py b/packages/python/plotly/plotly/validators/scatter/_fill.py index 670b7af307..59c7c3b0d3 100644 --- a/packages/python/plotly/plotly/validators/scatter/_fill.py +++ b/packages/python/plotly/plotly/validators/scatter/_fill.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="fill", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scatter/_fillcolor.py b/packages/python/plotly/plotly/validators/scatter/_fillcolor.py index eb28d5bbd8..8a945c272c 100644 --- a/packages/python/plotly/plotly/validators/scatter/_fillcolor.py +++ b/packages/python/plotly/plotly/validators/scatter/_fillcolor.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="fillcolor", parent_name="scatter", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_groupnorm.py b/packages/python/plotly/plotly/validators/scatter/_groupnorm.py index cbc1e3ab66..0727b79ff8 100644 --- a/packages/python/plotly/plotly/validators/scatter/_groupnorm.py +++ b/packages/python/plotly/plotly/validators/scatter/_groupnorm.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="groupnorm", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["", "fraction", "percent"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_hoverinfo.py b/packages/python/plotly/plotly/validators/scatter/_hoverinfo.py index 8c0f39771c..9ccca9359e 100644 --- a/packages/python/plotly/plotly/validators/scatter/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/scatter/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="scatter", **kwargs): edit_type=kwargs.pop("edit_type", "none"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["x", "y", "z", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/scatter/_hoverinfosrc.py index cdea5cf305..0099080695 100644 --- a/packages/python/plotly/plotly/validators/scatter/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/scatter/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_hoveron.py b/packages/python/plotly/plotly/validators/scatter/_hoveron.py index a7726f58c1..9655de9d75 100644 --- a/packages/python/plotly/plotly/validators/scatter/_hoveron.py +++ b/packages/python/plotly/plotly/validators/scatter/_hoveron.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hoveron", parent_name="scatter", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), flags=kwargs.pop("flags", ["points", "fills"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_hovertemplate.py b/packages/python/plotly/plotly/validators/scatter/_hovertemplate.py index 379b860d31..b756b37658 100644 --- a/packages/python/plotly/plotly/validators/scatter/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/scatter/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="scatter", **kwargs) parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/scatter/_hovertemplatesrc.py index a4fc12328b..fdef21ffa4 100644 --- a/packages/python/plotly/plotly/validators/scatter/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/scatter/_hovertemplatesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertemplatesrc", parent_name="scatter", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_hovertext.py b/packages/python/plotly/plotly/validators/scatter/_hovertext.py index 0dae2cfa7b..87f8284ff6 100644 --- a/packages/python/plotly/plotly/validators/scatter/_hovertext.py +++ b/packages/python/plotly/plotly/validators/scatter/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="scatter", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_hovertextsrc.py b/packages/python/plotly/plotly/validators/scatter/_hovertextsrc.py index 7a22f58d40..666d9625d4 100644 --- a/packages/python/plotly/plotly/validators/scatter/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/scatter/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_ids.py b/packages/python/plotly/plotly/validators/scatter/_ids.py index 634fe38ccb..0e0354d237 100644 --- a/packages/python/plotly/plotly/validators/scatter/_ids.py +++ b/packages/python/plotly/plotly/validators/scatter/_ids.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ids", parent_name="scatter", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_idssrc.py b/packages/python/plotly/plotly/validators/scatter/_idssrc.py index ce968cdf66..bdc9c48543 100644 --- a/packages/python/plotly/plotly/validators/scatter/_idssrc.py +++ b/packages/python/plotly/plotly/validators/scatter/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_legendgroup.py b/packages/python/plotly/plotly/validators/scatter/_legendgroup.py index 6bf4597539..ed864704e0 100644 --- a/packages/python/plotly/plotly/validators/scatter/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/scatter/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_meta.py b/packages/python/plotly/plotly/validators/scatter/_meta.py index 4ad5d48817..820207eb59 100644 --- a/packages/python/plotly/plotly/validators/scatter/_meta.py +++ b/packages/python/plotly/plotly/validators/scatter/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="scatter", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_metasrc.py b/packages/python/plotly/plotly/validators/scatter/_metasrc.py index 4234348490..c98fc8099a 100644 --- a/packages/python/plotly/plotly/validators/scatter/_metasrc.py +++ b/packages/python/plotly/plotly/validators/scatter/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_mode.py b/packages/python/plotly/plotly/validators/scatter/_mode.py index 114fea53fd..68e2869e05 100644 --- a/packages/python/plotly/plotly/validators/scatter/_mode.py +++ b/packages/python/plotly/plotly/validators/scatter/_mode.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="mode", parent_name="scatter", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), extras=kwargs.pop("extras", ["none"]), flags=kwargs.pop("flags", ["lines", "markers", "text"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_name.py b/packages/python/plotly/plotly/validators/scatter/_name.py index 6c838a4a1d..ffc6988355 100644 --- a/packages/python/plotly/plotly/validators/scatter/_name.py +++ b/packages/python/plotly/plotly/validators/scatter/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_opacity.py b/packages/python/plotly/plotly/validators/scatter/_opacity.py index d7fed888f8..37ff0250c3 100644 --- a/packages/python/plotly/plotly/validators/scatter/_opacity.py +++ b/packages/python/plotly/plotly/validators/scatter/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="scatter", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_orientation.py b/packages/python/plotly/plotly/validators/scatter/_orientation.py index 91f4265f01..a5dfd625af 100644 --- a/packages/python/plotly/plotly/validators/scatter/_orientation.py +++ b/packages/python/plotly/plotly/validators/scatter/_orientation.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="orientation", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["v", "h"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_r.py b/packages/python/plotly/plotly/validators/scatter/_r.py deleted file mode 100644 index 940c065737..0000000000 --- a/packages/python/plotly/plotly/validators/scatter/_r.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class RValidator(_plotly_utils.basevalidators.DataArrayValidator): - def __init__(self, plotly_name="r", parent_name="scatter", **kwargs): - super(RValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/scatter/_rsrc.py b/packages/python/plotly/plotly/validators/scatter/_rsrc.py deleted file mode 100644 index 92a3e6c7f8..0000000000 --- a/packages/python/plotly/plotly/validators/scatter/_rsrc.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class RsrcValidator(_plotly_utils.basevalidators.SrcValidator): - def __init__(self, plotly_name="rsrc", parent_name="scatter", **kwargs): - super(RsrcValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/scatter/_selectedpoints.py b/packages/python/plotly/plotly/validators/scatter/_selectedpoints.py index b45155ccde..89b8695cef 100644 --- a/packages/python/plotly/plotly/validators/scatter/_selectedpoints.py +++ b/packages/python/plotly/plotly/validators/scatter/_selectedpoints.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="selectedpoints", parent_name="scatter", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_showlegend.py b/packages/python/plotly/plotly/validators/scatter/_showlegend.py index 08b112d75e..11f6b6b09a 100644 --- a/packages/python/plotly/plotly/validators/scatter/_showlegend.py +++ b/packages/python/plotly/plotly/validators/scatter/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_stackgaps.py b/packages/python/plotly/plotly/validators/scatter/_stackgaps.py index 64d9bbf484..47cf4fe6e5 100644 --- a/packages/python/plotly/plotly/validators/scatter/_stackgaps.py +++ b/packages/python/plotly/plotly/validators/scatter/_stackgaps.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="stackgaps", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["infer zero", "interpolate"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_stackgroup.py b/packages/python/plotly/plotly/validators/scatter/_stackgroup.py index a6b44dda75..ce8cce3e77 100644 --- a/packages/python/plotly/plotly/validators/scatter/_stackgroup.py +++ b/packages/python/plotly/plotly/validators/scatter/_stackgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="stackgroup", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_t.py b/packages/python/plotly/plotly/validators/scatter/_t.py deleted file mode 100644 index 3e52ae8b06..0000000000 --- a/packages/python/plotly/plotly/validators/scatter/_t.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class TValidator(_plotly_utils.basevalidators.DataArrayValidator): - def __init__(self, plotly_name="t", parent_name="scatter", **kwargs): - super(TValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/scatter/_text.py b/packages/python/plotly/plotly/validators/scatter/_text.py index 3b0692448d..287f73dc5f 100644 --- a/packages/python/plotly/plotly/validators/scatter/_text.py +++ b/packages/python/plotly/plotly/validators/scatter/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="scatter", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_textposition.py b/packages/python/plotly/plotly/validators/scatter/_textposition.py index c601f8eea2..8ee29c8e41 100644 --- a/packages/python/plotly/plotly/validators/scatter/_textposition.py +++ b/packages/python/plotly/plotly/validators/scatter/_textposition.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="textposition", parent_name="scatter", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scatter/_textpositionsrc.py b/packages/python/plotly/plotly/validators/scatter/_textpositionsrc.py index 3ee857a059..9577d8bfc9 100644 --- a/packages/python/plotly/plotly/validators/scatter/_textpositionsrc.py +++ b/packages/python/plotly/plotly/validators/scatter/_textpositionsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textpositionsrc", parent_name="scatter", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_textsrc.py b/packages/python/plotly/plotly/validators/scatter/_textsrc.py index 4fed554f76..3d74c3e95d 100644 --- a/packages/python/plotly/plotly/validators/scatter/_textsrc.py +++ b/packages/python/plotly/plotly/validators/scatter/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_texttemplate.py b/packages/python/plotly/plotly/validators/scatter/_texttemplate.py index 25855374e2..7e1a62eb09 100644 --- a/packages/python/plotly/plotly/validators/scatter/_texttemplate.py +++ b/packages/python/plotly/plotly/validators/scatter/_texttemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="texttemplate", parent_name="scatter", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_texttemplatesrc.py b/packages/python/plotly/plotly/validators/scatter/_texttemplatesrc.py index ec2e399c43..eef5344a58 100644 --- a/packages/python/plotly/plotly/validators/scatter/_texttemplatesrc.py +++ b/packages/python/plotly/plotly/validators/scatter/_texttemplatesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="texttemplatesrc", parent_name="scatter", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_tsrc.py b/packages/python/plotly/plotly/validators/scatter/_tsrc.py deleted file mode 100644 index 1665c47537..0000000000 --- a/packages/python/plotly/plotly/validators/scatter/_tsrc.py +++ /dev/null @@ -1,12 +0,0 @@ -import _plotly_utils.basevalidators - - -class TsrcValidator(_plotly_utils.basevalidators.SrcValidator): - def __init__(self, plotly_name="tsrc", parent_name="scatter", **kwargs): - super(TsrcValidator, self).__init__( - plotly_name=plotly_name, - parent_name=parent_name, - edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), - **kwargs - ) diff --git a/packages/python/plotly/plotly/validators/scatter/_uid.py b/packages/python/plotly/plotly/validators/scatter/_uid.py index 7be3eb0a9d..63fbac734c 100644 --- a/packages/python/plotly/plotly/validators/scatter/_uid.py +++ b/packages/python/plotly/plotly/validators/scatter/_uid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="uid", parent_name="scatter", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_uirevision.py b/packages/python/plotly/plotly/validators/scatter/_uirevision.py index d60f5635a1..e5b75cb595 100644 --- a/packages/python/plotly/plotly/validators/scatter/_uirevision.py +++ b/packages/python/plotly/plotly/validators/scatter/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_visible.py b/packages/python/plotly/plotly/validators/scatter/_visible.py index 7ab152e286..c475c10e53 100644 --- a/packages/python/plotly/plotly/validators/scatter/_visible.py +++ b/packages/python/plotly/plotly/validators/scatter/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_x.py b/packages/python/plotly/plotly/validators/scatter/_x.py index 3a61becdb9..9296405d95 100644 --- a/packages/python/plotly/plotly/validators/scatter/_x.py +++ b/packages/python/plotly/plotly/validators/scatter/_x.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="x", parent_name="scatter", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_x0.py b/packages/python/plotly/plotly/validators/scatter/_x0.py index 255f747e76..2645e24ea4 100644 --- a/packages/python/plotly/plotly/validators/scatter/_x0.py +++ b/packages/python/plotly/plotly/validators/scatter/_x0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="x0", parent_name="scatter", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_xaxis.py b/packages/python/plotly/plotly/validators/scatter/_xaxis.py index 5871683fd5..5a4d63b4ec 100644 --- a/packages/python/plotly/plotly/validators/scatter/_xaxis.py +++ b/packages/python/plotly/plotly/validators/scatter/_xaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xaxis", parent_name="scatter", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "x"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_xcalendar.py b/packages/python/plotly/plotly/validators/scatter/_xcalendar.py index 6c1ef92271..468ca850f4 100644 --- a/packages/python/plotly/plotly/validators/scatter/_xcalendar.py +++ b/packages/python/plotly/plotly/validators/scatter/_xcalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xcalendar", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scatter/_xhoverformat.py b/packages/python/plotly/plotly/validators/scatter/_xhoverformat.py new file mode 100644 index 0000000000..36e7e28d0d --- /dev/null +++ b/packages/python/plotly/plotly/validators/scatter/_xhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class XhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="xhoverformat", parent_name="scatter", **kwargs): + super(XhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/scatter/_xperiod.py b/packages/python/plotly/plotly/validators/scatter/_xperiod.py index 23aa040a96..4ed5d27de9 100644 --- a/packages/python/plotly/plotly/validators/scatter/_xperiod.py +++ b/packages/python/plotly/plotly/validators/scatter/_xperiod.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xperiod", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_xperiod0.py b/packages/python/plotly/plotly/validators/scatter/_xperiod0.py index 2595cebb3f..210ee9c16b 100644 --- a/packages/python/plotly/plotly/validators/scatter/_xperiod0.py +++ b/packages/python/plotly/plotly/validators/scatter/_xperiod0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xperiod0", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_xperiodalignment.py b/packages/python/plotly/plotly/validators/scatter/_xperiodalignment.py index 1ac78f6d73..76dd5134cc 100644 --- a/packages/python/plotly/plotly/validators/scatter/_xperiodalignment.py +++ b/packages/python/plotly/plotly/validators/scatter/_xperiodalignment.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xperiodalignment", parent_name="scatter", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["start", "middle", "end"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_xsrc.py b/packages/python/plotly/plotly/validators/scatter/_xsrc.py index 2f44ac1959..cb6f6f96f7 100644 --- a/packages/python/plotly/plotly/validators/scatter/_xsrc.py +++ b/packages/python/plotly/plotly/validators/scatter/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_y.py b/packages/python/plotly/plotly/validators/scatter/_y.py index 7e466773aa..b56d6c1dc0 100644 --- a/packages/python/plotly/plotly/validators/scatter/_y.py +++ b/packages/python/plotly/plotly/validators/scatter/_y.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="y", parent_name="scatter", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_y0.py b/packages/python/plotly/plotly/validators/scatter/_y0.py index d6a6e0d26a..0e111afaec 100644 --- a/packages/python/plotly/plotly/validators/scatter/_y0.py +++ b/packages/python/plotly/plotly/validators/scatter/_y0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="y0", parent_name="scatter", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_yaxis.py b/packages/python/plotly/plotly/validators/scatter/_yaxis.py index 9e182ee582..685a705165 100644 --- a/packages/python/plotly/plotly/validators/scatter/_yaxis.py +++ b/packages/python/plotly/plotly/validators/scatter/_yaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="yaxis", parent_name="scatter", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "y"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_ycalendar.py b/packages/python/plotly/plotly/validators/scatter/_ycalendar.py index 8642739a94..531b1e8136 100644 --- a/packages/python/plotly/plotly/validators/scatter/_ycalendar.py +++ b/packages/python/plotly/plotly/validators/scatter/_ycalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ycalendar", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scatter/_yhoverformat.py b/packages/python/plotly/plotly/validators/scatter/_yhoverformat.py new file mode 100644 index 0000000000..2bf7ad95ba --- /dev/null +++ b/packages/python/plotly/plotly/validators/scatter/_yhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class YhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="yhoverformat", parent_name="scatter", **kwargs): + super(YhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/scatter/_yperiod.py b/packages/python/plotly/plotly/validators/scatter/_yperiod.py index 83745f4466..3f941a2820 100644 --- a/packages/python/plotly/plotly/validators/scatter/_yperiod.py +++ b/packages/python/plotly/plotly/validators/scatter/_yperiod.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="yperiod", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_yperiod0.py b/packages/python/plotly/plotly/validators/scatter/_yperiod0.py index f02acd8f6a..89c0c9b13e 100644 --- a/packages/python/plotly/plotly/validators/scatter/_yperiod0.py +++ b/packages/python/plotly/plotly/validators/scatter/_yperiod0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="yperiod0", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_yperiodalignment.py b/packages/python/plotly/plotly/validators/scatter/_yperiodalignment.py index 6cf0fe56aa..7cdc406a3c 100644 --- a/packages/python/plotly/plotly/validators/scatter/_yperiodalignment.py +++ b/packages/python/plotly/plotly/validators/scatter/_yperiodalignment.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="yperiodalignment", parent_name="scatter", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["start", "middle", "end"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/_ysrc.py b/packages/python/plotly/plotly/validators/scatter/_ysrc.py index 46602fe6d0..400fd2958a 100644 --- a/packages/python/plotly/plotly/validators/scatter/_ysrc.py +++ b/packages/python/plotly/plotly/validators/scatter/_ysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ysrc", parent_name="scatter", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_x/_array.py b/packages/python/plotly/plotly/validators/scatter/error_x/_array.py index 81471c6485..4b6782221c 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_x/_array.py +++ b/packages/python/plotly/plotly/validators/scatter/error_x/_array.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="array", parent_name="scatter.error_x", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_x/_arrayminus.py b/packages/python/plotly/plotly/validators/scatter/error_x/_arrayminus.py index a19eaaa95b..b33843e8e1 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_x/_arrayminus.py +++ b/packages/python/plotly/plotly/validators/scatter/error_x/_arrayminus.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_x/_arrayminussrc.py b/packages/python/plotly/plotly/validators/scatter/error_x/_arrayminussrc.py index 5ad1ff4cdc..da60d80b1f 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_x/_arrayminussrc.py +++ b/packages/python/plotly/plotly/validators/scatter/error_x/_arrayminussrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_x/_arraysrc.py b/packages/python/plotly/plotly/validators/scatter/error_x/_arraysrc.py index 3f27ace979..123c653618 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_x/_arraysrc.py +++ b/packages/python/plotly/plotly/validators/scatter/error_x/_arraysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="arraysrc", parent_name="scatter.error_x", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_x/_color.py b/packages/python/plotly/plotly/validators/scatter/error_x/_color.py index 54b1879db1..099afd2013 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_x/_color.py +++ b/packages/python/plotly/plotly/validators/scatter/error_x/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="scatter.error_x", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_x/_copy_ystyle.py b/packages/python/plotly/plotly/validators/scatter/error_x/_copy_ystyle.py index 2618543cd4..bfd45c063c 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_x/_copy_ystyle.py +++ b/packages/python/plotly/plotly/validators/scatter/error_x/_copy_ystyle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_x/_symmetric.py b/packages/python/plotly/plotly/validators/scatter/error_x/_symmetric.py index 487b029f54..445789caf1 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_x/_symmetric.py +++ b/packages/python/plotly/plotly/validators/scatter/error_x/_symmetric.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_x/_thickness.py b/packages/python/plotly/plotly/validators/scatter/error_x/_thickness.py index e7749d30a1..b33d7dcf34 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_x/_thickness.py +++ b/packages/python/plotly/plotly/validators/scatter/error_x/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_x/_traceref.py b/packages/python/plotly/plotly/validators/scatter/error_x/_traceref.py index 45a49db35b..60fc40868f 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_x/_traceref.py +++ b/packages/python/plotly/plotly/validators/scatter/error_x/_traceref.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="traceref", parent_name="scatter.error_x", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_x/_tracerefminus.py b/packages/python/plotly/plotly/validators/scatter/error_x/_tracerefminus.py index 088bec3ebf..af07cc3331 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_x/_tracerefminus.py +++ b/packages/python/plotly/plotly/validators/scatter/error_x/_tracerefminus.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_x/_type.py b/packages/python/plotly/plotly/validators/scatter/error_x/_type.py index f303331c34..2973467868 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_x/_type.py +++ b/packages/python/plotly/plotly/validators/scatter/error_x/_type.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="type", parent_name="scatter.error_x", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["percent", "constant", "sqrt", "data"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_x/_value.py b/packages/python/plotly/plotly/validators/scatter/error_x/_value.py index 0817ab7f17..343cf60b29 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_x/_value.py +++ b/packages/python/plotly/plotly/validators/scatter/error_x/_value.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="value", parent_name="scatter.error_x", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_x/_valueminus.py b/packages/python/plotly/plotly/validators/scatter/error_x/_valueminus.py index d492338c9c..93c20390d8 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_x/_valueminus.py +++ b/packages/python/plotly/plotly/validators/scatter/error_x/_valueminus.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_x/_visible.py b/packages/python/plotly/plotly/validators/scatter/error_x/_visible.py index 2a332f4107..ef91cb951c 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_x/_visible.py +++ b/packages/python/plotly/plotly/validators/scatter/error_x/_visible.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="visible", parent_name="scatter.error_x", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_x/_width.py b/packages/python/plotly/plotly/validators/scatter/error_x/_width.py index bdb61fc7ec..48156953b1 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_x/_width.py +++ b/packages/python/plotly/plotly/validators/scatter/error_x/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="scatter.error_x", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_y/_array.py b/packages/python/plotly/plotly/validators/scatter/error_y/_array.py index 675e8a0316..964460798b 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_y/_array.py +++ b/packages/python/plotly/plotly/validators/scatter/error_y/_array.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="array", parent_name="scatter.error_y", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_y/_arrayminus.py b/packages/python/plotly/plotly/validators/scatter/error_y/_arrayminus.py index d9059f4507..26daf8b027 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_y/_arrayminus.py +++ b/packages/python/plotly/plotly/validators/scatter/error_y/_arrayminus.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_y/_arrayminussrc.py b/packages/python/plotly/plotly/validators/scatter/error_y/_arrayminussrc.py index 86235b8325..7745a957b5 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_y/_arrayminussrc.py +++ b/packages/python/plotly/plotly/validators/scatter/error_y/_arrayminussrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_y/_arraysrc.py b/packages/python/plotly/plotly/validators/scatter/error_y/_arraysrc.py index f763e60ec7..a9306240fd 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_y/_arraysrc.py +++ b/packages/python/plotly/plotly/validators/scatter/error_y/_arraysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="arraysrc", parent_name="scatter.error_y", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_y/_color.py b/packages/python/plotly/plotly/validators/scatter/error_y/_color.py index 73460c45f8..c56b617eda 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_y/_color.py +++ b/packages/python/plotly/plotly/validators/scatter/error_y/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="scatter.error_y", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_y/_symmetric.py b/packages/python/plotly/plotly/validators/scatter/error_y/_symmetric.py index 3e01846694..b3b2a74c76 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_y/_symmetric.py +++ b/packages/python/plotly/plotly/validators/scatter/error_y/_symmetric.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_y/_thickness.py b/packages/python/plotly/plotly/validators/scatter/error_y/_thickness.py index d5a0a27f88..9383bef0f9 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_y/_thickness.py +++ b/packages/python/plotly/plotly/validators/scatter/error_y/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_y/_traceref.py b/packages/python/plotly/plotly/validators/scatter/error_y/_traceref.py index c69daba7d2..02b8ea9d9a 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_y/_traceref.py +++ b/packages/python/plotly/plotly/validators/scatter/error_y/_traceref.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="traceref", parent_name="scatter.error_y", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_y/_tracerefminus.py b/packages/python/plotly/plotly/validators/scatter/error_y/_tracerefminus.py index b6e60e21d3..467a4421f4 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_y/_tracerefminus.py +++ b/packages/python/plotly/plotly/validators/scatter/error_y/_tracerefminus.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_y/_type.py b/packages/python/plotly/plotly/validators/scatter/error_y/_type.py index 2fd5221a44..a2049addde 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_y/_type.py +++ b/packages/python/plotly/plotly/validators/scatter/error_y/_type.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="type", parent_name="scatter.error_y", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["percent", "constant", "sqrt", "data"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_y/_value.py b/packages/python/plotly/plotly/validators/scatter/error_y/_value.py index 1a9c7298ce..1008a51f0e 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_y/_value.py +++ b/packages/python/plotly/plotly/validators/scatter/error_y/_value.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="value", parent_name="scatter.error_y", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_y/_valueminus.py b/packages/python/plotly/plotly/validators/scatter/error_y/_valueminus.py index 09635f60f1..cb2701a946 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_y/_valueminus.py +++ b/packages/python/plotly/plotly/validators/scatter/error_y/_valueminus.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_y/_visible.py b/packages/python/plotly/plotly/validators/scatter/error_y/_visible.py index 71a4edc85e..3b9a8c7f16 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_y/_visible.py +++ b/packages/python/plotly/plotly/validators/scatter/error_y/_visible.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="visible", parent_name="scatter.error_y", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/error_y/_width.py b/packages/python/plotly/plotly/validators/scatter/error_y/_width.py index 7cdb74a2a3..e97cfe91a1 100644 --- a/packages/python/plotly/plotly/validators/scatter/error_y/_width.py +++ b/packages/python/plotly/plotly/validators/scatter/error_y/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="scatter.error_y", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/scatter/hoverlabel/_align.py index 265a7d0a42..442b1a8e80 100644 --- a/packages/python/plotly/plotly/validators/scatter/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/scatter/hoverlabel/_align.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="align", parent_name="scatter.hoverlabel", **kwar parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/scatter/hoverlabel/_alignsrc.py index 9812dc8be1..cd445cc752 100644 --- a/packages/python/plotly/plotly/validators/scatter/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/scatter/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/scatter/hoverlabel/_bgcolor.py index 5fbebc599a..19653dc044 100644 --- a/packages/python/plotly/plotly/validators/scatter/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/scatter/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/scatter/hoverlabel/_bgcolorsrc.py index 6fbff4551c..0592d26a27 100644 --- a/packages/python/plotly/plotly/validators/scatter/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/scatter/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/scatter/hoverlabel/_bordercolor.py index d4deaa4330..3d0fe03938 100644 --- a/packages/python/plotly/plotly/validators/scatter/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/scatter/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/scatter/hoverlabel/_bordercolorsrc.py index 1676885f2a..b73e4f9692 100644 --- a/packages/python/plotly/plotly/validators/scatter/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/scatter/hoverlabel/_bordercolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/scatter/hoverlabel/_namelength.py index 8e545752b6..a79b7480f0 100644 --- a/packages/python/plotly/plotly/validators/scatter/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/scatter/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/scatter/hoverlabel/_namelengthsrc.py index 782b328d01..e62dde22f7 100644 --- a/packages/python/plotly/plotly/validators/scatter/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/scatter/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/scatter/hoverlabel/font/_color.py index 6acbef6954..eb1866b32c 100644 --- a/packages/python/plotly/plotly/validators/scatter/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/scatter/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/scatter/hoverlabel/font/_colorsrc.py index b7c5c0b292..61d5383318 100644 --- a/packages/python/plotly/plotly/validators/scatter/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scatter/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/scatter/hoverlabel/font/_family.py index 2133dad96c..240a9c0841 100644 --- a/packages/python/plotly/plotly/validators/scatter/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/scatter/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/scatter/hoverlabel/font/_familysrc.py index 9ca8f2f64a..56e6a86d40 100644 --- a/packages/python/plotly/plotly/validators/scatter/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/scatter/hoverlabel/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/scatter/hoverlabel/font/_size.py index f817fbe05f..42aae28788 100644 --- a/packages/python/plotly/plotly/validators/scatter/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/scatter/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/scatter/hoverlabel/font/_sizesrc.py index f5972d74af..160f71ebb9 100644 --- a/packages/python/plotly/plotly/validators/scatter/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scatter/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/line/_color.py b/packages/python/plotly/plotly/validators/scatter/line/_color.py index 5a9a5c4afd..88202cef6f 100644 --- a/packages/python/plotly/plotly/validators/scatter/line/_color.py +++ b/packages/python/plotly/plotly/validators/scatter/line/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="scatter.line", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/line/_dash.py b/packages/python/plotly/plotly/validators/scatter/line/_dash.py index 7aebef5304..b166e25b90 100644 --- a/packages/python/plotly/plotly/validators/scatter/line/_dash.py +++ b/packages/python/plotly/plotly/validators/scatter/line/_dash.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="dash", parent_name="scatter.line", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", ["solid", "dot", "dash", "longdash", "dashdot", "longdashdot"] ), diff --git a/packages/python/plotly/plotly/validators/scatter/line/_shape.py b/packages/python/plotly/plotly/validators/scatter/line/_shape.py index 13f0fa2d09..ec5a7e168f 100644 --- a/packages/python/plotly/plotly/validators/scatter/line/_shape.py +++ b/packages/python/plotly/plotly/validators/scatter/line/_shape.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="shape", parent_name="scatter.line", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["linear", "spline", "hv", "vh", "hvh", "vhv"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/line/_simplify.py b/packages/python/plotly/plotly/validators/scatter/line/_simplify.py index a2327d637c..52281204d4 100644 --- a/packages/python/plotly/plotly/validators/scatter/line/_simplify.py +++ b/packages/python/plotly/plotly/validators/scatter/line/_simplify.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="simplify", parent_name="scatter.line", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/line/_smoothing.py b/packages/python/plotly/plotly/validators/scatter/line/_smoothing.py index d0d6a2c47d..800bec12d2 100644 --- a/packages/python/plotly/plotly/validators/scatter/line/_smoothing.py +++ b/packages/python/plotly/plotly/validators/scatter/line/_smoothing.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="smoothing", parent_name="scatter.line", **kwargs edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 1.3), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/line/_width.py b/packages/python/plotly/plotly/validators/scatter/line/_width.py index 0ed205b711..e32c801ea7 100644 --- a/packages/python/plotly/plotly/validators/scatter/line/_width.py +++ b/packages/python/plotly/plotly/validators/scatter/line/_width.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="width", parent_name="scatter.line", **kwargs): anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/_autocolorscale.py b/packages/python/plotly/plotly/validators/scatter/marker/_autocolorscale.py index 5f6a5e62af..418a0bb12e 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/_cauto.py b/packages/python/plotly/plotly/validators/scatter/marker/_cauto.py index 1e6e8ff0f6..96c2bf6e6f 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/_cauto.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/_cauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cauto", parent_name="scatter.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/_cmax.py b/packages/python/plotly/plotly/validators/scatter/marker/_cmax.py index 6b742f759c..8fab2614ab 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/_cmax.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="scatter.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/_cmid.py b/packages/python/plotly/plotly/validators/scatter/marker/_cmid.py index 0f255afecd..929f7f18ed 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/_cmid.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="scatter.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/_cmin.py b/packages/python/plotly/plotly/validators/scatter/marker/_cmin.py index ef68c8f93a..66b8e0d1d9 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/_cmin.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="scatter.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/_color.py b/packages/python/plotly/plotly/validators/scatter/marker/_color.py index 8484a5b3af..8fd1ea2567 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/_color.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/_color.py @@ -9,7 +9,6 @@ def __init__(self, plotly_name="color", parent_name="scatter.marker", **kwargs): anim=kwargs.pop("anim", True), array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop("colorscale_path", "scatter.marker.colorscale"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/_coloraxis.py b/packages/python/plotly/plotly/validators/scatter/marker/_coloraxis.py index 8814940d60..c1ea94b65d 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/_coloraxis.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="coloraxis", parent_name="scatter.marker", **kwar dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/_colorbar.py b/packages/python/plotly/plotly/validators/scatter/marker/_colorbar.py index f74e80333e..fa133ff65d 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/_colorbar.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/_colorbar.py @@ -148,6 +148,12 @@ def __init__(self, plotly_name="colorbar", parent_name="scatter.marker", **kwarg s), sets the default property values to use for elements of scatter.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/scatter/marker/_colorscale.py b/packages/python/plotly/plotly/validators/scatter/marker/_colorscale.py index 2fc6c913e1..2b08ab3049 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/_colorscale.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/_colorsrc.py b/packages/python/plotly/plotly/validators/scatter/marker/_colorsrc.py index ad4b1b1736..5d6d3f412d 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/_colorsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="colorsrc", parent_name="scatter.marker", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/_maxdisplayed.py b/packages/python/plotly/plotly/validators/scatter/marker/_maxdisplayed.py index 53fe9704bf..9e5195331d 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/_maxdisplayed.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/_maxdisplayed.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/_opacity.py b/packages/python/plotly/plotly/validators/scatter/marker/_opacity.py index f60b0dcdd4..2a6b4f9566 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/_opacity.py @@ -11,6 +11,5 @@ def __init__(self, plotly_name="opacity", parent_name="scatter.marker", **kwargs edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/_opacitysrc.py b/packages/python/plotly/plotly/validators/scatter/marker/_opacitysrc.py index b37b0b0a2d..a67928f7fe 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/_opacitysrc.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/_opacitysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/_reversescale.py b/packages/python/plotly/plotly/validators/scatter/marker/_reversescale.py index 76d2ea4046..4e74a9ecca 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/_reversescale.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/_showscale.py b/packages/python/plotly/plotly/validators/scatter/marker/_showscale.py index aa388a4bde..a164dd2073 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/_showscale.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/_showscale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showscale", parent_name="scatter.marker", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/_size.py b/packages/python/plotly/plotly/validators/scatter/marker/_size.py index 60713a89cd..56c31932c4 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/_size.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/_size.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="size", parent_name="scatter.marker", **kwargs): array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/_sizemin.py b/packages/python/plotly/plotly/validators/scatter/marker/_sizemin.py index 405fe6b5e5..01876ecad9 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/_sizemin.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/_sizemin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="sizemin", parent_name="scatter.marker", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/_sizemode.py b/packages/python/plotly/plotly/validators/scatter/marker/_sizemode.py index 35fdc173fb..2efc1f7b77 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/_sizemode.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/_sizemode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="sizemode", parent_name="scatter.marker", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["diameter", "area"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/_sizeref.py b/packages/python/plotly/plotly/validators/scatter/marker/_sizeref.py index d43d8539e8..627522f1dc 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/_sizeref.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/_sizeref.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="sizeref", parent_name="scatter.marker", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/_sizesrc.py b/packages/python/plotly/plotly/validators/scatter/marker/_sizesrc.py index 095bacc18b..f5f43c3a29 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/_sizesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="sizesrc", parent_name="scatter.marker", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/_symbol.py b/packages/python/plotly/plotly/validators/scatter/marker/_symbol.py index 6405264bfd..f73b86f9e4 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/_symbol.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/_symbol.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="symbol", parent_name="scatter.marker", **kwargs) parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scatter/marker/_symbolsrc.py b/packages/python/plotly/plotly/validators/scatter/marker/_symbolsrc.py index d65f086234..13b2bf12f9 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/_symbolsrc.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/_symbolsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="symbolsrc", parent_name="scatter.marker", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/__init__.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_bgcolor.py index 41f4b8530f..0838ffc7c8 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_bordercolor.py index 5bb94320b1..136705878f 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_borderwidth.py index 7bfc1d7482..e564a0b869 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_dtick.py index 31c2904ad1..e2f1a4c7ac 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_exponentformat.py index d372fe4bf8..a74ea3f8e6 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_exponentformat.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_len.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_len.py index c3ab6a4b50..a6362a1e1d 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_len.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_lenmode.py index 7ef157f43a..aaf0c66b76 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_lenmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_minexponent.py index d51ae57365..56910dee0e 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_nticks.py index d109283e5e..491c86bbcd 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_outlinecolor.py index 918e2fdb6d..ebf179086e 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_outlinecolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_outlinewidth.py index 8284cf70a6..ac5c647eef 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_outlinewidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_separatethousands.py index 020cc78d33..300b31ef00 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_showexponent.py index aa0730efdf..e36605762d 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_showexponent.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_showticklabels.py index 1ccf240df0..b67b6828f3 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_showticklabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_showtickprefix.py index 34478677a5..5a861d2589 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_showtickprefix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_showticksuffix.py index 05faf22b1a..bf99ae7739 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_showticksuffix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_thickness.py index ea4b308bf6..e69fb3fcb4 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_thicknessmode.py index 5d534bfebf..a3ca8e2e44 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_thicknessmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tick0.py index 4a1953a123..d5ceabe24e 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickangle.py index fb40508438..40619f9076 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickcolor.py index a4d8baa4d5..301447665b 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickformat.py index 35a22a7360..ce20a9eb2a 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..e2f64ced9a --- /dev/null +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="scatter.marker.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "colorbars"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticklabelposition.py index 94977a2702..46fe1a7e0f 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticklen.py index d6d81c401d..883c303d75 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickmode.py index 9d9082042c..77ee2c0cef 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickprefix.py index 512564c019..d093d8da47 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticks.py index 0980eb4f94..bcb039f37d 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticksuffix.py index 8cd6a6ba1e..0ce3386419 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticktext.py index 0828c1d3ef..28f9890f11 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticktextsrc.py index 6ec5e121c1..9fdcee4622 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickvals.py index 4d4d184cb3..a1e4ff4d77 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickvalssrc.py index ea782069a5..9ef9ecd0d0 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickwidth.py index b1a79815e2..b1bb06ae38 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_x.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_x.py index dd51c9f75a..aef8338f20 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_x.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_xanchor.py index 61300e85e0..d3ba13b49e 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_xpad.py index 3441457c43..543b0162c8 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_xpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_y.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_y.py index d72d4dc48f..63296d33c3 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_y.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_yanchor.py index 0b02a4790b..98ca5d35aa 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ypad.py index 4ea7582037..489d9f692a 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/_ypad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickfont/_color.py index b7c01ebc1e..e63220a16f 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickfont/_family.py index f557628b9d..c6e30825d8 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickfont/_size.py index b1551753ce..7b409e221e 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickformatstop/_dtickrange.py index 60ce048481..a9ece0bd09 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "colorbars"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickformatstop/_enabled.py index db99d063c2..afa87038dd 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickformatstop/_name.py index 46af8d2d5f..9c0d4691dc 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickformatstop/_templateitemname.py index 13ec5515f0..ab5860dcef 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickformatstop/_value.py index fb08c71c02..6647e5bc23 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/title/_side.py index 42f2f634c5..b96e30471b 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/title/_side.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/title/_text.py index 077ecdad11..6377ac9380 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/title/font/_color.py index 231a7a8c36..d8f0a0cd5e 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/title/font/_family.py index 54db843197..25eef0be49 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/title/font/_size.py index 1f5dbb0011..ceb60f12f8 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/colorbar/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/gradient/_color.py b/packages/python/plotly/plotly/validators/scatter/marker/gradient/_color.py index 4107df8295..2674c77d92 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/gradient/_color.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/gradient/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/gradient/_colorsrc.py b/packages/python/plotly/plotly/validators/scatter/marker/gradient/_colorsrc.py index 4fa5300376..7191241147 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/gradient/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/gradient/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/gradient/_type.py b/packages/python/plotly/plotly/validators/scatter/marker/gradient/_type.py index 53ce6e58cf..02c2bcced1 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/gradient/_type.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/gradient/_type.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["radial", "horizontal", "vertical", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/gradient/_typesrc.py b/packages/python/plotly/plotly/validators/scatter/marker/gradient/_typesrc.py index 576efed419..d891ae643b 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/gradient/_typesrc.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/gradient/_typesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/line/_autocolorscale.py b/packages/python/plotly/plotly/validators/scatter/marker/line/_autocolorscale.py index 729db2f6af..9ed2290f07 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/line/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/line/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/line/_cauto.py b/packages/python/plotly/plotly/validators/scatter/marker/line/_cauto.py index c9593b8034..5005569bcb 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/line/_cauto.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/line/_cauto.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/line/_cmax.py b/packages/python/plotly/plotly/validators/scatter/marker/line/_cmax.py index 85071a0a3b..ee380dab3a 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/line/_cmax.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/line/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="scatter.marker.line", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/line/_cmid.py b/packages/python/plotly/plotly/validators/scatter/marker/line/_cmid.py index af9664048c..e47165a907 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/line/_cmid.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/line/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="scatter.marker.line", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/line/_cmin.py b/packages/python/plotly/plotly/validators/scatter/marker/line/_cmin.py index 76d4ac57d7..faae2af312 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/line/_cmin.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/line/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="scatter.marker.line", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/line/_color.py b/packages/python/plotly/plotly/validators/scatter/marker/line/_color.py index ef21bbaf16..e7dd0c3091 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/line/_color.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/line/_color.py @@ -11,7 +11,6 @@ def __init__( anim=kwargs.pop("anim", True), array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop( "colorscale_path", "scatter.marker.line.colorscale" ), diff --git a/packages/python/plotly/plotly/validators/scatter/marker/line/_coloraxis.py b/packages/python/plotly/plotly/validators/scatter/marker/line/_coloraxis.py index e19a97ec68..f7fec3693b 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/line/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/line/_coloraxis.py @@ -11,6 +11,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/line/_colorscale.py b/packages/python/plotly/plotly/validators/scatter/marker/line/_colorscale.py index 761b377c7d..e50f61c9ec 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/line/_colorscale.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/line/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/line/_colorsrc.py b/packages/python/plotly/plotly/validators/scatter/marker/line/_colorsrc.py index fe0d884973..e12f506d0a 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/line/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/line/_reversescale.py b/packages/python/plotly/plotly/validators/scatter/marker/line/_reversescale.py index 4c6ceafadd..46da81be28 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/line/_reversescale.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/line/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/line/_width.py b/packages/python/plotly/plotly/validators/scatter/marker/line/_width.py index dddce8d7c4..7fb1a7da33 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/line/_width.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/line/_width.py @@ -12,6 +12,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/marker/line/_widthsrc.py b/packages/python/plotly/plotly/validators/scatter/marker/line/_widthsrc.py index c9f952e8a8..2b71b6cbe5 100644 --- a/packages/python/plotly/plotly/validators/scatter/marker/line/_widthsrc.py +++ b/packages/python/plotly/plotly/validators/scatter/marker/line/_widthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/selected/marker/_color.py b/packages/python/plotly/plotly/validators/scatter/selected/marker/_color.py index 6411ff59b5..e310fc94bb 100644 --- a/packages/python/plotly/plotly/validators/scatter/selected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/scatter/selected/marker/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/selected/marker/_opacity.py b/packages/python/plotly/plotly/validators/scatter/selected/marker/_opacity.py index 6b9e74a44c..5a76958d30 100644 --- a/packages/python/plotly/plotly/validators/scatter/selected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/scatter/selected/marker/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/selected/marker/_size.py b/packages/python/plotly/plotly/validators/scatter/selected/marker/_size.py index 46c28f6a85..49d9d403a0 100644 --- a/packages/python/plotly/plotly/validators/scatter/selected/marker/_size.py +++ b/packages/python/plotly/plotly/validators/scatter/selected/marker/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/selected/textfont/_color.py b/packages/python/plotly/plotly/validators/scatter/selected/textfont/_color.py index d7a15fa0e6..01eebbc595 100644 --- a/packages/python/plotly/plotly/validators/scatter/selected/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/scatter/selected/textfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/scatter/stream/_maxpoints.py index 481d4d13a6..2bcf53aec3 100644 --- a/packages/python/plotly/plotly/validators/scatter/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/scatter/stream/_maxpoints.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="maxpoints", parent_name="scatter.stream", **kwar edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/stream/_token.py b/packages/python/plotly/plotly/validators/scatter/stream/_token.py index e9b00e4b38..c139dabcba 100644 --- a/packages/python/plotly/plotly/validators/scatter/stream/_token.py +++ b/packages/python/plotly/plotly/validators/scatter/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="scatter.stream", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/textfont/_color.py b/packages/python/plotly/plotly/validators/scatter/textfont/_color.py index 0dc00e2138..8b7aa5fa9c 100644 --- a/packages/python/plotly/plotly/validators/scatter/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/scatter/textfont/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="scatter.textfont", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/textfont/_colorsrc.py b/packages/python/plotly/plotly/validators/scatter/textfont/_colorsrc.py index 5b7b57efea..b5320d02c6 100644 --- a/packages/python/plotly/plotly/validators/scatter/textfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scatter/textfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/textfont/_family.py b/packages/python/plotly/plotly/validators/scatter/textfont/_family.py index 77f0c61a64..5c4fd545f4 100644 --- a/packages/python/plotly/plotly/validators/scatter/textfont/_family.py +++ b/packages/python/plotly/plotly/validators/scatter/textfont/_family.py @@ -9,7 +9,6 @@ def __init__(self, plotly_name="family", parent_name="scatter.textfont", **kwarg array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/textfont/_familysrc.py b/packages/python/plotly/plotly/validators/scatter/textfont/_familysrc.py index 0910b3f2c9..6b6b1c1f44 100644 --- a/packages/python/plotly/plotly/validators/scatter/textfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/scatter/textfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/textfont/_size.py b/packages/python/plotly/plotly/validators/scatter/textfont/_size.py index 245caf0931..8cf81dc2a7 100644 --- a/packages/python/plotly/plotly/validators/scatter/textfont/_size.py +++ b/packages/python/plotly/plotly/validators/scatter/textfont/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="scatter.textfont", **kwargs) array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/textfont/_sizesrc.py b/packages/python/plotly/plotly/validators/scatter/textfont/_sizesrc.py index 7f54708d73..fed54b8014 100644 --- a/packages/python/plotly/plotly/validators/scatter/textfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scatter/textfont/_sizesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="sizesrc", parent_name="scatter.textfont", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/unselected/marker/_color.py b/packages/python/plotly/plotly/validators/scatter/unselected/marker/_color.py index f90a99ffa8..4b95f36481 100644 --- a/packages/python/plotly/plotly/validators/scatter/unselected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/scatter/unselected/marker/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/unselected/marker/_opacity.py b/packages/python/plotly/plotly/validators/scatter/unselected/marker/_opacity.py index 5430a2f065..61e35edb74 100644 --- a/packages/python/plotly/plotly/validators/scatter/unselected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/scatter/unselected/marker/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/unselected/marker/_size.py b/packages/python/plotly/plotly/validators/scatter/unselected/marker/_size.py index 5a299f45b8..d360399d70 100644 --- a/packages/python/plotly/plotly/validators/scatter/unselected/marker/_size.py +++ b/packages/python/plotly/plotly/validators/scatter/unselected/marker/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter/unselected/textfont/_color.py b/packages/python/plotly/plotly/validators/scatter/unselected/textfont/_color.py index 6daeae64df..f7759fb87b 100644 --- a/packages/python/plotly/plotly/validators/scatter/unselected/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/scatter/unselected/textfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/__init__.py b/packages/python/plotly/plotly/validators/scatter3d/__init__.py index f8a2d72a12..fc450ce8f0 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/__init__.py +++ b/packages/python/plotly/plotly/validators/scatter3d/__init__.py @@ -2,12 +2,15 @@ if sys.version_info < (3, 7): from ._zsrc import ZsrcValidator + from ._zhoverformat import ZhoverformatValidator from ._zcalendar import ZcalendarValidator from ._z import ZValidator from ._ysrc import YsrcValidator + from ._yhoverformat import YhoverformatValidator from ._ycalendar import YcalendarValidator from ._y import YValidator from ._xsrc import XsrcValidator + from ._xhoverformat import XhoverformatValidator from ._xcalendar import XcalendarValidator from ._x import XValidator from ._visible import VisibleValidator @@ -57,12 +60,15 @@ [], [ "._zsrc.ZsrcValidator", + "._zhoverformat.ZhoverformatValidator", "._zcalendar.ZcalendarValidator", "._z.ZValidator", "._ysrc.YsrcValidator", + "._yhoverformat.YhoverformatValidator", "._ycalendar.YcalendarValidator", "._y.YValidator", "._xsrc.XsrcValidator", + "._xhoverformat.XhoverformatValidator", "._xcalendar.XcalendarValidator", "._x.XValidator", "._visible.VisibleValidator", diff --git a/packages/python/plotly/plotly/validators/scatter3d/_connectgaps.py b/packages/python/plotly/plotly/validators/scatter3d/_connectgaps.py index e793945d16..8730dc9cb1 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_connectgaps.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_connectgaps.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="connectgaps", parent_name="scatter3d", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_customdata.py b/packages/python/plotly/plotly/validators/scatter3d/_customdata.py index e63a5b64da..5630bd0d92 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_customdata.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="scatter3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_customdatasrc.py b/packages/python/plotly/plotly/validators/scatter3d/_customdatasrc.py index 8dea51464e..9bd3d7b71c 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="scatter3d", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_hoverinfo.py b/packages/python/plotly/plotly/validators/scatter3d/_hoverinfo.py index d059467956..bd38d7927c 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="scatter3d", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["x", "y", "z", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/scatter3d/_hoverinfosrc.py index 092552f833..7fa06df670 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="scatter3d", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_hovertemplate.py b/packages/python/plotly/plotly/validators/scatter3d/_hovertemplate.py index 2b38adab43..a47cb7e545 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="scatter3d", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/scatter3d/_hovertemplatesrc.py index fec661e6fd..3a8d115b53 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_hovertemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_hovertext.py b/packages/python/plotly/plotly/validators/scatter3d/_hovertext.py index 220eef34a5..e44a0b6afd 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_hovertext.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="scatter3d", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_hovertextsrc.py b/packages/python/plotly/plotly/validators/scatter3d/_hovertextsrc.py index faa7b39247..16bdfe92e4 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="scatter3d", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_ids.py b/packages/python/plotly/plotly/validators/scatter3d/_ids.py index 41e4531f96..0f5a03cc9c 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_ids.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="scatter3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_idssrc.py b/packages/python/plotly/plotly/validators/scatter3d/_idssrc.py index 456ef415c1..2febd8966e 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_idssrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="scatter3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_legendgroup.py b/packages/python/plotly/plotly/validators/scatter3d/_legendgroup.py index 75af5f47b0..62b1298ff9 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="scatter3d", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_meta.py b/packages/python/plotly/plotly/validators/scatter3d/_meta.py index e7ecacc55c..6a9559a0fa 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_meta.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="scatter3d", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_metasrc.py b/packages/python/plotly/plotly/validators/scatter3d/_metasrc.py index 8f36c0ba93..177e10ef41 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_metasrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="scatter3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_mode.py b/packages/python/plotly/plotly/validators/scatter3d/_mode.py index 32a2d972e7..f47b14402c 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_mode.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_mode.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="mode", parent_name="scatter3d", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), extras=kwargs.pop("extras", ["none"]), flags=kwargs.pop("flags", ["lines", "markers", "text"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_name.py b/packages/python/plotly/plotly/validators/scatter3d/_name.py index 96d540e922..0d4be04561 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_name.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="scatter3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_opacity.py b/packages/python/plotly/plotly/validators/scatter3d/_opacity.py index c46a4bd85b..4af0b58a05 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_opacity.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="scatter3d", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_scene.py b/packages/python/plotly/plotly/validators/scatter3d/_scene.py index bdf2528ec5..442657eb46 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_scene.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_scene.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="scene", parent_name="scatter3d", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "scene"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_showlegend.py b/packages/python/plotly/plotly/validators/scatter3d/_showlegend.py index ee956414f9..17f3ef8632 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_showlegend.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="scatter3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_surfaceaxis.py b/packages/python/plotly/plotly/validators/scatter3d/_surfaceaxis.py index c6d03828a7..c4ec17c5ff 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_surfaceaxis.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_surfaceaxis.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="surfaceaxis", parent_name="scatter3d", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [-1, 0, 1, 2]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_surfacecolor.py b/packages/python/plotly/plotly/validators/scatter3d/_surfacecolor.py index 4fe62d033c..9aefbee2ad 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_surfacecolor.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_surfacecolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="surfacecolor", parent_name="scatter3d", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_text.py b/packages/python/plotly/plotly/validators/scatter3d/_text.py index 355f917a36..96c769eb80 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_text.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="scatter3d", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_textposition.py b/packages/python/plotly/plotly/validators/scatter3d/_textposition.py index bac1962612..881df4a4e9 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_textposition.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_textposition.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="textposition", parent_name="scatter3d", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scatter3d/_textpositionsrc.py b/packages/python/plotly/plotly/validators/scatter3d/_textpositionsrc.py index 51d5e137bf..a39bc73c38 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_textpositionsrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_textpositionsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_textsrc.py b/packages/python/plotly/plotly/validators/scatter3d/_textsrc.py index 5c75e60323..09701df6b8 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_textsrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="scatter3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_texttemplate.py b/packages/python/plotly/plotly/validators/scatter3d/_texttemplate.py index 2b732daa4c..99c1f64c7f 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_texttemplate.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_texttemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="texttemplate", parent_name="scatter3d", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_texttemplatesrc.py b/packages/python/plotly/plotly/validators/scatter3d/_texttemplatesrc.py index c8521c4af6..8a1127c50f 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_texttemplatesrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_texttemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_uid.py b/packages/python/plotly/plotly/validators/scatter3d/_uid.py index a00eda80d5..5505c1d79d 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_uid.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="scatter3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_uirevision.py b/packages/python/plotly/plotly/validators/scatter3d/_uirevision.py index a0bc7c7aad..a2dfed073e 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_uirevision.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="scatter3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_visible.py b/packages/python/plotly/plotly/validators/scatter3d/_visible.py index 4a79d60e4d..f3750c7162 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_visible.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="scatter3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_x.py b/packages/python/plotly/plotly/validators/scatter3d/_x.py index 7e3647390f..a2a2205354 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_x.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_x.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x", parent_name="scatter3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_xcalendar.py b/packages/python/plotly/plotly/validators/scatter3d/_xcalendar.py index c1f5fe43cb..8908d6d8ac 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_xcalendar.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_xcalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xcalendar", parent_name="scatter3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scatter3d/_xhoverformat.py b/packages/python/plotly/plotly/validators/scatter3d/_xhoverformat.py new file mode 100644 index 0000000000..e68c0eb20a --- /dev/null +++ b/packages/python/plotly/plotly/validators/scatter3d/_xhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class XhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="xhoverformat", parent_name="scatter3d", **kwargs): + super(XhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_xsrc.py b/packages/python/plotly/plotly/validators/scatter3d/_xsrc.py index 9818c470f5..881a61addc 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_xsrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="scatter3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_y.py b/packages/python/plotly/plotly/validators/scatter3d/_y.py index bc3a7b232f..39c4ed4016 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_y.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_y.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y", parent_name="scatter3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_ycalendar.py b/packages/python/plotly/plotly/validators/scatter3d/_ycalendar.py index 63654ba56b..9aae303d2a 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_ycalendar.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_ycalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ycalendar", parent_name="scatter3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scatter3d/_yhoverformat.py b/packages/python/plotly/plotly/validators/scatter3d/_yhoverformat.py new file mode 100644 index 0000000000..ee9c2d9f40 --- /dev/null +++ b/packages/python/plotly/plotly/validators/scatter3d/_yhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class YhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="yhoverformat", parent_name="scatter3d", **kwargs): + super(YhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_ysrc.py b/packages/python/plotly/plotly/validators/scatter3d/_ysrc.py index 1853c85c2f..b66a778a61 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_ysrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_ysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ysrc", parent_name="scatter3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_z.py b/packages/python/plotly/plotly/validators/scatter3d/_z.py index 405857d7ac..20b619677f 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_z.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_z.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="z", parent_name="scatter3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_zcalendar.py b/packages/python/plotly/plotly/validators/scatter3d/_zcalendar.py index 9ae45f862e..cecfe0b1c5 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_zcalendar.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_zcalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="zcalendar", parent_name="scatter3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scatter3d/_zhoverformat.py b/packages/python/plotly/plotly/validators/scatter3d/_zhoverformat.py new file mode 100644 index 0000000000..3d7dd29ead --- /dev/null +++ b/packages/python/plotly/plotly/validators/scatter3d/_zhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class ZhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="zhoverformat", parent_name="scatter3d", **kwargs): + super(ZhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/_zsrc.py b/packages/python/plotly/plotly/validators/scatter3d/_zsrc.py index b5033533b6..85fdcd486b 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/_zsrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/_zsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="zsrc", parent_name="scatter3d", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_x/_array.py b/packages/python/plotly/plotly/validators/scatter3d/error_x/_array.py index 25ef79e5ec..c1106116be 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_x/_array.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_x/_array.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="array", parent_name="scatter3d.error_x", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_x/_arrayminus.py b/packages/python/plotly/plotly/validators/scatter3d/error_x/_arrayminus.py index 65d64fabf5..257c8ff917 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_x/_arrayminus.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_x/_arrayminus.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_x/_arrayminussrc.py b/packages/python/plotly/plotly/validators/scatter3d/error_x/_arrayminussrc.py index 159dbff9da..14fbe6ab37 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_x/_arrayminussrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_x/_arrayminussrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_x/_arraysrc.py b/packages/python/plotly/plotly/validators/scatter3d/error_x/_arraysrc.py index 7fb4f0a1b5..40fd88ba01 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_x/_arraysrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_x/_arraysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_x/_color.py b/packages/python/plotly/plotly/validators/scatter3d/error_x/_color.py index 785d719ef7..85d1017b41 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_x/_color.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_x/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="scatter3d.error_x", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_x/_copy_zstyle.py b/packages/python/plotly/plotly/validators/scatter3d/error_x/_copy_zstyle.py index d90aaaf589..7197f59433 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_x/_copy_zstyle.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_x/_copy_zstyle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_x/_symmetric.py b/packages/python/plotly/plotly/validators/scatter3d/error_x/_symmetric.py index 4c15267b88..f9770473bd 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_x/_symmetric.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_x/_symmetric.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_x/_thickness.py b/packages/python/plotly/plotly/validators/scatter3d/error_x/_thickness.py index e156da11c0..e6863bc9d5 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_x/_thickness.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_x/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_x/_traceref.py b/packages/python/plotly/plotly/validators/scatter3d/error_x/_traceref.py index ba0c19e93f..2959d28b4b 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_x/_traceref.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_x/_traceref.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_x/_tracerefminus.py b/packages/python/plotly/plotly/validators/scatter3d/error_x/_tracerefminus.py index f561b58a4e..dac0042729 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_x/_tracerefminus.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_x/_tracerefminus.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_x/_type.py b/packages/python/plotly/plotly/validators/scatter3d/error_x/_type.py index e0f66a41fa..a735d9d807 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_x/_type.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_x/_type.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="type", parent_name="scatter3d.error_x", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["percent", "constant", "sqrt", "data"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_x/_value.py b/packages/python/plotly/plotly/validators/scatter3d/error_x/_value.py index 020ff8c7d7..285afe854c 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_x/_value.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_x/_value.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="value", parent_name="scatter3d.error_x", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_x/_valueminus.py b/packages/python/plotly/plotly/validators/scatter3d/error_x/_valueminus.py index e0116a6b22..b365cbe187 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_x/_valueminus.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_x/_valueminus.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_x/_visible.py b/packages/python/plotly/plotly/validators/scatter3d/error_x/_visible.py index 77bfbea245..23bc1ba0b0 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_x/_visible.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_x/_visible.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_x/_width.py b/packages/python/plotly/plotly/validators/scatter3d/error_x/_width.py index 97fa13aa75..c55f999957 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_x/_width.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_x/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="scatter3d.error_x", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_y/_array.py b/packages/python/plotly/plotly/validators/scatter3d/error_y/_array.py index 7fd9be649a..337022a35b 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_y/_array.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_y/_array.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="array", parent_name="scatter3d.error_y", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_y/_arrayminus.py b/packages/python/plotly/plotly/validators/scatter3d/error_y/_arrayminus.py index 21d501d474..085df5bdb6 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_y/_arrayminus.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_y/_arrayminus.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_y/_arrayminussrc.py b/packages/python/plotly/plotly/validators/scatter3d/error_y/_arrayminussrc.py index 3d2389ebce..3ac5aee82f 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_y/_arrayminussrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_y/_arrayminussrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_y/_arraysrc.py b/packages/python/plotly/plotly/validators/scatter3d/error_y/_arraysrc.py index eb8367a580..524ddcd5da 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_y/_arraysrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_y/_arraysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_y/_color.py b/packages/python/plotly/plotly/validators/scatter3d/error_y/_color.py index 08bd3b1d4b..7e793fa95e 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_y/_color.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_y/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="scatter3d.error_y", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_y/_copy_zstyle.py b/packages/python/plotly/plotly/validators/scatter3d/error_y/_copy_zstyle.py index 77d21b055d..428e849aad 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_y/_copy_zstyle.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_y/_copy_zstyle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_y/_symmetric.py b/packages/python/plotly/plotly/validators/scatter3d/error_y/_symmetric.py index 913a9607f6..bf31dd3d77 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_y/_symmetric.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_y/_symmetric.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_y/_thickness.py b/packages/python/plotly/plotly/validators/scatter3d/error_y/_thickness.py index fe9d67a8ff..feb4a621db 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_y/_thickness.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_y/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_y/_traceref.py b/packages/python/plotly/plotly/validators/scatter3d/error_y/_traceref.py index 791ffa8a94..7982647630 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_y/_traceref.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_y/_traceref.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_y/_tracerefminus.py b/packages/python/plotly/plotly/validators/scatter3d/error_y/_tracerefminus.py index 09c888b4dc..b2a56c0838 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_y/_tracerefminus.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_y/_tracerefminus.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_y/_type.py b/packages/python/plotly/plotly/validators/scatter3d/error_y/_type.py index 23a8120c92..0d00cbe8fc 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_y/_type.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_y/_type.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="type", parent_name="scatter3d.error_y", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["percent", "constant", "sqrt", "data"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_y/_value.py b/packages/python/plotly/plotly/validators/scatter3d/error_y/_value.py index 9e1a965ca7..92aa112334 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_y/_value.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_y/_value.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="value", parent_name="scatter3d.error_y", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_y/_valueminus.py b/packages/python/plotly/plotly/validators/scatter3d/error_y/_valueminus.py index ebb2dc152f..63d7a22328 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_y/_valueminus.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_y/_valueminus.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_y/_visible.py b/packages/python/plotly/plotly/validators/scatter3d/error_y/_visible.py index 8e09afc442..504f21cfc9 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_y/_visible.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_y/_visible.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_y/_width.py b/packages/python/plotly/plotly/validators/scatter3d/error_y/_width.py index f68da382fe..75c3fd057d 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_y/_width.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_y/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="scatter3d.error_y", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_z/_array.py b/packages/python/plotly/plotly/validators/scatter3d/error_z/_array.py index e69b2670e2..02ba9c0a58 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_z/_array.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_z/_array.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="array", parent_name="scatter3d.error_z", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_z/_arrayminus.py b/packages/python/plotly/plotly/validators/scatter3d/error_z/_arrayminus.py index a5c9952cc9..72e67b98e4 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_z/_arrayminus.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_z/_arrayminus.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_z/_arrayminussrc.py b/packages/python/plotly/plotly/validators/scatter3d/error_z/_arrayminussrc.py index 0439b0a8e8..84ca1274b8 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_z/_arrayminussrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_z/_arrayminussrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_z/_arraysrc.py b/packages/python/plotly/plotly/validators/scatter3d/error_z/_arraysrc.py index ed14bd7f25..f62e0689ae 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_z/_arraysrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_z/_arraysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_z/_color.py b/packages/python/plotly/plotly/validators/scatter3d/error_z/_color.py index 4574deb557..2398b0b5f2 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_z/_color.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_z/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="scatter3d.error_z", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_z/_symmetric.py b/packages/python/plotly/plotly/validators/scatter3d/error_z/_symmetric.py index 4681c7925b..98f2ae1c45 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_z/_symmetric.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_z/_symmetric.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_z/_thickness.py b/packages/python/plotly/plotly/validators/scatter3d/error_z/_thickness.py index 4d24b92830..e13f1bcf1d 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_z/_thickness.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_z/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_z/_traceref.py b/packages/python/plotly/plotly/validators/scatter3d/error_z/_traceref.py index 34e6c5d886..777da59639 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_z/_traceref.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_z/_traceref.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_z/_tracerefminus.py b/packages/python/plotly/plotly/validators/scatter3d/error_z/_tracerefminus.py index c5f0277f46..e2ff3d3a69 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_z/_tracerefminus.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_z/_tracerefminus.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_z/_type.py b/packages/python/plotly/plotly/validators/scatter3d/error_z/_type.py index 94d8115f9f..6eb60d732e 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_z/_type.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_z/_type.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="type", parent_name="scatter3d.error_z", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["percent", "constant", "sqrt", "data"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_z/_value.py b/packages/python/plotly/plotly/validators/scatter3d/error_z/_value.py index abff1b2fd1..e41e6b0cd5 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_z/_value.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_z/_value.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="value", parent_name="scatter3d.error_z", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_z/_valueminus.py b/packages/python/plotly/plotly/validators/scatter3d/error_z/_valueminus.py index 9b04b85dc0..6ecd6081fc 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_z/_valueminus.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_z/_valueminus.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_z/_visible.py b/packages/python/plotly/plotly/validators/scatter3d/error_z/_visible.py index 7b61466c0d..24f64d1cc8 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_z/_visible.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_z/_visible.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/error_z/_width.py b/packages/python/plotly/plotly/validators/scatter3d/error_z/_width.py index 706af53a6e..a239682d7e 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/error_z/_width.py +++ b/packages/python/plotly/plotly/validators/scatter3d/error_z/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="scatter3d.error_z", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_align.py index edb5df7026..d1ea5afcfa 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_align.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_alignsrc.py index 8c974a7ac2..af16585714 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_bgcolor.py index e02de9d874..903c9a786a 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_bgcolorsrc.py index fa0c29e191..5cbe0543f5 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_bordercolor.py index fe9c4f872f..8e7cb7f001 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_bordercolorsrc.py index 71561ed881..9c8b3a64a3 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_bordercolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_namelength.py index c4f58c6174..90947bebf1 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_namelengthsrc.py index eaacd78f8b..16158f4890 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/font/_color.py index 18842c6625..38bad9f5b0 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/font/_colorsrc.py index 01f0272a2b..f9e8514508 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/font/_family.py index 9bd61fe5a9..18544559e7 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/font/_familysrc.py index b235c8d308..2311b72e3b 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/font/_size.py index 736ec5bf85..1263eed1db 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/font/_sizesrc.py index 3be5efa4a7..8be1bb9cff 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/_autocolorscale.py b/packages/python/plotly/plotly/validators/scatter3d/line/_autocolorscale.py index 0132ddba19..f2347e3d24 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/_cauto.py b/packages/python/plotly/plotly/validators/scatter3d/line/_cauto.py index cb82a9e727..3df47ad6fe 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/_cauto.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/_cauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cauto", parent_name="scatter3d.line", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/_cmax.py b/packages/python/plotly/plotly/validators/scatter3d/line/_cmax.py index dc30ac62d5..ca2fd18bfb 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/_cmax.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="scatter3d.line", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/_cmid.py b/packages/python/plotly/plotly/validators/scatter3d/line/_cmid.py index 13fde43de5..261f022347 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/_cmid.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="scatter3d.line", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/_cmin.py b/packages/python/plotly/plotly/validators/scatter3d/line/_cmin.py index cfa97ae171..43352a84d6 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/_cmin.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="scatter3d.line", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/_color.py b/packages/python/plotly/plotly/validators/scatter3d/line/_color.py index 81fc2d6fd9..e577eed4aa 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/_color.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/_color.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="color", parent_name="scatter3d.line", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop("colorscale_path", "scatter3d.line.colorscale"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/_coloraxis.py b/packages/python/plotly/plotly/validators/scatter3d/line/_coloraxis.py index 34c4bbe9db..abacd5588e 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/_coloraxis.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="coloraxis", parent_name="scatter3d.line", **kwar dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/_colorbar.py b/packages/python/plotly/plotly/validators/scatter3d/line/_colorbar.py index 8c5c77f680..2e8d74adb2 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/_colorbar.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/_colorbar.py @@ -148,6 +148,12 @@ def __init__(self, plotly_name="colorbar", parent_name="scatter3d.line", **kwarg s), sets the default property values to use for elements of scatter3d.line.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/_colorscale.py b/packages/python/plotly/plotly/validators/scatter3d/line/_colorscale.py index 828830f5e0..53477d37f7 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/_colorscale.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/_colorsrc.py b/packages/python/plotly/plotly/validators/scatter3d/line/_colorsrc.py index 233ad38f55..d619fb6bce 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/_colorsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="colorsrc", parent_name="scatter3d.line", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/_dash.py b/packages/python/plotly/plotly/validators/scatter3d/line/_dash.py index 841e67a4d3..df49206f5b 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/_dash.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/_dash.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="dash", parent_name="scatter3d.line", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", ["solid", "dot", "dash", "longdash", "dashdot", "longdashdot"] ), diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/_reversescale.py b/packages/python/plotly/plotly/validators/scatter3d/line/_reversescale.py index ebe2bd93dd..d40ca0b09d 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/_reversescale.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/_showscale.py b/packages/python/plotly/plotly/validators/scatter3d/line/_showscale.py index f1e036934c..4326778029 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/_showscale.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/_showscale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showscale", parent_name="scatter3d.line", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/_width.py b/packages/python/plotly/plotly/validators/scatter3d/line/_width.py index 110ed8d0a5..850847c19c 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/_width.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="scatter3d.line", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/__init__.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_bgcolor.py index e2941264d2..b1b06f508f 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_bordercolor.py index e65ecc9c5e..8c5eec4f38 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_borderwidth.py index e3957e6bc4..29641f2d3c 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_dtick.py index 2855d9d2fc..870cd5ccf1 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_exponentformat.py index b9136caadd..18b5305177 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_exponentformat.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_len.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_len.py index 4c3ff86516..4d8ad19b3f 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_len.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_lenmode.py index 117deef8c6..b78cac1447 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_lenmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_minexponent.py index 81863bb439..fb7ecdc36e 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_nticks.py index 02665f89c6..7fada000de 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_outlinecolor.py index 2b9763bc70..bfbd2dedd1 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_outlinecolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_outlinewidth.py index 2a38e027dd..fdf57a02c2 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_outlinewidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_separatethousands.py index 87267de43c..b3f2888cb4 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_showexponent.py index 0b656e4a54..69b8f6647f 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_showexponent.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_showticklabels.py index 15374bca7a..d457640013 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_showticklabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_showtickprefix.py index e969e5a921..df853c36c8 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_showtickprefix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_showticksuffix.py index ce3c17ddd4..bf77546d56 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_showticksuffix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_thickness.py index 19292569f2..4aee46ed45 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_thicknessmode.py index 842e6c87db..6730c6fdee 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_thicknessmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tick0.py index ff2b49f1a7..41aefbd015 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickangle.py index 9829718a0f..868084a147 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickcolor.py index 0fb55627fc..b0b43f25c6 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickformat.py index c3cc39a094..0b98d26fcc 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..d9de3a5d84 --- /dev/null +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="scatter3d.line.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticklabelposition.py index a7a4fee61d..0638c30189 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticklen.py index cb302067c8..a8b156f39b 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickmode.py index 44e2b80369..1082236d38 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickprefix.py index 890300ebdd..a8c4f3dac0 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticks.py index f2e42a655c..7245b7c1a5 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticksuffix.py index 2a925d17d6..d652839bd6 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticktext.py index 7e371e8aff..ebbd26affb 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticktextsrc.py index 884526f06f..63cbc75384 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickvals.py index 3ce8162747..59726b3b64 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickvalssrc.py index 8662d0ca1f..0815518ed4 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickwidth.py index a349dbb3ea..abea7dadf4 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_x.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_x.py index 4cd57b59c5..4f56b5d7b3 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_x.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_xanchor.py index 612aefc083..ca6127698b 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_xpad.py index 7d12ce428a..b4c5643609 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_xpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_y.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_y.py index c97ba01a29..81ac45eca4 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_y.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_yanchor.py index e49a0b461e..6131b1e661 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ypad.py index c5b1553a64..b7c272ffad 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/_ypad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickfont/_color.py index 5abf8ea8cd..4e31008c07 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickfont/_family.py index df08a1cc6d..42737c27d5 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickfont/_size.py index e8f6ec2886..c1b8a30031 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickformatstop/_dtickrange.py index a8231a56c5..b347bb75e7 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickformatstop/_enabled.py index 8b611e7754..52776fb0b4 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickformatstop/_name.py index e5589a9728..b73cfa48ff 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickformatstop/_templateitemname.py index 8bcb4f3287..6548fc0b20 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickformatstop/_value.py index e28c941a95..e707b4d648 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/title/_side.py index 04bfcc5608..3363467466 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/title/_side.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/title/_text.py index c81668ef8b..c62a2cb607 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/title/font/_color.py index 1a4cb42464..7d79524733 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/title/font/_family.py index d9dba40af2..6cb0502292 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/title/font/_size.py index 3597d50eac..e9c69c247d 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/scatter3d/line/colorbar/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/_autocolorscale.py b/packages/python/plotly/plotly/validators/scatter3d/marker/_autocolorscale.py index c8e3c575ed..91e469318a 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/_cauto.py b/packages/python/plotly/plotly/validators/scatter3d/marker/_cauto.py index 61b9b815ea..abd681957b 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/_cauto.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/_cauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cauto", parent_name="scatter3d.marker", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/_cmax.py b/packages/python/plotly/plotly/validators/scatter3d/marker/_cmax.py index 8b89ea4ba3..cca3ea50ed 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/_cmax.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="scatter3d.marker", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/_cmid.py b/packages/python/plotly/plotly/validators/scatter3d/marker/_cmid.py index 740983d49d..fbbe858a3f 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/_cmid.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="scatter3d.marker", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/_cmin.py b/packages/python/plotly/plotly/validators/scatter3d/marker/_cmin.py index 1336a7240b..0b4a0c5d60 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/_cmin.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="scatter3d.marker", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/_color.py b/packages/python/plotly/plotly/validators/scatter3d/marker/_color.py index 6eb6b4ce81..aa42b360a5 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/_color.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/_color.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="color", parent_name="scatter3d.marker", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop( "colorscale_path", "scatter3d.marker.colorscale" ), diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/_coloraxis.py b/packages/python/plotly/plotly/validators/scatter3d/marker/_coloraxis.py index 7c40942d97..07bb5d61e9 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/_coloraxis.py @@ -11,6 +11,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/_colorbar.py b/packages/python/plotly/plotly/validators/scatter3d/marker/_colorbar.py index cc111c97ea..e712daca43 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/_colorbar.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/_colorbar.py @@ -150,6 +150,12 @@ def __init__( lts), sets the default property values to use for elements of scatter3d.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/_colorscale.py b/packages/python/plotly/plotly/validators/scatter3d/marker/_colorscale.py index 7c0eed7731..48433863ed 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/_colorscale.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/_colorsrc.py b/packages/python/plotly/plotly/validators/scatter3d/marker/_colorsrc.py index 99afa8e9b0..1b1147520f 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/_opacity.py b/packages/python/plotly/plotly/validators/scatter3d/marker/_opacity.py index dcf698d2a8..781b15055e 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/_opacity.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="opacity", parent_name="scatter3d.marker", **kwar edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/_reversescale.py b/packages/python/plotly/plotly/validators/scatter3d/marker/_reversescale.py index 09943a375f..9271917bf3 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/_reversescale.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/_showscale.py b/packages/python/plotly/plotly/validators/scatter3d/marker/_showscale.py index 70b52f3e21..e3a1b72a0b 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/_showscale.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/_showscale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/_size.py b/packages/python/plotly/plotly/validators/scatter3d/marker/_size.py index c8dde1bce1..0981592a39 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/_size.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="scatter3d.marker", **kwargs) array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/_sizemin.py b/packages/python/plotly/plotly/validators/scatter3d/marker/_sizemin.py index 02a2f63ecc..9d15ef43b5 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/_sizemin.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/_sizemin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="sizemin", parent_name="scatter3d.marker", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/_sizemode.py b/packages/python/plotly/plotly/validators/scatter3d/marker/_sizemode.py index 6a6717677c..e3dd71b88c 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/_sizemode.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/_sizemode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["diameter", "area"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/_sizeref.py b/packages/python/plotly/plotly/validators/scatter3d/marker/_sizeref.py index 63ce52961b..f71bc2338b 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/_sizeref.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/_sizeref.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="sizeref", parent_name="scatter3d.marker", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/_sizesrc.py b/packages/python/plotly/plotly/validators/scatter3d/marker/_sizesrc.py index ece4128a82..4817e28af9 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/_sizesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="sizesrc", parent_name="scatter3d.marker", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/_symbol.py b/packages/python/plotly/plotly/validators/scatter3d/marker/_symbol.py index 81de82d3fe..af5c943b1e 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/_symbol.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/_symbol.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="symbol", parent_name="scatter3d.marker", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/_symbolsrc.py b/packages/python/plotly/plotly/validators/scatter3d/marker/_symbolsrc.py index fb68228fca..a6db8fd70a 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/_symbolsrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/_symbolsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/__init__.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_bgcolor.py index 53da6d50aa..c03711a6fc 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_bordercolor.py index c9ca559e87..b6e2002cbb 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_bordercolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_borderwidth.py index a80daa45e9..6c9e70cb70 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_borderwidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_dtick.py index 0c97bfaa07..5c6d145e9a 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_exponentformat.py index c7a9a5db6d..2e240fc867 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_exponentformat.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_len.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_len.py index a10b9c2e7b..f582322fee 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_len.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_lenmode.py index 7bcda78bd9..6013621e4a 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_lenmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_minexponent.py index 585ec352a7..5e3e06a755 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_minexponent.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_nticks.py index 5897373c51..aa0fe732c8 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_outlinecolor.py index d768b681e0..f9a28d5af7 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_outlinecolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_outlinewidth.py index d27ea51c2e..d8394462ef 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_outlinewidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_separatethousands.py index 1f3d3d7bc9..0cbbfdc376 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_showexponent.py index 192937f695..e5c2b2e929 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_showexponent.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_showticklabels.py index 6341af107d..f2c8ca1d05 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_showticklabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_showtickprefix.py index 9d8dffdc18..53796c9344 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_showtickprefix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_showticksuffix.py index 5c0701450d..5d8b2b426a 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_showticksuffix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_thickness.py index 61c75577d6..ea6794436f 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_thicknessmode.py index 46e6ee3662..f4defa70ad 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_thicknessmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tick0.py index d10b272ab6..0e9ed346c6 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickangle.py index cacacf7a3e..c175e189b6 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickcolor.py index 5ede8a89c0..911dd03e30 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickformat.py index eda4666cfa..5d73bb3869 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickformat.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..6114808a56 --- /dev/null +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="scatter3d.marker.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticklabelposition.py index f52693b669..3ac0cb4e8b 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticklen.py index 9222b35a14..1e1229b458 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickmode.py index 99c965e4e2..fafc9a80e6 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickprefix.py index fa33e8a672..736926c771 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickprefix.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticks.py index 481830a65b..246afda78e 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticksuffix.py index 7f8fbcf5d4..50505f861b 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticksuffix.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticktext.py index 49008f737b..6d70855746 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticktextsrc.py index 9f2ad33c85..0420ad4bb7 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ticktextsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickvals.py index 6545ac2e2c..1609a31ba9 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickvalssrc.py index 0407738947..e263adea7c 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickvalssrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickwidth.py index 4d66f9c934..719ca33b62 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_x.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_x.py index dba6f390d7..14646c113d 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_x.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_xanchor.py index ae18dd9af5..05e14d88c5 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_xpad.py index 94ec9728d0..f5d1a22ca7 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_xpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_y.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_y.py index 3b685c5d39..31036094a0 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_y.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_yanchor.py index 4532f3293e..2827ff5aa3 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ypad.py index b5dc3f4294..f2b92594fa 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/_ypad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickfont/_color.py index 881d54de64..ba81aead08 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickfont/_family.py index 439a7151be..0df7f54f99 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickfont/_size.py index 79b0a9c294..4bd2b8c791 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickformatstop/_dtickrange.py index 1a3189797b..fa4128f2b7 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickformatstop/_enabled.py index 6e5a1eaaf8..093938c583 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickformatstop/_name.py index ed2cb11430..4f73c2349c 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickformatstop/_templateitemname.py index 24d337c9a9..a6ed437be7 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickformatstop/_value.py index 167690a653..69f227ffb1 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/title/_side.py index e1ddfd4290..f363bb1da0 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/title/_side.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/title/_text.py index f984063cdf..042a3c0c6f 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/title/_text.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/title/font/_color.py index d772ab1934..b0b88c4bc9 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/title/font/_family.py index 9b6dc79dcf..a679bfa8ab 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/title/font/_size.py index b13c8980ac..ad29f91eba 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/colorbar/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/line/_autocolorscale.py b/packages/python/plotly/plotly/validators/scatter3d/marker/line/_autocolorscale.py index e4a467268d..c4a7ed13d7 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/line/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/line/_autocolorscale.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/line/_cauto.py b/packages/python/plotly/plotly/validators/scatter3d/marker/line/_cauto.py index 35de5a47f8..01bb8070b5 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/line/_cauto.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/line/_cauto.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/line/_cmax.py b/packages/python/plotly/plotly/validators/scatter3d/marker/line/_cmax.py index 122e0869d3..35089f8df4 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/line/_cmax.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/line/_cmax.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/line/_cmid.py b/packages/python/plotly/plotly/validators/scatter3d/marker/line/_cmid.py index 7ea0afbd8d..14fc33fcca 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/line/_cmid.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/line/_cmid.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/line/_cmin.py b/packages/python/plotly/plotly/validators/scatter3d/marker/line/_cmin.py index 56b285723b..a19f784cd7 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/line/_cmin.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/line/_cmin.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/line/_color.py b/packages/python/plotly/plotly/validators/scatter3d/marker/line/_color.py index 361ec19d9a..1c26ee017d 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/line/_color.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/line/_color.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop( "colorscale_path", "scatter3d.marker.line.colorscale" ), diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/line/_coloraxis.py b/packages/python/plotly/plotly/validators/scatter3d/marker/line/_coloraxis.py index bd2b10affd..90c1e64d46 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/line/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/line/_coloraxis.py @@ -11,6 +11,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/line/_colorscale.py b/packages/python/plotly/plotly/validators/scatter3d/marker/line/_colorscale.py index 767603d09a..a6dbef6fc8 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/line/_colorscale.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/line/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/line/_colorsrc.py b/packages/python/plotly/plotly/validators/scatter3d/marker/line/_colorsrc.py index ae44796885..1747c15e6d 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/line/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/line/_reversescale.py b/packages/python/plotly/plotly/validators/scatter3d/marker/line/_reversescale.py index 78f906fce2..997e940d33 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/line/_reversescale.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/line/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/marker/line/_width.py b/packages/python/plotly/plotly/validators/scatter3d/marker/line/_width.py index 4508750a7d..bf59a5e1fd 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/marker/line/_width.py +++ b/packages/python/plotly/plotly/validators/scatter3d/marker/line/_width.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/projection/x/_opacity.py b/packages/python/plotly/plotly/validators/scatter3d/projection/x/_opacity.py index 29536e0bbc..6bb5bf3445 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/projection/x/_opacity.py +++ b/packages/python/plotly/plotly/validators/scatter3d/projection/x/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/projection/x/_scale.py b/packages/python/plotly/plotly/validators/scatter3d/projection/x/_scale.py index 6003e4d8d8..46669b7e70 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/projection/x/_scale.py +++ b/packages/python/plotly/plotly/validators/scatter3d/projection/x/_scale.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/projection/x/_show.py b/packages/python/plotly/plotly/validators/scatter3d/projection/x/_show.py index 0f8f333c23..67d25e02d3 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/projection/x/_show.py +++ b/packages/python/plotly/plotly/validators/scatter3d/projection/x/_show.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/projection/y/_opacity.py b/packages/python/plotly/plotly/validators/scatter3d/projection/y/_opacity.py index 1e02a3e7ef..adda2ff8ca 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/projection/y/_opacity.py +++ b/packages/python/plotly/plotly/validators/scatter3d/projection/y/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/projection/y/_scale.py b/packages/python/plotly/plotly/validators/scatter3d/projection/y/_scale.py index f758d98416..3c523037d4 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/projection/y/_scale.py +++ b/packages/python/plotly/plotly/validators/scatter3d/projection/y/_scale.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/projection/y/_show.py b/packages/python/plotly/plotly/validators/scatter3d/projection/y/_show.py index 0a4516bd71..8e1b0db8cb 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/projection/y/_show.py +++ b/packages/python/plotly/plotly/validators/scatter3d/projection/y/_show.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/projection/z/_opacity.py b/packages/python/plotly/plotly/validators/scatter3d/projection/z/_opacity.py index f01040990b..5561bbdefd 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/projection/z/_opacity.py +++ b/packages/python/plotly/plotly/validators/scatter3d/projection/z/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/projection/z/_scale.py b/packages/python/plotly/plotly/validators/scatter3d/projection/z/_scale.py index 0a13c1a2d2..15d9517188 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/projection/z/_scale.py +++ b/packages/python/plotly/plotly/validators/scatter3d/projection/z/_scale.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/projection/z/_show.py b/packages/python/plotly/plotly/validators/scatter3d/projection/z/_show.py index ba40ba4e76..b3b12eb6f7 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/projection/z/_show.py +++ b/packages/python/plotly/plotly/validators/scatter3d/projection/z/_show.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/scatter3d/stream/_maxpoints.py index 8b8aef32e1..3e0974195c 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/scatter3d/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/stream/_token.py b/packages/python/plotly/plotly/validators/scatter3d/stream/_token.py index 909810292e..a0e63ba1a3 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/stream/_token.py +++ b/packages/python/plotly/plotly/validators/scatter3d/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="scatter3d.stream", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/textfont/_color.py b/packages/python/plotly/plotly/validators/scatter3d/textfont/_color.py index 2eb87e90bd..281f4516de 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/scatter3d/textfont/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="scatter3d.textfont", **kwar parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/textfont/_colorsrc.py b/packages/python/plotly/plotly/validators/scatter3d/textfont/_colorsrc.py index fa0a720cb9..7d70e253a9 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/textfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/textfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/textfont/_family.py b/packages/python/plotly/plotly/validators/scatter3d/textfont/_family.py index 3322c6f07f..1f12521b13 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/textfont/_family.py +++ b/packages/python/plotly/plotly/validators/scatter3d/textfont/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/textfont/_size.py b/packages/python/plotly/plotly/validators/scatter3d/textfont/_size.py index a1f61f0088..4a011f2562 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/textfont/_size.py +++ b/packages/python/plotly/plotly/validators/scatter3d/textfont/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="scatter3d.textfont", **kwarg array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatter3d/textfont/_sizesrc.py b/packages/python/plotly/plotly/validators/scatter3d/textfont/_sizesrc.py index 8f1ff7461c..0dd912bf1d 100644 --- a/packages/python/plotly/plotly/validators/scatter3d/textfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scatter3d/textfont/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_a.py b/packages/python/plotly/plotly/validators/scattercarpet/_a.py index 5aa31ee101..6e357cd6e8 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_a.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_a.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="a", parent_name="scattercarpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_asrc.py b/packages/python/plotly/plotly/validators/scattercarpet/_asrc.py index 007c2996c5..d72fc2cd10 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_asrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_asrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="asrc", parent_name="scattercarpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_b.py b/packages/python/plotly/plotly/validators/scattercarpet/_b.py index ae5c3db497..40590d1069 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_b.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_b.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="b", parent_name="scattercarpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_bsrc.py b/packages/python/plotly/plotly/validators/scattercarpet/_bsrc.py index b6a4091a8e..f8ac773616 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_bsrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_bsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="bsrc", parent_name="scattercarpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_carpet.py b/packages/python/plotly/plotly/validators/scattercarpet/_carpet.py index a9ebb42e49..9acbb63147 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_carpet.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_carpet.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="carpet", parent_name="scattercarpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_connectgaps.py b/packages/python/plotly/plotly/validators/scattercarpet/_connectgaps.py index 5ed18868f5..fd67efa052 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_connectgaps.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_connectgaps.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_customdata.py b/packages/python/plotly/plotly/validators/scattercarpet/_customdata.py index 7835d5b795..9d46684af6 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_customdata.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="scattercarpet", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_customdatasrc.py b/packages/python/plotly/plotly/validators/scattercarpet/_customdatasrc.py index 2907a40a04..02767e7338 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_customdatasrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_fill.py b/packages/python/plotly/plotly/validators/scattercarpet/_fill.py index 9aa5eed5cc..22bd551e1b 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_fill.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_fill.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="fill", parent_name="scattercarpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "toself", "tonext"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_fillcolor.py b/packages/python/plotly/plotly/validators/scattercarpet/_fillcolor.py index d3f6723252..4741133407 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_fillcolor.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_fillcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="fillcolor", parent_name="scattercarpet", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_hoverinfo.py b/packages/python/plotly/plotly/validators/scattercarpet/_hoverinfo.py index 1557dfec02..9b98a212bb 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="scattercarpet", **kwarg edit_type=kwargs.pop("edit_type", "none"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["a", "b", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/scattercarpet/_hoverinfosrc.py index 7a0ab33305..c6366162c9 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_hoverinfosrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_hoveron.py b/packages/python/plotly/plotly/validators/scattercarpet/_hoveron.py index 1b13d0d122..e22266ed8c 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_hoveron.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_hoveron.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hoveron", parent_name="scattercarpet", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), flags=kwargs.pop("flags", ["points", "fills"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_hovertemplate.py b/packages/python/plotly/plotly/validators/scattercarpet/_hovertemplate.py index d86b5de585..f607471816 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_hovertemplate.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/scattercarpet/_hovertemplatesrc.py index e9a14d9b81..e877749e6d 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_hovertemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_hovertext.py b/packages/python/plotly/plotly/validators/scattercarpet/_hovertext.py index c53f35cb0a..cffc0c8db9 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_hovertext.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="scattercarpet", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_hovertextsrc.py b/packages/python/plotly/plotly/validators/scattercarpet/_hovertextsrc.py index 0a80e2b5b2..1d7edd9ab7 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_hovertextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_ids.py b/packages/python/plotly/plotly/validators/scattercarpet/_ids.py index 6466935ccc..6770a18c8c 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_ids.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="scattercarpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_idssrc.py b/packages/python/plotly/plotly/validators/scattercarpet/_idssrc.py index e0f36237c1..7db73a6081 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_idssrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="scattercarpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_legendgroup.py b/packages/python/plotly/plotly/validators/scattercarpet/_legendgroup.py index 529e933ff0..8eb59a5ea8 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_legendgroup.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_meta.py b/packages/python/plotly/plotly/validators/scattercarpet/_meta.py index 295c3282b6..125acf3c38 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_meta.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="scattercarpet", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_metasrc.py b/packages/python/plotly/plotly/validators/scattercarpet/_metasrc.py index 92f8ca9225..ad9f5405f8 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_metasrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="scattercarpet", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_mode.py b/packages/python/plotly/plotly/validators/scattercarpet/_mode.py index 543611eced..73c9903a05 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_mode.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_mode.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="mode", parent_name="scattercarpet", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), extras=kwargs.pop("extras", ["none"]), flags=kwargs.pop("flags", ["lines", "markers", "text"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_name.py b/packages/python/plotly/plotly/validators/scattercarpet/_name.py index 0129fddcf3..0d346b601d 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_name.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="scattercarpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_opacity.py b/packages/python/plotly/plotly/validators/scattercarpet/_opacity.py index e174b54506..34c0214c24 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_opacity.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="scattercarpet", **kwargs) edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_selectedpoints.py b/packages/python/plotly/plotly/validators/scattercarpet/_selectedpoints.py index 11af7ba82e..4667c6f84f 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_selectedpoints.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_selectedpoints.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_showlegend.py b/packages/python/plotly/plotly/validators/scattercarpet/_showlegend.py index 3f25c5ff2d..da5d73f14a 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_showlegend.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="scattercarpet", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_text.py b/packages/python/plotly/plotly/validators/scattercarpet/_text.py index 085cc3e267..6a551392c0 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_text.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="scattercarpet", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_textposition.py b/packages/python/plotly/plotly/validators/scattercarpet/_textposition.py index 7152c068cb..f775655d4c 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_textposition.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_textposition.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_textpositionsrc.py b/packages/python/plotly/plotly/validators/scattercarpet/_textpositionsrc.py index 375e10c630..85940f25fa 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_textpositionsrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_textpositionsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_textsrc.py b/packages/python/plotly/plotly/validators/scattercarpet/_textsrc.py index e160dfa350..f509ee3496 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_textsrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="scattercarpet", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_texttemplate.py b/packages/python/plotly/plotly/validators/scattercarpet/_texttemplate.py index 3bb44e0448..66e7913c42 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_texttemplate.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_texttemplate.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_texttemplatesrc.py b/packages/python/plotly/plotly/validators/scattercarpet/_texttemplatesrc.py index 8378f1349b..c8dded7c7a 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_texttemplatesrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_texttemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_uid.py b/packages/python/plotly/plotly/validators/scattercarpet/_uid.py index 5611bb0832..e693f7c760 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_uid.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="scattercarpet", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_uirevision.py b/packages/python/plotly/plotly/validators/scattercarpet/_uirevision.py index 466ee00f4d..24c4596672 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_uirevision.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="scattercarpet", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_visible.py b/packages/python/plotly/plotly/validators/scattercarpet/_visible.py index f7ff4421e7..831314fefa 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_visible.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="scattercarpet", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_xaxis.py b/packages/python/plotly/plotly/validators/scattercarpet/_xaxis.py index 2748cd56ac..ff68c5bfb4 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_xaxis.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_xaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xaxis", parent_name="scattercarpet", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "x"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/_yaxis.py b/packages/python/plotly/plotly/validators/scattercarpet/_yaxis.py index a807243244..a2dc53f32d 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/_yaxis.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/_yaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="yaxis", parent_name="scattercarpet", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "y"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_align.py index c5e592d4bf..af32bbcc2e 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_align.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_alignsrc.py index 8c5d52d940..a5d4d173f6 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_bgcolor.py index 45bc498e27..464709d737 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_bgcolorsrc.py index 45907650de..627ac6e423 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_bordercolor.py index eedab3d43f..f200d58a5f 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_bordercolor.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_bordercolorsrc.py index 23b61c96d3..6e1e5d500f 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_bordercolorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_namelength.py index 064ce394be..6541f13aaf 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_namelengthsrc.py index 8b86a3cfe9..781fca8d1a 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/_namelengthsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/font/_color.py index 6076cef6c1..bd52c4b236 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/font/_colorsrc.py index c52022cae5..cb7021dba1 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/font/_colorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/font/_family.py index f49bd78a3e..d032419fee 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/font/_family.py @@ -14,7 +14,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/font/_familysrc.py index 7f58b7edb9..fce161e363 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/font/_familysrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/font/_size.py index 520d968101..93672b2fed 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/font/_sizesrc.py index 2a0a0c4f40..0410a8d6e6 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/hoverlabel/font/_sizesrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/line/_color.py b/packages/python/plotly/plotly/validators/scattercarpet/line/_color.py index 7a0853cf98..e1acd0986f 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/line/_color.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/line/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="scattercarpet.line", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/line/_dash.py b/packages/python/plotly/plotly/validators/scattercarpet/line/_dash.py index 3368c3418c..6e9c574f1d 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/line/_dash.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/line/_dash.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="dash", parent_name="scattercarpet.line", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", ["solid", "dot", "dash", "longdash", "dashdot", "longdashdot"] ), diff --git a/packages/python/plotly/plotly/validators/scattercarpet/line/_shape.py b/packages/python/plotly/plotly/validators/scattercarpet/line/_shape.py index c61ca6aa62..c356230870 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/line/_shape.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/line/_shape.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="shape", parent_name="scattercarpet.line", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["linear", "spline"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/line/_smoothing.py b/packages/python/plotly/plotly/validators/scattercarpet/line/_smoothing.py index dad431b766..5735f8351d 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/line/_smoothing.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/line/_smoothing.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 1.3), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/line/_width.py b/packages/python/plotly/plotly/validators/scattercarpet/line/_width.py index 4dc0f47332..6977043136 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/line/_width.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/line/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="scattercarpet.line", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/_autocolorscale.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/_autocolorscale.py index 6907d55337..5170e598dd 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/_cauto.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/_cauto.py index 28fec680fb..0907ef6f6a 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/_cauto.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/_cauto.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/_cmax.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/_cmax.py index 3edc94ac7b..476a3936de 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/_cmax.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/_cmax.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/_cmid.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/_cmid.py index 7a172a3f7d..510848e3f1 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/_cmid.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/_cmid.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/_cmin.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/_cmin.py index 9b63451e46..d73acee42e 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/_cmin.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/_cmin.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/_color.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/_color.py index 297c160976..d6d7d4d083 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/_color.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/_color.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop( "colorscale_path", "scattercarpet.marker.colorscale" ), diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/_coloraxis.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/_coloraxis.py index c422bfa37e..6911f2f262 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/_coloraxis.py @@ -11,6 +11,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/_colorbar.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/_colorbar.py index d2cdaaef5c..f6f42a3ca4 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/_colorbar.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/_colorbar.py @@ -150,6 +150,12 @@ def __init__( efaults), sets the default property values to use for elements of scattercarpet.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/_colorscale.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/_colorscale.py index 385fb69dcb..aa54ad280c 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/_colorscale.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/_colorsrc.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/_colorsrc.py index ae0f2b5f63..56d39e9035 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/_maxdisplayed.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/_maxdisplayed.py index 762d5b88e0..4eb95aa129 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/_maxdisplayed.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/_maxdisplayed.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/_opacity.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/_opacity.py index da625eb803..ea20897f8c 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/_opacity.py @@ -12,6 +12,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/_opacitysrc.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/_opacitysrc.py index 04a0a1d1bf..bc6817517a 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/_opacitysrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/_opacitysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/_reversescale.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/_reversescale.py index fb52f94eeb..f9b7bc9677 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/_reversescale.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/_showscale.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/_showscale.py index bb42e67259..d1df8191dc 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/_showscale.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/_showscale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/_size.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/_size.py index 47b9f1d7b9..c59a09d6f5 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/_size.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/_sizemin.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/_sizemin.py index e2453b981f..7bd8c7a0f6 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/_sizemin.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/_sizemin.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/_sizemode.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/_sizemode.py index 4535bd3a12..ddfb436493 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/_sizemode.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/_sizemode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["diameter", "area"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/_sizeref.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/_sizeref.py index 0760df9d8d..cd6d15a9b6 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/_sizeref.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/_sizeref.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/_sizesrc.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/_sizesrc.py index 75bc251946..7aedf99e87 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/_symbol.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/_symbol.py index d9d70c566b..9808020621 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/_symbol.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/_symbol.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/_symbolsrc.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/_symbolsrc.py index 371e120d66..bd1a029498 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/_symbolsrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/_symbolsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/__init__.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_bgcolor.py index 05e39e56d4..7711f2c892 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_bgcolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_bordercolor.py index 4fea5ff26e..988645f6f1 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_bordercolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_borderwidth.py index d86487e794..b92137965c 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_borderwidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_dtick.py index b71976631e..19ba4298a5 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_exponentformat.py index 20e4d18733..5f4fdbf245 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_exponentformat.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_len.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_len.py index 470413aade..0e21e526e3 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_len.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_lenmode.py index af796d3bfe..31d9ec3ac7 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_lenmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_minexponent.py index 7e6dba47be..d561377287 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_minexponent.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_nticks.py index 7d1844a3b2..c2d365d2aa 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_nticks.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_outlinecolor.py index 12922159fb..d6c09792ab 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_outlinecolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_outlinewidth.py index 2e3c6b763b..70f41e2862 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_outlinewidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_separatethousands.py index c5dddeef11..c5639e8fc6 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_showexponent.py index 878cbdd399..bd7e3ea947 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_showexponent.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_showticklabels.py index a880385dae..51feb8581c 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_showticklabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_showtickprefix.py index 89d30b1b2e..30ae137867 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_showtickprefix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_showticksuffix.py index 4f57445b7c..b720150dfe 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_showticksuffix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_thickness.py index 52e6f48246..f5381f4162 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_thickness.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_thicknessmode.py index 4911ade07e..490a8895d4 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_thicknessmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tick0.py index 497eff2ed9..df981932b5 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickangle.py index 52ce43b000..d0ad21b4e2 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickangle.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickcolor.py index 947a3dd9ed..4488961b19 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickcolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickformat.py index a0e90c3174..3ddb2ed859 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickformat.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..6adf52e816 --- /dev/null +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="scattercarpet.marker.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "colorbars"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticklabelposition.py index cd1d40fc15..ede6fef9ee 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticklen.py index 8769fa584a..0792770eb5 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticklen.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickmode.py index a28da3cd6a..6bb3d5d3f8 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickmode.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickprefix.py index ce5bfdac93..ccd77b643e 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickprefix.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticks.py index ecacb5b875..44f53c9a29 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticksuffix.py index 0612972cc2..fd3bfc68d5 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticksuffix.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticktext.py index 37c7bc6a16..82e1755966 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticktext.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticktextsrc.py index 502c9d8088..7673e5e685 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ticktextsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickvals.py index 345c122e64..131cf7ad25 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickvals.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickvalssrc.py index 6c8f7b5d52..9884e0b05d 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickvalssrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickwidth.py index a8bd9e1cbc..fc71926e53 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_tickwidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_x.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_x.py index ccff3a4d84..e760863eb6 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_x.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_xanchor.py index 37229c1809..34ac0eba4a 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_xanchor.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_xpad.py index a414b28e27..f7303b21e2 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_xpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_y.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_y.py index 5f0a8a09c2..2deb4600ea 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_y.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_yanchor.py index 77aa9d471b..f6caa3a398 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_yanchor.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ypad.py index 5ead63c050..a4e9fbde8b 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/_ypad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickfont/_color.py index 2f86eec51d..5b4b5c68c1 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickfont/_family.py index 3313097305..276673b331 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickfont/_size.py index ddd9fa8d1c..4f0161ca50 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickformatstop/_dtickrange.py index 0ffd845263..12f67284ce 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "colorbars"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickformatstop/_enabled.py index a061269680..e4c292c6e6 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickformatstop/_name.py index a7ac35ee3b..a703234878 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickformatstop/_templateitemname.py index 2e85c2e6ed..da82acac68 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickformatstop/_value.py index 1e07f54d3e..ffd49db5af 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/title/_side.py index cc3c147206..f5edb3b0fc 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/title/_side.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/title/_text.py index 2b5cd8c953..b87764515f 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/title/_text.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/title/font/_color.py index db800ee777..67537526ed 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/title/font/_family.py index 9015bd8ca8..9544653513 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/title/font/_size.py index 4ef9f398f7..6ee536351e 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/colorbar/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/gradient/_color.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/gradient/_color.py index 8a43f92a2e..437b6da791 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/gradient/_color.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/gradient/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/gradient/_colorsrc.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/gradient/_colorsrc.py index 18f24fc4be..8f17bbb43b 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/gradient/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/gradient/_colorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/gradient/_type.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/gradient/_type.py index fa197d8771..079b373593 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/gradient/_type.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/gradient/_type.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["radial", "horizontal", "vertical", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/gradient/_typesrc.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/gradient/_typesrc.py index af3edcc13a..039e9bdea5 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/gradient/_typesrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/gradient/_typesrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_autocolorscale.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_autocolorscale.py index 36e0cd6cb4..6c339f84ce 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_autocolorscale.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_cauto.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_cauto.py index 90d0619e82..64fee659ee 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_cauto.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_cauto.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_cmax.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_cmax.py index b5eeb79393..819f4ac27e 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_cmax.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_cmax.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_cmid.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_cmid.py index 18d8785ef8..b41691da8f 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_cmid.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_cmid.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_cmin.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_cmin.py index 6a68cad47a..4d7c6f2e74 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_cmin.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_cmin.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_color.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_color.py index b8bfaf14d0..54f1e9eefd 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_color.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_color.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop( "colorscale_path", "scattercarpet.marker.line.colorscale" ), diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_coloraxis.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_coloraxis.py index 7beb60151e..89756653de 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_coloraxis.py @@ -11,6 +11,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_colorscale.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_colorscale.py index d29811f503..550c51ef3f 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_colorscale.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_colorscale.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_colorsrc.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_colorsrc.py index 9f70842c19..8f3d8d577f 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_reversescale.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_reversescale.py index 75b3c04f4d..1059aca3e3 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_reversescale.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_reversescale.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_width.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_width.py index 052b35c24e..f1433dfc5d 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_width.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_width.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_widthsrc.py b/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_widthsrc.py index 290dbb0fce..88f89ec04a 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_widthsrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/marker/line/_widthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/selected/marker/_color.py b/packages/python/plotly/plotly/validators/scattercarpet/selected/marker/_color.py index 359b1b467a..53714cfd5e 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/selected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/selected/marker/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/selected/marker/_opacity.py b/packages/python/plotly/plotly/validators/scattercarpet/selected/marker/_opacity.py index 6ee4f01fa7..1bffd340c1 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/selected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/selected/marker/_opacity.py @@ -14,6 +14,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/selected/marker/_size.py b/packages/python/plotly/plotly/validators/scattercarpet/selected/marker/_size.py index 35bf017995..bba365f5a0 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/selected/marker/_size.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/selected/marker/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/selected/textfont/_color.py b/packages/python/plotly/plotly/validators/scattercarpet/selected/textfont/_color.py index 8d2849f921..fc81cbd902 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/selected/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/selected/textfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/scattercarpet/stream/_maxpoints.py index 6eb42d8555..35d31451d1 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/stream/_token.py b/packages/python/plotly/plotly/validators/scattercarpet/stream/_token.py index cedf3d60ea..850681651a 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/stream/_token.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/stream/_token.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/textfont/_color.py b/packages/python/plotly/plotly/validators/scattercarpet/textfont/_color.py index 5c5ed27a2f..053787ed8a 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/textfont/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/textfont/_colorsrc.py b/packages/python/plotly/plotly/validators/scattercarpet/textfont/_colorsrc.py index e9545b31e5..77e0fbfec2 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/textfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/textfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/textfont/_family.py b/packages/python/plotly/plotly/validators/scattercarpet/textfont/_family.py index 0b60e02aa2..3f101fb4b2 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/textfont/_family.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/textfont/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/textfont/_familysrc.py b/packages/python/plotly/plotly/validators/scattercarpet/textfont/_familysrc.py index 5bb098ad73..3d9163cd0e 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/textfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/textfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/textfont/_size.py b/packages/python/plotly/plotly/validators/scattercarpet/textfont/_size.py index 7f0b97b95a..727ecdf859 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/textfont/_size.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/textfont/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/textfont/_sizesrc.py b/packages/python/plotly/plotly/validators/scattercarpet/textfont/_sizesrc.py index 69c47e52ec..1068b4ca90 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/textfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/textfont/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/unselected/marker/_color.py b/packages/python/plotly/plotly/validators/scattercarpet/unselected/marker/_color.py index 1a0896e08c..90c296d418 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/unselected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/unselected/marker/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/unselected/marker/_opacity.py b/packages/python/plotly/plotly/validators/scattercarpet/unselected/marker/_opacity.py index 075a58aa0f..187d94a022 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/unselected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/unselected/marker/_opacity.py @@ -14,6 +14,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/unselected/marker/_size.py b/packages/python/plotly/plotly/validators/scattercarpet/unselected/marker/_size.py index 90e880cb34..4e7d57c295 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/unselected/marker/_size.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/unselected/marker/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattercarpet/unselected/textfont/_color.py b/packages/python/plotly/plotly/validators/scattercarpet/unselected/textfont/_color.py index 9cb3ae7a06..6a41b49588 100644 --- a/packages/python/plotly/plotly/validators/scattercarpet/unselected/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/scattercarpet/unselected/textfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_connectgaps.py b/packages/python/plotly/plotly/validators/scattergeo/_connectgaps.py index cecc9e895f..258c574f42 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_connectgaps.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_connectgaps.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="connectgaps", parent_name="scattergeo", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_customdata.py b/packages/python/plotly/plotly/validators/scattergeo/_customdata.py index 0e1c67cb0f..bde24db9d1 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_customdata.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="scattergeo", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_customdatasrc.py b/packages/python/plotly/plotly/validators/scattergeo/_customdatasrc.py index 6e688aa6ae..03f3ce14d6 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="scattergeo", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_featureidkey.py b/packages/python/plotly/plotly/validators/scattergeo/_featureidkey.py index ce1b28c552..f1ea5222ab 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_featureidkey.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_featureidkey.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="featureidkey", parent_name="scattergeo", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_fill.py b/packages/python/plotly/plotly/validators/scattergeo/_fill.py index e1f169b962..c772eff947 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_fill.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_fill.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="fill", parent_name="scattergeo", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "toself"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_fillcolor.py b/packages/python/plotly/plotly/validators/scattergeo/_fillcolor.py index a6450f7a7e..bf49d4d944 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_fillcolor.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_fillcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="fillcolor", parent_name="scattergeo", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_geo.py b/packages/python/plotly/plotly/validators/scattergeo/_geo.py index 0488f297cf..5500eb5523 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_geo.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_geo.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="geo", parent_name="scattergeo", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "geo"), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_geojson.py b/packages/python/plotly/plotly/validators/scattergeo/_geojson.py index c53cff5c87..ba9f40a0a4 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_geojson.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_geojson.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="geojson", parent_name="scattergeo", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_hoverinfo.py b/packages/python/plotly/plotly/validators/scattergeo/_hoverinfo.py index 1943250e29..3190150100 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="scattergeo", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["lon", "lat", "location", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/scattergeo/_hoverinfosrc.py index 207e634af5..bcde3bc865 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="scattergeo", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_hovertemplate.py b/packages/python/plotly/plotly/validators/scattergeo/_hovertemplate.py index 8f1712181c..ec73d7adab 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="scattergeo", **kwar parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/scattergeo/_hovertemplatesrc.py index fcf23ece82..ca4a95e32a 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_hovertemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_hovertext.py b/packages/python/plotly/plotly/validators/scattergeo/_hovertext.py index 689770d422..78cb528848 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_hovertext.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="scattergeo", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_hovertextsrc.py b/packages/python/plotly/plotly/validators/scattergeo/_hovertextsrc.py index 9535c80eda..dfe3b6a752 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="scattergeo", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_ids.py b/packages/python/plotly/plotly/validators/scattergeo/_ids.py index f2cb7118b0..e58f1d2a35 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_ids.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="scattergeo", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_idssrc.py b/packages/python/plotly/plotly/validators/scattergeo/_idssrc.py index fb150a8759..b28a49f6b3 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_idssrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="scattergeo", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_lat.py b/packages/python/plotly/plotly/validators/scattergeo/_lat.py index fc3ab97b5f..45512cdf5f 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_lat.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_lat.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="lat", parent_name="scattergeo", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_latsrc.py b/packages/python/plotly/plotly/validators/scattergeo/_latsrc.py index d81a5005dc..248ed2c05e 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_latsrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_latsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="latsrc", parent_name="scattergeo", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_legendgroup.py b/packages/python/plotly/plotly/validators/scattergeo/_legendgroup.py index 2917476bd1..74a7d2bfcf 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="scattergeo", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_locationmode.py b/packages/python/plotly/plotly/validators/scattergeo/_locationmode.py index 7eb40171e0..209efce8fa 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_locationmode.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_locationmode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="locationmode", parent_name="scattergeo", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", ["ISO-3", "USA-states", "country names", "geojson-id"] ), diff --git a/packages/python/plotly/plotly/validators/scattergeo/_locations.py b/packages/python/plotly/plotly/validators/scattergeo/_locations.py index 4958e4d6c7..778151b308 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_locations.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_locations.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="locations", parent_name="scattergeo", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_locationssrc.py b/packages/python/plotly/plotly/validators/scattergeo/_locationssrc.py index ee97715ab7..d94d66df87 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_locationssrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_locationssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="locationssrc", parent_name="scattergeo", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_lon.py b/packages/python/plotly/plotly/validators/scattergeo/_lon.py index b5ce9c06e2..97b588aaaa 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_lon.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_lon.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="lon", parent_name="scattergeo", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_lonsrc.py b/packages/python/plotly/plotly/validators/scattergeo/_lonsrc.py index 224498137a..e12294df44 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_lonsrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_lonsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="lonsrc", parent_name="scattergeo", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_meta.py b/packages/python/plotly/plotly/validators/scattergeo/_meta.py index 827f16393c..3f6932ed7f 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_meta.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="scattergeo", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_metasrc.py b/packages/python/plotly/plotly/validators/scattergeo/_metasrc.py index d9b542b333..a0f824a08d 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_metasrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="scattergeo", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_mode.py b/packages/python/plotly/plotly/validators/scattergeo/_mode.py index acfd3bc3cf..c9a76b1644 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_mode.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_mode.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="mode", parent_name="scattergeo", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), extras=kwargs.pop("extras", ["none"]), flags=kwargs.pop("flags", ["lines", "markers", "text"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_name.py b/packages/python/plotly/plotly/validators/scattergeo/_name.py index af70138580..6b5a3596bb 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_name.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="scattergeo", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_opacity.py b/packages/python/plotly/plotly/validators/scattergeo/_opacity.py index 07d9b36f83..c612391153 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_opacity.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="scattergeo", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_selectedpoints.py b/packages/python/plotly/plotly/validators/scattergeo/_selectedpoints.py index c669a7d2ba..47ef906d2e 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_selectedpoints.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_selectedpoints.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_showlegend.py b/packages/python/plotly/plotly/validators/scattergeo/_showlegend.py index 6d0ab8a80a..02d9c0593d 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_showlegend.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="scattergeo", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_text.py b/packages/python/plotly/plotly/validators/scattergeo/_text.py index a2296a683a..35d6b06ce4 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_text.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="scattergeo", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_textposition.py b/packages/python/plotly/plotly/validators/scattergeo/_textposition.py index 7777305442..5f450b4922 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_textposition.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_textposition.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="textposition", parent_name="scattergeo", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scattergeo/_textpositionsrc.py b/packages/python/plotly/plotly/validators/scattergeo/_textpositionsrc.py index dc91c9a7c5..2bc7cbd623 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_textpositionsrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_textpositionsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_textsrc.py b/packages/python/plotly/plotly/validators/scattergeo/_textsrc.py index 5c787a9392..2fb3088a3b 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_textsrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="scattergeo", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_texttemplate.py b/packages/python/plotly/plotly/validators/scattergeo/_texttemplate.py index fcca5d0592..129b562511 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_texttemplate.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_texttemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="texttemplate", parent_name="scattergeo", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_texttemplatesrc.py b/packages/python/plotly/plotly/validators/scattergeo/_texttemplatesrc.py index 3d594aff6f..145ee699f4 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_texttemplatesrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_texttemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_uid.py b/packages/python/plotly/plotly/validators/scattergeo/_uid.py index 05326c368a..22aa9728e0 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_uid.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="scattergeo", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_uirevision.py b/packages/python/plotly/plotly/validators/scattergeo/_uirevision.py index 3be8d976ae..7cef49e325 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_uirevision.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="scattergeo", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/_visible.py b/packages/python/plotly/plotly/validators/scattergeo/_visible.py index 0565bfe658..25098fdae6 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/_visible.py +++ b/packages/python/plotly/plotly/validators/scattergeo/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="scattergeo", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_align.py index 2afbefad83..6df78eec85 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_align.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_alignsrc.py index 6c4d6fef3f..617b91e052 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_bgcolor.py index 42c06d2a2e..c1a3befe78 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_bgcolorsrc.py index 19a26ef251..b045b4d64d 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_bordercolor.py index 1a0a376506..e2bba63af5 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_bordercolorsrc.py index 07b0388f04..84871b0f14 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_bordercolorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_namelength.py index 2bf513dfb8..7177afa193 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_namelengthsrc.py index e3610177bb..1f6867f00b 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/font/_color.py index dea131af5e..38ae0a8ae9 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/font/_colorsrc.py index 99bdeb5c3d..5206f6ff96 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/font/_family.py index 19560d6dd9..dd2643eea5 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/font/_familysrc.py index 4479789fc7..5b3323f144 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/font/_familysrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/font/_size.py index dcc8296726..d6caa55117 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/font/_sizesrc.py index bcffad850e..ed22c3f540 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/line/_color.py b/packages/python/plotly/plotly/validators/scattergeo/line/_color.py index a14fc65082..da0f661690 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/line/_color.py +++ b/packages/python/plotly/plotly/validators/scattergeo/line/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="scattergeo.line", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/line/_dash.py b/packages/python/plotly/plotly/validators/scattergeo/line/_dash.py index 4990166fa1..01bb7ba70b 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/line/_dash.py +++ b/packages/python/plotly/plotly/validators/scattergeo/line/_dash.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="dash", parent_name="scattergeo.line", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", ["solid", "dot", "dash", "longdash", "dashdot", "longdashdot"] ), diff --git a/packages/python/plotly/plotly/validators/scattergeo/line/_width.py b/packages/python/plotly/plotly/validators/scattergeo/line/_width.py index 7b307b0019..ab166e5107 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/line/_width.py +++ b/packages/python/plotly/plotly/validators/scattergeo/line/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="scattergeo.line", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/_autocolorscale.py b/packages/python/plotly/plotly/validators/scattergeo/marker/_autocolorscale.py index 0c1025b143..dc02adade0 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/_cauto.py b/packages/python/plotly/plotly/validators/scattergeo/marker/_cauto.py index 9817905117..3569148003 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/_cauto.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/_cauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cauto", parent_name="scattergeo.marker", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/_cmax.py b/packages/python/plotly/plotly/validators/scattergeo/marker/_cmax.py index cf3e31ff52..07b7bb326a 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/_cmax.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="scattergeo.marker", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/_cmid.py b/packages/python/plotly/plotly/validators/scattergeo/marker/_cmid.py index f5d442435a..e6bfd0f2c4 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/_cmid.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="scattergeo.marker", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/_cmin.py b/packages/python/plotly/plotly/validators/scattergeo/marker/_cmin.py index 9d7955ef41..e0d2fe0aa5 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/_cmin.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="scattergeo.marker", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/_color.py b/packages/python/plotly/plotly/validators/scattergeo/marker/_color.py index 0c1632ade2..57f45a0065 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/_color.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/_color.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="color", parent_name="scattergeo.marker", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop( "colorscale_path", "scattergeo.marker.colorscale" ), diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/_coloraxis.py b/packages/python/plotly/plotly/validators/scattergeo/marker/_coloraxis.py index d7bf925fcb..1586d7367a 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/_coloraxis.py @@ -11,6 +11,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/_colorbar.py b/packages/python/plotly/plotly/validators/scattergeo/marker/_colorbar.py index 909f335c79..e1de71e263 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/_colorbar.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/_colorbar.py @@ -150,6 +150,12 @@ def __init__( ults), sets the default property values to use for elements of scattergeo.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/_colorscale.py b/packages/python/plotly/plotly/validators/scattergeo/marker/_colorscale.py index d7ee77cb4e..4b1661b2b8 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/_colorscale.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/_colorsrc.py b/packages/python/plotly/plotly/validators/scattergeo/marker/_colorsrc.py index a4c80a550f..2ce283dd1b 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/_opacity.py b/packages/python/plotly/plotly/validators/scattergeo/marker/_opacity.py index 72a5546d1e..887865f3e0 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/_opacity.py @@ -12,6 +12,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/_opacitysrc.py b/packages/python/plotly/plotly/validators/scattergeo/marker/_opacitysrc.py index 8a41d225b1..bcbc76e415 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/_opacitysrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/_opacitysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/_reversescale.py b/packages/python/plotly/plotly/validators/scattergeo/marker/_reversescale.py index f7528304fc..ebc5aac7c3 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/_reversescale.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/_showscale.py b/packages/python/plotly/plotly/validators/scattergeo/marker/_showscale.py index 2ad553d14c..a5a93c4cd1 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/_showscale.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/_showscale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/_size.py b/packages/python/plotly/plotly/validators/scattergeo/marker/_size.py index ed724134f2..bb72feeb6e 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/_size.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="scattergeo.marker", **kwargs array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/_sizemin.py b/packages/python/plotly/plotly/validators/scattergeo/marker/_sizemin.py index b7ea8fe342..92d238a649 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/_sizemin.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/_sizemin.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/_sizemode.py b/packages/python/plotly/plotly/validators/scattergeo/marker/_sizemode.py index d1485ea589..8e134eca22 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/_sizemode.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/_sizemode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["diameter", "area"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/_sizeref.py b/packages/python/plotly/plotly/validators/scattergeo/marker/_sizeref.py index babc8639ec..70a0fa7d1c 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/_sizeref.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/_sizeref.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/_sizesrc.py b/packages/python/plotly/plotly/validators/scattergeo/marker/_sizesrc.py index 450ee03033..fed53ade0c 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/_symbol.py b/packages/python/plotly/plotly/validators/scattergeo/marker/_symbol.py index a7a4b1bea6..4402c60fcd 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/_symbol.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/_symbol.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="symbol", parent_name="scattergeo.marker", **kwar parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/_symbolsrc.py b/packages/python/plotly/plotly/validators/scattergeo/marker/_symbolsrc.py index 3d39be9f65..a7024309fc 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/_symbolsrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/_symbolsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/__init__.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_bgcolor.py index 16cad59ac6..acc8f12aca 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_bordercolor.py index 92cddc6033..5e0fb51b50 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_bordercolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_borderwidth.py index 87fbc17a80..2f55bf122b 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_borderwidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_dtick.py index 9c0065fd4a..1b953d3baf 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_exponentformat.py index 7d24563ffe..8a682388db 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_exponentformat.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_len.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_len.py index ea787b5e58..6b04827342 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_len.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_lenmode.py index 043cdcfa43..52fb2e0851 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_lenmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_minexponent.py index 52127b67db..e0b6ad0dbf 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_minexponent.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_nticks.py index 9186e2c251..5dab252375 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_outlinecolor.py index 0d7ccad950..7123c0e75c 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_outlinecolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_outlinewidth.py index 798c1bcd91..0d1b11c875 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_outlinewidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_separatethousands.py index 22f0be0627..dd6c9c852d 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_showexponent.py index 1269e6a067..c47480afff 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_showexponent.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_showticklabels.py index 7469913e85..d307edecda 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_showticklabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_showtickprefix.py index c5a9993959..7f599b5788 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_showtickprefix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_showticksuffix.py index 9c5fc3bdb7..5ca5de5899 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_showticksuffix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_thickness.py index d72ea1b346..80ce965235 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_thickness.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_thicknessmode.py index b70de143a6..b25f5c9154 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_thicknessmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tick0.py index 08d4988dc2..490ca62ab9 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickangle.py index 78a23fbf18..97fbe8236d 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickangle.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickcolor.py index 68d94ef0c6..0dab19d5f7 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickcolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickformat.py index 578a6889ac..9bdc5f812f 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickformat.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..ce5869ec05 --- /dev/null +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="scattergeo.marker.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticklabelposition.py index 25264d6e09..44febc1b9b 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticklen.py index 1da510adde..9e16e7e607 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickmode.py index 105ee306c4..f8dc7bf234 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickprefix.py index 1e86dc6e28..b33c821a50 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickprefix.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticks.py index da1b55dc09..11ceda3bb8 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticksuffix.py index 166b274ca2..183d2e86b2 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticksuffix.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticktext.py index 4ec517d88c..ed45514388 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticktextsrc.py index 0e562fc1b3..6f9667cb4b 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ticktextsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickvals.py index cd9e939d7a..6618fa5723 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickvalssrc.py index 4d4469e652..3a17b02df5 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickvalssrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickwidth.py index 799ecd9dc5..3c91be559d 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_tickwidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_x.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_x.py index 479e1e3230..4e690adf83 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_x.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_xanchor.py index 9fa69df481..4f68080da6 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_xpad.py index 9c431cbd6a..a30c683e07 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_xpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_y.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_y.py index 7c3b4db305..ad83c2c9be 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_y.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_yanchor.py index 67b03ed8e0..aef411fdc5 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ypad.py index 0695818f37..be82755f9a 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/_ypad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickfont/_color.py index 620904ffca..7aca5e8908 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickfont/_family.py index fe4d625733..7ce241dce0 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickfont/_size.py index 36b0dc7bf1..db3d10d191 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickformatstop/_dtickrange.py index 634138051f..eecb5b2fb9 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickformatstop/_enabled.py index 7d44cf4686..d142c5a458 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickformatstop/_name.py index 9459b94206..1282e59063 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickformatstop/_templateitemname.py index fae6091cbc..7185425ddc 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickformatstop/_value.py index 02e68bf939..1075727d76 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/title/_side.py index c56c17077d..c748ec2d9e 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/title/_side.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/title/_text.py index 7439cbadc2..cbccb26183 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/title/_text.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/title/font/_color.py index 8e428be433..e334b5ae69 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/title/font/_family.py index eb83f3f105..4d701286c3 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/title/font/_size.py index 2b72fab94b..5f4c2de1b7 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/colorbar/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/gradient/_color.py b/packages/python/plotly/plotly/validators/scattergeo/marker/gradient/_color.py index 3b5228b411..615a415feb 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/gradient/_color.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/gradient/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/gradient/_colorsrc.py b/packages/python/plotly/plotly/validators/scattergeo/marker/gradient/_colorsrc.py index 256918fdc0..29d9c26124 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/gradient/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/gradient/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/gradient/_type.py b/packages/python/plotly/plotly/validators/scattergeo/marker/gradient/_type.py index fc9abb2d12..88f40dc301 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/gradient/_type.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/gradient/_type.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["radial", "horizontal", "vertical", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/gradient/_typesrc.py b/packages/python/plotly/plotly/validators/scattergeo/marker/gradient/_typesrc.py index 3da80714a5..b5c302060f 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/gradient/_typesrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/gradient/_typesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/line/_autocolorscale.py b/packages/python/plotly/plotly/validators/scattergeo/marker/line/_autocolorscale.py index 1f23099e7d..46ee5aee95 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/line/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/line/_autocolorscale.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/line/_cauto.py b/packages/python/plotly/plotly/validators/scattergeo/marker/line/_cauto.py index ba7d9e4ed9..bb31df7e28 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/line/_cauto.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/line/_cauto.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/line/_cmax.py b/packages/python/plotly/plotly/validators/scattergeo/marker/line/_cmax.py index 30bb9ed0c5..1186144b94 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/line/_cmax.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/line/_cmax.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/line/_cmid.py b/packages/python/plotly/plotly/validators/scattergeo/marker/line/_cmid.py index 0e9dbd96fa..43e145152b 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/line/_cmid.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/line/_cmid.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/line/_cmin.py b/packages/python/plotly/plotly/validators/scattergeo/marker/line/_cmin.py index a56978a2cd..4826dd0b8d 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/line/_cmin.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/line/_cmin.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/line/_color.py b/packages/python/plotly/plotly/validators/scattergeo/marker/line/_color.py index b4da8f8023..dffb459384 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/line/_color.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/line/_color.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop( "colorscale_path", "scattergeo.marker.line.colorscale" ), diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/line/_coloraxis.py b/packages/python/plotly/plotly/validators/scattergeo/marker/line/_coloraxis.py index 2a0bcad279..47fa652240 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/line/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/line/_coloraxis.py @@ -11,6 +11,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/line/_colorscale.py b/packages/python/plotly/plotly/validators/scattergeo/marker/line/_colorscale.py index 289cb46aa4..0e1b41b02b 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/line/_colorscale.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/line/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/line/_colorsrc.py b/packages/python/plotly/plotly/validators/scattergeo/marker/line/_colorsrc.py index 0d3139e0d2..e00f9c871d 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/line/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/line/_reversescale.py b/packages/python/plotly/plotly/validators/scattergeo/marker/line/_reversescale.py index 1bf3e51fe5..8eddeec099 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/line/_reversescale.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/line/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/line/_width.py b/packages/python/plotly/plotly/validators/scattergeo/marker/line/_width.py index 8302e0f590..79b223d84f 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/line/_width.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/line/_width.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/marker/line/_widthsrc.py b/packages/python/plotly/plotly/validators/scattergeo/marker/line/_widthsrc.py index 35db48326f..69378ecf4c 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/marker/line/_widthsrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/marker/line/_widthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/selected/marker/_color.py b/packages/python/plotly/plotly/validators/scattergeo/selected/marker/_color.py index f35d506d89..eebf664867 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/selected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/scattergeo/selected/marker/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/selected/marker/_opacity.py b/packages/python/plotly/plotly/validators/scattergeo/selected/marker/_opacity.py index 7626a0f2bb..5f7f17ba1a 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/selected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/scattergeo/selected/marker/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/selected/marker/_size.py b/packages/python/plotly/plotly/validators/scattergeo/selected/marker/_size.py index fa7ac2eaab..733a27ed0b 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/selected/marker/_size.py +++ b/packages/python/plotly/plotly/validators/scattergeo/selected/marker/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/selected/textfont/_color.py b/packages/python/plotly/plotly/validators/scattergeo/selected/textfont/_color.py index 16a39e52c6..7534005138 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/selected/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/scattergeo/selected/textfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/scattergeo/stream/_maxpoints.py index 8fd7814354..b0f215801b 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/scattergeo/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/stream/_token.py b/packages/python/plotly/plotly/validators/scattergeo/stream/_token.py index 87378c5c2c..f0557c2db0 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/stream/_token.py +++ b/packages/python/plotly/plotly/validators/scattergeo/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="scattergeo.stream", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/textfont/_color.py b/packages/python/plotly/plotly/validators/scattergeo/textfont/_color.py index ec4041e1c0..1990c61f10 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/scattergeo/textfont/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/textfont/_colorsrc.py b/packages/python/plotly/plotly/validators/scattergeo/textfont/_colorsrc.py index 3aae0e29c6..d31baf215e 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/textfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/textfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/textfont/_family.py b/packages/python/plotly/plotly/validators/scattergeo/textfont/_family.py index 3e5b1e2c84..58e40d1bdb 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/textfont/_family.py +++ b/packages/python/plotly/plotly/validators/scattergeo/textfont/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/textfont/_familysrc.py b/packages/python/plotly/plotly/validators/scattergeo/textfont/_familysrc.py index a2b4a5ec9e..b95dd08150 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/textfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/textfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/textfont/_size.py b/packages/python/plotly/plotly/validators/scattergeo/textfont/_size.py index f25abf0c0f..deee6b5c33 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/textfont/_size.py +++ b/packages/python/plotly/plotly/validators/scattergeo/textfont/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="scattergeo.textfont", **kwar array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/textfont/_sizesrc.py b/packages/python/plotly/plotly/validators/scattergeo/textfont/_sizesrc.py index e7e115e380..e0c718803c 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/textfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scattergeo/textfont/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/unselected/marker/_color.py b/packages/python/plotly/plotly/validators/scattergeo/unselected/marker/_color.py index 02c60a638c..42932d8050 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/unselected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/scattergeo/unselected/marker/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/unselected/marker/_opacity.py b/packages/python/plotly/plotly/validators/scattergeo/unselected/marker/_opacity.py index 8049661bba..e38a3572f4 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/unselected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/scattergeo/unselected/marker/_opacity.py @@ -14,6 +14,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/unselected/marker/_size.py b/packages/python/plotly/plotly/validators/scattergeo/unselected/marker/_size.py index 055387e855..d1a19577bd 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/unselected/marker/_size.py +++ b/packages/python/plotly/plotly/validators/scattergeo/unselected/marker/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergeo/unselected/textfont/_color.py b/packages/python/plotly/plotly/validators/scattergeo/unselected/textfont/_color.py index 90cf56087f..880f563235 100644 --- a/packages/python/plotly/plotly/validators/scattergeo/unselected/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/scattergeo/unselected/textfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/__init__.py b/packages/python/plotly/plotly/validators/scattergl/__init__.py index d96283cd7f..072b17fd44 100644 --- a/packages/python/plotly/plotly/validators/scattergl/__init__.py +++ b/packages/python/plotly/plotly/validators/scattergl/__init__.py @@ -5,6 +5,7 @@ from ._yperiodalignment import YperiodalignmentValidator from ._yperiod0 import Yperiod0Validator from ._yperiod import YperiodValidator + from ._yhoverformat import YhoverformatValidator from ._ycalendar import YcalendarValidator from ._yaxis import YaxisValidator from ._y0 import Y0Validator @@ -13,6 +14,7 @@ from ._xperiodalignment import XperiodalignmentValidator from ._xperiod0 import Xperiod0Validator from ._xperiod import XperiodValidator + from ._xhoverformat import XhoverformatValidator from ._xcalendar import XcalendarValidator from ._xaxis import XaxisValidator from ._x0 import X0Validator @@ -69,6 +71,7 @@ "._yperiodalignment.YperiodalignmentValidator", "._yperiod0.Yperiod0Validator", "._yperiod.YperiodValidator", + "._yhoverformat.YhoverformatValidator", "._ycalendar.YcalendarValidator", "._yaxis.YaxisValidator", "._y0.Y0Validator", @@ -77,6 +80,7 @@ "._xperiodalignment.XperiodalignmentValidator", "._xperiod0.Xperiod0Validator", "._xperiod.XperiodValidator", + "._xhoverformat.XhoverformatValidator", "._xcalendar.XcalendarValidator", "._xaxis.XaxisValidator", "._x0.X0Validator", diff --git a/packages/python/plotly/plotly/validators/scattergl/_connectgaps.py b/packages/python/plotly/plotly/validators/scattergl/_connectgaps.py index a7b6e0a047..2a67fb4d5c 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_connectgaps.py +++ b/packages/python/plotly/plotly/validators/scattergl/_connectgaps.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="connectgaps", parent_name="scattergl", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_customdata.py b/packages/python/plotly/plotly/validators/scattergl/_customdata.py index c169d03d56..e87d8af010 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_customdata.py +++ b/packages/python/plotly/plotly/validators/scattergl/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_customdatasrc.py b/packages/python/plotly/plotly/validators/scattergl/_customdatasrc.py index be3e362c75..9437783933 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="scattergl", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_dx.py b/packages/python/plotly/plotly/validators/scattergl/_dx.py index 916f6dccef..6e6cfe2f54 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_dx.py +++ b/packages/python/plotly/plotly/validators/scattergl/_dx.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="dx", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_dy.py b/packages/python/plotly/plotly/validators/scattergl/_dy.py index 689e895539..2d6c846b6e 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_dy.py +++ b/packages/python/plotly/plotly/validators/scattergl/_dy.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="dy", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_fill.py b/packages/python/plotly/plotly/validators/scattergl/_fill.py index 6b3849af4d..c3c872efb3 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_fill.py +++ b/packages/python/plotly/plotly/validators/scattergl/_fill.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="fill", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scattergl/_fillcolor.py b/packages/python/plotly/plotly/validators/scattergl/_fillcolor.py index 75b2f5bfd5..ea9a8cd424 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_fillcolor.py +++ b/packages/python/plotly/plotly/validators/scattergl/_fillcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="fillcolor", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_hoverinfo.py b/packages/python/plotly/plotly/validators/scattergl/_hoverinfo.py index b521aba5c7..e3debab6ab 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/scattergl/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="scattergl", **kwargs): edit_type=kwargs.pop("edit_type", "none"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["x", "y", "z", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/scattergl/_hoverinfosrc.py index a05766e9c5..4b055c2a43 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="scattergl", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_hovertemplate.py b/packages/python/plotly/plotly/validators/scattergl/_hovertemplate.py index 26e7c231f4..b880e17bc1 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/scattergl/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="scattergl", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/scattergl/_hovertemplatesrc.py index 583c6b5f68..ed46f19604 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/_hovertemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_hovertext.py b/packages/python/plotly/plotly/validators/scattergl/_hovertext.py index bd5d43a371..2706ba209c 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_hovertext.py +++ b/packages/python/plotly/plotly/validators/scattergl/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="scattergl", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_hovertextsrc.py b/packages/python/plotly/plotly/validators/scattergl/_hovertextsrc.py index 7ad143e3b0..b12903082c 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="scattergl", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_ids.py b/packages/python/plotly/plotly/validators/scattergl/_ids.py index 3ef7064a83..0c64dc9676 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_ids.py +++ b/packages/python/plotly/plotly/validators/scattergl/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_idssrc.py b/packages/python/plotly/plotly/validators/scattergl/_idssrc.py index 366819a389..df1d212a89 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_idssrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_legendgroup.py b/packages/python/plotly/plotly/validators/scattergl/_legendgroup.py index 0c140ff68b..44cb0b143d 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/scattergl/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="scattergl", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_meta.py b/packages/python/plotly/plotly/validators/scattergl/_meta.py index 821ffd572d..ec07f1fc06 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_meta.py +++ b/packages/python/plotly/plotly/validators/scattergl/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="scattergl", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_metasrc.py b/packages/python/plotly/plotly/validators/scattergl/_metasrc.py index 4ecf38a5ff..6718f83581 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_metasrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_mode.py b/packages/python/plotly/plotly/validators/scattergl/_mode.py index 5423fe7235..fa36d48630 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_mode.py +++ b/packages/python/plotly/plotly/validators/scattergl/_mode.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="mode", parent_name="scattergl", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), extras=kwargs.pop("extras", ["none"]), flags=kwargs.pop("flags", ["lines", "markers", "text"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_name.py b/packages/python/plotly/plotly/validators/scattergl/_name.py index b29f23d72c..bb6c089a15 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_name.py +++ b/packages/python/plotly/plotly/validators/scattergl/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_opacity.py b/packages/python/plotly/plotly/validators/scattergl/_opacity.py index 43f1f13504..7d5014acc5 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_opacity.py +++ b/packages/python/plotly/plotly/validators/scattergl/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="scattergl", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_selectedpoints.py b/packages/python/plotly/plotly/validators/scattergl/_selectedpoints.py index 91f2ddae4a..6ac4d8ab0c 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_selectedpoints.py +++ b/packages/python/plotly/plotly/validators/scattergl/_selectedpoints.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="selectedpoints", parent_name="scattergl", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_showlegend.py b/packages/python/plotly/plotly/validators/scattergl/_showlegend.py index 31ecff3c3d..2d0f427c89 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_showlegend.py +++ b/packages/python/plotly/plotly/validators/scattergl/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_text.py b/packages/python/plotly/plotly/validators/scattergl/_text.py index 8af9e1231e..dd0b413173 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_text.py +++ b/packages/python/plotly/plotly/validators/scattergl/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="scattergl", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_textposition.py b/packages/python/plotly/plotly/validators/scattergl/_textposition.py index 77052449f1..6948e2f023 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_textposition.py +++ b/packages/python/plotly/plotly/validators/scattergl/_textposition.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="textposition", parent_name="scattergl", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scattergl/_textpositionsrc.py b/packages/python/plotly/plotly/validators/scattergl/_textpositionsrc.py index 1133d357c4..76c3bf87d5 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_textpositionsrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/_textpositionsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_textsrc.py b/packages/python/plotly/plotly/validators/scattergl/_textsrc.py index acf8d9621a..893854113e 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_textsrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_texttemplate.py b/packages/python/plotly/plotly/validators/scattergl/_texttemplate.py index 89705409a4..b670853fa9 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_texttemplate.py +++ b/packages/python/plotly/plotly/validators/scattergl/_texttemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="texttemplate", parent_name="scattergl", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_texttemplatesrc.py b/packages/python/plotly/plotly/validators/scattergl/_texttemplatesrc.py index 9f7ba903c4..dfe7424377 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_texttemplatesrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/_texttemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_uid.py b/packages/python/plotly/plotly/validators/scattergl/_uid.py index 14b2c06e54..a14e149604 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_uid.py +++ b/packages/python/plotly/plotly/validators/scattergl/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_uirevision.py b/packages/python/plotly/plotly/validators/scattergl/_uirevision.py index ba053989f0..08ab353161 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_uirevision.py +++ b/packages/python/plotly/plotly/validators/scattergl/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_visible.py b/packages/python/plotly/plotly/validators/scattergl/_visible.py index 370312ae7f..953cf1326a 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_visible.py +++ b/packages/python/plotly/plotly/validators/scattergl/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_x.py b/packages/python/plotly/plotly/validators/scattergl/_x.py index d508190aa4..7941b069e2 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_x.py +++ b/packages/python/plotly/plotly/validators/scattergl/_x.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_x0.py b/packages/python/plotly/plotly/validators/scattergl/_x0.py index 9afd3d7946..7291ebc923 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_x0.py +++ b/packages/python/plotly/plotly/validators/scattergl/_x0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x0", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_xaxis.py b/packages/python/plotly/plotly/validators/scattergl/_xaxis.py index 033ed34196..6df05ada49 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_xaxis.py +++ b/packages/python/plotly/plotly/validators/scattergl/_xaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xaxis", parent_name="scattergl", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "x"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_xcalendar.py b/packages/python/plotly/plotly/validators/scattergl/_xcalendar.py index 49620aacc4..e965527c53 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_xcalendar.py +++ b/packages/python/plotly/plotly/validators/scattergl/_xcalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xcalendar", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scattergl/_xhoverformat.py b/packages/python/plotly/plotly/validators/scattergl/_xhoverformat.py new file mode 100644 index 0000000000..b61c4695fa --- /dev/null +++ b/packages/python/plotly/plotly/validators/scattergl/_xhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class XhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="xhoverformat", parent_name="scattergl", **kwargs): + super(XhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_xperiod.py b/packages/python/plotly/plotly/validators/scattergl/_xperiod.py index 07323af540..8d70421152 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_xperiod.py +++ b/packages/python/plotly/plotly/validators/scattergl/_xperiod.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xperiod", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_xperiod0.py b/packages/python/plotly/plotly/validators/scattergl/_xperiod0.py index a4452ffa77..e8350256f7 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_xperiod0.py +++ b/packages/python/plotly/plotly/validators/scattergl/_xperiod0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xperiod0", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_xperiodalignment.py b/packages/python/plotly/plotly/validators/scattergl/_xperiodalignment.py index 31e6fce480..1dbc705e3e 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_xperiodalignment.py +++ b/packages/python/plotly/plotly/validators/scattergl/_xperiodalignment.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["start", "middle", "end"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_xsrc.py b/packages/python/plotly/plotly/validators/scattergl/_xsrc.py index edf461828c..2c107c6b51 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_xsrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_y.py b/packages/python/plotly/plotly/validators/scattergl/_y.py index 51bcdee36c..86c27118e5 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_y.py +++ b/packages/python/plotly/plotly/validators/scattergl/_y.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_y0.py b/packages/python/plotly/plotly/validators/scattergl/_y0.py index 27d742e6c4..da4aff9f03 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_y0.py +++ b/packages/python/plotly/plotly/validators/scattergl/_y0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y0", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_yaxis.py b/packages/python/plotly/plotly/validators/scattergl/_yaxis.py index 33eaf83e5e..c5bcac3d3b 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_yaxis.py +++ b/packages/python/plotly/plotly/validators/scattergl/_yaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="yaxis", parent_name="scattergl", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "y"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_ycalendar.py b/packages/python/plotly/plotly/validators/scattergl/_ycalendar.py index c4b293868c..658a6ced55 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_ycalendar.py +++ b/packages/python/plotly/plotly/validators/scattergl/_ycalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ycalendar", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scattergl/_yhoverformat.py b/packages/python/plotly/plotly/validators/scattergl/_yhoverformat.py new file mode 100644 index 0000000000..8efff7b180 --- /dev/null +++ b/packages/python/plotly/plotly/validators/scattergl/_yhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class YhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="yhoverformat", parent_name="scattergl", **kwargs): + super(YhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_yperiod.py b/packages/python/plotly/plotly/validators/scattergl/_yperiod.py index d24f5dfa4c..07a91af4f2 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_yperiod.py +++ b/packages/python/plotly/plotly/validators/scattergl/_yperiod.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="yperiod", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_yperiod0.py b/packages/python/plotly/plotly/validators/scattergl/_yperiod0.py index 4cf5a141a3..62012e9c92 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_yperiod0.py +++ b/packages/python/plotly/plotly/validators/scattergl/_yperiod0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="yperiod0", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_yperiodalignment.py b/packages/python/plotly/plotly/validators/scattergl/_yperiodalignment.py index 87005e66eb..b8145be420 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_yperiodalignment.py +++ b/packages/python/plotly/plotly/validators/scattergl/_yperiodalignment.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["start", "middle", "end"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/_ysrc.py b/packages/python/plotly/plotly/validators/scattergl/_ysrc.py index 93678c8ed3..a1db979d50 100644 --- a/packages/python/plotly/plotly/validators/scattergl/_ysrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/_ysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ysrc", parent_name="scattergl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_x/_array.py b/packages/python/plotly/plotly/validators/scattergl/error_x/_array.py index a48d385b30..d546e64a90 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_x/_array.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_x/_array.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="array", parent_name="scattergl.error_x", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_x/_arrayminus.py b/packages/python/plotly/plotly/validators/scattergl/error_x/_arrayminus.py index 01d8a44f99..609c5a2653 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_x/_arrayminus.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_x/_arrayminus.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_x/_arrayminussrc.py b/packages/python/plotly/plotly/validators/scattergl/error_x/_arrayminussrc.py index bc55011e84..1ac15b9b5d 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_x/_arrayminussrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_x/_arrayminussrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_x/_arraysrc.py b/packages/python/plotly/plotly/validators/scattergl/error_x/_arraysrc.py index ae2c9aca4c..172a23b5ac 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_x/_arraysrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_x/_arraysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_x/_color.py b/packages/python/plotly/plotly/validators/scattergl/error_x/_color.py index fc742e97bd..ea3627ee49 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_x/_color.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_x/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="scattergl.error_x", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_x/_copy_ystyle.py b/packages/python/plotly/plotly/validators/scattergl/error_x/_copy_ystyle.py index 2a3187409a..49b7e2d4d6 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_x/_copy_ystyle.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_x/_copy_ystyle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_x/_symmetric.py b/packages/python/plotly/plotly/validators/scattergl/error_x/_symmetric.py index 4dba1ed16f..17f268b757 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_x/_symmetric.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_x/_symmetric.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_x/_thickness.py b/packages/python/plotly/plotly/validators/scattergl/error_x/_thickness.py index 3fdab16a6e..8ca05b8781 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_x/_thickness.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_x/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_x/_traceref.py b/packages/python/plotly/plotly/validators/scattergl/error_x/_traceref.py index 146b7e5719..a62429e5e0 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_x/_traceref.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_x/_traceref.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_x/_tracerefminus.py b/packages/python/plotly/plotly/validators/scattergl/error_x/_tracerefminus.py index 8c9952dc5f..2c35b6e545 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_x/_tracerefminus.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_x/_tracerefminus.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_x/_type.py b/packages/python/plotly/plotly/validators/scattergl/error_x/_type.py index 9538a40b4c..6a875a9348 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_x/_type.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_x/_type.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="type", parent_name="scattergl.error_x", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["percent", "constant", "sqrt", "data"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_x/_value.py b/packages/python/plotly/plotly/validators/scattergl/error_x/_value.py index 5528178d23..1b9c9ad0a5 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_x/_value.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_x/_value.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="value", parent_name="scattergl.error_x", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_x/_valueminus.py b/packages/python/plotly/plotly/validators/scattergl/error_x/_valueminus.py index f5fd42bfd8..a5d6e3ec4f 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_x/_valueminus.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_x/_valueminus.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_x/_visible.py b/packages/python/plotly/plotly/validators/scattergl/error_x/_visible.py index 2c429c9f36..a59f0cec33 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_x/_visible.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_x/_visible.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_x/_width.py b/packages/python/plotly/plotly/validators/scattergl/error_x/_width.py index 2f0c4baad7..fe7721046c 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_x/_width.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_x/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="scattergl.error_x", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_y/_array.py b/packages/python/plotly/plotly/validators/scattergl/error_y/_array.py index a76f3488c1..d832b739f5 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_y/_array.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_y/_array.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="array", parent_name="scattergl.error_y", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_y/_arrayminus.py b/packages/python/plotly/plotly/validators/scattergl/error_y/_arrayminus.py index 7f004a8270..b6eff4be51 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_y/_arrayminus.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_y/_arrayminus.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_y/_arrayminussrc.py b/packages/python/plotly/plotly/validators/scattergl/error_y/_arrayminussrc.py index 34ea482e7a..9657cde2bd 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_y/_arrayminussrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_y/_arrayminussrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_y/_arraysrc.py b/packages/python/plotly/plotly/validators/scattergl/error_y/_arraysrc.py index 6af78d2b71..47ddaf1f19 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_y/_arraysrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_y/_arraysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_y/_color.py b/packages/python/plotly/plotly/validators/scattergl/error_y/_color.py index 04e6872d56..3ea1e2e728 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_y/_color.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_y/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="scattergl.error_y", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_y/_symmetric.py b/packages/python/plotly/plotly/validators/scattergl/error_y/_symmetric.py index 6274865b15..efde619084 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_y/_symmetric.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_y/_symmetric.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_y/_thickness.py b/packages/python/plotly/plotly/validators/scattergl/error_y/_thickness.py index f68ab4829d..6ddd364e9f 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_y/_thickness.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_y/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_y/_traceref.py b/packages/python/plotly/plotly/validators/scattergl/error_y/_traceref.py index ef2d0478a5..0c5f4a7f4a 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_y/_traceref.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_y/_traceref.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_y/_tracerefminus.py b/packages/python/plotly/plotly/validators/scattergl/error_y/_tracerefminus.py index d3cf4ccc46..e9552fb69e 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_y/_tracerefminus.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_y/_tracerefminus.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_y/_type.py b/packages/python/plotly/plotly/validators/scattergl/error_y/_type.py index fb43d963c2..d75883b616 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_y/_type.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_y/_type.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="type", parent_name="scattergl.error_y", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["percent", "constant", "sqrt", "data"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_y/_value.py b/packages/python/plotly/plotly/validators/scattergl/error_y/_value.py index 884e353538..4e69f255bf 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_y/_value.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_y/_value.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="value", parent_name="scattergl.error_y", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_y/_valueminus.py b/packages/python/plotly/plotly/validators/scattergl/error_y/_valueminus.py index ba1a7fa7a2..3dc1445de1 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_y/_valueminus.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_y/_valueminus.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_y/_visible.py b/packages/python/plotly/plotly/validators/scattergl/error_y/_visible.py index 52da47ea2a..de8881aafe 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_y/_visible.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_y/_visible.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/error_y/_width.py b/packages/python/plotly/plotly/validators/scattergl/error_y/_width.py index 948c4bde79..47710e0770 100644 --- a/packages/python/plotly/plotly/validators/scattergl/error_y/_width.py +++ b/packages/python/plotly/plotly/validators/scattergl/error_y/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="scattergl.error_y", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_align.py index 33f1275ffd..389b5a13e8 100644 --- a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_align.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_alignsrc.py index 3b1c8d8c07..8e0f0526f7 100644 --- a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_bgcolor.py index ccebe0dc8f..1e98ad9a5d 100644 --- a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_bgcolorsrc.py index 7ac0f0b67d..24752aa4c6 100644 --- a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_bordercolor.py index 1889abea91..8856e4eda5 100644 --- a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_bordercolorsrc.py index edff4703fe..3b02fc369c 100644 --- a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_bordercolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_namelength.py index a3880eb7d6..3c69de0bc3 100644 --- a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_namelengthsrc.py index 3e409dd0b9..984f7a7419 100644 --- a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/font/_color.py index fb18694ed7..4006dc93c7 100644 --- a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/font/_colorsrc.py index 7d1f011094..8a4b844dac 100644 --- a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/font/_family.py index e965b8e3fc..3d115f0e5a 100644 --- a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/font/_familysrc.py index 7bf4315987..d295559d59 100644 --- a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/font/_size.py index d68058f65c..560c73330f 100644 --- a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/font/_sizesrc.py index 28a1fa2b7c..9d43d5f68c 100644 --- a/packages/python/plotly/plotly/validators/scattergl/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/line/_color.py b/packages/python/plotly/plotly/validators/scattergl/line/_color.py index 12b7ffe73e..31793c439d 100644 --- a/packages/python/plotly/plotly/validators/scattergl/line/_color.py +++ b/packages/python/plotly/plotly/validators/scattergl/line/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="scattergl.line", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/line/_dash.py b/packages/python/plotly/plotly/validators/scattergl/line/_dash.py index 9c970bf0bb..5f779421e1 100644 --- a/packages/python/plotly/plotly/validators/scattergl/line/_dash.py +++ b/packages/python/plotly/plotly/validators/scattergl/line/_dash.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="dash", parent_name="scattergl.line", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", ["solid", "dot", "dash", "longdash", "dashdot", "longdashdot"] ), diff --git a/packages/python/plotly/plotly/validators/scattergl/line/_shape.py b/packages/python/plotly/plotly/validators/scattergl/line/_shape.py index a82da0f1b0..9272d8977b 100644 --- a/packages/python/plotly/plotly/validators/scattergl/line/_shape.py +++ b/packages/python/plotly/plotly/validators/scattergl/line/_shape.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="shape", parent_name="scattergl.line", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["linear", "hv", "vh", "hvh", "vhv"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/line/_width.py b/packages/python/plotly/plotly/validators/scattergl/line/_width.py index 29a1b729c9..9c7eaa5dad 100644 --- a/packages/python/plotly/plotly/validators/scattergl/line/_width.py +++ b/packages/python/plotly/plotly/validators/scattergl/line/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="scattergl.line", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/_autocolorscale.py b/packages/python/plotly/plotly/validators/scattergl/marker/_autocolorscale.py index ffaa5ec331..0e40395011 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/_cauto.py b/packages/python/plotly/plotly/validators/scattergl/marker/_cauto.py index 8187dfb6d4..9feb9c3a9a 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/_cauto.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/_cauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cauto", parent_name="scattergl.marker", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/_cmax.py b/packages/python/plotly/plotly/validators/scattergl/marker/_cmax.py index 935a078b41..fffad1c886 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/_cmax.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="scattergl.marker", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/_cmid.py b/packages/python/plotly/plotly/validators/scattergl/marker/_cmid.py index 95f5ca7e0b..2dda452cb6 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/_cmid.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="scattergl.marker", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/_cmin.py b/packages/python/plotly/plotly/validators/scattergl/marker/_cmin.py index 0eb3904d1b..f8e3a31994 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/_cmin.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="scattergl.marker", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/_color.py b/packages/python/plotly/plotly/validators/scattergl/marker/_color.py index f5ad3baa15..8f08fdd922 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/_color.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/_color.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="color", parent_name="scattergl.marker", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop( "colorscale_path", "scattergl.marker.colorscale" ), diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/_coloraxis.py b/packages/python/plotly/plotly/validators/scattergl/marker/_coloraxis.py index 2578a94953..5a219d1ddf 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/_coloraxis.py @@ -11,6 +11,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/_colorbar.py b/packages/python/plotly/plotly/validators/scattergl/marker/_colorbar.py index d2b4d0131a..0aedba2844 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/_colorbar.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/_colorbar.py @@ -150,6 +150,12 @@ def __init__( lts), sets the default property values to use for elements of scattergl.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/_colorscale.py b/packages/python/plotly/plotly/validators/scattergl/marker/_colorscale.py index 6d262eec0b..d896817f6d 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/_colorscale.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/_colorsrc.py b/packages/python/plotly/plotly/validators/scattergl/marker/_colorsrc.py index 5f0daac7db..4045ac9ac3 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/_opacity.py b/packages/python/plotly/plotly/validators/scattergl/marker/_opacity.py index aa59b4bb13..a9abb59529 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/_opacity.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="opacity", parent_name="scattergl.marker", **kwar edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/_opacitysrc.py b/packages/python/plotly/plotly/validators/scattergl/marker/_opacitysrc.py index 1950f8e929..fe5fbdd740 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/_opacitysrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/_opacitysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/_reversescale.py b/packages/python/plotly/plotly/validators/scattergl/marker/_reversescale.py index 0909291519..564486d531 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/_reversescale.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/_showscale.py b/packages/python/plotly/plotly/validators/scattergl/marker/_showscale.py index ae9bad275f..8dc66258a0 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/_showscale.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/_showscale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/_size.py b/packages/python/plotly/plotly/validators/scattergl/marker/_size.py index 9b181bfc67..3f12e498e6 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/_size.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="scattergl.marker", **kwargs) array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/_sizemin.py b/packages/python/plotly/plotly/validators/scattergl/marker/_sizemin.py index 46c0e38217..a5714cc23e 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/_sizemin.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/_sizemin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="sizemin", parent_name="scattergl.marker", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/_sizemode.py b/packages/python/plotly/plotly/validators/scattergl/marker/_sizemode.py index 0b501f687b..14b9bc190d 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/_sizemode.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/_sizemode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["diameter", "area"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/_sizeref.py b/packages/python/plotly/plotly/validators/scattergl/marker/_sizeref.py index 9d5701399f..6ea6b5a0cf 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/_sizeref.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/_sizeref.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="sizeref", parent_name="scattergl.marker", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/_sizesrc.py b/packages/python/plotly/plotly/validators/scattergl/marker/_sizesrc.py index 3f7c89639d..a780f79c70 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/_sizesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="sizesrc", parent_name="scattergl.marker", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/_symbol.py b/packages/python/plotly/plotly/validators/scattergl/marker/_symbol.py index 64e6964c3a..f3cc3b7c91 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/_symbol.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/_symbol.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="symbol", parent_name="scattergl.marker", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/_symbolsrc.py b/packages/python/plotly/plotly/validators/scattergl/marker/_symbolsrc.py index 0a2980f6bf..382be399a5 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/_symbolsrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/_symbolsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/__init__.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_bgcolor.py index d4687bf5fa..5a74e45a0a 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_bordercolor.py index a2df91b36f..91d716c141 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_bordercolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_borderwidth.py index b169fd0121..7686a0547d 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_borderwidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_dtick.py index 2ff0b10643..793b551032 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_exponentformat.py index 24a71de57c..158335d57d 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_exponentformat.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_len.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_len.py index 43a7b652e1..ee4e75b4c3 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_len.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_lenmode.py index ca4165fd1b..0f3341bb04 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_lenmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_minexponent.py index 6ab182a378..aa461347a6 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_minexponent.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_nticks.py index cda7861e35..cde081ff8e 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_outlinecolor.py index 7a98c3a1d3..da38ff12a5 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_outlinecolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_outlinewidth.py index 9b5550a2a0..adb0fdede8 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_outlinewidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_separatethousands.py index 01c5dc1135..4f074d2019 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_showexponent.py index b742947ce4..b95f26fa66 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_showexponent.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_showticklabels.py index f2aa7ae133..68ee1bfc1b 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_showticklabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_showtickprefix.py index 4001f280ff..0088831b2d 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_showtickprefix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_showticksuffix.py index 61c485a1b3..c404962b40 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_showticksuffix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_thickness.py index 967a8e32d1..4c7babdc5b 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_thicknessmode.py index cfc3166305..cc67c914ab 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_thicknessmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tick0.py index 82c7bd0d68..6ae415fecf 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickangle.py index 53d90aa40a..8dfbff36c0 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickcolor.py index 30542ba2db..e6217ab02e 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickformat.py index 4d20d59768..0f2121d748 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickformat.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..eaca4568b3 --- /dev/null +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="scattergl.marker.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticklabelposition.py index c7bcea00aa..7bee7b8f17 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticklen.py index 32d7120318..423d554fd2 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickmode.py index 2ba4e1f7a5..6600d95926 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickprefix.py index 8466660131..f70a52490e 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickprefix.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticks.py index baa3a17f23..1ef80021f3 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticksuffix.py index 86d2adb2f8..c0ff766bba 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticksuffix.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticktext.py index 4b971ad735..b646307502 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticktextsrc.py index d77a510f34..7cd40f0e3f 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ticktextsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickvals.py index 7cfd00f614..bd8957c2ae 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickvalssrc.py index b9bca8f553..dc9d447eaf 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickvalssrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickwidth.py index d4f89832e2..fe90befad1 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_x.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_x.py index a4540473b6..1a3d0e6783 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_x.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_xanchor.py index c2147ec7d3..fedd23858c 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_xpad.py index 60d02eb170..144a0817e8 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_xpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_y.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_y.py index 3ec8f0aa98..b789ab27ff 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_y.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_yanchor.py index 81c90ce781..8de8b50e15 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ypad.py index b5c66d9b18..cdd3856966 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/_ypad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickfont/_color.py index 241df75a7b..b8861d4616 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickfont/_family.py index 6c5fb52ec9..be1f532e00 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickfont/_size.py index ab7db65f0a..522bf26e97 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickformatstop/_dtickrange.py index 644de2e399..7ea0d00626 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickformatstop/_enabled.py index aeed7728a3..2b157571a8 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickformatstop/_name.py index 49efabf4e1..e4d4dffad8 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickformatstop/_templateitemname.py index 994e2df425..324806a844 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickformatstop/_value.py index 100b02285d..34c6465b90 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/title/_side.py index 6c390294d2..30b32316db 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/title/_side.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/title/_text.py index a4d6b4bcb7..1c409eb65c 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/title/_text.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/title/font/_color.py index aec67af87d..ce7a32ed81 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/title/font/_family.py index 9433217234..4f561f4395 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/title/font/_size.py index 6479df8df5..0fdf54d33b 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/colorbar/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/line/_autocolorscale.py b/packages/python/plotly/plotly/validators/scattergl/marker/line/_autocolorscale.py index 7cec8394ae..110edd9cb7 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/line/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/line/_autocolorscale.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/line/_cauto.py b/packages/python/plotly/plotly/validators/scattergl/marker/line/_cauto.py index 6748836b78..46de08593f 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/line/_cauto.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/line/_cauto.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/line/_cmax.py b/packages/python/plotly/plotly/validators/scattergl/marker/line/_cmax.py index 85bb9ec7c9..f7b15296ba 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/line/_cmax.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/line/_cmax.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/line/_cmid.py b/packages/python/plotly/plotly/validators/scattergl/marker/line/_cmid.py index 1216902536..bf399addf1 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/line/_cmid.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/line/_cmid.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/line/_cmin.py b/packages/python/plotly/plotly/validators/scattergl/marker/line/_cmin.py index a082bde26f..ad9841a3e2 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/line/_cmin.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/line/_cmin.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/line/_color.py b/packages/python/plotly/plotly/validators/scattergl/marker/line/_color.py index 3b050ce268..444598b2c2 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/line/_color.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/line/_color.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop( "colorscale_path", "scattergl.marker.line.colorscale" ), diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/line/_coloraxis.py b/packages/python/plotly/plotly/validators/scattergl/marker/line/_coloraxis.py index 9fa7430261..24caa49738 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/line/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/line/_coloraxis.py @@ -11,6 +11,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/line/_colorscale.py b/packages/python/plotly/plotly/validators/scattergl/marker/line/_colorscale.py index bc58acbc07..e37c5ad207 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/line/_colorscale.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/line/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/line/_colorsrc.py b/packages/python/plotly/plotly/validators/scattergl/marker/line/_colorsrc.py index 965b0d8dfe..9ccd03c466 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/line/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/line/_reversescale.py b/packages/python/plotly/plotly/validators/scattergl/marker/line/_reversescale.py index 611c8573ab..c9f6ace00e 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/line/_reversescale.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/line/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/line/_width.py b/packages/python/plotly/plotly/validators/scattergl/marker/line/_width.py index e8234988cd..e58b06cec3 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/line/_width.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/line/_width.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/marker/line/_widthsrc.py b/packages/python/plotly/plotly/validators/scattergl/marker/line/_widthsrc.py index 2fed10acb8..c726e897cd 100644 --- a/packages/python/plotly/plotly/validators/scattergl/marker/line/_widthsrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/marker/line/_widthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/selected/marker/_color.py b/packages/python/plotly/plotly/validators/scattergl/selected/marker/_color.py index 95e3de71fe..0f91254d18 100644 --- a/packages/python/plotly/plotly/validators/scattergl/selected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/scattergl/selected/marker/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/selected/marker/_opacity.py b/packages/python/plotly/plotly/validators/scattergl/selected/marker/_opacity.py index 674d1001d2..972f5da799 100644 --- a/packages/python/plotly/plotly/validators/scattergl/selected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/scattergl/selected/marker/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/selected/marker/_size.py b/packages/python/plotly/plotly/validators/scattergl/selected/marker/_size.py index 08adc91a53..95b9995fc8 100644 --- a/packages/python/plotly/plotly/validators/scattergl/selected/marker/_size.py +++ b/packages/python/plotly/plotly/validators/scattergl/selected/marker/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/selected/textfont/_color.py b/packages/python/plotly/plotly/validators/scattergl/selected/textfont/_color.py index 34e32d5ccc..6eaa0204f4 100644 --- a/packages/python/plotly/plotly/validators/scattergl/selected/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/scattergl/selected/textfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/scattergl/stream/_maxpoints.py index b13f46f3ed..c89f38f0d2 100644 --- a/packages/python/plotly/plotly/validators/scattergl/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/scattergl/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/stream/_token.py b/packages/python/plotly/plotly/validators/scattergl/stream/_token.py index a4607a08ea..55a9461a3d 100644 --- a/packages/python/plotly/plotly/validators/scattergl/stream/_token.py +++ b/packages/python/plotly/plotly/validators/scattergl/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="scattergl.stream", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/textfont/_color.py b/packages/python/plotly/plotly/validators/scattergl/textfont/_color.py index 339878d6b4..dea4100b9e 100644 --- a/packages/python/plotly/plotly/validators/scattergl/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/scattergl/textfont/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="scattergl.textfont", **kwar parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/textfont/_colorsrc.py b/packages/python/plotly/plotly/validators/scattergl/textfont/_colorsrc.py index 48a36a5fb0..fe2fea24f6 100644 --- a/packages/python/plotly/plotly/validators/scattergl/textfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/textfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/textfont/_family.py b/packages/python/plotly/plotly/validators/scattergl/textfont/_family.py index e8a0ff03e4..e273b91def 100644 --- a/packages/python/plotly/plotly/validators/scattergl/textfont/_family.py +++ b/packages/python/plotly/plotly/validators/scattergl/textfont/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/textfont/_familysrc.py b/packages/python/plotly/plotly/validators/scattergl/textfont/_familysrc.py index 9ed2a5f479..4552a396ec 100644 --- a/packages/python/plotly/plotly/validators/scattergl/textfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/textfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/textfont/_size.py b/packages/python/plotly/plotly/validators/scattergl/textfont/_size.py index 71dfda9e1b..d1a67c9b5f 100644 --- a/packages/python/plotly/plotly/validators/scattergl/textfont/_size.py +++ b/packages/python/plotly/plotly/validators/scattergl/textfont/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="scattergl.textfont", **kwarg array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/textfont/_sizesrc.py b/packages/python/plotly/plotly/validators/scattergl/textfont/_sizesrc.py index a50484aa2c..e81964f206 100644 --- a/packages/python/plotly/plotly/validators/scattergl/textfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scattergl/textfont/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/unselected/marker/_color.py b/packages/python/plotly/plotly/validators/scattergl/unselected/marker/_color.py index 191f9edaa4..e72fc7a59e 100644 --- a/packages/python/plotly/plotly/validators/scattergl/unselected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/scattergl/unselected/marker/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/unselected/marker/_opacity.py b/packages/python/plotly/plotly/validators/scattergl/unselected/marker/_opacity.py index 09ce466eeb..7107761eb2 100644 --- a/packages/python/plotly/plotly/validators/scattergl/unselected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/scattergl/unselected/marker/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/unselected/marker/_size.py b/packages/python/plotly/plotly/validators/scattergl/unselected/marker/_size.py index f4958daf43..1a7c2d7c0b 100644 --- a/packages/python/plotly/plotly/validators/scattergl/unselected/marker/_size.py +++ b/packages/python/plotly/plotly/validators/scattergl/unselected/marker/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattergl/unselected/textfont/_color.py b/packages/python/plotly/plotly/validators/scattergl/unselected/textfont/_color.py index a859ce9ce4..21d1547880 100644 --- a/packages/python/plotly/plotly/validators/scattergl/unselected/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/scattergl/unselected/textfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_below.py b/packages/python/plotly/plotly/validators/scattermapbox/_below.py index d9c0294451..560760ef59 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_below.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_below.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="below", parent_name="scattermapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_connectgaps.py b/packages/python/plotly/plotly/validators/scattermapbox/_connectgaps.py index f706680c0d..4ca4891f06 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_connectgaps.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_connectgaps.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_customdata.py b/packages/python/plotly/plotly/validators/scattermapbox/_customdata.py index 46c02f0245..9ec67d4c57 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_customdata.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="scattermapbox", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_customdatasrc.py b/packages/python/plotly/plotly/validators/scattermapbox/_customdatasrc.py index fff626dc4a..fd67dc6885 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_customdatasrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_fill.py b/packages/python/plotly/plotly/validators/scattermapbox/_fill.py index b75d4cbcdd..6fe995da4d 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_fill.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_fill.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="fill", parent_name="scattermapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "toself"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_fillcolor.py b/packages/python/plotly/plotly/validators/scattermapbox/_fillcolor.py index 053f68bc05..e79679f96b 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_fillcolor.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_fillcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="fillcolor", parent_name="scattermapbox", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_hoverinfo.py b/packages/python/plotly/plotly/validators/scattermapbox/_hoverinfo.py index 646e017b8d..870f0e7b2d 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="scattermapbox", **kwarg edit_type=kwargs.pop("edit_type", "calc"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["lon", "lat", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/scattermapbox/_hoverinfosrc.py index 9d61b73cf8..27c057decc 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_hoverinfosrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_hovertemplate.py b/packages/python/plotly/plotly/validators/scattermapbox/_hovertemplate.py index 00e03194d7..81ab8db7d2 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_hovertemplate.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/scattermapbox/_hovertemplatesrc.py index 607039594e..e7ca4b4195 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_hovertemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_hovertext.py b/packages/python/plotly/plotly/validators/scattermapbox/_hovertext.py index beb042f7d4..28b89c05f9 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_hovertext.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="scattermapbox", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_hovertextsrc.py b/packages/python/plotly/plotly/validators/scattermapbox/_hovertextsrc.py index 3959b19398..eca7b641f7 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_hovertextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_ids.py b/packages/python/plotly/plotly/validators/scattermapbox/_ids.py index 702decce07..ce398cd3ce 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_ids.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="scattermapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_idssrc.py b/packages/python/plotly/plotly/validators/scattermapbox/_idssrc.py index 2a80799787..fa85c145b2 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_idssrc.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="scattermapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_lat.py b/packages/python/plotly/plotly/validators/scattermapbox/_lat.py index 0f3884946d..07faceb999 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_lat.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_lat.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="lat", parent_name="scattermapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_latsrc.py b/packages/python/plotly/plotly/validators/scattermapbox/_latsrc.py index 841a7eece3..7a46d86a0f 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_latsrc.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_latsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="latsrc", parent_name="scattermapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_legendgroup.py b/packages/python/plotly/plotly/validators/scattermapbox/_legendgroup.py index e5f6b14a28..8746bbadb8 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_legendgroup.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_lon.py b/packages/python/plotly/plotly/validators/scattermapbox/_lon.py index 694839a2ba..2203aa3ed3 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_lon.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_lon.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="lon", parent_name="scattermapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_lonsrc.py b/packages/python/plotly/plotly/validators/scattermapbox/_lonsrc.py index 0b77c00898..f8b3c72863 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_lonsrc.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_lonsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="lonsrc", parent_name="scattermapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_meta.py b/packages/python/plotly/plotly/validators/scattermapbox/_meta.py index 3f65a80e58..d8a93b374b 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_meta.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="scattermapbox", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_metasrc.py b/packages/python/plotly/plotly/validators/scattermapbox/_metasrc.py index 311d824e44..b864b610b2 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_metasrc.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="scattermapbox", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_mode.py b/packages/python/plotly/plotly/validators/scattermapbox/_mode.py index bd7318c3f3..5ca35b100a 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_mode.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_mode.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="mode", parent_name="scattermapbox", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), extras=kwargs.pop("extras", ["none"]), flags=kwargs.pop("flags", ["lines", "markers", "text"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_name.py b/packages/python/plotly/plotly/validators/scattermapbox/_name.py index 5e5c7bfc03..8d5e025ce1 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_name.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="scattermapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_opacity.py b/packages/python/plotly/plotly/validators/scattermapbox/_opacity.py index 7efc6b40aa..3972987e3d 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_opacity.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="scattermapbox", **kwargs) edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_selectedpoints.py b/packages/python/plotly/plotly/validators/scattermapbox/_selectedpoints.py index 9bb9feff67..5a7993ceda 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_selectedpoints.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_selectedpoints.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_showlegend.py b/packages/python/plotly/plotly/validators/scattermapbox/_showlegend.py index 2d9325a42c..7987e19306 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_showlegend.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="scattermapbox", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_subplot.py b/packages/python/plotly/plotly/validators/scattermapbox/_subplot.py index b563ea78a1..6a6541840b 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_subplot.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_subplot.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="subplot", parent_name="scattermapbox", **kwargs) parent_name=parent_name, dflt=kwargs.pop("dflt", "mapbox"), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_text.py b/packages/python/plotly/plotly/validators/scattermapbox/_text.py index abc9c66526..3d046e78f1 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_text.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="scattermapbox", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_textposition.py b/packages/python/plotly/plotly/validators/scattermapbox/_textposition.py index dbc9b8e6d4..5ca9614955 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_textposition.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_textposition.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_textsrc.py b/packages/python/plotly/plotly/validators/scattermapbox/_textsrc.py index a42e2e62e4..1a2ffbd7b7 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_textsrc.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="scattermapbox", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_texttemplate.py b/packages/python/plotly/plotly/validators/scattermapbox/_texttemplate.py index 3452a00b54..fe05590e08 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_texttemplate.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_texttemplate.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_texttemplatesrc.py b/packages/python/plotly/plotly/validators/scattermapbox/_texttemplatesrc.py index 598e593ed5..b1f37f458f 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_texttemplatesrc.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_texttemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_uid.py b/packages/python/plotly/plotly/validators/scattermapbox/_uid.py index 23b9fcc8e1..ed656b6f9c 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_uid.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="scattermapbox", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_uirevision.py b/packages/python/plotly/plotly/validators/scattermapbox/_uirevision.py index aa23defa15..277554ced5 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_uirevision.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="scattermapbox", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/_visible.py b/packages/python/plotly/plotly/validators/scattermapbox/_visible.py index bcf5087a9f..48b6417523 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/_visible.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="scattermapbox", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_align.py index f82124d1f4..eafb6f1f4d 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_align.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_alignsrc.py index 82eb7964db..d6899755db 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_bgcolor.py index cb8c0e9672..dd0dcd811a 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_bgcolorsrc.py index 18bbda1e39..8d4def8d13 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_bordercolor.py index d39679ca23..ad36a97c21 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_bordercolor.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_bordercolorsrc.py index e6dd2fa17a..beab4681d8 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_bordercolorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_namelength.py index a8662b208d..4822e0c17d 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_namelengthsrc.py index f7f1cb4415..4cdd6a7a8b 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/_namelengthsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/font/_color.py index eacbd84414..91f8e08775 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/font/_colorsrc.py index 22aca29218..0bd610964f 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/font/_colorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/font/_family.py index 35c82803c5..6ddb54685a 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/font/_family.py @@ -14,7 +14,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/font/_familysrc.py index 6ed1607eb6..704f39d94f 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/font/_familysrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/font/_size.py index 307dca85b0..2a99ff0542 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/font/_sizesrc.py index 1388204899..5a5e73506b 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/hoverlabel/font/_sizesrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/line/_color.py b/packages/python/plotly/plotly/validators/scattermapbox/line/_color.py index d07bcddb0d..d8455948e9 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/line/_color.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/line/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="scattermapbox.line", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/line/_width.py b/packages/python/plotly/plotly/validators/scattermapbox/line/_width.py index 9801df19df..e7fe4438d5 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/line/_width.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/line/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="scattermapbox.line", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/_allowoverlap.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/_allowoverlap.py index ec06011aff..c2ca06de64 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/_allowoverlap.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/_allowoverlap.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/_angle.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/_angle.py index 853649eeb3..dd609387e1 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/_angle.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/_angle.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/_anglesrc.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/_anglesrc.py index 225d4f5ef1..543e31b386 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/_anglesrc.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/_anglesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/_autocolorscale.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/_autocolorscale.py index 593da9ca6b..7b54b4ee09 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/_cauto.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/_cauto.py index d74990f1ae..5715f0802c 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/_cauto.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/_cauto.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/_cmax.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/_cmax.py index bb483e292e..f5e6f559d9 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/_cmax.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/_cmax.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/_cmid.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/_cmid.py index 8e47779dad..a44ea6cb43 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/_cmid.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/_cmid.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/_cmin.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/_cmin.py index 142d7ecfa7..632b9616d7 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/_cmin.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/_cmin.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/_color.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/_color.py index dde20becae..31a26b8742 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/_color.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/_color.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop( "colorscale_path", "scattermapbox.marker.colorscale" ), diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/_coloraxis.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/_coloraxis.py index 8c14eed09c..e6cecaaf31 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/_coloraxis.py @@ -11,6 +11,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/_colorbar.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/_colorbar.py index 45637f94a9..c96a7f09d4 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/_colorbar.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/_colorbar.py @@ -150,6 +150,12 @@ def __init__( efaults), sets the default property values to use for elements of scattermapbox.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/_colorscale.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/_colorscale.py index 4df9db5f9b..0b7c9bdbce 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/_colorscale.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/_colorsrc.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/_colorsrc.py index e1eb6f2faf..e911e31b7a 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/_opacity.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/_opacity.py index 61e2cf89e2..4864d6645c 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/_opacity.py @@ -12,6 +12,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/_opacitysrc.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/_opacitysrc.py index 4d422de7db..53fd35c1c2 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/_opacitysrc.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/_opacitysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/_reversescale.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/_reversescale.py index db4e44c194..80ff4d0978 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/_reversescale.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/_showscale.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/_showscale.py index 7011461e86..da0abc984d 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/_showscale.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/_showscale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/_size.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/_size.py index 2ad783816c..8a6ef5017b 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/_size.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/_sizemin.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/_sizemin.py index 0143284926..dc7c632d48 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/_sizemin.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/_sizemin.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/_sizemode.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/_sizemode.py index 1da0dc0220..8f9e58ae47 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/_sizemode.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/_sizemode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["diameter", "area"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/_sizeref.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/_sizeref.py index 7031b7244f..f9e6493dca 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/_sizeref.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/_sizeref.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/_sizesrc.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/_sizesrc.py index 5bc41b67f1..d74b18b9eb 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/_symbol.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/_symbol.py index de6985295d..62e7f41022 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/_symbol.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/_symbol.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/_symbolsrc.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/_symbolsrc.py index 571469683d..7e419d0169 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/_symbolsrc.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/_symbolsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/__init__.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_bgcolor.py index b2e186c47b..b87134e2f0 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_bgcolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_bordercolor.py index 00efd85619..b3252f8283 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_bordercolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_borderwidth.py index d891382a4e..08a784a91b 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_borderwidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_dtick.py index 4724201aa9..16393133f3 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_exponentformat.py index 45e77138ed..0fb0d82cca 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_exponentformat.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_len.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_len.py index cc39fc3d7d..74df9389aa 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_len.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_lenmode.py index 00b4c6fc91..828aaf4ea1 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_lenmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_minexponent.py index 28808f9ac2..de322ffa6f 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_minexponent.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_nticks.py index 2510e92fd7..37d0f1a5c5 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_nticks.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_outlinecolor.py index a644851390..0793862b8d 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_outlinecolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_outlinewidth.py index f560d335b7..bb4bf80013 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_outlinewidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_separatethousands.py index 9a3567c8c2..4acdc4af1c 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_showexponent.py index b82e046065..409073058a 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_showexponent.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_showticklabels.py index 2e0483ffbc..6b3aefad58 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_showticklabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_showtickprefix.py index bf590e6b3e..a495ddd38a 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_showtickprefix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_showticksuffix.py index abee44fdf5..03435fc51d 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_showticksuffix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_thickness.py index 9cc4897d84..f24bcad65a 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_thickness.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_thicknessmode.py index 088e1787cb..16b510f412 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_thicknessmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tick0.py index ea4bcb1bc1..97d95bedc4 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickangle.py index e78f28e1c8..46b3cada8b 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickangle.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickcolor.py index 08fc28ce55..764f6fb9f9 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickcolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickformat.py index b62d5e15c4..7e37362f3b 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickformat.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..28b916ed39 --- /dev/null +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="scattermapbox.marker.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticklabelposition.py index 773f974fe9..e868f4b50c 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticklen.py index db15290fd8..5710aa45ad 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticklen.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickmode.py index 86aa9d85b6..35cd857d02 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickmode.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickprefix.py index afd90f02f4..2a06e1f12e 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickprefix.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticks.py index 648b45f1c7..6758294295 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticksuffix.py index 387737e9d6..f10a7f2ec1 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticksuffix.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticktext.py index 3eeb6b4a65..a7a26ef265 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticktext.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticktextsrc.py index 7b007f2b6d..c568a71cd4 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ticktextsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickvals.py index feb7bbf741..0a368e2b83 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickvals.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickvalssrc.py index 7c6de27128..f1a4c301bc 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickvalssrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickwidth.py index ae3d1b67f3..d5a6f84e74 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_tickwidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_x.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_x.py index a0661835b3..031cf6e090 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_x.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_xanchor.py index 1d57ccc663..ee9a89337e 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_xanchor.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_xpad.py index 7978cb66e5..2bc00ca557 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_xpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_y.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_y.py index aac2e2a0b0..42048ce291 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_y.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_yanchor.py index 1c9b5bf35a..3eb7fc7785 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_yanchor.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ypad.py index 0afeade567..d6e96cf2d1 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/_ypad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickfont/_color.py index d52937d759..514e92260c 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickfont/_family.py index f556195a0b..62dd1e50e6 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickfont/_size.py index 9654e6e112..5ebee72324 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickformatstop/_dtickrange.py index ed648da01a..20fb3d0576 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickformatstop/_enabled.py index c640a7c6a4..335641066b 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickformatstop/_name.py index bc1b3e954c..8fd6d09956 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickformatstop/_templateitemname.py index 18d70120bc..01c8ae4b21 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickformatstop/_value.py index 4860d09f03..a7fdbebab3 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/title/_side.py index 36dad67542..1f3018afb0 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/title/_side.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/title/_text.py index a9f6e8552d..df3b7b4d56 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/title/_text.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/title/font/_color.py index 8519aab2f3..1d5c31211b 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/title/font/_family.py index 84f02ab878..9638f03dda 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/title/font/_size.py index 0db45f5a1f..3bc7d16f39 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/marker/colorbar/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/selected/marker/_color.py b/packages/python/plotly/plotly/validators/scattermapbox/selected/marker/_color.py index 45e6970ae0..06fd2fec77 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/selected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/selected/marker/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/selected/marker/_opacity.py b/packages/python/plotly/plotly/validators/scattermapbox/selected/marker/_opacity.py index 730513ab3c..dd0c79e079 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/selected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/selected/marker/_opacity.py @@ -14,6 +14,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/selected/marker/_size.py b/packages/python/plotly/plotly/validators/scattermapbox/selected/marker/_size.py index 72d01357d2..dbcb8084c1 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/selected/marker/_size.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/selected/marker/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/scattermapbox/stream/_maxpoints.py index 88ca9cf993..f37bdc1db5 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/stream/_token.py b/packages/python/plotly/plotly/validators/scattermapbox/stream/_token.py index a6a093fcb0..fa69a0fb5c 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/stream/_token.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/stream/_token.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/textfont/_color.py b/packages/python/plotly/plotly/validators/scattermapbox/textfont/_color.py index 6355550983..96e1263c07 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/textfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/textfont/_family.py b/packages/python/plotly/plotly/validators/scattermapbox/textfont/_family.py index 919f0abc3e..989ec05826 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/textfont/_family.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/textfont/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/textfont/_size.py b/packages/python/plotly/plotly/validators/scattermapbox/textfont/_size.py index 6bdab470de..531962fd4c 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/textfont/_size.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/textfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/unselected/marker/_color.py b/packages/python/plotly/plotly/validators/scattermapbox/unselected/marker/_color.py index 498ee53a6b..b834fff201 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/unselected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/unselected/marker/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/unselected/marker/_opacity.py b/packages/python/plotly/plotly/validators/scattermapbox/unselected/marker/_opacity.py index 82c11f9df1..8b99ad9c92 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/unselected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/unselected/marker/_opacity.py @@ -14,6 +14,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scattermapbox/unselected/marker/_size.py b/packages/python/plotly/plotly/validators/scattermapbox/unselected/marker/_size.py index 66c5948553..1701313754 100644 --- a/packages/python/plotly/plotly/validators/scattermapbox/unselected/marker/_size.py +++ b/packages/python/plotly/plotly/validators/scattermapbox/unselected/marker/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_cliponaxis.py b/packages/python/plotly/plotly/validators/scatterpolar/_cliponaxis.py index 1728b02735..a3b6f4de9b 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_cliponaxis.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_cliponaxis.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="cliponaxis", parent_name="scatterpolar", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_connectgaps.py b/packages/python/plotly/plotly/validators/scatterpolar/_connectgaps.py index 60e146cf7b..4624ceab7a 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_connectgaps.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_connectgaps.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="connectgaps", parent_name="scatterpolar", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_customdata.py b/packages/python/plotly/plotly/validators/scatterpolar/_customdata.py index 9f990c47cf..317aa4445d 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_customdata.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="scatterpolar", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_customdatasrc.py b/packages/python/plotly/plotly/validators/scatterpolar/_customdatasrc.py index fe16b2f48b..9673bb0d06 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_customdatasrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_dr.py b/packages/python/plotly/plotly/validators/scatterpolar/_dr.py index 5462f47ed3..ae089aaa81 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_dr.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_dr.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="dr", parent_name="scatterpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_dtheta.py b/packages/python/plotly/plotly/validators/scatterpolar/_dtheta.py index 21888d4f94..a0052e8fa6 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_dtheta.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_dtheta.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="dtheta", parent_name="scatterpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_fill.py b/packages/python/plotly/plotly/validators/scatterpolar/_fill.py index e435f40f56..2ba3af58d1 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_fill.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_fill.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="fill", parent_name="scatterpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "toself", "tonext"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_fillcolor.py b/packages/python/plotly/plotly/validators/scatterpolar/_fillcolor.py index ec9295fb1e..10067d901a 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_fillcolor.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_fillcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="fillcolor", parent_name="scatterpolar", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_hoverinfo.py b/packages/python/plotly/plotly/validators/scatterpolar/_hoverinfo.py index 442acf2e18..06cfa086dd 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="scatterpolar", **kwargs edit_type=kwargs.pop("edit_type", "none"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["r", "theta", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/scatterpolar/_hoverinfosrc.py index 5cc54c9768..909d4b19d2 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_hoverinfosrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_hoveron.py b/packages/python/plotly/plotly/validators/scatterpolar/_hoveron.py index 20e38ce123..6df8c0d379 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_hoveron.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_hoveron.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hoveron", parent_name="scatterpolar", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), flags=kwargs.pop("flags", ["points", "fills"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_hovertemplate.py b/packages/python/plotly/plotly/validators/scatterpolar/_hovertemplate.py index 7f6abe476d..11a1308dee 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_hovertemplate.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/scatterpolar/_hovertemplatesrc.py index 4f19d10c03..27a0e7737b 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_hovertemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_hovertext.py b/packages/python/plotly/plotly/validators/scatterpolar/_hovertext.py index d2e751094f..1f47bd2c03 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_hovertext.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="scatterpolar", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_hovertextsrc.py b/packages/python/plotly/plotly/validators/scatterpolar/_hovertextsrc.py index 8b98eb65d6..4d0beed122 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_hovertextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_ids.py b/packages/python/plotly/plotly/validators/scatterpolar/_ids.py index 8d77863117..a67b6d56f0 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_ids.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="scatterpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_idssrc.py b/packages/python/plotly/plotly/validators/scatterpolar/_idssrc.py index 79303ef995..fbcf4464cc 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_idssrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="scatterpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_legendgroup.py b/packages/python/plotly/plotly/validators/scatterpolar/_legendgroup.py index 739b80447d..177ed7407e 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="scatterpolar", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_meta.py b/packages/python/plotly/plotly/validators/scatterpolar/_meta.py index 9ed4e6706b..78b4b1be82 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_meta.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="scatterpolar", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_metasrc.py b/packages/python/plotly/plotly/validators/scatterpolar/_metasrc.py index cb89da465d..71bc093dac 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_metasrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="scatterpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_mode.py b/packages/python/plotly/plotly/validators/scatterpolar/_mode.py index 0468d99cff..997344d3ae 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_mode.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_mode.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="mode", parent_name="scatterpolar", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), extras=kwargs.pop("extras", ["none"]), flags=kwargs.pop("flags", ["lines", "markers", "text"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_name.py b/packages/python/plotly/plotly/validators/scatterpolar/_name.py index e2bd52e8f2..2023ec96a6 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_name.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="scatterpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_opacity.py b/packages/python/plotly/plotly/validators/scatterpolar/_opacity.py index 510434243c..3b430574b4 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_opacity.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="scatterpolar", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_r.py b/packages/python/plotly/plotly/validators/scatterpolar/_r.py index f0a46d0d29..164fd03b47 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_r.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_r.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="r", parent_name="scatterpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_r0.py b/packages/python/plotly/plotly/validators/scatterpolar/_r0.py index 539c96932b..cc9f743e10 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_r0.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_r0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="r0", parent_name="scatterpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_rsrc.py b/packages/python/plotly/plotly/validators/scatterpolar/_rsrc.py index aa7f5fba5e..1a158612e4 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_rsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_rsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="rsrc", parent_name="scatterpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_selectedpoints.py b/packages/python/plotly/plotly/validators/scatterpolar/_selectedpoints.py index 675431b977..cac99e7eb2 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_selectedpoints.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_selectedpoints.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_showlegend.py b/packages/python/plotly/plotly/validators/scatterpolar/_showlegend.py index 919909732e..f96cdac5f9 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_showlegend.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="scatterpolar", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_subplot.py b/packages/python/plotly/plotly/validators/scatterpolar/_subplot.py index 6b852fc334..a610653385 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_subplot.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_subplot.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="subplot", parent_name="scatterpolar", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "polar"), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_text.py b/packages/python/plotly/plotly/validators/scatterpolar/_text.py index 8724f80253..d350dd8981 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_text.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="scatterpolar", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_textposition.py b/packages/python/plotly/plotly/validators/scatterpolar/_textposition.py index 1cefdfb523..7f4bfaacaf 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_textposition.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_textposition.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_textpositionsrc.py b/packages/python/plotly/plotly/validators/scatterpolar/_textpositionsrc.py index 9e8a73e7d2..099fad8f75 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_textpositionsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_textpositionsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_textsrc.py b/packages/python/plotly/plotly/validators/scatterpolar/_textsrc.py index b6723e2eaf..6922f0ebbd 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_textsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="scatterpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_texttemplate.py b/packages/python/plotly/plotly/validators/scatterpolar/_texttemplate.py index 065c71da94..43a5016b84 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_texttemplate.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_texttemplate.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_texttemplatesrc.py b/packages/python/plotly/plotly/validators/scatterpolar/_texttemplatesrc.py index 682d8d769d..6a7d2abf0c 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_texttemplatesrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_texttemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_theta.py b/packages/python/plotly/plotly/validators/scatterpolar/_theta.py index 717c0989ea..b25b7b9ee0 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_theta.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_theta.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="theta", parent_name="scatterpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_theta0.py b/packages/python/plotly/plotly/validators/scatterpolar/_theta0.py index 4f754a793e..fcf0b33263 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_theta0.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_theta0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="theta0", parent_name="scatterpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_thetasrc.py b/packages/python/plotly/plotly/validators/scatterpolar/_thetasrc.py index 46d50809fb..396350a74e 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_thetasrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_thetasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="thetasrc", parent_name="scatterpolar", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_thetaunit.py b/packages/python/plotly/plotly/validators/scatterpolar/_thetaunit.py index dbb60c5277..e09ed1ef3a 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_thetaunit.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_thetaunit.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="thetaunit", parent_name="scatterpolar", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["radians", "degrees", "gradians"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_uid.py b/packages/python/plotly/plotly/validators/scatterpolar/_uid.py index 100a7a0fed..c839404401 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_uid.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="scatterpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_uirevision.py b/packages/python/plotly/plotly/validators/scatterpolar/_uirevision.py index 4f9c15a319..2464cf400a 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_uirevision.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="scatterpolar", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/_visible.py b/packages/python/plotly/plotly/validators/scatterpolar/_visible.py index 29e947291b..99ecbe7216 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/_visible.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="scatterpolar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_align.py index ef8f5e253d..dbdfdd28f5 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_align.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_alignsrc.py index 31522c9221..49e184f2bc 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_bgcolor.py index 3825f66169..acc47c9837 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_bgcolorsrc.py index 5b1781dfc8..de9f09650f 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_bordercolor.py index 3764db3e0f..c8bdc4ef1a 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_bordercolorsrc.py index 83893c4fe4..5e0ab2552a 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_bordercolorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_namelength.py index f2f71f8493..cbd9af7c2d 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_namelengthsrc.py index 3aa15d7a1a..cefb72ff74 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/_namelengthsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/font/_color.py index e86b1b742a..a9b19c0f25 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/font/_colorsrc.py index dd4089393d..b332c1281c 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/font/_colorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/font/_family.py index 15f8e1436e..8c0dc36dd4 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/font/_familysrc.py index c12993c977..06943d3bee 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/font/_familysrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/font/_size.py index 7773c4c8af..ebb7cbd6f9 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/font/_sizesrc.py index 1f0e5df3fb..9282647c43 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/hoverlabel/font/_sizesrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/line/_color.py b/packages/python/plotly/plotly/validators/scatterpolar/line/_color.py index ed7efff984..68e9f4cff6 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/line/_color.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/line/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="scatterpolar.line", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/line/_dash.py b/packages/python/plotly/plotly/validators/scatterpolar/line/_dash.py index 9d02e911b5..52853f26d2 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/line/_dash.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/line/_dash.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="dash", parent_name="scatterpolar.line", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", ["solid", "dot", "dash", "longdash", "dashdot", "longdashdot"] ), diff --git a/packages/python/plotly/plotly/validators/scatterpolar/line/_shape.py b/packages/python/plotly/plotly/validators/scatterpolar/line/_shape.py index bd7e8b4144..be3cc5f2b6 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/line/_shape.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/line/_shape.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="shape", parent_name="scatterpolar.line", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["linear", "spline"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/line/_smoothing.py b/packages/python/plotly/plotly/validators/scatterpolar/line/_smoothing.py index defb2e8cf3..e223ea1735 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/line/_smoothing.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/line/_smoothing.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 1.3), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/line/_width.py b/packages/python/plotly/plotly/validators/scatterpolar/line/_width.py index 5df3ccdfd9..0f210885b0 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/line/_width.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/line/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="scatterpolar.line", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/_autocolorscale.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/_autocolorscale.py index 6d250d2f25..c3d6c1e9ec 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/_cauto.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/_cauto.py index beeec63c24..e40119f9cd 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/_cauto.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/_cauto.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/_cmax.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/_cmax.py index 7eb47d55d7..4acec88ffc 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/_cmax.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="scatterpolar.marker", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/_cmid.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/_cmid.py index 2b7f71c92d..9ff1e19d3c 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/_cmid.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="scatterpolar.marker", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/_cmin.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/_cmin.py index f458fde4ed..23d83ca05e 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/_cmin.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="scatterpolar.marker", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/_color.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/_color.py index be6b60614d..c7e3649e9f 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/_color.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/_color.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop( "colorscale_path", "scatterpolar.marker.colorscale" ), diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/_coloraxis.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/_coloraxis.py index e226abcc95..16b945e6ef 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/_coloraxis.py @@ -11,6 +11,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/_colorbar.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/_colorbar.py index 22101c2f50..e46a00c6dc 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/_colorbar.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/_colorbar.py @@ -150,6 +150,12 @@ def __init__( faults), sets the default property values to use for elements of scatterpolar.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/_colorscale.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/_colorscale.py index 3861bfa019..32d8bb4902 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/_colorscale.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/_colorsrc.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/_colorsrc.py index 00d52ab7ba..076f1b0507 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/_maxdisplayed.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/_maxdisplayed.py index ef6b48b31e..635f8688e1 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/_maxdisplayed.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/_maxdisplayed.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/_opacity.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/_opacity.py index 6f6d008eb4..66f004c51e 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/_opacity.py @@ -12,6 +12,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/_opacitysrc.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/_opacitysrc.py index eae999bf43..7aa9ffe195 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/_opacitysrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/_opacitysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/_reversescale.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/_reversescale.py index 37d0ac4a4c..4e6c4c7432 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/_reversescale.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/_showscale.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/_showscale.py index a1a2d28f7e..24ea51a991 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/_showscale.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/_showscale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/_size.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/_size.py index 1b85d8c2ed..997731aa02 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/_size.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="scatterpolar.marker", **kwar array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/_sizemin.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/_sizemin.py index 18cd87718f..592f946604 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/_sizemin.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/_sizemin.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/_sizemode.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/_sizemode.py index c438f7ef2a..811c567dba 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/_sizemode.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/_sizemode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["diameter", "area"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/_sizeref.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/_sizeref.py index 3ae69d8469..76006ef2ec 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/_sizeref.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/_sizeref.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/_sizesrc.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/_sizesrc.py index c5571b052b..aa08e7dd06 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/_symbol.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/_symbol.py index be89d596f4..d44cf63781 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/_symbol.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/_symbol.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/_symbolsrc.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/_symbolsrc.py index d798d8e0aa..154d0ba7bd 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/_symbolsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/_symbolsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/__init__.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_bgcolor.py index 0aa67603ff..c5a6905a0d 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_bgcolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_bordercolor.py index 8fb50f8c08..b6610c3e9d 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_bordercolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_borderwidth.py index 22538a03ce..7d6b2d88f0 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_borderwidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_dtick.py index b3bc422409..6e5a1ce123 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_exponentformat.py index e63db4da98..0d162ee954 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_exponentformat.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_len.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_len.py index 3866eb60ab..e8949c0736 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_len.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_lenmode.py index a66754dded..834bf67947 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_lenmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_minexponent.py index 40845048ee..019001578d 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_minexponent.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_nticks.py index a355ba72cc..574f36faec 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_outlinecolor.py index a59ffa1753..265954ed1d 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_outlinecolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_outlinewidth.py index e9fcfbe84b..9754b012d1 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_outlinewidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_separatethousands.py index cf5659c780..0e9e8a419f 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_showexponent.py index eafb95f6e9..5202ea32ce 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_showexponent.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_showticklabels.py index bc42879696..9c3512bec2 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_showticklabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_showtickprefix.py index 79f183916c..cc8398f10a 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_showtickprefix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_showticksuffix.py index 64f73dec67..0d478fb3ae 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_showticksuffix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_thickness.py index edebabfb36..349f8192ef 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_thickness.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_thicknessmode.py index 8e2f391d64..1035f378e9 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_thicknessmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tick0.py index ed8ea91af4..f39822ff29 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickangle.py index 875b6d6897..1d59f0a606 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickangle.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickcolor.py index 39b8815b88..6988382e39 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickcolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickformat.py index ff850163a5..36cfaaed7a 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickformat.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..f2f80528c5 --- /dev/null +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="scatterpolar.marker.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "colorbars"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticklabelposition.py index 3e8531959d..3061d1efa2 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticklen.py index 4f475ce938..bb8f842605 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticklen.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickmode.py index 6b18e10c8b..1e96145c5b 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickmode.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickprefix.py index cdc4028eb4..5c486f2c04 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickprefix.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticks.py index a9733c8fb4..5ffb8b3902 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticksuffix.py index 53069980d5..6af37b5d0a 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticksuffix.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticktext.py index 9b1f944233..aa3d8d8fcc 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticktext.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticktextsrc.py index 9be893c883..c6277ecd4b 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ticktextsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickvals.py index 78afa97891..fa7c4cfe65 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickvals.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickvalssrc.py index 7a38b9480f..cb4b4b6c63 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickvalssrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickwidth.py index 5fbe4a126b..6497e2d1a8 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_tickwidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_x.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_x.py index d007579751..1afa828996 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_x.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_xanchor.py index 4cb1838d03..107632946f 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_xanchor.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_xpad.py index eaf4c6c17c..176173fee7 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_xpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_y.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_y.py index 7b4e1f16f6..6b08f38a8a 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_y.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_yanchor.py index 266cb86fb5..72d4bbfd40 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_yanchor.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ypad.py index 3ec4d14fa0..abb78572fa 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/_ypad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickfont/_color.py index 57ff15d3c1..308c37a41a 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickfont/_family.py index 35e3e5bf7a..2867043020 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickfont/_size.py index 4b5c45ecb7..ce844b2739 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickformatstop/_dtickrange.py index f79a82ea0b..03628b4e96 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "colorbars"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickformatstop/_enabled.py index f534ec7ccd..52e0941db4 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickformatstop/_name.py index f548989cca..067ae04138 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickformatstop/_templateitemname.py index d4b1b2f583..b8f0bf246c 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickformatstop/_value.py index e39151e994..f7104e5f53 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/title/_side.py index 56775c98bc..6f07bb8dc9 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/title/_side.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/title/_text.py index a8cc24b85d..45d3dedb5e 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/title/_text.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/title/font/_color.py index 5511fb7158..ef1fb465bd 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/title/font/_family.py index 68230b8123..9cfec22cfe 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/title/font/_size.py index 234aa1efb8..c15e79d3ad 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/colorbar/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/gradient/_color.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/gradient/_color.py index fe280951cd..e08441e7d0 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/gradient/_color.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/gradient/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/gradient/_colorsrc.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/gradient/_colorsrc.py index 85716551dc..caf1902e96 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/gradient/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/gradient/_colorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/gradient/_type.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/gradient/_type.py index fe3bc500a7..a6409d6312 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/gradient/_type.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/gradient/_type.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["radial", "horizontal", "vertical", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/gradient/_typesrc.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/gradient/_typesrc.py index 70612445b9..0da60a3770 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/gradient/_typesrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/gradient/_typesrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_autocolorscale.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_autocolorscale.py index ca7016341b..f6e80db7d2 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_autocolorscale.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_cauto.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_cauto.py index a31654e299..4a549dfb52 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_cauto.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_cauto.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_cmax.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_cmax.py index 0566e9d5c4..e70872d1b6 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_cmax.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_cmax.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_cmid.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_cmid.py index cfcb66fcab..342fe1a2a0 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_cmid.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_cmid.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_cmin.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_cmin.py index 5e3b2af0b1..6d9bff4440 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_cmin.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_cmin.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_color.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_color.py index c7dbfefaae..1a01d8bd77 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_color.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_color.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop( "colorscale_path", "scatterpolar.marker.line.colorscale" ), diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_coloraxis.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_coloraxis.py index 124f56dd89..7c8794adcb 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_coloraxis.py @@ -11,6 +11,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_colorscale.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_colorscale.py index b72d044501..c7e4aed1d0 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_colorscale.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_colorsrc.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_colorsrc.py index bc5dd63580..89a54e510b 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_reversescale.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_reversescale.py index c104f1fa8f..1831cba384 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_reversescale.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_reversescale.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_width.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_width.py index dc72b40005..f8e8811739 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_width.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_width.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_widthsrc.py b/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_widthsrc.py index 44512562a6..2c1cfc38cb 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_widthsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/marker/line/_widthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/selected/marker/_color.py b/packages/python/plotly/plotly/validators/scatterpolar/selected/marker/_color.py index 8403977665..9df8c46a83 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/selected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/selected/marker/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/selected/marker/_opacity.py b/packages/python/plotly/plotly/validators/scatterpolar/selected/marker/_opacity.py index 2d77c8e6b7..b338c180eb 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/selected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/selected/marker/_opacity.py @@ -14,6 +14,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/selected/marker/_size.py b/packages/python/plotly/plotly/validators/scatterpolar/selected/marker/_size.py index 50378685a8..ffb2f31dd6 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/selected/marker/_size.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/selected/marker/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/selected/textfont/_color.py b/packages/python/plotly/plotly/validators/scatterpolar/selected/textfont/_color.py index e26019cfcc..18e199a5c7 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/selected/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/selected/textfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/scatterpolar/stream/_maxpoints.py index f8044c456b..f02ad6ca35 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/stream/_token.py b/packages/python/plotly/plotly/validators/scatterpolar/stream/_token.py index 8ffefc8f77..16bffc1981 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/stream/_token.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/stream/_token.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/textfont/_color.py b/packages/python/plotly/plotly/validators/scatterpolar/textfont/_color.py index 14a03f1b53..e30ac263c5 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/textfont/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/textfont/_colorsrc.py b/packages/python/plotly/plotly/validators/scatterpolar/textfont/_colorsrc.py index b68a7d95e4..cf158bf6ed 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/textfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/textfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/textfont/_family.py b/packages/python/plotly/plotly/validators/scatterpolar/textfont/_family.py index b52617eceb..657203dd8f 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/textfont/_family.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/textfont/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/textfont/_familysrc.py b/packages/python/plotly/plotly/validators/scatterpolar/textfont/_familysrc.py index c4703c698a..665fcfc849 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/textfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/textfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/textfont/_size.py b/packages/python/plotly/plotly/validators/scatterpolar/textfont/_size.py index bf747e16dd..61eaec7aa1 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/textfont/_size.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/textfont/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/textfont/_sizesrc.py b/packages/python/plotly/plotly/validators/scatterpolar/textfont/_sizesrc.py index 2f7e2e16ad..ef523acddc 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/textfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/textfont/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/unselected/marker/_color.py b/packages/python/plotly/plotly/validators/scatterpolar/unselected/marker/_color.py index 3ba8ba9faa..7cddbf22dc 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/unselected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/unselected/marker/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/unselected/marker/_opacity.py b/packages/python/plotly/plotly/validators/scatterpolar/unselected/marker/_opacity.py index f152c2ea41..40270e914a 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/unselected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/unselected/marker/_opacity.py @@ -14,6 +14,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/unselected/marker/_size.py b/packages/python/plotly/plotly/validators/scatterpolar/unselected/marker/_size.py index fc06a45ec1..5a0593aaaf 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/unselected/marker/_size.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/unselected/marker/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolar/unselected/textfont/_color.py b/packages/python/plotly/plotly/validators/scatterpolar/unselected/textfont/_color.py index 76fd1f0a99..8cc05a9fef 100644 --- a/packages/python/plotly/plotly/validators/scatterpolar/unselected/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/scatterpolar/unselected/textfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_connectgaps.py b/packages/python/plotly/plotly/validators/scatterpolargl/_connectgaps.py index 3a2d4ea50a..ceae3ba05f 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_connectgaps.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_connectgaps.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_customdata.py b/packages/python/plotly/plotly/validators/scatterpolargl/_customdata.py index eb186a60a6..8af86d3d08 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_customdata.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_customdata.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_customdatasrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/_customdatasrc.py index d4d96ba2d1..98d5c1de49 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_customdatasrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_dr.py b/packages/python/plotly/plotly/validators/scatterpolargl/_dr.py index 104ab57787..4f86ff7238 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_dr.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_dr.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="dr", parent_name="scatterpolargl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_dtheta.py b/packages/python/plotly/plotly/validators/scatterpolargl/_dtheta.py index f7b5c5db08..5c9e0ebcfc 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_dtheta.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_dtheta.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="dtheta", parent_name="scatterpolargl", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_fill.py b/packages/python/plotly/plotly/validators/scatterpolargl/_fill.py index 0d020cebfc..ce6eeb9692 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_fill.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_fill.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="fill", parent_name="scatterpolargl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_fillcolor.py b/packages/python/plotly/plotly/validators/scatterpolargl/_fillcolor.py index b7224a327a..e0c1885e77 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_fillcolor.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_fillcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="fillcolor", parent_name="scatterpolargl", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_hoverinfo.py b/packages/python/plotly/plotly/validators/scatterpolargl/_hoverinfo.py index bb4dbdee53..8531db164d 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="scatterpolargl", **kwar edit_type=kwargs.pop("edit_type", "none"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["r", "theta", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/_hoverinfosrc.py index da481160a0..12019ea8aa 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_hoverinfosrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_hovertemplate.py b/packages/python/plotly/plotly/validators/scatterpolargl/_hovertemplate.py index 7617843149..d29f339408 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_hovertemplate.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/_hovertemplatesrc.py index 65e06985c3..afbab90f22 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_hovertemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_hovertext.py b/packages/python/plotly/plotly/validators/scatterpolargl/_hovertext.py index 339f216fdf..a4c0067fc2 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_hovertext.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="scatterpolargl", **kwar parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_hovertextsrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/_hovertextsrc.py index a6fa2d028e..4ebf8bd904 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_hovertextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_ids.py b/packages/python/plotly/plotly/validators/scatterpolargl/_ids.py index 2c742a2976..1d1240c180 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_ids.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="scatterpolargl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_idssrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/_idssrc.py index bfce918c22..8e543dd524 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_idssrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="scatterpolargl", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_legendgroup.py b/packages/python/plotly/plotly/validators/scatterpolargl/_legendgroup.py index c22eab40cd..9038243b28 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_legendgroup.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_meta.py b/packages/python/plotly/plotly/validators/scatterpolargl/_meta.py index 372b640e40..7c856fe0a2 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_meta.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="scatterpolargl", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_metasrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/_metasrc.py index d39fb44549..8b32e7d2dc 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_metasrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="scatterpolargl", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_mode.py b/packages/python/plotly/plotly/validators/scatterpolargl/_mode.py index 066c57c849..806b9e6d01 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_mode.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_mode.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="mode", parent_name="scatterpolargl", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), extras=kwargs.pop("extras", ["none"]), flags=kwargs.pop("flags", ["lines", "markers", "text"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_name.py b/packages/python/plotly/plotly/validators/scatterpolargl/_name.py index 6805e923ad..ac9e4b6d58 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_name.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="scatterpolargl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_opacity.py b/packages/python/plotly/plotly/validators/scatterpolargl/_opacity.py index 635a017713..67f8bdc9da 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_opacity.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="scatterpolargl", **kwargs edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_r.py b/packages/python/plotly/plotly/validators/scatterpolargl/_r.py index 0444498f3d..caf3fc849d 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_r.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_r.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="r", parent_name="scatterpolargl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_r0.py b/packages/python/plotly/plotly/validators/scatterpolargl/_r0.py index 054d8ee47d..0a1a756c14 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_r0.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_r0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="r0", parent_name="scatterpolargl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_rsrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/_rsrc.py index 4bf9c0f898..30f61b2d33 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_rsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_rsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="rsrc", parent_name="scatterpolargl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_selectedpoints.py b/packages/python/plotly/plotly/validators/scatterpolargl/_selectedpoints.py index f2a3559f8b..4a9fb96131 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_selectedpoints.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_selectedpoints.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_showlegend.py b/packages/python/plotly/plotly/validators/scatterpolargl/_showlegend.py index 50c7d714f1..85ba5bb20a 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_showlegend.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_showlegend.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_subplot.py b/packages/python/plotly/plotly/validators/scatterpolargl/_subplot.py index 6bf5dd1744..f3df5e50dc 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_subplot.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_subplot.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="subplot", parent_name="scatterpolargl", **kwargs parent_name=parent_name, dflt=kwargs.pop("dflt", "polar"), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_text.py b/packages/python/plotly/plotly/validators/scatterpolargl/_text.py index c4921d9ffc..a3a1f8ee31 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_text.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="scatterpolargl", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_textposition.py b/packages/python/plotly/plotly/validators/scatterpolargl/_textposition.py index 1a87bf1fec..0b1517b01c 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_textposition.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_textposition.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_textpositionsrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/_textpositionsrc.py index 7ade7702f8..0ea82a8367 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_textpositionsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_textpositionsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_textsrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/_textsrc.py index 383f9c0361..e34f694507 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_textsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="scatterpolargl", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_texttemplate.py b/packages/python/plotly/plotly/validators/scatterpolargl/_texttemplate.py index 05b56c3ba6..e2fed9d557 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_texttemplate.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_texttemplate.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_texttemplatesrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/_texttemplatesrc.py index 69004e0870..5dc9046ed5 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_texttemplatesrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_texttemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_theta.py b/packages/python/plotly/plotly/validators/scatterpolargl/_theta.py index e93c316ebb..f15328129a 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_theta.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_theta.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="theta", parent_name="scatterpolargl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_theta0.py b/packages/python/plotly/plotly/validators/scatterpolargl/_theta0.py index 3c700339e7..1a94f921d4 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_theta0.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_theta0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="theta0", parent_name="scatterpolargl", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_thetasrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/_thetasrc.py index aa10182f1d..9d1070ddef 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_thetasrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_thetasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="thetasrc", parent_name="scatterpolargl", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_thetaunit.py b/packages/python/plotly/plotly/validators/scatterpolargl/_thetaunit.py index 64b363e79f..317d0160ca 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_thetaunit.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_thetaunit.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="thetaunit", parent_name="scatterpolargl", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["radians", "degrees", "gradians"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_uid.py b/packages/python/plotly/plotly/validators/scatterpolargl/_uid.py index 198c26e7ce..964d5f0735 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_uid.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="scatterpolargl", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_uirevision.py b/packages/python/plotly/plotly/validators/scatterpolargl/_uirevision.py index c2e6a03d22..96657f7f77 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_uirevision.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_uirevision.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/_visible.py b/packages/python/plotly/plotly/validators/scatterpolargl/_visible.py index 4bd9ab93a4..a378df5db3 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/_visible.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="scatterpolargl", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_align.py index 6bff2ccf19..f9570c9c33 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_align.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_alignsrc.py index ba4384d040..c6ab28c280 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_bgcolor.py index 58e6219b17..c7f719e82c 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_bgcolorsrc.py index 958f18195e..6f4d531e4b 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_bgcolorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_bordercolor.py index 33f585af34..de3618218b 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_bordercolor.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_bordercolorsrc.py index 747c4a2721..498b96bd87 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_bordercolorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_namelength.py index f8395547fa..d99d4c73ac 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_namelength.py @@ -14,6 +14,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_namelengthsrc.py index 1dbe9ce4df..04ee1a6aa2 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/_namelengthsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/font/_color.py index 2e6047d789..ed0c5caffe 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/font/_color.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/font/_colorsrc.py index d5bd7d3da9..9e44053b09 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/font/_colorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/font/_family.py index 3fbbeaa013..61fcff9cc3 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/font/_family.py @@ -14,7 +14,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/font/_familysrc.py index 1fa56ff145..64de40ec95 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/font/_familysrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/font/_size.py index a05e0ce3d3..5f5d47aa0c 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/font/_sizesrc.py index 9e6798ac15..e065fb16aa 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/hoverlabel/font/_sizesrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/line/_color.py b/packages/python/plotly/plotly/validators/scatterpolargl/line/_color.py index 2e8273392e..290d0fa16f 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/line/_color.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/line/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/line/_dash.py b/packages/python/plotly/plotly/validators/scatterpolargl/line/_dash.py index fa179cf2c5..9be708dc4b 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/line/_dash.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/line/_dash.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="dash", parent_name="scatterpolargl.line", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", ["solid", "dot", "dash", "longdash", "dashdot", "longdashdot"] ), diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/line/_shape.py b/packages/python/plotly/plotly/validators/scatterpolargl/line/_shape.py index 34f453dd4c..4d4bb3ffe3 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/line/_shape.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/line/_shape.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["linear", "hv", "vh", "hvh", "vhv"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/line/_width.py b/packages/python/plotly/plotly/validators/scatterpolargl/line/_width.py index 4622784537..2c27217bf7 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/line/_width.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/line/_width.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_autocolorscale.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_autocolorscale.py index 44d85b1a8b..141f275434 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_autocolorscale.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_cauto.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_cauto.py index beb4329ce3..6aa521641a 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_cauto.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_cauto.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_cmax.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_cmax.py index 6f19f27419..4c02ba8b47 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_cmax.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_cmax.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_cmid.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_cmid.py index d7866b4955..48a83ddbc1 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_cmid.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_cmid.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_cmin.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_cmin.py index d563757261..6ccc3cd7e6 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_cmin.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_cmin.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_color.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_color.py index 4181c017d8..549088dc94 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_color.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_color.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop( "colorscale_path", "scatterpolargl.marker.colorscale" ), diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_coloraxis.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_coloraxis.py index 51e73c868b..16c565d998 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_coloraxis.py @@ -11,6 +11,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_colorbar.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_colorbar.py index 3aa7634bda..ce8f839f31 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_colorbar.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_colorbar.py @@ -150,6 +150,12 @@ def __init__( defaults), sets the default property values to use for elements of scatterpolargl.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_colorscale.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_colorscale.py index 12718e1724..8061adbf83 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_colorscale.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_colorsrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_colorsrc.py index c47cb6940e..e12d528e36 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_opacity.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_opacity.py index b051940518..45b1ffd0b9 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_opacity.py @@ -12,6 +12,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_opacitysrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_opacitysrc.py index f0c7739336..d12b054e0c 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_opacitysrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_opacitysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_reversescale.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_reversescale.py index f891637d3d..1b2a7c0def 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_reversescale.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_showscale.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_showscale.py index 2140eacbc1..c928762fc3 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_showscale.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_showscale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_size.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_size.py index 57e852ff37..e94c9e2a50 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_size.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_sizemin.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_sizemin.py index 83858f931c..6feef01561 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_sizemin.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_sizemin.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_sizemode.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_sizemode.py index 6336139694..25115fbd8f 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_sizemode.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_sizemode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["diameter", "area"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_sizeref.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_sizeref.py index 8e084b04ab..bb6fa553d2 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_sizeref.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_sizeref.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_sizesrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_sizesrc.py index df609ad89d..3aa1f532e1 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_symbol.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_symbol.py index 8d7227f1d1..bb90f7c02e 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_symbol.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_symbol.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_symbolsrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_symbolsrc.py index 03021ed937..faba496439 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/_symbolsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/_symbolsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/__init__.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_bgcolor.py index 13e9f46ffc..e38e660ab2 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_bgcolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_bordercolor.py index 93fe2c44f5..d00d340584 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_bordercolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_borderwidth.py index 876509ef89..01b967198f 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_borderwidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_dtick.py index 8141e4b2a7..33ecd95512 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_dtick.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_exponentformat.py index b610949945..32af37d451 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_exponentformat.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_len.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_len.py index 03d8d7de2b..d001a44128 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_len.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_lenmode.py index 4cec85a062..18935b3760 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_lenmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_minexponent.py index 8a0a648dfc..49acd4d967 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_minexponent.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_nticks.py index b90ba42461..4671981e4d 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_nticks.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_outlinecolor.py index fd21693cff..b3d06555c7 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_outlinecolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_outlinewidth.py index 159d7f41cb..5fcb80f44f 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_outlinewidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_separatethousands.py index 09f7a04df3..eae361a193 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_showexponent.py index 5754ca0f40..67a34bfc27 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_showexponent.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_showticklabels.py index b1a8a33dd5..1786ba34c2 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_showticklabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_showtickprefix.py index 11fcc6ab0b..25c8c90e8b 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_showtickprefix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_showticksuffix.py index 30c64856f9..097c1e83ff 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_showticksuffix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_thickness.py index c964d17861..77275bf005 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_thickness.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_thicknessmode.py index ee2573098b..322faa06a3 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_thicknessmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tick0.py index 7f2b41ed46..80c159d947 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tick0.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickangle.py index 912db14bf2..4eae519430 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickangle.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickcolor.py index 1b877b581f..951ccd466e 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickcolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickformat.py index 063376aa90..fb4e23e69d 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickformat.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..7b75a06df8 --- /dev/null +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="scatterpolargl.marker.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticklabelposition.py index 16d8748962..13181accd8 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticklen.py index 0f2018847a..1d2e268cdf 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticklen.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickmode.py index 1206ee2c6b..9b7b05350b 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickmode.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickprefix.py index f0d197c202..bab7177623 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickprefix.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticks.py index 358bfa4049..daee314c3d 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticks.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticksuffix.py index 1d82fa1c02..216b6b505c 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticksuffix.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticktext.py index 41fa09f9f3..e3fe0a619f 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticktext.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticktextsrc.py index b95e038693..5d855943ee 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ticktextsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickvals.py index 9803a9fda3..819ce72b2e 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickvals.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickvalssrc.py index 29564354ed..e8cd3a2e07 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickvalssrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickwidth.py index 0fcd880c96..9d6603341b 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_tickwidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_x.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_x.py index 87d673da88..d292560b68 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_x.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_xanchor.py index a76e963b2d..9a96bd3277 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_xanchor.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_xpad.py index 17ddca86bb..67680101b6 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_xpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_y.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_y.py index c42cf98ca2..6c01d72fc8 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_y.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_yanchor.py index 7b1b5ddd8f..d189cc1be6 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_yanchor.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ypad.py index 35a6161302..6def749eed 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/_ypad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickfont/_color.py index 970680b7fd..8b9dd1b56a 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickfont/_family.py index 3aff2a08ed..e16699b6e1 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickfont/_size.py index a1dca47d6d..862ab365a1 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickformatstop/_dtickrange.py index 689fcd9901..a47253d96e 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickformatstop/_enabled.py index efe346ade2..76064e7494 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickformatstop/_name.py index 4eb0ea9c72..6f2fe55fb4 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickformatstop/_templateitemname.py index 498842b896..fbd77485b0 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickformatstop/_value.py index ede54658b1..edda23ca11 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/title/_side.py index 399b977b5f..b469adf76d 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/title/_side.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/title/_text.py index 626fe74ba3..0332dad7af 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/title/_text.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/title/font/_color.py index b09b999806..e4e0d969ee 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/title/font/_family.py index bacd111ec3..7cf610da1b 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/title/font/_size.py index 06360e0356..bce41a2e73 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/colorbar/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_autocolorscale.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_autocolorscale.py index 2e8f0f6025..2ef3ab03df 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_autocolorscale.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_cauto.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_cauto.py index 7bfaf5ae2f..68d5de305f 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_cauto.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_cauto.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_cmax.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_cmax.py index 0f798c0955..1b3200cf0a 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_cmax.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_cmax.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_cmid.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_cmid.py index 5f6c1e2be1..a3e2c0110e 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_cmid.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_cmid.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_cmin.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_cmin.py index 74dc7ae915..df3736da3a 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_cmin.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_cmin.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_color.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_color.py index 99a1de6d74..d539a8fdce 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_color.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_color.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop( "colorscale_path", "scatterpolargl.marker.line.colorscale" ), diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_coloraxis.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_coloraxis.py index acfa25439c..d06f5d2c40 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_coloraxis.py @@ -14,6 +14,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_colorscale.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_colorscale.py index 26752c3a14..caaff52bef 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_colorscale.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_colorscale.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_colorsrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_colorsrc.py index 12fcb9721a..abc690ee6c 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_reversescale.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_reversescale.py index 18c6f56137..39750fa315 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_reversescale.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_reversescale.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_width.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_width.py index e0b8f8ee48..29987c0a41 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_width.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_width.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_widthsrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_widthsrc.py index 1d44739fea..6e68ae6997 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_widthsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/marker/line/_widthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/selected/marker/_color.py b/packages/python/plotly/plotly/validators/scatterpolargl/selected/marker/_color.py index 931550a709..0f47ea69a2 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/selected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/selected/marker/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/selected/marker/_opacity.py b/packages/python/plotly/plotly/validators/scatterpolargl/selected/marker/_opacity.py index 453b18d9a5..6e0b5c5df5 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/selected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/selected/marker/_opacity.py @@ -14,6 +14,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/selected/marker/_size.py b/packages/python/plotly/plotly/validators/scatterpolargl/selected/marker/_size.py index a76473878d..b59b95ba03 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/selected/marker/_size.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/selected/marker/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/selected/textfont/_color.py b/packages/python/plotly/plotly/validators/scatterpolargl/selected/textfont/_color.py index dc20c42406..19c5cbf395 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/selected/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/selected/textfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/scatterpolargl/stream/_maxpoints.py index dbe407784e..0250789117 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/stream/_token.py b/packages/python/plotly/plotly/validators/scatterpolargl/stream/_token.py index 0177ddf2dc..8060f60fa7 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/stream/_token.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/stream/_token.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/textfont/_color.py b/packages/python/plotly/plotly/validators/scatterpolargl/textfont/_color.py index c907d478ba..812642cf03 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/textfont/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/textfont/_colorsrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/textfont/_colorsrc.py index 0baabb5c64..77035f44ce 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/textfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/textfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/textfont/_family.py b/packages/python/plotly/plotly/validators/scatterpolargl/textfont/_family.py index ec9587f91c..b7a710875c 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/textfont/_family.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/textfont/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/textfont/_familysrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/textfont/_familysrc.py index 9a3bade6c0..c25887e862 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/textfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/textfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/textfont/_size.py b/packages/python/plotly/plotly/validators/scatterpolargl/textfont/_size.py index ada9ea63ad..9b352ea690 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/textfont/_size.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/textfont/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/textfont/_sizesrc.py b/packages/python/plotly/plotly/validators/scatterpolargl/textfont/_sizesrc.py index 25bb0bdf6b..e0416b81f8 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/textfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/textfont/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/unselected/marker/_color.py b/packages/python/plotly/plotly/validators/scatterpolargl/unselected/marker/_color.py index 3ac2925b10..4e072ddc5a 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/unselected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/unselected/marker/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/unselected/marker/_opacity.py b/packages/python/plotly/plotly/validators/scatterpolargl/unselected/marker/_opacity.py index 4d7ca1b1aa..6aab672021 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/unselected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/unselected/marker/_opacity.py @@ -14,6 +14,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/unselected/marker/_size.py b/packages/python/plotly/plotly/validators/scatterpolargl/unselected/marker/_size.py index 867af452dd..641b554d70 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/unselected/marker/_size.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/unselected/marker/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterpolargl/unselected/textfont/_color.py b/packages/python/plotly/plotly/validators/scatterpolargl/unselected/textfont/_color.py index 5f0de35f08..d32566e3b4 100644 --- a/packages/python/plotly/plotly/validators/scatterpolargl/unselected/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/scatterpolargl/unselected/textfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_a.py b/packages/python/plotly/plotly/validators/scatterternary/_a.py index 8408461f3a..0fb8f726a0 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_a.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_a.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="a", parent_name="scatterternary", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_asrc.py b/packages/python/plotly/plotly/validators/scatterternary/_asrc.py index 32366581d4..40cedd582a 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_asrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_asrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="asrc", parent_name="scatterternary", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_b.py b/packages/python/plotly/plotly/validators/scatterternary/_b.py index 74a859e5fc..78915554de 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_b.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_b.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="b", parent_name="scatterternary", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_bsrc.py b/packages/python/plotly/plotly/validators/scatterternary/_bsrc.py index 854997b38b..c1e202c62f 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_bsrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_bsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="bsrc", parent_name="scatterternary", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_c.py b/packages/python/plotly/plotly/validators/scatterternary/_c.py index 2a064fc4a6..93333c4cd1 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_c.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_c.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="c", parent_name="scatterternary", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_cliponaxis.py b/packages/python/plotly/plotly/validators/scatterternary/_cliponaxis.py index 3a3f477d0e..8d8104bd7c 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_cliponaxis.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_cliponaxis.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_connectgaps.py b/packages/python/plotly/plotly/validators/scatterternary/_connectgaps.py index 5e0016c342..243ebebda9 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_connectgaps.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_connectgaps.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_csrc.py b/packages/python/plotly/plotly/validators/scatterternary/_csrc.py index 25a37e50c7..6d337bc26f 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_csrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_csrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="csrc", parent_name="scatterternary", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_customdata.py b/packages/python/plotly/plotly/validators/scatterternary/_customdata.py index d598e3f8cf..32a8efe465 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_customdata.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_customdata.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_customdatasrc.py b/packages/python/plotly/plotly/validators/scatterternary/_customdatasrc.py index 26b0ef364a..9b242bc050 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_customdatasrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_fill.py b/packages/python/plotly/plotly/validators/scatterternary/_fill.py index 3bed07c7c2..83369c460f 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_fill.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_fill.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="fill", parent_name="scatterternary", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "toself", "tonext"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_fillcolor.py b/packages/python/plotly/plotly/validators/scatterternary/_fillcolor.py index f4deab110b..7dc3862f93 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_fillcolor.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_fillcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="fillcolor", parent_name="scatterternary", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_hoverinfo.py b/packages/python/plotly/plotly/validators/scatterternary/_hoverinfo.py index 045140fff0..bc51ee9274 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="scatterternary", **kwar edit_type=kwargs.pop("edit_type", "none"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["a", "b", "c", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/scatterternary/_hoverinfosrc.py index 9890146bd8..defada7c72 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_hoverinfosrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_hoveron.py b/packages/python/plotly/plotly/validators/scatterternary/_hoveron.py index 64a05f98f9..44b92684ee 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_hoveron.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_hoveron.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hoveron", parent_name="scatterternary", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), flags=kwargs.pop("flags", ["points", "fills"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_hovertemplate.py b/packages/python/plotly/plotly/validators/scatterternary/_hovertemplate.py index 39863ce7e2..70cfb3a6d6 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_hovertemplate.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/scatterternary/_hovertemplatesrc.py index 8388815445..a124cfa067 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_hovertemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_hovertext.py b/packages/python/plotly/plotly/validators/scatterternary/_hovertext.py index 9df8cbf392..89d931e3ec 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_hovertext.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="scatterternary", **kwar parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_hovertextsrc.py b/packages/python/plotly/plotly/validators/scatterternary/_hovertextsrc.py index fe00590b44..7cd57b1d47 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_hovertextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_ids.py b/packages/python/plotly/plotly/validators/scatterternary/_ids.py index 63bdd07e7f..95496748d9 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_ids.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="scatterternary", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_idssrc.py b/packages/python/plotly/plotly/validators/scatterternary/_idssrc.py index 684db63355..8b4b47f439 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_idssrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="scatterternary", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_legendgroup.py b/packages/python/plotly/plotly/validators/scatterternary/_legendgroup.py index 753d80e839..f01089483e 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_legendgroup.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_meta.py b/packages/python/plotly/plotly/validators/scatterternary/_meta.py index 09ae9a2f77..46864e5671 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_meta.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="scatterternary", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_metasrc.py b/packages/python/plotly/plotly/validators/scatterternary/_metasrc.py index bd765a8ee1..a961806f37 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_metasrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="scatterternary", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_mode.py b/packages/python/plotly/plotly/validators/scatterternary/_mode.py index 359dd5b82a..cf516c52ed 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_mode.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_mode.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="mode", parent_name="scatterternary", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), extras=kwargs.pop("extras", ["none"]), flags=kwargs.pop("flags", ["lines", "markers", "text"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_name.py b/packages/python/plotly/plotly/validators/scatterternary/_name.py index 857b456e21..28a287472d 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_name.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="scatterternary", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_opacity.py b/packages/python/plotly/plotly/validators/scatterternary/_opacity.py index 3ac82145be..d9e014757e 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_opacity.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="scatterternary", **kwargs edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_selectedpoints.py b/packages/python/plotly/plotly/validators/scatterternary/_selectedpoints.py index 388ec02111..81aa2b63eb 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_selectedpoints.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_selectedpoints.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_showlegend.py b/packages/python/plotly/plotly/validators/scatterternary/_showlegend.py index 7d02a2ce4e..aa82862734 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_showlegend.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_showlegend.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_subplot.py b/packages/python/plotly/plotly/validators/scatterternary/_subplot.py index 4e4fc721ad..b4a98e5fa3 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_subplot.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_subplot.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="subplot", parent_name="scatterternary", **kwargs parent_name=parent_name, dflt=kwargs.pop("dflt", "ternary"), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_sum.py b/packages/python/plotly/plotly/validators/scatterternary/_sum.py index 80508176c0..c1073230fe 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_sum.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_sum.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="sum", parent_name="scatterternary", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_text.py b/packages/python/plotly/plotly/validators/scatterternary/_text.py index 7583673289..7ea8cb61a3 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_text.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="scatterternary", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_textposition.py b/packages/python/plotly/plotly/validators/scatterternary/_textposition.py index 9ba91539b8..39d61bec19 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_textposition.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_textposition.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scatterternary/_textpositionsrc.py b/packages/python/plotly/plotly/validators/scatterternary/_textpositionsrc.py index b3a43dd32a..020cc831ee 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_textpositionsrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_textpositionsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_textsrc.py b/packages/python/plotly/plotly/validators/scatterternary/_textsrc.py index 5c95ed0057..85a7d04925 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_textsrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="scatterternary", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_texttemplate.py b/packages/python/plotly/plotly/validators/scatterternary/_texttemplate.py index 4ebb0fb9d4..dfe374bf3d 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_texttemplate.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_texttemplate.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_texttemplatesrc.py b/packages/python/plotly/plotly/validators/scatterternary/_texttemplatesrc.py index 6abf60df48..f045d7efe2 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_texttemplatesrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_texttemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_uid.py b/packages/python/plotly/plotly/validators/scatterternary/_uid.py index 8bd4c1cb3d..1a887372c2 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_uid.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="scatterternary", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_uirevision.py b/packages/python/plotly/plotly/validators/scatterternary/_uirevision.py index 48b0aa9a59..fe9602596e 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_uirevision.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_uirevision.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/_visible.py b/packages/python/plotly/plotly/validators/scatterternary/_visible.py index 0b3e69677a..e46da2df8b 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/_visible.py +++ b/packages/python/plotly/plotly/validators/scatterternary/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="scatterternary", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_align.py index ace2908b2f..63f8609987 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_align.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_alignsrc.py index 57eda32172..c6c4587d73 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_bgcolor.py index c88b4cae3c..a1d4733e79 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_bgcolorsrc.py index df29f34801..f7ecfb13ee 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_bgcolorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_bordercolor.py index 7aa7dfc127..2ab78f2099 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_bordercolor.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_bordercolorsrc.py index 7f4bab6409..e1a5754b9b 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_bordercolorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_namelength.py index 7cee3241c3..ee5d23fae4 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_namelength.py @@ -14,6 +14,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_namelengthsrc.py index c97ecb3898..82704d3b8c 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/_namelengthsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/font/_color.py index 1eea4ddb92..50db4aaf19 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/font/_color.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/font/_colorsrc.py index a9011be7e3..06403205a8 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/font/_colorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/font/_family.py index c7649dc031..dab8e0fd22 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/font/_family.py @@ -14,7 +14,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/font/_familysrc.py index 2be3525c3e..999aea79da 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/font/_familysrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/font/_size.py index 0a3eb89c65..609907e9c2 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/font/_sizesrc.py index 2037f04c91..dd771a765c 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/hoverlabel/font/_sizesrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/line/_color.py b/packages/python/plotly/plotly/validators/scatterternary/line/_color.py index d3888381f7..2eb32c1ba6 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/line/_color.py +++ b/packages/python/plotly/plotly/validators/scatterternary/line/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/line/_dash.py b/packages/python/plotly/plotly/validators/scatterternary/line/_dash.py index a05026167e..fa3c57ef19 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/line/_dash.py +++ b/packages/python/plotly/plotly/validators/scatterternary/line/_dash.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="dash", parent_name="scatterternary.line", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", ["solid", "dot", "dash", "longdash", "dashdot", "longdashdot"] ), diff --git a/packages/python/plotly/plotly/validators/scatterternary/line/_shape.py b/packages/python/plotly/plotly/validators/scatterternary/line/_shape.py index 74dcf83e26..9814bacd39 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/line/_shape.py +++ b/packages/python/plotly/plotly/validators/scatterternary/line/_shape.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["linear", "spline"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/line/_smoothing.py b/packages/python/plotly/plotly/validators/scatterternary/line/_smoothing.py index 60ca353bfe..02bbe4cc07 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/line/_smoothing.py +++ b/packages/python/plotly/plotly/validators/scatterternary/line/_smoothing.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 1.3), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/line/_width.py b/packages/python/plotly/plotly/validators/scatterternary/line/_width.py index 91dc06743e..17f78812ae 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/line/_width.py +++ b/packages/python/plotly/plotly/validators/scatterternary/line/_width.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/_autocolorscale.py b/packages/python/plotly/plotly/validators/scatterternary/marker/_autocolorscale.py index 4cfe1ead34..e7cb5f3d8a 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/_autocolorscale.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/_cauto.py b/packages/python/plotly/plotly/validators/scatterternary/marker/_cauto.py index 3d23910a99..c8f8931ab8 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/_cauto.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/_cauto.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/_cmax.py b/packages/python/plotly/plotly/validators/scatterternary/marker/_cmax.py index be78cb54d4..85ad74bf4b 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/_cmax.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/_cmax.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/_cmid.py b/packages/python/plotly/plotly/validators/scatterternary/marker/_cmid.py index 5eb1b37574..19a86d4182 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/_cmid.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/_cmid.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/_cmin.py b/packages/python/plotly/plotly/validators/scatterternary/marker/_cmin.py index bd623631b6..82b3a53174 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/_cmin.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/_cmin.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/_color.py b/packages/python/plotly/plotly/validators/scatterternary/marker/_color.py index cdd9512216..6744a35b68 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/_color.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/_color.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop( "colorscale_path", "scatterternary.marker.colorscale" ), diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/_coloraxis.py b/packages/python/plotly/plotly/validators/scatterternary/marker/_coloraxis.py index 72979e7109..e105a3e2bb 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/_coloraxis.py @@ -11,6 +11,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/_colorbar.py b/packages/python/plotly/plotly/validators/scatterternary/marker/_colorbar.py index d18f744b3d..cb29c778da 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/_colorbar.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/_colorbar.py @@ -150,6 +150,12 @@ def __init__( defaults), sets the default property values to use for elements of scatterternary.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/_colorscale.py b/packages/python/plotly/plotly/validators/scatterternary/marker/_colorscale.py index 53f26bbfff..49076c1467 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/_colorscale.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/_colorsrc.py b/packages/python/plotly/plotly/validators/scatterternary/marker/_colorsrc.py index 5a7dff4b81..7cea02aaca 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/_maxdisplayed.py b/packages/python/plotly/plotly/validators/scatterternary/marker/_maxdisplayed.py index 756d55dc25..8aad337dbc 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/_maxdisplayed.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/_maxdisplayed.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/_opacity.py b/packages/python/plotly/plotly/validators/scatterternary/marker/_opacity.py index 8122309d6a..a7301c5a7c 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/_opacity.py @@ -12,6 +12,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/_opacitysrc.py b/packages/python/plotly/plotly/validators/scatterternary/marker/_opacitysrc.py index 6e5fbe2c5a..e825f72272 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/_opacitysrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/_opacitysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/_reversescale.py b/packages/python/plotly/plotly/validators/scatterternary/marker/_reversescale.py index 6775bdaeaf..d6d368b31f 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/_reversescale.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/_showscale.py b/packages/python/plotly/plotly/validators/scatterternary/marker/_showscale.py index 65d538aad2..7d0c988ab1 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/_showscale.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/_showscale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/_size.py b/packages/python/plotly/plotly/validators/scatterternary/marker/_size.py index fed9edaab2..3433ad4c99 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/_size.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/_sizemin.py b/packages/python/plotly/plotly/validators/scatterternary/marker/_sizemin.py index 06c1f142f7..49572104d6 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/_sizemin.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/_sizemin.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/_sizemode.py b/packages/python/plotly/plotly/validators/scatterternary/marker/_sizemode.py index c219ab7fab..eb8c8267ec 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/_sizemode.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/_sizemode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["diameter", "area"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/_sizeref.py b/packages/python/plotly/plotly/validators/scatterternary/marker/_sizeref.py index 828002263f..75ce8ccb7f 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/_sizeref.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/_sizeref.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/_sizesrc.py b/packages/python/plotly/plotly/validators/scatterternary/marker/_sizesrc.py index c7369d12f7..cbccafdb74 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/_symbol.py b/packages/python/plotly/plotly/validators/scatterternary/marker/_symbol.py index 106e2f5016..fcd49b30aa 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/_symbol.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/_symbol.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/_symbolsrc.py b/packages/python/plotly/plotly/validators/scatterternary/marker/_symbolsrc.py index 0e891820ce..34b3de6c1d 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/_symbolsrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/_symbolsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/__init__.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_bgcolor.py index dc50d75124..1e665e0037 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_bgcolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_bordercolor.py index bb140982f0..a5dce77f7c 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_bordercolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_borderwidth.py index d73da0f482..c5393caa48 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_borderwidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_dtick.py index 9585b3620f..582fbfd85c 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_dtick.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_exponentformat.py index b57b563a6d..e49bc10c30 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_exponentformat.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_len.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_len.py index 3410b08a05..b0f5ea649f 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_len.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_lenmode.py index becd2bacbf..0b4a724c17 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_lenmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_minexponent.py index 40584b5e80..0fb945f640 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_minexponent.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_nticks.py index 9fe88fc5c6..e6999011c1 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_nticks.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_outlinecolor.py index 06993e346c..a4a84b45ce 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_outlinecolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_outlinewidth.py index 6770a97d66..74b52dfffe 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_outlinewidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_separatethousands.py index 3e0f9b7cfc..238afd0c4c 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_showexponent.py index bfa7409147..2f6e14d1ad 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_showexponent.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_showticklabels.py index afecf3e6aa..06259fd5a8 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_showticklabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_showtickprefix.py index aa9dcbf66a..0be9a56eb3 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_showtickprefix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_showticksuffix.py index 919f132f7e..db58eaa6c8 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_showticksuffix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_thickness.py index d957929f2b..7007695d9f 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_thickness.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_thicknessmode.py index b314aa79e5..3e34ed7075 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_thicknessmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tick0.py index 00bdeb6f13..83dddfe491 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tick0.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickangle.py index 4569c2c750..b5ded88c28 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickangle.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickcolor.py index f8989bf7f3..254dd526e5 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickcolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickformat.py index 1ebb5041b2..e50ad0ccdc 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickformat.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..a151f34944 --- /dev/null +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="scatterternary.marker.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "colorbars"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticklabelposition.py index 1ba3963311..f0a361cb3d 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticklen.py index 1ec763db65..bdc7324736 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticklen.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickmode.py index 65e38c50bf..ce7b8d9f8f 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickmode.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickprefix.py index 6364e8a706..da378acab5 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickprefix.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticks.py index eb2d3cb22e..a00c35add8 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticks.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticksuffix.py index d144103fa6..d81479f323 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticksuffix.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticktext.py index 760efb84af..42b57bb4ac 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticktext.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticktextsrc.py index d8fdbebb97..49f4a0aa0d 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ticktextsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickvals.py index 6dfdff52c3..4dab0fb6f2 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickvals.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickvalssrc.py index c1e5c59a66..1a6add1a49 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickvalssrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickwidth.py index 8d41157b50..35af151481 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_tickwidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_x.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_x.py index 00f4be8da3..eeaf5aef77 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_x.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_xanchor.py index 3104973790..5de8b17def 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_xanchor.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_xpad.py index 7414c4239b..d801a723f7 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_xpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_y.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_y.py index cf2527c3c5..e78577ca5b 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_y.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_yanchor.py index ffac80ec0d..b5697b219c 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_yanchor.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ypad.py index ffa05516cf..3debfcdd47 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/_ypad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickfont/_color.py index 1d915b82b8..800153dc96 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickfont/_family.py index 227484e0e0..225b384d16 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickfont/_size.py index 7493fd150f..eaf27615d8 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickformatstop/_dtickrange.py index 2974814023..5eacc74904 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "colorbars"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickformatstop/_enabled.py index fb7c9c4b61..8ae73854e3 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickformatstop/_name.py index 6c266f70b7..e46ce19b8c 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickformatstop/_templateitemname.py index aad8e074ae..cb9d4296b2 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickformatstop/_value.py index 7e348e82df..aae6ce806b 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/title/_side.py index 6a58782938..c2b9587100 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/title/_side.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/title/_text.py index d9497acd9d..ac1067881e 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/title/_text.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/title/font/_color.py index 6085b6dd56..bd23fdc59c 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/title/font/_family.py index d954bb37f2..ebda3d7443 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/title/font/_size.py index bb3c1620a4..819952a047 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/colorbar/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/gradient/_color.py b/packages/python/plotly/plotly/validators/scatterternary/marker/gradient/_color.py index ca336a1479..b702f70cef 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/gradient/_color.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/gradient/_color.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/gradient/_colorsrc.py b/packages/python/plotly/plotly/validators/scatterternary/marker/gradient/_colorsrc.py index 281f38ee35..4d40dd72e5 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/gradient/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/gradient/_colorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/gradient/_type.py b/packages/python/plotly/plotly/validators/scatterternary/marker/gradient/_type.py index 2bb5fa8719..a01d0f1925 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/gradient/_type.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/gradient/_type.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["radial", "horizontal", "vertical", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/gradient/_typesrc.py b/packages/python/plotly/plotly/validators/scatterternary/marker/gradient/_typesrc.py index 2a560d7430..eb4594e1a9 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/gradient/_typesrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/gradient/_typesrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/line/_autocolorscale.py b/packages/python/plotly/plotly/validators/scatterternary/marker/line/_autocolorscale.py index 1b8cda3205..db952d02c0 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/line/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/line/_autocolorscale.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/line/_cauto.py b/packages/python/plotly/plotly/validators/scatterternary/marker/line/_cauto.py index a3372b7eda..38bff56038 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/line/_cauto.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/line/_cauto.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/line/_cmax.py b/packages/python/plotly/plotly/validators/scatterternary/marker/line/_cmax.py index 7a8db686bb..8a6f9d7476 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/line/_cmax.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/line/_cmax.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/line/_cmid.py b/packages/python/plotly/plotly/validators/scatterternary/marker/line/_cmid.py index 85f2fbd458..f3f6a820c9 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/line/_cmid.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/line/_cmid.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/line/_cmin.py b/packages/python/plotly/plotly/validators/scatterternary/marker/line/_cmin.py index 1633f31cd2..da2e14e688 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/line/_cmin.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/line/_cmin.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/line/_color.py b/packages/python/plotly/plotly/validators/scatterternary/marker/line/_color.py index d88d40f894..77365f559e 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/line/_color.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/line/_color.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop( "colorscale_path", "scatterternary.marker.line.colorscale" ), diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/line/_coloraxis.py b/packages/python/plotly/plotly/validators/scatterternary/marker/line/_coloraxis.py index acfd6e0eee..7fde8a7ff7 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/line/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/line/_coloraxis.py @@ -14,6 +14,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/line/_colorscale.py b/packages/python/plotly/plotly/validators/scatterternary/marker/line/_colorscale.py index eb82479173..9c71e113cd 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/line/_colorscale.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/line/_colorscale.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/line/_colorsrc.py b/packages/python/plotly/plotly/validators/scatterternary/marker/line/_colorsrc.py index 5718f3b58d..951b5fd163 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/line/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/line/_reversescale.py b/packages/python/plotly/plotly/validators/scatterternary/marker/line/_reversescale.py index d71b795ce3..d46dec9289 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/line/_reversescale.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/line/_reversescale.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/line/_width.py b/packages/python/plotly/plotly/validators/scatterternary/marker/line/_width.py index 603a608d56..7c40050ea4 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/line/_width.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/line/_width.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/marker/line/_widthsrc.py b/packages/python/plotly/plotly/validators/scatterternary/marker/line/_widthsrc.py index e109339b20..e15dbd0cc6 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/marker/line/_widthsrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/marker/line/_widthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/selected/marker/_color.py b/packages/python/plotly/plotly/validators/scatterternary/selected/marker/_color.py index 3e85732c03..384fe2abc1 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/selected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/scatterternary/selected/marker/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/selected/marker/_opacity.py b/packages/python/plotly/plotly/validators/scatterternary/selected/marker/_opacity.py index 383e5a88bf..b13c72637a 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/selected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/scatterternary/selected/marker/_opacity.py @@ -14,6 +14,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/selected/marker/_size.py b/packages/python/plotly/plotly/validators/scatterternary/selected/marker/_size.py index 7eb95fe69d..ea17d6b7fa 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/selected/marker/_size.py +++ b/packages/python/plotly/plotly/validators/scatterternary/selected/marker/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/selected/textfont/_color.py b/packages/python/plotly/plotly/validators/scatterternary/selected/textfont/_color.py index 93742c5e76..e9a5ca3d23 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/selected/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/scatterternary/selected/textfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/scatterternary/stream/_maxpoints.py index f3bf8dfc18..716cf9cf11 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/scatterternary/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/stream/_token.py b/packages/python/plotly/plotly/validators/scatterternary/stream/_token.py index ff7c79ede6..890bdd1198 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/stream/_token.py +++ b/packages/python/plotly/plotly/validators/scatterternary/stream/_token.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/textfont/_color.py b/packages/python/plotly/plotly/validators/scatterternary/textfont/_color.py index cb61eb4a11..937e4b8b3c 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/scatterternary/textfont/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/textfont/_colorsrc.py b/packages/python/plotly/plotly/validators/scatterternary/textfont/_colorsrc.py index 9b9d59eb20..b8972416cf 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/textfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/textfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/textfont/_family.py b/packages/python/plotly/plotly/validators/scatterternary/textfont/_family.py index 60967d4076..d9a8d83c87 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/textfont/_family.py +++ b/packages/python/plotly/plotly/validators/scatterternary/textfont/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/textfont/_familysrc.py b/packages/python/plotly/plotly/validators/scatterternary/textfont/_familysrc.py index a574ce7ced..8aa4b42ad8 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/textfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/textfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/textfont/_size.py b/packages/python/plotly/plotly/validators/scatterternary/textfont/_size.py index 6e84203d8d..c65f47907a 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/textfont/_size.py +++ b/packages/python/plotly/plotly/validators/scatterternary/textfont/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/textfont/_sizesrc.py b/packages/python/plotly/plotly/validators/scatterternary/textfont/_sizesrc.py index 0da183b90c..a34a2b14ab 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/textfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/scatterternary/textfont/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/unselected/marker/_color.py b/packages/python/plotly/plotly/validators/scatterternary/unselected/marker/_color.py index 091f8923be..3b501dc1ec 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/unselected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/scatterternary/unselected/marker/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/unselected/marker/_opacity.py b/packages/python/plotly/plotly/validators/scatterternary/unselected/marker/_opacity.py index da4102f940..04f9639a19 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/unselected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/scatterternary/unselected/marker/_opacity.py @@ -14,6 +14,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/unselected/marker/_size.py b/packages/python/plotly/plotly/validators/scatterternary/unselected/marker/_size.py index fd17277c31..ff627dd979 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/unselected/marker/_size.py +++ b/packages/python/plotly/plotly/validators/scatterternary/unselected/marker/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/scatterternary/unselected/textfont/_color.py b/packages/python/plotly/plotly/validators/scatterternary/unselected/textfont/_color.py index 4cad707508..c2695c4722 100644 --- a/packages/python/plotly/plotly/validators/scatterternary/unselected/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/scatterternary/unselected/textfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/__init__.py b/packages/python/plotly/plotly/validators/splom/__init__.py index 84d7f9f7b9..26bc994523 100644 --- a/packages/python/plotly/plotly/validators/splom/__init__.py +++ b/packages/python/plotly/plotly/validators/splom/__init__.py @@ -1,7 +1,9 @@ import sys if sys.version_info < (3, 7): + from ._yhoverformat import YhoverformatValidator from ._yaxes import YaxesValidator + from ._xhoverformat import XhoverformatValidator from ._xaxes import XaxesValidator from ._visible import VisibleValidator from ._unselected import UnselectedValidator @@ -42,7 +44,9 @@ __name__, [], [ + "._yhoverformat.YhoverformatValidator", "._yaxes.YaxesValidator", + "._xhoverformat.XhoverformatValidator", "._xaxes.XaxesValidator", "._visible.VisibleValidator", "._unselected.UnselectedValidator", diff --git a/packages/python/plotly/plotly/validators/splom/_customdata.py b/packages/python/plotly/plotly/validators/splom/_customdata.py index 5c2edfac81..b09e28b020 100644 --- a/packages/python/plotly/plotly/validators/splom/_customdata.py +++ b/packages/python/plotly/plotly/validators/splom/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="splom", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_customdatasrc.py b/packages/python/plotly/plotly/validators/splom/_customdatasrc.py index be5347732f..30b3cb3a79 100644 --- a/packages/python/plotly/plotly/validators/splom/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/splom/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="splom", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_hoverinfo.py b/packages/python/plotly/plotly/validators/splom/_hoverinfo.py index e553fb4b3d..1d102157a3 100644 --- a/packages/python/plotly/plotly/validators/splom/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/splom/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="splom", **kwargs): edit_type=kwargs.pop("edit_type", "none"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["x", "y", "z", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/splom/_hoverinfosrc.py index 798d32aaf1..da91877794 100644 --- a/packages/python/plotly/plotly/validators/splom/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/splom/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="splom", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_hovertemplate.py b/packages/python/plotly/plotly/validators/splom/_hovertemplate.py index a960e8e391..e7936b3a03 100644 --- a/packages/python/plotly/plotly/validators/splom/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/splom/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="splom", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/splom/_hovertemplatesrc.py index b810a1248e..99f31365ae 100644 --- a/packages/python/plotly/plotly/validators/splom/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/splom/_hovertemplatesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertemplatesrc", parent_name="splom", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_hovertext.py b/packages/python/plotly/plotly/validators/splom/_hovertext.py index cbc20d88c7..a211df8523 100644 --- a/packages/python/plotly/plotly/validators/splom/_hovertext.py +++ b/packages/python/plotly/plotly/validators/splom/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="splom", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_hovertextsrc.py b/packages/python/plotly/plotly/validators/splom/_hovertextsrc.py index 321a077984..d45f57c9f2 100644 --- a/packages/python/plotly/plotly/validators/splom/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/splom/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="splom", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_ids.py b/packages/python/plotly/plotly/validators/splom/_ids.py index c6597eb76a..08110a805e 100644 --- a/packages/python/plotly/plotly/validators/splom/_ids.py +++ b/packages/python/plotly/plotly/validators/splom/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="splom", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_idssrc.py b/packages/python/plotly/plotly/validators/splom/_idssrc.py index f69083729e..2ea44df465 100644 --- a/packages/python/plotly/plotly/validators/splom/_idssrc.py +++ b/packages/python/plotly/plotly/validators/splom/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="splom", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_legendgroup.py b/packages/python/plotly/plotly/validators/splom/_legendgroup.py index aacb930e34..d16ef8c1a3 100644 --- a/packages/python/plotly/plotly/validators/splom/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/splom/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="splom", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_meta.py b/packages/python/plotly/plotly/validators/splom/_meta.py index 736d7bdbc3..a9783f9361 100644 --- a/packages/python/plotly/plotly/validators/splom/_meta.py +++ b/packages/python/plotly/plotly/validators/splom/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="splom", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_metasrc.py b/packages/python/plotly/plotly/validators/splom/_metasrc.py index fdabba9c03..a1a0c59203 100644 --- a/packages/python/plotly/plotly/validators/splom/_metasrc.py +++ b/packages/python/plotly/plotly/validators/splom/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="splom", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_name.py b/packages/python/plotly/plotly/validators/splom/_name.py index eea26f3a15..a28c9fb5b8 100644 --- a/packages/python/plotly/plotly/validators/splom/_name.py +++ b/packages/python/plotly/plotly/validators/splom/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="splom", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_opacity.py b/packages/python/plotly/plotly/validators/splom/_opacity.py index 9df08d7850..f82f3c6a96 100644 --- a/packages/python/plotly/plotly/validators/splom/_opacity.py +++ b/packages/python/plotly/plotly/validators/splom/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="splom", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_selectedpoints.py b/packages/python/plotly/plotly/validators/splom/_selectedpoints.py index 0e42e7a493..efff7517c4 100644 --- a/packages/python/plotly/plotly/validators/splom/_selectedpoints.py +++ b/packages/python/plotly/plotly/validators/splom/_selectedpoints.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="selectedpoints", parent_name="splom", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_showlegend.py b/packages/python/plotly/plotly/validators/splom/_showlegend.py index 18ac5c7b70..f149f1bdbb 100644 --- a/packages/python/plotly/plotly/validators/splom/_showlegend.py +++ b/packages/python/plotly/plotly/validators/splom/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="splom", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_showlowerhalf.py b/packages/python/plotly/plotly/validators/splom/_showlowerhalf.py index 32d340a6f0..9213079ef7 100644 --- a/packages/python/plotly/plotly/validators/splom/_showlowerhalf.py +++ b/packages/python/plotly/plotly/validators/splom/_showlowerhalf.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlowerhalf", parent_name="splom", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_showupperhalf.py b/packages/python/plotly/plotly/validators/splom/_showupperhalf.py index 2a2f006878..89e034e5c1 100644 --- a/packages/python/plotly/plotly/validators/splom/_showupperhalf.py +++ b/packages/python/plotly/plotly/validators/splom/_showupperhalf.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showupperhalf", parent_name="splom", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_text.py b/packages/python/plotly/plotly/validators/splom/_text.py index e60d277af7..1592d68fd4 100644 --- a/packages/python/plotly/plotly/validators/splom/_text.py +++ b/packages/python/plotly/plotly/validators/splom/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="splom", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_textsrc.py b/packages/python/plotly/plotly/validators/splom/_textsrc.py index 6d3c4e59ff..a8962f3dc2 100644 --- a/packages/python/plotly/plotly/validators/splom/_textsrc.py +++ b/packages/python/plotly/plotly/validators/splom/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="splom", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_uid.py b/packages/python/plotly/plotly/validators/splom/_uid.py index 586db914de..3e2697bc7d 100644 --- a/packages/python/plotly/plotly/validators/splom/_uid.py +++ b/packages/python/plotly/plotly/validators/splom/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="splom", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_uirevision.py b/packages/python/plotly/plotly/validators/splom/_uirevision.py index 62b73c5c9f..b688a65c38 100644 --- a/packages/python/plotly/plotly/validators/splom/_uirevision.py +++ b/packages/python/plotly/plotly/validators/splom/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="splom", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_visible.py b/packages/python/plotly/plotly/validators/splom/_visible.py index e174204941..a65170f59a 100644 --- a/packages/python/plotly/plotly/validators/splom/_visible.py +++ b/packages/python/plotly/plotly/validators/splom/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="splom", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_xaxes.py b/packages/python/plotly/plotly/validators/splom/_xaxes.py index aae50863ae..7ab5e2c161 100644 --- a/packages/python/plotly/plotly/validators/splom/_xaxes.py +++ b/packages/python/plotly/plotly/validators/splom/_xaxes.py @@ -16,6 +16,5 @@ def __init__(self, plotly_name="xaxes", parent_name="splom", **kwargs): "editType": "plot", }, ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_xhoverformat.py b/packages/python/plotly/plotly/validators/splom/_xhoverformat.py new file mode 100644 index 0000000000..c995e195b5 --- /dev/null +++ b/packages/python/plotly/plotly/validators/splom/_xhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class XhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="xhoverformat", parent_name="splom", **kwargs): + super(XhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/splom/_yaxes.py b/packages/python/plotly/plotly/validators/splom/_yaxes.py index eedede8a44..56cf393a92 100644 --- a/packages/python/plotly/plotly/validators/splom/_yaxes.py +++ b/packages/python/plotly/plotly/validators/splom/_yaxes.py @@ -16,6 +16,5 @@ def __init__(self, plotly_name="yaxes", parent_name="splom", **kwargs): "editType": "plot", }, ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/_yhoverformat.py b/packages/python/plotly/plotly/validators/splom/_yhoverformat.py new file mode 100644 index 0000000000..0398e63eb7 --- /dev/null +++ b/packages/python/plotly/plotly/validators/splom/_yhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class YhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="yhoverformat", parent_name="splom", **kwargs): + super(YhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/splom/diagonal/_visible.py b/packages/python/plotly/plotly/validators/splom/diagonal/_visible.py index 90f81a4e7c..cbb7418928 100644 --- a/packages/python/plotly/plotly/validators/splom/diagonal/_visible.py +++ b/packages/python/plotly/plotly/validators/splom/diagonal/_visible.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="visible", parent_name="splom.diagonal", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/dimension/_label.py b/packages/python/plotly/plotly/validators/splom/dimension/_label.py index a4352e481a..755ddfb31a 100644 --- a/packages/python/plotly/plotly/validators/splom/dimension/_label.py +++ b/packages/python/plotly/plotly/validators/splom/dimension/_label.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="label", parent_name="splom.dimension", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/dimension/_name.py b/packages/python/plotly/plotly/validators/splom/dimension/_name.py index 04c93efe56..2ce9aedaeb 100644 --- a/packages/python/plotly/plotly/validators/splom/dimension/_name.py +++ b/packages/python/plotly/plotly/validators/splom/dimension/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="splom.dimension", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/dimension/_templateitemname.py b/packages/python/plotly/plotly/validators/splom/dimension/_templateitemname.py index 2e424d355c..d15d2b336d 100644 --- a/packages/python/plotly/plotly/validators/splom/dimension/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/splom/dimension/_templateitemname.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/dimension/_values.py b/packages/python/plotly/plotly/validators/splom/dimension/_values.py index 1333e09f38..9749a96363 100644 --- a/packages/python/plotly/plotly/validators/splom/dimension/_values.py +++ b/packages/python/plotly/plotly/validators/splom/dimension/_values.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="values", parent_name="splom.dimension", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/dimension/_valuessrc.py b/packages/python/plotly/plotly/validators/splom/dimension/_valuessrc.py index 1999c00fa4..aff2af5f0a 100644 --- a/packages/python/plotly/plotly/validators/splom/dimension/_valuessrc.py +++ b/packages/python/plotly/plotly/validators/splom/dimension/_valuessrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/dimension/_visible.py b/packages/python/plotly/plotly/validators/splom/dimension/_visible.py index 33c67fc989..e2e02f15db 100644 --- a/packages/python/plotly/plotly/validators/splom/dimension/_visible.py +++ b/packages/python/plotly/plotly/validators/splom/dimension/_visible.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="visible", parent_name="splom.dimension", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/dimension/axis/_matches.py b/packages/python/plotly/plotly/validators/splom/dimension/axis/_matches.py index 991d9b4bca..c5a1a01b86 100644 --- a/packages/python/plotly/plotly/validators/splom/dimension/axis/_matches.py +++ b/packages/python/plotly/plotly/validators/splom/dimension/axis/_matches.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/dimension/axis/_type.py b/packages/python/plotly/plotly/validators/splom/dimension/axis/_type.py index 5db1d4bed5..e6d3870d86 100644 --- a/packages/python/plotly/plotly/validators/splom/dimension/axis/_type.py +++ b/packages/python/plotly/plotly/validators/splom/dimension/axis/_type.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["linear", "log", "date", "category"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/splom/hoverlabel/_align.py index 77a3943055..bf8004818b 100644 --- a/packages/python/plotly/plotly/validators/splom/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/splom/hoverlabel/_align.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="align", parent_name="splom.hoverlabel", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/splom/hoverlabel/_alignsrc.py index 88723e587c..abf93856ce 100644 --- a/packages/python/plotly/plotly/validators/splom/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/splom/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/splom/hoverlabel/_bgcolor.py index 6f0610ff0a..f14b133ad8 100644 --- a/packages/python/plotly/plotly/validators/splom/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/splom/hoverlabel/_bgcolor.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="bgcolor", parent_name="splom.hoverlabel", **kwar parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/splom/hoverlabel/_bgcolorsrc.py index 828056e923..d7fd831082 100644 --- a/packages/python/plotly/plotly/validators/splom/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/splom/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/splom/hoverlabel/_bordercolor.py index 4a20b4b4cc..397befc1ad 100644 --- a/packages/python/plotly/plotly/validators/splom/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/splom/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/splom/hoverlabel/_bordercolorsrc.py index 1cc00c1c54..d83837d28a 100644 --- a/packages/python/plotly/plotly/validators/splom/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/splom/hoverlabel/_bordercolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/splom/hoverlabel/_namelength.py index f90516ed66..5e25ee088c 100644 --- a/packages/python/plotly/plotly/validators/splom/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/splom/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/splom/hoverlabel/_namelengthsrc.py index ee88a88831..e9c6dafaa2 100644 --- a/packages/python/plotly/plotly/validators/splom/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/splom/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/splom/hoverlabel/font/_color.py index 0acbc3f023..fc4c2a0210 100644 --- a/packages/python/plotly/plotly/validators/splom/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/splom/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/splom/hoverlabel/font/_colorsrc.py index a8f13b835a..c1f4869da2 100644 --- a/packages/python/plotly/plotly/validators/splom/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/splom/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/splom/hoverlabel/font/_family.py index c9e084deab..f85d83be7a 100644 --- a/packages/python/plotly/plotly/validators/splom/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/splom/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/splom/hoverlabel/font/_familysrc.py index b67225dd05..e622dee78d 100644 --- a/packages/python/plotly/plotly/validators/splom/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/splom/hoverlabel/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/splom/hoverlabel/font/_size.py index da07bffa90..67a2a6e395 100644 --- a/packages/python/plotly/plotly/validators/splom/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/splom/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/splom/hoverlabel/font/_sizesrc.py index f16390975d..8ab3845135 100644 --- a/packages/python/plotly/plotly/validators/splom/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/splom/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/_autocolorscale.py b/packages/python/plotly/plotly/validators/splom/marker/_autocolorscale.py index e731c50373..8d2cc70ab7 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/splom/marker/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/_cauto.py b/packages/python/plotly/plotly/validators/splom/marker/_cauto.py index aa5eb9c173..8db160ae84 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/_cauto.py +++ b/packages/python/plotly/plotly/validators/splom/marker/_cauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cauto", parent_name="splom.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/_cmax.py b/packages/python/plotly/plotly/validators/splom/marker/_cmax.py index ac00bd668d..3eefa1ac09 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/_cmax.py +++ b/packages/python/plotly/plotly/validators/splom/marker/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="splom.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/_cmid.py b/packages/python/plotly/plotly/validators/splom/marker/_cmid.py index 3a21b5c29d..9224dcd000 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/_cmid.py +++ b/packages/python/plotly/plotly/validators/splom/marker/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="splom.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/_cmin.py b/packages/python/plotly/plotly/validators/splom/marker/_cmin.py index 8d56cbd912..95266583cc 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/_cmin.py +++ b/packages/python/plotly/plotly/validators/splom/marker/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="splom.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/_color.py b/packages/python/plotly/plotly/validators/splom/marker/_color.py index f3dda3e6f6..3aec7b9359 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/_color.py +++ b/packages/python/plotly/plotly/validators/splom/marker/_color.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="color", parent_name="splom.marker", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop("colorscale_path", "splom.marker.colorscale"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/_coloraxis.py b/packages/python/plotly/plotly/validators/splom/marker/_coloraxis.py index c302d32bcb..777b167533 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/splom/marker/_coloraxis.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="coloraxis", parent_name="splom.marker", **kwargs dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/_colorbar.py b/packages/python/plotly/plotly/validators/splom/marker/_colorbar.py index 8403252ef7..dfa838d3f3 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/_colorbar.py +++ b/packages/python/plotly/plotly/validators/splom/marker/_colorbar.py @@ -148,6 +148,12 @@ def __init__(self, plotly_name="colorbar", parent_name="splom.marker", **kwargs) , sets the default property values to use for elements of splom.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/splom/marker/_colorscale.py b/packages/python/plotly/plotly/validators/splom/marker/_colorscale.py index c4b7ccc299..ed7a8e74fc 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/_colorscale.py +++ b/packages/python/plotly/plotly/validators/splom/marker/_colorscale.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="colorscale", parent_name="splom.marker", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/_colorsrc.py b/packages/python/plotly/plotly/validators/splom/marker/_colorsrc.py index 73ca40fd56..c676d22686 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/splom/marker/_colorsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="colorsrc", parent_name="splom.marker", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/_opacity.py b/packages/python/plotly/plotly/validators/splom/marker/_opacity.py index 41bf9a40c9..a027905b56 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/splom/marker/_opacity.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="opacity", parent_name="splom.marker", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/_opacitysrc.py b/packages/python/plotly/plotly/validators/splom/marker/_opacitysrc.py index e15c4bc8b4..7f209d67ef 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/_opacitysrc.py +++ b/packages/python/plotly/plotly/validators/splom/marker/_opacitysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="opacitysrc", parent_name="splom.marker", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/_reversescale.py b/packages/python/plotly/plotly/validators/splom/marker/_reversescale.py index 7f632c2301..0c3d3aa8be 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/_reversescale.py +++ b/packages/python/plotly/plotly/validators/splom/marker/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/_showscale.py b/packages/python/plotly/plotly/validators/splom/marker/_showscale.py index 589ced5339..c59a540c05 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/_showscale.py +++ b/packages/python/plotly/plotly/validators/splom/marker/_showscale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showscale", parent_name="splom.marker", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/_size.py b/packages/python/plotly/plotly/validators/splom/marker/_size.py index a5cf0d0c20..ecfc2aadaf 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/_size.py +++ b/packages/python/plotly/plotly/validators/splom/marker/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="splom.marker", **kwargs): array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "markerSize"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/_sizemin.py b/packages/python/plotly/plotly/validators/splom/marker/_sizemin.py index 9209d343eb..8d5e52ef80 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/_sizemin.py +++ b/packages/python/plotly/plotly/validators/splom/marker/_sizemin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="sizemin", parent_name="splom.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/_sizemode.py b/packages/python/plotly/plotly/validators/splom/marker/_sizemode.py index 0878e34c59..d62f45c0b1 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/_sizemode.py +++ b/packages/python/plotly/plotly/validators/splom/marker/_sizemode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="sizemode", parent_name="splom.marker", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["diameter", "area"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/_sizeref.py b/packages/python/plotly/plotly/validators/splom/marker/_sizeref.py index 10d005a802..0b039ce37b 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/_sizeref.py +++ b/packages/python/plotly/plotly/validators/splom/marker/_sizeref.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="sizeref", parent_name="splom.marker", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/_sizesrc.py b/packages/python/plotly/plotly/validators/splom/marker/_sizesrc.py index 9ae67b9e76..57fc3d5ac1 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/splom/marker/_sizesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="sizesrc", parent_name="splom.marker", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/_symbol.py b/packages/python/plotly/plotly/validators/splom/marker/_symbol.py index 26639f31b6..3540f2f72f 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/_symbol.py +++ b/packages/python/plotly/plotly/validators/splom/marker/_symbol.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="symbol", parent_name="splom.marker", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/splom/marker/_symbolsrc.py b/packages/python/plotly/plotly/validators/splom/marker/_symbolsrc.py index f98c297e8e..426e501973 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/_symbolsrc.py +++ b/packages/python/plotly/plotly/validators/splom/marker/_symbolsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="symbolsrc", parent_name="splom.marker", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/__init__.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_bgcolor.py index e53120c6b8..21ac8d164a 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_bordercolor.py index 42b45f6068..ad095d402b 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_borderwidth.py index 6602d2391d..7fb6135b1b 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_dtick.py index 327c9b0a7a..e395d40752 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_exponentformat.py index eb5135eb76..241cf355d3 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_exponentformat.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_len.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_len.py index 41ca623fcd..be21898856 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_len.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_lenmode.py index 7cebfdc60e..6734a9a08c 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_lenmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_minexponent.py index 6722ccb57e..1fb5d23cb1 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_nticks.py index 9b36f22cae..e26fe16263 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_outlinecolor.py index f223b31497..6e4ff2225f 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_outlinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_outlinewidth.py index 4b7e937d69..bfbf268426 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_outlinewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_separatethousands.py index fa57a2a879..837ca9db31 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_showexponent.py index 5aa884661a..a4c1a9d7bd 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_showticklabels.py index 3b6af2fe72..3fa44789f9 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_showticklabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_showtickprefix.py index 89d8df2d4f..d181e3780a 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_showtickprefix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_showticksuffix.py index 777effbd1f..d0b27495f2 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_showticksuffix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_thickness.py index 0f0501eda8..10d1cd52f1 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_thicknessmode.py index fbba196db3..05f193aeea 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_thicknessmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tick0.py index fd42305b69..1f5fc4a578 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickangle.py index 7de589f64d..112cc0bb0d 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickcolor.py index cacb844d42..878ae77d0b 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickformat.py index da80011034..d3c0753cd5 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..cee2bcfde5 --- /dev/null +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="splom.marker.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "colorbars"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticklabelposition.py index b179dc398a..b67b37b912 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticklen.py index 38cffbe369..9aa8e1b278 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickmode.py index c2a14e2dfa..347aa98338 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickprefix.py index c49e4fea42..2ca016a0a8 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticks.py index eac8337b15..330aafd79c 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticksuffix.py index 542775c989..5c0155b761 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticktext.py index 8f7e2c075a..fa3458cd0f 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticktextsrc.py index 1703404ace..6750f615ef 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickvals.py index 3bccf7e365..3e1f2bb4bb 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickvalssrc.py index bf29a3409e..39d5e684e6 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickwidth.py index 2ec99c5009..57af14b8a2 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_x.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_x.py index 3046980c00..7310393620 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_x.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="x", parent_name="splom.marker.colorbar", **kwarg edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_xanchor.py index fff72eb689..cd4e6264f7 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_xpad.py index 73a36da84a..c00fdadb06 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_xpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_y.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_y.py index 31177d3227..0e9b659ee1 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_y.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="y", parent_name="splom.marker.colorbar", **kwarg edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_yanchor.py index b0ca0b09e5..48b0b5145f 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ypad.py index 27fbdd4039..720dc4c99c 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/_ypad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickfont/_color.py index 29fdc1be02..629ccd0c0e 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickfont/_family.py index 28a3c04f27..e61d1c50ab 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickfont/_size.py index efef3ca107..469f2003c8 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickformatstop/_dtickrange.py index ab6578cbce..acbc626941 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "colorbars"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickformatstop/_enabled.py index 56e5b548ce..30bd598715 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickformatstop/_name.py index 6c2e45b3d9..81ced0874d 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickformatstop/_templateitemname.py index b9c725ecfa..25c0b5159e 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickformatstop/_value.py index 4983546265..33010fba90 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/title/_side.py index e159e21aaf..f56ed4f928 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/title/_side.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/title/_text.py index 7cba92ec7c..beeaa32d79 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/title/font/_color.py index e2c2578ddb..813b38db9c 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/title/font/_family.py index 48d95ea90d..807867e576 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/splom/marker/colorbar/title/font/_size.py index b929b57b23..458a781748 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/splom/marker/colorbar/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/line/_autocolorscale.py b/packages/python/plotly/plotly/validators/splom/marker/line/_autocolorscale.py index 541f5d4d38..f1c349262f 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/line/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/splom/marker/line/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/line/_cauto.py b/packages/python/plotly/plotly/validators/splom/marker/line/_cauto.py index 69f52df868..4c94d9ff50 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/line/_cauto.py +++ b/packages/python/plotly/plotly/validators/splom/marker/line/_cauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cauto", parent_name="splom.marker.line", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/line/_cmax.py b/packages/python/plotly/plotly/validators/splom/marker/line/_cmax.py index c95abbc606..b55db57a52 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/line/_cmax.py +++ b/packages/python/plotly/plotly/validators/splom/marker/line/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="splom.marker.line", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/line/_cmid.py b/packages/python/plotly/plotly/validators/splom/marker/line/_cmid.py index 5f730cae7f..34d6994c7e 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/line/_cmid.py +++ b/packages/python/plotly/plotly/validators/splom/marker/line/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="splom.marker.line", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/line/_cmin.py b/packages/python/plotly/plotly/validators/splom/marker/line/_cmin.py index 98901324d5..0ffd49124b 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/line/_cmin.py +++ b/packages/python/plotly/plotly/validators/splom/marker/line/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="splom.marker.line", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/line/_color.py b/packages/python/plotly/plotly/validators/splom/marker/line/_color.py index 21f89fedc3..1c6a360dee 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/line/_color.py +++ b/packages/python/plotly/plotly/validators/splom/marker/line/_color.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="color", parent_name="splom.marker.line", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), colorscale_path=kwargs.pop( "colorscale_path", "splom.marker.line.colorscale" ), diff --git a/packages/python/plotly/plotly/validators/splom/marker/line/_coloraxis.py b/packages/python/plotly/plotly/validators/splom/marker/line/_coloraxis.py index 26589292f4..d6d58e80f6 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/line/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/splom/marker/line/_coloraxis.py @@ -11,6 +11,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/line/_colorscale.py b/packages/python/plotly/plotly/validators/splom/marker/line/_colorscale.py index bc5e50122f..d14c62dbff 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/line/_colorscale.py +++ b/packages/python/plotly/plotly/validators/splom/marker/line/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/line/_colorsrc.py b/packages/python/plotly/plotly/validators/splom/marker/line/_colorsrc.py index ee93011504..eb310c4c85 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/splom/marker/line/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/line/_reversescale.py b/packages/python/plotly/plotly/validators/splom/marker/line/_reversescale.py index 36946efb3e..35e7d4e91b 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/line/_reversescale.py +++ b/packages/python/plotly/plotly/validators/splom/marker/line/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/line/_width.py b/packages/python/plotly/plotly/validators/splom/marker/line/_width.py index b95ab4016b..f4c906261b 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/line/_width.py +++ b/packages/python/plotly/plotly/validators/splom/marker/line/_width.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="width", parent_name="splom.marker.line", **kwarg array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/marker/line/_widthsrc.py b/packages/python/plotly/plotly/validators/splom/marker/line/_widthsrc.py index ec94d825c7..1424582bc7 100644 --- a/packages/python/plotly/plotly/validators/splom/marker/line/_widthsrc.py +++ b/packages/python/plotly/plotly/validators/splom/marker/line/_widthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/selected/marker/_color.py b/packages/python/plotly/plotly/validators/splom/selected/marker/_color.py index 49f08c55f6..afac2b1ef8 100644 --- a/packages/python/plotly/plotly/validators/splom/selected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/splom/selected/marker/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/selected/marker/_opacity.py b/packages/python/plotly/plotly/validators/splom/selected/marker/_opacity.py index 4980c4a35a..da289f5eeb 100644 --- a/packages/python/plotly/plotly/validators/splom/selected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/splom/selected/marker/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/selected/marker/_size.py b/packages/python/plotly/plotly/validators/splom/selected/marker/_size.py index e04fbbe32b..fd3aa3ebea 100644 --- a/packages/python/plotly/plotly/validators/splom/selected/marker/_size.py +++ b/packages/python/plotly/plotly/validators/splom/selected/marker/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/splom/stream/_maxpoints.py index 6288ffdaf0..8942cacdda 100644 --- a/packages/python/plotly/plotly/validators/splom/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/splom/stream/_maxpoints.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="maxpoints", parent_name="splom.stream", **kwargs edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/stream/_token.py b/packages/python/plotly/plotly/validators/splom/stream/_token.py index f90ab1e58b..b3fd04fbc8 100644 --- a/packages/python/plotly/plotly/validators/splom/stream/_token.py +++ b/packages/python/plotly/plotly/validators/splom/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="splom.stream", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/unselected/marker/_color.py b/packages/python/plotly/plotly/validators/splom/unselected/marker/_color.py index 1ca684584f..e303ff5f53 100644 --- a/packages/python/plotly/plotly/validators/splom/unselected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/splom/unselected/marker/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/unselected/marker/_opacity.py b/packages/python/plotly/plotly/validators/splom/unselected/marker/_opacity.py index 0eea3b9e14..ba456b4c0c 100644 --- a/packages/python/plotly/plotly/validators/splom/unselected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/splom/unselected/marker/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/splom/unselected/marker/_size.py b/packages/python/plotly/plotly/validators/splom/unselected/marker/_size.py index 7e860c1444..a37b4b30ca 100644 --- a/packages/python/plotly/plotly/validators/splom/unselected/marker/_size.py +++ b/packages/python/plotly/plotly/validators/splom/unselected/marker/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/__init__.py b/packages/python/plotly/plotly/validators/streamtube/__init__.py index 5c29d48d09..e14dd0c7b6 100644 --- a/packages/python/plotly/plotly/validators/streamtube/__init__.py +++ b/packages/python/plotly/plotly/validators/streamtube/__init__.py @@ -2,19 +2,25 @@ if sys.version_info < (3, 7): from ._zsrc import ZsrcValidator + from ._zhoverformat import ZhoverformatValidator from ._z import ZValidator from ._ysrc import YsrcValidator + from ._yhoverformat import YhoverformatValidator from ._y import YValidator from ._xsrc import XsrcValidator + from ._xhoverformat import XhoverformatValidator from ._x import XValidator from ._wsrc import WsrcValidator + from ._whoverformat import WhoverformatValidator from ._w import WValidator from ._vsrc import VsrcValidator from ._visible import VisibleValidator + from ._vhoverformat import VhoverformatValidator from ._v import VValidator from ._usrc import UsrcValidator from ._uirevision import UirevisionValidator from ._uid import UidValidator + from ._uhoverformat import UhoverformatValidator from ._u import UValidator from ._text import TextValidator from ._stream import StreamValidator @@ -58,19 +64,25 @@ [], [ "._zsrc.ZsrcValidator", + "._zhoverformat.ZhoverformatValidator", "._z.ZValidator", "._ysrc.YsrcValidator", + "._yhoverformat.YhoverformatValidator", "._y.YValidator", "._xsrc.XsrcValidator", + "._xhoverformat.XhoverformatValidator", "._x.XValidator", "._wsrc.WsrcValidator", + "._whoverformat.WhoverformatValidator", "._w.WValidator", "._vsrc.VsrcValidator", "._visible.VisibleValidator", + "._vhoverformat.VhoverformatValidator", "._v.VValidator", "._usrc.UsrcValidator", "._uirevision.UirevisionValidator", "._uid.UidValidator", + "._uhoverformat.UhoverformatValidator", "._u.UValidator", "._text.TextValidator", "._stream.StreamValidator", diff --git a/packages/python/plotly/plotly/validators/streamtube/_autocolorscale.py b/packages/python/plotly/plotly/validators/streamtube/_autocolorscale.py index ba01cb00d7..c534a39070 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/streamtube/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_cauto.py b/packages/python/plotly/plotly/validators/streamtube/_cauto.py index 1e7fd7cd2a..411fdf20c6 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_cauto.py +++ b/packages/python/plotly/plotly/validators/streamtube/_cauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cauto", parent_name="streamtube", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_cmax.py b/packages/python/plotly/plotly/validators/streamtube/_cmax.py index c9745795ad..14fb769dfb 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_cmax.py +++ b/packages/python/plotly/plotly/validators/streamtube/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="streamtube", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_cmid.py b/packages/python/plotly/plotly/validators/streamtube/_cmid.py index 66850d66ba..fce046360b 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_cmid.py +++ b/packages/python/plotly/plotly/validators/streamtube/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="streamtube", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_cmin.py b/packages/python/plotly/plotly/validators/streamtube/_cmin.py index dca6968cca..42f73ac348 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_cmin.py +++ b/packages/python/plotly/plotly/validators/streamtube/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="streamtube", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_coloraxis.py b/packages/python/plotly/plotly/validators/streamtube/_coloraxis.py index a0dc51986c..bddcacd9e0 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/streamtube/_coloraxis.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="coloraxis", parent_name="streamtube", **kwargs): dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_colorbar.py b/packages/python/plotly/plotly/validators/streamtube/_colorbar.py index 5aa58182e1..dd4e26d43c 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_colorbar.py +++ b/packages/python/plotly/plotly/validators/streamtube/_colorbar.py @@ -147,6 +147,12 @@ def __init__(self, plotly_name="colorbar", parent_name="streamtube", **kwargs): a.streamtube.colorbar.tickformatstopdefaults), sets the default property values to use for elements of streamtube.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/streamtube/_colorscale.py b/packages/python/plotly/plotly/validators/streamtube/_colorscale.py index 17d67167e5..63ef903c07 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_colorscale.py +++ b/packages/python/plotly/plotly/validators/streamtube/_colorscale.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="colorscale", parent_name="streamtube", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_customdata.py b/packages/python/plotly/plotly/validators/streamtube/_customdata.py index fc86a6a0a7..5183718f36 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_customdata.py +++ b/packages/python/plotly/plotly/validators/streamtube/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="streamtube", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_customdatasrc.py b/packages/python/plotly/plotly/validators/streamtube/_customdatasrc.py index 08c9849560..d42ea01894 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/streamtube/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="streamtube", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_hoverinfo.py b/packages/python/plotly/plotly/validators/streamtube/_hoverinfo.py index 4a5012bd3d..904b824e49 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/streamtube/_hoverinfo.py @@ -13,6 +13,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="streamtube", **kwargs): "flags", ["x", "y", "z", "u", "v", "w", "norm", "divergence", "text", "name"], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/streamtube/_hoverinfosrc.py index a340e5c0d3..774f9c3399 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/streamtube/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="streamtube", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_hovertemplate.py b/packages/python/plotly/plotly/validators/streamtube/_hovertemplate.py index 7e901fb980..5d43161fd4 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/streamtube/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="streamtube", **kwar parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/streamtube/_hovertemplatesrc.py index 9c83fa6bed..4f0aae547e 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/streamtube/_hovertemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_hovertext.py b/packages/python/plotly/plotly/validators/streamtube/_hovertext.py index 48e9ffdffe..e2023159fe 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_hovertext.py +++ b/packages/python/plotly/plotly/validators/streamtube/_hovertext.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertext", parent_name="streamtube", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_ids.py b/packages/python/plotly/plotly/validators/streamtube/_ids.py index 536d575eeb..2ee82ddf47 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_ids.py +++ b/packages/python/plotly/plotly/validators/streamtube/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="streamtube", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_idssrc.py b/packages/python/plotly/plotly/validators/streamtube/_idssrc.py index d3eef3ae5a..5fecf498d6 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_idssrc.py +++ b/packages/python/plotly/plotly/validators/streamtube/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="streamtube", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_legendgroup.py b/packages/python/plotly/plotly/validators/streamtube/_legendgroup.py index 3e9db92629..43aa702fd3 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/streamtube/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="streamtube", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_maxdisplayed.py b/packages/python/plotly/plotly/validators/streamtube/_maxdisplayed.py index e5df37d6e2..33ccb67046 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_maxdisplayed.py +++ b/packages/python/plotly/plotly/validators/streamtube/_maxdisplayed.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="maxdisplayed", parent_name="streamtube", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_meta.py b/packages/python/plotly/plotly/validators/streamtube/_meta.py index f96ee0ded7..d2afe3563a 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_meta.py +++ b/packages/python/plotly/plotly/validators/streamtube/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="streamtube", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_metasrc.py b/packages/python/plotly/plotly/validators/streamtube/_metasrc.py index 6175531d80..6e9309f4c2 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_metasrc.py +++ b/packages/python/plotly/plotly/validators/streamtube/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="streamtube", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_name.py b/packages/python/plotly/plotly/validators/streamtube/_name.py index 49b27fbe6f..fa2585a7cf 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_name.py +++ b/packages/python/plotly/plotly/validators/streamtube/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="streamtube", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_opacity.py b/packages/python/plotly/plotly/validators/streamtube/_opacity.py index 954cfc8875..4eac24d205 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_opacity.py +++ b/packages/python/plotly/plotly/validators/streamtube/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="streamtube", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_reversescale.py b/packages/python/plotly/plotly/validators/streamtube/_reversescale.py index 1feca81f0a..fb7df05a98 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_reversescale.py +++ b/packages/python/plotly/plotly/validators/streamtube/_reversescale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="reversescale", parent_name="streamtube", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_scene.py b/packages/python/plotly/plotly/validators/streamtube/_scene.py index 9f0a1163ce..3014357d50 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_scene.py +++ b/packages/python/plotly/plotly/validators/streamtube/_scene.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="scene", parent_name="streamtube", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "scene"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_showlegend.py b/packages/python/plotly/plotly/validators/streamtube/_showlegend.py index 4f6a6b7b18..1dececc377 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_showlegend.py +++ b/packages/python/plotly/plotly/validators/streamtube/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="streamtube", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_showscale.py b/packages/python/plotly/plotly/validators/streamtube/_showscale.py index c91458860b..02fb2bbdc2 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_showscale.py +++ b/packages/python/plotly/plotly/validators/streamtube/_showscale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showscale", parent_name="streamtube", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_sizeref.py b/packages/python/plotly/plotly/validators/streamtube/_sizeref.py index 844a40c326..0c0038b20b 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_sizeref.py +++ b/packages/python/plotly/plotly/validators/streamtube/_sizeref.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="sizeref", parent_name="streamtube", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_text.py b/packages/python/plotly/plotly/validators/streamtube/_text.py index d3f6ed9d12..5237120dd5 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_text.py +++ b/packages/python/plotly/plotly/validators/streamtube/_text.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="text", parent_name="streamtube", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_u.py b/packages/python/plotly/plotly/validators/streamtube/_u.py index aa285c8010..9f475e8f6e 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_u.py +++ b/packages/python/plotly/plotly/validators/streamtube/_u.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="u", parent_name="streamtube", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_uhoverformat.py b/packages/python/plotly/plotly/validators/streamtube/_uhoverformat.py new file mode 100644 index 0000000000..4d167d9bb6 --- /dev/null +++ b/packages/python/plotly/plotly/validators/streamtube/_uhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class UhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="uhoverformat", parent_name="streamtube", **kwargs): + super(UhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_uid.py b/packages/python/plotly/plotly/validators/streamtube/_uid.py index 4c77d4855e..1cbdcdd86b 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_uid.py +++ b/packages/python/plotly/plotly/validators/streamtube/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="streamtube", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_uirevision.py b/packages/python/plotly/plotly/validators/streamtube/_uirevision.py index 328227b701..194af1035b 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_uirevision.py +++ b/packages/python/plotly/plotly/validators/streamtube/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="streamtube", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_usrc.py b/packages/python/plotly/plotly/validators/streamtube/_usrc.py index b4524aa156..0bd75c3fe0 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_usrc.py +++ b/packages/python/plotly/plotly/validators/streamtube/_usrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="usrc", parent_name="streamtube", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_v.py b/packages/python/plotly/plotly/validators/streamtube/_v.py index 6889d3de10..7c452da896 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_v.py +++ b/packages/python/plotly/plotly/validators/streamtube/_v.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="v", parent_name="streamtube", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_vhoverformat.py b/packages/python/plotly/plotly/validators/streamtube/_vhoverformat.py new file mode 100644 index 0000000000..6bf0b24bb4 --- /dev/null +++ b/packages/python/plotly/plotly/validators/streamtube/_vhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class VhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="vhoverformat", parent_name="streamtube", **kwargs): + super(VhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_visible.py b/packages/python/plotly/plotly/validators/streamtube/_visible.py index 97b46d6dbc..fc1dbe7ce9 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_visible.py +++ b/packages/python/plotly/plotly/validators/streamtube/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="streamtube", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_vsrc.py b/packages/python/plotly/plotly/validators/streamtube/_vsrc.py index 3b9a200600..aa2e4a2783 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_vsrc.py +++ b/packages/python/plotly/plotly/validators/streamtube/_vsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="vsrc", parent_name="streamtube", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_w.py b/packages/python/plotly/plotly/validators/streamtube/_w.py index 698dd887a2..79a6629035 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_w.py +++ b/packages/python/plotly/plotly/validators/streamtube/_w.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="w", parent_name="streamtube", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_whoverformat.py b/packages/python/plotly/plotly/validators/streamtube/_whoverformat.py new file mode 100644 index 0000000000..e8abe087f9 --- /dev/null +++ b/packages/python/plotly/plotly/validators/streamtube/_whoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class WhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="whoverformat", parent_name="streamtube", **kwargs): + super(WhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_wsrc.py b/packages/python/plotly/plotly/validators/streamtube/_wsrc.py index df09cdf237..04c25c3766 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_wsrc.py +++ b/packages/python/plotly/plotly/validators/streamtube/_wsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="wsrc", parent_name="streamtube", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_x.py b/packages/python/plotly/plotly/validators/streamtube/_x.py index 6043ce706c..4dfd27ba66 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_x.py +++ b/packages/python/plotly/plotly/validators/streamtube/_x.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x", parent_name="streamtube", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_xhoverformat.py b/packages/python/plotly/plotly/validators/streamtube/_xhoverformat.py new file mode 100644 index 0000000000..4cc4d207a0 --- /dev/null +++ b/packages/python/plotly/plotly/validators/streamtube/_xhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class XhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="xhoverformat", parent_name="streamtube", **kwargs): + super(XhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_xsrc.py b/packages/python/plotly/plotly/validators/streamtube/_xsrc.py index 818095db24..59a14f6416 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_xsrc.py +++ b/packages/python/plotly/plotly/validators/streamtube/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="streamtube", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_y.py b/packages/python/plotly/plotly/validators/streamtube/_y.py index a7e8aa5f74..3bd7361ca9 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_y.py +++ b/packages/python/plotly/plotly/validators/streamtube/_y.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y", parent_name="streamtube", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_yhoverformat.py b/packages/python/plotly/plotly/validators/streamtube/_yhoverformat.py new file mode 100644 index 0000000000..5c6e43faa2 --- /dev/null +++ b/packages/python/plotly/plotly/validators/streamtube/_yhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class YhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="yhoverformat", parent_name="streamtube", **kwargs): + super(YhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_ysrc.py b/packages/python/plotly/plotly/validators/streamtube/_ysrc.py index eb72a2a620..697294cd60 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_ysrc.py +++ b/packages/python/plotly/plotly/validators/streamtube/_ysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ysrc", parent_name="streamtube", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_z.py b/packages/python/plotly/plotly/validators/streamtube/_z.py index 3b4b3c67b9..583297c8c5 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_z.py +++ b/packages/python/plotly/plotly/validators/streamtube/_z.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="z", parent_name="streamtube", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_zhoverformat.py b/packages/python/plotly/plotly/validators/streamtube/_zhoverformat.py new file mode 100644 index 0000000000..4815b736ed --- /dev/null +++ b/packages/python/plotly/plotly/validators/streamtube/_zhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class ZhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="zhoverformat", parent_name="streamtube", **kwargs): + super(ZhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/streamtube/_zsrc.py b/packages/python/plotly/plotly/validators/streamtube/_zsrc.py index adfa225452..e4b248582a 100644 --- a/packages/python/plotly/plotly/validators/streamtube/_zsrc.py +++ b/packages/python/plotly/plotly/validators/streamtube/_zsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="zsrc", parent_name="streamtube", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/__init__.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_bgcolor.py index 8e9bae28e8..a0775eadd0 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_bordercolor.py index 3ba86bbcd4..a2a027503b 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_borderwidth.py index b2f656f06e..f9f96a1820 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_dtick.py index 618bada9c8..442b299f62 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_exponentformat.py index 5b622d8c74..991ee0b5bf 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_exponentformat.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_len.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_len.py index 8e6079b910..aef0a0fde8 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_len.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="len", parent_name="streamtube.colorbar", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_lenmode.py index bb00c829f7..5b294395d0 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_lenmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_minexponent.py index ed8017d1e1..6ba6a742e6 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_nticks.py index d938bb867a..560f16b5de 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_outlinecolor.py index 306a623e10..a81392a86a 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_outlinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_outlinewidth.py index 82d0b2cb4b..4d54c5d1c9 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_outlinewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_separatethousands.py index 4be3465165..5f5e9358aa 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_showexponent.py index cc5c295d71..14166cb2b3 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_showticklabels.py index 1b2244a31e..39db777e06 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_showticklabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_showtickprefix.py index 4ff5a42c87..25fb261217 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_showtickprefix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_showticksuffix.py index 8d58897b61..324ee88fb3 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_showticksuffix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_thickness.py index d3895732e4..1001e71f35 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_thicknessmode.py index 64f14a55de..76c9644591 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_thicknessmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_tick0.py index e1190bb2ea..65560a373b 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickangle.py index 23bfdda314..9abb26bb48 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickcolor.py index 7ad6c0636c..2faba83030 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickformat.py index 6167674be1..96c39710c2 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..b440436ba9 --- /dev/null +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="streamtube.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "colorbars"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticklabelposition.py index 792c42a7cd..7fe90f7c35 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticklen.py index 64fea49775..ce5bedf2c8 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickmode.py index a02b163aa7..93abcb47b4 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickprefix.py index be2201e9f3..bc95a8b5dd 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticks.py index 3fd32b4122..31f30c48b1 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticksuffix.py index ab3dbf58ea..6e4a53ea34 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticktext.py index 60a0923b76..05f7e86019 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticktextsrc.py index 75fc04acc4..aebb040186 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickvals.py index 66e2ec0d3c..957c91e2c6 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickvalssrc.py index 8469fa4862..f8fef1d2be 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickwidth.py index 38cc83104e..b2ea5dd659 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_x.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_x.py index afd7d4806f..cb66a015c5 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_x.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="x", parent_name="streamtube.colorbar", **kwargs) edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_xanchor.py index 424214e938..12aed078f4 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_xpad.py index 31ecc2ccda..026989ba9d 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_xpad.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xpad", parent_name="streamtube.colorbar", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_y.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_y.py index 524ccfd843..459c6b5389 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_y.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="y", parent_name="streamtube.colorbar", **kwargs) edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_yanchor.py index c3ee9cab45..ff42de3726 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/_ypad.py index 680ac55b1b..98e7a8c740 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/_ypad.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ypad", parent_name="streamtube.colorbar", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/tickfont/_color.py index 2163b9acbb..a8a472eb74 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/tickfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/tickfont/_family.py index 15fba8d105..b2afc94de4 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/tickfont/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/tickfont/_size.py index 95a562e8da..ca8efb2238 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/tickfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/tickformatstop/_dtickrange.py index 8098610b0b..8e108719c2 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "colorbars"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/tickformatstop/_enabled.py index 8d57664e27..d1be0fd7a8 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/tickformatstop/_name.py index 5f282bebfa..4e63f36807 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/tickformatstop/_templateitemname.py index e8b39fbddd..b0b3b0ba2e 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/tickformatstop/_value.py index e3bf69eb4b..f108b4f812 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/title/_side.py index 6e0a48ebff..73c922a1ef 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/title/_side.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/title/_text.py index ef2fe01c31..df70b4df7b 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/title/font/_color.py index 4fcac78479..70fca10701 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/title/font/_family.py index 07909111ff..17cc40f27f 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/streamtube/colorbar/title/font/_size.py index 30342cd861..4c3efebcc7 100644 --- a/packages/python/plotly/plotly/validators/streamtube/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/streamtube/colorbar/title/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_align.py index 51f87ca1cb..94a495d103 100644 --- a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_align.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_alignsrc.py index 06675c794c..f4a168e419 100644 --- a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_bgcolor.py index e6ce4ccad5..863ccecb86 100644 --- a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_bgcolorsrc.py index 31f4368c51..7802197df4 100644 --- a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_bordercolor.py index d2491f5533..b0d6ca37ff 100644 --- a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_bordercolorsrc.py index 17b0a98834..89029c6a90 100644 --- a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_bordercolorsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_namelength.py index 40c3bedf17..f9110e3aa7 100644 --- a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_namelengthsrc.py index 7c0c5b2bac..1c43a0552c 100644 --- a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/font/_color.py index eeddad72b0..8020707f14 100644 --- a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/font/_colorsrc.py index 0618dad49e..d1922c3ec5 100644 --- a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/font/_family.py index aa68e87798..8b633205f3 100644 --- a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/font/_familysrc.py index ac2a499d8b..2bd169f926 100644 --- a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/font/_familysrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/font/_size.py index 4088c70141..39ada7a4c9 100644 --- a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/font/_sizesrc.py index 590d11a616..ffe786440a 100644 --- a/packages/python/plotly/plotly/validators/streamtube/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/streamtube/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/lighting/_ambient.py b/packages/python/plotly/plotly/validators/streamtube/lighting/_ambient.py index f19d43603a..40e9a515c7 100644 --- a/packages/python/plotly/plotly/validators/streamtube/lighting/_ambient.py +++ b/packages/python/plotly/plotly/validators/streamtube/lighting/_ambient.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/lighting/_diffuse.py b/packages/python/plotly/plotly/validators/streamtube/lighting/_diffuse.py index f143248431..6b739f7aa4 100644 --- a/packages/python/plotly/plotly/validators/streamtube/lighting/_diffuse.py +++ b/packages/python/plotly/plotly/validators/streamtube/lighting/_diffuse.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/lighting/_facenormalsepsilon.py b/packages/python/plotly/plotly/validators/streamtube/lighting/_facenormalsepsilon.py index 4a07cc6a3d..7ef5e89317 100644 --- a/packages/python/plotly/plotly/validators/streamtube/lighting/_facenormalsepsilon.py +++ b/packages/python/plotly/plotly/validators/streamtube/lighting/_facenormalsepsilon.py @@ -14,6 +14,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/lighting/_fresnel.py b/packages/python/plotly/plotly/validators/streamtube/lighting/_fresnel.py index f4218a718f..29e0b92e02 100644 --- a/packages/python/plotly/plotly/validators/streamtube/lighting/_fresnel.py +++ b/packages/python/plotly/plotly/validators/streamtube/lighting/_fresnel.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 5), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/lighting/_roughness.py b/packages/python/plotly/plotly/validators/streamtube/lighting/_roughness.py index d480fcc24c..4ad122d6e0 100644 --- a/packages/python/plotly/plotly/validators/streamtube/lighting/_roughness.py +++ b/packages/python/plotly/plotly/validators/streamtube/lighting/_roughness.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/lighting/_specular.py b/packages/python/plotly/plotly/validators/streamtube/lighting/_specular.py index 6bf79f42e3..5c2c66ef93 100644 --- a/packages/python/plotly/plotly/validators/streamtube/lighting/_specular.py +++ b/packages/python/plotly/plotly/validators/streamtube/lighting/_specular.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 2), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/lighting/_vertexnormalsepsilon.py b/packages/python/plotly/plotly/validators/streamtube/lighting/_vertexnormalsepsilon.py index c7c4aa51c1..c2c7376d21 100644 --- a/packages/python/plotly/plotly/validators/streamtube/lighting/_vertexnormalsepsilon.py +++ b/packages/python/plotly/plotly/validators/streamtube/lighting/_vertexnormalsepsilon.py @@ -14,6 +14,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/lightposition/_x.py b/packages/python/plotly/plotly/validators/streamtube/lightposition/_x.py index 21a6c69c9b..0414293c9d 100644 --- a/packages/python/plotly/plotly/validators/streamtube/lightposition/_x.py +++ b/packages/python/plotly/plotly/validators/streamtube/lightposition/_x.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 100000), min=kwargs.pop("min", -100000), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/lightposition/_y.py b/packages/python/plotly/plotly/validators/streamtube/lightposition/_y.py index 4be91d74c7..0c56537db5 100644 --- a/packages/python/plotly/plotly/validators/streamtube/lightposition/_y.py +++ b/packages/python/plotly/plotly/validators/streamtube/lightposition/_y.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 100000), min=kwargs.pop("min", -100000), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/lightposition/_z.py b/packages/python/plotly/plotly/validators/streamtube/lightposition/_z.py index 6e60f06a1e..19d19751fa 100644 --- a/packages/python/plotly/plotly/validators/streamtube/lightposition/_z.py +++ b/packages/python/plotly/plotly/validators/streamtube/lightposition/_z.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 100000), min=kwargs.pop("min", -100000), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/starts/_x.py b/packages/python/plotly/plotly/validators/streamtube/starts/_x.py index 9e598b4358..6e174b5450 100644 --- a/packages/python/plotly/plotly/validators/streamtube/starts/_x.py +++ b/packages/python/plotly/plotly/validators/streamtube/starts/_x.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x", parent_name="streamtube.starts", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/starts/_xsrc.py b/packages/python/plotly/plotly/validators/streamtube/starts/_xsrc.py index c065ee0f87..f057e6bbbf 100644 --- a/packages/python/plotly/plotly/validators/streamtube/starts/_xsrc.py +++ b/packages/python/plotly/plotly/validators/streamtube/starts/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="streamtube.starts", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/starts/_y.py b/packages/python/plotly/plotly/validators/streamtube/starts/_y.py index eb7584bfdc..5c394446db 100644 --- a/packages/python/plotly/plotly/validators/streamtube/starts/_y.py +++ b/packages/python/plotly/plotly/validators/streamtube/starts/_y.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y", parent_name="streamtube.starts", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/starts/_ysrc.py b/packages/python/plotly/plotly/validators/streamtube/starts/_ysrc.py index fbe0fe27d7..c33836bdad 100644 --- a/packages/python/plotly/plotly/validators/streamtube/starts/_ysrc.py +++ b/packages/python/plotly/plotly/validators/streamtube/starts/_ysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ysrc", parent_name="streamtube.starts", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/starts/_z.py b/packages/python/plotly/plotly/validators/streamtube/starts/_z.py index be1e394474..1a61259e6c 100644 --- a/packages/python/plotly/plotly/validators/streamtube/starts/_z.py +++ b/packages/python/plotly/plotly/validators/streamtube/starts/_z.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="z", parent_name="streamtube.starts", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/starts/_zsrc.py b/packages/python/plotly/plotly/validators/streamtube/starts/_zsrc.py index e027356543..8c665ab4d2 100644 --- a/packages/python/plotly/plotly/validators/streamtube/starts/_zsrc.py +++ b/packages/python/plotly/plotly/validators/streamtube/starts/_zsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="zsrc", parent_name="streamtube.starts", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/streamtube/stream/_maxpoints.py index 6f618663b1..7c17d2e8c6 100644 --- a/packages/python/plotly/plotly/validators/streamtube/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/streamtube/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/streamtube/stream/_token.py b/packages/python/plotly/plotly/validators/streamtube/stream/_token.py index 2bd8c64954..aedd1e0d89 100644 --- a/packages/python/plotly/plotly/validators/streamtube/stream/_token.py +++ b/packages/python/plotly/plotly/validators/streamtube/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="streamtube.stream", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_branchvalues.py b/packages/python/plotly/plotly/validators/sunburst/_branchvalues.py index 0903d1d1db..3eeb7ff107 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_branchvalues.py +++ b/packages/python/plotly/plotly/validators/sunburst/_branchvalues.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="branchvalues", parent_name="sunburst", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["remainder", "total"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_count.py b/packages/python/plotly/plotly/validators/sunburst/_count.py index 765822a30a..eee06b555c 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_count.py +++ b/packages/python/plotly/plotly/validators/sunburst/_count.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="count", parent_name="sunburst", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), flags=kwargs.pop("flags", ["branches", "leaves"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_customdata.py b/packages/python/plotly/plotly/validators/sunburst/_customdata.py index 2f6514244a..ad738df55f 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_customdata.py +++ b/packages/python/plotly/plotly/validators/sunburst/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="sunburst", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_customdatasrc.py b/packages/python/plotly/plotly/validators/sunburst/_customdatasrc.py index de5eec3071..e90e30cda0 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="sunburst", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_hoverinfo.py b/packages/python/plotly/plotly/validators/sunburst/_hoverinfo.py index fae8b35651..ca47e1432d 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/sunburst/_hoverinfo.py @@ -22,6 +22,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="sunburst", **kwargs): "percent parent", ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/sunburst/_hoverinfosrc.py index bc855383e0..037d0ddb85 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="sunburst", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_hovertemplate.py b/packages/python/plotly/plotly/validators/sunburst/_hovertemplate.py index 904f20218f..8955c1f056 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/sunburst/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="sunburst", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/sunburst/_hovertemplatesrc.py index d9b9daf6a3..856f84fbf5 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/_hovertemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_hovertext.py b/packages/python/plotly/plotly/validators/sunburst/_hovertext.py index 077316fb54..b373ee70d5 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_hovertext.py +++ b/packages/python/plotly/plotly/validators/sunburst/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="sunburst", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_hovertextsrc.py b/packages/python/plotly/plotly/validators/sunburst/_hovertextsrc.py index 6d27191bd9..7428224cba 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="sunburst", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_ids.py b/packages/python/plotly/plotly/validators/sunburst/_ids.py index 73dd4936c9..cc565bfc59 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_ids.py +++ b/packages/python/plotly/plotly/validators/sunburst/_ids.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ids", parent_name="sunburst", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_idssrc.py b/packages/python/plotly/plotly/validators/sunburst/_idssrc.py index 08e47b941b..fafaa9a84b 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_idssrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="sunburst", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_insidetextorientation.py b/packages/python/plotly/plotly/validators/sunburst/_insidetextorientation.py index 99088a08ab..84492f2f97 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_insidetextorientation.py +++ b/packages/python/plotly/plotly/validators/sunburst/_insidetextorientation.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["horizontal", "radial", "tangential", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_labels.py b/packages/python/plotly/plotly/validators/sunburst/_labels.py index 6c337958a3..c00191d8f5 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_labels.py +++ b/packages/python/plotly/plotly/validators/sunburst/_labels.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="labels", parent_name="sunburst", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_labelssrc.py b/packages/python/plotly/plotly/validators/sunburst/_labelssrc.py index db19b9fcf4..0260caef12 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_labelssrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/_labelssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="labelssrc", parent_name="sunburst", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_level.py b/packages/python/plotly/plotly/validators/sunburst/_level.py index 3f01d91839..75f9fd44b1 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_level.py +++ b/packages/python/plotly/plotly/validators/sunburst/_level.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="level", parent_name="sunburst", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_maxdepth.py b/packages/python/plotly/plotly/validators/sunburst/_maxdepth.py index 0e1ef0605f..18d0891246 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_maxdepth.py +++ b/packages/python/plotly/plotly/validators/sunburst/_maxdepth.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="maxdepth", parent_name="sunburst", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_meta.py b/packages/python/plotly/plotly/validators/sunburst/_meta.py index d7f3d98240..88a7764e8a 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_meta.py +++ b/packages/python/plotly/plotly/validators/sunburst/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="sunburst", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_metasrc.py b/packages/python/plotly/plotly/validators/sunburst/_metasrc.py index 527c2c6710..60f3c784ec 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_metasrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="sunburst", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_name.py b/packages/python/plotly/plotly/validators/sunburst/_name.py index 4ca91dd164..2f1bcd9dcf 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_name.py +++ b/packages/python/plotly/plotly/validators/sunburst/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="sunburst", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_opacity.py b/packages/python/plotly/plotly/validators/sunburst/_opacity.py index a29f4e12e8..f7f1292953 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_opacity.py +++ b/packages/python/plotly/plotly/validators/sunburst/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="sunburst", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_parents.py b/packages/python/plotly/plotly/validators/sunburst/_parents.py index 9fcb0e779c..c2335452d9 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_parents.py +++ b/packages/python/plotly/plotly/validators/sunburst/_parents.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="parents", parent_name="sunburst", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_parentssrc.py b/packages/python/plotly/plotly/validators/sunburst/_parentssrc.py index eb4f116ced..3f4a6c637a 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_parentssrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/_parentssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="parentssrc", parent_name="sunburst", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_rotation.py b/packages/python/plotly/plotly/validators/sunburst/_rotation.py index eb5f6eaeba..53cf17154f 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_rotation.py +++ b/packages/python/plotly/plotly/validators/sunburst/_rotation.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="rotation", parent_name="sunburst", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_sort.py b/packages/python/plotly/plotly/validators/sunburst/_sort.py index 1c17437279..98e5f67cf6 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_sort.py +++ b/packages/python/plotly/plotly/validators/sunburst/_sort.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="sort", parent_name="sunburst", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_text.py b/packages/python/plotly/plotly/validators/sunburst/_text.py index 950eeb3cb7..4ac3f8e5b1 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_text.py +++ b/packages/python/plotly/plotly/validators/sunburst/_text.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="text", parent_name="sunburst", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_textinfo.py b/packages/python/plotly/plotly/validators/sunburst/_textinfo.py index 41004e7b50..1d67c2ba4b 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_textinfo.py +++ b/packages/python/plotly/plotly/validators/sunburst/_textinfo.py @@ -20,6 +20,5 @@ def __init__(self, plotly_name="textinfo", parent_name="sunburst", **kwargs): "percent parent", ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_textsrc.py b/packages/python/plotly/plotly/validators/sunburst/_textsrc.py index e651f76b99..dc34bb51e7 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_textsrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="sunburst", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_texttemplate.py b/packages/python/plotly/plotly/validators/sunburst/_texttemplate.py index 6fc9642eb7..ee6e1fca5e 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_texttemplate.py +++ b/packages/python/plotly/plotly/validators/sunburst/_texttemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="texttemplate", parent_name="sunburst", **kwargs) parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_texttemplatesrc.py b/packages/python/plotly/plotly/validators/sunburst/_texttemplatesrc.py index e13327efda..3850dad02a 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_texttemplatesrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/_texttemplatesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="texttemplatesrc", parent_name="sunburst", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_uid.py b/packages/python/plotly/plotly/validators/sunburst/_uid.py index bd71b27989..a74ed64902 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_uid.py +++ b/packages/python/plotly/plotly/validators/sunburst/_uid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="uid", parent_name="sunburst", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_uirevision.py b/packages/python/plotly/plotly/validators/sunburst/_uirevision.py index 428aa028f8..0c6d17f791 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_uirevision.py +++ b/packages/python/plotly/plotly/validators/sunburst/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="sunburst", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_values.py b/packages/python/plotly/plotly/validators/sunburst/_values.py index 4347ae6974..d56264f763 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_values.py +++ b/packages/python/plotly/plotly/validators/sunburst/_values.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="values", parent_name="sunburst", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_valuessrc.py b/packages/python/plotly/plotly/validators/sunburst/_valuessrc.py index fd26301a5c..d0b69c192c 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_valuessrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/_valuessrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="valuessrc", parent_name="sunburst", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/_visible.py b/packages/python/plotly/plotly/validators/sunburst/_visible.py index 2a3ae55c01..eca969d2f3 100644 --- a/packages/python/plotly/plotly/validators/sunburst/_visible.py +++ b/packages/python/plotly/plotly/validators/sunburst/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="sunburst", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/domain/_column.py b/packages/python/plotly/plotly/validators/sunburst/domain/_column.py index 99e22a9143..66a33e9bc4 100644 --- a/packages/python/plotly/plotly/validators/sunburst/domain/_column.py +++ b/packages/python/plotly/plotly/validators/sunburst/domain/_column.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="column", parent_name="sunburst.domain", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/domain/_row.py b/packages/python/plotly/plotly/validators/sunburst/domain/_row.py index 7680b96298..e8a6c35d63 100644 --- a/packages/python/plotly/plotly/validators/sunburst/domain/_row.py +++ b/packages/python/plotly/plotly/validators/sunburst/domain/_row.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="row", parent_name="sunburst.domain", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/domain/_x.py b/packages/python/plotly/plotly/validators/sunburst/domain/_x.py index 8717cd5e6a..03ac0a1aff 100644 --- a/packages/python/plotly/plotly/validators/sunburst/domain/_x.py +++ b/packages/python/plotly/plotly/validators/sunburst/domain/_x.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="x", parent_name="sunburst.domain", **kwargs): {"valType": "number", "min": 0, "max": 1, "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/domain/_y.py b/packages/python/plotly/plotly/validators/sunburst/domain/_y.py index 350ebe57b6..8ab1bb696f 100644 --- a/packages/python/plotly/plotly/validators/sunburst/domain/_y.py +++ b/packages/python/plotly/plotly/validators/sunburst/domain/_y.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="y", parent_name="sunburst.domain", **kwargs): {"valType": "number", "min": 0, "max": 1, "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_align.py index 841b765f37..c387d3592f 100644 --- a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_align.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_alignsrc.py index e27ee42cf8..1870acd141 100644 --- a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_bgcolor.py index ad74a8c927..9a6dc748be 100644 --- a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_bgcolorsrc.py index a4f3eba8c2..4e835d8b90 100644 --- a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_bordercolor.py index dbe1e3f50f..dd2dc3d7f7 100644 --- a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_bordercolorsrc.py index 124edd016b..9c821f92d9 100644 --- a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_bordercolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_namelength.py index a19b58c301..53e20c5688 100644 --- a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_namelengthsrc.py index 38d7816790..082fca8402 100644 --- a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/font/_color.py index 1ceab2c94f..6bfdacd15d 100644 --- a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/font/_colorsrc.py index c1619e0ef4..92f8333d0c 100644 --- a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/font/_family.py index 950ee901f4..d0beb94487 100644 --- a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/font/_familysrc.py index 40cc6cdfca..f193764eba 100644 --- a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/font/_size.py index 7d8cf4d58e..c22b7b690f 100644 --- a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/font/_sizesrc.py index 2516e4da67..f1496977dd 100644 --- a/packages/python/plotly/plotly/validators/sunburst/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/insidetextfont/_color.py b/packages/python/plotly/plotly/validators/sunburst/insidetextfont/_color.py index 0ad28f98de..21aec85567 100644 --- a/packages/python/plotly/plotly/validators/sunburst/insidetextfont/_color.py +++ b/packages/python/plotly/plotly/validators/sunburst/insidetextfont/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/insidetextfont/_colorsrc.py b/packages/python/plotly/plotly/validators/sunburst/insidetextfont/_colorsrc.py index b7b9144df8..8b14a50ed0 100644 --- a/packages/python/plotly/plotly/validators/sunburst/insidetextfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/insidetextfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/insidetextfont/_family.py b/packages/python/plotly/plotly/validators/sunburst/insidetextfont/_family.py index 7145df6fef..aa061f37d6 100644 --- a/packages/python/plotly/plotly/validators/sunburst/insidetextfont/_family.py +++ b/packages/python/plotly/plotly/validators/sunburst/insidetextfont/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/insidetextfont/_familysrc.py b/packages/python/plotly/plotly/validators/sunburst/insidetextfont/_familysrc.py index 73005fd9c5..7c84d18d57 100644 --- a/packages/python/plotly/plotly/validators/sunburst/insidetextfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/insidetextfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/insidetextfont/_size.py b/packages/python/plotly/plotly/validators/sunburst/insidetextfont/_size.py index e317d0703d..5ebdf2d0b0 100644 --- a/packages/python/plotly/plotly/validators/sunburst/insidetextfont/_size.py +++ b/packages/python/plotly/plotly/validators/sunburst/insidetextfont/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/insidetextfont/_sizesrc.py b/packages/python/plotly/plotly/validators/sunburst/insidetextfont/_sizesrc.py index 07e3aeb505..4b20465378 100644 --- a/packages/python/plotly/plotly/validators/sunburst/insidetextfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/insidetextfont/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/leaf/_opacity.py b/packages/python/plotly/plotly/validators/sunburst/leaf/_opacity.py index c9b865d07a..63344bb22e 100644 --- a/packages/python/plotly/plotly/validators/sunburst/leaf/_opacity.py +++ b/packages/python/plotly/plotly/validators/sunburst/leaf/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="sunburst.leaf", **kwargs) edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/_autocolorscale.py b/packages/python/plotly/plotly/validators/sunburst/marker/_autocolorscale.py index 297a2cf0cf..ebf5947fe0 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/_cauto.py b/packages/python/plotly/plotly/validators/sunburst/marker/_cauto.py index 4745495be3..11107aab7e 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/_cauto.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/_cauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cauto", parent_name="sunburst.marker", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/_cmax.py b/packages/python/plotly/plotly/validators/sunburst/marker/_cmax.py index 1498539764..737139fac0 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/_cmax.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="sunburst.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/_cmid.py b/packages/python/plotly/plotly/validators/sunburst/marker/_cmid.py index 3df5169786..95b0e60076 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/_cmid.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="sunburst.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/_cmin.py b/packages/python/plotly/plotly/validators/sunburst/marker/_cmin.py index d80e743331..d8dd95d1fc 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/_cmin.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="sunburst.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/_coloraxis.py b/packages/python/plotly/plotly/validators/sunburst/marker/_coloraxis.py index 0eb0ccdfeb..18aa5004c3 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/_coloraxis.py @@ -11,6 +11,5 @@ def __init__( dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/_colorbar.py b/packages/python/plotly/plotly/validators/sunburst/marker/_colorbar.py index 40a27ca6e5..a2f98c61fe 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/_colorbar.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/_colorbar.py @@ -148,6 +148,12 @@ def __init__(self, plotly_name="colorbar", parent_name="sunburst.marker", **kwar ts), sets the default property values to use for elements of sunburst.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/_colors.py b/packages/python/plotly/plotly/validators/sunburst/marker/_colors.py index d399c98d6a..0a2c446107 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/_colors.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/_colors.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="colors", parent_name="sunburst.marker", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/_colorscale.py b/packages/python/plotly/plotly/validators/sunburst/marker/_colorscale.py index 5b50d63948..a645b67075 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/_colorscale.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/_colorssrc.py b/packages/python/plotly/plotly/validators/sunburst/marker/_colorssrc.py index 555e95066b..7d591b4dbb 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/_colorssrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/_colorssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/_reversescale.py b/packages/python/plotly/plotly/validators/sunburst/marker/_reversescale.py index 81f07983ea..1e224fdf07 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/_reversescale.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/_showscale.py b/packages/python/plotly/plotly/validators/sunburst/marker/_showscale.py index 906c86ce1b..0795e4a45f 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/_showscale.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/_showscale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/__init__.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_bgcolor.py index 99ef188704..4642e58f5c 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_bordercolor.py index d437cb9bc9..e367d79e29 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_bordercolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_borderwidth.py index dfcf71bf56..054564c075 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_borderwidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_dtick.py index 3cad6233c9..514536f008 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_exponentformat.py index 3e37dfa993..4ffa29d259 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_exponentformat.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_len.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_len.py index ea706e8e06..660e25c0a6 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_len.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_lenmode.py index 6dea67af60..d0ac8ae528 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_lenmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_minexponent.py index 9508b8bdb2..e4444d841c 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_minexponent.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_nticks.py index a07c86339f..76ef7366f7 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_outlinecolor.py index 00dc8ff6fe..486c5187d5 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_outlinecolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_outlinewidth.py index 3cd9fd78e1..2468025eca 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_outlinewidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_separatethousands.py index a1d3383852..d909bd4bab 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_showexponent.py index 68ccd42cb4..eb5fae60ec 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_showexponent.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_showticklabels.py index 13f7f5dff1..d3cca25906 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_showticklabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_showtickprefix.py index df7cbaf539..d3dfe28baf 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_showtickprefix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_showticksuffix.py index 755a5206ea..acef7dd745 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_showticksuffix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_thickness.py index e86562d708..b6795ed1cb 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_thicknessmode.py index d41e94722a..9f719e186b 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_thicknessmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tick0.py index f3561f91be..b2cdaff767 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickangle.py index 689ce8f611..dda6ee6706 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickcolor.py index 41d0ffa6fc..c7bcee03fd 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickformat.py index f2adc2da45..7fc848a44f 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..fa28b4f086 --- /dev/null +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="sunburst.marker.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "colorbars"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticklabelposition.py index 430a8b0491..333578f6b4 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticklen.py index cf21fa92c9..8dc4a8c57c 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickmode.py index 0e152ab285..f61217e219 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickprefix.py index cd723a174b..80c7aa3e77 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticks.py index 59031427ca..a7f7a21f73 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticksuffix.py index f9bb831356..776b02f962 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticktext.py index ab224c02ec..f8a240d79a 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticktextsrc.py index cb78d9e8de..50ba11b1a0 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ticktextsrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickvals.py index 8d30a0aa6c..97836b4ad2 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickvalssrc.py index 5306546dcf..d70bf66b10 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickvalssrc.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickwidth.py index d9afcdf586..34436a0115 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_x.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_x.py index 882a633e12..2b3fa3e22c 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_x.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_xanchor.py index f2a257565b..c593f30ed5 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_xpad.py index 044596fef7..a37a9e399a 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_xpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_y.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_y.py index 4cb81d3d7d..27d48505ce 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_y.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_yanchor.py index c8cf17ccc6..d720c092b5 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ypad.py index 38a0118518..a7c06c13f4 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/_ypad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickfont/_color.py index ee1bd513e9..cf25fbb73c 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickfont/_family.py index 277a3a6a9d..275d530b31 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickfont/_size.py index d32a7de204..d519050db2 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickformatstop/_dtickrange.py index 5f8502b111..e57d8008ce 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "colorbars"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickformatstop/_enabled.py index c9ab88d4c9..9ef13d1ed5 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickformatstop/_name.py index 2641ef93e4..5f687c2954 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickformatstop/_templateitemname.py index 8fd96cb329..b319498571 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickformatstop/_value.py index 6d6909934c..1819470b77 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/title/_side.py index 7fe08649bd..d829cfc6a1 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/title/_side.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/title/_text.py index b888ab0c68..0eb6d7bcce 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/title/font/_color.py index 9186206494..92d1f190d0 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/title/font/_family.py index a0b8236aa6..d229c5ea26 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/title/font/_size.py index 97484b1222..7cb9cc2e6f 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/colorbar/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/line/_color.py b/packages/python/plotly/plotly/validators/sunburst/marker/line/_color.py index d53ccd9a74..4a8e9c1970 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/line/_color.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/line/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/line/_colorsrc.py b/packages/python/plotly/plotly/validators/sunburst/marker/line/_colorsrc.py index 7f90dddcb8..46e0bfbe87 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/line/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/line/_width.py b/packages/python/plotly/plotly/validators/sunburst/marker/line/_width.py index 1bae9eaffe..0304bbca4d 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/line/_width.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/line/_width.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/marker/line/_widthsrc.py b/packages/python/plotly/plotly/validators/sunburst/marker/line/_widthsrc.py index 975f25cce6..dd7f035ddb 100644 --- a/packages/python/plotly/plotly/validators/sunburst/marker/line/_widthsrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/marker/line/_widthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/outsidetextfont/_color.py b/packages/python/plotly/plotly/validators/sunburst/outsidetextfont/_color.py index 8e96c81083..b0336e59d0 100644 --- a/packages/python/plotly/plotly/validators/sunburst/outsidetextfont/_color.py +++ b/packages/python/plotly/plotly/validators/sunburst/outsidetextfont/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/outsidetextfont/_colorsrc.py b/packages/python/plotly/plotly/validators/sunburst/outsidetextfont/_colorsrc.py index 9051eb8868..157ce915cf 100644 --- a/packages/python/plotly/plotly/validators/sunburst/outsidetextfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/outsidetextfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/outsidetextfont/_family.py b/packages/python/plotly/plotly/validators/sunburst/outsidetextfont/_family.py index bb074d4c90..1af8786b64 100644 --- a/packages/python/plotly/plotly/validators/sunburst/outsidetextfont/_family.py +++ b/packages/python/plotly/plotly/validators/sunburst/outsidetextfont/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/outsidetextfont/_familysrc.py b/packages/python/plotly/plotly/validators/sunburst/outsidetextfont/_familysrc.py index 754905f72e..db09897d01 100644 --- a/packages/python/plotly/plotly/validators/sunburst/outsidetextfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/outsidetextfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/outsidetextfont/_size.py b/packages/python/plotly/plotly/validators/sunburst/outsidetextfont/_size.py index 97556255bc..7315cbb274 100644 --- a/packages/python/plotly/plotly/validators/sunburst/outsidetextfont/_size.py +++ b/packages/python/plotly/plotly/validators/sunburst/outsidetextfont/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/outsidetextfont/_sizesrc.py b/packages/python/plotly/plotly/validators/sunburst/outsidetextfont/_sizesrc.py index 35aad934fe..84b97f3c7e 100644 --- a/packages/python/plotly/plotly/validators/sunburst/outsidetextfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/outsidetextfont/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/root/_color.py b/packages/python/plotly/plotly/validators/sunburst/root/_color.py index 2e5d0c451f..3461730a0c 100644 --- a/packages/python/plotly/plotly/validators/sunburst/root/_color.py +++ b/packages/python/plotly/plotly/validators/sunburst/root/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="sunburst.root", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/sunburst/stream/_maxpoints.py index 45656869e3..f50ffadbcd 100644 --- a/packages/python/plotly/plotly/validators/sunburst/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/sunburst/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/stream/_token.py b/packages/python/plotly/plotly/validators/sunburst/stream/_token.py index 1c7361ce0a..1cb10d4520 100644 --- a/packages/python/plotly/plotly/validators/sunburst/stream/_token.py +++ b/packages/python/plotly/plotly/validators/sunburst/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="sunburst.stream", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/textfont/_color.py b/packages/python/plotly/plotly/validators/sunburst/textfont/_color.py index 177f435e2c..1eb6e20002 100644 --- a/packages/python/plotly/plotly/validators/sunburst/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/sunburst/textfont/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="sunburst.textfont", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/textfont/_colorsrc.py b/packages/python/plotly/plotly/validators/sunburst/textfont/_colorsrc.py index d46ffe07d9..f3367419b7 100644 --- a/packages/python/plotly/plotly/validators/sunburst/textfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/textfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/textfont/_family.py b/packages/python/plotly/plotly/validators/sunburst/textfont/_family.py index 48bc96a048..213c3d0989 100644 --- a/packages/python/plotly/plotly/validators/sunburst/textfont/_family.py +++ b/packages/python/plotly/plotly/validators/sunburst/textfont/_family.py @@ -9,7 +9,6 @@ def __init__(self, plotly_name="family", parent_name="sunburst.textfont", **kwar array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/textfont/_familysrc.py b/packages/python/plotly/plotly/validators/sunburst/textfont/_familysrc.py index 27d3884181..dc82e20c68 100644 --- a/packages/python/plotly/plotly/validators/sunburst/textfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/textfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/textfont/_size.py b/packages/python/plotly/plotly/validators/sunburst/textfont/_size.py index d3de3327db..f6626a63bf 100644 --- a/packages/python/plotly/plotly/validators/sunburst/textfont/_size.py +++ b/packages/python/plotly/plotly/validators/sunburst/textfont/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="sunburst.textfont", **kwargs array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/sunburst/textfont/_sizesrc.py b/packages/python/plotly/plotly/validators/sunburst/textfont/_sizesrc.py index b3db8d664b..2c2b2b705a 100644 --- a/packages/python/plotly/plotly/validators/sunburst/textfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/sunburst/textfont/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/__init__.py b/packages/python/plotly/plotly/validators/surface/__init__.py index 3bbcccb1aa..98042fe415 100644 --- a/packages/python/plotly/plotly/validators/surface/__init__.py +++ b/packages/python/plotly/plotly/validators/surface/__init__.py @@ -2,12 +2,15 @@ if sys.version_info < (3, 7): from ._zsrc import ZsrcValidator + from ._zhoverformat import ZhoverformatValidator from ._zcalendar import ZcalendarValidator from ._z import ZValidator from ._ysrc import YsrcValidator + from ._yhoverformat import YhoverformatValidator from ._ycalendar import YcalendarValidator from ._y import YValidator from ._xsrc import XsrcValidator + from ._xhoverformat import XhoverformatValidator from ._xcalendar import XcalendarValidator from ._x import XValidator from ._visible import VisibleValidator @@ -60,12 +63,15 @@ [], [ "._zsrc.ZsrcValidator", + "._zhoverformat.ZhoverformatValidator", "._zcalendar.ZcalendarValidator", "._z.ZValidator", "._ysrc.YsrcValidator", + "._yhoverformat.YhoverformatValidator", "._ycalendar.YcalendarValidator", "._y.YValidator", "._xsrc.XsrcValidator", + "._xhoverformat.XhoverformatValidator", "._xcalendar.XcalendarValidator", "._x.XValidator", "._visible.VisibleValidator", diff --git a/packages/python/plotly/plotly/validators/surface/_autocolorscale.py b/packages/python/plotly/plotly/validators/surface/_autocolorscale.py index 1353099f12..22a40183d8 100644 --- a/packages/python/plotly/plotly/validators/surface/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/surface/_autocolorscale.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="autocolorscale", parent_name="surface", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_cauto.py b/packages/python/plotly/plotly/validators/surface/_cauto.py index 3e67decf05..c931176d82 100644 --- a/packages/python/plotly/plotly/validators/surface/_cauto.py +++ b/packages/python/plotly/plotly/validators/surface/_cauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cauto", parent_name="surface", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_cmax.py b/packages/python/plotly/plotly/validators/surface/_cmax.py index cfed7079d6..12c2da2800 100644 --- a/packages/python/plotly/plotly/validators/surface/_cmax.py +++ b/packages/python/plotly/plotly/validators/surface/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="surface", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_cmid.py b/packages/python/plotly/plotly/validators/surface/_cmid.py index 5806916ae0..fc16030f4f 100644 --- a/packages/python/plotly/plotly/validators/surface/_cmid.py +++ b/packages/python/plotly/plotly/validators/surface/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="surface", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_cmin.py b/packages/python/plotly/plotly/validators/surface/_cmin.py index 4dedc9a94c..fedc291dd9 100644 --- a/packages/python/plotly/plotly/validators/surface/_cmin.py +++ b/packages/python/plotly/plotly/validators/surface/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="surface", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_coloraxis.py b/packages/python/plotly/plotly/validators/surface/_coloraxis.py index 4c731501a3..03c11bfd1c 100644 --- a/packages/python/plotly/plotly/validators/surface/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/surface/_coloraxis.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="coloraxis", parent_name="surface", **kwargs): dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_colorbar.py b/packages/python/plotly/plotly/validators/surface/_colorbar.py index 11f062733b..0e1cb5f187 100644 --- a/packages/python/plotly/plotly/validators/surface/_colorbar.py +++ b/packages/python/plotly/plotly/validators/surface/_colorbar.py @@ -147,6 +147,12 @@ def __init__(self, plotly_name="colorbar", parent_name="surface", **kwargs): a.surface.colorbar.tickformatstopdefaults), sets the default property values to use for elements of surface.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/surface/_colorscale.py b/packages/python/plotly/plotly/validators/surface/_colorscale.py index 37139d49fd..f86ef0019c 100644 --- a/packages/python/plotly/plotly/validators/surface/_colorscale.py +++ b/packages/python/plotly/plotly/validators/surface/_colorscale.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="colorscale", parent_name="surface", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_connectgaps.py b/packages/python/plotly/plotly/validators/surface/_connectgaps.py index 20b4f9e2c7..416dd267d6 100644 --- a/packages/python/plotly/plotly/validators/surface/_connectgaps.py +++ b/packages/python/plotly/plotly/validators/surface/_connectgaps.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="connectgaps", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_customdata.py b/packages/python/plotly/plotly/validators/surface/_customdata.py index 181c4bd5f6..28108c9c1f 100644 --- a/packages/python/plotly/plotly/validators/surface/_customdata.py +++ b/packages/python/plotly/plotly/validators/surface/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_customdatasrc.py b/packages/python/plotly/plotly/validators/surface/_customdatasrc.py index f4763a6855..8f19a0dc2c 100644 --- a/packages/python/plotly/plotly/validators/surface/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/surface/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="surface", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_hidesurface.py b/packages/python/plotly/plotly/validators/surface/_hidesurface.py index 7e448aa5c8..b63ea518e3 100644 --- a/packages/python/plotly/plotly/validators/surface/_hidesurface.py +++ b/packages/python/plotly/plotly/validators/surface/_hidesurface.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hidesurface", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_hoverinfo.py b/packages/python/plotly/plotly/validators/surface/_hoverinfo.py index 2feee885a9..06282ba050 100644 --- a/packages/python/plotly/plotly/validators/surface/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/surface/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="surface", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["x", "y", "z", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/surface/_hoverinfosrc.py index b86d130141..0bd10e580f 100644 --- a/packages/python/plotly/plotly/validators/surface/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/surface/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_hovertemplate.py b/packages/python/plotly/plotly/validators/surface/_hovertemplate.py index 067df42a93..dc72c557e4 100644 --- a/packages/python/plotly/plotly/validators/surface/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/surface/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="surface", **kwargs) parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/surface/_hovertemplatesrc.py index 7a5cb49c47..deef6c5494 100644 --- a/packages/python/plotly/plotly/validators/surface/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/surface/_hovertemplatesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertemplatesrc", parent_name="surface", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_hovertext.py b/packages/python/plotly/plotly/validators/surface/_hovertext.py index 60ccd8f5e2..ce04e0bb4a 100644 --- a/packages/python/plotly/plotly/validators/surface/_hovertext.py +++ b/packages/python/plotly/plotly/validators/surface/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="surface", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_hovertextsrc.py b/packages/python/plotly/plotly/validators/surface/_hovertextsrc.py index 026468417d..33672f1d6f 100644 --- a/packages/python/plotly/plotly/validators/surface/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/surface/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_ids.py b/packages/python/plotly/plotly/validators/surface/_ids.py index da5b79b640..e01c9737ce 100644 --- a/packages/python/plotly/plotly/validators/surface/_ids.py +++ b/packages/python/plotly/plotly/validators/surface/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_idssrc.py b/packages/python/plotly/plotly/validators/surface/_idssrc.py index e81c660064..e2cd89d746 100644 --- a/packages/python/plotly/plotly/validators/surface/_idssrc.py +++ b/packages/python/plotly/plotly/validators/surface/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_legendgroup.py b/packages/python/plotly/plotly/validators/surface/_legendgroup.py index 69c9513357..653dea87eb 100644 --- a/packages/python/plotly/plotly/validators/surface/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/surface/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_meta.py b/packages/python/plotly/plotly/validators/surface/_meta.py index 3e84b0e30b..e0ec102eb4 100644 --- a/packages/python/plotly/plotly/validators/surface/_meta.py +++ b/packages/python/plotly/plotly/validators/surface/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="surface", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_metasrc.py b/packages/python/plotly/plotly/validators/surface/_metasrc.py index 6e29a76299..e25ecf85e3 100644 --- a/packages/python/plotly/plotly/validators/surface/_metasrc.py +++ b/packages/python/plotly/plotly/validators/surface/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_name.py b/packages/python/plotly/plotly/validators/surface/_name.py index 8192745061..45e9a989f7 100644 --- a/packages/python/plotly/plotly/validators/surface/_name.py +++ b/packages/python/plotly/plotly/validators/surface/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_opacity.py b/packages/python/plotly/plotly/validators/surface/_opacity.py index df598bbfe3..860a829f10 100644 --- a/packages/python/plotly/plotly/validators/surface/_opacity.py +++ b/packages/python/plotly/plotly/validators/surface/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="surface", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_opacityscale.py b/packages/python/plotly/plotly/validators/surface/_opacityscale.py index ff35304a57..d3bf28084e 100644 --- a/packages/python/plotly/plotly/validators/surface/_opacityscale.py +++ b/packages/python/plotly/plotly/validators/surface/_opacityscale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="opacityscale", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_reversescale.py b/packages/python/plotly/plotly/validators/surface/_reversescale.py index a5bc4789c6..7220cc327f 100644 --- a/packages/python/plotly/plotly/validators/surface/_reversescale.py +++ b/packages/python/plotly/plotly/validators/surface/_reversescale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="reversescale", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_scene.py b/packages/python/plotly/plotly/validators/surface/_scene.py index 4d0f17a1c1..80f17e6c23 100644 --- a/packages/python/plotly/plotly/validators/surface/_scene.py +++ b/packages/python/plotly/plotly/validators/surface/_scene.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="scene", parent_name="surface", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "scene"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_showlegend.py b/packages/python/plotly/plotly/validators/surface/_showlegend.py index d609611ab3..da7207c825 100644 --- a/packages/python/plotly/plotly/validators/surface/_showlegend.py +++ b/packages/python/plotly/plotly/validators/surface/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_showscale.py b/packages/python/plotly/plotly/validators/surface/_showscale.py index 8d98a7a34f..850e3952a1 100644 --- a/packages/python/plotly/plotly/validators/surface/_showscale.py +++ b/packages/python/plotly/plotly/validators/surface/_showscale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showscale", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_surfacecolor.py b/packages/python/plotly/plotly/validators/surface/_surfacecolor.py index 53bd52395c..03fbdaab61 100644 --- a/packages/python/plotly/plotly/validators/surface/_surfacecolor.py +++ b/packages/python/plotly/plotly/validators/surface/_surfacecolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="surfacecolor", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_surfacecolorsrc.py b/packages/python/plotly/plotly/validators/surface/_surfacecolorsrc.py index 497b86e900..acae981715 100644 --- a/packages/python/plotly/plotly/validators/surface/_surfacecolorsrc.py +++ b/packages/python/plotly/plotly/validators/surface/_surfacecolorsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="surfacecolorsrc", parent_name="surface", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_text.py b/packages/python/plotly/plotly/validators/surface/_text.py index 96a43890ab..7eb65a5168 100644 --- a/packages/python/plotly/plotly/validators/surface/_text.py +++ b/packages/python/plotly/plotly/validators/surface/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="surface", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_textsrc.py b/packages/python/plotly/plotly/validators/surface/_textsrc.py index ac7c7b733f..526e7cda1f 100644 --- a/packages/python/plotly/plotly/validators/surface/_textsrc.py +++ b/packages/python/plotly/plotly/validators/surface/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_uid.py b/packages/python/plotly/plotly/validators/surface/_uid.py index 568da068d1..e86f988da3 100644 --- a/packages/python/plotly/plotly/validators/surface/_uid.py +++ b/packages/python/plotly/plotly/validators/surface/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_uirevision.py b/packages/python/plotly/plotly/validators/surface/_uirevision.py index 58ca157d70..dc31f1f95c 100644 --- a/packages/python/plotly/plotly/validators/surface/_uirevision.py +++ b/packages/python/plotly/plotly/validators/surface/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_visible.py b/packages/python/plotly/plotly/validators/surface/_visible.py index a4ef75a333..5622ee0f45 100644 --- a/packages/python/plotly/plotly/validators/surface/_visible.py +++ b/packages/python/plotly/plotly/validators/surface/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_x.py b/packages/python/plotly/plotly/validators/surface/_x.py index a85d5b8e87..b74b8c2483 100644 --- a/packages/python/plotly/plotly/validators/surface/_x.py +++ b/packages/python/plotly/plotly/validators/surface/_x.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_xcalendar.py b/packages/python/plotly/plotly/validators/surface/_xcalendar.py index 56e31aa909..2c2346ab84 100644 --- a/packages/python/plotly/plotly/validators/surface/_xcalendar.py +++ b/packages/python/plotly/plotly/validators/surface/_xcalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xcalendar", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/surface/_xhoverformat.py b/packages/python/plotly/plotly/validators/surface/_xhoverformat.py new file mode 100644 index 0000000000..5815be240b --- /dev/null +++ b/packages/python/plotly/plotly/validators/surface/_xhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class XhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="xhoverformat", parent_name="surface", **kwargs): + super(XhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/surface/_xsrc.py b/packages/python/plotly/plotly/validators/surface/_xsrc.py index 94da86791b..af5cf854fd 100644 --- a/packages/python/plotly/plotly/validators/surface/_xsrc.py +++ b/packages/python/plotly/plotly/validators/surface/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_y.py b/packages/python/plotly/plotly/validators/surface/_y.py index b501713cb3..3972687267 100644 --- a/packages/python/plotly/plotly/validators/surface/_y.py +++ b/packages/python/plotly/plotly/validators/surface/_y.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_ycalendar.py b/packages/python/plotly/plotly/validators/surface/_ycalendar.py index 8552e00e55..49e63b7c2e 100644 --- a/packages/python/plotly/plotly/validators/surface/_ycalendar.py +++ b/packages/python/plotly/plotly/validators/surface/_ycalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ycalendar", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/surface/_yhoverformat.py b/packages/python/plotly/plotly/validators/surface/_yhoverformat.py new file mode 100644 index 0000000000..f8062fd5e6 --- /dev/null +++ b/packages/python/plotly/plotly/validators/surface/_yhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class YhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="yhoverformat", parent_name="surface", **kwargs): + super(YhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/surface/_ysrc.py b/packages/python/plotly/plotly/validators/surface/_ysrc.py index 494ca24f05..80e240437a 100644 --- a/packages/python/plotly/plotly/validators/surface/_ysrc.py +++ b/packages/python/plotly/plotly/validators/surface/_ysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ysrc", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_z.py b/packages/python/plotly/plotly/validators/surface/_z.py index 2f953befcd..9591c096fd 100644 --- a/packages/python/plotly/plotly/validators/surface/_z.py +++ b/packages/python/plotly/plotly/validators/surface/_z.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="z", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/_zcalendar.py b/packages/python/plotly/plotly/validators/surface/_zcalendar.py index a91372e001..50cb36decc 100644 --- a/packages/python/plotly/plotly/validators/surface/_zcalendar.py +++ b/packages/python/plotly/plotly/validators/surface/_zcalendar.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="zcalendar", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/surface/_zhoverformat.py b/packages/python/plotly/plotly/validators/surface/_zhoverformat.py new file mode 100644 index 0000000000..2750e22d24 --- /dev/null +++ b/packages/python/plotly/plotly/validators/surface/_zhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class ZhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="zhoverformat", parent_name="surface", **kwargs): + super(ZhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/surface/_zsrc.py b/packages/python/plotly/plotly/validators/surface/_zsrc.py index fad1bb0a18..2a1f88135a 100644 --- a/packages/python/plotly/plotly/validators/surface/_zsrc.py +++ b/packages/python/plotly/plotly/validators/surface/_zsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="zsrc", parent_name="surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/__init__.py b/packages/python/plotly/plotly/validators/surface/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/surface/colorbar/_bgcolor.py index 628455e5a8..5c6795eb69 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_bgcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="bgcolor", parent_name="surface.colorbar", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/surface/colorbar/_bordercolor.py index c3efc73899..1d8afa412e 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/surface/colorbar/_borderwidth.py index 9d2211a959..3ad006901c 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/surface/colorbar/_dtick.py index 2d1718030a..eab7464223 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_dtick.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="dtick", parent_name="surface.colorbar", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/surface/colorbar/_exponentformat.py index 62ffdfd845..5d726d89c6 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_exponentformat.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_len.py b/packages/python/plotly/plotly/validators/surface/colorbar/_len.py index 269d997a1b..d7b550af69 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_len.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="len", parent_name="surface.colorbar", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/surface/colorbar/_lenmode.py index ac608eafd2..1c5119cd72 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_lenmode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="lenmode", parent_name="surface.colorbar", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/surface/colorbar/_minexponent.py index 0c25b4eea9..aea79e561e 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/surface/colorbar/_nticks.py index 5e34e6c2f7..917b752577 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_nticks.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="nticks", parent_name="surface.colorbar", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/surface/colorbar/_outlinecolor.py index 377094739c..637eabd617 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_outlinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/surface/colorbar/_outlinewidth.py index 409294c264..422d308074 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_outlinewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/surface/colorbar/_separatethousands.py index c7c8a3f078..a7a15a82dd 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_separatethousands.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/surface/colorbar/_showexponent.py index 5428e0a15f..30bf712232 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/surface/colorbar/_showticklabels.py index 410a34cd6f..ec80ea2f5a 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_showticklabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/surface/colorbar/_showtickprefix.py index 4e591379f6..ecc4388df8 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_showtickprefix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/surface/colorbar/_showticksuffix.py index 10eb2a4ca9..1906f2d752 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_showticksuffix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/surface/colorbar/_thickness.py index 1b7e913b31..3b6b01fa68 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/surface/colorbar/_thicknessmode.py index be09a9567d..9ce88b0391 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_thicknessmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/surface/colorbar/_tick0.py index 36f4ab1135..89bf0e89f7 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_tick0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="tick0", parent_name="surface.colorbar", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/surface/colorbar/_tickangle.py index 1a844ade69..562433aa9c 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/surface/colorbar/_tickcolor.py index c12deb5943..ec8a24f57e 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/surface/colorbar/_tickformat.py index 638e454f51..27d5dfd04a 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/surface/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..1ffd5f1458 --- /dev/null +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_ticklabeloverflow.py @@ -0,0 +1,14 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, plotly_name="ticklabeloverflow", parent_name="surface.colorbar", **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/surface/colorbar/_ticklabelposition.py index 9f3d4e8a94..c59c330848 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_ticklabelposition.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/surface/colorbar/_ticklen.py index edad3dda13..8dd47e80f7 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_ticklen.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ticklen", parent_name="surface.colorbar", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/surface/colorbar/_tickmode.py index a7c784fbf3..cc2a05bc87 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/surface/colorbar/_tickprefix.py index 71b62fcbeb..cc96bbfb92 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/surface/colorbar/_ticks.py index 8576f2c787..66a689dfe2 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_ticks.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ticks", parent_name="surface.colorbar", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/surface/colorbar/_ticksuffix.py index 6895039afd..11e5462ccf 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/surface/colorbar/_ticktext.py index d02a3b438a..6b568b7e1f 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/surface/colorbar/_ticktextsrc.py index fd0919fd48..970a4299d4 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/surface/colorbar/_tickvals.py index fd9bb6d9aa..6925e72d12 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/surface/colorbar/_tickvalssrc.py index d67363a8da..5f5f9bbc41 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/surface/colorbar/_tickwidth.py index 03b9e99b61..f3f2a2623f 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_x.py b/packages/python/plotly/plotly/validators/surface/colorbar/_x.py index 0e3c631561..917da4d766 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_x.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="x", parent_name="surface.colorbar", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/surface/colorbar/_xanchor.py index aa7e0bf936..0c0325ae7e 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_xanchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xanchor", parent_name="surface.colorbar", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/surface/colorbar/_xpad.py index 15ece6a7e3..09496eda69 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_xpad.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xpad", parent_name="surface.colorbar", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_y.py b/packages/python/plotly/plotly/validators/surface/colorbar/_y.py index 721f41eb49..d3a5f1a7b8 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_y.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="y", parent_name="surface.colorbar", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/surface/colorbar/_yanchor.py index c94d354baa..9d98e76101 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_yanchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="yanchor", parent_name="surface.colorbar", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/surface/colorbar/_ypad.py index fcae877427..9cf2909791 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/_ypad.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ypad", parent_name="surface.colorbar", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/surface/colorbar/tickfont/_color.py index b7e034b6b1..081026fa12 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/tickfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/surface/colorbar/tickfont/_family.py index 9e87524ea4..fb68870b84 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/tickfont/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/surface/colorbar/tickfont/_size.py index fcd72dcabe..6f0dc465f7 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/tickfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/surface/colorbar/tickformatstop/_dtickrange.py index 296573c927..3cfb75a2b1 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/surface/colorbar/tickformatstop/_enabled.py index 4c8ea1221c..eab6268f13 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/surface/colorbar/tickformatstop/_name.py index d6ca8c6469..80d53afa12 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/surface/colorbar/tickformatstop/_templateitemname.py index 66dce01fac..6827f1c5bd 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/surface/colorbar/tickformatstop/_value.py index 052f63b5d4..7480d58c69 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/surface/colorbar/title/_side.py index 3b7da512ed..b174046ea7 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/title/_side.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/surface/colorbar/title/_text.py index a53eb8ff57..5d29adb257 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/surface/colorbar/title/font/_color.py index f4ca329a8d..ded1877a21 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/title/font/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/surface/colorbar/title/font/_family.py index 512df22204..ed94168a1c 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/title/font/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/surface/colorbar/title/font/_size.py index da7ebe1781..13b5e63955 100644 --- a/packages/python/plotly/plotly/validators/surface/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/surface/colorbar/title/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/x/_color.py b/packages/python/plotly/plotly/validators/surface/contours/x/_color.py index c8baf9cfa3..d5654e81f5 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/x/_color.py +++ b/packages/python/plotly/plotly/validators/surface/contours/x/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="surface.contours.x", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/x/_end.py b/packages/python/plotly/plotly/validators/surface/contours/x/_end.py index dcd0b7ee3b..e570e726b8 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/x/_end.py +++ b/packages/python/plotly/plotly/validators/surface/contours/x/_end.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="end", parent_name="surface.contours.x", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/x/_highlight.py b/packages/python/plotly/plotly/validators/surface/contours/x/_highlight.py index 9a67257b3f..4f2fd3e60e 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/x/_highlight.py +++ b/packages/python/plotly/plotly/validators/surface/contours/x/_highlight.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/x/_highlightcolor.py b/packages/python/plotly/plotly/validators/surface/contours/x/_highlightcolor.py index 1083008e0d..17fdc9ab4c 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/x/_highlightcolor.py +++ b/packages/python/plotly/plotly/validators/surface/contours/x/_highlightcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/x/_highlightwidth.py b/packages/python/plotly/plotly/validators/surface/contours/x/_highlightwidth.py index c51bd642bd..409fdc70b2 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/x/_highlightwidth.py +++ b/packages/python/plotly/plotly/validators/surface/contours/x/_highlightwidth.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 16), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/x/_show.py b/packages/python/plotly/plotly/validators/surface/contours/x/_show.py index 569dc2e233..61bc0ceeba 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/x/_show.py +++ b/packages/python/plotly/plotly/validators/surface/contours/x/_show.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="show", parent_name="surface.contours.x", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/x/_size.py b/packages/python/plotly/plotly/validators/surface/contours/x/_size.py index 8832528c3a..5bf4874e5f 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/x/_size.py +++ b/packages/python/plotly/plotly/validators/surface/contours/x/_size.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="size", parent_name="surface.contours.x", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/x/_start.py b/packages/python/plotly/plotly/validators/surface/contours/x/_start.py index d43132f5ca..a682d256a1 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/x/_start.py +++ b/packages/python/plotly/plotly/validators/surface/contours/x/_start.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="start", parent_name="surface.contours.x", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/x/_usecolormap.py b/packages/python/plotly/plotly/validators/surface/contours/x/_usecolormap.py index f10638ec64..6952c6e6ce 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/x/_usecolormap.py +++ b/packages/python/plotly/plotly/validators/surface/contours/x/_usecolormap.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/x/_width.py b/packages/python/plotly/plotly/validators/surface/contours/x/_width.py index e1be33c641..2d6c198883 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/x/_width.py +++ b/packages/python/plotly/plotly/validators/surface/contours/x/_width.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="width", parent_name="surface.contours.x", **kwar edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 16), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/x/project/_x.py b/packages/python/plotly/plotly/validators/surface/contours/x/project/_x.py index e11d764b43..f386b10e90 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/x/project/_x.py +++ b/packages/python/plotly/plotly/validators/surface/contours/x/project/_x.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/x/project/_y.py b/packages/python/plotly/plotly/validators/surface/contours/x/project/_y.py index 6610790bb4..387482027d 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/x/project/_y.py +++ b/packages/python/plotly/plotly/validators/surface/contours/x/project/_y.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/x/project/_z.py b/packages/python/plotly/plotly/validators/surface/contours/x/project/_z.py index a83205ff00..12e4a2fd84 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/x/project/_z.py +++ b/packages/python/plotly/plotly/validators/surface/contours/x/project/_z.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/y/_color.py b/packages/python/plotly/plotly/validators/surface/contours/y/_color.py index 518d73145f..cf1e0d7439 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/y/_color.py +++ b/packages/python/plotly/plotly/validators/surface/contours/y/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="surface.contours.y", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/y/_end.py b/packages/python/plotly/plotly/validators/surface/contours/y/_end.py index 794b26336e..127f1eeae1 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/y/_end.py +++ b/packages/python/plotly/plotly/validators/surface/contours/y/_end.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="end", parent_name="surface.contours.y", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/y/_highlight.py b/packages/python/plotly/plotly/validators/surface/contours/y/_highlight.py index d980dd3690..e8a0792165 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/y/_highlight.py +++ b/packages/python/plotly/plotly/validators/surface/contours/y/_highlight.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/y/_highlightcolor.py b/packages/python/plotly/plotly/validators/surface/contours/y/_highlightcolor.py index 1a5686735a..dbaeea799d 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/y/_highlightcolor.py +++ b/packages/python/plotly/plotly/validators/surface/contours/y/_highlightcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/y/_highlightwidth.py b/packages/python/plotly/plotly/validators/surface/contours/y/_highlightwidth.py index cc213b0104..85f3d5d8d1 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/y/_highlightwidth.py +++ b/packages/python/plotly/plotly/validators/surface/contours/y/_highlightwidth.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 16), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/y/_show.py b/packages/python/plotly/plotly/validators/surface/contours/y/_show.py index 512c7dc69d..948fa484f3 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/y/_show.py +++ b/packages/python/plotly/plotly/validators/surface/contours/y/_show.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="show", parent_name="surface.contours.y", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/y/_size.py b/packages/python/plotly/plotly/validators/surface/contours/y/_size.py index e39984068c..0c82001a14 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/y/_size.py +++ b/packages/python/plotly/plotly/validators/surface/contours/y/_size.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="size", parent_name="surface.contours.y", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/y/_start.py b/packages/python/plotly/plotly/validators/surface/contours/y/_start.py index 2ccbe432d1..f69bac1bad 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/y/_start.py +++ b/packages/python/plotly/plotly/validators/surface/contours/y/_start.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="start", parent_name="surface.contours.y", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/y/_usecolormap.py b/packages/python/plotly/plotly/validators/surface/contours/y/_usecolormap.py index a4456f2165..8f4655c834 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/y/_usecolormap.py +++ b/packages/python/plotly/plotly/validators/surface/contours/y/_usecolormap.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/y/_width.py b/packages/python/plotly/plotly/validators/surface/contours/y/_width.py index 22ace01ae6..7430918007 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/y/_width.py +++ b/packages/python/plotly/plotly/validators/surface/contours/y/_width.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="width", parent_name="surface.contours.y", **kwar edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 16), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/y/project/_x.py b/packages/python/plotly/plotly/validators/surface/contours/y/project/_x.py index 7d23f7ae72..b7cb483014 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/y/project/_x.py +++ b/packages/python/plotly/plotly/validators/surface/contours/y/project/_x.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/y/project/_y.py b/packages/python/plotly/plotly/validators/surface/contours/y/project/_y.py index 361394f5ba..17f8e01052 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/y/project/_y.py +++ b/packages/python/plotly/plotly/validators/surface/contours/y/project/_y.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/y/project/_z.py b/packages/python/plotly/plotly/validators/surface/contours/y/project/_z.py index bf5f588c19..e70d016700 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/y/project/_z.py +++ b/packages/python/plotly/plotly/validators/surface/contours/y/project/_z.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/z/_color.py b/packages/python/plotly/plotly/validators/surface/contours/z/_color.py index 5f29e3422a..17ca5f7d7f 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/z/_color.py +++ b/packages/python/plotly/plotly/validators/surface/contours/z/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="surface.contours.z", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/z/_end.py b/packages/python/plotly/plotly/validators/surface/contours/z/_end.py index 6df261d4a6..a4fb4facfd 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/z/_end.py +++ b/packages/python/plotly/plotly/validators/surface/contours/z/_end.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="end", parent_name="surface.contours.z", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/z/_highlight.py b/packages/python/plotly/plotly/validators/surface/contours/z/_highlight.py index 77ae97e850..d6995f6d2d 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/z/_highlight.py +++ b/packages/python/plotly/plotly/validators/surface/contours/z/_highlight.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/z/_highlightcolor.py b/packages/python/plotly/plotly/validators/surface/contours/z/_highlightcolor.py index 8ddcd9d8c7..e40923a1e2 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/z/_highlightcolor.py +++ b/packages/python/plotly/plotly/validators/surface/contours/z/_highlightcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/z/_highlightwidth.py b/packages/python/plotly/plotly/validators/surface/contours/z/_highlightwidth.py index 4a1263d3b3..8de0070aa6 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/z/_highlightwidth.py +++ b/packages/python/plotly/plotly/validators/surface/contours/z/_highlightwidth.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 16), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/z/_show.py b/packages/python/plotly/plotly/validators/surface/contours/z/_show.py index d3d43b884f..8915572959 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/z/_show.py +++ b/packages/python/plotly/plotly/validators/surface/contours/z/_show.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="show", parent_name="surface.contours.z", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/z/_size.py b/packages/python/plotly/plotly/validators/surface/contours/z/_size.py index 07c2834927..3c3155d470 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/z/_size.py +++ b/packages/python/plotly/plotly/validators/surface/contours/z/_size.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="size", parent_name="surface.contours.z", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/z/_start.py b/packages/python/plotly/plotly/validators/surface/contours/z/_start.py index ce4b601c68..0a1913b0f0 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/z/_start.py +++ b/packages/python/plotly/plotly/validators/surface/contours/z/_start.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="start", parent_name="surface.contours.z", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/z/_usecolormap.py b/packages/python/plotly/plotly/validators/surface/contours/z/_usecolormap.py index cd412a8883..3d6b63be02 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/z/_usecolormap.py +++ b/packages/python/plotly/plotly/validators/surface/contours/z/_usecolormap.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/z/_width.py b/packages/python/plotly/plotly/validators/surface/contours/z/_width.py index c635a193e0..3221dc3b23 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/z/_width.py +++ b/packages/python/plotly/plotly/validators/surface/contours/z/_width.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="width", parent_name="surface.contours.z", **kwar edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 16), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/z/project/_x.py b/packages/python/plotly/plotly/validators/surface/contours/z/project/_x.py index 3d7c53c978..6715fdd31a 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/z/project/_x.py +++ b/packages/python/plotly/plotly/validators/surface/contours/z/project/_x.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/z/project/_y.py b/packages/python/plotly/plotly/validators/surface/contours/z/project/_y.py index 73df50c23d..5c67a900a5 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/z/project/_y.py +++ b/packages/python/plotly/plotly/validators/surface/contours/z/project/_y.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/contours/z/project/_z.py b/packages/python/plotly/plotly/validators/surface/contours/z/project/_z.py index 87e95dca6d..1b8ccb4c43 100644 --- a/packages/python/plotly/plotly/validators/surface/contours/z/project/_z.py +++ b/packages/python/plotly/plotly/validators/surface/contours/z/project/_z.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/surface/hoverlabel/_align.py index 15340407e1..532ef4a062 100644 --- a/packages/python/plotly/plotly/validators/surface/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/surface/hoverlabel/_align.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="align", parent_name="surface.hoverlabel", **kwar parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/surface/hoverlabel/_alignsrc.py index 485d10ab22..8b0fed94d3 100644 --- a/packages/python/plotly/plotly/validators/surface/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/surface/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/surface/hoverlabel/_bgcolor.py index c77a2b6a7e..f1b841967d 100644 --- a/packages/python/plotly/plotly/validators/surface/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/surface/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/surface/hoverlabel/_bgcolorsrc.py index 6a51afe58b..0e3c1bdeea 100644 --- a/packages/python/plotly/plotly/validators/surface/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/surface/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/surface/hoverlabel/_bordercolor.py index 0b9a2a788c..88788e48cc 100644 --- a/packages/python/plotly/plotly/validators/surface/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/surface/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/surface/hoverlabel/_bordercolorsrc.py index 5c5fb3d12c..412cdc800c 100644 --- a/packages/python/plotly/plotly/validators/surface/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/surface/hoverlabel/_bordercolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/surface/hoverlabel/_namelength.py index b4f7edd4a4..6536577e70 100644 --- a/packages/python/plotly/plotly/validators/surface/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/surface/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/surface/hoverlabel/_namelengthsrc.py index 297bced212..63757470ae 100644 --- a/packages/python/plotly/plotly/validators/surface/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/surface/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/surface/hoverlabel/font/_color.py index 816987f10b..ff7c78f1e0 100644 --- a/packages/python/plotly/plotly/validators/surface/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/surface/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/surface/hoverlabel/font/_colorsrc.py index 04dca959cc..2a3c179945 100644 --- a/packages/python/plotly/plotly/validators/surface/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/surface/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/surface/hoverlabel/font/_family.py index 8d21ce7c65..3d76d8f7c8 100644 --- a/packages/python/plotly/plotly/validators/surface/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/surface/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/surface/hoverlabel/font/_familysrc.py index 13806a74b1..07f60b943b 100644 --- a/packages/python/plotly/plotly/validators/surface/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/surface/hoverlabel/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/surface/hoverlabel/font/_size.py index 3ead157e55..a269660349 100644 --- a/packages/python/plotly/plotly/validators/surface/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/surface/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/surface/hoverlabel/font/_sizesrc.py index bd61b28e19..7744346469 100644 --- a/packages/python/plotly/plotly/validators/surface/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/surface/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/lighting/_ambient.py b/packages/python/plotly/plotly/validators/surface/lighting/_ambient.py index 11aff15961..639d7a73f7 100644 --- a/packages/python/plotly/plotly/validators/surface/lighting/_ambient.py +++ b/packages/python/plotly/plotly/validators/surface/lighting/_ambient.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="ambient", parent_name="surface.lighting", **kwar edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/lighting/_diffuse.py b/packages/python/plotly/plotly/validators/surface/lighting/_diffuse.py index 5a11302561..c3dd623f6d 100644 --- a/packages/python/plotly/plotly/validators/surface/lighting/_diffuse.py +++ b/packages/python/plotly/plotly/validators/surface/lighting/_diffuse.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="diffuse", parent_name="surface.lighting", **kwar edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/lighting/_fresnel.py b/packages/python/plotly/plotly/validators/surface/lighting/_fresnel.py index 7e00b1f1ea..a63b981079 100644 --- a/packages/python/plotly/plotly/validators/surface/lighting/_fresnel.py +++ b/packages/python/plotly/plotly/validators/surface/lighting/_fresnel.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="fresnel", parent_name="surface.lighting", **kwar edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 5), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/lighting/_roughness.py b/packages/python/plotly/plotly/validators/surface/lighting/_roughness.py index 05c9a96de2..13fd15a6ff 100644 --- a/packages/python/plotly/plotly/validators/surface/lighting/_roughness.py +++ b/packages/python/plotly/plotly/validators/surface/lighting/_roughness.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/lighting/_specular.py b/packages/python/plotly/plotly/validators/surface/lighting/_specular.py index 50cc124bb8..eec5c5f3a9 100644 --- a/packages/python/plotly/plotly/validators/surface/lighting/_specular.py +++ b/packages/python/plotly/plotly/validators/surface/lighting/_specular.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 2), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/lightposition/_x.py b/packages/python/plotly/plotly/validators/surface/lightposition/_x.py index 336514993a..48d5535193 100644 --- a/packages/python/plotly/plotly/validators/surface/lightposition/_x.py +++ b/packages/python/plotly/plotly/validators/surface/lightposition/_x.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="x", parent_name="surface.lightposition", **kwarg edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 100000), min=kwargs.pop("min", -100000), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/lightposition/_y.py b/packages/python/plotly/plotly/validators/surface/lightposition/_y.py index 49f734d391..5b3cfca66a 100644 --- a/packages/python/plotly/plotly/validators/surface/lightposition/_y.py +++ b/packages/python/plotly/plotly/validators/surface/lightposition/_y.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="y", parent_name="surface.lightposition", **kwarg edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 100000), min=kwargs.pop("min", -100000), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/lightposition/_z.py b/packages/python/plotly/plotly/validators/surface/lightposition/_z.py index 8d6ca7f598..a80d5b64e1 100644 --- a/packages/python/plotly/plotly/validators/surface/lightposition/_z.py +++ b/packages/python/plotly/plotly/validators/surface/lightposition/_z.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="z", parent_name="surface.lightposition", **kwarg edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 100000), min=kwargs.pop("min", -100000), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/surface/stream/_maxpoints.py index 4c10d9e1ec..b20cd92ace 100644 --- a/packages/python/plotly/plotly/validators/surface/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/surface/stream/_maxpoints.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="maxpoints", parent_name="surface.stream", **kwar edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/surface/stream/_token.py b/packages/python/plotly/plotly/validators/surface/stream/_token.py index 0027adf668..f91d3e76de 100644 --- a/packages/python/plotly/plotly/validators/surface/stream/_token.py +++ b/packages/python/plotly/plotly/validators/surface/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="surface.stream", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/_columnorder.py b/packages/python/plotly/plotly/validators/table/_columnorder.py index 1513396b78..8bfba64d42 100644 --- a/packages/python/plotly/plotly/validators/table/_columnorder.py +++ b/packages/python/plotly/plotly/validators/table/_columnorder.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="columnorder", parent_name="table", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/_columnordersrc.py b/packages/python/plotly/plotly/validators/table/_columnordersrc.py index 61fb29eca5..9317d3fc91 100644 --- a/packages/python/plotly/plotly/validators/table/_columnordersrc.py +++ b/packages/python/plotly/plotly/validators/table/_columnordersrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="columnordersrc", parent_name="table", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/_columnwidth.py b/packages/python/plotly/plotly/validators/table/_columnwidth.py index 9c127731d7..ed5c4aa30c 100644 --- a/packages/python/plotly/plotly/validators/table/_columnwidth.py +++ b/packages/python/plotly/plotly/validators/table/_columnwidth.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="columnwidth", parent_name="table", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/_columnwidthsrc.py b/packages/python/plotly/plotly/validators/table/_columnwidthsrc.py index f00c9d4b37..d0bacbeeea 100644 --- a/packages/python/plotly/plotly/validators/table/_columnwidthsrc.py +++ b/packages/python/plotly/plotly/validators/table/_columnwidthsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="columnwidthsrc", parent_name="table", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/_customdata.py b/packages/python/plotly/plotly/validators/table/_customdata.py index 8fb0b00c96..c07e8fc55e 100644 --- a/packages/python/plotly/plotly/validators/table/_customdata.py +++ b/packages/python/plotly/plotly/validators/table/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="table", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/_customdatasrc.py b/packages/python/plotly/plotly/validators/table/_customdatasrc.py index f79d8157a0..0044c235bb 100644 --- a/packages/python/plotly/plotly/validators/table/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/table/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="table", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/_hoverinfo.py b/packages/python/plotly/plotly/validators/table/_hoverinfo.py index 1d763580f6..11555c1946 100644 --- a/packages/python/plotly/plotly/validators/table/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/table/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="table", **kwargs): edit_type=kwargs.pop("edit_type", "none"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["x", "y", "z", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/table/_hoverinfosrc.py index 7ee723c08d..bef4e10645 100644 --- a/packages/python/plotly/plotly/validators/table/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/table/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="table", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/_ids.py b/packages/python/plotly/plotly/validators/table/_ids.py index f3b6a4dca5..5096d02c61 100644 --- a/packages/python/plotly/plotly/validators/table/_ids.py +++ b/packages/python/plotly/plotly/validators/table/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="table", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/_idssrc.py b/packages/python/plotly/plotly/validators/table/_idssrc.py index d23056bcb1..cb54fd7d27 100644 --- a/packages/python/plotly/plotly/validators/table/_idssrc.py +++ b/packages/python/plotly/plotly/validators/table/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="table", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/_meta.py b/packages/python/plotly/plotly/validators/table/_meta.py index f92b07c07c..c2d3c99441 100644 --- a/packages/python/plotly/plotly/validators/table/_meta.py +++ b/packages/python/plotly/plotly/validators/table/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="table", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/_metasrc.py b/packages/python/plotly/plotly/validators/table/_metasrc.py index bf6aef58bb..54595106c2 100644 --- a/packages/python/plotly/plotly/validators/table/_metasrc.py +++ b/packages/python/plotly/plotly/validators/table/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="table", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/_name.py b/packages/python/plotly/plotly/validators/table/_name.py index d64a488569..f96cc85476 100644 --- a/packages/python/plotly/plotly/validators/table/_name.py +++ b/packages/python/plotly/plotly/validators/table/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="table", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/_uid.py b/packages/python/plotly/plotly/validators/table/_uid.py index 55354df9c0..29e950468a 100644 --- a/packages/python/plotly/plotly/validators/table/_uid.py +++ b/packages/python/plotly/plotly/validators/table/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="table", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/_uirevision.py b/packages/python/plotly/plotly/validators/table/_uirevision.py index 1ccb73dfbc..fa6b611c41 100644 --- a/packages/python/plotly/plotly/validators/table/_uirevision.py +++ b/packages/python/plotly/plotly/validators/table/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="table", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/_visible.py b/packages/python/plotly/plotly/validators/table/_visible.py index 103c2157d1..7be1c67d8e 100644 --- a/packages/python/plotly/plotly/validators/table/_visible.py +++ b/packages/python/plotly/plotly/validators/table/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="table", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/cells/_align.py b/packages/python/plotly/plotly/validators/table/cells/_align.py index 5b4dcff86c..1f3513af87 100644 --- a/packages/python/plotly/plotly/validators/table/cells/_align.py +++ b/packages/python/plotly/plotly/validators/table/cells/_align.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="align", parent_name="table.cells", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/cells/_alignsrc.py b/packages/python/plotly/plotly/validators/table/cells/_alignsrc.py index 8d48ed1578..3c34514f9f 100644 --- a/packages/python/plotly/plotly/validators/table/cells/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/table/cells/_alignsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="alignsrc", parent_name="table.cells", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/cells/_format.py b/packages/python/plotly/plotly/validators/table/cells/_format.py index 1fac8d2fe8..b64ffc5247 100644 --- a/packages/python/plotly/plotly/validators/table/cells/_format.py +++ b/packages/python/plotly/plotly/validators/table/cells/_format.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="format", parent_name="table.cells", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/cells/_formatsrc.py b/packages/python/plotly/plotly/validators/table/cells/_formatsrc.py index 378d137f53..fc39b62923 100644 --- a/packages/python/plotly/plotly/validators/table/cells/_formatsrc.py +++ b/packages/python/plotly/plotly/validators/table/cells/_formatsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="formatsrc", parent_name="table.cells", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/cells/_height.py b/packages/python/plotly/plotly/validators/table/cells/_height.py index bd4e994725..da11807a26 100644 --- a/packages/python/plotly/plotly/validators/table/cells/_height.py +++ b/packages/python/plotly/plotly/validators/table/cells/_height.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="height", parent_name="table.cells", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/cells/_prefix.py b/packages/python/plotly/plotly/validators/table/cells/_prefix.py index 90b39b4ae5..ef2970d1d9 100644 --- a/packages/python/plotly/plotly/validators/table/cells/_prefix.py +++ b/packages/python/plotly/plotly/validators/table/cells/_prefix.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="prefix", parent_name="table.cells", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/cells/_prefixsrc.py b/packages/python/plotly/plotly/validators/table/cells/_prefixsrc.py index 7b90642dc4..231a821d67 100644 --- a/packages/python/plotly/plotly/validators/table/cells/_prefixsrc.py +++ b/packages/python/plotly/plotly/validators/table/cells/_prefixsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="prefixsrc", parent_name="table.cells", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/cells/_suffix.py b/packages/python/plotly/plotly/validators/table/cells/_suffix.py index 25eedac281..c7a815f697 100644 --- a/packages/python/plotly/plotly/validators/table/cells/_suffix.py +++ b/packages/python/plotly/plotly/validators/table/cells/_suffix.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="suffix", parent_name="table.cells", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/cells/_suffixsrc.py b/packages/python/plotly/plotly/validators/table/cells/_suffixsrc.py index d122ec73ea..c20a83559a 100644 --- a/packages/python/plotly/plotly/validators/table/cells/_suffixsrc.py +++ b/packages/python/plotly/plotly/validators/table/cells/_suffixsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="suffixsrc", parent_name="table.cells", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/cells/_values.py b/packages/python/plotly/plotly/validators/table/cells/_values.py index 8ff2cc6c49..5a5e3fce6a 100644 --- a/packages/python/plotly/plotly/validators/table/cells/_values.py +++ b/packages/python/plotly/plotly/validators/table/cells/_values.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="values", parent_name="table.cells", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/cells/_valuessrc.py b/packages/python/plotly/plotly/validators/table/cells/_valuessrc.py index d73618db12..792716b00f 100644 --- a/packages/python/plotly/plotly/validators/table/cells/_valuessrc.py +++ b/packages/python/plotly/plotly/validators/table/cells/_valuessrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="valuessrc", parent_name="table.cells", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/cells/fill/_color.py b/packages/python/plotly/plotly/validators/table/cells/fill/_color.py index 424ae23246..1003fa5777 100644 --- a/packages/python/plotly/plotly/validators/table/cells/fill/_color.py +++ b/packages/python/plotly/plotly/validators/table/cells/fill/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="table.cells.fill", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/cells/fill/_colorsrc.py b/packages/python/plotly/plotly/validators/table/cells/fill/_colorsrc.py index 4e0074f475..5267f0b22d 100644 --- a/packages/python/plotly/plotly/validators/table/cells/fill/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/table/cells/fill/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/cells/font/_color.py b/packages/python/plotly/plotly/validators/table/cells/font/_color.py index 5192456fd6..35cec8fe92 100644 --- a/packages/python/plotly/plotly/validators/table/cells/font/_color.py +++ b/packages/python/plotly/plotly/validators/table/cells/font/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="table.cells.font", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/cells/font/_colorsrc.py b/packages/python/plotly/plotly/validators/table/cells/font/_colorsrc.py index d8aa96d12e..b7232ae3f7 100644 --- a/packages/python/plotly/plotly/validators/table/cells/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/table/cells/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/cells/font/_family.py b/packages/python/plotly/plotly/validators/table/cells/font/_family.py index 817f58b00f..23f0a8d28b 100644 --- a/packages/python/plotly/plotly/validators/table/cells/font/_family.py +++ b/packages/python/plotly/plotly/validators/table/cells/font/_family.py @@ -9,7 +9,6 @@ def __init__(self, plotly_name="family", parent_name="table.cells.font", **kwarg array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/cells/font/_familysrc.py b/packages/python/plotly/plotly/validators/table/cells/font/_familysrc.py index 691390d5a9..2585f35c06 100644 --- a/packages/python/plotly/plotly/validators/table/cells/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/table/cells/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/cells/font/_size.py b/packages/python/plotly/plotly/validators/table/cells/font/_size.py index 59bd62a1d4..9f0bca130f 100644 --- a/packages/python/plotly/plotly/validators/table/cells/font/_size.py +++ b/packages/python/plotly/plotly/validators/table/cells/font/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="table.cells.font", **kwargs) array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/cells/font/_sizesrc.py b/packages/python/plotly/plotly/validators/table/cells/font/_sizesrc.py index 79f32639a7..3d697bda6d 100644 --- a/packages/python/plotly/plotly/validators/table/cells/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/table/cells/font/_sizesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="sizesrc", parent_name="table.cells.font", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/cells/line/_color.py b/packages/python/plotly/plotly/validators/table/cells/line/_color.py index 101c3f4fd9..af088532cc 100644 --- a/packages/python/plotly/plotly/validators/table/cells/line/_color.py +++ b/packages/python/plotly/plotly/validators/table/cells/line/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="table.cells.line", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/cells/line/_colorsrc.py b/packages/python/plotly/plotly/validators/table/cells/line/_colorsrc.py index fb7549ac0c..3369dda3ba 100644 --- a/packages/python/plotly/plotly/validators/table/cells/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/table/cells/line/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/cells/line/_width.py b/packages/python/plotly/plotly/validators/table/cells/line/_width.py index 66c8561864..2e504f13a4 100644 --- a/packages/python/plotly/plotly/validators/table/cells/line/_width.py +++ b/packages/python/plotly/plotly/validators/table/cells/line/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="table.cells.line", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/cells/line/_widthsrc.py b/packages/python/plotly/plotly/validators/table/cells/line/_widthsrc.py index 89cf4c421b..b999ae8c47 100644 --- a/packages/python/plotly/plotly/validators/table/cells/line/_widthsrc.py +++ b/packages/python/plotly/plotly/validators/table/cells/line/_widthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/domain/_column.py b/packages/python/plotly/plotly/validators/table/domain/_column.py index c3bba4fd90..d55e606c84 100644 --- a/packages/python/plotly/plotly/validators/table/domain/_column.py +++ b/packages/python/plotly/plotly/validators/table/domain/_column.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="column", parent_name="table.domain", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/domain/_row.py b/packages/python/plotly/plotly/validators/table/domain/_row.py index afc3c40b75..2d68ad0bdd 100644 --- a/packages/python/plotly/plotly/validators/table/domain/_row.py +++ b/packages/python/plotly/plotly/validators/table/domain/_row.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="row", parent_name="table.domain", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/domain/_x.py b/packages/python/plotly/plotly/validators/table/domain/_x.py index 2891bb56b2..09ae3fa205 100644 --- a/packages/python/plotly/plotly/validators/table/domain/_x.py +++ b/packages/python/plotly/plotly/validators/table/domain/_x.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="x", parent_name="table.domain", **kwargs): {"valType": "number", "min": 0, "max": 1, "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/domain/_y.py b/packages/python/plotly/plotly/validators/table/domain/_y.py index 8ec0db81a4..9121f34f9c 100644 --- a/packages/python/plotly/plotly/validators/table/domain/_y.py +++ b/packages/python/plotly/plotly/validators/table/domain/_y.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="y", parent_name="table.domain", **kwargs): {"valType": "number", "min": 0, "max": 1, "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/header/_align.py b/packages/python/plotly/plotly/validators/table/header/_align.py index e1e4b683b2..9fdedbd431 100644 --- a/packages/python/plotly/plotly/validators/table/header/_align.py +++ b/packages/python/plotly/plotly/validators/table/header/_align.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="align", parent_name="table.header", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/header/_alignsrc.py b/packages/python/plotly/plotly/validators/table/header/_alignsrc.py index 3c17006c20..89a2d71e19 100644 --- a/packages/python/plotly/plotly/validators/table/header/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/table/header/_alignsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="alignsrc", parent_name="table.header", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/header/_format.py b/packages/python/plotly/plotly/validators/table/header/_format.py index 6bac729bcd..f7b32358de 100644 --- a/packages/python/plotly/plotly/validators/table/header/_format.py +++ b/packages/python/plotly/plotly/validators/table/header/_format.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="format", parent_name="table.header", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/header/_formatsrc.py b/packages/python/plotly/plotly/validators/table/header/_formatsrc.py index 267141d5a4..f1819f59d8 100644 --- a/packages/python/plotly/plotly/validators/table/header/_formatsrc.py +++ b/packages/python/plotly/plotly/validators/table/header/_formatsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="formatsrc", parent_name="table.header", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/header/_height.py b/packages/python/plotly/plotly/validators/table/header/_height.py index 30395df63d..cc873d067f 100644 --- a/packages/python/plotly/plotly/validators/table/header/_height.py +++ b/packages/python/plotly/plotly/validators/table/header/_height.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="height", parent_name="table.header", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/header/_prefix.py b/packages/python/plotly/plotly/validators/table/header/_prefix.py index cabfb43541..0215d9cd94 100644 --- a/packages/python/plotly/plotly/validators/table/header/_prefix.py +++ b/packages/python/plotly/plotly/validators/table/header/_prefix.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="prefix", parent_name="table.header", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/header/_prefixsrc.py b/packages/python/plotly/plotly/validators/table/header/_prefixsrc.py index f8ee922b25..5c57bafe05 100644 --- a/packages/python/plotly/plotly/validators/table/header/_prefixsrc.py +++ b/packages/python/plotly/plotly/validators/table/header/_prefixsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="prefixsrc", parent_name="table.header", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/header/_suffix.py b/packages/python/plotly/plotly/validators/table/header/_suffix.py index ebfd5ae00c..cb8b573189 100644 --- a/packages/python/plotly/plotly/validators/table/header/_suffix.py +++ b/packages/python/plotly/plotly/validators/table/header/_suffix.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="suffix", parent_name="table.header", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/header/_suffixsrc.py b/packages/python/plotly/plotly/validators/table/header/_suffixsrc.py index 8680819fd7..1eb30c003c 100644 --- a/packages/python/plotly/plotly/validators/table/header/_suffixsrc.py +++ b/packages/python/plotly/plotly/validators/table/header/_suffixsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="suffixsrc", parent_name="table.header", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/header/_values.py b/packages/python/plotly/plotly/validators/table/header/_values.py index 3e6a064616..d567466c85 100644 --- a/packages/python/plotly/plotly/validators/table/header/_values.py +++ b/packages/python/plotly/plotly/validators/table/header/_values.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="values", parent_name="table.header", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/header/_valuessrc.py b/packages/python/plotly/plotly/validators/table/header/_valuessrc.py index 0910acd5a4..bca205ce95 100644 --- a/packages/python/plotly/plotly/validators/table/header/_valuessrc.py +++ b/packages/python/plotly/plotly/validators/table/header/_valuessrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="valuessrc", parent_name="table.header", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/header/fill/_color.py b/packages/python/plotly/plotly/validators/table/header/fill/_color.py index 71db57225d..f224e89cbd 100644 --- a/packages/python/plotly/plotly/validators/table/header/fill/_color.py +++ b/packages/python/plotly/plotly/validators/table/header/fill/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="table.header.fill", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/header/fill/_colorsrc.py b/packages/python/plotly/plotly/validators/table/header/fill/_colorsrc.py index f3dafe5742..1f789fa165 100644 --- a/packages/python/plotly/plotly/validators/table/header/fill/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/table/header/fill/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/header/font/_color.py b/packages/python/plotly/plotly/validators/table/header/font/_color.py index 4ee6340efc..9e6a1918f5 100644 --- a/packages/python/plotly/plotly/validators/table/header/font/_color.py +++ b/packages/python/plotly/plotly/validators/table/header/font/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="table.header.font", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/header/font/_colorsrc.py b/packages/python/plotly/plotly/validators/table/header/font/_colorsrc.py index 734dad3d9d..40bc72c507 100644 --- a/packages/python/plotly/plotly/validators/table/header/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/table/header/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/header/font/_family.py b/packages/python/plotly/plotly/validators/table/header/font/_family.py index 38240120da..183f60815a 100644 --- a/packages/python/plotly/plotly/validators/table/header/font/_family.py +++ b/packages/python/plotly/plotly/validators/table/header/font/_family.py @@ -9,7 +9,6 @@ def __init__(self, plotly_name="family", parent_name="table.header.font", **kwar array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/header/font/_familysrc.py b/packages/python/plotly/plotly/validators/table/header/font/_familysrc.py index d004f6dcb1..28874698f1 100644 --- a/packages/python/plotly/plotly/validators/table/header/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/table/header/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/header/font/_size.py b/packages/python/plotly/plotly/validators/table/header/font/_size.py index 1ba0851d03..097110c6a8 100644 --- a/packages/python/plotly/plotly/validators/table/header/font/_size.py +++ b/packages/python/plotly/plotly/validators/table/header/font/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="table.header.font", **kwargs array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/header/font/_sizesrc.py b/packages/python/plotly/plotly/validators/table/header/font/_sizesrc.py index 396f8d07d9..8a0b82b5ef 100644 --- a/packages/python/plotly/plotly/validators/table/header/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/table/header/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/header/line/_color.py b/packages/python/plotly/plotly/validators/table/header/line/_color.py index 8ddf6a7a17..1d291d3294 100644 --- a/packages/python/plotly/plotly/validators/table/header/line/_color.py +++ b/packages/python/plotly/plotly/validators/table/header/line/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="table.header.line", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/header/line/_colorsrc.py b/packages/python/plotly/plotly/validators/table/header/line/_colorsrc.py index 311044837d..0c01aace0f 100644 --- a/packages/python/plotly/plotly/validators/table/header/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/table/header/line/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/header/line/_width.py b/packages/python/plotly/plotly/validators/table/header/line/_width.py index 0eced168fb..08963fa79b 100644 --- a/packages/python/plotly/plotly/validators/table/header/line/_width.py +++ b/packages/python/plotly/plotly/validators/table/header/line/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="table.header.line", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/header/line/_widthsrc.py b/packages/python/plotly/plotly/validators/table/header/line/_widthsrc.py index 2c4aaea36c..6e719ccf3d 100644 --- a/packages/python/plotly/plotly/validators/table/header/line/_widthsrc.py +++ b/packages/python/plotly/plotly/validators/table/header/line/_widthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/table/hoverlabel/_align.py index 4b1c31642e..c84c80fbb0 100644 --- a/packages/python/plotly/plotly/validators/table/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/table/hoverlabel/_align.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="align", parent_name="table.hoverlabel", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/table/hoverlabel/_alignsrc.py index 60c4ab4c77..49021f0a8a 100644 --- a/packages/python/plotly/plotly/validators/table/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/table/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/table/hoverlabel/_bgcolor.py index c9076d869b..08a98fbdc1 100644 --- a/packages/python/plotly/plotly/validators/table/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/table/hoverlabel/_bgcolor.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="bgcolor", parent_name="table.hoverlabel", **kwar parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/table/hoverlabel/_bgcolorsrc.py index 8a8ba360ef..a969f9425a 100644 --- a/packages/python/plotly/plotly/validators/table/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/table/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/table/hoverlabel/_bordercolor.py index 1c5d08004a..7a606fb14e 100644 --- a/packages/python/plotly/plotly/validators/table/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/table/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/table/hoverlabel/_bordercolorsrc.py index 775c347dca..d3fd3424a3 100644 --- a/packages/python/plotly/plotly/validators/table/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/table/hoverlabel/_bordercolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/table/hoverlabel/_namelength.py index f3f6075970..c46f142e45 100644 --- a/packages/python/plotly/plotly/validators/table/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/table/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/table/hoverlabel/_namelengthsrc.py index 237f841b8a..730c4070e1 100644 --- a/packages/python/plotly/plotly/validators/table/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/table/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/table/hoverlabel/font/_color.py index d88d4811e1..eaba5c6161 100644 --- a/packages/python/plotly/plotly/validators/table/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/table/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/table/hoverlabel/font/_colorsrc.py index ce864daff9..092399053a 100644 --- a/packages/python/plotly/plotly/validators/table/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/table/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/table/hoverlabel/font/_family.py index 2308e6d303..e4a9860c76 100644 --- a/packages/python/plotly/plotly/validators/table/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/table/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/table/hoverlabel/font/_familysrc.py index 5b1cdab1dd..301c4d35c6 100644 --- a/packages/python/plotly/plotly/validators/table/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/table/hoverlabel/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/table/hoverlabel/font/_size.py index d74de194c2..bc16bcb91f 100644 --- a/packages/python/plotly/plotly/validators/table/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/table/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/table/hoverlabel/font/_sizesrc.py index 9eac019337..376c2a1f78 100644 --- a/packages/python/plotly/plotly/validators/table/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/table/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/table/stream/_maxpoints.py index 2d11a18437..e5cdd9325d 100644 --- a/packages/python/plotly/plotly/validators/table/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/table/stream/_maxpoints.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="maxpoints", parent_name="table.stream", **kwargs edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/table/stream/_token.py b/packages/python/plotly/plotly/validators/table/stream/_token.py index dd77506213..a17a24388a 100644 --- a/packages/python/plotly/plotly/validators/table/stream/_token.py +++ b/packages/python/plotly/plotly/validators/table/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="table.stream", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_branchvalues.py b/packages/python/plotly/plotly/validators/treemap/_branchvalues.py index 3c28160b60..9434442ac4 100644 --- a/packages/python/plotly/plotly/validators/treemap/_branchvalues.py +++ b/packages/python/plotly/plotly/validators/treemap/_branchvalues.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="branchvalues", parent_name="treemap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["remainder", "total"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_count.py b/packages/python/plotly/plotly/validators/treemap/_count.py index 8316809893..81fadf529f 100644 --- a/packages/python/plotly/plotly/validators/treemap/_count.py +++ b/packages/python/plotly/plotly/validators/treemap/_count.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="count", parent_name="treemap", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), flags=kwargs.pop("flags", ["branches", "leaves"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_customdata.py b/packages/python/plotly/plotly/validators/treemap/_customdata.py index ed8bd10e95..4d4fbeb87b 100644 --- a/packages/python/plotly/plotly/validators/treemap/_customdata.py +++ b/packages/python/plotly/plotly/validators/treemap/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="treemap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_customdatasrc.py b/packages/python/plotly/plotly/validators/treemap/_customdatasrc.py index 81b3f57613..a7c61f2fac 100644 --- a/packages/python/plotly/plotly/validators/treemap/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/treemap/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="treemap", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_hoverinfo.py b/packages/python/plotly/plotly/validators/treemap/_hoverinfo.py index b8abb9888b..c1a9e6006d 100644 --- a/packages/python/plotly/plotly/validators/treemap/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/treemap/_hoverinfo.py @@ -22,6 +22,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="treemap", **kwargs): "percent parent", ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/treemap/_hoverinfosrc.py index 2a675063dc..d5af263222 100644 --- a/packages/python/plotly/plotly/validators/treemap/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/treemap/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="treemap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_hovertemplate.py b/packages/python/plotly/plotly/validators/treemap/_hovertemplate.py index f80ad75f8a..4dcdef0dad 100644 --- a/packages/python/plotly/plotly/validators/treemap/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/treemap/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="treemap", **kwargs) parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/treemap/_hovertemplatesrc.py index 20ae211eef..e76cc0c4e0 100644 --- a/packages/python/plotly/plotly/validators/treemap/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/treemap/_hovertemplatesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertemplatesrc", parent_name="treemap", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_hovertext.py b/packages/python/plotly/plotly/validators/treemap/_hovertext.py index 1f8d76eb3c..77689c99dd 100644 --- a/packages/python/plotly/plotly/validators/treemap/_hovertext.py +++ b/packages/python/plotly/plotly/validators/treemap/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="treemap", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_hovertextsrc.py b/packages/python/plotly/plotly/validators/treemap/_hovertextsrc.py index d3e914977f..29b6ae5b98 100644 --- a/packages/python/plotly/plotly/validators/treemap/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/treemap/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="treemap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_ids.py b/packages/python/plotly/plotly/validators/treemap/_ids.py index 106581ecc1..130aea9552 100644 --- a/packages/python/plotly/plotly/validators/treemap/_ids.py +++ b/packages/python/plotly/plotly/validators/treemap/_ids.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ids", parent_name="treemap", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_idssrc.py b/packages/python/plotly/plotly/validators/treemap/_idssrc.py index 382d1d1455..cc81d546fb 100644 --- a/packages/python/plotly/plotly/validators/treemap/_idssrc.py +++ b/packages/python/plotly/plotly/validators/treemap/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="treemap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_labels.py b/packages/python/plotly/plotly/validators/treemap/_labels.py index fe4aa37826..60d748fc7d 100644 --- a/packages/python/plotly/plotly/validators/treemap/_labels.py +++ b/packages/python/plotly/plotly/validators/treemap/_labels.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="labels", parent_name="treemap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_labelssrc.py b/packages/python/plotly/plotly/validators/treemap/_labelssrc.py index 2158146ed7..2ecd6512b1 100644 --- a/packages/python/plotly/plotly/validators/treemap/_labelssrc.py +++ b/packages/python/plotly/plotly/validators/treemap/_labelssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="labelssrc", parent_name="treemap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_level.py b/packages/python/plotly/plotly/validators/treemap/_level.py index 99b6360e74..c8155875bd 100644 --- a/packages/python/plotly/plotly/validators/treemap/_level.py +++ b/packages/python/plotly/plotly/validators/treemap/_level.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="level", parent_name="treemap", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_maxdepth.py b/packages/python/plotly/plotly/validators/treemap/_maxdepth.py index fdaedfc376..fbb3c59edf 100644 --- a/packages/python/plotly/plotly/validators/treemap/_maxdepth.py +++ b/packages/python/plotly/plotly/validators/treemap/_maxdepth.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="maxdepth", parent_name="treemap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_meta.py b/packages/python/plotly/plotly/validators/treemap/_meta.py index c20d8c0ffb..97c716465e 100644 --- a/packages/python/plotly/plotly/validators/treemap/_meta.py +++ b/packages/python/plotly/plotly/validators/treemap/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="treemap", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_metasrc.py b/packages/python/plotly/plotly/validators/treemap/_metasrc.py index 629f9452c5..9e4d0b9104 100644 --- a/packages/python/plotly/plotly/validators/treemap/_metasrc.py +++ b/packages/python/plotly/plotly/validators/treemap/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="treemap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_name.py b/packages/python/plotly/plotly/validators/treemap/_name.py index ee34d67764..488c82e233 100644 --- a/packages/python/plotly/plotly/validators/treemap/_name.py +++ b/packages/python/plotly/plotly/validators/treemap/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="treemap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_opacity.py b/packages/python/plotly/plotly/validators/treemap/_opacity.py index e99a3aa463..25d7b3c4e5 100644 --- a/packages/python/plotly/plotly/validators/treemap/_opacity.py +++ b/packages/python/plotly/plotly/validators/treemap/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="treemap", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_parents.py b/packages/python/plotly/plotly/validators/treemap/_parents.py index a8b58d6a5e..f2bb34b8bd 100644 --- a/packages/python/plotly/plotly/validators/treemap/_parents.py +++ b/packages/python/plotly/plotly/validators/treemap/_parents.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="parents", parent_name="treemap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_parentssrc.py b/packages/python/plotly/plotly/validators/treemap/_parentssrc.py index a14f3acc17..02e29219dd 100644 --- a/packages/python/plotly/plotly/validators/treemap/_parentssrc.py +++ b/packages/python/plotly/plotly/validators/treemap/_parentssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="parentssrc", parent_name="treemap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_sort.py b/packages/python/plotly/plotly/validators/treemap/_sort.py index ac16e7885b..7484af9475 100644 --- a/packages/python/plotly/plotly/validators/treemap/_sort.py +++ b/packages/python/plotly/plotly/validators/treemap/_sort.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="sort", parent_name="treemap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_text.py b/packages/python/plotly/plotly/validators/treemap/_text.py index 9c289c8b3c..775a97d2c7 100644 --- a/packages/python/plotly/plotly/validators/treemap/_text.py +++ b/packages/python/plotly/plotly/validators/treemap/_text.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="text", parent_name="treemap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_textinfo.py b/packages/python/plotly/plotly/validators/treemap/_textinfo.py index 629111bfaf..ea6ef55609 100644 --- a/packages/python/plotly/plotly/validators/treemap/_textinfo.py +++ b/packages/python/plotly/plotly/validators/treemap/_textinfo.py @@ -20,6 +20,5 @@ def __init__(self, plotly_name="textinfo", parent_name="treemap", **kwargs): "percent parent", ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_textposition.py b/packages/python/plotly/plotly/validators/treemap/_textposition.py index d269d2a60f..33e251ea07 100644 --- a/packages/python/plotly/plotly/validators/treemap/_textposition.py +++ b/packages/python/plotly/plotly/validators/treemap/_textposition.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="textposition", parent_name="treemap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/treemap/_textsrc.py b/packages/python/plotly/plotly/validators/treemap/_textsrc.py index 3a77df3239..c5fe5c4f3c 100644 --- a/packages/python/plotly/plotly/validators/treemap/_textsrc.py +++ b/packages/python/plotly/plotly/validators/treemap/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="treemap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_texttemplate.py b/packages/python/plotly/plotly/validators/treemap/_texttemplate.py index 7928d0c6dd..d9888d8430 100644 --- a/packages/python/plotly/plotly/validators/treemap/_texttemplate.py +++ b/packages/python/plotly/plotly/validators/treemap/_texttemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="texttemplate", parent_name="treemap", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_texttemplatesrc.py b/packages/python/plotly/plotly/validators/treemap/_texttemplatesrc.py index f936417c6e..fcd822cb55 100644 --- a/packages/python/plotly/plotly/validators/treemap/_texttemplatesrc.py +++ b/packages/python/plotly/plotly/validators/treemap/_texttemplatesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="texttemplatesrc", parent_name="treemap", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_uid.py b/packages/python/plotly/plotly/validators/treemap/_uid.py index d30a945115..d742c39f2e 100644 --- a/packages/python/plotly/plotly/validators/treemap/_uid.py +++ b/packages/python/plotly/plotly/validators/treemap/_uid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="uid", parent_name="treemap", **kwargs): parent_name=parent_name, anim=kwargs.pop("anim", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_uirevision.py b/packages/python/plotly/plotly/validators/treemap/_uirevision.py index bbea721600..a5f0b71648 100644 --- a/packages/python/plotly/plotly/validators/treemap/_uirevision.py +++ b/packages/python/plotly/plotly/validators/treemap/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="treemap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_values.py b/packages/python/plotly/plotly/validators/treemap/_values.py index 6a151484af..07164612a1 100644 --- a/packages/python/plotly/plotly/validators/treemap/_values.py +++ b/packages/python/plotly/plotly/validators/treemap/_values.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="values", parent_name="treemap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_valuessrc.py b/packages/python/plotly/plotly/validators/treemap/_valuessrc.py index 2af1970f92..535708e694 100644 --- a/packages/python/plotly/plotly/validators/treemap/_valuessrc.py +++ b/packages/python/plotly/plotly/validators/treemap/_valuessrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="valuessrc", parent_name="treemap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/_visible.py b/packages/python/plotly/plotly/validators/treemap/_visible.py index 33a6f01928..537d81152a 100644 --- a/packages/python/plotly/plotly/validators/treemap/_visible.py +++ b/packages/python/plotly/plotly/validators/treemap/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="treemap", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/domain/_column.py b/packages/python/plotly/plotly/validators/treemap/domain/_column.py index adfe4c9ad6..cacf9705ab 100644 --- a/packages/python/plotly/plotly/validators/treemap/domain/_column.py +++ b/packages/python/plotly/plotly/validators/treemap/domain/_column.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="column", parent_name="treemap.domain", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/domain/_row.py b/packages/python/plotly/plotly/validators/treemap/domain/_row.py index bc65ba16d4..b09df3148c 100644 --- a/packages/python/plotly/plotly/validators/treemap/domain/_row.py +++ b/packages/python/plotly/plotly/validators/treemap/domain/_row.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="row", parent_name="treemap.domain", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/domain/_x.py b/packages/python/plotly/plotly/validators/treemap/domain/_x.py index 687387f5c6..ec2e75099b 100644 --- a/packages/python/plotly/plotly/validators/treemap/domain/_x.py +++ b/packages/python/plotly/plotly/validators/treemap/domain/_x.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="x", parent_name="treemap.domain", **kwargs): {"valType": "number", "min": 0, "max": 1, "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/domain/_y.py b/packages/python/plotly/plotly/validators/treemap/domain/_y.py index 132f4688f4..ba105fab14 100644 --- a/packages/python/plotly/plotly/validators/treemap/domain/_y.py +++ b/packages/python/plotly/plotly/validators/treemap/domain/_y.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="y", parent_name="treemap.domain", **kwargs): {"valType": "number", "min": 0, "max": 1, "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/treemap/hoverlabel/_align.py index 74f4eb51d9..0b260ba3f9 100644 --- a/packages/python/plotly/plotly/validators/treemap/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/treemap/hoverlabel/_align.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="align", parent_name="treemap.hoverlabel", **kwar parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/treemap/hoverlabel/_alignsrc.py index c433ba60b2..ed9558de8f 100644 --- a/packages/python/plotly/plotly/validators/treemap/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/treemap/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/treemap/hoverlabel/_bgcolor.py index 2d854b52ba..da947577da 100644 --- a/packages/python/plotly/plotly/validators/treemap/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/treemap/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/treemap/hoverlabel/_bgcolorsrc.py index 1acf667a07..800b5eb318 100644 --- a/packages/python/plotly/plotly/validators/treemap/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/treemap/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/treemap/hoverlabel/_bordercolor.py index 3139fa62d4..ae41b2e0e6 100644 --- a/packages/python/plotly/plotly/validators/treemap/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/treemap/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/treemap/hoverlabel/_bordercolorsrc.py index d63439f08e..60ece89f31 100644 --- a/packages/python/plotly/plotly/validators/treemap/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/treemap/hoverlabel/_bordercolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/treemap/hoverlabel/_namelength.py index 07c0d6ffd2..21f842d594 100644 --- a/packages/python/plotly/plotly/validators/treemap/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/treemap/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/treemap/hoverlabel/_namelengthsrc.py index 3eb246bbc7..90b24f5a0b 100644 --- a/packages/python/plotly/plotly/validators/treemap/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/treemap/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/treemap/hoverlabel/font/_color.py index 159dac2137..5bf1d07ce8 100644 --- a/packages/python/plotly/plotly/validators/treemap/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/treemap/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/treemap/hoverlabel/font/_colorsrc.py index 0ddf734102..9bd92e4d03 100644 --- a/packages/python/plotly/plotly/validators/treemap/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/treemap/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/treemap/hoverlabel/font/_family.py index 59dbc7c157..65deaccb78 100644 --- a/packages/python/plotly/plotly/validators/treemap/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/treemap/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/treemap/hoverlabel/font/_familysrc.py index 2ba47948e1..32b1d130ea 100644 --- a/packages/python/plotly/plotly/validators/treemap/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/treemap/hoverlabel/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/treemap/hoverlabel/font/_size.py index eaccf36402..de8bc31243 100644 --- a/packages/python/plotly/plotly/validators/treemap/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/treemap/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/treemap/hoverlabel/font/_sizesrc.py index 892475314e..b112eb32d5 100644 --- a/packages/python/plotly/plotly/validators/treemap/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/treemap/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/insidetextfont/_color.py b/packages/python/plotly/plotly/validators/treemap/insidetextfont/_color.py index d054901abe..74f971ac58 100644 --- a/packages/python/plotly/plotly/validators/treemap/insidetextfont/_color.py +++ b/packages/python/plotly/plotly/validators/treemap/insidetextfont/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/insidetextfont/_colorsrc.py b/packages/python/plotly/plotly/validators/treemap/insidetextfont/_colorsrc.py index 7f61b10ea3..ed685c765d 100644 --- a/packages/python/plotly/plotly/validators/treemap/insidetextfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/treemap/insidetextfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/insidetextfont/_family.py b/packages/python/plotly/plotly/validators/treemap/insidetextfont/_family.py index 700931bb22..b93adac722 100644 --- a/packages/python/plotly/plotly/validators/treemap/insidetextfont/_family.py +++ b/packages/python/plotly/plotly/validators/treemap/insidetextfont/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/insidetextfont/_familysrc.py b/packages/python/plotly/plotly/validators/treemap/insidetextfont/_familysrc.py index 6ce3bd8188..54a494bcb9 100644 --- a/packages/python/plotly/plotly/validators/treemap/insidetextfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/treemap/insidetextfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/insidetextfont/_size.py b/packages/python/plotly/plotly/validators/treemap/insidetextfont/_size.py index 9146d025a8..06b6131e84 100644 --- a/packages/python/plotly/plotly/validators/treemap/insidetextfont/_size.py +++ b/packages/python/plotly/plotly/validators/treemap/insidetextfont/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/insidetextfont/_sizesrc.py b/packages/python/plotly/plotly/validators/treemap/insidetextfont/_sizesrc.py index 3d96ea168d..d51b31d680 100644 --- a/packages/python/plotly/plotly/validators/treemap/insidetextfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/treemap/insidetextfont/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/_autocolorscale.py b/packages/python/plotly/plotly/validators/treemap/marker/_autocolorscale.py index da4fc6cb31..6b3ff45d7c 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/_autocolorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/_cauto.py b/packages/python/plotly/plotly/validators/treemap/marker/_cauto.py index 2993c81ae2..cca7e6291e 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/_cauto.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/_cauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cauto", parent_name="treemap.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/_cmax.py b/packages/python/plotly/plotly/validators/treemap/marker/_cmax.py index 012501cf49..ea7e0610b8 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/_cmax.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="treemap.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/_cmid.py b/packages/python/plotly/plotly/validators/treemap/marker/_cmid.py index 205a038c75..bac4b6a754 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/_cmid.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="treemap.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/_cmin.py b/packages/python/plotly/plotly/validators/treemap/marker/_cmin.py index fe64db0605..890e1cb183 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/_cmin.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="treemap.marker", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/_coloraxis.py b/packages/python/plotly/plotly/validators/treemap/marker/_coloraxis.py index f37235975c..a4e43f23e6 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/_coloraxis.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="coloraxis", parent_name="treemap.marker", **kwar dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/_colorbar.py b/packages/python/plotly/plotly/validators/treemap/marker/_colorbar.py index 9836d6eec5..4cfe66686f 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/_colorbar.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/_colorbar.py @@ -148,6 +148,12 @@ def __init__(self, plotly_name="colorbar", parent_name="treemap.marker", **kwarg s), sets the default property values to use for elements of treemap.marker.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/treemap/marker/_colors.py b/packages/python/plotly/plotly/validators/treemap/marker/_colors.py index a0340fc595..b6f33b140e 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/_colors.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/_colors.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="colors", parent_name="treemap.marker", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/_colorscale.py b/packages/python/plotly/plotly/validators/treemap/marker/_colorscale.py index 32c8569c9c..9c426632cf 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/_colorscale.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/_colorscale.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/_colorssrc.py b/packages/python/plotly/plotly/validators/treemap/marker/_colorssrc.py index da1cc477a5..36e5f1dc8d 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/_colorssrc.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/_colorssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="colorssrc", parent_name="treemap.marker", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/_depthfade.py b/packages/python/plotly/plotly/validators/treemap/marker/_depthfade.py index 1be6672723..6207024593 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/_depthfade.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/_depthfade.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="depthfade", parent_name="treemap.marker", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", [True, False, "reversed"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/_reversescale.py b/packages/python/plotly/plotly/validators/treemap/marker/_reversescale.py index 04881aabd0..569df28c1d 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/_reversescale.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/_reversescale.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/_showscale.py b/packages/python/plotly/plotly/validators/treemap/marker/_showscale.py index b2736ecfa1..e42f8af3ca 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/_showscale.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/_showscale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showscale", parent_name="treemap.marker", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/__init__.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_bgcolor.py index ebe0107dbf..438a66608d 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_bgcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_bordercolor.py index 4a37c994c4..13637202d4 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_borderwidth.py index b90a661ee8..2aa9966ec1 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_dtick.py index a6739479fa..ccc27c3ed2 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_dtick.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_exponentformat.py index 681e4af5b4..a653459d09 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_exponentformat.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_len.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_len.py index c3e7f078e8..894a360a11 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_len.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_lenmode.py index d23ea18c9e..4b95eef562 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_lenmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_minexponent.py index fe832df1a8..3565ad80b0 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_nticks.py index cd3dc7bd45..2647de0257 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_nticks.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_outlinecolor.py index 27285cffb1..04c8e43234 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_outlinecolor.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_outlinewidth.py index 88c2ac04dc..f52d4ff9ec 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_outlinewidth.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_separatethousands.py index 482c33cc48..a1c0f49e7d 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_separatethousands.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_showexponent.py index 0d2acb3bc9..7f4095e6e0 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_showexponent.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_showticklabels.py index 3b73f6ea6e..614dd64102 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_showticklabels.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_showtickprefix.py index a054679fff..daa41a6e08 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_showtickprefix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_showticksuffix.py index 75679cfa70..505d534931 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_showticksuffix.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_thickness.py index 4939c98089..3b478bafc9 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_thicknessmode.py index 57bca4885a..0b32ed3f75 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_thicknessmode.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tick0.py index 77bab9191d..4e95315467 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tick0.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickangle.py index 4dbe36ab75..3b9021c2f2 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickcolor.py index 5ad8eefc0c..510480ae93 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickformat.py index eaabf1060b..aa91721577 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..a835cd1c1d --- /dev/null +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticklabeloverflow.py @@ -0,0 +1,17 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, + plotly_name="ticklabeloverflow", + parent_name="treemap.marker.colorbar", + **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "colorbars"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticklabelposition.py index 7736d8941e..2812d541d4 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticklabelposition.py @@ -12,7 +12,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticklen.py index 3fc6f20b92..71f382668e 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticklen.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickmode.py index 636e210d6a..60765d0bdb 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickmode.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickprefix.py index fc07458f49..178b7ad931 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticks.py index 3ba0f396ec..11518bb5a9 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticks.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticksuffix.py index 1576a2cb77..57e116f677 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticktext.py index e578ff51cc..a5188a0e85 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticktext.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticktextsrc.py index 867731040c..24ebce729b 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickvals.py index 9991b07ddc..1f1aaad271 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickvals.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickvalssrc.py index 8c9881cdc8..02bc553ca8 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickwidth.py index b788c989e9..ef2a533e42 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_x.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_x.py index 00edc7a274..9f64ec319a 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_x.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_xanchor.py index 84ea50a23d..b79d931364 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_xanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_xpad.py index 517073db26..ad0cf7c81d 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_xpad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_y.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_y.py index 08436fa448..a8f586e3f0 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_y.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "colorbars"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_yanchor.py index 3e9320dc29..89b6dfd7e9 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_yanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ypad.py index 1aa1ae02cc..8bb6aef790 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/_ypad.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickfont/_color.py index 8935bf084a..c7d825af77 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickfont/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickfont/_family.py index ff275fb16e..4ab9b6c05f 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickfont/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickfont/_size.py index 13c1a8106b..311b185a9f 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickfont/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickformatstop/_dtickrange.py index bf751fa530..a3ed30170a 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "colorbars"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickformatstop/_enabled.py index 8be5228218..7ca5429910 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickformatstop/_name.py index 35bf0bbde5..f7491b4131 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickformatstop/_name.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickformatstop/_templateitemname.py index c58ba29c50..cb620b2451 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickformatstop/_value.py index f38f84ce83..029cfc959b 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/title/_side.py index d47fb2792a..ddfd8d9c28 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/title/_side.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/title/_text.py index 6413ddf878..1fc3802898 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/title/font/_color.py index 1ae891dea0..a2f311425b 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/title/font/_color.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/title/font/_family.py index 1b3cd517d3..d0cb4dbde5 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/title/font/_family.py @@ -13,7 +13,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/title/font/_size.py index 1e652ebb6f..9a248618f0 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/colorbar/title/font/_size.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "colorbars"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/line/_color.py b/packages/python/plotly/plotly/validators/treemap/marker/line/_color.py index c2c1cfe48b..60d60b8eb5 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/line/_color.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/line/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/line/_colorsrc.py b/packages/python/plotly/plotly/validators/treemap/marker/line/_colorsrc.py index 97ec5dd051..73bee11abd 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/line/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/line/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/line/_width.py b/packages/python/plotly/plotly/validators/treemap/marker/line/_width.py index 8cb9b07da1..f7ea28ee89 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/line/_width.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/line/_width.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/line/_widthsrc.py b/packages/python/plotly/plotly/validators/treemap/marker/line/_widthsrc.py index c80c8aa621..59f354bed6 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/line/_widthsrc.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/line/_widthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/pad/_b.py b/packages/python/plotly/plotly/validators/treemap/marker/pad/_b.py index 44764ae74b..d05fcf8f27 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/pad/_b.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/pad/_b.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="b", parent_name="treemap.marker.pad", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/pad/_l.py b/packages/python/plotly/plotly/validators/treemap/marker/pad/_l.py index 748b276a6e..cc404ed09a 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/pad/_l.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/pad/_l.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="l", parent_name="treemap.marker.pad", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/pad/_r.py b/packages/python/plotly/plotly/validators/treemap/marker/pad/_r.py index e4a7a5241a..092d704a7d 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/pad/_r.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/pad/_r.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="r", parent_name="treemap.marker.pad", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/marker/pad/_t.py b/packages/python/plotly/plotly/validators/treemap/marker/pad/_t.py index 4e1edc55f5..c258e9ef77 100644 --- a/packages/python/plotly/plotly/validators/treemap/marker/pad/_t.py +++ b/packages/python/plotly/plotly/validators/treemap/marker/pad/_t.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="t", parent_name="treemap.marker.pad", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/outsidetextfont/_color.py b/packages/python/plotly/plotly/validators/treemap/outsidetextfont/_color.py index b4d9e21bb6..c18a38251c 100644 --- a/packages/python/plotly/plotly/validators/treemap/outsidetextfont/_color.py +++ b/packages/python/plotly/plotly/validators/treemap/outsidetextfont/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/outsidetextfont/_colorsrc.py b/packages/python/plotly/plotly/validators/treemap/outsidetextfont/_colorsrc.py index 9cfb715191..0c2e642ebb 100644 --- a/packages/python/plotly/plotly/validators/treemap/outsidetextfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/treemap/outsidetextfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/outsidetextfont/_family.py b/packages/python/plotly/plotly/validators/treemap/outsidetextfont/_family.py index 6268d1f4c4..28659a9503 100644 --- a/packages/python/plotly/plotly/validators/treemap/outsidetextfont/_family.py +++ b/packages/python/plotly/plotly/validators/treemap/outsidetextfont/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/outsidetextfont/_familysrc.py b/packages/python/plotly/plotly/validators/treemap/outsidetextfont/_familysrc.py index 10dc3f2520..00f6000001 100644 --- a/packages/python/plotly/plotly/validators/treemap/outsidetextfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/treemap/outsidetextfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/outsidetextfont/_size.py b/packages/python/plotly/plotly/validators/treemap/outsidetextfont/_size.py index e67de05613..66b3b50a15 100644 --- a/packages/python/plotly/plotly/validators/treemap/outsidetextfont/_size.py +++ b/packages/python/plotly/plotly/validators/treemap/outsidetextfont/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/outsidetextfont/_sizesrc.py b/packages/python/plotly/plotly/validators/treemap/outsidetextfont/_sizesrc.py index 05acc18c4d..8fd2c9218c 100644 --- a/packages/python/plotly/plotly/validators/treemap/outsidetextfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/treemap/outsidetextfont/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/pathbar/_edgeshape.py b/packages/python/plotly/plotly/validators/treemap/pathbar/_edgeshape.py index a4f4be5a93..d7f7cd7724 100644 --- a/packages/python/plotly/plotly/validators/treemap/pathbar/_edgeshape.py +++ b/packages/python/plotly/plotly/validators/treemap/pathbar/_edgeshape.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", [">", "<", "|", "/", "\\"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/pathbar/_side.py b/packages/python/plotly/plotly/validators/treemap/pathbar/_side.py index 65da234798..28e956040c 100644 --- a/packages/python/plotly/plotly/validators/treemap/pathbar/_side.py +++ b/packages/python/plotly/plotly/validators/treemap/pathbar/_side.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="side", parent_name="treemap.pathbar", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/pathbar/_thickness.py b/packages/python/plotly/plotly/validators/treemap/pathbar/_thickness.py index 69b2623230..7ec62573d4 100644 --- a/packages/python/plotly/plotly/validators/treemap/pathbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/treemap/pathbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 12), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/pathbar/_visible.py b/packages/python/plotly/plotly/validators/treemap/pathbar/_visible.py index d15e7d335f..e904556a5e 100644 --- a/packages/python/plotly/plotly/validators/treemap/pathbar/_visible.py +++ b/packages/python/plotly/plotly/validators/treemap/pathbar/_visible.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="visible", parent_name="treemap.pathbar", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/pathbar/textfont/_color.py b/packages/python/plotly/plotly/validators/treemap/pathbar/textfont/_color.py index 803911bf66..7d63afcff5 100644 --- a/packages/python/plotly/plotly/validators/treemap/pathbar/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/treemap/pathbar/textfont/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/pathbar/textfont/_colorsrc.py b/packages/python/plotly/plotly/validators/treemap/pathbar/textfont/_colorsrc.py index 264114c6dc..ea955af8f4 100644 --- a/packages/python/plotly/plotly/validators/treemap/pathbar/textfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/treemap/pathbar/textfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/pathbar/textfont/_family.py b/packages/python/plotly/plotly/validators/treemap/pathbar/textfont/_family.py index 7e1e1f133d..e676df67f4 100644 --- a/packages/python/plotly/plotly/validators/treemap/pathbar/textfont/_family.py +++ b/packages/python/plotly/plotly/validators/treemap/pathbar/textfont/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/pathbar/textfont/_familysrc.py b/packages/python/plotly/plotly/validators/treemap/pathbar/textfont/_familysrc.py index ea99a6caf1..2103f75fd7 100644 --- a/packages/python/plotly/plotly/validators/treemap/pathbar/textfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/treemap/pathbar/textfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/pathbar/textfont/_size.py b/packages/python/plotly/plotly/validators/treemap/pathbar/textfont/_size.py index 1f31e900d2..19ca9a04f7 100644 --- a/packages/python/plotly/plotly/validators/treemap/pathbar/textfont/_size.py +++ b/packages/python/plotly/plotly/validators/treemap/pathbar/textfont/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/pathbar/textfont/_sizesrc.py b/packages/python/plotly/plotly/validators/treemap/pathbar/textfont/_sizesrc.py index 8a5f2dbcb8..8bbed59639 100644 --- a/packages/python/plotly/plotly/validators/treemap/pathbar/textfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/treemap/pathbar/textfont/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/root/_color.py b/packages/python/plotly/plotly/validators/treemap/root/_color.py index 96b1387bf5..1e405b1431 100644 --- a/packages/python/plotly/plotly/validators/treemap/root/_color.py +++ b/packages/python/plotly/plotly/validators/treemap/root/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="treemap.root", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/treemap/stream/_maxpoints.py index 24348a256e..87a2b19d87 100644 --- a/packages/python/plotly/plotly/validators/treemap/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/treemap/stream/_maxpoints.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="maxpoints", parent_name="treemap.stream", **kwar edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/stream/_token.py b/packages/python/plotly/plotly/validators/treemap/stream/_token.py index 161c3ae433..d3eaf08adc 100644 --- a/packages/python/plotly/plotly/validators/treemap/stream/_token.py +++ b/packages/python/plotly/plotly/validators/treemap/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="treemap.stream", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/textfont/_color.py b/packages/python/plotly/plotly/validators/treemap/textfont/_color.py index def7f4142b..93b3fa08eb 100644 --- a/packages/python/plotly/plotly/validators/treemap/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/treemap/textfont/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="treemap.textfont", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/textfont/_colorsrc.py b/packages/python/plotly/plotly/validators/treemap/textfont/_colorsrc.py index 6202bd0d5b..a2947387ca 100644 --- a/packages/python/plotly/plotly/validators/treemap/textfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/treemap/textfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/textfont/_family.py b/packages/python/plotly/plotly/validators/treemap/textfont/_family.py index 9cf80038f6..c3db06216f 100644 --- a/packages/python/plotly/plotly/validators/treemap/textfont/_family.py +++ b/packages/python/plotly/plotly/validators/treemap/textfont/_family.py @@ -9,7 +9,6 @@ def __init__(self, plotly_name="family", parent_name="treemap.textfont", **kwarg array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/textfont/_familysrc.py b/packages/python/plotly/plotly/validators/treemap/textfont/_familysrc.py index c3d10f04bb..d08fa8cfb6 100644 --- a/packages/python/plotly/plotly/validators/treemap/textfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/treemap/textfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/textfont/_size.py b/packages/python/plotly/plotly/validators/treemap/textfont/_size.py index 452a113f2a..6d7e00d76c 100644 --- a/packages/python/plotly/plotly/validators/treemap/textfont/_size.py +++ b/packages/python/plotly/plotly/validators/treemap/textfont/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="treemap.textfont", **kwargs) array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/textfont/_sizesrc.py b/packages/python/plotly/plotly/validators/treemap/textfont/_sizesrc.py index f0e782f4fb..fcac0bca24 100644 --- a/packages/python/plotly/plotly/validators/treemap/textfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/treemap/textfont/_sizesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="sizesrc", parent_name="treemap.textfont", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/tiling/_flip.py b/packages/python/plotly/plotly/validators/treemap/tiling/_flip.py index 59dcc857e1..8505c9ce19 100644 --- a/packages/python/plotly/plotly/validators/treemap/tiling/_flip.py +++ b/packages/python/plotly/plotly/validators/treemap/tiling/_flip.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="flip", parent_name="treemap.tiling", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), flags=kwargs.pop("flags", ["x", "y"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/tiling/_packing.py b/packages/python/plotly/plotly/validators/treemap/tiling/_packing.py index 8d27b02d0b..c0d7a8cdf2 100644 --- a/packages/python/plotly/plotly/validators/treemap/tiling/_packing.py +++ b/packages/python/plotly/plotly/validators/treemap/tiling/_packing.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="packing", parent_name="treemap.tiling", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", ["squarify", "binary", "dice", "slice", "slice-dice", "dice-slice"], diff --git a/packages/python/plotly/plotly/validators/treemap/tiling/_pad.py b/packages/python/plotly/plotly/validators/treemap/tiling/_pad.py index cc2f3c9b54..2712d5c4ad 100644 --- a/packages/python/plotly/plotly/validators/treemap/tiling/_pad.py +++ b/packages/python/plotly/plotly/validators/treemap/tiling/_pad.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="pad", parent_name="treemap.tiling", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/treemap/tiling/_squarifyratio.py b/packages/python/plotly/plotly/validators/treemap/tiling/_squarifyratio.py index 723a9c1a46..5b80a0cb0c 100644 --- a/packages/python/plotly/plotly/validators/treemap/tiling/_squarifyratio.py +++ b/packages/python/plotly/plotly/validators/treemap/tiling/_squarifyratio.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/__init__.py b/packages/python/plotly/plotly/validators/violin/__init__.py index 02ed7e3103..f448145afa 100644 --- a/packages/python/plotly/plotly/validators/violin/__init__.py +++ b/packages/python/plotly/plotly/validators/violin/__init__.py @@ -2,10 +2,12 @@ if sys.version_info < (3, 7): from ._ysrc import YsrcValidator + from ._yhoverformat import YhoverformatValidator from ._yaxis import YaxisValidator from ._y0 import Y0Validator from ._y import YValidator from ._xsrc import XsrcValidator + from ._xhoverformat import XhoverformatValidator from ._xaxis import XaxisValidator from ._x0 import X0Validator from ._x import XValidator @@ -62,10 +64,12 @@ [], [ "._ysrc.YsrcValidator", + "._yhoverformat.YhoverformatValidator", "._yaxis.YaxisValidator", "._y0.Y0Validator", "._y.YValidator", "._xsrc.XsrcValidator", + "._xhoverformat.XhoverformatValidator", "._xaxis.XaxisValidator", "._x0.X0Validator", "._x.XValidator", diff --git a/packages/python/plotly/plotly/validators/violin/_alignmentgroup.py b/packages/python/plotly/plotly/validators/violin/_alignmentgroup.py index 68ab94b28e..7a75168ffc 100644 --- a/packages/python/plotly/plotly/validators/violin/_alignmentgroup.py +++ b/packages/python/plotly/plotly/validators/violin/_alignmentgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="alignmentgroup", parent_name="violin", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_bandwidth.py b/packages/python/plotly/plotly/validators/violin/_bandwidth.py index 3171e915ff..f2310788af 100644 --- a/packages/python/plotly/plotly/validators/violin/_bandwidth.py +++ b/packages/python/plotly/plotly/validators/violin/_bandwidth.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="bandwidth", parent_name="violin", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_customdata.py b/packages/python/plotly/plotly/validators/violin/_customdata.py index 4aa991ed0c..0b85f3a2ad 100644 --- a/packages/python/plotly/plotly/validators/violin/_customdata.py +++ b/packages/python/plotly/plotly/validators/violin/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_customdatasrc.py b/packages/python/plotly/plotly/validators/violin/_customdatasrc.py index 0d1ea8d216..9627d37dbf 100644 --- a/packages/python/plotly/plotly/validators/violin/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/violin/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_fillcolor.py b/packages/python/plotly/plotly/validators/violin/_fillcolor.py index 0f19168566..dcb2b1e992 100644 --- a/packages/python/plotly/plotly/validators/violin/_fillcolor.py +++ b/packages/python/plotly/plotly/validators/violin/_fillcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="fillcolor", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_hoverinfo.py b/packages/python/plotly/plotly/validators/violin/_hoverinfo.py index 3d79d9c9f0..54633060b3 100644 --- a/packages/python/plotly/plotly/validators/violin/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/violin/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="violin", **kwargs): edit_type=kwargs.pop("edit_type", "none"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["x", "y", "z", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/violin/_hoverinfosrc.py index 468da823bf..42af87a6eb 100644 --- a/packages/python/plotly/plotly/validators/violin/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/violin/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_hoveron.py b/packages/python/plotly/plotly/validators/violin/_hoveron.py index fd93d697c4..0c0f1e7639 100644 --- a/packages/python/plotly/plotly/validators/violin/_hoveron.py +++ b/packages/python/plotly/plotly/validators/violin/_hoveron.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="hoveron", parent_name="violin", **kwargs): edit_type=kwargs.pop("edit_type", "style"), extras=kwargs.pop("extras", ["all"]), flags=kwargs.pop("flags", ["violins", "points", "kde"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_hovertemplate.py b/packages/python/plotly/plotly/validators/violin/_hovertemplate.py index 78d7e7adce..cffd56d962 100644 --- a/packages/python/plotly/plotly/validators/violin/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/violin/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="violin", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/violin/_hovertemplatesrc.py index 09024f29a7..3f3a2b9fb9 100644 --- a/packages/python/plotly/plotly/validators/violin/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/violin/_hovertemplatesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertemplatesrc", parent_name="violin", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_hovertext.py b/packages/python/plotly/plotly/validators/violin/_hovertext.py index eef0db0717..fc685be5df 100644 --- a/packages/python/plotly/plotly/validators/violin/_hovertext.py +++ b/packages/python/plotly/plotly/validators/violin/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="violin", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_hovertextsrc.py b/packages/python/plotly/plotly/validators/violin/_hovertextsrc.py index 2368eb06bc..9f9de6e696 100644 --- a/packages/python/plotly/plotly/validators/violin/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/violin/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_ids.py b/packages/python/plotly/plotly/validators/violin/_ids.py index 238ba37ac8..b3a947f861 100644 --- a/packages/python/plotly/plotly/validators/violin/_ids.py +++ b/packages/python/plotly/plotly/validators/violin/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_idssrc.py b/packages/python/plotly/plotly/validators/violin/_idssrc.py index 0126b54309..3432d8f830 100644 --- a/packages/python/plotly/plotly/validators/violin/_idssrc.py +++ b/packages/python/plotly/plotly/validators/violin/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_jitter.py b/packages/python/plotly/plotly/validators/violin/_jitter.py index f9d3e5c08a..8f8f52d743 100644 --- a/packages/python/plotly/plotly/validators/violin/_jitter.py +++ b/packages/python/plotly/plotly/validators/violin/_jitter.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="jitter", parent_name="violin", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_legendgroup.py b/packages/python/plotly/plotly/validators/violin/_legendgroup.py index 29807dd337..4747751747 100644 --- a/packages/python/plotly/plotly/validators/violin/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/violin/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_meta.py b/packages/python/plotly/plotly/validators/violin/_meta.py index f03b3be4ca..1cda32d6b5 100644 --- a/packages/python/plotly/plotly/validators/violin/_meta.py +++ b/packages/python/plotly/plotly/validators/violin/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="violin", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_metasrc.py b/packages/python/plotly/plotly/validators/violin/_metasrc.py index 878937fd74..466d497ebc 100644 --- a/packages/python/plotly/plotly/validators/violin/_metasrc.py +++ b/packages/python/plotly/plotly/validators/violin/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_name.py b/packages/python/plotly/plotly/validators/violin/_name.py index 92c0bb8566..1ace732fe1 100644 --- a/packages/python/plotly/plotly/validators/violin/_name.py +++ b/packages/python/plotly/plotly/validators/violin/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_offsetgroup.py b/packages/python/plotly/plotly/validators/violin/_offsetgroup.py index 6d42068e7d..b60084808b 100644 --- a/packages/python/plotly/plotly/validators/violin/_offsetgroup.py +++ b/packages/python/plotly/plotly/validators/violin/_offsetgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="offsetgroup", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_opacity.py b/packages/python/plotly/plotly/validators/violin/_opacity.py index d8adbe852c..aea5aadc21 100644 --- a/packages/python/plotly/plotly/validators/violin/_opacity.py +++ b/packages/python/plotly/plotly/validators/violin/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="violin", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_orientation.py b/packages/python/plotly/plotly/validators/violin/_orientation.py index b19d61addc..867ef5a3dc 100644 --- a/packages/python/plotly/plotly/validators/violin/_orientation.py +++ b/packages/python/plotly/plotly/validators/violin/_orientation.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="orientation", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["v", "h"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_pointpos.py b/packages/python/plotly/plotly/validators/violin/_pointpos.py index 7ba25f9639..05c1dd7154 100644 --- a/packages/python/plotly/plotly/validators/violin/_pointpos.py +++ b/packages/python/plotly/plotly/validators/violin/_pointpos.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="pointpos", parent_name="violin", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 2), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_points.py b/packages/python/plotly/plotly/validators/violin/_points.py index 9eb06d1c2b..f72c3d8a0d 100644 --- a/packages/python/plotly/plotly/validators/violin/_points.py +++ b/packages/python/plotly/plotly/validators/violin/_points.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="points", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", ["all", "outliers", "suspectedoutliers", False] ), diff --git a/packages/python/plotly/plotly/validators/violin/_scalegroup.py b/packages/python/plotly/plotly/validators/violin/_scalegroup.py index ba4e352996..5dd65c1135 100644 --- a/packages/python/plotly/plotly/validators/violin/_scalegroup.py +++ b/packages/python/plotly/plotly/validators/violin/_scalegroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="scalegroup", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_scalemode.py b/packages/python/plotly/plotly/validators/violin/_scalemode.py index d1c9162806..7a9a5f6281 100644 --- a/packages/python/plotly/plotly/validators/violin/_scalemode.py +++ b/packages/python/plotly/plotly/validators/violin/_scalemode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="scalemode", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["width", "count"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_selectedpoints.py b/packages/python/plotly/plotly/validators/violin/_selectedpoints.py index 86c17b3a18..dd4a8bf1ad 100644 --- a/packages/python/plotly/plotly/validators/violin/_selectedpoints.py +++ b/packages/python/plotly/plotly/validators/violin/_selectedpoints.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="selectedpoints", parent_name="violin", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_showlegend.py b/packages/python/plotly/plotly/validators/violin/_showlegend.py index edb275414e..21160e012a 100644 --- a/packages/python/plotly/plotly/validators/violin/_showlegend.py +++ b/packages/python/plotly/plotly/validators/violin/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_side.py b/packages/python/plotly/plotly/validators/violin/_side.py index 4e50ba059b..b5d774c5e3 100644 --- a/packages/python/plotly/plotly/validators/violin/_side.py +++ b/packages/python/plotly/plotly/validators/violin/_side.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="side", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["both", "positive", "negative"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_span.py b/packages/python/plotly/plotly/validators/violin/_span.py index 94c61da88c..7d242b17b2 100644 --- a/packages/python/plotly/plotly/validators/violin/_span.py +++ b/packages/python/plotly/plotly/validators/violin/_span.py @@ -14,6 +14,5 @@ def __init__(self, plotly_name="span", parent_name="violin", **kwargs): {"valType": "any", "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_spanmode.py b/packages/python/plotly/plotly/validators/violin/_spanmode.py index 7bbad4567b..c4f74d9e21 100644 --- a/packages/python/plotly/plotly/validators/violin/_spanmode.py +++ b/packages/python/plotly/plotly/validators/violin/_spanmode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="spanmode", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["soft", "hard", "manual"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_text.py b/packages/python/plotly/plotly/validators/violin/_text.py index 929f6811cb..a1e748ab27 100644 --- a/packages/python/plotly/plotly/validators/violin/_text.py +++ b/packages/python/plotly/plotly/validators/violin/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="violin", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_textsrc.py b/packages/python/plotly/plotly/validators/violin/_textsrc.py index 9fa561efb0..1902913987 100644 --- a/packages/python/plotly/plotly/validators/violin/_textsrc.py +++ b/packages/python/plotly/plotly/validators/violin/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_uid.py b/packages/python/plotly/plotly/validators/violin/_uid.py index ab610a8d54..29e01cae56 100644 --- a/packages/python/plotly/plotly/validators/violin/_uid.py +++ b/packages/python/plotly/plotly/validators/violin/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_uirevision.py b/packages/python/plotly/plotly/validators/violin/_uirevision.py index d2d1419957..ad928ab395 100644 --- a/packages/python/plotly/plotly/validators/violin/_uirevision.py +++ b/packages/python/plotly/plotly/validators/violin/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_visible.py b/packages/python/plotly/plotly/validators/violin/_visible.py index 9767737429..8a56bcca3e 100644 --- a/packages/python/plotly/plotly/validators/violin/_visible.py +++ b/packages/python/plotly/plotly/validators/violin/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_width.py b/packages/python/plotly/plotly/validators/violin/_width.py index 92ac0b5a12..26d597c559 100644 --- a/packages/python/plotly/plotly/validators/violin/_width.py +++ b/packages/python/plotly/plotly/validators/violin/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="violin", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_x.py b/packages/python/plotly/plotly/validators/violin/_x.py index 533f76c40c..2a3e111f7c 100644 --- a/packages/python/plotly/plotly/validators/violin/_x.py +++ b/packages/python/plotly/plotly/validators/violin/_x.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_x0.py b/packages/python/plotly/plotly/validators/violin/_x0.py index d0165cf6ce..0b48810257 100644 --- a/packages/python/plotly/plotly/validators/violin/_x0.py +++ b/packages/python/plotly/plotly/validators/violin/_x0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x0", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_xaxis.py b/packages/python/plotly/plotly/validators/violin/_xaxis.py index 546c9ab3d0..376f60b6b2 100644 --- a/packages/python/plotly/plotly/validators/violin/_xaxis.py +++ b/packages/python/plotly/plotly/validators/violin/_xaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xaxis", parent_name="violin", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "x"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_xhoverformat.py b/packages/python/plotly/plotly/validators/violin/_xhoverformat.py new file mode 100644 index 0000000000..e29238b92b --- /dev/null +++ b/packages/python/plotly/plotly/validators/violin/_xhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class XhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="xhoverformat", parent_name="violin", **kwargs): + super(XhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/violin/_xsrc.py b/packages/python/plotly/plotly/validators/violin/_xsrc.py index bc72cd22d9..23deb82b0c 100644 --- a/packages/python/plotly/plotly/validators/violin/_xsrc.py +++ b/packages/python/plotly/plotly/validators/violin/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_y.py b/packages/python/plotly/plotly/validators/violin/_y.py index 2908378d0f..e50dbeaf1f 100644 --- a/packages/python/plotly/plotly/validators/violin/_y.py +++ b/packages/python/plotly/plotly/validators/violin/_y.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_y0.py b/packages/python/plotly/plotly/validators/violin/_y0.py index 42b267d50c..e4c8420c3a 100644 --- a/packages/python/plotly/plotly/validators/violin/_y0.py +++ b/packages/python/plotly/plotly/validators/violin/_y0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y0", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_yaxis.py b/packages/python/plotly/plotly/validators/violin/_yaxis.py index 3bf5e76799..f9197b52c8 100644 --- a/packages/python/plotly/plotly/validators/violin/_yaxis.py +++ b/packages/python/plotly/plotly/validators/violin/_yaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="yaxis", parent_name="violin", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "y"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/_yhoverformat.py b/packages/python/plotly/plotly/validators/violin/_yhoverformat.py new file mode 100644 index 0000000000..a7d77ffeef --- /dev/null +++ b/packages/python/plotly/plotly/validators/violin/_yhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class YhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="yhoverformat", parent_name="violin", **kwargs): + super(YhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/violin/_ysrc.py b/packages/python/plotly/plotly/validators/violin/_ysrc.py index 126f76a326..c78e15c192 100644 --- a/packages/python/plotly/plotly/validators/violin/_ysrc.py +++ b/packages/python/plotly/plotly/validators/violin/_ysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ysrc", parent_name="violin", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/box/_fillcolor.py b/packages/python/plotly/plotly/validators/violin/box/_fillcolor.py index 8d873cd429..d6d8c2aaad 100644 --- a/packages/python/plotly/plotly/validators/violin/box/_fillcolor.py +++ b/packages/python/plotly/plotly/validators/violin/box/_fillcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="fillcolor", parent_name="violin.box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/box/_visible.py b/packages/python/plotly/plotly/validators/violin/box/_visible.py index 4525cda84c..72c9ade156 100644 --- a/packages/python/plotly/plotly/validators/violin/box/_visible.py +++ b/packages/python/plotly/plotly/validators/violin/box/_visible.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="visible", parent_name="violin.box", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/box/_width.py b/packages/python/plotly/plotly/validators/violin/box/_width.py index a7ad2d75a8..90404f4093 100644 --- a/packages/python/plotly/plotly/validators/violin/box/_width.py +++ b/packages/python/plotly/plotly/validators/violin/box/_width.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="width", parent_name="violin.box", **kwargs): edit_type=kwargs.pop("edit_type", "plot"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/box/line/_color.py b/packages/python/plotly/plotly/validators/violin/box/line/_color.py index 13a4e9b89e..fe9bc8116f 100644 --- a/packages/python/plotly/plotly/validators/violin/box/line/_color.py +++ b/packages/python/plotly/plotly/validators/violin/box/line/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="violin.box.line", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/box/line/_width.py b/packages/python/plotly/plotly/validators/violin/box/line/_width.py index 1b0e398ed4..23fe2e379c 100644 --- a/packages/python/plotly/plotly/validators/violin/box/line/_width.py +++ b/packages/python/plotly/plotly/validators/violin/box/line/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="violin.box.line", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/violin/hoverlabel/_align.py index 837c21ec49..384ceafd28 100644 --- a/packages/python/plotly/plotly/validators/violin/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/violin/hoverlabel/_align.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="align", parent_name="violin.hoverlabel", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/violin/hoverlabel/_alignsrc.py index c3e069578b..b644565623 100644 --- a/packages/python/plotly/plotly/validators/violin/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/violin/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/violin/hoverlabel/_bgcolor.py index 5deab182ef..7d2056176e 100644 --- a/packages/python/plotly/plotly/validators/violin/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/violin/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/violin/hoverlabel/_bgcolorsrc.py index a002f35eb0..a627f692e6 100644 --- a/packages/python/plotly/plotly/validators/violin/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/violin/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/violin/hoverlabel/_bordercolor.py index 6f2c926cee..674bb69294 100644 --- a/packages/python/plotly/plotly/validators/violin/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/violin/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/violin/hoverlabel/_bordercolorsrc.py index 1b513782c3..9647356bbb 100644 --- a/packages/python/plotly/plotly/validators/violin/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/violin/hoverlabel/_bordercolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/violin/hoverlabel/_namelength.py index da56a2594c..e38da30534 100644 --- a/packages/python/plotly/plotly/validators/violin/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/violin/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/violin/hoverlabel/_namelengthsrc.py index dd0d0e0070..8ae55a8e5d 100644 --- a/packages/python/plotly/plotly/validators/violin/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/violin/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/violin/hoverlabel/font/_color.py index 4cba9bad12..952ccb921b 100644 --- a/packages/python/plotly/plotly/validators/violin/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/violin/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/violin/hoverlabel/font/_colorsrc.py index 561dba8a50..98db413764 100644 --- a/packages/python/plotly/plotly/validators/violin/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/violin/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/violin/hoverlabel/font/_family.py index 7f4df9be7f..6bc1fab9f0 100644 --- a/packages/python/plotly/plotly/validators/violin/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/violin/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/violin/hoverlabel/font/_familysrc.py index 7aa8a85ace..6f19dcac5d 100644 --- a/packages/python/plotly/plotly/validators/violin/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/violin/hoverlabel/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/violin/hoverlabel/font/_size.py index b6aa113dd2..b42f3d54d0 100644 --- a/packages/python/plotly/plotly/validators/violin/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/violin/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/violin/hoverlabel/font/_sizesrc.py index 7fb7943961..49637a30aa 100644 --- a/packages/python/plotly/plotly/validators/violin/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/violin/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/line/_color.py b/packages/python/plotly/plotly/validators/violin/line/_color.py index 3526467d12..f91cfe5a5e 100644 --- a/packages/python/plotly/plotly/validators/violin/line/_color.py +++ b/packages/python/plotly/plotly/validators/violin/line/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="violin.line", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/line/_width.py b/packages/python/plotly/plotly/validators/violin/line/_width.py index 53d3c859a5..86f5b64867 100644 --- a/packages/python/plotly/plotly/validators/violin/line/_width.py +++ b/packages/python/plotly/plotly/validators/violin/line/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="violin.line", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/marker/_color.py b/packages/python/plotly/plotly/validators/violin/marker/_color.py index c546fcf24e..ab64e8366e 100644 --- a/packages/python/plotly/plotly/validators/violin/marker/_color.py +++ b/packages/python/plotly/plotly/validators/violin/marker/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="violin.marker", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/marker/_opacity.py b/packages/python/plotly/plotly/validators/violin/marker/_opacity.py index fc5d5da208..6249a9bcd5 100644 --- a/packages/python/plotly/plotly/validators/violin/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/violin/marker/_opacity.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="opacity", parent_name="violin.marker", **kwargs) edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/marker/_outliercolor.py b/packages/python/plotly/plotly/validators/violin/marker/_outliercolor.py index 270336eb44..fc38163a6f 100644 --- a/packages/python/plotly/plotly/validators/violin/marker/_outliercolor.py +++ b/packages/python/plotly/plotly/validators/violin/marker/_outliercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/marker/_size.py b/packages/python/plotly/plotly/validators/violin/marker/_size.py index 3cad4f7d16..1772694767 100644 --- a/packages/python/plotly/plotly/validators/violin/marker/_size.py +++ b/packages/python/plotly/plotly/validators/violin/marker/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="violin.marker", **kwargs): array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/marker/_symbol.py b/packages/python/plotly/plotly/validators/violin/marker/_symbol.py index 2eb638eff2..ff98f1e669 100644 --- a/packages/python/plotly/plotly/validators/violin/marker/_symbol.py +++ b/packages/python/plotly/plotly/validators/violin/marker/_symbol.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="symbol", parent_name="violin.marker", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/violin/marker/line/_color.py b/packages/python/plotly/plotly/validators/violin/marker/line/_color.py index 83de24525e..1ee7bfffaa 100644 --- a/packages/python/plotly/plotly/validators/violin/marker/line/_color.py +++ b/packages/python/plotly/plotly/validators/violin/marker/line/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="violin.marker.line", **kwar parent_name=parent_name, array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/marker/line/_outliercolor.py b/packages/python/plotly/plotly/validators/violin/marker/line/_outliercolor.py index d2b2cb9dcc..6f75d00e51 100644 --- a/packages/python/plotly/plotly/validators/violin/marker/line/_outliercolor.py +++ b/packages/python/plotly/plotly/validators/violin/marker/line/_outliercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/marker/line/_outlierwidth.py b/packages/python/plotly/plotly/validators/violin/marker/line/_outlierwidth.py index b9f4776c07..fde0f3ee09 100644 --- a/packages/python/plotly/plotly/validators/violin/marker/line/_outlierwidth.py +++ b/packages/python/plotly/plotly/validators/violin/marker/line/_outlierwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/marker/line/_width.py b/packages/python/plotly/plotly/validators/violin/marker/line/_width.py index e38437af29..a958995424 100644 --- a/packages/python/plotly/plotly/validators/violin/marker/line/_width.py +++ b/packages/python/plotly/plotly/validators/violin/marker/line/_width.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="width", parent_name="violin.marker.line", **kwar array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/meanline/_color.py b/packages/python/plotly/plotly/validators/violin/meanline/_color.py index 3605b17a3c..3d75b71b39 100644 --- a/packages/python/plotly/plotly/validators/violin/meanline/_color.py +++ b/packages/python/plotly/plotly/validators/violin/meanline/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="violin.meanline", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/meanline/_visible.py b/packages/python/plotly/plotly/validators/violin/meanline/_visible.py index b63ae752b7..4c97d463c3 100644 --- a/packages/python/plotly/plotly/validators/violin/meanline/_visible.py +++ b/packages/python/plotly/plotly/validators/violin/meanline/_visible.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="visible", parent_name="violin.meanline", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/meanline/_width.py b/packages/python/plotly/plotly/validators/violin/meanline/_width.py index 9cb6c6f1ea..ce066da385 100644 --- a/packages/python/plotly/plotly/validators/violin/meanline/_width.py +++ b/packages/python/plotly/plotly/validators/violin/meanline/_width.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="width", parent_name="violin.meanline", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/selected/marker/_color.py b/packages/python/plotly/plotly/validators/violin/selected/marker/_color.py index 8473f1743c..f4cb30e337 100644 --- a/packages/python/plotly/plotly/validators/violin/selected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/violin/selected/marker/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/selected/marker/_opacity.py b/packages/python/plotly/plotly/validators/violin/selected/marker/_opacity.py index 681815fe74..4e3b0857c7 100644 --- a/packages/python/plotly/plotly/validators/violin/selected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/violin/selected/marker/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/selected/marker/_size.py b/packages/python/plotly/plotly/validators/violin/selected/marker/_size.py index 36aed912f1..aae39aaa1c 100644 --- a/packages/python/plotly/plotly/validators/violin/selected/marker/_size.py +++ b/packages/python/plotly/plotly/validators/violin/selected/marker/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/violin/stream/_maxpoints.py index 4a49266855..ef3f46668b 100644 --- a/packages/python/plotly/plotly/validators/violin/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/violin/stream/_maxpoints.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="maxpoints", parent_name="violin.stream", **kwarg edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/stream/_token.py b/packages/python/plotly/plotly/validators/violin/stream/_token.py index 1bb4a83417..0d7a94c4c7 100644 --- a/packages/python/plotly/plotly/validators/violin/stream/_token.py +++ b/packages/python/plotly/plotly/validators/violin/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="violin.stream", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/unselected/marker/_color.py b/packages/python/plotly/plotly/validators/violin/unselected/marker/_color.py index 705c1de293..f16f37b570 100644 --- a/packages/python/plotly/plotly/validators/violin/unselected/marker/_color.py +++ b/packages/python/plotly/plotly/validators/violin/unselected/marker/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/unselected/marker/_opacity.py b/packages/python/plotly/plotly/validators/violin/unselected/marker/_opacity.py index 046cbd755d..06923bc8c6 100644 --- a/packages/python/plotly/plotly/validators/violin/unselected/marker/_opacity.py +++ b/packages/python/plotly/plotly/validators/violin/unselected/marker/_opacity.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/violin/unselected/marker/_size.py b/packages/python/plotly/plotly/validators/violin/unselected/marker/_size.py index bff895bc79..9347f35663 100644 --- a/packages/python/plotly/plotly/validators/violin/unselected/marker/_size.py +++ b/packages/python/plotly/plotly/validators/violin/unselected/marker/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/__init__.py b/packages/python/plotly/plotly/validators/volume/__init__.py index 1b1219d81b..2220959381 100644 --- a/packages/python/plotly/plotly/validators/volume/__init__.py +++ b/packages/python/plotly/plotly/validators/volume/__init__.py @@ -2,13 +2,17 @@ if sys.version_info < (3, 7): from ._zsrc import ZsrcValidator + from ._zhoverformat import ZhoverformatValidator from ._z import ZValidator from ._ysrc import YsrcValidator + from ._yhoverformat import YhoverformatValidator from ._y import YValidator from ._xsrc import XsrcValidator + from ._xhoverformat import XhoverformatValidator from ._x import XValidator from ._visible import VisibleValidator from ._valuesrc import ValuesrcValidator + from ._valuehoverformat import ValuehoverformatValidator from ._value import ValueValidator from ._uirevision import UirevisionValidator from ._uid import UidValidator @@ -62,13 +66,17 @@ [], [ "._zsrc.ZsrcValidator", + "._zhoverformat.ZhoverformatValidator", "._z.ZValidator", "._ysrc.YsrcValidator", + "._yhoverformat.YhoverformatValidator", "._y.YValidator", "._xsrc.XsrcValidator", + "._xhoverformat.XhoverformatValidator", "._x.XValidator", "._visible.VisibleValidator", "._valuesrc.ValuesrcValidator", + "._valuehoverformat.ValuehoverformatValidator", "._value.ValueValidator", "._uirevision.UirevisionValidator", "._uid.UidValidator", diff --git a/packages/python/plotly/plotly/validators/volume/_autocolorscale.py b/packages/python/plotly/plotly/validators/volume/_autocolorscale.py index b6a52f3292..84aad49bb3 100644 --- a/packages/python/plotly/plotly/validators/volume/_autocolorscale.py +++ b/packages/python/plotly/plotly/validators/volume/_autocolorscale.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="autocolorscale", parent_name="volume", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_cauto.py b/packages/python/plotly/plotly/validators/volume/_cauto.py index 91c958e80e..777182357b 100644 --- a/packages/python/plotly/plotly/validators/volume/_cauto.py +++ b/packages/python/plotly/plotly/validators/volume/_cauto.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cauto", parent_name="volume", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_cmax.py b/packages/python/plotly/plotly/validators/volume/_cmax.py index 8bffae37dd..409c2e1951 100644 --- a/packages/python/plotly/plotly/validators/volume/_cmax.py +++ b/packages/python/plotly/plotly/validators/volume/_cmax.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmax", parent_name="volume", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_cmid.py b/packages/python/plotly/plotly/validators/volume/_cmid.py index cf90bf260d..bd05ab1ec2 100644 --- a/packages/python/plotly/plotly/validators/volume/_cmid.py +++ b/packages/python/plotly/plotly/validators/volume/_cmid.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmid", parent_name="volume", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_cmin.py b/packages/python/plotly/plotly/validators/volume/_cmin.py index 7c6dc8c4b1..a7aa0fdb16 100644 --- a/packages/python/plotly/plotly/validators/volume/_cmin.py +++ b/packages/python/plotly/plotly/validators/volume/_cmin.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="cmin", parent_name="volume", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"cauto": False}), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_coloraxis.py b/packages/python/plotly/plotly/validators/volume/_coloraxis.py index f518714416..dfad3743f6 100644 --- a/packages/python/plotly/plotly/validators/volume/_coloraxis.py +++ b/packages/python/plotly/plotly/validators/volume/_coloraxis.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="coloraxis", parent_name="volume", **kwargs): dflt=kwargs.pop("dflt", None), edit_type=kwargs.pop("edit_type", "calc"), regex=kwargs.pop("regex", "/^coloraxis([2-9]|[1-9][0-9]+)?$/"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_colorbar.py b/packages/python/plotly/plotly/validators/volume/_colorbar.py index 18e9bcb633..79080c9dea 100644 --- a/packages/python/plotly/plotly/validators/volume/_colorbar.py +++ b/packages/python/plotly/plotly/validators/volume/_colorbar.py @@ -147,6 +147,12 @@ def __init__(self, plotly_name="colorbar", parent_name="volume", **kwargs): a.volume.colorbar.tickformatstopdefaults), sets the default property values to use for elements of volume.colorbar.tickformatstops + ticklabeloverflow + Determines how we handle tick labels that would + overflow either the graph div or the domain of + the axis. The default value for inside tick + labels is *hide past domain*. In other cases + the default is *hide past div*. ticklabelposition Determines where tick labels are drawn. ticklen diff --git a/packages/python/plotly/plotly/validators/volume/_colorscale.py b/packages/python/plotly/plotly/validators/volume/_colorscale.py index 4907daa5ee..63ddde9fa0 100644 --- a/packages/python/plotly/plotly/validators/volume/_colorscale.py +++ b/packages/python/plotly/plotly/validators/volume/_colorscale.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="colorscale", parent_name="volume", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"autocolorscale": False}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_customdata.py b/packages/python/plotly/plotly/validators/volume/_customdata.py index 25f39156b5..f6b25baace 100644 --- a/packages/python/plotly/plotly/validators/volume/_customdata.py +++ b/packages/python/plotly/plotly/validators/volume/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_customdatasrc.py b/packages/python/plotly/plotly/validators/volume/_customdatasrc.py index 0788e0d3ed..f9d3a43338 100644 --- a/packages/python/plotly/plotly/validators/volume/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/volume/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_flatshading.py b/packages/python/plotly/plotly/validators/volume/_flatshading.py index 42d144352d..aff22ab052 100644 --- a/packages/python/plotly/plotly/validators/volume/_flatshading.py +++ b/packages/python/plotly/plotly/validators/volume/_flatshading.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="flatshading", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_hoverinfo.py b/packages/python/plotly/plotly/validators/volume/_hoverinfo.py index ea59020a97..a15807e451 100644 --- a/packages/python/plotly/plotly/validators/volume/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/volume/_hoverinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="volume", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), extras=kwargs.pop("extras", ["all", "none", "skip"]), flags=kwargs.pop("flags", ["x", "y", "z", "text", "name"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/volume/_hoverinfosrc.py index 118dc0ef1f..4f2d151e12 100644 --- a/packages/python/plotly/plotly/validators/volume/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/volume/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_hovertemplate.py b/packages/python/plotly/plotly/validators/volume/_hovertemplate.py index 4e1bde19c4..dff17007d3 100644 --- a/packages/python/plotly/plotly/validators/volume/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/volume/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="volume", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/volume/_hovertemplatesrc.py index b82c35d76b..f13213018b 100644 --- a/packages/python/plotly/plotly/validators/volume/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/volume/_hovertemplatesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertemplatesrc", parent_name="volume", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_hovertext.py b/packages/python/plotly/plotly/validators/volume/_hovertext.py index b0e788fed9..28acd41418 100644 --- a/packages/python/plotly/plotly/validators/volume/_hovertext.py +++ b/packages/python/plotly/plotly/validators/volume/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="volume", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_hovertextsrc.py b/packages/python/plotly/plotly/validators/volume/_hovertextsrc.py index 757fd38758..66dd6aa137 100644 --- a/packages/python/plotly/plotly/validators/volume/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/volume/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_ids.py b/packages/python/plotly/plotly/validators/volume/_ids.py index 46bb0b47d0..a37ac3661a 100644 --- a/packages/python/plotly/plotly/validators/volume/_ids.py +++ b/packages/python/plotly/plotly/validators/volume/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_idssrc.py b/packages/python/plotly/plotly/validators/volume/_idssrc.py index b308702774..e7c8474e59 100644 --- a/packages/python/plotly/plotly/validators/volume/_idssrc.py +++ b/packages/python/plotly/plotly/validators/volume/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_isomax.py b/packages/python/plotly/plotly/validators/volume/_isomax.py index 6068e68983..82381a2d12 100644 --- a/packages/python/plotly/plotly/validators/volume/_isomax.py +++ b/packages/python/plotly/plotly/validators/volume/_isomax.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="isomax", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_isomin.py b/packages/python/plotly/plotly/validators/volume/_isomin.py index 0a6d7d5a9c..999f27728d 100644 --- a/packages/python/plotly/plotly/validators/volume/_isomin.py +++ b/packages/python/plotly/plotly/validators/volume/_isomin.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="isomin", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_legendgroup.py b/packages/python/plotly/plotly/validators/volume/_legendgroup.py index 0202ff6edd..1ca75731b9 100644 --- a/packages/python/plotly/plotly/validators/volume/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/volume/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_meta.py b/packages/python/plotly/plotly/validators/volume/_meta.py index a6a52d13ed..6de9a64b9f 100644 --- a/packages/python/plotly/plotly/validators/volume/_meta.py +++ b/packages/python/plotly/plotly/validators/volume/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="volume", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_metasrc.py b/packages/python/plotly/plotly/validators/volume/_metasrc.py index 0d589a0553..58cae05788 100644 --- a/packages/python/plotly/plotly/validators/volume/_metasrc.py +++ b/packages/python/plotly/plotly/validators/volume/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_name.py b/packages/python/plotly/plotly/validators/volume/_name.py index 37560192df..87fe3f9dd4 100644 --- a/packages/python/plotly/plotly/validators/volume/_name.py +++ b/packages/python/plotly/plotly/validators/volume/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_opacity.py b/packages/python/plotly/plotly/validators/volume/_opacity.py index 89634eed3b..26c65880fe 100644 --- a/packages/python/plotly/plotly/validators/volume/_opacity.py +++ b/packages/python/plotly/plotly/validators/volume/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="volume", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_opacityscale.py b/packages/python/plotly/plotly/validators/volume/_opacityscale.py index 7882607939..cc427affea 100644 --- a/packages/python/plotly/plotly/validators/volume/_opacityscale.py +++ b/packages/python/plotly/plotly/validators/volume/_opacityscale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="opacityscale", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_reversescale.py b/packages/python/plotly/plotly/validators/volume/_reversescale.py index 99c122b9dc..02baef7571 100644 --- a/packages/python/plotly/plotly/validators/volume/_reversescale.py +++ b/packages/python/plotly/plotly/validators/volume/_reversescale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="reversescale", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_scene.py b/packages/python/plotly/plotly/validators/volume/_scene.py index f52a5ed34c..ddf5651b95 100644 --- a/packages/python/plotly/plotly/validators/volume/_scene.py +++ b/packages/python/plotly/plotly/validators/volume/_scene.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="scene", parent_name="volume", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "scene"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_showlegend.py b/packages/python/plotly/plotly/validators/volume/_showlegend.py index 13a38b8456..35c68cb1ce 100644 --- a/packages/python/plotly/plotly/validators/volume/_showlegend.py +++ b/packages/python/plotly/plotly/validators/volume/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_showscale.py b/packages/python/plotly/plotly/validators/volume/_showscale.py index 3118ffdd2e..1a8d7fa578 100644 --- a/packages/python/plotly/plotly/validators/volume/_showscale.py +++ b/packages/python/plotly/plotly/validators/volume/_showscale.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showscale", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_text.py b/packages/python/plotly/plotly/validators/volume/_text.py index 315a32e9e9..1410c11dc4 100644 --- a/packages/python/plotly/plotly/validators/volume/_text.py +++ b/packages/python/plotly/plotly/validators/volume/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="volume", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_textsrc.py b/packages/python/plotly/plotly/validators/volume/_textsrc.py index 99640fbb23..40dd0cbd24 100644 --- a/packages/python/plotly/plotly/validators/volume/_textsrc.py +++ b/packages/python/plotly/plotly/validators/volume/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_uid.py b/packages/python/plotly/plotly/validators/volume/_uid.py index 1a180953a5..1f9199915e 100644 --- a/packages/python/plotly/plotly/validators/volume/_uid.py +++ b/packages/python/plotly/plotly/validators/volume/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_uirevision.py b/packages/python/plotly/plotly/validators/volume/_uirevision.py index 8b15194fbb..ed39496c50 100644 --- a/packages/python/plotly/plotly/validators/volume/_uirevision.py +++ b/packages/python/plotly/plotly/validators/volume/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_value.py b/packages/python/plotly/plotly/validators/volume/_value.py index b518cdd5c2..02a58684ff 100644 --- a/packages/python/plotly/plotly/validators/volume/_value.py +++ b/packages/python/plotly/plotly/validators/volume/_value.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="value", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_valuehoverformat.py b/packages/python/plotly/plotly/validators/volume/_valuehoverformat.py new file mode 100644 index 0000000000..266d74a7ac --- /dev/null +++ b/packages/python/plotly/plotly/validators/volume/_valuehoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class ValuehoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="valuehoverformat", parent_name="volume", **kwargs): + super(ValuehoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/volume/_valuesrc.py b/packages/python/plotly/plotly/validators/volume/_valuesrc.py index 2a3d1f5308..73bb7b9001 100644 --- a/packages/python/plotly/plotly/validators/volume/_valuesrc.py +++ b/packages/python/plotly/plotly/validators/volume/_valuesrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="valuesrc", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_visible.py b/packages/python/plotly/plotly/validators/volume/_visible.py index aa9721d7ad..5dc21b4e8d 100644 --- a/packages/python/plotly/plotly/validators/volume/_visible.py +++ b/packages/python/plotly/plotly/validators/volume/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_x.py b/packages/python/plotly/plotly/validators/volume/_x.py index 8633e67de6..1d821d7ad7 100644 --- a/packages/python/plotly/plotly/validators/volume/_x.py +++ b/packages/python/plotly/plotly/validators/volume/_x.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_xhoverformat.py b/packages/python/plotly/plotly/validators/volume/_xhoverformat.py new file mode 100644 index 0000000000..e64f1c007f --- /dev/null +++ b/packages/python/plotly/plotly/validators/volume/_xhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class XhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="xhoverformat", parent_name="volume", **kwargs): + super(XhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/volume/_xsrc.py b/packages/python/plotly/plotly/validators/volume/_xsrc.py index 5ab6e41baa..61f6981855 100644 --- a/packages/python/plotly/plotly/validators/volume/_xsrc.py +++ b/packages/python/plotly/plotly/validators/volume/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_y.py b/packages/python/plotly/plotly/validators/volume/_y.py index 08ed7fa9ed..b54e9de7a7 100644 --- a/packages/python/plotly/plotly/validators/volume/_y.py +++ b/packages/python/plotly/plotly/validators/volume/_y.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_yhoverformat.py b/packages/python/plotly/plotly/validators/volume/_yhoverformat.py new file mode 100644 index 0000000000..64fe2b2157 --- /dev/null +++ b/packages/python/plotly/plotly/validators/volume/_yhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class YhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="yhoverformat", parent_name="volume", **kwargs): + super(YhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/volume/_ysrc.py b/packages/python/plotly/plotly/validators/volume/_ysrc.py index f8ffff38f6..67127adda5 100644 --- a/packages/python/plotly/plotly/validators/volume/_ysrc.py +++ b/packages/python/plotly/plotly/validators/volume/_ysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ysrc", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_z.py b/packages/python/plotly/plotly/validators/volume/_z.py index c59a08d80c..e63bc3e617 100644 --- a/packages/python/plotly/plotly/validators/volume/_z.py +++ b/packages/python/plotly/plotly/validators/volume/_z.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="z", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/_zhoverformat.py b/packages/python/plotly/plotly/validators/volume/_zhoverformat.py new file mode 100644 index 0000000000..83ad3327b2 --- /dev/null +++ b/packages/python/plotly/plotly/validators/volume/_zhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class ZhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="zhoverformat", parent_name="volume", **kwargs): + super(ZhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/volume/_zsrc.py b/packages/python/plotly/plotly/validators/volume/_zsrc.py index d85e1b4425..130714d307 100644 --- a/packages/python/plotly/plotly/validators/volume/_zsrc.py +++ b/packages/python/plotly/plotly/validators/volume/_zsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="zsrc", parent_name="volume", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/caps/x/_fill.py b/packages/python/plotly/plotly/validators/volume/caps/x/_fill.py index 352264926f..88b2fed38e 100644 --- a/packages/python/plotly/plotly/validators/volume/caps/x/_fill.py +++ b/packages/python/plotly/plotly/validators/volume/caps/x/_fill.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="fill", parent_name="volume.caps.x", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/caps/x/_show.py b/packages/python/plotly/plotly/validators/volume/caps/x/_show.py index a77c4f32cc..0d20abe6ab 100644 --- a/packages/python/plotly/plotly/validators/volume/caps/x/_show.py +++ b/packages/python/plotly/plotly/validators/volume/caps/x/_show.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="show", parent_name="volume.caps.x", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/caps/y/_fill.py b/packages/python/plotly/plotly/validators/volume/caps/y/_fill.py index 3677d0ad6a..ab34861252 100644 --- a/packages/python/plotly/plotly/validators/volume/caps/y/_fill.py +++ b/packages/python/plotly/plotly/validators/volume/caps/y/_fill.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="fill", parent_name="volume.caps.y", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/caps/y/_show.py b/packages/python/plotly/plotly/validators/volume/caps/y/_show.py index 2bdb9826ec..0d4dc58fe7 100644 --- a/packages/python/plotly/plotly/validators/volume/caps/y/_show.py +++ b/packages/python/plotly/plotly/validators/volume/caps/y/_show.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="show", parent_name="volume.caps.y", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/caps/z/_fill.py b/packages/python/plotly/plotly/validators/volume/caps/z/_fill.py index 06ac4cdcd9..be57ee7ca2 100644 --- a/packages/python/plotly/plotly/validators/volume/caps/z/_fill.py +++ b/packages/python/plotly/plotly/validators/volume/caps/z/_fill.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="fill", parent_name="volume.caps.z", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/caps/z/_show.py b/packages/python/plotly/plotly/validators/volume/caps/z/_show.py index 7417173559..afb272503e 100644 --- a/packages/python/plotly/plotly/validators/volume/caps/z/_show.py +++ b/packages/python/plotly/plotly/validators/volume/caps/z/_show.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="show", parent_name="volume.caps.z", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/__init__.py b/packages/python/plotly/plotly/validators/volume/colorbar/__init__.py index 8389fc69a9..02dcd57397 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/__init__.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/__init__.py @@ -19,6 +19,7 @@ from ._tickmode import TickmodeValidator from ._ticklen import TicklenValidator from ._ticklabelposition import TicklabelpositionValidator + from ._ticklabeloverflow import TicklabeloverflowValidator from ._tickformatstopdefaults import TickformatstopdefaultsValidator from ._tickformatstops import TickformatstopsValidator from ._tickformat import TickformatValidator @@ -69,6 +70,7 @@ "._tickmode.TickmodeValidator", "._ticklen.TicklenValidator", "._ticklabelposition.TicklabelpositionValidator", + "._ticklabeloverflow.TicklabeloverflowValidator", "._tickformatstopdefaults.TickformatstopdefaultsValidator", "._tickformatstops.TickformatstopsValidator", "._tickformat.TickformatValidator", diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_bgcolor.py b/packages/python/plotly/plotly/validators/volume/colorbar/_bgcolor.py index 8bb5a4cb20..7fa8c08570 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_bgcolor.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="bgcolor", parent_name="volume.colorbar", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_bordercolor.py b/packages/python/plotly/plotly/validators/volume/colorbar/_bordercolor.py index 16f801f934..4cb0507bab 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_bordercolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_borderwidth.py b/packages/python/plotly/plotly/validators/volume/colorbar/_borderwidth.py index 812ecc9003..b0f844fef0 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_borderwidth.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_borderwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_dtick.py b/packages/python/plotly/plotly/validators/volume/colorbar/_dtick.py index 1ec8c812ee..ab1cc8caee 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_dtick.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_dtick.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="dtick", parent_name="volume.colorbar", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_exponentformat.py b/packages/python/plotly/plotly/validators/volume/colorbar/_exponentformat.py index 9b7790a7b1..62b8b98440 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_exponentformat.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_exponentformat.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["none", "e", "E", "power", "SI", "B"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_len.py b/packages/python/plotly/plotly/validators/volume/colorbar/_len.py index d6bf9bbc92..fdea2a2f9b 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_len.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_len.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="len", parent_name="volume.colorbar", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_lenmode.py b/packages/python/plotly/plotly/validators/volume/colorbar/_lenmode.py index 3995b58ea4..5f8eb250b9 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_lenmode.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_lenmode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="lenmode", parent_name="volume.colorbar", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_minexponent.py b/packages/python/plotly/plotly/validators/volume/colorbar/_minexponent.py index db51e0c1c3..3726ff334e 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_minexponent.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_minexponent.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_nticks.py b/packages/python/plotly/plotly/validators/volume/colorbar/_nticks.py index 19acd2fde3..7fc8c91c58 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_nticks.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_nticks.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="nticks", parent_name="volume.colorbar", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_outlinecolor.py b/packages/python/plotly/plotly/validators/volume/colorbar/_outlinecolor.py index b9526e538d..b1a41f428d 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_outlinecolor.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_outlinecolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_outlinewidth.py b/packages/python/plotly/plotly/validators/volume/colorbar/_outlinewidth.py index 29edfd47f0..e65f0b8a4e 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_outlinewidth.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_outlinewidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_separatethousands.py b/packages/python/plotly/plotly/validators/volume/colorbar/_separatethousands.py index 15c96d1e82..0df49ca806 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_separatethousands.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_separatethousands.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_showexponent.py b/packages/python/plotly/plotly/validators/volume/colorbar/_showexponent.py index 9395334d75..3b00369842 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_showexponent.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_showexponent.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_showticklabels.py b/packages/python/plotly/plotly/validators/volume/colorbar/_showticklabels.py index bf013587ad..3fa5a75066 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_showticklabels.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_showticklabels.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_showtickprefix.py b/packages/python/plotly/plotly/validators/volume/colorbar/_showtickprefix.py index 8e5d58c156..b862ef3bc2 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_showtickprefix.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_showtickprefix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_showticksuffix.py b/packages/python/plotly/plotly/validators/volume/colorbar/_showticksuffix.py index 1b9d6d0e4f..66e4439ded 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_showticksuffix.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_showticksuffix.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["all", "first", "last", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_thickness.py b/packages/python/plotly/plotly/validators/volume/colorbar/_thickness.py index dda1f5d233..1fe00bbbcb 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_thickness.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_thickness.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_thicknessmode.py b/packages/python/plotly/plotly/validators/volume/colorbar/_thicknessmode.py index 351c0431fe..c0f4159b3c 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_thicknessmode.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_thicknessmode.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["fraction", "pixels"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_tick0.py b/packages/python/plotly/plotly/validators/volume/colorbar/_tick0.py index 2bc80fb0cf..ce352a5836 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_tick0.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_tick0.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="tick0", parent_name="volume.colorbar", **kwargs) parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {"tickmode": "linear"}), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_tickangle.py b/packages/python/plotly/plotly/validators/volume/colorbar/_tickangle.py index d207cb61a4..f3683656aa 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_tickangle.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_tickangle.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_tickcolor.py b/packages/python/plotly/plotly/validators/volume/colorbar/_tickcolor.py index 77cfc5eaba..9a7341c318 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_tickcolor.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_tickcolor.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_tickformat.py b/packages/python/plotly/plotly/validators/volume/colorbar/_tickformat.py index 413e0bc17a..d0289e66b2 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_tickformat.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_tickformat.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_ticklabeloverflow.py b/packages/python/plotly/plotly/validators/volume/colorbar/_ticklabeloverflow.py new file mode 100644 index 0000000000..4339f6232c --- /dev/null +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_ticklabeloverflow.py @@ -0,0 +1,14 @@ +import _plotly_utils.basevalidators + + +class TicklabeloverflowValidator(_plotly_utils.basevalidators.EnumeratedValidator): + def __init__( + self, plotly_name="ticklabeloverflow", parent_name="volume.colorbar", **kwargs + ): + super(TicklabeloverflowValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "calc"), + values=kwargs.pop("values", ["allow", "hide past div", "hide past domain"]), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_ticklabelposition.py b/packages/python/plotly/plotly/validators/volume/colorbar/_ticklabelposition.py index 757cb58a19..c18377a3f7 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_ticklabelposition.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_ticklabelposition.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop( "values", [ diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_ticklen.py b/packages/python/plotly/plotly/validators/volume/colorbar/_ticklen.py index 33e42093ce..5321b41fed 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_ticklen.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_ticklen.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ticklen", parent_name="volume.colorbar", **kwarg parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_tickmode.py b/packages/python/plotly/plotly/validators/volume/colorbar/_tickmode.py index 98d68cfbea..93af8739d8 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_tickmode.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_tickmode.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="tickmode", parent_name="volume.colorbar", **kwar parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), implied_edits=kwargs.pop("implied_edits", {}), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["auto", "linear", "array"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_tickprefix.py b/packages/python/plotly/plotly/validators/volume/colorbar/_tickprefix.py index 52460c02ed..dada332b64 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_tickprefix.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_tickprefix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_ticks.py b/packages/python/plotly/plotly/validators/volume/colorbar/_ticks.py index ebf188f25c..b71ec654c2 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_ticks.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_ticks.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="ticks", parent_name="volume.colorbar", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["outside", "inside", ""]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_ticksuffix.py b/packages/python/plotly/plotly/validators/volume/colorbar/_ticksuffix.py index 1106e90e23..d5836519fb 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_ticksuffix.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_ticksuffix.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_ticktext.py b/packages/python/plotly/plotly/validators/volume/colorbar/_ticktext.py index 88942ef0a8..171489554a 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_ticktext.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_ticktext.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ticktext", parent_name="volume.colorbar", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_ticktextsrc.py b/packages/python/plotly/plotly/validators/volume/colorbar/_ticktextsrc.py index 22bb88e264..f525715f82 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_ticktextsrc.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_ticktextsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_tickvals.py b/packages/python/plotly/plotly/validators/volume/colorbar/_tickvals.py index 786fa51c02..834d2c5f87 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_tickvals.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_tickvals.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="tickvals", parent_name="volume.colorbar", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_tickvalssrc.py b/packages/python/plotly/plotly/validators/volume/colorbar/_tickvalssrc.py index 38d6c05a33..a166a29462 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_tickvalssrc.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_tickvalssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_tickwidth.py b/packages/python/plotly/plotly/validators/volume/colorbar/_tickwidth.py index 99aa2d167c..2c252e2522 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_tickwidth.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_tickwidth.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_x.py b/packages/python/plotly/plotly/validators/volume/colorbar/_x.py index 3d9f8a75bc..9b611b6682 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_x.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_x.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="x", parent_name="volume.colorbar", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_xanchor.py b/packages/python/plotly/plotly/validators/volume/colorbar/_xanchor.py index 1de6bdefc5..48bdd2022e 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_xanchor.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_xanchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="xanchor", parent_name="volume.colorbar", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "center", "right"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_xpad.py b/packages/python/plotly/plotly/validators/volume/colorbar/_xpad.py index 249f0f10af..a708183923 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_xpad.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_xpad.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xpad", parent_name="volume.colorbar", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_y.py b/packages/python/plotly/plotly/validators/volume/colorbar/_y.py index b1aac86aa3..3140074b2f 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_y.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_y.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="y", parent_name="volume.colorbar", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 3), min=kwargs.pop("min", -2), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_yanchor.py b/packages/python/plotly/plotly/validators/volume/colorbar/_yanchor.py index a4ccc7e17f..fd0ec79e3a 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_yanchor.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_yanchor.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="yanchor", parent_name="volume.colorbar", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["top", "middle", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/_ypad.py b/packages/python/plotly/plotly/validators/volume/colorbar/_ypad.py index 8c524d813a..730812ceb3 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/_ypad.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/_ypad.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="ypad", parent_name="volume.colorbar", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/tickfont/_color.py b/packages/python/plotly/plotly/validators/volume/colorbar/tickfont/_color.py index 63b7a0eaf3..85293a9322 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/tickfont/_color.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/tickfont/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/tickfont/_family.py b/packages/python/plotly/plotly/validators/volume/colorbar/tickfont/_family.py index 0d479828f1..2eff2d5f35 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/tickfont/_family.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/tickfont/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/tickfont/_size.py b/packages/python/plotly/plotly/validators/volume/colorbar/tickfont/_size.py index 2492811ece..f547047257 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/tickfont/_size.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/tickfont/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/tickformatstop/_dtickrange.py b/packages/python/plotly/plotly/validators/volume/colorbar/tickformatstop/_dtickrange.py index 05788f3d0f..4eb561dc02 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/tickformatstop/_dtickrange.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/tickformatstop/_dtickrange.py @@ -19,6 +19,5 @@ def __init__( {"valType": "any", "editType": "calc"}, ], ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/tickformatstop/_enabled.py b/packages/python/plotly/plotly/validators/volume/colorbar/tickformatstop/_enabled.py index 7aa4679db4..36ef23c8ca 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/tickformatstop/_enabled.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/tickformatstop/_enabled.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/tickformatstop/_name.py b/packages/python/plotly/plotly/validators/volume/colorbar/tickformatstop/_name.py index 2d2d5e5ce1..03de9c3188 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/tickformatstop/_name.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/tickformatstop/_name.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/tickformatstop/_templateitemname.py b/packages/python/plotly/plotly/validators/volume/colorbar/tickformatstop/_templateitemname.py index 6c7e1a6b13..4b611e2964 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/tickformatstop/_templateitemname.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/tickformatstop/_templateitemname.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/tickformatstop/_value.py b/packages/python/plotly/plotly/validators/volume/colorbar/tickformatstop/_value.py index 878193fe94..1f8562b539 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/tickformatstop/_value.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/tickformatstop/_value.py @@ -12,6 +12,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/title/_side.py b/packages/python/plotly/plotly/validators/volume/colorbar/title/_side.py index 47d97137fb..7385613850 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/title/_side.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/title/_side.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["right", "top", "bottom"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/title/_text.py b/packages/python/plotly/plotly/validators/volume/colorbar/title/_text.py index e3cffe7013..a23a060c3d 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/title/_text.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/title/_text.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/title/font/_color.py b/packages/python/plotly/plotly/validators/volume/colorbar/title/font/_color.py index 7e24a9e2a5..bfcdc60248 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/title/font/_color.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/title/font/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/title/font/_family.py b/packages/python/plotly/plotly/validators/volume/colorbar/title/font/_family.py index 67224e1d9c..aba74e4961 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/title/font/_family.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/title/font/_family.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/colorbar/title/font/_size.py b/packages/python/plotly/plotly/validators/volume/colorbar/title/font/_size.py index 8e12d07ff1..45c1dce7ae 100644 --- a/packages/python/plotly/plotly/validators/volume/colorbar/title/font/_size.py +++ b/packages/python/plotly/plotly/validators/volume/colorbar/title/font/_size.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/contour/_color.py b/packages/python/plotly/plotly/validators/volume/contour/_color.py index 96ede4f0c4..d1dd320fcd 100644 --- a/packages/python/plotly/plotly/validators/volume/contour/_color.py +++ b/packages/python/plotly/plotly/validators/volume/contour/_color.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="color", parent_name="volume.contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/contour/_show.py b/packages/python/plotly/plotly/validators/volume/contour/_show.py index 876f83d60c..b0572d6312 100644 --- a/packages/python/plotly/plotly/validators/volume/contour/_show.py +++ b/packages/python/plotly/plotly/validators/volume/contour/_show.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="show", parent_name="volume.contour", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/contour/_width.py b/packages/python/plotly/plotly/validators/volume/contour/_width.py index d0404c1acf..7a796084ed 100644 --- a/packages/python/plotly/plotly/validators/volume/contour/_width.py +++ b/packages/python/plotly/plotly/validators/volume/contour/_width.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="width", parent_name="volume.contour", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 16), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/volume/hoverlabel/_align.py index 7416e8c455..ca5742c885 100644 --- a/packages/python/plotly/plotly/validators/volume/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/volume/hoverlabel/_align.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="align", parent_name="volume.hoverlabel", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/volume/hoverlabel/_alignsrc.py index 72e73683ef..b0d04cc513 100644 --- a/packages/python/plotly/plotly/validators/volume/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/volume/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/volume/hoverlabel/_bgcolor.py index 81a8a79c4f..6c521a2dfb 100644 --- a/packages/python/plotly/plotly/validators/volume/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/volume/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/volume/hoverlabel/_bgcolorsrc.py index ee0dfd41d4..94ae8dbfea 100644 --- a/packages/python/plotly/plotly/validators/volume/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/volume/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/volume/hoverlabel/_bordercolor.py index 88fe57386e..c33f0dbf05 100644 --- a/packages/python/plotly/plotly/validators/volume/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/volume/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/volume/hoverlabel/_bordercolorsrc.py index 9571476078..ada3d84cd0 100644 --- a/packages/python/plotly/plotly/validators/volume/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/volume/hoverlabel/_bordercolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/volume/hoverlabel/_namelength.py index 23ef553f3a..2911fd32df 100644 --- a/packages/python/plotly/plotly/validators/volume/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/volume/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/volume/hoverlabel/_namelengthsrc.py index e5ae6f2e1a..f5f0da3892 100644 --- a/packages/python/plotly/plotly/validators/volume/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/volume/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/volume/hoverlabel/font/_color.py index f0f4d102f9..19d935e26d 100644 --- a/packages/python/plotly/plotly/validators/volume/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/volume/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/volume/hoverlabel/font/_colorsrc.py index 8cb0eb8d98..94dfe561f2 100644 --- a/packages/python/plotly/plotly/validators/volume/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/volume/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/volume/hoverlabel/font/_family.py index d714304826..3494df8908 100644 --- a/packages/python/plotly/plotly/validators/volume/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/volume/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/volume/hoverlabel/font/_familysrc.py index e4e964ae5b..502d2579f6 100644 --- a/packages/python/plotly/plotly/validators/volume/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/volume/hoverlabel/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/volume/hoverlabel/font/_size.py index 40fec5f636..f17879e71d 100644 --- a/packages/python/plotly/plotly/validators/volume/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/volume/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/volume/hoverlabel/font/_sizesrc.py index 022fe9f10e..a5cab68388 100644 --- a/packages/python/plotly/plotly/validators/volume/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/volume/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/lighting/_ambient.py b/packages/python/plotly/plotly/validators/volume/lighting/_ambient.py index 014bdc7e11..e995d356c3 100644 --- a/packages/python/plotly/plotly/validators/volume/lighting/_ambient.py +++ b/packages/python/plotly/plotly/validators/volume/lighting/_ambient.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="ambient", parent_name="volume.lighting", **kwarg edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/lighting/_diffuse.py b/packages/python/plotly/plotly/validators/volume/lighting/_diffuse.py index ae8e05e1f5..b9c5cd3d6d 100644 --- a/packages/python/plotly/plotly/validators/volume/lighting/_diffuse.py +++ b/packages/python/plotly/plotly/validators/volume/lighting/_diffuse.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="diffuse", parent_name="volume.lighting", **kwarg edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/lighting/_facenormalsepsilon.py b/packages/python/plotly/plotly/validators/volume/lighting/_facenormalsepsilon.py index b611cd3514..86cecc7e45 100644 --- a/packages/python/plotly/plotly/validators/volume/lighting/_facenormalsepsilon.py +++ b/packages/python/plotly/plotly/validators/volume/lighting/_facenormalsepsilon.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/lighting/_fresnel.py b/packages/python/plotly/plotly/validators/volume/lighting/_fresnel.py index bf63ad86f7..7c7c5b5339 100644 --- a/packages/python/plotly/plotly/validators/volume/lighting/_fresnel.py +++ b/packages/python/plotly/plotly/validators/volume/lighting/_fresnel.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="fresnel", parent_name="volume.lighting", **kwarg edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 5), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/lighting/_roughness.py b/packages/python/plotly/plotly/validators/volume/lighting/_roughness.py index 3965815b86..3d60be76c1 100644 --- a/packages/python/plotly/plotly/validators/volume/lighting/_roughness.py +++ b/packages/python/plotly/plotly/validators/volume/lighting/_roughness.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/lighting/_specular.py b/packages/python/plotly/plotly/validators/volume/lighting/_specular.py index 761af6b9d1..5e4e7e91fd 100644 --- a/packages/python/plotly/plotly/validators/volume/lighting/_specular.py +++ b/packages/python/plotly/plotly/validators/volume/lighting/_specular.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="specular", parent_name="volume.lighting", **kwar edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 2), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/lighting/_vertexnormalsepsilon.py b/packages/python/plotly/plotly/validators/volume/lighting/_vertexnormalsepsilon.py index 68fad74209..618ee9c325 100644 --- a/packages/python/plotly/plotly/validators/volume/lighting/_vertexnormalsepsilon.py +++ b/packages/python/plotly/plotly/validators/volume/lighting/_vertexnormalsepsilon.py @@ -14,6 +14,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/lightposition/_x.py b/packages/python/plotly/plotly/validators/volume/lightposition/_x.py index b76eab9a3f..ec7941831d 100644 --- a/packages/python/plotly/plotly/validators/volume/lightposition/_x.py +++ b/packages/python/plotly/plotly/validators/volume/lightposition/_x.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="x", parent_name="volume.lightposition", **kwargs edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 100000), min=kwargs.pop("min", -100000), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/lightposition/_y.py b/packages/python/plotly/plotly/validators/volume/lightposition/_y.py index ba89bdccfc..96e5d18ec3 100644 --- a/packages/python/plotly/plotly/validators/volume/lightposition/_y.py +++ b/packages/python/plotly/plotly/validators/volume/lightposition/_y.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="y", parent_name="volume.lightposition", **kwargs edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 100000), min=kwargs.pop("min", -100000), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/lightposition/_z.py b/packages/python/plotly/plotly/validators/volume/lightposition/_z.py index fb3d7b7f60..4d6de58cb7 100644 --- a/packages/python/plotly/plotly/validators/volume/lightposition/_z.py +++ b/packages/python/plotly/plotly/validators/volume/lightposition/_z.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="z", parent_name="volume.lightposition", **kwargs edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 100000), min=kwargs.pop("min", -100000), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/slices/x/_fill.py b/packages/python/plotly/plotly/validators/volume/slices/x/_fill.py index 3271a78fa2..52c202f128 100644 --- a/packages/python/plotly/plotly/validators/volume/slices/x/_fill.py +++ b/packages/python/plotly/plotly/validators/volume/slices/x/_fill.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="fill", parent_name="volume.slices.x", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/slices/x/_locations.py b/packages/python/plotly/plotly/validators/volume/slices/x/_locations.py index 441012483b..0c02eada0c 100644 --- a/packages/python/plotly/plotly/validators/volume/slices/x/_locations.py +++ b/packages/python/plotly/plotly/validators/volume/slices/x/_locations.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/slices/x/_locationssrc.py b/packages/python/plotly/plotly/validators/volume/slices/x/_locationssrc.py index d093a376d6..8beafa55de 100644 --- a/packages/python/plotly/plotly/validators/volume/slices/x/_locationssrc.py +++ b/packages/python/plotly/plotly/validators/volume/slices/x/_locationssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/slices/x/_show.py b/packages/python/plotly/plotly/validators/volume/slices/x/_show.py index d96c4ed83e..d35ce89ae4 100644 --- a/packages/python/plotly/plotly/validators/volume/slices/x/_show.py +++ b/packages/python/plotly/plotly/validators/volume/slices/x/_show.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="show", parent_name="volume.slices.x", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/slices/y/_fill.py b/packages/python/plotly/plotly/validators/volume/slices/y/_fill.py index cce00fb52f..bbb4171d24 100644 --- a/packages/python/plotly/plotly/validators/volume/slices/y/_fill.py +++ b/packages/python/plotly/plotly/validators/volume/slices/y/_fill.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="fill", parent_name="volume.slices.y", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/slices/y/_locations.py b/packages/python/plotly/plotly/validators/volume/slices/y/_locations.py index dc9be9c757..825cbe9049 100644 --- a/packages/python/plotly/plotly/validators/volume/slices/y/_locations.py +++ b/packages/python/plotly/plotly/validators/volume/slices/y/_locations.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/slices/y/_locationssrc.py b/packages/python/plotly/plotly/validators/volume/slices/y/_locationssrc.py index 3d50208c5c..6405c6532b 100644 --- a/packages/python/plotly/plotly/validators/volume/slices/y/_locationssrc.py +++ b/packages/python/plotly/plotly/validators/volume/slices/y/_locationssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/slices/y/_show.py b/packages/python/plotly/plotly/validators/volume/slices/y/_show.py index 08195a9e37..ea791b8e47 100644 --- a/packages/python/plotly/plotly/validators/volume/slices/y/_show.py +++ b/packages/python/plotly/plotly/validators/volume/slices/y/_show.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="show", parent_name="volume.slices.y", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/slices/z/_fill.py b/packages/python/plotly/plotly/validators/volume/slices/z/_fill.py index 8e3b1e5626..04976a2fb1 100644 --- a/packages/python/plotly/plotly/validators/volume/slices/z/_fill.py +++ b/packages/python/plotly/plotly/validators/volume/slices/z/_fill.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="fill", parent_name="volume.slices.z", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/slices/z/_locations.py b/packages/python/plotly/plotly/validators/volume/slices/z/_locations.py index a2899fad6c..434f24c99b 100644 --- a/packages/python/plotly/plotly/validators/volume/slices/z/_locations.py +++ b/packages/python/plotly/plotly/validators/volume/slices/z/_locations.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/slices/z/_locationssrc.py b/packages/python/plotly/plotly/validators/volume/slices/z/_locationssrc.py index 1f3e54c41e..7851d24985 100644 --- a/packages/python/plotly/plotly/validators/volume/slices/z/_locationssrc.py +++ b/packages/python/plotly/plotly/validators/volume/slices/z/_locationssrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/slices/z/_show.py b/packages/python/plotly/plotly/validators/volume/slices/z/_show.py index be1c7f4292..de8f79b724 100644 --- a/packages/python/plotly/plotly/validators/volume/slices/z/_show.py +++ b/packages/python/plotly/plotly/validators/volume/slices/z/_show.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="show", parent_name="volume.slices.z", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/spaceframe/_fill.py b/packages/python/plotly/plotly/validators/volume/spaceframe/_fill.py index 7c5bf2f672..fd790d830d 100644 --- a/packages/python/plotly/plotly/validators/volume/spaceframe/_fill.py +++ b/packages/python/plotly/plotly/validators/volume/spaceframe/_fill.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="fill", parent_name="volume.spaceframe", **kwargs edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/spaceframe/_show.py b/packages/python/plotly/plotly/validators/volume/spaceframe/_show.py index f36c14f69e..f3b81f0f1c 100644 --- a/packages/python/plotly/plotly/validators/volume/spaceframe/_show.py +++ b/packages/python/plotly/plotly/validators/volume/spaceframe/_show.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="show", parent_name="volume.spaceframe", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/volume/stream/_maxpoints.py index fe4ff47214..f4f83d0e8d 100644 --- a/packages/python/plotly/plotly/validators/volume/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/volume/stream/_maxpoints.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="maxpoints", parent_name="volume.stream", **kwarg edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/stream/_token.py b/packages/python/plotly/plotly/validators/volume/stream/_token.py index 41e68b15ac..3d368c4412 100644 --- a/packages/python/plotly/plotly/validators/volume/stream/_token.py +++ b/packages/python/plotly/plotly/validators/volume/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="volume.stream", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/surface/_count.py b/packages/python/plotly/plotly/validators/volume/surface/_count.py index e243e7c170..1c08d1ff13 100644 --- a/packages/python/plotly/plotly/validators/volume/surface/_count.py +++ b/packages/python/plotly/plotly/validators/volume/surface/_count.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="count", parent_name="volume.surface", **kwargs): parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/surface/_fill.py b/packages/python/plotly/plotly/validators/volume/surface/_fill.py index ab03c79b3a..a20c0fcf75 100644 --- a/packages/python/plotly/plotly/validators/volume/surface/_fill.py +++ b/packages/python/plotly/plotly/validators/volume/surface/_fill.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="fill", parent_name="volume.surface", **kwargs): edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/surface/_pattern.py b/packages/python/plotly/plotly/validators/volume/surface/_pattern.py index cdcdb421ad..e40b576a3b 100644 --- a/packages/python/plotly/plotly/validators/volume/surface/_pattern.py +++ b/packages/python/plotly/plotly/validators/volume/surface/_pattern.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="pattern", parent_name="volume.surface", **kwargs edit_type=kwargs.pop("edit_type", "calc"), extras=kwargs.pop("extras", ["all", "odd", "even"]), flags=kwargs.pop("flags", ["A", "B", "C", "D", "E"]), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/volume/surface/_show.py b/packages/python/plotly/plotly/validators/volume/surface/_show.py index 150df37e6e..c29140c34f 100644 --- a/packages/python/plotly/plotly/validators/volume/surface/_show.py +++ b/packages/python/plotly/plotly/validators/volume/surface/_show.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="show", parent_name="volume.surface", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/__init__.py b/packages/python/plotly/plotly/validators/waterfall/__init__.py index 97ad2a47f6..75668af339 100644 --- a/packages/python/plotly/plotly/validators/waterfall/__init__.py +++ b/packages/python/plotly/plotly/validators/waterfall/__init__.py @@ -5,6 +5,7 @@ from ._yperiodalignment import YperiodalignmentValidator from ._yperiod0 import Yperiod0Validator from ._yperiod import YperiodValidator + from ._yhoverformat import YhoverformatValidator from ._yaxis import YaxisValidator from ._y0 import Y0Validator from ._y import YValidator @@ -12,6 +13,7 @@ from ._xperiodalignment import XperiodalignmentValidator from ._xperiod0 import Xperiod0Validator from ._xperiod import XperiodValidator + from ._xhoverformat import XhoverformatValidator from ._xaxis import XaxisValidator from ._x0 import X0Validator from ._x import XValidator @@ -78,6 +80,7 @@ "._yperiodalignment.YperiodalignmentValidator", "._yperiod0.Yperiod0Validator", "._yperiod.YperiodValidator", + "._yhoverformat.YhoverformatValidator", "._yaxis.YaxisValidator", "._y0.Y0Validator", "._y.YValidator", @@ -85,6 +88,7 @@ "._xperiodalignment.XperiodalignmentValidator", "._xperiod0.Xperiod0Validator", "._xperiod.XperiodValidator", + "._xhoverformat.XhoverformatValidator", "._xaxis.XaxisValidator", "._x0.X0Validator", "._x.XValidator", diff --git a/packages/python/plotly/plotly/validators/waterfall/_alignmentgroup.py b/packages/python/plotly/plotly/validators/waterfall/_alignmentgroup.py index c75d79c1c6..cc362d2691 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_alignmentgroup.py +++ b/packages/python/plotly/plotly/validators/waterfall/_alignmentgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="alignmentgroup", parent_name="waterfall", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_base.py b/packages/python/plotly/plotly/validators/waterfall/_base.py index 364e7dfbd3..320367b21f 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_base.py +++ b/packages/python/plotly/plotly/validators/waterfall/_base.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="base", parent_name="waterfall", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_cliponaxis.py b/packages/python/plotly/plotly/validators/waterfall/_cliponaxis.py index 859b38a227..0fb04d5fe2 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_cliponaxis.py +++ b/packages/python/plotly/plotly/validators/waterfall/_cliponaxis.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="cliponaxis", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_constraintext.py b/packages/python/plotly/plotly/validators/waterfall/_constraintext.py index 1cd1428fd8..242760722a 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_constraintext.py +++ b/packages/python/plotly/plotly/validators/waterfall/_constraintext.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="constraintext", parent_name="waterfall", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["inside", "outside", "both", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_customdata.py b/packages/python/plotly/plotly/validators/waterfall/_customdata.py index eb0fb7db85..b956eb32af 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_customdata.py +++ b/packages/python/plotly/plotly/validators/waterfall/_customdata.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdata", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_customdatasrc.py b/packages/python/plotly/plotly/validators/waterfall/_customdatasrc.py index 608330df11..1eaa6d9932 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_customdatasrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/_customdatasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="customdatasrc", parent_name="waterfall", **kwarg plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_dx.py b/packages/python/plotly/plotly/validators/waterfall/_dx.py index 1ded49d7d6..a692986688 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_dx.py +++ b/packages/python/plotly/plotly/validators/waterfall/_dx.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="dx", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_dy.py b/packages/python/plotly/plotly/validators/waterfall/_dy.py index 886b1c20bf..ad5ea34771 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_dy.py +++ b/packages/python/plotly/plotly/validators/waterfall/_dy.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="dy", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_hoverinfo.py b/packages/python/plotly/plotly/validators/waterfall/_hoverinfo.py index 3c57da3b7e..592118467f 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_hoverinfo.py +++ b/packages/python/plotly/plotly/validators/waterfall/_hoverinfo.py @@ -12,6 +12,5 @@ def __init__(self, plotly_name="hoverinfo", parent_name="waterfall", **kwargs): flags=kwargs.pop( "flags", ["name", "x", "y", "text", "initial", "delta", "final"] ), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_hoverinfosrc.py b/packages/python/plotly/plotly/validators/waterfall/_hoverinfosrc.py index 0b0187c672..8dc4b0173a 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_hoverinfosrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/_hoverinfosrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hoverinfosrc", parent_name="waterfall", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_hovertemplate.py b/packages/python/plotly/plotly/validators/waterfall/_hovertemplate.py index 240c6f55fc..7e8568e9eb 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_hovertemplate.py +++ b/packages/python/plotly/plotly/validators/waterfall/_hovertemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertemplate", parent_name="waterfall", **kwarg parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_hovertemplatesrc.py b/packages/python/plotly/plotly/validators/waterfall/_hovertemplatesrc.py index 05b9c5aab0..6083345aed 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_hovertemplatesrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/_hovertemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_hovertext.py b/packages/python/plotly/plotly/validators/waterfall/_hovertext.py index 54c639667d..1a93307eb6 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_hovertext.py +++ b/packages/python/plotly/plotly/validators/waterfall/_hovertext.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="hovertext", parent_name="waterfall", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_hovertextsrc.py b/packages/python/plotly/plotly/validators/waterfall/_hovertextsrc.py index 024806e5f2..9aaafc622e 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_hovertextsrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/_hovertextsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="hovertextsrc", parent_name="waterfall", **kwargs plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_ids.py b/packages/python/plotly/plotly/validators/waterfall/_ids.py index 46b89da34e..111a9fc343 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_ids.py +++ b/packages/python/plotly/plotly/validators/waterfall/_ids.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ids", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_idssrc.py b/packages/python/plotly/plotly/validators/waterfall/_idssrc.py index 96e7526d85..317a3bd2f0 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_idssrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/_idssrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="idssrc", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_insidetextanchor.py b/packages/python/plotly/plotly/validators/waterfall/_insidetextanchor.py index 7ff17461c0..7c725397d0 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_insidetextanchor.py +++ b/packages/python/plotly/plotly/validators/waterfall/_insidetextanchor.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["end", "middle", "start"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_legendgroup.py b/packages/python/plotly/plotly/validators/waterfall/_legendgroup.py index 1629d005f4..66ddb3a192 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_legendgroup.py +++ b/packages/python/plotly/plotly/validators/waterfall/_legendgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="legendgroup", parent_name="waterfall", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_measure.py b/packages/python/plotly/plotly/validators/waterfall/_measure.py index d3812c27f1..d9fdfbb787 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_measure.py +++ b/packages/python/plotly/plotly/validators/waterfall/_measure.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="measure", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_measuresrc.py b/packages/python/plotly/plotly/validators/waterfall/_measuresrc.py index 9c0f2793d3..1f9992e523 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_measuresrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/_measuresrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="measuresrc", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_meta.py b/packages/python/plotly/plotly/validators/waterfall/_meta.py index d91418a6aa..85eb454b1a 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_meta.py +++ b/packages/python/plotly/plotly/validators/waterfall/_meta.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="meta", parent_name="waterfall", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_metasrc.py b/packages/python/plotly/plotly/validators/waterfall/_metasrc.py index a4bc87d29a..86c4dca7ab 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_metasrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/_metasrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="metasrc", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_name.py b/packages/python/plotly/plotly/validators/waterfall/_name.py index d4f4870b01..608e0ac1ba 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_name.py +++ b/packages/python/plotly/plotly/validators/waterfall/_name.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="name", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_offset.py b/packages/python/plotly/plotly/validators/waterfall/_offset.py index f418587772..3e2c8f6d7c 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_offset.py +++ b/packages/python/plotly/plotly/validators/waterfall/_offset.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="offset", parent_name="waterfall", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_offsetgroup.py b/packages/python/plotly/plotly/validators/waterfall/_offsetgroup.py index 690c363ced..3a0fbf6694 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_offsetgroup.py +++ b/packages/python/plotly/plotly/validators/waterfall/_offsetgroup.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="offsetgroup", parent_name="waterfall", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_offsetsrc.py b/packages/python/plotly/plotly/validators/waterfall/_offsetsrc.py index 2751be1b62..b5643e151d 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_offsetsrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/_offsetsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="offsetsrc", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_opacity.py b/packages/python/plotly/plotly/validators/waterfall/_opacity.py index 7dd8e1d251..4e103d204a 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_opacity.py +++ b/packages/python/plotly/plotly/validators/waterfall/_opacity.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="opacity", parent_name="waterfall", **kwargs): edit_type=kwargs.pop("edit_type", "style"), max=kwargs.pop("max", 1), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_orientation.py b/packages/python/plotly/plotly/validators/waterfall/_orientation.py index 468b408062..ad748999b2 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_orientation.py +++ b/packages/python/plotly/plotly/validators/waterfall/_orientation.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="orientation", parent_name="waterfall", **kwargs) plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["v", "h"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_selectedpoints.py b/packages/python/plotly/plotly/validators/waterfall/_selectedpoints.py index 054b1d6a22..b120a6e452 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_selectedpoints.py +++ b/packages/python/plotly/plotly/validators/waterfall/_selectedpoints.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="selectedpoints", parent_name="waterfall", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_showlegend.py b/packages/python/plotly/plotly/validators/waterfall/_showlegend.py index 3090959c60..b59d7849cb 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_showlegend.py +++ b/packages/python/plotly/plotly/validators/waterfall/_showlegend.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="showlegend", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_text.py b/packages/python/plotly/plotly/validators/waterfall/_text.py index b5b6f367e5..1201829005 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_text.py +++ b/packages/python/plotly/plotly/validators/waterfall/_text.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="text", parent_name="waterfall", **kwargs): parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_textangle.py b/packages/python/plotly/plotly/validators/waterfall/_textangle.py index 86b1eda62c..2d1ebb80b4 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_textangle.py +++ b/packages/python/plotly/plotly/validators/waterfall/_textangle.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textangle", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_textinfo.py b/packages/python/plotly/plotly/validators/waterfall/_textinfo.py index 49eea99e5c..803c94992e 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_textinfo.py +++ b/packages/python/plotly/plotly/validators/waterfall/_textinfo.py @@ -10,6 +10,5 @@ def __init__(self, plotly_name="textinfo", parent_name="waterfall", **kwargs): edit_type=kwargs.pop("edit_type", "plot"), extras=kwargs.pop("extras", ["none"]), flags=kwargs.pop("flags", ["label", "text", "initial", "delta", "final"]), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_textposition.py b/packages/python/plotly/plotly/validators/waterfall/_textposition.py index c79a1c41ec..4355220dc4 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_textposition.py +++ b/packages/python/plotly/plotly/validators/waterfall/_textposition.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="textposition", parent_name="waterfall", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["inside", "outside", "auto", "none"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_textpositionsrc.py b/packages/python/plotly/plotly/validators/waterfall/_textpositionsrc.py index daa38a336d..8f62555875 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_textpositionsrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/_textpositionsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_textsrc.py b/packages/python/plotly/plotly/validators/waterfall/_textsrc.py index 691fd4d735..f1f7e7d1f8 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_textsrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/_textsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="textsrc", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_texttemplate.py b/packages/python/plotly/plotly/validators/waterfall/_texttemplate.py index 6727759562..709cdcda08 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_texttemplate.py +++ b/packages/python/plotly/plotly/validators/waterfall/_texttemplate.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="texttemplate", parent_name="waterfall", **kwargs parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_texttemplatesrc.py b/packages/python/plotly/plotly/validators/waterfall/_texttemplatesrc.py index 84654e7d8c..859aac0577 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_texttemplatesrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/_texttemplatesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_uid.py b/packages/python/plotly/plotly/validators/waterfall/_uid.py index 9542f2f510..87916b8ee1 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_uid.py +++ b/packages/python/plotly/plotly/validators/waterfall/_uid.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uid", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_uirevision.py b/packages/python/plotly/plotly/validators/waterfall/_uirevision.py index b542914f9d..022beb0a9f 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_uirevision.py +++ b/packages/python/plotly/plotly/validators/waterfall/_uirevision.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="uirevision", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_visible.py b/packages/python/plotly/plotly/validators/waterfall/_visible.py index f72890be66..cf7cdd00e9 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_visible.py +++ b/packages/python/plotly/plotly/validators/waterfall/_visible.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="visible", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", [True, False, "legendonly"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_width.py b/packages/python/plotly/plotly/validators/waterfall/_width.py index 372d7c450f..348ce9166d 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_width.py +++ b/packages/python/plotly/plotly/validators/waterfall/_width.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="width", parent_name="waterfall", **kwargs): array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_widthsrc.py b/packages/python/plotly/plotly/validators/waterfall/_widthsrc.py index 200d2efbaa..18207c7e82 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_widthsrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/_widthsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="widthsrc", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_x.py b/packages/python/plotly/plotly/validators/waterfall/_x.py index bab4ab5d29..6f94396ea0 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_x.py +++ b/packages/python/plotly/plotly/validators/waterfall/_x.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_x0.py b/packages/python/plotly/plotly/validators/waterfall/_x0.py index 18709c9258..fc7af636b9 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_x0.py +++ b/packages/python/plotly/plotly/validators/waterfall/_x0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="x0", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_xaxis.py b/packages/python/plotly/plotly/validators/waterfall/_xaxis.py index ec07edce87..3a6e9b4820 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_xaxis.py +++ b/packages/python/plotly/plotly/validators/waterfall/_xaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="xaxis", parent_name="waterfall", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "x"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_xhoverformat.py b/packages/python/plotly/plotly/validators/waterfall/_xhoverformat.py new file mode 100644 index 0000000000..878d30014c --- /dev/null +++ b/packages/python/plotly/plotly/validators/waterfall/_xhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class XhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="xhoverformat", parent_name="waterfall", **kwargs): + super(XhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_xperiod.py b/packages/python/plotly/plotly/validators/waterfall/_xperiod.py index 3d030d2118..86bfc15931 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_xperiod.py +++ b/packages/python/plotly/plotly/validators/waterfall/_xperiod.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xperiod", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_xperiod0.py b/packages/python/plotly/plotly/validators/waterfall/_xperiod0.py index db28bc6783..b83ee5e3ce 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_xperiod0.py +++ b/packages/python/plotly/plotly/validators/waterfall/_xperiod0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xperiod0", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_xperiodalignment.py b/packages/python/plotly/plotly/validators/waterfall/_xperiodalignment.py index 4c6d51a734..f884dc44a6 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_xperiodalignment.py +++ b/packages/python/plotly/plotly/validators/waterfall/_xperiodalignment.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["start", "middle", "end"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_xsrc.py b/packages/python/plotly/plotly/validators/waterfall/_xsrc.py index e7efb36bf7..9b3a56fd11 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_xsrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/_xsrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="xsrc", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_y.py b/packages/python/plotly/plotly/validators/waterfall/_y.py index 61926fc87b..243ca1e9e7 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_y.py +++ b/packages/python/plotly/plotly/validators/waterfall/_y.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "data"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_y0.py b/packages/python/plotly/plotly/validators/waterfall/_y0.py index ca0fffa8ab..d9742a0eae 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_y0.py +++ b/packages/python/plotly/plotly/validators/waterfall/_y0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="y0", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_yaxis.py b/packages/python/plotly/plotly/validators/waterfall/_yaxis.py index b1924f1454..52c5e4002f 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_yaxis.py +++ b/packages/python/plotly/plotly/validators/waterfall/_yaxis.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="yaxis", parent_name="waterfall", **kwargs): parent_name=parent_name, dflt=kwargs.pop("dflt", "y"), edit_type=kwargs.pop("edit_type", "calc+clearAxisTypes"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_yhoverformat.py b/packages/python/plotly/plotly/validators/waterfall/_yhoverformat.py new file mode 100644 index 0000000000..e54a8c6937 --- /dev/null +++ b/packages/python/plotly/plotly/validators/waterfall/_yhoverformat.py @@ -0,0 +1,11 @@ +import _plotly_utils.basevalidators + + +class YhoverformatValidator(_plotly_utils.basevalidators.StringValidator): + def __init__(self, plotly_name="yhoverformat", parent_name="waterfall", **kwargs): + super(YhoverformatValidator, self).__init__( + plotly_name=plotly_name, + parent_name=parent_name, + edit_type=kwargs.pop("edit_type", "none"), + **kwargs + ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_yperiod.py b/packages/python/plotly/plotly/validators/waterfall/_yperiod.py index d7ac23ebbc..29cb9d1b8e 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_yperiod.py +++ b/packages/python/plotly/plotly/validators/waterfall/_yperiod.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="yperiod", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_yperiod0.py b/packages/python/plotly/plotly/validators/waterfall/_yperiod0.py index 990a7d3eae..f488c18efc 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_yperiod0.py +++ b/packages/python/plotly/plotly/validators/waterfall/_yperiod0.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="yperiod0", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_yperiodalignment.py b/packages/python/plotly/plotly/validators/waterfall/_yperiodalignment.py index ed6ca94d05..43f29a7ef5 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_yperiodalignment.py +++ b/packages/python/plotly/plotly/validators/waterfall/_yperiodalignment.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["start", "middle", "end"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/_ysrc.py b/packages/python/plotly/plotly/validators/waterfall/_ysrc.py index 9e8acdf57c..6308a2af19 100644 --- a/packages/python/plotly/plotly/validators/waterfall/_ysrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/_ysrc.py @@ -7,6 +7,5 @@ def __init__(self, plotly_name="ysrc", parent_name="waterfall", **kwargs): plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/connector/_mode.py b/packages/python/plotly/plotly/validators/waterfall/connector/_mode.py index bd3698cea3..954c6ffdd0 100644 --- a/packages/python/plotly/plotly/validators/waterfall/connector/_mode.py +++ b/packages/python/plotly/plotly/validators/waterfall/connector/_mode.py @@ -7,7 +7,6 @@ def __init__(self, plotly_name="mode", parent_name="waterfall.connector", **kwar plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), values=kwargs.pop("values", ["spanning", "between"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/connector/_visible.py b/packages/python/plotly/plotly/validators/waterfall/connector/_visible.py index 3dea2639bc..72c3d7b2cf 100644 --- a/packages/python/plotly/plotly/validators/waterfall/connector/_visible.py +++ b/packages/python/plotly/plotly/validators/waterfall/connector/_visible.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/connector/line/_color.py b/packages/python/plotly/plotly/validators/waterfall/connector/line/_color.py index 4b382565da..6eba1722b2 100644 --- a/packages/python/plotly/plotly/validators/waterfall/connector/line/_color.py +++ b/packages/python/plotly/plotly/validators/waterfall/connector/line/_color.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/connector/line/_dash.py b/packages/python/plotly/plotly/validators/waterfall/connector/line/_dash.py index bd64073e85..d99f637d00 100644 --- a/packages/python/plotly/plotly/validators/waterfall/connector/line/_dash.py +++ b/packages/python/plotly/plotly/validators/waterfall/connector/line/_dash.py @@ -9,7 +9,6 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), values=kwargs.pop( "values", ["solid", "dot", "dash", "longdash", "dashdot", "longdashdot"] ), diff --git a/packages/python/plotly/plotly/validators/waterfall/connector/line/_width.py b/packages/python/plotly/plotly/validators/waterfall/connector/line/_width.py index aff3fef1b8..7d52b650b4 100644 --- a/packages/python/plotly/plotly/validators/waterfall/connector/line/_width.py +++ b/packages/python/plotly/plotly/validators/waterfall/connector/line/_width.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, edit_type=kwargs.pop("edit_type", "plot"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/decreasing/marker/_color.py b/packages/python/plotly/plotly/validators/waterfall/decreasing/marker/_color.py index 2a7e839b9d..15f116b964 100644 --- a/packages/python/plotly/plotly/validators/waterfall/decreasing/marker/_color.py +++ b/packages/python/plotly/plotly/validators/waterfall/decreasing/marker/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/decreasing/marker/line/_color.py b/packages/python/plotly/plotly/validators/waterfall/decreasing/marker/line/_color.py index 44b54d224b..4270e46a1a 100644 --- a/packages/python/plotly/plotly/validators/waterfall/decreasing/marker/line/_color.py +++ b/packages/python/plotly/plotly/validators/waterfall/decreasing/marker/line/_color.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/decreasing/marker/line/_width.py b/packages/python/plotly/plotly/validators/waterfall/decreasing/marker/line/_width.py index 4983b9f75b..d12e03a926 100644 --- a/packages/python/plotly/plotly/validators/waterfall/decreasing/marker/line/_width.py +++ b/packages/python/plotly/plotly/validators/waterfall/decreasing/marker/line/_width.py @@ -14,6 +14,5 @@ def __init__( array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_align.py b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_align.py index 46ac8f1e0b..4e226755c8 100644 --- a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_align.py +++ b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_align.py @@ -10,7 +10,6 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), values=kwargs.pop("values", ["left", "right", "auto"]), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_alignsrc.py b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_alignsrc.py index 26c098022e..145a62c19f 100644 --- a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_alignsrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_alignsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_bgcolor.py b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_bgcolor.py index 15fb8f179b..9a87345a4e 100644 --- a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_bgcolor.py +++ b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_bgcolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_bgcolorsrc.py b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_bgcolorsrc.py index 69019ceda1..8b85bb8b89 100644 --- a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_bgcolorsrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_bgcolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_bordercolor.py b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_bordercolor.py index 95d9d8247d..ae26736962 100644 --- a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_bordercolor.py +++ b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_bordercolor.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_bordercolorsrc.py b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_bordercolorsrc.py index a587b4d18f..51c8a7ac72 100644 --- a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_bordercolorsrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_bordercolorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_namelength.py b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_namelength.py index f0fe1a46bf..40edb73e0a 100644 --- a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_namelength.py +++ b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_namelength.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", -1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_namelengthsrc.py b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_namelengthsrc.py index 3872a1ccb9..4d172aca4b 100644 --- a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_namelengthsrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/_namelengthsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/font/_color.py b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/font/_color.py index 6730f9a0e7..d573b29928 100644 --- a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/font/_color.py +++ b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/font/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/font/_colorsrc.py b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/font/_colorsrc.py index ca25a6ec67..c29bd903a6 100644 --- a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/font/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/font/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/font/_family.py b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/font/_family.py index 9c969b0776..56452b0893 100644 --- a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/font/_family.py +++ b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/font/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/font/_familysrc.py b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/font/_familysrc.py index 8e2b569489..ca24d2609f 100644 --- a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/font/_familysrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/font/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/font/_size.py b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/font/_size.py index 0b539d35f6..21c706f975 100644 --- a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/font/_size.py +++ b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/font/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "none"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/font/_sizesrc.py b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/font/_sizesrc.py index 7683b8f13e..89df0de8cc 100644 --- a/packages/python/plotly/plotly/validators/waterfall/hoverlabel/font/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/hoverlabel/font/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/increasing/marker/_color.py b/packages/python/plotly/plotly/validators/waterfall/increasing/marker/_color.py index bae736ae42..38a5a9fbf9 100644 --- a/packages/python/plotly/plotly/validators/waterfall/increasing/marker/_color.py +++ b/packages/python/plotly/plotly/validators/waterfall/increasing/marker/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/increasing/marker/line/_color.py b/packages/python/plotly/plotly/validators/waterfall/increasing/marker/line/_color.py index 7563bc87fa..18efc1b3b4 100644 --- a/packages/python/plotly/plotly/validators/waterfall/increasing/marker/line/_color.py +++ b/packages/python/plotly/plotly/validators/waterfall/increasing/marker/line/_color.py @@ -13,6 +13,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/increasing/marker/line/_width.py b/packages/python/plotly/plotly/validators/waterfall/increasing/marker/line/_width.py index 80f8e4bf19..3507c82339 100644 --- a/packages/python/plotly/plotly/validators/waterfall/increasing/marker/line/_width.py +++ b/packages/python/plotly/plotly/validators/waterfall/increasing/marker/line/_width.py @@ -14,6 +14,5 @@ def __init__( array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/insidetextfont/_color.py b/packages/python/plotly/plotly/validators/waterfall/insidetextfont/_color.py index c91d49b9dc..8360793d9f 100644 --- a/packages/python/plotly/plotly/validators/waterfall/insidetextfont/_color.py +++ b/packages/python/plotly/plotly/validators/waterfall/insidetextfont/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/insidetextfont/_colorsrc.py b/packages/python/plotly/plotly/validators/waterfall/insidetextfont/_colorsrc.py index 41952c9215..48e8492c29 100644 --- a/packages/python/plotly/plotly/validators/waterfall/insidetextfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/insidetextfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/insidetextfont/_family.py b/packages/python/plotly/plotly/validators/waterfall/insidetextfont/_family.py index 224a6a354e..524d89cca8 100644 --- a/packages/python/plotly/plotly/validators/waterfall/insidetextfont/_family.py +++ b/packages/python/plotly/plotly/validators/waterfall/insidetextfont/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/insidetextfont/_familysrc.py b/packages/python/plotly/plotly/validators/waterfall/insidetextfont/_familysrc.py index 72004a2e82..29f052b605 100644 --- a/packages/python/plotly/plotly/validators/waterfall/insidetextfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/insidetextfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/insidetextfont/_size.py b/packages/python/plotly/plotly/validators/waterfall/insidetextfont/_size.py index 1e4ef90fca..12818304b2 100644 --- a/packages/python/plotly/plotly/validators/waterfall/insidetextfont/_size.py +++ b/packages/python/plotly/plotly/validators/waterfall/insidetextfont/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/insidetextfont/_sizesrc.py b/packages/python/plotly/plotly/validators/waterfall/insidetextfont/_sizesrc.py index ca9bec6588..c228fd296e 100644 --- a/packages/python/plotly/plotly/validators/waterfall/insidetextfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/insidetextfont/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/outsidetextfont/_color.py b/packages/python/plotly/plotly/validators/waterfall/outsidetextfont/_color.py index d4dc565bdc..a58e5473f0 100644 --- a/packages/python/plotly/plotly/validators/waterfall/outsidetextfont/_color.py +++ b/packages/python/plotly/plotly/validators/waterfall/outsidetextfont/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/outsidetextfont/_colorsrc.py b/packages/python/plotly/plotly/validators/waterfall/outsidetextfont/_colorsrc.py index 9f604b2897..3a9d6f2359 100644 --- a/packages/python/plotly/plotly/validators/waterfall/outsidetextfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/outsidetextfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/outsidetextfont/_family.py b/packages/python/plotly/plotly/validators/waterfall/outsidetextfont/_family.py index 43bd057b89..7af08e2f46 100644 --- a/packages/python/plotly/plotly/validators/waterfall/outsidetextfont/_family.py +++ b/packages/python/plotly/plotly/validators/waterfall/outsidetextfont/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/outsidetextfont/_familysrc.py b/packages/python/plotly/plotly/validators/waterfall/outsidetextfont/_familysrc.py index fba1614edd..feff0f7286 100644 --- a/packages/python/plotly/plotly/validators/waterfall/outsidetextfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/outsidetextfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/outsidetextfont/_size.py b/packages/python/plotly/plotly/validators/waterfall/outsidetextfont/_size.py index 5f58a20932..4482e32cc6 100644 --- a/packages/python/plotly/plotly/validators/waterfall/outsidetextfont/_size.py +++ b/packages/python/plotly/plotly/validators/waterfall/outsidetextfont/_size.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/outsidetextfont/_sizesrc.py b/packages/python/plotly/plotly/validators/waterfall/outsidetextfont/_sizesrc.py index 9d3d253f49..abffeeee3c 100644 --- a/packages/python/plotly/plotly/validators/waterfall/outsidetextfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/outsidetextfont/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/stream/_maxpoints.py b/packages/python/plotly/plotly/validators/waterfall/stream/_maxpoints.py index d33da1cd14..afc27cc076 100644 --- a/packages/python/plotly/plotly/validators/waterfall/stream/_maxpoints.py +++ b/packages/python/plotly/plotly/validators/waterfall/stream/_maxpoints.py @@ -11,6 +11,5 @@ def __init__( edit_type=kwargs.pop("edit_type", "calc"), max=kwargs.pop("max", 10000), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/stream/_token.py b/packages/python/plotly/plotly/validators/waterfall/stream/_token.py index e62abcc842..b59c91e8ca 100644 --- a/packages/python/plotly/plotly/validators/waterfall/stream/_token.py +++ b/packages/python/plotly/plotly/validators/waterfall/stream/_token.py @@ -8,7 +8,6 @@ def __init__(self, plotly_name="token", parent_name="waterfall.stream", **kwargs parent_name=parent_name, edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "info"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/textfont/_color.py b/packages/python/plotly/plotly/validators/waterfall/textfont/_color.py index b6d0acc288..1d01699d6f 100644 --- a/packages/python/plotly/plotly/validators/waterfall/textfont/_color.py +++ b/packages/python/plotly/plotly/validators/waterfall/textfont/_color.py @@ -8,6 +8,5 @@ def __init__(self, plotly_name="color", parent_name="waterfall.textfont", **kwar parent_name=parent_name, array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/textfont/_colorsrc.py b/packages/python/plotly/plotly/validators/waterfall/textfont/_colorsrc.py index 7fc1c49661..0cf3a371ca 100644 --- a/packages/python/plotly/plotly/validators/waterfall/textfont/_colorsrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/textfont/_colorsrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/textfont/_family.py b/packages/python/plotly/plotly/validators/waterfall/textfont/_family.py index a5abeb1ad9..25e53f9637 100644 --- a/packages/python/plotly/plotly/validators/waterfall/textfont/_family.py +++ b/packages/python/plotly/plotly/validators/waterfall/textfont/_family.py @@ -11,7 +11,6 @@ def __init__( array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), no_blank=kwargs.pop("no_blank", True), - role=kwargs.pop("role", "style"), strict=kwargs.pop("strict", True), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/textfont/_familysrc.py b/packages/python/plotly/plotly/validators/waterfall/textfont/_familysrc.py index 22c2086f44..451d35c918 100644 --- a/packages/python/plotly/plotly/validators/waterfall/textfont/_familysrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/textfont/_familysrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/textfont/_size.py b/packages/python/plotly/plotly/validators/waterfall/textfont/_size.py index 7c0653cd07..b7de5f98a2 100644 --- a/packages/python/plotly/plotly/validators/waterfall/textfont/_size.py +++ b/packages/python/plotly/plotly/validators/waterfall/textfont/_size.py @@ -9,6 +9,5 @@ def __init__(self, plotly_name="size", parent_name="waterfall.textfont", **kwarg array_ok=kwargs.pop("array_ok", True), edit_type=kwargs.pop("edit_type", "calc"), min=kwargs.pop("min", 1), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/textfont/_sizesrc.py b/packages/python/plotly/plotly/validators/waterfall/textfont/_sizesrc.py index cb4700ed30..8018474653 100644 --- a/packages/python/plotly/plotly/validators/waterfall/textfont/_sizesrc.py +++ b/packages/python/plotly/plotly/validators/waterfall/textfont/_sizesrc.py @@ -9,6 +9,5 @@ def __init__( plotly_name=plotly_name, parent_name=parent_name, edit_type=kwargs.pop("edit_type", "none"), - role=kwargs.pop("role", "info"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/totals/marker/_color.py b/packages/python/plotly/plotly/validators/waterfall/totals/marker/_color.py index f7553f5df2..52c0f4c425 100644 --- a/packages/python/plotly/plotly/validators/waterfall/totals/marker/_color.py +++ b/packages/python/plotly/plotly/validators/waterfall/totals/marker/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/totals/marker/line/_color.py b/packages/python/plotly/plotly/validators/waterfall/totals/marker/line/_color.py index 419c9023f5..3e388c4c5a 100644 --- a/packages/python/plotly/plotly/validators/waterfall/totals/marker/line/_color.py +++ b/packages/python/plotly/plotly/validators/waterfall/totals/marker/line/_color.py @@ -10,6 +10,5 @@ def __init__( parent_name=parent_name, array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "style"), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/packages/python/plotly/plotly/validators/waterfall/totals/marker/line/_width.py b/packages/python/plotly/plotly/validators/waterfall/totals/marker/line/_width.py index c070ccdd38..d76f84a1d1 100644 --- a/packages/python/plotly/plotly/validators/waterfall/totals/marker/line/_width.py +++ b/packages/python/plotly/plotly/validators/waterfall/totals/marker/line/_width.py @@ -11,6 +11,5 @@ def __init__( array_ok=kwargs.pop("array_ok", False), edit_type=kwargs.pop("edit_type", "style"), min=kwargs.pop("min", 0), - role=kwargs.pop("role", "style"), **kwargs ) diff --git a/release.md b/release.md index 698fb63ecc..49e406223b 100644 --- a/release.md +++ b/release.md @@ -2,14 +2,14 @@ # How to release plotly packages There are 3 Python packages (`plotly`, `plotly-geo` and `chart-studio`) which need to be -published to PyPI and conda, and 1 JS packages (`plotlywdiget`) +published to PyPI and conda, and 1 JS packages (`jupyterlab-plotly`) which need to be published to NPM. In addition, there are various changelogs, github releases and forum announcements to do :) ## Release process - `plotly` package and extensions This is the release process for releasing `plotly.py` version `X.Y.Z` with -`plotlywidget` with matching versions. +`jupyterlab-plotly` with matching versions. > Note: it's easier to lock all three versions together, even if it means we occasionally > push no-change versions to NPM/PyPI/Conda. @@ -38,7 +38,7 @@ specified below. + this must be done at this point because the README gets baked into PyPI - `plotly/_widget_version.py`: + Update `__frontend_version__` to `^X.Y.Z` (Note the `^` prefix) - - `packages/javascript/plotlywidget/package.json` + - `packages/javascript/jupyterlab-plotly/package.json` + Update `"version"` to `X.Y.Z` + Ensure you're using `node` version 12 and `npm` version 6 to minimize diffs to `package-lock.json` + Run `rm -rf node_modules && npm install && npm run build:prod` @@ -55,7 +55,7 @@ Build and publish the final version of the extensions to NPM. We do this first b once we push to PyPI the README will refer to these versions. ```bash -cd packages/javascript/plotlywidget +cd packages/javascript/jupyterlab-plotly npm run build && npm publish --access public ``` @@ -124,7 +124,7 @@ $ anaconda upload /path/to/anaconda3/conda-bld/noarch/plotly-*.tar.bz2 start by doing it first if not. Then merge `master` into `doc-prod` to deploy the doc related to features in the release. 3. in a clone of the [`graphing-library-docs` repo](https://github.com/plotly/graphing-library-docs): - 1. bump the version of Plotly.js with `cd _data && python get_plotschema.py` fixing any errors that come up + 1. bump the version of Plotly.js with `cd _data && python get_plotschema.py ` fixing any errors that come up 2. rebuild the Algolia `schema` index with `ALGOLIA_API_KEY= make update_ref_search` 3. Rebuild the Algolia `python` index with `ALGOLIA_API_KEY= make update_python_search` 4. Commit and push the changes to `master` in that repo @@ -146,7 +146,7 @@ specified below. - `packages/python/plotly/plotly/_widget_version.py`: + Update `__frontend_version__` to `^X.Y.Z-rc.1` (Note the `^` prefix) - - `packages/javascript/plotlywidget/package.json` + - `packages/javascript/jupyterlab-plotly/package.json` + Update `"version"` to `X.Y.Z-rc.1` + Ensure you're using `node` version 12 and `npm` version 6 to minimize diffs to `package-lock.json` + Run `rm -rf node_modules && npm install && npm run build:prod` @@ -161,7 +161,7 @@ The number 1 means that this is the first release candidate, this number can be incremented if we need to publish multiple release candidates. Note that the `npm` suffix is `-rc.1` and the PyPI suffix is `rc1`. -Publishing `plotly.py` and `plotlywidget` as release candidates +Publishing `plotly.py` and `jupyterlab-plotly` as release candidates allows us to go through the publication process, and test that the installed packages work properly before general users will get them by default. It also gives us the opportunity to ask specific users to test @@ -196,7 +196,7 @@ to reflect what is being released, and the version number comes from the tag and Now, publish the release candidate of the extensions to NPM. ```bash -cd ./packages/javascript/plotlywidget +cd ./packages/javascript/jupyterlab-plotly npm run build && npm publish --access public --tag next ``` From 0895266b46b3f882e7dfe4eb310723c5acbbfa7f Mon Sep 17 00:00:00 2001 From: Nicolas Kruchten Date: Mon, 31 May 2021 12:59:46 -0400 Subject: [PATCH 95/99] trying to fix sphinx --- doc/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/requirements.txt b/doc/requirements.txt index fb71acdb79..d32cefc72d 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -18,7 +18,7 @@ networkx squarify scikit-image==0.18.1 scikit-learn -sphinx +sphinx==3.5.4 sphinx_bootstrap_theme recommonmark pathlib From 5331cea2ef046243f66409e72c08ea51f106315c Mon Sep 17 00:00:00 2001 From: Nicolas Kruchten Date: Mon, 31 May 2021 16:50:32 -0400 Subject: [PATCH 96/99] 5.0.0rc1 --- packages/javascript/jupyterlab-plotly/package-lock.json | 2 +- packages/javascript/jupyterlab-plotly/package.json | 2 +- packages/python/plotly/plotly/_widget_version.py | 2 +- release.md | 2 ++ 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/javascript/jupyterlab-plotly/package-lock.json b/packages/javascript/jupyterlab-plotly/package-lock.json index 49e1e50766..e0b06fcd87 100644 --- a/packages/javascript/jupyterlab-plotly/package-lock.json +++ b/packages/javascript/jupyterlab-plotly/package-lock.json @@ -1,6 +1,6 @@ { "name": "jupyterlab-plotly", - "version": "4.14.3", + "version": "5.0.0-rc.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/javascript/jupyterlab-plotly/package.json b/packages/javascript/jupyterlab-plotly/package.json index 73747035c4..f86362accb 100644 --- a/packages/javascript/jupyterlab-plotly/package.json +++ b/packages/javascript/jupyterlab-plotly/package.json @@ -1,6 +1,6 @@ { "name": "jupyterlab-plotly", - "version": "4.14.3", + "version": "5.0.0-rc.1", "description": "The plotly Jupyter extension", "author": "The plotly.py team", "license": "MIT", diff --git a/packages/python/plotly/plotly/_widget_version.py b/packages/python/plotly/plotly/_widget_version.py index ed0f003db1..fcefbc81c0 100644 --- a/packages/python/plotly/plotly/_widget_version.py +++ b/packages/python/plotly/plotly/_widget_version.py @@ -2,4 +2,4 @@ # for automated dev builds # # It is edited by hand prior to official releases -__frontend_version__ = "^4.14.3" +__frontend_version__ = "^5.0.0-rc.1" diff --git a/release.md b/release.md index 49e406223b..54e47b3bab 100644 --- a/release.md +++ b/release.md @@ -41,6 +41,7 @@ specified below. - `packages/javascript/jupyterlab-plotly/package.json` + Update `"version"` to `X.Y.Z` + Ensure you're using `node` version 12 and `npm` version 6 to minimize diffs to `package-lock.json` + + Ensure you're in a Python virtual environment with JupyterLab 3 installed + Run `rm -rf node_modules && npm install && npm run build:prod` - This the last good time to install the extensions locally and check that everything works in dev mode - Run `git diff` and ensure that only the files you modified and the build artifacts have changed @@ -149,6 +150,7 @@ specified below. - `packages/javascript/jupyterlab-plotly/package.json` + Update `"version"` to `X.Y.Z-rc.1` + Ensure you're using `node` version 12 and `npm` version 6 to minimize diffs to `package-lock.json` + + Ensure you're in a Python virtual environment with JupyterLab 3 installed + Run `rm -rf node_modules && npm install && npm run build:prod` 2) Commit the changes From 34d61d0a7d4753cfc1646092aa4af86b1c1960b7 Mon Sep 17 00:00:00 2001 From: Nicolas Kruchten Date: Tue, 1 Jun 2021 07:20:17 -0400 Subject: [PATCH 97/99] changelog --- CHANGELOG.md | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 536d8d838d..7525b4f195 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,9 +5,29 @@ This project adheres to [Semantic Versioning](http://semver.org/). ## UNRELEASED -### Changed +### Updated + +- Updated Plotly.js to version 2.0.0-rc.2. See the [plotly.js CHANGELOG](https://github.com/plotly/plotly.js/blob/CHANGELOG.md) for more information. These changes are reflected in the auto-generated `plotly.graph_objects` module. Notable changes include: + - new `marker.pattern` options for `bar`-like trace types + - dropped support for IE9 and IE10 + - dropped support for long-deprecated `graph_objects` like `area` traces and `scatter.(t|r)` and `layout.(radial|angular)axis` attributes + - deprecated `heatmapgl`, `pointcloud` traces as well as all `transform` attributes +- Combined `plotlywidget` into `jupyterlab-plotly` and packaged them as a federated extension [#3142](https://github.com/plotly/plotly.py/pull/3142) with massive thanks to [@fcollonval](https://github.com/fcollonval) for the contribution +- Plotly.js CDN url will now be versioned by default for HTML exports using `include_plotlyjs='cdn'` and for "connected" renderers. [#2961](https://github.com/plotly/plotly.py/pull/2961) with thanks to [@adehad](https://github.com/adehad) for the contribution +- Dropped support for Python older than 3.6 [#3160](https://github.com/plotly/plotly.py/pull/3160) +- Recommending Kaleido by default over Orca [#3094](https://github.com/plotly/plotly.py/pull/3094) +- Replaced `retrying` dependency with `tenacity` [#2911](https://github.com/plotly/plotly.py/pull/2911) with thanks to [@jmsmdy](https://github.com/jmsmdy) for the contribution + +### Added + +- New functions in `plotly.colors`: `get_colorscale()` and `sample_colorscale()` [#3136](https://github.com/plotly/plotly.py/pull/3136) and [#3186](https://github.com/plotly/plotly.py/pull/3186) with thanks to [@CarlAndersson](https://github.com/CarlAndersson) for the contributions +- Faster JSON encoding when `orjson` is present [#2955](https://github.com/plotly/plotly.py/pull/2955) + +### Fixed + +- Pandas and Numpy datetime serialization fixes [#3022](https://github.com/plotly/plotly.py/pull/3022) +- Fixed selected points of histograms in FigureWidget [#2771](https://github.com/plotly/plotly.py/pull/2771) with thanks to [@meffmadd](https://github.com/meffmadd) for the contribution -- Plotly.js CDN url will now be versioned by default for HTML exports using `include_plotlyjs='cdn'` and for "connected" renderers. ## [4.14.3] - 2021-01-12 From ad2b540ba9f76ac2609e076f89f17079b793ff2d Mon Sep 17 00:00:00 2001 From: Francois Dion Date: Fri, 9 Apr 2021 16:15:04 -0400 Subject: [PATCH 98/99] fixed test and mpl 3.4.1 compatibility --- .../matplotlylib/mplexporter/tests/test_basic.py | 16 ++++++++++------ .../matplotlylib/mplexporter/tests/test_utils.py | 8 +++++--- .../plotly/matplotlylib/mplexporter/utils.py | 4 +++- .../plotly/plotly/matplotlylib/mpltools.py | 12 +++++++++++- 4 files changed, 29 insertions(+), 11 deletions(-) diff --git a/packages/python/plotly/plotly/matplotlylib/mplexporter/tests/test_basic.py b/packages/python/plotly/plotly/matplotlylib/mplexporter/tests/test_basic.py index b86759fa18..287d58274c 100644 --- a/packages/python/plotly/plotly/matplotlylib/mplexporter/tests/test_basic.py +++ b/packages/python/plotly/plotly/matplotlylib/mplexporter/tests/test_basic.py @@ -167,17 +167,19 @@ def test_multiaxes(): def test_image(): # Test fails for matplotlib 1.5+ because the size of the image # generated by matplotlib has changed. - if LooseVersion(matplotlib.__version__) >= LooseVersion('1.5.0'): - pytest.skip("Test fails for matplotlib version > 1.5.0") + if LooseVersion(matplotlib.__version__) == LooseVersion('3.4.1'): + image_size = 432 + else: + pytest.skip("Test fails for older matplotlib") np.random.seed(0) # image size depends on the seed fig, ax = plt.subplots(figsize=(2, 2)) ax.imshow(np.random.random((10, 10)), cmap=plt.cm.jet, interpolation='nearest') _assert_output_equal(fake_renderer_output(fig, FakeRenderer), - """ + f""" opening figure opening axes - draw image of size 1240 + draw image of size {image_size} closing axes closing figure """) @@ -204,6 +206,8 @@ def test_legend_dots(): ax.plot([1, 2, 3], label='label') ax.plot([2, 2, 2], 'o', label='dots') ax.legend().set_visible(True) + # legend draws 1 line and 1 marker + # path around legend now has 13 vertices?? _assert_output_equal(fake_renderer_output(fig, FullFakeRenderer), """ opening figure @@ -213,9 +217,9 @@ def test_legend_dots(): opening legend draw line with 2 points draw text 'label' None - draw 2 markers + draw 1 markers draw text 'dots' None - draw path with 4 vertices + draw path with 13 vertices closing legend closing axes closing figure diff --git a/packages/python/plotly/plotly/matplotlylib/mplexporter/tests/test_utils.py b/packages/python/plotly/plotly/matplotlylib/mplexporter/tests/test_utils.py index eb85fbbf07..fdc5f70f2e 100644 --- a/packages/python/plotly/plotly/matplotlylib/mplexporter/tests/test_utils.py +++ b/packages/python/plotly/plotly/matplotlylib/mplexporter/tests/test_utils.py @@ -13,9 +13,11 @@ def test_path_data(): def test_linestyle(): linestyles = {'solid': 'none', '-': 'none', - 'dashed': '6,6', '--': '6,6', - 'dotted': '2,2', ':': '2,2', - 'dashdot': '4,4,2,4', '-.': '4,4,2,4', + 'dashed': '5.550000000000001,2.4000000000000004', + '--': '5.550000000000001,2.4000000000000004', + 'dotted': '1.5,2.4749999999999996', ':': '1.5,2.4749999999999996', + 'dashdot': '9.600000000000001,2.4000000000000004,1.5,2.4000000000000004', + '-.': '9.600000000000001,2.4000000000000004,1.5,2.4000000000000004', '': None, 'None': None} for ls, result in linestyles.items(): diff --git a/packages/python/plotly/plotly/matplotlylib/mplexporter/utils.py b/packages/python/plotly/plotly/matplotlylib/mplexporter/utils.py index 4059a6b6f5..ee2adfc51d 100644 --- a/packages/python/plotly/plotly/matplotlylib/mplexporter/utils.py +++ b/packages/python/plotly/plotly/matplotlylib/mplexporter/utils.py @@ -217,6 +217,8 @@ def get_axis_properties(axis): props['tickformat'] = "" elif isinstance(formatter, ticker.FixedFormatter): props['tickformat'] = list(formatter.seq) + elif isinstance(formatter, ticker.FuncFormatter): + props['tickformat'] = list(formatter.func.args[0].values()) elif not any(label.get_visible() for label in axis.get_ticklabels()): props['tickformat'] = "" else: @@ -243,7 +245,7 @@ def get_axis_properties(axis): def get_grid_style(axis): gridlines = axis.get_gridlines() - if axis._gridOnMajor and len(gridlines) > 0: + if axis._major_tick_kw['gridOn'] and len(gridlines) > 0: color = export_color(gridlines[0].get_color()) alpha = gridlines[0].get_alpha() dasharray = get_dasharray(gridlines[0]) diff --git a/packages/python/plotly/plotly/matplotlylib/mpltools.py b/packages/python/plotly/plotly/matplotlylib/mpltools.py index af2e7d3861..219f93374e 100644 --- a/packages/python/plotly/plotly/matplotlylib/mpltools.py +++ b/packages/python/plotly/plotly/matplotlylib/mpltools.py @@ -365,7 +365,17 @@ def get_spine_visible(ax, spine_key): """Return some spine parameters for the spine, `spine_key`.""" spine = ax.spines[spine_key] ax_frame_on = ax.get_frame_on() - spine_frame_like = spine.is_frame_like() + position = spine._position or ("outward", 0.0) + if isinstance(position, str): + if position == "center": + position = ("axes", 0.5) + elif position == "zero": + position = ("data", 0) + position_type, amount = position + if position_type == "outward" and amount == 0: + spine_frame_like = True + else: + spine_frame_like = False if not spine.get_visible(): return False elif not spine._edgecolor[-1]: # user's may have set edgecolor alpha==0 From 526d31cd66953e6d1161c3543a028b7b9360c3de Mon Sep 17 00:00:00 2001 From: Francois Dion Date: Fri, 9 Apr 2021 16:15:34 -0400 Subject: [PATCH 99/99] added drawing of legend shapes (lines, markers) --- .../plotly/plotly/matplotlylib/renderer.py | 133 +++++++++++++++--- 1 file changed, 115 insertions(+), 18 deletions(-) diff --git a/packages/python/plotly/plotly/matplotlylib/renderer.py b/packages/python/plotly/plotly/matplotlylib/renderer.py index a2f749c719..dbd464e702 100644 --- a/packages/python/plotly/plotly/matplotlylib/renderer.py +++ b/packages/python/plotly/plotly/matplotlylib/renderer.py @@ -312,10 +312,84 @@ def draw_bar(self, coll): "assuming data redundancy, not plotting." ) + def draw_legend_shapes(self, mode, shape, **props): + """Create a shape that matches lines or markers in legends. + + Main issue is that path for circles do not render, so we have to use 'circle' + instead of 'path'. + """ + for single_mode in mode.split("+"): + x = props["data"][0][0] + y = props["data"][0][1] + if single_mode == "markers" and props.get("markerstyle"): + size = shape.pop("size", 6) + symbol = shape.pop("symbol") + # aligning to "center" + x0 = 0 + y0 = 0 + x1 = size + y1 = size + markerpath = props["markerstyle"].get("markerpath") + if markerpath is None and symbol != "circle": + self.msg += "not sure how to handle this marker without a valid path\n" + return + # marker path to SVG path conversion + path = ' '.join([f"{a} {t[0]},{t[1]}" for a, t in zip(markerpath[1], markerpath[0])]) + + if symbol == "circle": + # symbols like . and o in matplotlib, use circle + # plotly also maps many other markers to circle, such as 1,8 and p + path = None + shape_type = "circle" + x0 = -size / 2 + y0 = size / 2 + x1 = size / 2 + y1 = size + size / 2 + else: + # triangles, star etc + shape_type = "path" + legend_shape = go.layout.Shape( + type=shape_type, + xref="paper", + yref="paper", + x0=x0, + y0=y0, + x1=x1, + y1=y1, + xsizemode="pixel", + ysizemode="pixel", + xanchor=x, + yanchor=y, + path=path, + **shape + ) + + elif single_mode == "lines": + mode = "line" + x1 = props["data"][1][0] + y1 = props["data"][1][1] + + legend_shape = go.layout.Shape( + type=mode, + xref="paper", + yref="paper", + x0=x, + y0=y+0.02, + x1=x1, + y1=y1+0.02, + **shape + ) + else: + self.msg += "not sure how to handle this element\n" + return + self.plotly_fig.add_shape(legend_shape) + self.msg += " Heck yeah, I drew that shape\n" + def draw_marked_line(self, **props): """Create a data dict for a line obj. - This will draw 'lines', 'markers', or 'lines+markers'. + This will draw 'lines', 'markers', or 'lines+markers'. For legend elements, + this will use layout.shapes, so they can be positioned with paper refs. props.keys() -- [ 'coordinates', ('data', 'axes', 'figure', or 'display') @@ -346,7 +420,7 @@ def draw_marked_line(self, **props): """ self.msg += " Attempting to draw a line " - line, marker = {}, {} + line, marker, shape = {}, {}, {} if props["linestyle"] and props["markerstyle"]: self.msg += "... with both lines+markers\n" mode = "lines+markers" @@ -361,23 +435,43 @@ def draw_marked_line(self, **props): props["linestyle"]["color"], props["linestyle"]["alpha"] ) - # print(mpltools.convert_dash(props['linestyle']['dasharray'])) - line = go.scatter.Line( - color=color, - width=props["linestyle"]["linewidth"], - dash=mpltools.convert_dash(props["linestyle"]["dasharray"]), - ) + if props["coordinates"] == "data": + line = go.scatter.Line( + color=color, + width=props["linestyle"]["linewidth"], + dash=mpltools.convert_dash(props["linestyle"]["dasharray"]), + ) + else: + shape=dict( + line = dict( + color=color, + width=props["linestyle"]["linewidth"], + dash=mpltools.convert_dash(props["linestyle"]["dasharray"]) + ) + ) if props["markerstyle"]: - marker = go.scatter.Marker( - opacity=props["markerstyle"]["alpha"], - color=props["markerstyle"]["facecolor"], - symbol=mpltools.convert_symbol(props["markerstyle"]["marker"]), - size=props["markerstyle"]["markersize"], - line=dict( - color=props["markerstyle"]["edgecolor"], - width=props["markerstyle"]["edgewidth"], - ), - ) + if props["coordinates"] == "data": + marker = go.scatter.Marker( + opacity=props["markerstyle"]["alpha"], + color=props["markerstyle"]["facecolor"], + symbol=mpltools.convert_symbol(props["markerstyle"]["marker"]), + size=props["markerstyle"]["markersize"], + line=dict( + color=props["markerstyle"]["edgecolor"], + width=props["markerstyle"]["edgewidth"], + ), + ) + else: + shape = dict( + opacity=props["markerstyle"]["alpha"], + fillcolor=props["markerstyle"]["facecolor"], + symbol=mpltools.convert_symbol(props["markerstyle"]["marker"]), + size=props["markerstyle"]["markersize"], + line=dict( + color=props["markerstyle"]["edgecolor"], + width=props["markerstyle"]["edgewidth"], + ), + ) if props["coordinates"] == "data": marked_line = go.Scatter( mode=mode, @@ -404,6 +498,9 @@ def draw_marked_line(self, **props): ) self.plotly_fig.add_trace(marked_line), self.msg += " Heck yeah, I drew that line\n" + elif props["coordinates"] == "axes": + # dealing with legend graphical elements + self.draw_legend_shapes(mode=mode,shape=shape, **props) else: self.msg += " Line didn't have 'data' coordinates, " "not drawing\n" warnings.warn(